@planetaexo/design-system 0.75.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 CHANGED
@@ -12036,7 +12036,7 @@ function Lightbox({
12036
12036
  return /* @__PURE__ */ jsxRuntime.jsxs(
12037
12037
  "div",
12038
12038
  {
12039
- className: "fixed inset-0 z-50 bg-black/92 flex flex-col items-center justify-center",
12039
+ className: "fixed inset-0 z-[1000] bg-black/92 flex flex-col items-center justify-center",
12040
12040
  onClick: onClose,
12041
12041
  children: [
12042
12042
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -12224,24 +12224,81 @@ function FeedLightbox({
12224
12224
  if (frame) cancelAnimationFrame(frame);
12225
12225
  };
12226
12226
  }, []);
12227
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed inset-0 z-50 flex flex-col bg-zinc-950 text-white", children: [
12228
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-0 z-10 flex items-center gap-3 border-b border-white/10 bg-zinc-950/80 px-3 py-2.5 backdrop-blur-md", children: [
12227
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed inset-0 z-[1000] bg-zinc-950 text-white", children: [
12228
+ /* @__PURE__ */ jsxRuntime.jsx(
12229
+ "div",
12230
+ {
12231
+ ref: scrollRef,
12232
+ className: "absolute inset-0 overflow-y-auto overscroll-contain",
12233
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto flex w-full max-w-3xl flex-col", children: items.map(({ photo, index, sectionLabel, isSectionStart }) => {
12234
+ var _a2;
12235
+ const isFocused = index === active;
12236
+ return /* @__PURE__ */ jsxRuntime.jsxs(
12237
+ "figure",
12238
+ {
12239
+ "data-index": index,
12240
+ ref: (el) => {
12241
+ itemRefs.current[index] = el;
12242
+ },
12243
+ className: cn(
12244
+ "group relative transition-opacity duration-500",
12245
+ // The focused (centred / hovered) photo is at full opacity;
12246
+ // every other photo is dimmed a touch so the eye lands on it.
12247
+ isFocused ? "opacity-100" : "opacity-[0.65] hover:opacity-100"
12248
+ ),
12249
+ children: [
12250
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden bg-white/5", children: /* @__PURE__ */ jsxRuntime.jsx(
12251
+ Picture,
12252
+ {
12253
+ src: photo.src,
12254
+ alt: (_a2 = photo.alt) != null ? _a2 : `Photo ${index + 1}`,
12255
+ title: photo.caption,
12256
+ className: "block h-auto w-full",
12257
+ eager: index < 2,
12258
+ rootMargin: "800px"
12259
+ }
12260
+ ) }),
12261
+ sectionLabel && isSectionStart && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-x-0 top-0 bg-gradient-to-b from-black/60 via-black/20 to-transparent px-3 pb-12 pt-3 sm:px-4", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "font-heading text-lg font-bold uppercase tracking-wide text-white drop-shadow-md", children: sectionLabel }) }),
12262
+ (photo.caption || photo.credit) && /* @__PURE__ */ jsxRuntime.jsxs(
12263
+ "figcaption",
12264
+ {
12265
+ className: cn(
12266
+ "pointer-events-none absolute inset-x-0 bottom-0 flex flex-col items-end gap-0.5 bg-gradient-to-t from-black/60 via-black/20 to-transparent px-3 pb-3 pt-12 text-right transition-opacity duration-500 sm:px-4",
12267
+ isFocused ? "opacity-100" : "opacity-0 group-hover:opacity-100"
12268
+ ),
12269
+ children: [
12270
+ photo.caption && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-ui text-sm font-medium leading-snug text-white drop-shadow-md", children: photo.caption }),
12271
+ photo.credit && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-ui text-xs text-white/80 drop-shadow-md", children: [
12272
+ "\xA9 ",
12273
+ photo.credit
12274
+ ] })
12275
+ ]
12276
+ }
12277
+ )
12278
+ ]
12279
+ },
12280
+ index
12281
+ );
12282
+ }) })
12283
+ }
12284
+ ),
12285
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pointer-events-none absolute inset-x-0 top-0 z-10 flex items-center gap-3 bg-gradient-to-b from-black/70 via-black/30 to-transparent px-3 pb-10 pt-2.5", children: [
12229
12286
  /* @__PURE__ */ jsxRuntime.jsx(
12230
12287
  "button",
12231
12288
  {
12232
12289
  type: "button",
12233
12290
  onClick: onClose,
12234
- className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-full text-white transition-colors hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/60",
12291
+ className: "pointer-events-auto flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-black/25 text-white backdrop-blur-sm transition-colors hover:bg-white/15 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/60",
12235
12292
  "aria-label": (_a = labels == null ? void 0 : labels.close) != null ? _a : "Close lightbox",
12236
12293
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, { className: "h-5 w-5" })
12237
12294
  }
12238
12295
  ),
12239
- activeLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 truncate text-center font-heading text-sm font-bold uppercase tracking-wide text-white", children: activeLabel }),
12296
+ activeLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 truncate text-center font-heading text-sm font-bold uppercase tracking-wide text-white drop-shadow-md", children: activeLabel }),
12240
12297
  total > 1 && /* @__PURE__ */ jsxRuntime.jsxs(
12241
12298
  "span",
12242
12299
  {
12243
12300
  className: cn(
12244
- "shrink-0 font-ui text-sm font-medium tabular-nums text-white/60",
12301
+ "shrink-0 font-ui text-sm font-medium tabular-nums text-white/80 drop-shadow-md",
12245
12302
  !activeLabel && "ml-auto"
12246
12303
  ),
12247
12304
  children: [
@@ -12251,74 +12308,7 @@ function FeedLightbox({
12251
12308
  ]
12252
12309
  }
12253
12310
  )
12254
- ] }),
12255
- /* @__PURE__ */ jsxRuntime.jsx(
12256
- "div",
12257
- {
12258
- ref: scrollRef,
12259
- className: "flex-1 overflow-y-auto overscroll-contain",
12260
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto flex w-full max-w-3xl flex-col", children: items.map(({ photo, index, sectionLabel, isSectionStart }) => {
12261
- var _a2;
12262
- const isFocused = index === active;
12263
- return /* @__PURE__ */ jsxRuntime.jsxs(React20__namespace.Fragment, { children: [
12264
- sectionLabel && isSectionStart && /* @__PURE__ */ jsxRuntime.jsx(
12265
- "h2",
12266
- {
12267
- className: cn(
12268
- "px-3 pb-3 font-heading text-lg font-bold uppercase tracking-wide text-white sm:px-4",
12269
- index > 0 ? "pt-8" : "pt-2"
12270
- ),
12271
- children: sectionLabel
12272
- }
12273
- ),
12274
- /* @__PURE__ */ jsxRuntime.jsxs(
12275
- "figure",
12276
- {
12277
- "data-index": index,
12278
- ref: (el) => {
12279
- itemRefs.current[index] = el;
12280
- },
12281
- className: cn(
12282
- "group relative transition-opacity duration-500",
12283
- // The focused (centred / hovered) photo is at full opacity;
12284
- // every other photo is dimmed a touch so the eye lands on it.
12285
- isFocused ? "opacity-100" : "opacity-[0.65] hover:opacity-100"
12286
- ),
12287
- children: [
12288
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden bg-white/5", children: /* @__PURE__ */ jsxRuntime.jsx(
12289
- Picture,
12290
- {
12291
- src: photo.src,
12292
- alt: (_a2 = photo.alt) != null ? _a2 : `Photo ${index + 1}`,
12293
- title: photo.caption,
12294
- className: "block h-auto w-full",
12295
- eager: index < 2,
12296
- rootMargin: "800px"
12297
- }
12298
- ) }),
12299
- (photo.caption || photo.credit) && /* @__PURE__ */ jsxRuntime.jsxs(
12300
- "figcaption",
12301
- {
12302
- className: cn(
12303
- "pointer-events-none absolute inset-x-0 bottom-0 flex flex-col items-end gap-0.5 bg-gradient-to-t from-black/60 via-black/20 to-transparent px-3 pb-3 pt-12 text-right transition-opacity duration-500 sm:px-4",
12304
- isFocused ? "opacity-100" : "opacity-0 group-hover:opacity-100"
12305
- ),
12306
- children: [
12307
- photo.caption && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-ui text-sm font-medium leading-snug text-white drop-shadow-md", children: photo.caption }),
12308
- photo.credit && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-ui text-xs text-white/80 drop-shadow-md", children: [
12309
- "\xA9 ",
12310
- photo.credit
12311
- ] })
12312
- ]
12313
- }
12314
- )
12315
- ]
12316
- }
12317
- )
12318
- ] }, index);
12319
- }) })
12320
- }
12321
- )
12311
+ ] })
12322
12312
  ] });
12323
12313
  }
12324
12314
  var PhotoTourContext = React20__namespace.createContext(null);
@@ -14882,6 +14872,8 @@ function useHlsVideo(videoRef, src) {
14882
14872
  }
14883
14873
  function TripHeader({
14884
14874
  images,
14875
+ heroImageSrcSet,
14876
+ heroImageSizes,
14885
14877
  videoUrl,
14886
14878
  title,
14887
14879
  breadcrumb,
@@ -14961,6 +14953,8 @@ function TripHeader({
14961
14953
  Picture,
14962
14954
  {
14963
14955
  src: validImages[0],
14956
+ srcSet: heroImageSrcSet,
14957
+ sizes: heroImageSizes,
14964
14958
  alt: "",
14965
14959
  "aria-hidden": true,
14966
14960
  fetchPriority: "high",
@@ -14999,6 +14993,8 @@ function TripHeader({
14999
14993
  Picture,
15000
14994
  {
15001
14995
  src: currentSrc,
14996
+ srcSet: safeIndex === 0 ? heroImageSrcSet : void 0,
14997
+ sizes: safeIndex === 0 ? heroImageSizes : void 0,
15002
14998
  alt: title,
15003
14999
  fetchPriority: safeIndex === 0 ? "high" : "auto",
15004
15000
  eager: safeIndex === 0,
@@ -15571,6 +15567,8 @@ function TripPage({
15571
15567
  duration,
15572
15568
  groupSize,
15573
15569
  images,
15570
+ heroImageSrcSet,
15571
+ heroImageSizes,
15574
15572
  videoUrl,
15575
15573
  breadcrumb,
15576
15574
  chips,
@@ -15802,6 +15800,8 @@ function TripPage({
15802
15800
  TripHeader,
15803
15801
  {
15804
15802
  images,
15803
+ heroImageSrcSet,
15804
+ heroImageSizes,
15805
15805
  videoUrl,
15806
15806
  title,
15807
15807
  breadcrumb,
@@ -16311,6 +16311,7 @@ function CategoryPage2({
16311
16311
  faqInitialCount = 5,
16312
16312
  gallery,
16313
16313
  galleryTitle,
16314
+ galleryLightbox = "classic",
16314
16315
  loadMoreLabel,
16315
16316
  showLessLabel,
16316
16317
  seeMoreLabel,
@@ -16573,7 +16574,15 @@ function CategoryPage2({
16573
16574
  ] }),
16574
16575
  gallery && gallery.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "pt-4", children: [
16575
16576
  galleryTitle && /* @__PURE__ */ jsxRuntime.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 }),
16576
- /* @__PURE__ */ jsxRuntime.jsx(PhotoGallery, { photos: gallery, variant: "gridCompact", initialVisible: 8 })
16577
+ /* @__PURE__ */ jsxRuntime.jsx(
16578
+ PhotoGallery,
16579
+ {
16580
+ photos: gallery,
16581
+ variant: "gridCompact",
16582
+ initialVisible: 8,
16583
+ lightbox: galleryLightbox
16584
+ }
16585
+ )
16577
16586
  ] }),
16578
16587
  (aboutTitle || aboutContent || blogPostsTitle || blogPosts && blogPosts.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("section", { className: "w-full bg-gray-100", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto w-full max-w-6xl px-6 sm:px-8 py-14", children: [
16579
16588
  (aboutTitle || blogPostsTitle) && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl sm:text-3xl font-bold text-foreground font-heading mb-5", children: aboutTitle != null ? aboutTitle : blogPostsTitle }),