@planetaexo/design-system 0.46.2 → 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
@@ -2677,6 +2677,48 @@ interface TripSectionIcons {
2677
2677
  weather?: React.ReactNode;
2678
2678
  terms?: React.ReactNode;
2679
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
+ }
2680
2722
 
2681
2723
  interface TripPageProps {
2682
2724
  title: string;
@@ -2738,6 +2780,12 @@ interface TripPageProps {
2738
2780
  * editor-driven (e.g. an ACF Select on each section group).
2739
2781
  */
2740
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;
2741
2789
  reviews?: TripReview[];
2742
2790
  /** When provided, replaces the manual `reviews` block with a Trustpilot widget. */
2743
2791
  trustpilot?: TripTrustpilotWidget;
@@ -2775,7 +2823,7 @@ interface TripPageProps {
2775
2823
  features?: Record<string, boolean>;
2776
2824
  className?: string;
2777
2825
  }
2778
- 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, 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;
2779
2827
 
2780
2828
  type ActivityCardSize = "sm" | "md" | "lg";
2781
2829
  interface ActivityCardProps {
@@ -3248,4 +3296,4 @@ declare function LeadCapturePopup({ config: _config, }: {
3248
3296
  config: LeadCapturePopupConfig;
3249
3297
  }): react_jsx_runtime.JSX.Element | null;
3250
3298
 
3251
- 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
@@ -2677,6 +2677,48 @@ interface TripSectionIcons {
2677
2677
  weather?: React.ReactNode;
2678
2678
  terms?: React.ReactNode;
2679
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
+ }
2680
2722
 
2681
2723
  interface TripPageProps {
2682
2724
  title: string;
@@ -2738,6 +2780,12 @@ interface TripPageProps {
2738
2780
  * editor-driven (e.g. an ACF Select on each section group).
2739
2781
  */
2740
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;
2741
2789
  reviews?: TripReview[];
2742
2790
  /** When provided, replaces the manual `reviews` block with a Trustpilot widget. */
2743
2791
  trustpilot?: TripTrustpilotWidget;
@@ -2775,7 +2823,7 @@ interface TripPageProps {
2775
2823
  features?: Record<string, boolean>;
2776
2824
  className?: string;
2777
2825
  }
2778
- 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, 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;
2779
2827
 
2780
2828
  type ActivityCardSize = "sm" | "md" | "lg";
2781
2829
  interface ActivityCardProps {
@@ -3248,4 +3296,4 @@ declare function LeadCapturePopup({ config: _config, }: {
3248
3296
  config: LeadCapturePopupConfig;
3249
3297
  }): react_jsx_runtime.JSX.Element | null;
3250
3298
 
3251
- 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
@@ -12492,6 +12492,7 @@ function TripPage({
12492
12492
  faqs,
12493
12493
  faqInitialCount = 5,
12494
12494
  sectionIcons,
12495
+ labels,
12495
12496
  reviews,
12496
12497
  trustpilot,
12497
12498
  trustpilotMini,
@@ -12510,6 +12511,7 @@ function TripPage({
12510
12511
  features,
12511
12512
  className
12512
12513
  }) {
12514
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
12513
12515
  const [activeSection, setActiveSection] = React28.useState("");
12514
12516
  const [accordionValue, setAccordionValue] = React28.useState([]);
12515
12517
  const [faqsExpanded, setFaqsExpanded] = React28.useState(false);
@@ -12539,21 +12541,24 @@ function TripPage({
12539
12541
  const pricingBarRef = React28.useRef(null);
12540
12542
  const galleryRef = React28.useRef(null);
12541
12543
  const sections = React28.useMemo(
12542
- () => [
12543
- { id: "overview", label: "Overview", show: !!(overview || (overviewHighlights == null ? void 0 : overviewHighlights.length)) },
12544
- {
12545
- id: "itinerary",
12546
- label: "Itinerary",
12547
- show: !!((itineraryDays == null ? void 0 : itineraryDays.length) || (itinerary == null ? void 0 : itinerary.length))
12548
- },
12549
- { id: "included", label: "What is Included", show: !!(included == null ? void 0 : included.length) },
12550
- { id: "what-to-bring", label: "What to Bring", show: !!(whatToBring == null ? void 0 : whatToBring.length) },
12551
- { id: "when-it-operates", label: "When this tour operates", show: !!whenItOperates },
12552
- { id: "accommodation", label: "Accommodation", show: !!accommodation },
12553
- { id: "terms", label: "Terms", show: !!termsAndConditions },
12554
- { id: "faq", label: "FAQ", show: !!(faqs == null ? void 0 : faqs.length) },
12555
- { id: "reviews", label: "Reviews", show: !!(trustpilot || (reviews == null ? void 0 : reviews.length)) }
12556
- ].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
+ },
12557
12562
  // eslint-disable-next-line react-hooks/exhaustive-deps
12558
12563
  []
12559
12564
  );
@@ -12585,8 +12590,8 @@ function TripPage({
12585
12590
  }, [isFloating]);
12586
12591
  React28.useEffect(() => {
12587
12592
  const check = () => {
12588
- var _a;
12589
- const target = (_a = galleryRef.current) != null ? _a : pricingBarRef.current;
12593
+ var _a2;
12594
+ const target = (_a2 = galleryRef.current) != null ? _a2 : pricingBarRef.current;
12590
12595
  if (!target) return;
12591
12596
  setPricingBarVisible(target.getBoundingClientRect().top < window.innerHeight * 0.75);
12592
12597
  };
@@ -12607,8 +12612,8 @@ function TripPage({
12607
12612
  if (sections.length === 0) return;
12608
12613
  setActiveSection(sections[0].id);
12609
12614
  const update = () => {
12610
- var _a, _b;
12611
- 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;
12612
12617
  for (const { id } of [...sections].reverse()) {
12613
12618
  const el = document.getElementById(`trip-section-${id}`);
12614
12619
  if (el && el.getBoundingClientRect().top <= navH) {
@@ -12622,11 +12627,11 @@ function TripPage({
12622
12627
  return () => document.removeEventListener("scroll", update, { capture: true });
12623
12628
  }, [sections]);
12624
12629
  const scrollToBookingForm = () => {
12625
- var _a, _b, _c;
12630
+ var _a2, _b2, _c2;
12626
12631
  const el = document.getElementById("trip-booking-form");
12627
12632
  if (!el) return;
12628
- const navHeight = ((_b = (_a = navRef.current) == null ? void 0 : _a.offsetHeight) != null ? _b : 56) + 16;
12629
- 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");
12630
12635
  const elTop = el.getBoundingClientRect().top;
12631
12636
  const containerTop = scrollEl ? scrollEl.getBoundingClientRect().top : 0;
12632
12637
  const currentScroll = scrollEl ? scrollEl.scrollTop : window.scrollY;
@@ -12639,11 +12644,11 @@ function TripPage({
12639
12644
  };
12640
12645
  const scrollToSection = (id) => {
12641
12646
  const performScroll = () => {
12642
- var _a, _b, _c;
12647
+ var _a2, _b2, _c2;
12643
12648
  const el = document.getElementById(`trip-section-${id}`);
12644
12649
  if (!el) return;
12645
- const navHeight = (_b = (_a = navRef.current) == null ? void 0 : _a.offsetHeight) != null ? _b : 56;
12646
- 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");
12647
12652
  const currentScroll = scrollEl ? scrollEl.scrollTop : window.scrollY;
12648
12653
  const elTop = el.getBoundingClientRect().top;
12649
12654
  const containerTop = scrollEl ? scrollEl.getBoundingClientRect().top : 0;
@@ -12712,7 +12717,7 @@ function TripPage({
12712
12717
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col lg:flex-row gap-8 mt-4", children: [
12713
12718
  /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0 space-y-12 pb-12", children: [
12714
12719
  (overview || (overviewHighlights == null ? void 0 : overviewHighlights.length)) && /* @__PURE__ */ jsxs("section", { id: "trip-section-overview", className: "scroll-mt-20", children: [
12715
- /* @__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" }),
12716
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 }),
12717
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: [
12718
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 }),
@@ -12727,7 +12732,7 @@ function TripPage({
12727
12732
  ] })
12728
12733
  ] }),
12729
12734
  itineraryDays && itineraryDays.length > 0 ? /* @__PURE__ */ jsxs("section", { id: "trip-section-itinerary", className: "scroll-mt-20", children: [
12730
- /* @__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" }),
12731
12736
  /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-12", children: itineraryDays.map((day) => /* @__PURE__ */ jsx(
12732
12737
  ItineraryDay,
12733
12738
  __spreadProps(__spreadValues({}, day), {
@@ -12736,20 +12741,20 @@ function TripPage({
12736
12741
  day.dayNumber
12737
12742
  )) })
12738
12743
  ] }) : itinerary && itinerary.length > 0 && /* @__PURE__ */ jsxs("section", { id: "trip-section-itinerary", className: "scroll-mt-20", children: [
12739
- /* @__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" }),
12740
12745
  /* @__PURE__ */ jsx(ItineraryTimeline, { steps: itinerary })
12741
12746
  ] }),
12742
12747
  included && included.length > 0 && /* @__PURE__ */ jsxs("section", { id: "trip-section-included", className: "scroll-mt-20", children: [
12743
12748
  /* @__PURE__ */ jsxs("h2", { className: "text-xl font-bold text-foreground font-heading mb-4 flex items-center gap-2", children: [
12744
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" }),
12745
- "Included"
12750
+ (_d = labels == null ? void 0 : labels.whatIsIncluded) != null ? _d : "Included"
12746
12751
  ] }),
12747
12752
  /* @__PURE__ */ jsx(Checklist, { items: included })
12748
12753
  ] }),
12749
12754
  notIncluded && notIncluded.length > 0 && /* @__PURE__ */ jsxs("section", { id: "trip-section-not-included", className: "scroll-mt-20", children: [
12750
12755
  /* @__PURE__ */ jsxs("h2", { className: "text-xl font-bold text-foreground font-heading mb-4 flex items-center gap-2", children: [
12751
12756
  /* @__PURE__ */ jsx(XIcon, { className: "h-5 w-5 text-muted-foreground" }),
12752
- "Not included"
12757
+ (_e = labels == null ? void 0 : labels.notIncluded) != null ? _e : "Not included"
12753
12758
  ] }),
12754
12759
  /* @__PURE__ */ jsx(
12755
12760
  Checklist,
@@ -12776,7 +12781,7 @@ function TripPage({
12776
12781
  children: [
12777
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: [
12778
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" }),
12779
- "When this tour operates"
12784
+ (_f = labels == null ? void 0 : labels.whenItOperates) != null ? _f : "When this tour operates"
12780
12785
  ] }) }),
12781
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 }) })
12782
12787
  ]
@@ -12791,7 +12796,7 @@ function TripPage({
12791
12796
  children: [
12792
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: [
12793
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" }),
12794
- "Accommodation"
12799
+ (_g = labels == null ? void 0 : labels.accommodation) != null ? _g : "Accommodation"
12795
12800
  ] }) }),
12796
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 }) })
12797
12802
  ]
@@ -12806,7 +12811,7 @@ function TripPage({
12806
12811
  children: [
12807
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: [
12808
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" }),
12809
- "Food"
12814
+ (_h = labels == null ? void 0 : labels.food) != null ? _h : "Food"
12810
12815
  ] }) }),
12811
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 }) })
12812
12817
  ]
@@ -12821,7 +12826,7 @@ function TripPage({
12821
12826
  children: [
12822
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: [
12823
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" }),
12824
- "Meeting point"
12829
+ (_i = labels == null ? void 0 : labels.meetingPoint) != null ? _i : "Meeting point"
12825
12830
  ] }) }),
12826
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: [
12827
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" }) }),
@@ -12843,7 +12848,7 @@ function TripPage({
12843
12848
  children: [
12844
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: [
12845
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" }),
12846
- "How to get there"
12851
+ (_j = labels == null ? void 0 : labels.howToGetThere) != null ? _j : "How to get there"
12847
12852
  ] }) }),
12848
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 }) })
12849
12854
  ]
@@ -12858,7 +12863,7 @@ function TripPage({
12858
12863
  children: [
12859
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: [
12860
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" }),
12861
- "Weather"
12866
+ (_k = labels == null ? void 0 : labels.weather) != null ? _k : "Weather"
12862
12867
  ] }) }),
12863
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 }) }) })
12864
12869
  ]
@@ -12873,7 +12878,7 @@ function TripPage({
12873
12878
  children: [
12874
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: [
12875
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" }),
12876
- "What to bring"
12881
+ (_l = labels == null ? void 0 : labels.whatToBring) != null ? _l : "What to bring"
12877
12882
  ] }) }),
12878
12883
  /* @__PURE__ */ jsx(AccordionContent, { className: "pb-6", children: /* @__PURE__ */ jsx(Checklist, { items: whatToBring, icon: /* @__PURE__ */ jsx(InfoIcon, { className: "h-4 w-4" }) }) })
12879
12884
  ]
@@ -12888,7 +12893,7 @@ function TripPage({
12888
12893
  children: [
12889
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: [
12890
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" }),
12891
- "Optional extras"
12896
+ (_m = labels == null ? void 0 : labels.optionalExtras) != null ? _m : "Optional extras"
12892
12897
  ] }) }),
12893
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 }) })
12894
12899
  ]
@@ -12903,7 +12908,7 @@ function TripPage({
12903
12908
  children: [
12904
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: [
12905
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" }),
12906
- "Terms & conditions"
12911
+ (_n = labels == null ? void 0 : labels.terms) != null ? _n : "Terms & conditions"
12907
12912
  ] }) }),
12908
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 }) })
12909
12914
  ]
@@ -12913,10 +12918,11 @@ function TripPage({
12913
12918
  }
12914
12919
  ),
12915
12920
  faqs && faqs.length > 0 && (() => {
12921
+ var _a2;
12916
12922
  const visibleFaqs = faqsExpanded ? faqs : faqs.slice(0, faqInitialCount);
12917
12923
  const hiddenCount = faqs.length - visibleFaqs.length;
12918
12924
  return /* @__PURE__ */ jsxs("section", { id: "trip-section-faq", className: "scroll-mt-20", children: [
12919
- /* @__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" }),
12920
12926
  /* @__PURE__ */ jsx(Accordion, { variant: "faq", children: visibleFaqs.map((faq, i) => /* @__PURE__ */ jsxs(AccordionItem, { value: `faq-${i}`, children: [
12921
12927
  /* @__PURE__ */ jsx(AccordionTrigger, { children: faq.question }),
12922
12928
  /* @__PURE__ */ jsx(AccordionContent, { children: faq.answer })
@@ -12947,15 +12953,15 @@ function TripPage({
12947
12953
  })(),
12948
12954
  trustpilot ? /* @__PURE__ */ jsxs("section", { id: "trip-section-reviews", className: "scroll-mt-20", children: [
12949
12955
  /* @__PURE__ */ jsx(Separator, { className: "mb-10" }),
12950
- /* @__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" }),
12951
12957
  /* @__PURE__ */ jsx(TrustpilotEmbed, { config: trustpilot })
12952
12958
  ] }) : reviews && reviews.length > 0 && /* @__PURE__ */ jsxs("section", { id: "trip-section-reviews", className: "scroll-mt-20", children: [
12953
12959
  /* @__PURE__ */ jsx(Separator, { className: "mb-10" }),
12954
- /* @__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" }),
12955
12961
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4", children: reviews.map((r, i) => {
12956
- var _a;
12962
+ var _a2;
12957
12963
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3 rounded-xl border border-border p-5", children: [
12958
- /* @__PURE__ */ jsx(Stars, { count: (_a = r.rating) != null ? _a : 5 }),
12964
+ /* @__PURE__ */ jsx(Stars, { count: (_a2 = r.rating) != null ? _a2 : 5 }),
12959
12965
  /* @__PURE__ */ jsxs("p", { className: "text-base text-foreground leading-relaxed line-clamp-4", children: [
12960
12966
  "\u201C",
12961
12967
  r.text,