@planetaexo/design-system 0.2.11 → 0.2.13
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 +333 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +75 -1
- package/dist/index.d.ts +75 -1
- package/dist/index.js +331 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -2714,9 +2714,342 @@ function BookingConfirmationEmail({
|
|
|
2714
2714
|
}
|
|
2715
2715
|
);
|
|
2716
2716
|
}
|
|
2717
|
+
var DEFAULT_LOGO2 = "/logo-planetaexo.png";
|
|
2718
|
+
function BookingConfirmation({
|
|
2719
|
+
recipientName,
|
|
2720
|
+
logoUrl = DEFAULT_LOGO2,
|
|
2721
|
+
bookingReference,
|
|
2722
|
+
adventures,
|
|
2723
|
+
summaryLineItems,
|
|
2724
|
+
subtotal,
|
|
2725
|
+
total,
|
|
2726
|
+
depositInfo,
|
|
2727
|
+
agent,
|
|
2728
|
+
viewBookingUrl,
|
|
2729
|
+
className
|
|
2730
|
+
}) {
|
|
2731
|
+
const allTravellers = adventures.flatMap((a) => {
|
|
2732
|
+
var _a;
|
|
2733
|
+
return (_a = a.travellers) != null ? _a : [];
|
|
2734
|
+
});
|
|
2735
|
+
const ViewBookingCta = viewBookingUrl ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2736
|
+
"a",
|
|
2737
|
+
{
|
|
2738
|
+
href: viewBookingUrl,
|
|
2739
|
+
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",
|
|
2740
|
+
children: "View booking details"
|
|
2741
|
+
}
|
|
2742
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2743
|
+
"span",
|
|
2744
|
+
{
|
|
2745
|
+
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",
|
|
2746
|
+
role: "presentation",
|
|
2747
|
+
children: "View booking details"
|
|
2748
|
+
}
|
|
2749
|
+
);
|
|
2750
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2751
|
+
"div",
|
|
2752
|
+
{
|
|
2753
|
+
className: cn(
|
|
2754
|
+
"max-w-xl mx-auto bg-white text-foreground font-sans text-base leading-relaxed",
|
|
2755
|
+
className
|
|
2756
|
+
),
|
|
2757
|
+
children: [
|
|
2758
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-10 pb-8 flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2759
|
+
"img",
|
|
2760
|
+
{
|
|
2761
|
+
src: logoUrl,
|
|
2762
|
+
alt: "PlanetaEXO",
|
|
2763
|
+
className: "h-[70px] w-auto object-contain"
|
|
2764
|
+
}
|
|
2765
|
+
) }),
|
|
2766
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-8", children: [
|
|
2767
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mb-5 text-base", children: [
|
|
2768
|
+
"Hi ",
|
|
2769
|
+
recipientName,
|
|
2770
|
+
","
|
|
2771
|
+
] }),
|
|
2772
|
+
/* @__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." }),
|
|
2773
|
+
/* @__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." }),
|
|
2774
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-10", children: ViewBookingCta })
|
|
2775
|
+
] }),
|
|
2776
|
+
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border mx-8" }),
|
|
2777
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-8 py-8", children: [
|
|
2778
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-5 font-heading font-bold text-foreground text-lg", children: "\u{1F4CB} Next Steps" }),
|
|
2779
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-xl border border-border p-5 flex flex-col gap-4", children: [
|
|
2780
|
+
"Each traveller will receive a separate email with a link to complete their individual registration.",
|
|
2781
|
+
"Make sure everyone completes their registration so we can organise everything properly.",
|
|
2782
|
+
"You will receive a final confirmation once all travellers are registered and ready to go."
|
|
2783
|
+
].map((step, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3.5", children: [
|
|
2784
|
+
/* @__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 }),
|
|
2785
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-foreground/80 leading-relaxed", children: step })
|
|
2786
|
+
] }, i)) })
|
|
2787
|
+
] }),
|
|
2788
|
+
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border mx-8" }),
|
|
2789
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-8 py-8", children: [
|
|
2790
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-5 font-heading font-bold text-foreground text-lg", children: "\u{1F4DD} Booking Summary" }),
|
|
2791
|
+
/* @__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: [
|
|
2792
|
+
/* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "border-b border-border", children: [
|
|
2793
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children: "Booking Number" }),
|
|
2794
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 font-semibold text-primary", children: bookingReference })
|
|
2795
|
+
] }),
|
|
2796
|
+
/* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "border-b border-border", children: [
|
|
2797
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children: "Adventures" }),
|
|
2798
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 font-medium text-foreground", children: adventures.length })
|
|
2799
|
+
] }),
|
|
2800
|
+
/* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "border-b border-border", children: [
|
|
2801
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children: "Total Travellers" }),
|
|
2802
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 font-medium text-foreground", children: allTravellers.length })
|
|
2803
|
+
] }),
|
|
2804
|
+
/* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
|
|
2805
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 text-muted-foreground font-ui bg-muted/30", children: "Agent" }),
|
|
2806
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-3 px-5 font-medium text-foreground", children: agent })
|
|
2807
|
+
] })
|
|
2808
|
+
] }) }) })
|
|
2809
|
+
] }),
|
|
2810
|
+
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border mx-8" }),
|
|
2811
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-8 py-8 flex flex-col gap-6", children: adventures.map((adventure) => {
|
|
2812
|
+
var _a;
|
|
2813
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2814
|
+
"div",
|
|
2815
|
+
{
|
|
2816
|
+
className: "rounded-2xl border border-border bg-card overflow-hidden",
|
|
2817
|
+
children: [
|
|
2818
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-[16/7] overflow-hidden bg-muted", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2819
|
+
"img",
|
|
2820
|
+
{
|
|
2821
|
+
src: adventure.image,
|
|
2822
|
+
alt: (_a = adventure.imageAlt) != null ? _a : adventure.title,
|
|
2823
|
+
className: "w-full h-full object-cover"
|
|
2824
|
+
}
|
|
2825
|
+
) }),
|
|
2826
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-5 flex flex-col gap-2.5", children: [
|
|
2827
|
+
adventure.reference && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex items-center rounded-md bg-primary/10 px-2 py-0.5 text-xs font-semibold text-primary font-heading tracking-wide self-start", children: adventure.reference }),
|
|
2828
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl font-bold text-foreground font-heading leading-snug mt-0.5", children: adventure.title }),
|
|
2829
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "flex items-center gap-1.5 text-sm text-muted-foreground font-sans leading-none", children: [
|
|
2830
|
+
/* @__PURE__ */ jsxRuntime.jsxs("svg", { className: "w-3.5 h-3.5 text-primary shrink-0", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
2831
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", ry: "2" }),
|
|
2832
|
+
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "16", x2: "16", y1: "2", y2: "6" }),
|
|
2833
|
+
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "8", x2: "8", y1: "2", y2: "6" }),
|
|
2834
|
+
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "3", x2: "21", y1: "10", y2: "10" })
|
|
2835
|
+
] }),
|
|
2836
|
+
adventure.dateFrom,
|
|
2837
|
+
" \u2192 ",
|
|
2838
|
+
adventure.dateTo
|
|
2839
|
+
] }),
|
|
2840
|
+
adventure.location && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "flex items-center gap-1.5 text-sm text-muted-foreground font-sans leading-none", children: [
|
|
2841
|
+
/* @__PURE__ */ jsxRuntime.jsxs("svg", { className: "w-3.5 h-3.5 text-primary shrink-0", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
2842
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z" }),
|
|
2843
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "10", r: "3" })
|
|
2844
|
+
] }),
|
|
2845
|
+
adventure.location
|
|
2846
|
+
] }),
|
|
2847
|
+
adventure.slots && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "flex items-center gap-1.5 text-sm text-muted-foreground font-sans leading-none", children: [
|
|
2848
|
+
/* @__PURE__ */ jsxRuntime.jsxs("svg", { className: "w-3.5 h-3.5 text-primary shrink-0", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
2849
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" }),
|
|
2850
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "9", cy: "7", r: "4" }),
|
|
2851
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M22 21v-2a4 4 0 0 0-3-3.87" }),
|
|
2852
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16 3.13a4 4 0 0 1 0 7.75" })
|
|
2853
|
+
] }),
|
|
2854
|
+
[
|
|
2855
|
+
adventure.slots.adults ? `${adventure.slots.adults} adult(s)` : null,
|
|
2856
|
+
adventure.slots.children ? `${adventure.slots.children} child(ren)` : null
|
|
2857
|
+
].filter(Boolean).join(" \xB7 ")
|
|
2858
|
+
] }),
|
|
2859
|
+
adventure.partner && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "flex items-center gap-1.5 text-sm text-muted-foreground font-sans leading-none", children: [
|
|
2860
|
+
/* @__PURE__ */ jsxRuntime.jsxs("svg", { className: "w-3.5 h-3.5 text-primary shrink-0", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
2861
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
|
|
2862
|
+
/* @__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" })
|
|
2863
|
+
] }),
|
|
2864
|
+
adventure.partner
|
|
2865
|
+
] }),
|
|
2866
|
+
adventure.travellers && adventure.travellers.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2867
|
+
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border my-1" }),
|
|
2868
|
+
/* @__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: "Travellers" }),
|
|
2870
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-1.5", children: adventure.travellers.map((t) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2871
|
+
"div",
|
|
2872
|
+
{
|
|
2873
|
+
className: "flex items-center justify-between",
|
|
2874
|
+
children: [
|
|
2875
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm font-medium text-foreground font-sans", children: [
|
|
2876
|
+
t.firstName,
|
|
2877
|
+
" ",
|
|
2878
|
+
t.lastName
|
|
2879
|
+
] }),
|
|
2880
|
+
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: "child" })
|
|
2881
|
+
]
|
|
2882
|
+
},
|
|
2883
|
+
t.id
|
|
2884
|
+
)) })
|
|
2885
|
+
] })
|
|
2886
|
+
] }),
|
|
2887
|
+
adventure.description && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2888
|
+
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border my-1" }),
|
|
2889
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
2890
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-2", children: "Itinerary" }),
|
|
2891
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-foreground/80 leading-relaxed font-sans", children: adventure.description })
|
|
2892
|
+
] })
|
|
2893
|
+
] }),
|
|
2894
|
+
adventure.included && adventure.included.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
|
|
2895
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-bold text-foreground font-heading", children: "O que est\xE1 incluso" }),
|
|
2896
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-1.5", children: adventure.included.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2897
|
+
"li",
|
|
2898
|
+
{
|
|
2899
|
+
className: "flex items-start gap-2 text-sm text-foreground/80 font-sans",
|
|
2900
|
+
children: [
|
|
2901
|
+
/* @__PURE__ */ jsxRuntime.jsx("svg", { className: "w-4 h-4 text-primary shrink-0 mt-0.5", 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" }) }),
|
|
2902
|
+
item
|
|
2903
|
+
]
|
|
2904
|
+
},
|
|
2905
|
+
i
|
|
2906
|
+
)) })
|
|
2907
|
+
] }),
|
|
2908
|
+
adventure.notIncluded && adventure.notIncluded.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
|
|
2909
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-bold text-foreground font-heading", children: "O que n\xE3o est\xE1 incluso" }),
|
|
2910
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-1.5", children: adventure.notIncluded.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2911
|
+
"li",
|
|
2912
|
+
{
|
|
2913
|
+
className: "flex items-start gap-2 text-sm text-foreground/80 font-sans",
|
|
2914
|
+
children: [
|
|
2915
|
+
/* @__PURE__ */ jsxRuntime.jsxs("svg", { className: "w-4 h-4 text-destructive shrink-0 mt-0.5", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
2916
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18 6 6 18" }),
|
|
2917
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "m6 6 12 12" })
|
|
2918
|
+
] }),
|
|
2919
|
+
item
|
|
2920
|
+
]
|
|
2921
|
+
},
|
|
2922
|
+
i
|
|
2923
|
+
)) })
|
|
2924
|
+
] }),
|
|
2925
|
+
adventure.lineItems && adventure.lineItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2926
|
+
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border my-1" }),
|
|
2927
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
2928
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-2", children: "Pricing" }),
|
|
2929
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
2930
|
+
adventure.lineItems.map((item, j) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2931
|
+
"div",
|
|
2932
|
+
{
|
|
2933
|
+
className: "flex items-center justify-between",
|
|
2934
|
+
children: [
|
|
2935
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground font-sans", children: item.label }),
|
|
2936
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2937
|
+
"span",
|
|
2938
|
+
{
|
|
2939
|
+
className: cn(
|
|
2940
|
+
"text-sm font-medium font-sans whitespace-nowrap",
|
|
2941
|
+
item.isDiscount ? "text-green-600" : "text-foreground"
|
|
2942
|
+
),
|
|
2943
|
+
children: [
|
|
2944
|
+
item.isDiscount ? "\u2212" : "",
|
|
2945
|
+
item.price
|
|
2946
|
+
]
|
|
2947
|
+
}
|
|
2948
|
+
)
|
|
2949
|
+
]
|
|
2950
|
+
},
|
|
2951
|
+
j
|
|
2952
|
+
)),
|
|
2953
|
+
adventure.subtotal && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between pt-2 mt-1 border-t border-border", children: [
|
|
2954
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold text-foreground font-heading", children: "Subtotal" }),
|
|
2955
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold text-foreground font-heading whitespace-nowrap", children: adventure.subtotal })
|
|
2956
|
+
] })
|
|
2957
|
+
] })
|
|
2958
|
+
] })
|
|
2959
|
+
] })
|
|
2960
|
+
] })
|
|
2961
|
+
]
|
|
2962
|
+
},
|
|
2963
|
+
adventure.id
|
|
2964
|
+
);
|
|
2965
|
+
}) }),
|
|
2966
|
+
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border mx-8" }),
|
|
2967
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-8 py-8", children: [
|
|
2968
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-5 font-heading font-bold text-foreground text-lg", children: "\u{1F4B0} Payment Summary" }),
|
|
2969
|
+
/* @__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: [
|
|
2970
|
+
summaryLineItems && summaryLineItems.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "border-b border-border", children: [
|
|
2971
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-muted-foreground", children: item.label }),
|
|
2972
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2973
|
+
"td",
|
|
2974
|
+
{
|
|
2975
|
+
className: cn(
|
|
2976
|
+
"py-2.5 px-4 text-right font-medium whitespace-nowrap",
|
|
2977
|
+
item.isDiscount ? "text-green-600" : "text-foreground"
|
|
2978
|
+
),
|
|
2979
|
+
children: [
|
|
2980
|
+
item.isDiscount ? "\u2212" : "",
|
|
2981
|
+
item.price
|
|
2982
|
+
]
|
|
2983
|
+
}
|
|
2984
|
+
)
|
|
2985
|
+
] }, i)),
|
|
2986
|
+
subtotal && /* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "border-b border-border", children: [
|
|
2987
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-muted-foreground font-ui", children: "Subtotal" }),
|
|
2988
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-right font-medium text-foreground whitespace-nowrap", children: subtotal })
|
|
2989
|
+
] }),
|
|
2990
|
+
/* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "bg-muted/30", children: [
|
|
2991
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-4 px-4 font-bold text-foreground font-heading text-base", children: "Total" }),
|
|
2992
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-4 px-4 text-right font-bold text-primary font-heading text-xl whitespace-nowrap", children: total })
|
|
2993
|
+
] })
|
|
2994
|
+
] }) }) }),
|
|
2995
|
+
depositInfo && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-border mt-4 overflow-hidden", children: [
|
|
2996
|
+
/* @__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: "Payment Details" }) }),
|
|
2997
|
+
/* @__PURE__ */ jsxRuntime.jsx("table", { className: "w-full text-sm", children: /* @__PURE__ */ jsxRuntime.jsxs("tbody", { children: [
|
|
2998
|
+
/* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "border-b border-border", children: [
|
|
2999
|
+
/* @__PURE__ */ jsxRuntime.jsxs("td", { className: "py-2.5 px-4 text-muted-foreground", children: [
|
|
3000
|
+
"Deposit (",
|
|
3001
|
+
depositInfo.depositPercent,
|
|
3002
|
+
"%)"
|
|
3003
|
+
] }),
|
|
3004
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-right font-medium text-foreground whitespace-nowrap", children: depositInfo.depositAmount })
|
|
3005
|
+
] }),
|
|
3006
|
+
/* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "border-b border-border", children: [
|
|
3007
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-muted-foreground", children: "Remaining balance" }),
|
|
3008
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-right font-medium text-foreground whitespace-nowrap", children: depositInfo.remainingAmount })
|
|
3009
|
+
] }),
|
|
3010
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3011
|
+
"tr",
|
|
3012
|
+
{
|
|
3013
|
+
className: cn(
|
|
3014
|
+
depositInfo.isPaidInFull && "border-b border-border"
|
|
3015
|
+
),
|
|
3016
|
+
children: [
|
|
3017
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-muted-foreground", children: "Balance due" }),
|
|
3018
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "py-2.5 px-4 text-right font-medium text-foreground whitespace-nowrap", children: depositInfo.balanceDueDate })
|
|
3019
|
+
]
|
|
3020
|
+
}
|
|
3021
|
+
),
|
|
3022
|
+
depositInfo.isPaidInFull && /* @__PURE__ */ jsxRuntime.jsx("tr", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3023
|
+
"td",
|
|
3024
|
+
{
|
|
3025
|
+
colSpan: 2,
|
|
3026
|
+
className: "py-3 px-4 text-center font-semibold text-green-600 bg-green-50",
|
|
3027
|
+
children: "\u2705 Paid in full"
|
|
3028
|
+
}
|
|
3029
|
+
) })
|
|
3030
|
+
] }) })
|
|
3031
|
+
] })
|
|
3032
|
+
] }),
|
|
3033
|
+
/* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-t border-border mx-8" }),
|
|
3034
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-8 py-8 pb-10", children: [
|
|
3035
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-5 text-base", children: "All travellers have been registered for this booking. Each person will receive a separate email with their individual details and any pre-departure information." }),
|
|
3036
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-base", children: [
|
|
3037
|
+
"If you have any questions, just reply to this email or contact",
|
|
3038
|
+
" ",
|
|
3039
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold", children: agent }),
|
|
3040
|
+
" \u2014 happy to help."
|
|
3041
|
+
] })
|
|
3042
|
+
] })
|
|
3043
|
+
]
|
|
3044
|
+
}
|
|
3045
|
+
);
|
|
3046
|
+
}
|
|
2717
3047
|
|
|
3048
|
+
exports.BookingConfirmation = BookingConfirmation;
|
|
2718
3049
|
exports.BookingConfirmationEmail = BookingConfirmationEmail;
|
|
2719
3050
|
exports.BookingDetails = BookingDetails;
|
|
3051
|
+
exports.FloatingInput = FloatingInput;
|
|
3052
|
+
exports.FloatingSelect = FloatingSelect;
|
|
2720
3053
|
exports.Offer = Offer;
|
|
2721
3054
|
exports.OfferAdventureCard = OfferAdventureCard;
|
|
2722
3055
|
exports.cn = cn;
|