{"version":3,"file":"LoopVideo.BuFXU2GP.mjs","names":["React.useRef","React.useState","__esmMin","_e","de","p","c","init_jsx_runtime","init_npm_react_18_3_1","ce","init_framer_motion_DhsWWWsN","useReducedMotion","addPropertyControls","RenderTarget","init_framer_BWFVvmND","ControlType","LoopVideo","ref","wrap","reduce","isCanvas","load","setLoad","src","props","posterSrc","el","io","e","entries","v","fit","init_LoopVideo"],"sources":["https:/framerusercontent.com/modules/fohhLVgU6dbRi73noD6u/4G3lTztrD0kh1nbxpElX/LoopVideo.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useReducedMotion}from\"framer-motion\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function LoopVideo(props){const ref=React.useRef(null);const wrap=React.useRef(null);const reduce=useReducedMotion();const isCanvas=RenderTarget.current()===RenderTarget.canvas;const[load,setLoad]=React.useState(false);const src=props.video||props.videoUrl;const posterSrc=props.poster&&props.poster.src;React.useEffect(()=>{if(reduce||isCanvas||!src||props.play===false)return;const el=wrap.current;if(!el||el.offsetParent===null)return;if(typeof IntersectionObserver===\"undefined\"){setLoad(true);return;}const io=new IntersectionObserver(entries=>{const e=entries[0];if(e.isIntersecting)setLoad(true);const v=ref.current;if(!v)return;if(e.isIntersecting)v.play().catch(()=>{});else v.pause();},{rootMargin:props.eager?\"400px 0px\":\"120px 0px\"});io.observe(el);return()=>io.disconnect();},[reduce,isCanvas,src]);React.useEffect(()=>{if(load&&ref.current)ref.current.play().catch(()=>{});},[load]);const fit={position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",objectFit:\"cover\",objectPosition:props.position||\"center\"};return /*#__PURE__*/_jsxs(\"div\",{ref:wrap,role:\"img\",\"aria-label\":props.label,style:{...props.style,position:\"relative\",overflow:\"hidden\",width:\"100%\",height:\"100%\"},children:[posterSrc&&/*#__PURE__*/_jsx(\"img\",{src:posterSrc,srcSet:props.poster&&props.poster.srcSet,sizes:\"100vw\",alt:\"\",\"aria-hidden\":true,decoding:\"async\",loading:\"lazy\",style:fit}),load&&src&&props.play!==false&&/*#__PURE__*/_jsx(\"video\",{ref:ref,src:src,muted:true,loop:true,playsInline:true,autoPlay:true,preload:\"none\",poster:posterSrc,\"aria-hidden\":true,style:fit})]});}LoopVideo.defaultProps={label:\"Massage oil poured into a palm\",position:\"center\",eager:false,videoUrl:\"\",play:true};addPropertyControls(LoopVideo,{video:{type:ControlType.File,title:\"Video\",allowedFileTypes:[\"mp4\",\"webm\"]},videoUrl:{type:ControlType.String,title:\"Video URL\"},poster:{type:ControlType.ResponsiveImage,title:\"Poster\"},label:{type:ControlType.String,title:\"Alt text\"},position:{type:ControlType.String,title:\"Focus\",description:\"CSS position, e.g. center or 50% 30%\"},eager:{type:ControlType.Boolean,title:\"Near top\"},play:{type:ControlType.Boolean,title:\"Play video\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LoopVideo\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LoopVideo.map"],"mappings":"A,wPAGG,SAAwBgB,EAAU,EAAM,CAAC,IAAMC,EAAIjB,EAAa,IAAI,EAAQkB,EAAKlB,EAAa,IAAI,EAAQmB,EAAOR,EAAiB,EAAQS,EAASP,EAAa,QAAQ,IAAIA,EAAa,OAAY,CAACQ,EAAKC,GAASrB,EAAe,EAAK,EAAQsB,EAAIC,EAAM,OAAOA,EAAM,SAAeC,EAAUD,EAAM,QAAQA,EAAM,OAAO,IAAIf,MAAoB,CAAC,GAAGU,GAAQC,GAAU,CAACG,GAAKC,EAAM,OAAO,GAAM,OAAO,IAAME,EAAGR,EAAK,QAAQ,GAAG,CAACQ,GAAIA,EAAG,eAAe,KAAK,OAAO,GAAG,OAAO,qBAAuB,IAAY,CAACJ,EAAQ,EAAI,EAAE,MAAO,CAAC,IAAMK,EAAG,IAAI,qBAAqB,GAAS,CAAC,IAAMC,EAAEC,EAAQ,GAAMD,EAAE,gBAAeN,EAAQ,EAAI,EAAE,IAAMQ,EAAEb,EAAI,QAAYa,IAAYF,EAAE,eAAeE,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,EAAOA,EAAE,MAAM,EAAE,EAAE,CAAC,WAAWN,EAAM,MAAM,YAAY,WAAW,CAAC,EAAiB,OAAfG,EAAG,QAAQD,CAAE,MAAYC,EAAG,WAAW,CAAE,EAAE,CAACR,EAAOC,EAASG,CAAG,CAAC,EAAEd,MAAoB,CAAIY,GAAMJ,EAAI,SAAQA,EAAI,QAAQ,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,CAACI,CAAI,CAAC,EAAE,IAAMU,EAAI,CAAC,SAAS,WAAW,MAAM,EAAE,MAAM,OAAO,OAAO,OAAO,UAAU,QAAQ,eAAeP,EAAM,UAAU,QAAQ,EAAE,MAAoB,gBAAM,MAAM,CAAC,IAAIN,EAAK,KAAK,MAAM,aAAaM,EAAM,MAAM,MAAM,CAAC,GAAGA,EAAM,MAAM,SAAS,WAAW,SAAS,SAAS,MAAM,OAAO,OAAO,MAAM,EAAE,SAAS,CAACC,GAAwB,gBAAK,MAAM,CAAC,IAAIA,EAAU,OAAOD,EAAM,QAAQA,EAAM,OAAO,OAAO,MAAM,QAAQ,IAAI,GAAG,cAAc,GAAK,SAAS,QAAQ,QAAQ,OAAO,MAAMO,CAAG,CAAC,EAAEV,GAAME,GAAKC,EAAM,OAAO,IAAoB,gBAAK,QAAQ,CAAK,MAAQ,MAAI,MAAM,GAAK,KAAK,GAAK,YAAY,GAAK,SAAS,GAAK,QAAQ,OAAO,OAAOC,EAAU,cAAc,GAAK,MAAMM,CAAG,CAAC,CAAC,CAAC,CAAC,CAAE,C,8CAAC,EAAU,aAAa,CAAC,MAAM,iCAAiC,SAAS,SAAS,MAAM,GAAM,SAAS,GAAG,KAAK,EAAI,EAAEnB,EAAoBI,EAAU,CAAC,MAAM,CAAC,KAAKD,EAAY,KAAK,MAAM,QAAQ,iBAAiB,CAAC,MAAM,MAAM,CAAC,EAAE,SAAS,CAAC,KAAKA,EAAY,OAAO,MAAM,WAAW,EAAE,OAAO,CAAC,KAAKA,EAAY,gBAAgB,MAAM,QAAQ,EAAE,MAAM,CAAC,KAAKA,EAAY,OAAO,MAAM,UAAU,EAAE,SAAS,CAAC,KAAKA,EAAY,OAAO,MAAM,QAAQ,YAAY,sCAAsC,EAAE,MAAM,CAAC,KAAKA,EAAY,QAAQ,MAAM,UAAU,EAAE,KAAK,CAAC,KAAKA,EAAY,QAAQ,MAAM,YAAY,CAAC,CAAC,C"}