react-motion-gallery 2.0.81 → 2.0.82
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -6
- package/dist/{chunk-RM77NXVV.mjs → chunk-3G43QTRO.mjs} +1 -1
- package/dist/entries-media-slider.mjs +1 -1
- package/dist/fullscreen.mjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/skeleton-slider-restore.mjs +49 -3
- package/dist/skeleton-slider.mjs +3 -1
- package/package.json +1 -5
- package/dist/chunk-NJNROEMU.mjs +0 -3
- package/dist/chunk-TL6MR4EC.mjs +0 -47
- package/dist/skeleton-cache-slider.css +0 -1
- package/dist/skeleton-cache-slider.d.mts +0 -21
- package/dist/skeleton-cache-slider.mjs +0 -1
package/README.md
CHANGED
|
@@ -42,8 +42,7 @@ This table reports local gzip measurements for selected runtime surfaces. Type-o
|
|
|
42
42
|
| `masonry/virtualization` | 252.0B |
|
|
43
43
|
| `Skeleton base` | 9.1kB |
|
|
44
44
|
| `skeleton/slider` | 14.7kB |
|
|
45
|
-
| `skeleton/
|
|
46
|
-
| `skeleton/slider/restore` | 25.5kB |
|
|
45
|
+
| `skeleton/slider/restore` | 25.3kB |
|
|
47
46
|
| `skeleton/grid` | 11.3kB |
|
|
48
47
|
| `skeleton/masonry` | 4.8kB |
|
|
49
48
|
| `Slider core` | 19.0kB |
|
|
@@ -218,8 +217,7 @@ Subpaths give bundlers a smaller graph than the root. Less JS to transfer, parse
|
|
|
218
217
|
| `react-motion-gallery/skeleton/masonry` | Lightweight `MasonrySkeleton` for dimensioned placeholders |
|
|
219
218
|
| `react-motion-gallery/skeleton/cache` | Server-safe skeleton cookie cache helpers and types |
|
|
220
219
|
| `react-motion-gallery/skeleton/cache/provider` | Client `SkeletonCacheProvider` for SSR snapshots and client cookie refresh |
|
|
221
|
-
| `react-motion-gallery/skeleton/
|
|
222
|
-
| `react-motion-gallery/skeleton/slider/restore` | `RestoredSliderSkeleton` with `restore` and optional `cache` |
|
|
220
|
+
| `react-motion-gallery/skeleton/slider/restore` | `SliderSkeleton` with `cache`, plus `RestoredSliderSkeleton` for optional restore |
|
|
223
221
|
| `react-motion-gallery/fullscreen` | `useFullscreenController` and fullscreen types |
|
|
224
222
|
| `react-motion-gallery/fullscreen/slider` | `fullscreenSlider` |
|
|
225
223
|
| `react-motion-gallery/fullscreen/controls` | `fullscreenControls` |
|
|
@@ -499,7 +497,7 @@ export function LoadingShell({ ready, children }: { ready: boolean; children: Re
|
|
|
499
497
|
|
|
500
498
|
The wrapper timing model matches the gallery loading layers: content begins fading in as soon as the skeleton exit starts; it does not wait for the skeleton to unmount.
|
|
501
499
|
|
|
502
|
-
Default skeleton imports are cache-free. The cache-backed public skeleton surface retained in this release is `
|
|
500
|
+
Default skeleton imports are cache-free. The cache-backed public skeleton surface retained in this release is `SliderSkeleton` from `react-motion-gallery/skeleton/slider/restore`; use its `restore` option, or the `RestoredSliderSkeleton` alias, when slider reload/back-forward restore is needed. Non-slider gallery loading surfaces no longer accept `loading.cache`.
|
|
503
501
|
|
|
504
502
|
`SkeletonFrame` is also exported from `react-motion-gallery/skeleton/base` for lower-level composition when you already have a rendered skeleton node and want the shared wrapper timing/layering behavior.
|
|
505
503
|
|
|
@@ -538,7 +536,7 @@ Use `responsiveBy: "container"` when text wrapping follows the card or cell widt
|
|
|
538
536
|
|
|
539
537
|
### Slider skeleton cookie snapshot cache
|
|
540
538
|
|
|
541
|
-
The skeleton cookie snapshot cache remains available for slider skeletons. Use `
|
|
539
|
+
The skeleton cookie snapshot cache remains available for slider skeletons. Use `SliderSkeleton` from `react-motion-gallery/skeleton/slider/restore` when a slider skeleton should read and write snapshot cookies, and add `restore` or use the `RestoredSliderSkeleton` alias when reload/back-forward restore is needed. Non-slider gallery loading surfaces no longer accept `loading.cache`, and the base/grid/masonry/entries cache wrapper subpaths have been removed.
|
|
542
540
|
|
|
543
541
|
In SSR frameworks, read cache cookies on the server with `react-motion-gallery/skeleton/cache`, pass snapshots through `SkeletonCacheProvider`, and opt slider skeletons in with a stable `cache={{ key, routeKey }}` object.
|
|
544
542
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a as a$1,f,b}from'./chunk-PZAXFO2B.mjs';import {a}from'./chunk-JJMFOLJZ.mjs';import {a as a$3}from'./chunk-OEP7JRYH.mjs';import {a as a$4}from'./chunk-UML6FCOQ.mjs';import {d}from'./chunk-WMG2LTLR.mjs';import {c}from'./chunk-B4CC5AGE.mjs';import {a as a$2}from'./chunk-HK2DPKES.mjs';import*as U from'react';import {useCallback,useRef,useMemo,useState,useEffect}from'react';import {jsx}from'react/jsx-runtime';var Yn=300,Zn="cubic-bezier(.4,0,.22,1)",v={enabled:false,closeScroll:false,controls:{close:{enabled:true,style:{},className:"",render:void 0},arrows:{enabled:true,arrow:{},prev:{},next:{},render:void 0,renderPrev:void 0,renderNext:void 0},counter:{enabled:true,style:{},className:"",render:void 0}},effects:{introDuration:{transform:300,fade:500},introEasing:a$1,introFade:false,crossfade:{controls:false,drag:false,durationMs:120,easing:"cubic-bezier(.4,0,.22,1)"}},slider:{gap:0,duration:25,friction:.68,direction:"ltr",skipSnaps:false,strictSnaps:false},zoom:{...a},caption:{overlayCrossfadeTarget:"content",overlayCrossfadeDurationMs:300,overlayCrossfadeEasing:"cubic-bezier(.4,0,.22,1)",zoomFade:true,zoomFadeDurationMs:Yn,zoomFadeEasing:Zn,zoomInTransform:"",zoomOutTransform:""}};function He(e=0){let n=e,o=new Set,c=new Set,u=new Set,S={get:()=>n,requestSet(s,F="animated",b){o.forEach(L=>L({type:"requestSet",index:s,mode:F,meta:b?.meta}));},requestPrev(){o.forEach(s=>s({type:"requestPrev"}));},requestNext(){o.forEach(s=>s({type:"requestNext"}));},requestCenter(){o.forEach(s=>s({type:"center"}));},onEvent(s){return c.add(s),()=>c.delete(s)},onRequest(s){return o.add(s),()=>o.delete(s)},setLocalIndex(s){n=s,c.forEach(F=>F({type:"internalIndex",index:s}));},onBasePointerDown(s){return u.add(s),()=>u.delete(s)},emitBasePointerDown(){u.forEach(s=>s());},destroy(){o.clear(),c.clear(),u.clear();}};return queueMicrotask(()=>{c.forEach(s=>s({type:"mounted"}));}),S}function Ne(e=1e4){let n=null;function o(c=400){n?.();let u=document.createElement("div");Object.assign(u.style,{position:"fixed",inset:"0",zIndex:String(e),background:"transparent",touchAction:"none",pointerEvents:"auto"}),document.body.appendChild(u);let S=()=>{u.parentNode&&u.remove();},s=window.setTimeout(()=>{S(),n=null;},c),F=()=>{window.clearTimeout(s),S(),n=null;};return n=F,F}return {add:o}}function ke(){return {width:a$4(),height:typeof window<"u"&&window.innerHeight>0?window.innerHeight:0}}function Be(){let[e,n]=U.useState(()=>typeof window>"u"?{width:1024,height:768}:ke());return U.useEffect(()=>{if(typeof window>"u")return;let o=()=>{let c=ke();n(u=>u.width===c.width&&u.height===c.height?u:c);};return window.addEventListener("resize",o),o(),()=>window.removeEventListener("resize",o)},[]),e}function Ue(e,n,o){return o||(n??"scale")==="fade"||!e||e.kind!=="image"?"fade":"scale"}function jn(e){return e?e instanceof HTMLImageElement?e:e instanceof HTMLElement?e.querySelector("img"):null:null}function Kn(e,n){if(e===n)return true;if(!e||!n)return !e&&!n;let o=Object.keys(e),c=Object.keys(n);if(o.length!==c.length)return false;for(let u of o)if(e[u]!==n[u])return false;return true}function Jn(e,n){return e?e.position===n.position&&e.className===n.className&&e.fadeDurationMs===n.fadeDurationMs&&e.fadeEasing===n.fadeEasing&&Kn(e.style,n.style):false}var Qn=[];function $n(e,n){if(!n)return e;let o={...e,...n};return (e.slider||n.slider)&&(o.slider={...e.slider??{},...n.slider??{}}),(e.zoom||n.zoom)&&(o.zoom={...e.zoom??{},...n.zoom??{}}),(e.controls||n.controls)&&(o.controls={...e.controls??{},...n.controls??{}}),(e.caption||n.caption)&&(o.caption={...e.caption??{},...n.caption??{}}),(e.video||n.video)&&(o.video={...e.video??{},...n.video??{}}),(e.lazyLoad||n.lazyLoad)&&(o.lazyLoad={...e.lazyLoad??{},...n.lazyLoad??{},images:e.lazyLoad?.images||n.lazyLoad?.images?{...e.lazyLoad?.images??{},...n.lazyLoad?.images??{}}:void 0,videos:e.lazyLoad?.videos||n.lazyLoad?.videos?{...e.lazyLoad?.videos??{},...n.lazyLoad?.videos??{}}:void 0}),e.closeScroll&&n.closeScroll&&typeof e.closeScroll=="object"&&typeof n.closeScroll=="object"&&(o.closeScroll={...e.closeScroll,...n.closeScroll}),(e.effects||n.effects)&&(o.effects={...e.effects??{},...n.effects??{},introDuration:b(e.effects?.introDuration,n.effects?.introDuration),introEasing:b(e.effects?.introEasing,n.effects?.introEasing),crossfade:e.effects?.crossfade||n.effects?.crossfade?{...e.effects?.crossfade??{},...n.effects?.crossfade??{}}:void 0}),o}function et(e,n){return n.reduce((o,c)=>$n(o,c.options),e??{})}function Tt(e){let{fullscreen:n,plugins:o=Qn}=e,c$1=d();if(!c$1)throw new Error("useFullscreenController() must be used inside <GalleryCore />");let{layout:u,resolveLayoutlessTarget:S,normalizedItems:s,fsOpenSub:F,setFullscreenOpen:b,sliderApiRef:L,getFullscreenAdapter:re,effectiveBreakpoints:le}=c$1,w=useCallback(r=>re(r),[re]),oe=useCallback((r,l)=>{w(r)?.syncBeforeOpen?.(l);},[w]),se=useCallback(r=>w(r)?.closestSelector??(r==="slider"?".rmg__slide":r==="masonry"?".rmg__masonry-item":r==="api"?'[data-rmg-idx], [data-rmg-layoutless-item], article, figure, section, button, [role="button"], a[href], .rmg__grid-item, .rmg__masonry-item, .rmg__slide':".rmg__grid-item"),[w]),m=w("entries")?.getEntryContext?.()??{},Xe=useRef(null),ie=useMemo(()=>m.entriesObject??{render:{},mediaLayout:"slider"},[m.entriesObject]),O=m.entryMapRef??Xe,C=m.entryMediaLayout??ie.mediaLayout??"slider",Ge=u==="entries"&&!!m.entriesObject&&!!m.entryMapRef,ue=useCallback(r=>{if(u==="entries"&&C==="slider"){let d=O.current?.[r]??null,a=m.entrySliderRefs?.current??null;return (d&&a?a[d.entryIndex]:null)??null}return L.current??null},[u,C,O,m.entrySliderRefs,L]),R=useMemo(()=>He(0),[]),[Ve,X]=useState(0),G=useRef(false),We=useRef(false),Ye=useRef([]),[ce,de]=useState(false),Ze=useRef(null),je=useRef(false),P=c$1.expandableImageRefs,ae=useRef(null),fe=useRef(null),me=useRef(null),pe=useRef(null),ye=useRef(null),Fe=useRef(null),[g,V]=useState(false),W=Be(),Y=useRef(1),Ke=useRef({x:0,y:0}),Je=useRef({x:0,y:0}),A=useRef(null),_=useRef([]),Z=useRef(1),j=useRef(0),K=useRef(0),J=useRef(0),q=useRef(false),H=useRef(R.get()),[ge,Se]=useState(false),[h,Qe]=useState(false),$e=useRef(false),[en,nn]=useState(false),Re=useRef(false),tn=useRef(null),rn=useRef(null),ln=useRef(false),on=useRef("idle"),sn=useRef(null),un=useRef(null),cn=useRef(null),dn=useRef(null),an=useRef(null),fn=useRef(null),mn=useRef(null),pn=useRef(null),yn=useRef(null),Fn=useRef(null),Q=useRef(null),[gn,he]=useState(null),[be,Sn]=useState(null),Rn=useRef(false),Ee=useRef(null),ve=useRef(null),hn=useRef(null),bn=useRef(null),En=useRef(null),vn=useRef(null),Mn=useRef(false),Tn=useRef(null),[Ln,In]=useState([]),xn=useRef([]),wn=useRef([]),On=useRef(false),Me=useRef([]),[Cn,Te]=useState(null),Dn=useRef(null),Le=useRef(null),N=useRef(null),$=useMemo(()=>o.find(r=>r?.RuntimeHost),[o]),ee=$?.RuntimeHost,k=!!ee,E=useMemo(()=>et(n,o),[n,o]),i=useMemo(()=>{let r={...E??{}};delete r.thumbnails;let l={...E?.effects??{}};return delete l.thumbnailsFadeDuration,delete l.thumbnailsFadeEasing,{...v,...r,slider:{...v.slider,...E?.slider??{}},zoom:{...v.zoom,...E?.zoom??{}},effects:{...v.effects,...l,crossfade:{...v.effects.crossfade,...l.crossfade??{}}},controls:{...E?.controls??{}},caption:{...v.caption,...E?.caption??{}}}},[E]),zn=useCallback(r=>{Y.current=r;let l=Re.current,d=r>1.01;d!==l&&(Re.current=d,nn(d));},[]);function Pn(r,l,d,a=a$2){return r==null?null:typeof r=="object"||Array.isArray(r)?c(r,"bottom",d,a):l==null||d>=l?r:"bottom"}useEffect(()=>{typeof window>"u"||(ve.current=Ne(1e4));},[]),useEffect(()=>{i.enabled&&$?.preload?.();},[i.enabled,$]);let An=useCallback(r=>{Ee.current?.();let l=ve.current?.add(r);Ee.current=l??null;},[]),_n=useCallback(r=>{Q.current=r,Sn(r);},[]),Ie=useCallback(r=>{he(l=>Jn(l,r)?l:r);},[]),xe=useCallback(()=>{he(null);},[]),ne=i.slider.direction??"ltr",qn=useMemo(()=>s.length>1?f(i.slider.gap,W.width,le):0,[i.slider.gap,W.width,le,s.length]),Hn=useMemo(()=>({mountEl:be,fsSub:R,visible:g,invisible:h,direction:ne,registerLayout:Ie,clearLayout:xe}),[be,R,g,h,ne,Ie,xe]),D=useCallback(r=>{if(H.current=r,u==="entries"&&C==="slider"){let a=O.current?.[r]??null,B=m.entrySliderRefs?.current??null,p=(a&&B?B[a.entryIndex]:null)?.getInternals?.();if(p){A.current=p.slider.current,_.current=p.slides.current,Z.current=p.visibleImages.current,j.current=p.selectedIndex.current,K.current=p.sliderX.current,J.current=p.sliderVelocity.current,q.current=p.isWrapping.current;return}}let l=L.current?.getInternals?.();l&&(A.current=l.slider.current,_.current=l.slides.current,Z.current=l.visibleImages.current,j.current=l.selectedIndex.current,K.current=l.sliderX.current,J.current=l.sliderVelocity.current,q.current=l.isWrapping.current);},[u,C,O,m.entrySliderRefs,L]),I=useCallback((r,l,d,a)=>{if(!i.enabled||!k)return;if(Le.current||h){N.current={source:r,index:l,originEl:d??null,requestedMethod:a};return}if(oe(r,l),!s.length)return;let x=l;(u==="grid"||u==="masonry")&&(x=l);let p=s[x],z=null;d&&(d instanceof HTMLImageElement?z=d:z=d.querySelector("img")),z||(z=jn(P.current[l]??null)??S(l).image);let we=Ue(p,a,!!i.effects?.introFade),Un=we==="scale"?z:null,Xn=se(r),Gn={originalImage:Un,index:x,method:we,closestSelector:Xn};G.current=true,b(true),R.setLocalIndex(x),V(true),Te(Gn),X(x);},[i.enabled,s,oe,u,h,b,R,P,S,se,k]);useEffect(()=>{if(!i.enabled)return;let r=R.onEvent(l=>{l.type==="internalIndex"&&Number.isFinite(l.index)&&(D(l.index),X(l.index));});return ()=>r()},[i.enabled,R,D]),useEffect(()=>{if(!i.enabled){N.current=null;return}if(g||h)return;let r=N.current;if(!r)return;N.current=null;let l=window.requestAnimationFrame(()=>{I(r.source,r.index,r.originEl,r.requestedMethod);});return ()=>window.cancelAnimationFrame(l)},[i.enabled,g,h,I]);let Nn=()=>{ue(H.current)?.centerSlider?.();},kn=(r,l)=>{ue(H.current)?.setIndex?.(r,l);};useEffect(()=>{if(!i.enabled)return;let r=F.subscribe(l=>{D(l.index);let d=l.requestedMethod,a=l.method;a?I(l.source,l.index,l.image??null,a):I(l.source,l.index,l.image??null,d);});return ()=>r?.()},[i.enabled,F,I,D]),useEffect(()=>{g||b(false);},[g,b]),useEffect(()=>{c$1.setFsEnabled(i.enabled&&k);},[c$1,i.enabled,k]);let Bn=i.enabled&&ee?jsx(ee,{fsEnabled:i.enabled,fsSub:R,showFullscreenModal:g,setShowFullscreenModal:V,setShowFullscreenSlider:de,showFullscreenSlider:ce,isClick:G,isAnimatingRef:Mn,overlayDivRef:ae,duplicateImgRef:fe,cells:Me,slidesForFullscreen:_,sliderForFullscreen:A,isWrappingForFullscreen:q,setClosingModal:Qe,closingModal:h,closeButtonRef:me,counterRef:pe,leftChevronRef:ye,rightChevronRef:Fe,centerSliderForFullscreen:Nn,setSliderIndexForFullscreen:kn,layout:u,expandableImageRefs:P,resolveLayoutlessTarget:S,entryMapRef:O,entryMediaLayout:C,introFade:i.effects.introFade,introDuration:i.effects.introDuration,introEasing:i.effects.introEasing,fullscreenSliderApi:Ze,slideIndex:Ve,isZoomClick:We,isZoomed:en,windowSize:W,imageRefs:Ye,wrappedItems:Ln,setWrappedItems:In,scale:Y.current,isZooming:je,singleModePlyrRefs:xn,wrappedModePlyrRefs:wn,direction:ne,sliderGap:qn,sliderDuration:i.slider.duration,sliderFriction:i.slider.friction,sliderSkipSnaps:i.slider.skipSnaps,sliderStrictSnaps:i.slider.strictSnaps,suppressLoopRef:Rn,fsFadeOpening:ge,normalizedItems:s,fsThumbContainerRef:Q,fullscreenThumbnailSlot:gn,setFullscreenThumbnailMountEl:_n,showFsEntryOverlayMount:g&&Ge,fsIntroReq:Cn,clearFsIntroReq:()=>Te(null),styles:a$3,fs:i,overlayCaptionRef:yn,overlayCaptionRootRef:Fn,setFsFadeOpening:Se,addShield:An,resolveFsCaptionPlacement:Pn,requestFsCloseRef:Dn,cancelFsCloseRef:Le,suppressNextClickRef:On,currentImage:tn,scaleRef:Y,pointerDownRef:ln,interactionModeRef:on,boundsX:En,boundsY:vn,bodyX:hn,bodyY:bn,locX:sn,locY:un,prevX:cn,prevY:dn,offX:an,offY:fn,tgtX:mn,tgtY:pn,axisRef:rn,animRef:Tn,setScale:zn,previousZoom:Je,panRef:Ke,changingSlides:$e,fsIndexRef:H,entriesObject:ie,syncFullscreenSourceFromIndex:D,setFullscreenOpen:b,runtimePlugins:o}):null;return {fs:i,fullscreenNode:Bn,fullscreenThumbnailBridge:Hn,openFullscreenAt:I,isClick:G,expandableImageRefs:P,overlayDivRef:ae,duplicateImgRef:fe,closeButtonRef:me,counterRef:pe,leftChevronRef:ye,rightChevronRef:Fe,sliderForFullscreen:A,slidesForFullscreen:_,visibleImagesForFullscreen:Z,selectedIndexForFullscreen:j,sliderXForFullscreen:K,sliderVelocityForFullscreen:J,isWrappingForFullscreen:q,fsThumbContainerRef:Q,cells:Me,setSlideIndex:X,setShowFullscreenModal:V,setShowFullscreenSlider:de,setFsFadeOpening:Se,showFullscreenModal:g,showFullscreenSlider:ce,fsFadeOpening:ge,closingModal:h}}export{Tt as a};
|
|
1
|
+
import {a}from'./chunk-JJMFOLJZ.mjs';import {a as a$1,f,b}from'./chunk-PZAXFO2B.mjs';import {a as a$3}from'./chunk-OEP7JRYH.mjs';import {a as a$4}from'./chunk-UML6FCOQ.mjs';import {d}from'./chunk-WMG2LTLR.mjs';import {c}from'./chunk-B4CC5AGE.mjs';import {a as a$2}from'./chunk-HK2DPKES.mjs';import*as U from'react';import {useCallback,useRef,useMemo,useState,useEffect}from'react';import {jsx}from'react/jsx-runtime';var Yn=300,Zn="cubic-bezier(.4,0,.22,1)",v={enabled:false,closeScroll:false,controls:{close:{enabled:true,style:{},className:"",render:void 0},arrows:{enabled:true,arrow:{},prev:{},next:{},render:void 0,renderPrev:void 0,renderNext:void 0},counter:{enabled:true,style:{},className:"",render:void 0}},effects:{introDuration:{transform:300,fade:500},introEasing:a$1,introFade:false,crossfade:{controls:false,drag:false,durationMs:120,easing:"cubic-bezier(.4,0,.22,1)"}},slider:{gap:0,duration:25,friction:.68,direction:"ltr",skipSnaps:false,strictSnaps:false},zoom:{...a},caption:{overlayCrossfadeTarget:"content",overlayCrossfadeDurationMs:300,overlayCrossfadeEasing:"cubic-bezier(.4,0,.22,1)",zoomFade:true,zoomFadeDurationMs:Yn,zoomFadeEasing:Zn,zoomInTransform:"",zoomOutTransform:""}};function He(e=0){let n=e,o=new Set,c=new Set,u=new Set,S={get:()=>n,requestSet(s,F="animated",b){o.forEach(L=>L({type:"requestSet",index:s,mode:F,meta:b?.meta}));},requestPrev(){o.forEach(s=>s({type:"requestPrev"}));},requestNext(){o.forEach(s=>s({type:"requestNext"}));},requestCenter(){o.forEach(s=>s({type:"center"}));},onEvent(s){return c.add(s),()=>c.delete(s)},onRequest(s){return o.add(s),()=>o.delete(s)},setLocalIndex(s){n=s,c.forEach(F=>F({type:"internalIndex",index:s}));},onBasePointerDown(s){return u.add(s),()=>u.delete(s)},emitBasePointerDown(){u.forEach(s=>s());},destroy(){o.clear(),c.clear(),u.clear();}};return queueMicrotask(()=>{c.forEach(s=>s({type:"mounted"}));}),S}function Ne(e=1e4){let n=null;function o(c=400){n?.();let u=document.createElement("div");Object.assign(u.style,{position:"fixed",inset:"0",zIndex:String(e),background:"transparent",touchAction:"none",pointerEvents:"auto"}),document.body.appendChild(u);let S=()=>{u.parentNode&&u.remove();},s=window.setTimeout(()=>{S(),n=null;},c),F=()=>{window.clearTimeout(s),S(),n=null;};return n=F,F}return {add:o}}function ke(){return {width:a$4(),height:typeof window<"u"&&window.innerHeight>0?window.innerHeight:0}}function Be(){let[e,n]=U.useState(()=>typeof window>"u"?{width:1024,height:768}:ke());return U.useEffect(()=>{if(typeof window>"u")return;let o=()=>{let c=ke();n(u=>u.width===c.width&&u.height===c.height?u:c);};return window.addEventListener("resize",o),o(),()=>window.removeEventListener("resize",o)},[]),e}function Ue(e,n,o){return o||(n??"scale")==="fade"||!e||e.kind!=="image"?"fade":"scale"}function jn(e){return e?e instanceof HTMLImageElement?e:e instanceof HTMLElement?e.querySelector("img"):null:null}function Kn(e,n){if(e===n)return true;if(!e||!n)return !e&&!n;let o=Object.keys(e),c=Object.keys(n);if(o.length!==c.length)return false;for(let u of o)if(e[u]!==n[u])return false;return true}function Jn(e,n){return e?e.position===n.position&&e.className===n.className&&e.fadeDurationMs===n.fadeDurationMs&&e.fadeEasing===n.fadeEasing&&Kn(e.style,n.style):false}var Qn=[];function $n(e,n){if(!n)return e;let o={...e,...n};return (e.slider||n.slider)&&(o.slider={...e.slider??{},...n.slider??{}}),(e.zoom||n.zoom)&&(o.zoom={...e.zoom??{},...n.zoom??{}}),(e.controls||n.controls)&&(o.controls={...e.controls??{},...n.controls??{}}),(e.caption||n.caption)&&(o.caption={...e.caption??{},...n.caption??{}}),(e.video||n.video)&&(o.video={...e.video??{},...n.video??{}}),(e.lazyLoad||n.lazyLoad)&&(o.lazyLoad={...e.lazyLoad??{},...n.lazyLoad??{},images:e.lazyLoad?.images||n.lazyLoad?.images?{...e.lazyLoad?.images??{},...n.lazyLoad?.images??{}}:void 0,videos:e.lazyLoad?.videos||n.lazyLoad?.videos?{...e.lazyLoad?.videos??{},...n.lazyLoad?.videos??{}}:void 0}),e.closeScroll&&n.closeScroll&&typeof e.closeScroll=="object"&&typeof n.closeScroll=="object"&&(o.closeScroll={...e.closeScroll,...n.closeScroll}),(e.effects||n.effects)&&(o.effects={...e.effects??{},...n.effects??{},introDuration:b(e.effects?.introDuration,n.effects?.introDuration),introEasing:b(e.effects?.introEasing,n.effects?.introEasing),crossfade:e.effects?.crossfade||n.effects?.crossfade?{...e.effects?.crossfade??{},...n.effects?.crossfade??{}}:void 0}),o}function et(e,n){return n.reduce((o,c)=>$n(o,c.options),e??{})}function Tt(e){let{fullscreen:n,plugins:o=Qn}=e,c$1=d();if(!c$1)throw new Error("useFullscreenController() must be used inside <GalleryCore />");let{layout:u,resolveLayoutlessTarget:S,normalizedItems:s,fsOpenSub:F,setFullscreenOpen:b,sliderApiRef:L,getFullscreenAdapter:re,effectiveBreakpoints:le}=c$1,w=useCallback(r=>re(r),[re]),oe=useCallback((r,l)=>{w(r)?.syncBeforeOpen?.(l);},[w]),se=useCallback(r=>w(r)?.closestSelector??(r==="slider"?".rmg__slide":r==="masonry"?".rmg__masonry-item":r==="api"?'[data-rmg-idx], [data-rmg-layoutless-item], article, figure, section, button, [role="button"], a[href], .rmg__grid-item, .rmg__masonry-item, .rmg__slide':".rmg__grid-item"),[w]),m=w("entries")?.getEntryContext?.()??{},Xe=useRef(null),ie=useMemo(()=>m.entriesObject??{render:{},mediaLayout:"slider"},[m.entriesObject]),O=m.entryMapRef??Xe,C=m.entryMediaLayout??ie.mediaLayout??"slider",Ge=u==="entries"&&!!m.entriesObject&&!!m.entryMapRef,ue=useCallback(r=>{if(u==="entries"&&C==="slider"){let d=O.current?.[r]??null,a=m.entrySliderRefs?.current??null;return (d&&a?a[d.entryIndex]:null)??null}return L.current??null},[u,C,O,m.entrySliderRefs,L]),R=useMemo(()=>He(0),[]),[Ve,X]=useState(0),G=useRef(false),We=useRef(false),Ye=useRef([]),[ce,de]=useState(false),Ze=useRef(null),je=useRef(false),P=c$1.expandableImageRefs,ae=useRef(null),fe=useRef(null),me=useRef(null),pe=useRef(null),ye=useRef(null),Fe=useRef(null),[g,V]=useState(false),W=Be(),Y=useRef(1),Ke=useRef({x:0,y:0}),Je=useRef({x:0,y:0}),A=useRef(null),_=useRef([]),Z=useRef(1),j=useRef(0),K=useRef(0),J=useRef(0),q=useRef(false),H=useRef(R.get()),[ge,Se]=useState(false),[h,Qe]=useState(false),$e=useRef(false),[en,nn]=useState(false),Re=useRef(false),tn=useRef(null),rn=useRef(null),ln=useRef(false),on=useRef("idle"),sn=useRef(null),un=useRef(null),cn=useRef(null),dn=useRef(null),an=useRef(null),fn=useRef(null),mn=useRef(null),pn=useRef(null),yn=useRef(null),Fn=useRef(null),Q=useRef(null),[gn,he]=useState(null),[be,Sn]=useState(null),Rn=useRef(false),Ee=useRef(null),ve=useRef(null),hn=useRef(null),bn=useRef(null),En=useRef(null),vn=useRef(null),Mn=useRef(false),Tn=useRef(null),[Ln,In]=useState([]),xn=useRef([]),wn=useRef([]),On=useRef(false),Me=useRef([]),[Cn,Te]=useState(null),Dn=useRef(null),Le=useRef(null),N=useRef(null),$=useMemo(()=>o.find(r=>r?.RuntimeHost),[o]),ee=$?.RuntimeHost,k=!!ee,E=useMemo(()=>et(n,o),[n,o]),i=useMemo(()=>{let r={...E??{}};delete r.thumbnails;let l={...E?.effects??{}};return delete l.thumbnailsFadeDuration,delete l.thumbnailsFadeEasing,{...v,...r,slider:{...v.slider,...E?.slider??{}},zoom:{...v.zoom,...E?.zoom??{}},effects:{...v.effects,...l,crossfade:{...v.effects.crossfade,...l.crossfade??{}}},controls:{...E?.controls??{}},caption:{...v.caption,...E?.caption??{}}}},[E]),zn=useCallback(r=>{Y.current=r;let l=Re.current,d=r>1.01;d!==l&&(Re.current=d,nn(d));},[]);function Pn(r,l,d,a=a$2){return r==null?null:typeof r=="object"||Array.isArray(r)?c(r,"bottom",d,a):l==null||d>=l?r:"bottom"}useEffect(()=>{typeof window>"u"||(ve.current=Ne(1e4));},[]),useEffect(()=>{i.enabled&&$?.preload?.();},[i.enabled,$]);let An=useCallback(r=>{Ee.current?.();let l=ve.current?.add(r);Ee.current=l??null;},[]),_n=useCallback(r=>{Q.current=r,Sn(r);},[]),Ie=useCallback(r=>{he(l=>Jn(l,r)?l:r);},[]),xe=useCallback(()=>{he(null);},[]),ne=i.slider.direction??"ltr",qn=useMemo(()=>s.length>1?f(i.slider.gap,W.width,le):0,[i.slider.gap,W.width,le,s.length]),Hn=useMemo(()=>({mountEl:be,fsSub:R,visible:g,invisible:h,direction:ne,registerLayout:Ie,clearLayout:xe}),[be,R,g,h,ne,Ie,xe]),D=useCallback(r=>{if(H.current=r,u==="entries"&&C==="slider"){let a=O.current?.[r]??null,B=m.entrySliderRefs?.current??null,p=(a&&B?B[a.entryIndex]:null)?.getInternals?.();if(p){A.current=p.slider.current,_.current=p.slides.current,Z.current=p.visibleImages.current,j.current=p.selectedIndex.current,K.current=p.sliderX.current,J.current=p.sliderVelocity.current,q.current=p.isWrapping.current;return}}let l=L.current?.getInternals?.();l&&(A.current=l.slider.current,_.current=l.slides.current,Z.current=l.visibleImages.current,j.current=l.selectedIndex.current,K.current=l.sliderX.current,J.current=l.sliderVelocity.current,q.current=l.isWrapping.current);},[u,C,O,m.entrySliderRefs,L]),I=useCallback((r,l,d,a)=>{if(!i.enabled||!k)return;if(Le.current||h){N.current={source:r,index:l,originEl:d??null,requestedMethod:a};return}if(oe(r,l),!s.length)return;let x=l;(u==="grid"||u==="masonry")&&(x=l);let p=s[x],z=null;d&&(d instanceof HTMLImageElement?z=d:z=d.querySelector("img")),z||(z=jn(P.current[l]??null)??S(l).image);let we=Ue(p,a,!!i.effects?.introFade),Un=we==="scale"?z:null,Xn=se(r),Gn={originalImage:Un,index:x,method:we,closestSelector:Xn};G.current=true,b(true),R.setLocalIndex(x),V(true),Te(Gn),X(x);},[i.enabled,s,oe,u,h,b,R,P,S,se,k]);useEffect(()=>{if(!i.enabled)return;let r=R.onEvent(l=>{l.type==="internalIndex"&&Number.isFinite(l.index)&&(D(l.index),X(l.index));});return ()=>r()},[i.enabled,R,D]),useEffect(()=>{if(!i.enabled){N.current=null;return}if(g||h)return;let r=N.current;if(!r)return;N.current=null;let l=window.requestAnimationFrame(()=>{I(r.source,r.index,r.originEl,r.requestedMethod);});return ()=>window.cancelAnimationFrame(l)},[i.enabled,g,h,I]);let Nn=()=>{ue(H.current)?.centerSlider?.();},kn=(r,l)=>{ue(H.current)?.setIndex?.(r,l);};useEffect(()=>{if(!i.enabled)return;let r=F.subscribe(l=>{D(l.index);let d=l.requestedMethod,a=l.method;a?I(l.source,l.index,l.image??null,a):I(l.source,l.index,l.image??null,d);});return ()=>r?.()},[i.enabled,F,I,D]),useEffect(()=>{g||b(false);},[g,b]),useEffect(()=>{c$1.setFsEnabled(i.enabled&&k);},[c$1,i.enabled,k]);let Bn=i.enabled&&ee?jsx(ee,{fsEnabled:i.enabled,fsSub:R,showFullscreenModal:g,setShowFullscreenModal:V,setShowFullscreenSlider:de,showFullscreenSlider:ce,isClick:G,isAnimatingRef:Mn,overlayDivRef:ae,duplicateImgRef:fe,cells:Me,slidesForFullscreen:_,sliderForFullscreen:A,isWrappingForFullscreen:q,setClosingModal:Qe,closingModal:h,closeButtonRef:me,counterRef:pe,leftChevronRef:ye,rightChevronRef:Fe,centerSliderForFullscreen:Nn,setSliderIndexForFullscreen:kn,layout:u,expandableImageRefs:P,resolveLayoutlessTarget:S,entryMapRef:O,entryMediaLayout:C,introFade:i.effects.introFade,introDuration:i.effects.introDuration,introEasing:i.effects.introEasing,fullscreenSliderApi:Ze,slideIndex:Ve,isZoomClick:We,isZoomed:en,windowSize:W,imageRefs:Ye,wrappedItems:Ln,setWrappedItems:In,scale:Y.current,isZooming:je,singleModePlyrRefs:xn,wrappedModePlyrRefs:wn,direction:ne,sliderGap:qn,sliderDuration:i.slider.duration,sliderFriction:i.slider.friction,sliderSkipSnaps:i.slider.skipSnaps,sliderStrictSnaps:i.slider.strictSnaps,suppressLoopRef:Rn,fsFadeOpening:ge,normalizedItems:s,fsThumbContainerRef:Q,fullscreenThumbnailSlot:gn,setFullscreenThumbnailMountEl:_n,showFsEntryOverlayMount:g&&Ge,fsIntroReq:Cn,clearFsIntroReq:()=>Te(null),styles:a$3,fs:i,overlayCaptionRef:yn,overlayCaptionRootRef:Fn,setFsFadeOpening:Se,addShield:An,resolveFsCaptionPlacement:Pn,requestFsCloseRef:Dn,cancelFsCloseRef:Le,suppressNextClickRef:On,currentImage:tn,scaleRef:Y,pointerDownRef:ln,interactionModeRef:on,boundsX:En,boundsY:vn,bodyX:hn,bodyY:bn,locX:sn,locY:un,prevX:cn,prevY:dn,offX:an,offY:fn,tgtX:mn,tgtY:pn,axisRef:rn,animRef:Tn,setScale:zn,previousZoom:Je,panRef:Ke,changingSlides:$e,fsIndexRef:H,entriesObject:ie,syncFullscreenSourceFromIndex:D,setFullscreenOpen:b,runtimePlugins:o}):null;return {fs:i,fullscreenNode:Bn,fullscreenThumbnailBridge:Hn,openFullscreenAt:I,isClick:G,expandableImageRefs:P,overlayDivRef:ae,duplicateImgRef:fe,closeButtonRef:me,counterRef:pe,leftChevronRef:ye,rightChevronRef:Fe,sliderForFullscreen:A,slidesForFullscreen:_,visibleImagesForFullscreen:Z,selectedIndexForFullscreen:j,sliderXForFullscreen:K,sliderVelocityForFullscreen:J,isWrappingForFullscreen:q,fsThumbContainerRef:Q,cells:Me,setSlideIndex:X,setShowFullscreenModal:V,setShowFullscreenSlider:de,setFsFadeOpening:Se,showFullscreenModal:g,showFullscreenSlider:ce,fsFadeOpening:ge,closingModal:h}}export{Tt as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a
|
|
1
|
+
import {a}from'./chunk-H6XFG3CJ.mjs';import {a as a$1}from'./chunk-WLYIORTH.mjs';import'./chunk-WGVWASZM.mjs';import {a as a$4}from'./chunk-7GCYLW7E.mjs';import'./chunk-LVMYHM4T.mjs';import'./chunk-VWEQRZ24.mjs';import {a as a$3}from'./chunk-WNQAUKX5.mjs';import'./chunk-CEMJWOHJ.mjs';import'./chunk-4NT4UVB5.mjs';import'./chunk-HGY3QLCE.mjs';import'./chunk-D3T6HIS2.mjs';import'./chunk-T3TRJIQQ.mjs';import'./chunk-QE3NYNL4.mjs';import'./chunk-UML6FCOQ.mjs';import {d}from'./chunk-WMG2LTLR.mjs';import'./chunk-L2HRIINV.mjs';import'./chunk-B4CC5AGE.mjs';import {a as a$2}from'./chunk-HK2DPKES.mjs';import*as S from'react';import {jsx}from'react/jsx-runtime';var u={align:"start",direction:{dir:"ltr",axis:"x"},scroll:{loop:false,freeScroll:false,groupCells:false,skipSnaps:false},motion:{selectDuration:25,freeScrollDuration:43,friction:.68},elements:{container:{},viewport:{}},reveal:{staggerMs:0,durationMs:0},plugins:[a(),a$1()]};function b(i){let{entryIndex:t,entryInView:n,mediaNodes:e,opts:l,entrySliderRefs:r}=i;if(!(Array.isArray(e)&&e.length>0))return r.current&&(r.current[t]=null),null;let R=d(),O=S.useMemo(()=>{let s=l?.sliderObject;return {...s??u,reveal:{...u.reveal??{},...s?.reveal??{},inView:n}}},[n,l?.sliderObject]),g=R?.effectiveBreakpoints??{...a$2};return jsx("div",{className:a$3.sliderShell,style:{minHeight:"var(--rmg-slider-initial-height, var(--rmg-slider-height))"},children:jsx(a$4,{...O,breakpoints:g,ref:s=>{r.current[t]=s??null;},children:e})})}function M(i={}){let t=i.entrySliderRefs??{current:[]};return ({entryIndex:n,entryInView:e,mediaNodes:l,entrySliderRefs:r})=>jsx(b,{entryIndex:n,entryInView:e,mediaNodes:l,opts:i,entrySliderRefs:r??t})}export{M as createEntriesSliderMedia};
|
package/dist/fullscreen.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{a as useFullscreenController}from'./chunk-
|
|
1
|
+
export{a as useFullscreenController}from'./chunk-3G43QTRO.mjs';import'./chunk-JJMFOLJZ.mjs';import'./chunk-PZAXFO2B.mjs';import'./chunk-OEP7JRYH.mjs';import'./chunk-UML6FCOQ.mjs';import'./chunk-WMG2LTLR.mjs';import'./chunk-L2HRIINV.mjs';import'./chunk-B4CC5AGE.mjs';import'./chunk-HK2DPKES.mjs';
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{a as Video}from'./chunk-EWU5OYTE.mjs';export{a as ZoomPanImage}from'./chunk-3V4NPPY7.mjs';import'./chunk-4VHNCVVB.mjs';export{a as RatingStars}from'./chunk-C2BBODLN.mjs';export{c as Reveal,b as useReveal}from'./chunk-RRBBXIE3.mjs';export{a as useMasonryReady}from'./chunk-NJBA4372.mjs';export{a as useImageDecodeReady}from'./chunk-XWQTD7UK.mjs';export{a as Grid}from'./chunk-HZLKPCLP.mjs';import'./chunk-RLT5FULN.mjs';import'./chunk-C6PKH3FH.mjs';import'./chunk-PFEGIWQJ.mjs';import'./chunk-7QDG32H7.mjs';import'./chunk-ADIHG7AT.mjs';export{a as useFullscreenController}from'./chunk-
|
|
1
|
+
export{a as Video}from'./chunk-EWU5OYTE.mjs';export{a as ZoomPanImage}from'./chunk-3V4NPPY7.mjs';import'./chunk-4VHNCVVB.mjs';export{a as RatingStars}from'./chunk-C2BBODLN.mjs';export{c as Reveal,b as useReveal}from'./chunk-RRBBXIE3.mjs';export{a as useMasonryReady}from'./chunk-NJBA4372.mjs';export{a as useImageDecodeReady}from'./chunk-XWQTD7UK.mjs';export{a as Grid}from'./chunk-HZLKPCLP.mjs';import'./chunk-RLT5FULN.mjs';import'./chunk-C6PKH3FH.mjs';import'./chunk-PFEGIWQJ.mjs';import'./chunk-7QDG32H7.mjs';import'./chunk-ADIHG7AT.mjs';export{a as useFullscreenController}from'./chunk-3G43QTRO.mjs';import'./chunk-JJMFOLJZ.mjs';import'./chunk-PZAXFO2B.mjs';export{a as FullscreenThumbnailSlider}from'./chunk-RMCMQMRC.mjs';export{b as ThumbnailSlider,a as createThumbnailSyncBridge}from'./chunk-SPVRJNXN.mjs';import'./chunk-R6EGYRTJ.mjs';import'./chunk-P2GQPFSL.mjs';export{k as Entries,i as flattenEntries}from'./chunk-BORUUP5X.mjs';import'./chunk-D2ERSLYS.mjs';import'./chunk-PBP3RTCJ.mjs';import'./chunk-UAEPMZQY.mjs';import'./chunk-OEP7JRYH.mjs';import'./chunk-UO4HNZIO.mjs';import'./chunk-UP6P6CQS.mjs';import'./chunk-NHIKOJLU.mjs';import'./chunk-RD4L57DG.mjs';import'./chunk-6W5FJX7R.mjs';import'./chunk-YIWRZPVX.mjs';import'./chunk-JUEY27Y6.mjs';export{b as Skeleton}from'./chunk-HYXNES5X.mjs';export{a as useGridReady}from'./chunk-STRS7UNJ.mjs';import'./chunk-BNMFSBHJ.mjs';export{c as Masonry}from'./chunk-I2DTE5DH.mjs';import'./chunk-CHFC3K2N.mjs';import'./chunk-X4HEGEZV.mjs';import'./chunk-SPCWUWPZ.mjs';import'./chunk-ITKAYFXD.mjs';import'./chunk-6H2MRVWI.mjs';import'./chunk-LVYED5ZM.mjs';export{a as Slider}from'./chunk-7GCYLW7E.mjs';import'./chunk-LVMYHM4T.mjs';export{a as useSliderReady}from'./chunk-VWEQRZ24.mjs';import'./chunk-WNQAUKX5.mjs';export{c as createSliderIndexChannel}from'./chunk-CEMJWOHJ.mjs';import'./chunk-4NT4UVB5.mjs';import'./chunk-HGY3QLCE.mjs';import'./chunk-D3T6HIS2.mjs';import'./chunk-T3TRJIQQ.mjs';import'./chunk-QE3NYNL4.mjs';import'./chunk-UML6FCOQ.mjs';export{b as GalleryCore,c as useGalleryCore}from'./chunk-WMG2LTLR.mjs';export{a as toMediaItems}from'./chunk-L2HRIINV.mjs';import'./chunk-B4CC5AGE.mjs';export{a as BREAKPOINT_MAP}from'./chunk-HK2DPKES.mjs';import'./chunk-IWFBL2G3.mjs';import'./chunk-ODBPQRVS.mjs';import'./chunk-L4NJDMCU.mjs';export{a as useEntriesReady}from'./chunk-H3ALL5BC.mjs';
|