{"version":3,"file":"Embed.D76z7f0d.mjs","names":["useState","useRef"],"sources":["https:/framerusercontent.com/modules/kBkaj3LmBqcSU2IkUsBC/uaFLaKvU3aNJkwvPcVLe/Download.js","https:/framer.com/m/framer/default-utils.js","https:/framerusercontent.com/modules/o1PI5S8YtkA5bP5g4dFz/cAPMVEI6osbJ1UvICgTq/Embed.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useTracking}from\"framer\";import{motion}from\"framer-motion\";var IconType;(function(IconType){IconType[\"Default\"]=\"Default\";IconType[\"Custom\"]=\"Custom\";})(IconType||(IconType={}));var SrcType;(function(SrcType){SrcType[\"Upload\"]=\"Upload\";SrcType[\"URL\"]=\"URL\";})(SrcType||(SrcType={}));const metaTagSelector='meta[name=\"framer-search-index\"]';function isPublishedSiteOrSSG(){if(typeof document===\"undefined\")return true;const metaTag=document.querySelector(metaTagSelector);return!!metaTag;}/**\n *\n * DOWNLOAD\n * By Hunter\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 100\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function Download(props){const{styleOptions,hoverOptions,iconOptions,trackingId,onClick}=props;const{backgroundColor,color,borderRadius,padding,paddingPerSide,paddingTop,paddingRight,paddingBottom,paddingLeft,gap}=styleOptions;const track=useTracking();const isInPublishedSiteOrSSG=isPublishedSiteOrSSG();let downloadURL=undefined;if(isInPublishedSiteOrSSG){if(props.srcType===\"URL\")downloadURL=props.srcURL;if(props.srcType===\"Upload\")downloadURL=props.srcFile;}const paddingValue=paddingPerSide?`${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`:`${padding}px`;const getIcon=()=>{if(!iconOptions)return;const iconStyle={order:iconOptions.alignment===\"start\"?0:2,flexShrink:0};return iconOptions.type===\"Custom\"&&!!iconOptions.image?.src?/*#__PURE__*/_jsx(\"img\",{style:iconStyle,alt:iconOptions.image?.alt&&iconOptions.image.alt.length>0?iconOptions.image.alt:\"download icon\",src:iconOptions.image.src,width:iconOptions.size,height:iconOptions.size}):/*#__PURE__*/_jsx(\"svg\",{style:iconStyle,xmlns:\"http://www.w3.org/2000/svg\",width:iconOptions.size,height:iconOptions.size,fill:iconOptions.color,viewBox:\"0 0 256 256\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M228 152v56a20 20 0 0 1-20 20H48a20 20 0 0 1-20-20v-56a12 12 0 0 1 24 0v52h152v-52a12 12 0 0 1 24 0Zm-108.49 8.49a12 12 0 0 0 17 0l40-40a12 12 0 0 0-17-17L140 123V40a12 12 0 0 0-24 0v83l-19.51-19.49a12 12 0 0 0-17 17Z\"})});};const getCursor=()=>{if(props.srcType===\"URL\"&&props.srcURL)return\"pointer\";if(props.srcType===\"Upload\"&&props.srcFile)return\"pointer\";return\"auto\";};const buttonTitle=isInPublishedSiteOrSSG?\"Download File\":\"Publish to Download\";const handleClick=e=>{if(trackingId)track(trackingId);onClick?.(e);// Do not prevent default; keep normal <a> behavior\n};return /*#__PURE__*/_jsxs(motion.a,{target:\"_blank\",href:downloadURL,download:props.downloadName??\"file.txt\",title:buttonTitle,style:{gap,fontSize:16,lineHeight:1,fontFamily:\"Inter\",fontWeight:500,width:\"max-content\",...props.style,...buttonStyles,...props.fontControl,padding:paddingValue,color:color,backgroundColor:backgroundColor,borderRadius:borderRadius,userSelect:\"none\",placeContent:flexAlignSwitch(props.fontControl),whiteSpace:\"nowrap\",cursor:getCursor()},whileHover:hoverOptions,transition:hoverOptions?.transition,onClick:handleClick,children:[getIcon(),props.text]});}Download.displayName=\"Download\";addPropertyControls(Download,{text:{title:\"Text\",type:ControlType.String,defaultValue:\"Download\"},srcType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Source\",options:[\"Upload\",\"URL\"]},srcURL:{type:ControlType.String,title:\" \",placeholder:\"../example.pdf\",hidden:props=>props.srcType===\"Upload\"},srcFile:{type:ControlType.File,title:\" \",allowedFileTypes:[\"*\"],hidden:props=>props.srcType===\"URL\"},fontControl:{// @ts-ignore - Internal\ntype:ControlType.Font,title:\"Font\",controls:\"extended\"},trackingId:{title:\"Tracking\",type:ControlType.TrackingId,placeholder:\"ID\"},iconOptions:{type:ControlType.Object,optional:true,title:\"Icon\",buttonTitle:\"Size, Color\",controls:{type:{title:\"Type\",type:ControlType.Enum,options:Object.values(IconType),optionTitles:Object.values(IconType),displaySegmentedControl:true},color:{title:\"Color\",type:ControlType.Color,defaultValue:\"#FFF\",hidden:props=>props.type===\"Custom\"},image:{title:\"File\",type:ControlType.ResponsiveImage,allowedFileTypes:[\"jpg\",\"png\",\"svg\"],hidden:props=>props.type===\"Default\"},size:{type:ControlType.Number,displayStepper:true,min:5,defaultValue:16,max:250},alignment:{title:\"Align\",type:ControlType.Enum,displaySegmentedControl:true,options:[\"start\",\"end\"],optionTitles:[\"Start\",\"End\"]}}},styleOptions:{type:ControlType.Object,title:\"Styles\",buttonTitle:\"Button, Font\",controls:{backgroundColor:{type:ControlType.Color,title:\"Fill\",defaultValue:\"#111\"},color:{type:ControlType.Color,defaultValue:\"#FFF\"},borderRadius:{type:ControlType.Number,title:\"Radius\",displayStepper:true,defaultValue:50},padding:{title:\"Padding\",type:ControlType.FusedNumber,toggleKey:\"paddingPerSide\",toggleTitles:[\"Padding\",\"Padding per side\"],defaultValue:10,valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0},gap:{title:\"Gap\",type:ControlType.Number,displayStepper:true,defaultValue:5}}},hoverOptions:{type:ControlType.Object,title:\"Hover\",buttonTitle:\"Effect\",optional:true,controls:{scale:{type:ControlType.Number,title:\"Scale\",min:0,max:10,displayStepper:true,step:.01,defaultValue:1.1},backgroundColor:{type:ControlType.Color,title:\"Fill\",defaultValue:\"#333\",optional:true},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FFF\",optional:true},transition:{type:ControlType.Transition,title:\"Transition\",defaultValue:{type:\"spring\",stiffness:400,damping:30}}}}});const buttonStyles={display:\"flex\",placeItems:\"center\",placeContent:\"center\",textDecoration:\"none\"};/* Match flex content alignment with text align */const flexAlignSwitch=fontControlStyles=>{if(!fontControlStyles?.textAlign)return\"left\";if(fontControlStyles.textAlign===\"left\")return\"flex-start\";if(fontControlStyles.textAlign===\"right\")return\"flex-end\";return\"center\";};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Download\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"100\",\"framerDisableUnlink\":\"*\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"200\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Download.map","/*\n * index (framer/default-utils@0.45.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js\"\n","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),allowFullScreen:true,allow:\"presentation; fullscreen; accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture; clipboard-write\"});}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\",\"framerIntrinsicWidth\":\"600\",\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Embed.map"],"mappings":"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"}