@planetaexo/design-system 0.15.1 → 0.17.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
@@ -3808,7 +3808,8 @@ var DEFAULT_LABELS = {
3808
3808
  balanceDueLabel: "Balance due",
3809
3809
  paidInFullLabel: "\u2705 Paid in full",
3810
3810
  footerMessage: "All travellers have been registered for this booking. Each person will receive a separate email with their individual details and any pre-departure information.",
3811
- footerContact: (agent) => `If you have any questions, just reply to this email or contact ${agent} \u2014 happy to help.`
3811
+ footerContact: (agent) => `If you have any questions, just reply to this email or contact ${agent} \u2014 happy to help.`,
3812
+ closingMessage: "You can access your booking at any time through the link below."
3812
3813
  };
3813
3814
  function BookingConfirmation({
3814
3815
  recipientName,
@@ -3822,13 +3823,15 @@ function BookingConfirmation({
3822
3823
  agent,
3823
3824
  viewBookingUrl,
3824
3825
  labels,
3825
- className
3826
+ className,
3827
+ flow = "auto"
3826
3828
  }) {
3827
3829
  const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS), labels);
3828
3830
  const allTravellers = adventures.flatMap((a) => {
3829
3831
  var _a;
3830
3832
  return (_a = a.travellers) != null ? _a : [];
3831
3833
  });
3834
+ const isManualFlow = flow === "manual";
3832
3835
  const ctaStyle = {
3833
3836
  display: "inline-block",
3834
3837
  backgroundColor: emailTokens.primary,
@@ -3861,31 +3864,33 @@ function BookingConfirmation({
3861
3864
  /* @__PURE__ */ jsxRuntime.jsx(EmailLogo, { src: logoUrl, alt: l.logoAlt, paddingTop: "40px", paddingX: "32px" }),
3862
3865
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { paddingLeft: "32px", paddingRight: "32px" }, children: [
3863
3866
  /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "20px", marginTop: 0, fontSize: "16px" }, children: l.greeting(recipientName) }),
3864
- /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "20px", marginTop: 0, fontSize: "16px" }, children: l.confirmationMessage }),
3865
- /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "32px", marginTop: 0, fontSize: "16px" }, children: l.detailsIntro }),
3866
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginBottom: "40px" }, children: ViewBookingCta })
3867
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: isManualFlow ? "32px" : "20px", marginTop: 0, fontSize: "16px" }, children: l.confirmationMessage }),
3868
+ !isManualFlow && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "32px", marginTop: 0, fontSize: "16px" }, children: l.detailsIntro }),
3869
+ !isManualFlow && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginBottom: "40px" }, children: ViewBookingCta })
3867
3870
  ] }),
3868
3871
  /* @__PURE__ */ jsxRuntime.jsx("hr", { style: { border: "none", borderTop: `1px solid ${emailTokens.border}`, margin: "0 32px" } }),
3869
- /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { paddingLeft: "32px", paddingRight: "32px", paddingTop: "32px", paddingBottom: "32px" }, children: [
3870
- /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginTop: 0, marginBottom: "20px", fontWeight: "700", color: emailTokens.foreground, fontSize: "18px", fontFamily: emailTokens.fontFamily }, children: l.nextStepsHeading }),
3871
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: { borderRadius: "12px", border: `1px solid ${emailTokens.border}`, padding: "20px" }, children: l.nextSteps.map((step, i) => /* @__PURE__ */ jsxRuntime.jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", width: "100%", marginBottom: i < l.nextSteps.length - 1 ? "16px" : "0" }, children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
3872
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "top", width: "32px", paddingRight: "14px" }, children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: {
3873
- display: "inline-block",
3874
- height: "24px",
3875
- width: "24px",
3876
- lineHeight: "24px",
3877
- textAlign: "center",
3878
- borderRadius: "9999px",
3879
- backgroundColor: emailTokens.primaryLight,
3880
- fontSize: "12px",
3881
- fontWeight: "700",
3882
- color: emailTokens.primary,
3883
- marginTop: "2px"
3884
- }, children: i + 1 }) }),
3885
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "top" }, children: /* @__PURE__ */ jsxRuntime.jsx("p", { style: { fontSize: "14px", color: emailTokens.bodyText, lineHeight: "1.6", margin: 0 }, children: step }) })
3886
- ] }) }) }, i)) })
3872
+ !isManualFlow && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3873
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { paddingLeft: "32px", paddingRight: "32px", paddingTop: "32px", paddingBottom: "32px" }, children: [
3874
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginTop: 0, marginBottom: "20px", fontWeight: "700", color: emailTokens.foreground, fontSize: "18px", fontFamily: emailTokens.fontFamily }, children: l.nextStepsHeading }),
3875
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { borderRadius: "12px", border: `1px solid ${emailTokens.border}`, padding: "20px" }, children: l.nextSteps.map((step, i) => /* @__PURE__ */ jsxRuntime.jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", width: "100%", marginBottom: i < l.nextSteps.length - 1 ? "16px" : "0" }, children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
3876
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "top", width: "32px", paddingRight: "14px" }, children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: {
3877
+ display: "inline-block",
3878
+ height: "24px",
3879
+ width: "24px",
3880
+ lineHeight: "24px",
3881
+ textAlign: "center",
3882
+ borderRadius: "9999px",
3883
+ backgroundColor: emailTokens.primaryLight,
3884
+ fontSize: "12px",
3885
+ fontWeight: "700",
3886
+ color: emailTokens.primary,
3887
+ marginTop: "2px"
3888
+ }, children: i + 1 }) }),
3889
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "top" }, children: /* @__PURE__ */ jsxRuntime.jsx("p", { style: { fontSize: "14px", color: emailTokens.bodyText, lineHeight: "1.6", margin: 0 }, children: step }) })
3890
+ ] }) }) }, i)) })
3891
+ ] }),
3892
+ /* @__PURE__ */ jsxRuntime.jsx("hr", { style: { border: "none", borderTop: `1px solid ${emailTokens.border}`, margin: "0 32px" } })
3887
3893
  ] }),
3888
- /* @__PURE__ */ jsxRuntime.jsx("hr", { style: { border: "none", borderTop: `1px solid ${emailTokens.border}`, margin: "0 32px" } }),
3889
3894
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { paddingLeft: "32px", paddingRight: "32px", paddingTop: "32px", paddingBottom: "32px" }, children: [
3890
3895
  /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginTop: 0, marginBottom: "20px", fontWeight: "700", color: emailTokens.foreground, fontSize: "18px", fontFamily: emailTokens.fontFamily }, children: l.bookingSummaryHeading }),
3891
3896
  /* @__PURE__ */ jsxRuntime.jsx("div", { style: { borderRadius: "12px", border: `1px solid ${emailTokens.border}`, overflow: "hidden" }, children: /* @__PURE__ */ jsxRuntime.jsx("table", { style: { width: "100%", fontSize: "14px", borderCollapse: "collapse" }, children: /* @__PURE__ */ jsxRuntime.jsxs("tbody", { children: [
@@ -3909,7 +3914,7 @@ function BookingConfirmation({
3909
3914
  ] }),
3910
3915
  /* @__PURE__ */ jsxRuntime.jsx("hr", { style: { border: "none", borderTop: `1px solid ${emailTokens.border}`, margin: "0 32px" } }),
3911
3916
  /* @__PURE__ */ jsxRuntime.jsx("div", { style: { paddingLeft: "32px", paddingRight: "32px", paddingTop: "32px", paddingBottom: "32px" }, children: adventures.map((adventure, adIdx) => {
3912
- var _a;
3917
+ var _a, _b, _c, _d, _e;
3913
3918
  return /* @__PURE__ */ jsxRuntime.jsxs(
3914
3919
  "div",
3915
3920
  {
@@ -3930,7 +3935,7 @@ function BookingConfirmation({
3930
3935
  }
3931
3936
  ) }),
3932
3937
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { padding: "20px" }, children: [
3933
- adventure.reference && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginBottom: "10px" }, children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: {
3938
+ ((_b = adventure.code) != null ? _b : adventure.reference) && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginBottom: "10px" }, children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: {
3934
3939
  display: "inline-block",
3935
3940
  backgroundColor: emailTokens.primaryLight,
3936
3941
  color: emailTokens.primary,
@@ -3939,46 +3944,30 @@ function BookingConfirmation({
3939
3944
  fontSize: "12px",
3940
3945
  fontWeight: "600",
3941
3946
  letterSpacing: "0.05em"
3942
- }, children: adventure.reference }) }),
3947
+ }, children: (_c = adventure.code) != null ? _c : adventure.reference }) }),
3943
3948
  /* @__PURE__ */ jsxRuntime.jsx("h3", { style: { fontSize: "20px", fontWeight: "700", color: emailTokens.foreground, lineHeight: "1.3", margin: "0 0 10px 0" }, children: adventure.title }),
3944
3949
  /* @__PURE__ */ jsxRuntime.jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", marginBottom: "10px" }, children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
3945
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "middle", paddingRight: "6px", width: "14px" }, children: /* @__PURE__ */ jsxRuntime.jsxs("svg", { style: { display: "block", width: "14px", height: "14px", color: emailTokens.primary }, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
3946
- /* @__PURE__ */ jsxRuntime.jsx("rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", ry: "2" }),
3947
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "16", x2: "16", y1: "2", y2: "6" }),
3948
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "8", x2: "8", y1: "2", y2: "6" }),
3949
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "3", x2: "21", y1: "10", y2: "10" })
3950
- ] }) }),
3950
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "middle", paddingRight: "6px", width: "16px" }, children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: { display: "inline-block", fontSize: "14px", lineHeight: "1" }, children: "\u{1F4C5}" }) }),
3951
3951
  /* @__PURE__ */ jsxRuntime.jsxs("td", { style: { verticalAlign: "middle", fontSize: "14px", color: emailTokens.mutedForeground, lineHeight: "1" }, children: [
3952
3952
  adventure.dateFrom,
3953
3953
  " \u2192 ",
3954
3954
  adventure.dateTo
3955
3955
  ] })
3956
3956
  ] }) }) }),
3957
- adventure.location && /* @__PURE__ */ jsxRuntime.jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", marginBottom: "10px" }, children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
3958
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "middle", paddingRight: "6px", width: "14px" }, children: /* @__PURE__ */ jsxRuntime.jsxs("svg", { style: { display: "block", width: "14px", height: "14px", color: emailTokens.primary }, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
3959
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z" }),
3960
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "10", r: "3" })
3961
- ] }) }),
3957
+ adventure.location && !adventure.destinationName && /* @__PURE__ */ jsxRuntime.jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", marginBottom: "10px" }, children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
3958
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "middle", paddingRight: "6px", width: "16px" }, children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: { display: "inline-block", fontSize: "14px", lineHeight: "1" }, children: "\u{1F4CD}" }) }),
3962
3959
  /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "middle", fontSize: "14px", color: emailTokens.mutedForeground, lineHeight: "1" }, children: adventure.location })
3963
3960
  ] }) }) }),
3964
3961
  adventure.slots && /* @__PURE__ */ jsxRuntime.jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", marginBottom: "10px" }, children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
3965
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "middle", paddingRight: "6px", width: "14px" }, children: /* @__PURE__ */ jsxRuntime.jsxs("svg", { style: { display: "block", width: "14px", height: "14px", color: emailTokens.primary }, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
3966
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" }),
3967
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "9", cy: "7", r: "4" }),
3968
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M22 21v-2a4 4 0 0 0-3-3.87" }),
3969
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16 3.13a4 4 0 0 1 0 7.75" })
3970
- ] }) }),
3962
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "middle", paddingRight: "6px", width: "16px" }, children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: { display: "inline-block", fontSize: "14px", lineHeight: "1" }, children: "\u{1F465}" }) }),
3971
3963
  /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "middle", fontSize: "14px", color: emailTokens.mutedForeground, lineHeight: "1" }, children: [
3972
3964
  adventure.slots.adults ? `${adventure.slots.adults} ${l.adultsUnit}` : null,
3973
3965
  adventure.slots.children ? `${adventure.slots.children} ${l.childrenUnit}` : null
3974
3966
  ].filter(Boolean).join(" \xB7 ") })
3975
3967
  ] }) }) }),
3976
- adventure.partner && /* @__PURE__ */ jsxRuntime.jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", marginBottom: "10px" }, children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
3977
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "middle", paddingRight: "6px", width: "14px" }, children: /* @__PURE__ */ jsxRuntime.jsxs("svg", { style: { display: "block", width: "14px", height: "14px", color: emailTokens.primary }, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
3978
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
3979
- /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76" })
3980
- ] }) }),
3981
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "middle", fontSize: "14px", color: emailTokens.mutedForeground, lineHeight: "1" }, children: adventure.partner })
3968
+ ((_d = adventure.destinationName) != null ? _d : adventure.partner) && /* @__PURE__ */ jsxRuntime.jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", marginBottom: "10px" }, children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
3969
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "middle", paddingRight: "6px", width: "16px" }, children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: { display: "inline-block", fontSize: "14px", lineHeight: "1" }, children: "\u{1F9ED}" }) }),
3970
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "middle", fontSize: "14px", color: emailTokens.mutedForeground, lineHeight: "1" }, children: (_e = adventure.destinationName) != null ? _e : adventure.partner })
3982
3971
  ] }) }) }),
3983
3972
  adventure.travellers && adventure.travellers.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { marginTop: "4px" }, children: [
3984
3973
  /* @__PURE__ */ jsxRuntime.jsx("hr", { style: { border: "none", borderTop: `1px solid ${emailTokens.border}`, marginBottom: "10px" } }),
@@ -4006,17 +3995,14 @@ function BookingConfirmation({
4006
3995
  adventure.included && adventure.included.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { marginTop: "10px" }, children: [
4007
3996
  /* @__PURE__ */ jsxRuntime.jsx("h4", { style: { fontSize: "14px", fontWeight: "700", color: emailTokens.foreground, margin: "0 0 8px 0" }, children: l.includedLabel }),
4008
3997
  adventure.included.map((item, i) => /* @__PURE__ */ jsxRuntime.jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", width: "100%", marginBottom: "6px" }, children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
4009
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "top", paddingRight: "8px", width: "16px" }, children: /* @__PURE__ */ jsxRuntime.jsx("svg", { style: { display: "block", width: "16px", height: "16px", color: emailTokens.primary, marginTop: "2px" }, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "20 6 9 17 4 12" }) }) }),
3998
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "top", paddingRight: "8px", width: "16px" }, children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: { display: "inline-block", fontSize: "14px", color: emailTokens.primary, lineHeight: "1.2", fontWeight: 700 }, children: "\u2713" }) }),
4010
3999
  /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "top", fontSize: "14px", color: emailTokens.bodyText }, children: item })
4011
4000
  ] }) }) }, i))
4012
4001
  ] }),
4013
4002
  adventure.notIncluded && adventure.notIncluded.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { marginTop: "10px" }, children: [
4014
4003
  /* @__PURE__ */ jsxRuntime.jsx("h4", { style: { fontSize: "14px", fontWeight: "700", color: emailTokens.foreground, margin: "0 0 8px 0" }, children: l.notIncludedLabel }),
4015
4004
  adventure.notIncluded.map((item, i) => /* @__PURE__ */ jsxRuntime.jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", width: "100%", marginBottom: "6px" }, children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
4016
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "top", paddingRight: "8px", width: "16px" }, children: /* @__PURE__ */ jsxRuntime.jsxs("svg", { style: { display: "block", width: "16px", height: "16px", color: emailTokens.destructive, marginTop: "2px" }, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
4017
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18 6 6 18" }),
4018
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m6 6 12 12" })
4019
- ] }) }),
4005
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "top", paddingRight: "8px", width: "16px" }, children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: { display: "inline-block", fontSize: "14px", color: emailTokens.destructive, lineHeight: "1.2", fontWeight: 700 }, children: "\u2717" }) }),
4020
4006
  /* @__PURE__ */ jsxRuntime.jsx("td", { style: { verticalAlign: "top", fontSize: "14px", color: emailTokens.bodyText }, children: item })
4021
4007
  ] }) }) }, i))
4022
4008
  ] }),
@@ -4068,11 +4054,11 @@ function BookingConfirmation({
4068
4054
  /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "10px 16px", color: emailTokens.mutedForeground }, children: l.depositLabel(depositInfo.depositPercent) }),
4069
4055
  /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "10px 16px", textAlign: "right", fontWeight: "500", color: emailTokens.foreground, whiteSpace: "nowrap" }, children: depositInfo.depositAmount })
4070
4056
  ] }),
4071
- /* @__PURE__ */ jsxRuntime.jsxs("tr", { style: { borderBottom: `1px solid ${emailTokens.border}` }, children: [
4057
+ /* @__PURE__ */ jsxRuntime.jsxs("tr", { style: depositInfo.isPaidInFull ? {} : { borderBottom: `1px solid ${emailTokens.border}` }, children: [
4072
4058
  /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "10px 16px", color: emailTokens.mutedForeground }, children: l.remainingBalanceLabel }),
4073
4059
  /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "10px 16px", textAlign: "right", fontWeight: "500", color: emailTokens.foreground, whiteSpace: "nowrap" }, children: depositInfo.remainingAmount })
4074
4060
  ] }),
4075
- /* @__PURE__ */ jsxRuntime.jsxs("tr", { style: depositInfo.isPaidInFull ? { borderBottom: `1px solid ${emailTokens.border}` } : {}, children: [
4061
+ !depositInfo.isPaidInFull && /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
4076
4062
  /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "10px 16px", color: emailTokens.mutedForeground }, children: l.balanceDueLabel }),
4077
4063
  /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "10px 16px", textAlign: "right", fontWeight: "500", color: emailTokens.foreground, whiteSpace: "nowrap" }, children: depositInfo.balanceDueDate })
4078
4064
  ] }),
@@ -4081,10 +4067,16 @@ function BookingConfirmation({
4081
4067
  ] })
4082
4068
  ] }),
4083
4069
  /* @__PURE__ */ jsxRuntime.jsx("hr", { style: { border: "none", borderTop: `1px solid ${emailTokens.border}`, margin: "0 32px" } }),
4084
- /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { paddingLeft: "32px", paddingRight: "32px", paddingTop: "32px", paddingBottom: "40px" }, children: [
4070
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { paddingLeft: "32px", paddingRight: "32px", paddingTop: "32px", paddingBottom: "40px" }, children: isManualFlow ? (
4071
+ // Manual flow: closing message + CTA no rodapé (substitui footerMessage/footerContact).
4072
+ /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4073
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginTop: 0, marginBottom: "32px", fontSize: "16px" }, children: l.closingMessage }),
4074
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: ViewBookingCta })
4075
+ ] })
4076
+ ) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4085
4077
  /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginTop: 0, marginBottom: "20px", fontSize: "16px" }, children: l.footerMessage }),
4086
4078
  /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginTop: 0, marginBottom: 0, fontSize: "16px" }, children: l.footerContact(agent) })
4087
- ] })
4079
+ ] }) })
4088
4080
  ]
4089
4081
  }
4090
4082
  );
@@ -4209,6 +4201,141 @@ function BookingConfirmationEmail({
4209
4201
  }
4210
4202
  );
4211
4203
  }
4204
+ var DEFAULT_LABELS3 = {
4205
+ logoAlt: "PlanetaEXO",
4206
+ greeting: (name) => `Hi ${name},`,
4207
+ receiptHeading: "Payment receipt",
4208
+ bookingNumberLabel: "Booking number",
4209
+ paymentMethodLabel: "Payment method",
4210
+ paymentDateLabel: "Payment date",
4211
+ amountLabel: "Amount",
4212
+ chargedAmountLabel: "Charged amount",
4213
+ interestSurchargeLabel: "Interest / surcharge",
4214
+ statusLabel: "Status",
4215
+ travellersLabel: "Travellers",
4216
+ summaryHeading: "Booking summary",
4217
+ totalOrderLabel: "Total order",
4218
+ totalPaidLabel: "Total paid",
4219
+ remainingBalanceLabel: "Remaining balance",
4220
+ balanceDueDateLabel: "Balance due",
4221
+ paidInFullMessage: "\u2705 Paid in full",
4222
+ closingMessage: "If you have any questions, just reply to this email \u2014 happy to help.",
4223
+ teamSignature: "PlanetaEXO Team"
4224
+ };
4225
+ function PaymentReceiptEmail({
4226
+ recipientName,
4227
+ bookingNumber,
4228
+ paymentMethodLabel,
4229
+ paymentDate,
4230
+ amount,
4231
+ chargedAmount,
4232
+ statusLabel,
4233
+ travellers,
4234
+ totalOrderAmount,
4235
+ totalPaidCumulative,
4236
+ remainingBalance,
4237
+ balanceDueDate,
4238
+ isPaidInFull,
4239
+ logoUrl,
4240
+ labels,
4241
+ className
4242
+ }) {
4243
+ const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS3), labels);
4244
+ const travellersLine = travellers.filter((s) => s.trim().length > 0).join(", ");
4245
+ const interestRow = chargedAmount && chargedAmount !== amount;
4246
+ const receiptRows = [
4247
+ { label: l.bookingNumberLabel, value: bookingNumber },
4248
+ { label: l.paymentMethodLabel, value: paymentMethodLabel },
4249
+ { label: l.paymentDateLabel, value: paymentDate },
4250
+ { label: l.amountLabel, value: amount },
4251
+ ...interestRow ? [{ label: l.chargedAmountLabel, value: chargedAmount }] : [],
4252
+ { label: l.statusLabel, value: statusLabel },
4253
+ ...travellersLine.length > 0 ? [{ label: l.travellersLabel, value: travellersLine }] : []
4254
+ ];
4255
+ const summaryRows = [
4256
+ { label: l.totalOrderLabel, value: totalOrderAmount },
4257
+ { label: l.totalPaidLabel, value: totalPaidCumulative },
4258
+ { label: l.remainingBalanceLabel, value: remainingBalance },
4259
+ ...balanceDueDate ? [{ label: l.balanceDueDateLabel, value: balanceDueDate }] : []
4260
+ ];
4261
+ return /* @__PURE__ */ jsxRuntime.jsxs(
4262
+ "div",
4263
+ {
4264
+ style: {
4265
+ maxWidth: "576px",
4266
+ margin: "0 auto",
4267
+ backgroundColor: emailTokens.white,
4268
+ color: emailTokens.foreground,
4269
+ fontFamily: emailTokens.fontFamily,
4270
+ fontSize: "16px",
4271
+ lineHeight: "1.6",
4272
+ border: `1px solid ${emailTokens.border}`,
4273
+ borderRadius: "12px",
4274
+ overflow: "hidden",
4275
+ padding: "32px"
4276
+ },
4277
+ className,
4278
+ children: [
4279
+ /* @__PURE__ */ jsxRuntime.jsx(EmailLogo, { src: logoUrl, alt: l.logoAlt }),
4280
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px" }, children: l.greeting(recipientName) }),
4281
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "12px", fontWeight: 700, color: emailTokens.foreground, fontSize: "16px" }, children: l.receiptHeading }),
4282
+ /* @__PURE__ */ jsxRuntime.jsx(
4283
+ "div",
4284
+ {
4285
+ style: {
4286
+ borderRadius: "12px",
4287
+ border: `1px solid ${emailTokens.border}`,
4288
+ padding: "20px",
4289
+ marginBottom: "24px"
4290
+ },
4291
+ children: /* @__PURE__ */ jsxRuntime.jsx("table", { style: { width: "100%", fontSize: "14px", borderCollapse: "collapse" }, children: /* @__PURE__ */ jsxRuntime.jsxs("tbody", { children: [
4292
+ receiptRows.map((row, i) => /* @__PURE__ */ jsxRuntime.jsxs("tr", { style: i > 0 ? { borderTop: `1px solid ${emailTokens.border}` } : {}, children: [
4293
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "8px 12px 8px 0", color: emailTokens.mutedForeground, verticalAlign: "top", whiteSpace: "nowrap" }, children: row.label }),
4294
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "8px 0", fontWeight: 500, color: emailTokens.foreground, verticalAlign: "top" }, children: row.value })
4295
+ ] }, i)),
4296
+ interestRow && /* @__PURE__ */ jsxRuntime.jsx("tr", { children: /* @__PURE__ */ jsxRuntime.jsx("td", { colSpan: 2, style: { paddingTop: "8px", fontSize: "12px", color: emailTokens.mutedForeground, fontStyle: "italic" }, children: l.interestSurchargeLabel }) })
4297
+ ] }) })
4298
+ }
4299
+ ),
4300
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "12px", fontWeight: 700, color: emailTokens.foreground, fontSize: "16px" }, children: l.summaryHeading }),
4301
+ /* @__PURE__ */ jsxRuntime.jsx(
4302
+ "div",
4303
+ {
4304
+ style: {
4305
+ borderRadius: "12px",
4306
+ border: `1px solid ${emailTokens.border}`,
4307
+ overflow: "hidden",
4308
+ marginBottom: "24px"
4309
+ },
4310
+ children: /* @__PURE__ */ jsxRuntime.jsx("table", { style: { width: "100%", fontSize: "14px", borderCollapse: "collapse" }, children: /* @__PURE__ */ jsxRuntime.jsxs("tbody", { children: [
4311
+ summaryRows.map((row, i) => /* @__PURE__ */ jsxRuntime.jsxs("tr", { style: i > 0 ? { borderTop: `1px solid ${emailTokens.border}` } : {}, children: [
4312
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "10px 16px", color: emailTokens.mutedForeground, verticalAlign: "top" }, children: row.label }),
4313
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "10px 16px", textAlign: "right", fontWeight: 500, color: emailTokens.foreground, whiteSpace: "nowrap" }, children: row.value })
4314
+ ] }, i)),
4315
+ isPaidInFull && /* @__PURE__ */ jsxRuntime.jsx("tr", { children: /* @__PURE__ */ jsxRuntime.jsx(
4316
+ "td",
4317
+ {
4318
+ colSpan: 2,
4319
+ style: {
4320
+ padding: "12px 16px",
4321
+ textAlign: "center",
4322
+ fontWeight: 600,
4323
+ color: emailTokens.green,
4324
+ backgroundColor: emailTokens.greenBg,
4325
+ borderTop: `1px solid ${emailTokens.border}`
4326
+ },
4327
+ children: l.paidInFullMessage
4328
+ }
4329
+ ) })
4330
+ ] }) })
4331
+ }
4332
+ ),
4333
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", fontSize: "14px", color: emailTokens.bodyText }, children: l.closingMessage }),
4334
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginTop: 0, marginBottom: 0, fontSize: "14px", color: emailTokens.bodyText }, children: l.teamSignature })
4335
+ ]
4336
+ }
4337
+ );
4338
+ }
4212
4339
  function BookingOtpEmail({
4213
4340
  greeting,
4214
4341
  intro,
@@ -4889,7 +5016,7 @@ function BookingForm({
4889
5016
  }
4890
5017
  );
4891
5018
  }
4892
- var DEFAULT_LABELS3 = {
5019
+ var DEFAULT_LABELS4 = {
4893
5020
  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.",
4894
5021
  detailsSectionTitle: "Your details",
4895
5022
  tripInfoSectionTitle: "Trip info",
@@ -5553,7 +5680,7 @@ function RegistrationForm({
5553
5680
  }) {
5554
5681
  var _a;
5555
5682
  const L = React23__namespace.useMemo(
5556
- () => __spreadValues(__spreadValues({}, DEFAULT_LABELS3), labels != null ? labels : {}),
5683
+ () => __spreadValues(__spreadValues({}, DEFAULT_LABELS4), labels != null ? labels : {}),
5557
5684
  [labels]
5558
5685
  );
5559
5686
  const sortedFields = React23__namespace.useMemo(
@@ -9654,6 +9781,7 @@ exports.OfferAdventureCard = OfferAdventureCard;
9654
9781
  exports.PaymentAmountSelector = PaymentAmountSelector;
9655
9782
  exports.PaymentMethodSelector = PaymentMethodSelector;
9656
9783
  exports.PaymentModalShell = PaymentModalShell;
9784
+ exports.PaymentReceiptEmail = PaymentReceiptEmail;
9657
9785
  exports.PhoneCountrySelect = PhoneCountrySelect;
9658
9786
  exports.PhotoGallery = PhotoGallery;
9659
9787
  exports.PricingTrip = PricingTrip;