react-motion-gallery 2.0.48 → 2.0.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/video.mjs CHANGED
@@ -1 +1 @@
1
- export{a as Video,a as default}from'./chunk-UFX2HJMQ.mjs';import'./chunk-C6PKH3FH.mjs';import'./chunk-PFEGIWQJ.mjs';import'./chunk-AKY343WN.mjs';import'./chunk-EJ7I3UYI.mjs';import'./chunk-UAEPMZQY.mjs';import'./chunk-A5VUIE75.mjs';import'./chunk-UP6P6CQS.mjs';import'./chunk-NHIKOJLU.mjs';import'./chunk-LVYED5ZM.mjs';import'./chunk-WMG2LTLR.mjs';import'./chunk-L2HRIINV.mjs';import'./chunk-B4CC5AGE.mjs';import'./chunk-HK2DPKES.mjs';
1
+ export{a as Video,a as default}from'./chunk-EKWGPS4D.mjs';import'./chunk-C6PKH3FH.mjs';import'./chunk-PFEGIWQJ.mjs';import'./chunk-AKY343WN.mjs';import'./chunk-EJ7I3UYI.mjs';import'./chunk-UAEPMZQY.mjs';import'./chunk-A5VUIE75.mjs';import'./chunk-UP6P6CQS.mjs';import'./chunk-NHIKOJLU.mjs';import'./chunk-LVYED5ZM.mjs';import'./chunk-WMG2LTLR.mjs';import'./chunk-L2HRIINV.mjs';import'./chunk-B4CC5AGE.mjs';import'./chunk-HK2DPKES.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-motion-gallery",
3
- "version": "2.0.48",
3
+ "version": "2.0.50",
4
4
  "description": "Composable React media gallery primitives for sliders, grids, masonry, fullscreen, video, zoom/pan, and stable skeleton loading",
5
5
  "license": "PolyForm-Noncommercial-1.0.0",
6
6
  "author": "React Motion Gallery",
@@ -1 +0,0 @@
1
- import {a}from'./chunk-C6PKH3FH.mjs';import {b}from'./chunk-AKY343WN.mjs';import {d as d$1,a as a$1,b as b$1,c}from'./chunk-EJ7I3UYI.mjs';import {e,f}from'./chunk-UAEPMZQY.mjs';import {d}from'./chunk-WMG2LTLR.mjs';import*as t from'react';import {jsx,jsxs}from'react/jsx-runtime';var Oe={width:"100%",height:"100%"},Me=280,He=180;function ze(){let e=t.useRef(null),[i,r]=t.useState(false);return t.useLayoutEffect(()=>{let o=e.current;if(!o)return;let c=o.closest('[data-rmg-slide="true"]');if(!c){r(true);return}if(!c.hasAttribute("data-rmg-lazyload")){r(true);return}let m=()=>r(c.getAttribute("data-rmg-lazyloaded")==="true");m();let u=new MutationObserver(m);return u.observe(c,{attributes:true,attributeFilter:["data-rmg-lazyloaded","data-rmg-lazyload"]}),()=>u.disconnect()},[]),{ref:e,revealed:i}}function Be(e){if(typeof e=="number"&&Number.isFinite(e)&&e>0)return e;if(typeof e=="string"){let i=e.trim(),r=i.match(/^(\d+(?:\.\d+)?)\s*:\s*(\d+(?:\.\d+)?)$/);if(r){let m=parseFloat(r[1]),u=parseFloat(r[2]);if(m>0&&u>0)return m/u}let o=i.match(/^(\d+(?:\.\d+)?)\s*\/\s*(\d+(?:\.\d+)?)$/);if(o){let m=parseFloat(o[1]),u=parseFloat(o[2]);if(m>0&&u>0)return m/u}let c=Number(i);if(Number.isFinite(c)&&c>0)return c}if(typeof e=="object"&&e){let i=e.w??e.width,r=e.h??e.height;if(typeof i=="number"&&typeof r=="number"&&i>0&&r>0)return i/r}return null}function qe(e){let i=t.useRef(null);return t.useLayoutEffect(()=>{let r=e.current;r&&(i.current=r.closest('[data-rmg-viewport="true"]'));},[e]),i}function _e(e,i){let r=typeof e=="function"?e(i):e;if(!r)return i.forceCrossorigin?{crossorigin:true,autoplay:false,preload:"none"}:r;let o=r.autoplay??false,c={...r,autoplay:o,preload:r.preload??(o?"auto":"none")};return i.forceCrossorigin&&c.crossorigin==null&&(c.crossorigin=true),c}function je(e){if(typeof window>"u")return false;try{return new URL(e,window.location.href).origin!==window.location.origin}catch{return false}}function R(e,i){e&&(e.style.opacity=i?"1":"0");}function ee(e){e.current!=null&&(window.clearTimeout(e.current),e.current=null);}function De(e,i){e&&(ee(i),e.style.setProperty("animation-play-state","running","important"),e.style.setProperty("opacity","1","important"),e.style.setProperty("visibility","visible","important"),e.style.setProperty("pointer-events","none","important"));}function We(e,i,r){if(!e){r?.();return}ee(i),e.style.setProperty("animation-play-state","paused","important"),e.style.setProperty("opacity","0","important"),e.style.setProperty("pointer-events","none","important"),i.current=window.setTimeout(()=>{i.current=null,e.style.setProperty("visibility","hidden","important"),r?.();},He);}function ie(e){if(!e)return;try{e?.pause?.();}catch{}let i=e?.plyr??null;try{i?.pause?.();}catch{}try{i?.media?.pause?.();}catch{}}function $e(e){let i=e?.plyr??e;if(!i)return false;try{let r=i?.media;if(!r)return !1;let o=Number(r.readyState??0),c=Number(r.videoWidth??0),m=Number(r.videoHeight??0);return o>=1||c>0&&m>0}catch{return false}}function Ge(e,i){return e===false?{render:false,node:null,isCustom:false}:typeof e=="function"?{render:true,node:e(i),isCustom:true}:e===true||e==null?{render:true,node:null,isCustom:false}:{render:true,node:e,isCustom:true}}function Ue(e$1){let i=b(),r=i?.isClone??false,o=i?.normIdx??0,c$1=i?.storeBag,m=e$1.registerApiByIndex??i?.registerApiByIndex,u=t.useMemo(()=>c$1?c$1.getOrCreate("rmg-video-snapshot-store",a,s=>{s.destroy();}):null,[c$1]),A=t.useRef(null),f$1=t.useRef(null),q=t.useRef(false),C=t.useRef(false),F=t.useRef(false),{ref:b$2,revealed:I}=ze(),oe=qe(b$2),[te,W]=t.useState(false),[ue,re]=t.useState(false),k=e$1.lazyLoad,v=k?.enabled!==false,$=t.useMemo(()=>Ge(k?.spinner,{kind:"video",isClone:r}),[k?.spinner,r]),N=v&&$.render,g=d(),L=g?.isFullscreenOpen??false,G=g?.isFullscreenOpenRef??null,h=!r&&L,U=t.useRef(null),le=t.useRef(false),ne=t.useRef(false);t.useLayoutEffect(()=>{let s=b$2.current;if(!s)return;let a=s.closest('[data-rmg-slide="true"]');if(!a)return;let n=a.getAttribute("data-rmg-idx"),y=n!=null?parseInt(n,10):NaN;Number.isFinite(y)&&(U.current=y);},[]);let ce=t.useCallback(()=>{if(!v)return;let s=b$2.current;if(!s)return;let a=s.closest('[data-rmg-slide="true"]');if(!a||!(a.getAttribute("data-rmg-kind")==="video"||!!a.querySelector('[data-rmg-plyr="true"]'))||!a.hasAttribute("data-rmg-lazyload")||a.getAttribute("data-rmg-lazyloaded")==="true")return;a.setAttribute("data-rmg-lazyloaded","true"),a.removeAttribute("aria-busy");let l=a.querySelector("[data-rmg-spinner]");l&&(l.style.display="none");},[b$2,v]);t.useEffect(()=>{ne.current=false,re(false);},[e$1.src,e$1.poster]);let de=t.useCallback(()=>{if(ne.current)return;ne.current=true;let s=e$1.poster??null;if(s)try{let n=new Image;n.decoding="async",n.fetchPriority="high",n.src=s,n.decode().catch(()=>{});}catch{}let a=e$1.src;if(!(typeof a!="string"||!a))try{let n=document.createElement("video");n.preload="auto",n.muted=!0,n.playsInline=!0,s&&(n.poster=s),n.src=a,n.load(),window.setTimeout(()=>{try{n.removeAttribute("src"),n.load();}catch{}},1500);}catch{}},[e$1.poster,e$1.src]);t.useEffect(()=>{if(r||!g)return;let s=g.fsVisibleSub.subscribe(a=>{let n=a?.index;typeof n!="number"||!Number.isFinite(n)||n===U.current&&(re(true),de());});return ()=>s?.()},[g,r,de]),t.useEffect(()=>{if(!g||!v)return;let s=g.baseVisibleSub.subscribe(a=>{let n=a?.index;typeof n!="number"||!Number.isFinite(n)||n===U.current&&(ce(),re(true));});return ()=>s?.()},[g,v,ce]);let E=t.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.source,e$1.sourceBuilder,e$1.src,e$1.poster]),M=t.useMemo(()=>e(E),[E]),V=t.useMemo(()=>{let s=typeof e$1.poster=="string"&&e$1.poster.trim().length>0?e$1.poster:null,a=typeof E?.poster=="string"&&String(E.poster).trim().length>0?String(E.poster):null;return s??a},[e$1.poster,E]),Ae=t.useCallback(s=>r||!u?()=>{}:u.subscribe(o,s),[o,r,u]),Le=t.useCallback(()=>r||!u?null:u.getSnapshot(o),[o,r,u]),Te=t.useCallback(()=>null,[]),xe=t.useSyncExternalStore(Ae,Le,Te),K=t.useMemo(()=>V?M==="youtube"||M==="vimeo":false,[V,M]),fe=t.useMemo(()=>r||!u||M!=="mp4"?false:je(e$1.src),[r,e$1.src,M,u]),P=t.useMemo(()=>_e(e$1.options,{src:e$1.src,index:o,forceCrossorigin:fe}),[o,e$1.options,e$1.src,fe]),ye=t.useMemo(()=>!!P?.autoplay,[P]),_=t.useMemo(()=>Be(P?.ratio??null),[P]),[me,pe]=t.useState(K),Fe=t.useRef(null),se=t.useRef(null),T=t.useCallback((s=A.current)=>F.current?true:$e(s)?(F.current=true,true):false,[]),j=t.useCallback(s=>{if(!u||r)return;let a=b$2.current;if(!s||!a){u.unregisterOriginal(o);return}u.registerOriginal({canonicalIndex:o,api:s,hostEl:a,provider:M,src:e$1.src,poster:e$1.poster,ratio:_});},[b$2,o,r,e$1.poster,e$1.src,M,_,u]),O=t.useCallback(()=>{ee(Fe);},[]),Y=t.useCallback(()=>{ee(se);},[]);t.useLayoutEffect(()=>{O(),Y(),pe(K);},[O,Y,e$1.src,K]),t.useEffect(()=>()=>{O(),Y();},[O,Y]),t.useEffect(()=>(j(A.current),()=>{j(null);}),[j]);let Re=t.useCallback(()=>N?b$2.current?.querySelector("[data-rmg-video-spinner]")??null:null,[b$2,N]),d$2=t.useCallback((s,a)=>{let n=s&&!h;if(!N){n||a?.();return}let y=Re();if(!y){n||a?.();return}n?De(y,se):We(y,se,a);},[Re,N,h]),H=t.useCallback((s=A.current)=>{r||(G?.current??L)&&ie(s);},[r,L,G]),x=t.useCallback((s=A.current)=>{if(!ye||r||!q.current||(G?.current??L))return;let a=s?.plyr??s;if(a){try{let n=P?.muted;typeof n=="boolean"&&(a.muted=n);}catch{}try{let n=a?.media;n&&(n.autoplay=!0,n.setAttribute("autoplay",""),P?.muted&&(n.muted=!0,n.setAttribute("muted","")),P?.playsinline!==!1&&(n.playsInline=!0,n.setAttribute("playsinline",""),n.setAttribute("webkit-playsinline","")));}catch{}requestAnimationFrame(()=>{try{let n=a.play?.();n&&typeof n.catch=="function"&&n.catch(()=>{});}catch{}});}},[ye,r,L,G,P]),J=t.useCallback(()=>{F.current||(F.current=true,requestAnimationFrame(()=>{O(),d$2(false,()=>{requestAnimationFrame(()=>{R(f$1.current,true),pe(false),H(),x();});});}));},[O,H,d$2,x]);t.useEffect(()=>{L&&H();},[L,H]),t.useEffect(()=>{h&&(ie(A.current),R(f$1.current,false),d$2(false));},[h,d$2]),t.useEffect(()=>{r||h||!te||requestAnimationFrame(()=>{let s=T();R(f$1.current,s),d$2(!s),s&&x();});},[te,r,T,h,d$2,x]);let z=t.useRef(null),Q=t.useRef(null),D=t.useCallback(()=>{let s=Q.current;if(s){try{s.__rmgDragSwallowCleanup?.();}catch{}Q.current=null;}},[]),Ie=t.useCallback(s=>{z.current?.(),z.current=null;let a=s??null;if(A.current=a,j(a),e$1.onApi?.(a),m?.(o,a),H(a),requestAnimationFrame(()=>{let l=T(a);R(f$1.current,l),d$2(!l);}),!s){D();return}let n=s?.plyr??s;Q.current!==n&&(D(),d$1(n),Q.current=n);let y=e(E);try{if(y==="youtube"||y==="vimeo"){z.current=f(n,J,{provider:y,posterSrc:V});return}let l=n?.media;if(l){let S=()=>J();l.addEventListener("loadedmetadata",S,{once:!0}),l.addEventListener("loadeddata",S,{once:!0}),l.addEventListener("canplay",S,{once:!0}),z.current=()=>{try{l.removeEventListener("loadedmetadata",S);}catch{}try{l.removeEventListener("loadeddata",S);}catch{}try{l.removeEventListener("canplay",S);}catch{}};try{let X=l.readyState??0,B=l.videoWidth??0,p=l.videoHeight??0;(X>=1||B>0&&p>0)&&J();}catch{}}}catch{}},[D,o,J,e$1.onApi,H,m,T,j,d$2,V,E]);t.useEffect(()=>()=>{z.current?.(),z.current=null,D();},[D]),t.useLayoutEffect(()=>{R(f$1.current,false),d$2(true);},[N,v]),t.useEffect(()=>{F.current=false,requestAnimationFrame(()=>{R(f$1.current,false),d$2(true);});},[e$1.src]),t.useEffect(()=>{if(r)return;let s=b$2.current;if(!s)return;let a=oe.current??null,n=0,y=.55,l=new IntersectionObserver(([S])=>{let X=S.intersectionRatio??0,B=q.current?!!(S.isIntersecting&&X>=y):!!(S.isIntersecting&&X>=n);if(B!==q.current){if(q.current=B,B){let p=U.current;typeof p=="number"&&Number.isFinite(p)&&g&&(v?g.notifyBaseVisibleIndex(p):!le.current&&!r&&(le.current=true,g.notifyBaseVisibleIndex(p)));}if(!B){ie(A.current),F.current||R(f$1.current,false);return}if(!v){if(!C.current&&I){C.current=true,R(f$1.current,false),d$2(false),W(true);return}requestAnimationFrame(()=>{let p=T();R(f$1.current,p),d$2(false),p&&x();});return}if(!C.current&&I){C.current=true,R(f$1.current,false),d$2(true),W(true);return}requestAnimationFrame(()=>{let p=T();R(f$1.current,p),d$2(!p),p&&x();});}},{root:a,threshold:[0,y,n,1],rootMargin:"0px"});return l.observe(s),()=>l.disconnect()},[b$2,oe,I,r,T,d$2,v,g,x]),t.useEffect(()=>{if(!r&&I){if(!v){if(C.current)return;C.current=true,R(f$1.current,false),d$2(false),W(true);return}!q.current&&!ue||C.current||(C.current=true,R(f$1.current,false),d$2(true),W(true));}},[I,v,d$2,ue]);let be=[$.isCustom?a$1.spinnerWrap:a$1.spinner,k?.spinnerClassName].filter(Boolean).join(" "),ke=N?$.isCustom?jsx("div",{"data-rmg-video-spinner":true,className:be,style:k?.spinnerStyle,children:$.node}):jsx("div",{"data-rmg-video-spinner":true,className:be,style:k?.spinnerStyle}):null,ge=xe?.frameSrc??V??null,Ne=h,Ve=I&&te;return t.useLayoutEffect(()=>{let s=b$2.current;s&&_&&(s.setAttribute("data-rmg-wh",String(_)),s.dispatchEvent(new Event("loadedmetadata",{bubbles:true})));},[_]),r&&u?jsx(b$1,{canonicalIndex:o,store:u,src:e$1.src,poster:e$1.poster,source:e$1.source,sourceBuilder:e$1.sourceBuilder,options:e$1.options,className:e$1.className,style:e$1.style,lazyLoad:e$1.lazyLoad}):jsxs("div",{ref:b$2,className:["rmg__plyr__video",e$1.className].filter(Boolean).join(" "),style:{...Oe,...e$1.style||{},position:"relative",background:"transparent",overflow:"hidden"},"data-rmg-plyr":"true","data-rmg-plyr-index":String(o),"data-rmg-plyr-provider":M,children:[ke,Ne?jsx("div",{"data-rmg-video-suspended":"true","aria-hidden":"true",style:{position:"absolute",inset:0,zIndex:2,width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none",background:"#000"},children:ge?jsx("img",{src:ge,alt:"",draggable:false,decoding:"async",style:{display:"block",width:"100%",height:"100%",objectFit:"cover",objectPosition:"center",userSelect:"none",pointerEvents:"none"}}):null}):null,K?jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,zIndex:2,width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none",visibility:me?"visible":"hidden",opacity:me?1:0,transition:`opacity ${Me}ms ease`,willChange:"opacity",background:"transparent"},children:jsx("img",{src:V??"",alt:"",draggable:false,style:{display:"block",width:"100%",height:"100%",objectFit:"cover",userSelect:"none",pointerEvents:"none"}})}):null,jsx("div",{ref:f$1,className:a$1.playerWrap,style:{position:"absolute",inset:0,zIndex:1,width:"100%",height:"100%",opacity:0,transition:`opacity ${Me}ms ease`,willChange:"opacity",background:"transparent",display:h?"none":void 0,visibility:h?"hidden":void 0,pointerEvents:h?"none":"auto"},children:Ve?jsx(c,{ref:Ie,source:E,options:P}):null})]})}Ue.rmgMediaKind="video";export{Ue as a};