@planetaexo/design-system 0.39.0 → 0.41.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
@@ -5853,6 +5853,7 @@ function hasText3(s) {
5853
5853
  }
5854
5854
  function PartnerConfirmationEmail({
5855
5855
  scenario,
5856
+ topNotice,
5856
5857
  partnerName,
5857
5858
  bookingNumber,
5858
5859
  adventureName,
@@ -5904,6 +5905,21 @@ function PartnerConfirmationEmail({
5904
5905
  className,
5905
5906
  children: [
5906
5907
  /* @__PURE__ */ jsxRuntime.jsx(EmailLogo, { src: logoUrl, alt: l.logoAlt }),
5908
+ hasText3(topNotice) && /* @__PURE__ */ jsxRuntime.jsx(
5909
+ "div",
5910
+ {
5911
+ style: {
5912
+ padding: "12px 16px",
5913
+ borderRadius: 8,
5914
+ backgroundColor: "#fef3c7",
5915
+ color: "#78350f",
5916
+ fontWeight: 600,
5917
+ fontSize: "14px",
5918
+ marginBottom: "20px"
5919
+ },
5920
+ children: topNotice
5921
+ }
5922
+ ),
5907
5923
  /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: l.greeting(partnerName) }),
5908
5924
  /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: introText }),
5909
5925
  /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "24px", fontWeight: 600 }, children: l.travellersCountLine(travellersCount) }),
@@ -5977,7 +5993,235 @@ function PartnerConfirmationEmail({
5977
5993
  }
5978
5994
  );
5979
5995
  }
5996
+ var INLINE_LINK_STYLE4 = {
5997
+ color: emailTokens.primary,
5998
+ textDecoration: "underline"
5999
+ };
6000
+ function renderWhatsappLink4(contact, label) {
6001
+ if (contact.whatsappUrl) {
6002
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE4, children: label });
6003
+ }
6004
+ return label;
6005
+ }
6006
+ function renderEmailLink4(contact, label) {
6007
+ if (contact.email) {
6008
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE4, children: label });
6009
+ }
6010
+ return label;
6011
+ }
6012
+ function hasText4(s) {
6013
+ return typeof s === "string" && s.trim().length > 0;
6014
+ }
5980
6015
  var DEFAULT_LABELS8 = {
6016
+ logoAlt: "PlanetaEXO",
6017
+ greeting: (n) => `Hi ${n},`,
6018
+ intro: (adv) => `You have a new booking for your adventure ${adv}. Here are the details:`,
6019
+ summaryHeading: "\u{1F4DD} Booking Summary",
6020
+ bookingNumberLabel: "Booking Number",
6021
+ adventureLabel: "Adventure",
6022
+ datesLabel: "Dates",
6023
+ numberOfPeopleLabel: "Number of Travellers",
6024
+ bookerHeading: "Booking contact",
6025
+ bookerNameLabel: "Name",
6026
+ bookerEmailLabel: "Email",
6027
+ bookerPhoneLabel: "Phone",
6028
+ registrationPendingNotice: "The travellers' registration details will be sent to you as soon as all travellers have completed their forms.",
6029
+ mustReplyToConfirm: "Please reply to this email to confirm the booking.",
6030
+ closingAgent: (agentName, contact) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6031
+ "If you have any questions, your contact ",
6032
+ agentName,
6033
+ " is available via",
6034
+ " ",
6035
+ renderWhatsappLink4(contact, "WhatsApp"),
6036
+ " or ",
6037
+ renderEmailLink4(contact, "email"),
6038
+ "."
6039
+ ] }),
6040
+ closingNoAgent: "If you have any questions, our team is available via WhatsApp or email.",
6041
+ teamSignature: "The PlanetaEXO Team"
6042
+ };
6043
+ function PartnerBookingCreatedEmail({
6044
+ topNotice,
6045
+ partnerName,
6046
+ bookingNumber,
6047
+ adventureName,
6048
+ dateRange,
6049
+ travellersCount,
6050
+ booker,
6051
+ agent,
6052
+ logoUrl,
6053
+ labels,
6054
+ className
6055
+ }) {
6056
+ const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS8), labels);
6057
+ const summaryRows = [
6058
+ { label: l.bookingNumberLabel, value: `#${bookingNumber}`, valueColor: emailTokens.primary },
6059
+ { label: l.adventureLabel, value: adventureName },
6060
+ { label: l.datesLabel, value: dateRange },
6061
+ { label: l.numberOfPeopleLabel, value: travellersCount }
6062
+ ];
6063
+ const sectionDivider = /* @__PURE__ */ jsxRuntime.jsx(
6064
+ "hr",
6065
+ {
6066
+ style: {
6067
+ border: "none",
6068
+ borderTop: `1px solid ${emailTokens.border}`,
6069
+ marginTop: 0,
6070
+ marginBottom: "24px"
6071
+ }
6072
+ }
6073
+ );
6074
+ const bookerRows = [
6075
+ { label: l.bookerNameLabel, value: booker.name },
6076
+ ...hasText4(booker.email) ? [
6077
+ {
6078
+ label: l.bookerEmailLabel,
6079
+ value: /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${booker.email}`, style: INLINE_LINK_STYLE4, children: booker.email })
6080
+ }
6081
+ ] : [],
6082
+ ...hasText4(booker.phone) ? [{ label: l.bookerPhoneLabel, value: booker.phone }] : []
6083
+ ];
6084
+ return /* @__PURE__ */ jsxRuntime.jsxs(
6085
+ "div",
6086
+ {
6087
+ style: {
6088
+ maxWidth: "576px",
6089
+ margin: "0 auto",
6090
+ backgroundColor: emailTokens.white,
6091
+ color: emailTokens.foreground,
6092
+ fontFamily: emailTokens.fontFamily,
6093
+ fontSize: "16px",
6094
+ lineHeight: "1.6",
6095
+ border: `1px solid ${emailTokens.border}`,
6096
+ borderRadius: "12px",
6097
+ overflow: "hidden",
6098
+ padding: "32px"
6099
+ },
6100
+ className,
6101
+ children: [
6102
+ /* @__PURE__ */ jsxRuntime.jsx(EmailLogo, { src: logoUrl, alt: l.logoAlt }),
6103
+ hasText4(topNotice) && /* @__PURE__ */ jsxRuntime.jsx(
6104
+ "div",
6105
+ {
6106
+ style: {
6107
+ padding: "12px 16px",
6108
+ borderRadius: 8,
6109
+ backgroundColor: "#fef3c7",
6110
+ color: "#78350f",
6111
+ fontWeight: 600,
6112
+ fontSize: "14px",
6113
+ marginBottom: "20px"
6114
+ },
6115
+ children: topNotice
6116
+ }
6117
+ ),
6118
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: l.greeting(partnerName) }),
6119
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "24px" }, children: l.intro(adventureName) }),
6120
+ sectionDivider,
6121
+ /* @__PURE__ */ jsxRuntime.jsx(BookingSummary, { heading: l.summaryHeading, rows: summaryRows }),
6122
+ /* @__PURE__ */ jsxRuntime.jsx(
6123
+ "p",
6124
+ {
6125
+ style: {
6126
+ marginTop: 0,
6127
+ marginBottom: "20px",
6128
+ fontWeight: 700,
6129
+ color: emailTokens.foreground,
6130
+ fontSize: "18px",
6131
+ fontFamily: emailTokens.fontFamily
6132
+ },
6133
+ children: l.bookerHeading
6134
+ }
6135
+ ),
6136
+ /* @__PURE__ */ jsxRuntime.jsx(
6137
+ "div",
6138
+ {
6139
+ style: {
6140
+ borderRadius: "12px",
6141
+ border: `1px solid ${emailTokens.border}`,
6142
+ overflow: "hidden",
6143
+ marginBottom: "24px"
6144
+ },
6145
+ children: /* @__PURE__ */ jsxRuntime.jsx(
6146
+ "table",
6147
+ {
6148
+ style: {
6149
+ width: "100%",
6150
+ fontSize: "14px",
6151
+ borderCollapse: "collapse"
6152
+ },
6153
+ children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: bookerRows.map((row, i) => {
6154
+ const isLastRow = i === bookerRows.length - 1;
6155
+ return /* @__PURE__ */ jsxRuntime.jsxs(
6156
+ "tr",
6157
+ {
6158
+ style: !isLastRow ? { borderBottom: `1px solid ${emailTokens.border}` } : {},
6159
+ children: [
6160
+ /* @__PURE__ */ jsxRuntime.jsx(
6161
+ "td",
6162
+ {
6163
+ style: {
6164
+ padding: "12px 20px",
6165
+ color: emailTokens.mutedForeground,
6166
+ backgroundColor: emailTokens.muted,
6167
+ verticalAlign: "top"
6168
+ },
6169
+ children: row.label
6170
+ }
6171
+ ),
6172
+ /* @__PURE__ */ jsxRuntime.jsx(
6173
+ "td",
6174
+ {
6175
+ style: {
6176
+ padding: "12px 20px",
6177
+ fontWeight: 500,
6178
+ color: emailTokens.foreground,
6179
+ verticalAlign: "top"
6180
+ },
6181
+ children: row.value
6182
+ }
6183
+ )
6184
+ ]
6185
+ },
6186
+ i
6187
+ );
6188
+ }) })
6189
+ }
6190
+ )
6191
+ }
6192
+ ),
6193
+ sectionDivider,
6194
+ /* @__PURE__ */ jsxRuntime.jsxs(
6195
+ "div",
6196
+ {
6197
+ style: {
6198
+ padding: "16px 20px",
6199
+ borderRadius: 8,
6200
+ border: "2px solid #f59e0b",
6201
+ backgroundColor: "#fef3c7",
6202
+ color: "#78350f",
6203
+ fontSize: "14px",
6204
+ marginBottom: "16px"
6205
+ },
6206
+ children: [
6207
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { margin: 0, marginBottom: "10px", lineHeight: 1.5 }, children: l.registrationPendingNotice }),
6208
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { style: { margin: 0, fontWeight: 700, fontSize: "15px", lineHeight: 1.5 }, children: [
6209
+ "\u26A0\uFE0F ",
6210
+ l.mustReplyToConfirm
6211
+ ] })
6212
+ ]
6213
+ }
6214
+ ),
6215
+ /* @__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, {
6216
+ whatsappUrl: agent.whatsappUrl,
6217
+ email: agent.email
6218
+ }) : l.closingNoAgent }),
6219
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginTop: 0, marginBottom: 0, fontSize: "14px", color: emailTokens.bodyText }, children: l.teamSignature })
6220
+ ]
6221
+ }
6222
+ );
6223
+ }
6224
+ var DEFAULT_LABELS9 = {
5981
6225
  logoAlt: "PlanetaEXO",
5982
6226
  greeting: (name) => `Hi ${name},`,
5983
6227
  receiptHeading: "Payment receipt",
@@ -6016,7 +6260,7 @@ function PaymentReceiptEmail({
6016
6260
  labels,
6017
6261
  className
6018
6262
  }) {
6019
- const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS8), labels);
6263
+ const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS9), labels);
6020
6264
  const travellersLine = travellers.filter((s) => s.trim().length > 0).join(", ");
6021
6265
  const interestRow = chargedAmount && chargedAmount !== amount;
6022
6266
  const receiptRows = [
@@ -6091,24 +6335,24 @@ function PaymentReceiptEmail({
6091
6335
  }
6092
6336
  );
6093
6337
  }
6094
- var INLINE_LINK_STYLE4 = {
6338
+ var INLINE_LINK_STYLE5 = {
6095
6339
  color: emailTokens.primary,
6096
6340
  textDecoration: "underline"
6097
6341
  };
6098
- function renderWhatsappLink4(contact, label) {
6342
+ function renderWhatsappLink5(contact, label) {
6099
6343
  if (contact.whatsappUrl) {
6100
- return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE4, children: label });
6344
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE5, children: label });
6101
6345
  }
6102
6346
  return label;
6103
6347
  }
6104
- function renderEmailLink4(contact, label) {
6348
+ function renderEmailLink5(contact, label) {
6105
6349
  if (contact.email) {
6106
- return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE4, children: label });
6350
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE5, children: label });
6107
6351
  }
6108
6352
  return label;
6109
6353
  }
6110
6354
  var EMPTY_CLOSING_ALTERNATIVE = (_agentName, _contact) => null;
6111
- var DEFAULT_LABELS9 = {
6355
+ var DEFAULT_LABELS10 = {
6112
6356
  logoAlt: "PlanetaEXO",
6113
6357
  greeting: (name) => `Hi ${name},`,
6114
6358
  intermediateHello: "Hope you're doing well.",
@@ -6123,9 +6367,9 @@ var DEFAULT_LABELS9 = {
6123
6367
  "If you need any assistance or would like to discuss your payment, feel free to contact your agent ",
6124
6368
  agentName,
6125
6369
  " via ",
6126
- renderWhatsappLink4(contact, "WhatsApp"),
6370
+ renderWhatsappLink5(contact, "WhatsApp"),
6127
6371
  " or ",
6128
- renderEmailLink4(contact, "email"),
6372
+ renderEmailLink5(contact, "email"),
6129
6373
  "."
6130
6374
  ] }),
6131
6375
  closingNoAgent: "If you need any assistance or would like to discuss your payment, feel free to contact us via WhatsApp or email.",
@@ -6169,9 +6413,9 @@ var DEFAULT_LABELS9 = {
6169
6413
  "If you are experiencing any issues with payment or need additional time, please contact your agent ",
6170
6414
  agentName,
6171
6415
  " via ",
6172
- renderWhatsappLink4(contact, "WhatsApp"),
6416
+ renderWhatsappLink5(contact, "WhatsApp"),
6173
6417
  " or ",
6174
- renderEmailLink4(contact, "email"),
6418
+ renderEmailLink5(contact, "email"),
6175
6419
  ". We'll be happy to assist."
6176
6420
  ] })
6177
6421
  }
@@ -6195,7 +6439,7 @@ function PaymentReminderEmail({
6195
6439
  }) {
6196
6440
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
6197
6441
  const lOverride = labels != null ? labels : {};
6198
- const variantDefaults = DEFAULT_LABELS9.variants[variant];
6442
+ const variantDefaults = DEFAULT_LABELS10.variants[variant];
6199
6443
  const variantOverride = (_b = (_a = lOverride.variants) == null ? void 0 : _a[variant]) != null ? _b : {};
6200
6444
  const variantLabels = {
6201
6445
  intro: (_c = variantOverride.intro) != null ? _c : variantDefaults.intro,
@@ -6205,19 +6449,19 @@ function PaymentReminderEmail({
6205
6449
  closingAlternative: (_f = variantOverride.closingAlternative) != null ? _f : variantDefaults.closingAlternative
6206
6450
  };
6207
6451
  const l = {
6208
- logoAlt: (_g = lOverride.logoAlt) != null ? _g : DEFAULT_LABELS9.logoAlt,
6209
- greeting: (_h = lOverride.greeting) != null ? _h : DEFAULT_LABELS9.greeting,
6210
- intermediateHello: (_i = lOverride.intermediateHello) != null ? _i : DEFAULT_LABELS9.intermediateHello,
6211
- bookingSummaryHeader: (_j = lOverride.bookingSummaryHeader) != null ? _j : DEFAULT_LABELS9.bookingSummaryHeader,
6212
- amountAlreadyPaidLabel: (_k = lOverride.amountAlreadyPaidLabel) != null ? _k : DEFAULT_LABELS9.amountAlreadyPaidLabel,
6213
- remainingBalanceDueLabel: (_l = lOverride.remainingBalanceDueLabel) != null ? _l : DEFAULT_LABELS9.remainingBalanceDueLabel,
6214
- totalBookingAmountLabel: (_m = lOverride.totalBookingAmountLabel) != null ? _m : DEFAULT_LABELS9.totalBookingAmountLabel,
6215
- paymentDetailsHeading: (_n = lOverride.paymentDetailsHeading) != null ? _n : DEFAULT_LABELS9.paymentDetailsHeading,
6216
- ctaLabel: (_o = lOverride.ctaLabel) != null ? _o : DEFAULT_LABELS9.ctaLabel,
6217
- teamSignature: (_p = lOverride.teamSignature) != null ? _p : DEFAULT_LABELS9.teamSignature,
6218
- closingAgent: (_q = lOverride.closingAgent) != null ? _q : DEFAULT_LABELS9.closingAgent,
6219
- closingNoAgent: (_r = lOverride.closingNoAgent) != null ? _r : DEFAULT_LABELS9.closingNoAgent,
6220
- adventureCard: __spreadValues(__spreadValues({}, DEFAULT_LABELS9.adventureCard), (_s = lOverride.adventureCard) != null ? _s : {})
6452
+ logoAlt: (_g = lOverride.logoAlt) != null ? _g : DEFAULT_LABELS10.logoAlt,
6453
+ greeting: (_h = lOverride.greeting) != null ? _h : DEFAULT_LABELS10.greeting,
6454
+ intermediateHello: (_i = lOverride.intermediateHello) != null ? _i : DEFAULT_LABELS10.intermediateHello,
6455
+ bookingSummaryHeader: (_j = lOverride.bookingSummaryHeader) != null ? _j : DEFAULT_LABELS10.bookingSummaryHeader,
6456
+ amountAlreadyPaidLabel: (_k = lOverride.amountAlreadyPaidLabel) != null ? _k : DEFAULT_LABELS10.amountAlreadyPaidLabel,
6457
+ remainingBalanceDueLabel: (_l = lOverride.remainingBalanceDueLabel) != null ? _l : DEFAULT_LABELS10.remainingBalanceDueLabel,
6458
+ totalBookingAmountLabel: (_m = lOverride.totalBookingAmountLabel) != null ? _m : DEFAULT_LABELS10.totalBookingAmountLabel,
6459
+ paymentDetailsHeading: (_n = lOverride.paymentDetailsHeading) != null ? _n : DEFAULT_LABELS10.paymentDetailsHeading,
6460
+ ctaLabel: (_o = lOverride.ctaLabel) != null ? _o : DEFAULT_LABELS10.ctaLabel,
6461
+ teamSignature: (_p = lOverride.teamSignature) != null ? _p : DEFAULT_LABELS10.teamSignature,
6462
+ closingAgent: (_q = lOverride.closingAgent) != null ? _q : DEFAULT_LABELS10.closingAgent,
6463
+ closingNoAgent: (_r = lOverride.closingNoAgent) != null ? _r : DEFAULT_LABELS10.closingNoAgent,
6464
+ adventureCard: __spreadValues(__spreadValues({}, DEFAULT_LABELS10.adventureCard), (_s = lOverride.adventureCard) != null ? _s : {})
6221
6465
  };
6222
6466
  const ctaStyle = {
6223
6467
  display: "inline-block",
@@ -7044,7 +7288,7 @@ function BookingForm({
7044
7288
  }
7045
7289
  );
7046
7290
  }
7047
- var DEFAULT_LABELS10 = {
7291
+ var DEFAULT_LABELS11 = {
7048
7292
  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.",
7049
7293
  detailsSectionTitle: "Your details",
7050
7294
  tripInfoSectionTitle: "Trip info",
@@ -7709,7 +7953,7 @@ function RegistrationForm({
7709
7953
  }) {
7710
7954
  var _a;
7711
7955
  const L = React28__namespace.useMemo(
7712
- () => __spreadValues(__spreadValues({}, DEFAULT_LABELS10), labels != null ? labels : {}),
7956
+ () => __spreadValues(__spreadValues({}, DEFAULT_LABELS11), labels != null ? labels : {}),
7713
7957
  [labels]
7714
7958
  );
7715
7959
  const sortedFields = React28__namespace.useMemo(
@@ -13571,6 +13815,7 @@ exports.MenuTrip = MenuTrip;
13571
13815
  exports.OTPCodeInput = OTPCodeInput;
13572
13816
  exports.Offer = Offer;
13573
13817
  exports.OfferAdventureCard = OfferAdventureCard;
13818
+ exports.PartnerBookingCreatedEmail = PartnerBookingCreatedEmail;
13574
13819
  exports.PartnerConfirmationEmail = PartnerConfirmationEmail;
13575
13820
  exports.PaymentAmountSelector = PaymentAmountSelector;
13576
13821
  exports.PaymentDetailsBlock = PaymentDetailsBlock;