{"version":3,"file":"Modal_Trigger.CS0haBYy.mjs","names":["Image1","React.useContext","React.useMemo","React.Fragment","useRef","React.useId","className","useState","useRef","useCallback"],"sources":["https:/framerusercontent.com/modules/caQBYdY4hvFRe0wgypwy/wMGDS9N7ekF0EG7w9hiq/jXNkrHRky.js","https:/framerusercontent.com/modules/nt8J4cJwNn6nrUuburjf/b9CBNc4HpVL6WkOiejVA/FetchPriority_high.js","https:/framerusercontent.com/modules/2LNiMSy5V4Oj67tIe6vE/WEYy3bbJDA0TRIQsbPZX/Vq8xfPRGx.js","https:/framerusercontent.com/modules/gJlYddUQE4fyi82INjMH/vAOxxcLtiC1JZikhNMm1/Modal_Trigger.js"],"sourcesContent":["// Generated by Framer (b135809)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;IBM Plex Mono-regular\",\"GF;IBM Plex Mono-700\",\"GF;IBM Plex Mono-700italic\",\"GF;IBM Plex Mono-italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"IBM Plex Mono\",source:\"google\",style:\"normal\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n5i0g1l9kn-s.woff2\",weight:\"400\"},{cssFamilyName:\"IBM Plex Mono\",source:\"google\",style:\"normal\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3pQP8lJPg-IUDNg.woff2\",weight:\"700\"},{cssFamilyName:\"IBM Plex Mono\",source:\"google\",style:\"italic\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJFgsARHNh4zg.woff2\",weight:\"700\"},{cssFamilyName:\"IBM Plex Mono\",source:\"google\",style:\"italic\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6pfjptAgt5VM-kVkqdyU8n1ioq131hj-sNFQ.woff2\",weight:\"400\"}]}];export const css=['.framer-3JOHy .framer-styles-preset-1pue80x:not(.rich-text-wrapper), .framer-3JOHy .framer-styles-preset-1pue80x.rich-text-wrapper p { --framer-font-family: \"IBM Plex Mono\", monospace; --framer-font-family-bold: \"IBM Plex Mono\", monospace; --framer-font-family-bold-italic: \"IBM Plex Mono\", monospace; --framer-font-family-italic: \"IBM Plex Mono\", monospace; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: -0.01em; --framer-line-height: 140%; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-3JOHy\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";export function withFetchPriority(Component){return props=>{return /*#__PURE__*/_jsx(Component,{...props,background:{...props.background,fetchPriority:\"high\"}});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withFetchPriority\":{\"type\":\"reactHoc\",\"name\":\"withFetchPriority\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FetchPriority_high.map","// Generated by Framer (72b52f5)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,cx,getLoadingLazyAtYPosition,Image as Image1,useComponentViewport,useLocaleInfo,useVariantState,withCodeBoundaryForOverrides,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{withFetchPriority}from\"https://framerusercontent.com/modules/nt8J4cJwNn6nrUuburjf/b9CBNc4HpVL6WkOiejVA/FetchPriority_high.js\";const Image1WithFetchPriority1mzmnxk=withCodeBoundaryForOverrides(Image1,{nodeId:\"QQhgRG0r2\",override:withFetchPriority,scopeId:\"Vq8xfPRGx\"});const serializationHash=\"framer-3LoGD\";const variantClassNames={Uq1doBqZa:\"framer-v-brs7c\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"Uq1doBqZa\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-brs7c\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"Uq1doBqZa\",ref:refBinding,style:{...style},children:/*#__PURE__*/_jsx(Image1WithFetchPriority1mzmnxk,{background:{alt:\"A hand grabbing a barrel of NEFT in ice.\",fit:\"fill\",intrinsicHeight:320,intrinsicWidth:540,loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0),pixelHeight:320,pixelWidth:540,sizes:componentViewport?.width||\"100vw\",src:\"https://framerusercontent.com/images/hjz1KrufK4RLWnNQR7qrWuEPqms.webp?width=540&height=320\",srcSet:\"https://framerusercontent.com/images/hjz1KrufK4RLWnNQR7qrWuEPqms.webp?scale-down-to=512&width=540&height=320 512w,https://framerusercontent.com/images/hjz1KrufK4RLWnNQR7qrWuEPqms.webp?width=540&height=320 540w\"},className:\"framer-1mzmnxk\",\"data-framer-name\":\"popup_visual\",layoutDependency:layoutDependency,layoutId:\"QQhgRG0r2\"})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-3LoGD.framer-9y9a4k, .framer-3LoGD .framer-9y9a4k { display: block; }\",\".framer-3LoGD.framer-brs7c { gap: 0px; height: 320px; overflow: hidden; position: relative; width: 540px; }\",\".framer-3LoGD .framer-1mzmnxk { flex: none; height: 320px; left: calc(50% - 100% / 2); position: absolute; top: 0px; width: 100%; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 320\n * @framerIntrinsicWidth 540\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerVq8xfPRGx=withCSS(Component,css,\"framer-3LoGD\");export default FramerVq8xfPRGx;FramerVq8xfPRGx.displayName=\"Age Gate Image\";FramerVq8xfPRGx.defaultProps={height:320,width:540};addFonts(FramerVq8xfPRGx,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerVq8xfPRGx\",\"slots\":[],\"annotations\":{\"framerColorSyntax\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicHeight\":\"320\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"540\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Vq8xfPRGx.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useCallback,useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerSupportedLayoutWidth any\n * @framerDisableUnlink\n * @framerSupportedLayoutHeight any\n */// To use ModalTrigger, drop it within the component (probably a button) that triggers opening of the modal.\n// It should be nested one level down such that it is a direct child of the button component.\n// To avoid ModalTrigger taking up space in the viewport, set its position to absolute on the canvas.\n// To avoid users keyboard tab selecting the the click Trigger, set the trigger layer's Tab-index to -1.\nconst POPUP_STORAGE_KEY=\"modalTrigger_lastShown\";const HOURS_24_IN_MS=24*60*60*1e3;// Check if popup was shown in the last 24 hours\nconst wasShownRecently=()=>{try{const lastShown=localStorage.getItem(POPUP_STORAGE_KEY);if(!lastShown)return false;const lastShownTime=parseInt(lastShown,10);const now=Date.now();return now-lastShownTime<HOURS_24_IN_MS;}catch(e){// If localStorage is not available, don't block the popup\nreturn false;}};// Save current timestamp to localStorage\nconst markAsShown=()=>{try{localStorage.setItem(POPUP_STORAGE_KEY,Date.now().toString());}catch(e){// Silently fail if localStorage is not available\n}};/**\n * @framerIntrinsicHeight 0\n * @framerIntrinsicWidth 0\n */export default function ModalTrigger({showOnMouseLeave,delayConfig,scrollConfig}){const[hasBeenTriggered,setHasBeenTriggered]=useState(false);const triggerRef=useRef(null);// Event listeners added in the effect call don't have access to state\n// updates, so we'll use a ref and set both ref.current and state\n// in _setHasBeenTriggered.\nconst stateRef=useRef(hasBeenTriggered);const _setHasBeenTriggered=newState=>{stateRef.current=newState;setHasBeenTriggered(newState);};const showModal=useCallback(node=>{if(stateRef.current)return;if(wasShownRecently())return;simulateClick(node);// Don't mark as shown here - wait for user's choice\n_setHasBeenTriggered(true);},[]);const triggerOnMouseOut=useCallback(node=>e=>{// You can remove conditions if you'd prefer that the pop-up isn't\n    // triggered by the mouse leaving certain edges of the viewport.\n    if(// Top\n    e.clientY<=0||// Left\n    e.clientX<=0||// Right\n    e.clientX>=window.innerWidth||// Bottom\n    e.clientY>=window.innerHeight){showModal(node);}},[showModal]);// Listen for mouse leaving the viewport if showOnMouseLeave is true\nuseEffect(()=>{const triggerNode=triggerRef.current;if(triggerNode){if(showOnMouseLeave){window.addEventListener(\"mouseout\",triggerOnMouseOut(triggerNode));return()=>window.removeEventListener(\"mouseout\",triggerOnMouseOut(triggerNode));}}return;},[triggerOnMouseOut,showOnMouseLeave,showModal]);// Initialize a timer if showOnDelay is true\nuseEffect(()=>{const triggerNode=triggerRef.current;if(triggerNode){if(delayConfig.showOnDelay){const delay=setTimeout(()=>showModal(triggerNode),delayConfig.delaySeconds*1e3);return()=>clearTimeout(delay);}}return;},[delayConfig.showOnDelay,delayConfig.delaySeconds,showModal]);// Listen for clicks on the button and disable our triggers\n// if the button has been clicked\nuseEffect(()=>{const triggerNode=triggerRef.current;if(triggerNode){const preventTriggers=()=>_setHasBeenTriggered(true);const button=triggerNode.parentElement?.parentElement;if(button){button.addEventListener(\"keyup\",preventTriggers);button.addEventListener(\"mouseup\",preventTriggers);return()=>{button.removeEventListener(\"keyup\",preventTriggers);button.removeEventListener(\"mouseup\",preventTriggers);};}}return;},[]);// Listen for clicks on Yes/No buttons inside the modal\nuseEffect(()=>{if(!hasBeenTriggered)return;let cleanupModalListeners;const setupModalListeners=setTimeout(()=>{const yesButton=document.getElementById(\"popup-btn-yes\");const noButton=document.getElementById(\"popup-btn-no\");if(!yesButton||!noButton)return;const focusableElements=[yesButton,noButton];yesButton.focus();const trapFocus=e=>{if(e.key!==\"Tab\")return;const firstElement=focusableElements[0];const lastElement=focusableElements[focusableElements.length-1];const activeElement=document.activeElement;if(e.shiftKey&&activeElement===firstElement){e.preventDefault();lastElement.focus();}else if(!e.shiftKey&&activeElement===lastElement){e.preventDefault();firstElement.focus();}};const handleYesClick=()=>{markAsShown()// Remember user clicked Yes, don't show popup again\n;cleanupModalListeners?.();};const handleNoClick=e=>{e.preventDefault();cleanupModalListeners?.();window.location.href=\"/age-restricted\"// Redirect without saving\n;};document.addEventListener(\"keydown\",trapFocus);yesButton.addEventListener(\"click\",handleYesClick);noButton.addEventListener(\"click\",handleNoClick);cleanupModalListeners=()=>{document.removeEventListener(\"keydown\",trapFocus);yesButton.removeEventListener(\"click\",handleYesClick);noButton.removeEventListener(\"click\",handleNoClick);};},500)// Wait 500ms for modal to appear\n;return()=>{clearTimeout(setupModalListeners);cleanupModalListeners?.();};},[hasBeenTriggered]);// Listen for scroll if showOnScrollToPercentage is true\nuseEffect(()=>{if(scrollConfig.showOnScrollToPercentage){const initialYCoordBottomOfViewport=window.scrollY+window.innerHeight;const triggerNode=triggerRef.current;const body=document.querySelector(\"body\");if(triggerNode&&body){const scrollListener=()=>{const scrollPositionOfBottomOfViewport=window.scrollY+window.innerHeight;const triggerPoint=body.scrollHeight*scrollConfig.scrollPercentage/100;if(scrollPositionOfBottomOfViewport>=triggerPoint&&// Don't trigger if the user started below the trigger point\n// (this could happen after a refresh)\ninitialYCoordBottomOfViewport<triggerPoint){showModal(triggerNode);}};window.addEventListener(\"scroll\",scrollListener);return()=>window.removeEventListener(\"scroll\",scrollListener);}}return;},[scrollConfig.showOnScrollToPercentage,scrollConfig.scrollPercentage,showModal]);// It would be nice to aria-hide the container that Framer\n// wraps this in, but that would only be possible on the canvas\n// and it's not!\nreturn /*#__PURE__*/_jsx(\"div\",{ref:triggerRef,\"aria-hidden\":\"true\"});}// If this component breaks, it could be because Framer has decided to not wrap\n// code components in containers anymore. If that's the case, access\n// node.parentElement instead of node.parentElement.parentElement\nconst simulateClick=node=>{if(node.parentElement?.parentElement){const button=node.parentElement.parentElement;button.dispatchEvent(new FocusEvent(\"focus\"));button.dispatchEvent(new KeyboardEvent(\"keydown\",{key:\"Enter\"}));button.dispatchEvent(new KeyboardEvent(\"keyup\",{key:\"Enter\"}));}};addPropertyControls(ModalTrigger,{showOnMouseLeave:{type:ControlType.Boolean,title:\"MouseLeave\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},delayConfig:{type:ControlType.Object,title:\"Delay\",buttonTitle:\"Configure\",controls:{showOnDelay:{type:ControlType.Boolean,title:\"Trigger\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},delaySeconds:{type:ControlType.Number,title:\"Seconds\",defaultValue:10,min:0,max:300,step:5,displayStepper:true,unit:\" s\"}}},scrollConfig:{type:ControlType.Object,title:\"Scroll\",buttonTitle:\"Configure\",controls:{showOnScrollToPercentage:{type:ControlType.Boolean,title:\"Trigger\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},scrollPercentage:{type:ControlType.Number,title:\"Scroll %\",defaultValue:50,min:0,max:100,step:1,displayStepper:true,unit:\" %\"}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ModalTrigger\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"0\",\"framerIntrinsicWidth\":\"0\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Modal_Trigger.map"],"mappings":"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"}