{"version":3,"file":"VideoLoop.a6F_0KwE.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/LXUS3RrtBVZfpAuOqCWg/f7wl03dzuf6x881OWazZ/VideoLoop.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// Muted looping clip that shows its poster first and only plays while on screen.\n// Reduced motion, static renders and the canvas keep the poster.\nexport default function VideoLoop(props){const{src,poster,alt=\"\",position=\"50% 50%\",radius=0}=props;const isStatic=useIsStaticRenderer();const ref=useRef(null);const[ready,setReady]=useState(false);const posterUrl=poster&&poster.src?poster.src:poster;useEffect(()=>{if(isStatic||typeof window===\"undefined\"||!src)return;if(window.matchMedia&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches)return;const v=ref.current;if(!v)return;let playing=false;const check=()=>{const r=v.getBoundingClientRect(),vh=window.innerHeight||0;const on=vh>0&&r.bottom>0&&r.top<vh&&!document.hidden;if(on&&!playing){playing=true;v.play().catch(()=>{playing=false;});}else if(!on&&playing){playing=false;v.pause();}};const iv=setInterval(check,300);window.addEventListener(\"scroll\",check,{passive:true});check();return()=>{clearInterval(iv);window.removeEventListener(\"scroll\",check);v.pause();};},[isStatic,src]);const fill={position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",objectFit:\"cover\",objectPosition:position,borderRadius:radius};return /*#__PURE__*/_jsxs(\"div\",{role:\"img\",\"aria-label\":alt,style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",borderRadius:radius,background:\"transparent\",...props.style},children:[posterUrl?/*#__PURE__*/_jsx(\"img\",{src:posterUrl,alt:\"\",style:fill}):null,!isStatic&&src?/*#__PURE__*/_jsx(\"video\",{ref:ref,src:src,muted:true,loop:true,playsInline:true,preload:\"metadata\",onPlaying:()=>setReady(true),style:{...fill,opacity:ready?1:0,transition:\"opacity .4s ease\"}}):null]});}VideoLoop.displayName=\"Video Loop\";addPropertyControls(VideoLoop,{src:{type:ControlType.File,allowedFileTypes:[\"mp4\",\"webm\"]},poster:{type:ControlType.Image},alt:{type:ControlType.String,defaultValue:\"\"},position:{type:ControlType.String,defaultValue:\"50% 50%\"},radius:{type:ControlType.Number,defaultValue:0,min:0,max:40}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"VideoLoop\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./VideoLoop.map"],"mappings":"2MAEA,SAAwB,EAAU,EAAM,CAAC,GAAK,CAAC,MAAI,SAAO,MAAI,GAAG,WAAS,UAAU,SAAO,GAAG,EAAY,EAAS,EAAoB,EAAQ,EAAIA,EAAO,IAAI,EAAO,CAAC,EAAM,GAAUC,EAAS,EAAK,EAAQ,EAAU,GAAQ,EAAO,IAAI,EAAO,IAAI,EAAO,MAAc,CAAuD,GAAnD,GAAiB,IAAS,QAAa,CAAC,GAAc,EAAO,YAAY,EAAO,WAAW,kCAAkC,CAAC,CAAC,QAAQ,OAAO,IAAM,EAAE,EAAI,QAAQ,GAAG,CAAC,EAAE,OAAO,IAAI,EAAQ,GAAY,MAAU,CAAC,IAAM,EAAE,EAAE,sBAAsB,EAAE,EAAG,EAAO,aAAa,EAAQ,EAAG,EAAG,GAAG,EAAE,OAAO,GAAG,EAAE,IAAI,GAAI,CAAC,SAAS,OAAU,GAAI,CAAC,GAAS,EAAQ,GAAK,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,EAAQ,EAAM,CAAC,GAAW,CAAC,GAAI,IAAS,EAAQ,GAAM,EAAE,MAAM,EAAG,EAAQ,EAAG,YAAY,EAAM,GAAG,EAAiE,OAA/D,EAAO,iBAAiB,SAAS,EAAM,CAAC,QAAQ,EAAI,CAAC,EAAE,EAAM,MAAY,CAAC,cAAc,CAAE,EAAE,EAAO,oBAAoB,SAAS,CAAK,EAAE,EAAE,MAAM,CAAE,CAAE,EAAE,CAAC,EAAS,CAAG,CAAC,EAAE,IAAM,EAAK,CAAC,SAAS,WAAW,MAAM,EAAE,MAAM,OAAO,OAAO,OAAO,UAAU,QAAQ,eAAe,EAAS,aAAa,CAAM,EAAE,OAAoB,EAAM,MAAM,CAAC,KAAK,MAAM,aAAa,EAAI,MAAM,CAAC,SAAS,WAAW,MAAM,OAAO,OAAO,OAAO,SAAS,SAAS,aAAa,EAAO,WAAW,cAAc,GAAG,EAAM,KAAK,EAAE,SAAS,CAAC,EAAuB,EAAK,MAAM,CAAC,IAAI,EAAU,IAAI,GAAG,MAAM,CAAI,CAAC,EAAE,KAAK,CAAC,GAAU,EAAiB,EAAK,QAAQ,CAAK,MAAQ,MAAI,MAAM,GAAK,KAAK,GAAK,YAAY,GAAK,QAAQ,WAAW,cAAc,EAAS,EAAI,EAAE,MAAM,CAAC,GAAG,EAAK,QAAQ,KAAU,WAAW,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,qBAFp8C,IAA6C,IAAwE,EAEg1C,EAAU,YAAY,aAAa,EAAoB,EAAU,CAAC,IAAI,CAAC,KAAK,EAAY,KAAK,iBAAiB,CAAC,MAAM,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,EAAY,KAAK,EAAE,IAAI,CAAC,KAAK,EAAY,OAAO,aAAa,EAAE,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,aAAa,SAAS,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC"}