react-motion-gallery 2.0.18 → 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 +194 -33
  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-24CTbRWj.d.mts → controls-SpWg1Kgt.d.mts} +1 -6
  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-DUP4I_sT.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 +11 -7
  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-9g3BgMxk.d.mts → types-CHUayqcj.d.mts} +14 -4
  62. package/dist/{types-fFyCx1KQ.d.mts → types-DY058l5M.d.mts} +34 -11
  63. package/dist/types-Dhh8xfHo.d.mts +18 -0
  64. package/dist/{types-CvTlITct.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-D_6Ksp_r.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-5BVPDHQ4.mjs +0 -1
  76. package/dist/chunk-ESF6XBYF.mjs +0 -1
  77. package/dist/chunk-EV6ZK4QI.mjs +0 -1
  78. package/dist/chunk-IVNQO5UT.mjs +0 -2
  79. package/dist/chunk-KZUAS63N.mjs +0 -1
  80. package/dist/chunk-Q2WWO4HE.mjs +0 -10
  81. package/dist/chunk-QKPYVOTI.mjs +0 -1
  82. package/dist/chunk-RQXWOXAH.mjs +0 -6
  83. package/dist/chunk-TZGAHWM7.mjs +0 -1
  84. package/dist/chunk-U6H3YVAK.mjs +0 -2
  85. package/dist/chunk-UHXXMYPP.mjs +0 -6
  86. package/dist/chunk-VQ742FWN.mjs +0 -4
  87. package/dist/chunk-X4HEGEZV.mjs +0 -1
  88. package/dist/chunk-XBRTUB3S.mjs +0 -2
  89. package/dist/chunk-XVU6PJ7B.mjs +0 -59
  90. package/dist/chunk-YRQVG3MM.mjs +0 -1
  91. package/dist/chunk-ZZZZXO5U.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-9g3BgMxk.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-24CTbRWj.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
- .dr{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)}.cr{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)}}.gr{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)}}.pr{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}.C .plyr__poster{pointer-events:none}
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-QKPYVOTI.mjs';import'./chunk-5BVPDHQ4.mjs';import'./chunk-ZZZZXO5U.mjs';import'./chunk-YRQVG3MM.mjs';import'./chunk-EV6ZK4QI.mjs';import'./chunk-LVYED5ZM.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.18",
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 +0,0 @@
1
- import {i,j}from'./chunk-ZZZZXO5U.mjs';import {e}from'./chunk-EV6ZK4QI.mjs';import {a}from'./chunk-LVYED5ZM.mjs';import*as v from'react';import {jsx,jsxs}from'react/jsx-runtime';var Ve={controls:["play-large","play","progress","current-time","volume","fullscreen"],ratio:"",fullscreen:{enabled:true,fallback:true,iosNative:true}},He=e=>({type:"video",poster:e.thumb,sources:[{src:e.src,type:"video/mp4"}]});var te=e=>e.kind==="video";function je(e,t,n){return e.map((r,i)=>te(r)?{source:t(r,i),options:n(r,i)}:null)}function Oe(e,t){return (n,r)=>{let i=typeof t=="function"?t(n,r):t??{};return {...e,...i}}}function D(e){let t=e,n=String(t?.sources?.[0]?.provider??"").toLowerCase();if(n==="youtube")return "youtube";if(n==="vimeo")return "vimeo";let r=String(t?.sources?.[0]?.src??"").toLowerCase();return r.endsWith(".mp4")||r.includes(".mp4?")?"mp4":"other"}function ne(e){return typeof e?.play=="function"&&typeof e?.pause=="function"}function re(e){let t=Number(e?.duration??0);if(Number.isFinite(t)&&t>0)return true;let n=e?.currentSrc;return typeof n=="string"&&n.length>0}function z(e){return e?/url\(["']?(.*?)["']?\)/.exec(e)?.[1]??null:null}function oe(e,t){if(t)return t;let r=e?.elements?.container?.querySelector?.(".plyr__poster");if(!r)return null;let i=z(r.style.backgroundImage);if(i)return i;try{return z(getComputedStyle(r).backgroundImage)}catch{return null}}function W(e){return new Promise(t=>{if(typeof window>"u"){t();return}window.setTimeout(t,Math.max(0,e));})}async function ae(e=1){if(!(typeof window>"u"||e<=0))for(let t=0;t<e;t+=1)await new Promise(n=>{window.requestAnimationFrame(()=>n());});}async function ie(e){try{let t=new Image;if(t.decoding="async",t.src=e,t.complete)return t.naturalWidth>0&&t.naturalHeight>0;if(typeof t.decode=="function")try{return await t.decode(),t.naturalWidth>0&&t.naturalHeight>0}catch{}return await new Promise(n=>{let r=()=>{t.onload=null,t.onerror=null;};t.onload=()=>{r(),n(t.naturalWidth>0&&t.naturalHeight>0);},t.onerror=()=>{r(),n(!1);};})}catch{return false}}async function se(e,t){if(t.provider!=="youtube")return;let n=oe(e,t.posterSrc??null);n&&await Promise.race([ie(n),W(650).then(()=>false)]),await ae(2),await W(n?120:180);}function Ie(e,t,n={}){let r=true,i=false,c=null,l=null,u=()=>{l!=null&&(window.clearInterval(l),l=null);try{e?.off?.("ready",a);}catch{}E();},d=()=>{r=false,u();},m=()=>{r&&(r=false,u(),t());},b=()=>{!r||i||(i=true,u(),se(e,n).finally(()=>{m();}));},S=()=>{let o=e?.media;return !ne(o)||!re(o)?false:(b(),true)},h=()=>{b();},E=()=>{if(!(!c||typeof c.removeEventListener!="function")){for(let o of ["durationchange","timeupdate","canplaythrough","loadedmetadata","load"])try{c.removeEventListener(o,h);}catch{}c=null;}},g=()=>{let o=e?.media??null;if(!(!o||o===c)&&typeof o.addEventListener=="function"){E(),c=o;for(let s of ["durationchange","timeupdate","canplaythrough","loadedmetadata","load"])try{o.addEventListener(s,h);}catch{}}},a=()=>{b();};try{e?.on?.("ready",a);}catch{}return g(),!S()&&typeof window<"u"&&(l=window.setInterval(()=>{g(),S();},120)),d}function Ne(e){return e?!!(e.classList?.contains("rmg__player")||e.tagName.toLowerCase()==="video"):false}var I={spinner:"gr",rmgSpin:"B",spinnerWrap:"pr",playerWrap:"C"};var ce={width:"100%"},ue=260;function de(e,t){let n=typeof e=="function"?e(t):e;return n&&{...n,autoplay:n.autoplay??false,preload:n.preload??"none"}}function me(e){if(typeof e=="number"&&Number.isFinite(e)&&e>0)return e;if(typeof e=="string"){let t=e.trim(),n=t.match(/^(\d+(?:\.\d+)?)\s*:\s*(\d+(?:\.\d+)?)$/);if(n){let c=parseFloat(n[1]),l=parseFloat(n[2]);if(c>0&&l>0)return c/l}let r=t.match(/^(\d+(?:\.\d+)?)\s*\/\s*(\d+(?:\.\d+)?)$/);if(r){let c=parseFloat(r[1]),l=parseFloat(r[2]);if(c>0&&l>0)return c/l}let i=Number(t);if(Number.isFinite(i)&&i>0)return i}if(typeof e=="object"&&e){let t=e.w??e.width,n=e.h??e.height;if(typeof t=="number"&&typeof n=="number"&&t>0&&n>0)return t/n}return null}function fe(e,t){return t?e?!e.hasLiveFrame&&t.hasLiveFrame:true:false}function $(e,t,n,r){return jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,zIndex:2,width:"100%",height:"100%",pointerEvents:"none",visibility:t?"visible":"hidden",opacity:t?1:0,transition:n>0?`opacity ${n}ms ease`:void 0,willChange:n>0&&!t?"opacity":void 0},dangerouslySetInnerHTML:{__html:e.markupHtml}},`${r}-${e.version}`)}function $e(e$1){let t=e(),n=a(),r=v.useCallback(F=>e$1.store.subscribe(e$1.canonicalIndex,F),[e$1.canonicalIndex,e$1.store]),i$1=v.useCallback(()=>e$1.store.getSnapshot(e$1.canonicalIndex),[e$1.canonicalIndex,e$1.store]),c=v.useSyncExternalStore(r,i$1,i$1),l=c?.markupHtml?c:null,u=v.useMemo(()=>i(e$1.lazyLoad),[e$1.lazyLoad]),d=v.useRef(false);v.useEffect(()=>{l?.markupHtml||t&&(d.current||(d.current=true,t.notifyBaseVisibleIndex(e$1.canonicalIndex)));},[t,e$1.canonicalIndex,l?.markupHtml]);let m=v.useMemo(()=>j({lazy:u,kind:"video",isClone:true}),[u]),b=[m.isCustom?I.spinnerWrap:I.spinner,u.spinnerClassName].filter(Boolean).join(" "),S=v.useMemo(()=>e$1.source??e$1.sourceBuilder?.({src:e$1.src})??{type:"video",poster:e$1.poster,sources:[{src:e$1.src,type:"video/mp4"}]},[e$1.poster,e$1.source,e$1.sourceBuilder,e$1.src]),h=v.useMemo(()=>de(e$1.options,{src:e$1.src,index:e$1.canonicalIndex}),[e$1.canonicalIndex,e$1.options,e$1.src]),E=v.useMemo(()=>l?.provider??D(S),[l?.provider,S]),g=v.useMemo(()=>me(h?.ratio??null),[h]),a$1=!!l,o=n?0:ue,[s,p]=v.useState(l),[f,y]=v.useState(null),[R,L]=v.useState(a$1),[C,P]=v.useState(false),[j$1,A]=v.useState(!a$1),T=v.useRef(l);v.useEffect(()=>{let F=T.current,x=l;if(!x){T.current=null,p(null),y(null),L(false),P(false),A(true);return}if(F?.version===x.version){p(O=>!O||O.version===x.version?x:O);return}if(!fe(F,x)||o===0){T.current=x,p(x),y(null),L(true),P(false),A(false);return}let k=0,V=0;F?(p(F),y(x),L(true),P(false),A(false),k=window.requestAnimationFrame(()=>{V=window.requestAnimationFrame(()=>{P(true);});})):(p(x),y(null),L(false),P(false),A(true),k=window.requestAnimationFrame(()=>{V=window.requestAnimationFrame(()=>{L(true);});}));let ee=window.setTimeout(()=>{T.current=x,p(x),y(null),L(true),P(false),A(false);},o);return ()=>{k&&window.cancelAnimationFrame(k),V&&window.cancelAnimationFrame(V),window.clearTimeout(ee);}},[o,l]);let Q=!!(s&&R||f&&C),Z=u.enabled&&m.render&&!Q?m.isCustom?jsx("div",{"data-rmg-video-spinner":true,className:b,style:u.spinnerStyle,"aria-hidden":"true",children:m.node}):jsx("div",{"data-rmg-video-spinner":true,className:b,style:u.spinnerStyle,"aria-hidden":"true"}):null;return jsxs("div",{className:["rmg__plyr__video",e$1.className].filter(Boolean).join(" "),style:{...ce,...e$1.style||{},position:"relative",overflow:"hidden",background:"transparent",pointerEvents:"none",...g?{aspectRatio:String(g)}:{}},"data-rmg-plyr":"true","data-rmg-plyr-index":String(e$1.canonicalIndex),"data-rmg-plyr-provider":E,"data-rmg-video-snapshot":"true","data-rmg-wh":g!=null?String(g):void 0,"aria-hidden":"true",children:[Z,j$1&&e$1.poster?jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,backgroundColor:"#000",backgroundImage:`url("${e$1.poster}")`,backgroundSize:"cover",backgroundPosition:"center",opacity:.92}}):null,s?$(s,R,o,"base"):null,f?$(f,C,o,"overlay"):null]})}function N(e){if(e==null)return null;if(Array.isArray(e))return e.map(t=>N(t));if(typeof e=="function")return `[function:${e.name||"anonymous"}]`;if(typeof e=="symbol")return String(e);if(typeof e=="object"){let t=e,n={};for(let r of Object.keys(t).sort())n[r]=N(t[r]);return n}return e}function X(e){return JSON.stringify(N(e))}function K(e){return X({type:e?.type??null,poster:e?.poster??null,title:e?.title??null,sources:Array.isArray(e?.sources)?e.sources.map(t=>({src:t?.src??null,provider:t?.provider??null,type:t?.type??null,size:t?.size??null})):[],tracks:Array.isArray(e?.tracks)?e.tracks.map(t=>({kind:t?.kind??null,src:t?.src??null,srclang:t?.srclang??null,label:t?.label??null,default:t?.default??false})):[]})}function ye(e){return X({ratio:e?.ratio??null,controls:e?.controls??null,fullscreen:e?.fullscreen??null,autoplay:e?.autoplay??null,muted:e?.muted??null,preload:e?.preload??null,crossorigin:e?.crossorigin??null,playsinline:e?.playsinline??null,loop:e?.loop??null,youtube:e?.youtube??null,vimeo:e?.vimeo??null})}var Ye=v.forwardRef(function(t,n){let{source:r,options:i=null,className:c,...l}=t,u=v.useRef(null),d=v.useRef(null),m=v.useRef(r),b=v.useRef(i),S=v.useRef(K(r)),h=v.useRef(null),[E,g]=v.useState(null),a=v.useMemo(()=>K(r),[r]),o=v.useMemo(()=>ye(i),[i]);return v.useImperativeHandle(n,()=>E,[E]),v.useEffect(()=>{m.current=r,S.current=a;},[r,a]),v.useEffect(()=>{b.current=i;},[i,o]),v.useEffect(()=>{let s=d.current;if(!(!s||!r)&&h.current!==a)try{s.source=r,h.current=a;}catch{}},[r,a]),v.useEffect(()=>{let s=false,p=u.current;if(!p)return;async function f(){let y=await import('plyr');if(s)return;let R=y?.default??y;if(!R)throw new Error(`LazyPlyr: could not resolve Plyr constructor from plyr import. Keys: ${Object.keys(y??{}).join(", ")}`);let L=new R(p,b.current??{});d.current=L,g({plyr:L});let P=m.current,j=S.current;if(P)try{L.source=P,h.current=j;}catch{}else h.current=null;}return f(),()=>{s=true;let y=d.current;d.current=null,h.current=null,g(null);try{y?.destroy?.();}catch{}}},[o]),jsx("video",{ref:u,className:["plyr-react","plyr",c].filter(Boolean).join(" "),...l})});function Qe(e){let t=e?.elements?.container,n=e?.elements?.controls;if(!t||e.__rmgDragSwallowCleanup)return;let r=5,i=0,c=0,l=false,u=null,d=a=>!!(n&&a instanceof Node&&n.contains(a)),m=a=>{a.stopImmediatePropagation(),a.stopPropagation(),a.preventDefault();},b=a=>{d(a.target)||(u=a.pointerId,i=a.clientX,c=a.clientY,l=false);},S=a=>{if(u==null||a.pointerId!==u)return;let o=a.clientX-i,s=a.clientY-c;!l&&Math.hypot(o,s)>r&&(l=true);},h=a=>{u==null||a.pointerId!==u||(l&&!d(a.target)&&m(a),u=null,l&&window.setTimeout(()=>{l=false;},0));},E=a=>{l&&!d(a.target)&&m(a);},g=a=>{l&&!d(a.target)&&m(a);};t.addEventListener("pointerdown",b,{capture:true}),t.addEventListener("pointermove",S,{capture:true}),t.addEventListener("pointerup",h,{capture:true}),t.addEventListener("pointercancel",h,{capture:true}),t.addEventListener("click",E,{capture:true}),t.addEventListener("touchend",g,{capture:true,passive:false}),e.__rmgDragSwallowCleanup=()=>{t.removeEventListener("pointerdown",b,{capture:true}),t.removeEventListener("pointermove",S,{capture:true}),t.removeEventListener("pointerup",h,{capture:true}),t.removeEventListener("pointercancel",h,{capture:true}),t.removeEventListener("click",E,{capture:true}),t.removeEventListener("touchend",g,{capture:true}),delete e.__rmgDragSwallowCleanup;};}function et(e,t,n,r){let i=Math.max(1,n.width),c=Math.max(1,n.height),l=Math.max(i/Math.max(1,e),c/Math.max(1,t)),u=e*l,d=t*l,m=r?.x??.5,b=r?.y??.5,S=Math.max(0,u-i),h=Math.max(0,d-c),E=(.5-m)*S,g=(.5-b)*h,a=n.left+i/2+E,o=n.top+c/2+g;return {cx:a,cy:o,scale:l}}function tt(e,t,n,r){let i=Math.max(1,n.width),c=Math.max(1,n.height),l=Math.min(i/Math.max(1,e),c/Math.max(1,t)),u=e*l,d=t*l,m=r?.x??.5,b=r?.y??.5,S=Math.max(0,i-u),h=Math.max(0,c-d),E=n.left+S*m,g=n.top+h*b,a=E+u/2,o=g+d/2;return {cx:a,cy:o,scale:l}}function Y(e,t,n,r,i){let c=r==="contain"?Math.min(n.width/e,n.height/t):Math.max(n.width/e,n.height/t),l=e*c,u=t*c,d=n.left+(n.width-l)*i.x,m=n.top+(n.height-u)*i.y;return new DOMRect(d,m,l,u)}function J(e){if(!e)return {x:.5,y:.5};let t=(c,l)=>{let u=c.toLowerCase();if(l){if(u==="left")return 0;if(u==="center")return .5;if(u==="right")return 1}else {if(u==="top")return 0;if(u==="center")return .5;if(u==="bottom")return 1}return NaN},n=e.trim().split(/\s+/),r=.5,i=.5;if(n.length>=1){let c=n[0];if(c.endsWith("%"))r=Math.min(1,Math.max(0,parseFloat(c)/100));else {let l=t(c,true);Number.isNaN(l)||(r=l);}}if(n.length>=2){let c=n[1];if(c.endsWith("%"))i=Math.min(1,Math.max(0,parseFloat(c)/100));else {let l=t(c,false);Number.isNaN(l)||(i=l);}}return {x:r,y:i}}var be="brightness(1.06)";function ve(e){return e?.plyr??null}function G(e){return e?/url\(["']?(.*?)["']?\)/.exec(e)?.[1]??null:null}function ge(e){if(e.poster)return e.poster;let t=e.hostEl;if(!t)return null;let n=t.querySelector("video");if(n?.poster)return n.poster;let r=t.querySelector(".plyr__poster");if(!r)return null;let i=G(r.style.backgroundImage);if(i)return i;try{return G(getComputedStyle(r).backgroundImage)}catch{return null}}function M(e){if(e)try{URL.revokeObjectURL(e);}catch{}}async function Se(e){try{let t=new Image;if(t.decoding="sync",t.src=e,t.complete&&t.naturalWidth>0&&t.naturalHeight>0)return !0;if(typeof t.decode=="function")try{return await t.decode(),t.naturalWidth>0&&t.naturalHeight>0}catch{}return await new Promise(n=>{let r=()=>{t.onload=null,t.onerror=null;};t.onload=()=>{r(),n(t.naturalWidth>0&&t.naturalHeight>0);},t.onerror=()=>{r(),n(!1);};})}catch{return false}}async function we(e,t=180){try{let n=e.requestVideoFrameCallback;return typeof n!="function"?(await new Promise(r=>{window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>r());});}),!0):await new Promise(r=>{let i=!1,c=null,l=d=>{if(!i){if(i=!0,c!=null)try{e.cancelVideoFrameCallback?.(c);}catch{}window.clearTimeout(u),r(d);}},u=window.setTimeout(()=>l(!1),t);try{c=n.call(e,()=>l(!0));}catch{l(!1);}})}catch{return false}}function Ee(e,t,n){let r=e.getAttribute(n);if(r==null){t.removeAttribute(n);return}t.setAttribute(n,r);}function Le(e,t){let n=`${e.value??""}`;t.value=n,t.defaultValue=n,t.setAttribute("value",n);for(let[i,c]of [["min",e.min],["max",e.max],["step",e.step]])c?t.setAttribute(i,c):t.removeAttribute(i);for(let i of ["aria-valuenow","aria-valuetext","aria-valuemin","aria-valuemax","seek-value"])Ee(e,t,i);let r=e.style.getPropertyValue("--value");r?t.style.setProperty("--value",r):t.style.removeProperty("--value");}function Re(e,t){let n=Number(e.value);Number.isFinite(n)?(t.value=n,t.setAttribute("value",String(n))):t.removeAttribute("value");let r=Number(e.max);Number.isFinite(r)?(t.max=r,t.setAttribute("max",String(r))):t.removeAttribute("max");}function Pe(e,t){let n=Array.from(e.querySelectorAll('input[type="range"]')),r=Array.from(t.querySelectorAll('input[type="range"]')),i=Math.min(n.length,r.length);for(let d=0;d<i;d+=1)Le(n[d],r[d]);let c=Array.from(e.querySelectorAll("progress")),l=Array.from(t.querySelectorAll("progress")),u=Math.min(c.length,l.length);for(let d=0;d<u;d+=1)Re(c[d],l[d]);}function xe(e){return e==="a"||e==="button"||e==="input"||e==="select"||e==="textarea"||e==="summary"}function Me(e){e.querySelectorAll(".rmg-plyr-gesture-shield").forEach(n=>n.remove()),e.querySelectorAll("video, iframe, source, track").forEach(n=>n.remove());let t=[e,...Array.from(e.querySelectorAll("*"))];for(let n of t){n.removeAttribute("id"),n.removeAttribute("for"),n.removeAttribute("aria-controls"),n.removeAttribute("aria-describedby"),n.removeAttribute("aria-labelledby"),n.removeAttribute("aria-owns"),n.removeAttribute("aria-activedescendant"),n.removeAttribute("autofocus");let r=n.tagName.toLowerCase();(n.hasAttribute("tabindex")||xe(r))&&n.setAttribute("tabindex","-1");}}function Fe(e){let t=e?.querySelector("video");if(!t)return {objectFit:"cover",objectPosition:"50% 50%"};try{let n=getComputedStyle(t);return {objectFit:n?.objectFit==="contain"?"contain":"cover",objectPosition:n?.objectPosition||"50% 50%"}}catch{return {objectFit:"cover",objectPosition:"50% 50%"}}}function Ae(e){let t=Number(e.ratio);if(Number.isFinite(t)&&t>0)return t;let n=e.hostEl?.querySelector("video"),r=Number(n?.videoWidth??0),i=Number(n?.videoHeight??0);if(r>0&&i>0)return r/i;let c=e.hostEl?.getAttribute("data-rmg-wh"),l=Number(c);if(Number.isFinite(l)&&l>0)return l;let u=e.hostEl?.getBoundingClientRect?.(),d=Number(u?.width??0),m=Number(u?.height??0);if(d>0&&m>0)return d/m;let b=e.hostEl?.querySelector(".plyr__video-wrapper")?.getBoundingClientRect?.()??null,S=Number(b?.width??0),h=Number(b?.height??0);return S>0&&h>0?S/h:null}function Ce(e,t,n,r){let i=e.querySelector(".plyr__video-wrapper");if(!i||!n)return;i.querySelectorAll('[data-rmg-video-snapshot-frame="true"]').forEach(b=>b.remove()),i.style.position||(i.style.position="relative"),i.style.width="100%";let c=Ae(t);c!=null&&(i.style.aspectRatio=String(c));let{objectFit:l,objectPosition:u}=Fe(t.hostEl),d=document.createElement("div");d.setAttribute("data-rmg-video-snapshot-frame","true"),d.setAttribute("aria-hidden","true"),d.style.cssText=["position:absolute","inset:0","overflow:hidden","pointer-events:none","background:#000"].join(";");let m=document.createElement("img");m.alt="",m.decoding="async",m.draggable=false,m.src=n,m.setAttribute("aria-hidden","true"),m.style.cssText=["display:block","width:100%","height:100%",`object-fit:${l}`,`object-position:${u}`,...r?[`filter:${be}`]:[],"pointer-events:none","user-select:none"].join(";"),d.appendChild(m),i.insertBefore(d,i.firstChild);}async function Te(e,t={}){let n=ge(e);if(e.provider!=="mp4")return {frameSrc:n,hasLiveFrame:false,objectUrl:null};let r=e.hostEl,i=r?.querySelector("video");if(!i)return {frameSrc:n,hasLiveFrame:false,objectUrl:null};try{let c=Number(i.readyState??0),l=Number(i.videoWidth??0),u=Number(i.videoHeight??0);if(c<2||l<=0||u<=0)return {frameSrc:n,hasLiveFrame:!1,objectUrl:null};let d=r?.querySelector(".plyr__video-wrapper")?.getBoundingClientRect?.()??i.getBoundingClientRect(),m=Number(d?.width??0),b=Number(d?.height??0);if(!(m>0)||!(b>0))return {frameSrc:n,hasLiveFrame:!1,objectUrl:null};if(!await we(i)&&t.requirePaintConfirmation&&n)return {frameSrc:n,hasLiveFrame:!1,objectUrl:null};let h=Math.min(2,Math.max(1,window.devicePixelRatio||1)),E=Math.max(1,Math.round(m*h)),g=Math.max(1,Math.round(b*h)),a=document.createElement("canvas");a.width=E,a.height=g;let o=a.getContext("2d");if(!o)return {frameSrc:n,hasLiveFrame:!1,objectUrl:null};let s=getComputedStyle(i),p=s?.objectFit==="contain"?"contain":"cover",f=J(s?.objectPosition??null)??{x:.5,y:.5},y=Y(l,u,new DOMRect(0,0,E,g),p,f);o.drawImage(i,y.left,y.top,y.width,y.height);let R=await new Promise(P=>{try{a.toBlob(P,"image/png");}catch{P(null);}});if(!R)return {frameSrc:n,hasLiveFrame:!1,objectUrl:null};let L=URL.createObjectURL(R);return await Se(L)?{frameSrc:L,hasLiveFrame:!0,objectUrl:L}:(M(L),{frameSrc:n,hasLiveFrame:!1,objectUrl:null})}catch{return {frameSrc:n,hasLiveFrame:false,objectUrl:null}}}function it(){let e=new Map,t=new Map,n=new Map,r=new Map;function i(a){let o=r.get(a);if(o?.size)for(let s of o)s();}function c(a,o,s){let p=n.get(o.canonicalIndex)??null,f=a.staleObjectUrl,y=a.objectUrl??p;a.staleObjectUrl=y&&y!==s?y:null,a.objectUrl=s,n.delete(o.canonicalIndex),t.set(o.canonicalIndex,o),f&&f!==s&&f!==a.staleObjectUrl&&M(f),i(o.canonicalIndex);}async function l(a,o){let s=e.get(a);if(!s||s.buildSeq!==o)return;let p=t.get(a),f=await Te(s.runtime,{requirePaintConfirmation:p==null}),y=e.get(a);if(!y||y!==s||y.buildSeq!==o){M(f.objectUrl);return}let R=y.runtime.hostEl?.querySelector(".plyr");if(!R){M(f.objectUrl);return}let L=R.cloneNode(true);Pe(R,L),Me(L),Ce(L,y.runtime,f.frameSrc,f.hasLiveFrame),c(y,{canonicalIndex:a,provider:y.runtime.provider,markupHtml:L.outerHTML,frameSrc:f.frameSrc,version:(p?.version??0)+1,hasLiveFrame:f.hasLiveFrame,updatedAt:Date.now()},f.objectUrl),p==null&&!f.hasLiveFrame&&y.runtime.provider==="mp4"&&window.requestAnimationFrame(()=>u(a));}function u(a){let o=e.get(a);!o||o.rafId!=null||(o.rafId=window.requestAnimationFrame(()=>{let s=e.get(a);!s||s!==o||(s.rafId=null,s.buildSeq+=1,l(a,s.buildSeq));}));}function d(a){let o=ve(a.api);if(!o)return ()=>{};let s=()=>u(a.canonicalIndex),p=o?.elements?.inputs?.seek,f=o?.media;try{o.on?.("ready",s),o.on?.("play",s),o.on?.("pause",s),o.on?.("ended",s),o.on?.("volumechange",s),o.on?.("seeked",s);}catch{}try{p?.addEventListener?.("input",s),p?.addEventListener?.("change",s);}catch{}try{f?.addEventListener?.("loadedmetadata",s),f?.addEventListener?.("loadeddata",s),f?.addEventListener?.("canplay",s),f?.addEventListener?.("seeked",s),f?.addEventListener?.("ended",s);}catch{}return ()=>{try{o.off?.("ready",s),o.off?.("play",s),o.off?.("pause",s),o.off?.("ended",s),o.off?.("volumechange",s),o.off?.("seeked",s);}catch{}try{p?.removeEventListener?.("input",s),p?.removeEventListener?.("change",s);}catch{}try{f?.removeEventListener?.("loadedmetadata",s),f?.removeEventListener?.("loadeddata",s),f?.removeEventListener?.("canplay",s),f?.removeEventListener?.("seeked",s),f?.removeEventListener?.("ended",s);}catch{}}}function m(a){let o=e.get(a);if(!o)return;o.rafId!=null&&window.cancelAnimationFrame(o.rafId),o.cleanup(),M(o.staleObjectUrl);let s=t.get(a);o.objectUrl&&(s?.frameSrc===o.objectUrl?n.set(a,o.objectUrl):M(o.objectUrl)),e.delete(a),i(a);}function b(a){let o=Number(a.canonicalIndex);if(Number.isFinite(o)){if(!a.api||!a.hostEl){m(o);return}m(o),e.set(o,{runtime:{...a,canonicalIndex:o},cleanup:d(a),rafId:null,buildSeq:0,objectUrl:null,staleObjectUrl:null}),u(o);}}function S(a){return t.get(a)??null}function h(a,o){let s=r.get(a);return s||(s=new Set,r.set(a,s)),s.add(o),()=>{let p=r.get(a);p?.delete(o),p&&p.size===0&&r.delete(a);}}function E(){let a=new Set([...e.keys(),...t.keys(),...n.keys()]);for(let o of Array.from(e.keys()))m(o);for(let o of a){let s=t.get(o),p=n.get(o)??null;s?.frameSrc&&s.frameSrc!==p&&M(s.frameSrc),M(p),t.delete(o),n.delete(o),i(o);}}function g(){E(),r.clear();}return {registerOriginal:b,unregisterOriginal:m,getSnapshot:S,subscribe:h,reset:E,destroy:g}}export{J as a,et as b,tt as c,Y as d,Ve as e,He as f,je as g,Oe as h,D as i,Ie as j,Ne as k,I as l,$e as m,Ye as n,Qe as o,it as p};
@@ -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,2 +0,0 @@
1
- import {a as a$4}from'./chunk-A6MPGIEJ.mjs';import {i,k}from'./chunk-ZZZZXO5U.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:"wr",gridItem:"n",gridShell:"Xr",gridContentLayer:"G",gridLoadingLayer:"f",gridContentBlocked:"Yr",gridLoadingLayerExit:"_r",gridSkeletonOverlay:"jr",gridSkeletonGrid:"Zr",gridSkeletonItem:"H",gridSkelRect:"qr",gridSkelSquare:"Ar",gridSkelCircle:"Br",gridSkelGroup:"Cr",gridSkelRow:"Dr",gridSkelCol:"Er",gridSkelStack:"Fr",gridSkelTile:"Gr",gridSkelShimmer:"Hr",introContainer:"b",introActive:"I"};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
- function l(i=1e4){let e=null;function r(d=400){e?.();let t=document.createElement("div");Object.assign(t.style,{position:"fixed",inset:"0",zIndex:String(i),background:"transparent",touchAction:"none",pointerEvents:"auto"}),document.body.appendChild(t);let n=()=>{t.parentNode&&t.remove();},u=window.setTimeout(()=>{n(),e=null;},d),o=()=>{window.clearTimeout(u),n(),e=null;};return e=o,o}return {add:r}}export{l as a};