@planetaexo/design-system 0.76.0 → 0.77.1
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 +26 -4
- 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 +26 -4
- 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
|
@@ -11616,7 +11616,7 @@ function Picture(_a) {
|
|
|
11616
11616
|
var _a2, _b2;
|
|
11617
11617
|
const ref = React20.useRef(null);
|
|
11618
11618
|
const [visible, setVisible] = React20.useState(eager);
|
|
11619
|
-
const [loaded, setLoaded] = React20.useState(
|
|
11619
|
+
const [loaded, setLoaded] = React20.useState(eager);
|
|
11620
11620
|
React20.useEffect(() => {
|
|
11621
11621
|
if (eager || visible) return;
|
|
11622
11622
|
const el = ref.current;
|
|
@@ -11636,7 +11636,10 @@ function Picture(_a) {
|
|
|
11636
11636
|
io.observe(el);
|
|
11637
11637
|
return () => io.disconnect();
|
|
11638
11638
|
}, [eager, visible, rootMargin]);
|
|
11639
|
+
const prevSrcRef = React20.useRef(src);
|
|
11639
11640
|
React20.useEffect(() => {
|
|
11641
|
+
if (prevSrcRef.current === src) return;
|
|
11642
|
+
prevSrcRef.current = src;
|
|
11640
11643
|
setLoaded(false);
|
|
11641
11644
|
}, [src]);
|
|
11642
11645
|
const webp = webpVariantUrl(src);
|
|
@@ -12015,7 +12018,7 @@ function Lightbox({
|
|
|
12015
12018
|
return /* @__PURE__ */ jsxs(
|
|
12016
12019
|
"div",
|
|
12017
12020
|
{
|
|
12018
|
-
className: "fixed inset-0 z-
|
|
12021
|
+
className: "fixed inset-0 z-[1000] bg-black/92 flex flex-col items-center justify-center",
|
|
12019
12022
|
onClick: onClose,
|
|
12020
12023
|
children: [
|
|
12021
12024
|
/* @__PURE__ */ jsx(
|
|
@@ -12203,7 +12206,7 @@ function FeedLightbox({
|
|
|
12203
12206
|
if (frame) cancelAnimationFrame(frame);
|
|
12204
12207
|
};
|
|
12205
12208
|
}, []);
|
|
12206
|
-
return /* @__PURE__ */ jsxs("div", { className: "fixed inset-0 z-
|
|
12209
|
+
return /* @__PURE__ */ jsxs("div", { className: "fixed inset-0 z-[1000] bg-zinc-950 text-white", children: [
|
|
12207
12210
|
/* @__PURE__ */ jsx(
|
|
12208
12211
|
"div",
|
|
12209
12212
|
{
|
|
@@ -14851,6 +14854,8 @@ function useHlsVideo(videoRef, src) {
|
|
|
14851
14854
|
}
|
|
14852
14855
|
function TripHeader({
|
|
14853
14856
|
images,
|
|
14857
|
+
heroImageSrcSet,
|
|
14858
|
+
heroImageSizes,
|
|
14854
14859
|
videoUrl,
|
|
14855
14860
|
title,
|
|
14856
14861
|
breadcrumb,
|
|
@@ -14930,6 +14935,8 @@ function TripHeader({
|
|
|
14930
14935
|
Picture,
|
|
14931
14936
|
{
|
|
14932
14937
|
src: validImages[0],
|
|
14938
|
+
srcSet: heroImageSrcSet,
|
|
14939
|
+
sizes: heroImageSizes,
|
|
14933
14940
|
alt: "",
|
|
14934
14941
|
"aria-hidden": true,
|
|
14935
14942
|
fetchPriority: "high",
|
|
@@ -14968,6 +14975,8 @@ function TripHeader({
|
|
|
14968
14975
|
Picture,
|
|
14969
14976
|
{
|
|
14970
14977
|
src: currentSrc,
|
|
14978
|
+
srcSet: safeIndex === 0 ? heroImageSrcSet : void 0,
|
|
14979
|
+
sizes: safeIndex === 0 ? heroImageSizes : void 0,
|
|
14971
14980
|
alt: title,
|
|
14972
14981
|
fetchPriority: safeIndex === 0 ? "high" : "auto",
|
|
14973
14982
|
eager: safeIndex === 0,
|
|
@@ -15540,6 +15549,8 @@ function TripPage({
|
|
|
15540
15549
|
duration,
|
|
15541
15550
|
groupSize,
|
|
15542
15551
|
images,
|
|
15552
|
+
heroImageSrcSet,
|
|
15553
|
+
heroImageSizes,
|
|
15543
15554
|
videoUrl,
|
|
15544
15555
|
breadcrumb,
|
|
15545
15556
|
chips,
|
|
@@ -15771,6 +15782,8 @@ function TripPage({
|
|
|
15771
15782
|
TripHeader,
|
|
15772
15783
|
{
|
|
15773
15784
|
images,
|
|
15785
|
+
heroImageSrcSet,
|
|
15786
|
+
heroImageSizes,
|
|
15774
15787
|
videoUrl,
|
|
15775
15788
|
title,
|
|
15776
15789
|
breadcrumb,
|
|
@@ -16280,6 +16293,7 @@ function CategoryPage2({
|
|
|
16280
16293
|
faqInitialCount = 5,
|
|
16281
16294
|
gallery,
|
|
16282
16295
|
galleryTitle,
|
|
16296
|
+
galleryLightbox = "classic",
|
|
16283
16297
|
loadMoreLabel,
|
|
16284
16298
|
showLessLabel,
|
|
16285
16299
|
seeMoreLabel,
|
|
@@ -16542,7 +16556,15 @@ function CategoryPage2({
|
|
|
16542
16556
|
] }),
|
|
16543
16557
|
gallery && gallery.length > 0 && /* @__PURE__ */ jsxs("section", { className: "pt-4", children: [
|
|
16544
16558
|
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(
|
|
16559
|
+
/* @__PURE__ */ jsx(
|
|
16560
|
+
PhotoGallery,
|
|
16561
|
+
{
|
|
16562
|
+
photos: gallery,
|
|
16563
|
+
variant: "gridCompact",
|
|
16564
|
+
initialVisible: 8,
|
|
16565
|
+
lightbox: galleryLightbox
|
|
16566
|
+
}
|
|
16567
|
+
)
|
|
16546
16568
|
] }),
|
|
16547
16569
|
(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
16570
|
(aboutTitle || blogPostsTitle) && /* @__PURE__ */ jsx("h2", { className: "text-2xl sm:text-3xl font-bold text-foreground font-heading mb-5", children: aboutTitle != null ? aboutTitle : blogPostsTitle }),
|