react-motion-gallery 2.0.7 → 2.0.9

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 (63) hide show
  1. package/README.md +1030 -30
  2. package/dist/chunk-2AHLR3V4.mjs +1 -0
  3. package/dist/chunk-2UHS4WYL.mjs +5 -0
  4. package/dist/chunk-3HPXMD5O.mjs +10 -0
  5. package/dist/chunk-4JEELX5B.mjs +2 -0
  6. package/dist/chunk-A6MPGIEJ.mjs +1 -0
  7. package/dist/chunk-ESF6XBYF.mjs +1 -0
  8. package/dist/chunk-EV6ZK4QI.mjs +1 -0
  9. package/dist/chunk-H4BEIJAD.mjs +5 -0
  10. package/dist/chunk-HL75KJY3.mjs +2 -0
  11. package/dist/chunk-JYKEA7LO.mjs +1 -0
  12. package/dist/chunk-KA2TOUNO.mjs +59 -0
  13. package/dist/chunk-LPIHQAND.mjs +1 -0
  14. package/dist/chunk-LVYED5ZM.mjs +1 -0
  15. package/dist/chunk-NKBEYOBF.mjs +1 -0
  16. package/dist/chunk-P2GQPFSL.mjs +1 -0
  17. package/dist/chunk-TZGAHWM7.mjs +1 -0
  18. package/dist/chunk-UYTKRIYQ.mjs +1 -0
  19. package/dist/chunk-V35ILQJ4.mjs +4 -0
  20. package/dist/chunk-X4HEGEZV.mjs +1 -0
  21. package/dist/chunk-XO5LPPN6.mjs +2 -0
  22. package/dist/core.d.mts +86 -0
  23. package/dist/core.mjs +1 -0
  24. package/dist/elements-Bd1vm4Uk.d.mts +37 -0
  25. package/dist/entries.css +1 -0
  26. package/dist/entries.d.mts +77 -0
  27. package/dist/entries.mjs +1 -0
  28. package/dist/fullscreen.css +1 -0
  29. package/dist/fullscreen.d.mts +281 -0
  30. package/dist/fullscreen.mjs +1 -0
  31. package/dist/fullscreenThumbnails.css +1 -0
  32. package/dist/fullscreenThumbnails.d.mts +10 -0
  33. package/dist/fullscreenThumbnails.mjs +1 -0
  34. package/dist/grid.css +1 -0
  35. package/dist/grid.d.mts +126 -0
  36. package/dist/grid.mjs +1 -0
  37. package/dist/index-Bpj0ZM8C.d.mts +38 -0
  38. package/dist/index.css +1 -1
  39. package/dist/index.d.mts +23 -1178
  40. package/dist/index.mjs +1 -66
  41. package/dist/lazy-dGoYpcRa.d.mts +14 -0
  42. package/dist/masonry.css +1 -0
  43. package/dist/masonry.d.mts +73 -0
  44. package/dist/masonry.mjs +1 -0
  45. package/dist/media-moIXOhT1.d.mts +36 -0
  46. package/dist/metafile-esm.json +1 -1
  47. package/dist/plyrTypes-CmP9NWvX.d.mts +8 -0
  48. package/dist/responsive-CvE5dTnP.d.mts +5 -0
  49. package/dist/slider.css +1 -0
  50. package/dist/slider.d.mts +80 -0
  51. package/dist/slider.mjs +1 -0
  52. package/dist/sliderSub-DNikv2lm.d.mts +76 -0
  53. package/dist/thumbnails.css +1 -0
  54. package/dist/thumbnails.d.mts +68 -0
  55. package/dist/thumbnails.mjs +1 -0
  56. package/dist/types-Bi2iBbyG.d.mts +85 -0
  57. package/dist/types-CQ6I3EfZ.d.mts +109 -0
  58. package/dist/types-ChjyCquV.d.mts +158 -0
  59. package/dist/types-Dqm2ynv2.d.mts +262 -0
  60. package/dist/video.css +1 -0
  61. package/dist/video.d.mts +38 -0
  62. package/dist/video.mjs +1 -0
  63. package/package.json +35 -15
@@ -0,0 +1,262 @@
1
+ import { R as ResponsiveNumber } from './responsive-CvE5dTnP.mjs';
2
+ import { E as ElementStyle, A as ArrowRenderArgs, D as DotsRenderArgs, P as ProgressRenderArgs } from './elements-Bd1vm4Uk.mjs';
3
+ import { I as IndexMode, S as SliderIndexChannel } from './sliderSub-DNikv2lm.mjs';
4
+ import * as React$1 from 'react';
5
+ import { RefObject } from 'react';
6
+
7
+ type SkeletonLength = number | string;
8
+ type SkeletonShimmer = {
9
+ enabled?: boolean;
10
+ durationMs?: number;
11
+ angleDeg?: number;
12
+ opacity?: number;
13
+ blurPx?: number;
14
+ timing?: string;
15
+ c1?: string;
16
+ c2?: string;
17
+ c3?: string;
18
+ };
19
+ type SkeletonBaseStyle = {
20
+ width?: SkeletonLength;
21
+ maxWidth?: SkeletonLength;
22
+ height?: SkeletonLength;
23
+ maxHeight?: SkeletonLength;
24
+ backgroundColor?: string;
25
+ borderRadius?: SkeletonLength;
26
+ marginTop?: SkeletonLength;
27
+ marginRight?: SkeletonLength;
28
+ marginBottom?: SkeletonLength;
29
+ marginLeft?: SkeletonLength;
30
+ alignSelf?: React$1.CSSProperties["alignSelf"];
31
+ aspectRatio?: SkeletonLength;
32
+ };
33
+ type SkeletonContainerStyle = {
34
+ gap?: SkeletonLength;
35
+ padding?: SkeletonLength;
36
+ align?: React$1.CSSProperties["alignItems"];
37
+ justify?: React$1.CSSProperties["justifyContent"];
38
+ wrap?: boolean;
39
+ width?: SkeletonLength;
40
+ maxWidth?: SkeletonLength;
41
+ };
42
+ type SkeletonContainerStyleResponsive = SkeletonContainerStyle | Record<string, SkeletonContainerStyle>;
43
+ type SliderSkeletonNode = {
44
+ kind: "slider";
45
+ style?: SkeletonContainerStyleResponsive;
46
+ count?: number;
47
+ item: SkeletonNode;
48
+ itemWrapStyle?: SkeletonBaseStyle;
49
+ direction?: "row" | "col";
50
+ } | SkeletonNode;
51
+ type SkeletonNode = {
52
+ kind: "stack" | "row" | "col";
53
+ style?: SkeletonContainerStyleResponsive;
54
+ children: SkeletonNode[];
55
+ } | {
56
+ kind: "rect" | "square" | "circle";
57
+ style?: SkeletonBaseStyle;
58
+ shimmer?: SkeletonShimmer;
59
+ } | {
60
+ kind: "media";
61
+ count: number;
62
+ direction?: "row" | "col";
63
+ style?: SkeletonContainerStyleResponsive;
64
+ tile?: {
65
+ shape?: "rect" | "square" | "circle";
66
+ style?: SkeletonBaseStyle;
67
+ shimmer?: SkeletonShimmer;
68
+ };
69
+ } | {
70
+ kind: "text";
71
+ fontSize: number;
72
+ lineHeight: number;
73
+ lines?: number;
74
+ style?: SkeletonBaseStyle;
75
+ shimmer?: SkeletonShimmer;
76
+ };
77
+ type SliderSkeletonSpec = {
78
+ mode?: "fit" | "peek";
79
+ className?: string;
80
+ layout?: SliderSkeletonNode;
81
+ backgroundColor?: string;
82
+ radius?: SkeletonLength;
83
+ shimmer?: SkeletonShimmer;
84
+ };
85
+
86
+ type ResponsiveHeightRule = {
87
+ query: string;
88
+ height: string;
89
+ };
90
+ type SliderLayout = {
91
+ gap?: number;
92
+ cellsPerSlide?: ResponsiveNumber;
93
+ };
94
+ type SliderDirection = {
95
+ dir?: "ltr" | "rtl";
96
+ axis?: "x" | "y";
97
+ };
98
+ type SliderElements = {
99
+ viewport?: ElementStyle;
100
+ container?: ElementStyle;
101
+ };
102
+ type SliderScroll = {
103
+ groupCells?: boolean;
104
+ skipSnaps?: boolean;
105
+ freeScroll?: boolean;
106
+ loop?: boolean;
107
+ };
108
+ type SliderArrows = {
109
+ enabled?: boolean;
110
+ arrow?: ElementStyle;
111
+ prev?: ElementStyle;
112
+ next?: ElementStyle;
113
+ render?: (args: ArrowRenderArgs & {
114
+ dir: "prev" | "next";
115
+ }) => React.ReactNode;
116
+ renderPrev?: (args: ArrowRenderArgs) => React.ReactNode;
117
+ renderNext?: (args: ArrowRenderArgs) => React.ReactNode;
118
+ };
119
+ type SliderDots = {
120
+ enabled?: boolean;
121
+ root?: ElementStyle;
122
+ dot?: ElementStyle;
123
+ render?: (args: DotsRenderArgs) => React.ReactNode;
124
+ };
125
+ type SliderProgress = {
126
+ enabled?: boolean;
127
+ root?: ElementStyle;
128
+ bar?: ElementStyle;
129
+ render?: (args: ProgressRenderArgs) => React.ReactNode;
130
+ };
131
+ type SliderRipple = {
132
+ enabled?: boolean;
133
+ className?: string;
134
+ };
135
+ type SliderControls = {
136
+ arrows?: SliderArrows;
137
+ dots?: SliderDots;
138
+ progress?: SliderProgress;
139
+ ripple?: SliderRipple;
140
+ };
141
+ type SliderAutoPlay = {
142
+ enabled?: boolean;
143
+ speedMs?: number;
144
+ pauseMs?: number;
145
+ pauseOnHover?: boolean;
146
+ };
147
+ type SliderAutoScroll = {
148
+ enabled?: boolean;
149
+ speedMs?: number;
150
+ pauseMs?: number;
151
+ pauseOnHover?: boolean;
152
+ };
153
+ type SliderAuto = {
154
+ play?: SliderAutoPlay;
155
+ scroll?: SliderAutoScroll;
156
+ };
157
+ type SliderLoadingOptions = {
158
+ enabled?: boolean;
159
+ force?: boolean;
160
+ skeletonCount?: ResponsiveNumber;
161
+ renderLoading?: (args: {
162
+ count: number;
163
+ }) => React.ReactNode;
164
+ skeleton?: SliderSkeletonSpec;
165
+ };
166
+ type SliderIntroOptions = {
167
+ renderIntro?: (args: {
168
+ active: boolean;
169
+ containerProps: React.HTMLAttributes<HTMLDivElement>;
170
+ }, content: React.ReactNode) => React.ReactNode;
171
+ staggerMs?: number;
172
+ transform?: number | string;
173
+ durationMs?: number;
174
+ easing?: string;
175
+ };
176
+ type SliderTransitions = {
177
+ loading?: SliderLoadingOptions;
178
+ intro?: SliderIntroOptions;
179
+ };
180
+ type SliderParallax = {
181
+ enabled?: boolean;
182
+ bleedPct?: string;
183
+ borderRadius?: string;
184
+ sideWidth?: string;
185
+ };
186
+ type SliderScale = {
187
+ enabled?: boolean;
188
+ amount?: number;
189
+ };
190
+ type SliderFade = {
191
+ enabled?: boolean;
192
+ };
193
+ type SliderEffects = {
194
+ parallax?: SliderParallax;
195
+ scale?: SliderScale;
196
+ fade?: SliderFade;
197
+ };
198
+ type SliderMotion = {
199
+ selectDuration?: number;
200
+ freeScrollDuration?: number;
201
+ friction?: number;
202
+ };
203
+ type SliderLazyLoadOptions = {
204
+ enabled?: boolean;
205
+ spinner?: boolean | React.ReactNode | ((args: {
206
+ kind: "image" | "video";
207
+ isClone: boolean;
208
+ }) => React.ReactNode);
209
+ spinnerClassName?: string;
210
+ spinnerStyle?: React.CSSProperties;
211
+ };
212
+ type SliderOptions = {
213
+ layout?: SliderLayout;
214
+ direction?: SliderDirection;
215
+ align?: "start" | "center";
216
+ scroll?: SliderScroll;
217
+ elements?: SliderElements;
218
+ lazyLoad?: SliderLazyLoadOptions;
219
+ controls?: SliderControls;
220
+ auto?: SliderAuto;
221
+ transitions?: SliderTransitions;
222
+ motion?: SliderMotion;
223
+ effects?: SliderEffects;
224
+ indexChannel?: SliderIndexChannel;
225
+ };
226
+ interface SliderHandle {
227
+ centerSlider: () => void;
228
+ getIndex: () => number;
229
+ setIndex: (i: number, mode?: IndexMode) => void;
230
+ subscribeIndex: (fn: () => void) => () => void;
231
+ slideIndexForCell: (cellIndex: number) => number;
232
+ getRootNode(): HTMLElement | null;
233
+ getContainerNode(): HTMLElement | null;
234
+ getSlideNodes(): HTMLElement[];
235
+ getViewportNode: () => HTMLDivElement | null;
236
+ onSlidesBuilt(cb: (nodes: HTMLElement[]) => void): () => void;
237
+ whenSlidesBuilt(): Promise<HTMLElement[]>;
238
+ isSlidesBuilt(): boolean;
239
+ scrollNext: (mode?: IndexMode) => void;
240
+ scrollPrev: (mode?: IndexMode) => void;
241
+ canScrollNext: () => boolean;
242
+ canScrollPrev: () => boolean;
243
+ scrollProgress: () => number;
244
+ cellsInView: () => number[];
245
+ getInternals(): {
246
+ slides: RefObject<{
247
+ cells: {
248
+ element: HTMLElement;
249
+ index: number;
250
+ }[];
251
+ target: number;
252
+ }[]>;
253
+ slider: RefObject<HTMLDivElement | null>;
254
+ visibleImages: RefObject<number>;
255
+ selectedIndex: RefObject<number>;
256
+ sliderX: RefObject<number>;
257
+ sliderVelocity: RefObject<number>;
258
+ isWrapping: RefObject<boolean>;
259
+ };
260
+ }
261
+
262
+ export type { ResponsiveHeightRule as R, SliderOptions as S, SliderHandle as a };
package/dist/video.css ADDED
@@ -0,0 +1 @@
1
+ .spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;pointer-events:none;z-index:3;animation:rmgLazySpin 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)}.spinnerWrap{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:3}@keyframes rmgLazySpin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.spinner{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:rmgSpin 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 rmgSpin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.spinnerWrap{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}
@@ -0,0 +1,38 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { APITypes } from 'plyr-react';
4
+ import { b as PlyrSource, c as PlyrOptions } from './plyrTypes-CmP9NWvX.mjs';
5
+ import './media-moIXOhT1.mjs';
6
+
7
+ type RmgPlyrSourceBuilder = (args: {
8
+ src: string;
9
+ }) => PlyrSource;
10
+ type RmgPlyrOptionsResolver = PlyrOptions | ((args: {
11
+ src: string;
12
+ index: number;
13
+ }) => PlyrOptions);
14
+ type RmgVideoLazyLoadOptions = {
15
+ enabled?: boolean;
16
+ spinner?: boolean | React.ReactNode | ((args: {
17
+ kind: 'image' | 'video';
18
+ isClone: boolean;
19
+ }) => React.ReactNode);
20
+ spinnerClassName?: string;
21
+ spinnerStyle?: React.CSSProperties;
22
+ };
23
+ type VideoProps = {
24
+ src: string;
25
+ poster?: string;
26
+ alt?: string;
27
+ source?: PlyrSource;
28
+ sourceBuilder?: RmgPlyrSourceBuilder;
29
+ options?: RmgPlyrOptionsResolver;
30
+ className?: string;
31
+ style?: React.CSSProperties;
32
+ onApi?: (api: APITypes | null) => void;
33
+ registerApiByIndex?: (index: number, api: APITypes | null) => void;
34
+ lazyLoad?: RmgVideoLazyLoadOptions;
35
+ };
36
+ declare function Video(props: VideoProps): react_jsx_runtime.JSX.Element;
37
+
38
+ export { type RmgPlyrOptionsResolver, type RmgPlyrSourceBuilder, type RmgVideoLazyLoadOptions, Video, type VideoProps, Video as default };
package/dist/video.mjs ADDED
@@ -0,0 +1 @@
1
+ export{b as Video,b as default}from'./chunk-UYTKRIYQ.mjs';import'./chunk-JYKEA7LO.mjs';import'./chunk-NKBEYOBF.mjs';import'./chunk-EV6ZK4QI.mjs';import'./chunk-2AHLR3V4.mjs';
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "react-motion-gallery",
3
- "version": "2.0.7",
3
+ "version": "2.0.9",
4
4
  "description": "React Motion Gallery - smooth, customizable media gallery components",
5
- "license": "SEE LICENSE IN LICENSE.md",
5
+ "license": "PolyForm-Noncommercial-1.0.0",
6
6
  "author": "React Motion Gallery",
7
7
  "homepage": "https://react-motion-gallery.com",
8
8
  "repository": {
@@ -24,37 +24,57 @@
24
24
 
25
25
  "main": "./dist/index.mjs",
26
26
  "module": "./dist/index.mjs",
27
- "types": "./dist/index.d.ts",
27
+ "types": "./dist/index.d.mts",
28
28
 
29
29
  "exports": {
30
30
  ".": {
31
- "types": "./dist/index.d.ts",
31
+ "types": "./dist/index.d.mts",
32
32
  "import": "./dist/index.mjs"
33
33
  },
34
34
 
35
+ "./core": {
36
+ "types": "./dist/core.d.mts",
37
+ "import": "./dist/core.mjs"
38
+ },
39
+
35
40
  "./slider": {
36
- "types": "./dist/slider/index.d.ts",
37
- "import": "./dist/slider/index.mjs"
41
+ "types": "./dist/slider.d.mts",
42
+ "import": "./dist/slider.mjs"
38
43
  },
39
44
 
40
45
  "./grid": {
41
- "types": "./dist/grid/index.d.ts",
42
- "import": "./dist/grid/index.mjs"
46
+ "types": "./dist/grid.d.mts",
47
+ "import": "./dist/grid.mjs"
43
48
  },
44
49
 
45
50
  "./masonry": {
46
- "types": "./dist/masonry/index.d.ts",
47
- "import": "./dist/masonry/index.mjs"
51
+ "types": "./dist/masonry.d.mts",
52
+ "import": "./dist/masonry.mjs"
48
53
  },
49
54
 
50
55
  "./entries": {
51
- "types": "./dist/entries/index.d.ts",
52
- "import": "./dist/entries/index.mjs"
56
+ "types": "./dist/entries.d.mts",
57
+ "import": "./dist/entries.mjs"
53
58
  },
54
59
 
55
60
  "./fullscreen": {
56
- "types": "./dist/fullscreen/index.d.ts",
57
- "import": "./dist/fullscreen/index.mjs"
61
+ "types": "./dist/fullscreen.d.mts",
62
+ "import": "./dist/fullscreen.mjs"
63
+ },
64
+
65
+ "./thumbnails": {
66
+ "types": "./dist/thumbnails.d.mts",
67
+ "import": "./dist/thumbnails.mjs"
68
+ },
69
+
70
+ "./fullscreenThumbnails": {
71
+ "types": "./dist/fullscreenThumbnails.d.mts",
72
+ "import": "./dist/fullscreenThumbnails.mjs"
73
+ },
74
+
75
+ "./video": {
76
+ "types": "./dist/video.d.mts",
77
+ "import": "./dist/video.mjs"
58
78
  }
59
79
  },
60
80
 
@@ -92,4 +112,4 @@
92
112
  "plyr": "^3.8.4",
93
113
  "plyr-react": "^6.0.0"
94
114
  }
95
- }
115
+ }