{"version":3,"file":"MicrositeShare.CWnPxtZu.mjs","names":["useState","useRef","useState","__legacyOverrideHOC_DataObserverContext","_jsx"],"sources":["https:/framerusercontent.com/modules/o1PI5S8YtkA5bP5g4dFz/s801VqobGI0Gkh3K9b41/Embed.js","https:/framerusercontent.com/modules/A31ADTBV5DDxzHzslYV0/0hCFVeOFlhFOfoZLaEiR/MicrositeShare.js"],"sourcesContent":["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","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useState}from\"react\";export function LinkedIn(props){return{onTap(event){event.preventDefault();const closestParent=event.target.closest(\".principle\");const anchor=closestParent.getAttribute(\"data-framer-name\");// Build the current page URL with the anchor\nconst newUrl=new URL(window.location.href);//      newUrl.hash = anchor\nnewUrl.searchParams.set(\"anchor\",anchor);const finalUrl=newUrl.toString();// Build the LinkedIn share URL\nconst shareUrl=`https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(finalUrl)}`;console.log(\"Sharing to LinkedIn:\",shareUrl);// Open the share URL in a new tab\nwindow.open(shareUrl,\"_blank\");}};}export function Email(){return{onTap:event=>{const closestParent=event.target.closest(\".principle\");const anchor=closestParent.getAttribute(\"data-framer-name\");const newUrl=new URL(window.location.href);newUrl.hash=anchor;const finalUrl=newUrl.toString();// Get and clean up the title\nconst pageTitle=`${document.title}`;// Construct mailto link\nconst mailUrl=`mailto:?subject=${encodeURIComponent(pageTitle)}&body=${encodeURIComponent(finalUrl)}`;window.open(mailUrl,\"_blank\");}};}export function Clipboard(props){const[copySuccess,setCopySuccess]=useState(false);useEffect(()=>{let timeout;if(copySuccess){timeout=setTimeout(()=>{setCopySuccess(false);},1e3);}return()=>clearTimeout(timeout);},[copySuccess]);return{onTap:async event=>{const closestParent=event.target.closest(\".principle\");if(!closestParent){console.log('No parent with class \"principle\" found.');return;}const anchor=closestParent.getAttribute(\"data-framer-name\");if(!anchor){console.log(\"Element does not have [data-framer-name] attribute.\");return;}const newUrl=new URL(window.location.href);newUrl.hash=anchor;const finalUrl=newUrl.toString();try{await navigator.clipboard.writeText(finalUrl);setCopySuccess(true);console.log(\"Copied URL:\",finalUrl);}catch(err){console.error(\"Failed to copy:\",err);}}};}export function ScrollToAnchor(){useEffect(()=>{const params=new URLSearchParams(window.location.search);const anchor=params.get(\"anchor\");if(!anchor)return;// Wait until the DOM is ready\nsetTimeout(()=>{const target=document.querySelector(`[data-framer-name=\"${anchor}\"]`);if(target){target.scrollIntoView({behavior:\"smooth\"});}else{console.log(`No element found with [data-framer-name=\"${anchor}\"]`);}},100)// adjust delay if needed\n;},[]);return{};}import{useContext as __legacyOverrideHOC_useContext}from\"react\";import{DataObserverContext as __legacyOverrideHOC_DataObserverContext}from\"framer\";export function withLinkedIn(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...LinkedIn(props)});};}withLinkedIn.displayName=\"LinkedIn\";export function withEmail(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...Email(props)});};}withEmail.displayName=\"Email\";export function withClipboard(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...Clipboard(props)});};}withClipboard.displayName=\"Clipboard\";export function withScrollToAnchor(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...ScrollToAnchor(props)});};}withScrollToAnchor.displayName=\"ScrollToAnchor\";\nexport const __FramerMetadata__ = {\"exports\":{\"withLinkedIn\":{\"type\":\"reactHoc\",\"name\":\"withLinkedIn\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ScrollToAnchor\":{\"type\":\"override\",\"name\":\"ScrollToAnchor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LinkedIn\":{\"type\":\"override\",\"name\":\"LinkedIn\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withClipboard\":{\"type\":\"reactHoc\",\"name\":\"withClipboard\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withEmail\":{\"type\":\"reactHoc\",\"name\":\"withEmail\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Email\":{\"type\":\"override\",\"name\":\"Email\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Clipboard\":{\"type\":\"override\",\"name\":\"Clipboard\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withScrollToAnchor\":{\"type\":\"reactHoc\",\"name\":\"withScrollToAnchor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MicrositeShare.map"],"mappings":"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"}