@planetaexo/design-system 0.15.0 → 0.16.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.d.cts CHANGED
@@ -140,6 +140,16 @@ interface OfferLabels {
140
140
  bookingConfirmedMessage?: React.ReactNode | ((args: {
141
141
  email: string;
142
142
  }) => React.ReactNode);
143
+ /**
144
+ * Labels do mini agent card (botões de WhatsApp / Email / Schedule a call e
145
+ * preposição "at {company}" no template de contato).
146
+ */
147
+ agentContact?: {
148
+ whatsappLabel?: string;
149
+ emailLabel?: string;
150
+ scheduleCallLabel?: string;
151
+ atCompanyLabel?: string;
152
+ };
143
153
  /**
144
154
  * Strings do BookingWizard interno (renderizado quando `checkoutSlot` é
145
155
  * undefined — em produção do bookings esse caminho é ofuscado, mas
@@ -671,6 +681,8 @@ interface ConfirmationLineItem {
671
681
  label: string;
672
682
  price: string;
673
683
  isDiscount?: boolean;
684
+ /** Tipo lógico do item (rate = tarifa adultos/crianças, optional = opcional, discount = desconto). Usado pelo mapper backend para distinguir agrupamentos. */
685
+ type?: "rate" | "optional" | "discount";
674
686
  }
675
687
  interface ConfirmationTraveller {
676
688
  id: string;
@@ -680,11 +692,23 @@ interface ConfirmationTraveller {
680
692
  }
681
693
  interface ConfirmationAdventure {
682
694
  id: string;
695
+ /** Texto do pill verde acima do título da aventura (legado: usado pelo mapper backend para fallbacks `partnerBookingRef`). */
683
696
  reference?: string;
697
+ /** Código canônico da Aventura (Adventure.code do catálogo). Quando informado, tem prioridade sobre `reference` no pill verde. */
698
+ code?: string;
684
699
  image: string;
685
700
  imageAlt?: string;
686
701
  title: string;
702
+ /**
703
+ * Slot reaproveitado para renderizar o nome do destino na linha bússola 🧭.
704
+ * Quando `destinationName` estiver presente, ele tem prioridade sobre `partner`
705
+ * (mapper backend popula via Adventure.adventureDestinations[].destination.name).
706
+ * Mantido para compat com chamadas antigas — não remover.
707
+ */
687
708
  partner?: string;
709
+ /** Nome do destino (Adventure.adventureDestinations[].destination.name). Quando presente, prioriza este valor sobre `partner` na linha 🧭. */
710
+ destinationName?: string;
711
+ /** Slot legado de endereço/localização (linha 📍). Quando ausente E `destinationName` presente, a linha 📍 some. Mantido em paralelo para compat backward. */
688
712
  location?: string;
689
713
  dateFrom: string;
690
714
  dateTo: string;
@@ -794,6 +818,63 @@ interface BookingConfirmationEmailProps {
794
818
  }
795
819
  declare function BookingConfirmationEmail({ recipientName, addTravellersUrl, logoUrl, bookingNumber, activity, adventure, startingDate, numberOfPeople, host, labels, className, nextSteps, nextStepsImportant, directBookingLinkLabel, }: BookingConfirmationEmailProps): react_jsx_runtime.JSX.Element;
796
820
 
821
+ interface PaymentReceiptEmailLabels {
822
+ logoAlt?: string;
823
+ greeting?: (name: string) => string;
824
+ receiptHeading?: string;
825
+ bookingNumberLabel?: string;
826
+ paymentMethodLabel?: string;
827
+ paymentDateLabel?: string;
828
+ amountLabel?: string;
829
+ chargedAmountLabel?: string;
830
+ interestSurchargeLabel?: string;
831
+ statusLabel?: string;
832
+ travellersLabel?: string;
833
+ summaryHeading?: string;
834
+ totalOrderLabel?: string;
835
+ totalPaidLabel?: string;
836
+ remainingBalanceLabel?: string;
837
+ balanceDueDateLabel?: string;
838
+ paidInFullMessage?: string;
839
+ closingMessage?: string;
840
+ teamSignature?: string;
841
+ }
842
+ interface PaymentReceiptEmailProps {
843
+ /** Nome do destinatário (ex.: "Maria"). */
844
+ recipientName: string;
845
+ /** Número canônico da reserva (ex.: "12345"). */
846
+ bookingNumber: string;
847
+ /** Método amigável já localizado (ex.: "Cartão (Stripe)" / "PIX (Pagar.me)"). */
848
+ paymentMethodLabel: string;
849
+ /** Data formatada (ex.: "07/05/2026"). */
850
+ paymentDate: string;
851
+ /** Valor pago formatado (ex.: "R$ 1.234,56"). */
852
+ amount: string;
853
+ /** Valor cobrado quando há juros (ex.: "R$ 1.250,00"). Só renderiza linha quando definido. */
854
+ chargedAmount?: string;
855
+ /** Status legível (ex.: "Confirmado"). */
856
+ statusLabel: string;
857
+ /** Lista de nomes dos viajantes da reserva. */
858
+ travellers: string[];
859
+ /** Total da reserva formatado. */
860
+ totalOrderAmount: string;
861
+ /** Soma acumulada de pagamentos confirmados (após esta transação). */
862
+ totalPaidCumulative: string;
863
+ /** Saldo restante formatado. */
864
+ remainingBalance: string;
865
+ /** Data de vencimento do saldo (já formatada). Quando ausente, linha some. */
866
+ balanceDueDate?: string;
867
+ /** Sinal: "totalPaid >= total - epsilon". Quando true, exibe banner verde. */
868
+ isPaidInFull: boolean;
869
+ /** URL da logo. Default: data URI embutido no pacote (via EmailLogo). */
870
+ logoUrl?: string;
871
+ /** Optional label overrides for i18n. */
872
+ labels?: Partial<PaymentReceiptEmailLabels>;
873
+ /** className adicional no container. */
874
+ className?: string;
875
+ }
876
+ declare function PaymentReceiptEmail({ recipientName, bookingNumber, paymentMethodLabel, paymentDate, amount, chargedAmount, statusLabel, travellers, totalOrderAmount, totalPaidCumulative, remainingBalance, balanceDueDate, isPaidInFull, logoUrl, labels, className, }: PaymentReceiptEmailProps): react_jsx_runtime.JSX.Element;
877
+
797
878
  interface BookingOtpEmailProps {
798
879
  /** Saudação (ex.: "Hello!" / "Olá!"). */
799
880
  greeting: string;
@@ -1936,4 +2017,4 @@ declare function LeadCapturePopup({ config: _config, }: {
1936
2017
  config: LeadCapturePopupConfig;
1937
2018
  }): react_jsx_runtime.JSX.Element | null;
1938
2019
 
1939
- export { ActivityCard, type ActivityCardProps, type ActivityCardSize, AgentContactCard, type AgentContactCardProps, Alert, type AlertProps, type AlertVariant, BirthDateField, type BirthDateFieldProps, type BookingAdventure, BookingConfirmation, BookingConfirmationEmail, type BookingConfirmationEmailLabels, type BookingConfirmationEmailProps, type BookingConfirmationLabels, type BookingConfirmationProps, BookingConfirmedCard, type BookingConfirmedCardProps, type BookingContact, type BookingDepositInfo, BookingDetails, type BookingDetailsLabels, type BookingDetailsProps, BookingForm, type BookingFormProps, type BookingFormValues, BookingOtpEmail, type BookingOtpEmailProps, BookingShell, type BookingShellProps, type BookingStatus, type BookingSummaryLineItem, type BookingTraveller, Button, type ButtonProps, COUNTRIES, type ConfirmationAdventure, type ConfirmationDepositInfo, type ConfirmationLineItem, type ConfirmationTraveller, CounterField, type CounterFieldProps, type CountryOption, CountrySearchField, type CountrySearchFieldProps, 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, 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 OfferDepositInfo, type OfferLabels, type OfferOptionalItem, type OfferProps, type OfferSummaryLineItem, PaymentAmountSelector, type PaymentAmountSelectorProps, type PaymentMethodOption, PaymentMethodSelector, type PaymentMethodSelectorProps, PaymentModalShell, type PaymentModalShellProps, PhoneCountrySelect, PhotoGallery, type PhotoGalleryPhoto, type PhotoGalleryProps, type PhotoGalleryVariant, type PricingOption, 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, 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, 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 TripItineraryStep, type TripMeetingPoint, TripPage, type TripPageProps, type TripPricingOption, type TripReview, buttonVariants, cn, emailTokens, getStripeAppearance, stripeAppearance, wrapEmailHtml };
2020
+ export { ActivityCard, type ActivityCardProps, type ActivityCardSize, AgentContactCard, type AgentContactCardProps, Alert, type AlertProps, type AlertVariant, BirthDateField, type BirthDateFieldProps, type BookingAdventure, BookingConfirmation, BookingConfirmationEmail, type BookingConfirmationEmailLabels, type BookingConfirmationEmailProps, type BookingConfirmationLabels, type BookingConfirmationProps, BookingConfirmedCard, type BookingConfirmedCardProps, type BookingContact, type BookingDepositInfo, BookingDetails, type BookingDetailsLabels, type BookingDetailsProps, BookingForm, type BookingFormProps, type BookingFormValues, BookingOtpEmail, type BookingOtpEmailProps, BookingShell, type BookingShellProps, type BookingStatus, type BookingSummaryLineItem, type BookingTraveller, Button, type ButtonProps, COUNTRIES, type ConfirmationAdventure, type ConfirmationDepositInfo, type ConfirmationLineItem, type ConfirmationTraveller, CounterField, type CounterFieldProps, type CountryOption, CountrySearchField, type CountrySearchFieldProps, 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, 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 OfferDepositInfo, type OfferLabels, type OfferOptionalItem, type OfferProps, type OfferSummaryLineItem, PaymentAmountSelector, type PaymentAmountSelectorProps, type PaymentMethodOption, PaymentMethodSelector, type PaymentMethodSelectorProps, PaymentModalShell, type PaymentModalShellProps, PaymentReceiptEmail, type PaymentReceiptEmailLabels, type PaymentReceiptEmailProps, PhoneCountrySelect, PhotoGallery, type PhotoGalleryPhoto, type PhotoGalleryProps, type PhotoGalleryVariant, type PricingOption, 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, 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, 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 TripItineraryStep, type TripMeetingPoint, TripPage, type TripPageProps, type TripPricingOption, type TripReview, buttonVariants, cn, emailTokens, getStripeAppearance, stripeAppearance, wrapEmailHtml };
package/dist/index.d.ts CHANGED
@@ -140,6 +140,16 @@ interface OfferLabels {
140
140
  bookingConfirmedMessage?: React.ReactNode | ((args: {
141
141
  email: string;
142
142
  }) => React.ReactNode);
143
+ /**
144
+ * Labels do mini agent card (botões de WhatsApp / Email / Schedule a call e
145
+ * preposição "at {company}" no template de contato).
146
+ */
147
+ agentContact?: {
148
+ whatsappLabel?: string;
149
+ emailLabel?: string;
150
+ scheduleCallLabel?: string;
151
+ atCompanyLabel?: string;
152
+ };
143
153
  /**
144
154
  * Strings do BookingWizard interno (renderizado quando `checkoutSlot` é
145
155
  * undefined — em produção do bookings esse caminho é ofuscado, mas
@@ -671,6 +681,8 @@ interface ConfirmationLineItem {
671
681
  label: string;
672
682
  price: string;
673
683
  isDiscount?: boolean;
684
+ /** Tipo lógico do item (rate = tarifa adultos/crianças, optional = opcional, discount = desconto). Usado pelo mapper backend para distinguir agrupamentos. */
685
+ type?: "rate" | "optional" | "discount";
674
686
  }
675
687
  interface ConfirmationTraveller {
676
688
  id: string;
@@ -680,11 +692,23 @@ interface ConfirmationTraveller {
680
692
  }
681
693
  interface ConfirmationAdventure {
682
694
  id: string;
695
+ /** Texto do pill verde acima do título da aventura (legado: usado pelo mapper backend para fallbacks `partnerBookingRef`). */
683
696
  reference?: string;
697
+ /** Código canônico da Aventura (Adventure.code do catálogo). Quando informado, tem prioridade sobre `reference` no pill verde. */
698
+ code?: string;
684
699
  image: string;
685
700
  imageAlt?: string;
686
701
  title: string;
702
+ /**
703
+ * Slot reaproveitado para renderizar o nome do destino na linha bússola 🧭.
704
+ * Quando `destinationName` estiver presente, ele tem prioridade sobre `partner`
705
+ * (mapper backend popula via Adventure.adventureDestinations[].destination.name).
706
+ * Mantido para compat com chamadas antigas — não remover.
707
+ */
687
708
  partner?: string;
709
+ /** Nome do destino (Adventure.adventureDestinations[].destination.name). Quando presente, prioriza este valor sobre `partner` na linha 🧭. */
710
+ destinationName?: string;
711
+ /** Slot legado de endereço/localização (linha 📍). Quando ausente E `destinationName` presente, a linha 📍 some. Mantido em paralelo para compat backward. */
688
712
  location?: string;
689
713
  dateFrom: string;
690
714
  dateTo: string;
@@ -794,6 +818,63 @@ interface BookingConfirmationEmailProps {
794
818
  }
795
819
  declare function BookingConfirmationEmail({ recipientName, addTravellersUrl, logoUrl, bookingNumber, activity, adventure, startingDate, numberOfPeople, host, labels, className, nextSteps, nextStepsImportant, directBookingLinkLabel, }: BookingConfirmationEmailProps): react_jsx_runtime.JSX.Element;
796
820
 
821
+ interface PaymentReceiptEmailLabels {
822
+ logoAlt?: string;
823
+ greeting?: (name: string) => string;
824
+ receiptHeading?: string;
825
+ bookingNumberLabel?: string;
826
+ paymentMethodLabel?: string;
827
+ paymentDateLabel?: string;
828
+ amountLabel?: string;
829
+ chargedAmountLabel?: string;
830
+ interestSurchargeLabel?: string;
831
+ statusLabel?: string;
832
+ travellersLabel?: string;
833
+ summaryHeading?: string;
834
+ totalOrderLabel?: string;
835
+ totalPaidLabel?: string;
836
+ remainingBalanceLabel?: string;
837
+ balanceDueDateLabel?: string;
838
+ paidInFullMessage?: string;
839
+ closingMessage?: string;
840
+ teamSignature?: string;
841
+ }
842
+ interface PaymentReceiptEmailProps {
843
+ /** Nome do destinatário (ex.: "Maria"). */
844
+ recipientName: string;
845
+ /** Número canônico da reserva (ex.: "12345"). */
846
+ bookingNumber: string;
847
+ /** Método amigável já localizado (ex.: "Cartão (Stripe)" / "PIX (Pagar.me)"). */
848
+ paymentMethodLabel: string;
849
+ /** Data formatada (ex.: "07/05/2026"). */
850
+ paymentDate: string;
851
+ /** Valor pago formatado (ex.: "R$ 1.234,56"). */
852
+ amount: string;
853
+ /** Valor cobrado quando há juros (ex.: "R$ 1.250,00"). Só renderiza linha quando definido. */
854
+ chargedAmount?: string;
855
+ /** Status legível (ex.: "Confirmado"). */
856
+ statusLabel: string;
857
+ /** Lista de nomes dos viajantes da reserva. */
858
+ travellers: string[];
859
+ /** Total da reserva formatado. */
860
+ totalOrderAmount: string;
861
+ /** Soma acumulada de pagamentos confirmados (após esta transação). */
862
+ totalPaidCumulative: string;
863
+ /** Saldo restante formatado. */
864
+ remainingBalance: string;
865
+ /** Data de vencimento do saldo (já formatada). Quando ausente, linha some. */
866
+ balanceDueDate?: string;
867
+ /** Sinal: "totalPaid >= total - epsilon". Quando true, exibe banner verde. */
868
+ isPaidInFull: boolean;
869
+ /** URL da logo. Default: data URI embutido no pacote (via EmailLogo). */
870
+ logoUrl?: string;
871
+ /** Optional label overrides for i18n. */
872
+ labels?: Partial<PaymentReceiptEmailLabels>;
873
+ /** className adicional no container. */
874
+ className?: string;
875
+ }
876
+ declare function PaymentReceiptEmail({ recipientName, bookingNumber, paymentMethodLabel, paymentDate, amount, chargedAmount, statusLabel, travellers, totalOrderAmount, totalPaidCumulative, remainingBalance, balanceDueDate, isPaidInFull, logoUrl, labels, className, }: PaymentReceiptEmailProps): react_jsx_runtime.JSX.Element;
877
+
797
878
  interface BookingOtpEmailProps {
798
879
  /** Saudação (ex.: "Hello!" / "Olá!"). */
799
880
  greeting: string;
@@ -1936,4 +2017,4 @@ declare function LeadCapturePopup({ config: _config, }: {
1936
2017
  config: LeadCapturePopupConfig;
1937
2018
  }): react_jsx_runtime.JSX.Element | null;
1938
2019
 
1939
- export { ActivityCard, type ActivityCardProps, type ActivityCardSize, AgentContactCard, type AgentContactCardProps, Alert, type AlertProps, type AlertVariant, BirthDateField, type BirthDateFieldProps, type BookingAdventure, BookingConfirmation, BookingConfirmationEmail, type BookingConfirmationEmailLabels, type BookingConfirmationEmailProps, type BookingConfirmationLabels, type BookingConfirmationProps, BookingConfirmedCard, type BookingConfirmedCardProps, type BookingContact, type BookingDepositInfo, BookingDetails, type BookingDetailsLabels, type BookingDetailsProps, BookingForm, type BookingFormProps, type BookingFormValues, BookingOtpEmail, type BookingOtpEmailProps, BookingShell, type BookingShellProps, type BookingStatus, type BookingSummaryLineItem, type BookingTraveller, Button, type ButtonProps, COUNTRIES, type ConfirmationAdventure, type ConfirmationDepositInfo, type ConfirmationLineItem, type ConfirmationTraveller, CounterField, type CounterFieldProps, type CountryOption, CountrySearchField, type CountrySearchFieldProps, 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, 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 OfferDepositInfo, type OfferLabels, type OfferOptionalItem, type OfferProps, type OfferSummaryLineItem, PaymentAmountSelector, type PaymentAmountSelectorProps, type PaymentMethodOption, PaymentMethodSelector, type PaymentMethodSelectorProps, PaymentModalShell, type PaymentModalShellProps, PhoneCountrySelect, PhotoGallery, type PhotoGalleryPhoto, type PhotoGalleryProps, type PhotoGalleryVariant, type PricingOption, 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, 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, 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 TripItineraryStep, type TripMeetingPoint, TripPage, type TripPageProps, type TripPricingOption, type TripReview, buttonVariants, cn, emailTokens, getStripeAppearance, stripeAppearance, wrapEmailHtml };
2020
+ export { ActivityCard, type ActivityCardProps, type ActivityCardSize, AgentContactCard, type AgentContactCardProps, Alert, type AlertProps, type AlertVariant, BirthDateField, type BirthDateFieldProps, type BookingAdventure, BookingConfirmation, BookingConfirmationEmail, type BookingConfirmationEmailLabels, type BookingConfirmationEmailProps, type BookingConfirmationLabels, type BookingConfirmationProps, BookingConfirmedCard, type BookingConfirmedCardProps, type BookingContact, type BookingDepositInfo, BookingDetails, type BookingDetailsLabels, type BookingDetailsProps, BookingForm, type BookingFormProps, type BookingFormValues, BookingOtpEmail, type BookingOtpEmailProps, BookingShell, type BookingShellProps, type BookingStatus, type BookingSummaryLineItem, type BookingTraveller, Button, type ButtonProps, COUNTRIES, type ConfirmationAdventure, type ConfirmationDepositInfo, type ConfirmationLineItem, type ConfirmationTraveller, CounterField, type CounterFieldProps, type CountryOption, CountrySearchField, type CountrySearchFieldProps, 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, 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 OfferDepositInfo, type OfferLabels, type OfferOptionalItem, type OfferProps, type OfferSummaryLineItem, PaymentAmountSelector, type PaymentAmountSelectorProps, type PaymentMethodOption, PaymentMethodSelector, type PaymentMethodSelectorProps, PaymentModalShell, type PaymentModalShellProps, PaymentReceiptEmail, type PaymentReceiptEmailLabels, type PaymentReceiptEmailProps, PhoneCountrySelect, PhotoGallery, type PhotoGalleryPhoto, type PhotoGalleryProps, type PhotoGalleryVariant, type PricingOption, 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, 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, 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 TripItineraryStep, type TripMeetingPoint, TripPage, type TripPageProps, type TripPricingOption, type TripReview, buttonVariants, cn, emailTokens, getStripeAppearance, stripeAppearance, wrapEmailHtml };
package/dist/index.js CHANGED
@@ -1457,7 +1457,7 @@ function OfferSidebar({
1457
1457
  bookDisabled,
1458
1458
  labels
1459
1459
  }) {
1460
- var _a, _b;
1460
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
1461
1461
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
1462
1462
  /* @__PURE__ */ jsxs("div", { className: "hidden lg:flex rounded-2xl border border-border bg-card p-5 flex-col gap-4", children: [
1463
1463
  /* @__PURE__ */ jsxs("div", { children: [
@@ -1499,7 +1499,7 @@ function OfferSidebar({
1499
1499
  labels.agentContactTemplate(agent.name),
1500
1500
  agent.company && /* @__PURE__ */ jsxs(Fragment, { children: [
1501
1501
  " ",
1502
- "at",
1502
+ (_d = (_c = labels == null ? void 0 : labels.agentContact) == null ? void 0 : _c.atCompanyLabel) != null ? _d : "at",
1503
1503
  " ",
1504
1504
  /* @__PURE__ */ jsx("span", { className: "font-bold text-foreground font-heading", children: agent.company })
1505
1505
  ] })
@@ -1510,7 +1510,7 @@ function OfferSidebar({
1510
1510
  " your travel advisor",
1511
1511
  agent.company && /* @__PURE__ */ jsxs(Fragment, { children: [
1512
1512
  " ",
1513
- "at",
1513
+ (_f = (_e = labels == null ? void 0 : labels.agentContact) == null ? void 0 : _e.atCompanyLabel) != null ? _f : "at",
1514
1514
  " ",
1515
1515
  /* @__PURE__ */ jsx("span", { className: "font-bold text-foreground font-heading", children: agent.company })
1516
1516
  ] })
@@ -1528,7 +1528,7 @@ function OfferSidebar({
1528
1528
  className: "flex items-center gap-2.5 rounded-lg border border-border px-4 py-2.5 text-sm font-sans text-foreground hover:bg-muted/50 transition-colors",
1529
1529
  children: [
1530
1530
  /* @__PURE__ */ jsx("svg", { className: "w-4 h-4 shrink-0 text-[#25D366]", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z" }) }),
1531
- "WhatsApp"
1531
+ (_h = (_g = labels == null ? void 0 : labels.agentContact) == null ? void 0 : _g.whatsappLabel) != null ? _h : "WhatsApp"
1532
1532
  ]
1533
1533
  }
1534
1534
  ),
@@ -1539,7 +1539,7 @@ function OfferSidebar({
1539
1539
  className: "flex items-center gap-2.5 rounded-lg border border-border px-4 py-2.5 text-sm font-sans text-foreground hover:bg-muted/50 transition-colors",
1540
1540
  children: [
1541
1541
  /* @__PURE__ */ jsx(MailIcon, { className: "w-4 h-4 shrink-0 text-primary" }),
1542
- "Email"
1542
+ (_j = (_i = labels == null ? void 0 : labels.agentContact) == null ? void 0 : _i.emailLabel) != null ? _j : "Email"
1543
1543
  ]
1544
1544
  }
1545
1545
  ),
@@ -1552,7 +1552,7 @@ function OfferSidebar({
1552
1552
  className: "flex items-center gap-2.5 rounded-lg border border-border px-4 py-2.5 text-sm font-sans text-foreground hover:bg-muted/50 transition-colors",
1553
1553
  children: [
1554
1554
  /* @__PURE__ */ jsx(PhoneIcon, { className: "w-4 h-4 shrink-0 text-primary" }),
1555
- "Schedule a call"
1555
+ (_l = (_k = labels == null ? void 0 : labels.agentContact) == null ? void 0 : _k.scheduleCallLabel) != null ? _l : "Schedule a call"
1556
1556
  ]
1557
1557
  }
1558
1558
  )
@@ -3888,7 +3888,7 @@ function BookingConfirmation({
3888
3888
  ] }),
3889
3889
  /* @__PURE__ */ jsx("hr", { style: { border: "none", borderTop: `1px solid ${emailTokens.border}`, margin: "0 32px" } }),
3890
3890
  /* @__PURE__ */ jsx("div", { style: { paddingLeft: "32px", paddingRight: "32px", paddingTop: "32px", paddingBottom: "32px" }, children: adventures.map((adventure, adIdx) => {
3891
- var _a;
3891
+ var _a, _b, _c, _d, _e;
3892
3892
  return /* @__PURE__ */ jsxs(
3893
3893
  "div",
3894
3894
  {
@@ -3909,7 +3909,7 @@ function BookingConfirmation({
3909
3909
  }
3910
3910
  ) }),
3911
3911
  /* @__PURE__ */ jsxs("div", { style: { padding: "20px" }, children: [
3912
- adventure.reference && /* @__PURE__ */ jsx("div", { style: { marginBottom: "10px" }, children: /* @__PURE__ */ jsx("span", { style: {
3912
+ ((_b = adventure.code) != null ? _b : adventure.reference) && /* @__PURE__ */ jsx("div", { style: { marginBottom: "10px" }, children: /* @__PURE__ */ jsx("span", { style: {
3913
3913
  display: "inline-block",
3914
3914
  backgroundColor: emailTokens.primaryLight,
3915
3915
  color: emailTokens.primary,
@@ -3918,46 +3918,30 @@ function BookingConfirmation({
3918
3918
  fontSize: "12px",
3919
3919
  fontWeight: "600",
3920
3920
  letterSpacing: "0.05em"
3921
- }, children: adventure.reference }) }),
3921
+ }, children: (_c = adventure.code) != null ? _c : adventure.reference }) }),
3922
3922
  /* @__PURE__ */ jsx("h3", { style: { fontSize: "20px", fontWeight: "700", color: emailTokens.foreground, lineHeight: "1.3", margin: "0 0 10px 0" }, children: adventure.title }),
3923
3923
  /* @__PURE__ */ jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", marginBottom: "10px" }, children: /* @__PURE__ */ jsx("tbody", { children: /* @__PURE__ */ jsxs("tr", { children: [
3924
- /* @__PURE__ */ jsx("td", { style: { verticalAlign: "middle", paddingRight: "6px", width: "14px" }, children: /* @__PURE__ */ jsxs("svg", { style: { display: "block", width: "14px", height: "14px", color: emailTokens.primary }, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
3925
- /* @__PURE__ */ jsx("rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", ry: "2" }),
3926
- /* @__PURE__ */ jsx("line", { x1: "16", x2: "16", y1: "2", y2: "6" }),
3927
- /* @__PURE__ */ jsx("line", { x1: "8", x2: "8", y1: "2", y2: "6" }),
3928
- /* @__PURE__ */ jsx("line", { x1: "3", x2: "21", y1: "10", y2: "10" })
3929
- ] }) }),
3924
+ /* @__PURE__ */ jsx("td", { style: { verticalAlign: "middle", paddingRight: "6px", width: "16px" }, children: /* @__PURE__ */ jsx("span", { style: { display: "inline-block", fontSize: "14px", lineHeight: "1" }, children: "\u{1F4C5}" }) }),
3930
3925
  /* @__PURE__ */ jsxs("td", { style: { verticalAlign: "middle", fontSize: "14px", color: emailTokens.mutedForeground, lineHeight: "1" }, children: [
3931
3926
  adventure.dateFrom,
3932
3927
  " \u2192 ",
3933
3928
  adventure.dateTo
3934
3929
  ] })
3935
3930
  ] }) }) }),
3936
- adventure.location && /* @__PURE__ */ jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", marginBottom: "10px" }, children: /* @__PURE__ */ jsx("tbody", { children: /* @__PURE__ */ jsxs("tr", { children: [
3937
- /* @__PURE__ */ jsx("td", { style: { verticalAlign: "middle", paddingRight: "6px", width: "14px" }, children: /* @__PURE__ */ jsxs("svg", { style: { display: "block", width: "14px", height: "14px", color: emailTokens.primary }, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
3938
- /* @__PURE__ */ jsx("path", { d: "M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z" }),
3939
- /* @__PURE__ */ jsx("circle", { cx: "12", cy: "10", r: "3" })
3940
- ] }) }),
3931
+ adventure.location && !adventure.destinationName && /* @__PURE__ */ jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", marginBottom: "10px" }, children: /* @__PURE__ */ jsx("tbody", { children: /* @__PURE__ */ jsxs("tr", { children: [
3932
+ /* @__PURE__ */ jsx("td", { style: { verticalAlign: "middle", paddingRight: "6px", width: "16px" }, children: /* @__PURE__ */ jsx("span", { style: { display: "inline-block", fontSize: "14px", lineHeight: "1" }, children: "\u{1F4CD}" }) }),
3941
3933
  /* @__PURE__ */ jsx("td", { style: { verticalAlign: "middle", fontSize: "14px", color: emailTokens.mutedForeground, lineHeight: "1" }, children: adventure.location })
3942
3934
  ] }) }) }),
3943
3935
  adventure.slots && /* @__PURE__ */ jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", marginBottom: "10px" }, children: /* @__PURE__ */ jsx("tbody", { children: /* @__PURE__ */ jsxs("tr", { children: [
3944
- /* @__PURE__ */ jsx("td", { style: { verticalAlign: "middle", paddingRight: "6px", width: "14px" }, children: /* @__PURE__ */ jsxs("svg", { style: { display: "block", width: "14px", height: "14px", color: emailTokens.primary }, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
3945
- /* @__PURE__ */ jsx("path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" }),
3946
- /* @__PURE__ */ jsx("circle", { cx: "9", cy: "7", r: "4" }),
3947
- /* @__PURE__ */ jsx("path", { d: "M22 21v-2a4 4 0 0 0-3-3.87" }),
3948
- /* @__PURE__ */ jsx("path", { d: "M16 3.13a4 4 0 0 1 0 7.75" })
3949
- ] }) }),
3936
+ /* @__PURE__ */ jsx("td", { style: { verticalAlign: "middle", paddingRight: "6px", width: "16px" }, children: /* @__PURE__ */ jsx("span", { style: { display: "inline-block", fontSize: "14px", lineHeight: "1" }, children: "\u{1F465}" }) }),
3950
3937
  /* @__PURE__ */ jsx("td", { style: { verticalAlign: "middle", fontSize: "14px", color: emailTokens.mutedForeground, lineHeight: "1" }, children: [
3951
3938
  adventure.slots.adults ? `${adventure.slots.adults} ${l.adultsUnit}` : null,
3952
3939
  adventure.slots.children ? `${adventure.slots.children} ${l.childrenUnit}` : null
3953
3940
  ].filter(Boolean).join(" \xB7 ") })
3954
3941
  ] }) }) }),
3955
- adventure.partner && /* @__PURE__ */ jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", marginBottom: "10px" }, children: /* @__PURE__ */ jsx("tbody", { children: /* @__PURE__ */ jsxs("tr", { children: [
3956
- /* @__PURE__ */ jsx("td", { style: { verticalAlign: "middle", paddingRight: "6px", width: "14px" }, children: /* @__PURE__ */ jsxs("svg", { style: { display: "block", width: "14px", height: "14px", color: emailTokens.primary }, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
3957
- /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10" }),
3958
- /* @__PURE__ */ jsx("polygon", { points: "16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76" })
3959
- ] }) }),
3960
- /* @__PURE__ */ jsx("td", { style: { verticalAlign: "middle", fontSize: "14px", color: emailTokens.mutedForeground, lineHeight: "1" }, children: adventure.partner })
3942
+ ((_d = adventure.destinationName) != null ? _d : adventure.partner) && /* @__PURE__ */ jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", marginBottom: "10px" }, children: /* @__PURE__ */ jsx("tbody", { children: /* @__PURE__ */ jsxs("tr", { children: [
3943
+ /* @__PURE__ */ jsx("td", { style: { verticalAlign: "middle", paddingRight: "6px", width: "16px" }, children: /* @__PURE__ */ jsx("span", { style: { display: "inline-block", fontSize: "14px", lineHeight: "1" }, children: "\u{1F9ED}" }) }),
3944
+ /* @__PURE__ */ jsx("td", { style: { verticalAlign: "middle", fontSize: "14px", color: emailTokens.mutedForeground, lineHeight: "1" }, children: (_e = adventure.destinationName) != null ? _e : adventure.partner })
3961
3945
  ] }) }) }),
3962
3946
  adventure.travellers && adventure.travellers.length > 0 && /* @__PURE__ */ jsxs("div", { style: { marginTop: "4px" }, children: [
3963
3947
  /* @__PURE__ */ jsx("hr", { style: { border: "none", borderTop: `1px solid ${emailTokens.border}`, marginBottom: "10px" } }),
@@ -3985,17 +3969,14 @@ function BookingConfirmation({
3985
3969
  adventure.included && adventure.included.length > 0 && /* @__PURE__ */ jsxs("div", { style: { marginTop: "10px" }, children: [
3986
3970
  /* @__PURE__ */ jsx("h4", { style: { fontSize: "14px", fontWeight: "700", color: emailTokens.foreground, margin: "0 0 8px 0" }, children: l.includedLabel }),
3987
3971
  adventure.included.map((item, i) => /* @__PURE__ */ jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", width: "100%", marginBottom: "6px" }, children: /* @__PURE__ */ jsx("tbody", { children: /* @__PURE__ */ jsxs("tr", { children: [
3988
- /* @__PURE__ */ jsx("td", { style: { verticalAlign: "top", paddingRight: "8px", width: "16px" }, children: /* @__PURE__ */ jsx("svg", { style: { display: "block", width: "16px", height: "16px", color: emailTokens.primary, marginTop: "2px" }, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx("polyline", { points: "20 6 9 17 4 12" }) }) }),
3972
+ /* @__PURE__ */ jsx("td", { style: { verticalAlign: "top", paddingRight: "8px", width: "16px" }, children: /* @__PURE__ */ jsx("span", { style: { display: "inline-block", fontSize: "14px", color: emailTokens.primary, lineHeight: "1.2", fontWeight: 700 }, children: "\u2713" }) }),
3989
3973
  /* @__PURE__ */ jsx("td", { style: { verticalAlign: "top", fontSize: "14px", color: emailTokens.bodyText }, children: item })
3990
3974
  ] }) }) }, i))
3991
3975
  ] }),
3992
3976
  adventure.notIncluded && adventure.notIncluded.length > 0 && /* @__PURE__ */ jsxs("div", { style: { marginTop: "10px" }, children: [
3993
3977
  /* @__PURE__ */ jsx("h4", { style: { fontSize: "14px", fontWeight: "700", color: emailTokens.foreground, margin: "0 0 8px 0" }, children: l.notIncludedLabel }),
3994
3978
  adventure.notIncluded.map((item, i) => /* @__PURE__ */ jsx("table", { cellPadding: "0", cellSpacing: "0", style: { borderCollapse: "collapse", width: "100%", marginBottom: "6px" }, children: /* @__PURE__ */ jsx("tbody", { children: /* @__PURE__ */ jsxs("tr", { children: [
3995
- /* @__PURE__ */ jsx("td", { style: { verticalAlign: "top", paddingRight: "8px", width: "16px" }, children: /* @__PURE__ */ jsxs("svg", { style: { display: "block", width: "16px", height: "16px", color: emailTokens.destructive, marginTop: "2px" }, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
3996
- /* @__PURE__ */ jsx("path", { d: "M18 6 6 18" }),
3997
- /* @__PURE__ */ jsx("path", { d: "m6 6 12 12" })
3998
- ] }) }),
3979
+ /* @__PURE__ */ jsx("td", { style: { verticalAlign: "top", paddingRight: "8px", width: "16px" }, children: /* @__PURE__ */ jsx("span", { style: { display: "inline-block", fontSize: "14px", color: emailTokens.destructive, lineHeight: "1.2", fontWeight: 700 }, children: "\u2717" }) }),
3999
3980
  /* @__PURE__ */ jsx("td", { style: { verticalAlign: "top", fontSize: "14px", color: emailTokens.bodyText }, children: item })
4000
3981
  ] }) }) }, i))
4001
3982
  ] }),
@@ -4188,6 +4169,141 @@ function BookingConfirmationEmail({
4188
4169
  }
4189
4170
  );
4190
4171
  }
4172
+ var DEFAULT_LABELS3 = {
4173
+ logoAlt: "PlanetaEXO",
4174
+ greeting: (name) => `Hi ${name},`,
4175
+ receiptHeading: "Payment receipt",
4176
+ bookingNumberLabel: "Booking number",
4177
+ paymentMethodLabel: "Payment method",
4178
+ paymentDateLabel: "Payment date",
4179
+ amountLabel: "Amount",
4180
+ chargedAmountLabel: "Charged amount",
4181
+ interestSurchargeLabel: "Interest / surcharge",
4182
+ statusLabel: "Status",
4183
+ travellersLabel: "Travellers",
4184
+ summaryHeading: "Booking summary",
4185
+ totalOrderLabel: "Total order",
4186
+ totalPaidLabel: "Total paid",
4187
+ remainingBalanceLabel: "Remaining balance",
4188
+ balanceDueDateLabel: "Balance due",
4189
+ paidInFullMessage: "\u2705 Paid in full",
4190
+ closingMessage: "If you have any questions, just reply to this email \u2014 happy to help.",
4191
+ teamSignature: "PlanetaEXO Team"
4192
+ };
4193
+ function PaymentReceiptEmail({
4194
+ recipientName,
4195
+ bookingNumber,
4196
+ paymentMethodLabel,
4197
+ paymentDate,
4198
+ amount,
4199
+ chargedAmount,
4200
+ statusLabel,
4201
+ travellers,
4202
+ totalOrderAmount,
4203
+ totalPaidCumulative,
4204
+ remainingBalance,
4205
+ balanceDueDate,
4206
+ isPaidInFull,
4207
+ logoUrl,
4208
+ labels,
4209
+ className
4210
+ }) {
4211
+ const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS3), labels);
4212
+ const travellersLine = travellers.filter((s) => s.trim().length > 0).join(", ");
4213
+ const interestRow = chargedAmount && chargedAmount !== amount;
4214
+ const receiptRows = [
4215
+ { label: l.bookingNumberLabel, value: bookingNumber },
4216
+ { label: l.paymentMethodLabel, value: paymentMethodLabel },
4217
+ { label: l.paymentDateLabel, value: paymentDate },
4218
+ { label: l.amountLabel, value: amount },
4219
+ ...interestRow ? [{ label: l.chargedAmountLabel, value: chargedAmount }] : [],
4220
+ { label: l.statusLabel, value: statusLabel },
4221
+ ...travellersLine.length > 0 ? [{ label: l.travellersLabel, value: travellersLine }] : []
4222
+ ];
4223
+ const summaryRows = [
4224
+ { label: l.totalOrderLabel, value: totalOrderAmount },
4225
+ { label: l.totalPaidLabel, value: totalPaidCumulative },
4226
+ { label: l.remainingBalanceLabel, value: remainingBalance },
4227
+ ...balanceDueDate ? [{ label: l.balanceDueDateLabel, value: balanceDueDate }] : []
4228
+ ];
4229
+ return /* @__PURE__ */ jsxs(
4230
+ "div",
4231
+ {
4232
+ style: {
4233
+ maxWidth: "576px",
4234
+ margin: "0 auto",
4235
+ backgroundColor: emailTokens.white,
4236
+ color: emailTokens.foreground,
4237
+ fontFamily: emailTokens.fontFamily,
4238
+ fontSize: "16px",
4239
+ lineHeight: "1.6",
4240
+ border: `1px solid ${emailTokens.border}`,
4241
+ borderRadius: "12px",
4242
+ overflow: "hidden",
4243
+ padding: "32px"
4244
+ },
4245
+ className,
4246
+ children: [
4247
+ /* @__PURE__ */ jsx(EmailLogo, { src: logoUrl, alt: l.logoAlt }),
4248
+ /* @__PURE__ */ jsx("p", { style: { marginBottom: "16px" }, children: l.greeting(recipientName) }),
4249
+ /* @__PURE__ */ jsx("p", { style: { marginBottom: "12px", fontWeight: 700, color: emailTokens.foreground, fontSize: "16px" }, children: l.receiptHeading }),
4250
+ /* @__PURE__ */ jsx(
4251
+ "div",
4252
+ {
4253
+ style: {
4254
+ borderRadius: "12px",
4255
+ border: `1px solid ${emailTokens.border}`,
4256
+ padding: "20px",
4257
+ marginBottom: "24px"
4258
+ },
4259
+ children: /* @__PURE__ */ jsx("table", { style: { width: "100%", fontSize: "14px", borderCollapse: "collapse" }, children: /* @__PURE__ */ jsxs("tbody", { children: [
4260
+ receiptRows.map((row, i) => /* @__PURE__ */ jsxs("tr", { style: i > 0 ? { borderTop: `1px solid ${emailTokens.border}` } : {}, children: [
4261
+ /* @__PURE__ */ jsx("td", { style: { padding: "8px 12px 8px 0", color: emailTokens.mutedForeground, verticalAlign: "top", whiteSpace: "nowrap" }, children: row.label }),
4262
+ /* @__PURE__ */ jsx("td", { style: { padding: "8px 0", fontWeight: 500, color: emailTokens.foreground, verticalAlign: "top" }, children: row.value })
4263
+ ] }, i)),
4264
+ interestRow && /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { colSpan: 2, style: { paddingTop: "8px", fontSize: "12px", color: emailTokens.mutedForeground, fontStyle: "italic" }, children: l.interestSurchargeLabel }) })
4265
+ ] }) })
4266
+ }
4267
+ ),
4268
+ /* @__PURE__ */ jsx("p", { style: { marginBottom: "12px", fontWeight: 700, color: emailTokens.foreground, fontSize: "16px" }, children: l.summaryHeading }),
4269
+ /* @__PURE__ */ jsx(
4270
+ "div",
4271
+ {
4272
+ style: {
4273
+ borderRadius: "12px",
4274
+ border: `1px solid ${emailTokens.border}`,
4275
+ overflow: "hidden",
4276
+ marginBottom: "24px"
4277
+ },
4278
+ children: /* @__PURE__ */ jsx("table", { style: { width: "100%", fontSize: "14px", borderCollapse: "collapse" }, children: /* @__PURE__ */ jsxs("tbody", { children: [
4279
+ summaryRows.map((row, i) => /* @__PURE__ */ jsxs("tr", { style: i > 0 ? { borderTop: `1px solid ${emailTokens.border}` } : {}, children: [
4280
+ /* @__PURE__ */ jsx("td", { style: { padding: "10px 16px", color: emailTokens.mutedForeground, verticalAlign: "top" }, children: row.label }),
4281
+ /* @__PURE__ */ jsx("td", { style: { padding: "10px 16px", textAlign: "right", fontWeight: 500, color: emailTokens.foreground, whiteSpace: "nowrap" }, children: row.value })
4282
+ ] }, i)),
4283
+ isPaidInFull && /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx(
4284
+ "td",
4285
+ {
4286
+ colSpan: 2,
4287
+ style: {
4288
+ padding: "12px 16px",
4289
+ textAlign: "center",
4290
+ fontWeight: 600,
4291
+ color: emailTokens.green,
4292
+ backgroundColor: emailTokens.greenBg,
4293
+ borderTop: `1px solid ${emailTokens.border}`
4294
+ },
4295
+ children: l.paidInFullMessage
4296
+ }
4297
+ ) })
4298
+ ] }) })
4299
+ }
4300
+ ),
4301
+ /* @__PURE__ */ jsx("p", { style: { marginBottom: "16px", fontSize: "14px", color: emailTokens.bodyText }, children: l.closingMessage }),
4302
+ /* @__PURE__ */ jsx("p", { style: { marginTop: 0, marginBottom: 0, fontSize: "14px", color: emailTokens.bodyText }, children: l.teamSignature })
4303
+ ]
4304
+ }
4305
+ );
4306
+ }
4191
4307
  function BookingOtpEmail({
4192
4308
  greeting,
4193
4309
  intro,
@@ -4868,7 +4984,7 @@ function BookingForm({
4868
4984
  }
4869
4985
  );
4870
4986
  }
4871
- var DEFAULT_LABELS3 = {
4987
+ var DEFAULT_LABELS4 = {
4872
4988
  formSubtitle: "To confirm your participation, please complete this short form. It's required for all travellers and helps us coordinate logistics with our local partners and tailor the experience to you.",
4873
4989
  detailsSectionTitle: "Your details",
4874
4990
  tripInfoSectionTitle: "Trip info",
@@ -5532,7 +5648,7 @@ function RegistrationForm({
5532
5648
  }) {
5533
5649
  var _a;
5534
5650
  const L = React23.useMemo(
5535
- () => __spreadValues(__spreadValues({}, DEFAULT_LABELS3), labels != null ? labels : {}),
5651
+ () => __spreadValues(__spreadValues({}, DEFAULT_LABELS4), labels != null ? labels : {}),
5536
5652
  [labels]
5537
5653
  );
5538
5654
  const sortedFields = React23.useMemo(
@@ -9595,6 +9711,6 @@ function LeadCapturePopup({
9595
9711
  );
9596
9712
  }
9597
9713
 
9598
- export { ActivityCard, AgentContactCard, Alert, BirthDateField, BookingConfirmation, BookingConfirmationEmail, BookingConfirmedCard, BookingDetails, BookingForm, BookingOtpEmail, BookingShell, Button, COUNTRIES, CounterField, CountrySearchField, DEFAULT_HEADER_LINKS, DEFAULT_LANGUAGES, DatePickerField, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, FilterPanel, FloatingInput, FloatingSelect, Itinerary, LOGO_PLANETAEXO_DATA_URI, LeadCapturePopup, MenuTrip, OTPCodeInput, Offer, OfferAdventureCard, PaymentAmountSelector, PaymentMethodSelector, PaymentModalShell, PhoneCountrySelect, PhotoGallery, PricingTrip, RegistrationForm, RegistrationSuccessCard, SiteHeader, TERMS_ACCEPT_KEY, TermsSection, ThemeToggle, Toast, TravellerFormInviteEmail, TripCard, TripHeader, TripPage, buttonVariants, cn, emailTokens, getStripeAppearance, stripeAppearance, wrapEmailHtml };
9714
+ export { ActivityCard, AgentContactCard, Alert, BirthDateField, BookingConfirmation, BookingConfirmationEmail, BookingConfirmedCard, BookingDetails, BookingForm, BookingOtpEmail, BookingShell, Button, COUNTRIES, CounterField, CountrySearchField, DEFAULT_HEADER_LINKS, DEFAULT_LANGUAGES, DatePickerField, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, FilterPanel, FloatingInput, FloatingSelect, Itinerary, LOGO_PLANETAEXO_DATA_URI, LeadCapturePopup, MenuTrip, OTPCodeInput, Offer, OfferAdventureCard, PaymentAmountSelector, PaymentMethodSelector, PaymentModalShell, PaymentReceiptEmail, PhoneCountrySelect, PhotoGallery, PricingTrip, RegistrationForm, RegistrationSuccessCard, SiteHeader, TERMS_ACCEPT_KEY, TermsSection, ThemeToggle, Toast, TravellerFormInviteEmail, TripCard, TripHeader, TripPage, buttonVariants, cn, emailTokens, getStripeAppearance, stripeAppearance, wrapEmailHtml };
9599
9715
  //# sourceMappingURL=index.js.map
9600
9716
  //# sourceMappingURL=index.js.map