@planetaexo/design-system 0.50.1 → 0.52.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
@@ -446,6 +446,11 @@ interface TravellerFormConfig {
446
446
  interface BookingDetailsLabels {
447
447
  /** "Created on {date}" — render em sub-header. */
448
448
  createdOn?: (date: string) => string;
449
+ /** "cancelled on {date}" — appended ao sub-header quando `cancelledAt` é
450
+ * passado. Usado para reservas com `status="cancelled"` evitando banner
451
+ * duplicado no topo da página. Render sem prefixo (deve começar minúsculo
452
+ * na maioria das línguas) — vem após ", " no DOM. */
453
+ cancelledOn?: (date: string) => string;
449
454
  /** Header InfoCard "CONTACT". */
450
455
  contactInfo?: string;
451
456
  /** Header InfoCard "TOTAL PEOPLE". */
@@ -658,6 +663,11 @@ interface BookingDetailsProps {
658
663
  /** Texto exibido no badge de status. Quando ausente, usa um default em inglês baseado no `status`. */
659
664
  statusLabel?: string;
660
665
  createdAt: string;
666
+ /** Data de cancelamento já formatada/localizada. Quando preenchido, renderiza
667
+ * ", cancelada em {date}" appended ao subtitle de createdAt no header.
668
+ * Sub-bullet: substitui o uso do banner amber no topo da página para o
669
+ * estado cancelled (decisão UX 2026-05-29 — banner ficava grande/feio). */
670
+ cancelledAt?: string;
661
671
  contact: BookingContact;
662
672
  /** Dados completos do agente para renderizar o `AgentContactCard` (avatar + email + whatsapp).
663
673
  * Tem prioridade sobre `agentName` quando ambos forem passados. */
@@ -745,7 +755,7 @@ interface BookingDetailsProps {
745
755
  labels?: BookingDetailsLabels;
746
756
  className?: string;
747
757
  }
748
- declare function BookingDetails({ bookingId, status, statusLabel, createdAt, contact, agent, agentName, agentContactUrl, agentNameFallback, agentLabel, agentContactLabel, contactSectionLabel, payBalanceLabel, balanceDueLabel, totalPaidLabel, cannotRemoveLastTravellerLabel, adventures, summaryLineItems, subtotal, total, depositInfo, onAddContactAsTraveller, onEditTraveller, onRemoveTraveller, onAddSuggestedTraveller, onAddTraveller, onUnassignFromAdventure, onCopyFormLink, onResendInvite, resendingInviteTravellerIds, resendInviteAriaLabel, onSubmitAddTraveller, onSubmitEditTraveller, onConfirmRemoveTraveller, travellerFormConfig, addTravellerSaving, editTravellerSaving, removeTravellerSaving, travellerFormError, onPayBalance, onCancelRequest, logoSrc, logoAlt, onSignOut, signOutLabel, labels, className, }: BookingDetailsProps): react_jsx_runtime.JSX.Element;
758
+ declare function BookingDetails({ bookingId, status, statusLabel, createdAt, cancelledAt, contact, agent, agentName, agentContactUrl, agentNameFallback, agentLabel, agentContactLabel, contactSectionLabel, payBalanceLabel, balanceDueLabel, totalPaidLabel, cannotRemoveLastTravellerLabel, adventures, summaryLineItems, subtotal, total, depositInfo, onAddContactAsTraveller, onEditTraveller, onRemoveTraveller, onAddSuggestedTraveller, onAddTraveller, onUnassignFromAdventure, onCopyFormLink, onResendInvite, resendingInviteTravellerIds, resendInviteAriaLabel, onSubmitAddTraveller, onSubmitEditTraveller, onConfirmRemoveTraveller, travellerFormConfig, addTravellerSaving, editTravellerSaving, removeTravellerSaving, travellerFormError, onPayBalance, onCancelRequest, logoSrc, logoAlt, onSignOut, signOutLabel, labels, className, }: BookingDetailsProps): react_jsx_runtime.JSX.Element;
749
759
 
750
760
  interface AgentContactCardProps {
751
761
  layout: "compact" | "wide";
@@ -1488,15 +1498,15 @@ interface RegistrationReminderIndividualEmailProps {
1488
1498
  }
1489
1499
  declare function RegistrationReminderIndividualEmail({ slug, recipientFirstName, travellerFirstName, leadTravellerName, leadTravellerFirstName, bookingNumber, adventureName, startDateFormatted, partnerName, ctaUrl, route, agent, logoUrl, labels, className, }: RegistrationReminderIndividualEmailProps): react_jsx_runtime.JSX.Element;
1490
1500
 
1491
- interface PartnerConfirmationAgentContactLinks {
1501
+ interface PartnerRegistrationCompleteAgentContactLinks {
1492
1502
  whatsappUrl?: string;
1493
1503
  email?: string;
1494
1504
  }
1495
- interface PartnerConfirmationEmailExpectationRow {
1505
+ interface PartnerRegistrationCompleteEmailExpectationRow {
1496
1506
  travellerName: string;
1497
1507
  answer: string | null;
1498
1508
  }
1499
- interface PartnerConfirmationEmailProps {
1509
+ interface PartnerRegistrationCompleteEmailProps {
1500
1510
  scenario: "all_done" | "d_minus_7";
1501
1511
  locale: "en" | "pt" | "fr" | "de";
1502
1512
  /** Aviso de topo opcional (banner âmbar). Texto já localizado pelo backend. */
@@ -1510,7 +1520,7 @@ interface PartnerConfirmationEmailProps {
1510
1520
  /** Seção Travellers Expectations. hasSection=false → nenhum campo marcado no form. */
1511
1521
  expectations: {
1512
1522
  hasSection: boolean;
1513
- rows: PartnerConfirmationEmailExpectationRow[];
1523
+ rows: PartnerRegistrationCompleteEmailExpectationRow[];
1514
1524
  };
1515
1525
  pdfAttached: boolean;
1516
1526
  agent: {
@@ -1519,10 +1529,10 @@ interface PartnerConfirmationEmailProps {
1519
1529
  email?: string;
1520
1530
  } | null;
1521
1531
  logoUrl?: string;
1522
- labels?: PartnerConfirmationEmailLabels;
1532
+ labels?: PartnerRegistrationCompleteEmailLabels;
1523
1533
  className?: string;
1524
1534
  }
1525
- interface PartnerConfirmationEmailLabels {
1535
+ interface PartnerRegistrationCompleteEmailLabels {
1526
1536
  logoAlt?: string;
1527
1537
  greeting?: (partnerName: string) => string;
1528
1538
  /** Cenário 1 (all_done). Recebe (adventureName, dateRange). */
@@ -1542,12 +1552,12 @@ interface PartnerConfirmationEmailLabels {
1542
1552
  expectationsEmptyAnswer?: string;
1543
1553
  pdfNote?: string;
1544
1554
  /** Closing principal quando há agente. Recebe nome + URLs e retorna JSX. */
1545
- closingAgent?: (agentName: string, contact: PartnerConfirmationAgentContactLinks) => React.ReactNode;
1555
+ closingAgent?: (agentName: string, contact: PartnerRegistrationCompleteAgentContactLinks) => React.ReactNode;
1546
1556
  /** Closing alternativo sem agente. */
1547
1557
  closingNoAgent?: string;
1548
1558
  teamSignature?: string;
1549
1559
  }
1550
- declare function PartnerConfirmationEmail({ scenario, topNotice, partnerName, bookingNumber, adventureName, dateRange, travellersCount, expectations, pdfAttached, agent, logoUrl, labels, className, }: PartnerConfirmationEmailProps): react_jsx_runtime.JSX.Element;
1560
+ declare function PartnerRegistrationCompleteEmail({ scenario, topNotice, partnerName, bookingNumber, adventureName, dateRange, travellersCount, expectations, pdfAttached, agent, logoUrl, labels, className, }: PartnerRegistrationCompleteEmailProps): react_jsx_runtime.JSX.Element;
1551
1561
 
1552
1562
  interface PartnerBookingCreatedAgentContactLinks {
1553
1563
  whatsappUrl?: string;
@@ -1564,6 +1574,8 @@ interface PartnerBookingCreatedEmailProps {
1564
1574
  dateRange: string;
1565
1575
  /** Viajantes DESTA aventura. */
1566
1576
  travellersCount: number;
1577
+ /** Opcionais já formatados pelo backend (regra ×N aplicada). Vazio/undefined → row omitida. */
1578
+ optionals?: string[];
1567
1579
  /** Booker: nome completo + país (exibidos no topo do Booking Summary). */
1568
1580
  booker: {
1569
1581
  name: string;
@@ -1592,6 +1604,8 @@ interface PartnerBookingCreatedEmailLabels {
1592
1604
  adventureLabel?: string;
1593
1605
  datesLabel?: string;
1594
1606
  numberOfPeopleLabel?: string;
1607
+ /** Label da row "Optionals" no Booking Summary. */
1608
+ optionalsLabel?: string;
1595
1609
  /** Aviso (linha 1) antes do closing — sempre visível. */
1596
1610
  registrationPendingNotice?: string;
1597
1611
  /** Aviso (linha 2, enfatizado) antes do closing — sempre visível. */
@@ -1602,7 +1616,7 @@ interface PartnerBookingCreatedEmailLabels {
1602
1616
  closingNoAgent?: string;
1603
1617
  teamSignature?: string;
1604
1618
  }
1605
- declare function PartnerBookingCreatedEmail({ topNotice, partnerName, bookingNumber, adventureName, dateRange, travellersCount, booker, agent, logoUrl, labels, className, }: PartnerBookingCreatedEmailProps): react_jsx_runtime.JSX.Element;
1619
+ declare function PartnerBookingCreatedEmail({ topNotice, partnerName, bookingNumber, adventureName, dateRange, travellersCount, optionals, booker, agent, logoUrl, labels, className, }: PartnerBookingCreatedEmailProps): react_jsx_runtime.JSX.Element;
1606
1620
 
1607
1621
  interface PaymentReceiptEmailLabels {
1608
1622
  logoAlt?: string;
@@ -3466,4 +3480,4 @@ declare function LeadCapturePopup({ config: _config, }: {
3466
3480
  config: LeadCapturePopupConfig;
3467
3481
  }): react_jsx_runtime.JSX.Element | null;
3468
3482
 
3469
- 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, type BookingCancellationAdventure, type BookingCancellationAgentContactLinks, BookingCancellationEmail, type BookingCancellationEmailLabels, type BookingCancellationEmailProps, 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 };
3483
+ 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, type BookingCancellationAdventure, type BookingCancellationAgentContactLinks, BookingCancellationEmail, type BookingCancellationEmailLabels, type BookingCancellationEmailProps, 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 PartnerRegistrationCompleteAgentContactLinks, PartnerRegistrationCompleteEmail, type PartnerRegistrationCompleteEmailExpectationRow, type PartnerRegistrationCompleteEmailLabels, type PartnerRegistrationCompleteEmailProps, 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
@@ -446,6 +446,11 @@ interface TravellerFormConfig {
446
446
  interface BookingDetailsLabels {
447
447
  /** "Created on {date}" — render em sub-header. */
448
448
  createdOn?: (date: string) => string;
449
+ /** "cancelled on {date}" — appended ao sub-header quando `cancelledAt` é
450
+ * passado. Usado para reservas com `status="cancelled"` evitando banner
451
+ * duplicado no topo da página. Render sem prefixo (deve começar minúsculo
452
+ * na maioria das línguas) — vem após ", " no DOM. */
453
+ cancelledOn?: (date: string) => string;
449
454
  /** Header InfoCard "CONTACT". */
450
455
  contactInfo?: string;
451
456
  /** Header InfoCard "TOTAL PEOPLE". */
@@ -658,6 +663,11 @@ interface BookingDetailsProps {
658
663
  /** Texto exibido no badge de status. Quando ausente, usa um default em inglês baseado no `status`. */
659
664
  statusLabel?: string;
660
665
  createdAt: string;
666
+ /** Data de cancelamento já formatada/localizada. Quando preenchido, renderiza
667
+ * ", cancelada em {date}" appended ao subtitle de createdAt no header.
668
+ * Sub-bullet: substitui o uso do banner amber no topo da página para o
669
+ * estado cancelled (decisão UX 2026-05-29 — banner ficava grande/feio). */
670
+ cancelledAt?: string;
661
671
  contact: BookingContact;
662
672
  /** Dados completos do agente para renderizar o `AgentContactCard` (avatar + email + whatsapp).
663
673
  * Tem prioridade sobre `agentName` quando ambos forem passados. */
@@ -745,7 +755,7 @@ interface BookingDetailsProps {
745
755
  labels?: BookingDetailsLabels;
746
756
  className?: string;
747
757
  }
748
- declare function BookingDetails({ bookingId, status, statusLabel, createdAt, contact, agent, agentName, agentContactUrl, agentNameFallback, agentLabel, agentContactLabel, contactSectionLabel, payBalanceLabel, balanceDueLabel, totalPaidLabel, cannotRemoveLastTravellerLabel, adventures, summaryLineItems, subtotal, total, depositInfo, onAddContactAsTraveller, onEditTraveller, onRemoveTraveller, onAddSuggestedTraveller, onAddTraveller, onUnassignFromAdventure, onCopyFormLink, onResendInvite, resendingInviteTravellerIds, resendInviteAriaLabel, onSubmitAddTraveller, onSubmitEditTraveller, onConfirmRemoveTraveller, travellerFormConfig, addTravellerSaving, editTravellerSaving, removeTravellerSaving, travellerFormError, onPayBalance, onCancelRequest, logoSrc, logoAlt, onSignOut, signOutLabel, labels, className, }: BookingDetailsProps): react_jsx_runtime.JSX.Element;
758
+ declare function BookingDetails({ bookingId, status, statusLabel, createdAt, cancelledAt, contact, agent, agentName, agentContactUrl, agentNameFallback, agentLabel, agentContactLabel, contactSectionLabel, payBalanceLabel, balanceDueLabel, totalPaidLabel, cannotRemoveLastTravellerLabel, adventures, summaryLineItems, subtotal, total, depositInfo, onAddContactAsTraveller, onEditTraveller, onRemoveTraveller, onAddSuggestedTraveller, onAddTraveller, onUnassignFromAdventure, onCopyFormLink, onResendInvite, resendingInviteTravellerIds, resendInviteAriaLabel, onSubmitAddTraveller, onSubmitEditTraveller, onConfirmRemoveTraveller, travellerFormConfig, addTravellerSaving, editTravellerSaving, removeTravellerSaving, travellerFormError, onPayBalance, onCancelRequest, logoSrc, logoAlt, onSignOut, signOutLabel, labels, className, }: BookingDetailsProps): react_jsx_runtime.JSX.Element;
749
759
 
750
760
  interface AgentContactCardProps {
751
761
  layout: "compact" | "wide";
@@ -1488,15 +1498,15 @@ interface RegistrationReminderIndividualEmailProps {
1488
1498
  }
1489
1499
  declare function RegistrationReminderIndividualEmail({ slug, recipientFirstName, travellerFirstName, leadTravellerName, leadTravellerFirstName, bookingNumber, adventureName, startDateFormatted, partnerName, ctaUrl, route, agent, logoUrl, labels, className, }: RegistrationReminderIndividualEmailProps): react_jsx_runtime.JSX.Element;
1490
1500
 
1491
- interface PartnerConfirmationAgentContactLinks {
1501
+ interface PartnerRegistrationCompleteAgentContactLinks {
1492
1502
  whatsappUrl?: string;
1493
1503
  email?: string;
1494
1504
  }
1495
- interface PartnerConfirmationEmailExpectationRow {
1505
+ interface PartnerRegistrationCompleteEmailExpectationRow {
1496
1506
  travellerName: string;
1497
1507
  answer: string | null;
1498
1508
  }
1499
- interface PartnerConfirmationEmailProps {
1509
+ interface PartnerRegistrationCompleteEmailProps {
1500
1510
  scenario: "all_done" | "d_minus_7";
1501
1511
  locale: "en" | "pt" | "fr" | "de";
1502
1512
  /** Aviso de topo opcional (banner âmbar). Texto já localizado pelo backend. */
@@ -1510,7 +1520,7 @@ interface PartnerConfirmationEmailProps {
1510
1520
  /** Seção Travellers Expectations. hasSection=false → nenhum campo marcado no form. */
1511
1521
  expectations: {
1512
1522
  hasSection: boolean;
1513
- rows: PartnerConfirmationEmailExpectationRow[];
1523
+ rows: PartnerRegistrationCompleteEmailExpectationRow[];
1514
1524
  };
1515
1525
  pdfAttached: boolean;
1516
1526
  agent: {
@@ -1519,10 +1529,10 @@ interface PartnerConfirmationEmailProps {
1519
1529
  email?: string;
1520
1530
  } | null;
1521
1531
  logoUrl?: string;
1522
- labels?: PartnerConfirmationEmailLabels;
1532
+ labels?: PartnerRegistrationCompleteEmailLabels;
1523
1533
  className?: string;
1524
1534
  }
1525
- interface PartnerConfirmationEmailLabels {
1535
+ interface PartnerRegistrationCompleteEmailLabels {
1526
1536
  logoAlt?: string;
1527
1537
  greeting?: (partnerName: string) => string;
1528
1538
  /** Cenário 1 (all_done). Recebe (adventureName, dateRange). */
@@ -1542,12 +1552,12 @@ interface PartnerConfirmationEmailLabels {
1542
1552
  expectationsEmptyAnswer?: string;
1543
1553
  pdfNote?: string;
1544
1554
  /** Closing principal quando há agente. Recebe nome + URLs e retorna JSX. */
1545
- closingAgent?: (agentName: string, contact: PartnerConfirmationAgentContactLinks) => React.ReactNode;
1555
+ closingAgent?: (agentName: string, contact: PartnerRegistrationCompleteAgentContactLinks) => React.ReactNode;
1546
1556
  /** Closing alternativo sem agente. */
1547
1557
  closingNoAgent?: string;
1548
1558
  teamSignature?: string;
1549
1559
  }
1550
- declare function PartnerConfirmationEmail({ scenario, topNotice, partnerName, bookingNumber, adventureName, dateRange, travellersCount, expectations, pdfAttached, agent, logoUrl, labels, className, }: PartnerConfirmationEmailProps): react_jsx_runtime.JSX.Element;
1560
+ declare function PartnerRegistrationCompleteEmail({ scenario, topNotice, partnerName, bookingNumber, adventureName, dateRange, travellersCount, expectations, pdfAttached, agent, logoUrl, labels, className, }: PartnerRegistrationCompleteEmailProps): react_jsx_runtime.JSX.Element;
1551
1561
 
1552
1562
  interface PartnerBookingCreatedAgentContactLinks {
1553
1563
  whatsappUrl?: string;
@@ -1564,6 +1574,8 @@ interface PartnerBookingCreatedEmailProps {
1564
1574
  dateRange: string;
1565
1575
  /** Viajantes DESTA aventura. */
1566
1576
  travellersCount: number;
1577
+ /** Opcionais já formatados pelo backend (regra ×N aplicada). Vazio/undefined → row omitida. */
1578
+ optionals?: string[];
1567
1579
  /** Booker: nome completo + país (exibidos no topo do Booking Summary). */
1568
1580
  booker: {
1569
1581
  name: string;
@@ -1592,6 +1604,8 @@ interface PartnerBookingCreatedEmailLabels {
1592
1604
  adventureLabel?: string;
1593
1605
  datesLabel?: string;
1594
1606
  numberOfPeopleLabel?: string;
1607
+ /** Label da row "Optionals" no Booking Summary. */
1608
+ optionalsLabel?: string;
1595
1609
  /** Aviso (linha 1) antes do closing — sempre visível. */
1596
1610
  registrationPendingNotice?: string;
1597
1611
  /** Aviso (linha 2, enfatizado) antes do closing — sempre visível. */
@@ -1602,7 +1616,7 @@ interface PartnerBookingCreatedEmailLabels {
1602
1616
  closingNoAgent?: string;
1603
1617
  teamSignature?: string;
1604
1618
  }
1605
- declare function PartnerBookingCreatedEmail({ topNotice, partnerName, bookingNumber, adventureName, dateRange, travellersCount, booker, agent, logoUrl, labels, className, }: PartnerBookingCreatedEmailProps): react_jsx_runtime.JSX.Element;
1619
+ declare function PartnerBookingCreatedEmail({ topNotice, partnerName, bookingNumber, adventureName, dateRange, travellersCount, optionals, booker, agent, logoUrl, labels, className, }: PartnerBookingCreatedEmailProps): react_jsx_runtime.JSX.Element;
1606
1620
 
1607
1621
  interface PaymentReceiptEmailLabels {
1608
1622
  logoAlt?: string;
@@ -3466,4 +3480,4 @@ declare function LeadCapturePopup({ config: _config, }: {
3466
3480
  config: LeadCapturePopupConfig;
3467
3481
  }): react_jsx_runtime.JSX.Element | null;
3468
3482
 
3469
- 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, type BookingCancellationAdventure, type BookingCancellationAgentContactLinks, BookingCancellationEmail, type BookingCancellationEmailLabels, type BookingCancellationEmailProps, 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 };
3483
+ 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, type BookingCancellationAdventure, type BookingCancellationAgentContactLinks, BookingCancellationEmail, type BookingCancellationEmailLabels, type BookingCancellationEmailProps, 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 PartnerRegistrationCompleteAgentContactLinks, PartnerRegistrationCompleteEmail, type PartnerRegistrationCompleteEmailExpectationRow, type PartnerRegistrationCompleteEmailLabels, type PartnerRegistrationCompleteEmailProps, 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
@@ -3541,6 +3541,7 @@ function BookingDetails({
3541
3541
  status,
3542
3542
  statusLabel,
3543
3543
  createdAt,
3544
+ cancelledAt,
3544
3545
  contact,
3545
3546
  agent,
3546
3547
  agentName,
@@ -3585,7 +3586,7 @@ function BookingDetails({
3585
3586
  labels,
3586
3587
  className
3587
3588
  }) {
3588
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H;
3589
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J;
3589
3590
  const people = totalPeople(adventures);
3590
3591
  const hasSubmitAddTraveller = !!onSubmitAddTraveller;
3591
3592
  const hasSubmitEditTraveller = !!onSubmitEditTraveller;
@@ -3718,12 +3719,18 @@ function BookingDetails({
3718
3719
  bookingId
3719
3720
  ] })
3720
3721
  ] }),
3721
- /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground font-sans", children: (_b = (_a = labels == null ? void 0 : labels.createdOn) == null ? void 0 : _a.call(labels, createdAt)) != null ? _b : `Created on ${createdAt}` })
3722
+ /* @__PURE__ */ jsxs("p", { className: "text-sm text-muted-foreground font-sans", children: [
3723
+ (_b = (_a = labels == null ? void 0 : labels.createdOn) == null ? void 0 : _a.call(labels, createdAt)) != null ? _b : `Created on ${createdAt}`,
3724
+ cancelledAt && /* @__PURE__ */ jsxs(Fragment, { children: [
3725
+ ", ",
3726
+ /* @__PURE__ */ jsx("span", { className: "text-destructive font-medium", children: (_d = (_c = labels == null ? void 0 : labels.cancelledOn) == null ? void 0 : _c.call(labels, cancelledAt)) != null ? _d : `cancelled on ${cancelledAt}` })
3727
+ ] })
3728
+ ] })
3722
3729
  ] }),
3723
3730
  /* @__PURE__ */ jsx(StatusBadge, { status, label: statusLabel })
3724
3731
  ] }),
3725
3732
  /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-3 gap-3", children: [
3726
- /* @__PURE__ */ jsxs(InfoCard, { label: (_c = labels == null ? void 0 : labels.contactInfo) != null ? _c : "Contact", children: [
3733
+ /* @__PURE__ */ jsxs(InfoCard, { label: (_e = labels == null ? void 0 : labels.contactInfo) != null ? _e : "Contact", children: [
3727
3734
  /* @__PURE__ */ jsx("p", { className: "font-semibold", children: contact.name }),
3728
3735
  contact.email && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground font-sans truncate", children: contact.email })
3729
3736
  ] }),
@@ -3731,7 +3738,7 @@ function BookingDetails({
3731
3738
  AgentContactCard,
3732
3739
  {
3733
3740
  layout: "compact",
3734
- name: (_d = agent == null ? void 0 : agent.name) != null ? _d : agentName,
3741
+ name: (_f = agent == null ? void 0 : agent.name) != null ? _f : agentName,
3735
3742
  avatar: agent == null ? void 0 : agent.avatar,
3736
3743
  email: agent == null ? void 0 : agent.email,
3737
3744
  whatsappUrl: agent == null ? void 0 : agent.whatsappUrl,
@@ -3741,20 +3748,20 @@ function BookingDetails({
3741
3748
  legacyContactLabel: agentContactLabel
3742
3749
  }
3743
3750
  ),
3744
- /* @__PURE__ */ jsxs(InfoCard, { label: (_e = labels == null ? void 0 : labels.totalPeople) != null ? _e : "Total People", children: [
3751
+ /* @__PURE__ */ jsxs(InfoCard, { label: (_g = labels == null ? void 0 : labels.totalPeople) != null ? _g : "Total People", children: [
3745
3752
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
3746
3753
  /* @__PURE__ */ jsx(UsersIcon, { className: "w-4 h-4 text-primary shrink-0" }),
3747
- /* @__PURE__ */ jsx("span", { className: "font-semibold", children: (_g = (_f = labels == null ? void 0 : labels.personCount) == null ? void 0 : _f.call(labels, people.total)) != null ? _g : `${people.total} person(s)` })
3754
+ /* @__PURE__ */ jsx("span", { className: "font-semibold", children: (_i = (_h = labels == null ? void 0 : labels.personCount) == null ? void 0 : _h.call(labels, people.total)) != null ? _i : `${people.total} person(s)` })
3748
3755
  ] }),
3749
3756
  /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground font-sans", children: [
3750
- people.adults > 0 ? (_j = (_i = (_h = labels == null ? void 0 : labels.peopleBreakdown) == null ? void 0 : _h.adults) == null ? void 0 : _i.call(_h, people.adults)) != null ? _j : `Adults: ${people.adults}` : null,
3751
- people.children > 0 ? (_m = (_l = (_k = labels == null ? void 0 : labels.peopleBreakdown) == null ? void 0 : _k.children) == null ? void 0 : _l.call(_k, people.children)) != null ? _m : `Children: ${people.children}` : null,
3752
- people.seniors > 0 ? (_p = (_o = (_n = labels == null ? void 0 : labels.peopleBreakdown) == null ? void 0 : _n.seniors) == null ? void 0 : _o.call(_n, people.seniors)) != null ? _p : `Seniors: ${people.seniors}` : null
3757
+ people.adults > 0 ? (_l = (_k = (_j = labels == null ? void 0 : labels.peopleBreakdown) == null ? void 0 : _j.adults) == null ? void 0 : _k.call(_j, people.adults)) != null ? _l : `Adults: ${people.adults}` : null,
3758
+ people.children > 0 ? (_o = (_n = (_m = labels == null ? void 0 : labels.peopleBreakdown) == null ? void 0 : _m.children) == null ? void 0 : _n.call(_m, people.children)) != null ? _o : `Children: ${people.children}` : null,
3759
+ people.seniors > 0 ? (_r = (_q = (_p = labels == null ? void 0 : labels.peopleBreakdown) == null ? void 0 : _p.seniors) == null ? void 0 : _q.call(_p, people.seniors)) != null ? _r : `Seniors: ${people.seniors}` : null
3753
3760
  ].filter(Boolean).join(" \xB7 ") })
3754
3761
  ] })
3755
3762
  ] }),
3756
3763
  /* @__PURE__ */ jsxs("section", { className: "flex flex-col gap-4", children: [
3757
- /* @__PURE__ */ jsx("h2", { className: "text-xs font-bold text-muted-foreground font-heading uppercase tracking-widest", children: (_r = (_q = labels == null ? void 0 : labels.adventuresSection) == null ? void 0 : _q.call(labels, adventures.length)) != null ? _r : `Adventures (${adventures.length})` }),
3764
+ /* @__PURE__ */ jsx("h2", { className: "text-xs font-bold text-muted-foreground font-heading uppercase tracking-widest", children: (_t = (_s = labels == null ? void 0 : labels.adventuresSection) == null ? void 0 : _s.call(labels, adventures.length)) != null ? _t : `Adventures (${adventures.length})` }),
3758
3765
  adventures.map((adventure) => /* @__PURE__ */ jsx(
3759
3766
  AdventureSection,
3760
3767
  {
@@ -3799,23 +3806,23 @@ function BookingDetails({
3799
3806
  /* @__PURE__ */ jsx("h3", { className: "text-xs font-bold text-muted-foreground font-heading uppercase tracking-widest", children: contactSectionLabel != null ? contactSectionLabel : "Responsible Person" }),
3800
3807
  /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 sm:grid-cols-3 gap-x-6 gap-y-3", children: [
3801
3808
  /* @__PURE__ */ jsxs("div", { children: [
3802
- /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-muted-foreground/60 font-heading uppercase tracking-widest mb-0.5", children: (_t = (_s = labels == null ? void 0 : labels.contactDetailsFields) == null ? void 0 : _s.name) != null ? _t : "Name" }),
3809
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-muted-foreground/60 font-heading uppercase tracking-widest mb-0.5", children: (_v = (_u = labels == null ? void 0 : labels.contactDetailsFields) == null ? void 0 : _u.name) != null ? _v : "Name" }),
3803
3810
  /* @__PURE__ */ jsx("p", { className: "text-sm font-semibold text-foreground font-sans", children: contact.name })
3804
3811
  ] }),
3805
3812
  /* @__PURE__ */ jsxs("div", { children: [
3806
- /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-muted-foreground/60 font-heading uppercase tracking-widest mb-0.5", children: (_v = (_u = labels == null ? void 0 : labels.contactDetailsFields) == null ? void 0 : _u.email) != null ? _v : "Email" }),
3807
- /* @__PURE__ */ jsx("p", { className: "text-sm text-foreground font-sans truncate", children: (_w = contact.email) != null ? _w : "\u2014" })
3813
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-muted-foreground/60 font-heading uppercase tracking-widest mb-0.5", children: (_x = (_w = labels == null ? void 0 : labels.contactDetailsFields) == null ? void 0 : _w.email) != null ? _x : "Email" }),
3814
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-foreground font-sans truncate", children: (_y = contact.email) != null ? _y : "\u2014" })
3808
3815
  ] }),
3809
3816
  /* @__PURE__ */ jsxs("div", { children: [
3810
- /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-muted-foreground/60 font-heading uppercase tracking-widest mb-0.5", children: (_y = (_x = labels == null ? void 0 : labels.contactDetailsFields) == null ? void 0 : _x.phone) != null ? _y : "Phone" }),
3811
- /* @__PURE__ */ jsx("p", { className: "text-sm text-foreground font-sans", children: (_z = contact.phone) != null ? _z : "\u2014" })
3817
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-muted-foreground/60 font-heading uppercase tracking-widest mb-0.5", children: (_A = (_z = labels == null ? void 0 : labels.contactDetailsFields) == null ? void 0 : _z.phone) != null ? _A : "Phone" }),
3818
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-foreground font-sans", children: (_B = contact.phone) != null ? _B : "\u2014" })
3812
3819
  ] }),
3813
3820
  /* @__PURE__ */ jsxs("div", { children: [
3814
- /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-muted-foreground/60 font-heading uppercase tracking-widest mb-0.5", children: (_B = (_A = labels == null ? void 0 : labels.contactDetailsFields) == null ? void 0 : _A.country) != null ? _B : "Country" }),
3815
- /* @__PURE__ */ jsx("p", { className: "text-sm text-foreground font-sans", children: (_C = contact.country) != null ? _C : "\u2014" })
3821
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-muted-foreground/60 font-heading uppercase tracking-widest mb-0.5", children: (_D = (_C = labels == null ? void 0 : labels.contactDetailsFields) == null ? void 0 : _C.country) != null ? _D : "Country" }),
3822
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-foreground font-sans", children: (_E = contact.country) != null ? _E : "\u2014" })
3816
3823
  ] }),
3817
3824
  contact.passport && /* @__PURE__ */ jsxs("div", { children: [
3818
- /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-muted-foreground/60 font-heading uppercase tracking-widest mb-0.5", children: (_E = (_D = labels == null ? void 0 : labels.contactDetailsFields) == null ? void 0 : _D.document) != null ? _E : "Passport / ID" }),
3825
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-muted-foreground/60 font-heading uppercase tracking-widest mb-0.5", children: (_G = (_F = labels == null ? void 0 : labels.contactDetailsFields) == null ? void 0 : _F.document) != null ? _G : "Passport / ID" }),
3819
3826
  /* @__PURE__ */ jsx("p", { className: "text-sm text-foreground font-sans", children: contact.passport })
3820
3827
  ] }),
3821
3828
  (() => {
@@ -3876,7 +3883,7 @@ function BookingDetails({
3876
3883
  className: "flex items-center gap-1.5 text-xs font-ui text-muted-foreground hover:text-destructive transition-colors underline underline-offset-2",
3877
3884
  children: [
3878
3885
  /* @__PURE__ */ jsx(AlertCircleIcon, { className: "w-3 h-3" }),
3879
- (_F = labels == null ? void 0 : labels.cancelRequestLabel) != null ? _F : "Request cancellation"
3886
+ (_H = labels == null ? void 0 : labels.cancelRequestLabel) != null ? _H : "Request cancellation"
3880
3887
  ]
3881
3888
  }
3882
3889
  )
@@ -3926,7 +3933,7 @@ function BookingDetails({
3926
3933
  ResendInviteConfirmDialog,
3927
3934
  {
3928
3935
  open: resendInviteDialogState.open,
3929
- travellerName: resendInviteDialogState.traveller ? `${(_G = resendInviteDialogState.traveller.firstName) != null ? _G : ""} ${(_H = resendInviteDialogState.traveller.lastName) != null ? _H : ""}`.trim() : "",
3936
+ travellerName: resendInviteDialogState.traveller ? `${(_I = resendInviteDialogState.traveller.firstName) != null ? _I : ""} ${(_J = resendInviteDialogState.traveller.lastName) != null ? _J : ""}`.trim() : "",
3930
3937
  onClose: closeResendInviteDialog,
3931
3938
  onConfirm: () => {
3932
3939
  const traveller = resendInviteDialogState.traveller;
@@ -6187,7 +6194,7 @@ var DEFAULT_LABELS8 = {
6187
6194
  function hasText4(s) {
6188
6195
  return typeof s === "string" && s.trim().length > 0;
6189
6196
  }
6190
- function PartnerConfirmationEmail({
6197
+ function PartnerRegistrationCompleteEmail({
6191
6198
  scenario,
6192
6199
  topNotice,
6193
6200
  partnerName,
@@ -6373,6 +6380,7 @@ var DEFAULT_LABELS9 = {
6373
6380
  adventureLabel: "Adventure",
6374
6381
  datesLabel: "Dates",
6375
6382
  numberOfPeopleLabel: "Number of Travellers",
6383
+ optionalsLabel: "Optionals",
6376
6384
  registrationPendingNotice: "The travellers' registration details will be sent to you as soon as all travellers have completed their forms.",
6377
6385
  mustReplyToConfirm: "Please reply to this email to confirm the booking.",
6378
6386
  closingAgent: (agentName, contact) => /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -6395,6 +6403,7 @@ function PartnerBookingCreatedEmail({
6395
6403
  adventureName,
6396
6404
  dateRange,
6397
6405
  travellersCount,
6406
+ optionals,
6398
6407
  booker,
6399
6408
  agent,
6400
6409
  logoUrl,
@@ -6408,7 +6417,8 @@ function PartnerBookingCreatedEmail({
6408
6417
  { label: l.bookingNumberLabel, value: `#${bookingNumber}`, valueColor: emailTokens.primary },
6409
6418
  { label: l.adventureLabel, value: adventureName },
6410
6419
  { label: l.datesLabel, value: dateRange },
6411
- { label: l.numberOfPeopleLabel, value: travellersCount }
6420
+ { label: l.numberOfPeopleLabel, value: travellersCount },
6421
+ ...optionals && optionals.length ? [{ label: l.optionalsLabel, value: optionals.join("\n") }] : []
6412
6422
  ];
6413
6423
  const sectionDivider = /* @__PURE__ */ jsx(
6414
6424
  "hr",
@@ -14268,6 +14278,6 @@ function LeadCapturePopup({
14268
14278
  );
14269
14279
  }
14270
14280
 
14271
- export { ActivityCard, AgentContactCard, Alert, BirthDateField, BookingAdventureCard, BookingCancellationEmail, BookingConfirmedCard, BookingCreatedEmail, BookingDetails, BookingForm, BookingOtpEmail, BookingPaymentConfirmationEmail, BookingShell, BookingSummary, Button, COUNTRIES, CounterField, CountrySearchField, DEFAULT_HEADER_LINKS, DEFAULT_LANGUAGES, DatePickerField, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, FilterPanel, FloatingInput, FloatingSelect, Itinerary, ItineraryDay, LOGO_PLANETAEXO_DATA_URI, LeadCapturePopup, MenuTrip, OTPCodeInput, Offer, OfferAdventureCard, PartnerBookingCreatedEmail, PartnerConfirmationEmail, PaymentAmountSelector, PaymentDetailsBlock, PaymentMethodSelector, PaymentModalShell, PaymentReceiptEmail, PaymentReminderEmail, PhoneCountrySelect, PhotoGallery, PricingTrip, RegistrationForm, RegistrationProgressBar, RegistrationReminderEmail, RegistrationReminderIndividualEmail, RegistrationSuccessCard, SiteHeader, TERMS_ACCEPT_KEY, TermsSection, ThemeToggle, Toast, TransferDetailsBlock, TravellerFormInviteEmail, TripCard, TripHeader, TripPage, TrustpilotEmbed, buttonVariants, cn, emailTokens, formatCpf, getStripeAppearance, itineraryDaySpecIcons, stripeAppearance, validateCpf, wrapEmailHtml };
14281
+ export { ActivityCard, AgentContactCard, Alert, BirthDateField, BookingAdventureCard, BookingCancellationEmail, BookingConfirmedCard, BookingCreatedEmail, BookingDetails, BookingForm, BookingOtpEmail, BookingPaymentConfirmationEmail, BookingShell, BookingSummary, Button, COUNTRIES, CounterField, CountrySearchField, DEFAULT_HEADER_LINKS, DEFAULT_LANGUAGES, DatePickerField, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, FilterPanel, FloatingInput, FloatingSelect, Itinerary, ItineraryDay, LOGO_PLANETAEXO_DATA_URI, LeadCapturePopup, MenuTrip, OTPCodeInput, Offer, OfferAdventureCard, PartnerBookingCreatedEmail, PartnerRegistrationCompleteEmail, PaymentAmountSelector, PaymentDetailsBlock, PaymentMethodSelector, PaymentModalShell, PaymentReceiptEmail, PaymentReminderEmail, PhoneCountrySelect, PhotoGallery, PricingTrip, RegistrationForm, RegistrationProgressBar, RegistrationReminderEmail, RegistrationReminderIndividualEmail, RegistrationSuccessCard, SiteHeader, TERMS_ACCEPT_KEY, TermsSection, ThemeToggle, Toast, TransferDetailsBlock, TravellerFormInviteEmail, TripCard, TripHeader, TripPage, TrustpilotEmbed, buttonVariants, cn, emailTokens, formatCpf, getStripeAppearance, itineraryDaySpecIcons, stripeAppearance, validateCpf, wrapEmailHtml };
14272
14282
  //# sourceMappingURL=index.js.map
14273
14283
  //# sourceMappingURL=index.js.map