{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/7GVUiZh85WoCYZMDegiY/MJxMAvFWcgloKFRcd1BO/Auth_R.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";import{addPropertyControls}from\"framer\";import{Eye,EyeSlash,LockSimple,LockSimpleOpen,ArrowUUpLeft}from\"phosphor-react\";// ===== CUSTOMIZATION SECTION =====\n// Edit this section to customize the password protection\n// Add or remove passwords here (case-sensitive)\nconst ALLOWED_PASSWORDS=[\"Ritam@robinhood\"];// Customize the text content here\nconst TEXT_CONTENT={title:\"Password\",subtitle:\"Enter password to continue\",errorMessage:\"Incorrect password. Please try again.\",buttonText:\"Enter\",returnButtonText:\"Return to Projects\"};// Change this URL to where you want users to return when clicking the link to return\nconst RETURN_URL=\"https://www.ritamdesign.com/#projects\";// Customize the design here\nconst STYLE_TOKENS={colors:{background:\"#FFFFFF\",text:\"#000000\",primary:\"#000000\",secondaryText:\"#605D64\",buttonText:\"#FFFFFF\",error:\"#D8512A\",inputBorder:\"#CCCCCC\",inputBorderFocus:\"#000000\",inputBorderError:\"#D8512A\",buttonHover:\"#333333\",linkHover:\"#333333\"},fonts:{heading:\"Syncopate, sans-serif\",body:\"General Sans, sans-serif\",button:\"General Sans, sans-serif\"},fontSizes:{title:\"clamp(1.25rem, 1.586vw + 1.151rem, 2rem)\",paragraph:\"18px\",input:\"16px\",button:\"16px\",small:\"14px\"},fontWeights:{normal:\"500\",medium:\"600\",bold:\"800\"},spacing:{xs:\"4px\",sm:\"8px\",md:\"12px\",lg:\"24px\",xl:\"32px\",xxl:\"48px\"},borderRadius:{small:\"8px\"},container:{maxWidth:\"400px\"}};// ===== END OF CUSTOMIZATION SECTION =====\nconst styles={container:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",minHeight:\"100vh\",backgroundColor:STYLE_TOKENS.colors.background,fontFamily:STYLE_TOKENS.fonts.body,color:STYLE_TOKENS.colors.text,padding:STYLE_TOKENS.spacing.md},header:{marginBottom:STYLE_TOKENS.spacing.lg,textAlign:\"center\"},title:{fontSize:STYLE_TOKENS.fontSizes.title,fontWeight:STYLE_TOKENS.fontWeights.bold,fontFamily:STYLE_TOKENS.fonts.heading,lineHeight:\"125%\",marginBottom:STYLE_TOKENS.spacing.xs},subtitle:{fontFamily:STYLE_TOKENS.fonts.body,fontWeight:STYLE_TOKENS.fontWeights.normal,fontSize:STYLE_TOKENS.fontSizes.paragraph,lineHeight:\"150%\",margin:\"0px\",color:STYLE_TOKENS.colors.secondaryText},form:{width:\"100%\",maxWidth:STYLE_TOKENS.container.maxWidth},inputContainer:{position:\"relative\"},input:{width:\"100%\",fontFamily:STYLE_TOKENS.fonts.body,fontSize:STYLE_TOKENS.fontSizes.paragraph,fontWeight:STYLE_TOKENS.fontWeights.normal,paddingTop:STYLE_TOKENS.spacing.md,paddingBottom:STYLE_TOKENS.spacing.md,paddingLeft:STYLE_TOKENS.spacing.md,paddingRight:STYLE_TOKENS.spacing.xxl,fontSize:STYLE_TOKENS.fontSizes.input,border:`1px solid ${STYLE_TOKENS.colors.inputBorder}`,borderRadius:STYLE_TOKENS.borderRadius.small,outline:\"none\",transition:\"border-color 0.3s\",WebkitAppearance:\"none\",MozAppearance:\"none\",appearance:\"none\"},inputError:{borderColor:STYLE_TOKENS.colors.inputBorderError},showPasswordButton:{position:\"absolute\",right:STYLE_TOKENS.spacing.md,top:\"50%\",transform:\"translateY(-50%)\",background:\"none\",border:\"none\",cursor:\"pointer\",padding:\"0\"},button:{width:\"100%\",padding:STYLE_TOKENS.spacing.md,marginTop:STYLE_TOKENS.spacing.lg,fontFamily:STYLE_TOKENS.fonts.button,fontSize:STYLE_TOKENS.fontSizes.button,fontWeight:STYLE_TOKENS.fontWeights.medium,color:STYLE_TOKENS.colors.buttonText,backgroundColor:STYLE_TOKENS.colors.primary,border:\"none\",borderRadius:STYLE_TOKENS.borderRadius.small,cursor:\"pointer\",transition:\"background-color 0.3s\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},buttonHovered:{backgroundColor:STYLE_TOKENS.colors.buttonHover},error:{color:STYLE_TOKENS.colors.error,marginTop:STYLE_TOKENS.spacing.md,fontSize:STYLE_TOKENS.fontSizes.small},returnLink:{marginTop:STYLE_TOKENS.spacing.xxl,color:STYLE_TOKENS.colors.text,textDecoration:\"none\",fontSize:STYLE_TOKENS.fontSizes.small,display:\"flex\",alignItems:\"center\"},returnLinkHovered:{color:STYLE_TOKENS.colors.linkHover}};export function requireAuth(Component){return props=>{const[authenticated,setAuthenticated]=useState(false);const[showPassword,setShowPassword]=useState(false);const[errorMessage,setErrorMessage]=useState(\"\");const passwordRef=useRef(null);const[loading,setLoading]=useState(true);const[hovered,setHovered]=useState(false);const validateAuth=e=>{e.preventDefault()// Prevent default form submission behavior\n;const inputPassword=e.target.elements.password.value;if(ALLOWED_PASSWORDS.includes(inputPassword)){setAuthenticated(true)// Set authenticated state to true\n;setErrorMessage(\"\")// Clear any existing error message\n;}else{setAuthenticated(false)// Ensure authenticated state is false\n;setErrorMessage(TEXT_CONTENT.errorMessage)// Set error message for invalid password\n;}// Optionally clear the password field after submission\ne.target.elements.password.value=\"\";};useEffect(()=>{if(passwordRef.current){passwordRef.current.focus();}setTimeout(()=>setLoading(false),1e3);},[]);if(!authenticated){return /*#__PURE__*/_jsxs(\"div\",{style:styles.container,children:[/*#__PURE__*/_jsxs(\"div\",{style:styles.header,children:[/*#__PURE__*/_jsx(\"h1\",{style:styles.title,children:TEXT_CONTENT.title}),/*#__PURE__*/_jsx(\"p\",{style:styles.subtitle,children:TEXT_CONTENT.subtitle})]}),/*#__PURE__*/_jsxs(\"form\",{onSubmit:validateAuth,style:styles.form,children:[/*#__PURE__*/_jsxs(\"div\",{style:styles.inputContainer,children:[/*#__PURE__*/_jsx(\"input\",{type:showPassword?\"text\":\"password\",name:\"password\",ref:passwordRef,style:{...styles.input,...errorMessage?styles.inputError:{}},onFocus:e=>e.target.style.borderColor=STYLE_TOKENS.colors.inputBorderFocus,onBlur:e=>e.target.style.borderColor=errorMessage?STYLE_TOKENS.colors.inputBorderError:STYLE_TOKENS.colors.inputBorder,autoComplete:\"new-password\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>setShowPassword(!showPassword),style:styles.showPasswordButton,children:showPassword?/*#__PURE__*/_jsx(EyeSlash,{size:20,color:STYLE_TOKENS.colors.secondaryText}):/*#__PURE__*/_jsx(Eye,{size:20,color:STYLE_TOKENS.colors.secondaryText})})]}),errorMessage&&/*#__PURE__*/_jsx(\"p\",{style:styles.error,children:errorMessage}),/*#__PURE__*/_jsxs(\"button\",{type:\"submit\",style:{...styles.button,...hovered?styles.buttonHovered:{}},onMouseEnter:()=>setHovered(true),onMouseLeave:()=>setHovered(false),children:[hovered?/*#__PURE__*/_jsx(LockSimpleOpen,{size:20}):/*#__PURE__*/_jsx(LockSimple,{size:20}),/*#__PURE__*/_jsx(\"span\",{style:{marginLeft:STYLE_TOKENS.spacing.sm},children:TEXT_CONTENT.buttonText})]})]}),/*#__PURE__*/_jsxs(\"a\",{href:RETURN_URL,style:styles.returnLink,onMouseEnter:e=>e.currentTarget.style.color=STYLE_TOKENS.colors.linkHover,onMouseOut:e=>e.currentTarget.style.color=STYLE_TOKENS.colors.text,children:[/*#__PURE__*/_jsx(ArrowUUpLeft,{size:16,style:{marginRight:STYLE_TOKENS.spacing.sm}}),TEXT_CONTENT.returnButtonText]})]});}return /*#__PURE__*/_jsx(Component,{...props});};}// Add property controls (if needed)\naddPropertyControls(requireAuth,{});\nexport const __FramerMetadata__ = {\"exports\":{\"requireAuth\":{\"type\":\"reactHoc\",\"name\":\"requireAuth\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Auth_R.map"],
  "mappings": "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",
  "names": ["ALLOWED_PASSWORDS", "TEXT_CONTENT", "RETURN_URL", "STYLE_TOKENS", "styles", "requireAuth", "Component", "props", "authenticated", "setAuthenticated", "ye", "showPassword", "setShowPassword", "errorMessage", "setErrorMessage", "passwordRef", "pe", "loading", "setLoading", "hovered", "setHovered", "validateAuth", "e", "inputPassword", "ue", "p", "u", "Xj", "Uj", "lN", "rN", "di", "addPropertyControls"]
}
