{"version":3,"file":"MuxLoopVideo.B-ax_cZj.mjs","names":["React.useRef","React.useState","React.useCallback"],"sources":["https:/framerusercontent.com/modules/BJpsCFrsTXAiJ6ook8E1/vE5KhL3mDvbyFfzoPywD/MuxLoopVideo.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";const HLS_URL=\"https://cdn.jsdelivr.net/npm/hls.js@1/+esm\";export default function MuxLoopVideo(props){const{playbackId,poster,radius,style}=props;const containerRef=React.useRef(null);const videoRef=React.useRef(null);const visibleRef=React.useRef(false);const[shouldLoad,setShouldLoad]=React.useState(false);const tryPlay=React.useCallback(()=>{const video=videoRef.current;if(video&&visibleRef.current){video.muted=true;video.play().catch(()=>{});}},[]);// Cargar el video poco antes de que entre al viewport\nReact.useEffect(()=>{const element=containerRef.current;if(!element)return;const observer=new IntersectionObserver(([entry])=>{if(entry.isIntersecting){setShouldLoad(true);observer.disconnect();}},{rootMargin:\"300px 0px\",threshold:0});observer.observe(element);return()=>observer.disconnect();},[]);// Reproducir solo mientras está visible\nReact.useEffect(()=>{const element=containerRef.current;const video=videoRef.current;if(!element||!video)return;const observer=new IntersectionObserver(([entry])=>{visibleRef.current=entry.isIntersecting;if(entry.isIntersecting)tryPlay();else video.pause();},{threshold:.01});observer.observe(element);return()=>observer.disconnect();},[tryPlay]);// Inicializar Mux HLS\nReact.useEffect(()=>{if(!shouldLoad||!playbackId)return;const video=videoRef.current;if(!video)return;const source=`https://stream.mux.com/${playbackId}.m3u8`;video.muted=true;video.defaultMuted=true;video.addEventListener(\"canplay\",tryPlay);let cancelled=false;let hls=null;const start=async()=>{let Hls=null;try{Hls=(await import(/* @vite-ignore */HLS_URL)).default;}catch(err){console.warn(\"[MuxLoopVideo] No se pudo cargar hls.js\",err);}if(cancelled)return;// 1) hls.js primero (Chrome, Edge, Firefox y también Safari moderno)\nif(Hls&&Hls.isSupported()){hls=new Hls({capLevelToPlayerSize:true,startLevel:-1});hls.on(Hls.Events.MANIFEST_PARSED,tryPlay);hls.on(Hls.Events.ERROR,(_event,data)=>{console.warn(\"[MuxLoopVideo] hls error\",data.type,data.details);if(!data.fatal)return;switch(data.type){case Hls.ErrorTypes.NETWORK_ERROR:hls.startLoad();break;case Hls.ErrorTypes.MEDIA_ERROR:hls.recoverMediaError();break;default:hls.destroy();hls=null;}});hls.loadSource(source);hls.attachMedia(video);return;}// 2) Respaldo: HLS nativo (Safari antiguo / iOS)\nif(video.canPlayType(\"application/vnd.apple.mpegurl\")){video.src=source;return;}console.warn(\"[MuxLoopVideo] Este navegador no soporta HLS\");};start();return()=>{cancelled=true;video.removeEventListener(\"canplay\",tryPlay);if(hls){hls.destroy();hls=null;}video.pause();video.removeAttribute(\"src\");video.load();};},[shouldLoad,playbackId,tryPlay]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...style,width:\"100%\",height:\"100%\",overflow:\"hidden\",position:\"relative\",borderRadius:radius},children:/*#__PURE__*/_jsx(\"video\",{ref:videoRef,muted:true,loop:true,playsInline:true,controls:false,preload:\"none\",poster:poster,style:{width:\"100%\",height:\"100%\",display:\"block\",objectFit:\"cover\",objectPosition:\"center\"}})});}MuxLoopVideo.defaultProps={playbackId:\"tIYGT7OXdCWNw4nKfkOmv01jc77yDthwhjT001GAuiBCs\",radius:0};addPropertyControls(MuxLoopVideo,{playbackId:{type:ControlType.String,title:\"Playback ID\"},poster:{type:ControlType.Image,title:\"Poster\"},radius:{type:ControlType.Number,title:\"Radius\",min:0,max:100,step:1,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MuxLoopVideo\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MuxLoopVideo.map"],"mappings":"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"}