{"version":3,"file":"PasswordProtection.D4dAdGhx.mjs","names":["useState","useRef","useCallback","startTransition","useLayoutEffect","useEffect"],"sources":["https:/framerusercontent.com/modules/UPGknwGFU6nD0FRinNct/2BJUxan3LYJ22nvaF027/PasswordProtection.js"],"sourcesContent":["// Password protected page component for Framer\n// Content is hidden via injected CSS + MutationObserver to prevent DevTools bypass\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useCallback,useEffect,useLayoutEffect,useRef,startTransition}from\"react\";import{createPortal}from\"react-dom\";import{motion,AnimatePresence}from\"framer-motion\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";// Use useLayoutEffect on client, useEffect on server (avoids SSR warning)\nconst useIsomorphicLayoutEffect=typeof window!==\"undefined\"?useLayoutEffect:useEffect;// Unique identifiers for guard elements\nconst GUARD_STYLE_ID=\"__pw_guard_style__\";const PORTAL_ID=\"__pw_portal__\";const SAFE_ATTR=\"data-pw-safe\";function injectGuardStyle(){let style=document.getElementById(GUARD_STYLE_ID);if(!style){style=document.createElement(\"style\");style.id=GUARD_STYLE_ID;style.setAttribute(SAFE_ATTR,\"true\");}// Aggressive CSS: hide everything that isn't marked safe\n// Uses clip, position offscreen, zero size — not just display:none\nstyle.textContent=`\n        body > *:not([${SAFE_ATTR}]):not(script):not(style):not(link):not(noscript) {\n            display: none !important;\n            visibility: hidden !important;\n            opacity: 0 !important;\n            pointer-events: none !important;\n            position: fixed !important;\n            top: -99999px !important;\n            left: -99999px !important;\n            width: 0 !important;\n            height: 0 !important;\n            max-width: 0 !important;\n            max-height: 0 !important;\n            overflow: hidden !important;\n            clip: rect(0, 0, 0, 0) !important;\n            clip-path: inset(100%) !important;\n        }\n        body > *:not([${SAFE_ATTR}]):not(script):not(style):not(link):not(noscript) * {\n            display: none !important;\n            visibility: hidden !important;\n            opacity: 0 !important;\n        }\n        body {\n            overflow: hidden !important;\n        }\n    `;if(!style.parentNode){// Prepend to head so it applies before other styles\ndocument.head.insertBefore(style,document.head.firstChild);}return style;}function getOrCreatePortalContainer(){let container=document.getElementById(PORTAL_ID);if(!container){container=document.createElement(\"div\");container.id=PORTAL_ID;container.setAttribute(SAFE_ATTR,\"true\");document.body.appendChild(container);}return container;}function removeAllGuards(){const style=document.getElementById(GUARD_STYLE_ID);if(style)style.remove();const portal=document.getElementById(PORTAL_ID);if(portal)portal.remove();// Restore body scroll\ndocument.body.style.removeProperty(\"overflow\");}/**\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 300\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function PasswordProtectedScreen(props){const{password=\"secret123\",hint=\"\",overlayType=\"color\",overlayColor=\"#FFFFFF\",overlayImage={src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Overlay background\"},inputBackground=\"#FFFFFF\",inputTextColor=\"#000000\",inputBorderColor=\"#EEEEEE\",buttonBackground=\"#000000\",buttonTextColor=\"#FFFFFF\",errorTextColor=\"#FF0000\",titleFont,hintFont,inputFont,buttonFont,errorFont}=props;const[inputValue,setInputValue]=useState(\"\");const[isAuthenticated,setIsAuthenticated]=useState(false);const[error,setError]=useState(\"\");const[isClient,setIsClient]=useState(false);const[portalContainer,setPortalContainer]=useState(null);const observerRef=useRef(null);const intervalRef=useRef(null);const isFramerEditor=useCallback(()=>{if(typeof window===\"undefined\")return false;return RenderTarget.current()===RenderTarget.canvas;},[]);// Inject guard CSS as early as possible (before paint) to prevent content flash\nuseIsomorphicLayoutEffect(()=>{if(typeof window===\"undefined\")return;if(RenderTarget.current()===RenderTarget.canvas)return;// Already authenticated this session\nif(sessionStorage.getItem(\"framer_page_authenticated\")===\"true\"){startTransition(()=>{setIsAuthenticated(true);setIsClient(true);});return;}// Inject guard style immediately\ninjectGuardStyle();const container=getOrCreatePortalContainer();setPortalContainer(container);startTransition(()=>setIsClient(true));},[]);// Setup MutationObserver + interval for tamper protection\nuseEffect(()=>{if(typeof window===\"undefined\")return;if(isAuthenticated||!isClient||isFramerEditor())return;// MutationObserver watches for:\n// 1. Guard style tag removal or modification\n// 2. Portal container removal\n// 3. Unauthorized elements getting the SAFE_ATTR\nconst observer=new MutationObserver(mutations=>{// Re-inject guard style if removed\nif(!document.getElementById(GUARD_STYLE_ID)){injectGuardStyle();}// Re-inject portal container if removed\nif(!document.getElementById(PORTAL_ID)){const container=getOrCreatePortalContainer();setPortalContainer(container);}// Prevent unauthorized elements from getting the safe attribute\nfor(const mutation of mutations){if(mutation.type===\"attributes\"&&mutation.attributeName===SAFE_ATTR){const target=mutation.target;if(target.id!==PORTAL_ID&&target.id!==GUARD_STYLE_ID){target.removeAttribute(SAFE_ATTR);}}// If guard style content was modified, re-inject\nif(mutation.type===\"characterData\"&&mutation.target.parentElement?.id===GUARD_STYLE_ID){injectGuardStyle();}}});observer.observe(document.head,{childList:true,subtree:true,characterData:true});observer.observe(document.body,{childList:true,attributes:true,subtree:true,attributeFilter:[SAFE_ATTR,\"style\"]});observerRef.current=observer;// Interval as fallback — catches edge cases MutationObserver might miss\nconst interval=window.setInterval(()=>{if(!document.getElementById(GUARD_STYLE_ID)){injectGuardStyle();}if(!document.getElementById(PORTAL_ID)){const container=getOrCreatePortalContainer();setPortalContainer(container);}},300);intervalRef.current=interval;return()=>{observer.disconnect();clearInterval(interval);};},[isAuthenticated,isClient]);// Remove all guards when authenticated\nuseEffect(()=>{if(!isAuthenticated)return;if(observerRef.current){observerRef.current.disconnect();observerRef.current=null;}if(intervalRef.current){clearInterval(intervalRef.current);intervalRef.current=null;}removeAllGuards();},[isAuthenticated]);const handlePasswordSubmit=useCallback(()=>{if(inputValue===password){startTransition(()=>{setIsAuthenticated(true);setError(\"\");if(typeof window!==\"undefined\"){sessionStorage.setItem(\"framer_page_authenticated\",\"true\");}});}else{startTransition(()=>{setError(\"Incorrect password. Please try again.\");setInputValue(\"\");});}},[inputValue,password]);const handleKeyDown=useCallback(e=>{if(e.key===\"Enter\"){handlePasswordSubmit();}},[handlePasswordSubmit]);const getOverlayStyle=useCallback(()=>{return overlayType===\"image\"&&overlayImage?.src?{backgroundImage:`url(${overlayImage.src})`,backgroundSize:\"cover\",backgroundPosition:\"center\"}:{backgroundColor:overlayColor};},[overlayType,overlayImage,overlayColor]);// Editor preview (Framer canvas)\nif(!isClient||isFramerEditor()){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",padding:20,minWidth:400,minHeight:300,position:\"relative\",...getOverlayStyle()},children:/*#__PURE__*/_jsxs(\"div\",{style:{maxWidth:400,width:\"100%\",textAlign:\"center\",backgroundColor:overlayType===\"image\"?\"rgba(255,255,255,0.9)\":\"transparent\",padding:32,borderRadius:16,backdropFilter:overlayType===\"image\"?\"blur(10px)\":\"none\"},children:[/*#__PURE__*/_jsx(\"h2\",{style:{marginBottom:8,color:overlayType===\"image\"?\"#000000\":inputTextColor,...titleFont},children:\"Enter Password\"}),hint&&/*#__PURE__*/_jsxs(\"p\",{style:{opacity:.7,marginBottom:24,color:overlayType===\"image\"?\"#000000\":inputTextColor,...hintFont},children:[\"Hint: \",hint]}),/*#__PURE__*/_jsx(\"input\",{type:\"password\",value:\"\",readOnly:true,style:{padding:\"12px 16px\",borderRadius:8,border:`1px solid ${inputBorderColor}`,width:\"100%\",marginBottom:16,backgroundColor:inputBackground,color:inputTextColor,boxSizing:\"border-box\",...inputFont},placeholder:\"Enter password\",\"aria-label\":\"Password input\"}),/*#__PURE__*/_jsx(\"button\",{style:{padding:\"12px 24px\",borderRadius:8,border:\"none\",backgroundColor:buttonBackground,color:buttonTextColor,cursor:\"pointer\",width:\"100%\",...buttonFont},\"aria-label\":\"Submit password\",children:\"Continue\"})]})});}// Authenticated — render nothing, content is visible\nif(isAuthenticated)return null;// Render overlay via portal (outside the hidden content tree)\nif(!portalContainer)return null;return /*#__PURE__*/createPortal(/*#__PURE__*/_jsx(AnimatePresence,{children:/*#__PURE__*/_jsx(motion.div,{initial:{opacity:1},exit:{opacity:0},transition:{duration:.3},style:{position:\"fixed\",top:0,left:0,right:0,bottom:0,display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",padding:20,zIndex:2147483647,...getOverlayStyle()},children:/*#__PURE__*/_jsxs(motion.div,{initial:{y:20,opacity:0},animate:{y:0,opacity:1},transition:{delay:.1},style:{maxWidth:400,width:\"100%\",textAlign:\"center\",backgroundColor:overlayType===\"image\"?\"rgba(255,255,255,0.9)\":\"transparent\",padding:32,borderRadius:16,backdropFilter:overlayType===\"image\"?\"blur(10px)\":\"none\"},children:[/*#__PURE__*/_jsx(\"h2\",{style:{marginBottom:8,color:overlayType===\"image\"?\"#000000\":inputTextColor,...titleFont},children:\"Enter Password\"}),hint&&/*#__PURE__*/_jsxs(\"p\",{style:{opacity:.7,marginBottom:24,color:overlayType===\"image\"?\"#000000\":inputTextColor,...hintFont},children:[\"Hint: \",hint]}),/*#__PURE__*/_jsx(\"input\",{type:\"password\",value:inputValue,onChange:e=>startTransition(()=>setInputValue(e.target.value)),onKeyDown:handleKeyDown,style:{padding:\"12px 16px\",borderRadius:8,border:`1px solid ${inputBorderColor}`,width:\"100%\",marginBottom:16,backgroundColor:inputBackground,color:inputTextColor,boxSizing:\"border-box\",...inputFont},placeholder:\"Enter password\",autoFocus:true,\"aria-label\":\"Password input\"}),error&&/*#__PURE__*/_jsx(motion.p,{initial:{opacity:0,y:-10},animate:{opacity:1,y:0},style:{color:errorTextColor,margin:\"8px 0 16px\",...errorFont},children:error}),/*#__PURE__*/_jsx(motion.button,{whileHover:{scale:1.03},whileTap:{scale:.98},onClick:handlePasswordSubmit,style:{padding:\"12px 24px\",borderRadius:8,border:\"none\",backgroundColor:buttonBackground,color:buttonTextColor,cursor:\"pointer\",width:\"100%\",...buttonFont},\"aria-label\":\"Submit password\",children:\"Continue\"})]})})}),portalContainer);}addPropertyControls(PasswordProtectedScreen,{password:{type:ControlType.String,title:\"Password\",defaultValue:\"secret123\"},hint:{type:ControlType.String,title:\"Hint\",defaultValue:\"\",displayTextArea:true},overlayType:{type:ControlType.Enum,title:\"Overlay Type\",options:[\"color\",\"image\"],optionTitles:[\"Color\",\"Image\"],defaultValue:\"color\",displaySegmentedControl:true},overlayColor:{type:ControlType.Color,title:\"Overlay Color\",defaultValue:\"#FFFFFF\",hidden:props=>props.overlayType!==\"color\"},overlayImage:{type:ControlType.ResponsiveImage,title:\"Overlay Image\",hidden:props=>props.overlayType!==\"image\"},inputBackground:{type:ControlType.Color,title:\"Input Background\",defaultValue:\"#FFFFFF\"},inputTextColor:{type:ControlType.Color,title:\"Input Text\",defaultValue:\"#000000\"},inputBorderColor:{type:ControlType.Color,title:\"Input Border\",defaultValue:\"#EEEEEE\"},buttonBackground:{type:ControlType.Color,title:\"Button Background\",defaultValue:\"#000000\"},buttonTextColor:{type:ControlType.Color,title:\"Button Text\",defaultValue:\"#FFFFFF\"},errorTextColor:{type:ControlType.Color,title:\"Error Text\",defaultValue:\"#FF0000\"},titleFont:{type:ControlType.Font,title:\"Title Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"32px\",variant:\"Semibold\",letterSpacing:\"-0.03em\",lineHeight:\"1em\"}},hintFont:{type:ControlType.Font,title:\"Hint Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"15px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.3em\"}},inputFont:{type:ControlType.Font,title:\"Input Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"15px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1em\"}},buttonFont:{type:ControlType.Font,title:\"Button Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"14px\",variant:\"Semibold\",letterSpacing:\"-0.01em\",lineHeight:\"1em\"}},errorFont:{type:ControlType.Font,title:\"Error Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"14px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1em\"}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PasswordProtectedScreen\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"300\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PasswordProtection.map"],"mappings":"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"}