@planetaexo/design-system 0.2.15 → 0.3.1
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 +126 -79
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +60 -3
- package/dist/index.d.ts +60 -3
- package/dist/index.js +126 -79
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1048,21 +1048,33 @@ function CountrySearchField({
|
|
|
1048
1048
|
] });
|
|
1049
1049
|
}
|
|
1050
1050
|
function AdventureCard({ adventure }) {
|
|
1051
|
-
var _a, _b, _c;
|
|
1052
|
-
const
|
|
1053
|
-
|
|
1051
|
+
var _a, _b, _c, _d, _e;
|
|
1052
|
+
const isControlled = (_b = (_a = adventure.optionals) == null ? void 0 : _a.some((o) => o.onCheckedChange !== void 0)) != null ? _b : false;
|
|
1053
|
+
const [checkedInternal, setCheckedInternal] = React18.useState(
|
|
1054
|
+
new Set((_d = (_c = adventure.optionals) == null ? void 0 : _c.filter((o) => o.defaultChecked).map((o) => o.id)) != null ? _d : [])
|
|
1054
1055
|
);
|
|
1055
|
-
const
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1056
|
+
const isChecked = (opt) => {
|
|
1057
|
+
var _a2;
|
|
1058
|
+
return isControlled ? (_a2 = opt.checked) != null ? _a2 : false : checkedInternal.has(opt.id);
|
|
1059
|
+
};
|
|
1060
|
+
const toggleOptional = (opt) => {
|
|
1061
|
+
var _a2;
|
|
1062
|
+
if (isControlled) {
|
|
1063
|
+
(_a2 = opt.onCheckedChange) == null ? void 0 : _a2.call(opt, opt.id, !opt.checked);
|
|
1064
|
+
} else {
|
|
1065
|
+
setCheckedInternal((prev) => {
|
|
1066
|
+
const next = new Set(prev);
|
|
1067
|
+
next.has(opt.id) ? next.delete(opt.id) : next.add(opt.id);
|
|
1068
|
+
return next;
|
|
1069
|
+
});
|
|
1070
|
+
}
|
|
1071
|
+
};
|
|
1060
1072
|
return /* @__PURE__ */ jsxs("div", { className: "rounded-2xl border border-border bg-card overflow-hidden", children: [
|
|
1061
1073
|
/* @__PURE__ */ jsx("div", { className: "aspect-[16/7] overflow-hidden bg-muted", children: /* @__PURE__ */ jsx(
|
|
1062
1074
|
"img",
|
|
1063
1075
|
{
|
|
1064
1076
|
src: adventure.image,
|
|
1065
|
-
alt: (
|
|
1077
|
+
alt: (_e = adventure.imageAlt) != null ? _e : adventure.title,
|
|
1066
1078
|
className: "w-full h-full object-cover"
|
|
1067
1079
|
}
|
|
1068
1080
|
) }),
|
|
@@ -1104,8 +1116,8 @@ function AdventureCard({ adventure }) {
|
|
|
1104
1116
|
"input",
|
|
1105
1117
|
{
|
|
1106
1118
|
type: "checkbox",
|
|
1107
|
-
checked:
|
|
1108
|
-
onChange: () => toggleOptional(opt
|
|
1119
|
+
checked: isChecked(opt),
|
|
1120
|
+
onChange: () => toggleOptional(opt),
|
|
1109
1121
|
className: "h-4 w-4 shrink-0 rounded border-border accent-primary cursor-pointer"
|
|
1110
1122
|
}
|
|
1111
1123
|
),
|
|
@@ -2634,6 +2646,42 @@ function BookingDetails({
|
|
|
2634
2646
|
}
|
|
2635
2647
|
);
|
|
2636
2648
|
}
|
|
2649
|
+
var DEFAULT_LABELS = {
|
|
2650
|
+
ctaButton: "View booking details",
|
|
2651
|
+
logoAlt: "PlanetaEXO",
|
|
2652
|
+
greeting: (recipientName) => `Hi ${recipientName},`,
|
|
2653
|
+
confirmationMessage: "Great news \u2014 your booking has been confirmed! Everything is set and we\u2019re getting ready for your adventure.",
|
|
2654
|
+
detailsIntro: "Below you\u2019ll find the full details of your reservation, including the adventures, travellers, and payment summary.",
|
|
2655
|
+
nextStepsHeading: "\u{1F4CB} Next Steps",
|
|
2656
|
+
nextSteps: [
|
|
2657
|
+
"Each traveller will receive a separate email with a link to complete their individual registration.",
|
|
2658
|
+
"Make sure everyone completes their registration so we can organise everything properly.",
|
|
2659
|
+
"You will receive a final confirmation once all travellers are registered and ready to go."
|
|
2660
|
+
],
|
|
2661
|
+
bookingSummaryHeading: "\u{1F4DD} Booking Summary",
|
|
2662
|
+
bookingNumberLabel: "Booking Number",
|
|
2663
|
+
adventuresLabel: "Adventures",
|
|
2664
|
+
totalTravellersLabel: "Total Travellers",
|
|
2665
|
+
agentLabel: "Agent",
|
|
2666
|
+
adultsUnit: "adult(s)",
|
|
2667
|
+
childrenUnit: "child(ren)",
|
|
2668
|
+
travellersLabel: "Travellers",
|
|
2669
|
+
childBadge: "child",
|
|
2670
|
+
itineraryLabel: "Itinerary",
|
|
2671
|
+
includedLabel: "O que est\xE1 incluso",
|
|
2672
|
+
notIncludedLabel: "O que n\xE3o est\xE1 incluso",
|
|
2673
|
+
pricingLabel: "Pricing",
|
|
2674
|
+
subtotalLabel: "Subtotal",
|
|
2675
|
+
totalLabel: "Total",
|
|
2676
|
+
paymentSummaryHeading: "\u{1F4B0} Payment Summary",
|
|
2677
|
+
paymentDetailsHeading: "Payment Details",
|
|
2678
|
+
depositLabel: (percent) => `Deposit (${percent}%)`,
|
|
2679
|
+
remainingBalanceLabel: "Remaining balance",
|
|
2680
|
+
balanceDueLabel: "Balance due",
|
|
2681
|
+
paidInFullLabel: "\u2705 Paid in full",
|
|
2682
|
+
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.",
|
|
2683
|
+
footerContact: (agent) => `If you have any questions, just reply to this email or contact ${agent} \u2014 happy to help.`
|
|
2684
|
+
};
|
|
2637
2685
|
var DEFAULT_LOGO = "/logo-planetaexo.png";
|
|
2638
2686
|
function BookingConfirmation({
|
|
2639
2687
|
recipientName,
|
|
@@ -2646,8 +2694,10 @@ function BookingConfirmation({
|
|
|
2646
2694
|
depositInfo,
|
|
2647
2695
|
agent,
|
|
2648
2696
|
viewBookingUrl,
|
|
2697
|
+
labels,
|
|
2649
2698
|
className
|
|
2650
2699
|
}) {
|
|
2700
|
+
const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS), labels);
|
|
2651
2701
|
const allTravellers = adventures.flatMap((a) => {
|
|
2652
2702
|
var _a;
|
|
2653
2703
|
return (_a = a.travellers) != null ? _a : [];
|
|
@@ -2657,14 +2707,14 @@ function BookingConfirmation({
|
|
|
2657
2707
|
{
|
|
2658
2708
|
href: viewBookingUrl,
|
|
2659
2709
|
className: "inline-flex items-center justify-center rounded-lg bg-primary px-8 py-3.5 text-sm font-bold text-primary-foreground font-heading hover:bg-primary/90 transition-colors no-underline",
|
|
2660
|
-
children:
|
|
2710
|
+
children: l.ctaButton
|
|
2661
2711
|
}
|
|
2662
2712
|
) : /* @__PURE__ */ jsx(
|
|
2663
2713
|
"span",
|
|
2664
2714
|
{
|
|
2665
2715
|
className: "inline-flex items-center justify-center rounded-lg bg-primary px-8 py-3.5 text-sm font-bold text-primary-foreground font-heading",
|
|
2666
2716
|
role: "presentation",
|
|
2667
|
-
children:
|
|
2717
|
+
children: l.ctaButton
|
|
2668
2718
|
}
|
|
2669
2719
|
);
|
|
2670
2720
|
return /* @__PURE__ */ jsxs(
|
|
@@ -2679,50 +2729,42 @@ function BookingConfirmation({
|
|
|
2679
2729
|
"img",
|
|
2680
2730
|
{
|
|
2681
2731
|
src: logoUrl,
|
|
2682
|
-
alt:
|
|
2732
|
+
alt: l.logoAlt,
|
|
2683
2733
|
className: "h-[70px] w-auto object-contain"
|
|
2684
2734
|
}
|
|
2685
2735
|
) }),
|
|
2686
2736
|
/* @__PURE__ */ jsxs("div", { className: "px-8", children: [
|
|
2687
|
-
/* @__PURE__ */
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
","
|
|
2691
|
-
] }),
|
|
2692
|
-
/* @__PURE__ */ jsx("p", { className: "mb-5 text-base", children: "Great news \u2014 your booking has been confirmed! Everything is set and we're getting ready for your adventure." }),
|
|
2693
|
-
/* @__PURE__ */ jsx("p", { className: "mb-8 text-base", children: "Below you'll find the full details of your reservation, including the adventures, travellers, and payment summary." }),
|
|
2737
|
+
/* @__PURE__ */ jsx("p", { className: "mb-5 text-base", children: l.greeting(recipientName) }),
|
|
2738
|
+
/* @__PURE__ */ jsx("p", { className: "mb-5 text-base", children: l.confirmationMessage }),
|
|
2739
|
+
/* @__PURE__ */ jsx("p", { className: "mb-8 text-base", children: l.detailsIntro }),
|
|
2694
2740
|
/* @__PURE__ */ jsx("div", { className: "mb-10", children: ViewBookingCta })
|
|
2695
2741
|
] }),
|
|
2696
2742
|
/* @__PURE__ */ jsx("hr", { className: "border-t border-border mx-8" }),
|
|
2697
2743
|
/* @__PURE__ */ jsxs("div", { className: "px-8 py-8", children: [
|
|
2698
|
-
/* @__PURE__ */ jsx("p", { className: "mb-5 font-heading font-bold text-foreground text-lg", children:
|
|
2699
|
-
/* @__PURE__ */ jsx("div", { className: "rounded-xl border border-border p-5 flex flex-col gap-4", children: [
|
|
2700
|
-
"Each traveller will receive a separate email with a link to complete their individual registration.",
|
|
2701
|
-
"Make sure everyone completes their registration so we can organise everything properly.",
|
|
2702
|
-
"You will receive a final confirmation once all travellers are registered and ready to go."
|
|
2703
|
-
].map((step, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3.5", children: [
|
|
2744
|
+
/* @__PURE__ */ jsx("p", { className: "mb-5 font-heading font-bold text-foreground text-lg", children: l.nextStepsHeading }),
|
|
2745
|
+
/* @__PURE__ */ jsx("div", { className: "rounded-xl border border-border p-5 flex flex-col gap-4", children: l.nextSteps.map((step, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3.5", children: [
|
|
2704
2746
|
/* @__PURE__ */ jsx("span", { className: "flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary/10 text-xs font-bold text-primary font-heading mt-0.5", children: i + 1 }),
|
|
2705
2747
|
/* @__PURE__ */ jsx("p", { className: "text-sm text-foreground/80 leading-relaxed", children: step })
|
|
2706
2748
|
] }, i)) })
|
|
2707
2749
|
] }),
|
|
2708
2750
|
/* @__PURE__ */ jsx("hr", { className: "border-t border-border mx-8" }),
|
|
2709
2751
|
/* @__PURE__ */ jsxs("div", { className: "px-8 py-8", children: [
|
|
2710
|
-
/* @__PURE__ */ jsx("p", { className: "mb-5 font-heading font-bold text-foreground text-lg", children:
|
|
2752
|
+
/* @__PURE__ */ jsx("p", { className: "mb-5 font-heading font-bold text-foreground text-lg", children: l.bookingSummaryHeading }),
|
|
2711
2753
|
/* @__PURE__ */ jsx("div", { className: "rounded-xl border border-border overflow-hidden", children: /* @__PURE__ */ jsx("table", { className: "w-full text-sm", children: /* @__PURE__ */ jsxs("tbody", { children: [
|
|
2712
2754
|
/* @__PURE__ */ jsxs("tr", { className: "border-b border-border", children: [
|
|
2713
|
-
/* @__PURE__ */ jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children:
|
|
2755
|
+
/* @__PURE__ */ jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children: l.bookingNumberLabel }),
|
|
2714
2756
|
/* @__PURE__ */ jsx("td", { className: "py-3 px-5 font-semibold text-primary", children: bookingReference })
|
|
2715
2757
|
] }),
|
|
2716
2758
|
/* @__PURE__ */ jsxs("tr", { className: "border-b border-border", children: [
|
|
2717
|
-
/* @__PURE__ */ jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children:
|
|
2759
|
+
/* @__PURE__ */ jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children: l.adventuresLabel }),
|
|
2718
2760
|
/* @__PURE__ */ jsx("td", { className: "py-3 px-5 font-medium text-foreground", children: adventures.length })
|
|
2719
2761
|
] }),
|
|
2720
2762
|
/* @__PURE__ */ jsxs("tr", { className: "border-b border-border", children: [
|
|
2721
|
-
/* @__PURE__ */ jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children:
|
|
2763
|
+
/* @__PURE__ */ jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children: l.totalTravellersLabel }),
|
|
2722
2764
|
/* @__PURE__ */ jsx("td", { className: "py-3 px-5 font-medium text-foreground", children: allTravellers.length })
|
|
2723
2765
|
] }),
|
|
2724
2766
|
/* @__PURE__ */ jsxs("tr", { children: [
|
|
2725
|
-
/* @__PURE__ */ jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children:
|
|
2767
|
+
/* @__PURE__ */ jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children: l.agentLabel }),
|
|
2726
2768
|
/* @__PURE__ */ jsx("td", { className: "py-3 px-5 font-medium text-foreground", children: agent })
|
|
2727
2769
|
] })
|
|
2728
2770
|
] }) }) })
|
|
@@ -2772,8 +2814,8 @@ function BookingConfirmation({
|
|
|
2772
2814
|
/* @__PURE__ */ jsx("path", { d: "M16 3.13a4 4 0 0 1 0 7.75" })
|
|
2773
2815
|
] }),
|
|
2774
2816
|
[
|
|
2775
|
-
adventure.slots.adults ? `${adventure.slots.adults}
|
|
2776
|
-
adventure.slots.children ? `${adventure.slots.children}
|
|
2817
|
+
adventure.slots.adults ? `${adventure.slots.adults} ${l.adultsUnit}` : null,
|
|
2818
|
+
adventure.slots.children ? `${adventure.slots.children} ${l.childrenUnit}` : null
|
|
2777
2819
|
].filter(Boolean).join(" \xB7 ")
|
|
2778
2820
|
] }),
|
|
2779
2821
|
adventure.partner && /* @__PURE__ */ jsxs("p", { className: "flex items-center gap-1.5 text-sm text-muted-foreground font-sans leading-none", children: [
|
|
@@ -2786,7 +2828,7 @@ function BookingConfirmation({
|
|
|
2786
2828
|
adventure.travellers && adventure.travellers.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2787
2829
|
/* @__PURE__ */ jsx("hr", { className: "border-t border-border my-1" }),
|
|
2788
2830
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
2789
|
-
/* @__PURE__ */ jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-2", children:
|
|
2831
|
+
/* @__PURE__ */ jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-2", children: l.travellersLabel }),
|
|
2790
2832
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-1.5", children: adventure.travellers.map((t) => /* @__PURE__ */ jsxs(
|
|
2791
2833
|
"div",
|
|
2792
2834
|
{
|
|
@@ -2797,7 +2839,7 @@ function BookingConfirmation({
|
|
|
2797
2839
|
" ",
|
|
2798
2840
|
t.lastName
|
|
2799
2841
|
] }),
|
|
2800
|
-
t.isChild && /* @__PURE__ */ jsx("span", { className: "text-[10px] font-semibold text-muted-foreground bg-muted rounded-full px-2 py-0.5 font-heading uppercase tracking-wide", children:
|
|
2842
|
+
t.isChild && /* @__PURE__ */ jsx("span", { className: "text-[10px] font-semibold text-muted-foreground bg-muted rounded-full px-2 py-0.5 font-heading uppercase tracking-wide", children: l.childBadge })
|
|
2801
2843
|
]
|
|
2802
2844
|
},
|
|
2803
2845
|
t.id
|
|
@@ -2807,12 +2849,12 @@ function BookingConfirmation({
|
|
|
2807
2849
|
adventure.description && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2808
2850
|
/* @__PURE__ */ jsx("hr", { className: "border-t border-border my-1" }),
|
|
2809
2851
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
2810
|
-
/* @__PURE__ */ jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-2", children:
|
|
2852
|
+
/* @__PURE__ */ jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-2", children: l.itineraryLabel }),
|
|
2811
2853
|
/* @__PURE__ */ jsx("p", { className: "text-sm text-foreground/80 leading-relaxed font-sans", children: adventure.description })
|
|
2812
2854
|
] })
|
|
2813
2855
|
] }),
|
|
2814
2856
|
adventure.included && adventure.included.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
|
|
2815
|
-
/* @__PURE__ */ jsx("h4", { className: "text-sm font-bold text-foreground font-heading", children:
|
|
2857
|
+
/* @__PURE__ */ jsx("h4", { className: "text-sm font-bold text-foreground font-heading", children: l.includedLabel }),
|
|
2816
2858
|
/* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-1.5", children: adventure.included.map((item, i) => /* @__PURE__ */ jsxs(
|
|
2817
2859
|
"li",
|
|
2818
2860
|
{
|
|
@@ -2826,7 +2868,7 @@ function BookingConfirmation({
|
|
|
2826
2868
|
)) })
|
|
2827
2869
|
] }),
|
|
2828
2870
|
adventure.notIncluded && adventure.notIncluded.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
|
|
2829
|
-
/* @__PURE__ */ jsx("h4", { className: "text-sm font-bold text-foreground font-heading", children:
|
|
2871
|
+
/* @__PURE__ */ jsx("h4", { className: "text-sm font-bold text-foreground font-heading", children: l.notIncludedLabel }),
|
|
2830
2872
|
/* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-1.5", children: adventure.notIncluded.map((item, i) => /* @__PURE__ */ jsxs(
|
|
2831
2873
|
"li",
|
|
2832
2874
|
{
|
|
@@ -2845,7 +2887,7 @@ function BookingConfirmation({
|
|
|
2845
2887
|
adventure.lineItems && adventure.lineItems.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2846
2888
|
/* @__PURE__ */ jsx("hr", { className: "border-t border-border my-1" }),
|
|
2847
2889
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
2848
|
-
/* @__PURE__ */ jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-2", children:
|
|
2890
|
+
/* @__PURE__ */ jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-2", children: l.pricingLabel }),
|
|
2849
2891
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
2850
2892
|
adventure.lineItems.map((item, j) => /* @__PURE__ */ jsxs(
|
|
2851
2893
|
"div",
|
|
@@ -2871,7 +2913,7 @@ function BookingConfirmation({
|
|
|
2871
2913
|
j
|
|
2872
2914
|
)),
|
|
2873
2915
|
adventure.subtotal && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between pt-2 mt-1 border-t border-border", children: [
|
|
2874
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-bold text-foreground font-heading", children:
|
|
2916
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-bold text-foreground font-heading", children: l.subtotalLabel }),
|
|
2875
2917
|
/* @__PURE__ */ jsx("span", { className: "text-sm font-bold text-foreground font-heading whitespace-nowrap", children: adventure.subtotal })
|
|
2876
2918
|
] })
|
|
2877
2919
|
] })
|
|
@@ -2885,7 +2927,7 @@ function BookingConfirmation({
|
|
|
2885
2927
|
}) }),
|
|
2886
2928
|
/* @__PURE__ */ jsx("hr", { className: "border-t border-border mx-8" }),
|
|
2887
2929
|
/* @__PURE__ */ jsxs("div", { className: "px-8 py-8", children: [
|
|
2888
|
-
/* @__PURE__ */ jsx("p", { className: "mb-5 font-heading font-bold text-foreground text-lg", children:
|
|
2930
|
+
/* @__PURE__ */ jsx("p", { className: "mb-5 font-heading font-bold text-foreground text-lg", children: l.paymentSummaryHeading }),
|
|
2889
2931
|
/* @__PURE__ */ jsx("div", { className: "rounded-xl border border-border overflow-hidden", children: /* @__PURE__ */ jsx("table", { className: "w-full text-sm", children: /* @__PURE__ */ jsxs("tbody", { children: [
|
|
2890
2932
|
summaryLineItems && summaryLineItems.map((item, i) => /* @__PURE__ */ jsxs("tr", { className: "border-b border-border", children: [
|
|
2891
2933
|
/* @__PURE__ */ jsx("td", { className: "py-2.5 px-4 text-muted-foreground", children: item.label }),
|
|
@@ -2904,27 +2946,23 @@ function BookingConfirmation({
|
|
|
2904
2946
|
)
|
|
2905
2947
|
] }, i)),
|
|
2906
2948
|
subtotal && /* @__PURE__ */ jsxs("tr", { className: "border-b border-border", children: [
|
|
2907
|
-
/* @__PURE__ */ jsx("td", { className: "py-2.5 px-4 text-muted-foreground font-ui", children:
|
|
2949
|
+
/* @__PURE__ */ jsx("td", { className: "py-2.5 px-4 text-muted-foreground font-ui", children: l.subtotalLabel }),
|
|
2908
2950
|
/* @__PURE__ */ jsx("td", { className: "py-2.5 px-4 text-right font-medium text-foreground whitespace-nowrap", children: subtotal })
|
|
2909
2951
|
] }),
|
|
2910
2952
|
/* @__PURE__ */ jsxs("tr", { className: "bg-muted/30", children: [
|
|
2911
|
-
/* @__PURE__ */ jsx("td", { className: "py-4 px-4 font-bold text-foreground font-heading text-base", children:
|
|
2953
|
+
/* @__PURE__ */ jsx("td", { className: "py-4 px-4 font-bold text-foreground font-heading text-base", children: l.totalLabel }),
|
|
2912
2954
|
/* @__PURE__ */ jsx("td", { className: "py-4 px-4 text-right font-bold text-primary font-heading text-xl whitespace-nowrap", children: total })
|
|
2913
2955
|
] })
|
|
2914
2956
|
] }) }) }),
|
|
2915
2957
|
depositInfo && /* @__PURE__ */ jsxs("div", { className: "rounded-xl border border-border mt-4 overflow-hidden", children: [
|
|
2916
|
-
/* @__PURE__ */ jsx("div", { className: "px-4 py-3 bg-muted/30 border-b border-border", children: /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-muted-foreground font-heading uppercase tracking-widest", children:
|
|
2958
|
+
/* @__PURE__ */ jsx("div", { className: "px-4 py-3 bg-muted/30 border-b border-border", children: /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-muted-foreground font-heading uppercase tracking-widest", children: l.paymentDetailsHeading }) }),
|
|
2917
2959
|
/* @__PURE__ */ jsx("table", { className: "w-full text-sm", children: /* @__PURE__ */ jsxs("tbody", { children: [
|
|
2918
2960
|
/* @__PURE__ */ jsxs("tr", { className: "border-b border-border", children: [
|
|
2919
|
-
/* @__PURE__ */
|
|
2920
|
-
"Deposit (",
|
|
2921
|
-
depositInfo.depositPercent,
|
|
2922
|
-
"%)"
|
|
2923
|
-
] }),
|
|
2961
|
+
/* @__PURE__ */ jsx("td", { className: "py-2.5 px-4 text-muted-foreground", children: l.depositLabel(depositInfo.depositPercent) }),
|
|
2924
2962
|
/* @__PURE__ */ jsx("td", { className: "py-2.5 px-4 text-right font-medium text-foreground whitespace-nowrap", children: depositInfo.depositAmount })
|
|
2925
2963
|
] }),
|
|
2926
2964
|
/* @__PURE__ */ jsxs("tr", { className: "border-b border-border", children: [
|
|
2927
|
-
/* @__PURE__ */ jsx("td", { className: "py-2.5 px-4 text-muted-foreground", children:
|
|
2965
|
+
/* @__PURE__ */ jsx("td", { className: "py-2.5 px-4 text-muted-foreground", children: l.remainingBalanceLabel }),
|
|
2928
2966
|
/* @__PURE__ */ jsx("td", { className: "py-2.5 px-4 text-right font-medium text-foreground whitespace-nowrap", children: depositInfo.remainingAmount })
|
|
2929
2967
|
] }),
|
|
2930
2968
|
/* @__PURE__ */ jsxs(
|
|
@@ -2934,7 +2972,7 @@ function BookingConfirmation({
|
|
|
2934
2972
|
depositInfo.isPaidInFull && "border-b border-border"
|
|
2935
2973
|
),
|
|
2936
2974
|
children: [
|
|
2937
|
-
/* @__PURE__ */ jsx("td", { className: "py-2.5 px-4 text-muted-foreground", children:
|
|
2975
|
+
/* @__PURE__ */ jsx("td", { className: "py-2.5 px-4 text-muted-foreground", children: l.balanceDueLabel }),
|
|
2938
2976
|
/* @__PURE__ */ jsx("td", { className: "py-2.5 px-4 text-right font-medium text-foreground whitespace-nowrap", children: depositInfo.balanceDueDate })
|
|
2939
2977
|
]
|
|
2940
2978
|
}
|
|
@@ -2944,7 +2982,7 @@ function BookingConfirmation({
|
|
|
2944
2982
|
{
|
|
2945
2983
|
colSpan: 2,
|
|
2946
2984
|
className: "py-3 px-4 text-center font-semibold text-green-600 bg-green-50",
|
|
2947
|
-
children:
|
|
2985
|
+
children: l.paidInFullLabel
|
|
2948
2986
|
}
|
|
2949
2987
|
) })
|
|
2950
2988
|
] }) })
|
|
@@ -2952,18 +2990,29 @@ function BookingConfirmation({
|
|
|
2952
2990
|
] }),
|
|
2953
2991
|
/* @__PURE__ */ jsx("hr", { className: "border-t border-border mx-8" }),
|
|
2954
2992
|
/* @__PURE__ */ jsxs("div", { className: "px-8 py-8 pb-10", children: [
|
|
2955
|
-
/* @__PURE__ */ jsx("p", { className: "mb-5 text-base", children:
|
|
2956
|
-
/* @__PURE__ */
|
|
2957
|
-
"If you have any questions, just reply to this email or contact",
|
|
2958
|
-
" ",
|
|
2959
|
-
/* @__PURE__ */ jsx("span", { className: "font-semibold", children: agent }),
|
|
2960
|
-
" \u2014 happy to help."
|
|
2961
|
-
] })
|
|
2993
|
+
/* @__PURE__ */ jsx("p", { className: "mb-5 text-base", children: l.footerMessage }),
|
|
2994
|
+
/* @__PURE__ */ jsx("p", { className: "text-base", children: l.footerContact(agent) })
|
|
2962
2995
|
] })
|
|
2963
2996
|
]
|
|
2964
2997
|
}
|
|
2965
2998
|
);
|
|
2966
2999
|
}
|
|
3000
|
+
var DEFAULT_LABELS2 = {
|
|
3001
|
+
ctaButton: "Add travellers to your booking",
|
|
3002
|
+
logoAlt: "PlanetaEXO",
|
|
3003
|
+
greeting: (recipientName) => `Hi ${recipientName},`,
|
|
3004
|
+
thankYouMessage: "Thank you for booking your adventure with PlanetaEXO \u2014 we\u2019re really looking forward to your adventure.",
|
|
3005
|
+
addTravellersInstruction: "To move forward, the first step is to add all travellers included in your booking. Once you do this, each person \u2014 including you \u2014 will receive an email with a link to complete their individual registration.",
|
|
3006
|
+
summaryHeading: "\u{1F4DD} Here\u2019s a quick summary of your booking:",
|
|
3007
|
+
bookingNumberLabel: "Booking Number:",
|
|
3008
|
+
activityLabel: "Activity:",
|
|
3009
|
+
adventureLabel: "Adventure:",
|
|
3010
|
+
startingDateLabel: "Starting Date:",
|
|
3011
|
+
numberOfPeopleLabel: "Number of People:",
|
|
3012
|
+
hostLabel: "Host:",
|
|
3013
|
+
postCtaMessage: "After adding everyone, you will also receive your own registration email, just like the other travellers. Please make sure everyone completes this step so we can organise everything properly.",
|
|
3014
|
+
closingMessage: "If you have any questions, just reply to this email \u2014 happy to help."
|
|
3015
|
+
};
|
|
2967
3016
|
var DEFAULT_LOGO2 = "/logo-planetaexo.png";
|
|
2968
3017
|
function BookingConfirmationEmail({
|
|
2969
3018
|
recipientName,
|
|
@@ -2975,21 +3024,23 @@ function BookingConfirmationEmail({
|
|
|
2975
3024
|
startingDate,
|
|
2976
3025
|
numberOfPeople,
|
|
2977
3026
|
host,
|
|
3027
|
+
labels,
|
|
2978
3028
|
className
|
|
2979
3029
|
}) {
|
|
3030
|
+
const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS2), labels);
|
|
2980
3031
|
const AddTravellersCta = addTravellersUrl ? /* @__PURE__ */ jsx(
|
|
2981
3032
|
"a",
|
|
2982
3033
|
{
|
|
2983
3034
|
href: addTravellersUrl,
|
|
2984
3035
|
className: "inline-flex items-center justify-center rounded-lg bg-primary px-6 py-3 text-sm font-bold text-primary-foreground font-heading hover:bg-primary-800 transition-colors no-underline",
|
|
2985
|
-
children:
|
|
3036
|
+
children: l.ctaButton
|
|
2986
3037
|
}
|
|
2987
3038
|
) : /* @__PURE__ */ jsx(
|
|
2988
3039
|
"span",
|
|
2989
3040
|
{
|
|
2990
3041
|
className: "inline-flex items-center justify-center rounded-lg bg-primary px-6 py-3 text-sm font-bold text-primary-foreground font-heading",
|
|
2991
3042
|
role: "presentation",
|
|
2992
|
-
children:
|
|
3043
|
+
children: l.ctaButton
|
|
2993
3044
|
}
|
|
2994
3045
|
);
|
|
2995
3046
|
return /* @__PURE__ */ jsxs(
|
|
@@ -3004,49 +3055,45 @@ function BookingConfirmationEmail({
|
|
|
3004
3055
|
"img",
|
|
3005
3056
|
{
|
|
3006
3057
|
src: logoUrl,
|
|
3007
|
-
alt:
|
|
3058
|
+
alt: l.logoAlt,
|
|
3008
3059
|
className: "h-[70px] w-auto object-contain"
|
|
3009
3060
|
}
|
|
3010
3061
|
) }),
|
|
3011
|
-
/* @__PURE__ */
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
","
|
|
3015
|
-
] }),
|
|
3016
|
-
/* @__PURE__ */ jsx("p", { className: "mb-4", children: "Thank you for booking your adventure with PlanetaEXO \u2014 we're really looking forward to your adventure." }),
|
|
3017
|
-
/* @__PURE__ */ jsx("p", { className: "mb-4", children: "To move forward, the first step is to add all travellers included in your booking. Once you do this, each person \u2014 including you \u2014 will receive an email with a link to complete their individual registration." }),
|
|
3062
|
+
/* @__PURE__ */ jsx("p", { className: "mb-4", children: l.greeting(recipientName) }),
|
|
3063
|
+
/* @__PURE__ */ jsx("p", { className: "mb-4", children: l.thankYouMessage }),
|
|
3064
|
+
/* @__PURE__ */ jsx("p", { className: "mb-4", children: l.addTravellersInstruction }),
|
|
3018
3065
|
/* @__PURE__ */ jsx("div", { className: "mb-8", children: AddTravellersCta }),
|
|
3019
3066
|
/* @__PURE__ */ jsx("hr", { className: "border-t border-border mb-8" }),
|
|
3020
|
-
/* @__PURE__ */ jsx("p", { className: "mb-4 font-heading font-bold text-foreground", children:
|
|
3067
|
+
/* @__PURE__ */ jsx("p", { className: "mb-4 font-heading font-bold text-foreground", children: l.summaryHeading }),
|
|
3021
3068
|
/* @__PURE__ */ jsx("table", { className: "w-full text-sm mb-8", children: /* @__PURE__ */ jsxs("tbody", { className: "divide-y divide-border", children: [
|
|
3022
3069
|
/* @__PURE__ */ jsxs("tr", { children: [
|
|
3023
|
-
/* @__PURE__ */ jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children:
|
|
3070
|
+
/* @__PURE__ */ jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children: l.bookingNumberLabel }),
|
|
3024
3071
|
/* @__PURE__ */ jsx("td", { className: "py-1 font-medium text-foreground", children: bookingNumber })
|
|
3025
3072
|
] }),
|
|
3026
3073
|
/* @__PURE__ */ jsxs("tr", { children: [
|
|
3027
|
-
/* @__PURE__ */ jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children:
|
|
3074
|
+
/* @__PURE__ */ jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children: l.activityLabel }),
|
|
3028
3075
|
/* @__PURE__ */ jsx("td", { className: "py-1 font-medium text-foreground", children: activity })
|
|
3029
3076
|
] }),
|
|
3030
3077
|
/* @__PURE__ */ jsxs("tr", { children: [
|
|
3031
|
-
/* @__PURE__ */ jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children:
|
|
3078
|
+
/* @__PURE__ */ jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children: l.adventureLabel }),
|
|
3032
3079
|
/* @__PURE__ */ jsx("td", { className: "py-1 font-medium text-foreground", children: adventure })
|
|
3033
3080
|
] }),
|
|
3034
3081
|
/* @__PURE__ */ jsxs("tr", { children: [
|
|
3035
|
-
/* @__PURE__ */ jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children:
|
|
3082
|
+
/* @__PURE__ */ jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children: l.startingDateLabel }),
|
|
3036
3083
|
/* @__PURE__ */ jsx("td", { className: "py-1 font-medium text-foreground", children: startingDate })
|
|
3037
3084
|
] }),
|
|
3038
3085
|
/* @__PURE__ */ jsxs("tr", { children: [
|
|
3039
|
-
/* @__PURE__ */ jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children:
|
|
3086
|
+
/* @__PURE__ */ jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children: l.numberOfPeopleLabel }),
|
|
3040
3087
|
/* @__PURE__ */ jsx("td", { className: "py-1 font-medium text-foreground", children: numberOfPeople })
|
|
3041
3088
|
] }),
|
|
3042
3089
|
/* @__PURE__ */ jsxs("tr", { children: [
|
|
3043
|
-
/* @__PURE__ */ jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children:
|
|
3090
|
+
/* @__PURE__ */ jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children: l.hostLabel }),
|
|
3044
3091
|
/* @__PURE__ */ jsx("td", { className: "py-1 font-medium text-foreground", children: host })
|
|
3045
3092
|
] })
|
|
3046
3093
|
] }) }),
|
|
3047
3094
|
/* @__PURE__ */ jsx("hr", { className: "border-t border-border mb-8" }),
|
|
3048
|
-
/* @__PURE__ */ jsx("p", { className: "mb-4", children:
|
|
3049
|
-
/* @__PURE__ */ jsx("p", { children:
|
|
3095
|
+
/* @__PURE__ */ jsx("p", { className: "mb-4", children: l.postCtaMessage }),
|
|
3096
|
+
/* @__PURE__ */ jsx("p", { children: l.closingMessage })
|
|
3050
3097
|
]
|
|
3051
3098
|
}
|
|
3052
3099
|
);
|