@planetaexo/design-system 0.2.15 → 0.3.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 +103 -68
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +55 -3
- package/dist/index.d.ts +55 -3
- package/dist/index.js +103 -68
- package/dist/index.js.map +1 -1
- package/package.json +5 -1
package/dist/index.cjs
CHANGED
|
@@ -2655,6 +2655,42 @@ function BookingDetails({
|
|
|
2655
2655
|
}
|
|
2656
2656
|
);
|
|
2657
2657
|
}
|
|
2658
|
+
var DEFAULT_LABELS = {
|
|
2659
|
+
ctaButton: "View booking details",
|
|
2660
|
+
logoAlt: "PlanetaEXO",
|
|
2661
|
+
greeting: (recipientName) => `Hi ${recipientName},`,
|
|
2662
|
+
confirmationMessage: "Great news \u2014 your booking has been confirmed! Everything is set and we\u2019re getting ready for your adventure.",
|
|
2663
|
+
detailsIntro: "Below you\u2019ll find the full details of your reservation, including the adventures, travellers, and payment summary.",
|
|
2664
|
+
nextStepsHeading: "\u{1F4CB} Next Steps",
|
|
2665
|
+
nextSteps: [
|
|
2666
|
+
"Each traveller will receive a separate email with a link to complete their individual registration.",
|
|
2667
|
+
"Make sure everyone completes their registration so we can organise everything properly.",
|
|
2668
|
+
"You will receive a final confirmation once all travellers are registered and ready to go."
|
|
2669
|
+
],
|
|
2670
|
+
bookingSummaryHeading: "\u{1F4DD} Booking Summary",
|
|
2671
|
+
bookingNumberLabel: "Booking Number",
|
|
2672
|
+
adventuresLabel: "Adventures",
|
|
2673
|
+
totalTravellersLabel: "Total Travellers",
|
|
2674
|
+
agentLabel: "Agent",
|
|
2675
|
+
adultsUnit: "adult(s)",
|
|
2676
|
+
childrenUnit: "child(ren)",
|
|
2677
|
+
travellersLabel: "Travellers",
|
|
2678
|
+
childBadge: "child",
|
|
2679
|
+
itineraryLabel: "Itinerary",
|
|
2680
|
+
includedLabel: "O que est\xE1 incluso",
|
|
2681
|
+
notIncludedLabel: "O que n\xE3o est\xE1 incluso",
|
|
2682
|
+
pricingLabel: "Pricing",
|
|
2683
|
+
subtotalLabel: "Subtotal",
|
|
2684
|
+
totalLabel: "Total",
|
|
2685
|
+
paymentSummaryHeading: "\u{1F4B0} Payment Summary",
|
|
2686
|
+
paymentDetailsHeading: "Payment Details",
|
|
2687
|
+
depositLabel: (percent) => `Deposit (${percent}%)`,
|
|
2688
|
+
remainingBalanceLabel: "Remaining balance",
|
|
2689
|
+
balanceDueLabel: "Balance due",
|
|
2690
|
+
paidInFullLabel: "\u2705 Paid in full",
|
|
2691
|
+
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.",
|
|
2692
|
+
footerContact: (agent) => `If you have any questions, just reply to this email or contact ${agent} \u2014 happy to help.`
|
|
2693
|
+
};
|
|
2658
2694
|
var DEFAULT_LOGO = "/logo-planetaexo.png";
|
|
2659
2695
|
function BookingConfirmation({
|
|
2660
2696
|
recipientName,
|
|
@@ -2667,8 +2703,10 @@ function BookingConfirmation({
|
|
|
2667
2703
|
depositInfo,
|
|
2668
2704
|
agent,
|
|
2669
2705
|
viewBookingUrl,
|
|
2706
|
+
labels,
|
|
2670
2707
|
className
|
|
2671
2708
|
}) {
|
|
2709
|
+
const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS), labels);
|
|
2672
2710
|
const allTravellers = adventures.flatMap((a) => {
|
|
2673
2711
|
var _a;
|
|
2674
2712
|
return (_a = a.travellers) != null ? _a : [];
|
|
@@ -2678,14 +2716,14 @@ function BookingConfirmation({
|
|
|
2678
2716
|
{
|
|
2679
2717
|
href: viewBookingUrl,
|
|
2680
2718
|
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",
|
|
2681
|
-
children:
|
|
2719
|
+
children: l.ctaButton
|
|
2682
2720
|
}
|
|
2683
2721
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2684
2722
|
"span",
|
|
2685
2723
|
{
|
|
2686
2724
|
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",
|
|
2687
2725
|
role: "presentation",
|
|
2688
|
-
children:
|
|
2726
|
+
children: l.ctaButton
|
|
2689
2727
|
}
|
|
2690
2728
|
);
|
|
2691
2729
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -2700,50 +2738,42 @@ function BookingConfirmation({
|
|
|
2700
2738
|
"img",
|
|
2701
2739
|
{
|
|
2702
2740
|
src: logoUrl,
|
|
2703
|
-
alt:
|
|
2741
|
+
alt: l.logoAlt,
|
|
2704
2742
|
className: "h-[70px] w-auto object-contain"
|
|
2705
2743
|
}
|
|
2706
2744
|
) }),
|
|
2707
2745
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-8", children: [
|
|
2708
|
-
/* @__PURE__ */ jsxRuntime.
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
","
|
|
2712
|
-
] }),
|
|
2713
|
-
/* @__PURE__ */ jsxRuntime.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." }),
|
|
2714
|
-
/* @__PURE__ */ jsxRuntime.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." }),
|
|
2746
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-5 text-base", children: l.greeting(recipientName) }),
|
|
2747
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-5 text-base", children: l.confirmationMessage }),
|
|
2748
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-8 text-base", children: l.detailsIntro }),
|
|
2715
2749
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-10", children: ViewBookingCta })
|
|
2716
2750
|
] }),
|
|
2717
2751
|
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border mx-8" }),
|
|
2718
2752
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-8 py-8", children: [
|
|
2719
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-5 font-heading font-bold text-foreground text-lg", children:
|
|
2720
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-xl border border-border p-5 flex flex-col gap-4", children: [
|
|
2721
|
-
"Each traveller will receive a separate email with a link to complete their individual registration.",
|
|
2722
|
-
"Make sure everyone completes their registration so we can organise everything properly.",
|
|
2723
|
-
"You will receive a final confirmation once all travellers are registered and ready to go."
|
|
2724
|
-
].map((step, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3.5", children: [
|
|
2753
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-5 font-heading font-bold text-foreground text-lg", children: l.nextStepsHeading }),
|
|
2754
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-xl border border-border p-5 flex flex-col gap-4", children: l.nextSteps.map((step, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3.5", children: [
|
|
2725
2755
|
/* @__PURE__ */ jsxRuntime.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 }),
|
|
2726
2756
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-foreground/80 leading-relaxed", children: step })
|
|
2727
2757
|
] }, i)) })
|
|
2728
2758
|
] }),
|
|
2729
2759
|
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border mx-8" }),
|
|
2730
2760
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-8 py-8", children: [
|
|
2731
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-5 font-heading font-bold text-foreground text-lg", children:
|
|
2761
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-5 font-heading font-bold text-foreground text-lg", children: l.bookingSummaryHeading }),
|
|
2732
2762
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-xl border border-border overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx("table", { className: "w-full text-sm", children: /* @__PURE__ */ jsxRuntime.jsxs("tbody", { children: [
|
|
2733
2763
|
/* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "border-b border-border", children: [
|
|
2734
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children:
|
|
2764
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children: l.bookingNumberLabel }),
|
|
2735
2765
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 font-semibold text-primary", children: bookingReference })
|
|
2736
2766
|
] }),
|
|
2737
2767
|
/* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "border-b border-border", children: [
|
|
2738
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children:
|
|
2768
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children: l.adventuresLabel }),
|
|
2739
2769
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 font-medium text-foreground", children: adventures.length })
|
|
2740
2770
|
] }),
|
|
2741
2771
|
/* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "border-b border-border", children: [
|
|
2742
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children:
|
|
2772
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children: l.totalTravellersLabel }),
|
|
2743
2773
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 font-medium text-foreground", children: allTravellers.length })
|
|
2744
2774
|
] }),
|
|
2745
2775
|
/* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
|
|
2746
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children:
|
|
2776
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children: l.agentLabel }),
|
|
2747
2777
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 font-medium text-foreground", children: agent })
|
|
2748
2778
|
] })
|
|
2749
2779
|
] }) }) })
|
|
@@ -2793,8 +2823,8 @@ function BookingConfirmation({
|
|
|
2793
2823
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16 3.13a4 4 0 0 1 0 7.75" })
|
|
2794
2824
|
] }),
|
|
2795
2825
|
[
|
|
2796
|
-
adventure.slots.adults ? `${adventure.slots.adults}
|
|
2797
|
-
adventure.slots.children ? `${adventure.slots.children}
|
|
2826
|
+
adventure.slots.adults ? `${adventure.slots.adults} ${l.adultsUnit}` : null,
|
|
2827
|
+
adventure.slots.children ? `${adventure.slots.children} ${l.childrenUnit}` : null
|
|
2798
2828
|
].filter(Boolean).join(" \xB7 ")
|
|
2799
2829
|
] }),
|
|
2800
2830
|
adventure.partner && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "flex items-center gap-1.5 text-sm text-muted-foreground font-sans leading-none", children: [
|
|
@@ -2807,7 +2837,7 @@ function BookingConfirmation({
|
|
|
2807
2837
|
adventure.travellers && adventure.travellers.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2808
2838
|
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border my-1" }),
|
|
2809
2839
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
2810
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-2", children:
|
|
2840
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-2", children: l.travellersLabel }),
|
|
2811
2841
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-1.5", children: adventure.travellers.map((t) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2812
2842
|
"div",
|
|
2813
2843
|
{
|
|
@@ -2818,7 +2848,7 @@ function BookingConfirmation({
|
|
|
2818
2848
|
" ",
|
|
2819
2849
|
t.lastName
|
|
2820
2850
|
] }),
|
|
2821
|
-
t.isChild && /* @__PURE__ */ jsxRuntime.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:
|
|
2851
|
+
t.isChild && /* @__PURE__ */ jsxRuntime.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 })
|
|
2822
2852
|
]
|
|
2823
2853
|
},
|
|
2824
2854
|
t.id
|
|
@@ -2828,12 +2858,12 @@ function BookingConfirmation({
|
|
|
2828
2858
|
adventure.description && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2829
2859
|
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border my-1" }),
|
|
2830
2860
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
2831
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-2", children:
|
|
2861
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-2", children: l.itineraryLabel }),
|
|
2832
2862
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-foreground/80 leading-relaxed font-sans", children: adventure.description })
|
|
2833
2863
|
] })
|
|
2834
2864
|
] }),
|
|
2835
2865
|
adventure.included && adventure.included.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
|
|
2836
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-bold text-foreground font-heading", children:
|
|
2866
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-bold text-foreground font-heading", children: l.includedLabel }),
|
|
2837
2867
|
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-1.5", children: adventure.included.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2838
2868
|
"li",
|
|
2839
2869
|
{
|
|
@@ -2847,7 +2877,7 @@ function BookingConfirmation({
|
|
|
2847
2877
|
)) })
|
|
2848
2878
|
] }),
|
|
2849
2879
|
adventure.notIncluded && adventure.notIncluded.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
|
|
2850
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-bold text-foreground font-heading", children:
|
|
2880
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-bold text-foreground font-heading", children: l.notIncludedLabel }),
|
|
2851
2881
|
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-1.5", children: adventure.notIncluded.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2852
2882
|
"li",
|
|
2853
2883
|
{
|
|
@@ -2866,7 +2896,7 @@ function BookingConfirmation({
|
|
|
2866
2896
|
adventure.lineItems && adventure.lineItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2867
2897
|
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border my-1" }),
|
|
2868
2898
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
2869
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-2", children:
|
|
2899
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-2", children: l.pricingLabel }),
|
|
2870
2900
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
2871
2901
|
adventure.lineItems.map((item, j) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2872
2902
|
"div",
|
|
@@ -2892,7 +2922,7 @@ function BookingConfirmation({
|
|
|
2892
2922
|
j
|
|
2893
2923
|
)),
|
|
2894
2924
|
adventure.subtotal && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between pt-2 mt-1 border-t border-border", children: [
|
|
2895
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold text-foreground font-heading", children:
|
|
2925
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold text-foreground font-heading", children: l.subtotalLabel }),
|
|
2896
2926
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold text-foreground font-heading whitespace-nowrap", children: adventure.subtotal })
|
|
2897
2927
|
] })
|
|
2898
2928
|
] })
|
|
@@ -2906,7 +2936,7 @@ function BookingConfirmation({
|
|
|
2906
2936
|
}) }),
|
|
2907
2937
|
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border mx-8" }),
|
|
2908
2938
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-8 py-8", children: [
|
|
2909
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-5 font-heading font-bold text-foreground text-lg", children:
|
|
2939
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-5 font-heading font-bold text-foreground text-lg", children: l.paymentSummaryHeading }),
|
|
2910
2940
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-xl border border-border overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx("table", { className: "w-full text-sm", children: /* @__PURE__ */ jsxRuntime.jsxs("tbody", { children: [
|
|
2911
2941
|
summaryLineItems && summaryLineItems.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "border-b border-border", children: [
|
|
2912
2942
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-muted-foreground", children: item.label }),
|
|
@@ -2925,27 +2955,23 @@ function BookingConfirmation({
|
|
|
2925
2955
|
)
|
|
2926
2956
|
] }, i)),
|
|
2927
2957
|
subtotal && /* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "border-b border-border", children: [
|
|
2928
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-muted-foreground font-ui", children:
|
|
2958
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-muted-foreground font-ui", children: l.subtotalLabel }),
|
|
2929
2959
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-right font-medium text-foreground whitespace-nowrap", children: subtotal })
|
|
2930
2960
|
] }),
|
|
2931
2961
|
/* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "bg-muted/30", children: [
|
|
2932
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-4 px-4 font-bold text-foreground font-heading text-base", children:
|
|
2962
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-4 px-4 font-bold text-foreground font-heading text-base", children: l.totalLabel }),
|
|
2933
2963
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-4 px-4 text-right font-bold text-primary font-heading text-xl whitespace-nowrap", children: total })
|
|
2934
2964
|
] })
|
|
2935
2965
|
] }) }) }),
|
|
2936
2966
|
depositInfo && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-border mt-4 overflow-hidden", children: [
|
|
2937
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 py-3 bg-muted/30 border-b border-border", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-bold text-muted-foreground font-heading uppercase tracking-widest", children:
|
|
2967
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 py-3 bg-muted/30 border-b border-border", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-bold text-muted-foreground font-heading uppercase tracking-widest", children: l.paymentDetailsHeading }) }),
|
|
2938
2968
|
/* @__PURE__ */ jsxRuntime.jsx("table", { className: "w-full text-sm", children: /* @__PURE__ */ jsxRuntime.jsxs("tbody", { children: [
|
|
2939
2969
|
/* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "border-b border-border", children: [
|
|
2940
|
-
/* @__PURE__ */ jsxRuntime.
|
|
2941
|
-
"Deposit (",
|
|
2942
|
-
depositInfo.depositPercent,
|
|
2943
|
-
"%)"
|
|
2944
|
-
] }),
|
|
2970
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-muted-foreground", children: l.depositLabel(depositInfo.depositPercent) }),
|
|
2945
2971
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-right font-medium text-foreground whitespace-nowrap", children: depositInfo.depositAmount })
|
|
2946
2972
|
] }),
|
|
2947
2973
|
/* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "border-b border-border", children: [
|
|
2948
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-muted-foreground", children:
|
|
2974
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-muted-foreground", children: l.remainingBalanceLabel }),
|
|
2949
2975
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-right font-medium text-foreground whitespace-nowrap", children: depositInfo.remainingAmount })
|
|
2950
2976
|
] }),
|
|
2951
2977
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -2955,7 +2981,7 @@ function BookingConfirmation({
|
|
|
2955
2981
|
depositInfo.isPaidInFull && "border-b border-border"
|
|
2956
2982
|
),
|
|
2957
2983
|
children: [
|
|
2958
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-muted-foreground", children:
|
|
2984
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-muted-foreground", children: l.balanceDueLabel }),
|
|
2959
2985
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-right font-medium text-foreground whitespace-nowrap", children: depositInfo.balanceDueDate })
|
|
2960
2986
|
]
|
|
2961
2987
|
}
|
|
@@ -2965,7 +2991,7 @@ function BookingConfirmation({
|
|
|
2965
2991
|
{
|
|
2966
2992
|
colSpan: 2,
|
|
2967
2993
|
className: "py-3 px-4 text-center font-semibold text-green-600 bg-green-50",
|
|
2968
|
-
children:
|
|
2994
|
+
children: l.paidInFullLabel
|
|
2969
2995
|
}
|
|
2970
2996
|
) })
|
|
2971
2997
|
] }) })
|
|
@@ -2973,18 +2999,29 @@ function BookingConfirmation({
|
|
|
2973
2999
|
] }),
|
|
2974
3000
|
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border mx-8" }),
|
|
2975
3001
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-8 py-8 pb-10", children: [
|
|
2976
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-5 text-base", children:
|
|
2977
|
-
/* @__PURE__ */ jsxRuntime.
|
|
2978
|
-
"If you have any questions, just reply to this email or contact",
|
|
2979
|
-
" ",
|
|
2980
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold", children: agent }),
|
|
2981
|
-
" \u2014 happy to help."
|
|
2982
|
-
] })
|
|
3002
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-5 text-base", children: l.footerMessage }),
|
|
3003
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-base", children: l.footerContact(agent) })
|
|
2983
3004
|
] })
|
|
2984
3005
|
]
|
|
2985
3006
|
}
|
|
2986
3007
|
);
|
|
2987
3008
|
}
|
|
3009
|
+
var DEFAULT_LABELS2 = {
|
|
3010
|
+
ctaButton: "Add travellers to your booking",
|
|
3011
|
+
logoAlt: "PlanetaEXO",
|
|
3012
|
+
greeting: (recipientName) => `Hi ${recipientName},`,
|
|
3013
|
+
thankYouMessage: "Thank you for booking your adventure with PlanetaEXO \u2014 we\u2019re really looking forward to your adventure.",
|
|
3014
|
+
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.",
|
|
3015
|
+
summaryHeading: "\u{1F4DD} Here\u2019s a quick summary of your booking:",
|
|
3016
|
+
bookingNumberLabel: "Booking Number:",
|
|
3017
|
+
activityLabel: "Activity:",
|
|
3018
|
+
adventureLabel: "Adventure:",
|
|
3019
|
+
startingDateLabel: "Starting Date:",
|
|
3020
|
+
numberOfPeopleLabel: "Number of People:",
|
|
3021
|
+
hostLabel: "Host:",
|
|
3022
|
+
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.",
|
|
3023
|
+
closingMessage: "If you have any questions, just reply to this email \u2014 happy to help."
|
|
3024
|
+
};
|
|
2988
3025
|
var DEFAULT_LOGO2 = "/logo-planetaexo.png";
|
|
2989
3026
|
function BookingConfirmationEmail({
|
|
2990
3027
|
recipientName,
|
|
@@ -2996,21 +3033,23 @@ function BookingConfirmationEmail({
|
|
|
2996
3033
|
startingDate,
|
|
2997
3034
|
numberOfPeople,
|
|
2998
3035
|
host,
|
|
3036
|
+
labels,
|
|
2999
3037
|
className
|
|
3000
3038
|
}) {
|
|
3039
|
+
const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS2), labels);
|
|
3001
3040
|
const AddTravellersCta = addTravellersUrl ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3002
3041
|
"a",
|
|
3003
3042
|
{
|
|
3004
3043
|
href: addTravellersUrl,
|
|
3005
3044
|
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",
|
|
3006
|
-
children:
|
|
3045
|
+
children: l.ctaButton
|
|
3007
3046
|
}
|
|
3008
3047
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
3009
3048
|
"span",
|
|
3010
3049
|
{
|
|
3011
3050
|
className: "inline-flex items-center justify-center rounded-lg bg-primary px-6 py-3 text-sm font-bold text-primary-foreground font-heading",
|
|
3012
3051
|
role: "presentation",
|
|
3013
|
-
children:
|
|
3052
|
+
children: l.ctaButton
|
|
3014
3053
|
}
|
|
3015
3054
|
);
|
|
3016
3055
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3025,49 +3064,45 @@ function BookingConfirmationEmail({
|
|
|
3025
3064
|
"img",
|
|
3026
3065
|
{
|
|
3027
3066
|
src: logoUrl,
|
|
3028
|
-
alt:
|
|
3067
|
+
alt: l.logoAlt,
|
|
3029
3068
|
className: "h-[70px] w-auto object-contain"
|
|
3030
3069
|
}
|
|
3031
3070
|
) }),
|
|
3032
|
-
/* @__PURE__ */ jsxRuntime.
|
|
3033
|
-
|
|
3034
|
-
|
|
3035
|
-
","
|
|
3036
|
-
] }),
|
|
3037
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-4", children: "Thank you for booking your adventure with PlanetaEXO \u2014 we're really looking forward to your adventure." }),
|
|
3038
|
-
/* @__PURE__ */ jsxRuntime.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." }),
|
|
3071
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-4", children: l.greeting(recipientName) }),
|
|
3072
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-4", children: l.thankYouMessage }),
|
|
3073
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-4", children: l.addTravellersInstruction }),
|
|
3039
3074
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-8", children: AddTravellersCta }),
|
|
3040
3075
|
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border mb-8" }),
|
|
3041
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-4 font-heading font-bold text-foreground", children:
|
|
3076
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-4 font-heading font-bold text-foreground", children: l.summaryHeading }),
|
|
3042
3077
|
/* @__PURE__ */ jsxRuntime.jsx("table", { className: "w-full text-sm mb-8", children: /* @__PURE__ */ jsxRuntime.jsxs("tbody", { className: "divide-y divide-border", children: [
|
|
3043
3078
|
/* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
|
|
3044
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children:
|
|
3079
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children: l.bookingNumberLabel }),
|
|
3045
3080
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 font-medium text-foreground", children: bookingNumber })
|
|
3046
3081
|
] }),
|
|
3047
3082
|
/* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
|
|
3048
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children:
|
|
3083
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children: l.activityLabel }),
|
|
3049
3084
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 font-medium text-foreground", children: activity })
|
|
3050
3085
|
] }),
|
|
3051
3086
|
/* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
|
|
3052
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children:
|
|
3087
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children: l.adventureLabel }),
|
|
3053
3088
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 font-medium text-foreground", children: adventure })
|
|
3054
3089
|
] }),
|
|
3055
3090
|
/* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
|
|
3056
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children:
|
|
3091
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children: l.startingDateLabel }),
|
|
3057
3092
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 font-medium text-foreground", children: startingDate })
|
|
3058
3093
|
] }),
|
|
3059
3094
|
/* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
|
|
3060
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children:
|
|
3095
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children: l.numberOfPeopleLabel }),
|
|
3061
3096
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 font-medium text-foreground", children: numberOfPeople })
|
|
3062
3097
|
] }),
|
|
3063
3098
|
/* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
|
|
3064
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children:
|
|
3099
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 pr-4 text-muted-foreground font-ui", children: l.hostLabel }),
|
|
3065
3100
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-1 font-medium text-foreground", children: host })
|
|
3066
3101
|
] })
|
|
3067
3102
|
] }) }),
|
|
3068
3103
|
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border mb-8" }),
|
|
3069
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-4", children:
|
|
3070
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { children:
|
|
3104
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-4", children: l.postCtaMessage }),
|
|
3105
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { children: l.closingMessage })
|
|
3071
3106
|
]
|
|
3072
3107
|
}
|
|
3073
3108
|
);
|