@planetaexo/design-system 0.48.2 → 0.50.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
@@ -248,7 +248,7 @@ function DialogContent(_a) {
248
248
  Button2,
249
249
  {
250
250
  variant: "ghost",
251
- className: "absolute top-2 right-2",
251
+ className: "absolute top-2 right-2 cursor-pointer",
252
252
  size: "icon-sm"
253
253
  }
254
254
  ),
@@ -1295,11 +1295,13 @@ function AdventureCard({
1295
1295
  labels,
1296
1296
  interactionsDisabled
1297
1297
  }) {
1298
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
1298
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
1299
1299
  const isControlled = (_b = (_a = adventure.optionals) == null ? void 0 : _a.some((o) => o.onCheckedChange !== void 0)) != null ? _b : false;
1300
1300
  const [checkedInternal, setCheckedInternal] = React28__namespace.useState(
1301
1301
  new Set((_d = (_c = adventure.optionals) == null ? void 0 : _c.filter((o) => o.defaultChecked).map((o) => o.id)) != null ? _d : [])
1302
1302
  );
1303
+ const [openDescriptionId, setOpenDescriptionId] = React28__namespace.useState(null);
1304
+ const openDescriptionOptional = openDescriptionId ? (_e = adventure.optionals) == null ? void 0 : _e.find((o) => o.id === openDescriptionId) : void 0;
1303
1305
  const isChecked = (opt) => {
1304
1306
  var _a2;
1305
1307
  return isControlled ? (_a2 = opt.checked) != null ? _a2 : false : checkedInternal.has(opt.id);
@@ -1321,7 +1323,7 @@ function AdventureCard({
1321
1323
  "img",
1322
1324
  {
1323
1325
  src: adventure.image,
1324
- alt: (_e = adventure.imageAlt) != null ? _e : adventure.title,
1326
+ alt: (_f = adventure.imageAlt) != null ? _f : adventure.title,
1325
1327
  className: "w-full h-full object-cover"
1326
1328
  }
1327
1329
  ) }),
@@ -1336,7 +1338,7 @@ function AdventureCard({
1336
1338
  className: "flex items-center gap-1.5 rounded-full border border-border px-3 py-1 text-xs text-muted-foreground font-ui hover:border-destructive hover:text-destructive transition-colors",
1337
1339
  children: [
1338
1340
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, { className: "w-3 h-3" }),
1339
- (_f = labels == null ? void 0 : labels.remove) != null ? _f : "Remove"
1341
+ (_g = labels == null ? void 0 : labels.remove) != null ? _g : "Remove"
1340
1342
  ]
1341
1343
  }
1342
1344
  )
@@ -1353,9 +1355,9 @@ function AdventureCard({
1353
1355
  adventure.location
1354
1356
  ] }),
1355
1357
  adventure.optionals && adventure.optionals.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 rounded-xl border border-border bg-muted/30 p-4 flex flex-col gap-3", children: [
1356
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest", children: (_g = labels == null ? void 0 : labels.availableOptionals) != null ? _g : "Available optionals" }),
1358
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest", children: (_h = labels == null ? void 0 : labels.availableOptionals) != null ? _h : "Available optionals" }),
1357
1359
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-2", children: adventure.optionals.map((opt) => {
1358
- var _a2, _b2, _c2, _d2, _e2;
1360
+ var _a2, _b2, _c2, _d2, _e2, _f2, _g2, _h2;
1359
1361
  const checked = isChecked(opt);
1360
1362
  const minQty = (_a2 = opt.minQuantity) != null ? _a2 : 1;
1361
1363
  const maxQty = (_b2 = opt.maxQuantity) != null ? _b2 : 50;
@@ -1363,6 +1365,7 @@ function AdventureCard({
1363
1365
  const currentQty = (_c2 = opt.quantity) != null ? _c2 : minQty;
1364
1366
  const canDec = currentQty > minQty;
1365
1367
  const canInc = currentQty < maxQty;
1368
+ const hasDescription = !!((_d2 = opt.description) == null ? void 0 : _d2.trim());
1366
1369
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-wrap items-center gap-x-3 gap-y-1.5", interactionsDisabled && "opacity-60"), children: [
1367
1370
  /* @__PURE__ */ jsxRuntime.jsxs("label", { className: cn("flex items-center gap-3 group", interactionsDisabled ? "cursor-not-allowed" : "cursor-pointer"), children: [
1368
1371
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1388,6 +1391,19 @@ function AdventureCard({
1388
1391
  ] })
1389
1392
  ] })
1390
1393
  ] }),
1394
+ hasDescription && /* @__PURE__ */ jsxRuntime.jsx(
1395
+ "button",
1396
+ {
1397
+ type: "button",
1398
+ onClick: (e) => {
1399
+ e.stopPropagation();
1400
+ setOpenDescriptionId(opt.id);
1401
+ },
1402
+ "aria-label": (_f2 = (_e2 = labels == null ? void 0 : labels.optionalInfo) == null ? void 0 : _e2.triggerAriaLabel) != null ? _f2 : "More info",
1403
+ className: "inline-flex cursor-pointer items-center justify-center text-muted-foreground hover:text-primary transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded",
1404
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Info, { className: "w-4 h-4" })
1405
+ }
1406
+ ),
1391
1407
  showStepper && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1 ml-auto", children: [
1392
1408
  /* @__PURE__ */ jsxRuntime.jsx(
1393
1409
  "button",
@@ -1398,7 +1414,7 @@ function AdventureCard({
1398
1414
  return !interactionsDisabled && canDec && ((_a3 = opt.onQuantityChange) == null ? void 0 : _a3.call(opt, opt.id, currentQty - 1));
1399
1415
  },
1400
1416
  disabled: interactionsDisabled || !canDec,
1401
- "aria-label": (_d2 = opt.decreaseQuantityLabel) != null ? _d2 : "Decrease quantity",
1417
+ "aria-label": (_g2 = opt.decreaseQuantityLabel) != null ? _g2 : "Decrease quantity",
1402
1418
  className: cn(
1403
1419
  "h-7 w-7 rounded border border-border flex items-center justify-center text-sm font-semibold",
1404
1420
  "transition-colors",
@@ -1417,7 +1433,7 @@ function AdventureCard({
1417
1433
  return !interactionsDisabled && canInc && ((_a3 = opt.onQuantityChange) == null ? void 0 : _a3.call(opt, opt.id, currentQty + 1));
1418
1434
  },
1419
1435
  disabled: interactionsDisabled || !canInc,
1420
- "aria-label": (_e2 = opt.increaseQuantityLabel) != null ? _e2 : "Increase quantity",
1436
+ "aria-label": (_h2 = opt.increaseQuantityLabel) != null ? _h2 : "Increase quantity",
1421
1437
  className: cn(
1422
1438
  "h-7 w-7 rounded border border-border flex items-center justify-center text-sm font-semibold",
1423
1439
  "transition-colors",
@@ -1432,12 +1448,31 @@ function AdventureCard({
1432
1448
  opt.scheduledAtLabel
1433
1449
  ] })
1434
1450
  ] }, opt.id);
1435
- }) })
1451
+ }) }),
1452
+ /* @__PURE__ */ jsxRuntime.jsx(
1453
+ Dialog,
1454
+ {
1455
+ open: openDescriptionId !== null,
1456
+ onOpenChange: (open) => !open && setOpenDescriptionId(null),
1457
+ children: /* @__PURE__ */ jsxRuntime.jsxs(DialogContent, { className: "max-w-lg max-h-[85vh] overflow-y-auto p-6 sm:max-w-lg", children: [
1458
+ /* @__PURE__ */ jsxRuntime.jsxs(DialogHeader, { className: "gap-3 pr-8", children: [
1459
+ /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { className: "font-heading text-xl font-bold text-foreground leading-snug", children: (_i = openDescriptionOptional == null ? void 0 : openDescriptionOptional.label) != null ? _i : "" }),
1460
+ (openDescriptionOptional == null ? void 0 : openDescriptionOptional.pricePerPerson) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex w-fit items-center rounded-full bg-primary/10 px-3 py-1 text-sm font-semibold text-primary font-heading", children: openDescriptionOptional.pricePerPerson })
1461
+ ] }),
1462
+ /* @__PURE__ */ jsxRuntime.jsx(Separator, {}),
1463
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
1464
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest", children: (_k = (_j = labels == null ? void 0 : labels.optionalInfo) == null ? void 0 : _j.descriptionLabel) != null ? _k : "Description" }),
1465
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-sans text-foreground leading-relaxed whitespace-pre-wrap", children: (_l = openDescriptionOptional == null ? void 0 : openDescriptionOptional.description) != null ? _l : "" })
1466
+ ] }),
1467
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(DialogClose, { className: "cursor-pointer px-4 py-2 rounded-lg bg-primary text-primary-foreground text-sm font-heading font-semibold hover:bg-primary/90 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: (_n = (_m = labels == null ? void 0 : labels.optionalInfo) == null ? void 0 : _m.closeLabel) != null ? _n : "Close" }) })
1468
+ ] })
1469
+ }
1470
+ )
1436
1471
  ] }),
1437
1472
  (adventure.description || adventure.detailsSlot) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1438
1473
  /* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "my-1" }),
1439
1474
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1440
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-3", children: (_h = adventure.itineraryLabel) != null ? _h : "Details" }),
1475
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-3", children: (_o = adventure.itineraryLabel) != null ? _o : "Details" }),
1441
1476
  adventure.description && !adventure.detailsSlot && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-base text-foreground/80 leading-snug font-sans", children: adventure.description }),
1442
1477
  adventure.detailsSlot && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(
1443
1478
  "text-foreground",
@@ -1463,21 +1498,21 @@ function AdventureCard({
1463
1498
  ] })
1464
1499
  ] }),
1465
1500
  adventure.included && adventure.included.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
1466
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (_i = adventure.includedLabel) != null ? _i : "What's included" }),
1501
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (_p = adventure.includedLabel) != null ? _p : "What's included" }),
1467
1502
  /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-1.5", children: adventure.included.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start gap-2 text-base text-foreground/80 font-sans", children: [
1468
1503
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "w-4 h-4 text-primary shrink-0 mt-1" }),
1469
1504
  item
1470
1505
  ] }, i)) })
1471
1506
  ] }),
1472
1507
  adventure.notIncluded && adventure.notIncluded.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
1473
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (_j = adventure.notIncludedLabel) != null ? _j : "What's not included" }),
1508
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (_q = adventure.notIncludedLabel) != null ? _q : "What's not included" }),
1474
1509
  /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-1.5", children: adventure.notIncluded.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start gap-2 text-base text-foreground/80 font-sans", children: [
1475
1510
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, { className: "w-4 h-4 text-destructive shrink-0 mt-1" }),
1476
1511
  item
1477
1512
  ] }, i)) })
1478
1513
  ] }),
1479
1514
  adventure.cancellationPolicy && adventure.cancellationPolicy.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
1480
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (_k = adventure.cancellationPolicyLabel) != null ? _k : "Cancellation policy" }),
1515
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (_r = adventure.cancellationPolicyLabel) != null ? _r : "Cancellation policy" }),
1481
1516
  /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-1.5", children: adventure.cancellationPolicy.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start gap-2 text-base text-muted-foreground font-sans", children: [
1482
1517
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-primary shrink-0 mt-2.5" }),
1483
1518
  item
@@ -5234,6 +5269,234 @@ function BookingCreatedEmail({
5234
5269
  }
5235
5270
  );
5236
5271
  }
5272
+ var INLINE_LINK_STYLE = {
5273
+ color: emailTokens.primary,
5274
+ textDecoration: "underline"
5275
+ };
5276
+ function renderWhatsappLink(contact, label) {
5277
+ if (contact.whatsappUrl) {
5278
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE, children: label });
5279
+ }
5280
+ return label;
5281
+ }
5282
+ function renderEmailLink(contact, label) {
5283
+ if (contact.email) {
5284
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE, children: label });
5285
+ }
5286
+ return label;
5287
+ }
5288
+ function hasText(s) {
5289
+ return typeof s === "string" && s.trim().length > 0;
5290
+ }
5291
+ var DEFAULT_LABELS5 = {
5292
+ logoAlt: "PlanetaEXO",
5293
+ greeting: (recipientName) => `Hi ${recipientName},`,
5294
+ title: "Your booking has been cancelled",
5295
+ intro: (bookingRef) => `We're writing to let you know that your booking ${bookingRef} has been cancelled.`,
5296
+ summaryHeading: "Booking details",
5297
+ bookingNumberLabel: "Booking number",
5298
+ adventuresLabel: "Adventure",
5299
+ datesLabel: "Dates",
5300
+ travellersLabel: "Travellers",
5301
+ refundHeading: "Refund registered",
5302
+ refundAmountLabel: "Refund amount",
5303
+ refundNote: "As per our cancellation policy.",
5304
+ closingAgent: (agentName, contact) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5305
+ "If you have any questions, your agent ",
5306
+ agentName,
5307
+ " is available via",
5308
+ " ",
5309
+ renderWhatsappLink(contact, "WhatsApp"),
5310
+ " or ",
5311
+ renderEmailLink(contact, "email"),
5312
+ "."
5313
+ ] }),
5314
+ closingNoAgent: "If you have any questions, our team is available via WhatsApp or email.",
5315
+ teamSignature: "The PlanetaEXO Team"
5316
+ };
5317
+ function BookingCancellationEmail({
5318
+ recipientName,
5319
+ bookingRef,
5320
+ adventures,
5321
+ travellersCount,
5322
+ refundAmount,
5323
+ agentName,
5324
+ agentContactLinks,
5325
+ logoUrl,
5326
+ labels,
5327
+ className
5328
+ }) {
5329
+ const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS5), labels);
5330
+ const adventureLines = adventures.map((a) => a.name).join("\n");
5331
+ const dateLines = adventures.map((a) => `${a.startDate} \u2013 ${a.endDate}`).join("\n");
5332
+ const summaryRows = [
5333
+ {
5334
+ label: l.bookingNumberLabel,
5335
+ value: `#${bookingRef}`,
5336
+ valueColor: emailTokens.primary
5337
+ },
5338
+ { label: l.adventuresLabel, value: adventureLines },
5339
+ { label: l.datesLabel, value: dateLines },
5340
+ { label: l.travellersLabel, value: travellersCount }
5341
+ ];
5342
+ const showRefund = hasText(refundAmount);
5343
+ const agentNameTrimmed = agentName == null ? void 0 : agentName.trim();
5344
+ const contact = agentContactLinks != null ? agentContactLinks : {};
5345
+ const closingNode = agentNameTrimmed ? l.closingAgent(agentNameTrimmed, contact) : l.closingNoAgent;
5346
+ const sectionDivider = /* @__PURE__ */ jsxRuntime.jsx(
5347
+ "hr",
5348
+ {
5349
+ style: {
5350
+ border: "none",
5351
+ borderTop: `1px solid ${emailTokens.border}`,
5352
+ marginTop: 0,
5353
+ marginBottom: "24px"
5354
+ }
5355
+ }
5356
+ );
5357
+ return /* @__PURE__ */ jsxRuntime.jsxs(
5358
+ "div",
5359
+ {
5360
+ style: {
5361
+ maxWidth: "576px",
5362
+ margin: "0 auto",
5363
+ backgroundColor: emailTokens.white,
5364
+ color: emailTokens.foreground,
5365
+ fontFamily: emailTokens.fontFamily,
5366
+ fontSize: "16px",
5367
+ lineHeight: "1.6",
5368
+ border: `1px solid ${emailTokens.border}`,
5369
+ borderRadius: "12px",
5370
+ overflow: "hidden",
5371
+ padding: "32px"
5372
+ },
5373
+ className,
5374
+ children: [
5375
+ /* @__PURE__ */ jsxRuntime.jsx(EmailLogo, { src: logoUrl, alt: l.logoAlt }),
5376
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: l.greeting(recipientName) }),
5377
+ /* @__PURE__ */ jsxRuntime.jsx(
5378
+ "p",
5379
+ {
5380
+ style: {
5381
+ marginTop: 0,
5382
+ marginBottom: "16px",
5383
+ fontWeight: 700,
5384
+ color: emailTokens.foreground,
5385
+ fontSize: "20px",
5386
+ lineHeight: "1.3",
5387
+ fontFamily: emailTokens.fontFamily
5388
+ },
5389
+ children: l.title
5390
+ }
5391
+ ),
5392
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "24px" }, children: l.intro(`#${bookingRef}`) }),
5393
+ sectionDivider,
5394
+ /* @__PURE__ */ jsxRuntime.jsx(BookingSummary, { heading: l.summaryHeading, rows: summaryRows }),
5395
+ showRefund && /* @__PURE__ */ jsxRuntime.jsxs(
5396
+ "div",
5397
+ {
5398
+ style: {
5399
+ marginBottom: "24px",
5400
+ padding: "16px 20px",
5401
+ borderRadius: "12px",
5402
+ border: `1px solid ${emailTokens.border}`,
5403
+ backgroundColor: emailTokens.muted
5404
+ },
5405
+ children: [
5406
+ /* @__PURE__ */ jsxRuntime.jsx(
5407
+ "p",
5408
+ {
5409
+ style: {
5410
+ margin: "0 0 8px 0",
5411
+ fontSize: "12px",
5412
+ fontWeight: 700,
5413
+ color: emailTokens.mutedForeground,
5414
+ textTransform: "uppercase",
5415
+ letterSpacing: "0.08em",
5416
+ fontFamily: emailTokens.fontFamily
5417
+ },
5418
+ children: l.refundHeading
5419
+ }
5420
+ ),
5421
+ /* @__PURE__ */ jsxRuntime.jsx(
5422
+ "table",
5423
+ {
5424
+ cellPadding: 0,
5425
+ cellSpacing: 0,
5426
+ style: { width: "100%", borderCollapse: "collapse" },
5427
+ children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
5428
+ /* @__PURE__ */ jsxRuntime.jsx(
5429
+ "td",
5430
+ {
5431
+ style: {
5432
+ fontSize: "14px",
5433
+ color: emailTokens.bodyText,
5434
+ verticalAlign: "middle"
5435
+ },
5436
+ children: l.refundAmountLabel
5437
+ }
5438
+ ),
5439
+ /* @__PURE__ */ jsxRuntime.jsx(
5440
+ "td",
5441
+ {
5442
+ style: {
5443
+ fontSize: "18px",
5444
+ fontWeight: 700,
5445
+ color: emailTokens.foreground,
5446
+ textAlign: "right",
5447
+ verticalAlign: "middle",
5448
+ whiteSpace: "nowrap"
5449
+ },
5450
+ children: refundAmount
5451
+ }
5452
+ )
5453
+ ] }) })
5454
+ }
5455
+ ),
5456
+ hasText(l.refundNote) && /* @__PURE__ */ jsxRuntime.jsx(
5457
+ "p",
5458
+ {
5459
+ style: {
5460
+ margin: "8px 0 0 0",
5461
+ fontSize: "12px",
5462
+ color: emailTokens.mutedForeground,
5463
+ fontStyle: "italic"
5464
+ },
5465
+ children: l.refundNote
5466
+ }
5467
+ )
5468
+ ]
5469
+ }
5470
+ ),
5471
+ sectionDivider,
5472
+ /* @__PURE__ */ jsxRuntime.jsx(
5473
+ "p",
5474
+ {
5475
+ style: {
5476
+ marginBottom: "16px",
5477
+ fontSize: "14px",
5478
+ fontWeight: 700,
5479
+ color: emailTokens.bodyText
5480
+ },
5481
+ children: closingNode
5482
+ }
5483
+ ),
5484
+ /* @__PURE__ */ jsxRuntime.jsx(
5485
+ "p",
5486
+ {
5487
+ style: {
5488
+ marginTop: 0,
5489
+ marginBottom: 0,
5490
+ fontSize: "14px",
5491
+ color: emailTokens.bodyText
5492
+ },
5493
+ children: l.teamSignature
5494
+ }
5495
+ )
5496
+ ]
5497
+ }
5498
+ );
5499
+ }
5237
5500
  function RegistrationProgressBar({
5238
5501
  tone,
5239
5502
  pct,
@@ -5296,23 +5559,23 @@ function RegistrationProgressBar({
5296
5559
  }
5297
5560
  ) });
5298
5561
  }
5299
- var INLINE_LINK_STYLE = {
5562
+ var INLINE_LINK_STYLE2 = {
5300
5563
  color: emailTokens.primary,
5301
5564
  textDecoration: "underline"
5302
5565
  };
5303
- function renderWhatsappLink(contact, label) {
5566
+ function renderWhatsappLink2(contact, label) {
5304
5567
  if (contact.whatsappUrl) {
5305
- return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE, children: label });
5568
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE2, children: label });
5306
5569
  }
5307
5570
  return label;
5308
5571
  }
5309
- function renderEmailLink(contact, label) {
5572
+ function renderEmailLink2(contact, label) {
5310
5573
  if (contact.email) {
5311
- return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE, children: label });
5574
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE2, children: label });
5312
5575
  }
5313
5576
  return label;
5314
5577
  }
5315
- var DEFAULT_LABELS5 = {
5578
+ var DEFAULT_LABELS6 = {
5316
5579
  logoAlt: "PlanetaEXO",
5317
5580
  greeting: (n) => `Hi ${n},`,
5318
5581
  intermediateHello: "Hope you're doing well.",
@@ -5331,9 +5594,9 @@ var DEFAULT_LABELS5 = {
5331
5594
  "If you need any assistance with the traveller registrations, feel free to contact your agent ",
5332
5595
  agentName,
5333
5596
  " via ",
5334
- renderWhatsappLink(contact, "WhatsApp"),
5597
+ renderWhatsappLink2(contact, "WhatsApp"),
5335
5598
  " or ",
5336
- renderEmailLink(contact, "email"),
5599
+ renderEmailLink2(contact, "email"),
5337
5600
  "."
5338
5601
  ] }),
5339
5602
  closingNoAgent: "If you need any assistance with the traveller registrations, feel free to contact us via WhatsApp or email.",
@@ -5406,7 +5669,7 @@ var DEFAULT_LABELS5 = {
5406
5669
  }
5407
5670
  }
5408
5671
  };
5409
- function hasText(s) {
5672
+ function hasText2(s) {
5410
5673
  return typeof s === "string" && s.trim().length > 0;
5411
5674
  }
5412
5675
  function hasItems(arr) {
@@ -5426,12 +5689,12 @@ function RegistrationReminderEmail({
5426
5689
  className
5427
5690
  }) {
5428
5691
  var _a, _b, _c, _d, _e, _f, _g, _h;
5429
- const l = __spreadProps(__spreadValues(__spreadValues({}, DEFAULT_LABELS5), labels), {
5692
+ const l = __spreadProps(__spreadValues(__spreadValues({}, DEFAULT_LABELS6), labels), {
5430
5693
  variants: {
5431
- 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 : {}),
5432
- 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 : {}),
5433
- 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 : {}),
5434
- 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 : {})
5694
+ d_minus_30: __spreadValues(__spreadValues({}, DEFAULT_LABELS6.variants.d_minus_30), (_b = (_a = labels == null ? void 0 : labels.variants) == null ? void 0 : _a.d_minus_30) != null ? _b : {}),
5695
+ d_minus_15: __spreadValues(__spreadValues({}, DEFAULT_LABELS6.variants.d_minus_15), (_d = (_c = labels == null ? void 0 : labels.variants) == null ? void 0 : _c.d_minus_15) != null ? _d : {}),
5696
+ d_minus_7: __spreadValues(__spreadValues({}, DEFAULT_LABELS6.variants.d_minus_7), (_f = (_e = labels == null ? void 0 : labels.variants) == null ? void 0 : _e.d_minus_7) != null ? _f : {}),
5697
+ d_minus_2: __spreadValues(__spreadValues({}, DEFAULT_LABELS6.variants.d_minus_2), (_h = (_g = labels == null ? void 0 : labels.variants) == null ? void 0 : _g.d_minus_2) != null ? _h : {})
5435
5698
  }
5436
5699
  });
5437
5700
  const v = l.variants[slug];
@@ -5452,14 +5715,14 @@ function RegistrationReminderEmail({
5452
5715
  { label: l.travellersRowLabel, value: l.travellersCountLabel(totalTravellers) },
5453
5716
  ...(agent == null ? void 0 : agent.name) ? [{ label: l.agentRowLabel, value: agent.name }] : []
5454
5717
  ];
5455
- const showPleaseNote = hasText(v.pleaseNoteHeader) && hasItems(v.pleaseNoteBullets);
5456
- const showBookerCoord = hasText(v.bookerCoordinationNote);
5457
- const showEarlyBenefit = hasText(v.earlyCompletionBenefit);
5458
- const showImportant = hasText(v.importantNote);
5459
- const showFinalTagline = hasText(v.finalReminderTagline);
5460
- hasText(v.multiTravellerNote);
5461
- const showDisregard = hasText(v.disregardIfCompleted);
5462
- const showClosingThanks = hasText(v.closingThanks);
5718
+ const showPleaseNote = hasText2(v.pleaseNoteHeader) && hasItems(v.pleaseNoteBullets);
5719
+ const showBookerCoord = hasText2(v.bookerCoordinationNote);
5720
+ const showEarlyBenefit = hasText2(v.earlyCompletionBenefit);
5721
+ const showImportant = hasText2(v.importantNote);
5722
+ const showFinalTagline = hasText2(v.finalReminderTagline);
5723
+ hasText2(v.multiTravellerNote);
5724
+ const showDisregard = hasText2(v.disregardIfCompleted);
5725
+ const showClosingThanks = hasText2(v.closingThanks);
5463
5726
  const sectionDivider = /* @__PURE__ */ jsxRuntime.jsx(
5464
5727
  "hr",
5465
5728
  {
@@ -5471,7 +5734,7 @@ function RegistrationReminderEmail({
5471
5734
  }
5472
5735
  }
5473
5736
  );
5474
- const hasIntroBlock = hasText(v.intro) || hasText(v.contextNote);
5737
+ const hasIntroBlock = hasText2(v.intro) || hasText2(v.contextNote);
5475
5738
  const hasPleaseNote = showPleaseNote;
5476
5739
  const hasD7Highlight = showImportant && slug === "d_minus_7";
5477
5740
  const hasD2Highlight = showFinalTagline || showImportant && slug === "d_minus_2";
@@ -5495,9 +5758,9 @@ function RegistrationReminderEmail({
5495
5758
  children: [
5496
5759
  /* @__PURE__ */ jsxRuntime.jsx(EmailLogo, { src: logoUrl, alt: l.logoAlt }),
5497
5760
  /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: l.greeting(recipientFirstName) }),
5498
- hasText(l.intermediateHello) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: l.intermediateHello }),
5499
- hasText(v.intro) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: v.intro }),
5500
- hasText(v.contextNote) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: v.contextNote }),
5761
+ hasText2(l.intermediateHello) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: l.intermediateHello }),
5762
+ hasText2(v.intro) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: v.intro }),
5763
+ hasText2(v.contextNote) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: v.contextNote }),
5501
5764
  hasIntroBlock && sectionDivider,
5502
5765
  slug === "d_minus_15" && showBookerCoord && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: v.bookerCoordinationNote }),
5503
5766
  hasItems(adventures) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
@@ -5515,7 +5778,7 @@ function RegistrationReminderEmail({
5515
5778
  children: l.progressHeader
5516
5779
  }
5517
5780
  ),
5518
- hasText(v.progressIntro) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", color: emailTokens.bodyText }, children: v.progressIntro }),
5781
+ hasText2(v.progressIntro) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", color: emailTokens.bodyText }, children: v.progressIntro }),
5519
5782
  adventures.map((adv, i) => /* @__PURE__ */ jsxRuntime.jsxs(
5520
5783
  "div",
5521
5784
  {
@@ -5651,23 +5914,23 @@ function RegistrationReminderEmail({
5651
5914
  }
5652
5915
  );
5653
5916
  }
5654
- var INLINE_LINK_STYLE2 = {
5917
+ var INLINE_LINK_STYLE3 = {
5655
5918
  color: emailTokens.primary,
5656
5919
  textDecoration: "underline"
5657
5920
  };
5658
- function renderWhatsappLink2(contact, label) {
5921
+ function renderWhatsappLink3(contact, label) {
5659
5922
  if (contact.whatsappUrl) {
5660
- return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE2, children: label });
5923
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE3, children: label });
5661
5924
  }
5662
5925
  return label;
5663
5926
  }
5664
- function renderEmailLink2(contact, label) {
5927
+ function renderEmailLink3(contact, label) {
5665
5928
  if (contact.email) {
5666
- return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE2, children: label });
5929
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE3, children: label });
5667
5930
  }
5668
5931
  return label;
5669
5932
  }
5670
- var DEFAULT_LABELS6 = {
5933
+ var DEFAULT_LABELS7 = {
5671
5934
  logoAlt: "PlanetaEXO",
5672
5935
  greeting: (n) => `Hi ${n},`,
5673
5936
  tripDetailsHeader: "\u{1F4CB} Trip details",
@@ -5683,9 +5946,9 @@ var DEFAULT_LABELS6 = {
5683
5946
  "If you have questions, your agent ",
5684
5947
  agentName,
5685
5948
  " is available via ",
5686
- renderWhatsappLink2(contact, "WhatsApp"),
5949
+ renderWhatsappLink3(contact, "WhatsApp"),
5687
5950
  " or ",
5688
- renderEmailLink2(contact, "email"),
5951
+ renderEmailLink3(contact, "email"),
5689
5952
  "."
5690
5953
  ] }),
5691
5954
  closingNoAgent: "If you have questions or need assistance, our team is available via WhatsApp or email.",
@@ -5733,7 +5996,7 @@ var DEFAULT_LABELS6 = {
5733
5996
  }
5734
5997
  }
5735
5998
  };
5736
- function hasText2(s) {
5999
+ function hasText3(s) {
5737
6000
  return typeof s === "string" && s.trim().length > 0;
5738
6001
  }
5739
6002
  function RegistrationReminderIndividualEmail({
@@ -5754,12 +6017,12 @@ function RegistrationReminderIndividualEmail({
5754
6017
  className
5755
6018
  }) {
5756
6019
  var _a, _b, _c, _d, _e, _f, _g, _h;
5757
- const l = __spreadProps(__spreadValues(__spreadValues({}, DEFAULT_LABELS6), labels), {
6020
+ const l = __spreadProps(__spreadValues(__spreadValues({}, DEFAULT_LABELS7), labels), {
5758
6021
  variants: {
5759
- d_minus_30: __spreadValues(__spreadValues({}, DEFAULT_LABELS6.variants.d_minus_30), (_b = (_a = labels == null ? void 0 : labels.variants) == null ? void 0 : _a.d_minus_30) != null ? _b : {}),
5760
- d_minus_15: __spreadValues(__spreadValues({}, DEFAULT_LABELS6.variants.d_minus_15), (_d = (_c = labels == null ? void 0 : labels.variants) == null ? void 0 : _c.d_minus_15) != null ? _d : {}),
5761
- d_minus_7: __spreadValues(__spreadValues({}, DEFAULT_LABELS6.variants.d_minus_7), (_f = (_e = labels == null ? void 0 : labels.variants) == null ? void 0 : _e.d_minus_7) != null ? _f : {}),
5762
- d_minus_2: __spreadValues(__spreadValues({}, DEFAULT_LABELS6.variants.d_minus_2), (_h = (_g = labels == null ? void 0 : labels.variants) == null ? void 0 : _g.d_minus_2) != null ? _h : {})
6022
+ d_minus_30: __spreadValues(__spreadValues({}, DEFAULT_LABELS7.variants.d_minus_30), (_b = (_a = labels == null ? void 0 : labels.variants) == null ? void 0 : _a.d_minus_30) != null ? _b : {}),
6023
+ d_minus_15: __spreadValues(__spreadValues({}, DEFAULT_LABELS7.variants.d_minus_15), (_d = (_c = labels == null ? void 0 : labels.variants) == null ? void 0 : _c.d_minus_15) != null ? _d : {}),
6024
+ d_minus_7: __spreadValues(__spreadValues({}, DEFAULT_LABELS7.variants.d_minus_7), (_f = (_e = labels == null ? void 0 : labels.variants) == null ? void 0 : _e.d_minus_7) != null ? _f : {}),
6025
+ d_minus_2: __spreadValues(__spreadValues({}, DEFAULT_LABELS7.variants.d_minus_2), (_h = (_g = labels == null ? void 0 : labels.variants) == null ? void 0 : _g.d_minus_2) != null ? _h : {})
5763
6026
  }
5764
6027
  });
5765
6028
  const v = l.variants[slug];
@@ -5779,7 +6042,7 @@ function RegistrationReminderIndividualEmail({
5779
6042
  { label: l.leadTravellerLabel, value: leadTravellerName },
5780
6043
  { label: l.adventureLabel, value: adventureName },
5781
6044
  { label: l.startingDateLabel, value: startDateFormatted },
5782
- ...hasText2(partnerName) ? [{ label: l.partnerLabel, value: partnerName }] : []
6045
+ ...hasText3(partnerName) ? [{ label: l.partnerLabel, value: partnerName }] : []
5783
6046
  ];
5784
6047
  const sectionDivider = /* @__PURE__ */ jsxRuntime.jsx(
5785
6048
  "hr",
@@ -5814,7 +6077,7 @@ function RegistrationReminderIndividualEmail({
5814
6077
  children: [
5815
6078
  /* @__PURE__ */ jsxRuntime.jsx(EmailLogo, { src: logoUrl, alt: l.logoAlt }),
5816
6079
  /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: l.greeting(recipientFirstName) }),
5817
- hasText2(routingNote) && /* @__PURE__ */ jsxRuntime.jsx(
6080
+ hasText3(routingNote) && /* @__PURE__ */ jsxRuntime.jsx(
5818
6081
  "p",
5819
6082
  {
5820
6083
  style: {
@@ -5829,8 +6092,8 @@ function RegistrationReminderIndividualEmail({
5829
6092
  }
5830
6093
  ),
5831
6094
  /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: introText }),
5832
- hasText2(v.contextNote) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: v.contextNote }),
5833
- slug === "d_minus_2" && (hasText2(v.finalReminderTagline) || hasText2(v.consequencesNote)) && /* @__PURE__ */ jsxRuntime.jsxs(
6095
+ hasText3(v.contextNote) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: v.contextNote }),
6096
+ slug === "d_minus_2" && (hasText3(v.finalReminderTagline) || hasText3(v.consequencesNote)) && /* @__PURE__ */ jsxRuntime.jsxs(
5834
6097
  "div",
5835
6098
  {
5836
6099
  style: {
@@ -5842,23 +6105,23 @@ function RegistrationReminderIndividualEmail({
5842
6105
  color: "#7f1d1d"
5843
6106
  },
5844
6107
  children: [
5845
- hasText2(v.finalReminderTagline) && /* @__PURE__ */ jsxRuntime.jsx(
6108
+ hasText3(v.finalReminderTagline) && /* @__PURE__ */ jsxRuntime.jsx(
5846
6109
  "p",
5847
6110
  {
5848
6111
  style: {
5849
6112
  margin: 0,
5850
- marginBottom: hasText2(v.consequencesNote) ? "8px" : 0,
6113
+ marginBottom: hasText3(v.consequencesNote) ? "8px" : 0,
5851
6114
  fontWeight: 700
5852
6115
  },
5853
6116
  children: v.finalReminderTagline
5854
6117
  }
5855
6118
  ),
5856
- hasText2(v.consequencesNote) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { margin: 0 }, children: v.consequencesNote })
6119
+ hasText3(v.consequencesNote) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { margin: 0 }, children: v.consequencesNote })
5857
6120
  ]
5858
6121
  }
5859
6122
  ),
5860
6123
  /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginBottom: "24px", textAlign: "left" }, children: /* @__PURE__ */ jsxRuntime.jsx("a", { href: ctaUrl, style: ctaStyle, children: l.ctaLabel }) }),
5861
- slug === "d_minus_7" && hasText2(v.mandatoryNote) && /* @__PURE__ */ jsxRuntime.jsx(
6124
+ slug === "d_minus_7" && hasText3(v.mandatoryNote) && /* @__PURE__ */ jsxRuntime.jsx(
5862
6125
  "p",
5863
6126
  {
5864
6127
  style: {
@@ -5874,8 +6137,8 @@ function RegistrationReminderIndividualEmail({
5874
6137
  ),
5875
6138
  sectionDivider,
5876
6139
  /* @__PURE__ */ jsxRuntime.jsx(BookingSummary, { heading: l.tripDetailsHeader, rows: tripRows }),
5877
- (slug === "d_minus_30" || slug === "d_minus_15") && hasText2(v.mandatoryNote) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", color: emailTokens.bodyText }, children: v.mandatoryNote }),
5878
- slug === "d_minus_2" && hasText2(v.disregardIfCompleted) && /* @__PURE__ */ jsxRuntime.jsx(
6140
+ (slug === "d_minus_30" || slug === "d_minus_15") && hasText3(v.mandatoryNote) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", color: emailTokens.bodyText }, children: v.mandatoryNote }),
6141
+ slug === "d_minus_2" && hasText3(v.disregardIfCompleted) && /* @__PURE__ */ jsxRuntime.jsx(
5879
6142
  "p",
5880
6143
  {
5881
6144
  style: {
@@ -5892,29 +6155,29 @@ function RegistrationReminderIndividualEmail({
5892
6155
  whatsappUrl: agent.whatsappUrl,
5893
6156
  email: agent.email
5894
6157
  }) : l.closingNoAgent }),
5895
- hasText2(v.closingThanks) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", fontSize: "14px", color: emailTokens.bodyText }, children: v.closingThanks }),
6158
+ hasText3(v.closingThanks) && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", fontSize: "14px", color: emailTokens.bodyText }, children: v.closingThanks }),
5896
6159
  /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginTop: 0, marginBottom: 0, fontSize: "14px", color: emailTokens.bodyText }, children: l.teamSignature })
5897
6160
  ]
5898
6161
  }
5899
6162
  );
5900
6163
  }
5901
- var INLINE_LINK_STYLE3 = {
6164
+ var INLINE_LINK_STYLE4 = {
5902
6165
  color: emailTokens.primary,
5903
6166
  textDecoration: "underline"
5904
6167
  };
5905
- function renderWhatsappLink3(contact, label) {
6168
+ function renderWhatsappLink4(contact, label) {
5906
6169
  if (contact.whatsappUrl) {
5907
- return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE3, children: label });
6170
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE4, children: label });
5908
6171
  }
5909
6172
  return label;
5910
6173
  }
5911
- function renderEmailLink3(contact, label) {
6174
+ function renderEmailLink4(contact, label) {
5912
6175
  if (contact.email) {
5913
- return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE3, children: label });
6176
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE4, children: label });
5914
6177
  }
5915
6178
  return label;
5916
6179
  }
5917
- var DEFAULT_LABELS7 = {
6180
+ var DEFAULT_LABELS8 = {
5918
6181
  logoAlt: "PlanetaEXO",
5919
6182
  greeting: (n) => `Hi ${n},`,
5920
6183
  introAllDone: (adv, dr) => `All travellers for ${adv} (${dr}) have completed their registration. Their consolidated registration details are attached, and below you'll find what they're most looking forward to.`,
@@ -5934,15 +6197,15 @@ var DEFAULT_LABELS7 = {
5934
6197
  agentName,
5935
6198
  " is available via",
5936
6199
  " ",
5937
- renderWhatsappLink3(contact, "WhatsApp"),
6200
+ renderWhatsappLink4(contact, "WhatsApp"),
5938
6201
  " or ",
5939
- renderEmailLink3(contact, "email"),
6202
+ renderEmailLink4(contact, "email"),
5940
6203
  "."
5941
6204
  ] }),
5942
6205
  closingNoAgent: "If you have any questions, our team is available via WhatsApp or email.",
5943
6206
  teamSignature: "The PlanetaEXO Team"
5944
6207
  };
5945
- function hasText3(s) {
6208
+ function hasText4(s) {
5946
6209
  return typeof s === "string" && s.trim().length > 0;
5947
6210
  }
5948
6211
  function PartnerConfirmationEmail({
@@ -5960,7 +6223,7 @@ function PartnerConfirmationEmail({
5960
6223
  labels,
5961
6224
  className
5962
6225
  }) {
5963
- const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS7), labels);
6226
+ const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS8), labels);
5964
6227
  const tripRows = [
5965
6228
  { label: l.bookingNumberLabel, value: `#${bookingNumber}`, valueColor: emailTokens.primary },
5966
6229
  { label: l.adventureLabel, value: adventureName },
@@ -5999,7 +6262,7 @@ function PartnerConfirmationEmail({
5999
6262
  className,
6000
6263
  children: [
6001
6264
  /* @__PURE__ */ jsxRuntime.jsx(EmailLogo, { src: logoUrl, alt: l.logoAlt }),
6002
- hasText3(topNotice) && /* @__PURE__ */ jsxRuntime.jsx(
6265
+ hasText4(topNotice) && /* @__PURE__ */ jsxRuntime.jsx(
6003
6266
  "div",
6004
6267
  {
6005
6268
  style: {
@@ -6076,7 +6339,7 @@ function PartnerConfirmationEmail({
6076
6339
  }) })
6077
6340
  }
6078
6341
  ) : /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginTop: 0, marginBottom: "24px", color: emailTokens.bodyText }, children: l.expectationsEmptyNote }),
6079
- pdfAttached && hasText3(l.pdfNote) && /* @__PURE__ */ jsxRuntime.jsx(
6342
+ pdfAttached && hasText4(l.pdfNote) && /* @__PURE__ */ jsxRuntime.jsx(
6080
6343
  "div",
6081
6344
  {
6082
6345
  style: {
@@ -6101,26 +6364,26 @@ function PartnerConfirmationEmail({
6101
6364
  }
6102
6365
  );
6103
6366
  }
6104
- var INLINE_LINK_STYLE4 = {
6367
+ var INLINE_LINK_STYLE5 = {
6105
6368
  color: emailTokens.primary,
6106
6369
  textDecoration: "underline"
6107
6370
  };
6108
- function renderWhatsappLink4(contact, label) {
6371
+ function renderWhatsappLink5(contact, label) {
6109
6372
  if (contact.whatsappUrl) {
6110
- return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE4, children: label });
6373
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE5, children: label });
6111
6374
  }
6112
6375
  return label;
6113
6376
  }
6114
- function renderEmailLink4(contact, label) {
6377
+ function renderEmailLink5(contact, label) {
6115
6378
  if (contact.email) {
6116
- return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE4, children: label });
6379
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE5, children: label });
6117
6380
  }
6118
6381
  return label;
6119
6382
  }
6120
- function hasText4(s) {
6383
+ function hasText5(s) {
6121
6384
  return typeof s === "string" && s.trim().length > 0;
6122
6385
  }
6123
- var DEFAULT_LABELS8 = {
6386
+ var DEFAULT_LABELS9 = {
6124
6387
  logoAlt: "PlanetaEXO",
6125
6388
  greeting: (n) => `Hi ${n},`,
6126
6389
  intro: (adv) => `You have a new booking for your adventure ${adv}. Here are the details:`,
@@ -6138,9 +6401,9 @@ var DEFAULT_LABELS8 = {
6138
6401
  agentName,
6139
6402
  " is available via",
6140
6403
  " ",
6141
- renderWhatsappLink4(contact, "WhatsApp"),
6404
+ renderWhatsappLink5(contact, "WhatsApp"),
6142
6405
  " or ",
6143
- renderEmailLink4(contact, "email"),
6406
+ renderEmailLink5(contact, "email"),
6144
6407
  "."
6145
6408
  ] }),
6146
6409
  closingNoAgent: "If you have any questions, our team is available via WhatsApp or email.",
@@ -6159,10 +6422,10 @@ function PartnerBookingCreatedEmail({
6159
6422
  labels,
6160
6423
  className
6161
6424
  }) {
6162
- const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS8), labels);
6425
+ const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS9), labels);
6163
6426
  const summaryRows = [
6164
6427
  { label: l.bookerNameLabel, value: booker.name },
6165
- ...hasText4(booker.country) ? [{ label: l.bookerCountryLabel, value: booker.country }] : [],
6428
+ ...hasText5(booker.country) ? [{ label: l.bookerCountryLabel, value: booker.country }] : [],
6166
6429
  { label: l.bookingNumberLabel, value: `#${bookingNumber}`, valueColor: emailTokens.primary },
6167
6430
  { label: l.adventureLabel, value: adventureName },
6168
6431
  { label: l.datesLabel, value: dateRange },
@@ -6198,7 +6461,7 @@ function PartnerBookingCreatedEmail({
6198
6461
  className,
6199
6462
  children: [
6200
6463
  /* @__PURE__ */ jsxRuntime.jsx(EmailLogo, { src: logoUrl, alt: l.logoAlt }),
6201
- hasText4(topNotice) && /* @__PURE__ */ jsxRuntime.jsx(
6464
+ hasText5(topNotice) && /* @__PURE__ */ jsxRuntime.jsx(
6202
6465
  "div",
6203
6466
  {
6204
6467
  style: {
@@ -6248,7 +6511,7 @@ function PartnerBookingCreatedEmail({
6248
6511
  }
6249
6512
  );
6250
6513
  }
6251
- var DEFAULT_LABELS9 = {
6514
+ var DEFAULT_LABELS10 = {
6252
6515
  logoAlt: "PlanetaEXO",
6253
6516
  greeting: (name) => `Hi ${name},`,
6254
6517
  introMessage: "",
@@ -6289,7 +6552,7 @@ function PaymentReceiptEmail({
6289
6552
  labels,
6290
6553
  className
6291
6554
  }) {
6292
- const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS9), labels);
6555
+ const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS10), labels);
6293
6556
  const travellersLine = travellers.filter((s) => s.trim().length > 0).join(", ");
6294
6557
  const interestRow = chargedAmount && chargedAmount !== amount;
6295
6558
  const receiptRows = [
@@ -6432,24 +6695,24 @@ function PaymentReceiptEmail({
6432
6695
  }
6433
6696
  );
6434
6697
  }
6435
- var INLINE_LINK_STYLE5 = {
6698
+ var INLINE_LINK_STYLE6 = {
6436
6699
  color: emailTokens.primary,
6437
6700
  textDecoration: "underline"
6438
6701
  };
6439
- function renderWhatsappLink5(contact, label) {
6702
+ function renderWhatsappLink6(contact, label) {
6440
6703
  if (contact.whatsappUrl) {
6441
- return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE5, children: label });
6704
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE6, children: label });
6442
6705
  }
6443
6706
  return label;
6444
6707
  }
6445
- function renderEmailLink5(contact, label) {
6708
+ function renderEmailLink6(contact, label) {
6446
6709
  if (contact.email) {
6447
- return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE5, children: label });
6710
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE6, children: label });
6448
6711
  }
6449
6712
  return label;
6450
6713
  }
6451
6714
  var EMPTY_CLOSING_ALTERNATIVE = (_agentName, _contact) => null;
6452
- var DEFAULT_LABELS10 = {
6715
+ var DEFAULT_LABELS11 = {
6453
6716
  logoAlt: "PlanetaEXO",
6454
6717
  greeting: (name) => `Hi ${name},`,
6455
6718
  intermediateHello: "Hope you're doing well.",
@@ -6464,9 +6727,9 @@ var DEFAULT_LABELS10 = {
6464
6727
  "If you need any assistance or would like to discuss your payment, feel free to contact your agent ",
6465
6728
  agentName,
6466
6729
  " via ",
6467
- renderWhatsappLink5(contact, "WhatsApp"),
6730
+ renderWhatsappLink6(contact, "WhatsApp"),
6468
6731
  " or ",
6469
- renderEmailLink5(contact, "email"),
6732
+ renderEmailLink6(contact, "email"),
6470
6733
  "."
6471
6734
  ] }),
6472
6735
  closingNoAgent: "If you need any assistance or would like to discuss your payment, feel free to contact us via WhatsApp or email.",
@@ -6510,9 +6773,9 @@ var DEFAULT_LABELS10 = {
6510
6773
  "If you are experiencing any issues with payment or need additional time, please contact your agent ",
6511
6774
  agentName,
6512
6775
  " via ",
6513
- renderWhatsappLink5(contact, "WhatsApp"),
6776
+ renderWhatsappLink6(contact, "WhatsApp"),
6514
6777
  " or ",
6515
- renderEmailLink5(contact, "email"),
6778
+ renderEmailLink6(contact, "email"),
6516
6779
  ". We'll be happy to assist."
6517
6780
  ] })
6518
6781
  }
@@ -6536,7 +6799,7 @@ function PaymentReminderEmail({
6536
6799
  }) {
6537
6800
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
6538
6801
  const lOverride = labels != null ? labels : {};
6539
- const variantDefaults = DEFAULT_LABELS10.variants[variant];
6802
+ const variantDefaults = DEFAULT_LABELS11.variants[variant];
6540
6803
  const variantOverride = (_b = (_a = lOverride.variants) == null ? void 0 : _a[variant]) != null ? _b : {};
6541
6804
  const variantLabels = {
6542
6805
  intro: (_c = variantOverride.intro) != null ? _c : variantDefaults.intro,
@@ -6546,19 +6809,19 @@ function PaymentReminderEmail({
6546
6809
  closingAlternative: (_f = variantOverride.closingAlternative) != null ? _f : variantDefaults.closingAlternative
6547
6810
  };
6548
6811
  const l = {
6549
- logoAlt: (_g = lOverride.logoAlt) != null ? _g : DEFAULT_LABELS10.logoAlt,
6550
- greeting: (_h = lOverride.greeting) != null ? _h : DEFAULT_LABELS10.greeting,
6551
- intermediateHello: (_i = lOverride.intermediateHello) != null ? _i : DEFAULT_LABELS10.intermediateHello,
6552
- bookingSummaryHeader: (_j = lOverride.bookingSummaryHeader) != null ? _j : DEFAULT_LABELS10.bookingSummaryHeader,
6553
- amountAlreadyPaidLabel: (_k = lOverride.amountAlreadyPaidLabel) != null ? _k : DEFAULT_LABELS10.amountAlreadyPaidLabel,
6554
- remainingBalanceDueLabel: (_l = lOverride.remainingBalanceDueLabel) != null ? _l : DEFAULT_LABELS10.remainingBalanceDueLabel,
6555
- totalBookingAmountLabel: (_m = lOverride.totalBookingAmountLabel) != null ? _m : DEFAULT_LABELS10.totalBookingAmountLabel,
6556
- paymentDetailsHeading: (_n = lOverride.paymentDetailsHeading) != null ? _n : DEFAULT_LABELS10.paymentDetailsHeading,
6557
- ctaLabel: (_o = lOverride.ctaLabel) != null ? _o : DEFAULT_LABELS10.ctaLabel,
6558
- teamSignature: (_p = lOverride.teamSignature) != null ? _p : DEFAULT_LABELS10.teamSignature,
6559
- closingAgent: (_q = lOverride.closingAgent) != null ? _q : DEFAULT_LABELS10.closingAgent,
6560
- closingNoAgent: (_r = lOverride.closingNoAgent) != null ? _r : DEFAULT_LABELS10.closingNoAgent,
6561
- adventureCard: __spreadValues(__spreadValues({}, DEFAULT_LABELS10.adventureCard), (_s = lOverride.adventureCard) != null ? _s : {})
6812
+ logoAlt: (_g = lOverride.logoAlt) != null ? _g : DEFAULT_LABELS11.logoAlt,
6813
+ greeting: (_h = lOverride.greeting) != null ? _h : DEFAULT_LABELS11.greeting,
6814
+ intermediateHello: (_i = lOverride.intermediateHello) != null ? _i : DEFAULT_LABELS11.intermediateHello,
6815
+ bookingSummaryHeader: (_j = lOverride.bookingSummaryHeader) != null ? _j : DEFAULT_LABELS11.bookingSummaryHeader,
6816
+ amountAlreadyPaidLabel: (_k = lOverride.amountAlreadyPaidLabel) != null ? _k : DEFAULT_LABELS11.amountAlreadyPaidLabel,
6817
+ remainingBalanceDueLabel: (_l = lOverride.remainingBalanceDueLabel) != null ? _l : DEFAULT_LABELS11.remainingBalanceDueLabel,
6818
+ totalBookingAmountLabel: (_m = lOverride.totalBookingAmountLabel) != null ? _m : DEFAULT_LABELS11.totalBookingAmountLabel,
6819
+ paymentDetailsHeading: (_n = lOverride.paymentDetailsHeading) != null ? _n : DEFAULT_LABELS11.paymentDetailsHeading,
6820
+ ctaLabel: (_o = lOverride.ctaLabel) != null ? _o : DEFAULT_LABELS11.ctaLabel,
6821
+ teamSignature: (_p = lOverride.teamSignature) != null ? _p : DEFAULT_LABELS11.teamSignature,
6822
+ closingAgent: (_q = lOverride.closingAgent) != null ? _q : DEFAULT_LABELS11.closingAgent,
6823
+ closingNoAgent: (_r = lOverride.closingNoAgent) != null ? _r : DEFAULT_LABELS11.closingNoAgent,
6824
+ adventureCard: __spreadValues(__spreadValues({}, DEFAULT_LABELS11.adventureCard), (_s = lOverride.adventureCard) != null ? _s : {})
6562
6825
  };
6563
6826
  const ctaStyle = {
6564
6827
  display: "inline-block",
@@ -7416,7 +7679,7 @@ function validateCpf(value) {
7416
7679
  if (secondDigit !== parseInt(digits[10], 10)) return false;
7417
7680
  return true;
7418
7681
  }
7419
- var DEFAULT_LABELS11 = {
7682
+ var DEFAULT_LABELS12 = {
7420
7683
  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.",
7421
7684
  detailsSectionTitle: "Your details",
7422
7685
  tripInfoSectionTitle: "Trip info",
@@ -8157,7 +8420,7 @@ function RegistrationForm({
8157
8420
  }) {
8158
8421
  var _a;
8159
8422
  const L = React28__namespace.useMemo(
8160
- () => __spreadValues(__spreadValues({}, DEFAULT_LABELS11), labels != null ? labels : {}),
8423
+ () => __spreadValues(__spreadValues({}, DEFAULT_LABELS12), labels != null ? labels : {}),
8161
8424
  [labels]
8162
8425
  );
8163
8426
  const sortedFields = React28__namespace.useMemo(
@@ -14009,6 +14272,7 @@ exports.AgentContactCard = AgentContactCard;
14009
14272
  exports.Alert = Alert;
14010
14273
  exports.BirthDateField = BirthDateField;
14011
14274
  exports.BookingAdventureCard = BookingAdventureCard;
14275
+ exports.BookingCancellationEmail = BookingCancellationEmail;
14012
14276
  exports.BookingConfirmedCard = BookingConfirmedCard;
14013
14277
  exports.BookingCreatedEmail = BookingCreatedEmail;
14014
14278
  exports.BookingDetails = BookingDetails;