{"version":3,"file":"InteractionBlocker.BS_E_WKf.mjs","names":["useReducer","defaultConsent","useState","useState","_Fragment","Suspense","Banner","Button","useState","_Fragment","Suspense","useState","useRef","useRef","useState","useCallback"],"sources":["https:/framerusercontent.com/modules/RFM6zI5MxOiqwwNiQep4/2CcJhEanvh9oX5JHRkd8/send.js","https:/framerusercontent.com/modules/tfq8EDfrazNLXzc9LJte/hLcdFz4t8UjInDMvzq41/utils.js","https:/framerusercontent.com/modules/zvf2WTzc98u6EX2y7YDj/dsQTNWNk09IMnZEHMfzP/consent.js","https:/framerusercontent.com/modules/HKzIAGtbudIGLRAteuFH/Nhaar5CYKIbxxEaVvTJs/inEU.js","https:/framerusercontent.com/modules/0oeZpJVursioGAbwgB9e/atthcI0SmGvO4HAxG9e5/region.js","https:/framerusercontent.com/modules/EkwkxVF9vkTs720qqBC8/L9fJK0tucMOkjZFRszrm/Banner.js","https:/framerusercontent.com/modules/GbX8S6ghmyszcS2GLR2F/7p40RDrpC9PBWkQoJaco/Cookies.js","https:/framerusercontent.com/modules/o1PI5S8YtkA5bP5g4dFz/cAPMVEI6osbJ1UvICgTq/Embed.js","https:/framerusercontent.com/modules/XQTzHbz4361fi8IkecJ6/4mjXoGkIm6u2wMsFKaaq/InteractionBlocker.js"],"sourcesContent":["import{isBrowser}from\"framer-motion\";export const DEFAULT_DOMAIN=\"https://www.googletagmanager.com\";export const DEFAULT_SCRIPT_NAME=\"gtm.js\";/**\n * Function to get and set dataLayer\n * @param dataLayer - The dataLayer\n * @param dataLayerName - The dataLayer name\n */const getDataLayerSnippet=(dataLayer,dataLayerName=\"dataLayer\")=>`window['${dataLayerName}']=window['${dataLayerName}']||[];`+(dataLayer?`window['${dataLayerName}'].push(${JSON.stringify(dataLayer)});`:\"\")+`window['${dataLayerName}'].push({'gtm.start':new Date().getTime(),event:'gtm.js'})`;/**\n * Function to get the GTM script\n * @param dataLayerName - The name of the dataLayer\n * @param customDomain - Custom domain for gtm\n * @param customScriptName - Custom script file name for gtm\n * @param environment - The parameters to use a custom environment\n * @param id - The id of the container\n */const getGTMScript=(dataLayerName,id,environment,customDomain=DEFAULT_DOMAIN,customScriptName=DEFAULT_SCRIPT_NAME)=>{let params=\"\";if(environment){const{gtm_auth,gtm_preview}=environment;params=`&gtm_auth=${gtm_auth}&gtm_preview=${gtm_preview}&gtm_cookies_win=x`;}return`${customDomain}/${customScriptName}?id=${id}${dataLayerName===\"dataLayer\"?\"\":`&l=${dataLayerName}`}${params}`;};/**\n * Function to setup the Google Tag Manager\n * @param params - The snippets params\n */const setupGTM=params=>{const getDataLayerScript=()=>{const dataLayerScript=document.createElement(\"script\");if(params.nonce){dataLayerScript.setAttribute(\"nonce\",params.nonce);}dataLayerScript.innerHTML=getDataLayerSnippet(params.dataLayer,params.dataLayerName);return dataLayerScript;};const getScript=()=>{const script=document.createElement(\"script\");if(params.nonce){script.setAttribute(\"nonce\",params.nonce);}script.src=getGTMScript(params.dataLayerName,params.id,params.environment,params.customDomain,params.customScriptName);script.crossOrigin=\"anonymous\"// allows for more detailed INP collection\n;return script;};return{getDataLayerScript,getScript};};/**\n * Function to init the GTM\n * @param dataLayer - The dataLayer\n * @param dataLayerName - The dataLayer name\n * @param environment - Specify the custom environment to use\n * @param nonce - Server-generated nonce\n * @param id - The ID of the GTM\n */export const initGTM=({dataLayer,dataLayerName,environment,nonce,id,customDomain,customScriptName})=>{const gtm=setupGTM({dataLayer,dataLayerName,environment,nonce,id,customDomain,customScriptName});const dataLayerScript=gtm.getDataLayerScript();const script=gtm.getScript();document.head.append(dataLayerScript,script);};export function sendToGTM(){if(isBrowser){window[\"dataLayer\"]=window[\"dataLayer\"]||[];window[\"dataLayer\"].push(arguments);}}\nexport const __FramerMetadata__ = {\"exports\":{\"DEFAULT_DOMAIN\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_SCRIPT_NAME\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"initGTM\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"sendToGTM\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./send.map","import{isBrowser}from\"framer-motion\";import{useLayoutEffect}from\"react\";export const DEFAULT_FONT_FAMILY=`\"Inter\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;export function getFlexboxValues(position){const positionParts=position.split(\"-\");let justifyContent,alignItems;switch(positionParts[0]){case\"top\":alignItems=\"flex-start\";break;case\"bottom\":alignItems=\"flex-end\";break;case\"center\":alignItems=\"center\";break;default:alignItems=\"initial\";break;}switch(positionParts[1]){case\"left\":justifyContent=\"flex-start\";break;case\"right\":justifyContent=\"flex-end\";break;case\"center\":justifyContent=\"center\";break;default:justifyContent=\"initial\";break;}return{justifyContent,alignItems};}export function getMultipleShadows(...shadows){const output=[];shadows.forEach(shadow=>{return shadow&&output.push(shadow);});return output.join(\", \");}export function getShadow(shadow){if(shadow){return`${shadow.shadowX}px ${shadow.shadowY}px ${shadow.shadowBlur}px ${shadow.shadowColor}`;}else return null;}export function safeJSONParse(jsonString,onError){try{return JSON.parse(jsonString);}catch{if(onError)onError();}}export const getCookie=(name,cookies)=>{cookies=cookies?cookies:isBrowser?document.cookie:\"\";var _cookies_match;const[,,cookie]=(_cookies_match=cookies.match(`(^|;) ?${name}=([^;]*)(;|$)`))!==null&&_cookies_match!==void 0?_cookies_match:[null,null,null];return cookie;};/**\n * Yields to main thread before continuing execution, which might allow the browser to paint.\n * If `options.priority` is 'user-blocking', it will asynchronously resolve in older browsers.\n * @param {object} options - see https://github.com/WICG/scheduling-apis/blob/main/explainers/yield-and-continuation.md\n * @see interactionResponse for guaranteeing execution after a paint\n */export function yieldToMain(options){if(\"scheduler\"in window){if(\"yield\"in scheduler)return scheduler.yield(options);if(\"postTask\"in scheduler)return scheduler.postTask(()=>{},options);}if((options===null||options===void 0?void 0:options.priority)===\"user-blocking\"){// `setTimeout` could suffer from being delayed for longer: https://developer.chrome.com/blog/introducing-scheduler-yield-origin-trial#the_problem_with_current_yielding_strategies\n// so for browsers not supporting yield, we guarantee execution for high priority actions, but this does not create space for a paint opportunity as trade-off.\nreturn Promise.resolve();}return new Promise(resolve=>{setTimeout(resolve);});}/**\n * Helper function for `yieldToMain`, which yields before calling `fn`.\n * @see yieldToMain\n */export async function yieldBeforeCb(fn,options){await yieldToMain(options);return fn();}/**\n * Similar to `yieldToMain`, but also waits for the next animation frame before yielding (with a fallback of 100ms if the animation frame never fires).\n * Compared to `yieldToMain`, it guarantees improved INP, but might make processing a little slower. Use only if necessary.\n * @see yieldToMain\n */export function interactionResponse(options){return new Promise(resolve=>{setTimeout(resolve,200)// Fallback for the case where the animation frame never fires.\n;requestAnimationFrame(()=>{void yieldBeforeCb(resolve,options);});});}/**\n * Runs `fn` after the next paint. Similar to `useEffect`, but *guarantees* that the function is run after the next paint.\n * @important Does not support a cleanup fn.\n * @see https://thoughtspile.github.io/2021/11/15/unintentional-layout-effect/\n */export function useAfterPaintEffect(fn,deps,options){useLayoutEffect(()=>{const runAfterPaint=async()=>{await interactionResponse(options);fn();};void runAfterPaint();// eslint-disable-next-line react-hooks/exhaustive-deps -- deps are passed in\n},deps);}\nexport const __FramerMetadata__ = {\"exports\":{\"useAfterPaintEffect\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCookie\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"safeJSONParse\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getFlexboxValues\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"yieldBeforeCb\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getShadow\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getMultipleShadows\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FlexboxPosition\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"yieldToMain\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"interactionResponse\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_FONT_FAMILY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./utils.map","import{useIsOnFramerCanvas}from\"framer\";import{isBrowser}from\"framer-motion\";import{useEffect,useReducer,useState,startTransition}from\"react\";import{initGTM,sendToGTM}from\"https://framerusercontent.com/modules/RFM6zI5MxOiqwwNiQep4/2CcJhEanvh9oX5JHRkd8/send.js\";import{safeJSONParse,yieldBeforeCb}from\"https://framerusercontent.com/modules/tfq8EDfrazNLXzc9LJte/hLcdFz4t8UjInDMvzq41/utils.js\";function toGTMConsent(consent){return{functionality_storage:consent.necessary?\"granted\":\"denied\",security_storage:consent.necessary?\"granted\":\"denied\",ad_storage:consent.marketing?\"granted\":\"denied\",ad_user_data:consent.marketing?\"granted\":\"denied\",ad_personalization:consent.marketing?\"granted\":\"denied\",analytics_storage:consent.analytics?\"granted\":\"denied\",personalization_storage:consent.preferences?\"granted\":\"denied\"};}function fromGTMConsent(consent){return{necessary:consent.functionality_storage===\"granted\"&&consent.security_storage===\"granted\",marketing:consent.ad_storage===\"granted\"&&consent.ad_user_data===\"granted\"&&consent.ad_personalization===\"granted\",analytics:consent.analytics_storage===\"granted\",preferences:consent.personalization_storage===\"granted\"};}function reducer(state,action){switch(action.type){case\"autoAccept\":return{...state,sync:true,autoAccepted:true,modes:{analytics:true,marketing:true,necessary:true,preferences:true}};case\"acceptAll\":return{...state,sync:true,dismissed:true,modes:{analytics:true,marketing:true,necessary:true,preferences:true}};case\"rejectAll\":return{...state,sync:true,dismissed:true,modes:{analytics:false,marketing:false,necessary:false,preferences:false}};case\"acceptCurrent\":return{...state,dismissed:true,sync:true};case\"update\":return{...state,modes:{...state.modes,...action.modes},sync:action.sync};case\"toggle\":return{...state,modes:{...state.modes,[action.mode]:!state.modes[action.mode]}};case\"initFromLocalStorage\":return{...state,modes:action.modes,dismissed:action.dismissed,autoAccepted:action.autoAccepted,initializedFromLocalStorage:true,sync:true};case\"initFromGTM\":return{...state,modes:action.modes,initializedFromGTM:true};case\"dismiss\":return{...state,dismissed:true};case\"synced\":return{...state,sync:false,hasSynced:state.hasSynced||action.success};default:return state;}}const initialState={dismissed:false,autoAccepted:false,modes:null,sync:false,initializedFromLocalStorage:false,initializedFromGTM:false,hasSynced:false};export const defaultConsent={necessary:false,analytics:false,marketing:false,preferences:false};// Keep track of if GTM has been loaded as a script and default consent has been set,\n// to ensure the script does not keep appending between page switches.\nlet hasInitializedGTM=false;export function useConsent({gtmId,defaultConsent,gtmLoadedExternally=false,defaultsFromGTM=false}){const[state,dispatch]=useReducer(reducer,initialState);const isOnFramerCanvas=useIsOnFramerCanvas();const consentModeLocalStorageKey=\"framerCookiesConsentMode\";const dismissedLocalStorageKey=\"framerCookiesDismissed\";const autoAcceptedLocalStorageKey=\"framerCookiesAutoAccepted\";function getStateFromLocalStorage(){const consentFromLocalStorage=localStorage.getItem(consentModeLocalStorageKey);const dismissedFromLocalStorage=localStorage.getItem(dismissedLocalStorageKey);const autoAcceptedFromLocalStorage=localStorage.getItem(autoAcceptedLocalStorageKey);const isDismissed=dismissedFromLocalStorage!==null;const isAutoAccepted=autoAcceptedFromLocalStorage!==null;const hasConsentInLocalStorage=consentFromLocalStorage!==null;const consentInLocalStorageIsNotDefault=isDismissed||isAutoAccepted;const shouldLoadConsentFromLocalStorage=hasConsentInLocalStorage&&consentInLocalStorageIsNotDefault;dispatch({type:\"initFromLocalStorage\",dismissed:isDismissed,autoAccepted:isAutoAccepted,modes:shouldLoadConsentFromLocalStorage?safeJSONParse(consentFromLocalStorage,()=>localStorage.removeItem(consentModeLocalStorageKey)):defaultConsent});}function syncToGTM(){if(gtmId){if(!hasInitializedGTM&&!gtmLoadedExternally&&!defaultsFromGTM){// This is the first time we sync consent, so we save it as \"default\" and initialize tag manager.\n// This order is important, because we need to have set the default consent BEFORE we initialize\n// GTM. See https://developers.google.com/tag-platform/devguides/consent?tab=tag-manager&sjid=11348191096952324675-EU#implementation_example\n// It might seem weird that we're \"sending\" before initializing, but \"sending\" here means building up\n// the \"dataLayer\" object that GTM picks up when it initializes.\nsendToGTM(\"consent\",\"default\",toGTMConsent(state.modes));initGTM({dataLayer:undefined,dataLayerName:\"dataLayer\",environment:undefined,nonce:undefined,injectScript:true,id:gtmId});hasInitializedGTM=true;}else{hasInitializedGTM=true;sendToGTM(\"consent\",\"update\",toGTMConsent(state.modes));// must be sent like this or else GTM doesn't act on it(?)\n// Publically documented: https://www.framer.com/academy/lessons/cookie-banner-component#:~:text=Run%20a%20Tag%20After%20The%20Consent%20Update\nwindow.dataLayer.push({event:\"cookie_consent_update\"});}}}useEffect(()=>{if(isOnFramerCanvas)return;if(!defaultsFromGTM)return;if(defaultConsent===null)return;if(state.initializedFromGTM)return;if(state.modes!==null)return;// State was already set (from localStorage)\nyieldBeforeCb(()=>{dispatch({type:\"initFromGTM\",modes:defaultConsent});},{priority:\"user-blocking\"});},[defaultsFromGTM,defaultConsent,state.initializedFromGTM,state.modes]);useEffect(()=>{if(isOnFramerCanvas)return;yieldBeforeCb(()=>getStateFromLocalStorage(),{priority:\"user-blocking\"});},[]);// Anytime the dismissed value is updated, we need to persist it in local storage.\nuseEffect(()=>{if(isOnFramerCanvas)return;if(state.dismissed){localStorage.setItem(dismissedLocalStorageKey,\"true\");}},[state.dismissed]);// Anytime consent is auto accepted, we need to persist it in local storage.\nuseEffect(()=>{if(isOnFramerCanvas)return;if(state.autoAccepted){localStorage.setItem(autoAcceptedLocalStorageKey,\"true\");}},[state.autoAccepted]);// Sync data to dataLayer and localStorage.\nuseEffect(()=>{if(isOnFramerCanvas)return;if(!state.sync)return;const shouldSync=isBrowser&&state.modes!==null;yieldBeforeCb(()=>{if(!shouldSync){dispatch({type:\"synced\",success:false});return;}// else\nsyncToGTM();// Save locally\nlocalStorage.setItem(consentModeLocalStorageKey,JSON.stringify(state.modes));dispatch({type:\"synced\",success:true});},{priority:\"user-blocking\"});},[state.sync,state.modes]);function dismiss(){dispatch({type:\"dismiss\"});localStorage.setItem(dismissedLocalStorageKey,\"true\");}function autoAccept(){dispatch({type:\"autoAccept\"});}function acceptAll(){dispatch({type:\"acceptAll\"});}function rejectAll(){dispatch({type:\"rejectAll\"});}function acceptCurrent(){dispatch({type:\"acceptCurrent\"});}function toggleMode(mode){dispatch({type:\"toggle\",mode});}return{modes:state.modes,isInitialized:state.hasSynced||state.initializedFromGTM,isDismissed:state.dismissed,isAutoAccepted:state.autoAccepted,dismiss,autoAccept,acceptAll,rejectAll,acceptCurrent,toggleMode};}////////////////////////////////////////////////////////////////////////////////\nconst PROMISE_NAME=\"__framer_cookieBannerDefaultConsentPromise\";// NOTE: Error can be ignored, because of `isBrowser`\nconst gtmSetsDefaultConsent=isBrowser&&!!window[PROMISE_NAME];export function useGTMDefaultConsent(){const[consent,setConsent]=useState(null);useEffect(()=>{if(!gtmSetsDefaultConsent)return;window[PROMISE_NAME].then(result=>{startTransition(()=>{setConsent(result);});});},[]);// Simplified region to use for the cookie banner\nlet region;if(consent){region=Object.values(consent).every(v=>v===\"granted\")?\"World\":\"EU\";}return{available:gtmSetsDefaultConsent,consent:consent?fromGTMConsent(consent):null,region};}\nexport const __FramerMetadata__ = {\"exports\":{\"ConsentModeName\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useGTMDefaultConsent\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ConsentModes\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useConsent\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultConsent\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./consent.map","// Check if visitor is in EU\nconst countries=[\"BE\",\"EL\",\"LT\",\"PT\",\"BG\",\"ES\",\"LU\",\"RO\",\"CZ\",\"FR\",\"RE\",\"GP\",\"MQ\",\"GF\",\"YT\",\"BL\",\"MF\",\"PM\",\"WF\",\"PF\",\"NC\",\"HU\",\"SI\",\"DK\",\"FO\",\"GL\",\"HR\",\"MT\",\"SK\",\"DE\",\"IT\",\"NL\",\"AW\",\"CW\",\"SX\",\"FI\",\"AX\",\"EE\",\"CY\",\"AT\",\"SE\",\"IE\",\"LV\",\"PL\",\"UK\",\"GB\",\"AI\",\"BM\",\"IO\",\"VG\",\"KY\",\"FK\",\"GI\",\"MS\",\"PN\",\"SH\",\"TC\",\"GG\",\"JE\",\"IM\"];const isInEUTimezone=()=>{return Intl?.DateTimeFormat()?.resolvedOptions()?.timeZone?.startsWith(\"Europe\");};const isEULocale=()=>{const locale=navigator.language??navigator.languages?.[0];return countries.some(country=>locale?.toUpperCase()?.includes(country));};let _inEU=null;export const inEU=()=>{if(_inEU===null)_inEU=isInEUTimezone()||isEULocale();return _inEU;};\nexport const __FramerMetadata__ = {\"exports\":{\"inEU\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./inEU.map","import{isBrowser}from\"framer-motion\";import{inEU}from\"https://framerusercontent.com/modules/HKzIAGtbudIGLRAteuFH/Nhaar5CYKIbxxEaVvTJs/inEU.js\";export function useRegion({content,useRegionFromProps,skipEUCheck,regionFromGTM}){const isInEUBasedOnLocation=isBrowser&&!skipEUCheck&&!regionFromGTM?inEU():false;const regionBasedOnLocation=isInEUBasedOnLocation?\"EU\":\"World\";const regionFromProps=content.isEU?\"EU\":\"World\";const regionContent={EU:{title:content.euTitle,description:content.euDescription,type:content.euType,defaults:content.euDefaults,policy:content.euPolicy,blocking:content.euBlocking,showReject:content.euType===\"advanced\"?content.euShowReject:true},World:{title:content.worldTitle,description:content.worldDescription,type:content.worldType,defaults:content.worldDefaults,policy:content.worldPolicy,blocking:content.worldBlocking,showReject:content.worldType===\"advanced\"?content.worldShowReject:true}};return regionContent[regionFromGTM?regionFromGTM:useRegionFromProps?regionFromProps:regionBasedOnLocation];}\nexport const __FramerMetadata__ = {\"exports\":{\"RegionContent\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RegionType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRegion\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./region.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,lazy,Suspense}from\"react\";import{withCSS}from\"framer\";import{AnimatePresence,motion}from\"framer-motion\";import{DEFAULT_FONT_FAMILY,getMultipleShadows,getShadow}from\"https://framerusercontent.com/modules/tfq8EDfrazNLXzc9LJte/hLcdFz4t8UjInDMvzq41/utils.js\";const SPACING=20;// if you update the Toggle component inside this project, copy the new URL to here:\nconst Toggle=/*#__PURE__*/lazy(()=>import(\"https://framerusercontent.com/modules/QDCSmi7dYWSK5AcRSFyX/sBWK1WbcsjrFOSoIzxuJ/Blf0sjosZ.js\"));export const Banner=withCSS(function Banner({banner,button,region,options,previewOptions,consentModes,onDismiss,onAcceptAll,onRejectAll,onAcceptCurrent,onToggleConsent,animateOnMount}){const maxHeightReduction=banner.insetPerSide?banner.insetTop+banner.insetBottom:banner.inset*2;const linkColor=banner.style.link||button.primary.fill;const paddingValue=banner.paddingPerSide?`${banner.paddingTop}px ${banner.paddingRight}px ${banner.paddingBottom}px ${banner.paddingLeft}px`:`${banner.padding}px`;const bannerShadow=getShadow(banner.style.shadow);const borderShadow=banner.style.border?.width?`inset 0 0 0 ${banner.style.border.width}px ${banner.style.border.color}`:null;const bannerStyle={background:banner.style.fill,boxShadow:getMultipleShadows(bannerShadow,borderShadow),overflow:\"hidden\",borderRadius:banner.style.border.radius};return /*#__PURE__*/_jsx(motion.div,{initial:animateOnMount&&{x:banner.animation.x,y:banner.animation.y,scale:banner.animation.scale,opacity:0},animate:{y:0,x:0,scale:1,opacity:1},exit:{x:banner.animation.x,y:banner.animation.y,scale:banner.animation.scale,opacity:0},transition:animateOnMount?banner.animation.transition:{duration:0},style:{fontFamily:DEFAULT_FONT_FAMILY,maxHeight:`calc(100vh - ${maxHeightReduction}px)`,flexDirection:\"column\",gap:12,position:\"relative\",display:\"flex\",zIndex:100,pointerEvents:\"auto\"},children:/*#__PURE__*/_jsx(\"div\",{style:{...bannerStyle,overflow:\"scroll\",width:\"100%\",maxWidth:banner.width},className:`--framer-cookie-banner-container --framer-cookie-banner-type-${region.type}`,children:region.type===\"simple\"?/*#__PURE__*/_jsx(SimpleBanner,{banner:banner,button:button,linkColor:linkColor,description:region.description,policy:region.policy,onDismiss:onDismiss}):region.type===\"medium\"?/*#__PURE__*/_jsx(AcceptRejectBanner,{banner:banner,button:button,linkColor:linkColor,title:region.title,description:region.description,policy:region.policy,onAccept:onAcceptAll,onReject:onRejectAll}):/*#__PURE__*/_jsx(OptionsBanner,{banner:banner,button:button,options:options,previewOptions:previewOptions,linkColor:linkColor,title:region.title,description:region.description,showReject:region.showReject,policy:region.policy,onOptionToggle:onToggleConsent,consent:consentModes,onAcceptAll:onAcceptAll,onRejectAll:onRejectAll,onAcceptCurrent:onAcceptCurrent})})});},[`.--framer-cookie-banner-container::-webkit-scrollbar { display: none; }`,`.--framer-cookie-banner-container { \n            -ms-overflow-style: none; \n            scrollbar-width: none;  \n        }`],\"framer-lib-cookie-banner\");function SimpleBanner({banner,button,description,policy,onDismiss,linkColor}){const padding=banner.paddingPerSide?`${banner.paddingTop}px ${banner.paddingRight}px ${banner.paddingBottom}px ${banner.paddingLeft}px`:`${banner.padding}px`;return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",padding,gap:SPACING},children:[/*#__PURE__*/_jsx(Description,{style:{...banner.style.fontBody,flex:1,alignItems:\"center\",color:banner.style.colorBody},linkColor:linkColor,description:description,policy:policy}),/*#__PURE__*/_jsx(motion.div,{style:{display:\"flex\",justifyContent:\"center\",alignItems:\"center\"},children:/*#__PURE__*/_jsx(Button,{onClick:onDismiss,settings:{...button,fluid:false},id:\"dismiss\",children:button.labels.confirm})})]});}function AcceptRejectBanner({banner,button,title,linkColor,description,policy,onAccept,onReject}){const padding=banner.paddingPerSide?`${banner.paddingTop}px ${banner.paddingRight}px ${banner.paddingBottom}px ${banner.paddingLeft}px`:`${banner.padding}px`;return /*#__PURE__*/_jsxs(\"div\",{style:{padding},children:[/*#__PURE__*/_jsxs(\"div\",{children:[title&&/*#__PURE__*/_jsx(Headline,{style:{...banner.style.fontTitle,color:banner.style.colorTitle},children:title}),/*#__PURE__*/_jsx(Description,{style:{...banner.style.fontBody,color:banner.style.colorBody},linkColor:linkColor,description:description,policy:policy})]}),/*#__PURE__*/_jsxs(Buttons,{direction:button.direction,children:[/*#__PURE__*/_jsx(Button,{settings:button,onClick:onReject,id:\"reject\",children:button.labels.reject}),/*#__PURE__*/_jsx(Button,{settings:button,primary:true,onClick:onAccept,id:\"accept\",children:button.labels.accept})]})]});}function OptionsBanner({banner,button,options,previewOptions,title,description,policy,showReject=true,linkColor,consent,onAcceptCurrent,onAcceptAll,onRejectAll,onOptionToggle}){const[showOptions,setShowOptions]=useState(false);const optionTheme={...options.style,color:banner.style.colorBody};const padding=banner.paddingPerSide?`${banner.paddingTop}px ${banner.paddingRight}px ${banner.paddingBottom}px ${banner.paddingLeft}px`:`${banner.padding}px`;// const optionNames = consent && Object.keys(consent)\nconst optionNames=[\"necessary\",\"preferences\",\"analytics\",\"marketing\"];const shouldShowOptions=showOptions||previewOptions;return /*#__PURE__*/_jsxs(\"div\",{style:{padding},children:[/*#__PURE__*/_jsxs(\"div\",{children:[title&&/*#__PURE__*/_jsx(Headline,{style:{...banner.style.fontTitle,color:banner.style.colorTitle},children:title}),/*#__PURE__*/_jsx(Description,{style:{...banner.style.fontBody,color:banner.style.colorBody},linkColor:linkColor,description:description,policy:policy}),/*#__PURE__*/_jsx(AnimatePresence,{children:shouldShowOptions&&/*#__PURE__*/_jsx(motion.div,{initial:previewOptions?null:{opacity:0,height:0},animate:{opacity:1,height:\"auto\"},exit:{opacity:0,height:0},style:{display:\"flex\",flexDirection:\"column\",gap:10,marginTop:SPACING,overflow:\"hidden\"},children:optionNames&&optionNames.map(option=>/*#__PURE__*/_jsx(Option,{title:options[option].title,description:options[option].description,titleColor:banner.style.colorTitle,descriptionColor:banner.style.colorBody,showDescription:options.descriptions,enabled:consent[option],onClick:()=>onOptionToggle(option),theme:optionTheme,optional:option===\"necessary\"?options[option].optional:true}))},\"modal\")})]}),/*#__PURE__*/_jsx(Buttons,{direction:button.direction,children:shouldShowOptions?/*#__PURE__*/_jsx(Button,{settings:button,primary:true,onClick:onAcceptCurrent,id:\"accept\",children:button.labels.save}):/*#__PURE__*/_jsxs(_Fragment,{children:[showReject&&/*#__PURE__*/_jsx(Button,{settings:button,onClick:onRejectAll,id:\"reject\",children:button.labels.rejectAll}),/*#__PURE__*/_jsx(Button,{settings:button,onClick:()=>{setShowOptions(true);},id:\"customize\",children:button.labels.customize}),/*#__PURE__*/_jsx(Button,{settings:button,primary:true,onClick:onAcceptAll,id:\"accept\",children:button.labels.acceptAll})]})})]});}function Option({title,titleColor,description,descriptionColor,showDescription,enabled,optional,onClick,theme}){const paddingValue=theme.paddingPerSide?`${theme.paddingTop}px ${theme.paddingRight}px ${theme.paddingBottom}px ${theme.paddingLeft}px`:`${theme.padding}px`;const borderShadow=theme.border?`inset 0 0 0 ${theme.border.width}px ${theme.border.color}`:null;return /*#__PURE__*/_jsxs(motion.div,{style:{boxShadow:borderShadow,background:theme.background,borderRadius:theme.border.radius,padding:paddingValue,cursor:\"pointer\",userSelect:\"none\",pointerEvents:\"all\"},onClick:onClick,whileHover:{opacity:.5},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\"},children:[/*#__PURE__*/_jsx(\"p\",{style:{margin:0,fontWeight:600,fontSize:12,color:titleColor,...theme.fontTitle},children:title}),optional?/*#__PURE__*/_jsx(Suspense,{children:/*#__PURE__*/_jsx(Toggle,{variant:enabled?\"On\":\"Off\",background:theme.toggleColor,backgroundInactive:theme.toggleColorInactive,ariaLabel:`Toggle for ${title}`})}):/*#__PURE__*/_jsx(\"p\",{style:{margin:0,fontSize:12,color:theme.toggleColor,...theme.fontTitle,fontWeight:400},children:\"Always active\"})]}),description&&/*#__PURE__*/_jsx(\"p\",{style:{margin:0,marginTop:10,fontSize:12,lineHeight:1.5,color:descriptionColor,...theme.fontBody},children:description})]});}function Headline({children,style}){return /*#__PURE__*/_jsx(\"p\",{style:{fontSize:14,margin:\"0px 0px 10px 0px\",fontWeight:\"bold\",padding:0,...style},children:children});}function Description({style,description,policy,linkColor}){const shouldShow=description||policy?.link;if(!shouldShow)return null;if(!description){return /*#__PURE__*/_jsx(DescriptionParagraph,{policy:policy,style:style,linkColor:linkColor});}// @ivan: Support rendering the description in multiple paragraphs.\n// This is a site speed optimization: it allows to split a single\n// huge <p> into several smaller ones, which prevents the huge <p>\n// from becoming an LCP element.\nconst descriptionParagraphs=description?.split(\"\\n\\n\");return description.split(\"\\n\\n\").map((line,index)=>/*#__PURE__*/_jsx(DescriptionParagraph,{line:line,// Only render the policy in the last paragraph\n    policy:index===descriptionParagraphs.length-1?policy:null,style:{// Add a spacing between paragraphs\n    marginTop:index>0?4:0,...style},linkColor:linkColor},index));}function DescriptionParagraph({line,policy,style,linkColor}){return /*#__PURE__*/_jsxs(\"p\",{style:{lineHeight:1.5,margin:0,padding:0,fontSize:14,...style},children:[line,line&&policy?.link?\" \":null,policy?.link&&/*#__PURE__*/_jsxs(\"span\",{children:[policy?.prefix,\" \",/*#__PURE__*/_jsx(\"a\",{href:policy?.link,target:\"_blank\",style:{color:linkColor,textDecoration:\"none\"},children:policy?.label}),\".\"]})]});}function Buttons({children,direction}){return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:direction,gap:10,marginTop:16},children:children});}const Button=withCSS(function Button({id,children,primary,settings,onClick}){const paddingValue=settings.paddingPerSide?`${settings.paddingTop}px ${settings.paddingRight}px ${settings.paddingBottom}px ${settings.paddingLeft}px`:`${settings.padding}px`;const theme=primary?settings.primary:settings.secondary;return /*#__PURE__*/_jsx(motion.input,{className:\"__framer-cookie-component-button\",id:`__framer-cookie-component-button-${id}`,onClick:onClick,type:\"button\",value:`${children}`,whileHover:{opacity:settings.hoverOpacity??.6},whileTap:{opacity:settings.tapOpacity??.4},style:{WebkitAppearance:\"none\",appearance:\"none\",width:settings.fluid?\"100%\":\"auto\",height:\"auto\",border:\"none\",padding:paddingValue,borderRadius:settings.borderRadius,boxShadow:getShadow(theme.shadow),background:theme.fill,color:theme.color,fontSize:14,lineHeight:1,cursor:\"pointer\",fontWeight:settings.font?\"unset\":600,...settings.font}});},\".__framer-cookie-component-button:focus:not(:focus-visible){outline-color:transparent}\");\nexport const __FramerMetadata__ = {\"exports\":{\"Banner\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BannerComponentProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Banner.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,useIsOnFramerCanvas,withCSS}from\"framer\";import{AnimatePresence,isBrowser,motion}from\"framer-motion\";import{lazy,Suspense,useEffect,useState}from\"react\";import{createPortal}from\"react-dom\";import{defaultConsent,useConsent,useGTMDefaultConsent}from\"https://framerusercontent.com/modules/zvf2WTzc98u6EX2y7YDj/dsQTNWNk09IMnZEHMfzP/consent.js\";import{useRegion}from\"https://framerusercontent.com/modules/0oeZpJVursioGAbwgB9e/atthcI0SmGvO4HAxG9e5/region.js\";import{Banner}from\"https://framerusercontent.com/modules/EkwkxVF9vkTs720qqBC8/L9fJK0tucMOkjZFRszrm/Banner.js\";import{inEU}from\"https://framerusercontent.com/modules/HKzIAGtbudIGLRAteuFH/Nhaar5CYKIbxxEaVvTJs/inEU.js\";import{DEFAULT_FONT_FAMILY,getFlexboxValues,interactionResponse,yieldBeforeCb}from\"https://framerusercontent.com/modules/tfq8EDfrazNLXzc9LJte/hLcdFz4t8UjInDMvzq41/utils.js\";// Keep track of open state between page reloads\nlet initiallyOpen=false;/**\n * COOKIE BANNER\n * By Floris Verloop\n *\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n *\n * @framerDisableUnlink\n *\n */export default function CookieBanner({gtmId,preview,trigger,banner,button,content,options,style,gtmLoadedExternally,onShown,onConsentChange,onAccept,onDismiss,onReject,onSavePreferences}){const isOnFramerCanvas=useIsOnFramerCanvas();const isPreview=preview&&isOnFramerCanvas;const skipLogic=!preview&&isOnFramerCanvas;const isInEU=isBrowser?inEU():false;// we ignore customer's GTM in preview because their specific setups can break the preview currently\n// this can be removed if we remove reliance on globals for react symbols in the preview\n// https://framer-team.slack.com/archives/C01J38GC2SW/p1770826268498759\nconst skipGTMId=isInFramerPreview();const gtmDefaults=useGTMDefaultConsent();const region=useRegion({content,useRegionFromProps:isPreview,// skip EU check (expensive) if we are on the canvas and don't want a preview\nskipEUCheck:skipLogic,regionFromGTM:gtmDefaults.region});const consent=useConsent({gtmId:skipGTMId?\"\":gtmId,defaultConsent:gtmDefaults.available?gtmDefaults.consent:region.defaults,gtmLoadedExternally,defaultsFromGTM:gtmDefaults.available});const[isOpen,setIsOpen]=useState(initiallyOpen);// On page switch, disable all transitions so the banner shows up as fast as possible.\nconst[instantlyShowOnMount,setInstantlyShowOnMount]=useState(initiallyOpen);useEffect(()=>{if(skipLogic)return;// Save open state between page switches\ninitiallyOpen=isOpen;// Disable instantly show on mount after first open\nif(isOpen){setInstantlyShowOnMount(false);}// Track shown event\nif(isOpen&&!isPreview&&onShown){yieldBeforeCb(()=>onShown({isInEU}),{priority:\"user-blocking\"});}},[isOpen,skipLogic]);// Check if user should be prompted\nuseEffect(()=>{if(skipLogic)return;const noConsentGiven=consent.isInitialized&&!consent.isDismissed;const shouldAutoAccept=region.type===\"simple\"&&!consent.isAutoAccepted;if(noConsentGiven){performance.mark(\"framer-cookie-open\");setIsOpen(true);/** Automatically accept all cookies for simple banner. */if(shouldAutoAccept){consent.autoAccept();// Fire callback\nif(onAccept){yieldBeforeCb(()=>onAccept({isInEU}));}}}if(consent.isDismissed){setIsOpen(false);}},[consent.isInitialized,consent.isDismissed,skipLogic]);useEffect(()=>{if(skipLogic)return;if(onConsentChange){yieldBeforeCb(()=>onConsentChange({isInEU,consent:consent.modes}));}},[consent.modes,skipLogic]);async function handleDismiss(){await interactionResponse();consent.dismiss();setIsOpen(false);// Fire callback\nif(onDismiss){yieldBeforeCb(()=>onDismiss({isInEU}));}}async function handleAcceptAll(){await interactionResponse();consent.acceptAll();setIsOpen(false);// Fire callback\nif(onAccept){yieldBeforeCb(()=>onAccept({isInEU}));}}async function handleRejectAll(){await interactionResponse();consent.rejectAll();setIsOpen(false);// Fire callback\nif(onReject){yieldBeforeCb(()=>onReject({isInEU}));}}async function handleAcceptCurrent(){await interactionResponse();consent.acceptCurrent();setIsOpen(false);// Fire callbacks\nyieldBeforeCb(()=>{if(onAccept){onAccept({isInEU});}});yieldBeforeCb(()=>{if(onSavePreferences){onSavePreferences({isInEU});}});}if(isPreview){return /*#__PURE__*/_jsx(\"div\",{style:{...style,width:banner.width},children:/*#__PURE__*/_jsx(Banner,{banner:banner,button:button,region:region,options:options,previewOptions:isPreview&&options.preview,consentModes:{...defaultConsent,necessary:true},animateOnMount:false})});}return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Trigger,{style:style,trigger:trigger,onClick:()=>setIsOpen(true)}),!skipLogic&&/*#__PURE__*/_jsx(Overlay,{banner:banner,button:button,region:region,options:options,consentModes:consent.modes,animateOnMount:!instantlyShowOnMount,onAcceptAll:handleAcceptAll,onAcceptCurrent:handleAcceptCurrent,onRejectAll:handleRejectAll,onDismiss:handleDismiss,onToggleConsent:consent.toggleMode,isOpen:isOpen})]});}function isInFramerPreview(){return RenderTarget.current()===RenderTarget.preview&&typeof window!==\"undefined\"&&window.origin?.endsWith(\"framercanvas.com\");}const IconCookie=/*#__PURE__*/lazy(()=>import(\"https://framerusercontent.com/modules/80EyUU0Nk6u7skW3IlHH/qKhU3oZiLDe4R0LcF3Tp/Icons.js\"));function Overlay(props){const insetValue=props.banner.insetPerSide?`${props.banner.insetTop}px ${props.banner.insetRight}px ${props.banner.insetBottom}px ${props.banner.insetLeft}px`:`${props.banner.inset}px`;const{justifyContent,alignItems}=getFlexboxValues(props.banner.position);const isOpen=props.isOpen;const[shouldRenderPortal,setShouldRenderPortal]=useState(isOpen);// if the portal has previously been rendered, we want to keep rendering the portal, which ensures:\n// - that AnimatePresence works (fade out effect)\n// - we don't cause body style recalc/reflow when the DOM node is removed\nif(!shouldRenderPortal&&isOpen)setShouldRenderPortal(isOpen);if(!shouldRenderPortal)return null;const blocking=props.region.blocking;return /*#__PURE__*/createPortal(/*#__PURE__*/_jsx(\"div\",{style:{display:\"contents\"},children:/*#__PURE__*/_jsx(AnimatePresence,{children:isOpen?/*#__PURE__*/_jsxs(motion.div,{style:{// We only need to span to the full viewport width if the overlay is blocking.\n// Otherwise, we optimize for a smaller layer size. see: https://framer-team.slack.com/archives/C05V49Q4NJ2/p1709820207863249\ntop:blocking||alignItems===\"flex-start\"?0:undefined,left:blocking||justifyContent===\"flex-start\"?0:undefined,right:blocking||justifyContent===\"flex-end\"?0:undefined,height:blocking?\"100%\":undefined,width:blocking||justifyContent===\"center\"?\"100%\":undefined,bottom:blocking||alignItems===\"flex-end\"?0:undefined,boxSizing:\"border-box\",position:\"fixed\",touchAction:\"none\",padding:insetValue,zIndex:props.banner.zIndex,display:\"flex\",flexDirection:\"row\",gap:20,justifyContent:\"center\",pointerEvents:blocking?\"all\":\"none\"},children:[blocking&&/*#__PURE__*/_jsx(Backdrop,{color:props.banner.style?.backdrop}),/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",justifyContent,alignItems,pointerEvents:\"none\",maxWidth:props.banner.containerWidth>0?props.banner.containerWidth:\"unset\"},children:/*#__PURE__*/_jsx(Banner,{...props})})]}):null})}),document.body);}const Trigger=withCSS(({trigger,style,onClick})=>{const isOnFramerCanvas=useIsOnFramerCanvas();if(trigger.type!==\"none\"){return /*#__PURE__*/_jsx(\"button\",{className:\"__framer-cookie-component-button\",\"aria-label\":\"Cookie Trigger\",style:{width:\"100%\",height:\"100%\",background:\"none\",display:\"flex\",border:\"none\",padding:0,color:trigger.color,fontSize:16,cursor:\"pointer\",...trigger.textFont},onClick:onClick,children:trigger.type===\"icon\"?/*#__PURE__*/_jsx(_Fragment,{children:trigger.iconType===\"custom\"&&trigger.iconImage?/*#__PURE__*/_jsx(\"img\",{alt:\"icon entry point for Site Search\",src:trigger.iconImage.src,width:trigger.iconSize,height:trigger.iconSize}):/*#__PURE__*/_jsx(Suspense,{children:/*#__PURE__*/_jsx(IconCookie,{width:trigger.iconSize,height:trigger.iconSize,color:trigger.color})})}):/*#__PURE__*/_jsx(\"span\",{style:{whiteSpace:\"nowrap\"},children:trigger.text})});}if(isOnFramerCanvas){return /*#__PURE__*/_jsxs(\"div\",{style:{borderRadius:8,color:\"#09F\",border:\"1px dashed #09F\",background:\"rgba(0, 153, 255, 0.1)\",padding:20,display:\"flex\",flexDirection:\"column\",gap:5,fontFamily:DEFAULT_FONT_FAMILY,textAlign:\"center\",justifyContent:\"center\",width:164,...style},children:[/*#__PURE__*/_jsx(\"p\",{style:{fontSize:12,fontWeight:600,lineHeight:1,margin:0},children:\"Cookie Banner\"}),/*#__PURE__*/_jsx(\"p\",{style:{fontSize:12,lineHeight:1.5,margin:0},children:\"Put on a page to add a Cookie Banner.\"})]});}},\".__framer-cookie-component-button:focus:not(:focus-visible){outline-color:transparent}\",\"framer-lib-cookie-trigger\");function Backdrop({color}){return /*#__PURE__*/_jsx(motion.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},style:{position:\"absolute\",top:0,left:0,right:0,bottom:0,width:\"100%\",height:\"100%\",backgroundColor:color,pointerEvents:\"none\"}});}addPropertyControls(CookieBanner,{gtmId:{title:\"GTM ID\",type:ControlType.String,placeholder:\"GTM-AAAAAAA\",description:\"Your GTM container ID.\\n[Learn more](https://www.framer.com/learn/cookie-banner/)\"},preview:{type:ControlType.Boolean,defaultValue:true,description:\"Lets you preview the banner on the Canvas.\"},trigger:{type:ControlType.Object,buttonTitle:\"Icon, Text\",controls:{type:{title:\"Type\",type:ControlType.Enum,options:[\"text\",\"icon\",\"none\"],optionTitles:[\"Text\",\"Icon\",\"None\"],defaultValue:\"text\",displaySegmentedControl:true},iconType:{title:\"Icon\",type:ControlType.Enum,options:[\"default\",\"custom\"],optionTitles:[\"Default\",\"Custom\"],displaySegmentedControl:true,hidden:props=>props.type!==\"icon\"},text:{title:\"Label\",type:ControlType.String,defaultValue:\"Cookie Settings\",hidden:props=>props.type!==\"text\"},textFont:{// @ts-ignore - internal\ntype:ControlType.Font,title:\" \",controls:\"extended\",hidden:props=>props.type!==\"text\"},iconSize:{title:\"Size\",type:ControlType.Number,displayStepper:true,defaultValue:24,hidden:props=>props.type!==\"icon\"},color:{title:\"Color\",type:ControlType.Color,defaultValue:\"#333\",hidden:props=>props.type===\"none\"||props.type===\"icon\"&&props.iconType===\"custom\"},iconImage:{title:\"File\",type:ControlType.ResponsiveImage,allowedFileTypes:[\"jpg\",\"png\",\"svg\"],hidden:props=>props.iconType===\"default\"}}},banner:{title:\"Banner\",type:ControlType.Object,buttonTitle:\"Font, Styles\",controls:{position:{type:ControlType.Enum,title:\"Position\",options:[\"top-left\",\"top-center\",\"top-right\",\"bottom-right\",\"bottom-center\",\"bottom-left\"],optionTitles:[\"Top Left\",\"Top Center\",\"Top Right\",\"Bottom Right\",\"Bottom Center\",\"Bottom Left\"],defaultValue:\"bottom-right\"},zIndex:{title:\"Z Index\",type:ControlType.Number,defaultValue:10,displayStepper:true,min:0,max:10},width:{title:\"Width\",type:ControlType.Number,defaultValue:360,min:200,max:1e3,displayStepper:true,step:5},containerWidth:{title:\"Wrapping\",type:ControlType.Number,defaultValue:0,min:0},padding:{title:\"Padding\",type:ControlType.FusedNumber,toggleKey:\"paddingPerSide\",toggleTitles:[\"Padding\",\"Padding per side\"],defaultValue:20,valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0},inset:{title:\"Inset\",type:ControlType.FusedNumber,toggleKey:\"insetPerSide\",toggleTitles:[\"Inset\",\"Inset per side\"],defaultValue:20,valueKeys:[\"insetTop\",\"insetRight\",\"insetBottom\",\"insetLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0},style:{type:ControlType.Object,title:\"Style\",buttonTitle:\"Fonts, Colors, Shadow\",controls:{fontTitle:{// @ts-ignore - internal\ntype:ControlType.Font,title:\"Title\",controls:\"extended\"},colorTitle:{title:\" \",type:ControlType.Color,defaultValue:\"#000\"},fontBody:{// @ts-ignore - internal\ntype:ControlType.Font,title:\"Body\",controls:\"extended\"},colorBody:{title:\" \",type:ControlType.Color,defaultValue:\"#444\"},fill:{title:\"Fill\",type:ControlType.Color,defaultValue:\"#FFF\"},link:{title:\"Link\",type:ControlType.Color,optional:true,defaultValue:\"#999\"},border:{type:ControlType.Object,title:\"Border\",buttonTitle:\"Radius, Width\",controls:{radius:{title:\"Radius\",type:ControlType.Number,displayStepper:true,min:0,defaultValue:14},width:{title:\"Width\",type:ControlType.Number,displayStepper:true,min:0,defaultValue:1},color:{title:\"Color\",type:ControlType.Color,defaultValue:\"rgba(0,0,0,0.05)\"}}},shadow:{type:ControlType.Object,title:\"Shadow\",optional:true,controls:{shadowColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"rgba(0,0,0,0.25)\"},shadowX:{title:\"X\",type:ControlType.Number,min:-100,max:100,defaultValue:0},shadowY:{title:\"Y\",type:ControlType.Number,min:-100,max:100,defaultValue:2},shadowBlur:{title:\"Blur\",type:ControlType.Number,min:0,max:100,defaultValue:4}}},backdrop:{title:\"Backdrop\",type:ControlType.Color,defaultValue:\"rgba(0,0,0,0.1)\",hidden:(_,props)=>!props.content.euBlocking&&!props.content.worldBlocking}}},animation:{icon:\"effect\",buttonTitle:\"Options\",type:ControlType.Object,controls:{x:{type:ControlType.Number,displayStepper:true,defaultValue:0},y:{type:ControlType.Number,displayStepper:true,defaultValue:10},scale:{type:ControlType.Number,min:0,step:.1,defaultValue:1},transition:{type:ControlType.Transition}}}}},button:{title:\"Buttons\",type:ControlType.Object,buttonTitle:\"Variants, Style\",controls:{primary:{title:\"Primary\",type:ControlType.Object,buttonTitle:\"Colors, Shadow\",controls:{fill:{title:\"Fill\",type:ControlType.Color,defaultValue:\"#000\"},color:{title:\"Color\",type:ControlType.Color,defaultValue:\"#FFF\"},shadow:{type:ControlType.Object,title:\"Shadow\",optional:true,controls:{shadowColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"rgba(0,0,0,0.25)\"},shadowX:{title:\"X\",type:ControlType.Number,min:-100,max:100},shadowY:{title:\"Y\",type:ControlType.Number,min:-100,max:100},shadowBlur:{title:\"Blur\",type:ControlType.Number,min:0,max:100}}}}},secondary:{title:\"Secondary\",type:ControlType.Object,buttonTitle:\"Colors, Shadow\",controls:{fill:{title:\"Fill\",type:ControlType.Color,defaultValue:\"#EEE\"},color:{title:\"Color\",type:ControlType.Color,defaultValue:\"#444\"},shadow:{type:ControlType.Object,title:\"Shadow\",optional:true,controls:{shadowColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"rgba(0,0,0,0.25)\"},shadowX:{title:\"X\",type:ControlType.Number,min:-100,max:100},shadowY:{title:\"Y\",type:ControlType.Number,min:-100,max:100},shadowBlur:{title:\"Blur\",type:ControlType.Number,min:0,max:100}}}}},labels:{type:ControlType.Object,controls:{accept:{type:ControlType.String,defaultValue:\"Accept\"},reject:{type:ControlType.String,defaultValue:\"Reject\"},acceptAll:{type:ControlType.String,defaultValue:\"Accept all\"},rejectAll:{type:ControlType.String,defaultValue:\"Reject all\"},customize:{type:ControlType.String,defaultValue:\"Customize\"},save:{type:ControlType.String,defaultValue:\"Save Preferences\"},confirm:{type:ControlType.String,defaultValue:\"Okay\"}}},font:{// @ts-ignore - internal\ntype:ControlType.Font,title:\"Font\",controls:\"extended\"},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},borderRadius:{title:\"Radius\",type:ControlType.Number,displayStepper:true,min:0,defaultValue:8},tapOpacity:{title:\"Tap Opacity\",type:ControlType.Number,step:.1,displayStepper:true,max:1,min:0,defaultValue:.4},hoverOpacity:{title:\"Hover Opacity\",type:ControlType.Number,step:.1,displayStepper:true,max:1,min:0,defaultValue:.6},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"row\",\"column\"],// @ts-ignore - internal\noptionIcons:[\"direction-horizontal\",\"direction-vertical\"],defaultValue:\"row\",displaySegmentedControl:true},fluid:{title:\"Fluid\",type:ControlType.Boolean,defaultValue:true}}},content:{title:\"Regions\",type:ControlType.Object,buttonTitle:\"World, EU\",controls:{isEU:{title:\" \",type:ControlType.Boolean,defaultValue:true,enabledTitle:\"EU\",disabledTitle:\"World\"},euType:{title:\"Choices\",type:ControlType.Enum,options:[\"simple\",\"medium\",\"advanced\"],optionTitles:[\"None\",\"Accept/Reject\",\"Customizable\"],defaultValue:\"medium\",hidden:props=>!props.isEU},euTitle:{title:\"Title\",type:ControlType.String,defaultValue:\"Cookie Settings\",hidden:props=>props.euType===\"simple\"||!props.isEU},euDescription:{title:\"Description\",type:ControlType.String,defaultValue:\"We use cookies to enhance your experience, analyze site traffic and deliver personalized content.\",displayTextArea:true,hidden:props=>!props.isEU},euPolicy:{title:\"Policy\",type:ControlType.Object,buttonTitle:\"Link, Prefix\",controls:{link:{title:\"Link\",type:ControlType.Link,defaultValue:\"https://www.framer.com/legal/policy/\"},prefix:{title:\"Prefix\",type:ControlType.String,defaultValue:\"Read our\"},label:{title:\"Label\",type:ControlType.String,defaultValue:\"Cookie Policy\"}},hidden:props=>!props.isEU},euDefaults:{title:\"Defaults\",buttonTitle:\"Options\",type:ControlType.Object,controls:{necessary:{type:ControlType.Boolean,enabledTitle:\"Granted\",disabledTitle:\"Denied\",defaultValue:true},preferences:{type:ControlType.Boolean,enabledTitle:\"Granted\",disabledTitle:\"Denied\",defaultValue:false},analytics:{type:ControlType.Boolean,enabledTitle:\"Granted\",disabledTitle:\"Denied\",defaultValue:false},marketing:{type:ControlType.Boolean,enabledTitle:\"Granted\",disabledTitle:\"Denied\",defaultValue:false,description:\"The default consent when the user hasn’t provided any yet.\"}},hidden:props=>!props.isEU},euShowReject:{title:\"Reject All\",type:ControlType.Boolean,defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",hidden:props=>props.euType!==\"advanced\"},euBlocking:{title:\"Blocking\",type:ControlType.Boolean,defaultValue:false,description:\"Renders a content blocking backdrop.\",hidden:props=>!props.isEU},worldType:{title:\"Choices\",type:ControlType.Enum,options:[\"simple\",\"medium\",\"advanced\"],optionTitles:[\"None\",\"Accept/Reject\",\"Customizable\"],defaultValue:\"simple\",hidden:props=>props.isEU},worldTitle:{title:\"Title\",type:ControlType.String,defaultValue:\"Cookie Settings\",hidden:props=>props.worldType===\"simple\"||props.isEU},worldDescription:{title:\"Description\",type:ControlType.String,defaultValue:\"We use cookies to personalize content, run ads, and analyze traffic.\",displayTextArea:true,hidden:props=>props.isEU},worldPolicy:{title:\"Policy\",type:ControlType.Object,buttonTitle:\"Link, Prefix\",controls:{link:{title:\"Link\",type:ControlType.Link},prefix:{title:\"Prefix\",type:ControlType.String,defaultValue:\"Read our\"},label:{title:\"Label\",type:ControlType.String,defaultValue:\"Cookie Policy\"}},hidden:props=>props.isEU},worldDefaults:{title:\"Defaults\",buttonTitle:\"Options\",type:ControlType.Object,controls:{necessary:{type:ControlType.Boolean,enabledTitle:\"Granted\",disabledTitle:\"Denied\",defaultValue:true},preferences:{type:ControlType.Boolean,enabledTitle:\"Granted\",disabledTitle:\"Denied\",defaultValue:true},analytics:{type:ControlType.Boolean,enabledTitle:\"Granted\",disabledTitle:\"Denied\",defaultValue:true},marketing:{type:ControlType.Boolean,enabledTitle:\"Granted\",disabledTitle:\"Denied\",defaultValue:true,description:\"The default consent when the user hasn’t provided any yet.\"}},hidden:props=>props.isEU},worldShowReject:{title:\"Reject All\",type:ControlType.Boolean,defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",hidden:props=>props.worldType!==\"advanced\"},worldBlocking:{title:\"Blocking\",type:ControlType.Boolean,defaultValue:false,description:\"Renders a content blocking backdrop.\",hidden:props=>props.isEU}}},options:{type:ControlType.Object,buttonTitle:\"Content, Styles\",hidden:(_,props)=>props.content.euType!==\"advanced\"&&props.content.worldType!==\"advanced\",controls:{preview:{type:ControlType.Boolean,defaultValue:false,description:\"Open when previewing banner on the canvas.\",hidden:(_,props)=>!props.preview},necessary:{title:\"Necessary\",type:ControlType.Object,buttonTitle:\"Content\",controls:{title:{title:\"Title\",type:ControlType.String,defaultValue:\"Necessary\"},description:{title:\"Description\",type:ControlType.String,defaultValue:\"Enables security and basic functionality.\",displayTextArea:true},optional:{title:\"Optional\",type:ControlType.Boolean,defaultValue:true}}},preferences:{title:\"Preferences\",type:ControlType.Object,buttonTitle:\"Content\",controls:{title:{title:\"Title\",type:ControlType.String,defaultValue:\"Preferences\"},description:{title:\"Description\",type:ControlType.String,defaultValue:\"Enables personalized content and settings.\",displayTextArea:true,optional:true}}},analytics:{title:\"Analytics\",type:ControlType.Object,buttonTitle:\"Content\",controls:{title:{title:\"Title\",type:ControlType.String,defaultValue:\"Analytics\"},description:{title:\"Description\",type:ControlType.String,defaultValue:\"Enables tracking of performance.\",displayTextArea:true}}},marketing:{title:\"Marketing\",type:ControlType.Object,buttonTitle:\"Content\",controls:{title:{title:\"Title\",type:ControlType.String,defaultValue:\"Marketing\"},description:{title:\"Description\",type:ControlType.String,defaultValue:\"Enables ads personalization and tracking.\",displayTextArea:true}}},style:{type:ControlType.Object,title:\"Style\",buttonTitle:\"Fonts, Colors\",controls:{fontTitle:{// @ts-ignore - internal\ntype:ControlType.Font,title:\"Title\",controls:\"basic\"},fontBody:{// @ts-ignore - internal\ntype:ControlType.Font,title:\"Body\",controls:\"basic\"},background:{title:\"Background\",type:ControlType.Color,defaultValue:\"rgba(0,0,0,0.02)\"},border:{type:ControlType.Object,title:\"Border\",buttonTitle:\"Radius, Width\",controls:{radius:{title:\"Radius\",type:ControlType.Number,displayStepper:true,min:0,defaultValue:8},width:{title:\"Width\",type:ControlType.Number,displayStepper:true},color:{title:\"Color\",type:ControlType.Color,defaultValue:\"rgba(0,0,0,0.02)\"}}},toggleColor:{title:\"On\",type:ControlType.Color,defaultValue:\"#000\"},toggleColorInactive:{title:\"Off\",type:ControlType.Color,defaultValue:\"rgba(0,0,0,0.1)\"},padding:{title:\"Padding\",type:ControlType.FusedNumber,toggleKey:\"paddingPerSide\",toggleTitles:[\"Padding\",\"Padding per side\"],defaultValue:12,valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0}}}}}});CookieBanner.displayName=\"Cookie Banner\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CookieBanner\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"auto\",\"framerSupportedLayoutHeight\":\"auto\",\"framerDisableUnlink\":\"*\"}},\"ContentProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ContentType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ButtonsProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CookieBannerProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PolicyProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"OptionsStyle\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Cookies.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),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","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useCallback,useRef,useState}from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * @framerDisableUnlink\n * @framerIntrinsicWidth 0\n * @framerIntrinsicHeight 0\n * @framerSupportedLayoutWidth relative\n * @framerSupportedLayoutHeight relative\n */export default function InteractionBlocker({blockScroll,blockPointer,style}){const scrollPositionRef=useRef({x:0,y:0});const isStatic=useIsStaticRenderer();// Maintain a portal container reference to mount the overlay globally\nconst[portalRoot,setPortalRoot]=useState(null);/** Prevent default scroll/touch/wheel behavior */const preventScroll=useCallback(e=>{e.preventDefault();e.stopPropagation();},[]);// Create portal root on mount (for client-side rendering only)\nuseEffect(()=>{if(typeof document!==\"undefined\"){setPortalRoot(document.body);}},[]);/**\n     * Effect: Manages global scroll blocking when `blockScroll` is true.\n     * - Freezes scroll position.\n     * - Stops Lenis if available.\n     * - Restores everything on cleanup.\n     */useEffect(()=>{if(!blockScroll||isStatic||typeof window===\"undefined\"||typeof document===\"undefined\")return;const doc=document;const html=doc.documentElement;const body=doc.body;// Store current scroll position\nconst scrollY=window.scrollY||window.pageYOffset;const scrollX=window.scrollX||window.pageXOffset;scrollPositionRef.current={x:scrollX,y:scrollY};// Stop Lenis if running\nwindow.lenis?.stop();// Save original inline styles\nconst original={html:{overflow:html.style.overflow,overscrollBehavior:html.style.overscrollBehavior,touchAction:html.style.touchAction},body:{overflow:body.style.overflow,position:body.style.position,top:body.style.top,left:body.style.left,width:body.style.width,overscrollBehavior:body.style.overscrollBehavior,touchAction:body.style.touchAction}};// Apply scroll-lock styles\nObject.assign(html.style,{overscrollBehavior:\"none\",touchAction:\"none\"});Object.assign(body.style,{position:\"fixed\",top:`-${scrollY}px`,left:`-${scrollX}px`,width:\"100%\",overflow:\"hidden\",overscrollBehavior:\"none\",touchAction:\"none\"});// Backup scroll prevention via event listeners\nconst listenerOptions={passive:false,capture:true};doc.addEventListener(\"wheel\",preventScroll,listenerOptions);doc.addEventListener(\"touchmove\",preventScroll,listenerOptions);doc.addEventListener(\"scroll\",preventScroll,listenerOptions);// Cleanup — restore all styles and scroll position\nreturn()=>{Object.assign(html.style,original.html);Object.assign(body.style,original.body);window.scrollTo(scrollPositionRef.current.x,scrollPositionRef.current.y);window.lenis?.start();doc.removeEventListener(\"wheel\",preventScroll,listenerOptions);doc.removeEventListener(\"touchmove\",preventScroll,listenerOptions);doc.removeEventListener(\"scroll\",preventScroll,listenerOptions);};},[blockScroll,preventScroll,isStatic]);/**\n     * Portal overlay that captures all pointer events.\n     * Rendered only when `blockPointer` is enabled.\n     */const overlay=blockPointer&&portalRoot?/*#__PURE__*/createPortal(/*#__PURE__*/_jsx(\"div\",{role:\"presentation\",\"aria-hidden\":\"true\",style:{position:\"fixed\",top:0,left:0,width:\"100vw\",height:\"100vh\",background:\"transparent\",pointerEvents:\"all\",zIndex:99999,touchAction:\"none\"}}),portalRoot):null;return /*#__PURE__*/_jsx(\"div\",{style:{...style,position:\"relative\"},children:overlay});}InteractionBlocker.displayName=\"Interaction Blocker\";addPropertyControls(InteractionBlocker,{blockScroll:{type:ControlType.Boolean,title:\"Block Scroll\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"Disables all page scrolling (even Lenis).\"},blockPointer:{type:ControlType.Boolean,title:\"Block Pointer Events\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"Disables all pointer interactions on the page (clicks, hovers, etc.)\\n———\\nMade by *[arkuš.design](https://framer.link/S5pisEA)*\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"InteractionBlocker\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"relative\",\"framerSupportedLayoutWidth\":\"relative\",\"framerDisableUnlink\":\"* @framerIntrinsicWidth 0\",\"framerIntrinsicHeight\":\"0\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./InteractionBlocker.map"],"mappings":"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"}