@planetaexo/design-system 0.28.0 → 0.30.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.js CHANGED
@@ -4798,6 +4798,36 @@ function BookingConfirmation({
4798
4798
  }
4799
4799
  );
4800
4800
  }
4801
+ function BookingSummary({ heading, rows, className }) {
4802
+ return /* @__PURE__ */ jsxs("div", { className, style: { marginBottom: "32px" }, children: [
4803
+ /* @__PURE__ */ jsx(
4804
+ "p",
4805
+ {
4806
+ style: {
4807
+ marginBottom: "16px",
4808
+ fontWeight: "700",
4809
+ color: emailTokens.foreground,
4810
+ fontFamily: emailTokens.fontFamily
4811
+ },
4812
+ children: heading
4813
+ }
4814
+ ),
4815
+ /* @__PURE__ */ jsx(
4816
+ "table",
4817
+ {
4818
+ style: {
4819
+ width: "100%",
4820
+ fontSize: "14px",
4821
+ borderCollapse: "collapse"
4822
+ },
4823
+ children: /* @__PURE__ */ jsx("tbody", { children: rows.map((row, i) => /* @__PURE__ */ jsxs("tr", { style: i > 0 ? { borderTop: `1px solid ${emailTokens.border}` } : {}, children: [
4824
+ /* @__PURE__ */ jsx("td", { style: { padding: "4px 16px 4px 0", color: emailTokens.mutedForeground }, children: row.label }),
4825
+ /* @__PURE__ */ jsx("td", { style: { padding: "4px 0", fontWeight: "500", color: emailTokens.foreground }, children: row.value })
4826
+ ] }, i)) })
4827
+ }
4828
+ )
4829
+ ] });
4830
+ }
4801
4831
  var DEFAULT_LABELS4 = {
4802
4832
  ctaButton: "Add travellers to your booking",
4803
4833
  logoAlt: "PlanetaEXO",
@@ -4877,11 +4907,7 @@ function BookingConfirmationEmail({
4877
4907
  /* @__PURE__ */ jsx("p", { style: { marginBottom: "16px" }, children: l.addTravellersInstruction }),
4878
4908
  /* @__PURE__ */ jsx("div", { style: { marginBottom: "32px" }, children: AddTravellersCta }),
4879
4909
  /* @__PURE__ */ jsx("hr", { style: { border: "none", borderTop: `1px solid ${emailTokens.border}`, marginBottom: "32px" } }),
4880
- /* @__PURE__ */ jsx("p", { style: { marginBottom: "16px", fontWeight: "700", color: emailTokens.foreground, fontFamily: emailTokens.fontFamily }, children: l.summaryHeading }),
4881
- /* @__PURE__ */ jsx("table", { style: { width: "100%", fontSize: "14px", marginBottom: "32px", borderCollapse: "collapse" }, children: /* @__PURE__ */ jsx("tbody", { children: tableRows.map((row, i) => /* @__PURE__ */ jsxs("tr", { style: i > 0 ? { borderTop: `1px solid ${emailTokens.border}` } : {}, children: [
4882
- /* @__PURE__ */ jsx("td", { style: { padding: "4px 16px 4px 0", color: emailTokens.mutedForeground }, children: row.label }),
4883
- /* @__PURE__ */ jsx("td", { style: { padding: "4px 0", fontWeight: "500", color: emailTokens.foreground }, children: row.value })
4884
- ] }, i)) }) }),
4910
+ /* @__PURE__ */ jsx(BookingSummary, { heading: l.summaryHeading, rows: tableRows }),
4885
4911
  showNextSteps && /* @__PURE__ */ jsxs(Fragment, { children: [
4886
4912
  /* @__PURE__ */ jsx("hr", { style: { border: "none", borderTop: `1px solid ${emailTokens.border}`, marginBottom: "32px" } }),
4887
4913
  /* @__PURE__ */ jsx("p", { style: { marginBottom: "20px", fontWeight: "700", color: emailTokens.foreground, fontFamily: emailTokens.fontFamily, fontSize: "18px" }, children: l.nextStepsHeading }),
@@ -4918,7 +4944,402 @@ function BookingConfirmationEmail({
4918
4944
  }
4919
4945
  );
4920
4946
  }
4947
+ function RegistrationProgressBar({
4948
+ tone,
4949
+ pct,
4950
+ barHex,
4951
+ labelHex,
4952
+ railHex,
4953
+ label
4954
+ }) {
4955
+ const rail = railHex != null ? railHex : "#e5e7eb";
4956
+ const isComplete = tone === "complete";
4957
+ const indicator = isComplete ? "\u2714" : "\u26A0";
4958
+ const safePct = Math.max(0, Math.min(100, pct));
4959
+ return /* @__PURE__ */ jsx("div", { style: { marginBottom: "16px" }, children: /* @__PURE__ */ jsx(
4960
+ "table",
4961
+ {
4962
+ cellPadding: 0,
4963
+ cellSpacing: 0,
4964
+ style: { width: "100%", borderCollapse: "collapse" },
4965
+ children: /* @__PURE__ */ jsxs("tbody", { children: [
4966
+ /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { style: { textAlign: "right", paddingBottom: "6px" }, children: /* @__PURE__ */ jsxs(
4967
+ "span",
4968
+ {
4969
+ style: {
4970
+ fontWeight: 700,
4971
+ color: labelHex,
4972
+ fontSize: "13px"
4973
+ },
4974
+ children: [
4975
+ label,
4976
+ " ",
4977
+ indicator
4978
+ ]
4979
+ }
4980
+ ) }) }),
4981
+ /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx(
4982
+ "td",
4983
+ {
4984
+ style: {
4985
+ background: rail,
4986
+ height: "12px",
4987
+ borderRadius: "6px",
4988
+ overflow: "hidden",
4989
+ lineHeight: 0,
4990
+ fontSize: 0
4991
+ },
4992
+ children: /* @__PURE__ */ jsx(
4993
+ "div",
4994
+ {
4995
+ style: {
4996
+ background: barHex,
4997
+ width: `${safePct}%`,
4998
+ height: "12px",
4999
+ borderRadius: "6px"
5000
+ }
5001
+ }
5002
+ )
5003
+ }
5004
+ ) })
5005
+ ] })
5006
+ }
5007
+ ) });
5008
+ }
5009
+ var INLINE_LINK_STYLE = {
5010
+ color: emailTokens.primary,
5011
+ textDecoration: "underline"
5012
+ };
5013
+ function renderWhatsappLink(contact, label) {
5014
+ if (contact.whatsappUrl) {
5015
+ return /* @__PURE__ */ jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE, children: label });
5016
+ }
5017
+ return label;
5018
+ }
5019
+ function renderEmailLink(contact, label) {
5020
+ if (contact.email) {
5021
+ return /* @__PURE__ */ jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE, children: label });
5022
+ }
5023
+ return label;
5024
+ }
4921
5025
  var DEFAULT_LABELS5 = {
5026
+ logoAlt: "PlanetaEXO",
5027
+ greeting: (n) => `Hi ${n},`,
5028
+ intermediateHello: "Hope you're doing well.",
5029
+ bookingSummaryHeader: "Booking summary",
5030
+ bookingNumberLabel: "Booking number",
5031
+ adventuresCountLabel: (c) => `${c} adventure${c === 1 ? "" : "s"}`,
5032
+ travellersCountLabel: (c) => `${c} traveller${c === 1 ? "" : "s"}`,
5033
+ adventuresRowLabel: "Adventures",
5034
+ travellersRowLabel: "Total travellers",
5035
+ agentRowLabel: "Agent",
5036
+ progressHeader: "Registration progress",
5037
+ startsLabel: "Starts",
5038
+ completedFractionLabel: (c, total) => `Completed: ${c} / ${total} travellers`,
5039
+ ctaLabel: "View Booking & Registrations",
5040
+ closingAgent: (agentName, contact) => /* @__PURE__ */ jsxs(Fragment, { children: [
5041
+ "If you need any assistance with the traveller registrations, feel free to contact your agent ",
5042
+ agentName,
5043
+ " via ",
5044
+ renderWhatsappLink(contact, "WhatsApp"),
5045
+ " or ",
5046
+ renderEmailLink(contact, "email"),
5047
+ "."
5048
+ ] }),
5049
+ closingNoAgent: "If you need any assistance with the traveller registrations, feel free to contact us via WhatsApp or email.",
5050
+ teamSignature: "The PlanetaEXO Team",
5051
+ variants: {
5052
+ d_minus_30: {
5053
+ subject: "Complete Traveller Registration for Your Upcoming Adventure",
5054
+ intro: "Your adventure with PlanetaEXO is getting closer, and there is one important step remaining before departure.",
5055
+ contextNote: "To help us prepare logistics and ensure your experience runs smoothly, all travellers must complete their registration before the adventure starts.",
5056
+ pleaseNoteHeader: "Please note:",
5057
+ pleaseNoteBullets: [
5058
+ "Registration is mandatory for each traveller included in the booking",
5059
+ "If your booking includes multiple adventures, registration must be completed for each adventure separately",
5060
+ "Every traveller receives reminders to complete their own registration by email",
5061
+ "You can manage registrations, add travellers, edit traveller information, and track completion status through your booking page"
5062
+ ],
5063
+ progressIntro: "Please complete any pending registrations through your booking page:",
5064
+ bookerCoordinationNote: "",
5065
+ earlyCompletionBenefit: "",
5066
+ importantNote: "",
5067
+ finalReminderTagline: "",
5068
+ multiTravellerNote: "",
5069
+ disregardIfCompleted: "",
5070
+ closingThanks: ""
5071
+ },
5072
+ d_minus_15: {
5073
+ subject: "Reminder: Traveller Registration Still Pending",
5074
+ intro: "This is a reminder that one or more traveller registrations linked to your booking remain incomplete.",
5075
+ contextNote: "Registration is required for operational planning and must be completed before departure.",
5076
+ pleaseNoteHeader: "",
5077
+ pleaseNoteBullets: [],
5078
+ bookerCoordinationNote: "Every traveller receives registration reminders by email. If you are organising the trip for the group, please ensure all travellers complete their registration.",
5079
+ progressIntro: "Please review your booking page to complete pending registrations or update traveller information:",
5080
+ earlyCompletionBenefit: "Completing registrations early helps avoid delays with accommodation, transfers, and activity confirmations.",
5081
+ importantNote: "",
5082
+ finalReminderTagline: "",
5083
+ multiTravellerNote: "",
5084
+ disregardIfCompleted: "",
5085
+ closingThanks: ""
5086
+ },
5087
+ d_minus_7: {
5088
+ subject: "Action Required: Complete Traveller Registration Before Departure",
5089
+ intro: "Your adventure begins in one week, and there are still incomplete traveller registrations linked to your booking.",
5090
+ contextNote: "Please ensure all pending registrations are completed as soon as possible.",
5091
+ importantNote: "Important: Registration is mandatory and required for participation in the adventure.",
5092
+ progressIntro: "Review your booking page to complete missing information:",
5093
+ multiTravellerNote: "If your booking includes multiple travellers, please ensure every traveller completes their registration before departure.",
5094
+ pleaseNoteHeader: "",
5095
+ pleaseNoteBullets: [],
5096
+ bookerCoordinationNote: "",
5097
+ earlyCompletionBenefit: "",
5098
+ finalReminderTagline: "",
5099
+ disregardIfCompleted: "",
5100
+ closingThanks: ""
5101
+ },
5102
+ d_minus_2: {
5103
+ subject: "Final Reminder: Registration Required Before Departure",
5104
+ intro: "Your adventure starts in 2 days, and one or more traveller registrations remain incomplete.",
5105
+ finalReminderTagline: "This is a final reminder.",
5106
+ importantNote: "Traveller registration is mandatory. Without completed registration forms, we may be unable to confirm logistics and travellers may not be allowed to board transfers, flights, boats, or participate in activities.",
5107
+ progressIntro: "Please complete all pending registrations immediately through your booking page:",
5108
+ disregardIfCompleted: "If registrations have already been completed, please disregard this email.",
5109
+ closingThanks: "We look forward to welcoming you soon.",
5110
+ contextNote: "",
5111
+ pleaseNoteHeader: "",
5112
+ pleaseNoteBullets: [],
5113
+ bookerCoordinationNote: "",
5114
+ earlyCompletionBenefit: "",
5115
+ multiTravellerNote: ""
5116
+ }
5117
+ }
5118
+ };
5119
+ function hasText(s) {
5120
+ return typeof s === "string" && s.trim().length > 0;
5121
+ }
5122
+ function hasItems(arr) {
5123
+ return Array.isArray(arr) && arr.length > 0;
5124
+ }
5125
+ function RegistrationReminderEmail({
5126
+ slug,
5127
+ recipientFirstName,
5128
+ bookingNumber,
5129
+ totalAdventures,
5130
+ totalTravellers,
5131
+ adventures,
5132
+ ctaUrl,
5133
+ agent,
5134
+ logoUrl,
5135
+ labels,
5136
+ className
5137
+ }) {
5138
+ var _a, _b, _c, _d, _e, _f, _g, _h;
5139
+ const l = __spreadProps(__spreadValues(__spreadValues({}, DEFAULT_LABELS5), labels), {
5140
+ variants: {
5141
+ d_minus_30: __spreadValues(__spreadValues({}, DEFAULT_LABELS5.variants.d_minus_30), (_b = (_a = labels == null ? void 0 : labels.variants) == null ? void 0 : _a.d_minus_30) != null ? _b : {}),
5142
+ d_minus_15: __spreadValues(__spreadValues({}, DEFAULT_LABELS5.variants.d_minus_15), (_d = (_c = labels == null ? void 0 : labels.variants) == null ? void 0 : _c.d_minus_15) != null ? _d : {}),
5143
+ d_minus_7: __spreadValues(__spreadValues({}, DEFAULT_LABELS5.variants.d_minus_7), (_f = (_e = labels == null ? void 0 : labels.variants) == null ? void 0 : _e.d_minus_7) != null ? _f : {}),
5144
+ d_minus_2: __spreadValues(__spreadValues({}, DEFAULT_LABELS5.variants.d_minus_2), (_h = (_g = labels == null ? void 0 : labels.variants) == null ? void 0 : _g.d_minus_2) != null ? _h : {})
5145
+ }
5146
+ });
5147
+ const v = l.variants[slug];
5148
+ const ctaStyle = {
5149
+ display: "inline-block",
5150
+ backgroundColor: emailTokens.primary,
5151
+ color: emailTokens.primaryForeground,
5152
+ padding: "12px 24px",
5153
+ borderRadius: "8px",
5154
+ fontSize: "14px",
5155
+ fontWeight: 700,
5156
+ textDecoration: "none",
5157
+ fontFamily: emailTokens.fontFamily
5158
+ };
5159
+ const summaryRows = [
5160
+ { label: l.bookingNumberLabel, value: `#${bookingNumber}` },
5161
+ { label: l.adventuresRowLabel, value: l.adventuresCountLabel(totalAdventures) },
5162
+ { label: l.travellersRowLabel, value: l.travellersCountLabel(totalTravellers) },
5163
+ ...(agent == null ? void 0 : agent.name) ? [{ label: l.agentRowLabel, value: agent.name }] : []
5164
+ ];
5165
+ const showPleaseNote = hasText(v.pleaseNoteHeader) && hasItems(v.pleaseNoteBullets);
5166
+ const showBookerCoord = hasText(v.bookerCoordinationNote);
5167
+ const showEarlyBenefit = hasText(v.earlyCompletionBenefit);
5168
+ const showImportant = hasText(v.importantNote);
5169
+ const showFinalTagline = hasText(v.finalReminderTagline);
5170
+ const showMultiTraveller = hasText(v.multiTravellerNote);
5171
+ const showDisregard = hasText(v.disregardIfCompleted);
5172
+ const showClosingThanks = hasText(v.closingThanks);
5173
+ return /* @__PURE__ */ jsxs(
5174
+ "div",
5175
+ {
5176
+ style: {
5177
+ maxWidth: "576px",
5178
+ margin: "0 auto",
5179
+ backgroundColor: emailTokens.white,
5180
+ color: emailTokens.foreground,
5181
+ fontFamily: emailTokens.fontFamily,
5182
+ fontSize: "16px",
5183
+ lineHeight: "1.6",
5184
+ border: `1px solid ${emailTokens.border}`,
5185
+ borderRadius: "12px",
5186
+ overflow: "hidden",
5187
+ padding: "32px"
5188
+ },
5189
+ className,
5190
+ children: [
5191
+ /* @__PURE__ */ jsx(EmailLogo, { src: logoUrl, alt: l.logoAlt }),
5192
+ /* @__PURE__ */ jsx("p", { style: { marginBottom: "16px" }, children: l.greeting(recipientFirstName) }),
5193
+ hasText(l.intermediateHello) && /* @__PURE__ */ jsx("p", { style: { marginBottom: "16px" }, children: l.intermediateHello }),
5194
+ hasText(v.intro) && /* @__PURE__ */ jsx("p", { style: { marginBottom: "16px" }, children: v.intro }),
5195
+ hasText(v.contextNote) && /* @__PURE__ */ jsx("p", { style: { marginBottom: "16px" }, children: v.contextNote }),
5196
+ showPleaseNote && /* @__PURE__ */ jsxs("div", { style: { marginBottom: "24px" }, children: [
5197
+ /* @__PURE__ */ jsx("p", { style: { marginBottom: "8px", fontWeight: 700, color: emailTokens.foreground }, children: v.pleaseNoteHeader }),
5198
+ /* @__PURE__ */ jsx("ul", { style: { paddingLeft: "20px", margin: 0 }, children: v.pleaseNoteBullets.map((b, i) => /* @__PURE__ */ jsx("li", { style: { marginBottom: "6px", color: emailTokens.bodyText }, children: b }, i)) })
5199
+ ] }),
5200
+ showBookerCoord && /* @__PURE__ */ jsx("p", { style: { marginBottom: "16px" }, children: v.bookerCoordinationNote }),
5201
+ /* @__PURE__ */ jsx(
5202
+ "hr",
5203
+ {
5204
+ style: {
5205
+ border: "none",
5206
+ borderTop: `1px solid ${emailTokens.border}`,
5207
+ marginBottom: "24px"
5208
+ }
5209
+ }
5210
+ ),
5211
+ /* @__PURE__ */ jsx(BookingSummary, { heading: l.bookingSummaryHeader, rows: summaryRows }),
5212
+ showImportant && slug === "d_minus_7" && /* @__PURE__ */ jsx(
5213
+ "p",
5214
+ {
5215
+ style: {
5216
+ marginBottom: "20px",
5217
+ padding: "12px 16px",
5218
+ borderRadius: "8px",
5219
+ backgroundColor: "#fef3c7",
5220
+ color: "#78350f",
5221
+ fontWeight: 600
5222
+ },
5223
+ children: v.importantNote
5224
+ }
5225
+ ),
5226
+ hasItems(adventures) && /* @__PURE__ */ jsxs(Fragment, { children: [
5227
+ /* @__PURE__ */ jsx(
5228
+ "p",
5229
+ {
5230
+ style: {
5231
+ marginTop: "8px",
5232
+ marginBottom: "12px",
5233
+ fontWeight: 700,
5234
+ fontSize: "15px",
5235
+ color: emailTokens.foreground
5236
+ },
5237
+ children: l.progressHeader
5238
+ }
5239
+ ),
5240
+ hasText(v.progressIntro) && /* @__PURE__ */ jsx("p", { style: { marginBottom: "16px", color: emailTokens.bodyText }, children: v.progressIntro }),
5241
+ adventures.map((adv, i) => /* @__PURE__ */ jsxs(
5242
+ "div",
5243
+ {
5244
+ style: {
5245
+ marginBottom: "20px",
5246
+ padding: "16px",
5247
+ borderRadius: "8px",
5248
+ border: `1px solid ${emailTokens.border}`
5249
+ },
5250
+ children: [
5251
+ /* @__PURE__ */ jsx(
5252
+ "p",
5253
+ {
5254
+ style: {
5255
+ marginTop: 0,
5256
+ marginBottom: "4px",
5257
+ fontWeight: 700,
5258
+ color: emailTokens.foreground
5259
+ },
5260
+ children: adv.name
5261
+ }
5262
+ ),
5263
+ /* @__PURE__ */ jsxs(
5264
+ "p",
5265
+ {
5266
+ style: {
5267
+ marginTop: 0,
5268
+ marginBottom: "12px",
5269
+ color: emailTokens.mutedForeground,
5270
+ fontSize: "13px"
5271
+ },
5272
+ children: [
5273
+ l.startsLabel,
5274
+ ": ",
5275
+ adv.startDateFormatted
5276
+ ]
5277
+ }
5278
+ ),
5279
+ /* @__PURE__ */ jsx(
5280
+ RegistrationProgressBar,
5281
+ {
5282
+ completed: adv.completedTravellers,
5283
+ total: adv.totalTravellers,
5284
+ tone: adv.tone,
5285
+ pct: adv.pct,
5286
+ barHex: adv.barHex,
5287
+ labelHex: adv.labelHex,
5288
+ railHex: adv.railHex,
5289
+ label: l.completedFractionLabel(
5290
+ adv.completedTravellers,
5291
+ adv.totalTravellers
5292
+ )
5293
+ }
5294
+ )
5295
+ ]
5296
+ },
5297
+ `${adv.name}-${i}`
5298
+ ))
5299
+ ] }),
5300
+ showEarlyBenefit && /* @__PURE__ */ jsx("p", { style: { marginBottom: "16px", color: emailTokens.bodyText }, children: v.earlyCompletionBenefit }),
5301
+ (showFinalTagline || showImportant && slug === "d_minus_2") && /* @__PURE__ */ jsxs(
5302
+ "div",
5303
+ {
5304
+ style: {
5305
+ marginBottom: "20px",
5306
+ padding: "12px 16px",
5307
+ borderRadius: "8px",
5308
+ backgroundColor: "#fef2f2",
5309
+ border: "1px solid #fecaca",
5310
+ color: "#7f1d1d"
5311
+ },
5312
+ children: [
5313
+ showFinalTagline && /* @__PURE__ */ jsx("p", { style: { margin: 0, marginBottom: showImportant ? "8px" : 0, fontWeight: 700 }, children: v.finalReminderTagline }),
5314
+ showImportant && slug === "d_minus_2" && /* @__PURE__ */ jsx("p", { style: { margin: 0 }, children: v.importantNote })
5315
+ ]
5316
+ }
5317
+ ),
5318
+ showMultiTraveller && /* @__PURE__ */ jsx("p", { style: { marginBottom: "16px", color: emailTokens.bodyText }, children: v.multiTravellerNote }),
5319
+ /* @__PURE__ */ jsx("div", { style: { marginBottom: "24px", textAlign: "left" }, children: /* @__PURE__ */ jsx("a", { href: ctaUrl, style: ctaStyle, children: l.ctaLabel }) }),
5320
+ /* @__PURE__ */ jsx("p", { style: { marginBottom: "16px", fontSize: "14px", fontWeight: 700, color: emailTokens.bodyText }, children: (agent == null ? void 0 : agent.name) ? l.closingAgent(agent.name, {
5321
+ whatsappUrl: agent.whatsappUrl,
5322
+ email: agent.email
5323
+ }) : l.closingNoAgent }),
5324
+ showDisregard && /* @__PURE__ */ jsx(
5325
+ "p",
5326
+ {
5327
+ style: {
5328
+ marginBottom: "16px",
5329
+ color: emailTokens.mutedForeground,
5330
+ fontSize: "13px",
5331
+ fontStyle: "italic"
5332
+ },
5333
+ children: v.disregardIfCompleted
5334
+ }
5335
+ ),
5336
+ showClosingThanks && /* @__PURE__ */ jsx("p", { style: { marginBottom: "16px", fontSize: "14px", color: emailTokens.bodyText }, children: v.closingThanks }),
5337
+ /* @__PURE__ */ jsx("p", { style: { marginTop: 0, marginBottom: 0, fontSize: "14px", color: emailTokens.bodyText }, children: l.teamSignature })
5338
+ ]
5339
+ }
5340
+ );
5341
+ }
5342
+ var DEFAULT_LABELS6 = {
4922
5343
  logoAlt: "PlanetaEXO",
4923
5344
  greeting: (name) => `Hi ${name},`,
4924
5345
  receiptHeading: "Payment receipt",
@@ -4957,7 +5378,7 @@ function PaymentReceiptEmail({
4957
5378
  labels,
4958
5379
  className
4959
5380
  }) {
4960
- const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS5), labels);
5381
+ const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS6), labels);
4961
5382
  const travellersLine = travellers.filter((s) => s.trim().length > 0).join(", ");
4962
5383
  const interestRow = chargedAmount && chargedAmount !== amount;
4963
5384
  const receiptRows = [
@@ -5053,24 +5474,24 @@ function PaymentReceiptEmail({
5053
5474
  }
5054
5475
  );
5055
5476
  }
5056
- var INLINE_LINK_STYLE = {
5477
+ var INLINE_LINK_STYLE2 = {
5057
5478
  color: emailTokens.primary,
5058
5479
  textDecoration: "underline"
5059
5480
  };
5060
- function renderWhatsappLink(contact, label) {
5481
+ function renderWhatsappLink2(contact, label) {
5061
5482
  if (contact.whatsappUrl) {
5062
- return /* @__PURE__ */ jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE, children: label });
5483
+ return /* @__PURE__ */ jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE2, children: label });
5063
5484
  }
5064
5485
  return label;
5065
5486
  }
5066
- function renderEmailLink(contact, label) {
5487
+ function renderEmailLink2(contact, label) {
5067
5488
  if (contact.email) {
5068
- return /* @__PURE__ */ jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE, children: label });
5489
+ return /* @__PURE__ */ jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE2, children: label });
5069
5490
  }
5070
5491
  return label;
5071
5492
  }
5072
5493
  var EMPTY_CLOSING_ALTERNATIVE = (_agentName, _contact) => null;
5073
- var DEFAULT_LABELS6 = {
5494
+ var DEFAULT_LABELS7 = {
5074
5495
  logoAlt: "PlanetaEXO",
5075
5496
  greeting: (name) => `Hi ${name},`,
5076
5497
  intermediateHello: "Hope you're doing well.",
@@ -5085,9 +5506,9 @@ var DEFAULT_LABELS6 = {
5085
5506
  "If you need any assistance or would like to discuss your payment, feel free to contact your agent ",
5086
5507
  agentName,
5087
5508
  " via ",
5088
- renderWhatsappLink(contact, "WhatsApp"),
5509
+ renderWhatsappLink2(contact, "WhatsApp"),
5089
5510
  " or ",
5090
- renderEmailLink(contact, "email"),
5511
+ renderEmailLink2(contact, "email"),
5091
5512
  "."
5092
5513
  ] }),
5093
5514
  closingNoAgent: "If you need any assistance or would like to discuss your payment, feel free to contact us via WhatsApp or email.",
@@ -5131,9 +5552,9 @@ var DEFAULT_LABELS6 = {
5131
5552
  "If you are experiencing any issues with payment or need additional time, please contact your agent ",
5132
5553
  agentName,
5133
5554
  " via ",
5134
- renderWhatsappLink(contact, "WhatsApp"),
5555
+ renderWhatsappLink2(contact, "WhatsApp"),
5135
5556
  " or ",
5136
- renderEmailLink(contact, "email"),
5557
+ renderEmailLink2(contact, "email"),
5137
5558
  ". We'll be happy to assist."
5138
5559
  ] })
5139
5560
  }
@@ -5157,7 +5578,7 @@ function PaymentReminderEmail({
5157
5578
  }) {
5158
5579
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
5159
5580
  const lOverride = labels != null ? labels : {};
5160
- const variantDefaults = DEFAULT_LABELS6.variants[variant];
5581
+ const variantDefaults = DEFAULT_LABELS7.variants[variant];
5161
5582
  const variantOverride = (_b = (_a = lOverride.variants) == null ? void 0 : _a[variant]) != null ? _b : {};
5162
5583
  const variantLabels = {
5163
5584
  intro: (_c = variantOverride.intro) != null ? _c : variantDefaults.intro,
@@ -5167,19 +5588,19 @@ function PaymentReminderEmail({
5167
5588
  closingAlternative: (_f = variantOverride.closingAlternative) != null ? _f : variantDefaults.closingAlternative
5168
5589
  };
5169
5590
  const l = {
5170
- logoAlt: (_g = lOverride.logoAlt) != null ? _g : DEFAULT_LABELS6.logoAlt,
5171
- greeting: (_h = lOverride.greeting) != null ? _h : DEFAULT_LABELS6.greeting,
5172
- intermediateHello: (_i = lOverride.intermediateHello) != null ? _i : DEFAULT_LABELS6.intermediateHello,
5173
- bookingSummaryHeader: (_j = lOverride.bookingSummaryHeader) != null ? _j : DEFAULT_LABELS6.bookingSummaryHeader,
5174
- amountAlreadyPaidLabel: (_k = lOverride.amountAlreadyPaidLabel) != null ? _k : DEFAULT_LABELS6.amountAlreadyPaidLabel,
5175
- remainingBalanceDueLabel: (_l = lOverride.remainingBalanceDueLabel) != null ? _l : DEFAULT_LABELS6.remainingBalanceDueLabel,
5176
- totalBookingAmountLabel: (_m = lOverride.totalBookingAmountLabel) != null ? _m : DEFAULT_LABELS6.totalBookingAmountLabel,
5177
- paymentDetailsHeading: (_n = lOverride.paymentDetailsHeading) != null ? _n : DEFAULT_LABELS6.paymentDetailsHeading,
5178
- ctaLabel: (_o = lOverride.ctaLabel) != null ? _o : DEFAULT_LABELS6.ctaLabel,
5179
- teamSignature: (_p = lOverride.teamSignature) != null ? _p : DEFAULT_LABELS6.teamSignature,
5180
- closingAgent: (_q = lOverride.closingAgent) != null ? _q : DEFAULT_LABELS6.closingAgent,
5181
- closingNoAgent: (_r = lOverride.closingNoAgent) != null ? _r : DEFAULT_LABELS6.closingNoAgent,
5182
- adventureCard: __spreadValues(__spreadValues({}, DEFAULT_LABELS6.adventureCard), (_s = lOverride.adventureCard) != null ? _s : {})
5591
+ logoAlt: (_g = lOverride.logoAlt) != null ? _g : DEFAULT_LABELS7.logoAlt,
5592
+ greeting: (_h = lOverride.greeting) != null ? _h : DEFAULT_LABELS7.greeting,
5593
+ intermediateHello: (_i = lOverride.intermediateHello) != null ? _i : DEFAULT_LABELS7.intermediateHello,
5594
+ bookingSummaryHeader: (_j = lOverride.bookingSummaryHeader) != null ? _j : DEFAULT_LABELS7.bookingSummaryHeader,
5595
+ amountAlreadyPaidLabel: (_k = lOverride.amountAlreadyPaidLabel) != null ? _k : DEFAULT_LABELS7.amountAlreadyPaidLabel,
5596
+ remainingBalanceDueLabel: (_l = lOverride.remainingBalanceDueLabel) != null ? _l : DEFAULT_LABELS7.remainingBalanceDueLabel,
5597
+ totalBookingAmountLabel: (_m = lOverride.totalBookingAmountLabel) != null ? _m : DEFAULT_LABELS7.totalBookingAmountLabel,
5598
+ paymentDetailsHeading: (_n = lOverride.paymentDetailsHeading) != null ? _n : DEFAULT_LABELS7.paymentDetailsHeading,
5599
+ ctaLabel: (_o = lOverride.ctaLabel) != null ? _o : DEFAULT_LABELS7.ctaLabel,
5600
+ teamSignature: (_p = lOverride.teamSignature) != null ? _p : DEFAULT_LABELS7.teamSignature,
5601
+ closingAgent: (_q = lOverride.closingAgent) != null ? _q : DEFAULT_LABELS7.closingAgent,
5602
+ closingNoAgent: (_r = lOverride.closingNoAgent) != null ? _r : DEFAULT_LABELS7.closingNoAgent,
5603
+ adventureCard: __spreadValues(__spreadValues({}, DEFAULT_LABELS7.adventureCard), (_s = lOverride.adventureCard) != null ? _s : {})
5183
5604
  };
5184
5605
  const ctaStyle = {
5185
5606
  display: "inline-block",
@@ -5995,7 +6416,7 @@ function BookingForm({
5995
6416
  }
5996
6417
  );
5997
6418
  }
5998
- var DEFAULT_LABELS7 = {
6419
+ var DEFAULT_LABELS8 = {
5999
6420
  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.",
6000
6421
  detailsSectionTitle: "Your details",
6001
6422
  tripInfoSectionTitle: "Trip info",
@@ -6660,7 +7081,7 @@ function RegistrationForm({
6660
7081
  }) {
6661
7082
  var _a;
6662
7083
  const L = React25.useMemo(
6663
- () => __spreadValues(__spreadValues({}, DEFAULT_LABELS7), labels != null ? labels : {}),
7084
+ () => __spreadValues(__spreadValues({}, DEFAULT_LABELS8), labels != null ? labels : {}),
6664
7085
  [labels]
6665
7086
  );
6666
7087
  const sortedFields = React25.useMemo(
@@ -11258,6 +11679,6 @@ function LeadCapturePopup({
11258
11679
  );
11259
11680
  }
11260
11681
 
11261
- export { ActivityCard, AgentContactCard, Alert, BirthDateField, BookingAdventureCard, BookingConfirmation, BookingConfirmationEmail, BookingConfirmedCard, BookingDetails, BookingForm, BookingOtpEmail, BookingShell, Button, COUNTRIES, CounterField, CountrySearchField, DEFAULT_HEADER_LINKS, DEFAULT_LANGUAGES, DatePickerField, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, FilterPanel, FloatingInput, FloatingSelect, Itinerary, ItineraryDay, LOGO_PLANETAEXO_DATA_URI, LeadCapturePopup, MenuTrip, OTPCodeInput, Offer, OfferAdventureCard, PaymentAmountSelector, PaymentDetailsBlock, PaymentMethodSelector, PaymentModalShell, PaymentReceiptEmail, PaymentReminderEmail, PhoneCountrySelect, PhotoGallery, PricingTrip, RegistrationForm, RegistrationSuccessCard, SiteHeader, TERMS_ACCEPT_KEY, TermsSection, ThemeToggle, Toast, TransferDetailsBlock, TravellerFormInviteEmail, TripCard, TripHeader, TripPage, TrustpilotEmbed, buttonVariants, cn, emailTokens, getStripeAppearance, itineraryDaySpecIcons, stripeAppearance, wrapEmailHtml };
11682
+ export { ActivityCard, AgentContactCard, Alert, BirthDateField, BookingAdventureCard, BookingConfirmation, BookingConfirmationEmail, BookingConfirmedCard, BookingDetails, BookingForm, BookingOtpEmail, BookingShell, BookingSummary, Button, COUNTRIES, CounterField, CountrySearchField, DEFAULT_HEADER_LINKS, DEFAULT_LANGUAGES, DatePickerField, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, FilterPanel, FloatingInput, FloatingSelect, Itinerary, ItineraryDay, LOGO_PLANETAEXO_DATA_URI, LeadCapturePopup, MenuTrip, OTPCodeInput, Offer, OfferAdventureCard, PaymentAmountSelector, PaymentDetailsBlock, PaymentMethodSelector, PaymentModalShell, PaymentReceiptEmail, PaymentReminderEmail, PhoneCountrySelect, PhotoGallery, PricingTrip, RegistrationForm, RegistrationProgressBar, RegistrationReminderEmail, RegistrationSuccessCard, SiteHeader, TERMS_ACCEPT_KEY, TermsSection, ThemeToggle, Toast, TransferDetailsBlock, TravellerFormInviteEmail, TripCard, TripHeader, TripPage, TrustpilotEmbed, buttonVariants, cn, emailTokens, getStripeAppearance, itineraryDaySpecIcons, stripeAppearance, wrapEmailHtml };
11262
11683
  //# sourceMappingURL=index.js.map
11263
11684
  //# sourceMappingURL=index.js.map