@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.d.cts CHANGED
@@ -2667,6 +2667,7 @@ interface TripSectionIcons {
2667
2667
  itinerary?: React.ReactNode;
2668
2668
  whatIsIncluded?: React.ReactNode;
2669
2669
  /** Accordion sections */
2670
+ whenItOperates?: React.ReactNode;
2670
2671
  howToGetThere?: React.ReactNode;
2671
2672
  meetingPoint?: React.ReactNode;
2672
2673
  optionalExtras?: React.ReactNode;
@@ -2676,6 +2677,48 @@ interface TripSectionIcons {
2676
2677
  weather?: React.ReactNode;
2677
2678
  terms?: React.ReactNode;
2678
2679
  }
2680
+ /**
2681
+ * i18n overrides for every section / accordion heading and floating-menu
2682
+ * entry rendered by `<TripPage>`. Any key left undefined falls back to the
2683
+ * built-in English string used today, so existing consumers don't need to
2684
+ * pass anything to keep working.
2685
+ *
2686
+ * The same key drives both the floating menu entry and the section/accordion
2687
+ * heading for that concept — they always match in the design, and giving
2688
+ * editors two slots to keep in sync would be a footgun.
2689
+ */
2690
+ interface TripPageLabels {
2691
+ /** Section nav + section heading: "Overview" */
2692
+ overview?: string;
2693
+ /** Section nav + section heading: "Itinerary" */
2694
+ itinerary?: string;
2695
+ /** Section nav + section heading: "What is Included" */
2696
+ whatIsIncluded?: string;
2697
+ /** Section heading: "Not included" */
2698
+ notIncluded?: string;
2699
+ /** Section nav + accordion heading: "What to bring" */
2700
+ whatToBring?: string;
2701
+ /** Section nav + accordion heading: "When this tour operates" */
2702
+ whenItOperates?: string;
2703
+ /** Section nav + accordion heading: "Accommodation" */
2704
+ accommodation?: string;
2705
+ /** Accordion heading: "Food" */
2706
+ food?: string;
2707
+ /** Accordion heading: "Meeting point" */
2708
+ meetingPoint?: string;
2709
+ /** Accordion heading: "How to get there" */
2710
+ howToGetThere?: string;
2711
+ /** Accordion heading: "Weather" */
2712
+ weather?: string;
2713
+ /** Accordion heading: "Optional extras" */
2714
+ optionalExtras?: string;
2715
+ /** Section nav + accordion heading: "Terms & conditions" */
2716
+ terms?: string;
2717
+ /** Section nav + section heading: "FAQ" */
2718
+ faq?: string;
2719
+ /** Section nav + section heading: "What our guests think" */
2720
+ reviews?: string;
2721
+ }
2679
2722
 
2680
2723
  interface TripPageProps {
2681
2724
  title: string;
@@ -2718,6 +2761,7 @@ interface TripPageProps {
2718
2761
  weather?: React.ReactNode;
2719
2762
  optionalExtras?: React.ReactNode;
2720
2763
  accommodation?: React.ReactNode;
2764
+ whenItOperates?: React.ReactNode;
2721
2765
  food?: React.ReactNode;
2722
2766
  termsAndConditions?: React.ReactNode;
2723
2767
  meetingPoints?: TripMeetingPoint[];
@@ -2736,6 +2780,12 @@ interface TripPageProps {
2736
2780
  * editor-driven (e.g. an ACF Select on each section group).
2737
2781
  */
2738
2782
  sectionIcons?: TripSectionIcons;
2783
+ /**
2784
+ * i18n overrides for every section/accordion heading and floating-menu
2785
+ * entry. Any key left undefined falls back to the built-in English
2786
+ * string, so existing callers don't need to pass anything.
2787
+ */
2788
+ labels?: TripPageLabels;
2739
2789
  reviews?: TripReview[];
2740
2790
  /** When provided, replaces the manual `reviews` block with a Trustpilot widget. */
2741
2791
  trustpilot?: TripTrustpilotWidget;
@@ -2773,7 +2823,7 @@ interface TripPageProps {
2773
2823
  features?: Record<string, boolean>;
2774
2824
  className?: string;
2775
2825
  }
2776
- declare function TripPage({ title, tagline, destination, duration, images, videoUrl, breadcrumb, chips, highlights, howToGetThere, recommendedFor, overview, overviewHighlights, itinerary, itineraryDays, gallery, included, notIncluded, whatToBring, weather, optionalExtras, accommodation, food, termsAndConditions, meetingPoints, meetingPoint, faqs, faqInitialCount, sectionIcons, reviews, trustpilot, trustpilotMini, trustpilotHero, priceFrom, currency, season, departureTimes, benefits, currencyEstimates, priceInfo, onBook, bookLabel, siteHeader, uiVariant, features, className, }: TripPageProps): react_jsx_runtime.JSX.Element;
2826
+ declare function TripPage({ title, tagline, destination, duration, images, videoUrl, breadcrumb, chips, highlights, howToGetThere, recommendedFor, overview, overviewHighlights, itinerary, itineraryDays, gallery, included, notIncluded, whatToBring, weather, optionalExtras, accommodation, whenItOperates, food, termsAndConditions, meetingPoints, meetingPoint, faqs, faqInitialCount, sectionIcons, labels, reviews, trustpilot, trustpilotMini, trustpilotHero, priceFrom, currency, season, departureTimes, benefits, currencyEstimates, priceInfo, onBook, bookLabel, siteHeader, uiVariant, features, className, }: TripPageProps): react_jsx_runtime.JSX.Element;
2777
2827
 
2778
2828
  type ActivityCardSize = "sm" | "md" | "lg";
2779
2829
  interface ActivityCardProps {
@@ -3246,4 +3296,4 @@ declare function LeadCapturePopup({ config: _config, }: {
3246
3296
  config: LeadCapturePopupConfig;
3247
3297
  }): react_jsx_runtime.JSX.Element | null;
3248
3298
 
3249
- export { ActivityCard, type ActivityCardProps, type ActivityCardSize, AgentContactCard, type AgentContactCardProps, Alert, type AlertProps, type AlertVariant, BirthDateField, type BirthDateFieldProps, type BookingAdventure, BookingAdventureCard, type BookingAdventureCardLabels, type BookingAdventureCardLineItem, type BookingAdventureCardProps, type BookingAdventureCardSlots, type BookingAdventureCardTraveller, BookingConfirmedCard, type BookingConfirmedCardProps, type BookingContact, BookingCreatedEmail, type BookingCreatedEmailLabels, type BookingCreatedEmailProps, type BookingDepositInfo, BookingDetails, type BookingDetailsLabels, type BookingDetailsProps, BookingForm, type BookingFormProps, type BookingFormValues, BookingOtpEmail, type BookingOtpEmailProps, BookingPaymentConfirmationEmail, type BookingPaymentConfirmationEmailLabels, type BookingPaymentConfirmationEmailProps, BookingShell, type BookingShellProps, type BookingStatus, BookingSummary, type BookingSummaryLineItem, type BookingSummaryProps, type BookingSummaryRow, type BookingTraveller, Button, type ButtonProps, COUNTRIES, type ConfirmationAdventure, type ConfirmationDepositInfo, type ConfirmationLineItem, type ConfirmationTraveller, CounterField, type CounterFieldProps, type CountryOption, CountrySearchField, type CountrySearchFieldProps, type CurrencyEstimate, DEFAULT_HEADER_LINKS, DEFAULT_LANGUAGES, DatePickerField, type DatePickerFieldProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, type EmailTokens, type FilterGroup, type FilterItem, FilterPanel, type FilterPanelProps, FloatingInput, type FloatingInputProps, FloatingSelect, type FloatingSelectProps, Itinerary, ItineraryDay, type ItineraryDayPhoto, type ItineraryDayPhotoLayout, type ItineraryDayProps, type ItineraryDaySpec, type ItineraryProps, type ItineraryRoute, type ItineraryStop, LOGO_PLANETAEXO_DATA_URI, LeadCapturePopup, type LeadCapturePopupConfig, MenuTrip, type MenuTripProps, type MenuTripSection, type MenuTripVariant, OTPCodeInput, type OTPCodeInputProps, Offer, OfferAdventureCard, type OfferAdventureItem, type OfferAgentInfo, type OfferConfirmedState, type OfferDepositInfo, type OfferLabels, type OfferOptionalItem, type OfferProps, type OfferSummaryLineItem, type PartnerBookingCreatedAgentContactLinks, PartnerBookingCreatedEmail, type PartnerBookingCreatedEmailLabels, type PartnerBookingCreatedEmailProps, type PartnerConfirmationAgentContactLinks, PartnerConfirmationEmail, type PartnerConfirmationEmailExpectationRow, type PartnerConfirmationEmailLabels, type PartnerConfirmationEmailProps, PaymentAmountSelector, type PaymentAmountSelectorProps, PaymentDetailsBlock, type PaymentDetailsBlockFooterBanner, type PaymentDetailsBlockLabels, type PaymentDetailsBlockProps, type PaymentDetailsBlockRow, type PaymentMethodOption, PaymentMethodSelector, type PaymentMethodSelectorProps, PaymentModalShell, type PaymentModalShellProps, type PaymentReceiptAdventure, type PaymentReceiptAdventureLineItem, PaymentReceiptEmail, type PaymentReceiptEmailLabels, type PaymentReceiptEmailProps, type PaymentReminderAgentContactLinks, PaymentReminderEmail, type PaymentReminderEmailAdventure, type PaymentReminderEmailLabels, type PaymentReminderEmailLineItem, type PaymentReminderEmailProps, type PaymentReminderEmailVariantLabels, type PaymentReminderVariant, PhoneCountrySelect, PhotoGallery, type PhotoGalleryPhoto, type PhotoGalleryProps, type PhotoGalleryVariant, PricingTrip, type PricingTripProps, type PricingTripVariant, type RegistrationAdventure, type RegistrationBooking, type RegistrationEmergencyContactValue, type RegistrationField, type RegistrationFieldOption, type RegistrationFieldType, type RegistrationFieldValue, RegistrationForm, type RegistrationFormLabels, type RegistrationFormProps, type RegistrationFormValues, type RegistrationNameValue, type RegistrationPhoneValue, RegistrationProgressBar, type RegistrationProgressBarProps, type RegistrationProgressTone, type RegistrationReminderAdventureBlock, type RegistrationReminderAgentContactLinks, RegistrationReminderEmail, type RegistrationReminderEmailLabels, type RegistrationReminderEmailProps, type RegistrationReminderEmailVariantLabels, type RegistrationReminderIndividualAgentContactLinks, RegistrationReminderIndividualEmail, type RegistrationReminderIndividualEmailLabels, type RegistrationReminderIndividualEmailProps, type RegistrationReminderIndividualRoute, type RegistrationReminderIndividualSlug, type RegistrationReminderIndividualVariantLabels, type RegistrationReminderSlug, RegistrationSuccessCard, type RegistrationSuccessCardProps, type RegistrationTerms, type RegistrationTraveller, SiteHeader, type SiteHeaderLanguage, type SiteHeaderLink, type SiteHeaderProps, type SiteHeaderSubItem, type SiteHeaderVariant, type StripeAppearance, type SuggestedTraveller, TERMS_ACCEPT_KEY, TermsSection, type TermsSectionProps, ThemeToggle, Toast, type ToastProps, type ToastVariant, TransferDetailsBlock, type TransferDetailsBlockProps, type TravellerFormConfig, type TravellerFormData, TravellerFormInviteEmail, type TravellerFormInviteEmailLabels, type TravellerFormInviteEmailProps, type TravellerFormInviteLink, type TravellerFormLabels, TripCard, type TripCardCta, type TripCardProps, type TripCardSize, type TripCardStatus, type TripDuration, type TripFaq, TripHeader, type TripHeaderProps, type TripHighlight, type TripInfoGroup, type TripItineraryDay, type TripItineraryStep, type TripMeetingPoint, type TripOverviewHighlight, TripPage, type TripPageProps, type TripReview, type TripTrustpilotWidget, TrustpilotEmbed, type TrustpilotWidgetConfig, buttonVariants, cn, emailTokens, getStripeAppearance, itineraryDaySpecIcons, stripeAppearance, wrapEmailHtml };
3299
+ export { ActivityCard, type ActivityCardProps, type ActivityCardSize, AgentContactCard, type AgentContactCardProps, Alert, type AlertProps, type AlertVariant, BirthDateField, type BirthDateFieldProps, type BookingAdventure, BookingAdventureCard, type BookingAdventureCardLabels, type BookingAdventureCardLineItem, type BookingAdventureCardProps, type BookingAdventureCardSlots, type BookingAdventureCardTraveller, BookingConfirmedCard, type BookingConfirmedCardProps, type BookingContact, BookingCreatedEmail, type BookingCreatedEmailLabels, type BookingCreatedEmailProps, type BookingDepositInfo, BookingDetails, type BookingDetailsLabels, type BookingDetailsProps, BookingForm, type BookingFormProps, type BookingFormValues, BookingOtpEmail, type BookingOtpEmailProps, BookingPaymentConfirmationEmail, type BookingPaymentConfirmationEmailLabels, type BookingPaymentConfirmationEmailProps, BookingShell, type BookingShellProps, type BookingStatus, BookingSummary, type BookingSummaryLineItem, type BookingSummaryProps, type BookingSummaryRow, type BookingTraveller, Button, type ButtonProps, COUNTRIES, type ConfirmationAdventure, type ConfirmationDepositInfo, type ConfirmationLineItem, type ConfirmationTraveller, CounterField, type CounterFieldProps, type CountryOption, CountrySearchField, type CountrySearchFieldProps, type CurrencyEstimate, DEFAULT_HEADER_LINKS, DEFAULT_LANGUAGES, DatePickerField, type DatePickerFieldProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, type EmailTokens, type FilterGroup, type FilterItem, FilterPanel, type FilterPanelProps, FloatingInput, type FloatingInputProps, FloatingSelect, type FloatingSelectProps, Itinerary, ItineraryDay, type ItineraryDayPhoto, type ItineraryDayPhotoLayout, type ItineraryDayProps, type ItineraryDaySpec, type ItineraryProps, type ItineraryRoute, type ItineraryStop, LOGO_PLANETAEXO_DATA_URI, LeadCapturePopup, type LeadCapturePopupConfig, MenuTrip, type MenuTripProps, type MenuTripSection, type MenuTripVariant, OTPCodeInput, type OTPCodeInputProps, Offer, OfferAdventureCard, type OfferAdventureItem, type OfferAgentInfo, type OfferConfirmedState, type OfferDepositInfo, type OfferLabels, type OfferOptionalItem, type OfferProps, type OfferSummaryLineItem, type PartnerBookingCreatedAgentContactLinks, PartnerBookingCreatedEmail, type PartnerBookingCreatedEmailLabels, type PartnerBookingCreatedEmailProps, type PartnerConfirmationAgentContactLinks, PartnerConfirmationEmail, type PartnerConfirmationEmailExpectationRow, type PartnerConfirmationEmailLabels, type PartnerConfirmationEmailProps, PaymentAmountSelector, type PaymentAmountSelectorProps, PaymentDetailsBlock, type PaymentDetailsBlockFooterBanner, type PaymentDetailsBlockLabels, type PaymentDetailsBlockProps, type PaymentDetailsBlockRow, type PaymentMethodOption, PaymentMethodSelector, type PaymentMethodSelectorProps, PaymentModalShell, type PaymentModalShellProps, type PaymentReceiptAdventure, type PaymentReceiptAdventureLineItem, PaymentReceiptEmail, type PaymentReceiptEmailLabels, type PaymentReceiptEmailProps, type PaymentReminderAgentContactLinks, PaymentReminderEmail, type PaymentReminderEmailAdventure, type PaymentReminderEmailLabels, type PaymentReminderEmailLineItem, type PaymentReminderEmailProps, type PaymentReminderEmailVariantLabels, type PaymentReminderVariant, PhoneCountrySelect, PhotoGallery, type PhotoGalleryPhoto, type PhotoGalleryProps, type PhotoGalleryVariant, PricingTrip, type PricingTripProps, type PricingTripVariant, type RegistrationAdventure, type RegistrationBooking, type RegistrationEmergencyContactValue, type RegistrationField, type RegistrationFieldOption, type RegistrationFieldType, type RegistrationFieldValue, RegistrationForm, type RegistrationFormLabels, type RegistrationFormProps, type RegistrationFormValues, type RegistrationNameValue, type RegistrationPhoneValue, RegistrationProgressBar, type RegistrationProgressBarProps, type RegistrationProgressTone, type RegistrationReminderAdventureBlock, type RegistrationReminderAgentContactLinks, RegistrationReminderEmail, type RegistrationReminderEmailLabels, type RegistrationReminderEmailProps, type RegistrationReminderEmailVariantLabels, type RegistrationReminderIndividualAgentContactLinks, RegistrationReminderIndividualEmail, type RegistrationReminderIndividualEmailLabels, type RegistrationReminderIndividualEmailProps, type RegistrationReminderIndividualRoute, type RegistrationReminderIndividualSlug, type RegistrationReminderIndividualVariantLabels, type RegistrationReminderSlug, RegistrationSuccessCard, type RegistrationSuccessCardProps, type RegistrationTerms, type RegistrationTraveller, SiteHeader, type SiteHeaderLanguage, type SiteHeaderLink, type SiteHeaderProps, type SiteHeaderSubItem, type SiteHeaderVariant, type StripeAppearance, type SuggestedTraveller, TERMS_ACCEPT_KEY, TermsSection, type TermsSectionProps, ThemeToggle, Toast, type ToastProps, type ToastVariant, TransferDetailsBlock, type TransferDetailsBlockProps, type TravellerFormConfig, type TravellerFormData, TravellerFormInviteEmail, type TravellerFormInviteEmailLabels, type TravellerFormInviteEmailProps, type TravellerFormInviteLink, type TravellerFormLabels, TripCard, type TripCardCta, type TripCardProps, type TripCardSize, type TripCardStatus, type TripDuration, type TripFaq, TripHeader, type TripHeaderProps, type TripHighlight, type TripInfoGroup, type TripItineraryDay, type TripItineraryStep, type TripMeetingPoint, type TripOverviewHighlight, TripPage, type TripPageLabels, type TripPageProps, type TripReview, type TripSectionIcons, type TripTrustpilotWidget, TrustpilotEmbed, type TrustpilotWidgetConfig, buttonVariants, cn, emailTokens, getStripeAppearance, itineraryDaySpecIcons, stripeAppearance, wrapEmailHtml };
package/dist/index.d.ts CHANGED
@@ -2667,6 +2667,7 @@ interface TripSectionIcons {
2667
2667
  itinerary?: React.ReactNode;
2668
2668
  whatIsIncluded?: React.ReactNode;
2669
2669
  /** Accordion sections */
2670
+ whenItOperates?: React.ReactNode;
2670
2671
  howToGetThere?: React.ReactNode;
2671
2672
  meetingPoint?: React.ReactNode;
2672
2673
  optionalExtras?: React.ReactNode;
@@ -2676,6 +2677,48 @@ interface TripSectionIcons {
2676
2677
  weather?: React.ReactNode;
2677
2678
  terms?: React.ReactNode;
2678
2679
  }
2680
+ /**
2681
+ * i18n overrides for every section / accordion heading and floating-menu
2682
+ * entry rendered by `<TripPage>`. Any key left undefined falls back to the
2683
+ * built-in English string used today, so existing consumers don't need to
2684
+ * pass anything to keep working.
2685
+ *
2686
+ * The same key drives both the floating menu entry and the section/accordion
2687
+ * heading for that concept — they always match in the design, and giving
2688
+ * editors two slots to keep in sync would be a footgun.
2689
+ */
2690
+ interface TripPageLabels {
2691
+ /** Section nav + section heading: "Overview" */
2692
+ overview?: string;
2693
+ /** Section nav + section heading: "Itinerary" */
2694
+ itinerary?: string;
2695
+ /** Section nav + section heading: "What is Included" */
2696
+ whatIsIncluded?: string;
2697
+ /** Section heading: "Not included" */
2698
+ notIncluded?: string;
2699
+ /** Section nav + accordion heading: "What to bring" */
2700
+ whatToBring?: string;
2701
+ /** Section nav + accordion heading: "When this tour operates" */
2702
+ whenItOperates?: string;
2703
+ /** Section nav + accordion heading: "Accommodation" */
2704
+ accommodation?: string;
2705
+ /** Accordion heading: "Food" */
2706
+ food?: string;
2707
+ /** Accordion heading: "Meeting point" */
2708
+ meetingPoint?: string;
2709
+ /** Accordion heading: "How to get there" */
2710
+ howToGetThere?: string;
2711
+ /** Accordion heading: "Weather" */
2712
+ weather?: string;
2713
+ /** Accordion heading: "Optional extras" */
2714
+ optionalExtras?: string;
2715
+ /** Section nav + accordion heading: "Terms & conditions" */
2716
+ terms?: string;
2717
+ /** Section nav + section heading: "FAQ" */
2718
+ faq?: string;
2719
+ /** Section nav + section heading: "What our guests think" */
2720
+ reviews?: string;
2721
+ }
2679
2722
 
2680
2723
  interface TripPageProps {
2681
2724
  title: string;
@@ -2718,6 +2761,7 @@ interface TripPageProps {
2718
2761
  weather?: React.ReactNode;
2719
2762
  optionalExtras?: React.ReactNode;
2720
2763
  accommodation?: React.ReactNode;
2764
+ whenItOperates?: React.ReactNode;
2721
2765
  food?: React.ReactNode;
2722
2766
  termsAndConditions?: React.ReactNode;
2723
2767
  meetingPoints?: TripMeetingPoint[];
@@ -2736,6 +2780,12 @@ interface TripPageProps {
2736
2780
  * editor-driven (e.g. an ACF Select on each section group).
2737
2781
  */
2738
2782
  sectionIcons?: TripSectionIcons;
2783
+ /**
2784
+ * i18n overrides for every section/accordion heading and floating-menu
2785
+ * entry. Any key left undefined falls back to the built-in English
2786
+ * string, so existing callers don't need to pass anything.
2787
+ */
2788
+ labels?: TripPageLabels;
2739
2789
  reviews?: TripReview[];
2740
2790
  /** When provided, replaces the manual `reviews` block with a Trustpilot widget. */
2741
2791
  trustpilot?: TripTrustpilotWidget;
@@ -2773,7 +2823,7 @@ interface TripPageProps {
2773
2823
  features?: Record<string, boolean>;
2774
2824
  className?: string;
2775
2825
  }
2776
- declare function TripPage({ title, tagline, destination, duration, images, videoUrl, breadcrumb, chips, highlights, howToGetThere, recommendedFor, overview, overviewHighlights, itinerary, itineraryDays, gallery, included, notIncluded, whatToBring, weather, optionalExtras, accommodation, food, termsAndConditions, meetingPoints, meetingPoint, faqs, faqInitialCount, sectionIcons, reviews, trustpilot, trustpilotMini, trustpilotHero, priceFrom, currency, season, departureTimes, benefits, currencyEstimates, priceInfo, onBook, bookLabel, siteHeader, uiVariant, features, className, }: TripPageProps): react_jsx_runtime.JSX.Element;
2826
+ declare function TripPage({ title, tagline, destination, duration, images, videoUrl, breadcrumb, chips, highlights, howToGetThere, recommendedFor, overview, overviewHighlights, itinerary, itineraryDays, gallery, included, notIncluded, whatToBring, weather, optionalExtras, accommodation, whenItOperates, food, termsAndConditions, meetingPoints, meetingPoint, faqs, faqInitialCount, sectionIcons, labels, reviews, trustpilot, trustpilotMini, trustpilotHero, priceFrom, currency, season, departureTimes, benefits, currencyEstimates, priceInfo, onBook, bookLabel, siteHeader, uiVariant, features, className, }: TripPageProps): react_jsx_runtime.JSX.Element;
2777
2827
 
2778
2828
  type ActivityCardSize = "sm" | "md" | "lg";
2779
2829
  interface ActivityCardProps {
@@ -3246,4 +3296,4 @@ declare function LeadCapturePopup({ config: _config, }: {
3246
3296
  config: LeadCapturePopupConfig;
3247
3297
  }): react_jsx_runtime.JSX.Element | null;
3248
3298
 
3249
- export { ActivityCard, type ActivityCardProps, type ActivityCardSize, AgentContactCard, type AgentContactCardProps, Alert, type AlertProps, type AlertVariant, BirthDateField, type BirthDateFieldProps, type BookingAdventure, BookingAdventureCard, type BookingAdventureCardLabels, type BookingAdventureCardLineItem, type BookingAdventureCardProps, type BookingAdventureCardSlots, type BookingAdventureCardTraveller, BookingConfirmedCard, type BookingConfirmedCardProps, type BookingContact, BookingCreatedEmail, type BookingCreatedEmailLabels, type BookingCreatedEmailProps, type BookingDepositInfo, BookingDetails, type BookingDetailsLabels, type BookingDetailsProps, BookingForm, type BookingFormProps, type BookingFormValues, BookingOtpEmail, type BookingOtpEmailProps, BookingPaymentConfirmationEmail, type BookingPaymentConfirmationEmailLabels, type BookingPaymentConfirmationEmailProps, BookingShell, type BookingShellProps, type BookingStatus, BookingSummary, type BookingSummaryLineItem, type BookingSummaryProps, type BookingSummaryRow, type BookingTraveller, Button, type ButtonProps, COUNTRIES, type ConfirmationAdventure, type ConfirmationDepositInfo, type ConfirmationLineItem, type ConfirmationTraveller, CounterField, type CounterFieldProps, type CountryOption, CountrySearchField, type CountrySearchFieldProps, type CurrencyEstimate, DEFAULT_HEADER_LINKS, DEFAULT_LANGUAGES, DatePickerField, type DatePickerFieldProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, type EmailTokens, type FilterGroup, type FilterItem, FilterPanel, type FilterPanelProps, FloatingInput, type FloatingInputProps, FloatingSelect, type FloatingSelectProps, Itinerary, ItineraryDay, type ItineraryDayPhoto, type ItineraryDayPhotoLayout, type ItineraryDayProps, type ItineraryDaySpec, type ItineraryProps, type ItineraryRoute, type ItineraryStop, LOGO_PLANETAEXO_DATA_URI, LeadCapturePopup, type LeadCapturePopupConfig, MenuTrip, type MenuTripProps, type MenuTripSection, type MenuTripVariant, OTPCodeInput, type OTPCodeInputProps, Offer, OfferAdventureCard, type OfferAdventureItem, type OfferAgentInfo, type OfferConfirmedState, type OfferDepositInfo, type OfferLabels, type OfferOptionalItem, type OfferProps, type OfferSummaryLineItem, type PartnerBookingCreatedAgentContactLinks, PartnerBookingCreatedEmail, type PartnerBookingCreatedEmailLabels, type PartnerBookingCreatedEmailProps, type PartnerConfirmationAgentContactLinks, PartnerConfirmationEmail, type PartnerConfirmationEmailExpectationRow, type PartnerConfirmationEmailLabels, type PartnerConfirmationEmailProps, PaymentAmountSelector, type PaymentAmountSelectorProps, PaymentDetailsBlock, type PaymentDetailsBlockFooterBanner, type PaymentDetailsBlockLabels, type PaymentDetailsBlockProps, type PaymentDetailsBlockRow, type PaymentMethodOption, PaymentMethodSelector, type PaymentMethodSelectorProps, PaymentModalShell, type PaymentModalShellProps, type PaymentReceiptAdventure, type PaymentReceiptAdventureLineItem, PaymentReceiptEmail, type PaymentReceiptEmailLabels, type PaymentReceiptEmailProps, type PaymentReminderAgentContactLinks, PaymentReminderEmail, type PaymentReminderEmailAdventure, type PaymentReminderEmailLabels, type PaymentReminderEmailLineItem, type PaymentReminderEmailProps, type PaymentReminderEmailVariantLabels, type PaymentReminderVariant, PhoneCountrySelect, PhotoGallery, type PhotoGalleryPhoto, type PhotoGalleryProps, type PhotoGalleryVariant, PricingTrip, type PricingTripProps, type PricingTripVariant, type RegistrationAdventure, type RegistrationBooking, type RegistrationEmergencyContactValue, type RegistrationField, type RegistrationFieldOption, type RegistrationFieldType, type RegistrationFieldValue, RegistrationForm, type RegistrationFormLabels, type RegistrationFormProps, type RegistrationFormValues, type RegistrationNameValue, type RegistrationPhoneValue, RegistrationProgressBar, type RegistrationProgressBarProps, type RegistrationProgressTone, type RegistrationReminderAdventureBlock, type RegistrationReminderAgentContactLinks, RegistrationReminderEmail, type RegistrationReminderEmailLabels, type RegistrationReminderEmailProps, type RegistrationReminderEmailVariantLabels, type RegistrationReminderIndividualAgentContactLinks, RegistrationReminderIndividualEmail, type RegistrationReminderIndividualEmailLabels, type RegistrationReminderIndividualEmailProps, type RegistrationReminderIndividualRoute, type RegistrationReminderIndividualSlug, type RegistrationReminderIndividualVariantLabels, type RegistrationReminderSlug, RegistrationSuccessCard, type RegistrationSuccessCardProps, type RegistrationTerms, type RegistrationTraveller, SiteHeader, type SiteHeaderLanguage, type SiteHeaderLink, type SiteHeaderProps, type SiteHeaderSubItem, type SiteHeaderVariant, type StripeAppearance, type SuggestedTraveller, TERMS_ACCEPT_KEY, TermsSection, type TermsSectionProps, ThemeToggle, Toast, type ToastProps, type ToastVariant, TransferDetailsBlock, type TransferDetailsBlockProps, type TravellerFormConfig, type TravellerFormData, TravellerFormInviteEmail, type TravellerFormInviteEmailLabels, type TravellerFormInviteEmailProps, type TravellerFormInviteLink, type TravellerFormLabels, TripCard, type TripCardCta, type TripCardProps, type TripCardSize, type TripCardStatus, type TripDuration, type TripFaq, TripHeader, type TripHeaderProps, type TripHighlight, type TripInfoGroup, type TripItineraryDay, type TripItineraryStep, type TripMeetingPoint, type TripOverviewHighlight, TripPage, type TripPageProps, type TripReview, type TripTrustpilotWidget, TrustpilotEmbed, type TrustpilotWidgetConfig, buttonVariants, cn, emailTokens, getStripeAppearance, itineraryDaySpecIcons, stripeAppearance, wrapEmailHtml };
3299
+ export { ActivityCard, type ActivityCardProps, type ActivityCardSize, AgentContactCard, type AgentContactCardProps, Alert, type AlertProps, type AlertVariant, BirthDateField, type BirthDateFieldProps, type BookingAdventure, BookingAdventureCard, type BookingAdventureCardLabels, type BookingAdventureCardLineItem, type BookingAdventureCardProps, type BookingAdventureCardSlots, type BookingAdventureCardTraveller, BookingConfirmedCard, type BookingConfirmedCardProps, type BookingContact, BookingCreatedEmail, type BookingCreatedEmailLabels, type BookingCreatedEmailProps, type BookingDepositInfo, BookingDetails, type BookingDetailsLabels, type BookingDetailsProps, BookingForm, type BookingFormProps, type BookingFormValues, BookingOtpEmail, type BookingOtpEmailProps, BookingPaymentConfirmationEmail, type BookingPaymentConfirmationEmailLabels, type BookingPaymentConfirmationEmailProps, BookingShell, type BookingShellProps, type BookingStatus, BookingSummary, type BookingSummaryLineItem, type BookingSummaryProps, type BookingSummaryRow, type BookingTraveller, Button, type ButtonProps, COUNTRIES, type ConfirmationAdventure, type ConfirmationDepositInfo, type ConfirmationLineItem, type ConfirmationTraveller, CounterField, type CounterFieldProps, type CountryOption, CountrySearchField, type CountrySearchFieldProps, type CurrencyEstimate, DEFAULT_HEADER_LINKS, DEFAULT_LANGUAGES, DatePickerField, type DatePickerFieldProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, type EmailTokens, type FilterGroup, type FilterItem, FilterPanel, type FilterPanelProps, FloatingInput, type FloatingInputProps, FloatingSelect, type FloatingSelectProps, Itinerary, ItineraryDay, type ItineraryDayPhoto, type ItineraryDayPhotoLayout, type ItineraryDayProps, type ItineraryDaySpec, type ItineraryProps, type ItineraryRoute, type ItineraryStop, LOGO_PLANETAEXO_DATA_URI, LeadCapturePopup, type LeadCapturePopupConfig, MenuTrip, type MenuTripProps, type MenuTripSection, type MenuTripVariant, OTPCodeInput, type OTPCodeInputProps, Offer, OfferAdventureCard, type OfferAdventureItem, type OfferAgentInfo, type OfferConfirmedState, type OfferDepositInfo, type OfferLabels, type OfferOptionalItem, type OfferProps, type OfferSummaryLineItem, type PartnerBookingCreatedAgentContactLinks, PartnerBookingCreatedEmail, type PartnerBookingCreatedEmailLabels, type PartnerBookingCreatedEmailProps, type PartnerConfirmationAgentContactLinks, PartnerConfirmationEmail, type PartnerConfirmationEmailExpectationRow, type PartnerConfirmationEmailLabels, type PartnerConfirmationEmailProps, PaymentAmountSelector, type PaymentAmountSelectorProps, PaymentDetailsBlock, type PaymentDetailsBlockFooterBanner, type PaymentDetailsBlockLabels, type PaymentDetailsBlockProps, type PaymentDetailsBlockRow, type PaymentMethodOption, PaymentMethodSelector, type PaymentMethodSelectorProps, PaymentModalShell, type PaymentModalShellProps, type PaymentReceiptAdventure, type PaymentReceiptAdventureLineItem, PaymentReceiptEmail, type PaymentReceiptEmailLabels, type PaymentReceiptEmailProps, type PaymentReminderAgentContactLinks, PaymentReminderEmail, type PaymentReminderEmailAdventure, type PaymentReminderEmailLabels, type PaymentReminderEmailLineItem, type PaymentReminderEmailProps, type PaymentReminderEmailVariantLabels, type PaymentReminderVariant, PhoneCountrySelect, PhotoGallery, type PhotoGalleryPhoto, type PhotoGalleryProps, type PhotoGalleryVariant, PricingTrip, type PricingTripProps, type PricingTripVariant, type RegistrationAdventure, type RegistrationBooking, type RegistrationEmergencyContactValue, type RegistrationField, type RegistrationFieldOption, type RegistrationFieldType, type RegistrationFieldValue, RegistrationForm, type RegistrationFormLabels, type RegistrationFormProps, type RegistrationFormValues, type RegistrationNameValue, type RegistrationPhoneValue, RegistrationProgressBar, type RegistrationProgressBarProps, type RegistrationProgressTone, type RegistrationReminderAdventureBlock, type RegistrationReminderAgentContactLinks, RegistrationReminderEmail, type RegistrationReminderEmailLabels, type RegistrationReminderEmailProps, type RegistrationReminderEmailVariantLabels, type RegistrationReminderIndividualAgentContactLinks, RegistrationReminderIndividualEmail, type RegistrationReminderIndividualEmailLabels, type RegistrationReminderIndividualEmailProps, type RegistrationReminderIndividualRoute, type RegistrationReminderIndividualSlug, type RegistrationReminderIndividualVariantLabels, type RegistrationReminderSlug, RegistrationSuccessCard, type RegistrationSuccessCardProps, type RegistrationTerms, type RegistrationTraveller, SiteHeader, type SiteHeaderLanguage, type SiteHeaderLink, type SiteHeaderProps, type SiteHeaderSubItem, type SiteHeaderVariant, type StripeAppearance, type SuggestedTraveller, TERMS_ACCEPT_KEY, TermsSection, type TermsSectionProps, ThemeToggle, Toast, type ToastProps, type ToastVariant, TransferDetailsBlock, type TransferDetailsBlockProps, type TravellerFormConfig, type TravellerFormData, TravellerFormInviteEmail, type TravellerFormInviteEmailLabels, type TravellerFormInviteEmailProps, type TravellerFormInviteLink, type TravellerFormLabels, TripCard, type TripCardCta, type TripCardProps, type TripCardSize, type TripCardStatus, type TripDuration, type TripFaq, TripHeader, type TripHeaderProps, type TripHighlight, type TripInfoGroup, type TripItineraryDay, type TripItineraryStep, type TripMeetingPoint, type TripOverviewHighlight, TripPage, type TripPageLabels, type TripPageProps, type TripReview, type TripSectionIcons, type TripTrustpilotWidget, TrustpilotEmbed, type TrustpilotWidgetConfig, buttonVariants, cn, emailTokens, getStripeAppearance, itineraryDaySpecIcons, stripeAppearance, wrapEmailHtml };
package/dist/index.js CHANGED
@@ -12484,6 +12484,7 @@ function TripPage({
12484
12484
  weather,
12485
12485
  optionalExtras,
12486
12486
  accommodation,
12487
+ whenItOperates,
12487
12488
  food,
12488
12489
  termsAndConditions,
12489
12490
  meetingPoints,
@@ -12491,6 +12492,7 @@ function TripPage({
12491
12492
  faqs,
12492
12493
  faqInitialCount = 5,
12493
12494
  sectionIcons,
12495
+ labels,
12494
12496
  reviews,
12495
12497
  trustpilot,
12496
12498
  trustpilotMini,
@@ -12509,11 +12511,13 @@ function TripPage({
12509
12511
  features,
12510
12512
  className
12511
12513
  }) {
12514
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
12512
12515
  const [activeSection, setActiveSection] = React28.useState("");
12513
12516
  const [accordionValue, setAccordionValue] = React28.useState([]);
12514
12517
  const [faqsExpanded, setFaqsExpanded] = React28.useState(false);
12515
12518
  const accordionSectionIds = React28.useMemo(
12516
12519
  () => /* @__PURE__ */ new Set([
12520
+ "when-it-operates",
12517
12521
  "how-to-get-there",
12518
12522
  "what-to-bring",
12519
12523
  "weather",
@@ -12537,20 +12541,24 @@ function TripPage({
12537
12541
  const pricingBarRef = React28.useRef(null);
12538
12542
  const galleryRef = React28.useRef(null);
12539
12543
  const sections = React28.useMemo(
12540
- () => [
12541
- { id: "overview", label: "Overview", show: !!(overview || (overviewHighlights == null ? void 0 : overviewHighlights.length)) },
12542
- {
12543
- id: "itinerary",
12544
- label: "Itinerary",
12545
- show: !!((itineraryDays == null ? void 0 : itineraryDays.length) || (itinerary == null ? void 0 : itinerary.length))
12546
- },
12547
- { id: "included", label: "What is Included", show: !!(included == null ? void 0 : included.length) },
12548
- { id: "what-to-bring", label: "What to Bring", show: !!(whatToBring == null ? void 0 : whatToBring.length) },
12549
- { id: "accommodation", label: "Accommodation", show: !!accommodation },
12550
- { id: "terms", label: "Terms", show: !!termsAndConditions },
12551
- { id: "faq", label: "FAQ", show: !!(faqs == null ? void 0 : faqs.length) },
12552
- { id: "reviews", label: "Reviews", show: !!(trustpilot || (reviews == null ? void 0 : reviews.length)) }
12553
- ].filter((s) => s.show),
12544
+ () => {
12545
+ var _a2, _b2, _c2, _d2, _e2, _f2, _g2, _h2, _i2;
12546
+ return [
12547
+ { id: "overview", label: (_a2 = labels == null ? void 0 : labels.overview) != null ? _a2 : "Overview", show: !!(overview || (overviewHighlights == null ? void 0 : overviewHighlights.length)) },
12548
+ {
12549
+ id: "itinerary",
12550
+ label: (_b2 = labels == null ? void 0 : labels.itinerary) != null ? _b2 : "Itinerary",
12551
+ show: !!((itineraryDays == null ? void 0 : itineraryDays.length) || (itinerary == null ? void 0 : itinerary.length))
12552
+ },
12553
+ { id: "included", label: (_c2 = labels == null ? void 0 : labels.whatIsIncluded) != null ? _c2 : "What is Included", show: !!(included == null ? void 0 : included.length) },
12554
+ { id: "what-to-bring", label: (_d2 = labels == null ? void 0 : labels.whatToBring) != null ? _d2 : "What to Bring", show: !!(whatToBring == null ? void 0 : whatToBring.length) },
12555
+ { id: "when-it-operates", label: (_e2 = labels == null ? void 0 : labels.whenItOperates) != null ? _e2 : "When this tour operates", show: !!whenItOperates },
12556
+ { id: "accommodation", label: (_f2 = labels == null ? void 0 : labels.accommodation) != null ? _f2 : "Accommodation", show: !!accommodation },
12557
+ { id: "terms", label: (_g2 = labels == null ? void 0 : labels.terms) != null ? _g2 : "Terms", show: !!termsAndConditions },
12558
+ { id: "faq", label: (_h2 = labels == null ? void 0 : labels.faq) != null ? _h2 : "FAQ", show: !!(faqs == null ? void 0 : faqs.length) },
12559
+ { id: "reviews", label: (_i2 = labels == null ? void 0 : labels.reviews) != null ? _i2 : "Reviews", show: !!(trustpilot || (reviews == null ? void 0 : reviews.length)) }
12560
+ ].filter((s) => s.show);
12561
+ },
12554
12562
  // eslint-disable-next-line react-hooks/exhaustive-deps
12555
12563
  []
12556
12564
  );
@@ -12582,8 +12590,8 @@ function TripPage({
12582
12590
  }, [isFloating]);
12583
12591
  React28.useEffect(() => {
12584
12592
  const check = () => {
12585
- var _a;
12586
- const target = (_a = galleryRef.current) != null ? _a : pricingBarRef.current;
12593
+ var _a2;
12594
+ const target = (_a2 = galleryRef.current) != null ? _a2 : pricingBarRef.current;
12587
12595
  if (!target) return;
12588
12596
  setPricingBarVisible(target.getBoundingClientRect().top < window.innerHeight * 0.75);
12589
12597
  };
@@ -12604,8 +12612,8 @@ function TripPage({
12604
12612
  if (sections.length === 0) return;
12605
12613
  setActiveSection(sections[0].id);
12606
12614
  const update = () => {
12607
- var _a, _b;
12608
- const navH = ((_b = (_a = navRef.current) == null ? void 0 : _a.offsetHeight) != null ? _b : 56) + 20;
12615
+ var _a2, _b2;
12616
+ const navH = ((_b2 = (_a2 = navRef.current) == null ? void 0 : _a2.offsetHeight) != null ? _b2 : 56) + 20;
12609
12617
  for (const { id } of [...sections].reverse()) {
12610
12618
  const el = document.getElementById(`trip-section-${id}`);
12611
12619
  if (el && el.getBoundingClientRect().top <= navH) {
@@ -12619,11 +12627,11 @@ function TripPage({
12619
12627
  return () => document.removeEventListener("scroll", update, { capture: true });
12620
12628
  }, [sections]);
12621
12629
  const scrollToBookingForm = () => {
12622
- var _a, _b, _c;
12630
+ var _a2, _b2, _c2;
12623
12631
  const el = document.getElementById("trip-booking-form");
12624
12632
  if (!el) return;
12625
- const navHeight = ((_b = (_a = navRef.current) == null ? void 0 : _a.offsetHeight) != null ? _b : 56) + 16;
12626
- const scrollEl = (_c = navRef.current) == null ? void 0 : _c.closest("main");
12633
+ const navHeight = ((_b2 = (_a2 = navRef.current) == null ? void 0 : _a2.offsetHeight) != null ? _b2 : 56) + 16;
12634
+ const scrollEl = (_c2 = navRef.current) == null ? void 0 : _c2.closest("main");
12627
12635
  const elTop = el.getBoundingClientRect().top;
12628
12636
  const containerTop = scrollEl ? scrollEl.getBoundingClientRect().top : 0;
12629
12637
  const currentScroll = scrollEl ? scrollEl.scrollTop : window.scrollY;
@@ -12636,11 +12644,11 @@ function TripPage({
12636
12644
  };
12637
12645
  const scrollToSection = (id) => {
12638
12646
  const performScroll = () => {
12639
- var _a, _b, _c;
12647
+ var _a2, _b2, _c2;
12640
12648
  const el = document.getElementById(`trip-section-${id}`);
12641
12649
  if (!el) return;
12642
- const navHeight = (_b = (_a = navRef.current) == null ? void 0 : _a.offsetHeight) != null ? _b : 56;
12643
- const scrollEl = (_c = navRef.current) == null ? void 0 : _c.closest("main");
12650
+ const navHeight = (_b2 = (_a2 = navRef.current) == null ? void 0 : _a2.offsetHeight) != null ? _b2 : 56;
12651
+ const scrollEl = (_c2 = navRef.current) == null ? void 0 : _c2.closest("main");
12644
12652
  const currentScroll = scrollEl ? scrollEl.scrollTop : window.scrollY;
12645
12653
  const elTop = el.getBoundingClientRect().top;
12646
12654
  const containerTop = scrollEl ? scrollEl.getBoundingClientRect().top : 0;
@@ -12709,7 +12717,7 @@ function TripPage({
12709
12717
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col lg:flex-row gap-8 mt-4", children: [
12710
12718
  /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0 space-y-12 pb-12", children: [
12711
12719
  (overview || (overviewHighlights == null ? void 0 : overviewHighlights.length)) && /* @__PURE__ */ jsxs("section", { id: "trip-section-overview", className: "scroll-mt-20", children: [
12712
- /* @__PURE__ */ jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-4", children: "Overview" }),
12720
+ /* @__PURE__ */ jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-4", children: (_a = labels == null ? void 0 : labels.overview) != null ? _a : "Overview" }),
12713
12721
  overview && /* @__PURE__ */ jsx("div", { className: "text-lg text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_a]:text-primary [&_a]:underline", children: overview }),
12714
12722
  overviewHighlights && overviewHighlights.length > 0 && /* @__PURE__ */ jsx("ul", { className: cn("flex flex-col gap-5", overview && "mt-8"), children: overviewHighlights.map((h, i) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-4", children: [
12715
12723
  h.icon && /* @__PURE__ */ 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 }),
@@ -12724,7 +12732,7 @@ function TripPage({
12724
12732
  ] })
12725
12733
  ] }),
12726
12734
  itineraryDays && itineraryDays.length > 0 ? /* @__PURE__ */ jsxs("section", { id: "trip-section-itinerary", className: "scroll-mt-20", children: [
12727
- /* @__PURE__ */ jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-6", children: "Itinerary" }),
12735
+ /* @__PURE__ */ jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-6", children: (_b = labels == null ? void 0 : labels.itinerary) != null ? _b : "Itinerary" }),
12728
12736
  /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-12", children: itineraryDays.map((day) => /* @__PURE__ */ jsx(
12729
12737
  ItineraryDay,
12730
12738
  __spreadProps(__spreadValues({}, day), {
@@ -12733,20 +12741,20 @@ function TripPage({
12733
12741
  day.dayNumber
12734
12742
  )) })
12735
12743
  ] }) : itinerary && itinerary.length > 0 && /* @__PURE__ */ jsxs("section", { id: "trip-section-itinerary", className: "scroll-mt-20", children: [
12736
- /* @__PURE__ */ jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-6", children: "Itinerary" }),
12744
+ /* @__PURE__ */ jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-6", children: (_c = labels == null ? void 0 : labels.itinerary) != null ? _c : "Itinerary" }),
12737
12745
  /* @__PURE__ */ jsx(ItineraryTimeline, { steps: itinerary })
12738
12746
  ] }),
12739
12747
  included && included.length > 0 && /* @__PURE__ */ jsxs("section", { id: "trip-section-included", className: "scroll-mt-20", children: [
12740
12748
  /* @__PURE__ */ jsxs("h2", { className: "text-xl font-bold text-foreground font-heading mb-4 flex items-center gap-2", children: [
12741
12749
  (sectionIcons == null ? void 0 : sectionIcons.whatIsIncluded) ? /* @__PURE__ */ jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.whatIsIncluded }) : /* @__PURE__ */ jsx(PackageIcon, { className: "h-5 w-5 text-primary" }),
12742
- "Included"
12750
+ (_d = labels == null ? void 0 : labels.whatIsIncluded) != null ? _d : "Included"
12743
12751
  ] }),
12744
12752
  /* @__PURE__ */ jsx(Checklist, { items: included })
12745
12753
  ] }),
12746
12754
  notIncluded && notIncluded.length > 0 && /* @__PURE__ */ jsxs("section", { id: "trip-section-not-included", className: "scroll-mt-20", children: [
12747
12755
  /* @__PURE__ */ jsxs("h2", { className: "text-xl font-bold text-foreground font-heading mb-4 flex items-center gap-2", children: [
12748
12756
  /* @__PURE__ */ jsx(XIcon, { className: "h-5 w-5 text-muted-foreground" }),
12749
- "Not included"
12757
+ (_e = labels == null ? void 0 : labels.notIncluded) != null ? _e : "Not included"
12750
12758
  ] }),
12751
12759
  /* @__PURE__ */ jsx(
12752
12760
  Checklist,
@@ -12756,7 +12764,7 @@ function TripPage({
12756
12764
  }
12757
12765
  )
12758
12766
  ] }),
12759
- (howToGetThere || (whatToBring == null ? void 0 : whatToBring.length) || weather || optionalExtras || accommodation || food || (meetingPoints == null ? void 0 : meetingPoints.length) || meetingPoint || termsAndConditions) && /* @__PURE__ */ jsxs(
12767
+ (howToGetThere || (whatToBring == null ? void 0 : whatToBring.length) || weather || optionalExtras || accommodation || food || (meetingPoints == null ? void 0 : meetingPoints.length) || meetingPoint || termsAndConditions || whenItOperates) && /* @__PURE__ */ jsxs(
12760
12768
  Accordion,
12761
12769
  {
12762
12770
  multiple: false,
@@ -12764,6 +12772,21 @@ function TripPage({
12764
12772
  onValueChange: setAccordionValue,
12765
12773
  className: "border-t border-border",
12766
12774
  children: [
12775
+ whenItOperates && /* @__PURE__ */ jsxs(
12776
+ AccordionItem,
12777
+ {
12778
+ value: "when-it-operates",
12779
+ id: "trip-section-when-it-operates",
12780
+ className: "scroll-mt-20 border-b border-border",
12781
+ children: [
12782
+ /* @__PURE__ */ jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2", children: [
12783
+ (sectionIcons == null ? void 0 : sectionIcons.whenItOperates) ? /* @__PURE__ */ jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.whenItOperates }) : /* @__PURE__ */ jsx(CalendarIcon, { className: "h-5 w-5 text-primary" }),
12784
+ (_f = labels == null ? void 0 : labels.whenItOperates) != null ? _f : "When this tour operates"
12785
+ ] }) }),
12786
+ /* @__PURE__ */ jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsx("div", { className: "text-base text-foreground leading-relaxed space-y-3 [&_strong]:font-bold [&_a]:text-primary [&_a]:underline", children: whenItOperates }) })
12787
+ ]
12788
+ }
12789
+ ),
12767
12790
  accommodation && /* @__PURE__ */ jsxs(
12768
12791
  AccordionItem,
12769
12792
  {
@@ -12773,7 +12796,7 @@ function TripPage({
12773
12796
  children: [
12774
12797
  /* @__PURE__ */ jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2", children: [
12775
12798
  (sectionIcons == null ? void 0 : sectionIcons.accommodation) ? /* @__PURE__ */ jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.accommodation }) : /* @__PURE__ */ jsx(BedDoubleIcon, { className: "h-5 w-5 text-primary" }),
12776
- "Accommodation"
12799
+ (_g = labels == null ? void 0 : labels.accommodation) != null ? _g : "Accommodation"
12777
12800
  ] }) }),
12778
12801
  /* @__PURE__ */ jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsx("div", { className: "text-base text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_a]:text-primary [&_a]:underline", children: accommodation }) })
12779
12802
  ]
@@ -12788,7 +12811,7 @@ function TripPage({
12788
12811
  children: [
12789
12812
  /* @__PURE__ */ jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2", children: [
12790
12813
  (sectionIcons == null ? void 0 : sectionIcons.food) ? /* @__PURE__ */ jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.food }) : /* @__PURE__ */ jsx(UtensilsIcon, { className: "h-5 w-5 text-primary" }),
12791
- "Food"
12814
+ (_h = labels == null ? void 0 : labels.food) != null ? _h : "Food"
12792
12815
  ] }) }),
12793
12816
  /* @__PURE__ */ jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsx("div", { className: "text-base text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_a]:text-primary [&_a]:underline", children: food }) })
12794
12817
  ]
@@ -12803,7 +12826,7 @@ function TripPage({
12803
12826
  children: [
12804
12827
  /* @__PURE__ */ jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2", children: [
12805
12828
  (sectionIcons == null ? void 0 : sectionIcons.meetingPoint) ? /* @__PURE__ */ jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.meetingPoint }) : /* @__PURE__ */ jsx(MapPinIcon, { className: "h-5 w-5 text-primary" }),
12806
- "Meeting point"
12829
+ (_i = labels == null ? void 0 : labels.meetingPoint) != null ? _i : "Meeting point"
12807
12830
  ] }) }),
12808
12831
  /* @__PURE__ */ jsx(AccordionContent, { className: "pb-6", children: meetingPoint ? /* @__PURE__ */ jsx("div", { className: "text-base text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_a]:text-primary [&_a]:underline", children: meetingPoint }) : /* @__PURE__ */ jsx("div", { className: "space-y-3", children: meetingPoints.map((mp, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3 rounded-xl border border-border p-4", children: [
12809
12832
  /* @__PURE__ */ jsx("div", { className: "mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ jsx(MapPinIcon, { className: "h-4 w-4 text-primary" }) }),
@@ -12825,7 +12848,7 @@ function TripPage({
12825
12848
  children: [
12826
12849
  /* @__PURE__ */ jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2", children: [
12827
12850
  (sectionIcons == null ? void 0 : sectionIcons.howToGetThere) ? /* @__PURE__ */ jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.howToGetThere }) : /* @__PURE__ */ jsx(CompassIcon, { className: "h-5 w-5 text-primary" }),
12828
- "How to get there"
12851
+ (_j = labels == null ? void 0 : labels.howToGetThere) != null ? _j : "How to get there"
12829
12852
  ] }) }),
12830
12853
  /* @__PURE__ */ jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsx("div", { className: "text-base text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_a]:text-primary [&_a]:underline", children: howToGetThere }) })
12831
12854
  ]
@@ -12840,7 +12863,7 @@ function TripPage({
12840
12863
  children: [
12841
12864
  /* @__PURE__ */ jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2", children: [
12842
12865
  (sectionIcons == null ? void 0 : sectionIcons.weather) ? /* @__PURE__ */ jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.weather }) : /* @__PURE__ */ jsx(SunIcon, { className: "h-5 w-5 text-primary" }),
12843
- "Weather"
12866
+ (_k = labels == null ? void 0 : labels.weather) != null ? _k : "Weather"
12844
12867
  ] }) }),
12845
12868
  /* @__PURE__ */ jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsx("div", { className: "flex items-start gap-3 rounded-xl bg-muted/60 border border-border p-5", children: /* @__PURE__ */ jsx("div", { className: "text-base text-foreground leading-relaxed space-y-2 [&_strong]:font-semibold", children: weather }) }) })
12846
12869
  ]
@@ -12855,7 +12878,7 @@ function TripPage({
12855
12878
  children: [
12856
12879
  /* @__PURE__ */ jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2", children: [
12857
12880
  (sectionIcons == null ? void 0 : sectionIcons.whatToBring) ? /* @__PURE__ */ jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.whatToBring }) : /* @__PURE__ */ jsx(BackpackIcon, { className: "h-5 w-5 text-primary" }),
12858
- "What to bring"
12881
+ (_l = labels == null ? void 0 : labels.whatToBring) != null ? _l : "What to bring"
12859
12882
  ] }) }),
12860
12883
  /* @__PURE__ */ jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsx(Checklist, { items: whatToBring, icon: /* @__PURE__ */ jsx(InfoIcon, { className: "h-4 w-4" }) }) })
12861
12884
  ]
@@ -12870,7 +12893,7 @@ function TripPage({
12870
12893
  children: [
12871
12894
  /* @__PURE__ */ jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2", children: [
12872
12895
  (sectionIcons == null ? void 0 : sectionIcons.optionalExtras) ? /* @__PURE__ */ jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.optionalExtras }) : /* @__PURE__ */ jsx(CherryIcon, { className: "h-5 w-5 text-primary" }),
12873
- "Optional extras"
12896
+ (_m = labels == null ? void 0 : labels.optionalExtras) != null ? _m : "Optional extras"
12874
12897
  ] }) }),
12875
12898
  /* @__PURE__ */ jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsx("div", { className: "text-base text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_a]:text-primary [&_a]:underline", children: optionalExtras }) })
12876
12899
  ]
@@ -12885,7 +12908,7 @@ function TripPage({
12885
12908
  children: [
12886
12909
  /* @__PURE__ */ jsx(AccordionTrigger, { className: "py-5 text-xl font-bold text-foreground font-heading hover:no-underline", children: /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2", children: [
12887
12910
  (sectionIcons == null ? void 0 : sectionIcons.terms) ? /* @__PURE__ */ jsx("span", { className: "text-primary [&>svg]:h-5 [&>svg]:w-5", children: sectionIcons.terms }) : /* @__PURE__ */ jsx(ReceiptIcon, { className: "h-5 w-5 text-primary" }),
12888
- "Terms & conditions"
12911
+ (_n = labels == null ? void 0 : labels.terms) != null ? _n : "Terms & conditions"
12889
12912
  ] }) }),
12890
12913
  /* @__PURE__ */ jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsx("div", { className: "text-base text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_a]:text-primary [&_a]:underline", children: termsAndConditions }) })
12891
12914
  ]
@@ -12895,10 +12918,11 @@ function TripPage({
12895
12918
  }
12896
12919
  ),
12897
12920
  faqs && faqs.length > 0 && (() => {
12921
+ var _a2;
12898
12922
  const visibleFaqs = faqsExpanded ? faqs : faqs.slice(0, faqInitialCount);
12899
12923
  const hiddenCount = faqs.length - visibleFaqs.length;
12900
12924
  return /* @__PURE__ */ jsxs("section", { id: "trip-section-faq", className: "scroll-mt-20", children: [
12901
- /* @__PURE__ */ jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-6", children: "FAQ" }),
12925
+ /* @__PURE__ */ jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-6", children: (_a2 = labels == null ? void 0 : labels.faq) != null ? _a2 : "FAQ" }),
12902
12926
  /* @__PURE__ */ jsx(Accordion, { variant: "faq", children: visibleFaqs.map((faq, i) => /* @__PURE__ */ jsxs(AccordionItem, { value: `faq-${i}`, children: [
12903
12927
  /* @__PURE__ */ jsx(AccordionTrigger, { children: faq.question }),
12904
12928
  /* @__PURE__ */ jsx(AccordionContent, { children: faq.answer })
@@ -12929,15 +12953,15 @@ function TripPage({
12929
12953
  })(),
12930
12954
  trustpilot ? /* @__PURE__ */ jsxs("section", { id: "trip-section-reviews", className: "scroll-mt-20", children: [
12931
12955
  /* @__PURE__ */ jsx(Separator, { className: "mb-10" }),
12932
- /* @__PURE__ */ jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-5", children: "What our guests think" }),
12956
+ /* @__PURE__ */ 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" }),
12933
12957
  /* @__PURE__ */ jsx(TrustpilotEmbed, { config: trustpilot })
12934
12958
  ] }) : reviews && reviews.length > 0 && /* @__PURE__ */ jsxs("section", { id: "trip-section-reviews", className: "scroll-mt-20", children: [
12935
12959
  /* @__PURE__ */ jsx(Separator, { className: "mb-10" }),
12936
- /* @__PURE__ */ jsx("h2", { className: "text-xl font-bold text-foreground font-heading mb-5", children: "What our guests think" }),
12960
+ /* @__PURE__ */ 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" }),
12937
12961
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4", children: reviews.map((r, i) => {
12938
- var _a;
12962
+ var _a2;
12939
12963
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3 rounded-xl border border-border p-5", children: [
12940
- /* @__PURE__ */ jsx(Stars, { count: (_a = r.rating) != null ? _a : 5 }),
12964
+ /* @__PURE__ */ jsx(Stars, { count: (_a2 = r.rating) != null ? _a2 : 5 }),
12941
12965
  /* @__PURE__ */ jsxs("p", { className: "text-base text-foreground leading-relaxed line-clamp-4", children: [
12942
12966
  "\u201C",
12943
12967
  r.text,