function Login(){ const [mode,setMode]=React.useState('login'); const redirectTo=(new URLSearchParams(location.search).get('redirect'))||'Account.html'; const [email,setEmail]=React.useState(''); const [password,setPassword]=React.useState(''); const [emailTouched,setEmailTouched]=React.useState(false); const emailValid=BBValidate.isEmail(email); const [newPassword,setNewPassword]=React.useState(''); const [error,setError]=React.useState(''); const [notice,setNotice]=React.useState(''); const [loading,setLoading]=React.useState(false); const [success,setSuccess]=React.useState(false); const [done,setDone]=React.useState(false); React.useEffect(()=>{document.title='Sign In — Bold Bee';if(window.lucide)window.lucide.createIcons();},[mode]); function submitLogin(e){ e.preventDefault(); setError('');setNotice(''); setLoading(true); setTimeout(()=>{ const res=BB_AUTH.login(email,password); setLoading(false); if(!res.ok){setError(res.error);return;} setSuccess(true); setTimeout(()=>{location.href=redirectTo;},700); },500); } function submitForgot(e){e.preventDefault();setDone(true);} function submitReset(e){ e.preventDefault(); BB_AUTH.resetPassword(email,newPassword); setMode('login');setDone(false);setError('');setPassword('');setNotice('Password updated — please sign in.'); } return ( {success?(

Welcome back — taking you to your account.

):mode==='login'?(<>
AuthProviderStub('Google',setNotice,()=>{setSuccess(true);setTimeout(()=>{location.href=redirectTo;},700);})}>Continue with Google AuthProviderStub('Apple',setNotice)}>Continue with Apple
or continue with email
setEmail(e.target.value)} onBlur={()=>setEmailTouched(true)} style={{width:'100%',border:fieldBorder(emailTouched,email,emailValid),borderRadius:'var(--radius-md)',padding:'12px 14px',fontSize:14}}/>
setPassword(e.target.value)} error={error}/> {error&&

{error}

} {notice&&

{notice}

} {loading?'Signing In…':'Sign In'}
Create an account
Continue as guest →
):mode==='forgot'?(done?(

If an account exists for that email, a reset link has been sent.

):(
setEmail(e.target.value)} style={{width:'100%',border:'1px solid var(--border-default)',borderRadius:'var(--radius-md)',padding:'12px 14px',fontSize:14}}/>
Send Reset Link
)):(
setNewPassword(e.target.value)}/> Update Password )}
); } window.Login=Login;