react-motion-gallery 2.0.17 → 2.0.19

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.
Files changed (95) hide show
  1. package/README.md +297 -32
  2. package/dist/chunk-5HIHJGIV.mjs +45 -0
  3. package/dist/chunk-6TPHLAUP.mjs +1 -0
  4. package/dist/chunk-AKY343WN.mjs +1 -0
  5. package/dist/chunk-BIDZ4WZB.mjs +2 -0
  6. package/dist/chunk-DBIFLX6Y.mjs +6 -0
  7. package/dist/chunk-ECQ74X24.mjs +1 -0
  8. package/dist/chunk-FJYYM5TH.mjs +1 -0
  9. package/dist/chunk-GSEIEFRW.mjs +1 -0
  10. package/dist/chunk-GT6IL37J.mjs +1 -0
  11. package/dist/chunk-J4E4PKE5.mjs +1 -0
  12. package/dist/chunk-JD3VAF3N.mjs +4 -0
  13. package/dist/chunk-JMFDRKTX.mjs +2 -0
  14. package/dist/chunk-K6PQU6HF.mjs +1 -0
  15. package/dist/chunk-KSOQWCCL.mjs +6 -0
  16. package/dist/chunk-NABNX5HB.mjs +1 -0
  17. package/dist/chunk-NEJ27O2B.mjs +2 -0
  18. package/dist/chunk-Q2PY6ZMU.mjs +2 -0
  19. package/dist/chunk-TKPLWDPW.mjs +7 -0
  20. package/dist/chunk-UAEPMZQY.mjs +1 -0
  21. package/dist/chunk-UV2SUN5V.mjs +1 -0
  22. package/dist/chunk-VXSRNAH4.mjs +1 -0
  23. package/dist/chunk-WLWVKQPL.mjs +4 -0
  24. package/dist/chunk-WZWMG4ZT.mjs +1 -0
  25. package/dist/chunk-XOS5AXSR.mjs +4 -0
  26. package/dist/chunk-ZX5E327W.mjs +1 -0
  27. package/dist/{elements-Bd1vm4Uk.d.mts → controls-SpWg1Kgt.d.mts} +10 -3
  28. package/dist/core.d.mts +20 -9
  29. package/dist/core.mjs +1 -1
  30. package/dist/entries.css +1 -1
  31. package/dist/entries.d.mts +41 -11
  32. package/dist/entries.mjs +1 -1
  33. package/dist/fullscreen.css +1 -1
  34. package/dist/fullscreen.d.mts +36 -135
  35. package/dist/fullscreen.mjs +1 -1
  36. package/dist/fullscreenThumbnails.css +1 -1
  37. package/dist/fullscreenThumbnails.d.mts +9 -6
  38. package/dist/fullscreenThumbnails.mjs +1 -1
  39. package/dist/grid.css +1 -1
  40. package/dist/grid.d.mts +18 -115
  41. package/dist/grid.mjs +1 -1
  42. package/dist/{index-C0AqfaC3.d.mts → index-CwwxTQKa.d.mts} +3 -3
  43. package/dist/index.css +1 -1
  44. package/dist/index.d.mts +19 -15
  45. package/dist/index.mjs +1 -1
  46. package/dist/layout-CR6f2aPH.d.mts +95 -0
  47. package/dist/masonry.css +1 -1
  48. package/dist/masonry.d.mts +12 -65
  49. package/dist/masonry.mjs +1 -1
  50. package/dist/metafile-esm.json +1 -1
  51. package/dist/{media-moIXOhT1.d.mts → plyrTypes-Cq4C3ul5.d.mts} +8 -1
  52. package/dist/responsive-D_xhZmVI.d.mts +186 -0
  53. package/dist/slider.css +1 -1
  54. package/dist/slider.d.mts +16 -8
  55. package/dist/slider.mjs +1 -1
  56. package/dist/{sliderSub-DDPjywVp.d.mts → sliderSub-Bo6Y8as_.d.mts} +13 -1
  57. package/dist/text-Cl2tR8oO.d.mts +4 -0
  58. package/dist/thumbnails.css +1 -1
  59. package/dist/thumbnails.d.mts +22 -8
  60. package/dist/thumbnails.mjs +1 -1
  61. package/dist/{types-Bi2iBbyG.d.mts → types-CHUayqcj.d.mts} +26 -5
  62. package/dist/{types-9fvdyhuG.d.mts → types-DY058l5M.d.mts} +45 -10
  63. package/dist/types-Dhh8xfHo.d.mts +18 -0
  64. package/dist/{types-CQ6I3EfZ.d.mts → types-ROPjU8Nl.d.mts} +24 -12
  65. package/dist/types-VULXzSa2.d.mts +68 -0
  66. package/dist/types-XEr8LRal.d.mts +65 -0
  67. package/dist/{types-ChjyCquV.d.mts → types-_1D0QtfD.d.mts} +24 -8
  68. package/dist/video.css +1 -1
  69. package/dist/video.d.mts +2 -2
  70. package/dist/video.mjs +1 -1
  71. package/dist/zoomPan.d.mts +16 -0
  72. package/dist/zoomPan.mjs +1 -0
  73. package/package.json +11 -22
  74. package/dist/chunk-2AHLR3V4.mjs +0 -1
  75. package/dist/chunk-CAYO7NIA.mjs +0 -2
  76. package/dist/chunk-CROFW72U.mjs +0 -2
  77. package/dist/chunk-ESF6XBYF.mjs +0 -1
  78. package/dist/chunk-EV6ZK4QI.mjs +0 -1
  79. package/dist/chunk-H4BEIJAD.mjs +0 -5
  80. package/dist/chunk-HHAEEL7K.mjs +0 -10
  81. package/dist/chunk-KN72Q6DM.mjs +0 -5
  82. package/dist/chunk-KZUAS63N.mjs +0 -1
  83. package/dist/chunk-NWU2GBRJ.mjs +0 -1
  84. package/dist/chunk-O6MJXVAN.mjs +0 -4
  85. package/dist/chunk-PGF2LSVK.mjs +0 -2
  86. package/dist/chunk-Q5LUIIWE.mjs +0 -1
  87. package/dist/chunk-SALMTFMK.mjs +0 -1
  88. package/dist/chunk-TZGAHWM7.mjs +0 -1
  89. package/dist/chunk-UOXJOJEY.mjs +0 -59
  90. package/dist/chunk-X4HEGEZV.mjs +0 -1
  91. package/dist/chunk-YRQVG3MM.mjs +0 -1
  92. package/dist/lazy-dGoYpcRa.d.mts +0 -14
  93. package/dist/plyrTypes-CmP9NWvX.d.mts +0 -8
  94. package/dist/responsive-CvE5dTnP.d.mts +0 -5
  95. package/dist/types-tb9Qf2Mj.d.mts +0 -46
@@ -1,30 +1,41 @@
1
1
  import * as React from 'react';
2
- import { a as BreakpointMap } from './responsive-CvE5dTnP.mjs';
3
- import { T as ThumbnailPosition } from './types-Bi2iBbyG.mjs';
2
+ import { I as IndexMode, c as BreakpointMap } from './responsive-D_xhZmVI.mjs';
3
+ import { T as ThumbnailPosition, g as ThumbnailCrossfadeOptions } from './types-CHUayqcj.mjs';
4
4
 
5
- type JumpMode = 'instant' | 'animated';
5
+ type JumpMode = "instant" | "animated";
6
+ type FullscreenRequestMeta = {
7
+ source?: "thumbnail" | "external";
8
+ transition?: "scroll" | "crossfade";
9
+ crossfade?: {
10
+ durationMs?: number;
11
+ easing?: string;
12
+ };
13
+ };
6
14
  type FSRequest = {
7
- type: 'requestSet';
15
+ type: "requestSet";
8
16
  index: number;
9
- mode?: JumpMode;
17
+ mode?: IndexMode;
18
+ meta?: FullscreenRequestMeta;
10
19
  } | {
11
- type: 'requestNext';
20
+ type: "requestPrev";
12
21
  } | {
13
- type: 'requestPrev';
22
+ type: "requestNext";
14
23
  } | {
15
- type: 'center';
24
+ type: "center";
16
25
  };
17
26
  type FSEvent = {
18
- type: 'internalIndex';
27
+ type: "internalIndex";
19
28
  index: number;
20
29
  } | {
21
- type: 'mounted';
30
+ type: "mounted";
22
31
  } | {
23
- type: 'unmounted';
32
+ type: "unmounted";
24
33
  };
25
34
  type FullscreenSliderSub = {
26
35
  get: () => number;
27
- requestSet: (index: number, mode?: JumpMode) => void;
36
+ requestSet: (index: number, mode?: JumpMode, opts?: {
37
+ meta?: FullscreenRequestMeta;
38
+ }) => void;
28
39
  requestPrev: () => void;
29
40
  requestNext: () => void;
30
41
  requestCenter: () => void;
@@ -104,6 +115,7 @@ type FullscreenThumbnailSliderProps = {
104
115
  }) => React.ReactNode;
105
116
  renderPrevArrow?: (args: ArrowRenderArgs) => React.ReactNode;
106
117
  renderNextArrow?: (args: ArrowRenderArgs) => React.ReactNode;
118
+ thumbnailCrossfade?: ThumbnailCrossfadeOptions;
107
119
  };
108
120
 
109
121
  export type { FSItem as F, FullscreenThumbnailBridge as a, FullscreenThumbnailSliderProps as b, FullscreenThumbnailSlotLayout as c };
@@ -0,0 +1,68 @@
1
+ import { L as LoadingTimingOptions, R as ResponsiveNumber } from './responsive-D_xhZmVI.mjs';
2
+ import { S as SkeletonLayoutRoot, a as SkeletonNode$1, b as SkeletonWrapStyle, c as SkeletonLength, d as SkeletonShimmer, G as GalleryLazyLoadOptions } from './layout-CR6f2aPH.mjs';
3
+
4
+ type MasonrySkeletonWrapStyle = SkeletonWrapStyle;
5
+ type SkeletonNode = SkeletonNode$1;
6
+ type MasonrySkeletonSlot = {
7
+ item?: SkeletonNode;
8
+ itemWrapStyle?: MasonrySkeletonWrapStyle;
9
+ ratio?: number;
10
+ heightPx?: number;
11
+ };
12
+ type MasonrySkeletonLayoutNode = SkeletonLayoutRoot<"masonry"> & {
13
+ slots?: MasonrySkeletonSlot[];
14
+ };
15
+ type MasonrySkeletonNode = MasonrySkeletonLayoutNode | SkeletonNode$1;
16
+ type MasonrySkeletonSpec = {
17
+ className?: string;
18
+ layout?: MasonrySkeletonNode;
19
+ ratios?: number[];
20
+ heightsPx?: number[];
21
+ backgroundColor?: string;
22
+ highlightColor?: string;
23
+ radius?: SkeletonLength;
24
+ shimmer?: SkeletonShimmer;
25
+ };
26
+
27
+ type LoadingOptions = {
28
+ enabled?: boolean;
29
+ force?: boolean;
30
+ renderLoading?: (args: {
31
+ count: number;
32
+ }) => React.ReactNode;
33
+ skeleton?: MasonrySkeletonSpec;
34
+ timing?: LoadingTimingOptions;
35
+ };
36
+ type IntroOptions = {
37
+ renderIntro?: (args: {
38
+ active: boolean;
39
+ containerProps: React.HTMLAttributes<HTMLDivElement>;
40
+ }, content: React.ReactNode) => React.ReactNode;
41
+ staggerMs?: number;
42
+ durationMs?: number;
43
+ easing?: string;
44
+ staggerLimit?: number;
45
+ };
46
+ type FullscreenTrigger = "item" | "media";
47
+ type MasonryLazyLoadOptions = GalleryLazyLoadOptions;
48
+ type MasonryOptions = {
49
+ columns?: ResponsiveNumber;
50
+ gap?: ResponsiveNumber;
51
+ placement?: "balanced" | "roundRobin";
52
+ fullscreenTrigger?: FullscreenTrigger;
53
+ estimatedItemHeight?: number;
54
+ itemWrapClassName?: string;
55
+ itemWrapStyle?: React.CSSProperties;
56
+ as?: React.ElementType;
57
+ rootRef?: React.Ref<HTMLDivElement>;
58
+ classNames?: {
59
+ root?: string;
60
+ column?: string;
61
+ item?: string;
62
+ };
63
+ lazyLoad?: MasonryLazyLoadOptions;
64
+ loading?: LoadingOptions;
65
+ intro?: IntroOptions;
66
+ };
67
+
68
+ export type { IntroOptions as I, LoadingOptions as L, MasonryOptions as M, MasonryLazyLoadOptions as a };
@@ -0,0 +1,65 @@
1
+ import { L as LoadingTimingOptions, R as ResponsiveNumber } from './responsive-D_xhZmVI.mjs';
2
+ import { S as SkeletonLayoutRoot, a as SkeletonNode$1, b as SkeletonWrapStyle, c as SkeletonLength, d as SkeletonShimmer, G as GalleryLazyLoadOptions } from './layout-CR6f2aPH.mjs';
3
+
4
+ type GridSkeletonWrapStyle = SkeletonWrapStyle;
5
+ type SkeletonNode = SkeletonNode$1;
6
+ type GridSkeletonSlot = {
7
+ item?: SkeletonNode;
8
+ itemWrapStyle?: GridSkeletonWrapStyle;
9
+ };
10
+ type GridSkeletonLayoutNode = SkeletonLayoutRoot<"grid"> & {
11
+ slots?: GridSkeletonSlot[];
12
+ };
13
+ type GridSkeletonNode = GridSkeletonLayoutNode | SkeletonNode$1;
14
+ type GridSkeletonSpec = {
15
+ className?: string;
16
+ layout?: GridSkeletonNode;
17
+ backgroundColor?: string;
18
+ radius?: SkeletonLength;
19
+ shimmer?: SkeletonShimmer;
20
+ };
21
+
22
+ type LoadingOptions = {
23
+ enabled?: boolean;
24
+ force?: boolean;
25
+ renderLoading?: (args: {
26
+ count: number;
27
+ }) => React.ReactNode;
28
+ skeleton?: GridSkeletonSpec;
29
+ timing?: LoadingTimingOptions;
30
+ };
31
+ type IntroOptions = {
32
+ renderIntro?: (args: {
33
+ active: boolean;
34
+ containerProps: React.HTMLAttributes<HTMLDivElement>;
35
+ }, content: React.ReactNode) => React.ReactNode;
36
+ staggerMs?: number;
37
+ durationMs?: number;
38
+ easing?: string;
39
+ staggerLimit?: number;
40
+ };
41
+ type FullscreenTrigger = 'item' | 'media';
42
+ type GridLazyLoadOptions = GalleryLazyLoadOptions;
43
+ type GridSpan = number | "full";
44
+ type ResponsiveGridSpan = GridSpan | Record<string, GridSpan>;
45
+ type ResponsiveGridTemplate = string | Record<string, string>;
46
+ type GridItemProps = {
47
+ span?: ResponsiveGridSpan;
48
+ className?: string;
49
+ style?: React.CSSProperties;
50
+ children?: React.ReactNode;
51
+ };
52
+ type GridOptions = {
53
+ columns?: ResponsiveNumber;
54
+ templateColumns?: ResponsiveGridTemplate;
55
+ minColumnWidth?: number | string;
56
+ gap?: ResponsiveNumber;
57
+ rootClassName?: string;
58
+ itemClassName?: string;
59
+ fullscreenTrigger?: FullscreenTrigger;
60
+ lazyLoad?: GridLazyLoadOptions;
61
+ loading?: LoadingOptions;
62
+ intro?: IntroOptions;
63
+ };
64
+
65
+ export type { GridItemProps as G, IntroOptions as I, LoadingOptions as L, ResponsiveGridSpan as R, GridLazyLoadOptions as a, GridOptions as b, GridSpan as c, ResponsiveGridTemplate as d };
@@ -1,6 +1,7 @@
1
- import { E as ElementStyle } from './elements-Bd1vm4Uk.mjs';
2
- import { M as MediaItem } from './media-moIXOhT1.mjs';
1
+ import { E as ElementStyle, d as ResponsiveLength, e as ResponsiveCaptionPlacement } from './responsive-D_xhZmVI.mjs';
2
+ import { M as MediaItem } from './plyrTypes-Cq4C3ul5.mjs';
3
3
  import * as React$1 from 'react';
4
+ import { R as ResponsiveTextLineCount, a as ResponsiveTextLineWidth } from './text-Cl2tR8oO.mjs';
4
5
 
5
6
  type SkeletonLength = number | string;
6
7
  type SkeletonShimmer = {
@@ -21,6 +22,7 @@ type SkeletonBaseStyle = {
21
22
  maxHeight?: SkeletonLength;
22
23
  backgroundColor?: string;
23
24
  borderRadius?: SkeletonLength;
25
+ overflow?: React$1.CSSProperties["overflow"];
24
26
  marginTop?: SkeletonLength;
25
27
  marginRight?: SkeletonLength;
26
28
  marginBottom?: SkeletonLength;
@@ -28,6 +30,7 @@ type SkeletonBaseStyle = {
28
30
  alignSelf?: React$1.CSSProperties["alignSelf"];
29
31
  aspectRatio?: number | string;
30
32
  };
33
+ type SkeletonBaseStyleResponsive = SkeletonBaseStyle | Record<string, SkeletonBaseStyle>;
31
34
  type SkeletonContainerStyle = {
32
35
  gap?: SkeletonLength;
33
36
  padding?: SkeletonLength;
@@ -36,6 +39,7 @@ type SkeletonContainerStyle = {
36
39
  wrap?: boolean;
37
40
  width?: SkeletonLength;
38
41
  maxWidth?: SkeletonLength;
42
+ overflow?: React$1.CSSProperties["overflow"];
39
43
  };
40
44
  type SkeletonContainerStyleResponsive = SkeletonContainerStyle | Record<string, SkeletonContainerStyle>;
41
45
  type SkeletonNode = {
@@ -44,7 +48,7 @@ type SkeletonNode = {
44
48
  children: SkeletonNode[];
45
49
  } | {
46
50
  kind: "rect" | "square" | "circle";
47
- style?: SkeletonBaseStyle;
51
+ style?: SkeletonBaseStyleResponsive;
48
52
  shimmer?: SkeletonShimmer;
49
53
  } | {
50
54
  kind: "media";
@@ -53,15 +57,16 @@ type SkeletonNode = {
53
57
  style?: SkeletonContainerStyleResponsive;
54
58
  tile?: {
55
59
  shape?: "rect" | "square" | "circle";
56
- style?: SkeletonBaseStyle;
60
+ style?: SkeletonBaseStyleResponsive;
57
61
  shimmer?: SkeletonShimmer;
58
62
  };
59
63
  } | {
60
64
  kind: "text";
61
65
  fontSize: number;
62
66
  lineHeight: number;
63
- lines?: number;
64
- style?: SkeletonBaseStyle;
67
+ lines?: ResponsiveTextLineCount;
68
+ lineWidth?: ResponsiveTextLineWidth;
69
+ style?: SkeletonBaseStyleResponsive;
65
70
  shimmer?: SkeletonShimmer;
66
71
  };
67
72
  type EntrySkeletonSpec = {
@@ -100,6 +105,17 @@ type EntryOverlayRenderArgs = {
100
105
  style: React.CSSProperties;
101
106
  containerProps: React.HTMLAttributes<HTMLDivElement>;
102
107
  };
108
+ type EntryOverlayStyle = ElementStyle & {
109
+ width?: ResponsiveLength;
110
+ height?: ResponsiveLength;
111
+ placement?: ResponsiveCaptionPlacement;
112
+ breakpoint?: number;
113
+ zoomFade?: boolean;
114
+ zoomFadeDurationMs?: number;
115
+ zoomFadeEasing?: string;
116
+ zoomInTransform?: string;
117
+ zoomOutTransform?: string;
118
+ };
103
119
  type EntryMediaLayout = "slider" | "grid" | "masonry";
104
120
  type EntryCardRenderArgs = {
105
121
  entry: EntryItem;
@@ -145,7 +161,7 @@ type EntriesOptions = {
145
161
  overlay?: (args: EntryOverlayRenderArgs) => React.ReactNode;
146
162
  skeleton?: (args: EntrySkeletonRenderArgs) => React.ReactNode;
147
163
  };
148
- overlay?: ElementStyle;
164
+ overlay?: EntryOverlayStyle;
149
165
  loading?: EntriesLoadingOptions;
150
166
  intro?: IntroOptions;
151
167
  entryList?: ElementStyle;
@@ -155,4 +171,4 @@ type SlideOwner = {
155
171
  entryIndex: number;
156
172
  };
157
173
 
158
- export type { EntriesOptions as E, IntroOptions as I, MediaEntryLink as M, SlideOwner as S, EntryItem as a, EntryMediaRenderArgs as b, EntryOverlayRenderArgs as c, EntryMediaLayout as d, EntryCardRenderArgs as e, EntrySkeletonResolverArgs as f, EntriesLoadingOptions as g, EntrySkeletonRenderArgs as h };
174
+ export type { EntriesOptions as E, IntroOptions as I, MediaEntryLink as M, SlideOwner as S, EntryItem as a, EntryMediaRenderArgs as b, EntryOverlayRenderArgs as c, EntryOverlayStyle as d, EntryMediaLayout as e, EntryCardRenderArgs as f, EntrySkeletonResolverArgs as g, EntriesLoadingOptions as h, EntrySkeletonRenderArgs as i };
package/dist/video.css CHANGED
@@ -1 +1 @@
1
- .mi{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;pointer-events:none;z-index:3;animation:A 1s linear infinite;background:conic-gradient(from 0deg,#fff,#cfe6ff,#8ec5ff,#4ea1ff,#2f7fff,#1d4ed8);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 0);mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 0)}.di{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:3}@keyframes A{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.li{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .18s ease;will-change:opacity;z-index:3;animation:B 1s linear infinite;background:conic-gradient(from 0deg,#fff,#cfe6ff,#8ec5ff,#4ea1ff,#2f7fff,#1d4ed8);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 0);mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 0)}@keyframes B{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.ci{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .18s ease;will-change:opacity;z-index:3}
1
+ .Re{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .18s ease;will-change:opacity;z-index:3;animation:I 1s linear infinite;background:conic-gradient(from 0deg,#fff,#cfe6ff,#8ec5ff,#4ea1ff,#2f7fff,#1d4ed8);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 0);mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 0)}.Se{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .18s ease;will-change:opacity;z-index:3}@keyframes I{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.ci{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .18s ease;will-change:opacity;z-index:3;animation:P 1s linear infinite;background:conic-gradient(from 0deg,#fff,#cfe6ff,#8ec5ff,#4ea1ff,#2f7fff,#1d4ed8);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 0);mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 0)}@keyframes P{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.gi{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .18s ease;will-change:opacity;z-index:3}.Q .plyr__poster{pointer-events:none}
package/dist/video.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { APITypes } from 'plyr-react';
4
- import { b as PlyrSource, c as PlyrOptions } from './plyrTypes-CmP9NWvX.mjs';
5
- import './media-moIXOhT1.mjs';
4
+ import { b as PlyrSource, c as PlyrOptions } from './plyrTypes-Cq4C3ul5.mjs';
5
+ import 'plyr';
6
6
 
7
7
  type RmgPlyrSourceBuilder = (args: {
8
8
  src: string;
package/dist/video.mjs CHANGED
@@ -1 +1 @@
1
- export{a as Video,a as default}from'./chunk-SALMTFMK.mjs';import'./chunk-Q5LUIIWE.mjs';import'./chunk-NWU2GBRJ.mjs';import'./chunk-YRQVG3MM.mjs';import'./chunk-EV6ZK4QI.mjs';import'./chunk-2AHLR3V4.mjs';
1
+ export{a as Video,a as default}from'./chunk-GSEIEFRW.mjs';import'./chunk-WZWMG4ZT.mjs';import'./chunk-UAEPMZQY.mjs';import'./chunk-GT6IL37J.mjs';import'./chunk-AKY343WN.mjs';import'./chunk-JMFDRKTX.mjs';import'./chunk-J4E4PKE5.mjs';import'./chunk-LVYED5ZM.mjs';import'./chunk-6TPHLAUP.mjs';
@@ -0,0 +1,16 @@
1
+ import { a as ZoomPanOptions } from './types-Dhh8xfHo.mjs';
2
+ export { Z as ZoomPanImageProps } from './types-Dhh8xfHo.mjs';
3
+ import * as React from 'react';
4
+
5
+ declare const ZoomPanImage: React.ForwardRefExoticComponent<Omit<React.ImgHTMLAttributes<HTMLImageElement>, "style" | "children" | "className"> & {
6
+ className?: string;
7
+ style?: React.CSSProperties;
8
+ imageClassName?: string;
9
+ imageStyle?: React.CSSProperties;
10
+ zoom?: ZoomPanOptions;
11
+ disabled?: boolean;
12
+ } & React.RefAttributes<HTMLDivElement>>;
13
+
14
+ declare const DEFAULT_ZOOM_PAN: Required<ZoomPanOptions>;
15
+
16
+ export { DEFAULT_ZOOM_PAN, ZoomPanImage, ZoomPanOptions, ZoomPanImage as default };
@@ -0,0 +1 @@
1
+ export{a as ZoomPanImage,a as default}from'./chunk-VXSRNAH4.mjs';export{a as DEFAULT_ZOOM_PAN}from'./chunk-TKPLWDPW.mjs';import'./chunk-UAEPMZQY.mjs';import'./chunk-P2GQPFSL.mjs';import'./chunk-FJYYM5TH.mjs';import'./chunk-AKY343WN.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-motion-gallery",
3
- "version": "2.0.17",
3
+ "version": "2.0.19",
4
4
  "description": "React Motion Gallery - smooth, customizable media gallery components",
5
5
  "license": "PolyForm-Noncommercial-1.0.0",
6
6
  "author": "React Motion Gallery",
@@ -21,81 +21,69 @@
21
21
  "requiredForRevenueUse": true,
22
22
  "url": "https://react-motion-gallery.com/license"
23
23
  },
24
-
25
24
  "main": "./dist/index.mjs",
26
25
  "module": "./dist/index.mjs",
27
26
  "types": "./dist/index.d.mts",
28
-
29
27
  "exports": {
30
28
  ".": {
31
29
  "types": "./dist/index.d.mts",
32
30
  "import": "./dist/index.mjs"
33
31
  },
34
-
35
32
  "./styles.css": "./dist/index.css",
36
-
37
33
  "./core": {
38
34
  "types": "./dist/core.d.mts",
39
35
  "import": "./dist/core.mjs"
40
36
  },
41
-
42
37
  "./slider": {
43
38
  "types": "./dist/slider.d.mts",
44
39
  "import": "./dist/slider.mjs"
45
40
  },
46
-
47
41
  "./grid": {
48
42
  "types": "./dist/grid.d.mts",
49
43
  "import": "./dist/grid.mjs"
50
44
  },
51
-
52
45
  "./masonry": {
53
46
  "types": "./dist/masonry.d.mts",
54
47
  "import": "./dist/masonry.mjs"
55
48
  },
56
-
57
49
  "./entries": {
58
50
  "types": "./dist/entries.d.mts",
59
51
  "import": "./dist/entries.mjs"
60
52
  },
61
-
62
53
  "./fullscreen": {
63
54
  "types": "./dist/fullscreen.d.mts",
64
55
  "import": "./dist/fullscreen.mjs"
65
56
  },
66
-
67
57
  "./thumbnails": {
68
58
  "types": "./dist/thumbnails.d.mts",
69
59
  "import": "./dist/thumbnails.mjs"
70
60
  },
71
-
72
61
  "./fullscreenThumbnails": {
73
62
  "types": "./dist/fullscreenThumbnails.d.mts",
74
63
  "import": "./dist/fullscreenThumbnails.mjs"
75
64
  },
76
-
77
65
  "./video": {
78
66
  "types": "./dist/video.d.mts",
79
67
  "import": "./dist/video.mjs"
68
+ },
69
+ "./zoomPan": {
70
+ "types": "./dist/zoomPan.d.mts",
71
+ "import": "./dist/zoomPan.mjs"
80
72
  }
81
73
  },
82
-
83
74
  "files": [
84
75
  "dist"
85
76
  ],
86
-
87
77
  "sideEffects": [
88
78
  "*.css",
89
79
  "**/*.css"
90
80
  ],
91
-
92
81
  "peerDependencies": {
93
- "react": ">=18",
94
- "react-dom": ">=18",
95
82
  "plyr": "^3.8.4",
96
- "plyr-react": "^6.0.0"
83
+ "plyr-react": "^6.0.0",
84
+ "react": ">=18",
85
+ "react-dom": ">=18"
97
86
  },
98
-
99
87
  "peerDependenciesMeta": {
100
88
  "plyr": {
101
89
  "optional": true
@@ -104,16 +92,17 @@
104
92
  "optional": true
105
93
  }
106
94
  },
107
-
108
95
  "scripts": {
109
96
  "dev": "tsup --watch",
110
97
  "build": "tsup",
111
98
  "size:report": "node ./scripts/report_bundle_sizes.mjs",
112
99
  "size:readme": "node ./scripts/report_bundle_sizes.mjs --write-readme"
113
100
  },
114
-
115
101
  "devDependencies": {
116
102
  "plyr": "^3.8.4",
117
103
  "plyr-react": "^6.0.0"
104
+ },
105
+ "dependencies": {
106
+ "@chenglou/pretext": "^0.0.5"
118
107
  }
119
108
  }
@@ -1 +0,0 @@
1
- var h={xs:0,sm:600,md:900,lg:1200,xl:1536};function p(n,i){if(n==null)return i;if(typeof n=="number")return n;let o=parseFloat(n);return Number.isNaN(o)?i:o}function f(n){return n>0?n:typeof window<"u"&&window.innerWidth>0?window.innerWidth:1024}function d(n,i,o,r=h){let e=f(o);if(n==null)return i;if(typeof n=="number"||typeof n=="string")return p(n,i);if(Array.isArray(n))return d(n[0],i,e,r);let u=Object.entries(n).map(([t,m])=>({minWidth:r[t]??(Number.isNaN(parseFloat(t))?0:parseFloat(t)),value:m})).sort((t,m)=>t.minWidth-m.minWidth),s=i;for(let t of u)e>=t.minWidth&&(s=d(t.value,s,e,r));return s}function a(n,i,o,r=h){let e=f(o);if(n==null)return i;if(typeof n=="string")return n;if(Array.isArray(n))return n[0]??i;let u=Object.entries(n).map(([t,m])=>({minWidth:r[t]??(Number.isNaN(parseFloat(t))?0:parseFloat(t)),value:m})).sort((t,m)=>t.minWidth-m.minWidth),s=i;for(let t of u)e>=t.minWidth&&(s=a(t.value,s,e,r));return s}function W(n,i,o){if(n==null)return [{minWidth:0,count:i}];if(typeof n=="number"||typeof n=="string"){let e=Math.floor(p(n,i));return [{minWidth:0,count:Math.max(0,e)}]}if(Array.isArray(n))return W(n[0],i,o);let r=Object.entries(n).map(([e,u])=>{let s=o[e]??(Number.isNaN(parseFloat(e))?0:parseFloat(e)),t=Math.floor(p(u,i));return {minWidth:s,count:Math.max(0,t)}}).sort((e,u)=>e.minWidth-u.minWidth);return r.length===0?[{minWidth:0,count:i}]:(r[0].minWidth>0?r.unshift({minWidth:0,count:i}):r[0].minWidth<0&&(r[0]={...r[0],minWidth:0}),r)}export{h as a,p as b,d as c,a as d,W as e};
@@ -1,2 +0,0 @@
1
- import {e,a as a$1}from'./chunk-EV6ZK4QI.mjs';import {a}from'./chunk-LVYED5ZM.mjs';import*as v from'react';import {jsx,jsxs}from'react/jsx-runtime';var Me={mediaLayout:"slider"};function Ze(){let e=window.innerWidth||document.documentElement.clientWidth||0,t=window.innerHeight||document.documentElement.clientHeight||0;return {top:0,left:0,right:e,bottom:t,width:e,height:t}}function Y(e,t){return e?e.endsWith("%")?t*parseFloat(e)/100:parseFloat(e)||0:0}function Je(e,t){let r=e.trim().split(/\s+/).filter(Boolean),[n,i=n,l=n,a=i]=[r[0]??"0px",r[1],r[2],r[3]];return {top:Y(n,t.height),right:Y(i,t.width),bottom:Y(l,t.height),left:Y(a,t.width)}}function Ee(e,t,r){let n=e.getBoundingClientRect();if(n.width<=0||n.height<=0)return 0;let i=t instanceof Element?t.getBoundingClientRect():Ze(),l=Je(r,i),a={top:i.top-l.top,left:i.left-l.left,right:i.right+l.right,bottom:i.bottom+l.bottom},o=Math.max(0,Math.min(n.right,a.right)-Math.max(n.left,a.left)),g=Math.max(0,Math.min(n.bottom,a.bottom)-Math.max(n.top,a.top)),w=o*g,k=n.width*n.height;return k>0?w/k:0}function we(e,t){return t<=0?e>0:e>=t}function Qe(e,t){if(Array.isArray(e)){let r=e[0];return typeof r=="number"?r:t}return typeof e=="number"?e:t}function xe(e,t){let r=t?.nearMargin??"700px 0px",n=t?.viewMargin??"0px 0px",i=Qe(t?.threshold,.01),l=0,a=t?.root??null,[o,g]=v.useState(()=>Array.from({length:e},()=>false)),[w,k]=v.useState(()=>Array.from({length:e},()=>false)),R=v.useRef(null),m=v.useRef(null),u=v.useRef(new Map),S=v.useRef([]),I=v.useCallback((f,c)=>{if(typeof window>"u"||!f)return;let d=Ee(f,a,r);we(d,i)&&g(h=>{if(h[c])return h;let s=h.slice();return s[c]=true,s});let y=Ee(f,a,n);we(y,l)&&k(h=>{if(h[c])return h;let s=h.slice();return s[c]=true,s});},[l,r,i,a,n]);v.useEffect(()=>{S.current=Array.from({length:e},()=>null),g(Array.from({length:e},()=>false)),k(Array.from({length:e},()=>false)),u.current.clear(),R.current?.disconnect(),m.current?.disconnect(),R.current=null,m.current=null;},[e]),v.useEffect(()=>{if(!(typeof window>"u")){if(R.current?.disconnect(),m.current?.disconnect(),typeof IntersectionObserver>"u"){for(let[f,c]of u.current.entries())I(f,c);return}R.current=new IntersectionObserver(f=>{g(c=>{let d=c,y=false;for(let h of f){let s=u.current.get(h.target);if(s==null||s<0||s>=e)continue;let x=!!h.isIntersecting;x!==c[s]&&(y||(d=c.slice(),y=true),d[s]=x);}return y?d:c});},{root:a,rootMargin:r,threshold:i}),m.current=new IntersectionObserver(f=>{k(c=>{let d=c,y=false;for(let h of f){let s=u.current.get(h.target);s==null||s<0||s>=e||h.isIntersecting&&!c[s]&&(y||(d=c.slice(),y=true),d[s]=true);}return y?d:c});},{root:a,rootMargin:n,threshold:l});for(let[f]of u.current)R.current.observe(f),m.current.observe(f);for(let[f,c]of u.current.entries())I(f,c);return ()=>{R.current?.disconnect(),m.current?.disconnect(),R.current=null,m.current=null;}}},[l,e,r,i,a,I,n]);let $=v.useCallback(f=>c=>{let d=S.current[f]??null;d&&d!==c&&(u.current.delete(d),R.current?.unobserve(d),m.current?.unobserve(d)),S.current[f]=c,c&&(u.current.set(c,f),I(c,f),R.current?.observe(c),m.current?.observe(c));},[I]);return {nearView:o,everInView:w,setEntryRef:$}}function et(e){let t=e??[],r=`${t.length}|`;for(let n=0;n<t.length;n++){let i=t[n];r+=(i?.key??i?.id??`i${n}`)+"|";}return r}function tt(e,t){return new Promise(r=>{let n=new Image;n.decoding="async",n.src=e;let i=()=>r();if(t?.aborted)return i();if(t?.addEventListener("abort",i,{once:true}),typeof n.decode=="function"){n.decode().catch(()=>{}).finally(i);return}if(n.complete)return i();n.onload=i,n.onerror=i;})}function ve(e,t,r,n){let i=n?.timeoutMs??8e3,l=v.useMemo(()=>et(t),[t]),a=v.useMemo(()=>(t??[]).map(u=>(u.media??[]).filter(S=>S?.kind==="image"&&typeof S?.src=="string").map(S=>S.src)),[t]),[o,g]=v.useState([]),w=v.useRef([]),k=v.useRef(new Map),R=v.useRef("");return v.useEffect(()=>{if(!e)return;let m=t?.length??0;if(R.current!==l){R.current=l,g(Array.from({length:m},(u,S)=>(a[S]?.length??0)===0)),w.current=Array.from({length:m},()=>false);for(let[,u]of k.current)u.abort();k.current.clear();}},[e,l,t,a]),v.useEffect(()=>{if(!e)return;let m=t?.length??0;if(m)for(let u=0;u<m;u++){let S=!!r[u],I=o[u]??false,$=w.current[u]??false;if(!S||I||$)continue;w.current[u]=true;let f=a[u]??[];if(!f.length){g(d=>{if(d[u])return d;let y=d.slice();return y[u]=true,y});continue}let c=new AbortController;k.current.set(u,c),(async()=>{for(let d of f){if(c.signal.aborted)return;await Promise.race([tt(d,c.signal),new Promise(y=>{let h=window.setTimeout(y,i);c.signal.addEventListener("abort",()=>{window.clearTimeout(h),y();},{once:true});})]);}c.signal.aborted||g(d=>{if(!d||u<0||u>=d.length||d[u])return d;let y=d.slice();return y[u]=true,y});})();}},[e,t,a,r,o,i]),v.useEffect(()=>()=>{for(let[,m]of k.current)m.abort();k.current.clear();},[]),{decodedReady:o,entriesKey:l}}function nt(e){if(e!=null)return typeof e=="number"?`${e}px`:e}function Ie(e){return v.useMemo(()=>{let t=e.loading??{},r=typeof t.nearMargin=="string"?t.nearMargin:"700px 0px",n=typeof t.viewMargin=="string"?t.viewMargin:"0px 0px",i=typeof t.threshold=="number"&&!Number.isNaN(t.threshold)?t.threshold:.01,l=t.waitForDecode!==false,a=typeof t.decodeTimeoutMs=="number"&&t.decodeTimeoutMs>0?t.decodeTimeoutMs:8e3,o=nt(t.minHeight)??"260px";return {enabled:t.enabled,force:t.force,skeleton:t.skeleton,minHeight:o,nearMargin:r,viewMargin:n,threshold:i,waitForDecode:l,decodeTimeoutMs:a,skeletonWrap:t.skeletonWrap}},[e.loading])}function Le(e){return v.useMemo(()=>{let t=e.intro??{};return {renderIntro:t.renderIntro,staggerMs:t.staggerMs??200,durationMs:t.durationMs??700,easing:t.easing??"cubic-bezier(.2,.7,.2,1)",staggerLimit:Math.max(0,(t.staggerLimit??6)|0)}},[e.intro])}var b={entryRow:"e",entrySkeletonWrap:"s",entryInner:"w",entryList:"T",entrySkelRoot:"U",entrySkelGroup:"V",entrySkelStack:"W",entrySkelRow:"_",entrySkelCol:"ii",entrySkelTile:"z",entrySkelRect:"ei",entrySkelSquare:"ri",entrySkelCircle:"ti"};function it(){return {variant:"solid",minHeight:260}}function E(e){if(e!=null)return typeof e=="number"?`${e}px`:e}function ot(e){if(!e)return {};let t=E(e.marginTop),r=E(e.marginRight),n=E(e.marginBottom),i=E(e.marginLeft),l={};return t!=null&&(l.marginTop=t),r!=null&&(l.marginRight=r),n!=null&&(l.marginBottom=n),i!=null&&(l.marginLeft=i),l}function at(e,t){let r={};return e?.aspectRatio!=null&&(r.aspectRatio=e.aspectRatio),e?.width!=null&&(r.width=E(e.width)),e?.maxWidth!=null&&(r.maxWidth=E(e.maxWidth)),e?.height!=null&&(r.height=E(e.height)),e?.maxHeight!=null&&(r.maxHeight=E(e.maxHeight)),e?.backgroundColor&&(r["--rmg-skel-bg"]=e.backgroundColor),e?.borderRadius!=null&&(r["--rmg-skel-radius"]=E(e.borderRadius)),e?.alignSelf&&(r.alignSelf=e.alignSelf),t?.enabled===false&&(r["--rmg-skel-shimmer-enabled"]="0"),t?.durationMs!=null&&(r["--rmg-skel-shimmer-duration"]=`${t.durationMs}ms`),t?.angleDeg!=null&&(r["--rmg-skel-shimmer-angle"]=`${t.angleDeg}deg`),r}function Ce(e){let t={};return e&&(e.gap!=null&&(t.gap=E(e.gap)),e.padding!=null&&(t.padding=E(e.padding)),e.align&&(t.alignItems=e.align),e.justify&&(t.justifyContent=e.justify),e.wrap&&(t.flexWrap="wrap"),e.width!=null&&(t.width=E(e.width)),e.maxWidth!=null&&(t.maxWidth=E(e.maxWidth))),t}function Z(e){return e?Object.keys(e).some(t=>String(+t)===t):false}function Ne(e){return e.replace(/"/g,'\\"')}function st(e){return e.replace(/[^a-zA-Z0-9_-]/g,"_")}function Te(e){let t=[];return e.gap!=null&&t.push(`gap:${E(e.gap)};`),e.padding!=null&&t.push(`padding:${E(e.padding)};`),e.align&&t.push(`align-items:${e.align};`),e.justify&&t.push(`justify-content:${e.justify};`),e.wrap&&t.push("flex-wrap:wrap;"),e.width!=null&&t.push(`width:${E(e.width)};`),e.maxWidth!=null&&t.push(`max-width:${E(e.maxWidth)};`),t.join("")}function He(e,t,r){switch(e.kind){case "rect":case "square":case "circle":case "text":return e;case "media":{let n=t(),i=e.style;if(Z(i)){let l=i,a=Object.keys(i).map(o=>+o).filter(o=>Number.isFinite(o)&&o>=0).sort((o,g)=>o-g).map(o=>({minWidth:o,css:Te(l[String(o)]||{})})).filter(o=>o.css.length>0);a.length&&r.push({nodeId:n,rules:a});}return {...e,__rmgNodeId:n}}case "stack":case "row":case "col":{let n=t(),i=e.style;if(Z(i)){let a=Object.keys(i).map(o=>+o).filter(o=>Number.isFinite(o)&&o>=0).sort((o,g)=>o-g).map(o=>({minWidth:o,css:Te(i[o]||{})})).filter(o=>o.css.length>0);a.length&&r.push({nodeId:n,rules:a});}let l=e.children.map(a=>He(a,t,r));return {...e,__rmgNodeId:n,children:l}}default:return e}}function lt(e,t){if(!t.length)return "";let r=`[data-rmg-entry-skel-scope="${Ne(e)}"]`,n=[];for(let i of t){let l=`${r} [data-rmg-skel-node="${Ne(i.nodeId)}"]`;for(let a of i.rules)n.push(`@media (min-width:${a.minWidth}px){${l}{${a.css}}}`);}return n.join(`
2
- `)}function ie({kind:e,style:t,shimmer:r}){let n=e==="circle"?b.entrySkelCircle:e==="square"?b.entrySkelSquare:b.entrySkelRect;return jsx("div",{className:[b.entrySkelTile,n].join(" "),style:{...at(t,r),...ot(t)}})}function Oe({node:e}){switch(e.kind){case "rect":case "square":case "circle":return jsx(ie,{...e});case "media":{let t=Math.max(0,e.count|0),r=e.direction??"row",n=e.tile?.shape??"rect",i=e.__rmgNodeId,l=Z(e.style)?void 0:Ce(e.style);return jsx("div",{"data-rmg-skel-node":i,className:[b.entrySkelGroup,r==="row"?b.entrySkelRow:b.entrySkelCol].join(" "),style:l,children:Array.from({length:t}).map((a,o)=>jsx(ie,{kind:n,style:e.tile?.style,shimmer:e.tile?.shimmer},o))})}case "stack":case "row":case "col":{let t=e.kind==="row"?b.entrySkelRow:e.kind==="col"?b.entrySkelCol:b.entrySkelStack,r=e.__rmgNodeId,n=Z(e.style)?void 0:Ce(e.style);return jsx("div",{"data-rmg-skel-node":r,className:[b.entrySkelGroup,t].join(" "),style:n,children:e.children.map((i,l)=>jsx(Oe,{node:i},l))})}case "text":{let t=Math.max(1,e.lines??1),r=e.fontSize*e.lineHeight*t;return jsx(ie,{kind:"rect",style:{...e.style||{},height:r},shimmer:e.shimmer})}default:{return null}}}function Ae({spec:e,className:t}){let r=e??it(),n={...r.minHeight!=null?{minHeight:E(r.minHeight)}:null};r.defaults?.backgroundColor&&(n["--rmg-skel-bg"]=r.defaults.backgroundColor),r.defaults?.radius!=null&&(n["--rmg-skel-radius"]=E(r.defaults.radius));let i=r.defaults?.shimmer;if(i?.enabled===false&&(n["--rmg-skel-shimmer-enabled"]="0"),i?.durationMs!=null&&(n["--rmg-skel-shimmer-duration"]=`${i.durationMs}ms`),i?.angleDeg!=null&&(n["--rmg-skel-shimmer-angle"]=`${i.angleDeg}deg`),i?.opacity!=null&&(n["--rmg-skel-shimmer-opacity"]=String(i.opacity)),i?.blurPx!=null&&(n["--rmg-skel-shimmer-blur"]=`${i.blurPx}px`),i?.timing&&(n["--rmg-skel-shimmer-timing"]=i.timing),i?.c1&&(n["--rmg-skel-shimmer-c1"]=i.c1),i?.c2&&(n["--rmg-skel-shimmer-c2"]=i.c2),i?.c3&&(n["--rmg-skel-shimmer-c3"]=i.c3),r.variant==="solid"&&!r.layout)return jsx("div",{className:[b.entrySkelTile,t].filter(Boolean).join(" "),style:n});let l=v.useMemo(()=>({kind:"stack",style:{gap:12},children:[{kind:"rect",style:{height:18,width:"60%"}},{kind:"rect",style:{height:14,width:"90%"}},{kind:"media",count:2,direction:"row",style:{gap:10,wrap:true}}]}),[]),a=r.layout??l,o=v.useId(),g=v.useMemo(()=>`skel_${st(o)}`,[o]),{layout:w,responsiveCss:k}=v.useMemo(()=>{let R=0,m=()=>`n${++R}`,u=[],S=He(a,m,u),I=lt(g,u);return {layout:S,responsiveCss:I}},[a,g]);return jsxs("div",{"data-rmg-entry-skel-scope":g,className:[b.entrySkelRoot,t].filter(Boolean).join(" "),style:n,children:[k?jsx("style",{dangerouslySetInnerHTML:{__html:k}}):null,jsx(Oe,{node:w})]})}var ut=220,dt=220;function Pe({enabled:e,entries:t,fsEnabled:r,openFullscreenAt:n,entryFlatIndexRef:i,nodeFromMedia:l,renderMediaContainer:a$1,registerExpandableImage:o,entrySliderRefs:g}){let k=v.useRef(null),R=v.useRef(false),m=M=>{M.button!=null&&M.button!==0||(R.current=false,k.current={x:M.clientX,y:M.clientY});},u=M=>{let p=k.current;if(!p)return;let T=M.clientX-p.x,P=M.clientY-p.y;!R.current&&T*T+P*P>=36&&(R.current=true);},S=()=>{k.current=null,window.setTimeout(()=>{R.current=false;},0);},I=()=>R.current;function $(M,p){let T=t?.loading?.skeleton;if(typeof T=="function"){let P=T({entry:M,entryIndex:p});if(P&&typeof P=="object")return P}else if(T&&typeof T=="object")return T;return {variant:"solid",minHeight:260}}let f=t.items??[],c=f.length,d=v.useRef(0),y=v.useRef([]);y.current.length!==c&&(y.current=Array.from({length:c},()=>-1),d.current=0);let h=Ie(t),s=Le(t),x=t?.loading,W=x?.enabled??true,U=x?.force??false,J=a(),A=e&&W,G=A&&U,{nearView:ae,everInView:Fe,setEntryRef:$e}=xe(c,{root:null,nearMargin:h.nearMargin,viewMargin:h.viewMargin,threshold:h.threshold}),je=A&&!G,{decodedReady:_e}=ve(je,f,ae,{timeoutMs:h.decodeTimeoutMs}),B=A&&(G||c===0),Q=Math.max(0,(J?0:ut)-dt),[De,ee]=v.useState(()=>!B),X=false,We=c?f.map((M,p)=>{let T=ae[p]??false,P=Fe[p]??false,Be=_e[p]??false,V=P||T,K=G?false:A?P&&(h.waitForDecode?Be:true):V;K&&(X=true);let Ve=G?true:A?V&&!K:false,ce=null;if(V){let Xe=M.media??[],Ke=i.current,Ye=Xe.map((ge,z)=>{let ye=Ke?.[p]?.[z]??0,te=typeof t.render?.media=="function"?t.render.media({entry:M,entryIndex:p,media:ge,mediaIndex:z}):l(ge),ne=H=>{o?.(ye,H);},pe=H=>{H.preventDefault(),r&&n(ye,H.currentTarget);};if(v.isValidElement(te)){let H=te,he=H.props?.onClick,q=H.ref,Re=F=>{typeof he=="function"&&he(F),!F.defaultPrevented&&pe(F);};if(typeof H.type=="string"){let F=j=>{typeof q=="function"?q(j):q&&typeof q=="object"&&(q.current=j),ne(j);};return v.cloneElement(H,{key:`${p}-${z}`,onClick:j=>{if(I()){j.preventDefault(),j.stopPropagation();return}Re(j);},onPointerDownCapture:m,onPointerMoveCapture:u,onPointerUpCapture:S,ref:F})}return jsx("span",{ref:ne,style:{display:"contents"},onPointerDownCapture:m,onPointerMoveCapture:u,onPointerUpCapture:S,children:v.cloneElement(H,{onClick:F=>{if(I()){F.preventDefault(),F.stopPropagation();return}Re(F);}})},`${p}-${z}`)}return jsx("div",{className:b.entryMediaButton,onClick:pe,ref:ne,children:te},`${p}-${z}`)}),fe=a$1({entryIndex:p,mediaNodes:Ye,entrySliderRefs:g});ce=typeof t.render?.card=="function"?t.render.card({entry:M,entryIndex:p,media:fe}):fe;}let ue=s.staggerLimit,ze=ue>0&&p<ue?p:0,qe=typeof t.render?.skeleton=="function"?t.render.skeleton({entry:M,entryIndex:p}):null,Ue=$(M,p),de=h.skeletonWrap;K&&y.current[p]===-1&&(y.current[p]=d.current++);let me=y.current[p],Ge=me>=0?me*s.staggerMs:0;return jsxs("div",{ref:$e(p),"data-rmg-entry-ready":K?"1":"0","data-rmg-entry-mounted":V?"1":"0",className:[b.entryRow,t.entryRow?.className].filter(Boolean).join(" "),"data-rmg-entry-owner":p,style:{"--rmg-entry-min-height":h.minHeight,"--rmg-entry-intro-index":ze,"--rmg-entry-intro-delay":`${Ge}ms`,...t.entryRow?.style},children:[A?jsx("div",{className:[b.entrySkeletonWrap,de?.className].filter(Boolean).join(" "),style:de?.style,"aria-hidden":Ve?void 0:true,children:qe??jsx(Ae,{spec:Ue})}):null,V?jsx("div",{className:b.entryInner,children:ce}):null]},M.key??M.id??p)}):null;v.useEffect(()=>{if(B){ee(false);return}if(!A||J||Q===0){ee(A?X:true);return}let M=window.setTimeout(()=>{ee(X);},Q);return ()=>{window.clearTimeout(M);}},[X,Q,A,J,B]);let se={className:[b.entryList,t.entryList?.className].filter(Boolean).join(" "),style:{"--rmg-entry-intro-stagger":`${s.staggerMs}ms`,"--rmg-entry-intro-duration":`${s.durationMs}ms`,"--rmg-entry-intro-easing":s.easing,...t.entryList?.style},"aria-busy":B?true:void 0},le=jsx("div",{...se,children:We});return s.renderIntro?s.renderIntro({active:!B&&De,containerProps:se},le):le}var ft=e=>Array.isArray(e)&&e.every(t=>typeof t=="string"),gt=e=>!e||!e.length?[]:ft(e)?a$1(e):e,yt=e=>e?e.kind==="image":false;function pt(e){return e.kind==="image"?jsx("img",{src:e.src,alt:e.alt??""}):e.kind==="video"?jsx("video",{src:e.src,controls:true,preload:"metadata"}):null}function ht(e){let t=[],r=[],n=[],i=[];return e?.length?(e.forEach((l,a)=>{n[a]=[],(l.media??[]).forEach((o,g)=>{let w=t.length;t.push(o),r.push({entryIndex:a,mediaIndex:g}),i.push({entryIndex:a}),n[a][g]=w;});}),{flattenedMedia:t,flattenedMap:r,entryFlatIndex:n,owners:i}):{flattenedMedia:[],flattenedMap:[],entryFlatIndex:null,owners:[]}}function Dt(e$1){let{enabled:t=true,entries:r,fullscreen:n,renderMediaContainer:i,nodeFromMedia:l=pt}=e$1,a=v.useMemo(()=>({...r,mediaLayout:r?.mediaLayout??Me.mediaLayout}),[r]),o=e(),g=e$1.entryFlatIndexRef??v.useRef(null),w=e$1.entryMapRef??v.useRef(null),k=e$1.fsOwnersRef??v.useRef([]),R=e$1.entrySliderRefs??v.useRef([]),m=o?.expandableImageRefs??v.useRef([]),u=o?.registerExpandableImage??v.useCallback((s,x)=>{if(!x){m.current[s]=null;return}if(x.tagName==="IMG"){m.current[s]=x;return}let W=x.querySelector("img");m.current[s]=W;},[]),{flattenedMedia:S,flattenedMap:I,entryFlatIndex:$,owners:f}=v.useMemo(()=>ht(a.items),[a.items]);v.useEffect(()=>{g.current=$,k.current=f,w.current=I;},[$,f,I,g,k,w]);let c=v.useMemo(()=>{let s=gt(n?.items);return s.length?s:S},[n?.items,S]);v.useEffect(()=>{o&&o.registerFullscreenAdapter("entries",{closestSelector:a.mediaLayout==="slider"?".rmg__slide":".rmg__grid-item",getOwnerSliderHandle:s=>{let x=w.current?.[s];return x?R.current?.[x.entryIndex]??null:null},getEntryContext:()=>({entryMapRef:w,entryMediaLayout:a.mediaLayout,entriesObject:a,entrySliderRefs:R,expandableImageRefs:o?.expandableImageRefs??m})});},[o,a]);let d=s=>s?s instanceof HTMLImageElement?s:s.querySelector("img"):null,y=v.useCallback((s,x)=>{if(!o?.requestFullscreenOpen)return;let W=c[s]??S[s];if(!yt(W))return;let U=d(x??null)??m.current[s]??null;U&&o.requestFullscreenOpen({source:"entries",index:s,image:U,event:void 0});},[o,m,c,S]),h=(n?.enabled??true)&&c.length>0;return jsx(Pe,{enabled:!!t,entries:a,fsEnabled:!!h,openFullscreenAt:y,entryFlatIndexRef:g,nodeFromMedia:l,registerExpandableImage:u,renderMediaContainer:i,entrySliderRefs:R})}export{Me as a,xe as b,ve as c,Ie as d,Le as e,Pe as f,pt as g,ht as h,Dt as i};
@@ -1,2 +0,0 @@
1
- import {a as a$4}from'./chunk-A6MPGIEJ.mjs';import {i,k}from'./chunk-NWU2GBRJ.mjs';import {a}from'./chunk-ESF6XBYF.mjs';import {e}from'./chunk-EV6ZK4QI.mjs';import {a as a$3}from'./chunk-X4HEGEZV.mjs';import {a as a$2}from'./chunk-LVYED5ZM.mjs';import {a as a$1,c}from'./chunk-2AHLR3V4.mjs';import*as l from'react';import {jsx,jsxs}from'react/jsx-runtime';var ie={minColumnWidth:160,gap:8};var g={gridRoot:"ki",gridItem:"a",gridShell:"zi",gridContentLayer:"F",gridLoadingLayer:"g",gridContentBlocked:"Xi",gridLoadingLayerExit:"Yi",gridSkeletonOverlay:"ji",gridSkeletonGrid:"Zi",gridSkeletonItem:"G",gridSkelRect:"qi",gridSkelSquare:"Ai",gridSkelCircle:"Bi",gridSkelGroup:"Ci",gridSkelRow:"Di",gridSkelCol:"Ei",gridSkelStack:"Fi",gridSkelTile:"Gi",gridSkelShimmer:"Hi",introContainer:"h",introActive:"H"};function p(e){if(e!=null)return typeof e=="number"?`${e}px`:e}function Oe(e){if(!e)return {};let t=p(e.marginTop),r=p(e.marginRight),o=p(e.marginBottom),d=p(e.marginLeft),a={};return t!=null&&(a.marginTop=t),r!=null&&(a.marginRight=r),o!=null&&(a.marginBottom=o),d!=null&&(a.marginLeft=d),a}function Ge(e,t){let r={};return e?.aspectRatio!=null&&(r.aspectRatio=e.aspectRatio),e?.width!=null&&(r.inlineSize=p(e.width)),e?.maxWidth!=null&&(r.maxInlineSize=p(e.maxWidth)),e?.height!=null&&(r.height=p(e.height)),e?.maxHeight!=null&&(r.maxHeight=p(e.maxHeight)),e?.backgroundColor&&(r["--rmg-skel-bg"]=e.backgroundColor),e?.borderRadius!=null&&(r["--rmg-skel-radius"]=p(e.borderRadius)),e?.alignSelf&&(r.alignSelf=e.alignSelf),t?.enabled===false&&(r["--rmg-skel-shimmer-enabled"]="0"),t?.durationMs!=null&&(r["--rmg-skel-shimmer-duration"]=`${t.durationMs}ms`),t?.angleDeg!=null&&(r["--rmg-skel-shimmer-angle"]=`${t.angleDeg}deg`),t?.opacity!=null&&(r["--rmg-skel-shimmer-opacity"]=String(t.opacity)),t?.blurPx!=null&&(r["--rmg-skel-shimmer-blur"]=`${t.blurPx}px`),t?.timing&&(r["--rmg-skel-shimmer-timing"]=t.timing),t?.c1&&(r["--rmg-skel-shimmer-c1"]=t.c1),t?.c2&&(r["--rmg-skel-shimmer-c2"]=t.c2),t?.c3&&(r["--rmg-skel-shimmer-c3"]=t.c3),r}function ge(e){let t={};return e&&(e.gap!=null&&(t.gap=p(e.gap)),e.padding!=null&&(t.padding=p(e.padding)),e.align&&(t.alignItems=e.align),e.justify&&(t.justifyContent=e.justify),e.wrap&&(t.flexWrap="wrap"),e.width!=null&&(t.width=p(e.width)),e.maxWidth!=null&&(t.maxWidth=p(e.maxWidth))),t}function B(e){return e?Object.keys(e).some(t=>String(+t)===t):false}function Te(e){return e.replace(/"/g,'\\"')}function Ve(e){return e.replace(/[^a-zA-Z0-9_-]/g,"_")}function me(e){let t=[];return e.gap!=null&&t.push(`gap:${p(e.gap)};`),e.padding!=null&&t.push(`padding:${p(e.padding)};`),e.align&&t.push(`align-items:${e.align};`),e.justify&&t.push(`justify-content:${e.justify};`),e.wrap&&t.push("flex-wrap:wrap;"),e.width!=null&&t.push(`width:${p(e.width)};`),e.maxWidth!=null&&t.push(`max-width:${p(e.maxWidth)};`),t.join("")}function pe(e,t,r){switch(e.kind){case "rect":case "square":case "circle":case "text":return e;case "media":{let o=t(),d=e.style;if(B(d)){let a=d,c=Object.keys(d).map(n=>+n).filter(n=>Number.isFinite(n)&&n>=0).sort((n,s)=>n-s).map(n=>({minWidth:n,css:me(a[String(n)]||{})})).filter(n=>n.css.length>0);c.length&&r.push({nodeId:o,rules:c});}return {...e,__rmgNodeId:o}}case "stack":case "row":case "col":{let o=t(),d=e.style;if(B(d)){let c=Object.keys(d).map(n=>+n).filter(n=>Number.isFinite(n)&&n>=0).sort((n,s)=>n-s).map(n=>({minWidth:n,css:me(d[String(n)]||{})})).filter(n=>n.css.length>0);c.length&&r.push({nodeId:o,rules:c});}let a=e.children.map(c=>pe(c,t,r));return {...e,__rmgNodeId:o,children:a}}case "grid":{let o=t(),d=e.style;if(B(d)){let c=Object.keys(d).map(n=>+n).filter(n=>Number.isFinite(n)&&n>=0).sort((n,s)=>n-s).map(n=>({minWidth:n,css:me(d[String(n)]||{})})).filter(n=>n.css.length>0);c.length&&r.push({nodeId:o,rules:c});}let a=pe(e.item,t,r);return {...e,__rmgNodeId:o,item:a}}default:return e}}function Ue(e,t){if(!t.length)return "";let r=`[data-rmg-grid-skel-scope="${Te(e)}"]`,o=[];for(let d of t){let a=`${r} [data-rmg-skel-node="${Te(d.nodeId)}"]`;for(let c of d.rules)o.push(`@media (min-width:${c.minWidth}px){${a}{${c.css}}}`);}return o.join(`
2
- `)}function ue({kind:e,style:t,shimmer:r}){let o=e==="circle"?g.gridSkelCircle:e==="square"?g.gridSkelSquare:g.gridSkelRect;return jsx("div",{className:[g.gridSkelTile,o,g.gridSkelShimmer].join(" "),style:{...Ge(t,r),...Oe(t)}})}function Pe({node:e}){switch(e.kind){case "rect":case "square":case "circle":return jsx(ue,{...e});case "media":{let t=Math.max(0,e.count|0),r=e.direction??"row",o=e.tile?.shape??"rect",d=e.__rmgNodeId,a=B(e.style)?void 0:ge(e.style);return jsx("div",{"data-rmg-skel-node":d,className:[g.gridSkelGroup,r==="row"?g.gridSkelRow:g.gridSkelCol].join(" "),style:a,children:Array.from({length:t}).map((c,n)=>jsx(ue,{kind:o,style:e.tile?.style,shimmer:e.tile?.shimmer},n))})}case "stack":case "row":case "col":{let t=e.kind==="row"?g.gridSkelRow:e.kind==="col"?g.gridSkelCol:g.gridSkelStack,r=e.__rmgNodeId,o=B(e.style)?void 0:ge(e.style);return jsx("div",{"data-rmg-skel-node":r,className:[g.gridSkelGroup,t].join(" "),style:o,children:e.children.map((d,a)=>jsx(Pe,{node:d},a))})}case "text":{let t=Math.max(1,e.lines??1),r=e.fontSize*e.lineHeight*t;return jsx(ue,{kind:"rect",style:{...e.style||{},height:r},shimmer:e.shimmer})}default:return null}}function He(){return {layout:{kind:"grid",item:{kind:"rect",style:{width:"100%",aspectRatio:1,borderRadius:12}},itemWrapStyle:void 0},radius:12}}function Ae({count:e,gridStyle:t,spec:r}){let o=r??He(),d=o.layout??He().layout,a=l.useId(),c=l.useMemo(()=>`gskel_${Ve(a)}`,[a]),n={...t||{}};o.backgroundColor&&(n["--rmg-skel-bg"]=o.backgroundColor),o.radius!=null&&(n["--rmg-skel-radius"]=p(o.radius));let s=o.shimmer;s?.enabled===false&&(n["--rmg-skel-shimmer-enabled"]="0"),s?.durationMs!=null&&(n["--rmg-skel-shimmer-duration"]=`${s.durationMs}ms`),s?.angleDeg!=null&&(n["--rmg-skel-shimmer-angle"]=`${s.angleDeg}deg`),s?.timing&&(n["--rmg-skel-shimmer-timing"]=s.timing),s?.opacity!=null&&(n["--rmg-skel-shimmer-opacity"]=String(s.opacity)),s?.blur!=null&&(n["--rmg-skel-shimmer-blur"]=p(s.blur)),s?.c1&&(n["--rmg-skel-shimmer-c1"]=s.c1),s?.c2&&(n["--rmg-skel-shimmer-c2"]=s.c2),s?.c3&&(n["--rmg-skel-shimmer-c3"]=s.c3);let{layout:L,responsiveCss:P}=l.useMemo(()=>{let A=0,C=()=>`n${++A}`,M=[],K=pe(d,C,M),R=Ue(c,M);return {layout:K,responsiveCss:R}},[d,c]),S=L,x=S.__rmgNodeId,W=B(S.style)?void 0:ge(S.style),D=S.count!=null?Math.max(0,S.count|0):Math.max(0,e|0),E=S.itemWrapStyle;return jsxs("div",{"data-rmg-grid-skel-scope":c,className:[g.gridSkeletonOverlay,o.className].filter(Boolean).join(" "),children:[P?jsx("style",{dangerouslySetInnerHTML:{__html:P}}):null,jsx("div",{"data-rmg-skel-node":x,className:g.gridSkeletonGrid,style:{...n,...W||{},display:"grid"},children:Array.from({length:D}).map((A,C)=>jsx("div",{className:g.gridSkeletonItem,style:{...E?Ge(E,void 0):null,...E?Oe(E):null},children:jsx(Pe,{node:S.item})},`rmg-grid-skel-${C}`))})]})}function ye(e){return e instanceof HTMLImageElement}function fe(e){if(!e)return null;if(ye(e))return e;let t=e.querySelector("img");return ye(t)?t:null}function Ye(e){if(!(e instanceof HTMLElement))return null;let t=e.closest("img");return ye(t)?t:null}function Ze(...e){return t=>{for(let r of e)r&&(typeof r=="function"?r(t):typeof r=="object"&&(r.current=t));}}function q(...e){return e.filter(Boolean).join(" ")}var Je=220,Qe=220;function ze({cells:e$1,grid:t,breakpoints:r,viewportWidth:o,loading:d,intro:a,enableFullscreen:c$1,onOpen:n,registerExpandableImage:s,gridItemBaseClass:L="rmg__grid-item",renderMode:P}){let S=e(),x=l.useRef(null),[W,D]=l.useState(false),[E,A]=l.useState(false),C=l.useRef(new Set),M=a$2(),R=l.useMemo(()=>i(t.lazyLoad),[t.lazyLoad]).enabled;a$3(true,x,()=>D(true)),a$4(!R,x,A);let O=P??"wrap",u=t.fullscreenTrigger??"media",[k$1,w]=l.useState(false);l.useEffect(()=>{w(true);},[]);let ae=d.enabled??true,$e=d.force??false,ke=R?k$1:E,V=ae&&($e||!ke),U=M?0:Je,Se=Math.max(0,U-Qe),[N,oe]=l.useState(()=>V),[_e,X]=l.useState(false),[Be,Y]=l.useState(()=>!V),se=ke&&W&&Be;l.useEffect(()=>{if(V){oe(true),X(false),Y(false);return}if(!N){Y(true);return}if(U===0){X(false),oe(false),Y(true);return}X(true);let m=window.setTimeout(()=>{Y(true);},Se),i=window.setTimeout(()=>{oe(false),X(false);},U);return ()=>{window.clearTimeout(m),window.clearTimeout(i);}},[Se,V,U,N]),l.useEffect(()=>{C.current.clear();},[e$1.length]),l.useEffect(()=>{let m=x.current;if(!m||!S)return;let i=m.closest('[data-rmg-viewport="true"]'),f=new IntersectionObserver(h=>{for(let b of h){if(!b.isIntersecting)continue;let I=b.target;if(!(I instanceof HTMLElement)){f.unobserve(b.target);continue}let ne=I.getAttribute("data-rmg-idx"),z=ne!=null?parseInt(ne,10):NaN;if(!Number.isFinite(z)){f.unobserve(I);continue}C.current.has(z)||(C.current.add(z),S.notifyBaseVisibleIndex(z)),f.unobserve(I);}},{root:i,rootMargin:"200px",threshold:.15});return Array.from(m.children).filter(h=>h instanceof HTMLElement&&h.hasAttribute("data-rmg-idx")).forEach(h=>{let b=h.getAttribute("data-rmg-idx"),I=b!=null?parseInt(b,10):NaN;!Number.isFinite(I)||C.current.has(I)||f.observe(h);}),()=>f.disconnect()},[e$1,S,R,O]);let Z=l.useCallback((m,i,f)=>{if(!c$1)return;let T=u==="media"?Ye(f.target):fe(i);T&&n(m,T);},[c$1,u,n]),J=l.useCallback(m=>i=>{i.preventDefault(),Z(m,i.currentTarget,i);},[Z]),Q=l.useCallback(m=>i=>{i.key!=="Enter"&&i.key!==" "||(i.preventDefault(),Z(m,i.currentTarget,i));},[Z]),le=l.useCallback(m=>i=>{s(m,fe(i));},[s]),he=typeof t.minColumnWidth=="number"?`${t.minColumnWidth}px`:t.minColumnWidth??"160px",Re=l.useMemo(()=>{if(typeof t.gap=="string"&&Number.isNaN(parseFloat(t.gap)))return t.gap;let m=c(t.gap,typeof t.gap=="number"?t.gap:8,o,r);return `${Math.max(0,m|0)}px`},[t.gap,o,r]),ee=l.useMemo(()=>{if(t.columns==null)return;let m=c(t.columns,1,o,r);return Math.max(1,m|0)},[t.columns,o,r]),te=l.useMemo(()=>{let m={"--rmg-grid-min":he,"--rmg-grid-gap":Re};return ee&&ee>0&&(m.gridTemplateColumns=`repeat(${ee}, minmax(0, 1fr))`),m},[he,Re,ee]),ce=e$1.length,be=l.useMemo(()=>!ae||!N?null:d.renderLoading?d.renderLoading({count:ce}):jsx(Ae,{count:ce,gridStyle:te,spec:d.skeleton}),[ae,N,d.renderLoading,d.skeleton,ce,te]),j=l.useMemo(()=>q(L,g.gridItem,g.introItem,t.itemClassName),[L,t.itemClassName]),We=l.useMemo(()=>e$1.map((m,i)=>{let f=m.node,T={"--rmg-intro-index":i};if(R){let de=(l.isValidElement(f)?f:null)?.props??{},Fe=c$1?$=>{$.defaultPrevented||J(i)($);}:void 0,qe=c$1?$=>{de.onKeyDown?.($),!$.defaultPrevented&&Q(i)($);}:void 0;return jsx(k,{index:i,"data-rmg-idx":i,className:j,style:T,lazyLoad:t.lazyLoad,registerExpandableImage:s,onClick:Fe,onKeyDown:qe,tabIndex:c$1?de.tabIndex??0:void 0,"aria-label":c$1?de["aria-label"]??`View image ${i+1}`:void 0,children:f},m.id)}if(O==="passthrough")return jsx("div",{"data-rmg-idx":i,className:j,style:T,children:f},m.id);if(!l.isValidElement(f)||typeof f.type!="string")return jsx("div",{"data-rmg-idx":i,className:j,style:T,onClick:J(i),onKeyDown:Q(i),tabIndex:0,"aria-label":`View image ${i+1}`,ref:le(i),children:f},m.id);let h=f,b=h.props??{},I=h.ref,ne=H=>{b.onClick?.(H),!H.defaultPrevented&&J(i)(H);},z=H=>{b.onKeyDown?.(H),!H.defaultPrevented&&Q(i)(H);},je=Ze(I,le(i));return l.cloneElement(h,{key:m.id,ref:je,"data-rmg-idx":i,className:q(j,b.className),style:{...b.style||{},...T},onClick:ne,onKeyDown:z,tabIndex:h.props?.tabIndex??0,"aria-label":h.props?.["aria-label"]??`View image ${i+1}`})}),[e$1,R,t.lazyLoad,O,j,c$1,J,Q,s,le]);l.useLayoutEffect(()=>{if(O!=="passthrough"||R)return;let m=x.current;if(m){for(let i=0;i<e$1.length;i++){let f=m.querySelector(`[data-rmg-idx="${i}"]`);s(i,fe(f));}return ()=>{for(let i=0;i<e$1.length;i++)s(i,null);}}},[O,R,e$1.length,s]);let ve=l.useMemo(()=>({className:q(g.gridRoot,g.introContainer,se&&g.introActive,t.rootClassName),style:{...te,"--rmg-intro-stagger":`${a.staggerMs}ms`,"--rmg-intro-transform":a.transform,"--rmg-intro-duration":`${a.durationMs}ms`,"--rmg-intro-easing":a.easing},"aria-busy":N?true:void 0}),[t.rootClassName,te,a.staggerMs,a.transform,a.durationMs,a.easing,se,N]),Le=jsx("div",{ref:x,...ve,children:We}),De=a.renderIntro?a.renderIntro({active:se,containerProps:ve},Le):Le;return jsxs("div",{className:g.gridShell,children:[jsx("div",{className:q(g.gridContentLayer,N&&g.gridContentBlocked),children:De}),N&&be?jsx("div",{className:q(g.gridLoadingLayer,_e&&g.gridLoadingLayerExit),"aria-hidden":"true",children:be}):null]})}function tt(e$1){let{children:t,breakpoints:r,gridItemBaseClass:o,renderMode:d,...a$2}=e$1,c$1=e(),n=a(),s=l.useMemo(()=>c$1?.effectiveBreakpoints??{...a$1,...r||{}},[c$1?.effectiveBreakpoints,r]),L=l.useMemo(()=>{let u=a$2.columns!=null?Math.max(1,c(a$2.columns,0,n,s)|0):void 0,k=ie.gap!=null?ie.gap:0,w=a$2.gap!=null?Math.max(0,c(a$2.gap,k,n,s)|0):k;return {...a$2,columns:u,minColumnWidth:a$2.minColumnWidth??ie.minColumnWidth,gap:w}},[a$2,n,s]),P=l.useRef(0),S=l.useCallback(()=>`rmg-${++P.current}`,[]),x=l.useMemo(()=>l.Children.toArray(t).map(k=>({id:S(),node:k})),[]),[W]=l.useState(x);function D(u){return {enabled:u?.enabled,force:u?.force,renderLoading:u?.renderLoading,skeleton:u?.skeleton}}let E=l.useMemo(()=>D(L.loading),[L.loading]);function A(u){return {renderIntro:u?.renderIntro,staggerMs:u?.staggerMs??40,transform:u?.transform??"translateY(10px) scale(0.99)",durationMs:u?.durationMs??300,easing:u?.easing??"cubic-bezier(.2,.7,.2,1)"}}let C=l.useMemo(()=>A(L.intro),[L.intro]),M=c$1?.expandableImageRefs??l.useRef([]),K=c$1?.registerExpandableImage??l.useCallback((u,k)=>{if(!k){M.current[u]=null;return}if(k.tagName==="IMG"){M.current[u]=k;return}let w=k.querySelector("img");M.current[u]=w;},[]),R=u=>u?u instanceof HTMLImageElement?u:u.querySelector("img"):null,O=l.useCallback((u,k)=>{if(!c$1?.requestFullscreenOpen)return;let w=R(k??null)??M.current[u]??null;w&&c$1.requestFullscreenOpen({source:"grid",index:u,image:w,event:void 0});},[c$1,M]);return jsx(ze,{cells:W,grid:L,breakpoints:s,viewportWidth:n,loading:E,intro:C,enableFullscreen:!!c$1?.requestFullscreenOpen,onOpen:O,registerExpandableImage:K,gridItemBaseClass:o,renderMode:d})}export{ie as a,tt as b};
@@ -1 +0,0 @@
1
- import*as e from'react';function r(){let[t,i]=e.useState(()=>typeof window>"u"?0:window.innerWidth);return e.useEffect(()=>{if(typeof window>"u")return;let n=()=>i(window.innerWidth);return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[]),t}export{r as a};
@@ -1 +0,0 @@
1
- import {a}from'./chunk-2AHLR3V4.mjs';import*as n from'react';import {jsx}from'react/jsx-runtime';function ee(t){return Array.isArray(t)&&t.every(e=>typeof e=="string")}function te(t){return Array.isArray(t)&&t.every(e=>{if(!e||typeof e!="object")return false;let c=e.kind;return c==="image"||c==="video"?typeof e.src=="string":c==="node"?"node"in e:false})}function ne(t){return Array.isArray(t)&&t.every(e=>typeof e=="string"?true:!e||typeof e!="object"?false:e.kind==="node"?"node"in e:typeof e.src=="string")}function Q(t){return /\.(mp4|webm|ogg)$/i.test(t)?"video":"image"}var U=t=>t.map(e=>typeof e=="string"?{kind:Q(e),src:e}:e.kind==="node"?{kind:"node",node:e.node}:(e.kind??(e.poster?"video":Q(e.src)))==="video"?{kind:"video",src:e.src,poster:e.poster,alt:e.alt,caption:e.caption}:{kind:"image",src:e.src,alt:e.alt,caption:e.caption,srcSet:e.srcSet,sizes:e.sizes,width:e.width,height:e.height});function S(t){return !t||!t.length?[]:te(t)?t:ee(t)||ne(t)?U(t):[]}function re(t){return !!t&&t.kind==="image"}function ae(t,e){return re(t)&&!!e}function se(t,e,c){return (c??"scale")==="fade"?"fade":ae(t,e)?"scale":"fade"}function x(){let t=new Set;return {emit(e){t.forEach(c=>c(e));},subscribe(e){return t.add(e),()=>{t.delete(e);}}}}function C(t,e,c){return Math.max(e,Math.min(c,t))}function h(t){return Array.isArray(t)?t:[t]}function oe(t,e){return t?n.Children.toArray(t).map(p=>({id:e(),node:p})):[]}function ce(t){let{layout:e,breakpoints:c,fullscreenItems:p,nodes:W}=t,i=n.useRef([]),O=n.useCallback((r,a)=>{let s=i.current[r];if(s&&a===s)return;if(!a){i.current[r]=null;return}if(a.tagName==="IMG"){i.current[r]=a;return}let o=a.querySelector("img");i.current[r]=o;},[]),N=n.useMemo(()=>({...a,...c||{}}),[c]),E=n.useRef(null),G=n.useRef(new Map),L=n.useCallback((r,a)=>{G.current.set(r,a);},[]),y=n.useCallback(r=>G.current.get(r)??null,[]),X=n.useRef(0),l=n.useCallback(()=>`rmg-${++X.current}`,[]),[T,Y]=n.useState(false),M=n.useRef(false),w=n.useCallback(r=>{M.current=r,Y(r);},[]),V=n.useMemo(()=>oe(W,l),[]),u=n.useRef(V),[H,Z]=n.useState(V),[f,F]=n.useState(()=>S(p));n.useEffect(()=>{F(S(p));},[p]);function R(r){u.current=r,Z(r);}let B=n.useCallback(r=>{let a=h(r).map(o=>({id:l(),node:o})),s=[...u.current,...a];return R(s),s.length},[l]),q=n.useCallback(r=>{let s=[...h(r).map(o=>({id:l(),node:o})),...u.current];return R(s),s.length},[l]),z=n.useCallback((r,a)=>{let s=u.current.slice(),o=h(a).map(k=>({id:l(),node:k})),m=C(r|0,0,s.length),d=[...s.slice(0,m),...o,...s.slice(m)];return R(d),d.length},[l]),j=n.useCallback(r=>{let a=u.current;if(!a.length)return 0;let s=C(r|0,0,a.length-1),o=a.slice(0,s).concat(a.slice(s+1));return R(o),o.length},[]),P=n.useCallback((r,a)=>{let s=u.current;if(!s.length)return;let o=C(r|0,0,s.length-1),m=s[o].id,d=s.slice();d[o]={id:m,node:a},R(d);},[]),K=n.useCallback(r=>{let a=(r??[]).map(s=>({id:l(),node:s}));return R(a),a.length},[l]),b=n.useMemo(()=>x(),[]),g=n.useCallback(r=>{b.emit(r);},[b]),_=n.useCallback(r=>{let a=C(r.index|0,0,Math.max(0,f.length-1)),s=f[a]??null,o=i.current[a]??null,m=r.method,d=se(s,o,m),k=d==="scale"?o:null;y(e==="slider"?"slider":e==="grid"?"grid":e==="masonry"?"masonry":"entries")?.syncBeforeOpen?.(a),g({source:"api",index:a,image:k,method:d,requestedMethod:m,event:r.event});},[f,i,e,y,g]),I=n.useMemo(()=>x(),[]),$=n.useCallback(r=>{typeof r=="number"&&I.emit({index:r,reason:"io"});},[I]),v=n.useMemo(()=>x(),[]),D=n.useCallback(r=>{typeof r=="number"&&v.emit({index:r,reason:"active"});},[v]);return n.useMemo(()=>({layout:e,effectiveBreakpoints:N,cellsState:H,cellsRef:u,normalizedItems:f,setNormalizedItems:F,sliderApiRef:E,append:B,prepend:q,insert:z,remove:j,replace:P,setItems:K,requestFullscreenOpen:g,openFullscreenAt:_,fsOpenSub:b,isFullscreenOpen:T,isFullscreenOpenRef:M,setFullscreenOpen:w,registerFullscreenAdapter:L,getFullscreenAdapter:y,expandableImageRefs:i,registerExpandableImage:O,baseVisibleSub:I,notifyBaseVisibleIndex:$,fsVisibleSub:v,notifyFsVisibleIndex:D}),[e,N,H,f,T,u,F,E,B,q,z,j,P,K,g,_,b,M,w,L,y,i,O,I,$,v,D])}var A=n.createContext(null);function le(t){let e=ce(t);return jsx(A.Provider,{value:e,children:t.children})}var ye=le;function be(){let t=n.useContext(A);if(!t)throw new Error("useGalleryCore() must be used inside <GalleryCore />");return t}function ge(){return n.useContext(A)}export{U as a,le as b,ye as c,be as d,ge as e};
@@ -1,5 +0,0 @@
1
- import {e}from'./chunk-2AHLR3V4.mjs';function f(p=0,m="animated"){let i=p,d=m,a={type:"set",index:p,mode:m},u=new Set,s=new Set,o=new Set,r=0,l=()=>{r||(r=requestAnimationFrame(()=>{r=0;let e=a;s.forEach(n=>n(e)),u.forEach(n=>n());}));};return {get(){return {index:i,mode:d}},set(e,n="animated",t){i=e,d=n,a={type:"set",index:i,mode:n},t?.silent||l();},bump(e,n="animated",t){a={type:"bump",delta:e|0,mode:n},t?.silent||l();},subscribe(e){return u.add(e),()=>{u.delete(e);}},onEvent(e){return s.add(e),()=>{s.delete(e);}},onBasePointerDown(e){return o.add(e),()=>{o.delete(e);}},emitBasePointerDown:()=>{o.forEach(e=>e());}}}var I=f;function C(p){let{scopeId:m,responsiveCount:i,fallbackCount:d,breakpointMap:a,maxSlots:u}=p,s=e(i,d,a),o=t=>Math.max(0,Math.min(u,Math.floor(t))),r=o(s[0]?.count??d),l=`[data-rmg-scope="${m}"]`,b=`${l} [data-rmg-skel-slot]`,e$1=[];e$1.push(`${b}{ display:none; }`);let n=t=>{let c=o(t);return c<=0?"":Array.from({length:c}).map((h,v)=>`${l} [data-rmg-skel-slot="${v+1}"]{ display:block; }`).join(`
2
- `)};e$1.push(n(r));for(let t of s.slice(1)){let c=o(t.count);e$1.push(`@media (min-width:${t.minWidth}px){
3
- ${n(c)}
4
- }`);}return {cssText:e$1.join(`
5
- `),ssrBaseCount:r}}export{f as a,I as b,C as c};