@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 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
- { id: "overview", label: "Overview", show: !!(overview || (overviewHighlights == null ? void 0 : overviewHighlights.length)) },
12563
- {
12564
- id: "itinerary",
12565
- label: "Itinerary",
12566
- show: !!((itineraryDays == null ? void 0 : itineraryDays.length) || (itinerary == null ? void 0 : itinerary.length))
12567
- },
12568
- { id: "included", label: "What is Included", show: !!(included == null ? void 0 : included.length) },
12569
- { id: "what-to-bring", label: "What to Bring", show: !!(whatToBring == null ? void 0 : whatToBring.length) },
12570
- { id: "accommodation", label: "Accommodation", show: !!accommodation },
12571
- { id: "terms", label: "Terms", show: !!termsAndConditions },
12572
- { id: "faq", label: "FAQ", show: !!(faqs == null ? void 0 : faqs.length) },
12573
- { id: "reviews", label: "Reviews", show: !!(trustpilot || (reviews == null ? void 0 : reviews.length)) }
12574
- ].filter((s) => s.show),
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 _a;
12607
- const target = (_a = galleryRef.current) != null ? _a : pricingBarRef.current;
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 _a, _b;
12629
- const navH = ((_b = (_a = navRef.current) == null ? void 0 : _a.offsetHeight) != null ? _b : 56) + 20;
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 _a, _b, _c;
12651
+ var _a2, _b2, _c2;
12644
12652
  const el = document.getElementById("trip-booking-form");
12645
12653
  if (!el) return;
12646
- const navHeight = ((_b = (_a = navRef.current) == null ? void 0 : _a.offsetHeight) != null ? _b : 56) + 16;
12647
- const scrollEl = (_c = navRef.current) == null ? void 0 : _c.closest("main");
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 _a, _b, _c;
12668
+ var _a2, _b2, _c2;
12661
12669
  const el = document.getElementById(`trip-section-${id}`);
12662
12670
  if (!el) return;
12663
- const navHeight = (_b = (_a = navRef.current) == null ? void 0 : _a.offsetHeight) != null ? _b : 56;
12664
- const scrollEl = (_c = navRef.current) == null ? void 0 : _c.closest("main");
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 _a;
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: (_a = r.rating) != null ? _a : 5 }),
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,