@travories/frontend-sdk 0.1.3 → 0.1.4

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.mts CHANGED
@@ -521,6 +521,15 @@ interface PackageCardProps {
521
521
  */
522
522
  declare const PackageCard: React.FC<PackageCardProps>;
523
523
 
524
+ /** Booking details the user picked in the BookingCardLite when they hit Reserve. */
525
+ interface ReservePayload {
526
+ pkg: TravoriesPackage;
527
+ arrival: string;
528
+ departure: string;
529
+ travelers: BookingTraveler[];
530
+ totalCost: number;
531
+ pricePerPerson: number;
532
+ }
524
533
  interface PackageDetailViewProps {
525
534
  /** Travories SDK client. Required when using `slug`. */
526
535
  client?: TravoriesClient;
@@ -530,8 +539,10 @@ interface PackageDetailViewProps {
530
539
  initialBundle?: PackageBundle | null;
531
540
  /** Currency code for prices (default "USD"). */
532
541
  currency?: string;
533
- /** Called when the user hits Reserve. If omitted, the button shows a disabled state. */
534
- onReserve?: (pkg: TravoriesPackage) => void;
542
+ /** Called when the user hits Reserve. Receives the full picked payload
543
+ * (pkg + arrival date + travelers + computed totals). Return a Promise to
544
+ * show an "Initiating…" state on the CTA until it resolves. */
545
+ onReserve?: (payload: ReservePayload) => void | Promise<void>;
535
546
  /** Called when the user clicks the host card. Receives the host. */
536
547
  onSelectHost?: (host: PackageHost) => void;
537
548
  /** When set, host card renders as `<a href={agencyHrefFor(host)}>` — enables
@@ -654,7 +665,7 @@ interface DescriptionSectionProps {
654
665
  DescriptionData: DescriptionData;
655
666
  topData: TopData;
656
667
  currency?: string;
657
- onReserve?: (pkg: TravoriesPackage) => void;
668
+ onReserve?: (payload: ReservePayload) => void | Promise<void>;
658
669
  pkg: TravoriesPackage;
659
670
  routes?: PackageRoutesDay[];
660
671
  }
@@ -730,16 +741,6 @@ interface HostAboutProps {
730
741
  }
731
742
  declare const HostAbout: React.FC<HostAboutProps>;
732
743
 
733
- type TravelerOption = {
734
- id: "Adult" | "Senior Citizen" | "Children" | "Infant";
735
- name: string;
736
- count: number;
737
- ageRange?: {
738
- min: number;
739
- max: number;
740
- };
741
- countInTotal: boolean;
742
- };
743
744
  interface BookingCardLiteProps {
744
745
  DescriptionData: DescriptionData;
745
746
  currency?: string;
@@ -749,7 +750,11 @@ interface BookingCardLiteProps {
749
750
  onReserve?: (payload: {
750
751
  arrival: string;
751
752
  departure: string;
752
- travelers: TravelerOption[];
753
+ /** Same shape `client.bookings.initiate()` accepts. */
754
+ travelers: {
755
+ name: string;
756
+ count: number;
757
+ }[];
753
758
  totalCost: number;
754
759
  pricePerPerson: number;
755
760
  }) => void | Promise<void>;
@@ -819,4 +824,4 @@ declare function startingPrice(prices: PackagePriceTier[] | undefined): number;
819
824
  declare function formatCurrency(amount: number, currency?: string): string;
820
825
  declare function formatRating(rating: number | undefined): string;
821
826
 
822
- export { AgenciesResource, type AgencyAssociationItem, AgencyAssociations, type AgencyBundle, AgencyDetailView, type AgencyDetailViewProps, type AgencyHostDetails, type AgencyHostResponse, BookingCardLite, type BookingInitiateRequest, type BookingInitiateResponse, type BookingTraveler, BookingsResource, type DescriptionData, DescriptionSection, GallerySection, type HomePackageCard, type HomeSectionKey, HomeSections, type HomeSectionsContextValue, type HomeSectionsProps, HomeSectionsProvider, type HomeSectionsProviderProps, type HomeSectionsResponse, HostAbout, HostCard, type HttpClientConfig, type HttpRequestOptions, Itinerary, type MajorAttractionItem, type MajorAttractionsResponse, type MediaItem, type PackageBundle, PackageCard, type PackageDay, type PackageDayLocation, PackageDetailView, type PackageDetailViewProps, type PackageDiscount, PackageExcludedAndToPack, type PackageHost, type PackageHostResponse, PackageIncluded, PackageMap, PackageOverview, type PackagePriceTier, type PackageRoute, type PackageRouteGeometry, type PackageRoutesDay, type PackageRoutesResponse, PackagesCarousel, PackagesResource, PackagesSection, type PackagesSectionProps, type ThingItem, type TopData, TopSection, TravoriesApiError, TravoriesClient, type TravoriesClientConfig, type TravoriesImage, type TravoriesImageUrls, type TravoriesPackage, type UseAgencyBundleResult, type UseHomeSectionsResult, type UsePackageBundleResult, type UsePackageBySlugResult, buildDescriptionData, buildGalleryMedia, buildTopData, createTravoriesClient, formatCurrency, formatRating, pickImageUrl, startingPrice, useAgencyBundle, useHomeSections, useHomeSectionsContext, usePackageBundle, usePackageBySlug };
827
+ export { AgenciesResource, type AgencyAssociationItem, AgencyAssociations, type AgencyBundle, AgencyDetailView, type AgencyDetailViewProps, type AgencyHostDetails, type AgencyHostResponse, BookingCardLite, type BookingInitiateRequest, type BookingInitiateResponse, type BookingTraveler, BookingsResource, type DescriptionData, DescriptionSection, GallerySection, type HomePackageCard, type HomeSectionKey, HomeSections, type HomeSectionsContextValue, type HomeSectionsProps, HomeSectionsProvider, type HomeSectionsProviderProps, type HomeSectionsResponse, HostAbout, HostCard, type HttpClientConfig, type HttpRequestOptions, Itinerary, type MajorAttractionItem, type MajorAttractionsResponse, type MediaItem, type PackageBundle, PackageCard, type PackageDay, type PackageDayLocation, PackageDetailView, type PackageDetailViewProps, type PackageDiscount, PackageExcludedAndToPack, type PackageHost, type PackageHostResponse, PackageIncluded, PackageMap, PackageOverview, type PackagePriceTier, type PackageRoute, type PackageRouteGeometry, type PackageRoutesDay, type PackageRoutesResponse, PackagesCarousel, PackagesResource, PackagesSection, type PackagesSectionProps, type ReservePayload, type ThingItem, type TopData, TopSection, TravoriesApiError, TravoriesClient, type TravoriesClientConfig, type TravoriesImage, type TravoriesImageUrls, type TravoriesPackage, type UseAgencyBundleResult, type UseHomeSectionsResult, type UsePackageBundleResult, type UsePackageBySlugResult, buildDescriptionData, buildGalleryMedia, buildTopData, createTravoriesClient, formatCurrency, formatRating, pickImageUrl, startingPrice, useAgencyBundle, useHomeSections, useHomeSectionsContext, usePackageBundle, usePackageBySlug };
package/dist/index.d.ts CHANGED
@@ -521,6 +521,15 @@ interface PackageCardProps {
521
521
  */
522
522
  declare const PackageCard: React.FC<PackageCardProps>;
523
523
 
524
+ /** Booking details the user picked in the BookingCardLite when they hit Reserve. */
525
+ interface ReservePayload {
526
+ pkg: TravoriesPackage;
527
+ arrival: string;
528
+ departure: string;
529
+ travelers: BookingTraveler[];
530
+ totalCost: number;
531
+ pricePerPerson: number;
532
+ }
524
533
  interface PackageDetailViewProps {
525
534
  /** Travories SDK client. Required when using `slug`. */
526
535
  client?: TravoriesClient;
@@ -530,8 +539,10 @@ interface PackageDetailViewProps {
530
539
  initialBundle?: PackageBundle | null;
531
540
  /** Currency code for prices (default "USD"). */
532
541
  currency?: string;
533
- /** Called when the user hits Reserve. If omitted, the button shows a disabled state. */
534
- onReserve?: (pkg: TravoriesPackage) => void;
542
+ /** Called when the user hits Reserve. Receives the full picked payload
543
+ * (pkg + arrival date + travelers + computed totals). Return a Promise to
544
+ * show an "Initiating…" state on the CTA until it resolves. */
545
+ onReserve?: (payload: ReservePayload) => void | Promise<void>;
535
546
  /** Called when the user clicks the host card. Receives the host. */
536
547
  onSelectHost?: (host: PackageHost) => void;
537
548
  /** When set, host card renders as `<a href={agencyHrefFor(host)}>` — enables
@@ -654,7 +665,7 @@ interface DescriptionSectionProps {
654
665
  DescriptionData: DescriptionData;
655
666
  topData: TopData;
656
667
  currency?: string;
657
- onReserve?: (pkg: TravoriesPackage) => void;
668
+ onReserve?: (payload: ReservePayload) => void | Promise<void>;
658
669
  pkg: TravoriesPackage;
659
670
  routes?: PackageRoutesDay[];
660
671
  }
@@ -730,16 +741,6 @@ interface HostAboutProps {
730
741
  }
731
742
  declare const HostAbout: React.FC<HostAboutProps>;
732
743
 
733
- type TravelerOption = {
734
- id: "Adult" | "Senior Citizen" | "Children" | "Infant";
735
- name: string;
736
- count: number;
737
- ageRange?: {
738
- min: number;
739
- max: number;
740
- };
741
- countInTotal: boolean;
742
- };
743
744
  interface BookingCardLiteProps {
744
745
  DescriptionData: DescriptionData;
745
746
  currency?: string;
@@ -749,7 +750,11 @@ interface BookingCardLiteProps {
749
750
  onReserve?: (payload: {
750
751
  arrival: string;
751
752
  departure: string;
752
- travelers: TravelerOption[];
753
+ /** Same shape `client.bookings.initiate()` accepts. */
754
+ travelers: {
755
+ name: string;
756
+ count: number;
757
+ }[];
753
758
  totalCost: number;
754
759
  pricePerPerson: number;
755
760
  }) => void | Promise<void>;
@@ -819,4 +824,4 @@ declare function startingPrice(prices: PackagePriceTier[] | undefined): number;
819
824
  declare function formatCurrency(amount: number, currency?: string): string;
820
825
  declare function formatRating(rating: number | undefined): string;
821
826
 
822
- export { AgenciesResource, type AgencyAssociationItem, AgencyAssociations, type AgencyBundle, AgencyDetailView, type AgencyDetailViewProps, type AgencyHostDetails, type AgencyHostResponse, BookingCardLite, type BookingInitiateRequest, type BookingInitiateResponse, type BookingTraveler, BookingsResource, type DescriptionData, DescriptionSection, GallerySection, type HomePackageCard, type HomeSectionKey, HomeSections, type HomeSectionsContextValue, type HomeSectionsProps, HomeSectionsProvider, type HomeSectionsProviderProps, type HomeSectionsResponse, HostAbout, HostCard, type HttpClientConfig, type HttpRequestOptions, Itinerary, type MajorAttractionItem, type MajorAttractionsResponse, type MediaItem, type PackageBundle, PackageCard, type PackageDay, type PackageDayLocation, PackageDetailView, type PackageDetailViewProps, type PackageDiscount, PackageExcludedAndToPack, type PackageHost, type PackageHostResponse, PackageIncluded, PackageMap, PackageOverview, type PackagePriceTier, type PackageRoute, type PackageRouteGeometry, type PackageRoutesDay, type PackageRoutesResponse, PackagesCarousel, PackagesResource, PackagesSection, type PackagesSectionProps, type ThingItem, type TopData, TopSection, TravoriesApiError, TravoriesClient, type TravoriesClientConfig, type TravoriesImage, type TravoriesImageUrls, type TravoriesPackage, type UseAgencyBundleResult, type UseHomeSectionsResult, type UsePackageBundleResult, type UsePackageBySlugResult, buildDescriptionData, buildGalleryMedia, buildTopData, createTravoriesClient, formatCurrency, formatRating, pickImageUrl, startingPrice, useAgencyBundle, useHomeSections, useHomeSectionsContext, usePackageBundle, usePackageBySlug };
827
+ export { AgenciesResource, type AgencyAssociationItem, AgencyAssociations, type AgencyBundle, AgencyDetailView, type AgencyDetailViewProps, type AgencyHostDetails, type AgencyHostResponse, BookingCardLite, type BookingInitiateRequest, type BookingInitiateResponse, type BookingTraveler, BookingsResource, type DescriptionData, DescriptionSection, GallerySection, type HomePackageCard, type HomeSectionKey, HomeSections, type HomeSectionsContextValue, type HomeSectionsProps, HomeSectionsProvider, type HomeSectionsProviderProps, type HomeSectionsResponse, HostAbout, HostCard, type HttpClientConfig, type HttpRequestOptions, Itinerary, type MajorAttractionItem, type MajorAttractionsResponse, type MediaItem, type PackageBundle, PackageCard, type PackageDay, type PackageDayLocation, PackageDetailView, type PackageDetailViewProps, type PackageDiscount, PackageExcludedAndToPack, type PackageHost, type PackageHostResponse, PackageIncluded, PackageMap, PackageOverview, type PackagePriceTier, type PackageRoute, type PackageRouteGeometry, type PackageRoutesDay, type PackageRoutesResponse, PackagesCarousel, PackagesResource, PackagesSection, type PackagesSectionProps, type ReservePayload, type ThingItem, type TopData, TopSection, TravoriesApiError, TravoriesClient, type TravoriesClientConfig, type TravoriesImage, type TravoriesImageUrls, type TravoriesPackage, type UseAgencyBundleResult, type UseHomeSectionsResult, type UsePackageBundleResult, type UsePackageBySlugResult, buildDescriptionData, buildGalleryMedia, buildTopData, createTravoriesClient, formatCurrency, formatRating, pickImageUrl, startingPrice, useAgencyBundle, useHomeSections, useHomeSectionsContext, usePackageBundle, usePackageBySlug };
package/dist/index.js CHANGED
@@ -1001,10 +1001,11 @@ var BookingCardLite = ({
1001
1001
  const handleReserve = () => {
1002
1002
  if (!onReserve) return;
1003
1003
  if (allPeopleCount === 0) return;
1004
+ const travelers = options.filter((o) => o.count > 0).map((o) => ({ name: o.name, count: o.count }));
1004
1005
  const result = onReserve({
1005
1006
  arrival,
1006
1007
  departure,
1007
- travelers: options.filter((o) => o.count > 0),
1008
+ travelers,
1008
1009
  totalCost,
1009
1010
  pricePerPerson: currentPrice
1010
1011
  });
@@ -2078,7 +2079,7 @@ var DescriptionSection = ({
2078
2079
  {
2079
2080
  DescriptionData,
2080
2081
  currency,
2081
- onReserve: onReserve ? () => onReserve(pkg) : void 0
2082
+ onReserve: onReserve ? (booking) => onReserve({ pkg, ...booking }) : void 0
2082
2083
  }
2083
2084
  ) })
2084
2085
  ]