{"version":3,"file":"shared-lib.BfGiPpRF.mjs","names":["useRef","useState","useCallback","p","React.useContext","React.useMemo","React.Fragment","useRef","React.useId"],"sources":["https:/framerusercontent.com/modules/atkfBHfjZ8ibuJpAuLVt/ixjUtNad9ajE1TXBCfzH/VideoPlayerBunny.js","https:/framerusercontent.com/modules/oQftipfc0irekuT7kQBh/Bi0px5Z2NTf0HG5zzdEl/ft9iiICXR.js","https:/framerusercontent.com/modules/pIOjI7UKuLdJNaojSbsy/EUdazH558HieXqMF1Xdl/siteMetadata.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useRef,useEffect,useState,useCallback}from\"react\";// ─── Hardcoded like endpoint — change only here if URL ever changes ────────────\nconst LIKE_WEBHOOK_URL=\"https://script.google.com/macros/s/AKfycbyRYZ57aQu4FNZ67nl5jc1UIojy55ORw9Sn8qeFSxmUz_keL5Nlyrn2FYfampIViJOYYQ/exec\";// ─── Event bus keys ────────────────────────────────────────────────────────────\nconst EV_PLAY=\"bvp:play\";const EV_UNMUTE=\"bvp:unmute\";// ─── HLS.js lazy loader ───────────────────────────────────────────────────────\nlet _hlsPromise=null;function loadHlsJs(){if(typeof window===\"undefined\")return Promise.reject(new Error(\"SSR\"));if(window.Hls)return Promise.resolve(window.Hls);if(!_hlsPromise){_hlsPromise=new Promise((resolve,reject)=>{const s=document.createElement(\"script\");s.src=\"https://cdn.jsdelivr.net/npm/hls.js@1.5.15/dist/hls.min.js\";s.onload=()=>resolve(window.Hls);s.onerror=e=>{_hlsPromise=null;reject(e);};document.head.appendChild(s);});}return _hlsPromise;}// ─── URL helpers ───────────────────────────────────────────────────────────────\nconst isHlsUrl=url=>url.includes(\".m3u8\");// Extract Bunny Stream GUID; fall back to a stable hash of the URL\nfunction getVideoId(url){const m=url.match(/\\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\\//);if(m)return m[1];let h=0;for(let i=0;i<url.length;i++)h=Math.imul(31,h)+url.charCodeAt(i)|0;return Math.abs(h).toString(36);}// Derive Bunny Stream thumbnail from an HLS playlist URL\nfunction hlsPoster(url){return url.replace(\"playlist.m3u8\",\"thumbnail.jpg\");}// ─── Anonymous user ID (persisted across sessions) ────────────────────────────\nfunction getUserId(){try{let id=localStorage.getItem(\"bvp-user-id\");if(!id){id=Math.random().toString(36).slice(2)+Date.now().toString(36);localStorage.setItem(\"bvp-user-id\",id);}return id;}catch{return\"anon\";}}// Check localStorage for a previously saved like\nfunction isLiked(videoId){try{return localStorage.getItem(`bvp-liked-${videoId}`)===\"1\";}catch{return false;}}// JSONP request — creates a temporary script tag to bypass CORS on Apps Script GET\nfunction jsonpFetch(baseUrl,params){return new Promise((resolve,reject)=>{const cbName=`_bvp_cb_${Math.random().toString(36).slice(2)}`;const qs=Object.entries({...params,callback:cbName}).map(([k,v])=>`${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join(\"&\");const script=document.createElement(\"script\");script.src=`${baseUrl}?${qs}`;const cleanup=()=>{delete window[cbName];script.remove();};window[cbName]=data=>{cleanup();resolve(data);};script.onerror=()=>{cleanup();reject(new Error(\"JSONP failed\"));};document.head.appendChild(script);});}// Fetch like count + liked state from the backend\nasync function fetchCount(url,videoId,userId,apiKey){try{if(url.includes(\"supabase.co\")){const headers={\"Content-Type\":\"application/json\"};if(apiKey){headers[\"apikey\"]=apiKey;headers[\"Authorization\"]=`Bearer ${apiKey}`;}const r=await fetch(`${url}/rest/v1/video_likes?video_id=eq.${encodeURIComponent(videoId)}&select=count`,{headers});if(!r.ok)return null;const d=await r.json();const count=Array.isArray(d)&&d[0]?d[0].count:0;return{count,liked:isLiked(videoId)};}else{// Google Apps Script — JSONP bypasses the CORS redirect\n// Apps Script must return: ContentService.createTextOutput(callback+\"(\"+JSON.stringify({count,liked})+\")\")\nreturn await jsonpFetch(url,{videoId,userId});}}catch{return null;}}// Send a like/unlike action to the backend\nasync function postLike(url,videoId,userId,action,meta,apiKey){try{if(url.includes(\"supabase.co\")){const headers={\"Content-Type\":\"application/json\"};if(apiKey){headers[\"apikey\"]=apiKey;headers[\"Authorization\"]=`Bearer ${apiKey}`;}const r=await fetch(`${url}/rest/v1/rpc/toggle_like`,{method:\"POST\",headers,body:JSON.stringify({vid:videoId,delta:action===\"like\"?1:-1})});if(!r.ok)return null;const count=await r.json();return{count,liked:action===\"like\"};}else{// Apps Script POST: Content-Type text/plain avoids CORS preflight;\n// mode no-cors makes the response opaque — optimistic update is used instead.\nawait fetch(url,{method:\"POST\",mode:\"no-cors\",headers:{\"Content-Type\":\"text/plain\"},body:JSON.stringify({videoId,userId,action,...meta})});return null;}}catch{return null;}}// ─── Layout maps ───────────────────────────────────────────────────────────────\nconst FIT_MAP={fit:\"contain\",fill:\"cover\",stretch:\"fill\",tile:\"cover\"};const POS_MAP={topLeft:\"0% 0%\",topCenter:\"50% 0%\",topRight:\"100% 0%\",left:\"0% 50%\",center:\"50% 50%\",right:\"100% 50%\",bottomLeft:\"0% 100%\",bottomCenter:\"50% 100%\",bottomRight:\"100% 100%\"};// ─── Global CSS animations ─────────────────────────────────────────────────────\nconst GLOBAL_CSS=`\n@keyframes bvp-spin {from{transform:rotate(0deg)}to{transform:rotate(360deg)}}\n@keyframes bvp-dot  {0%,80%,100%{opacity:0}40%{opacity:1}}\n@keyframes bvp-pop  {0%{transform:scale(1)}50%{transform:scale(1.35)}100%{transform:scale(1)}}\n.bvp-spin{animation:bvp-spin 1s linear infinite}\n.bvp-d1{animation:bvp-dot 1.4s infinite ease-in-out;animation-delay:0s}\n.bvp-d2{animation:bvp-dot 1.4s infinite ease-in-out;animation-delay:.2s}\n.bvp-d3{animation:bvp-dot 1.4s infinite ease-in-out;animation-delay:.4s}\n.bvp-pop{animation:bvp-pop .3s ease}\n`;// ─── Shared sub-components ────────────────────────────────────────────────────\nfunction Btn({onClick,size,children}){return /*#__PURE__*/_jsx(\"button\",{onClick:onClick,style:{background:\"none\",border:\"none\",padding:0,margin:0,outline:\"none\",cursor:\"pointer\",flexShrink:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:size,height:size},children:children});}function Ico({src,size,fb}){return src?/*#__PURE__*/_jsx(\"img\",{src:src,width:size,height:size,alt:\"\",style:{objectFit:\"contain\",display:\"block\"}}):/*#__PURE__*/_jsx(\"span\",{style:{fontSize:size*.65,lineHeight:1,color:\"#fff\",userSelect:\"none\"},children:fb});}// ─── Main component ───────────────────────────────────────────────────────────\nexport default function BunnyVideoPlayer({videoUrl=\"\",autoPlay=true,loop=true,videoTitle=\"\",showControls=true,showLike=false,showLikeCount=false,showPlayButton=true,showMuteButton=true,showFullscreenButton=true,showSeekBar=false,seekBarColor=\"#ffffff\",seekBarBgColor=\"rgba(255,255,255,0.35)\",seekBarRadius=2,clickToPlay=false,posterMode=\"custom\",poster,useTextPreloader=false,preloaderIcon,preloaderText=\"Loading\",preloaderFontSize=14,preloaderFontFamily=\"inherit\",preloaderFontWeight=400,preloaderColor=\"#ffffff\",playIcon,pauseIcon,muteIcon,unmuteIcon,fullscreenIcon,likeIcon,likeIconActive,iconSizeDesktop=32,iconSizeTablet=28,iconSizeMobile=24,likeApiKey=\"\",pauseOnOtherPlay=false,muteOnOtherUnmute=false,pauseOnLeave=false,muteOnLeave=false,unloadOnLeave=false,fillMode=\"fill\",objectPosition=\"center\",focalPointX=.5,focalPointY=.5,style}){const containerRef=useRef(null);const videoRef=useRef(null);const hlsRef=useRef(null);const uid=useRef(`bvp-${Math.random().toString(36).slice(2)}`);const videoUrlRef=useRef(videoUrl);videoUrlRef.current=videoUrl;const videoId=getVideoId(videoUrl||uid.current);const[playing,setPlaying]=useState(false);const[muted,setMuted]=useState(true);const[loading,setLoading]=useState(false);const[iconSize,setIconSize]=useState(iconSizeDesktop);const userId=useRef(\"anon\");const[liked,setLiked]=useState(false);const[likeCount,setLikeCount]=useState(null);const[likeAnim,setLikeAnim]=useState(false);const[progress,setProgress]=useState(0);const[seekHover,setSeekHover]=useState(false);const seekBarRef=useRef(null);const isDragging=useRef(false);// Hydration-safe: read localStorage only after mount (unavailable during SSR)\nuseEffect(()=>{userId.current=getUserId();setLiked(isLiked(videoId));},[videoId]);// ── Seek bar progress tracking ──────────────────────────────────────────────\nuseEffect(()=>{const v=videoRef.current;if(!v)return;const onTime=()=>{if(v.duration)setProgress(v.currentTime/v.duration);};v.addEventListener(\"timeupdate\",onTime);return()=>v.removeEventListener(\"timeupdate\",onTime);},[]);const seekRatio=clientX=>{const bar=seekBarRef.current;if(!bar)return 0;const rect=bar.getBoundingClientRect();return Math.max(0,Math.min(1,(clientX-rect.left)/rect.width));};const applySeek=clientX=>{const ratio=seekRatio(clientX);setProgress(ratio);const v=videoRef.current;if(v&&v.duration)v.currentTime=ratio*v.duration;};const handleSeekMouseDown=e=>{e.preventDefault();applySeek(e.clientX);isDragging.current=true;const onMove=ev=>{if(isDragging.current)applySeek(ev.clientX);};const onUp=()=>{isDragging.current=false;document.removeEventListener(\"mousemove\",onMove);document.removeEventListener(\"mouseup\",onUp);};document.addEventListener(\"mousemove\",onMove);document.addEventListener(\"mouseup\",onUp);};const handleSeekTouchStart=e=>{e.preventDefault();applySeek(e.touches[0].clientX);isDragging.current=true;const onMove=ev=>{if(isDragging.current&&ev.touches[0])applySeek(ev.touches[0].clientX);};const onEnd=()=>{isDragging.current=false;document.removeEventListener(\"touchmove\",onMove);document.removeEventListener(\"touchend\",onEnd);};document.addEventListener(\"touchmove\",onMove,{passive:false});document.addEventListener(\"touchend\",onEnd);};const computedPoster=posterMode===\"hls\"&&isHlsUrl(videoUrl)?hlsPoster(videoUrl):poster;// ── HLS / MP4 init ──────────────────────────────────────────────────────────\nconst initSource=useCallback((url,v)=>{if(!url)return;if(hlsRef.current){hlsRef.current.destroy();hlsRef.current=null;}v.removeAttribute(\"src\");v.load();setLoading(true);v.muted=true;setMuted(true);if(isHlsUrl(url)){if(v.canPlayType(\"application/vnd.apple.mpegurl\")){// Safari: native HLS\nv.src=url;if(autoPlay)v.play().then(()=>setPlaying(true)).catch(()=>{});}else{// Chrome / Firefox: hls.js\nloadHlsJs().then(Hls=>{if(!Hls.isSupported())return;const hls=new Hls({startLevel:-1,capLevelToPlayerSize:true});hlsRef.current=hls;hls.loadSource(url);hls.attachMedia(v);hls.on(Hls.Events.MANIFEST_PARSED,()=>{setLoading(false);if(autoPlay)v.play().then(()=>setPlaying(true)).catch(()=>{});});hls.on(Hls.Events.ERROR,(_,d)=>{if(d.fatal)setLoading(false);});}).catch(()=>setLoading(false));}}else{// Plain MP4\nv.src=url;if(autoPlay)v.play().then(()=>setPlaying(true)).catch(()=>{});}},[autoPlay]);useEffect(()=>{const v=videoRef.current;if(!v)return;initSource(videoUrl,v);return()=>{if(hlsRef.current){hlsRef.current.destroy();hlsRef.current=null;}};},[videoUrl,initSource]);// React does not sync the `muted` prop to the DOM attribute — set it directly\nuseEffect(()=>{if(videoRef.current)videoRef.current.muted=true;},[]);// ── Responsive icon size ────────────────────────────────────────────────────\nuseEffect(()=>{const upd=()=>{const w=window.innerWidth;setIconSize(w<768?iconSizeMobile:w<1024?iconSizeTablet:iconSizeDesktop);};upd();window.addEventListener(\"resize\",upd);return()=>window.removeEventListener(\"resize\",upd);},[iconSizeDesktop,iconSizeTablet,iconSizeMobile]);// ── Load initial like count from backend ────────────────────────────────────\nuseEffect(()=>{if(!showLike||!LIKE_WEBHOOK_URL)return;fetchCount(LIKE_WEBHOOK_URL,videoId,userId.current,likeApiKey).then(result=>{if(result===null)return;setLikeCount(result.count);setLiked(result.liked);try{result.liked?localStorage.setItem(`bvp-liked-${videoId}`,\"1\"):localStorage.removeItem(`bvp-liked-${videoId}`);}catch{}});},[showLike,LIKE_WEBHOOK_URL,likeApiKey,videoId]);// ── Cross-video event bus ───────────────────────────────────────────────────\nuseEffect(()=>{const id=uid.current;const onPlay=e=>{const{id:from}=e.detail;if(from===id)return;if(pauseOnOtherPlay&&videoRef.current){videoRef.current.pause();setPlaying(false);}};const onUnmute=e=>{const{id:from}=e.detail;if(from===id)return;if(muteOnOtherUnmute&&videoRef.current){videoRef.current.muted=true;setMuted(true);}};window.addEventListener(EV_PLAY,onPlay);window.addEventListener(EV_UNMUTE,onUnmute);return()=>{window.removeEventListener(EV_PLAY,onPlay);window.removeEventListener(EV_UNMUTE,onUnmute);};},[pauseOnOtherPlay,muteOnOtherUnmute]);// ── Viewport observer ───────────────────────────────────────────────────────\nuseEffect(()=>{const v=videoRef.current;if(!v||!pauseOnLeave&&!muteOnLeave&&!unloadOnLeave)return;const obs=new IntersectionObserver(([entry])=>{if(!entry.isIntersecting){if(pauseOnLeave){v.pause();setPlaying(false);}if(muteOnLeave){v.muted=true;setMuted(true);}if(unloadOnLeave){if(hlsRef.current){hlsRef.current.destroy();hlsRef.current=null;}v.pause();v.removeAttribute(\"src\");v.load();setPlaying(false);}}else if(unloadOnLeave&&!v.hasAttribute(\"src\")&&videoUrlRef.current){initSource(videoUrlRef.current,v);}},{threshold:.1});obs.observe(v);return()=>obs.disconnect();},[pauseOnLeave,muteOnLeave,unloadOnLeave,initSource]);// ── Controls ────────────────────────────────────────────────────────────────\nconst togglePlay=()=>{const v=videoRef.current;if(!v)return;if(v.paused){v.play().then(()=>{setPlaying(true);window.dispatchEvent(new CustomEvent(EV_PLAY,{detail:{id:uid.current}}));}).catch(()=>{});}else{v.pause();setPlaying(false);}};const toggleMute=()=>{const v=videoRef.current;if(!v)return;v.muted=!v.muted;setMuted(v.muted);if(!v.muted)window.dispatchEvent(new CustomEvent(EV_UNMUTE,{detail:{id:uid.current}}));};const toggleFullscreen=()=>{const el=containerRef.current;const v=videoRef.current;if(!el||!v)return;if(document.fullscreenElement||document.webkitFullscreenElement){(document.exitFullscreen??document.webkitExitFullscreen)?.call(document);}else if(el.requestFullscreen){// Android / desktop: fullscreen on container, unlock orientation so auto-rotate works\nel.requestFullscreen().then(()=>{try{screen.orientation?.unlock?.();}catch{}}).catch(()=>{});}else if(v.webkitEnterFullscreen){v.webkitEnterFullscreen();}};const toggleLike=async()=>{const action=liked?\"unlike\":\"like\";// Optimistic update\nconst nextLiked=!liked;setLiked(nextLiked);try{nextLiked?localStorage.setItem(`bvp-liked-${videoId}`,\"1\"):localStorage.removeItem(`bvp-liked-${videoId}`);}catch{}setLikeAnim(true);setTimeout(()=>setLikeAnim(false),350);setLikeCount(c=>c!==null?Math.max(0,c+(action===\"like\"?1:-1)):null);if(LIKE_WEBHOOK_URL){// Always derive thumbnail from Bunny Stream URL when available, regardless of posterMode\nconst thumbUrl=isHlsUrl(videoUrl)?hlsPoster(videoUrl):poster??\"\";const result=await postLike(LIKE_WEBHOOK_URL,videoId,userId.current,action,{title:videoTitle,thumbnailUrl:thumbUrl,videoUrl},likeApiKey);// Sync server count if available (Supabase only; Apps Script returns null — no-cors)\nif(result!==null){setLikeCount(result.count);setLiked(result.liked);}}};// ── Layout ──────────────────────────────────────────────────────────────────\nconst objPos=objectPosition===\"focalPoint\"?`${focalPointX*100}% ${focalPointY*100}%`:POS_MAP[objectPosition]??\"50% 50%\";const objFit=FIT_MAP[fillMode]??\"cover\";// ── Render ──────────────────────────────────────────────────────────────────\nreturn /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",background:\"#000\",...style},children:[/*#__PURE__*/_jsx(\"style\",{children:GLOBAL_CSS}),/*#__PURE__*/_jsx(\"video\",{ref:videoRef,poster:computedPoster,loop:loop,playsInline:true,onWaiting:()=>setLoading(true),onCanPlay:()=>setLoading(false),onPlaying:()=>{setLoading(false);setPlaying(true);},onPause:()=>setPlaying(false),style:{width:\"100%\",height:\"100%\",display:\"block\",objectFit:objFit,objectPosition:objPos}}),loading&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",pointerEvents:\"none\"},children:useTextPreloader?/*#__PURE__*/_jsxs(\"span\",{style:{display:\"inline-flex\",alignItems:\"baseline\",gap:1,fontSize:preloaderFontSize,fontFamily:preloaderFontFamily,fontWeight:preloaderFontWeight,color:preloaderColor},children:[preloaderText,/*#__PURE__*/_jsx(\"span\",{className:\"bvp-d1\",children:\".\"}),/*#__PURE__*/_jsx(\"span\",{className:\"bvp-d2\",children:\".\"}),/*#__PURE__*/_jsx(\"span\",{className:\"bvp-d3\",children:\".\"})]}):preloaderIcon?/*#__PURE__*/_jsx(\"img\",{src:preloaderIcon,width:iconSize,height:iconSize,alt:\"\",className:\"bvp-spin\",style:{objectFit:\"contain\"}}):null}),clickToPlay&&/*#__PURE__*/_jsx(\"div\",{onClick:togglePlay,style:{position:\"absolute\",inset:0,zIndex:1,cursor:\"pointer\"}}),showControls&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",bottom:0,left:0,right:0,zIndex:2,display:\"flex\",alignItems:\"center\",gap:8,padding:\"20px 12px 12px\",background:\"linear-gradient(to top, rgba(0,0,0,0.6), transparent)\"},children:[showPlayButton&&/*#__PURE__*/_jsx(Btn,{onClick:togglePlay,size:iconSize,children:/*#__PURE__*/_jsx(Ico,{src:playing?pauseIcon:playIcon,size:iconSize,fb:playing?\"⏸\":\"▶\"})}),showMuteButton&&/*#__PURE__*/_jsx(Btn,{onClick:toggleMute,size:iconSize,children:/*#__PURE__*/_jsx(Ico,{src:muted?unmuteIcon:muteIcon,size:iconSize,fb:muted?\"🔇\":\"🔊\"})}),showSeekBar?/*#__PURE__*/_jsx(\"div\",{ref:seekBarRef,onMouseEnter:()=>setSeekHover(true),onMouseLeave:()=>setSeekHover(false),onMouseDown:handleSeekMouseDown,onTouchStart:handleSeekTouchStart,style:{flex:1,display:\"flex\",alignItems:\"center\",padding:\"8px 0\",cursor:\"pointer\",userSelect:\"none\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",height:4,borderRadius:seekBarRadius,background:seekBarBgColor},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:0,top:0,bottom:0,width:`${progress*100}%`,borderRadius:seekBarRadius,background:seekBarColor,pointerEvents:\"none\"}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:`${progress*100}%`,top:\"50%\",transform:\"translate(-50%, -50%)\",opacity:seekHover?1:0,transition:\"opacity 0.2s\",pointerEvents:\"none\",width:12,height:12,borderRadius:\"50%\",background:seekBarColor}})]})}):/*#__PURE__*/_jsx(\"div\",{style:{flex:1}}),showLike&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:4},children:[/*#__PURE__*/_jsx(Btn,{onClick:toggleLike,size:iconSize,children:/*#__PURE__*/_jsx(\"span\",{className:likeAnim?\"bvp-pop\":\"\",style:{display:\"flex\"},children:/*#__PURE__*/_jsx(Ico,{src:liked?likeIconActive:likeIcon,size:iconSize,fb:liked?\"♥\":\"♡\"})})}),showLikeCount&&likeCount!==null&&/*#__PURE__*/_jsx(\"span\",{style:{color:\"#fff\",fontSize:iconSize*.45,lineHeight:1,minWidth:\"1.5em\"},children:likeCount>999?`${(likeCount/1e3).toFixed(1)}k`:likeCount})]}),showFullscreenButton&&/*#__PURE__*/_jsx(Btn,{onClick:toggleFullscreen,size:iconSize,children:/*#__PURE__*/_jsx(Ico,{src:fullscreenIcon,size:iconSize,fb:\"⛶\"})})]})]});}// ─── Property Controls ────────────────────────────────────────────────────────\naddPropertyControls(BunnyVideoPlayer,{// ── Video ──────────────────────────────────────────────────────────────────\nvideoUrl:{type:ControlType.String,title:\"Video URL\",placeholder:\"https://vz-xxx.b-cdn.net/{guid}/playlist.m3u8\",defaultValue:\"\"},videoTitle:{type:ControlType.String,title:\"Video Title\",placeholder:\"Used in the likes sheet\"},autoPlay:{type:ControlType.Boolean,title:\"Auto Play\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},// ── UI ────────────────────────────────────────────────────────────────────\nshowControls:{type:ControlType.Boolean,title:\"Show Controls\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},showLike:{type:ControlType.Boolean,title:\"Show Like\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\"},showLikeCount:{type:ControlType.Boolean,title:\"↳ Show Count\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\",hidden(p){return!p.showLike;}},showPlayButton:{type:ControlType.Boolean,title:\"↳ Play Button\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",hidden(p){return!p.showControls;}},showMuteButton:{type:ControlType.Boolean,title:\"↳ Mute Button\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",hidden(p){return!p.showControls;}},showFullscreenButton:{type:ControlType.Boolean,title:\"↳ Fullscreen Btn\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",hidden(p){return!p.showControls;}},showSeekBar:{type:ControlType.Boolean,title:\"↳ Seek Bar\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\",hidden(p){return!p.showControls;}},seekBarColor:{type:ControlType.Color,title:\"↳ ↳ Bar Fill\",defaultValue:\"#ffffff\",hidden(p){return!p.showControls||!p.showSeekBar;}},seekBarBgColor:{type:ControlType.Color,title:\"↳ ↳ Bar Track\",defaultValue:\"rgba(255,255,255,0.35)\",hidden(p){return!p.showControls||!p.showSeekBar;}},seekBarRadius:{type:ControlType.Number,title:\"↳ ↳ Radius\",defaultValue:2,min:0,max:50,unit:\"px\",hidden(p){return!p.showControls||!p.showSeekBar;}},clickToPlay:{type:ControlType.Boolean,title:\"Click to Play\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},// ── Poster ────────────────────────────────────────────────────────────────\nposterMode:{type:ControlType.Enum,title:\"Poster Source\",options:[\"custom\",\"hls\"],optionTitles:[\"Custom Upload\",\"HLS Auto (Bunny)\"],defaultValue:\"custom\",displaySegmentedControl:true},poster:{type:ControlType.Image,title:\"↳ Image\",hidden(p){return p.posterMode===\"hls\";}},// ── Preloader ─────────────────────────────────────────────────────────────\nuseTextPreloader:{type:ControlType.Boolean,title:\"Preloader\",defaultValue:false,enabledTitle:\"Text\",disabledTitle:\"Icon\"},preloaderIcon:{type:ControlType.Image,title:\"↳ Icon\",hidden(p){return!!p.useTextPreloader;}},preloaderText:{type:ControlType.String,title:\"↳ Text\",defaultValue:\"Loading\",hidden(p){return!p.useTextPreloader;}},preloaderFontSize:{type:ControlType.Number,title:\"↳ Font Size\",defaultValue:14,min:8,max:72,unit:\"px\",hidden(p){return!p.useTextPreloader;}},preloaderFontFamily:{type:ControlType.String,title:\"↳ Font\",placeholder:\"inherit\",defaultValue:\"inherit\",hidden(p){return!p.useTextPreloader;}},preloaderFontWeight:{type:ControlType.Number,title:\"↳ Weight\",defaultValue:400,min:100,max:900,step:100,hidden(p){return!p.useTextPreloader;}},preloaderColor:{type:ControlType.Color,title:\"↳ Color\",defaultValue:\"#ffffff\",hidden(p){return!p.useTextPreloader;}},// ── Custom icons ──────────────────────────────────────────────────────────\nplayIcon:{type:ControlType.Image,title:\"Play Icon\"},pauseIcon:{type:ControlType.Image,title:\"Pause Icon\"},muteIcon:{type:ControlType.Image,title:\"Mute Icon\"},unmuteIcon:{type:ControlType.Image,title:\"Unmute Icon\"},fullscreenIcon:{type:ControlType.Image,title:\"Fullscreen Icon\"},likeIcon:{type:ControlType.Image,title:\"Like Icon\",hidden(p){return!p.showLike;}},likeIconActive:{type:ControlType.Image,title:\"Like Icon Active\",hidden(p){return!p.showLike;}},iconSizeDesktop:{type:ControlType.Number,title:\"Icons — Desktop\",defaultValue:32,min:8,max:128,unit:\"px\"},iconSizeTablet:{type:ControlType.Number,title:\"Icons — Tablet\",defaultValue:28,min:8,max:128,unit:\"px\"},iconSizeMobile:{type:ControlType.Number,title:\"Icons — Mobile\",defaultValue:24,min:8,max:128,unit:\"px\"},// Like endpoint is hardcoded as LIKE_WEBHOOK_URL constant — not exposed in UI\n// ── Cross-video coordination ──────────────────────────────────────────────\npauseOnOtherPlay:{type:ControlType.Boolean,title:\"Pause on Other Play\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},muteOnOtherUnmute:{type:ControlType.Boolean,title:\"Mute on Other Audio\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},// ── Viewport behavior ─────────────────────────────────────────────────────\npauseOnLeave:{type:ControlType.Boolean,title:\"Pause off Screen\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},muteOnLeave:{type:ControlType.Boolean,title:\"Mute off Screen\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},unloadOnLeave:{type:ControlType.Boolean,title:\"Unload off Screen\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},// ── Layout ────────────────────────────────────────────────────────────────\nfillMode:{type:ControlType.Enum,title:\"Fill Mode\",options:[\"fit\",\"fill\",\"stretch\",\"tile\"],optionTitles:[\"Fit\",\"Fill\",\"Stretch\",\"Tile\"],defaultValue:\"fill\",displaySegmentedControl:true},objectPosition:{type:ControlType.Enum,title:\"Position\",options:[\"focalPoint\",\"topLeft\",\"topCenter\",\"topRight\",\"left\",\"center\",\"right\",\"bottomLeft\",\"bottomCenter\",\"bottomRight\"],optionTitles:[\"Focal Point\",\"Top Left\",\"Top Center\",\"Top Right\",\"Left\",\"Center\",\"Right\",\"Bottom Left\",\"Bottom Center\",\"Bottom Right\"],defaultValue:\"center\"},focalPointX:{type:ControlType.Number,title:\"↳ Focal X\",defaultValue:.5,min:0,max:1,step:.01,hidden(p){return p.objectPosition!==\"focalPoint\";}},focalPointY:{type:ControlType.Number,title:\"↳ Focal Y\",defaultValue:.5,min:0,max:1,step:.01,hidden(p){return p.objectPosition!==\"focalPoint\";}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BunnyVideoPlayer\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./VideoPlayerBunny.map","// Generated by Framer (9fdca5e)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getPropertyControls,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import BunnyVideoPlayer from\"https://framerusercontent.com/modules/atkfBHfjZ8ibuJpAuLVt/ixjUtNad9ajE1TXBCfzH/VideoPlayerBunny.js\";const BunnyVideoPlayerFonts=getFonts(BunnyVideoPlayer);const BunnyVideoPlayerControls=getPropertyControls(BunnyVideoPlayer);const cycleOrder=[\"xPpAMIaOA\",\"KHJWjpx5q\",\"Ys41nIWSq\"];const serializationHash=\"framer-9DsGg\";const variantClassNames={KHJWjpx5q:\"framer-v-6jyeeo\",xPpAMIaOA:\"framer-v-vu4gue\",Ys41nIWSq:\"framer-v-49qzus\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const byAsd9BE2=undefined;const O7G_RYa8W=undefined;const aGciEpoF2=undefined;const AXOwl3n_2=undefined;const HXDpu8gNu=undefined;const IeZpyE70v=undefined;const numberToPixelString=value=>{if(typeof value!==\"number\")return value;if(!Number.isFinite(value))return undefined;return Math.max(0,value)+\"px\";};const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const toImageSrc=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value.src;}return typeof value===\"string\"?value:undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={Desktop:\"xPpAMIaOA\",Phone:\"Ys41nIWSq\",Tablet:\"KHJWjpx5q\"};const Variants=motion.create(React.Fragment);const humanReadableEnumMap={\"Custom Upload\":\"custom\",\"HLS Auto (Bunny)\":\"hls\"};const getProps=({height,id,image,padding,posterSource,text,videoTitle,videoURL,width,...props})=>{return{...props,aGciEpoF2:videoTitle??props.aGciEpoF2,AXOwl3n_2:humanReadableEnumMap[posterSource]??posterSource??props.AXOwl3n_2??\"custom\",byAsd9BE2:padding??props.byAsd9BE2??\"60px 0px 0px 0px\",HXDpu8gNu:image??props.HXDpu8gNu??{pixelHeight:1630,pixelWidth:3840,src:\"https://framerusercontent.com/images/CSBtzBYNQUPPms19QHVPB8Xk0Q.png?width=3840&height=1630\",srcSet:\"https://framerusercontent.com/images/CSBtzBYNQUPPms19QHVPB8Xk0Q.png?scale-down-to=512&width=3840&height=1630 512w,https://framerusercontent.com/images/CSBtzBYNQUPPms19QHVPB8Xk0Q.png?scale-down-to=1024&width=3840&height=1630 1024w,https://framerusercontent.com/images/CSBtzBYNQUPPms19QHVPB8Xk0Q.png?scale-down-to=2048&width=3840&height=1630 2048w,https://framerusercontent.com/images/CSBtzBYNQUPPms19QHVPB8Xk0Q.png?width=3840&height=1630 3840w\"},IeZpyE70v:text??props.IeZpyE70v??\"Loading\",O7G_RYa8W:videoURL??props.O7G_RYa8W??\"https://neurowood-cdn.b-cdn.net/Al-Bukhari%20%E2%80%94%20Architect%20of%20Truth%20(trailer).mp4\",variant:humanReadableVariantMap[props.variant]??props.variant??\"xPpAMIaOA\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,O7G_RYa8W,aGciEpoF2,AXOwl3n_2,HXDpu8gNu,IeZpyE70v,byAsd9BE2,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"xPpAMIaOA\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-vu4gue\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"xPpAMIaOA\",ref:refBinding,style:{\"--y3krr\":numberToPixelString(byAsd9BE2),...style},...addPropertyOverrides({KHJWjpx5q:{\"data-framer-name\":\"Tablet\"},Ys41nIWSq:{\"data-framer-name\":\"Phone\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-5ckemv-container\",isAuthoredByUser:true,layoutDependency:layoutDependency,layoutId:\"wQyVsfa8Q-container\",nodeId:\"wQyVsfa8Q\",rendersWithMotion:true,scopeId:\"ft9iiICXR\",children:/*#__PURE__*/_jsx(BunnyVideoPlayer,{autoPlay:true,clickToPlay:false,fillMode:\"fill\",focalPointX:.5,focalPointY:.5,fullscreenIcon:\"https://framerusercontent.com/images/edYWXLPwJ32KigunOMh8jtn33Y0.svg?width=34&height=34\",height:\"100%\",iconSizeDesktop:32,iconSizeMobile:24,iconSizeTablet:28,id:\"wQyVsfa8Q\",layoutId:\"wQyVsfa8Q\",loop:true,muteIcon:\"https://framerusercontent.com/images/QpEjrqXO5ZAiUd4mbocRBeRWFlk.svg?width=34&height=34\",muteOnLeave:false,muteOnOtherUnmute:false,objectPosition:\"center\",pauseIcon:\"https://framerusercontent.com/images/rljLJpGcmGSnlLBbmlsNmgK9fQ.svg?width=34&height=34\",pauseOnLeave:false,pauseOnOtherPlay:false,playIcon:\"https://framerusercontent.com/images/KrhdAcQ8Qq7CFvEzZHhRYsLp4o.svg?width=34&height=34\",poster:toImageSrc(HXDpu8gNu),posterMode:AXOwl3n_2,preloaderColor:\"rgb(255, 255, 255)\",preloaderFontFamily:\"manrope\",preloaderFontSize:14,preloaderFontWeight:600,preloaderText:IeZpyE70v,seekBarBgColor:\"rgba(153, 112, 0, 0.35)\",seekBarColor:\"rgb(222, 163, 0)\",seekBarRadius:0,showControls:true,showFullscreenButton:true,showLike:false,showLikeCount:false,showMuteButton:true,showPlayButton:true,showSeekBar:true,style:{width:\"100%\"},unloadOnLeave:false,unmuteIcon:\"https://framerusercontent.com/images/ztlnfNallZS8oX61D7Jy0xI5Mk.svg?width=34&height=34\",useTextPreloader:true,videoTitle:aGciEpoF2,videoUrl:O7G_RYa8W,width:\"100%\",...addPropertyOverrides({KHJWjpx5q:{style:{height:\"100%\",width:\"100%\"}},Ys41nIWSq:{style:{height:\"100%\",width:\"100%\"}}},baseVariant,gestureVariant)})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-9DsGg.framer-1if6s7g, .framer-9DsGg .framer-1if6s7g { display: block; }\",\".framer-9DsGg.framer-vu4gue { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 30px; height: min-content; justify-content: center; overflow: visible; padding: var(--y3krr); position: relative; width: 1110px; }\",\".framer-9DsGg .framer-5ckemv-container { flex: none; height: auto; position: relative; width: 100%; }\",\".framer-9DsGg.framer-v-6jyeeo.framer-vu4gue { width: 770px; }\",\".framer-9DsGg.framer-v-6jyeeo .framer-5ckemv-container { height: 328px; width: 770px; }\",\".framer-9DsGg.framer-v-49qzus.framer-vu4gue { width: 350px; }\",\".framer-9DsGg.framer-v-49qzus .framer-5ckemv-container { height: 26%; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 531\n * @framerIntrinsicWidth 1110\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"KHJWjpx5q\":{\"layout\":[\"fixed\",\"auto\"]},\"Ys41nIWSq\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"O7G_RYa8W\":\"videoURL\",\"aGciEpoF2\":\"videoTitle\",\"AXOwl3n_2\":\"posterSource\",\"HXDpu8gNu\":\"image\",\"IeZpyE70v\":\"text\",\"byAsd9BE2\":\"padding\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const Framerft9iiICXR=withCSS(Component,css,\"framer-9DsGg\");export default Framerft9iiICXR;Framerft9iiICXR.displayName=\"Head\";Framerft9iiICXR.defaultProps={height:531,width:1110};addPropertyControls(Framerft9iiICXR,{variant:{options:[\"xPpAMIaOA\",\"KHJWjpx5q\",\"Ys41nIWSq\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\"],title:\"Variant\",type:ControlType.Enum},O7G_RYa8W:{defaultValue:\"https://neurowood-cdn.b-cdn.net/Al-Bukhari%20%E2%80%94%20Architect%20of%20Truth%20(trailer).mp4\",placeholder:\"https://vz-xxx.b-cdn.net/{guid}/playlist.m3u8\",title:\"Video URL\",type:ControlType.String},onO7G_RYa8WChange:{changes:\"O7G_RYa8W\",type:ControlType.ChangeHandler},aGciEpoF2:{defaultValue:\"\",placeholder:\"Used in the likes sheet\",title:\"Video Title\",type:ControlType.String},onaGciEpoF2Change:{changes:\"aGciEpoF2\",type:ControlType.ChangeHandler},AXOwl3n_2:BunnyVideoPlayerControls?.[\"posterMode\"]&&{...BunnyVideoPlayerControls[\"posterMode\"],defaultValue:\"custom\",description:undefined,hidden:undefined,optional:undefined,title:\"Poster Source\"},onAXOwl3n_2Change:{changes:\"AXOwl3n_2\",type:ControlType.ChangeHandler},HXDpu8gNu:{__defaultAssetReference:\"data:framer/asset-reference,CSBtzBYNQUPPms19QHVPB8Xk0Q.png?originalFilename=RUS-+Al-Bukhari+%C3%A2%C2%80%C2%94+Architect+of+Truth+%28trailer%29-0001.png&width=3840&height=1630\",title:\"Image\",type:ControlType.ResponsiveImage},IeZpyE70v:{defaultValue:\"Loading\",title:\"Text\",type:ControlType.String},onIeZpyE70vChange:{changes:\"IeZpyE70v\",type:ControlType.ChangeHandler},byAsd9BE2:{defaultValue:\"60px 0px 0px 0px\",title:\"Padding\",type:ControlType.Padding}});addFonts(Framerft9iiICXR,[{explicitInter:true,fonts:[]},...BunnyVideoPlayerFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerft9iiICXR\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1110\",\"framerAutoSizeImages\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"531\",\"framerContractVersion\":\"1\",\"framerVariables\":\"{\\\"O7G_RYa8W\\\":\\\"videoURL\\\",\\\"aGciEpoF2\\\":\\\"videoTitle\\\",\\\"AXOwl3n_2\\\":\\\"posterSource\\\",\\\"HXDpu8gNu\\\":\\\"image\\\",\\\"IeZpyE70v\\\":\\\"text\\\",\\\"byAsd9BE2\\\":\\\"padding\\\"}\",\"framerImmutableVariables\":\"true\",\"framerColorSyntax\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"KHJWjpx5q\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"Ys41nIWSq\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ft9iiICXR.map","// Generated by Framer (8bbc62e)\nexport default function metadata(params,activeLocale){return{description:\"A cognitive thriller about the workings of a mind that is seven centuries ahead of science.\",robots:\"max-image-preview:large\",title:\"Al-Bukhari: The Architect of Truth\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}