{"version":3,"file":"ReadMore.IiMrALTP.mjs","names":["useState","useRef","useCallback","useRef","useState","useMemo","useCallback","_Fragment","React.useState","React.useRef","React.useId","__esmMin","ne","init_ssg_sandbox_shims","init_npm_react_18_3_1","window","pe","ie","ce","c","p","_e","de","motion","AnimatePresence","init_framer_motion_DhsWWWsN","init_framer_D6uXRwWs","addPropertyControls","ControlType","useVideoStore","init_VidStore_UIeQ","ModalTrigger","hasBeenTriggered","setHasBeenTriggered","triggerRef","stateRef","_setHasBeenTriggered","newState","showModal","simulateClick","node","triggerOnMouseOut","e","triggerNode","showOnMouseLeave","delayConfig","delay","preventTriggers","button","scrollConfig","initialYCoordBottomOfViewport","body","scrollListener","scrollPositionOfBottomOfViewport","triggerPoint","init_Modal_Trigger","init_jsx_runtime","SegmentedChapterTimeline","ref","hover","setHover","dragging","setDragging","clamp","min","max","n","normalizedChapters","chapters","chapter","pct","effectiveDuration","duration","sec","segments","sorted","a","b","starts","segs","i","start","end","title","seekFromClientX","el","rect","onSeek","clientX","handlePointerDown","handlePointerMove","x","t","idx","handlePointerUp","height","progress","hoverHeight","widthPct","s","playedPctWithin","isHover","segmentGap","bg","radius","color","CustomVideoPlayer","state","setState","props","videoStore","setVideoStore","isDragging","setIsDragging","pipSupported","setPipSupported","isVimeoReady","setIsVimeoReady","hasAudio","setHasAudio","vimeoPlayer","preloadVideoRef","refs","controlsRef","clickLock","canvasRef","glowColor","setGlowColor","isBlobUrl","u","canSample","setCanSample","isMediaUrl","usingVideoForUrl","usingVideoTag","cornerRadius","glowEnabled","glowIntensity","glowBlur","glowSpread","iframeRef","youtubePlayer","progressInterval","getCurrentVideoSource","source","currentIndex","getTotalVideos","total","advanceToNextVideo","prev","totalVideos","nextIndex","handleVideoEnded","handleVideoError","error","hexToRgba","hex","fallbackGlowColor","parts","effectiveGlowColor","mediaBoxShadow","cont","cs","video","loadVimeoAPI","initializeVimeoPlayer","script","data","observer","entry","thumbSize","style","styleElement","styles","currentSource","objectURL","domain","res","blob","err","timer","nextSource","expectedSource","matches","videos","index","canvas","ctx","tryProbe","handlePlay","handleEnteredPiP","formatTime","seconds","handleTimeUpdate","currentTime","handleLoadedData","showPlayPauseFeedback","icon","handlePlayPause","isPaused","player","YTState","code","message","safeToggle","handleMute","muted","volume","toggleFullscreen","container","handleKeyDown","skipBackTime","skipForwardTime","newVolumeUp","newVolumeDown","endTime","percentage","seekTime","handleFullscreenChange","handleEscKey","event","getYoutubeId","value","input","url","host","queryId","typeIndex","part","getVideoSource","sourceType","ytOrigin","vimeoMuted","tag","playing","key","isMuted","handleYoutubeMessage","handleContainerKeydown","handleProgressChange","newTime","handleProgressEnd","handleVolumeChange","newVolume","handleSpeedChange","newSpeed","togglePictureInPicture","showSpeedControl","controlsVisible","showChapterTimeline","shouldShowOverlay","handleContainerClickCapture","target","inControls","closestInteractive","isInteractive","inPlayOverlay","markUserInteracted","intervalId","extract","d","col","stop","onPlay","onPause","onEnded","onLoaded","activeIndex","time","v","audioDetected","speed","init_FlowPlay_Custom_Videos","ReadMore","exampleText","bodyFont","labelFont","expanded","setExpanded","defaultExpanded","overflows","setOverflows","rootRef","measureRef","contentId","lineLimit","lines","text","root","measureElement","active","measure","font","textStyle","clampStyle","buttonFont","toggleColor","lessLabel","moreLabel","showArrow","init_ReadMore"],"sources":["https:/framerusercontent.com/modules/gzlOp32jiotI41qoKAWR/ywWcjLixWUOKtCQdWR5F/Modal_Trigger.js","https:/framerusercontent.com/modules/rbIP0nrQUQIgfhZQMLFm/ftjQyHob55uOcff9kehN/FlowPlay_Custom_Videos.js","https:/framerusercontent.com/modules/wpBi9loz4X10RYWe8jJA/TQMw7cksEzoWhJCV5ycP/ReadMore.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useCallback,useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerIntrinsicHeight 0\n * @framerIntrinsicWidth 0\n */export default function ModalTrigger({showOnMouseLeave,delayConfig,scrollConfig}){const[hasBeenTriggered,setHasBeenTriggered]=useState(false);const triggerRef=useRef(null);// Event listeners added in the effect call don't have access to state\n// updates, so we'll use a ref and set both ref.current and state\n// in _setHasBeenTriggered.\nconst stateRef=useRef(hasBeenTriggered);const _setHasBeenTriggered=newState=>{stateRef.current=newState;setHasBeenTriggered(newState);};const showModal=useCallback(node=>{if(stateRef.current)return;simulateClick(node);_setHasBeenTriggered(true);},[]);const triggerOnMouseOut=useCallback(node=>e=>{// You can remove conditions if you'd prefer that the pop-up isn't\n    // triggered by the mouse leaving certain edges of the viewport.\n    if(// Top\n    e.clientY<=0||// Left\n    e.clientX<=0||// Right\n    e.clientX>=window.innerWidth||// Bottom\n    e.clientY>=window.innerHeight){showModal(node);}},[showModal]);// Listen for mouse leaving the viewport if showOnMouseLeave is true\nuseEffect(()=>{const triggerNode=triggerRef.current;if(triggerNode){if(showOnMouseLeave){window.addEventListener(\"mouseout\",triggerOnMouseOut(triggerNode));return()=>window.removeEventListener(\"mouseout\",triggerOnMouseOut(triggerNode));}}return;},[triggerOnMouseOut,showOnMouseLeave,showModal]);// Initialize a timer if showOnDelay is true\nuseEffect(()=>{const triggerNode=triggerRef.current;if(triggerNode){if(delayConfig.showOnDelay){const delay=setTimeout(()=>showModal(triggerNode),delayConfig.delaySeconds*1e3);return()=>clearTimeout(delay);}}return;},[delayConfig.showOnDelay,delayConfig.delaySeconds,showModal]);// Listen for clicks on the button and disable our triggers\n// if the button has been clicked\nuseEffect(()=>{const triggerNode=triggerRef.current;if(triggerNode){var _triggerNode_parentElement;const preventTriggers=()=>_setHasBeenTriggered(true);const button=(_triggerNode_parentElement=triggerNode.parentElement)===null||_triggerNode_parentElement===void 0?void 0:_triggerNode_parentElement.parentElement;if(button){button.addEventListener(\"keyup\",preventTriggers);button.addEventListener(\"mouseup\",preventTriggers);return()=>{window.removeEventListener(\"keyup\",preventTriggers);window.removeEventListener(\"mouseup\",preventTriggers);};}}return;},[]);// Listen for scroll if showOnScrollToPercentage is true\nuseEffect(()=>{if(scrollConfig.showOnScrollToPercentage){const initialYCoordBottomOfViewport=window.scrollY+window.innerHeight;const triggerNode=triggerRef.current;const body=document.querySelector(\"body\");if(triggerNode&&body){const scrollListener=()=>{const scrollPositionOfBottomOfViewport=window.scrollY+window.innerHeight;const triggerPoint=body.scrollHeight*scrollConfig.scrollPercentage/100;if(scrollPositionOfBottomOfViewport>=triggerPoint&&// Don't trigger if the user started below the trigger point\n// (this could happen after a refresh)\ninitialYCoordBottomOfViewport<triggerPoint){showModal(triggerNode);}};window.addEventListener(\"scroll\",scrollListener);return()=>window.removeEventListener(\"scroll\",scrollListener);}}return;},[scrollConfig.showOnScrollToPercentage,scrollConfig.scrollPercentage,showModal]);// It would be nice to aria-hide the container that Framer\n// wraps this in, but that would only be possible on the canvas\n// and it's not!\nreturn /*#__PURE__*/_jsx(\"div\",{ref:triggerRef,\"aria-hidden\":\"true\"});}// If this component breaks, it could be because Framer has decided to not wrap\n// code components in containers anymore. If that's the case, access\n// node.parentElement instead of node.parentElement.parentElement\nconst simulateClick=node=>{var _node_parentElement;if((_node_parentElement=node.parentElement)===null||_node_parentElement===void 0?void 0:_node_parentElement.parentElement){const button=node.parentElement.parentElement;button.dispatchEvent(new FocusEvent(\"focus\"));button.dispatchEvent(new KeyboardEvent(\"keydown\",{key:\"Enter\"}));button.dispatchEvent(new KeyboardEvent(\"keyup\",{key:\"Enter\"}));}};addPropertyControls(ModalTrigger,{showOnMouseLeave:{type:ControlType.Boolean,title:\"MouseLeave\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},delayConfig:{type:ControlType.Object,title:\"Delay\",buttonTitle:\"Configure\",controls:{showOnDelay:{type:ControlType.Boolean,title:\"Trigger\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},delaySeconds:{type:ControlType.Number,title:\"Seconds\",defaultValue:10,min:0,max:300,step:5,displayStepper:true,unit:\" s\"}}},scrollConfig:{type:ControlType.Object,title:\"Scroll\",buttonTitle:\"Configure\",controls:{showOnScrollToPercentage:{type:ControlType.Boolean,title:\"Trigger\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},scrollPercentage:{type:ControlType.Number,title:\"Scroll %\",defaultValue:50,min:0,max:100,step:1,displayStepper:true,unit:\" %\"}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ModalTrigger\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"0\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"0\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Modal_Trigger.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useRef,useEffect,useMemo,useCallback,cloneElement,isValidElement}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{motion,AnimatePresence}from\"framer-motion\";import{useVideoStore}from\"https://framer.com/m/VidStore-UIeQ.js@qErBa8F3a3y8M7HDVLe9\";/**\n * FramePlay\n * By Dan Marek\n *\n * @framerDisableUnlink\n *\n */// ==============================\n// SegmentedChapterTimeline.tsx\n// ==============================\n/**\n * @typedef {Object} Chapter\n * @property {string} title\n * @property {number} [start] - backwards compatibility\n * @property {number} [minutes]\n * @property {number} [seconds]\n *//**\n * @param {Object} props\n * @param {number} props.duration\n * @param {number} props.progress\n * @param {Chapter[]} props.chapters\n * @param {function(number): void} props.onSeek\n * @param {string} [props.color=\"#FF0000\"]\n * @param {string} [props.bg=\"rgba(255,255,255,0.18)\"]\n * @param {number} [props.height=6]\n * @param {number} [props.radius=999]\n * @param {number} [props.hoverHeight=10] - height ONLY on hover (px)\n * @param {number} [props.segmentGap=1] - gap between segments (px)\n */function SegmentedChapterTimeline({duration,progress,chapters,onSeek,color=\"#FF0000\",bg=\"rgba(255,255,255,0.18)\",height=6,radius=999,hoverHeight=10,segmentGap=1}){const ref=useRef(null);const[hover,setHover]=useState(null);const[dragging,setDragging]=useState(false);const clamp=(n,min,max)=>Math.max(min,Math.min(max,n));// Convert chapters to have consistent start times in seconds\nconst normalizedChapters=useMemo(()=>{return chapters.map(chapter=>({...chapter,start:chapter.start??(chapter.minutes??0)*60+(chapter.seconds??0)}));},[chapters]);const pct=sec=>{const effectiveDuration=duration>0?duration:normalizedChapters.length>0?Math.max(...normalizedChapters.map(c=>c.start))+60:0;return effectiveDuration?sec/effectiveDuration*100:0;};// Build contiguous segments from chapter starts\nconst segments=useMemo(()=>{// For YouTube, use the last chapter's start time + 60 seconds as fallback duration\nconst effectiveDuration=duration>0?duration:normalizedChapters.length>0?Math.max(...normalizedChapters.map(c=>c.start))+60:0;if(!effectiveDuration||effectiveDuration<=0)return[];const sorted=[...normalizedChapters].filter(c=>c.start<effectiveDuration).sort((a,b)=>a.start-b.start);const starts=sorted.map(c=>c.start);if(starts[0]!==0)starts.unshift(0);if(starts[starts.length-1]!==effectiveDuration)starts.push(effectiveDuration);const segs=[];for(let i=0;i<starts.length-1;i++){const start=starts[i];const end=starts[i+1];const title=sorted.find(c=>c.start===start)?.title??`Chapter ${i+1}`;segs.push({start,end,title});}return segs;},[normalizedChapters,duration]);const seekFromClientX=clientX=>{const el=ref.current;const effectiveDuration=duration>0?duration:normalizedChapters.length>0?Math.max(...normalizedChapters.map(c=>c.start))+60:0;if(!el||!effectiveDuration)return;const rect=el.getBoundingClientRect();const rel=clamp(clientX-rect.left,0,rect.width);const t=rel/rect.width*effectiveDuration;onSeek(t);};const handlePointerDown=e=>{e.target.setPointerCapture?.(e.pointerId);setDragging(true);seekFromClientX(e.clientX);};const handlePointerMove=e=>{const effectiveDuration=duration>0?duration:normalizedChapters.length>0?Math.max(...normalizedChapters.map(c=>c.start))+60:0;if(!ref.current||!effectiveDuration)return;const rect=ref.current.getBoundingClientRect();const x=clamp(e.clientX-rect.left,0,rect.width);const t=x/rect.width*effectiveDuration;// More robust segment finding\nlet idx=-1;for(let i=0;i<segments.length;i++){if(t>=segments[i].start&&(t<segments[i].end||i===segments.length-1&&t<=segments[i].end)){idx=i;break;}}// If still not found, find the closest segment\nif(idx===-1&&segments.length>0){idx=0;for(let i=1;i<segments.length;i++){if(Math.abs(t-segments[i].start)<Math.abs(t-segments[idx].start)){idx=i;}}}if(idx>=0){setHover({x,idx});}if(dragging)seekFromClientX(e.clientX);};const handlePointerUp=()=>setDragging(false);return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\"},children:[hover&&segments[hover.idx]&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:hover.x,bottom:height+12,transform:\"translateX(-50%)\",background:\"rgba(28,28,30,0.92)\",color:\"#fff\",fontSize:12,padding:\"6px 8px\",borderRadius:8,border:\"1px solid rgba(255,255,255,0.15)\",whiteSpace:\"nowrap\",pointerEvents:\"none\",zIndex:2},children:segments[hover.idx].title}),/*#__PURE__*/_jsx(\"div\",{ref:ref,role:\"slider\",\"aria-valuemin\":0,\"aria-valuemax\":Math.floor(duration>0?duration:normalizedChapters.length>0?Math.max(...normalizedChapters.map(c=>c.start))+60:0),\"aria-valuenow\":Math.floor(progress||0),tabIndex:0,onPointerDown:handlePointerDown,onPointerMove:handlePointerMove,onPointerUp:handlePointerUp,onPointerCancel:handlePointerUp,onPointerLeave:()=>setHover(null),onKeyDown:e=>{const effectiveDuration=duration>0?duration:normalizedChapters.length>0?Math.max(...normalizedChapters.map(c=>c.start))+60:0;if(!effectiveDuration)return;if(e.key===\"ArrowLeft\")onSeek(Math.max(0,progress-5));if(e.key===\"ArrowRight\")onSeek(Math.min(effectiveDuration,progress+5));if(e.key===\"Home\")onSeek(0);if(e.key===\"End\")onSeek(effectiveDuration);},style:{position:\"relative\",width:\"100%\",height:hover?hoverHeight:height,cursor:\"pointer\",userSelect:\"none\",touchAction:\"none\",outline:\"none\",transition:\"height 120ms ease\",display:\"flex\"},children:segments.map((s,i)=>{const widthPct=`${pct(s.end-s.start)}%`;const playedPctWithin=progress<=s.start?0:progress>=s.end?100:(progress-s.start)/(s.end-s.start)*100;// Direct hover detection - no reversal needed\nconst isHover=hover?.idx===i;return /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:widthPct,height:\"100%\",paddingLeft:i>0?`${segmentGap}px`:\"0\"},onClick:e=>{const el=e.currentTarget;const rect=el.getBoundingClientRect();const x=clamp(e.clientX-rect.left,0,rect.width);const t=s.start+x/rect.width*(s.end-s.start);onSeek(t);},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:i>0?`${segmentGap}px`:\"0\",right:0,top:\"50%\",transform:`translateY(-50%)`,height:isHover?hoverHeight:height,background:bg,borderRadius:radius,overflow:\"hidden\",transition:\"height 120ms ease\"},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:0,top:0,bottom:0,width:`${playedPctWithin}%`,background:color,transition:dragging?\"none\":\"width 80ms linear\"}})})},i);})})]});}export default function CustomVideoPlayer(props){// State Management\nconst[state,setState]=useState({isPlaying:false,isInView:false,userInteracted:false,hasPlayedOnce:false,muted:props.defaultSettings?.muted||false,speed:props.defaultSettings?.speed||1,volume:props.defaultSettings?.volume||1,progress:0,duration:0,fileUrl:null,hovering:false,fullscreen:false,loading:true,isPiP:false,loop:props.loop||false,currentVideoIndex:0,totalVideos:1,isPlaylistComplete:false,volumeHover:false,showPlayPauseFeedback:false,feedbackIcon:null,isTransitioning:false});// Add store hook for chapter sync\nconst[videoStore,setVideoStore]=useVideoStore();const[isDragging,setIsDragging]=useState(false);const[pipSupported,setPipSupported]=useState(false);const[isVimeoReady,setIsVimeoReady]=useState(false);const[hasAudio,setHasAudio]=useState(true)// Assume true until we can detect\n;const vimeoPlayer=useRef(null);const preloadVideoRef=useRef(null)// For preloading next video\n;const refs={video:useRef(null),container:useRef(null)};const controlsRef=useRef(null);const clickLock=useRef(false);// --- Glow refs/state + helpers ---\nconst canvasRef=useRef(null);const[glowColor,setGlowColor]=useState(\"rgba(100,100,100,0.3)\");const isBlobUrl=u=>typeof u===\"string\"&&u.startsWith(\"blob:\");const[canSample,setCanSample]=useState(false);const isMediaUrl=u=>typeof u===\"string\"&&(u.startsWith(\"blob:\")||u.startsWith(\"data:video/\")||/\\.(mp4|webm|ogg)(\\?.*)?$/i.test(u||\"\"));const usingVideoForUrl=props.sourceType===\"url\"&&isMediaUrl(props.videoUrl);const usingVideoTag=props.sourceType===\"file\"||usingVideoForUrl;const cornerRadius=props.style?.cornerRadius||0;const glowEnabled=!!props.glow?.enabled;const glowIntensity=props.glow?.intensity??.6;const glowBlur=props.glow?.blur??50;const glowSpread=props.glow?.spread??20;// Move iframeRef here (before it's used)\nconst iframeRef=useRef(null);const youtubePlayer=useRef(null);const progressInterval=useRef(null);// MOVE PLAYLIST HELPER FUNCTIONS HERE - Before any effects that use them\n// Get current video source with detailed logging\nconst getCurrentVideoSource=useCallback(()=>{console.log(\"[Playlist Debug] getCurrentVideoSource called\");console.log(\"[Playlist Debug] Mode:\",props.mode);console.log(\"[Playlist Debug] Source type:\",props.sourceType);console.log(\"[Playlist Debug] Current index:\",state.currentVideoIndex);let source=null;if(props.mode===\"single\"){console.log(\"[Playlist Debug] Single mode - using direct props\");switch(props.sourceType){case\"file\":source=props.videoFile;break;case\"url\":source=props.videoUrl;break;case\"youtube\":source=props.youtubeId;break;case\"vimeo\":source=props.vimeoId;break;default:source=props.videoFile;}}else{console.log(\"[Playlist Debug] Multiple mode - using array props\");const currentIndex=state.currentVideoIndex;console.log(\"[Playlist Debug] Array lengths:\",{videoFiles:props.videoFiles?.length||0,videoUrls:props.videoUrls?.length||0,youtubeIds:props.youtubeIds?.length||0,vimeoIds:props.vimeoIds?.length||0});switch(props.sourceType){case\"file\":source=props.videoFiles?.[currentIndex];console.log(\"[Playlist Debug] File source at index\",currentIndex,\":\",source);break;case\"url\":source=props.videoUrls?.[currentIndex];console.log(\"[Playlist Debug] URL source at index\",currentIndex,\":\",source);break;case\"youtube\":source=props.youtubeIds?.[currentIndex];console.log(\"[Playlist Debug] YouTube source at index\",currentIndex,\":\",source);break;case\"vimeo\":source=props.vimeoIds?.[currentIndex];console.log(\"[Playlist Debug] Vimeo source at index\",currentIndex,\":\",source);break;default:console.warn(\"[Playlist Debug] Unknown source type:\",props.sourceType);source=null;}}console.log(\"[Playlist Debug] Final source:\",source);return source;},[props.mode,props.sourceType,state.currentVideoIndex,props.videoFile,props.videoUrl,props.youtubeId,props.vimeoId,props.videoFiles,props.videoUrls,props.youtubeIds,props.vimeoIds]);// Get total number of videos in current mode\nconst getTotalVideos=useCallback(()=>{console.log(\"[Playlist Debug] getTotalVideos called\");console.log(\"[Playlist Debug] Mode:\",props.mode);console.log(\"[Playlist Debug] Source type:\",props.sourceType);if(props.mode===\"single\"){console.log(\"[Playlist Debug] Single mode - returning 1\");return 1;}let total=0;switch(props.sourceType){case\"file\":total=props.videoFiles?.length||0;console.log(\"[Playlist Debug] File mode - total videos:\",total,\"| array:\",props.videoFiles);break;case\"url\":total=props.videoUrls?.length||0;console.log(\"[Playlist Debug] URL mode - total videos:\",total,\"| array:\",props.videoUrls);break;case\"youtube\":total=props.youtubeIds?.length||0;console.log(\"[Playlist Debug] YouTube mode - total videos:\",total,\"| array:\",props.youtubeIds);break;case\"vimeo\":total=props.vimeoIds?.length||0;console.log(\"[Playlist Debug] Vimeo mode - total videos:\",total,\"| array:\",props.vimeoIds);break;default:console.warn(\"[Playlist Debug] Unknown source type:\",props.sourceType);total=0;}console.log(\"[Playlist Debug] Final total videos:\",total);return total;},[props.mode,props.sourceType,props.videoFiles,props.videoUrls,props.youtubeIds,props.vimeoIds]);// Advance to next video in playlist\nconst advanceToNextVideo=useCallback(()=>{console.log(\"[Playlist Debug] advanceToNextVideo() called\");console.log(\"[Playlist Debug] Current state:\",{currentVideoIndex:state.currentVideoIndex,isPlaying:state.isPlaying,mode:props.mode,sourceType:props.sourceType,loop:props.loop});// Start fade-out transition\nsetState(prev=>({...prev,isTransitioning:true}));// Wait for fade-out animation before switching videos\nsetTimeout(()=>{const totalVideos=getTotalVideos();const nextIndex=state.currentVideoIndex+1;console.log(\"[Playlist Debug] Video counts:\",{totalVideos,currentIndex:state.currentVideoIndex,nextIndex,willAdvance:nextIndex<totalVideos});if(nextIndex>=totalVideos){// End of playlist\nconsole.log(\"[Playlist Debug] End of playlist reached\");if(props.loop){// Loop entire playlist - restart from beginning and continue playing\nconsole.log(\"[Playlist Debug] Looping playlist - restarting from beginning\");setState(prev=>({...prev,currentVideoIndex:0,progress:0,isPlaylistComplete:false,isPlaying:true,hasPlayedOnce:true,isTransitioning:false}));// Auto-play will be handled by the useEffect hook\n}else{// No loop - reset to first video but stay paused\nconsole.log(\"[Playlist Debug] Playlist complete - resetting to first video (paused)\");setState(prev=>({...prev,currentVideoIndex:0,progress:0,isPlaying:false,isPlaylistComplete:true,isTransitioning:false}));}}else{// Move to next video and continue playing\nconsole.log(`[Playlist Debug] Advancing to video ${nextIndex+1}/${totalVideos}`);setState(prev=>({...prev,currentVideoIndex:nextIndex,progress:0,duration:0,isPlaying:true,isPlaylistComplete:false,hasPlayedOnce:true,isTransitioning:false}));// Auto-play will be handled by the useEffect hook\n}},150)// 150ms fade-out duration\n;},[state.currentVideoIndex,getTotalVideos,props.loop,props.sourceType]);// Video end event handlers with enhanced logging\nconst handleVideoEnded=useCallback(()=>{console.log(\"[Playlist Debug] handleVideoEnded called\");console.log(\"[Playlist Debug] Current mode:\",props.mode);console.log(\"[Playlist Debug] Current video index:\",state.currentVideoIndex);advanceToNextVideo();},[advanceToNextVideo,props.mode,state.currentVideoIndex]);const handleVideoError=useCallback(error=>{console.warn(\"[Playlist Debug] handleVideoError called:\",error);console.log(\"[Playlist Debug] Current video index:\",state.currentVideoIndex);console.log(\"[Playlist Debug] Will skip to next video\");advanceToNextVideo()// Skip to next video on error\n;},[advanceToNextVideo,state.currentVideoIndex]);const hexToRgba=(hex,a=1)=>{if(!hex)return`rgba(0,0,0,${a})`;let c=hex.replace(\"#\",\"\");if(c.length===3)c=c.split(\"\").map(x=>x+x).join(\"\");const n=parseInt(c,16);const r=n>>16&255,g=n>>8&255,b=n&255;return`rgba(${r}, ${g}, ${b}, ${a})`;};const withAlpha=(color,a=1)=>{if(!color)return`rgba(0,0,0,${a})`;if(color.startsWith(\"#\"))return hexToRgba(color,a);if(color.startsWith(\"rgba(\")){const parts=color.slice(5,-1).split(\",\").map(s=>s.trim());return`rgba(${parts[0]}, ${parts[1]}, ${parts[2]}, ${a})`;}if(color.startsWith(\"rgb(\")){return`rgba(${color.slice(4,-1)}, ${a})`;}return color;};const fallbackGlowBase=props.controlsStyle?.progressColor||\"#FF0000\";const fallbackGlowColor=withAlpha(fallbackGlowBase,glowIntensity);// File = sampled glow; others = fallback color\nconst effectiveGlowColor=usingVideoTag&&canSample?glowColor:fallbackGlowColor;const mediaBoxShadow=glowEnabled?`0 0 ${glowBlur}px ${glowSpread}px ${effectiveGlowColor}`:\"none\";useEffect(()=>{console.log(\"[Glow] props.glow =\",props.glow);console.log(\"[Glow] glowEnabled =\",glowEnabled,\"| intensity =\",glowIntensity,\"| blur =\",glowBlur,\"| spread =\",glowSpread);console.log(\"[Glow] effectiveGlowColor =\",effectiveGlowColor);console.log(\"[Glow] mediaBoxShadow =\",mediaBoxShadow);},[props.glow,glowEnabled,glowIntensity,glowBlur,glowSpread,effectiveGlowColor,mediaBoxShadow]);useEffect(()=>{const cont=refs.container.current;if(!cont)return;const cs=window.getComputedStyle(cont);console.log(\"[Glow] container overflow =\",cs.overflow,\"| glowEnabled =\",glowEnabled);},[glowEnabled]);useEffect(()=>{console.log(\"[Glow] glowColor updated =\",glowColor);},[glowColor]);useEffect(()=>{if(!glowEnabled)return;const el=usingVideoTag?refs.video.current:iframeRef.current;if(!el){console.log(\"[Glow] no media element for computedStyle check\");return;}const cs=window.getComputedStyle(el);console.log(\"[Glow] computed boxShadow =\",cs.boxShadow);},[glowEnabled,mediaBoxShadow,usingVideoTag]);useEffect(()=>{const video=refs.video.current;if(video&&props.mode===\"single\"){// Only apply to single mode\nconsole.log(\"Loop effect triggered, props.loop:\",props.loop);video.loop=props.loop;console.log(\"Video loop property set to:\",video.loop);setState(prev=>({...prev,loop:props.loop}));}else if(video&&props.mode===\"multiple\"){// Ensure loop is always false in multiple mode\nvideo.loop=false;console.log(\"Multiple mode: Video loop forced to false\");}},[props.loop,props.mode]);useEffect(()=>{if(props.sourceType!==\"vimeo\"||!iframeRef.current)return;function loadVimeoAPI(){if(window.Vimeo){initializeVimeoPlayer();}else if(!document.querySelector(\"#vimeo-player-script\")){const script=document.createElement(\"script\");script.id=\"vimeo-player-script\";script.src=\"https://player.vimeo.com/api/player.js\";script.async=true;script.onload=initializeVimeoPlayer;document.body.appendChild(script);}}function initializeVimeoPlayer(){if(!iframeRef.current||!window.Vimeo)return;vimeoPlayer.current=new window.Vimeo.Player(iframeRef.current);vimeoPlayer.current.on(\"play\",()=>setState(prev=>({...prev,isPlaying:true,hasPlayedOnce:true})));vimeoPlayer.current.on(\"pause\",()=>setState(prev=>({...prev,isPlaying:false})));vimeoPlayer.current.on(\"ended\",()=>{console.log(\"[Playlist Debug] Vimeo video ended\");console.log(\"[Playlist Debug] Mode:\",props.mode);console.log(\"[Playlist Debug] Current index:\",state.currentVideoIndex);if(props.mode===\"multiple\"){console.log(\"[Playlist Debug] Multiple mode - calling advanceToNextVideo\");advanceToNextVideo();}else if(props.loop){console.log(\"[Playlist Debug] Single mode with loop - replaying\");vimeoPlayer.current.play();}else{console.log(\"[Playlist Debug] Single mode without loop - ended\");}});vimeoPlayer.current.on(\"error\",error=>{console.warn(\"[Playlist Debug] Vimeo error:\",error);console.log(\"[Playlist Debug] Mode:\",props.mode);console.log(\"[Playlist Debug] Current index:\",state.currentVideoIndex);if(props.mode===\"multiple\"){console.log(\"[Playlist Debug] Multiple mode - calling advanceToNextVideo due to error\");advanceToNextVideo();}});vimeoPlayer.current.on(\"timeupdate\",data=>{setState(prev=>({...prev,progress:data.seconds,duration:data.duration}));});vimeoPlayer.current.on(\"volumechange\",data=>{setState(prev=>({...prev,volume:data.volume,muted:data.volume===0}));});// Fix for live sites: Try to unmute if autoplay is off and muted is off\nvimeoPlayer.current.on(\"loaded\",()=>{if(!props.autoPlay&&!props.defaultSettings?.muted){setTimeout(()=>{vimeoPlayer.current.setVolume(state.volume||1).catch(()=>{// Silently handle if unmuting fails due to browser policies\n});},100);}});setIsVimeoReady(true);}loadVimeoAPI();return()=>{if(vimeoPlayer.current){vimeoPlayer.current.destroy().catch(()=>{});}};},[props.sourceType,props.vimeoId,props.autoPlay,props.loop]);const controlEmbeddedVideo=action=>{if(!vimeoPlayer.current)return;const vimeoActions={play:()=>vimeoPlayer.current.play(),pause:()=>vimeoPlayer.current.pause(),mute:()=>vimeoPlayer.current.setVolume(0),unmute:()=>vimeoPlayer.current.setVolume(state.volume||1),seek:()=>vimeoPlayer.current.setCurrentTime(state.progress)};try{vimeoActions[action]?.();}catch(error){console.error(\"Vimeo control error:\",error);}};useEffect(()=>{if(!props.showControls&&props.autoPlay){const observer=new IntersectionObserver(([entry])=>{setState(prev=>({...prev,isInView:entry.isIntersecting}));},{threshold:.5});if(refs.container.current){observer.observe(refs.container.current);}return()=>{if(refs.container.current){observer.unobserve(refs.container.current);}};}},[props.showControls,props.autoPlay]);useEffect(()=>{const video=refs.video.current;if(!video)return;const attemptPlay=async()=>{try{await video.play();setState(prev=>({...prev,isPlaying:true,hasPlayedOnce:true}));}catch(error){video.muted=true// Mute to allow autoplay\n;setState(prev=>({...prev,muted:true}));await video.play();setState(prev=>({...prev,isPlaying:true,hasPlayedOnce:true}));}};if(!state.userInteracted&&props.autoPlay&&state.isInView){attemptPlay();}},[state.isInView,props.autoPlay,state.userInteracted]);useEffect(()=>{const thumbSize=props.controlsStyle?.thumbSize||12;const trackHeight=4// Adjust this if needed\n;const style=document.createElement(\"style\");style.textContent=`\n            input[type='range'] {\n                -webkit-appearance: none;\n                appearance: none;\n                width: 100%;\n                background: transparent;\n                position: relative;\n            }\n            \n            input[type='range']::-webkit-slider-runnable-track {\n                width: 100%;\n                height: ${trackHeight}px;\n                border-radius: ${trackHeight/2}px;\n                background: rgba(255, 255, 255, 0.2);\n                cursor: pointer;\n            }\n\n            input[type='range']::-webkit-slider-thumb {\n                -webkit-appearance: none;\n                appearance: none;\n                width: ${thumbSize}px;\n                height: ${thumbSize}px;\n                background-color: ${props.controlsStyle?.thumbColor||\"#FFFFFF\"};\n                border: ${props.controlsStyle?.thumbBorder||\"none\"};\n                border-radius: 50%;\n                cursor: pointer;\n                margin-top: -${(thumbSize-trackHeight)/2}px; /* Ensures proper centering */\n            }\n\n            input[type='range']::-moz-range-track {\n                width: 100%;\n                height: ${trackHeight}px;\n                border-radius: ${trackHeight/2}px;\n                background: rgba(255, 255, 255, 0.2);\n                cursor: pointer;\n            }\n\n            input[type='range']::-moz-range-thumb {\n                width: ${thumbSize}px;\n                height: ${thumbSize}px;\n                background-color: ${props.controlsStyle?.thumbColor||\"#FFFFFF\"};\n                border: ${props.controlsStyle?.thumbBorder||\"none\"};\n                border-radius: 50%;\n                cursor: pointer;\n            }\n        `;document.head.appendChild(style);return()=>document.head.removeChild(style);},[props.controlsStyle?.thumbSize,props.controlsStyle?.thumbColor,props.controlsStyle?.thumbBorder]);// Add focus styles for accessibility\nuseEffect(()=>{const focusStyles=`\n            .video-player-button:focus {\n                outline: none; /* Remove outline */\n                opacity: 1;\n            }\n            \n            .video-player-button:focus:not(:focus-visible) {\n                outline: none;\n            }\n            \n            .video-player-button:focus-visible {\n                outline: none; /* Remove outline */\n            }\n            \n            .video-player-play-button:focus {\n                outline: none; /* Remove outline */\n                transform: translate(-50%, -50%) scale(1.05);\n            }\n\n            .video-player-container:focus {\n                outline: none; /* Remove outline */\n            }\n\n            .video-player-container:focus:not(:focus-visible) {\n                outline: none;\n            }\n\n            .video-player-container:focus-visible {\n                outline: none; /* Remove outline */\n            }\n        `;const styleElement=document.createElement(\"style\");styleElement.textContent=focusStyles;document.head.appendChild(styleElement);return()=>document.head.removeChild(styleElement);},[]);// Common Styles\nconst styles={rangeInput:{WebkitAppearance:\"none\",appearance:\"none\",height:\"4px\",borderRadius:\"2px\",cursor:\"pointer\",background:\"rgba(255, 255, 255, 0.2)\",position:\"relative\",margin:0,padding:0},button:{background:\"none\",border:\"none\",minWidth:\"44px\",minHeight:\"44px\",padding:\"8px\",cursor:\"pointer\",color:props.style?.controlsColor||\"#FFF\",opacity:.9,transition:\"all 0.2s ease\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",borderRadius:\"4px\",position:\"relative\"},playButton:{background:props.buttonStyle?.playButtonBackgroundColor,borderRadius:props.buttonStyle?.playButtonBorderRadius,padding:props.buttonStyle?.playButtonSize/10,width:props.buttonStyle?.playButtonSize,height:props.buttonStyle?.playButtonSize,backdropFilter:`blur(${props.buttonStyle?.playButtonBlur}px)`,cursor:\"pointer\",border:\"none\"},controlsStyle:{position:state.fullscreen?\"fixed\":\"absolute\",bottom:\"16px\",left:\"16px\",right:\"16px\",padding:\"12px 16px\",backdropFilter:\"blur(16px)\",backgroundColor:`rgba(28, 28, 30, ${props.style?.controlsOpacity||.6})`,borderRadius:\"12px\",display:\"flex\",alignItems:\"center\",gap:\"12px\",boxShadow:\"0 4px 12px rgba(0, 0, 0, 0.1)\",border:\"1px solid rgba(255, 255, 255, 0.1)\",zIndex:\"10000\"}};// Effects\nuseEffect(()=>{setPipSupported(document.pictureInPictureEnabled||document.webkitSupportsPresentationMode&&document.webkitSupportsPresentationMode(\"picture-in-picture\"));},[]);// Video source effect (updated for playlist support)\nuseEffect(()=>{const currentSource=getCurrentVideoSource();console.log(\"[Glow] current source =\",currentSource,\"| is File =\",currentSource instanceof File);console.log(\"[Playlist Debug] Video source effect - mode:\",props.mode,\"| index:\",state.currentVideoIndex);if(currentSource instanceof File){const objectURL=URL.createObjectURL(currentSource);console.log(\"[Glow] created objectURL =\",objectURL);setState(prev=>({...prev,fileUrl:objectURL}));return()=>{console.log(\"[Glow] revoke objectURL =\",objectURL);URL.revokeObjectURL(objectURL);};}else{// Handle DIRECT URL mode similarly when it's a real media file\nif(props.sourceType===\"url\"&&isMediaUrl(currentSource)){// For CDN URLs that commonly have CORS issues, skip fetch entirely\nconst corsProblematicDomains=[\"cdn.shopify.com\",\"assets.shopifycdn.com\",\"cdn.jsdelivr.net\",\"unpkg.com\",\"amazonaws.com\",\"cloudfront.net\",\"googleusercontent.com\",\"github.io\",\"netlify.app\"];const hasCorsIssues=corsProblematicDomains.some(domain=>currentSource.includes(domain));if(hasCorsIssues){console.log(\"[Glow] (url) skipping fetch for CORS-problematic domain, using direct URL\");setState(prev=>({...prev,fileUrl:currentSource}));return;}(async()=>{try{console.log(\"[Glow] (url) trying to fetch video to blob:\",currentSource);const res=await fetch(currentSource,{mode:\"cors\"});if(!res.ok)throw new Error(`HTTP ${res.status}`);const blob=await res.blob();const objectURL=URL.createObjectURL(blob);console.log(\"[Glow] (url) fetched blob, objectURL =\",objectURL);setState(prev=>({...prev,fileUrl:objectURL}));}catch(err){console.warn(\"[Glow] (url) fetch->blob failed; using direct URL (no sampling):\",err);setState(prev=>({...prev,fileUrl:currentSource}));}})();return;}// Original file mode\nif(props.sourceType===\"file\"&&typeof currentSource===\"string\"&&currentSource){(async()=>{try{console.log(\"[Glow] trying to fetch video to blob:\",currentSource);const res=await fetch(currentSource,{mode:\"cors\"});if(!res.ok)throw new Error(`HTTP ${res.status}`);const blob=await res.blob();const objectURL=URL.createObjectURL(blob);console.log(\"[Glow] fetched blob, objectURL =\",objectURL);setState(prev=>({...prev,fileUrl:objectURL}));}catch(err){console.warn(\"[Glow] fetch->blob failed; using direct URL (no sampling):\",err);setState(prev=>({...prev,fileUrl:currentSource}));}})();}else{console.log(\"[Glow] using direct URL =\",currentSource);setState(prev=>({...prev,fileUrl:currentSource}));}}},[getCurrentVideoSource,props.sourceType,props.mode,state.currentVideoIndex])// Add dependency on current video\n;useEffect(()=>{console.log(\"[Glow] state.fileUrl set to =\",state.fileUrl);setCanSample(isBlobUrl(state.fileUrl||\"\"));console.log(\"[Glow] canSample =\",isBlobUrl(state.fileUrl||\"\"),\"| url =\",state.fileUrl);},[state.fileUrl]);// Update total videos when playlist changes\nuseEffect(()=>{const totalVideos=getTotalVideos();setState(prev=>({...prev,totalVideos,// Reset to first video if current index is out of bounds\n    currentVideoIndex:prev.currentVideoIndex>=totalVideos?0:prev.currentVideoIndex,isPlaylistComplete:false}));},[getTotalVideos]);// Auto-play when video source changes in playlist mode\nuseEffect(()=>{if(props.mode!==\"multiple\")return;// Skip on initial mount (index 0, before first play)\nif(state.currentVideoIndex===0&&!state.hasPlayedOnce)return;const shouldAutoPlay=state.isPlaying&&!state.isPlaylistComplete;if(shouldAutoPlay){console.log(\"[Playlist Debug] Auto-play effect triggered for index:\",state.currentVideoIndex);const currentSource=getCurrentVideoSource();console.log(\"[Playlist Debug] Current source:\",currentSource);// Small delay to ensure new video is loaded\nconst timer=setTimeout(()=>{if(props.sourceType===\"youtube\"&&youtubePlayer.current){console.log(\"[Playlist Debug] Auto-playing YouTube video\");youtubePlayer.current.playVideo();}else if(props.sourceType===\"vimeo\"&&vimeoPlayer.current){console.log(\"[Playlist Debug] Auto-playing Vimeo video\");vimeoPlayer.current.play();}else if(refs.video.current){console.log(\"[Playlist Debug] Auto-playing HTML5 video\");refs.video.current.play().catch(error=>{console.warn(\"[Playlist] Auto-play on source change failed:\",error);});}},100)// Reduced delay since we're preloading videos now\n;return()=>clearTimeout(timer);}},[props.mode,state.currentVideoIndex,state.isPlaying,state.isPlaylistComplete,state.hasPlayedOnce,props.sourceType,getCurrentVideoSource]);// Preload next video in playlist for smooth transitions\nuseEffect(()=>{if(props.mode!==\"multiple\")return;if(props.sourceType!==\"file\"&&props.sourceType!==\"url\")return;const nextIndex=state.currentVideoIndex+1;const totalVideos=getTotalVideos();// Get next video source\nlet nextSource=null;if(nextIndex<totalVideos){if(props.sourceType===\"file\"){nextSource=props.videoFiles?.[nextIndex];}else if(props.sourceType===\"url\"){nextSource=props.videoUrls?.[nextIndex];}}else if(props.loop&&totalVideos>0){// If looping, preload first video\nif(props.sourceType===\"file\"){nextSource=props.videoFiles?.[0];}else if(props.sourceType===\"url\"){nextSource=props.videoUrls?.[0];}}if(nextSource){console.log(\"[Playlist Debug] Preloading next video:\",nextSource);// Create or update preload video element\nif(!preloadVideoRef.current){preloadVideoRef.current=document.createElement(\"video\");preloadVideoRef.current.style.display=\"none\";preloadVideoRef.current.preload=\"auto\";document.body.appendChild(preloadVideoRef.current);}preloadVideoRef.current.src=nextSource;preloadVideoRef.current.load();}// Cleanup\nreturn()=>{if(preloadVideoRef.current&&preloadVideoRef.current.parentNode){preloadVideoRef.current.pause();preloadVideoRef.current.src=\"\";}};},[props.mode,state.currentVideoIndex,props.sourceType,props.videoFiles,props.videoUrls,props.loop,getTotalVideos]);// Watch for state changes\nuseEffect(()=>{console.log(\"[Playlist Debug] State changed - currentVideoIndex:\",state.currentVideoIndex);console.log(\"[Playlist Debug] State changed - isPlaying:\",state.isPlaying);console.log(\"[Playlist Debug] State changed - progress:\",state.progress);console.log(\"[Playlist Debug] State changed - duration:\",state.duration);},[state.currentVideoIndex,state.isPlaying,state.progress,state.duration]);// Cleanup preload element on unmount\nuseEffect(()=>{return()=>{if(preloadVideoRef.current&&preloadVideoRef.current.parentNode){console.log(\"[Playlist Debug] Cleaning up preload video element\");preloadVideoRef.current.pause();preloadVideoRef.current.src=\"\";document.body.removeChild(preloadVideoRef.current);preloadVideoRef.current=null;}};},[]);// Watch for video source changes\nuseEffect(()=>{const currentSource=getCurrentVideoSource();console.log(\"[Playlist Debug] Video source effect triggered\");console.log(\"[Playlist Debug] Current source:\",currentSource);console.log(\"[Playlist Debug] Current video index:\",state.currentVideoIndex);// ... rest of existing video source effect logic\n},[getCurrentVideoSource,props.sourceType,state.currentVideoIndex]);// Track video src changes\nuseEffect(()=>{const video=refs.video.current;if(!video)return;console.log(\"[Playlist Debug] Video src effect - checking source\");console.log(\"[Playlist Debug] Expected source (fileUrl):\",state.fileUrl);console.log(\"[Playlist Debug] Actual video currentSrc:\",video.currentSrc);console.log(\"[Playlist Debug] Video readyState:\",video.readyState);console.log(\"[Playlist Debug] Current index:\",state.currentVideoIndex);// Check if the video source matches what we expect\nconst expectedSource=getCurrentVideoSource();if(video.currentSrc&&!video.currentSrc.includes(\"blob:\")&&expectedSource){const matches=video.currentSrc.includes(expectedSource)||typeof expectedSource===\"string\"&&expectedSource.includes(video.currentSrc);console.log(\"[Playlist Debug] Source matching check:\",{expected:expectedSource,actual:video.currentSrc,matches});}},[state.fileUrl,state.currentVideoIndex]);// Debug effect to check for multiple video elements\nuseEffect(()=>{const videos=document.querySelectorAll(\"video\");console.log(\"[Playlist Debug] Total video elements on page:\",videos.length);videos.forEach((video,index)=>{console.log(`[Playlist Debug] Video ${index}:`,{src:video.currentSrc,paused:video.paused,ended:video.ended,currentTime:video.currentTime,duration:video.duration});});},[state.currentVideoIndex]);// Probe once on load to allow sampling from CORS-enabled direct URLs\nuseEffect(()=>{if(!glowEnabled||!usingVideoTag)return;const video=refs.video.current;const canvas=canvasRef.current;if(!video||!canvas)return;const ctx=canvas.getContext(\"2d\",{willReadFrequently:true});if(!ctx)return;const tryProbe=()=>{if(video.readyState<2)return;try{canvas.width=1;canvas.height=1;ctx.drawImage(video,0,0,1,1);ctx.getImageData(0,0,1,1)// if this succeeds, we can sample\n;setCanSample(true);console.log(\"[Glow] probe success: sampling enabled (CORS OK)\");}catch(e){console.log(\"[Glow] probe failed: sampling disabled (likely CORS)\");setCanSample(isBlobUrl(state.fileUrl||\"\"))// keep blob-only if any\n;}};video.addEventListener(\"loadeddata\",tryProbe,{once:true});return()=>video.removeEventListener(\"loadeddata\",tryProbe);},[glowEnabled,usingVideoTag,state.fileUrl]);const videoStyle={width:\"100%\",height:\"100%\",objectFit:props.style?.videoFit||\"cover\",position:\"absolute\",top:0,left:0};// Ensure \"fill\" truly fills without gaps\nif(props.style?.videoFit===\"fill\"){videoStyle.width=\"100vw\"// Forces full width\n;videoStyle.height=\"100vh\"// Forces full height\n;}useEffect(()=>{const video=refs.video.current;if(!video)return;const handlePlay=()=>{setPipSupported(document.pictureInPictureEnabled);// If PiP is enabled for future use\nif(document.pictureInPictureEnabled){video.disablePictureInPicture=false;}};video.addEventListener(\"play\",handlePlay);return()=>video.removeEventListener(\"play\",handlePlay);},[]);useEffect(()=>{const observer=new IntersectionObserver(async([entry])=>{const video=refs.video.current;if(!video)return;setState(prev=>({...prev,isInView:entry.isIntersecting}));// Handle play/pause based on visibility\nif(entry.isIntersecting){if(state.isPlaying){try{await video.play();}catch(error){console.error(\"Play failed:\",error);}}// Exit PiP if active\nif(document.pictureInPictureElement){try{await document.exitPictureInPicture();}catch(error){console.error(\"Exit PiP failed:\",error);}}}else{// When out of view\nif(state.isPlaying){if(props.controls?.showPictureInPicture&&document.pictureInPictureEnabled){try{await video.requestPictureInPicture();}catch(error){console.error(\"PiP failed:\",error);// If PiP fails, pause the video\nvideo.pause();setState(prev=>({...prev,isPlaying:false}));}}else{// If PiP not enabled, just pause\nvideo.pause();setState(prev=>({...prev,isPlaying:false}));}}}},{threshold:.5}// Adjust threshold for smoother transitions\n);if(refs.container.current){observer.observe(refs.container.current);return()=>observer.disconnect();}},[state.isPlaying,props.controls?.showPictureInPicture]);// PiP change effect\nuseEffect(()=>{const video=refs.video.current;if(!video)return;const handleEnteredPiP=()=>{console.log(\"Entering PiP, setting loop to:\",props.mode===\"single\"?props.loop:false);video.loop=props.mode===\"single\"?props.loop:false;console.log(\"PiP video loop property:\",video.loop);};video.addEventListener(\"enterpictureinpicture\",handleEnteredPiP);return()=>{video.removeEventListener(\"enterpictureinpicture\",handleEnteredPiP);};},[props.loop]);// Helper Functions\nconst formatTime=seconds=>{if(!seconds)return\"0:00\";const minutes=Math.floor(seconds/60);const remainingSeconds=Math.floor(seconds%60);return`${minutes}:${remainingSeconds.toString().padStart(2,\"0\")}`;};// Event Handlers (moved up)\nconst handleTimeUpdate=()=>{if(!isDragging&&refs.video.current){const currentTime=refs.video.current.currentTime;const duration=refs.video.current.duration;// Log when we're near the end of a video\nif(duration>0&&currentTime>duration-1){console.log(\"[Playlist Debug] Video near end:\",{currentVideoIndex:state.currentVideoIndex,currentTime,duration,timeRemaining:duration-currentTime});}setState(prev=>({...prev,progress:currentTime,duration:duration}));}};const handleLoadedData=()=>{setState(prev=>({...prev,loading:false,duration:refs.video.current.duration}));};// Show play/pause feedback\nconst showPlayPauseFeedback=useCallback(icon=>{setState(prev=>({...prev,showPlayPauseFeedback:true,feedbackIcon:icon}));setTimeout(()=>{setState(prev=>({...prev,showPlayPauseFeedback:false,feedbackIcon:null}));},500)// Show for 500ms like Wistia\n;},[]);const handlePlayPause=useCallback(async()=>{console.log(\"[FramePlay] handlePlayPause() fired\",{sourceType:props.sourceType,stateIsPlaying:state.isPlaying});if(props.sourceType===\"vimeo\"&&vimeoPlayer.current){try{const isPaused=await vimeoPlayer.current.getPaused();console.log(\"[FramePlay] Vimeo current paused?\",isPaused);if(isPaused){await vimeoPlayer.current.play();console.log(\"[FramePlay] Vimeo -> play()\");setState(prev=>({...prev,isPlaying:true,hasPlayedOnce:true}));showPlayPauseFeedback(\"play\");}else{await vimeoPlayer.current.pause();console.log(\"[FramePlay] Vimeo -> pause()\");setState(prev=>({...prev,isPlaying:false}));showPlayPauseFeedback(\"pause\");}}catch(error){console.error(\"[FramePlay] Vimeo play/pause error:\",error);}}else if(props.sourceType===\"youtube\"){try{const player=youtubePlayer.current;if(player?.getPlayerState){const YTState=window.YT?.PlayerState||{};const code=player.getPlayerState();const isCurrentlyPlaying=code===YTState.PLAYING||code===YTState.BUFFERING;if(isCurrentlyPlaying){player.pauseVideo();showPlayPauseFeedback(\"pause\");}else{player.playVideo();showPlayPauseFeedback(\"play\");}// Do NOT set isPlaying here. onStateChange will update UI.\n}else if(iframeRef.current){// Fallback if API not ready yet\nconst message={event:\"command\",func:state.isPlaying?\"pauseVideo\":\"playVideo\"};iframeRef.current.contentWindow.postMessage(JSON.stringify(message),\"*\");}}catch(error){console.error(\"[FramePlay] YouTube play/pause error:\",error);}}else{const video=refs.video.current;if(!video){console.warn(\"[FramePlay] <video> ref missing\");return;}try{if(state.isPlaying){console.log(\"[FramePlay] HTML5 -> pause()\");video.pause();showPlayPauseFeedback(\"pause\");}else{console.log(\"[FramePlay] HTML5 -> play()\");await video.play();setState(prev=>({...prev,hasPlayedOnce:true}));showPlayPauseFeedback(\"play\");}}catch(err){console.error(\"[FramePlay] HTML5 play/pause error:\",err);}}},[props.sourceType,state.isPlaying,showPlayPauseFeedback]);const safeToggle=useCallback(()=>{if(clickLock.current){console.log(\"[FramePlay] safeToggle: locked, skipping\");return;}clickLock.current=true;console.log(\"[FramePlay] safeToggle: toggling\");Promise.resolve(handlePlayPause()).finally(()=>{setTimeout(()=>{clickLock.current=false;console.log(\"[FramePlay] safeToggle: unlocked\");},120)// short guard\n;});},[handlePlayPause]);const handleMute=useCallback(async()=>{if(props.sourceType===\"vimeo\"&&vimeoPlayer.current){try{const currentVolume=await vimeoPlayer.current.getVolume();if(currentVolume>0){await vimeoPlayer.current.setVolume(0);setState(prev=>({...prev,muted:true}));}else{await vimeoPlayer.current.setVolume(state.volume||1);setState(prev=>({...prev,muted:false}));}}catch(error){console.error(\"Vimeo mute/unmute error:\",error);}}else if(props.sourceType===\"youtube\"&&youtubePlayer.current){try{const currentlyMuted=youtubePlayer.current.isMuted();if(currentlyMuted)youtubePlayer.current.unMute();else youtubePlayer.current.mute();const muted=youtubePlayer.current.isMuted();const volume=youtubePlayer.current.getVolume()/100;setState(prev=>({...prev,muted,volume}));}catch(error){console.error(\"YouTube mute/unmute error:\",error);}}else if(props.sourceType===\"youtube\"&&iframeRef.current){// Fallback if YT Player instance isn't ready\ntry{const message={event:\"command\",func:state.muted?\"unMute\":\"mute\"};iframeRef.current.contentWindow.postMessage(JSON.stringify(message),\"*\");}catch(error){console.error(\"YouTube mute/unmute error:\",error);}// We'll resync on next polling tick\n}else{const video=refs.video.current;if(video)video.muted=!video.muted;setState(prev=>({...prev,muted:!prev.muted}));}},[props.sourceType,state.muted,state.volume]);const toggleFullscreen=useCallback(async()=>{const container=refs.container.current;if(!container)return;try{if(!document.fullscreenElement){await container.requestFullscreen();}else{await document.exitFullscreen();}setState(prev=>({...prev,fullscreen:!prev.fullscreen}));}catch(error){console.error(\"Fullscreen failed:\",error);}},[state.fullscreen]);// Enhanced keyboard handler with YouTube support\nconst handleKeyDown=useCallback(e=>{// Don't handle if user is typing in an input\nif(e.target.tagName===\"INPUT\"||e.target.tagName===\"TEXTAREA\"){return;}// Prevent default for these specific keys\nif([\" \",\"ArrowLeft\",\"ArrowRight\",\"ArrowUp\",\"ArrowDown\",\"KeyM\",\"KeyF\"].includes(e.code)){e.preventDefault();e.stopPropagation();}const video=refs.video.current;switch(e.code){case\"Space\":handlePlayPause();break;case\"ArrowLeft\":const skipBackTime=Math.max(0,state.progress-10);if(props.sourceType===\"youtube\"&&youtubePlayer.current?.seekTo){youtubePlayer.current.seekTo(skipBackTime,true);}else if(props.sourceType===\"vimeo\"&&vimeoPlayer.current?.setCurrentTime){vimeoPlayer.current.setCurrentTime(skipBackTime).catch(()=>{});}else if(video){video.currentTime=skipBackTime;}setState(prev=>({...prev,progress:skipBackTime}));break;case\"ArrowRight\":const skipForwardTime=Math.min(state.duration||0,state.progress+10);if(props.sourceType===\"youtube\"&&youtubePlayer.current?.seekTo){youtubePlayer.current.seekTo(skipForwardTime,true);}else if(props.sourceType===\"vimeo\"&&vimeoPlayer.current?.setCurrentTime){vimeoPlayer.current.setCurrentTime(skipForwardTime).catch(()=>{});}else if(video){video.currentTime=skipForwardTime;}setState(prev=>({...prev,progress:skipForwardTime}));break;case\"ArrowUp\":const newVolumeUp=Math.min(1,state.volume+.1);if(props.sourceType===\"youtube\"&&youtubePlayer.current){youtubePlayer.current.setVolume(Math.round(newVolumeUp*100));}else if(props.sourceType===\"vimeo\"&&vimeoPlayer.current?.setVolume){vimeoPlayer.current.setVolume(newVolumeUp).catch(()=>{});}else if(video){video.volume=newVolumeUp;}setState(prev=>({...prev,volume:newVolumeUp,muted:newVolumeUp===0}));break;case\"ArrowDown\":const newVolumeDown=Math.max(0,state.volume-.1);if(props.sourceType===\"youtube\"&&youtubePlayer.current){youtubePlayer.current.setVolume(Math.round(newVolumeDown*100));}else if(props.sourceType===\"vimeo\"&&vimeoPlayer.current?.setVolume){vimeoPlayer.current.setVolume(newVolumeDown).catch(()=>{});}else if(video){video.volume=newVolumeDown;}setState(prev=>({...prev,volume:newVolumeDown,muted:newVolumeDown===0}));break;case\"KeyM\":handleMute();break;case\"KeyF\":if(props.controls?.showFullscreen){toggleFullscreen();}break;case\"Home\":if(props.sourceType===\"youtube\"&&youtubePlayer.current?.seekTo){youtubePlayer.current.seekTo(0,true);}else if(props.sourceType===\"vimeo\"&&vimeoPlayer.current?.setCurrentTime){vimeoPlayer.current.setCurrentTime(0).catch(()=>{});}else if(video){video.currentTime=0;}setState(prev=>({...prev,progress:0}));break;case\"End\":const endTime=state.duration||0;if(props.sourceType===\"youtube\"&&youtubePlayer.current?.seekTo){youtubePlayer.current.seekTo(endTime,true);}else if(props.sourceType===\"vimeo\"&&vimeoPlayer.current?.setCurrentTime){vimeoPlayer.current.setCurrentTime(endTime).catch(()=>{});}else if(video){video.currentTime=endTime;}setState(prev=>({...prev,progress:endTime}));break;default:if(e.code>=\"Digit0\"&&e.code<=\"Digit9\"){e.preventDefault();const digit=parseInt(e.code.slice(-1));const percentage=digit/10;const seekTime=(state.duration||0)*percentage;if(props.sourceType===\"youtube\"&&youtubePlayer.current?.seekTo){youtubePlayer.current.seekTo(seekTime,true);}else if(props.sourceType===\"vimeo\"&&vimeoPlayer.current?.setCurrentTime){vimeoPlayer.current.setCurrentTime(seekTime).catch(()=>{});}else if(video){video.currentTime=seekTime;}setState(prev=>({...prev,progress:seekTime}));}break;}},[props.sourceType,state.progress,state.volume,state.duration,props.controls?.showFullscreen,handlePlayPause,handleMute,toggleFullscreen]);// Final Fix for Vimeo ESC Issue (Controls Still Showing)\nuseEffect(()=>{const handleFullscreenChange=()=>{if(!document.fullscreenElement){setState(prev=>({...prev,fullscreen:false,hovering:false}));}};const handleEscKey=event=>{if(event.key===\"Escape\"){setState(prev=>({...prev,fullscreen:false,hovering:false}));}};document.addEventListener(\"fullscreenchange\",handleFullscreenChange);document.addEventListener(\"keydown\",handleEscKey);return()=>{document.removeEventListener(\"fullscreenchange\",handleFullscreenChange);document.removeEventListener(\"keydown\",handleEscKey);};},[props.sourceType]);// Move utility functions inside\nconst getYoutubeId=value=>{if(!value)return\"\";const input=String(value).trim();// Keep supporting a plain 11-character YouTube video ID.\nif(/^[a-zA-Z0-9_-]{11}$/.test(input))return input;try{// Allow URLs pasted without http(s), too.\nconst url=new URL(/^https?:\\/\\//i.test(input)?input:`https://${input}`);const host=url.hostname.replace(/^www\\./,\"\").toLowerCase();if(host===\"youtu.be\"){return url.pathname.split(\"/\").filter(Boolean)[0]||\"\";}if(host===\"youtube.com\"||host===\"m.youtube.com\"||host===\"music.youtube.com\"||host===\"youtube-nocookie.com\"){const queryId=url.searchParams.get(\"v\");if(queryId)return queryId;// Supports /shorts/ID, /embed/ID, /live/ID and /v/ID.\nconst parts=url.pathname.split(\"/\").filter(Boolean);const typeIndex=parts.findIndex(part=>[\"shorts\",\"embed\",\"live\",\"v\"].includes(part));if(typeIndex>=0&&parts[typeIndex+1]){return parts[typeIndex+1];}}}catch{// Fall through to the regex fallback below.\n}// Fallback for unusual copied/share URLs.\nconst match=input.match(/(?:youtu\\.be\\/|youtube(?:-nocookie)?\\.com\\/(?:.*[?&]v=|shorts\\/|embed\\/|live\\/|v\\/))([a-zA-Z0-9_-]{11})/i);return match?.[1]||input;};const getVideoSource=sourceType=>{const currentSource=getCurrentVideoSource()// Use new helper\n;const origin=typeof window!==\"undefined\"?window.location.origin:\"\";switch(sourceType){case\"file\":return currentSource;case\"url\":return currentSource;case\"youtube\":const ytOrigin=typeof window!==\"undefined\"?encodeURIComponent(window.location.origin):\"\";return`https://www.youtube.com/embed/${getYoutubeId(currentSource)}?enablejsapi=1&origin=${ytOrigin}&controls=0&modestbranding=1&playsinline=1&rel=0&showinfo=0&iv_load_policy=3&cc_load_policy=0&disablekb=1&fs=1&end_screen=0&pause_screen=0&annotations=false&autoplay=${props.autoPlay?1:0}&loop=${props.mode===\"multiple\"?0:props.loop?1:0}&mute=${props.defaultSettings?.muted?1:0}`// Enable YouTube fullscreen\n;case\"vimeo\":const vimeoMuted=props.autoPlay?1:props.defaultSettings?.muted?1:0;const vimeoParams=[`autoplay=${props.autoPlay?1:0}`,`loop=${props.mode===\"multiple\"?0:props.loop?1:0}`,`muted=${vimeoMuted}`,\"fullscreen=1\",\"controls=0\",\"title=0\",\"byline=0\",\"portrait=0\",\"dnt=1\",\"background=0\",\"transparent=0\"].join(\"&\");return`https://player.vimeo.com/video/${currentSource}?${vimeoParams}`;default:return currentSource;}};const isEmbeddedVideo=sourceType=>{return sourceType===\"youtube\"||sourceType===\"vimeo\";};// Load YouTube IFrame API and initialize player\nuseEffect(()=>{if(props.sourceType===\"youtube\"&&iframeRef.current){const tag=document.createElement(\"script\");tag.src=\"https://www.youtube.com/iframe_api\";document.body.appendChild(tag);window.onYouTubeIframeAPIReady=()=>{youtubePlayer.current=new window.YT.Player(iframeRef.current,{events:{onReady:event=>{// apply desired mute first\nif(props.defaultSettings?.muted)event.target.mute();else event.target.unMute();if(props.autoPlay)event.target.playVideo();const muted=event.target.isMuted();const volume=event.target.getVolume()/100;const duration=event.target.getDuration();const code=youtubePlayer.current?.getPlayerState?.();const YTState=window.YT?.PlayerState||{};const playing=code===YTState.PLAYING||code===YTState.BUFFERING;setState(prev=>({...prev,duration,muted,volume,isPlaying:playing}));},onStateChange:event=>{const YTState=window.YT.PlayerState;const code=event.data;const playing=code===YTState.PLAYING||code===YTState.BUFFERING;console.log(\"[Playlist Debug] YouTube state change:\",{code,state:Object.keys(YTState).find(key=>YTState[key]===code),playing,mode:props.mode});// Handle video end for playlist\nif(code===YTState.ENDED){console.log(\"[Playlist Debug] YouTube video ended\");console.log(\"[Playlist Debug] Mode:\",props.mode);console.log(\"[Playlist Debug] Current index:\",state.currentVideoIndex);if(props.mode===\"multiple\"){console.log(\"[Playlist Debug] Multiple mode - calling advanceToNextVideo\");advanceToNextVideo();return;// Don't process further if advancing\n}else{console.log(\"[Playlist Debug] Single mode - normal behavior\");}}if(playing){if(!progressInterval.current){progressInterval.current=setInterval(()=>{const currentTime=youtubePlayer.current.getCurrentTime();const volume=youtubePlayer.current.getVolume()/100;const isMuted=youtubePlayer.current?.isMuted?.()??volume===0;setState(prev=>({...prev,progress:currentTime,volume,muted:isMuted}));},1e3);}}else{clearInterval(progressInterval.current);progressInterval.current=null;}setState(prev=>({...prev,isPlaying:playing,...playing?{hasPlayedOnce:true}:{}}));}}});};return()=>clearInterval(progressInterval.current);}},[props.sourceType]);// Add effect to handle changes to autoplay and loop settings\nuseEffect(()=>{if(props.sourceType===\"youtube\"&&iframeRef.current){const player=iframeRef.current;if(player.getIframe){// Check if player is initialized\n// In playlist mode, individual videos should never loop\nif(props.mode===\"multiple\"){player.setLoop(false);}else if(props.loop){player.setLoop(true);}else{player.setLoop(false);}}}},[props.loop,props.mode]);// Add a listener for YouTube's response to our mute state query\nuseEffect(()=>{if(props.sourceType===\"youtube\"){const handleYoutubeMessage=event=>{try{const data=JSON.parse(event.data);if(data.event===\"onMuteStateChange\"){setState(prev=>({...prev,muted:data.muted}));}}catch(error){// Ignore parse errors from other messages\n}};window.addEventListener(\"message\",handleYoutubeMessage);return()=>window.removeEventListener(\"message\",handleYoutubeMessage);}},[props.sourceType]);// Enhanced effect for YouTube keyboard control integration\nuseEffect(()=>{if(props.sourceType===\"youtube\"&&iframeRef.current){const iframe=iframeRef.current;const container=refs.container.current;// Prevent YouTube's default keyboard shortcuts when container is focused\nconst handleIframeKeydown=e=>{if(document.activeElement===container){e.preventDefault();e.stopPropagation();return false;}};// Add event listener to capture keyboard events before they reach iframe\nconst handleContainerKeydown=e=>{// Ensure our handler gets priority over YouTube's\nhandleKeyDown(e);};if(container){container.addEventListener(\"keydown\",handleContainerKeydown,true);}return()=>{if(container){container.removeEventListener(\"keydown\",handleContainerKeydown,true);}};}},[props.sourceType,handleKeyDown]);// Additional Event Handlers\nconst handleProgressChange=async event=>{const newTime=parseFloat(event.target.value);setState(prev=>({...prev,progress:newTime}));if(props.sourceType===\"vimeo\"&&vimeoPlayer.current){try{await vimeoPlayer.current.setCurrentTime(newTime);}catch(error){console.error(\"Vimeo seek error:\",error);}}};const handleProgressEnd=()=>{setIsDragging(false);if(props.sourceType===\"youtube\"&&youtubePlayer.current){youtubePlayer.current.seekTo(state.progress,true);}};const handleVolumeChange=async event=>{const newVolume=parseFloat(event.target.value);if(props.sourceType===\"youtube\"&&youtubePlayer.current){try{youtubePlayer.current.setVolume(Math.round(newVolume*100));// If user raises volume, make sure we unmute\nif(newVolume>0&&youtubePlayer.current.isMuted()){youtubePlayer.current.unMute();}const muted=youtubePlayer.current.isMuted();setState(prev=>({...prev,volume:newVolume,muted}));}catch(error){console.error(\"YouTube volume error:\",error);}return;}else if(props.sourceType===\"vimeo\"&&vimeoPlayer.current){try{await vimeoPlayer.current.setVolume(newVolume);}catch(error){console.error(\"Vimeo volume error:\",error);}}else{const video=refs.video.current;if(video)video.volume=newVolume;}setState(prev=>({...prev,volume:newVolume,muted:newVolume===0}));};const handleSpeedChange=event=>{const video=refs.video.current;const newSpeed=parseFloat(event.target.value);if(video){video.playbackRate=newSpeed;setState(prev=>({...prev,speed:newSpeed}));}};const handleLoop=()=>{const video=refs.video.current;if(video){const shouldLoop=props.mode===\"single\"?props.loop:false;video.loop=shouldLoop;setState(prev=>({...prev,loop:shouldLoop}));}};const togglePictureInPicture=async()=>{const video=refs.video.current;if(!video||!document.pictureInPictureEnabled)return;try{console.log(\"Before PiP toggle - Loop state:\",video.loop);if(document.pictureInPictureElement){await document.exitPictureInPicture();setState(prev=>({...prev,isPiP:false}));}else{await video.requestPictureInPicture();setState(prev=>({...prev,isPiP:true}));}// Always ensure loop state is maintained (respect playlist mode)\nvideo.loop=props.mode===\"single\"?props.loop:false;console.log(\"After PiP toggle - Loop state:\",video.loop,\"props.loop:\",props.loop);}catch(error){console.error(\"PiP failed:\",error);}};const pipStyles={position:\"fixed\",bottom:\"10px\",right:\"10px\",width:\"auto\",height:\"auto\",transform:\"scale(0.5)\",transformOrigin:\"bottom right\",zIndex:9999};// Modify Property Controls to Hide Speed Control\nconst showSpeedControl=props.sourceType===\"file\"||props.sourceType===\"url\";const speedControl={showSpeed:{type:ControlType.Boolean,title:\"Speed Control\",defaultValue:true,hidden:props=>props.sourceType!==\"file\"&&props.sourceType!==\"url\"}};// JSX\nconst controlsVisible=(state.hovering||!state.isPlaying||state.fullscreen)&&!(props.useCustomPlayButton&&!state.hasPlayedOnce);const showChapterTimeline=props.chaptersMode===\"embedded\"&&(props.manualChapters?.length??0)>0&&((state.duration||0)>0||props.sourceType===\"youtube\");const shouldShowOverlay=!(state.isPlaying||props.sourceType===\"youtube\"&&!props.autoPlay&&!state.userInteracted&&state.progress===0||props.sourceType===\"youtube\"&&props.autoPlay||props.showPlayButtonOnlyOnInitial&&state.hasPlayedOnce);// Optional small renderer to normalize the custom instance positioning\nconst renderCustomPlay=()=>{const inst=props.customPlayButton;if(/*#__PURE__*/isValidElement(inst)){const prev=inst.props?.style||{};return /*#__PURE__*/cloneElement(inst,{style:{...prev,// 1) Remove canvas positioning/frame\nposition:\"relative\",left:\"auto\",top:\"auto\",right:\"auto\",bottom:\"auto\",inset:\"unset\",transform:\"none\",margin:0,// 2) Size to content so its own center is true center\nwidth:\"max-content\",height:\"max-content\",// 3) Center its own internal content too\ndisplay:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",transformOrigin:\"center center\",verticalAlign:\"middle\"},onClick:undefined});}return /*#__PURE__*/_jsx(\"div\",{style:{display:\"contents\"},children:inst});};const handleContainerClickCapture=useCallback(e=>{const target=e.target;const inControls=!!(controlsRef.current&&controlsRef.current.contains(target));const interactiveSel='input, select, textarea, button, a, [role=\"button\"], [contenteditable=\"true\"]';const closestInteractive=target.closest(interactiveSel);let isInteractive=false;if(closestInteractive){// Ignore hidden/disabled-by-pointer-events interactives (like our hidden overlay)\nconst pe=window.getComputedStyle(closestInteractive).pointerEvents;isInteractive=pe!==\"none\";}// If the click is within our play overlay container while it's hidden, don't treat as interactive\nconst inPlayOverlay=!!target.closest('[data-overlay=\"play\"]');if(!shouldShowOverlay&&inPlayOverlay){isInteractive=false;}console.log(\"[FramePlay] onClickCapture\",{targetTag:target?.tagName,inControls,isInteractive,sourceType:props.sourceType,shouldShowOverlay,statePlaying:state.isPlaying});// Embedded players: Vimeo handled by overlay div; YT handled via its own UI\nif(props.sourceType===\"youtube\")return;if(props.sourceType===\"vimeo\")return;if(inControls||isInteractive){console.log(\"[FramePlay] Click ignored (controls/interactive)\");return;}// If overlay visible, its own handler runs & stops propagation\nif(shouldShowOverlay){console.log(\"[FramePlay] Overlay visible – container will not toggle\");return;}// Otherwise toggle here\nconsole.log(\"[FramePlay] Container toggling play/pause\");safeToggle();},[props.sourceType,shouldShowOverlay,safeToggle,state.isPlaying]);// Mark that the user interacted at least once (affects overlay logic on YouTube, etc.)\nconst markUserInteracted=useCallback(()=>{setState(prev=>{if(!prev.userInteracted){console.log(\"[FramePlay] markUserInteracted -> true\");return{...prev,userInteracted:true};}return prev;});},[]);// Watch state changes with logging\nuseEffect(()=>{console.log(\"[FramePlay] isPlaying changed:\",state.isPlaying);},[state.isPlaying]);useEffect(()=>{console.log(\"[FramePlay] shouldShowOverlay:\",shouldShowOverlay,{isPlaying:state.isPlaying,userInteracted:state.userInteracted,source:props.sourceType,progress:state.progress,autoPlay:props.autoPlay});},[shouldShowOverlay,state.isPlaying,state.userInteracted,props.sourceType,state.progress,props.autoPlay]);useEffect(()=>{console.log(\"[Glow] sampler effect mount | glowEnabled =\",glowEnabled,\"| sourceType =\",props.sourceType,\"| canSample =\",canSample);if(!glowEnabled)return;if(!usingVideoTag||!canSample)return;const video=refs.video.current;const canvas=canvasRef.current;if(!video||!canvas){console.log(\"[Glow] missing elements | video =\",!!video,\"| canvas =\",!!canvas);return;}const ctx=canvas.getContext(\"2d\",{willReadFrequently:true});if(!ctx){console.log(\"[Glow] 2d context unavailable\");return;}let intervalId;const extract=()=>{if(video.readyState<2){console.log(\"[Glow] extract skipped; readyState =\",video.readyState,\"(need >= 2)\");return;}try{canvas.width=1;canvas.height=1;ctx.drawImage(video,0,0,1,1);const d=ctx.getImageData(0,0,1,1).data;const col=`rgba(${d[0]}, ${d[1]}, ${d[2]}, ${glowIntensity})`;console.log(\"[Glow] sampled RGBA =\",d[0],d[1],d[2],\"| color =\",col);setGlowColor(col);}catch(err){console.warn(\"[Glow] sampling failed (likely CORS if not Blob URL):\",err);}};const start=()=>{clearInterval(intervalId);extract();intervalId=setInterval(extract,80);console.log(\"[Glow] sampler started\");};const stop=()=>{clearInterval(intervalId);console.log(\"[Glow] sampler stopped\");};const onPlay=()=>{console.log(\"[Glow] video play -> start sampler\");start();};const onPause=()=>{console.log(\"[Glow] video pause -> stop sampler\");stop();};const onEnded=()=>{console.log(\"[Glow] video ended -> stop sampler\");stop();};const onLoaded=()=>{console.log(\"[Glow] loadeddata | readyState =\",video.readyState);extract();};console.log(\"[Glow] attaching listeners | src =\",video.currentSrc||state.fileUrl);video.addEventListener(\"play\",onPlay);video.addEventListener(\"pause\",onPause);video.addEventListener(\"ended\",onEnded);video.addEventListener(\"loadeddata\",onLoaded);if(!video.paused)start();return()=>{stop();console.log(\"[Glow] detach listeners\");video.removeEventListener(\"play\",onPlay);video.removeEventListener(\"pause\",onPause);video.removeEventListener(\"ended\",onEnded);video.removeEventListener(\"loadeddata\",onLoaded);};},[glowEnabled,glowIntensity,props.sourceType,state.fileUrl,canSample]);// Sync chapters to store\nuseEffect(()=>{if(props.chaptersMode!==\"external\")return;// Only sync if external mode\nconst normalizedChapters=(props.manualChapters||[]).map(chapter=>({...chapter,start:(chapter.minutes??0)*60+(chapter.seconds??0)}));setVideoStore({chapters:normalizedChapters});},[props.manualChapters,props.chaptersMode]);// Sync playback state to store\nuseEffect(()=>{if(props.chaptersMode!==\"external\")return;setVideoStore({isPlaying:state.isPlaying,progress:state.progress,duration:state.duration});},[state.isPlaying,state.progress,state.duration,props.chaptersMode]);// Update active chapter based on progress\nuseEffect(()=>{if(props.chaptersMode!==\"external\")return;const chapters=videoStore.chapters;if(chapters.length===0)return;let activeIndex=0;for(let i=chapters.length-1;i>=0;i--){if(state.progress>=(chapters[i].start??0)){activeIndex=i;break;}}if(activeIndex!==videoStore.activeChapterIndex){setVideoStore({activeChapterIndex:activeIndex});}},[state.progress,videoStore.chapters,props.chaptersMode]);// Expose control functions to store\nuseEffect(()=>{if(props.chaptersMode!==\"external\")return;setVideoStore({seekTo:time=>{if(props.sourceType===\"youtube\"&&youtubePlayer.current?.seekTo){youtubePlayer.current.seekTo(time,true);}else if(props.sourceType===\"vimeo\"&&vimeoPlayer.current?.setCurrentTime){vimeoPlayer.current.setCurrentTime(time).catch(()=>{});}else if(refs.video.current){refs.video.current.currentTime=time;}setState(prev=>({...prev,progress:time}));},togglePlayPause:handlePlayPause});},[handlePlayPause,props.sourceType,props.chaptersMode]);return /*#__PURE__*/_jsxs(\"div\",{ref:refs.container,className:\"video-player-container\",style:{width:\"100%\",height:\"100%\",position:\"relative\",backgroundColor:props.style?.backgroundColor||\"#000\",borderRadius:props.style?.cornerRadius||0,overflow:glowEnabled?\"visible\":\"hidden\"},onMouseEnter:()=>setState(prev=>({...prev,hovering:true})),onMouseLeave:()=>setState(prev=>({...prev,hovering:false})),onPointerDown:markUserInteracted,onKeyDown:e=>{markUserInteracted();handleKeyDown(e);},onClickCapture:handleContainerClickCapture,tabIndex:0,role:\"region\",\"aria-label\":props.accessibility?.title||\"Video player\",\"aria-describedby\":props.accessibility?.description?\"video-description\":undefined,children:[props.accessibility?.description&&/*#__PURE__*/_jsxs(\"div\",{id:\"video-description\",style:{position:\"absolute\",left:\"-10000px\",width:\"1px\",height:\"1px\",overflow:\"hidden\"},children:[props.accessibility.description,props.accessibility.hasSubtitles&&\" This video includes subtitles.\",props.accessibility.hasAudioDescription&&\" This video includes audio description.\"]}),props.sourceType===\"file\"?/*#__PURE__*/_jsx(\"video\",{ref:refs.video,src:state.fileUrl,poster:props.posterImage||undefined,style:{width:\"100%\",height:\"100%\",objectFit:props.style?.videoFit||\"cover\",borderRadius:props.style?.cornerRadius||0,boxShadow:mediaBoxShadow,opacity:state.isTransitioning?0:1,transition:glowEnabled?\"box-shadow 0.25s ease, opacity 0.15s ease-out\":\"opacity 0.15s ease-out\"},onTimeUpdate:handleTimeUpdate,onLoadedData:()=>{const v=refs.video.current;console.log(\"[Playlist Debug] onLoadedData called\");console.log(\"[Playlist Debug] Video readyState:\",v?.readyState);console.log(\"[Playlist Debug] Video duration:\",v?.duration);console.log(\"[Playlist Debug] Current index:\",state.currentVideoIndex);console.log(\"[Playlist Debug] Event handlers attached:\",{onEnded:!!handleVideoEnded,onError:!!handleVideoError});console.log(\"[Glow] onLoadedData | readyState =\",v?.readyState,\"| src =\",v?.currentSrc);handleLoadedData();},onLoadedMetadata:()=>{const video=refs.video.current;if(video){// Detect if video has audio\nconst audioDetected=video.audioTracks&&video.audioTracks.length>0||video.mozHasAudio||Boolean(video.webkitAudioDecodedByteCount)||Boolean(video.audioTracks?.length);setHasAudio(audioDetected);console.log(\"[FramePlay] Audio detected:\",audioDetected);}},onPlay:()=>{console.log(\"[Playlist Debug] onPlay fired for video at index:\",state.currentVideoIndex);console.log(\"[Playlist Debug] Video src:\",refs.video.current?.currentSrc);console.log(\"[FramePlay] <video> onPlay fired\");setState(prev=>({...prev,isPlaying:true,hasPlayedOnce:true}));console.log(\"[Glow] play | computed boxShadow should be:\",mediaBoxShadow);},onPause:()=>{console.log(\"[Playlist Debug] onPause fired for video at index:\",state.currentVideoIndex);console.log(\"[FramePlay] <video> onPause fired\");setState(prev=>({...prev,isPlaying:false}));},onEnded:e=>{console.log(\"[Playlist Debug] onEnded event fired!\");console.log(\"[Playlist Debug] Current video index:\",state.currentVideoIndex);console.log(\"[Playlist Debug] Event target:\",e.target);console.log(\"[Playlist Debug] Video currentTime:\",e.target.currentTime);console.log(\"[Playlist Debug] Video duration:\",e.target.duration);console.log(\"[Playlist Debug] Calling handleVideoEnded...\");handleVideoEnded();},onError:e=>{console.log(\"[Playlist Debug] onError event fired!\");console.log(\"[Playlist Debug] Error:\",e);console.log(\"[Playlist Debug] Current video index:\",state.currentVideoIndex);console.log(\"[Playlist Debug] Calling handleVideoError...\");handleVideoError(e);},onClick:e=>{console.log(\"[FramePlay] <video> direct click\");e.stopPropagation();safeToggle();},loop:props.mode===\"single\"?props.loop:false,muted:state.muted,playsInline:true,\"webkit-playsinline\":\"true\",\"x-webkit-airplay\":\"allow\",allowFullScreen:true,\"aria-label\":props.accessibility?.title||\"Video\",\"aria-describedby\":props.accessibility?.description?\"video-description\":undefined,lang:props.accessibility?.language||\"en\"}):props.sourceType===\"url\"&&usingVideoForUrl?/*#__PURE__*/_jsx(\"video\",{ref:refs.video,src:state.fileUrl,poster:props.posterImage||undefined,style:{width:\"100%\",height:\"100%\",objectFit:props.style?.videoFit||\"cover\",borderRadius:props.style?.cornerRadius||0,boxShadow:mediaBoxShadow,opacity:state.isTransitioning?0:1,transition:glowEnabled?\"box-shadow 0.25s ease, opacity 0.15s ease-out\":\"opacity 0.15s ease-out\"},onTimeUpdate:handleTimeUpdate,onLoadedData:()=>{const v=refs.video.current;console.log(\"[Playlist Debug] onLoadedData called (URL media)\");console.log(\"[Playlist Debug] Video readyState:\",v?.readyState);console.log(\"[Playlist Debug] Video duration:\",v?.duration);console.log(\"[Playlist Debug] Current index:\",state.currentVideoIndex);console.log(\"[Playlist Debug] Event handlers attached:\",{onEnded:!!handleVideoEnded,onError:!!handleVideoError});console.log(\"[Glow] onLoadedData (URL media) | readyState =\",v?.readyState,\"| src =\",v?.currentSrc);handleLoadedData();},onLoadedMetadata:()=>{const video=refs.video.current;if(video){// Detect if video has audio\nconst audioDetected=video.audioTracks&&video.audioTracks.length>0||video.mozHasAudio||Boolean(video.webkitAudioDecodedByteCount)||Boolean(video.audioTracks?.length);setHasAudio(audioDetected);console.log(\"[FramePlay] Audio detected (URL):\",audioDetected);}},onPlay:()=>{console.log(\"[Playlist Debug] onPlay fired for video at index:\",state.currentVideoIndex,\"(URL media)\");console.log(\"[Playlist Debug] Video src:\",refs.video.current?.currentSrc);console.log(\"[FramePlay] <video:url> onPlay fired\");setState(prev=>({...prev,isPlaying:true,hasPlayedOnce:true}));console.log(\"[Glow] play | computed boxShadow should be:\",mediaBoxShadow);},onPause:()=>{console.log(\"[Playlist Debug] onPause fired for video at index:\",state.currentVideoIndex,\"(URL media)\");console.log(\"[FramePlay] <video:url> onPause fired\");setState(prev=>({...prev,isPlaying:false}));},onEnded:e=>{console.log(\"[Playlist Debug] onEnded event fired! (URL media)\");console.log(\"[Playlist Debug] Current video index:\",state.currentVideoIndex);console.log(\"[Playlist Debug] Event target:\",e.target);console.log(\"[Playlist Debug] Video currentTime:\",e.target.currentTime);console.log(\"[Playlist Debug] Video duration:\",e.target.duration);console.log(\"[Playlist Debug] Calling handleVideoEnded...\");handleVideoEnded();},onError:e=>{console.log(\"[Playlist Debug] onError event fired! (URL media)\");console.log(\"[Playlist Debug] Error:\",e);console.log(\"[Playlist Debug] Current video index:\",state.currentVideoIndex);console.log(\"[Playlist Debug] Calling handleVideoError...\");handleVideoError(e);},onClick:e=>{e.stopPropagation();safeToggle();},loop:props.mode===\"single\"?props.loop:false,muted:state.muted,playsInline:true,allowFullScreen:true,\"aria-label\":props.accessibility?.title||\"Video\",\"aria-describedby\":props.accessibility?.description?\"video-description\":undefined,lang:props.accessibility?.language||\"en\"}):props.sourceType===\"url\"?// Non-media URL fallback -> iframe\n/*#__PURE__*/_jsx(\"iframe\",{ref:iframeRef,src:state.fileUrl,style:{width:\"100%\",height:\"100%\",border:\"none\",objectFit:props.style?.videoFit||\"cover\",borderRadius:props.style?.cornerRadius||0,boxShadow:mediaBoxShadow,transition:glowEnabled?\"box-shadow 0.25s ease\":undefined},allow:\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\",allowFullScreen:true,title:props.accessibility?.title||\"Embedded content\",\"aria-label\":props.accessibility?.title||\"Embedded content\"}):props.sourceType===\"youtube\"?/*#__PURE__*/_jsx(\"iframe\",{id:\"youtube-player\",ref:iframeRef,src:getVideoSource(\"youtube\"),style:{width:\"100%\",height:\"100%\",border:\"none\",objectFit:props.style?.videoFit||\"cover\",borderRadius:props.style?.cornerRadius||0,boxShadow:mediaBoxShadow,transition:glowEnabled?\"box-shadow 0.25s ease\":undefined},allow:\"autoplay; fullscreen\",allowFullScreen:true,frameBorder:\"0\",title:props.accessibility?.title||\"YouTube video player\",\"aria-label\":props.accessibility?.title||\"YouTube video\"}):props.sourceType===\"vimeo\"?/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\"},children:[/*#__PURE__*/_jsx(\"iframe\",{ref:iframeRef,src:getVideoSource(\"vimeo\"),style:{width:\"100%\",height:\"100%\",border:\"none\",objectFit:props.style?.videoFit||\"cover\",borderRadius:props.style?.cornerRadius||0,pointerEvents:\"none\"},allow:\"autoplay; fullscreen\",allowFullScreen:true,title:props.accessibility?.title||\"Vimeo video player\",\"aria-label\":props.accessibility?.title||\"Vimeo video\"}),/*#__PURE__*/_jsx(\"div\",{onClick:e=>{console.log(\"[FramePlay] Vimeo transparent overlay click\");e.stopPropagation();safeToggle();},style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",borderRadius:cornerRadius,overflow:\"hidden\",clipPath:cornerRadius?`inset(0 round ${cornerRadius}px)`:undefined,cursor:\"pointer\"}})]}):null,glowEnabled&&/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,width:1,height:1,style:{display:\"none\"}}),/*#__PURE__*/_jsx(motion.div,{initial:false,animate:{opacity:props.playOverlay?.enabled&&shouldShowOverlay?1:0},transition:{duration:.18},style:{position:\"absolute\",inset:0,borderRadius:cornerRadius,overflow:\"hidden\",clipPath:cornerRadius?`inset(0 round ${cornerRadius}px)`:undefined,background:props.playOverlay?.enabled?props.playOverlay?.color||\"rgba(255,255,255,0.12)\"// use alpha here\n:\"transparent\",backdropFilter:props.playOverlay?.enabled&&(props.playOverlay?.blur??0)>0?`blur(${props.playOverlay?.blur||0}px)`:\"none\",WebkitBackdropFilter:props.playOverlay?.enabled&&(props.playOverlay?.blur??0)>0?`blur(${props.playOverlay?.blur||0}px)`:\"none\",pointerEvents:\"none\",zIndex:1e4}}),shouldShowOverlay&&/*#__PURE__*/_jsx(\"div\",{\"data-overlay\":\"play\",style:{position:\"absolute\",inset:0,borderRadius:cornerRadius,overflow:\"hidden\",clipPath:cornerRadius?`inset(0 round ${cornerRadius}px)`:undefined,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",zIndex:10001,pointerEvents:\"auto\"},children:/*#__PURE__*/_jsx(motion.div,{initial:{opacity:0,scale:.98},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.98},transition:{duration:.18},onClick:e=>{console.log(\"[FramePlay] Overlay click\");e.stopPropagation();safeToggle();},role:\"button\",\"aria-label\":\"Play video\",tabIndex:0,onKeyDown:e=>{if(e.key===\" \"||e.key===\"Enter\"){console.log(\"[FramePlay] Overlay keydown\",e.key);e.preventDefault();e.stopPropagation();safeToggle();}},style:{pointerEvents:\"auto\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",// Only apply native styling when NOT using a custom button\n...props.useCustomPlayButton?{}:{background:props.buttonStyle?.playButtonBackgroundColor,borderRadius:props.buttonStyle?.playButtonBorderRadius,padding:props.buttonStyle?.playButtonSize/10,width:props.buttonStyle?.playButtonSize,height:props.buttonStyle?.playButtonSize,backdropFilter:`blur(${props.buttonStyle?.playButtonBlur}px)`,WebkitBackdropFilter:`blur(${props.buttonStyle?.playButtonBlur}px)`}},children:props.useCustomPlayButton&&props.customPlayButton?// Render the custom instance; no transforms/absolute so it stays centered.\n// pointerEvents off so the wrapper gets the click.\n/*#__PURE__*/_jsx(\"div\",{style:{pointerEvents:\"none\",display:\"inline-flex\"},children:props.customPlayButton}):props.customPlayIcon?/*#__PURE__*/_jsx(\"img\",{src:props.customPlayIcon,alt:\"Play Icon\",style:{width:props.buttonStyle?.playIconSize,height:props.buttonStyle?.playIconSize,objectFit:\"contain\",pointerEvents:\"none\"}}):/*#__PURE__*/_jsx(\"svg\",{width:props.buttonStyle?.playIconSize,height:props.buttonStyle?.playIconSize,viewBox:\"0 0 24 24\",xmlns:\"http://www.w3.org/2000/svg\",style:{pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"path\",{d:\"M6 4.83167C6 4.0405 6.87525 3.56266 7.54076 3.99049L18.6915 11.1588C19.3038 11.5525 19.3038 12.4475 18.6915 12.8412L7.54076 20.0095C6.87525 20.4373 6 19.9595 6 19.1683V4.83167Z\",fill:props.buttonStyle?.playIconColor})})})}),/*#__PURE__*/_jsx(AnimatePresence,{children:state.showPlayPauseFeedback&&state.feedbackIcon&&/*#__PURE__*/_jsx(motion.div,{initial:{opacity:0,scale:.8,filter:\"blur(0px)\"},animate:{opacity:1,scale:1,filter:\"blur(0px)\"},exit:{opacity:0,scale:1.1,filter:\"blur(8px)\"},transition:{duration:.2,ease:\"easeOut\"},style:{position:\"absolute\",inset:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",pointerEvents:\"none\",zIndex:10002},children:/*#__PURE__*/_jsx(motion.div,{initial:{scale:.8},animate:{scale:1},exit:{scale:1.2},transition:{duration:.3,ease:\"easeOut\"},style:{background:\"rgba(0, 0, 0, 0.4)\",backdropFilter:\"blur(10px)\",borderRadius:\"50%\",width:\"80px\",height:\"80px\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(\"svg\",{width:\"40\",height:\"40\",viewBox:\"0 0 24 24\",fill:\"white\",children:state.feedbackIcon===\"play\"?/*#__PURE__*/_jsx(\"path\",{d:\"M8 5v14l11-7z\"}):/*#__PURE__*/_jsx(\"path\",{d:\"M6 4h4v16H6V4zm8 0h4v16h-4V4z\"})})})},\"play-pause-feedback\")}),props.showControls&&/*#__PURE__*/_jsx(motion.div,{ref:controlsRef,initial:{opacity:0},animate:{opacity:controlsVisible?1:0,y:controlsVisible?0:10},transition:{duration:.2},style:{...styles.controlsStyle,...props.controlsMode===\"minimal\"&&{justifyContent:\"space-between\",gap:0,padding:0,bottom:0,left:0,right:0,border:\"none\",borderRadius:0,backgroundColor:\"transparent\",backdropFilter:\"none\",boxShadow:\"none\"}},children:props.controlsMode===\"minimal\"?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",gap:0,alignItems:\"center\"},children:props.controls?.showPlayPause&&/*#__PURE__*/_jsx(\"button\",{onClick:e=>{e.stopPropagation();safeToggle();},className:\"video-player-button minimal-button\",style:{background:\"rgba(0, 0, 0, 0.6)\",backdropFilter:\"blur(10px)\",border:\"none\",borderRadius:0,padding:\"12px\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transition:\"background 0.2s ease\",height:\"44px\"},onMouseEnter:e=>{e.currentTarget.style.background=\"rgba(0, 0, 0, 0.75)\";},onMouseLeave:e=>{e.currentTarget.style.background=\"rgba(0, 0, 0, 0.6)\";},onKeyDown:e=>{if(e.key===\" \"||e.key===\"Enter\"){e.preventDefault();handlePlayPause();}},\"aria-label\":state.isPlaying?\"Pause video\":\"Play video\",\"aria-pressed\":state.isPlaying,tabIndex:0,children:/*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:props.controlsStyle?.controlsColor||\"#FFF\",\"aria-hidden\":\"true\",children:state.isPlaying?/*#__PURE__*/_jsx(\"path\",{d:\"M6 4h4v16H6V4zm8 0h4v16h-4V4z\"}):/*#__PURE__*/_jsx(\"path\",{d:\"M8 5v14l11-7z\"})})})}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:0,alignItems:\"center\"},children:[props.controls?.showVolume&&hasAudio&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",display:\"flex\",alignItems:\"center\"},onMouseEnter:e=>{setState(prev=>({...prev,volumeHover:true}));},onMouseLeave:e=>{setState(prev=>({...prev,volumeHover:false}));},children:[state.volumeHover&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",bottom:\"100%\",left:\"50%\",transform:\"translateX(-50%)\",paddingBottom:\"8px\"},onMouseEnter:e=>{setState(prev=>({...prev,volumeHover:true}));},children:/*#__PURE__*/_jsxs(\"div\",{style:{background:\"rgba(0, 0, 0, 0.9)\",backdropFilter:\"blur(10px)\",borderRadius:\"8px\",padding:\"16px 12px\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",zIndex:10003,boxShadow:\"0 4px 12px rgba(0, 0, 0, 0.3)\"},children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                                                        .volume-slider-vertical {\n                                                            -webkit-appearance: none;\n                                                            appearance: none;\n                                                            width: 6px;\n                                                            height: 100px;\n                                                            background: transparent;\n                                                            outline: none;\n                                                            cursor: pointer;\n                                                            writing-mode: vertical-lr;\n                                                            direction: rtl;\n                                                        }\n                                                        \n                                                        /* Track - Webkit/Blink */\n                                                        .volume-slider-vertical::-webkit-slider-runnable-track {\n                                                            width: 6px;\n                                                            height: 100px;\n                                                            background: rgba(255, 255, 255, 0.2);\n                                                            border-radius: 3px;\n                                                        }\n                                                        \n                                                        /* Track - Firefox */\n                                                        .volume-slider-vertical::-moz-range-track {\n                                                            width: 6px;\n                                                            height: 100px;\n                                                            background: rgba(255, 255, 255, 0.2);\n                                                            border-radius: 3px;\n                                                        }\n                                                        \n                                                        /* Thumb - Webkit/Blink */\n                                                        .volume-slider-vertical::-webkit-slider-thumb {\n                                                            -webkit-appearance: none;\n                                                            appearance: none;\n                                                            width: 14px;\n                                                            height: 14px;\n                                                            background: white;\n                                                            border-radius: 50%;\n                                                            cursor: pointer;\n                                                            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n                                                            transition: transform 0.1s ease;\n                                                            margin-left: -4px;\n                                                        }\n                                                        \n                                                        .volume-slider-vertical::-webkit-slider-thumb:hover {\n                                                            transform: scale(1.15);\n                                                        }\n                                                        \n                                                        /* Thumb - Firefox */\n                                                        .volume-slider-vertical::-moz-range-thumb {\n                                                            width: 14px;\n                                                            height: 14px;\n                                                            background: white;\n                                                            border: none;\n                                                            border-radius: 50%;\n                                                            cursor: pointer;\n                                                            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n                                                            transition: transform 0.1s ease;\n                                                        }\n                                                        \n                                                        .volume-slider-vertical::-moz-range-thumb:hover {\n                                                            transform: scale(1.15);\n                                                        }\n                                                        \n                                                        /* Progress fill - Firefox */\n                                                        .volume-slider-vertical::-moz-range-progress {\n                                                            background: ${props.controlsStyle?.progressColor||\"#FFF\"};\n                                                            border-radius: 3px;\n                                                        }\n                                                    `}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"6px\",height:\"100px\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",bottom:0,left:0,width:\"6px\",height:`${state.volume*100}%`,background:props.controlsStyle?.progressColor||\"#FFF\",borderRadius:\"3px\",pointerEvents:\"none\",transition:\"height 0.1s ease\"}}),/*#__PURE__*/_jsx(\"input\",{type:\"range\",className:\"volume-slider-vertical\",min:0,max:1,step:.01,value:state.volume,onChange:handleVolumeChange,onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),\"aria-label\":`Volume: ${Math.round(state.volume*100)}%`,\"aria-valuemin\":0,\"aria-valuemax\":100,\"aria-valuenow\":Math.round(state.volume*100)})]})]})}),/*#__PURE__*/_jsx(\"button\",{onClick:e=>{e.stopPropagation();handleMute();},className:\"video-player-button minimal-button\",style:{background:\"rgba(0, 0, 0, 0.6)\",backdropFilter:\"blur(10px)\",border:\"none\",borderRadius:0,padding:\"12px\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transition:\"background 0.2s ease\",height:\"44px\"},onMouseEnter:e=>{e.currentTarget.style.background=\"rgba(0, 0, 0, 0.75)\";},onMouseLeave:e=>{e.currentTarget.style.background=\"rgba(0, 0, 0, 0.6)\";},\"aria-label\":state.muted?\"Unmute\":\"Mute\",\"aria-pressed\":state.muted,tabIndex:0,children:/*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:props.controlsStyle?.controlsColor||\"#FFF\",\"aria-hidden\":\"true\",children:state.muted||state.volume===0?/*#__PURE__*/_jsx(\"path\",{d:\"M3.63 3.63a.996.996 0 000 1.41L7.29 8.7 7 9H4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h3l3.29 3.29c.63.63 1.71.18 1.71-.71v-4.17l4.18 4.18c-.49.37-1.02.68-1.6.91-.36.15-.58.53-.58.92 0 .72.73 1.18 1.39.91.8-.33 1.55-.77 2.22-1.31l1.34 1.34a.996.996 0 101.41-1.41L5.05 3.63c-.39-.39-1.02-.39-1.42 0zM19 12c0 .82-.15 1.61-.41 2.34l1.53 1.53c.56-1.17.88-2.48.88-3.87 0-3.83-2.4-7.11-5.78-8.4-.59-.23-1.22.23-1.22.86v.19c0 .38.25.71.61.85C17.18 6.54 19 9.06 19 12zm-8.71-6.29l-.17.17L12 7.76V6.41c0-.89-1.08-1.33-1.71-.7zM16.5 12A4.5 4.5 0 0014 7.97v1.79l2.48 2.48c.01-.08.02-.16.02-.24z\"}):state.volume<.5?/*#__PURE__*/_jsx(\"path\",{d:\"M7 9v6h4l5 5V4l-5 5H7z\"}):/*#__PURE__*/_jsx(\"path\",{d:\"M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0014 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\"})})})]}),props.controls?.showSpeed&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\"},children:[/*#__PURE__*/_jsxs(\"button\",{onClick:e=>{e.stopPropagation();setState(prev=>({...prev,showSpeedMenu:!prev.showSpeedMenu}));},className:\"video-player-button minimal-button\",style:{background:\"rgba(0, 0, 0, 0.6)\",backdropFilter:\"blur(10px)\",border:\"none\",borderRadius:0,padding:\"12px\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transition:\"background 0.2s ease\",fontSize:\"12px\",fontWeight:\"bold\",minWidth:\"50px\",color:props.controlsStyle?.controlsColor||\"#FFF\",height:\"44px\"},onMouseEnter:e=>{e.currentTarget.style.background=\"rgba(0, 0, 0, 0.75)\";},onMouseLeave:e=>{e.currentTarget.style.background=\"rgba(0, 0, 0, 0.6)\";},\"aria-label\":\"Playback speed\",tabIndex:0,children:[state.speed,\"x\"]}),state.showSpeedMenu&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",bottom:\"100%\",right:0,marginBottom:8,background:\"rgba(0, 0, 0, 0.9)\",borderRadius:8,padding:8,zIndex:10003},children:[.25,.5,.75,1,1.25,1.5,1.75,2].map(speed=>/*#__PURE__*/_jsxs(\"button\",{onClick:e=>{e.stopPropagation();handleSpeedChange({target:{value:speed}});setState(prev=>({...prev,showSpeedMenu:false}));},style:{display:\"block\",width:\"100%\",padding:\"8px 16px\",background:state.speed===speed?\"rgba(255, 255, 255, 0.2)\":\"transparent\",border:\"none\",color:\"#FFF\",cursor:\"pointer\",fontSize:\"14px\",borderRadius:4},children:[speed,\"x\"]},speed))})]}),props.controls?.showPictureInPicture&&props.sourceType!==\"youtube\"&&props.sourceType!==\"vimeo\"&&/*#__PURE__*/_jsx(\"button\",{onClick:e=>{e.stopPropagation();togglePictureInPicture();},className:\"video-player-button minimal-button\",style:{background:\"rgba(0, 0, 0, 0.6)\",backdropFilter:\"blur(10px)\",border:\"none\",borderRadius:0,padding:\"12px\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transition:\"background 0.2s ease\",height:\"44px\"},onMouseEnter:e=>{e.currentTarget.style.background=\"rgba(0, 0, 0, 0.75)\";},onMouseLeave:e=>{e.currentTarget.style.background=\"rgba(0, 0, 0, 0.6)\";},\"aria-label\":\"Picture in Picture\",tabIndex:0,children:/*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:props.controlsStyle?.controlsColor||\"#FFF\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M19 7h-8v6h8V7zm2-4H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98V5c0-1.1-.9-2-2-2zm0 16.01H3V4.98h18v14.03z\"})})}),props.controls?.showFullscreen&&/*#__PURE__*/_jsx(\"button\",{onClick:e=>{e.stopPropagation();toggleFullscreen();},className:\"video-player-button minimal-button\",style:{background:\"rgba(0, 0, 0, 0.6)\",backdropFilter:\"blur(10px)\",border:\"none\",borderRadius:0,padding:\"12px\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transition:\"background 0.2s ease\",height:\"44px\"},onMouseEnter:e=>{e.currentTarget.style.background=\"rgba(0, 0, 0, 0.75)\";},onMouseLeave:e=>{e.currentTarget.style.background=\"rgba(0, 0, 0, 0.6)\";},\"aria-label\":state.fullscreen?\"Exit fullscreen\":\"Fullscreen\",tabIndex:0,children:/*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:props.controlsStyle?.controlsColor||\"#FFF\",\"aria-hidden\":\"true\",children:state.fullscreen?/*#__PURE__*/_jsx(\"path\",{d:\"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z\"}):/*#__PURE__*/_jsx(\"path\",{d:\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"})})})]})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[props.controls?.showPlayPause&&/*#__PURE__*/_jsx(\"button\",{onClick:e=>{e.stopPropagation();safeToggle();},className:\"video-player-button\",style:styles.button,onKeyDown:e=>{if(e.key===\" \"||e.key===\"Enter\"){e.preventDefault();handlePlayPause();}},\"aria-label\":state.isPlaying?\"Pause video\":\"Play video\",\"aria-pressed\":state.isPlaying,tabIndex:0,children:/*#__PURE__*/_jsx(\"svg\",{width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",fill:props.controlsStyle?.controlsColor||\"#FFF\",\"aria-hidden\":\"true\",children:state.isPlaying?/*#__PURE__*/_jsx(\"path\",{d:\"M6 4h4v16H6V4zm8 0h4v16h-4V4z\"}):/*#__PURE__*/_jsx(\"path\",{d:\"M8 5v14l11-7z\"})})}),props.controls?.showProgress&&/*#__PURE__*/_jsx(\"div\",{style:{flex:1,position:\"relative\",display:\"flex\",flexDirection:\"column\",gap:8},children:showChapterTimeline?/*#__PURE__*/_jsx(SegmentedChapterTimeline,{duration:state.duration||0,progress:state.progress||0,chapters:props.manualChapters||[],onSeek:sec=>{if(props.sourceType===\"youtube\"&&youtubePlayer.current?.seekTo){youtubePlayer.current.seekTo(sec,true);}else if(props.sourceType===\"vimeo\"&&vimeoPlayer.current?.setCurrentTime){vimeoPlayer.current.setCurrentTime(sec).catch(()=>{});}else if(refs.video.current){refs.video.current.currentTime=sec;}setState(p=>({...p,progress:sec}));},color:props.controlsStyle?.progressColor||\"#FF0000\",bg:\"rgba(255,255,255,0.2)\",height:6,hoverHeight:10,segmentGap:props.controlsStyle?.segmentGap||1}):/* Fallback: your original progress slider *//*#__PURE__*/_jsx(\"input\",{type:\"range\",min:\"0\",max:state.duration||100,value:state.progress,onChange:handleProgressChange,onMouseUp:handleProgressEnd,onTouchEnd:handleProgressEnd,style:{...styles.rangeInput,width:\"100%\",background:`linear-gradient(to right, ${props.controlsStyle?.progressColor||\"#FF0000\"} ${state.progress/(state.duration||1)*100}%, rgba(255,255,255,0.2) ${state.progress/(state.duration||1)*100}%)`}})}),props.controls?.showTime&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",gap:\"2px\"},children:[/*#__PURE__*/_jsxs(\"span\",{style:{color:props.style?.controlsColor||\"#FFF\",fontSize:\"14px\",userSelect:\"none\",fontFamily:\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\"},children:[formatTime(state.progress),\" /\",\" \",formatTime(state.duration)]}),props.mode===\"multiple\"&&/*#__PURE__*/_jsxs(\"span\",{style:{color:props.style?.controlsColor||\"#FFF\",fontSize:\"12px\",opacity:.8,userSelect:\"none\",fontFamily:\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\"},children:[state.currentVideoIndex+1,\" of\",\" \",state.totalVideos]})]}),props.controls?.showVolume&&hasAudio&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:\"8px\"},children:[/*#__PURE__*/_jsx(\"button\",{onClick:handleMute,className:\"video-player-button\",style:styles.button,onKeyDown:e=>{if(e.key===\" \"||e.key===\"Enter\"){e.preventDefault();handleMute();}},\"aria-label\":state.muted?\"Unmute video\":\"Mute video\",\"aria-pressed\":state.muted,tabIndex:0,children:/*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:props.controlsStyle?.controlsColor||\"#FFF\",\"aria-hidden\":\"true\",children:state.muted?/*#__PURE__*/_jsx(\"path\",{d:\"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z\"}):/*#__PURE__*/_jsx(\"path\",{d:\"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\"})})}),/*#__PURE__*/_jsx(\"input\",{type:\"range\",min:0,max:1,step:.1,value:state.volume,onChange:handleVolumeChange,style:{...styles.rangeInput,width:\"80px\",background:`linear-gradient(to right, ${props.controlsStyle?.progressColor||\"#FF0000\"} ${state.volume*100}%, rgba(255,255,255,0.2) ${state.volume*100}%)`},\"aria-label\":`Volume: ${Math.round(state.volume*100)}%`,\"aria-valuemin\":0,\"aria-valuemax\":100,\"aria-valuenow\":Math.round(state.volume*100)})]}),showSpeedControl&&props.controls?.showSpeed&&/*#__PURE__*/_jsx(\"select\",{value:state.speed,onChange:handleSpeedChange,style:{background:\"none\",border:\"none\",color:props.style?.controlsColor||\"#FFF\",fontSize:\"14px\",cursor:\"pointer\",padding:\"4px 8px\",borderRadius:\"6px\",fontFamily:\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\"},children:[.25,.5,.75,1,1.25,1.5,2].map(speed=>/*#__PURE__*/_jsxs(\"option\",{value:speed,children:[speed,\"x\"]},speed))}),props.controls?.showPictureInPicture&&pipSupported&&props.sourceType!==\"youtube\"&&props.sourceType!==\"vimeo\"&&/*#__PURE__*/_jsx(\"button\",{onClick:togglePictureInPicture,className:\"video-player-button\",style:styles.button,onKeyDown:e=>{if(e.key===\" \"||e.key===\"Enter\"){e.preventDefault();togglePictureInPicture();}},\"aria-label\":!state.isPiP?\"Enable Picture-in-Picture\":\"Disable Picture-in-Picture\",\"aria-pressed\":state.isPiP,tabIndex:0,title:!state.isPiP?\"Click to enable Picture-in-Picture\":\"Picture-in-Picture\",children:/*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:props.controlsStyle?.controlsColor||\"#FFF\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M19 7h-8v6h8V7zm2-4H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.9 2 1.9h18c1.1 0 2-.9 2-1.9V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z\"})})}),props.controls?.showFullscreen&&/*#__PURE__*/_jsx(\"button\",{onClick:toggleFullscreen,className:\"video-player-button\",style:styles.button,onKeyDown:e=>{if(e.key===\" \"||e.key===\"Enter\"){e.preventDefault();toggleFullscreen();}},\"aria-label\":state.fullscreen?\"Exit fullscreen\":\"Enter fullscreen\",\"aria-pressed\":state.fullscreen,tabIndex:0,children:/*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:props.controlsStyle?.controlsColor||\"#FFF\",\"aria-hidden\":\"true\",children:state.fullscreen?/*#__PURE__*/_jsx(\"path\",{d:\"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z\"}):/*#__PURE__*/_jsx(\"path\",{d:\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"})})})]})})]});}// Property Controls\naddPropertyControls(CustomVideoPlayer,{// Source Type Control (unchanged)\nsourceType:{type:ControlType.Enum,title:\"Source Type\",options:[\"file\",\"url\",\"youtube\",\"vimeo\"],optionTitles:[\"File Upload\",\"Direct URL\",\"YouTube\",\"Vimeo\"],defaultValue:\"file\"},// NEW: Mode Control\nmode:{type:ControlType.Enum,title:\"Mode\",options:[\"single\",\"multiple\"],optionTitles:[\"Single Video\",\"Playlist\"],defaultValue:\"single\"},// SINGLE MODE CONTROLS (existing, now conditional)\nvideoFile:{type:ControlType.File,title:\"Video File\",allowedFileTypes:[\"mp4\",\"webm\",\"ogg\"],hidden:props=>props.sourceType!==\"file\"||props.mode!==\"single\"},videoUrl:{type:ControlType.String,title:\"Video URL\",defaultValue:\"\",hidden:props=>props.sourceType!==\"url\"||props.mode!==\"single\"},youtubeId:{type:ControlType.String,title:\"YouTube URL/ID\",defaultValue:\"\",hidden:props=>props.sourceType!==\"youtube\"||props.mode!==\"single\",description:\"Paste a YouTube video/Shorts URL or video ID\"},vimeoId:{type:ControlType.String,title:\"Vimeo Video ID\",defaultValue:\"\",hidden:props=>props.sourceType!==\"vimeo\"||props.mode!==\"single\",description:\"Enter Vimeo video ID (e.g., 123456789)\"},// NEW: MULTIPLE MODE CONTROLS (playlist arrays)\nvideoFiles:{type:ControlType.Array,title:\"Video Files\",propertyControl:{type:ControlType.File,allowedFileTypes:[\"mp4\",\"webm\",\"ogg\"]},hidden:props=>props.sourceType!==\"file\"||props.mode!==\"multiple\",description:\"Add multiple video files to create a playlist\"},videoUrls:{type:ControlType.Array,title:\"Video URLs\",propertyControl:{type:ControlType.String},hidden:props=>props.sourceType!==\"url\"||props.mode!==\"multiple\",description:\"Add multiple video URLs to create a playlist\"},youtubeIds:{type:ControlType.Array,title:\"YouTube Videos\",propertyControl:{type:ControlType.String},hidden:props=>props.sourceType!==\"youtube\"||props.mode!==\"multiple\",description:\"Add YouTube video/Shorts URLs or video IDs\"},vimeoIds:{type:ControlType.Array,title:\"Vimeo Videos\",propertyControl:{type:ControlType.String},hidden:props=>props.sourceType!==\"vimeo\"||props.mode!==\"multiple\",description:\"Add multiple Vimeo video IDs\"},// Main Controls Toggle\nshowControls:{type:ControlType.Boolean,title:\"Show Controls\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},// Controls Mode\ncontrolsMode:{type:ControlType.Enum,title:\"Controls Mode\",defaultValue:\"default\",options:[\"default\",\"minimal\"],optionTitles:[\"Default\",\"Minimal\"],hidden:props=>!props.showControls,description:\"Choose between full controls or minimal Wistia-style controls\"},// Loop Control (move to top level)\nloop:{type:ControlType.Boolean,title:\"Loop Video\",defaultValue:false},// Autoplay Setting\nautoPlay:{type:ControlType.Boolean,title:\"Auto Play\",defaultValue:false},// Manual Chapters\nmanualChapters:{type:ControlType.Array,title:\"Chapters\",propertyControl:{type:ControlType.Object,controls:{title:{type:ControlType.String,title:\"Title\",defaultValue:\"Intro\"},minutes:{type:ControlType.Number,title:\"Minutes\",defaultValue:0,min:0,// Remove max: 999 limitation\nstep:1},seconds:{type:ControlType.Number,title:\"Seconds\",defaultValue:0,min:0,max:59,step:1}}},hidden:props=>!props.showControls||props.mode===\"multiple\",description:\"Add chapters with start times (minutes:seconds)\"},// Add this after manualChapters in your property controls\nchaptersMode:{type:ControlType.Enum,title:\"Chapters Mode\",options:[\"embedded\",\"external\"],optionTitles:[\"Embedded\",\"External\"],defaultValue:\"embedded\",hidden:props=>!props.showControls||props.mode===\"multiple\",description:\"Embedded shows chapters in video timeline, External syncs with separate chapter component\"},// Controls Settings (only shown if showControls is true)\ncontrols:{type:ControlType.Object,title:\"Controls\",hidden:props=>!props.showControls,controls:{showPlayPause:{type:ControlType.Boolean,title:\"Play/Pause\",defaultValue:true},showProgress:{type:ControlType.Boolean,title:\"Progress\",defaultValue:true},showTime:{type:ControlType.Boolean,title:\"Time\",defaultValue:true},showVolume:{type:ControlType.Boolean,title:\"Volume\",defaultValue:true},showSpeed:{type:ControlType.Boolean,title:\"Speed\",defaultValue:true},showFullscreen:{type:ControlType.Boolean,title:\"Fullscreen\",defaultValue:true},showPictureInPicture:{type:ControlType.Boolean,title:\"PiP\",defaultValue:true,description:\"Picture-in-Picture mode\",hidden:props=>props.sourceType===\"youtube\"||props.sourceType===\"vimeo\"}},description:\"Toggle individual control buttons\"},// Poster Image\nposterImage:{type:ControlType.File,title:\"Poster Image\",allowedFileTypes:[\"jpg\",\"jpeg\",\"png\",\"webp\"],description:\"Thumbnail image shown before video plays\"},// Accessibility\naccessibility:{type:ControlType.Object,title:\"A11y\",controls:{title:{type:ControlType.String,title:\"Title\",defaultValue:\"\"},description:{type:ControlType.String,title:\"Desc\",defaultValue:\"\"},language:{type:ControlType.String,title:\"Lang\",defaultValue:\"en\"},hasSubtitles:{type:ControlType.Boolean,title:\"Subtitles\",defaultValue:false},hasAudioDescription:{type:ControlType.Boolean,title:\"Audio Desc\",defaultValue:false}},description:\"Screen reader & accessibility settings\"},// Video Style Settings\nstyle:{type:ControlType.Object,title:\"Style\",controls:{backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#000000\"},cornerRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:8,min:0,// Remove max: 32 limitation\nstep:1,unit:\"px\"},videoFit:{type:ControlType.Enum,title:\"Video Fit\",defaultValue:\"cover\",options:[\"cover\",\"contain\",\"fill\"],optionTitles:[\"Cover\",\"Contain\",\"Fill\"]}}},// Controls Style (only shown if showControls is true)\ncontrolsStyle:{type:ControlType.Object,title:\"Controls Style\",hidden:props=>!props.showControls,controls:{controlsColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FFFFFF\"},progressColor:{type:ControlType.Color,title:\"Progress\",defaultValue:\"#FF0000\"},controlsOpacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:.6,min:0,max:1,step:.1},segmentGap:{type:ControlType.Number,title:\"Chapter Gap\",defaultValue:1,min:0,// Remove max: 5 limitation\nstep:.5,unit:\"px\"}}},// Playback Settings\ndefaultSettings:{type:ControlType.Object,title:\"Defaults\",controls:{muted:{type:ControlType.Boolean,title:\"Start Muted\",defaultValue:false},volume:{type:ControlType.Number,title:\"Volume\",defaultValue:1,min:0,max:1,step:.1},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:1,min:.25,max:2,step:.25}}},// Custom Play Button\nuseCustomPlayButton:{type:ControlType.Boolean,title:\"Custom Play\",defaultValue:false},customPlayButton:{type:ControlType.ComponentInstance,title:\"Play Button\",hidden:props=>!props.useCustomPlayButton,description:\"Pick any canvas layer/component to use as the play button\"},showPlayButtonOnlyOnInitial:{type:ControlType.Boolean,title:\"Only on Initial\",defaultValue:true,hidden:props=>!props.useCustomPlayButton,description:\"Show custom play button only before first play (recommended for autoplay-disabled videos)\"},// Pause Overlay\nplayOverlay:{type:ControlType.Object,title:\"Pause Overlay\",controls:{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:true},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(255,255,255,0.12)\"},blur:{type:ControlType.Number,title:\"Blur\",defaultValue:6,min:0,step:1,unit:\"px\"}}},// Button Style Settings\nbuttonStyle:{type:ControlType.Object,title:\"Play Button\",controls:{playButtonSize:{type:ControlType.Number,title:\"Size\",defaultValue:50,min:44,// Remove max: 100 limitation\nstep:5,unit:\"px\"},playIconSize:{type:ControlType.Number,title:\"Icon Size\",defaultValue:24,min:10,// Remove max: 50 limitation\nstep:2,unit:\"px\"},playIconColor:{type:ControlType.Color,title:\"Icon Color\",defaultValue:\"#FFFFFF\"},playButtonBackgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(0, 0, 0, 0.5)\"},playButtonBlur:{type:ControlType.Number,title:\"Blur\",defaultValue:10,min:0,// Remove max: 20 limitation\nstep:1,unit:\"px\"},playButtonBorderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:8,min:0,// Remove max: 50 limitation\nstep:1,unit:\"px\"},customPlayIcon:{type:ControlType.File,title:\"Custom Icon\",allowedFileTypes:[\"png\",\"jpg\",\"svg\"]}},description:\"Style the main play button overlay\"},// Glow\nglow:{type:ControlType.Object,title:\"Glow\",controls:{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:false},intensity:{type:ControlType.Number,title:\"Intensity\",defaultValue:.6,min:0,max:1,step:.05},blur:{type:ControlType.Number,title:\"Blur\",defaultValue:50,min:0,max:150,step:2,unit:\"px\"},spread:{type:ControlType.Number,title:\"Spread\",defaultValue:20,min:0,max:80,step:2,unit:\"px\"}},description:\"Ambient glow sampled from video (file only). YouTube/Vimeo use progress color fallback.\"}});// Default Props\nCustomVideoPlayer.defaultProps={sourceType:\"file\",mode:\"single\",videoFile:\"https://example.com/video.mp4\",videoUrl:\"\",youtubeId:\"\",vimeoId:\"\",videoFiles:[],videoUrls:[],youtubeIds:[],vimeoIds:[],autoPlay:false,showControls:true,controlsMode:\"default\",loop:false,manualChapters:[],chaptersMode:\"embedded\",posterImage:null,useCustomPlayButton:false,customPlayButton:null,showPlayButtonOnlyOnInitial:true,playOverlay:{enabled:true,color:\"rgba(255,255,255,0.12)\",blur:6},accessibility:{title:\"\",description:\"\",language:\"en\",hasSubtitles:false,hasAudioDescription:false},style:{backgroundColor:\"#000000\",cornerRadius:8,videoFit:\"cover\"},controlsStyle:{controlsColor:\"#FFFFFF\",progressColor:\"#FF0000\",controlsOpacity:.6,segmentGap:1},controls:{showPlayPause:true,showProgress:true,showTime:true,showVolume:true,showSpeed:true,showFullscreen:true,showPictureInPicture:true},defaultSettings:{muted:false,volume:1,speed:1},buttonStyle:{playButtonSize:50,playIconSize:24,playIconColor:\"#FFFFFF\",playButtonBackgroundColor:\"rgba(0, 0, 0, 0.5)\",playButtonBlur:10,playButtonBorderRadius:8,customPlayIcon:null},glow:{enabled:false,intensity:.6,blur:50,spread:20}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CustomVideoPlayer\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FlowPlay_Custom_Videos.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";// In Framer: create a Code Component, replace its contents with this file,\n// then insert ReadMore. Set Width to Fill and Height to Fit Content.\n// Place it in a vertical Stack with Fit Content height so content below moves.\n// This component accepts plain text, including paragraph breaks, or CMS text.\nconst exampleText=\"The Grove Academy is a nurturing group of Early Education Centres specialising in high-quality care and education for children from birth to five years.\\n\\nAdd your remaining body copy here. This paragraph is placeholder text: replace it with the full content you want visitors to reveal when they click Read more.\";const bodyFont={fontFamily:'\"Montserrat\", sans-serif',fontSize:\"18px\",fontWeight:400,lineHeight:\"1.55em\",letterSpacing:\"0em\"};const labelFont={...bodyFont,fontWeight:600,lineHeight:\"1.4em\"};/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 515\n * @framerIntrinsicHeight 120\n */export default function ReadMore({text=exampleText,lines=3,color=\"#FFFFFF\",toggleColor=\"#FFFFFF\",font=bodyFont,buttonFont=labelFont,moreLabel=\"Read more\",lessLabel=\"Read less\",gap=12,showArrow=true,defaultExpanded=false,style}){const[expanded,setExpanded]=React.useState(defaultExpanded);const[overflows,setOverflows]=React.useState(false);const rootRef=React.useRef(null);const measureRef=React.useRef(null);const contentId=React.useId();const lineLimit=Math.max(1,Math.round(lines));React.useEffect(()=>{setExpanded(defaultExpanded);},[defaultExpanded,text]);React.useEffect(()=>{const root=rootRef.current;const measureElement=measureRef.current;if(!root||!measureElement)return;let active=true;const measure=()=>{if(!active||measureElement.clientWidth===0)return;setOverflows(measureElement.scrollHeight>measureElement.clientHeight+1);};// Keep measuring a collapsed copy, even when the visible text is open.\n// Respond to responsive widths, content edits and web font loading.\nmeasure();const observer=typeof ResizeObserver!==\"undefined\"?new ResizeObserver(measure):null;observer?.observe(root);observer?.observe(measureElement);window.addEventListener(\"resize\",measure);document.fonts?.ready.then(measure);document.fonts?.addEventListener(\"loadingdone\",measure);return()=>{active=false;observer?.disconnect();window.removeEventListener(\"resize\",measure);document.fonts?.removeEventListener(\"loadingdone\",measure);};},[text,lineLimit,font]);const textStyle={...bodyFont,...font,color,margin:0,padding:0,border:0,width:\"100%\",minWidth:0,boxSizing:\"border-box\",whiteSpace:\"pre-wrap\",overflowWrap:\"anywhere\"};const clampStyle={display:\"-webkit-box\",WebkitBoxOrient:\"vertical\",WebkitLineClamp:lineLimit,overflow:\"hidden\"};return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,style:{width:\"100%\",...style,height:\"auto\",minWidth:0,position:\"relative\",boxSizing:\"border-box\",display:\"flex\",flexDirection:\"column\",alignItems:\"stretch\",gap},children:[/*#__PURE__*/_jsx(\"div\",{id:contentId,style:{...textStyle,...expanded?{}:clampStyle},children:text}),overflows&&/*#__PURE__*/_jsxs(\"button\",{type:\"button\",\"aria-expanded\":expanded,\"aria-controls\":contentId,onClick:()=>setExpanded(value=>!value),style:{...labelFont,...buttonFont,color:toggleColor,appearance:\"none\",background:\"transparent\",border:0,borderRadius:2,padding:0,margin:0,cursor:\"pointer\",alignSelf:\"flex-start\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"flex-start\",gap:6,textAlign:\"left\",flexShrink:0},children:[expanded?lessLabel:moreLabel,showArrow&&/*#__PURE__*/_jsx(\"svg\",{\"aria-hidden\":\"true\",width:\"12\",height:\"12\",viewBox:\"0 0 16 16\",fill:\"none\",style:{flexShrink:0,transform:expanded?\"rotate(180deg)\":undefined},children:/*#__PURE__*/_jsx(\"path\",{d:\"m4 6 4 4 4-4\",stroke:\"currentColor\",strokeWidth:\"1.75\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})]}),/*#__PURE__*/_jsx(\"div\",{ref:measureRef,\"aria-hidden\":\"true\",style:{...textStyle,...clampStyle,position:\"absolute\",top:0,left:0,visibility:\"hidden\",pointerEvents:\"none\",userSelect:\"none\"},children:text})]});}addPropertyControls(ReadMore,{text:{type:ControlType.String,title:\"Text\",displayTextArea:true,defaultValue:exampleText},lines:{type:ControlType.Number,title:\"Preview lines\",defaultValue:3,min:1,max:30,step:1,displayStepper:true},font:{type:ControlType.Font,title:\"Body font\",controls:\"extended\",defaultValue:bodyFont},color:{type:ControlType.Color,title:\"Text color\",defaultValue:\"#FFFFFF\"},buttonFont:{type:ControlType.Font,title:\"Toggle font\",controls:\"extended\",defaultValue:labelFont},toggleColor:{type:ControlType.Color,title:\"Toggle color\",defaultValue:\"#FFFFFF\"},moreLabel:{type:ControlType.String,title:\"More label\",defaultValue:\"Read more\"},lessLabel:{type:ControlType.String,title:\"Less label\",defaultValue:\"Read less\"},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:12,min:0,max:80,unit:\"px\"},showArrow:{type:ControlType.Boolean,title:\"Chevron\",defaultValue:true},defaultExpanded:{type:ControlType.Boolean,title:\"Start open\",defaultValue:false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ReadMore\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicWidth\":\"515\",\"framerIntrinsicHeight\":\"120\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ReadMore.map"],"mappings":"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"}