@planetaexo/design-system 0.48.1 → 0.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +58 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +51 -7
- package/dist/index.d.ts +51 -7
- package/dist/index.js +59 -21
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -50,6 +50,12 @@ interface OfferOptionalItem {
|
|
|
50
50
|
decreaseQuantityLabel?: string;
|
|
51
51
|
/** aria-label para o botão de incrementar quantidade. Default: "Increase quantity". */
|
|
52
52
|
increaseQuantityLabel?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Descrição multilinha do opcional. Quando truthy, exibe ícone "info" ao lado
|
|
55
|
+
* do label que abre um Dialog com o texto integral. Texto plano — preservar
|
|
56
|
+
* `\n` via `whitespace-pre-wrap` no render.
|
|
57
|
+
*/
|
|
58
|
+
description?: string;
|
|
53
59
|
}
|
|
54
60
|
interface OfferAdventureItem {
|
|
55
61
|
id: string;
|
|
@@ -150,6 +156,15 @@ interface OfferLabels {
|
|
|
150
156
|
scheduleCallLabel?: string;
|
|
151
157
|
atCompanyLabel?: string;
|
|
152
158
|
};
|
|
159
|
+
/** Labels do modal de descrição do opcional. */
|
|
160
|
+
optionalInfo?: {
|
|
161
|
+
/** aria-label do botão-ícone gatilho. Default EN: "More info". */
|
|
162
|
+
triggerAriaLabel?: string;
|
|
163
|
+
/** Label do botão de fechar do Dialog. Default EN: "Close". */
|
|
164
|
+
closeLabel?: string;
|
|
165
|
+
/** Label da seção "Descrição" dentro do modal. Default EN: "Description". */
|
|
166
|
+
descriptionLabel?: string;
|
|
167
|
+
};
|
|
153
168
|
/**
|
|
154
169
|
* Strings do BookingWizard interno (renderizado quando `checkoutSlot` é
|
|
155
170
|
* undefined — em produção do bookings esse caminho é ofuscado, mas
|
|
@@ -2571,6 +2586,18 @@ interface TripCardProps {
|
|
|
2571
2586
|
}
|
|
2572
2587
|
declare function TripCard(props: TripCardProps): react_jsx_runtime.JSX.Element;
|
|
2573
2588
|
|
|
2589
|
+
/**
|
|
2590
|
+
* Rich configuration for the overlay `<SiteHeader>` rendered inside the
|
|
2591
|
+
* hero. Accepts everything `<SiteHeader>` accepts EXCEPT `position` and
|
|
2592
|
+
* `className`: position is hardcoded to `"overlay"` so the header scrolls
|
|
2593
|
+
* away with the hero, and the hero composes its own layout around it.
|
|
2594
|
+
*
|
|
2595
|
+
* Use this shape (instead of `boolean | SiteHeaderLink[]`) when you need
|
|
2596
|
+
* more than just a links array — e.g. to wire the language switcher
|
|
2597
|
+
* (`languages` + `currentLanguage` + `onLanguageChange`) or override the
|
|
2598
|
+
* logo / variant from a consuming page.
|
|
2599
|
+
*/
|
|
2600
|
+
type TripSiteHeaderConfig = Omit<SiteHeaderProps, "position" | "className">;
|
|
2574
2601
|
interface TripDuration {
|
|
2575
2602
|
/** Total number of days */
|
|
2576
2603
|
days: number;
|
|
@@ -2606,8 +2633,15 @@ interface TripHeaderProps {
|
|
|
2606
2633
|
* row. Use it to slot in a small Trustpilot widget, sponsor badge, etc.
|
|
2607
2634
|
*/
|
|
2608
2635
|
belowMeta?: React.ReactNode;
|
|
2609
|
-
/**
|
|
2610
|
-
|
|
2636
|
+
/**
|
|
2637
|
+
* Render an overlay `<SiteHeader>` inside the hero. Accepts:
|
|
2638
|
+
* - `boolean` — minimal: just renders the header with the default
|
|
2639
|
+
* link list (used by the styleguide showcase).
|
|
2640
|
+
* - `SiteHeaderLink[]` — a custom links array (existing simple usage).
|
|
2641
|
+
* - {@link TripSiteHeaderConfig} — full SiteHeaderProps minus
|
|
2642
|
+
* `position`/`className`, e.g. to wire languages + onLanguageChange.
|
|
2643
|
+
*/
|
|
2644
|
+
siteHeader?: boolean | SiteHeaderLink[] | TripSiteHeaderConfig;
|
|
2611
2645
|
/** Alinhado ao TripPage — reservado para densidade / hero v2 */
|
|
2612
2646
|
uiVariant?: "v1" | "v2";
|
|
2613
2647
|
className?: string;
|
|
@@ -2821,8 +2855,16 @@ interface TripPageProps {
|
|
|
2821
2855
|
priceInfo?: React.ReactNode;
|
|
2822
2856
|
onBook?: () => void;
|
|
2823
2857
|
bookLabel?: string;
|
|
2824
|
-
/**
|
|
2825
|
-
|
|
2858
|
+
/**
|
|
2859
|
+
* Render an overlay SiteHeader inside the hero. Accepts:
|
|
2860
|
+
* - `boolean` — minimal: default link list (styleguide usage).
|
|
2861
|
+
* - `SiteHeaderLink[]` — custom links only.
|
|
2862
|
+
* - {@link TripSiteHeaderConfig} — full SiteHeader config minus
|
|
2863
|
+
* `position`/`className`. Use this to wire the language switcher
|
|
2864
|
+
* (`languages` + `currentLanguage` + `onLanguageChange`) or to
|
|
2865
|
+
* override variant / logo from a consuming page.
|
|
2866
|
+
*/
|
|
2867
|
+
siteHeader?: boolean | SiteHeaderLink[] | TripSiteHeaderConfig;
|
|
2826
2868
|
/** Preset de layout (ilha WP / styleguide). @default v1 */
|
|
2827
2869
|
uiVariant?: "v1" | "v2";
|
|
2828
2870
|
/** Feature flags para ramos de UI sem duplicar componentes. */
|
|
@@ -2874,12 +2916,14 @@ declare function Toast({ message, variant, onClose, duration, className, }: Toas
|
|
|
2874
2916
|
|
|
2875
2917
|
declare function Dialog({ ...props }: Dialog$1.Root.Props): react_jsx_runtime.JSX.Element;
|
|
2876
2918
|
declare function DialogClose({ ...props }: Dialog$1.Close.Props): react_jsx_runtime.JSX.Element;
|
|
2877
|
-
declare function DialogContent({ className, children, showCloseButton, ...props }: Dialog$1.Popup.Props & {
|
|
2919
|
+
declare function DialogContent({ className, children, showCloseButton, closeLabel, ...props }: Dialog$1.Popup.Props & {
|
|
2878
2920
|
showCloseButton?: boolean;
|
|
2921
|
+
closeLabel?: string;
|
|
2879
2922
|
}): react_jsx_runtime.JSX.Element;
|
|
2880
2923
|
declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
2881
|
-
declare function DialogFooter({ className, showCloseButton, children, ...props }: React.ComponentProps<"div"> & {
|
|
2924
|
+
declare function DialogFooter({ className, showCloseButton, closeLabel, children, ...props }: React.ComponentProps<"div"> & {
|
|
2882
2925
|
showCloseButton?: boolean;
|
|
2926
|
+
closeLabel?: string;
|
|
2883
2927
|
}): react_jsx_runtime.JSX.Element;
|
|
2884
2928
|
declare function DialogTitle({ className, ...props }: Dialog$1.Title.Props): react_jsx_runtime.JSX.Element;
|
|
2885
2929
|
declare function DialogDescription({ className, ...props }: Dialog$1.Description.Props): react_jsx_runtime.JSX.Element;
|
|
@@ -3325,4 +3369,4 @@ declare function LeadCapturePopup({ config: _config, }: {
|
|
|
3325
3369
|
config: LeadCapturePopupConfig;
|
|
3326
3370
|
}): react_jsx_runtime.JSX.Element | null;
|
|
3327
3371
|
|
|
3328
|
-
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, formatCpf, getStripeAppearance, itineraryDaySpecIcons, stripeAppearance, validateCpf, wrapEmailHtml };
|
|
3372
|
+
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 TripSiteHeaderConfig, type TripTrustpilotWidget, TrustpilotEmbed, type TrustpilotWidgetConfig, buttonVariants, cn, emailTokens, formatCpf, getStripeAppearance, itineraryDaySpecIcons, stripeAppearance, validateCpf, wrapEmailHtml };
|
package/dist/index.d.ts
CHANGED
|
@@ -50,6 +50,12 @@ interface OfferOptionalItem {
|
|
|
50
50
|
decreaseQuantityLabel?: string;
|
|
51
51
|
/** aria-label para o botão de incrementar quantidade. Default: "Increase quantity". */
|
|
52
52
|
increaseQuantityLabel?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Descrição multilinha do opcional. Quando truthy, exibe ícone "info" ao lado
|
|
55
|
+
* do label que abre um Dialog com o texto integral. Texto plano — preservar
|
|
56
|
+
* `\n` via `whitespace-pre-wrap` no render.
|
|
57
|
+
*/
|
|
58
|
+
description?: string;
|
|
53
59
|
}
|
|
54
60
|
interface OfferAdventureItem {
|
|
55
61
|
id: string;
|
|
@@ -150,6 +156,15 @@ interface OfferLabels {
|
|
|
150
156
|
scheduleCallLabel?: string;
|
|
151
157
|
atCompanyLabel?: string;
|
|
152
158
|
};
|
|
159
|
+
/** Labels do modal de descrição do opcional. */
|
|
160
|
+
optionalInfo?: {
|
|
161
|
+
/** aria-label do botão-ícone gatilho. Default EN: "More info". */
|
|
162
|
+
triggerAriaLabel?: string;
|
|
163
|
+
/** Label do botão de fechar do Dialog. Default EN: "Close". */
|
|
164
|
+
closeLabel?: string;
|
|
165
|
+
/** Label da seção "Descrição" dentro do modal. Default EN: "Description". */
|
|
166
|
+
descriptionLabel?: string;
|
|
167
|
+
};
|
|
153
168
|
/**
|
|
154
169
|
* Strings do BookingWizard interno (renderizado quando `checkoutSlot` é
|
|
155
170
|
* undefined — em produção do bookings esse caminho é ofuscado, mas
|
|
@@ -2571,6 +2586,18 @@ interface TripCardProps {
|
|
|
2571
2586
|
}
|
|
2572
2587
|
declare function TripCard(props: TripCardProps): react_jsx_runtime.JSX.Element;
|
|
2573
2588
|
|
|
2589
|
+
/**
|
|
2590
|
+
* Rich configuration for the overlay `<SiteHeader>` rendered inside the
|
|
2591
|
+
* hero. Accepts everything `<SiteHeader>` accepts EXCEPT `position` and
|
|
2592
|
+
* `className`: position is hardcoded to `"overlay"` so the header scrolls
|
|
2593
|
+
* away with the hero, and the hero composes its own layout around it.
|
|
2594
|
+
*
|
|
2595
|
+
* Use this shape (instead of `boolean | SiteHeaderLink[]`) when you need
|
|
2596
|
+
* more than just a links array — e.g. to wire the language switcher
|
|
2597
|
+
* (`languages` + `currentLanguage` + `onLanguageChange`) or override the
|
|
2598
|
+
* logo / variant from a consuming page.
|
|
2599
|
+
*/
|
|
2600
|
+
type TripSiteHeaderConfig = Omit<SiteHeaderProps, "position" | "className">;
|
|
2574
2601
|
interface TripDuration {
|
|
2575
2602
|
/** Total number of days */
|
|
2576
2603
|
days: number;
|
|
@@ -2606,8 +2633,15 @@ interface TripHeaderProps {
|
|
|
2606
2633
|
* row. Use it to slot in a small Trustpilot widget, sponsor badge, etc.
|
|
2607
2634
|
*/
|
|
2608
2635
|
belowMeta?: React.ReactNode;
|
|
2609
|
-
/**
|
|
2610
|
-
|
|
2636
|
+
/**
|
|
2637
|
+
* Render an overlay `<SiteHeader>` inside the hero. Accepts:
|
|
2638
|
+
* - `boolean` — minimal: just renders the header with the default
|
|
2639
|
+
* link list (used by the styleguide showcase).
|
|
2640
|
+
* - `SiteHeaderLink[]` — a custom links array (existing simple usage).
|
|
2641
|
+
* - {@link TripSiteHeaderConfig} — full SiteHeaderProps minus
|
|
2642
|
+
* `position`/`className`, e.g. to wire languages + onLanguageChange.
|
|
2643
|
+
*/
|
|
2644
|
+
siteHeader?: boolean | SiteHeaderLink[] | TripSiteHeaderConfig;
|
|
2611
2645
|
/** Alinhado ao TripPage — reservado para densidade / hero v2 */
|
|
2612
2646
|
uiVariant?: "v1" | "v2";
|
|
2613
2647
|
className?: string;
|
|
@@ -2821,8 +2855,16 @@ interface TripPageProps {
|
|
|
2821
2855
|
priceInfo?: React.ReactNode;
|
|
2822
2856
|
onBook?: () => void;
|
|
2823
2857
|
bookLabel?: string;
|
|
2824
|
-
/**
|
|
2825
|
-
|
|
2858
|
+
/**
|
|
2859
|
+
* Render an overlay SiteHeader inside the hero. Accepts:
|
|
2860
|
+
* - `boolean` — minimal: default link list (styleguide usage).
|
|
2861
|
+
* - `SiteHeaderLink[]` — custom links only.
|
|
2862
|
+
* - {@link TripSiteHeaderConfig} — full SiteHeader config minus
|
|
2863
|
+
* `position`/`className`. Use this to wire the language switcher
|
|
2864
|
+
* (`languages` + `currentLanguage` + `onLanguageChange`) or to
|
|
2865
|
+
* override variant / logo from a consuming page.
|
|
2866
|
+
*/
|
|
2867
|
+
siteHeader?: boolean | SiteHeaderLink[] | TripSiteHeaderConfig;
|
|
2826
2868
|
/** Preset de layout (ilha WP / styleguide). @default v1 */
|
|
2827
2869
|
uiVariant?: "v1" | "v2";
|
|
2828
2870
|
/** Feature flags para ramos de UI sem duplicar componentes. */
|
|
@@ -2874,12 +2916,14 @@ declare function Toast({ message, variant, onClose, duration, className, }: Toas
|
|
|
2874
2916
|
|
|
2875
2917
|
declare function Dialog({ ...props }: Dialog$1.Root.Props): react_jsx_runtime.JSX.Element;
|
|
2876
2918
|
declare function DialogClose({ ...props }: Dialog$1.Close.Props): react_jsx_runtime.JSX.Element;
|
|
2877
|
-
declare function DialogContent({ className, children, showCloseButton, ...props }: Dialog$1.Popup.Props & {
|
|
2919
|
+
declare function DialogContent({ className, children, showCloseButton, closeLabel, ...props }: Dialog$1.Popup.Props & {
|
|
2878
2920
|
showCloseButton?: boolean;
|
|
2921
|
+
closeLabel?: string;
|
|
2879
2922
|
}): react_jsx_runtime.JSX.Element;
|
|
2880
2923
|
declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
2881
|
-
declare function DialogFooter({ className, showCloseButton, children, ...props }: React.ComponentProps<"div"> & {
|
|
2924
|
+
declare function DialogFooter({ className, showCloseButton, closeLabel, children, ...props }: React.ComponentProps<"div"> & {
|
|
2882
2925
|
showCloseButton?: boolean;
|
|
2926
|
+
closeLabel?: string;
|
|
2883
2927
|
}): react_jsx_runtime.JSX.Element;
|
|
2884
2928
|
declare function DialogTitle({ className, ...props }: Dialog$1.Title.Props): react_jsx_runtime.JSX.Element;
|
|
2885
2929
|
declare function DialogDescription({ className, ...props }: Dialog$1.Description.Props): react_jsx_runtime.JSX.Element;
|
|
@@ -3325,4 +3369,4 @@ declare function LeadCapturePopup({ config: _config, }: {
|
|
|
3325
3369
|
config: LeadCapturePopupConfig;
|
|
3326
3370
|
}): react_jsx_runtime.JSX.Element | null;
|
|
3327
3371
|
|
|
3328
|
-
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, formatCpf, getStripeAppearance, itineraryDaySpecIcons, stripeAppearance, validateCpf, wrapEmailHtml };
|
|
3372
|
+
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 TripSiteHeaderConfig, type TripTrustpilotWidget, TrustpilotEmbed, type TrustpilotWidgetConfig, buttonVariants, cn, emailTokens, formatCpf, getStripeAppearance, itineraryDaySpecIcons, stripeAppearance, validateCpf, wrapEmailHtml };
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { cva } from 'class-variance-authority';
|
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
7
|
-
import { XIcon, ChevronDownIcon, CalendarIcon, SearchIcon, ChevronRightIcon, ArrowLeftIcon, CheckCircle2Icon, MapIcon, LogOutIcon, UsersIcon, CreditCardIcon, AlertCircleIcon, MinusIcon, PlusIcon, CircleCheckIcon, SlidersHorizontalIcon, ChevronLeftIcon, HomeIcon, SailboatIcon, CarIcon, WavesIcon, FootprintsIcon, InfoIcon, ClockIcon, CheckIcon, ChevronUpIcon, MenuIcon, UserIcon, SunIcon, MoonIcon, MapPinIcon, PackageIcon, BedDoubleIcon, UtensilsIcon, CompassIcon, BackpackIcon, CherryIcon, ReceiptIcon, Loader2Icon, SendIcon, CheckCircleIcon, MailIcon, PhoneIcon, MessageCircleIcon, UserPlusIcon, ExternalLinkIcon, CopyIcon, PencilIcon, Trash2Icon, UserMinusIcon, AlertTriangleIcon, ZoomInIcon, StarIcon, TwitterIcon, YoutubeIcon, LinkedinIcon, InstagramIcon, FacebookIcon, ArrowRightIcon, LayoutGridIcon } from 'lucide-react';
|
|
7
|
+
import { XIcon, ChevronDownIcon, CalendarIcon, SearchIcon, ChevronRightIcon, ArrowLeftIcon, CheckCircle2Icon, MapIcon, LogOutIcon, UsersIcon, CreditCardIcon, AlertCircleIcon, MinusIcon, PlusIcon, CircleCheckIcon, SlidersHorizontalIcon, ChevronLeftIcon, HomeIcon, SailboatIcon, CarIcon, WavesIcon, FootprintsIcon, InfoIcon, ClockIcon, CheckIcon, ChevronUpIcon, MenuIcon, UserIcon, SunIcon, MoonIcon, MapPinIcon, PackageIcon, BedDoubleIcon, UtensilsIcon, CompassIcon, BackpackIcon, CherryIcon, ReceiptIcon, Loader2Icon, SendIcon, CheckCircleIcon, Info, MailIcon, PhoneIcon, MessageCircleIcon, UserPlusIcon, ExternalLinkIcon, CopyIcon, PencilIcon, Trash2Icon, UserMinusIcon, AlertTriangleIcon, ZoomInIcon, StarIcon, TwitterIcon, YoutubeIcon, LinkedinIcon, InstagramIcon, FacebookIcon, ArrowRightIcon, LayoutGridIcon } from 'lucide-react';
|
|
8
8
|
import { Separator as Separator$1 } from '@base-ui/react/separator';
|
|
9
9
|
import { Dialog as Dialog$1 } from '@base-ui/react/dialog';
|
|
10
10
|
import { Button as Button$1 } from '@base-ui/react/button';
|
|
@@ -198,11 +198,13 @@ function DialogContent(_a) {
|
|
|
198
198
|
var _b = _a, {
|
|
199
199
|
className,
|
|
200
200
|
children,
|
|
201
|
-
showCloseButton = true
|
|
201
|
+
showCloseButton = true,
|
|
202
|
+
closeLabel = "Close"
|
|
202
203
|
} = _b, props = __objRest(_b, [
|
|
203
204
|
"className",
|
|
204
205
|
"children",
|
|
205
|
-
"showCloseButton"
|
|
206
|
+
"showCloseButton",
|
|
207
|
+
"closeLabel"
|
|
206
208
|
]);
|
|
207
209
|
return /* @__PURE__ */ jsxs(DialogPortal, { children: [
|
|
208
210
|
/* @__PURE__ */ jsx(DialogOverlay, {}),
|
|
@@ -225,7 +227,7 @@ function DialogContent(_a) {
|
|
|
225
227
|
Button2,
|
|
226
228
|
{
|
|
227
229
|
variant: "ghost",
|
|
228
|
-
className: "absolute top-2 right-2",
|
|
230
|
+
className: "absolute top-2 right-2 cursor-pointer",
|
|
229
231
|
size: "icon-sm"
|
|
230
232
|
}
|
|
231
233
|
),
|
|
@@ -234,7 +236,7 @@ function DialogContent(_a) {
|
|
|
234
236
|
XIcon,
|
|
235
237
|
{}
|
|
236
238
|
),
|
|
237
|
-
/* @__PURE__ */ jsx("span", { className: "sr-only", children:
|
|
239
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: closeLabel })
|
|
238
240
|
]
|
|
239
241
|
}
|
|
240
242
|
)
|
|
@@ -257,10 +259,12 @@ function DialogFooter(_a) {
|
|
|
257
259
|
var _b = _a, {
|
|
258
260
|
className,
|
|
259
261
|
showCloseButton = false,
|
|
262
|
+
closeLabel = "Close",
|
|
260
263
|
children
|
|
261
264
|
} = _b, props = __objRest(_b, [
|
|
262
265
|
"className",
|
|
263
266
|
"showCloseButton",
|
|
267
|
+
"closeLabel",
|
|
264
268
|
"children"
|
|
265
269
|
]);
|
|
266
270
|
return /* @__PURE__ */ jsxs(
|
|
@@ -274,7 +278,7 @@ function DialogFooter(_a) {
|
|
|
274
278
|
}, props), {
|
|
275
279
|
children: [
|
|
276
280
|
children,
|
|
277
|
-
showCloseButton && /* @__PURE__ */ jsx(Dialog$1.Close, { render: /* @__PURE__ */ jsx(Button2, { variant: "outline" }), children:
|
|
281
|
+
showCloseButton && /* @__PURE__ */ jsx(Dialog$1.Close, { render: /* @__PURE__ */ jsx(Button2, { variant: "outline" }), children: closeLabel })
|
|
278
282
|
]
|
|
279
283
|
})
|
|
280
284
|
);
|
|
@@ -1270,11 +1274,13 @@ function AdventureCard({
|
|
|
1270
1274
|
labels,
|
|
1271
1275
|
interactionsDisabled
|
|
1272
1276
|
}) {
|
|
1273
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
|
|
1277
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
|
|
1274
1278
|
const isControlled = (_b = (_a = adventure.optionals) == null ? void 0 : _a.some((o) => o.onCheckedChange !== void 0)) != null ? _b : false;
|
|
1275
1279
|
const [checkedInternal, setCheckedInternal] = React28.useState(
|
|
1276
1280
|
new Set((_d = (_c = adventure.optionals) == null ? void 0 : _c.filter((o) => o.defaultChecked).map((o) => o.id)) != null ? _d : [])
|
|
1277
1281
|
);
|
|
1282
|
+
const [openDescriptionId, setOpenDescriptionId] = React28.useState(null);
|
|
1283
|
+
const openDescriptionOptional = openDescriptionId ? (_e = adventure.optionals) == null ? void 0 : _e.find((o) => o.id === openDescriptionId) : void 0;
|
|
1278
1284
|
const isChecked = (opt) => {
|
|
1279
1285
|
var _a2;
|
|
1280
1286
|
return isControlled ? (_a2 = opt.checked) != null ? _a2 : false : checkedInternal.has(opt.id);
|
|
@@ -1296,7 +1302,7 @@ function AdventureCard({
|
|
|
1296
1302
|
"img",
|
|
1297
1303
|
{
|
|
1298
1304
|
src: adventure.image,
|
|
1299
|
-
alt: (
|
|
1305
|
+
alt: (_f = adventure.imageAlt) != null ? _f : adventure.title,
|
|
1300
1306
|
className: "w-full h-full object-cover"
|
|
1301
1307
|
}
|
|
1302
1308
|
) }),
|
|
@@ -1311,7 +1317,7 @@ function AdventureCard({
|
|
|
1311
1317
|
className: "flex items-center gap-1.5 rounded-full border border-border px-3 py-1 text-xs text-muted-foreground font-ui hover:border-destructive hover:text-destructive transition-colors",
|
|
1312
1318
|
children: [
|
|
1313
1319
|
/* @__PURE__ */ jsx(XIcon, { className: "w-3 h-3" }),
|
|
1314
|
-
(
|
|
1320
|
+
(_g = labels == null ? void 0 : labels.remove) != null ? _g : "Remove"
|
|
1315
1321
|
]
|
|
1316
1322
|
}
|
|
1317
1323
|
)
|
|
@@ -1328,9 +1334,9 @@ function AdventureCard({
|
|
|
1328
1334
|
adventure.location
|
|
1329
1335
|
] }),
|
|
1330
1336
|
adventure.optionals && adventure.optionals.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mt-2 rounded-xl border border-border bg-muted/30 p-4 flex flex-col gap-3", children: [
|
|
1331
|
-
/* @__PURE__ */ jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest", children: (
|
|
1337
|
+
/* @__PURE__ */ jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest", children: (_h = labels == null ? void 0 : labels.availableOptionals) != null ? _h : "Available optionals" }),
|
|
1332
1338
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2", children: adventure.optionals.map((opt) => {
|
|
1333
|
-
var _a2, _b2, _c2, _d2, _e2;
|
|
1339
|
+
var _a2, _b2, _c2, _d2, _e2, _f2, _g2, _h2;
|
|
1334
1340
|
const checked = isChecked(opt);
|
|
1335
1341
|
const minQty = (_a2 = opt.minQuantity) != null ? _a2 : 1;
|
|
1336
1342
|
const maxQty = (_b2 = opt.maxQuantity) != null ? _b2 : 50;
|
|
@@ -1338,6 +1344,7 @@ function AdventureCard({
|
|
|
1338
1344
|
const currentQty = (_c2 = opt.quantity) != null ? _c2 : minQty;
|
|
1339
1345
|
const canDec = currentQty > minQty;
|
|
1340
1346
|
const canInc = currentQty < maxQty;
|
|
1347
|
+
const hasDescription = !!((_d2 = opt.description) == null ? void 0 : _d2.trim());
|
|
1341
1348
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-wrap items-center gap-x-3 gap-y-1.5", interactionsDisabled && "opacity-60"), children: [
|
|
1342
1349
|
/* @__PURE__ */ jsxs("label", { className: cn("flex items-center gap-3 group", interactionsDisabled ? "cursor-not-allowed" : "cursor-pointer"), children: [
|
|
1343
1350
|
/* @__PURE__ */ jsx(
|
|
@@ -1363,6 +1370,19 @@ function AdventureCard({
|
|
|
1363
1370
|
] })
|
|
1364
1371
|
] })
|
|
1365
1372
|
] }),
|
|
1373
|
+
hasDescription && /* @__PURE__ */ jsx(
|
|
1374
|
+
"button",
|
|
1375
|
+
{
|
|
1376
|
+
type: "button",
|
|
1377
|
+
onClick: (e) => {
|
|
1378
|
+
e.stopPropagation();
|
|
1379
|
+
setOpenDescriptionId(opt.id);
|
|
1380
|
+
},
|
|
1381
|
+
"aria-label": (_f2 = (_e2 = labels == null ? void 0 : labels.optionalInfo) == null ? void 0 : _e2.triggerAriaLabel) != null ? _f2 : "More info",
|
|
1382
|
+
className: "inline-flex cursor-pointer items-center justify-center text-muted-foreground hover:text-primary transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded",
|
|
1383
|
+
children: /* @__PURE__ */ jsx(Info, { className: "w-4 h-4" })
|
|
1384
|
+
}
|
|
1385
|
+
),
|
|
1366
1386
|
showStepper && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 ml-auto", children: [
|
|
1367
1387
|
/* @__PURE__ */ jsx(
|
|
1368
1388
|
"button",
|
|
@@ -1373,7 +1393,7 @@ function AdventureCard({
|
|
|
1373
1393
|
return !interactionsDisabled && canDec && ((_a3 = opt.onQuantityChange) == null ? void 0 : _a3.call(opt, opt.id, currentQty - 1));
|
|
1374
1394
|
},
|
|
1375
1395
|
disabled: interactionsDisabled || !canDec,
|
|
1376
|
-
"aria-label": (
|
|
1396
|
+
"aria-label": (_g2 = opt.decreaseQuantityLabel) != null ? _g2 : "Decrease quantity",
|
|
1377
1397
|
className: cn(
|
|
1378
1398
|
"h-7 w-7 rounded border border-border flex items-center justify-center text-sm font-semibold",
|
|
1379
1399
|
"transition-colors",
|
|
@@ -1392,7 +1412,7 @@ function AdventureCard({
|
|
|
1392
1412
|
return !interactionsDisabled && canInc && ((_a3 = opt.onQuantityChange) == null ? void 0 : _a3.call(opt, opt.id, currentQty + 1));
|
|
1393
1413
|
},
|
|
1394
1414
|
disabled: interactionsDisabled || !canInc,
|
|
1395
|
-
"aria-label": (
|
|
1415
|
+
"aria-label": (_h2 = opt.increaseQuantityLabel) != null ? _h2 : "Increase quantity",
|
|
1396
1416
|
className: cn(
|
|
1397
1417
|
"h-7 w-7 rounded border border-border flex items-center justify-center text-sm font-semibold",
|
|
1398
1418
|
"transition-colors",
|
|
@@ -1407,12 +1427,31 @@ function AdventureCard({
|
|
|
1407
1427
|
opt.scheduledAtLabel
|
|
1408
1428
|
] })
|
|
1409
1429
|
] }, opt.id);
|
|
1410
|
-
}) })
|
|
1430
|
+
}) }),
|
|
1431
|
+
/* @__PURE__ */ jsx(
|
|
1432
|
+
Dialog,
|
|
1433
|
+
{
|
|
1434
|
+
open: openDescriptionId !== null,
|
|
1435
|
+
onOpenChange: (open) => !open && setOpenDescriptionId(null),
|
|
1436
|
+
children: /* @__PURE__ */ jsxs(DialogContent, { className: "max-w-lg max-h-[85vh] overflow-y-auto p-6 sm:max-w-lg", children: [
|
|
1437
|
+
/* @__PURE__ */ jsxs(DialogHeader, { className: "gap-3 pr-8", children: [
|
|
1438
|
+
/* @__PURE__ */ jsx(DialogTitle, { className: "font-heading text-xl font-bold text-foreground leading-snug", children: (_i = openDescriptionOptional == null ? void 0 : openDescriptionOptional.label) != null ? _i : "" }),
|
|
1439
|
+
(openDescriptionOptional == null ? void 0 : openDescriptionOptional.pricePerPerson) && /* @__PURE__ */ jsx("span", { className: "inline-flex w-fit items-center rounded-full bg-primary/10 px-3 py-1 text-sm font-semibold text-primary font-heading", children: openDescriptionOptional.pricePerPerson })
|
|
1440
|
+
] }),
|
|
1441
|
+
/* @__PURE__ */ jsx(Separator, {}),
|
|
1442
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
1443
|
+
/* @__PURE__ */ jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest", children: (_k = (_j = labels == null ? void 0 : labels.optionalInfo) == null ? void 0 : _j.descriptionLabel) != null ? _k : "Description" }),
|
|
1444
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm font-sans text-foreground leading-relaxed whitespace-pre-wrap", children: (_l = openDescriptionOptional == null ? void 0 : openDescriptionOptional.description) != null ? _l : "" })
|
|
1445
|
+
] }),
|
|
1446
|
+
/* @__PURE__ */ jsx("div", { className: "mt-2 flex justify-end", children: /* @__PURE__ */ jsx(DialogClose, { className: "cursor-pointer px-4 py-2 rounded-lg bg-primary text-primary-foreground text-sm font-heading font-semibold hover:bg-primary/90 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: (_n = (_m = labels == null ? void 0 : labels.optionalInfo) == null ? void 0 : _m.closeLabel) != null ? _n : "Close" }) })
|
|
1447
|
+
] })
|
|
1448
|
+
}
|
|
1449
|
+
)
|
|
1411
1450
|
] }),
|
|
1412
1451
|
(adventure.description || adventure.detailsSlot) && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1413
1452
|
/* @__PURE__ */ jsx(Separator, { className: "my-1" }),
|
|
1414
1453
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
1415
|
-
/* @__PURE__ */ jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-3", children: (
|
|
1454
|
+
/* @__PURE__ */ jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-3", children: (_o = adventure.itineraryLabel) != null ? _o : "Details" }),
|
|
1416
1455
|
adventure.description && !adventure.detailsSlot && /* @__PURE__ */ jsx("p", { className: "text-base text-foreground/80 leading-snug font-sans", children: adventure.description }),
|
|
1417
1456
|
adventure.detailsSlot && /* @__PURE__ */ jsx("div", { className: cn(
|
|
1418
1457
|
"text-foreground",
|
|
@@ -1438,21 +1477,21 @@ function AdventureCard({
|
|
|
1438
1477
|
] })
|
|
1439
1478
|
] }),
|
|
1440
1479
|
adventure.included && adventure.included.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
|
|
1441
|
-
/* @__PURE__ */ jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (
|
|
1480
|
+
/* @__PURE__ */ jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (_p = adventure.includedLabel) != null ? _p : "What's included" }),
|
|
1442
1481
|
/* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-1.5", children: adventure.included.map((item, i) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2 text-base text-foreground/80 font-sans", children: [
|
|
1443
1482
|
/* @__PURE__ */ jsx(CheckIcon, { className: "w-4 h-4 text-primary shrink-0 mt-1" }),
|
|
1444
1483
|
item
|
|
1445
1484
|
] }, i)) })
|
|
1446
1485
|
] }),
|
|
1447
1486
|
adventure.notIncluded && adventure.notIncluded.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
|
|
1448
|
-
/* @__PURE__ */ jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (
|
|
1487
|
+
/* @__PURE__ */ jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (_q = adventure.notIncludedLabel) != null ? _q : "What's not included" }),
|
|
1449
1488
|
/* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-1.5", children: adventure.notIncluded.map((item, i) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2 text-base text-foreground/80 font-sans", children: [
|
|
1450
1489
|
/* @__PURE__ */ jsx(XIcon, { className: "w-4 h-4 text-destructive shrink-0 mt-1" }),
|
|
1451
1490
|
item
|
|
1452
1491
|
] }, i)) })
|
|
1453
1492
|
] }),
|
|
1454
1493
|
adventure.cancellationPolicy && adventure.cancellationPolicy.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
|
|
1455
|
-
/* @__PURE__ */ jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (
|
|
1494
|
+
/* @__PURE__ */ jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (_r = adventure.cancellationPolicyLabel) != null ? _r : "Cancellation policy" }),
|
|
1456
1495
|
/* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-1.5", children: adventure.cancellationPolicy.map((item, i) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2 text-base text-muted-foreground font-sans", children: [
|
|
1457
1496
|
/* @__PURE__ */ jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-primary shrink-0 mt-2.5" }),
|
|
1458
1497
|
item
|
|
@@ -12025,10 +12064,9 @@ function TripHeader({
|
|
|
12025
12064
|
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-black/85 via-black/20 to-transparent" }),
|
|
12026
12065
|
siteHeader && /* @__PURE__ */ jsx(
|
|
12027
12066
|
SiteHeader,
|
|
12028
|
-
{
|
|
12029
|
-
links: Array.isArray(siteHeader) ? siteHeader : void 0,
|
|
12067
|
+
__spreadProps(__spreadValues({}, Array.isArray(siteHeader) ? { links: siteHeader } : typeof siteHeader === "object" ? siteHeader : {}), {
|
|
12030
12068
|
position: "overlay"
|
|
12031
|
-
}
|
|
12069
|
+
})
|
|
12032
12070
|
),
|
|
12033
12071
|
!videoUrl && showCarousel && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
12034
12072
|
/* @__PURE__ */ jsx(
|