@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.cjs CHANGED
@@ -4819,6 +4819,36 @@ function BookingConfirmation({
4819
4819
  }
4820
4820
  );
4821
4821
  }
4822
+ function BookingSummary({ heading, rows, className }) {
4823
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className, style: { marginBottom: "32px" }, children: [
4824
+ /* @__PURE__ */ jsxRuntime.jsx(
4825
+ "p",
4826
+ {
4827
+ style: {
4828
+ marginBottom: "16px",
4829
+ fontWeight: "700",
4830
+ color: emailTokens.foreground,
4831
+ fontFamily: emailTokens.fontFamily
4832
+ },
4833
+ children: heading
4834
+ }
4835
+ ),
4836
+ /* @__PURE__ */ jsxRuntime.jsx(
4837
+ "table",
4838
+ {
4839
+ style: {
4840
+ width: "100%",
4841
+ fontSize: "14px",
4842
+ borderCollapse: "collapse"
4843
+ },
4844
+ children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: rows.map((row, i) => /* @__PURE__ */ jsxRuntime.jsxs("tr", { style: i > 0 ? { borderTop: `1px solid ${emailTokens.border}` } : {}, children: [
4845
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "4px 16px 4px 0", color: emailTokens.mutedForeground }, children: row.label }),
4846
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "4px 0", fontWeight: "500", color: emailTokens.foreground }, children: row.value })
4847
+ ] }, i)) })
4848
+ }
4849
+ )
4850
+ ] });
4851
+ }
4822
4852
  var DEFAULT_LABELS4 = {
4823
4853
  ctaButton: "Add travellers to your booking",
4824
4854
  logoAlt: "PlanetaEXO",
@@ -4898,11 +4928,7 @@ function BookingConfirmationEmail({
4898
4928
  /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: l.addTravellersInstruction }),
4899
4929
  /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginBottom: "32px" }, children: AddTravellersCta }),
4900
4930
  /* @__PURE__ */ jsxRuntime.jsx("hr", { style: { border: "none", borderTop: `1px solid ${emailTokens.border}`, marginBottom: "32px" } }),
4901
- /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", fontWeight: "700", color: emailTokens.foreground, fontFamily: emailTokens.fontFamily }, children: l.summaryHeading }),
4902
- /* @__PURE__ */ jsxRuntime.jsx("table", { style: { width: "100%", fontSize: "14px", marginBottom: "32px", borderCollapse: "collapse" }, children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: tableRows.map((row, i) => /* @__PURE__ */ jsxRuntime.jsxs("tr", { style: i > 0 ? { borderTop: `1px solid ${emailTokens.border}` } : {}, children: [
4903
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "4px 16px 4px 0", color: emailTokens.mutedForeground }, children: row.label }),
4904
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "4px 0", fontWeight: "500", color: emailTokens.foreground }, children: row.value })
4905
- ] }, i)) }) }),
4931
+ /* @__PURE__ */ jsxRuntime.jsx(BookingSummary, { heading: l.summaryHeading, rows: tableRows }),
4906
4932
  showNextSteps && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4907
4933
  /* @__PURE__ */ jsxRuntime.jsx("hr", { style: { border: "none", borderTop: `1px solid ${emailTokens.border}`, marginBottom: "32px" } }),
4908
4934
  /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "20px", fontWeight: "700", color: emailTokens.foreground, fontFamily: emailTokens.fontFamily, fontSize: "18px" }, children: l.nextStepsHeading }),
@@ -4939,7 +4965,402 @@ function BookingConfirmationEmail({
4939
4965
  }
4940
4966
  );
4941
4967
  }
4968
+ function RegistrationProgressBar({
4969
+ tone,
4970
+ pct,
4971
+ barHex,
4972
+ labelHex,
4973
+ railHex,
4974
+ label
4975
+ }) {
4976
+ const rail = railHex != null ? railHex : "#e5e7eb";
4977
+ const isComplete = tone === "complete";
4978
+ const indicator = isComplete ? "\u2714" : "\u26A0";
4979
+ const safePct = Math.max(0, Math.min(100, pct));
4980
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginBottom: "16px" }, children: /* @__PURE__ */ jsxRuntime.jsx(
4981
+ "table",
4982
+ {
4983
+ cellPadding: 0,
4984
+ cellSpacing: 0,
4985
+ style: { width: "100%", borderCollapse: "collapse" },
4986
+ children: /* @__PURE__ */ jsxRuntime.jsxs("tbody", { children: [
4987
+ /* @__PURE__ */ jsxRuntime.jsx("tr", { children: /* @__PURE__ */ jsxRuntime.jsx("td", { style: { textAlign: "right", paddingBottom: "6px" }, children: /* @__PURE__ */ jsxRuntime.jsxs(
4988
+ "span",
4989
+ {
4990
+ style: {
4991
+ fontWeight: 700,
4992
+ color: labelHex,
4993
+ fontSize: "13px"
4994
+ },
4995
+ children: [
4996
+ label,
4997
+ " ",
4998
+ indicator
4999
+ ]
5000
+ }
5001
+ ) }) }),
5002
+ /* @__PURE__ */ jsxRuntime.jsx("tr", { children: /* @__PURE__ */ jsxRuntime.jsx(
5003
+ "td",
5004
+ {
5005
+ style: {
5006
+ background: rail,
5007
+ height: "12px",
5008
+ borderRadius: "6px",
5009
+ overflow: "hidden",
5010
+ lineHeight: 0,
5011
+ fontSize: 0
5012
+ },
5013
+ children: /* @__PURE__ */ jsxRuntime.jsx(
5014
+ "div",
5015
+ {
5016
+ style: {
5017
+ background: barHex,
5018
+ width: `${safePct}%`,
5019
+ height: "12px",
5020
+ borderRadius: "6px"
5021
+ }
5022
+ }
5023
+ )
5024
+ }
5025
+ ) })
5026
+ ] })
5027
+ }
5028
+ ) });
5029
+ }
5030
+ var INLINE_LINK_STYLE = {
5031
+ color: emailTokens.primary,
5032
+ textDecoration: "underline"
5033
+ };
5034
+ function renderWhatsappLink(contact, label) {
5035
+ if (contact.whatsappUrl) {
5036
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE, children: label });
5037
+ }
5038
+ return label;
5039
+ }
5040
+ function renderEmailLink(contact, label) {
5041
+ if (contact.email) {
5042
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE, children: label });
5043
+ }
5044
+ return label;
5045
+ }
4942
5046
  var DEFAULT_LABELS5 = {
5047
+ logoAlt: "PlanetaEXO",
5048
+ greeting: (n) => `Hi ${n},`,
5049
+ intermediateHello: "Hope you're doing well.",
5050
+ bookingSummaryHeader: "Booking summary",
5051
+ bookingNumberLabel: "Booking number",
5052
+ adventuresCountLabel: (c) => `${c} adventure${c === 1 ? "" : "s"}`,
5053
+ travellersCountLabel: (c) => `${c} traveller${c === 1 ? "" : "s"}`,
5054
+ adventuresRowLabel: "Adventures",
5055
+ travellersRowLabel: "Total travellers",
5056
+ agentRowLabel: "Agent",
5057
+ progressHeader: "Registration progress",
5058
+ startsLabel: "Starts",
5059
+ completedFractionLabel: (c, total) => `Completed: ${c} / ${total} travellers`,
5060
+ ctaLabel: "View Booking & Registrations",
5061
+ closingAgent: (agentName, contact) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5062
+ "If you need any assistance with the traveller registrations, feel free to contact your agent ",
5063
+ agentName,
5064
+ " via ",
5065
+ renderWhatsappLink(contact, "WhatsApp"),
5066
+ " or ",
5067
+ renderEmailLink(contact, "email"),
5068
+ "."
5069
+ ] }),
5070
+ closingNoAgent: "If you need any assistance with the traveller registrations, feel free to contact us via WhatsApp or email.",
5071
+ teamSignature: "The PlanetaEXO Team",
5072
+ variants: {
5073
+ d_minus_30: {
5074
+ subject: "Complete Traveller Registration for Your Upcoming Adventure",
5075
+ intro: "Your adventure with PlanetaEXO is getting closer, and there is one important step remaining before departure.",
5076
+ contextNote: "To help us prepare logistics and ensure your experience runs smoothly, all travellers must complete their registration before the adventure starts.",
5077
+ pleaseNoteHeader: "Please note:",
5078
+ pleaseNoteBullets: [
5079
+ "Registration is mandatory for each traveller included in the booking",
5080
+ "If your booking includes multiple adventures, registration must be completed for each adventure separately",
5081
+ "Every traveller receives reminders to complete their own registration by email",
5082
+ "You can manage registrations, add travellers, edit traveller information, and track completion status through your booking page"
5083
+ ],
5084
+ progressIntro: "Please complete any pending registrations through your booking page:",
5085
+ bookerCoordinationNote: "",
5086
+ earlyCompletionBenefit: "",
5087
+ importantNote: "",
5088
+ finalReminderTagline: "",
5089
+ multiTravellerNote: "",
5090
+ disregardIfCompleted: "",
5091
+ closingThanks: ""
5092
+ },
5093
+ d_minus_15: {
5094
+ subject: "Reminder: Traveller Registration Still Pending",
5095
+ intro: "This is a reminder that one or more traveller registrations linked to your booking remain incomplete.",
5096
+ contextNote: "Registration is required for operational planning and must be completed before departure.",
5097
+ pleaseNoteHeader: "",
5098
+ pleaseNoteBullets: [],
5099
+ bookerCoordinationNote: "Every traveller receives registration reminders by email. If you are organising the trip for the group, please ensure all travellers complete their registration.",
5100
+ progressIntro: "Please review your booking page to complete pending registrations or update traveller information:",
5101
+ earlyCompletionBenefit: "Completing registrations early helps avoid delays with accommodation, transfers, and activity confirmations.",
5102
+ importantNote: "",
5103
+ finalReminderTagline: "",
5104
+ multiTravellerNote: "",
5105
+ disregardIfCompleted: "",
5106
+ closingThanks: ""
5107
+ },
5108
+ d_minus_7: {
5109
+ subject: "Action Required: Complete Traveller Registration Before Departure",
5110
+ intro: "Your adventure begins in one week, and there are still incomplete traveller registrations linked to your booking.",
5111
+ contextNote: "Please ensure all pending registrations are completed as soon as possible.",
5112
+ importantNote: "Important: Registration is mandatory and required for participation in the adventure.",
5113
+ progressIntro: "Review your booking page to complete missing information:",
5114
+ multiTravellerNote: "If your booking includes multiple travellers, please ensure every traveller completes their registration before departure.",
5115
+ pleaseNoteHeader: "",
5116
+ pleaseNoteBullets: [],
5117
+ bookerCoordinationNote: "",
5118
+ earlyCompletionBenefit: "",
5119
+ finalReminderTagline: "",
5120
+ disregardIfCompleted: "",
5121
+ closingThanks: ""
5122
+ },
5123
+ d_minus_2: {
5124
+ subject: "Final Reminder: Registration Required Before Departure",
5125
+ intro: "Your adventure starts in 2 days, and one or more traveller registrations remain incomplete.",
5126
+ finalReminderTagline: "This is a final reminder.",
5127
+ 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.",
5128
+ progressIntro: "Please complete all pending registrations immediately through your booking page:",
5129
+ disregardIfCompleted: "If registrations have already been completed, please disregard this email.",
5130
+ closingThanks: "We look forward to welcoming you soon.",
5131
+ contextNote: "",
5132
+ pleaseNoteHeader: "",
5133
+ pleaseNoteBullets: [],
5134
+ bookerCoordinationNote: "",
5135
+ earlyCompletionBenefit: "",
5136
+ multiTravellerNote: ""
5137
+ }
5138
+ }
5139
+ };
5140
+ function hasText(s) {
5141
+ return typeof s === "string" && s.trim().length > 0;
5142
+ }
5143
+ function hasItems(arr) {
5144
+ return Array.isArray(arr) && arr.length > 0;
5145
+ }
5146
+ function RegistrationReminderEmail({
5147
+ slug,
5148
+ recipientFirstName,
5149
+ bookingNumber,
5150
+ totalAdventures,
5151
+ totalTravellers,
5152
+ adventures,
5153
+ ctaUrl,
5154
+ agent,
5155
+ logoUrl,
5156
+ labels,
5157
+ className
5158
+ }) {
5159
+ var _a, _b, _c, _d, _e, _f, _g, _h;
5160
+ const l = __spreadProps(__spreadValues(__spreadValues({}, DEFAULT_LABELS5), labels), {
5161
+ variants: {
5162
+ 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 : {}),
5163
+ 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 : {}),
5164
+ 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 : {}),
5165
+ 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 : {})
5166
+ }
5167
+ });
5168
+ const v = l.variants[slug];
5169
+ const ctaStyle = {
5170
+ display: "inline-block",
5171
+ backgroundColor: emailTokens.primary,
5172
+ color: emailTokens.primaryForeground,
5173
+ padding: "12px 24px",
5174
+ borderRadius: "8px",
5175
+ fontSize: "14px",
5176
+ fontWeight: 700,
5177
+ textDecoration: "none",
5178
+ fontFamily: emailTokens.fontFamily
5179
+ };
5180
+ const summaryRows = [
5181
+ { label: l.bookingNumberLabel, value: `#${bookingNumber}` },
5182
+ { label: l.adventuresRowLabel, value: l.adventuresCountLabel(totalAdventures) },
5183
+ { label: l.travellersRowLabel, value: l.travellersCountLabel(totalTravellers) },
5184
+ ...(agent == null ? void 0 : agent.name) ? [{ label: l.agentRowLabel, value: agent.name }] : []
5185
+ ];
5186
+ const showPleaseNote = hasText(v.pleaseNoteHeader) && hasItems(v.pleaseNoteBullets);
5187
+ const showBookerCoord = hasText(v.bookerCoordinationNote);
5188
+ const showEarlyBenefit = hasText(v.earlyCompletionBenefit);
5189
+ const showImportant = hasText(v.importantNote);
5190
+ const showFinalTagline = hasText(v.finalReminderTagline);
5191
+ const showMultiTraveller = hasText(v.multiTravellerNote);
5192
+ const showDisregard = hasText(v.disregardIfCompleted);
5193
+ const showClosingThanks = hasText(v.closingThanks);
5194
+ return /* @__PURE__ */ jsxRuntime.jsxs(
5195
+ "div",
5196
+ {
5197
+ style: {
5198
+ maxWidth: "576px",
5199
+ margin: "0 auto",
5200
+ backgroundColor: emailTokens.white,
5201
+ color: emailTokens.foreground,
5202
+ fontFamily: emailTokens.fontFamily,
5203
+ fontSize: "16px",
5204
+ lineHeight: "1.6",
5205
+ border: `1px solid ${emailTokens.border}`,
5206
+ borderRadius: "12px",
5207
+ overflow: "hidden",
5208
+ padding: "32px"
5209
+ },
5210
+ className,
5211
+ children: [
5212
+ /* @__PURE__ */ jsxRuntime.jsx(EmailLogo, { src: logoUrl, alt: l.logoAlt }),
5213
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: l.greeting(recipientFirstName) }),
5214
+ hasText(l.intermediateHello) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: l.intermediateHello }),
5215
+ hasText(v.intro) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: v.intro }),
5216
+ hasText(v.contextNote) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: v.contextNote }),
5217
+ showPleaseNote && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { marginBottom: "24px" }, children: [
5218
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "8px", fontWeight: 700, color: emailTokens.foreground }, children: v.pleaseNoteHeader }),
5219
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { style: { paddingLeft: "20px", margin: 0 }, children: v.pleaseNoteBullets.map((b, i) => /* @__PURE__ */ jsxRuntime.jsx("li", { style: { marginBottom: "6px", color: emailTokens.bodyText }, children: b }, i)) })
5220
+ ] }),
5221
+ showBookerCoord && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: v.bookerCoordinationNote }),
5222
+ /* @__PURE__ */ jsxRuntime.jsx(
5223
+ "hr",
5224
+ {
5225
+ style: {
5226
+ border: "none",
5227
+ borderTop: `1px solid ${emailTokens.border}`,
5228
+ marginBottom: "24px"
5229
+ }
5230
+ }
5231
+ ),
5232
+ /* @__PURE__ */ jsxRuntime.jsx(BookingSummary, { heading: l.bookingSummaryHeader, rows: summaryRows }),
5233
+ showImportant && slug === "d_minus_7" && /* @__PURE__ */ jsxRuntime.jsx(
5234
+ "p",
5235
+ {
5236
+ style: {
5237
+ marginBottom: "20px",
5238
+ padding: "12px 16px",
5239
+ borderRadius: "8px",
5240
+ backgroundColor: "#fef3c7",
5241
+ color: "#78350f",
5242
+ fontWeight: 600
5243
+ },
5244
+ children: v.importantNote
5245
+ }
5246
+ ),
5247
+ hasItems(adventures) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5248
+ /* @__PURE__ */ jsxRuntime.jsx(
5249
+ "p",
5250
+ {
5251
+ style: {
5252
+ marginTop: "8px",
5253
+ marginBottom: "12px",
5254
+ fontWeight: 700,
5255
+ fontSize: "15px",
5256
+ color: emailTokens.foreground
5257
+ },
5258
+ children: l.progressHeader
5259
+ }
5260
+ ),
5261
+ hasText(v.progressIntro) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", color: emailTokens.bodyText }, children: v.progressIntro }),
5262
+ adventures.map((adv, i) => /* @__PURE__ */ jsxRuntime.jsxs(
5263
+ "div",
5264
+ {
5265
+ style: {
5266
+ marginBottom: "20px",
5267
+ padding: "16px",
5268
+ borderRadius: "8px",
5269
+ border: `1px solid ${emailTokens.border}`
5270
+ },
5271
+ children: [
5272
+ /* @__PURE__ */ jsxRuntime.jsx(
5273
+ "p",
5274
+ {
5275
+ style: {
5276
+ marginTop: 0,
5277
+ marginBottom: "4px",
5278
+ fontWeight: 700,
5279
+ color: emailTokens.foreground
5280
+ },
5281
+ children: adv.name
5282
+ }
5283
+ ),
5284
+ /* @__PURE__ */ jsxRuntime.jsxs(
5285
+ "p",
5286
+ {
5287
+ style: {
5288
+ marginTop: 0,
5289
+ marginBottom: "12px",
5290
+ color: emailTokens.mutedForeground,
5291
+ fontSize: "13px"
5292
+ },
5293
+ children: [
5294
+ l.startsLabel,
5295
+ ": ",
5296
+ adv.startDateFormatted
5297
+ ]
5298
+ }
5299
+ ),
5300
+ /* @__PURE__ */ jsxRuntime.jsx(
5301
+ RegistrationProgressBar,
5302
+ {
5303
+ completed: adv.completedTravellers,
5304
+ total: adv.totalTravellers,
5305
+ tone: adv.tone,
5306
+ pct: adv.pct,
5307
+ barHex: adv.barHex,
5308
+ labelHex: adv.labelHex,
5309
+ railHex: adv.railHex,
5310
+ label: l.completedFractionLabel(
5311
+ adv.completedTravellers,
5312
+ adv.totalTravellers
5313
+ )
5314
+ }
5315
+ )
5316
+ ]
5317
+ },
5318
+ `${adv.name}-${i}`
5319
+ ))
5320
+ ] }),
5321
+ showEarlyBenefit && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", color: emailTokens.bodyText }, children: v.earlyCompletionBenefit }),
5322
+ (showFinalTagline || showImportant && slug === "d_minus_2") && /* @__PURE__ */ jsxRuntime.jsxs(
5323
+ "div",
5324
+ {
5325
+ style: {
5326
+ marginBottom: "20px",
5327
+ padding: "12px 16px",
5328
+ borderRadius: "8px",
5329
+ backgroundColor: "#fef2f2",
5330
+ border: "1px solid #fecaca",
5331
+ color: "#7f1d1d"
5332
+ },
5333
+ children: [
5334
+ showFinalTagline && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { margin: 0, marginBottom: showImportant ? "8px" : 0, fontWeight: 700 }, children: v.finalReminderTagline }),
5335
+ showImportant && slug === "d_minus_2" && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { margin: 0 }, children: v.importantNote })
5336
+ ]
5337
+ }
5338
+ ),
5339
+ showMultiTraveller && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", color: emailTokens.bodyText }, children: v.multiTravellerNote }),
5340
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginBottom: "24px", textAlign: "left" }, children: /* @__PURE__ */ jsxRuntime.jsx("a", { href: ctaUrl, style: ctaStyle, children: l.ctaLabel }) }),
5341
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", fontSize: "14px", fontWeight: 700, color: emailTokens.bodyText }, children: (agent == null ? void 0 : agent.name) ? l.closingAgent(agent.name, {
5342
+ whatsappUrl: agent.whatsappUrl,
5343
+ email: agent.email
5344
+ }) : l.closingNoAgent }),
5345
+ showDisregard && /* @__PURE__ */ jsxRuntime.jsx(
5346
+ "p",
5347
+ {
5348
+ style: {
5349
+ marginBottom: "16px",
5350
+ color: emailTokens.mutedForeground,
5351
+ fontSize: "13px",
5352
+ fontStyle: "italic"
5353
+ },
5354
+ children: v.disregardIfCompleted
5355
+ }
5356
+ ),
5357
+ showClosingThanks && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", fontSize: "14px", color: emailTokens.bodyText }, children: v.closingThanks }),
5358
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginTop: 0, marginBottom: 0, fontSize: "14px", color: emailTokens.bodyText }, children: l.teamSignature })
5359
+ ]
5360
+ }
5361
+ );
5362
+ }
5363
+ var DEFAULT_LABELS6 = {
4943
5364
  logoAlt: "PlanetaEXO",
4944
5365
  greeting: (name) => `Hi ${name},`,
4945
5366
  receiptHeading: "Payment receipt",
@@ -4978,7 +5399,7 @@ function PaymentReceiptEmail({
4978
5399
  labels,
4979
5400
  className
4980
5401
  }) {
4981
- const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS5), labels);
5402
+ const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS6), labels);
4982
5403
  const travellersLine = travellers.filter((s) => s.trim().length > 0).join(", ");
4983
5404
  const interestRow = chargedAmount && chargedAmount !== amount;
4984
5405
  const receiptRows = [
@@ -5074,24 +5495,24 @@ function PaymentReceiptEmail({
5074
5495
  }
5075
5496
  );
5076
5497
  }
5077
- var INLINE_LINK_STYLE = {
5498
+ var INLINE_LINK_STYLE2 = {
5078
5499
  color: emailTokens.primary,
5079
5500
  textDecoration: "underline"
5080
5501
  };
5081
- function renderWhatsappLink(contact, label) {
5502
+ function renderWhatsappLink2(contact, label) {
5082
5503
  if (contact.whatsappUrl) {
5083
- return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE, children: label });
5504
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE2, children: label });
5084
5505
  }
5085
5506
  return label;
5086
5507
  }
5087
- function renderEmailLink(contact, label) {
5508
+ function renderEmailLink2(contact, label) {
5088
5509
  if (contact.email) {
5089
- return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE, children: label });
5510
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE2, children: label });
5090
5511
  }
5091
5512
  return label;
5092
5513
  }
5093
5514
  var EMPTY_CLOSING_ALTERNATIVE = (_agentName, _contact) => null;
5094
- var DEFAULT_LABELS6 = {
5515
+ var DEFAULT_LABELS7 = {
5095
5516
  logoAlt: "PlanetaEXO",
5096
5517
  greeting: (name) => `Hi ${name},`,
5097
5518
  intermediateHello: "Hope you're doing well.",
@@ -5106,9 +5527,9 @@ var DEFAULT_LABELS6 = {
5106
5527
  "If you need any assistance or would like to discuss your payment, feel free to contact your agent ",
5107
5528
  agentName,
5108
5529
  " via ",
5109
- renderWhatsappLink(contact, "WhatsApp"),
5530
+ renderWhatsappLink2(contact, "WhatsApp"),
5110
5531
  " or ",
5111
- renderEmailLink(contact, "email"),
5532
+ renderEmailLink2(contact, "email"),
5112
5533
  "."
5113
5534
  ] }),
5114
5535
  closingNoAgent: "If you need any assistance or would like to discuss your payment, feel free to contact us via WhatsApp or email.",
@@ -5152,9 +5573,9 @@ var DEFAULT_LABELS6 = {
5152
5573
  "If you are experiencing any issues with payment or need additional time, please contact your agent ",
5153
5574
  agentName,
5154
5575
  " via ",
5155
- renderWhatsappLink(contact, "WhatsApp"),
5576
+ renderWhatsappLink2(contact, "WhatsApp"),
5156
5577
  " or ",
5157
- renderEmailLink(contact, "email"),
5578
+ renderEmailLink2(contact, "email"),
5158
5579
  ". We'll be happy to assist."
5159
5580
  ] })
5160
5581
  }
@@ -5178,7 +5599,7 @@ function PaymentReminderEmail({
5178
5599
  }) {
5179
5600
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
5180
5601
  const lOverride = labels != null ? labels : {};
5181
- const variantDefaults = DEFAULT_LABELS6.variants[variant];
5602
+ const variantDefaults = DEFAULT_LABELS7.variants[variant];
5182
5603
  const variantOverride = (_b = (_a = lOverride.variants) == null ? void 0 : _a[variant]) != null ? _b : {};
5183
5604
  const variantLabels = {
5184
5605
  intro: (_c = variantOverride.intro) != null ? _c : variantDefaults.intro,
@@ -5188,19 +5609,19 @@ function PaymentReminderEmail({
5188
5609
  closingAlternative: (_f = variantOverride.closingAlternative) != null ? _f : variantDefaults.closingAlternative
5189
5610
  };
5190
5611
  const l = {
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 : {})
5612
+ logoAlt: (_g = lOverride.logoAlt) != null ? _g : DEFAULT_LABELS7.logoAlt,
5613
+ greeting: (_h = lOverride.greeting) != null ? _h : DEFAULT_LABELS7.greeting,
5614
+ intermediateHello: (_i = lOverride.intermediateHello) != null ? _i : DEFAULT_LABELS7.intermediateHello,
5615
+ bookingSummaryHeader: (_j = lOverride.bookingSummaryHeader) != null ? _j : DEFAULT_LABELS7.bookingSummaryHeader,
5616
+ amountAlreadyPaidLabel: (_k = lOverride.amountAlreadyPaidLabel) != null ? _k : DEFAULT_LABELS7.amountAlreadyPaidLabel,
5617
+ remainingBalanceDueLabel: (_l = lOverride.remainingBalanceDueLabel) != null ? _l : DEFAULT_LABELS7.remainingBalanceDueLabel,
5618
+ totalBookingAmountLabel: (_m = lOverride.totalBookingAmountLabel) != null ? _m : DEFAULT_LABELS7.totalBookingAmountLabel,
5619
+ paymentDetailsHeading: (_n = lOverride.paymentDetailsHeading) != null ? _n : DEFAULT_LABELS7.paymentDetailsHeading,
5620
+ ctaLabel: (_o = lOverride.ctaLabel) != null ? _o : DEFAULT_LABELS7.ctaLabel,
5621
+ teamSignature: (_p = lOverride.teamSignature) != null ? _p : DEFAULT_LABELS7.teamSignature,
5622
+ closingAgent: (_q = lOverride.closingAgent) != null ? _q : DEFAULT_LABELS7.closingAgent,
5623
+ closingNoAgent: (_r = lOverride.closingNoAgent) != null ? _r : DEFAULT_LABELS7.closingNoAgent,
5624
+ adventureCard: __spreadValues(__spreadValues({}, DEFAULT_LABELS7.adventureCard), (_s = lOverride.adventureCard) != null ? _s : {})
5204
5625
  };
5205
5626
  const ctaStyle = {
5206
5627
  display: "inline-block",
@@ -6016,7 +6437,7 @@ function BookingForm({
6016
6437
  }
6017
6438
  );
6018
6439
  }
6019
- var DEFAULT_LABELS7 = {
6440
+ var DEFAULT_LABELS8 = {
6020
6441
  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.",
6021
6442
  detailsSectionTitle: "Your details",
6022
6443
  tripInfoSectionTitle: "Trip info",
@@ -6681,7 +7102,7 @@ function RegistrationForm({
6681
7102
  }) {
6682
7103
  var _a;
6683
7104
  const L = React25__namespace.useMemo(
6684
- () => __spreadValues(__spreadValues({}, DEFAULT_LABELS7), labels != null ? labels : {}),
7105
+ () => __spreadValues(__spreadValues({}, DEFAULT_LABELS8), labels != null ? labels : {}),
6685
7106
  [labels]
6686
7107
  );
6687
7108
  const sortedFields = React25__namespace.useMemo(
@@ -11291,6 +11712,7 @@ exports.BookingDetails = BookingDetails;
11291
11712
  exports.BookingForm = BookingForm;
11292
11713
  exports.BookingOtpEmail = BookingOtpEmail;
11293
11714
  exports.BookingShell = BookingShell;
11715
+ exports.BookingSummary = BookingSummary;
11294
11716
  exports.Button = Button;
11295
11717
  exports.COUNTRIES = COUNTRIES;
11296
11718
  exports.CounterField = CounterField;
@@ -11326,6 +11748,8 @@ exports.PhoneCountrySelect = PhoneCountrySelect;
11326
11748
  exports.PhotoGallery = PhotoGallery;
11327
11749
  exports.PricingTrip = PricingTrip;
11328
11750
  exports.RegistrationForm = RegistrationForm;
11751
+ exports.RegistrationProgressBar = RegistrationProgressBar;
11752
+ exports.RegistrationReminderEmail = RegistrationReminderEmail;
11329
11753
  exports.RegistrationSuccessCard = RegistrationSuccessCard;
11330
11754
  exports.SiteHeader = SiteHeader;
11331
11755
  exports.TERMS_ACCEPT_KEY = TERMS_ACCEPT_KEY;