{"version":3,"file":"Embed.CgGjjIc6.mjs","names":["useReducer","useState","Instructions","ErrorMessage","_Fragment","centerTextStyle","Embed","Instructions","getMinHeight","centerTextStyle","useState","ErrorMessage","LoadingIndicator","iframeStyle","getSandbox","useRef","htmlStyle","useState","useRef","__esmMin","ce","init_npm_react_18_3_1","window","init_ssg_sandbox_shims","init_jsx_runtime","l","de","_e","ye","init_framer_BWFVvmND","ControlType","addPropertyControls","emptyStateStyle","defaultEvents","useRadius","borderRadiusControl","useIsOnCanvas","init_default_utils","containerStyles","init_default_utils_js__0_45","Youtube","props","onCanvas","isAutoplay","play","showThumbnail","thumbnail","isPreloading","preloadVideo","showVideo","startVideo","isHovered","setHovered","borderRadius","hasBorderRadius","url","Instructions$2","parsedURL","parseVideoURL","ErrorMessage$2","videoId","embedURL","originalSearchParams","searchParams","param","value","shouldMute","isRed","iframeProps","title","wrapperStyle","getThumbnailURL","videoStyle","border","PlayButton","urlString","getEmbedURL","pathSegments","page","pre","ext","res","centerTextStyle$2","message","buttonStyle","PlayOptions","ThumbnailOptions","init_YouTube","\"Normal\"","\"Auto\"","\"Loop\"","\"High\"","\"Medium\"","\"Low\"","\"Off\"","Embed$1","type","EmbedURL","html","EmbedHTML","Instructions$1","getMinHeight$1","style","centerTextStyle$1","hasAutoHeight","state","setState","isLastEffect","load","response","isBlocked","error","ErrorMessage$1","LoadingIndicator$1","iframeStyle$1","getSandbox$1","result","ref","iframeHeight","setIframeHeight","hasScript","iframeWindow","handleMessage","event","data","height","srcDoc","currentStyle","htmlStyle$1","init_Embed","Embed","EmbedUrl","EmbedHtml","Instructions","getMinHeight","centerTextStyle","ErrorMessage","LoadingIndicator","iframeStyle","radius","getSandbox","hasSplineViewer","hasComment","EmbedHtmlWithScripts","EmbedHtmlInsideIframe","EmbedHtmlWithoutScripts","div","executeScripts","htmlStyle","node","script","name","child","init_Embed$1"],"sources":["https:/framerusercontent.com/modules/NEd4VmDdsxM3StIUbddO/Ef2JVpwhNW0UBYra6TeS/YouTube.js","https:/framerusercontent.com/modules/o1PI5S8YtkA5bP5g4dFz/Mn69eMnaMcqJ65TjxwR1/Embed.js","https:/framerusercontent.com/modules/o1PI5S8YtkA5bP5g4dFz/s801VqobGI0Gkh3K9b41/Embed.js"],"sourcesContent":["// ⚠️⚠️⚠️⚠️⚠️\n// Edit these files in https://github.com/framer/FramerCodeComponents\n// ⚠️⚠️⚠️⚠️⚠️\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useReducer,useState}from\"react\";import{ControlType,addPropertyControls}from\"framer\";import{useIsOnCanvas,emptyStateStyle,containerStyles,defaultEvents,useRadius,borderRadiusControl}from\"https://framer.com/m/framer/default-utils.js@^0.45.0\";var PlayOptions;(function(PlayOptions){PlayOptions[\"Normal\"]=\"Off\";PlayOptions[\"Auto\"]=\"On\";PlayOptions[\"Loop\"]=\"Loop\";})(PlayOptions||(PlayOptions={}));var ThumbnailOptions;(function(ThumbnailOptions){ThumbnailOptions[\"High\"]=\"High Quality\";ThumbnailOptions[\"Medium\"]=\"Medium Quality\";ThumbnailOptions[\"Low\"]=\"Low Quality\";ThumbnailOptions[\"Off\"]=\"Off\";})(ThumbnailOptions||(ThumbnailOptions={}));/**\n * @framerIntrinsicWidth 560\n * @framerIntrinsicHeight 315\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n *\n * @framerComponentPresetProps isRed, borderRadius, border, boxShadow\n */export function Youtube({url,play,shouldMute,thumbnail,isRed,onClick,border,boxShadow,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,title,...props}){const onCanvas=useIsOnCanvas();const isAutoplay=play!==\"Off\";const showThumbnail=onCanvas||thumbnail!==\"Off\"&&!isAutoplay;const[isPreloading,preloadVideo]=useReducer(()=>true,false);const[showVideo,startVideo]=useReducer(()=>true,!showThumbnail);const[isHovered,setHovered]=useState(false);const borderRadius=useRadius(props);const hasBorderRadius=borderRadius!==\"0px 0px 0px 0px\"&&borderRadius!==\"0px\";if(url===\"\"){return /*#__PURE__*/_jsx(Instructions,{});}const parsedURL=parseVideoURL(url);if(parsedURL===undefined){return /*#__PURE__*/_jsx(ErrorMessage,{message:\"Invalid Youtube URL.\"});}const[videoId,embedURL,originalSearchParams]=parsedURL;const searchParams=embedURL.searchParams;if(originalSearchParams){for(const[param,value]of originalSearchParams){searchParams.set(param,value);if(param===\"t\")searchParams.set(\"start\",value)// embeds have to use `start`, but copying via right-click usually gives you `t=`\n;}}// https://developers.google.com/youtube/player_parameters\nsearchParams.set(\"iv_load_policy\",\"3\");searchParams.set(\"rel\",\"0\");searchParams.set(\"modestbranding\",\"1\");searchParams.set(\"playsinline\",\"1\");if(!showVideo){// if a browser does not support `loading=lazy`, make sure the video doesn't start playing in the background\nsearchParams.set(\"autoplay\",\"0\");}else if(isAutoplay||// when there is no thumbnail, we don't want to autoplay, unless video is started\nshowThumbnail&&showVideo){searchParams.set(\"autoplay\",\"1\");}if(isAutoplay&&shouldMute){searchParams.set(\"mute\",\"1\");}if(play===\"Loop\"){searchParams.set(\"loop\",\"1\");searchParams.set(\"playlist\",videoId);}if(!isRed){searchParams.set(\"color\",\"white\");}const iframeProps={title:title||\"Youtube Video\",allow:\"presentation; fullscreen; accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\",src:embedURL.href,frameBorder:\"0\",onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp};return /*#__PURE__*/_jsxs(\"article\",{onPointerEnter:()=>setHovered(true),onPointerLeave:()=>setHovered(false),onPointerOver:preloadVideo,onKeyDown:startVideo,onClick:startVideo,style:{...wrapperStyle,// We do NOT spread the border here anymore.\n// If we did, it would clip the video content inside.\nborderRadius,boxShadow,transform:// Safari sometimes struggles to render border-radius:\n// - on the canvas when changing from 0 to any other value\n// - or when rendering an iframe\nhasBorderRadius&&(showVideo||onCanvas)?\"translateZ(0.000001px)\":\"unset\",cursor:\"pointer\",overflow:\"hidden\"},role:\"presentation\",children:[showThumbnail&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"link\",{rel:\"preconnect\",href:\"https://i.ytimg.com\"}),/*#__PURE__*/_jsx(\"img\",{decoding:\"async\",src:getThumbnailURL(videoId,thumbnail),style:{...videoStyle,objectFit:\"cover\"}})]}),isPreloading&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"link\",{rel:\"dns-prefetch\",href:\"https://i.ytimg.com\"}),/*#__PURE__*/_jsx(\"link\",{rel:\"preconnect\",href:\"https://www.youtube.com\"}),/*#__PURE__*/_jsx(\"link\",{rel:\"dns-prefetch\",href:\"https://www.google.com\"})]}),!onCanvas?/*#__PURE__*/_jsx(\"iframe\",{loading:!showVideo?\"lazy\":undefined,style:!showVideo?{...videoStyle,display:\"none\"}:videoStyle,...iframeProps}):null,border&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,pointerEvents:\"none\",boxSizing:\"border-box\",borderRadius,...border}}),showVideo?null:/*#__PURE__*/_jsx(PlayButton,{onClick:startVideo,isHovered:isHovered,isRed:isRed})]});}Youtube.displayName=\"YouTube\";addPropertyControls(Youtube,{url:{type:ControlType.String,title:\"Video\"},play:{type:ControlType.Enum,title:\"Autoplay\",options:Object.values(PlayOptions)},shouldMute:{title:\"Mute\",type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden(props){return props.play===\"Off\";}},thumbnail:{title:\"Thumbnail\",description:\"Showing a thumbnail improves performance.\",type:ControlType.Enum,options:Object.values(ThumbnailOptions),hidden(props){return props.play!==\"Off\";}},isRed:{title:\"Color\",type:ControlType.Boolean,enabledTitle:\"Red\",disabledTitle:\"White\"},...borderRadiusControl,border:{type:ControlType.Border,optional:true},boxShadow:{type:ControlType.BoxShadow,optional:true,title:\"Shadows\"},...defaultEvents});const defaultProps={url:\"https://youtu.be/6aioEoCdBJw\",play:\"Off\",shouldMute:true,thumbnail:\"Medium Quality\",isRed:true,boxShadow:null,border:null};Youtube.defaultProps=defaultProps;function parseVideoURL(urlString){let url;try{url=new URL(urlString);}catch{const embedURL=getEmbedURL(urlString);return[urlString,embedURL,null];}const searchParams=url.searchParams;if(url.hostname===\"youtube.com\"||url.hostname===\"www.youtube.com\"||url.hostname===\"youtube-nocookie.com\"||url.hostname===\"www.youtube-nocookie.com\"){const pathSegments=url.pathname.slice(1).split(\"/\");const page=pathSegments[0];// https://www.youtube.com/watch?v=Fop2oskTug8\nif(page===\"watch\"){const videoId=url.searchParams.get(\"v\");const embedURL=getEmbedURL(videoId);return[videoId,embedURL,searchParams];}// https://www.youtube.com/embed/Fop2oskTug8\nif(page===\"embed\"){const videoId=pathSegments[1];return[videoId,url,searchParams];}// https://www.youtube.com/shorts/zwMEhBq4kYM / https://www.youtube.com/live/XlWSzaluBKk\nif(page===\"shorts\"||page===\"live\"){const videoId=pathSegments[1];const embedURL=getEmbedURL(videoId);return[videoId,embedURL,searchParams];}}// https://youtu.be/Fop2oskTug8\nif(url.hostname===\"youtu.be\"){const videoId=url.pathname.slice(1);const embedURL=getEmbedURL(videoId);return[videoId,embedURL,searchParams];}}function getEmbedURL(videoId){return new URL(`https://www.youtube.com/embed/${videoId}`);}function getThumbnailURL(videoId,res){// https://gist.github.com/a1ip/be4514c1fd392a8c13b05e082c4da363\nconst pre=\"https://i.ytimg.com/vi_webp/\";const ext=\"webp\";switch(res){case\"Low Quality\":return`${pre}${videoId}/hqdefault.${ext}`;case\"Medium Quality\":return`${pre}${videoId}/sddefault.${ext}`;case\"High Quality\":return`${pre}${videoId}/maxresdefault.${ext}`;default:return`${pre}${videoId}/0.${ext}`;}}// Helper components\nfunction Instructions(){return /*#__PURE__*/_jsx(\"div\",{style:{...emptyStateStyle,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"div\",{style:centerTextStyle,children:\"To embed a Youtube video, add the URL to the properties\\xa0panel.\"})});}function ErrorMessage({message}){return /*#__PURE__*/_jsx(\"div\",{className:\"framerInternalUI-errorPlaceholder\",style:{...containerStyles,overflow:\"hidden\"},children:/*#__PURE__*/_jsxs(\"div\",{style:centerTextStyle,children:[\"Error: \",message]})});}function PlayButton({onClick,isHovered,isRed}){return /*#__PURE__*/_jsx(\"button\",{onClick:onClick,\"aria-label\":\"Play\",style:buttonStyle,children:/*#__PURE__*/_jsxs(\"svg\",{height:\"100%\",version:\"1.1\",viewBox:\"0 0 68 48\",width:\"100%\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z\",fill:isHovered?isRed?\"#f00\":\"#000\":\"#212121\",fillOpacity:isHovered?isRed?1:.8:.8,style:{transition:\"fill .1s cubic-bezier(0.4, 0, 1, 1), fill-opacity .1s cubic-bezier(0.4, 0, 1, 1)\"}}),/*#__PURE__*/_jsx(\"path\",{d:\"M 45,24 27,14 27,34\",fill:\"#fff\"})]})});}const buttonStyle={position:\"absolute\",top:\"50%\",left:\"50%\",transform:\"translate(-50%, -50%)\",width:68,height:48,padding:0,border:\"none\",background:\"transparent\",cursor:\"pointer\"};const wrapperStyle={position:\"relative\",width:\"100%\",height:\"100%\"};const centerTextStyle={textAlign:\"center\",minWidth:140};const videoStyle={position:\"absolute\",top:0,left:0,height:\"100%\",width:\"100%\"};\nexport const __FramerMetadata__ = {\"exports\":{\"Youtube\":{\"type\":\"reactComponent\",\"name\":\"Youtube\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"315\",\"framerContractVersion\":\"1\",\"framerComponentPresetProps\":\"isRed, borderRadius, border, boxShadow\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"560\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./YouTube.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{useIsOnCanvas,emptyStateStyle,containerStyles}from\"https://framer.com/m/framer/default-utils.js\";/**\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 400\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n *\n * @framerDisableUnlink\n */export default function Embed({type,url,html,style={}}){if(type===\"url\"&&url){return /*#__PURE__*/_jsx(EmbedURL,{url:url,style:style});}if(type===\"html\"&&html){return /*#__PURE__*/_jsx(EmbedHTML,{html:html,style:style});}return /*#__PURE__*/_jsx(Instructions,{style:style});}addPropertyControls(Embed,{type:{type:ControlType.Enum,defaultValue:\"url\",displaySegmentedControl:true,options:[\"url\",\"html\"],optionTitles:[\"URL\",\"HTML\"]},url:{title:\"URL\",type:ControlType.String,description:\"Some websites don’t support embedding.\",hidden(props){return props.type!==\"url\";}},html:{title:\"HTML\",type:ControlType.String,displayTextArea:true,hidden(props){return props.type!==\"html\";}}});function Instructions({style}){return /*#__PURE__*/_jsx(\"div\",{style:{minHeight:getMinHeight(style),...emptyStateStyle,overflow:\"hidden\",...style},children:/*#__PURE__*/_jsx(\"div\",{style:centerTextStyle,children:\"To embed a website or widget, add it to the properties\\xa0panel.\"})});}function EmbedURL({url,style}){const hasAutoHeight=!style.height;// Add https:// if the URL does not have a protocol.\nif(!/[a-z]+:\\/\\//.test(url)){url=\"https://\"+url;}const onCanvas=useIsOnCanvas();// We need to check if the url is blocked inside an iframe by the X-Frame-Options\n// or Content-Security-Policy headers on the backend.\nconst[state,setState]=useState(onCanvas?undefined:false);useEffect(()=>{// We only want to check on the canvas.\n// On the website we want to avoid the additional delay.\nif(!onCanvas)return;// TODO: We could also use AbortController here.\nlet isLastEffect=true;setState(undefined);async function load(){const response=await fetch(\"https://api.framer.com/functions/check-iframe-url?url=\"+encodeURIComponent(url));if(response.status==200){const{isBlocked}=await response.json();if(isLastEffect){setState(isBlocked);}}else{const message=await response.text();console.error(message);const error=new Error(\"This site can’t be reached.\");setState(error);}}load().catch(error=>{console.error(error);setState(error);});return()=>{isLastEffect=false;};},[url]);if(onCanvas&&hasAutoHeight){return /*#__PURE__*/_jsx(ErrorMessage,{message:\"URL embeds do not support auto height.\",style:style});}if(!url.startsWith(\"https://\")){return /*#__PURE__*/_jsx(ErrorMessage,{message:\"Unsupported protocol.\",style:style});}if(state===undefined){return /*#__PURE__*/_jsx(LoadingIndicator,{});}if(state instanceof Error){return /*#__PURE__*/_jsx(ErrorMessage,{message:state.message,style:style});}if(state===true){const message=`Can’t embed ${url} due to its content security policy.`;return /*#__PURE__*/_jsx(ErrorMessage,{message:message,style:style});}return /*#__PURE__*/_jsx(\"iframe\",{src:url,style:{...iframeStyle,...style},loading:\"lazy\",// @ts-ignore\nfetchPriority:onCanvas?\"low\":\"auto\",referrerPolicy:\"no-referrer\",sandbox:getSandbox(onCanvas)});}const iframeStyle={width:\"100%\",height:\"100%\",border:\"none\"};function getSandbox(onCanvas){const result=[\"allow-same-origin\",\"allow-scripts\"];if(!onCanvas){result.push(\"allow-downloads\",\"allow-forms\",\"allow-modals\",\"allow-orientation-lock\",\"allow-pointer-lock\",\"allow-popups\",\"allow-popups-to-escape-sandbox\",\"allow-presentation\",\"allow-storage-access-by-user-activation\",\"allow-top-navigation-by-user-activation\");}return result.join(\" \");}function EmbedHTML({html,style}){const ref=useRef();const onCanvas=useIsOnCanvas();const[iframeHeight,setIframeHeight]=useState(0);const hasAutoHeight=!style.height;const hasScript=html.includes(\"</script>\");useEffect(()=>{var _ref_current;const iframeWindow=(_ref_current=ref.current)===null||_ref_current===void 0?void 0:_ref_current.contentWindow;function handleMessage(event){if(event.source!==iframeWindow)return;const data=event.data;if(typeof data!==\"object\"||data===null)return;const height=data.embedHeight;if(typeof height!==\"number\")return;setIframeHeight(height);}window.addEventListener(\"message\",handleMessage);// After SSG the iframe loads before we attach the event handler,\n// therefore we need to request the latest height from the iframe.\niframeWindow===null||iframeWindow===void 0?void 0:iframeWindow.postMessage(\"getEmbedHeight\",\"*\");return()=>{window.removeEventListener(\"message\",handleMessage);};},[]);if(hasScript){const srcDoc=`<html>\n    <head>\n        <style>body { margin: 0; }</style>\n    </head>\n    <body>\n        ${html}\n        <script type=\"module\">\n            let height = 0\n\n            function sendEmbedHeight() {\n                window.parent.postMessage({\n                    embedHeight: height\n                }, \"*\")\n            }\n\n            const observer = new ResizeObserver((entries) => {\n                if (entries.length !== 1) return\n                const entry = entries[0]\n                if (entry.target !== document.body) return\n\n                height = entry.contentRect.height\n                sendEmbedHeight()\n            })\n\n            observer.observe(document.body)\n\n            window.addEventListener(\"message\", (event) => {\n                if (event.source !== window.parent) return\n                if (event.data !== \"getEmbedHeight\") return\n                sendEmbedHeight()\n            })\n        </script>\n    <body>\n</html>`;const currentStyle={...iframeStyle,...style};if(hasAutoHeight){currentStyle.height=iframeHeight+\"px\";}return /*#__PURE__*/_jsx(\"iframe\",{ref:ref,style:currentStyle,srcDoc:srcDoc});}return /*#__PURE__*/_jsx(\"div\",{style:{...htmlStyle,...style},dangerouslySetInnerHTML:{__html:html}});}const htmlStyle={width:\"100%\",height:\"100%\",display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:\"center\"};// Generic components\nfunction LoadingIndicator(){return /*#__PURE__*/_jsx(\"div\",{className:\"framerInternalUI-componentPlaceholder\",style:{...containerStyles,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"div\",{style:centerTextStyle,children:\"Loading…\"})});}function ErrorMessage({message,style}){return /*#__PURE__*/_jsx(\"div\",{className:\"framerInternalUI-errorPlaceholder\",style:{minHeight:getMinHeight(style),...containerStyles,overflow:\"hidden\",...style},children:/*#__PURE__*/_jsx(\"div\",{style:centerTextStyle,children:message})});}const centerTextStyle={textAlign:\"center\",minWidth:140};// Returns a min-height if the component is using auto-height.\nfunction getMinHeight(style){const hasAutoHeight=!style.height;if(hasAutoHeight)return 200;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Embed\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"600\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"400\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Embed.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{useIsOnCanvas,emptyStateStyle,containerStyles}from\"https://framer.com/m/framer/default-utils.js\";/**\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 400\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n *\n * @framerDisableUnlink\n */export default function Embed({type,url,html,zoom,radius,border,style={}}){if(type===\"url\"&&url){return /*#__PURE__*/_jsx(EmbedUrl,{url:url,zoom:zoom,radius:radius,border:border,style:style});}if(type===\"html\"&&html){return /*#__PURE__*/_jsx(EmbedHtml,{html:html,style:style});}return /*#__PURE__*/_jsx(Instructions,{style:style});}addPropertyControls(Embed,{type:{type:ControlType.Enum,defaultValue:\"url\",displaySegmentedControl:true,options:[\"url\",\"html\"],optionTitles:[\"URL\",\"HTML\"]},url:{title:\"URL\",type:ControlType.String,description:\"Some websites don’t support embedding.\",hidden(props){return props.type!==\"url\";}},html:{title:\"HTML\",type:ControlType.String,displayTextArea:true,hidden(props){return props.type!==\"html\";}},border:{title:\"Border\",type:ControlType.Border,optional:true,hidden(props){return props.type!==\"url\";}},radius:{type:ControlType.BorderRadius,title:\"Radius\",hidden(props){return props.type!==\"url\";}},zoom:{title:\"Zoom\",defaultValue:1,type:ControlType.Number,hidden(props){return props.type!==\"url\";},min:.1,max:1,step:.1,displayStepper:true}});function Instructions({style}){return /*#__PURE__*/_jsx(\"div\",{style:{minHeight:getMinHeight(style),...emptyStateStyle,overflow:\"hidden\",...style},children:/*#__PURE__*/_jsx(\"div\",{style:centerTextStyle,children:\"To embed a website or widget, add it to the properties\\xa0panel.\"})});}function EmbedUrl({url,zoom,radius,border,style}){const hasAutoHeight=!style.height;// Add https:// if the URL does not have a protocol.\nif(!/[a-z]+:\\/\\//.test(url)){url=\"https://\"+url;}const onCanvas=useIsOnCanvas();// We need to check if the url is blocked inside an iframe by the X-Frame-Options\n// or Content-Security-Policy headers on the backend.\nconst[state,setState]=useState(onCanvas?undefined:false);useEffect(()=>{// We only want to check on the canvas.\n// On the website we want to avoid the additional delay.\nif(!onCanvas)return;// TODO: We could also use AbortController here.\nlet isLastEffect=true;setState(undefined);async function load(){const response=await fetch(\"https://api.framer.com/functions/check-iframe-url?url=\"+encodeURIComponent(url));if(response.status==200){const{isBlocked}=await response.json();if(isLastEffect){setState(isBlocked);}}else{const message=await response.text();console.error(message);const error=new Error(\"This site can’t be reached.\");setState(error);}}load().catch(error=>{console.error(error);setState(error);});return()=>{isLastEffect=false;};},[url]);if(onCanvas&&hasAutoHeight){return /*#__PURE__*/_jsx(ErrorMessage,{message:\"URL embeds do not support auto height.\",style:style});}if(!url.startsWith(\"https://\")){return /*#__PURE__*/_jsx(ErrorMessage,{message:\"Unsupported protocol.\",style:style});}if(state===undefined){return /*#__PURE__*/_jsx(LoadingIndicator,{});}if(state instanceof Error){return /*#__PURE__*/_jsx(ErrorMessage,{message:state.message,style:style});}if(state===true){const message=`Can’t embed ${url} due to its content security policy.`;return /*#__PURE__*/_jsx(ErrorMessage,{message:message,style:style});}return /*#__PURE__*/_jsx(\"iframe\",{src:url,style:{...iframeStyle,...style,...border,zoom:zoom,borderRadius:radius,transformOrigin:\"top center\"},loading:\"lazy\",// @ts-ignore\nfetchPriority:onCanvas?\"low\":\"auto\",referrerPolicy:\"no-referrer\",sandbox:getSandbox(onCanvas)});}const iframeStyle={width:\"100%\",height:\"100%\",border:\"none\"};function getSandbox(onCanvas){const result=[\"allow-same-origin\",\"allow-scripts\"];if(!onCanvas){result.push(\"allow-downloads\",\"allow-forms\",\"allow-modals\",\"allow-orientation-lock\",\"allow-pointer-lock\",\"allow-popups\",\"allow-popups-to-escape-sandbox\",\"allow-presentation\",\"allow-storage-access-by-user-activation\",\"allow-top-navigation-by-user-activation\");}return result.join(\" \");}function EmbedHtml({html,...props}){const hasScript=html.includes(\"</script>\");if(hasScript){const hasSplineViewer=html.includes(\"</spline-viewer>\");const hasComment=html.includes(\"<!-- framer-direct-embed -->\");if(hasSplineViewer||hasComment){return /*#__PURE__*/_jsx(EmbedHtmlWithScripts,{html:html,...props});}return /*#__PURE__*/_jsx(EmbedHtmlInsideIframe,{html:html,...props});}return /*#__PURE__*/_jsx(EmbedHtmlWithoutScripts,{html:html,...props});}function EmbedHtmlInsideIframe({html,style}){const ref=useRef();const[iframeHeight,setIframeHeight]=useState(0);// Handle auto sizing\nuseEffect(()=>{const iframeWindow=ref.current?.contentWindow;function handleMessage(event){if(event.source!==iframeWindow)return;const data=event.data;if(typeof data!==\"object\"||data===null)return;const height=data.embedHeight;if(typeof height!==\"number\")return;setIframeHeight(height);}window.addEventListener(\"message\",handleMessage);// After SSG the iframe loads before we attach the event handler,\n// therefore we need to request the latest height from the iframe.\niframeWindow?.postMessage(\"getEmbedHeight\",\"*\");return()=>{window.removeEventListener(\"message\",handleMessage);};},[]);// The CSS is mainly copied from:\n// FramerStudio/src/app/vekter/src/renderer/setDefaultFont.ts\n// FramerStudio/src/app/vekter/src/export/globalStylesForExport.ts\nconst srcDoc=`\n<html>\n    <head>\n        <style>\n            html, body {\n                margin: 0;\n                padding: 0;\n            }\n\n            body {\n                display: flex;\n                justify-content: center;\n                align-items: center;\n            }\n\n            :root {\n                -webkit-font-smoothing: antialiased;\n                -moz-osx-font-smoothing: grayscale;\n            }\n\n            * {\n                box-sizing: border-box;\n                -webkit-font-smoothing: inherit;\n            }\n\n            h1, h2, h3, h4, h5, h6, p, figure {\n                margin: 0;\n            }\n\n            body, input, textarea, select, button {\n                font-size: 12px;\n                font-family: sans-serif;\n            }\n        </style>\n    </head>\n    <body>\n        ${html}\n        <script type=\"module\">\n            let height = 0\n\n            function sendEmbedHeight() {\n                window.parent.postMessage({\n                    embedHeight: height\n                }, \"*\")\n            }\n\n            const observer = new ResizeObserver((entries) => {\n                if (entries.length !== 1) return\n                const entry = entries[0]\n                if (entry.target !== document.body) return\n\n                height = entry.contentRect.height\n                sendEmbedHeight()\n            })\n\n            observer.observe(document.body)\n\n            window.addEventListener(\"message\", (event) => {\n                if (event.source !== window.parent) return\n                if (event.data !== \"getEmbedHeight\") return\n                sendEmbedHeight()\n            })\n        </script>\n    <body>\n</html>\n`;const currentStyle={...iframeStyle,...style};const hasAutoHeight=!style.height;if(hasAutoHeight){currentStyle.height=iframeHeight+\"px\";}return /*#__PURE__*/_jsx(\"iframe\",{ref:ref,style:currentStyle,srcDoc:srcDoc});}function EmbedHtmlWithScripts({html,style}){const ref=useRef();useEffect(()=>{const div=ref.current;if(!div)return;div.innerHTML=html;executeScripts(div);return()=>{div.innerHTML=\"\";};},[html]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{...htmlStyle,...style}});}function EmbedHtmlWithoutScripts({html,style}){return /*#__PURE__*/_jsx(\"div\",{style:{...htmlStyle,...style},dangerouslySetInnerHTML:{__html:html}});}const htmlStyle={width:\"100%\",height:\"100%\",display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:\"center\"};// This function replaces scripts with executable ones.\n// https://stackoverflow.com/questions/1197575/can-scripts-be-inserted-with-innerhtml\nfunction executeScripts(node){if(node instanceof Element&&node.tagName===\"SCRIPT\"){const script=document.createElement(\"script\");script.text=node.innerHTML;for(const{name,value}of node.attributes){script.setAttribute(name,value);}node.parentElement.replaceChild(script,node);}else{for(const child of node.childNodes){executeScripts(child);}}}// Generic components\nfunction LoadingIndicator(){return /*#__PURE__*/_jsx(\"div\",{className:\"framerInternalUI-componentPlaceholder\",style:{...containerStyles,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"div\",{style:centerTextStyle,children:\"Loading…\"})});}function ErrorMessage({message,style}){return /*#__PURE__*/_jsx(\"div\",{className:\"framerInternalUI-errorPlaceholder\",style:{minHeight:getMinHeight(style),...containerStyles,overflow:\"hidden\",...style},children:/*#__PURE__*/_jsx(\"div\",{style:centerTextStyle,children:message})});}const centerTextStyle={textAlign:\"center\",minWidth:140};// Returns a min-height if the component is using auto-height.\nfunction getMinHeight(style){const hasAutoHeight=!style.height;if(hasAutoHeight)return 200;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Embed\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"400\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\",\"framerIntrinsicWidth\":\"600\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Embed.map"],"mappings":"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"}