@planetaexo/design-system 0.46.1 → 0.46.3
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 +67 -43
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +52 -2
- package/dist/index.d.ts +52 -2
- package/dist/index.js +67 -43
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -12505,6 +12505,7 @@ function TripPage({
|
|
|
12505
12505
|
weather,
|
|
12506
12506
|
optionalExtras,
|
|
12507
12507
|
accommodation,
|
|
12508
|
+
whenItOperates,
|
|
12508
12509
|
food,
|
|
12509
12510
|
termsAndConditions,
|
|
12510
12511
|
meetingPoints,
|
|
@@ -12512,6 +12513,7 @@ function TripPage({
|
|
|
12512
12513
|
faqs,
|
|
12513
12514
|
faqInitialCount = 5,
|
|
12514
12515
|
sectionIcons,
|
|
12516
|
+
labels,
|
|
12515
12517
|
reviews,
|
|
12516
12518
|
trustpilot,
|
|
12517
12519
|
trustpilotMini,
|
|
@@ -12530,11 +12532,13 @@ function TripPage({
|
|
|
12530
12532
|
features,
|
|
12531
12533
|
className
|
|
12532
12534
|
}) {
|
|
12535
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
|
|
12533
12536
|
const [activeSection, setActiveSection] = React28__namespace.useState("");
|
|
12534
12537
|
const [accordionValue, setAccordionValue] = React28__namespace.useState([]);
|
|
12535
12538
|
const [faqsExpanded, setFaqsExpanded] = React28__namespace.useState(false);
|
|
12536
12539
|
const accordionSectionIds = React28__namespace.useMemo(
|
|
12537
12540
|
() => /* @__PURE__ */ new Set([
|
|
12541
|
+
"when-it-operates",
|
|
12538
12542
|
"how-to-get-there",
|
|
12539
12543
|
"what-to-bring",
|
|
12540
12544
|
"weather",
|
|
@@ -12558,20 +12562,24 @@ function TripPage({
|
|
|
12558
12562
|
const pricingBarRef = React28__namespace.useRef(null);
|
|
12559
12563
|
const galleryRef = React28__namespace.useRef(null);
|
|
12560
12564
|
const sections = React28__namespace.useMemo(
|
|
12561
|
-
() =>
|
|
12562
|
-
|
|
12563
|
-
|
|
12564
|
-
id: "
|
|
12565
|
-
|
|
12566
|
-
|
|
12567
|
-
|
|
12568
|
-
|
|
12569
|
-
|
|
12570
|
-
|
|
12571
|
-
|
|
12572
|
-
|
|
12573
|
-
|
|
12574
|
-
|
|
12565
|
+
() => {
|
|
12566
|
+
var _a2, _b2, _c2, _d2, _e2, _f2, _g2, _h2, _i2;
|
|
12567
|
+
return [
|
|
12568
|
+
{ id: "overview", label: (_a2 = labels == null ? void 0 : labels.overview) != null ? _a2 : "Overview", show: !!(overview || (overviewHighlights == null ? void 0 : overviewHighlights.length)) },
|
|
12569
|
+
{
|
|
12570
|
+
id: "itinerary",
|
|
12571
|
+
label: (_b2 = labels == null ? void 0 : labels.itinerary) != null ? _b2 : "Itinerary",
|
|
12572
|
+
show: !!((itineraryDays == null ? void 0 : itineraryDays.length) || (itinerary == null ? void 0 : itinerary.length))
|
|
12573
|
+
},
|
|
12574
|
+
{ id: "included", label: (_c2 = labels == null ? void 0 : labels.whatIsIncluded) != null ? _c2 : "What is Included", show: !!(included == null ? void 0 : included.length) },
|
|
12575
|
+
{ id: "what-to-bring", label: (_d2 = labels == null ? void 0 : labels.whatToBring) != null ? _d2 : "What to Bring", show: !!(whatToBring == null ? void 0 : whatToBring.length) },
|
|
12576
|
+
{ id: "when-it-operates", label: (_e2 = labels == null ? void 0 : labels.whenItOperates) != null ? _e2 : "When this tour operates", show: !!whenItOperates },
|
|
12577
|
+
{ id: "accommodation", label: (_f2 = labels == null ? void 0 : labels.accommodation) != null ? _f2 : "Accommodation", show: !!accommodation },
|
|
12578
|
+
{ id: "terms", label: (_g2 = labels == null ? void 0 : labels.terms) != null ? _g2 : "Terms", show: !!termsAndConditions },
|
|
12579
|
+
{ id: "faq", label: (_h2 = labels == null ? void 0 : labels.faq) != null ? _h2 : "FAQ", show: !!(faqs == null ? void 0 : faqs.length) },
|
|
12580
|
+
{ id: "reviews", label: (_i2 = labels == null ? void 0 : labels.reviews) != null ? _i2 : "Reviews", show: !!(trustpilot || (reviews == null ? void 0 : reviews.length)) }
|
|
12581
|
+
].filter((s) => s.show);
|
|
12582
|
+
},
|
|
12575
12583
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
12576
12584
|
[]
|
|
12577
12585
|
);
|
|
@@ -12603,8 +12611,8 @@ function TripPage({
|
|
|
12603
12611
|
}, [isFloating]);
|
|
12604
12612
|
React28__namespace.useEffect(() => {
|
|
12605
12613
|
const check = () => {
|
|
12606
|
-
var
|
|
12607
|
-
const target = (
|
|
12614
|
+
var _a2;
|
|
12615
|
+
const target = (_a2 = galleryRef.current) != null ? _a2 : pricingBarRef.current;
|
|
12608
12616
|
if (!target) return;
|
|
12609
12617
|
setPricingBarVisible(target.getBoundingClientRect().top < window.innerHeight * 0.75);
|
|
12610
12618
|
};
|
|
@@ -12625,8 +12633,8 @@ function TripPage({
|
|
|
12625
12633
|
if (sections.length === 0) return;
|
|
12626
12634
|
setActiveSection(sections[0].id);
|
|
12627
12635
|
const update = () => {
|
|
12628
|
-
var
|
|
12629
|
-
const navH = ((
|
|
12636
|
+
var _a2, _b2;
|
|
12637
|
+
const navH = ((_b2 = (_a2 = navRef.current) == null ? void 0 : _a2.offsetHeight) != null ? _b2 : 56) + 20;
|
|
12630
12638
|
for (const { id } of [...sections].reverse()) {
|
|
12631
12639
|
const el = document.getElementById(`trip-section-${id}`);
|
|
12632
12640
|
if (el && el.getBoundingClientRect().top <= navH) {
|
|
@@ -12640,11 +12648,11 @@ function TripPage({
|
|
|
12640
12648
|
return () => document.removeEventListener("scroll", update, { capture: true });
|
|
12641
12649
|
}, [sections]);
|
|
12642
12650
|
const scrollToBookingForm = () => {
|
|
12643
|
-
var
|
|
12651
|
+
var _a2, _b2, _c2;
|
|
12644
12652
|
const el = document.getElementById("trip-booking-form");
|
|
12645
12653
|
if (!el) return;
|
|
12646
|
-
const navHeight = ((
|
|
12647
|
-
const scrollEl = (
|
|
12654
|
+
const navHeight = ((_b2 = (_a2 = navRef.current) == null ? void 0 : _a2.offsetHeight) != null ? _b2 : 56) + 16;
|
|
12655
|
+
const scrollEl = (_c2 = navRef.current) == null ? void 0 : _c2.closest("main");
|
|
12648
12656
|
const elTop = el.getBoundingClientRect().top;
|
|
12649
12657
|
const containerTop = scrollEl ? scrollEl.getBoundingClientRect().top : 0;
|
|
12650
12658
|
const currentScroll = scrollEl ? scrollEl.scrollTop : window.scrollY;
|
|
@@ -12657,11 +12665,11 @@ function TripPage({
|
|
|
12657
12665
|
};
|
|
12658
12666
|
const scrollToSection = (id) => {
|
|
12659
12667
|
const performScroll = () => {
|
|
12660
|
-
var
|
|
12668
|
+
var _a2, _b2, _c2;
|
|
12661
12669
|
const el = document.getElementById(`trip-section-${id}`);
|
|
12662
12670
|
if (!el) return;
|
|
12663
|
-
const navHeight = (
|
|
12664
|
-
const scrollEl = (
|
|
12671
|
+
const navHeight = (_b2 = (_a2 = navRef.current) == null ? void 0 : _a2.offsetHeight) != null ? _b2 : 56;
|
|
12672
|
+
const scrollEl = (_c2 = navRef.current) == null ? void 0 : _c2.closest("main");
|
|
12665
12673
|
const currentScroll = scrollEl ? scrollEl.scrollTop : window.scrollY;
|
|
12666
12674
|
const elTop = el.getBoundingClientRect().top;
|
|
12667
12675
|
const containerTop = scrollEl ? scrollEl.getBoundingClientRect().top : 0;
|
|
@@ -12730,7 +12738,7 @@ function TripPage({
|
|
|
12730
12738
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col lg:flex-row gap-8 mt-4", children: [
|
|
12731
12739
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0 space-y-12 pb-12", children: [
|
|
12732
12740
|
(overview || (overviewHighlights == null ? void 0 : overviewHighlights.length)) && /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "trip-section-overview", className: "scroll-mt-20", children: [
|
|
12733
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-4", children: "Overview" }),
|
|
12741
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-4", children: (_a = labels == null ? void 0 : labels.overview) != null ? _a : "Overview" }),
|
|
12734
12742
|
overview && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-lg text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_a]:text-primary [&_a]:underline", children: overview }),
|
|
12735
12743
|
overviewHighlights && overviewHighlights.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("flex flex-col gap-5", overview && "mt-8"), children: overviewHighlights.map((h, i) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start gap-4", children: [
|
|
12736
12744
|
h.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex h-10 w-10 shrink-0 items-center justify-center text-foreground [&_svg]:h-8 [&_svg]:w-8", children: h.icon }),
|
|
@@ -12745,7 +12753,7 @@ function TripPage({
|
|
|
12745
12753
|
] })
|
|
12746
12754
|
] }),
|
|
12747
12755
|
itineraryDays && itineraryDays.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "trip-section-itinerary", className: "scroll-mt-20", children: [
|
|
12748
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-6", children: "Itinerary" }),
|
|
12756
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-6", children: (_b = labels == null ? void 0 : labels.itinerary) != null ? _b : "Itinerary" }),
|
|
12749
12757
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-12", children: itineraryDays.map((day) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
12750
12758
|
ItineraryDay,
|
|
12751
12759
|
__spreadProps(__spreadValues({}, day), {
|
|
@@ -12754,20 +12762,20 @@ function TripPage({
|
|
|
12754
12762
|
day.dayNumber
|
|
12755
12763
|
)) })
|
|
12756
12764
|
] }) : itinerary && itinerary.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "trip-section-itinerary", className: "scroll-mt-20", children: [
|
|
12757
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-6", children: "Itinerary" }),
|
|
12765
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-6", children: (_c = labels == null ? void 0 : labels.itinerary) != null ? _c : "Itinerary" }),
|
|
12758
12766
|
/* @__PURE__ */ jsxRuntime.jsx(ItineraryTimeline, { steps: itinerary })
|
|
12759
12767
|
] }),
|
|
12760
12768
|
included && included.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "trip-section-included", className: "scroll-mt-20", children: [
|
|
12761
12769
|
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-xl font-bold text-foreground font-heading mb-4 flex items-center gap-2", children: [
|
|
12762
12770
|
(sectionIcons == null ? void 0 : sectionIcons.whatIsIncluded) ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.whatIsIncluded }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PackageIcon, { className: "h-5 w-5 text-primary" }),
|
|
12763
|
-
"Included"
|
|
12771
|
+
(_d = labels == null ? void 0 : labels.whatIsIncluded) != null ? _d : "Included"
|
|
12764
12772
|
] }),
|
|
12765
12773
|
/* @__PURE__ */ jsxRuntime.jsx(Checklist, { items: included })
|
|
12766
12774
|
] }),
|
|
12767
12775
|
notIncluded && notIncluded.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "trip-section-not-included", className: "scroll-mt-20", children: [
|
|
12768
12776
|
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-xl font-bold text-foreground font-heading mb-4 flex items-center gap-2", children: [
|
|
12769
12777
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, { className: "h-5 w-5 text-muted-foreground" }),
|
|
12770
|
-
"Not included"
|
|
12778
|
+
(_e = labels == null ? void 0 : labels.notIncluded) != null ? _e : "Not included"
|
|
12771
12779
|
] }),
|
|
12772
12780
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12773
12781
|
Checklist,
|
|
@@ -12777,7 +12785,7 @@ function TripPage({
|
|
|
12777
12785
|
}
|
|
12778
12786
|
)
|
|
12779
12787
|
] }),
|
|
12780
|
-
(howToGetThere || (whatToBring == null ? void 0 : whatToBring.length) || weather || optionalExtras || accommodation || food || (meetingPoints == null ? void 0 : meetingPoints.length) || meetingPoint || termsAndConditions) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
12788
|
+
(howToGetThere || (whatToBring == null ? void 0 : whatToBring.length) || weather || optionalExtras || accommodation || food || (meetingPoints == null ? void 0 : meetingPoints.length) || meetingPoint || termsAndConditions || whenItOperates) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
12781
12789
|
Accordion,
|
|
12782
12790
|
{
|
|
12783
12791
|
multiple: false,
|
|
@@ -12785,6 +12793,21 @@ function TripPage({
|
|
|
12785
12793
|
onValueChange: setAccordionValue,
|
|
12786
12794
|
className: "border-t border-border",
|
|
12787
12795
|
children: [
|
|
12796
|
+
whenItOperates && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
12797
|
+
AccordionItem,
|
|
12798
|
+
{
|
|
12799
|
+
value: "when-it-operates",
|
|
12800
|
+
id: "trip-section-when-it-operates",
|
|
12801
|
+
className: "scroll-mt-20 border-b border-border",
|
|
12802
|
+
children: [
|
|
12803
|
+
/* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-2", children: [
|
|
12804
|
+
(sectionIcons == null ? void 0 : sectionIcons.whenItOperates) ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.whenItOperates }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CalendarIcon, { className: "h-5 w-5 text-primary" }),
|
|
12805
|
+
(_f = labels == null ? void 0 : labels.whenItOperates) != null ? _f : "When this tour operates"
|
|
12806
|
+
] }) }),
|
|
12807
|
+
/* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-base text-foreground leading-relaxed space-y-3 [&_strong]:font-bold [&_a]:text-primary [&_a]:underline", children: whenItOperates }) })
|
|
12808
|
+
]
|
|
12809
|
+
}
|
|
12810
|
+
),
|
|
12788
12811
|
accommodation && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
12789
12812
|
AccordionItem,
|
|
12790
12813
|
{
|
|
@@ -12794,7 +12817,7 @@ function TripPage({
|
|
|
12794
12817
|
children: [
|
|
12795
12818
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-2", children: [
|
|
12796
12819
|
(sectionIcons == null ? void 0 : sectionIcons.accommodation) ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.accommodation }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.BedDoubleIcon, { className: "h-5 w-5 text-primary" }),
|
|
12797
|
-
"Accommodation"
|
|
12820
|
+
(_g = labels == null ? void 0 : labels.accommodation) != null ? _g : "Accommodation"
|
|
12798
12821
|
] }) }),
|
|
12799
12822
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-base text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_a]:text-primary [&_a]:underline", children: accommodation }) })
|
|
12800
12823
|
]
|
|
@@ -12809,7 +12832,7 @@ function TripPage({
|
|
|
12809
12832
|
children: [
|
|
12810
12833
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-2", children: [
|
|
12811
12834
|
(sectionIcons == null ? void 0 : sectionIcons.food) ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.food }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.UtensilsIcon, { className: "h-5 w-5 text-primary" }),
|
|
12812
|
-
"Food"
|
|
12835
|
+
(_h = labels == null ? void 0 : labels.food) != null ? _h : "Food"
|
|
12813
12836
|
] }) }),
|
|
12814
12837
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-base text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_a]:text-primary [&_a]:underline", children: food }) })
|
|
12815
12838
|
]
|
|
@@ -12824,7 +12847,7 @@ function TripPage({
|
|
|
12824
12847
|
children: [
|
|
12825
12848
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-2", children: [
|
|
12826
12849
|
(sectionIcons == null ? void 0 : sectionIcons.meetingPoint) ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.meetingPoint }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MapPinIcon, { className: "h-5 w-5 text-primary" }),
|
|
12827
|
-
"Meeting point"
|
|
12850
|
+
(_i = labels == null ? void 0 : labels.meetingPoint) != null ? _i : "Meeting point"
|
|
12828
12851
|
] }) }),
|
|
12829
12852
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "pb-6", children: meetingPoint ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-base text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_a]:text-primary [&_a]:underline", children: meetingPoint }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: meetingPoints.map((mp, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3 rounded-xl border border-border p-4", children: [
|
|
12830
12853
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MapPinIcon, { className: "h-4 w-4 text-primary" }) }),
|
|
@@ -12846,7 +12869,7 @@ function TripPage({
|
|
|
12846
12869
|
children: [
|
|
12847
12870
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-2", children: [
|
|
12848
12871
|
(sectionIcons == null ? void 0 : sectionIcons.howToGetThere) ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.howToGetThere }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CompassIcon, { className: "h-5 w-5 text-primary" }),
|
|
12849
|
-
"How to get there"
|
|
12872
|
+
(_j = labels == null ? void 0 : labels.howToGetThere) != null ? _j : "How to get there"
|
|
12850
12873
|
] }) }),
|
|
12851
12874
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-base text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_a]:text-primary [&_a]:underline", children: howToGetThere }) })
|
|
12852
12875
|
]
|
|
@@ -12861,7 +12884,7 @@ function TripPage({
|
|
|
12861
12884
|
children: [
|
|
12862
12885
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-2", children: [
|
|
12863
12886
|
(sectionIcons == null ? void 0 : sectionIcons.weather) ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.weather }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SunIcon, { className: "h-5 w-5 text-primary" }),
|
|
12864
|
-
"Weather"
|
|
12887
|
+
(_k = labels == null ? void 0 : labels.weather) != null ? _k : "Weather"
|
|
12865
12888
|
] }) }),
|
|
12866
12889
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-start gap-3 rounded-xl bg-muted/60 border border-border p-5", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-base text-foreground leading-relaxed space-y-2 [&_strong]:font-semibold", children: weather }) }) })
|
|
12867
12890
|
]
|
|
@@ -12876,7 +12899,7 @@ function TripPage({
|
|
|
12876
12899
|
children: [
|
|
12877
12900
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-2", children: [
|
|
12878
12901
|
(sectionIcons == null ? void 0 : sectionIcons.whatToBring) ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.whatToBring }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.BackpackIcon, { className: "h-5 w-5 text-primary" }),
|
|
12879
|
-
"What to bring"
|
|
12902
|
+
(_l = labels == null ? void 0 : labels.whatToBring) != null ? _l : "What to bring"
|
|
12880
12903
|
] }) }),
|
|
12881
12904
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsxRuntime.jsx(Checklist, { items: whatToBring, icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.InfoIcon, { className: "h-4 w-4" }) }) })
|
|
12882
12905
|
]
|
|
@@ -12891,7 +12914,7 @@ function TripPage({
|
|
|
12891
12914
|
children: [
|
|
12892
12915
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-2", children: [
|
|
12893
12916
|
(sectionIcons == null ? void 0 : sectionIcons.optionalExtras) ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.optionalExtras }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CherryIcon, { className: "h-5 w-5 text-primary" }),
|
|
12894
|
-
"Optional extras"
|
|
12917
|
+
(_m = labels == null ? void 0 : labels.optionalExtras) != null ? _m : "Optional extras"
|
|
12895
12918
|
] }) }),
|
|
12896
12919
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-base text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_a]:text-primary [&_a]:underline", children: optionalExtras }) })
|
|
12897
12920
|
]
|
|
@@ -12906,7 +12929,7 @@ function TripPage({
|
|
|
12906
12929
|
children: [
|
|
12907
12930
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-2", children: [
|
|
12908
12931
|
(sectionIcons == null ? void 0 : sectionIcons.terms) ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.terms }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ReceiptIcon, { className: "h-5 w-5 text-primary" }),
|
|
12909
|
-
"Terms & conditions"
|
|
12932
|
+
(_n = labels == null ? void 0 : labels.terms) != null ? _n : "Terms & conditions"
|
|
12910
12933
|
] }) }),
|
|
12911
12934
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-base text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_a]:text-primary [&_a]:underline", children: termsAndConditions }) })
|
|
12912
12935
|
]
|
|
@@ -12916,10 +12939,11 @@ function TripPage({
|
|
|
12916
12939
|
}
|
|
12917
12940
|
),
|
|
12918
12941
|
faqs && faqs.length > 0 && (() => {
|
|
12942
|
+
var _a2;
|
|
12919
12943
|
const visibleFaqs = faqsExpanded ? faqs : faqs.slice(0, faqInitialCount);
|
|
12920
12944
|
const hiddenCount = faqs.length - visibleFaqs.length;
|
|
12921
12945
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "trip-section-faq", className: "scroll-mt-20", children: [
|
|
12922
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-6", children: "FAQ" }),
|
|
12946
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-6", children: (_a2 = labels == null ? void 0 : labels.faq) != null ? _a2 : "FAQ" }),
|
|
12923
12947
|
/* @__PURE__ */ jsxRuntime.jsx(Accordion, { variant: "faq", children: visibleFaqs.map((faq, i) => /* @__PURE__ */ jsxRuntime.jsxs(AccordionItem, { value: `faq-${i}`, children: [
|
|
12924
12948
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { children: faq.question }),
|
|
12925
12949
|
/* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { children: faq.answer })
|
|
@@ -12950,15 +12974,15 @@ function TripPage({
|
|
|
12950
12974
|
})(),
|
|
12951
12975
|
trustpilot ? /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "trip-section-reviews", className: "scroll-mt-20", children: [
|
|
12952
12976
|
/* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "mb-10" }),
|
|
12953
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-5", children: "What our guests think" }),
|
|
12977
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-5", children: (_o = labels == null ? void 0 : labels.reviews) != null ? _o : "What our guests think" }),
|
|
12954
12978
|
/* @__PURE__ */ jsxRuntime.jsx(TrustpilotEmbed, { config: trustpilot })
|
|
12955
12979
|
] }) : reviews && reviews.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("section", { id: "trip-section-reviews", className: "scroll-mt-20", children: [
|
|
12956
12980
|
/* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "mb-10" }),
|
|
12957
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-5", children: "What our guests think" }),
|
|
12981
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-5", children: (_p = labels == null ? void 0 : labels.reviews) != null ? _p : "What our guests think" }),
|
|
12958
12982
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4", children: reviews.map((r, i) => {
|
|
12959
|
-
var
|
|
12983
|
+
var _a2;
|
|
12960
12984
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-3 rounded-xl border border-border p-5", children: [
|
|
12961
|
-
/* @__PURE__ */ jsxRuntime.jsx(Stars, { count: (
|
|
12985
|
+
/* @__PURE__ */ jsxRuntime.jsx(Stars, { count: (_a2 = r.rating) != null ? _a2 : 5 }),
|
|
12962
12986
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-base text-foreground leading-relaxed line-clamp-4", children: [
|
|
12963
12987
|
"\u201C",
|
|
12964
12988
|
r.text,
|