{"version":3,"file":"GenericVideo.BKdFSGKN.mjs","names":["React.useRef"],"sources":["https:/framerusercontent.com/modules/rKvY4Y7Jh8y8W86Wf0NT/fwuHHzAmUjbx1ZRyiJkl/GenericVideo.js"],"sourcesContent":["// UnifiedVideo.tsx\nimport{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";function getYouTubeId(rawUrl){try{const url=new URL(rawUrl);if(url.hostname===\"youtu.be\"){return url.pathname.slice(1);}const v=url.searchParams.get(\"v\");if(v)return v;const parts=url.pathname.split(\"/\").filter(Boolean);if(parts.length===0)return null;return parts[parts.length-1];}catch{return null;}}function getVimeoId(rawUrl){try{const url=new URL(rawUrl);const parts=url.pathname.split(\"/\").filter(Boolean);if(parts.length===0)return null;const maybeId=parts[parts.length-1];return/^\\d+$/.test(maybeId)?maybeId:null;}catch{return null;}}function buildEmbedUrl(rawUrl,props){const isYouTube=rawUrl.includes(\"youtube.com\")||rawUrl.includes(\"youtu.be\");const isVimeo=rawUrl.includes(\"vimeo.com\")||rawUrl.includes(\"player.vimeo.com\");const{autoplay,loop,muted,showControls}=props;// YOUTUBE\nif(isYouTube){const id=getYouTubeId(rawUrl);if(!id)return null;const params=new URLSearchParams;params.set(\"autoplay\",autoplay?\"1\":\"0\");params.set(\"mute\",muted?\"1\":\"0\");params.set(\"controls\",showControls?\"1\":\"0\");params.set(\"rel\",\"0\");params.set(\"playsinline\",\"1\");if(loop){params.set(\"loop\",\"1\");params.set(\"playlist\",id);}return`https://www.youtube.com/embed/${id}?${params.toString()}`;}// VIMEO\nif(isVimeo){const id=getVimeoId(rawUrl);if(!id)return null;const params=new URLSearchParams;params.set(\"title\",\"0\");params.set(\"byline\",\"0\");params.set(\"portrait\",\"0\");params.set(\"badge\",\"0\");params.set(\"autopause\",\"0\");params.set(\"player_id\",\"0\");params.set(\"app_id\",\"58479\");if(autoplay){params.set(\"autoplay\",\"1\");params.set(\"muted\",\"1\");}else{params.set(\"autoplay\",\"0\");params.set(\"muted\",muted?\"1\":\"0\");}if(loop){params.set(\"loop\",\"1\");}if(autoplay&&!showControls){params.set(\"background\",\"1\");}return`https://player.vimeo.com/video/${id}?${params.toString()}`;}return rawUrl;}export function UnifiedVideo(props){const{url,borderRadius,autosize,scaleFactor}=props;const containerRef=React.useRef(null);if(!url){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontSize:12,opacity:.6,textAlign:\"center\",padding:8},children:\"Set a YouTube or Vimeo URL in the properties panel.\"});}const embedUrl=buildEmbedUrl(url,props);if(!embedUrl){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontSize:12,color:\"red\",textAlign:\"center\",padding:8},children:\"Could not parse this video URL.\"});}// Standard 16:9 aspect ratio\nconst videoAspect=16/9;// Calculate dimensions based on autosize and scaleFactor\n// scaleFactor is additive: 1.0 = 100%, 1.2 = 120%, etc.\nconst baseWidth=autosize?100*videoAspect:100;const baseHeight=100;const finalWidth=baseWidth*scaleFactor;const finalHeight=baseHeight*scaleFactor;return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",position:\"relative\",background:\"black\",borderRadius:`${borderRadius}px`,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"iframe\",{src:embedUrl,style:{position:\"absolute\",top:\"50%\",left:\"50%\",width:`${finalWidth}%`,height:`${finalHeight}%`,transform:`translate(-50%, -50%)`,border:\"none\"},allow:\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\",referrerPolicy:\"strict-origin-when-cross-origin\",allowFullScreen:true},embedUrl)});}UnifiedVideo.defaultProps={width:640,height:360,url:\"\",autoplay:false,loop:false,muted:true,showControls:true,borderRadius:0,autosize:true,scaleFactor:1};addPropertyControls(UnifiedVideo,{url:{type:ControlType.String,title:\"Video URL\",placeholder:\"Paste YouTube or Vimeo URL\"},autoplay:{type:ControlType.Boolean,title:\"Autoplay\",defaultValue:false},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:false},muted:{type:ControlType.Boolean,title:\"Muted\",defaultValue:true},showControls:{type:ControlType.Boolean,title:\"Controls\",defaultValue:true},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:14,min:0,max:100,step:1},autosize:{type:ControlType.Boolean,title:\"Fill Height\",defaultValue:true},scaleFactor:{type:ControlType.Number,title:\"Scale Factor\",defaultValue:1,min:.5,max:3,step:.05}});\nexport const __FramerMetadata__ = {\"exports\":{\"UnifiedVideo\":{\"type\":\"reactComponent\",\"name\":\"UnifiedVideo\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GenericVideo.map"],"mappings":"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"}