@planetaexo/design-system 0.76.0 → 0.77.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +22 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +31 -3
- package/dist/index.d.ts +31 -3
- package/dist/index.js +22 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -3626,6 +3626,17 @@ interface TripHeaderChip {
|
|
|
3626
3626
|
interface TripHeaderProps {
|
|
3627
3627
|
/** Hero image array — shows a carousel when more than one image */
|
|
3628
3628
|
images: string[];
|
|
3629
|
+
/**
|
|
3630
|
+
* Responsive `srcSet`/`sizes` for the FIRST hero image (the LCP element),
|
|
3631
|
+
* letting phones fetch a smaller width than the full-bleed desktop cover.
|
|
3632
|
+
* Applied to the video poster and to carousel slide 0 only; the off-screen
|
|
3633
|
+
* slides keep their single `images[i]` src. Omit for the legacy single-src
|
|
3634
|
+
* behaviour. (The host app builds these — e.g. one `/_next/image` URL per
|
|
3635
|
+
* width — since the DS doesn't know the optimizer's allowed widths.)
|
|
3636
|
+
*/
|
|
3637
|
+
heroImageSrcSet?: string;
|
|
3638
|
+
/** `sizes` paired with {@link heroImageSrcSet} (e.g. `"100vw"`). */
|
|
3639
|
+
heroImageSizes?: string;
|
|
3629
3640
|
/** Optional video URL — plays as background instead of the image carousel */
|
|
3630
3641
|
videoUrl?: string;
|
|
3631
3642
|
/** Main trip title */
|
|
@@ -3665,7 +3676,7 @@ interface TripHeaderProps {
|
|
|
3665
3676
|
uiVariant?: "v1" | "v2";
|
|
3666
3677
|
className?: string;
|
|
3667
3678
|
}
|
|
3668
|
-
declare function TripHeader({ images, videoUrl, title, breadcrumb, destination, duration, groupSize, labels, tagline, chips, belowMeta, siteHeader, uiVariant, className, }: TripHeaderProps): react_jsx_runtime.JSX.Element;
|
|
3679
|
+
declare function TripHeader({ images, heroImageSrcSet, heroImageSizes, videoUrl, title, breadcrumb, destination, duration, groupSize, labels, tagline, chips, belowMeta, siteHeader, uiVariant, className, }: TripHeaderProps): react_jsx_runtime.JSX.Element;
|
|
3669
3680
|
|
|
3670
3681
|
interface SiteFooterChip {
|
|
3671
3682
|
label: string;
|
|
@@ -3907,6 +3918,14 @@ interface TripPageProps {
|
|
|
3907
3918
|
/** Group size shown with a people icon in the hero meta row */
|
|
3908
3919
|
groupSize?: string;
|
|
3909
3920
|
images: string[];
|
|
3921
|
+
/**
|
|
3922
|
+
* Responsive `srcSet`/`sizes` for the first hero image (LCP) — forwarded to
|
|
3923
|
+
* {@link TripHeader} so phones fetch a smaller width than the desktop cover.
|
|
3924
|
+
* Omit for legacy single-src behaviour.
|
|
3925
|
+
*/
|
|
3926
|
+
heroImageSrcSet?: string;
|
|
3927
|
+
/** `sizes` paired with {@link heroImageSrcSet} (e.g. `"100vw"`). */
|
|
3928
|
+
heroImageSizes?: string;
|
|
3910
3929
|
/** Optional video URL — plays as background instead of the image carousel */
|
|
3911
3930
|
videoUrl?: string;
|
|
3912
3931
|
/** Breadcrumb trail displayed above the title */
|
|
@@ -4066,7 +4085,7 @@ interface TripPageProps {
|
|
|
4066
4085
|
features?: Record<string, boolean>;
|
|
4067
4086
|
className?: string;
|
|
4068
4087
|
}
|
|
4069
|
-
declare function TripPage({ title, tagline, destination, duration, groupSize, images, videoUrl, breadcrumb, chips, highlights, howToGetThere, recommendedFor, overview, overviewHighlights, itinerary, itineraryDays, gallery, galleryLightbox, included, notIncluded, whatToBring, weather, optionalExtras, accommodation, accommodationGallery, accommodationGalleryVariant, whenItOperates, food, foodGallery, foodGalleryVariant, termsAndConditions, meetingPoints, meetingPoint, faqs, faqInitialCount, sectionIcons, labels, reviews, trustpilot, trustpilotMini, trustpilotHero, priceFrom, currency, season, departureTimes, benefits, currencyEstimates, priceInfo, onBook, onBookingSubmit, bookingLoading, bookingDefaults, bookingLabels, bookLabel, fromLabel, perPersonLabel, siteHeader, footerBadges, uiVariant, features, className, }: TripPageProps): react_jsx_runtime.JSX.Element;
|
|
4088
|
+
declare function TripPage({ title, tagline, destination, duration, groupSize, images, heroImageSrcSet, heroImageSizes, videoUrl, breadcrumb, chips, highlights, howToGetThere, recommendedFor, overview, overviewHighlights, itinerary, itineraryDays, gallery, galleryLightbox, included, notIncluded, whatToBring, weather, optionalExtras, accommodation, accommodationGallery, accommodationGalleryVariant, whenItOperates, food, foodGallery, foodGalleryVariant, termsAndConditions, meetingPoints, meetingPoint, faqs, faqInitialCount, sectionIcons, labels, reviews, trustpilot, trustpilotMini, trustpilotHero, priceFrom, currency, season, departureTimes, benefits, currencyEstimates, priceInfo, onBook, onBookingSubmit, bookingLoading, bookingDefaults, bookingLabels, bookLabel, fromLabel, perPersonLabel, siteHeader, footerBadges, uiVariant, features, className, }: TripPageProps): react_jsx_runtime.JSX.Element;
|
|
4070
4089
|
|
|
4071
4090
|
interface Category2Trip extends TripCardProps {
|
|
4072
4091
|
/** Marca a trip como featured — sobe para o topo do grid principal. */
|
|
@@ -4180,6 +4199,15 @@ interface CategoryPage2Props {
|
|
|
4180
4199
|
faqInitialCount?: number;
|
|
4181
4200
|
gallery?: (string | PhotoGalleryPhoto)[];
|
|
4182
4201
|
galleryTitle?: string;
|
|
4202
|
+
/**
|
|
4203
|
+
* Lightbox mode for the photo gallery when a photo is tapped.
|
|
4204
|
+
* - `"classic"` — paged single-photo view with prev/next arrows (default).
|
|
4205
|
+
* - `"feed"` — Airbnb "photo tour": one vertical scrollable column of every
|
|
4206
|
+
* photo, opened scrolled to the tapped one (white captions overlaid, focused
|
|
4207
|
+
* photo full-opacity, neighbours dimmed). Pass `"feed"` on mobile.
|
|
4208
|
+
* @default "classic"
|
|
4209
|
+
*/
|
|
4210
|
+
galleryLightbox?: "classic" | "feed";
|
|
4183
4211
|
/** Trips-list expand button: "Load more" (count appended). */
|
|
4184
4212
|
loadMoreLabel?: string;
|
|
4185
4213
|
/** Expand/collapse collapse button: "Show less". */
|
|
@@ -4194,7 +4222,7 @@ interface CategoryPage2Props {
|
|
|
4194
4222
|
filterLabels?: FilterPanelLabels;
|
|
4195
4223
|
className?: string;
|
|
4196
4224
|
}
|
|
4197
|
-
declare function CategoryPage2({ title, intro, heroImage, videoUrl, trustpilotMini, breadcrumb, siteHeader, heroRightSlot, popularTours, popularToursTitle, popularToursEyebrow, trips, tripsTitle, tripsEyebrow, filterGroups, sortOptions, defaultSort, tripsInitialCount, tripListingSlot, trustpilot, reviewsTitle, reviewsSubtitle, blogPosts, aboutTitle, aboutContent, blogIntro, travelGuideHref, travelGuideLabel, blogPostsTitle, blogPostsViewAllHref, faqs, faqsTitle, faqInitialCount, gallery, galleryTitle, loadMoreLabel, showLessLabel, seeMoreLabel, viewAllPostsLabel, cardLabels, filterLabels, footerBadges, className, }: CategoryPage2Props): react_jsx_runtime.JSX.Element;
|
|
4225
|
+
declare function CategoryPage2({ title, intro, heroImage, videoUrl, trustpilotMini, breadcrumb, siteHeader, heroRightSlot, popularTours, popularToursTitle, popularToursEyebrow, trips, tripsTitle, tripsEyebrow, filterGroups, sortOptions, defaultSort, tripsInitialCount, tripListingSlot, trustpilot, reviewsTitle, reviewsSubtitle, blogPosts, aboutTitle, aboutContent, blogIntro, travelGuideHref, travelGuideLabel, blogPostsTitle, blogPostsViewAllHref, faqs, faqsTitle, faqInitialCount, gallery, galleryTitle, galleryLightbox, loadMoreLabel, showLessLabel, seeMoreLabel, viewAllPostsLabel, cardLabels, filterLabels, footerBadges, className, }: CategoryPage2Props): react_jsx_runtime.JSX.Element;
|
|
4198
4226
|
|
|
4199
4227
|
type ActivityCardSize = "sm" | "md" | "lg";
|
|
4200
4228
|
interface ActivityCardProps {
|
package/dist/index.d.ts
CHANGED
|
@@ -3626,6 +3626,17 @@ interface TripHeaderChip {
|
|
|
3626
3626
|
interface TripHeaderProps {
|
|
3627
3627
|
/** Hero image array — shows a carousel when more than one image */
|
|
3628
3628
|
images: string[];
|
|
3629
|
+
/**
|
|
3630
|
+
* Responsive `srcSet`/`sizes` for the FIRST hero image (the LCP element),
|
|
3631
|
+
* letting phones fetch a smaller width than the full-bleed desktop cover.
|
|
3632
|
+
* Applied to the video poster and to carousel slide 0 only; the off-screen
|
|
3633
|
+
* slides keep their single `images[i]` src. Omit for the legacy single-src
|
|
3634
|
+
* behaviour. (The host app builds these — e.g. one `/_next/image` URL per
|
|
3635
|
+
* width — since the DS doesn't know the optimizer's allowed widths.)
|
|
3636
|
+
*/
|
|
3637
|
+
heroImageSrcSet?: string;
|
|
3638
|
+
/** `sizes` paired with {@link heroImageSrcSet} (e.g. `"100vw"`). */
|
|
3639
|
+
heroImageSizes?: string;
|
|
3629
3640
|
/** Optional video URL — plays as background instead of the image carousel */
|
|
3630
3641
|
videoUrl?: string;
|
|
3631
3642
|
/** Main trip title */
|
|
@@ -3665,7 +3676,7 @@ interface TripHeaderProps {
|
|
|
3665
3676
|
uiVariant?: "v1" | "v2";
|
|
3666
3677
|
className?: string;
|
|
3667
3678
|
}
|
|
3668
|
-
declare function TripHeader({ images, videoUrl, title, breadcrumb, destination, duration, groupSize, labels, tagline, chips, belowMeta, siteHeader, uiVariant, className, }: TripHeaderProps): react_jsx_runtime.JSX.Element;
|
|
3679
|
+
declare function TripHeader({ images, heroImageSrcSet, heroImageSizes, videoUrl, title, breadcrumb, destination, duration, groupSize, labels, tagline, chips, belowMeta, siteHeader, uiVariant, className, }: TripHeaderProps): react_jsx_runtime.JSX.Element;
|
|
3669
3680
|
|
|
3670
3681
|
interface SiteFooterChip {
|
|
3671
3682
|
label: string;
|
|
@@ -3907,6 +3918,14 @@ interface TripPageProps {
|
|
|
3907
3918
|
/** Group size shown with a people icon in the hero meta row */
|
|
3908
3919
|
groupSize?: string;
|
|
3909
3920
|
images: string[];
|
|
3921
|
+
/**
|
|
3922
|
+
* Responsive `srcSet`/`sizes` for the first hero image (LCP) — forwarded to
|
|
3923
|
+
* {@link TripHeader} so phones fetch a smaller width than the desktop cover.
|
|
3924
|
+
* Omit for legacy single-src behaviour.
|
|
3925
|
+
*/
|
|
3926
|
+
heroImageSrcSet?: string;
|
|
3927
|
+
/** `sizes` paired with {@link heroImageSrcSet} (e.g. `"100vw"`). */
|
|
3928
|
+
heroImageSizes?: string;
|
|
3910
3929
|
/** Optional video URL — plays as background instead of the image carousel */
|
|
3911
3930
|
videoUrl?: string;
|
|
3912
3931
|
/** Breadcrumb trail displayed above the title */
|
|
@@ -4066,7 +4085,7 @@ interface TripPageProps {
|
|
|
4066
4085
|
features?: Record<string, boolean>;
|
|
4067
4086
|
className?: string;
|
|
4068
4087
|
}
|
|
4069
|
-
declare function TripPage({ title, tagline, destination, duration, groupSize, images, videoUrl, breadcrumb, chips, highlights, howToGetThere, recommendedFor, overview, overviewHighlights, itinerary, itineraryDays, gallery, galleryLightbox, included, notIncluded, whatToBring, weather, optionalExtras, accommodation, accommodationGallery, accommodationGalleryVariant, whenItOperates, food, foodGallery, foodGalleryVariant, termsAndConditions, meetingPoints, meetingPoint, faqs, faqInitialCount, sectionIcons, labels, reviews, trustpilot, trustpilotMini, trustpilotHero, priceFrom, currency, season, departureTimes, benefits, currencyEstimates, priceInfo, onBook, onBookingSubmit, bookingLoading, bookingDefaults, bookingLabels, bookLabel, fromLabel, perPersonLabel, siteHeader, footerBadges, uiVariant, features, className, }: TripPageProps): react_jsx_runtime.JSX.Element;
|
|
4088
|
+
declare function TripPage({ title, tagline, destination, duration, groupSize, images, heroImageSrcSet, heroImageSizes, videoUrl, breadcrumb, chips, highlights, howToGetThere, recommendedFor, overview, overviewHighlights, itinerary, itineraryDays, gallery, galleryLightbox, included, notIncluded, whatToBring, weather, optionalExtras, accommodation, accommodationGallery, accommodationGalleryVariant, whenItOperates, food, foodGallery, foodGalleryVariant, termsAndConditions, meetingPoints, meetingPoint, faqs, faqInitialCount, sectionIcons, labels, reviews, trustpilot, trustpilotMini, trustpilotHero, priceFrom, currency, season, departureTimes, benefits, currencyEstimates, priceInfo, onBook, onBookingSubmit, bookingLoading, bookingDefaults, bookingLabels, bookLabel, fromLabel, perPersonLabel, siteHeader, footerBadges, uiVariant, features, className, }: TripPageProps): react_jsx_runtime.JSX.Element;
|
|
4070
4089
|
|
|
4071
4090
|
interface Category2Trip extends TripCardProps {
|
|
4072
4091
|
/** Marca a trip como featured — sobe para o topo do grid principal. */
|
|
@@ -4180,6 +4199,15 @@ interface CategoryPage2Props {
|
|
|
4180
4199
|
faqInitialCount?: number;
|
|
4181
4200
|
gallery?: (string | PhotoGalleryPhoto)[];
|
|
4182
4201
|
galleryTitle?: string;
|
|
4202
|
+
/**
|
|
4203
|
+
* Lightbox mode for the photo gallery when a photo is tapped.
|
|
4204
|
+
* - `"classic"` — paged single-photo view with prev/next arrows (default).
|
|
4205
|
+
* - `"feed"` — Airbnb "photo tour": one vertical scrollable column of every
|
|
4206
|
+
* photo, opened scrolled to the tapped one (white captions overlaid, focused
|
|
4207
|
+
* photo full-opacity, neighbours dimmed). Pass `"feed"` on mobile.
|
|
4208
|
+
* @default "classic"
|
|
4209
|
+
*/
|
|
4210
|
+
galleryLightbox?: "classic" | "feed";
|
|
4183
4211
|
/** Trips-list expand button: "Load more" (count appended). */
|
|
4184
4212
|
loadMoreLabel?: string;
|
|
4185
4213
|
/** Expand/collapse collapse button: "Show less". */
|
|
@@ -4194,7 +4222,7 @@ interface CategoryPage2Props {
|
|
|
4194
4222
|
filterLabels?: FilterPanelLabels;
|
|
4195
4223
|
className?: string;
|
|
4196
4224
|
}
|
|
4197
|
-
declare function CategoryPage2({ title, intro, heroImage, videoUrl, trustpilotMini, breadcrumb, siteHeader, heroRightSlot, popularTours, popularToursTitle, popularToursEyebrow, trips, tripsTitle, tripsEyebrow, filterGroups, sortOptions, defaultSort, tripsInitialCount, tripListingSlot, trustpilot, reviewsTitle, reviewsSubtitle, blogPosts, aboutTitle, aboutContent, blogIntro, travelGuideHref, travelGuideLabel, blogPostsTitle, blogPostsViewAllHref, faqs, faqsTitle, faqInitialCount, gallery, galleryTitle, loadMoreLabel, showLessLabel, seeMoreLabel, viewAllPostsLabel, cardLabels, filterLabels, footerBadges, className, }: CategoryPage2Props): react_jsx_runtime.JSX.Element;
|
|
4225
|
+
declare function CategoryPage2({ title, intro, heroImage, videoUrl, trustpilotMini, breadcrumb, siteHeader, heroRightSlot, popularTours, popularToursTitle, popularToursEyebrow, trips, tripsTitle, tripsEyebrow, filterGroups, sortOptions, defaultSort, tripsInitialCount, tripListingSlot, trustpilot, reviewsTitle, reviewsSubtitle, blogPosts, aboutTitle, aboutContent, blogIntro, travelGuideHref, travelGuideLabel, blogPostsTitle, blogPostsViewAllHref, faqs, faqsTitle, faqInitialCount, gallery, galleryTitle, galleryLightbox, loadMoreLabel, showLessLabel, seeMoreLabel, viewAllPostsLabel, cardLabels, filterLabels, footerBadges, className, }: CategoryPage2Props): react_jsx_runtime.JSX.Element;
|
|
4198
4226
|
|
|
4199
4227
|
type ActivityCardSize = "sm" | "md" | "lg";
|
|
4200
4228
|
interface ActivityCardProps {
|
package/dist/index.js
CHANGED
|
@@ -12015,7 +12015,7 @@ function Lightbox({
|
|
|
12015
12015
|
return /* @__PURE__ */ jsxs(
|
|
12016
12016
|
"div",
|
|
12017
12017
|
{
|
|
12018
|
-
className: "fixed inset-0 z-
|
|
12018
|
+
className: "fixed inset-0 z-[1000] bg-black/92 flex flex-col items-center justify-center",
|
|
12019
12019
|
onClick: onClose,
|
|
12020
12020
|
children: [
|
|
12021
12021
|
/* @__PURE__ */ jsx(
|
|
@@ -12203,7 +12203,7 @@ function FeedLightbox({
|
|
|
12203
12203
|
if (frame) cancelAnimationFrame(frame);
|
|
12204
12204
|
};
|
|
12205
12205
|
}, []);
|
|
12206
|
-
return /* @__PURE__ */ jsxs("div", { className: "fixed inset-0 z-
|
|
12206
|
+
return /* @__PURE__ */ jsxs("div", { className: "fixed inset-0 z-[1000] bg-zinc-950 text-white", children: [
|
|
12207
12207
|
/* @__PURE__ */ jsx(
|
|
12208
12208
|
"div",
|
|
12209
12209
|
{
|
|
@@ -14851,6 +14851,8 @@ function useHlsVideo(videoRef, src) {
|
|
|
14851
14851
|
}
|
|
14852
14852
|
function TripHeader({
|
|
14853
14853
|
images,
|
|
14854
|
+
heroImageSrcSet,
|
|
14855
|
+
heroImageSizes,
|
|
14854
14856
|
videoUrl,
|
|
14855
14857
|
title,
|
|
14856
14858
|
breadcrumb,
|
|
@@ -14930,6 +14932,8 @@ function TripHeader({
|
|
|
14930
14932
|
Picture,
|
|
14931
14933
|
{
|
|
14932
14934
|
src: validImages[0],
|
|
14935
|
+
srcSet: heroImageSrcSet,
|
|
14936
|
+
sizes: heroImageSizes,
|
|
14933
14937
|
alt: "",
|
|
14934
14938
|
"aria-hidden": true,
|
|
14935
14939
|
fetchPriority: "high",
|
|
@@ -14968,6 +14972,8 @@ function TripHeader({
|
|
|
14968
14972
|
Picture,
|
|
14969
14973
|
{
|
|
14970
14974
|
src: currentSrc,
|
|
14975
|
+
srcSet: safeIndex === 0 ? heroImageSrcSet : void 0,
|
|
14976
|
+
sizes: safeIndex === 0 ? heroImageSizes : void 0,
|
|
14971
14977
|
alt: title,
|
|
14972
14978
|
fetchPriority: safeIndex === 0 ? "high" : "auto",
|
|
14973
14979
|
eager: safeIndex === 0,
|
|
@@ -15540,6 +15546,8 @@ function TripPage({
|
|
|
15540
15546
|
duration,
|
|
15541
15547
|
groupSize,
|
|
15542
15548
|
images,
|
|
15549
|
+
heroImageSrcSet,
|
|
15550
|
+
heroImageSizes,
|
|
15543
15551
|
videoUrl,
|
|
15544
15552
|
breadcrumb,
|
|
15545
15553
|
chips,
|
|
@@ -15771,6 +15779,8 @@ function TripPage({
|
|
|
15771
15779
|
TripHeader,
|
|
15772
15780
|
{
|
|
15773
15781
|
images,
|
|
15782
|
+
heroImageSrcSet,
|
|
15783
|
+
heroImageSizes,
|
|
15774
15784
|
videoUrl,
|
|
15775
15785
|
title,
|
|
15776
15786
|
breadcrumb,
|
|
@@ -16280,6 +16290,7 @@ function CategoryPage2({
|
|
|
16280
16290
|
faqInitialCount = 5,
|
|
16281
16291
|
gallery,
|
|
16282
16292
|
galleryTitle,
|
|
16293
|
+
galleryLightbox = "classic",
|
|
16283
16294
|
loadMoreLabel,
|
|
16284
16295
|
showLessLabel,
|
|
16285
16296
|
seeMoreLabel,
|
|
@@ -16542,7 +16553,15 @@ function CategoryPage2({
|
|
|
16542
16553
|
] }),
|
|
16543
16554
|
gallery && gallery.length > 0 && /* @__PURE__ */ jsxs("section", { className: "pt-4", children: [
|
|
16544
16555
|
galleryTitle && /* @__PURE__ */ jsx("h2", { className: "mx-auto w-full max-w-6xl px-6 sm:px-8 mb-6 text-2xl sm:text-3xl font-bold text-foreground font-heading", children: galleryTitle }),
|
|
16545
|
-
/* @__PURE__ */ jsx(
|
|
16556
|
+
/* @__PURE__ */ jsx(
|
|
16557
|
+
PhotoGallery,
|
|
16558
|
+
{
|
|
16559
|
+
photos: gallery,
|
|
16560
|
+
variant: "gridCompact",
|
|
16561
|
+
initialVisible: 8,
|
|
16562
|
+
lightbox: galleryLightbox
|
|
16563
|
+
}
|
|
16564
|
+
)
|
|
16546
16565
|
] }),
|
|
16547
16566
|
(aboutTitle || aboutContent || blogPostsTitle || blogPosts && blogPosts.length > 0) && /* @__PURE__ */ jsx("section", { className: "w-full bg-gray-100", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto w-full max-w-6xl px-6 sm:px-8 py-14", children: [
|
|
16548
16567
|
(aboutTitle || blogPostsTitle) && /* @__PURE__ */ jsx("h2", { className: "text-2xl sm:text-3xl font-bold text-foreground font-heading mb-5", children: aboutTitle != null ? aboutTitle : blogPostsTitle }),
|