{"version":3,"file":"UserDropdownModal.DAm7aeCJ.mjs","names":["useState","useCallback","user","useMemo","email","_Fragment","startTransition","useState"],"sources":["https:/framerusercontent.com/modules/P0rD9EYOlOQkFOttdE6R/uUj3SqsTzwt1g2HmelhA/FirebaseAuth.js","https:/framerusercontent.com/modules/EOzNI4ZLNoWjUYHUQhcK/kXG1K5CM8ayunFLmK9WU/UserDropdownModal.js"],"sourcesContent":["// Firebase Authentication component with modal-based UI flow - Controlled externally\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect,useCallback,useMemo,startTransition}from\"react\";import ReactDOM from\"react-dom\";import{addPropertyControls,ControlType}from\"framer\";/**\n * Firebase Authentication Component (Modal Only)\n *\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */// Firebase 配置（写死）\nconst firebaseConfig={apiKey:\"AIzaSyBRoojHUsUdrSJj697_X3-vA85prc6XyMs\",authDomain:\"blissbot-v1.firebaseapp.com\",databaseURL:\"https://blissbot-v1-default-rtdb.firebaseio.com\",projectId:\"blissbot-v1\",storageBucket:\"blissbot-v1.appspot.com\",messagingSenderId:\"264619917971\",appId:\"1:264619917971:web:2717b83a19c9019ab40366\",measurementId:\"G-CXJ4RW24BH\"};export default function FirebaseAuth(props){const{loginWebhookUrl,primaryButtonBg,primaryButtonText,googleButtonBg,googleButtonText,googleButtonBorder,inputBorder,inputFocusBorder,inputBg,inputText,successColor,errorColor,font,buttonTextSize,inputTextSize,labelTextSize,feedbackTextSize,buttonFontWeight,labelFontWeight,showPasswordStrength,showForgotPassword,loginButtonText,signupButtonText,emailLabel,passwordLabel,forgotPasswordText,switchToSignupText,switchToLoginText,modalPadding,modalBorderRadius,modalShadow}=props;const[user,setUser]=useState(null);const[showModal,setShowModal]=useState(false);const[isSignupMode,setIsSignupMode]=useState(false);const[isForgotPasswordMode,setIsForgotPasswordMode]=useState(false);const[email,setEmail]=useState(\"\");const[password,setPassword]=useState(\"\");const[confirmPassword,setConfirmPassword]=useState(\"\");const[showPassword,setShowPassword]=useState(false);const[showConfirmPassword,setShowConfirmPassword]=useState(false);const[loading,setLoading]=useState(false);const[feedback,setFeedback]=useState({message:\"\",type:\"\"});const[firebaseLoaded,setFirebaseLoaded]=useState(true);const[auth,setAuth]=useState(null);// 触发成功事件\nconst triggerAuthSuccess=useCallback(async(user,provider)=>{// 将用户信息存储到localStorage\ntry{localStorage.setItem(\"userEmail\",user.email||\"\");localStorage.setItem(\"userName\",user.displayName||user.email||\"User\");localStorage.setItem(\"isLoggedIn\",\"true\");// 检查token并获取用户qualified状态\nconst token=localStorage.getItem(\"token\");if(!token){console.log(\"No token found, redirecting to home\");setTimeout(()=>{window.location.href=\"https://starhealing.ai\";},100);return;}try{const response=await fetch(\"https://ebliss-backend-264619917971.us-central1.run.app/api/v1/autism/portal/user\",{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:\"Bearer \"+token}});if(response.ok){const data=await response.json();console.log(\"User data response:\",data);// 检查qualified状态\nif(data&&data.data&&data.data.qualified===true){console.log(\"User is qualified, redirecting to premium-home\");setTimeout(()=>{window.location.href=\"https://starhealing.ai/premium-home\";},100);}else{console.log(\"User is not qualified, redirecting to home\");setTimeout(()=>{window.location.href=\"https://starhealing.ai\";},100);}}else{console.log(\"Failed to get user data, redirecting to home\");setTimeout(()=>{window.location.href=\"https://starhealing.ai\";},100);}}catch(error){console.error(\"Error fetching user data:\",error);setTimeout(()=>{window.location.href=\"https://starhealing.ai\";},100);}}catch(error){console.error(\"Failed to save user data to localStorage:\",error);setTimeout(()=>{window.location.href=\"https://starhealing.ai\";},100);}// 清除存储的数据\ndelete window.originalTexts1;delete window.originalTexts2;delete window.pElements1;delete window.pElements2;delete window.storedOriginalTexts1;delete window.storedOriginalTexts2;// 调用回调函数（如果存在）\nif(window.onAuthSuccess){window.onAuthSuccess({user,provider});}},[]);// 触发错误事件\nconst triggerAuthError=useCallback((error,code)=>{// 触发自定义事件\nconst event=new CustomEvent(\"authError\",{detail:{error,code}});window.dispatchEvent(event);// 弹出对话框显示失败原因\nconst errorMessage=error.message||error||\"Authentication failed. Please try again.\";alert(`Login failed: ${errorMessage}`);// 调用回调函数（如果存在）\nif(window.onAuthError){window.onAuthError(error);}},[]);// 注册全局函数\nuseEffect(()=>{window.openAuthModal=()=>{console.log(\"Opening auth modal\");startTransition(()=>setShowModal(true));};window.closeAuthModal=()=>{// 检查是否已登录\nlet isLoggedIn=false;try{isLoggedIn=localStorage.getItem(\"isLoggedIn\")===\"true\";}catch(error){console.error(\"Failed to check login status:\",error);}// 如果未登录，恢复原始文本\nif(!isLoggedIn){}startTransition(()=>setShowModal(false));};window.onAuthSuccess=data=>{console.log(\"Authentication successful!\",data);// 在登录成功时设置文本为用户email\nconst userEmail=data.user.email||\"User\";// 将用户信息存储到localStorage\ntry{localStorage.setItem(\"userEmail\",data.user.email||\"\");localStorage.setItem(\"userName\",data.user.displayName||data.user.email||\"User\");localStorage.setItem(\"isLoggedIn\",\"true\");}catch(error){console.error(\"Failed to save user data to localStorage:\",error);}// 登录成功后自动关闭模态框\nstartTransition(()=>setShowModal(false));};window.onAuthError=error=>{};window.logout=()=>{handleLogout();};return()=>{delete window.openAuthModal;delete window.closeAuthModal;delete window.onAuthSuccess;delete window.onAuthError;delete window.logout;};},[]);// Load Firebase SDK\nuseEffect(()=>{if(typeof window===\"undefined\")return;const loadFirebase=async()=>{try{// @ts-ignore\nconst firebaseApp=await import(\"https://www.gstatic.com/firebasejs/10.7.1/firebase-app.js\");// @ts-ignore\nconst firebaseAuth=await import(\"https://www.gstatic.com/firebasejs/10.7.1/firebase-auth.js\");let app;try{app=firebaseApp.getApp();}catch{app=firebaseApp.initializeApp(firebaseConfig);}const authInstance=firebaseAuth.getAuth(app);startTransition(()=>{setAuth(authInstance);setFirebaseLoaded(true);});firebaseAuth.onAuthStateChanged(authInstance,currentUser=>{startTransition(()=>{setUser(currentUser);if(currentUser){setShowModal(false);}else{}});});}catch(error){console.error(\"Firebase load error:\",error);}};loadFirebase();},[]);// Control body scrolling when modal opens/closes\nuseEffect(()=>{if(typeof window===\"undefined\")return;const originalStyle=window.getComputedStyle(document.body).overflow;if(showModal){// Prevent body scrolling when modal is open\ndocument.body.style.overflow=\"hidden\";}else{// Restore original body scrolling when modal is closed\ndocument.body.style.overflow=originalStyle;}// Cleanup function to restore original style\nreturn()=>{document.body.style.overflow=originalStyle;};},[showModal]);const passwordStrength=useMemo(()=>{if(!password)return\"\";if(password.length<6)return\"weak\";if(password.length<10)return\"medium\";return\"strong\";},[password]);const strengthColor=useMemo(()=>{if(passwordStrength===\"weak\")return\"#FF5588\";if(passwordStrength===\"medium\")return\"#FFBB00\";return\"#22CC66\";},[passwordStrength]);const validateEmail=email=>{return/.+@.+\\..+/.test(email);};const showFeedback=useCallback((message,type)=>{startTransition(()=>{setFeedback({message,type});setTimeout(()=>{startTransition(()=>setFeedback({message:\"\",type:\"\"}));},5e3);});},[]);const handleLogout=async()=>{try{// @ts-ignore\nconst firebaseAuth=await import(\"https://www.gstatic.com/firebasejs/10.7.1/firebase-auth.js\");await firebaseAuth.signOut(auth);// 清除localStorage中的用户信息\ntry{localStorage.removeItem(\"userEmail\");localStorage.removeItem(\"userName\");localStorage.removeItem(\"isLoggedIn\");}catch(error){console.error(\"Failed to clear user data from localStorage:\",error);}showFeedback(\"Logged out successfully\",\"success\");}catch(error){console.error(\"Logout error:\",error);showFeedback(\"Logout failed\",\"error\");}};const handleEmailSignup=async()=>{if(!validateEmail(email)){showFeedback(\"Please enter a valid email\",\"error\");return;}if(password.length<6){showFeedback(\"Password must be at least 6 characters\",\"error\");return;}if(password!==confirmPassword){showFeedback(\"Passwords do not match\",\"error\");return;}startTransition(()=>setLoading(true));try{// @ts-ignore\nconst firebaseAuth=await import(\"https://www.gstatic.com/firebasejs/10.7.1/firebase-auth.js\");const userCredential=await firebaseAuth.createUserWithEmailAndPassword(auth,email,password);// 发送验证邮件\nif(userCredential.user){await firebaseAuth.sendEmailVerification(userCredential.user);// 立即退出登录，强制用户先验证邮箱\nawait firebaseAuth.signOut(auth);// 弹出消息框提示用户验证邮箱\nalert(`✅ Account created successfully!\n\n`+`📧 A verification email has been sent to:\n${email}\n\n`+`Please check your inbox and click the verification link before logging in.\n\n`+`💡 Don't forget to check your spam folder!`);showFeedback(\"Please verify your email before logging in\",\"success\");}else{showFeedback(\"Account created successfully\",\"success\");}startTransition(()=>{setEmail(\"\");setPassword(\"\");setConfirmPassword(\"\");});}catch(error){const errorMessage=error.code===\"auth/email-already-in-use\"?\"Email already in use\":error.code===\"auth/weak-password\"?\"Password is too weak\":\"Signup failed. Please try again\";showFeedback(errorMessage,\"error\");triggerAuthError(errorMessage,error.code);}finally{startTransition(()=>setLoading(false));}};const handleEmailLogin=async()=>{if(!validateEmail(email)){showFeedback(\"Please enter a valid email\",\"error\");return;}if(!password){showFeedback(\"Please enter your password\",\"error\");return;}startTransition(()=>setLoading(true));try{// @ts-ignore\nconst firebaseAuth=await import(\"https://www.gstatic.com/firebasejs/10.7.1/firebase-auth.js\");const userCredential=await firebaseAuth.signInWithEmailAndPassword(auth,email,password);// 检查邮箱是否已验证\nif(userCredential.user&&!userCredential.user.emailVerified){const errorMessage=\"Please verify your email before logging in\";showFeedback(errorMessage,\"error\");triggerAuthError(errorMessage,\"auth/email-not-verified\");// 可选：重新发送验证邮件\n// await firebaseAuth.sendEmailVerification(userCredential.user)\nawait firebaseAuth.signOut(auth);return;}showFeedback(\"Logged in successfully\",\"success\");if(userCredential.user){// await sendLoginData(\n//     userCredential.user.uid,\n//     userCredential.user.email,\n//     userCredential.user.displayName || \"\",\n//     \"email\"\n// )\ntry{const response=await fetch(\"https://ebliss-backend-264619917971.us-central1.run.app/api/v1/autism/portal/login?user_email=\"+userCredential.user.email,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:\"Bearer \"+localStorage.getItem(\"token\")}});if(response.ok){const data=await response.json();localStorage.setItem(\"token\",data.data.token);showFeedback(\"Logged in with Google\",\"success\");}else{showFeedback(\"Failed to generate token\",\"error\");}triggerAuthSuccess(userCredential.user,\"email\");}catch(error){console.error(\"Error generating token:\",error);}}startTransition(()=>{setEmail(\"\");setPassword(\"\");});}catch(error){const errorMessage=error.code===\"auth/user-not-found\"||error.code===\"auth/wrong-password\"?\"Invalid credentials\":\"Login failed. Please try again\";showFeedback(errorMessage,\"error\");triggerAuthError(errorMessage,error.code);}finally{startTransition(()=>setLoading(false));}};const handleGoogleLogin=async()=>{startTransition(()=>setLoading(true));try{// @ts-ignore\nconst firebaseAuth=await import(\"https://www.gstatic.com/firebasejs/10.7.1/firebase-auth.js\");const provider=new firebaseAuth.GoogleAuthProvider;const userCredential=await firebaseAuth.signInWithPopup(auth,provider);showFeedback(\"Logged in with Google\",\"success\");if(userCredential.user){// await sendLoginData(\n//     userCredential.user.uid,\n//     userCredential.user.email,\n//     userCredential.user.displayName || \"\",\n//     \"google\"\n// )\ntry{const response=await fetch(\"https://ebliss-backend-264619917971.us-central1.run.app/api/v1/autism/portal/login?user_email=\"+userCredential.user.email,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:\"Bearer \"+localStorage.getItem(\"token\")}});if(response.ok){const data=await response.json();localStorage.setItem(\"token\",data.data.token);showFeedback(\"Logged in with Google\",\"success\");}else{showFeedback(\"Failed to generate token\",\"error\");}triggerAuthSuccess(userCredential.user,\"google\");}catch(error){console.error(\"Error generating token:\",error);}}}catch(error){const errorMessage=error.code===\"auth/popup-closed-by-user\"?\"Popup closed. Please try again\":error.code===\"auth/popup-blocked\"?\"Popup blocked. Please allow popups\":\"Google login failed\";showFeedback(errorMessage,\"error\");triggerAuthError(errorMessage,error.code);}finally{startTransition(()=>setLoading(false));}};const handleForgotPassword=async()=>{if(!validateEmail(email)){const errorMessage=\"Please enter your email first\";showFeedback(errorMessage,\"error\");triggerAuthError(errorMessage,\"auth/invalid-email\");return;}startTransition(()=>setLoading(true));try{// @ts-ignore\nconst firebaseAuth=await import(\"https://www.gstatic.com/firebasejs/10.7.1/firebase-auth.js\");await firebaseAuth.sendPasswordResetEmail(auth,email);showFeedback(\"Password reset email sent\",\"success\");setTimeout(()=>{startTransition(()=>{setIsForgotPasswordMode(false);setIsSignupMode(false);});},2e3);}catch(error){const errorMessage=\"Failed to send reset email\";showFeedback(errorMessage,\"error\");triggerAuthError(errorMessage,error.code);}finally{startTransition(()=>setLoading(false));}};const buttonStyle={width:\"100%\",padding:\"12px 24px\",borderRadius:8,border:\"none\",cursor:loading?\"not-allowed\":\"pointer\",...font,fontSize:buttonTextSize,fontWeight:buttonFontWeight,opacity:loading?.6:1,transition:\"opacity 0.2s\"};const inputStyle={width:\"100%\",padding:\"10px 12px\",borderRadius:8,border:`1px solid ${inputBorder}`,backgroundColor:inputBg,color:inputText,...font,fontSize:inputTextSize,outline:\"none\",boxSizing:\"border-box\"};const labelStyle={display:\"block\",marginBottom:6,...font,fontSize:labelTextSize,fontWeight:labelFontWeight,color:inputText};if(!firebaseLoaded){return /*#__PURE__*/_jsx(\"div\",{style:{display:\"none\"}});}return /*#__PURE__*/_jsx(_Fragment,{children:showModal&&typeof document!==\"undefined\"&&/*#__PURE__*/ReactDOM.createPortal(/*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",top:0,left:0,width:\"100vw\",height:\"100vh\",backgroundColor:\"rgba(0, 0, 0, 0.5)\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",zIndex:2147483647},children:/*#__PURE__*/_jsxs(\"div\",{style:{backgroundColor:\"#FFFFFF\",padding:modalPadding,borderRadius:modalBorderRadius,boxShadow:modalShadow,maxWidth:320,width:\"90%\",position:\"relative\"},onClick:e=>e.stopPropagation(),children:[/*#__PURE__*/_jsx(\"button\",{onClick:()=>{if(window.closeAuthModal){window.closeAuthModal();}else{startTransition(()=>setShowModal(false));}},style:{position:\"absolute\",top:12,right:12,background:\"none\",border:\"none\",fontSize:24,cursor:\"pointer\",color:inputText,padding:0,width:24,height:24,display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:\"\\xd7\"}),/*#__PURE__*/_jsxs(\"div\",{style:{marginTop:20},children:[/*#__PURE__*/_jsxs(\"div\",{style:{marginBottom:16},children:[/*#__PURE__*/_jsx(\"label\",{style:labelStyle,children:emailLabel}),/*#__PURE__*/_jsx(\"input\",{type:\"email\",value:email,onChange:e=>setEmail(e.target.value),placeholder:\"your@email.com\",style:{...inputStyle,borderColor:inputBorder},onFocus:e=>e.target.style.borderColor=inputFocusBorder,onBlur:e=>e.target.style.borderColor=inputBorder})]}),!isForgotPasswordMode&&/*#__PURE__*/_jsxs(\"div\",{style:{marginBottom:16},children:[/*#__PURE__*/_jsx(\"label\",{style:labelStyle,children:passwordLabel}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\"},children:[/*#__PURE__*/_jsx(\"input\",{type:showPassword?\"text\":\"password\",value:password,onChange:e=>setPassword(e.target.value),placeholder:\"••••••\",style:{...inputStyle,paddingRight:40,borderColor:inputBorder},onFocus:e=>e.target.style.borderColor=inputFocusBorder,onBlur:e=>e.target.style.borderColor=inputBorder}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>startTransition(()=>setShowPassword(!showPassword)),style:{position:\"absolute\",right:10,top:\"50%\",transform:\"translateY(-50%)\",background:\"none\",border:\"none\",cursor:\"pointer\",fontSize:18},type:\"button\",children:showPassword?\"👁️\":\"👁️‍🗨️\"})]}),showPasswordStrength&&isSignupMode&&password&&/*#__PURE__*/_jsxs(\"div\",{style:{marginTop:6,...font,fontSize:feedbackTextSize,color:strengthColor},children:[\"Strength: \",passwordStrength]})]}),!isForgotPasswordMode&&isSignupMode&&/*#__PURE__*/_jsxs(\"div\",{style:{marginBottom:16},children:[/*#__PURE__*/_jsx(\"label\",{style:labelStyle,children:\"Confirm Password\"}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\"},children:[/*#__PURE__*/_jsx(\"input\",{type:showConfirmPassword?\"text\":\"password\",value:confirmPassword,onChange:e=>setConfirmPassword(e.target.value),placeholder:\"••••••\",style:{...inputStyle,paddingRight:40,borderColor:inputBorder},onFocus:e=>e.target.style.borderColor=inputFocusBorder,onBlur:e=>e.target.style.borderColor=inputBorder}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>startTransition(()=>setShowConfirmPassword(!showConfirmPassword)),style:{position:\"absolute\",right:10,top:\"50%\",transform:\"translateY(-50%)\",background:\"none\",border:\"none\",cursor:\"pointer\",fontSize:18},type:\"button\",children:showConfirmPassword?\"👁️\":\"👁️‍🗨️\"})]}),confirmPassword&&password!==confirmPassword&&/*#__PURE__*/_jsx(\"div\",{style:{marginTop:6,...font,fontSize:feedbackTextSize,color:errorColor},children:\"Passwords do not match\"})]}),feedback.message&&/*#__PURE__*/_jsx(\"div\",{style:{marginBottom:16,...font,fontSize:feedbackTextSize,color:feedback.type===\"success\"?successColor:errorColor},children:feedback.message}),/*#__PURE__*/_jsx(\"button\",{onClick:isForgotPasswordMode?handleForgotPassword:isSignupMode?handleEmailSignup:handleEmailLogin,style:{...buttonStyle,backgroundColor:primaryButtonBg,color:primaryButtonText,marginBottom:12},disabled:loading,children:loading?\"Loading...\":isForgotPasswordMode?\"Send Reset Email\":isSignupMode?signupButtonText:loginButtonText}),!isForgotPasswordMode&&!isSignupMode&&showForgotPassword&&/*#__PURE__*/_jsx(\"button\",{onClick:()=>startTransition(()=>setIsForgotPasswordMode(true)),style:{background:\"none\",border:\"none\",color:primaryButtonBg,cursor:\"pointer\",...font,fontSize:feedbackTextSize,marginBottom:12,textDecoration:\"underline\"},disabled:loading,children:forgotPasswordText}),isForgotPasswordMode&&/*#__PURE__*/_jsx(\"button\",{onClick:()=>startTransition(()=>{setIsForgotPasswordMode(false);setIsSignupMode(false);}),style:{background:\"none\",border:\"none\",color:primaryButtonBg,cursor:\"pointer\",...font,fontSize:feedbackTextSize,marginBottom:12,textDecoration:\"underline\"},children:\"Back to Login\"}),!isForgotPasswordMode&&/*#__PURE__*/_jsx(\"button\",{onClick:()=>startTransition(()=>setIsSignupMode(!isSignupMode)),style:{background:\"none\",border:\"none\",color:primaryButtonBg,cursor:\"pointer\",...font,fontSize:feedbackTextSize,marginBottom:16,width:\"100%\",textAlign:\"center\"},children:isSignupMode?switchToLoginText:switchToSignupText}),!isForgotPasswordMode&&/*#__PURE__*/_jsxs(\"button\",{onClick:handleGoogleLogin,style:{...buttonStyle,backgroundColor:googleButtonBg,color:googleButtonText,border:`1px solid ${googleButtonBorder}`,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:8},disabled:loading,children:[/*#__PURE__*/_jsxs(\"svg\",{width:\"18\",height:\"18\",viewBox:\"0 0 18 18\",fill:\"none\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M17.64 9.2c0-.637-.057-1.251-.164-1.84H9v3.481h4.844c-.209 1.125-.843 2.078-1.796 2.717v2.258h2.908c1.702-1.567 2.684-3.874 2.684-6.615z\",fill:\"#4285F4\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M9.003 18c2.43 0 4.467-.806 5.956-2.18L12.05 13.56c-.806.54-1.836.86-3.047.86-2.344 0-4.328-1.584-5.036-3.711H.96v2.332C2.44 15.983 5.485 18 9.003 18z\",fill:\"#34A853\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3.964 10.712c-.18-.54-.282-1.117-.282-1.71 0-.593.102-1.17.282-1.71V4.96H.957C.347 6.175 0 7.55 0 9.002c0 1.452.348 2.827.957 4.042l3.007-2.332z\",fill:\"#FBBC05\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M9.003 3.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C13.464.891 11.426 0 9.003 0 5.485 0 2.44 2.017.96 4.958L3.967 7.29c.708-2.127 2.692-3.71 5.036-3.71z\",fill:\"#EA4335\"})]}),\"Continue with Google\"]})]})]})}),document.body)});}addPropertyControls(FirebaseAuth,{loginWebhookUrl:{type:ControlType.String,title:\"Login Webhook URL\",defaultValue:\"\"},primaryButtonBg:{type:ControlType.Color,title:\"Primary Button BG\",defaultValue:\"#007AFF\"},primaryButtonText:{type:ControlType.Color,title:\"Primary Button Text\",defaultValue:\"#FFFFFF\"},googleButtonBg:{type:ControlType.Color,title:\"Google Button BG\",defaultValue:\"#FFFFFF\"},googleButtonText:{type:ControlType.Color,title:\"Google Button Text\",defaultValue:\"#000000\"},googleButtonBorder:{type:ControlType.Color,title:\"Google Button Border\",defaultValue:\"#DDDDDD\"},inputBorder:{type:ControlType.Color,title:\"Input Border\",defaultValue:\"#DDDDDD\"},inputFocusBorder:{type:ControlType.Color,title:\"Input Focus Border\",defaultValue:\"#007AFF\"},inputBg:{type:ControlType.Color,title:\"Input Background\",defaultValue:\"#FFFFFF\"},inputText:{type:ControlType.Color,title:\"Input Text\",defaultValue:\"#000000\"},successColor:{type:ControlType.Color,title:\"Success Color\",defaultValue:\"#22CC66\"},errorColor:{type:ControlType.Color,title:\"Error Color\",defaultValue:\"#FF5588\"},buttonTextSize:{type:ControlType.Number,title:\"Button Text Size\",defaultValue:16},inputTextSize:{type:ControlType.Number,title:\"Input Text Size\",defaultValue:14},labelTextSize:{type:ControlType.Number,title:\"Label Text Size\",defaultValue:14},feedbackTextSize:{type:ControlType.Number,title:\"Feedback Text Size\",defaultValue:12},buttonFontWeight:{type:ControlType.String,title:\"Button Font Weight\",defaultValue:\"600\"},labelFontWeight:{type:ControlType.String,title:\"Label Font Weight\",defaultValue:\"500\"},showPasswordStrength:{type:ControlType.Boolean,title:\"Show Password Strength\",defaultValue:true},showForgotPassword:{type:ControlType.Boolean,title:\"Show Forgot Password\",defaultValue:true},loginButtonText:{type:ControlType.String,title:\"Login Button Text\",defaultValue:\"Log In\"},signupButtonText:{type:ControlType.String,title:\"Signup Button Text\",defaultValue:\"Sign Up\"},emailLabel:{type:ControlType.String,title:\"Email Label\",defaultValue:\"Email\"},passwordLabel:{type:ControlType.String,title:\"Password Label\",defaultValue:\"Password\"},forgotPasswordText:{type:ControlType.String,title:\"Forgot Password Text\",defaultValue:\"Forgot Password?\"},switchToSignupText:{type:ControlType.String,title:\"Switch to Signup Text\",defaultValue:\"Don't have an account? Sign up\"},switchToLoginText:{type:ControlType.String,title:\"Switch to Login Text\",defaultValue:\"Already have an account? Log in\"},modalPadding:{type:ControlType.Number,title:\"Modal Padding\",defaultValue:24},modalBorderRadius:{type:ControlType.Number,title:\"Modal Border Radius\",defaultValue:16},modalShadow:{type:ControlType.String,title:\"Modal Shadow\",defaultValue:\"0 10px 40px rgba(0,0,0,0.2)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FirebaseAuth\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FirebaseAuth.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect}from\"react\";import ReactDOM from\"react-dom\";import{addPropertyControls,ControlType}from\"framer\";export default function UserDropdownModal(props){const{dropdownBackgroundColor,dropdownTextColor,dropdownBorderColor,dropdownBorderWidth,dropdownBorderRadius,dropdownFontSize,dropdownItemPadding,dropdownShadow,dropdownWidth,profileText,logoutText,fontFamily,animationDuration}=props;// ModalPortal component for rendering outside normal DOM hierarchy\nconst ModalPortal=({children})=>{const[portalRoot,setPortalRoot]=useState(null);useEffect(()=>{const element=document.createElement(\"div\");element.id=\"user-dropdown-modal-portal\";element.style.cssText=`\n                position: fixed;\n                z-index: 2147483647;\n                top: 0;\n                left: 0;\n                width: 100%;\n                height: 100%;\n            `;document.body.appendChild(element);setPortalRoot(element);return()=>{document.body.removeChild(element);};},[]);return portalRoot?/*#__PURE__*/ReactDOM.createPortal(children,portalRoot):null;};const[isVisible,setIsVisible]=useState(false);const[userEmail,setUserEmail]=useState(\"\");useEffect(()=>{// Listen for custom event from UserAuth component\nconst handleShowModal=event=>{console.log(\"Modal received show event:\",event.detail);setUserEmail(event.detail.userEmail||\"\");setIsVisible(true);};window.addEventListener(\"showUserDropdown\",handleShowModal);return()=>{window.removeEventListener(\"showUserDropdown\",handleShowModal);};},[]);const handleProfileClick=()=>{console.log(\"Profile clicked!\");setIsVisible(false);window.open(\"https://portal.starhealing.ai/autism/transition-member?token=\"+localStorage.getItem(\"token\"),\"_self\");};const handleLogout=async()=>{console.log(\"Logout button clicked!\");console.log(\"Logout initiated from modal\");try{const token=localStorage.getItem(\"token\");const response=await fetch(\"https://ebliss-backend-264619917971.us-central1.run.app/api/v1/autism/portal/logout\",{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:\"Bearer \"+token}});if(response.ok){const data=await response.json();localStorage.setItem(\"token\",data.data.token);}}catch(error){console.error(\"Failed to logout:\",error);}finally{localStorage.removeItem(\"userEmail\");localStorage.removeItem(\"userName\");localStorage.removeItem(\"isLoggedIn\");localStorage.removeItem(\"qualified\");setIsVisible(false);if(window.logout){window.logout();}setTimeout(()=>{window.location.href=\"https://starhealing.ai\";},100);}};if(!isVisible){return null;}return /*#__PURE__*/_jsxs(ModalPortal,{children:[/*#__PURE__*/_jsx(GlobalModalStyles,{}),/*#__PURE__*/_jsx(\"div\",{onClick:e=>{console.log(\"Overlay clicked, closing modal\");setIsVisible(false);},style:{position:\"fixed\",top:0,left:0,right:0,bottom:0,backgroundColor:\"rgba(0, 0, 0, 0.5)\",animation:`fadeIn ${animationDuration}ms ease`,willChange:\"opacity\",isolation:\"isolate\",contain:\"layout style paint\"}}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"fixed\",top:\"50%\",left:\"50%\",transform:\"translate(-50%, -50%)\",backgroundColor:dropdownBackgroundColor,border:`${dropdownBorderWidth}px solid ${dropdownBorderColor}`,borderRadius:`${dropdownBorderRadius}px`,boxShadow:dropdownShadow,width:`${Math.min(dropdownWidth*1.5,window.innerWidth-40)}px`,maxWidth:\"90vw\",overflow:\"hidden\",fontFamily:fontFamily,animation:`scaleIn ${animationDuration}ms ease`,willChange:\"transform, opacity\",isolation:\"isolate\",contain:\"layout style paint\"},children:[userEmail&&/*#__PURE__*/_jsx(\"div\",{style:{padding:`${dropdownItemPadding*1.2}px`,borderBottom:`1px solid ${dropdownBorderColor}`,color:dropdownTextColor,fontSize:`${dropdownFontSize*.9}px`,fontWeight:\"600\",textAlign:\"center\",backgroundColor:\"rgba(0, 0, 0, 0.03)\"},children:userEmail}),/*#__PURE__*/_jsx(\"div\",{onClick:e=>{e.stopPropagation();e.preventDefault();handleProfileClick();},style:{padding:`${dropdownItemPadding}px`,color:dropdownTextColor,fontSize:`${dropdownFontSize}px`,cursor:\"pointer\",transition:`background-color ${animationDuration}ms ease`,textAlign:\"center\",userSelect:\"none\"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=\"rgba(0,0,0,0.05)\";},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=\"transparent\";},children:\"Account\"}),/*#__PURE__*/_jsx(\"div\",{onClick:e=>{e.stopPropagation();e.preventDefault();handleLogout();},style:{padding:`${dropdownItemPadding}px`,color:dropdownTextColor,fontSize:`${dropdownFontSize}px`,cursor:\"pointer\",transition:`background-color ${animationDuration}ms ease`,textAlign:\"center\",borderTop:`1px solid ${dropdownBorderColor}`,userSelect:\"none\"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=\"rgba(0,0,0,0.05)\";},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=\"transparent\";},children:logoutText})]}),/*#__PURE__*/_jsx(\"style\",{jsx:true,children:`\n                @keyframes fadeIn {\n                    from {\n                        opacity: 0;\n                    }\n                    to {\n                        opacity: 1;\n                    }\n                }\n\n                @keyframes scaleIn {\n                    from {\n                        opacity: 0;\n                        transform: translate(-50%, -50%) scale(0.9);\n                    }\n                    to {\n                        opacity: 1;\n                        transform: translate(-50%, -50%) scale(1);\n                    }\n                }\n            `})]});}// Property controls for Framer\n// Global styles to ensure modal appears on top\nconst GlobalModalStyles=()=>/*#__PURE__*/_jsx(\"style\",{jsx:true,global:true,children:`\n        #user-dropdown-modal-portal {\n            position: fixed !important;\n            z-index: 2147483647 !important;\n            top: 0 !important;\n            left: 0 !important;\n            width: 100% !important;\n            height: 100% !important;\n        }\n    `});addPropertyControls(UserDropdownModal,{dropdownBackgroundColor:{type:ControlType.Color,defaultValue:\"#ffffff\"},dropdownTextColor:{type:ControlType.Color,defaultValue:\"#333333\"},dropdownBorderColor:{type:ControlType.Color,defaultValue:\"#e0e0e0\"},dropdownBorderWidth:{type:ControlType.Number,defaultValue:1,min:0,max:10,step:.5},dropdownBorderRadius:{type:ControlType.Number,defaultValue:8,min:0,max:50,step:1},dropdownFontSize:{type:ControlType.Number,defaultValue:14,min:10,max:24,step:1},dropdownItemPadding:{type:ControlType.Number,defaultValue:12,min:8,max:32,step:2},dropdownShadow:{type:ControlType.String,defaultValue:\"0 4px 12px rgba(0, 0, 0, 0.15)\"},dropdownWidth:{type:ControlType.Number,defaultValue:200,min:150,max:400,step:10},profileText:{type:ControlType.String,defaultValue:\"Account\"},logoutText:{type:ControlType.String,defaultValue:\"Logout\"},fontFamily:{type:ControlType.String,defaultValue:\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\"},animationDuration:{type:ControlType.Number,defaultValue:200,min:100,max:1e3,step:50}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"UserDropdownModal\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UserDropdownModal.map"],"mappings":"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"}