1import{e as h,af as j,r as a,q as g,v,x as N,j as e,L as m,y as S,F as w,E as y,z as L,aC as E,B as A}from"./index-CRJTC8Z1.js";import{R}from"./Reveal-0uyfO04u.js";import{P as T}from"./PageHeader-C5oKmPZL.js";import{a as k}from"./scroll-wjh5IeHf.js";import{M as C}from"./mail-check-CMFOvNMl.js";import{A as F}from"./arrow-left-D_JL2BjH.js";function I(){const{t:s}=h(["auth","common"]),{requestPasswordReset:c}=j(),[i,o]=a.useState(null),[t,d]=a.useState(!1);a.useEffect(()=>{t&&k()},[t]);const x=a.useMemo(()=>g({email:v().min(1,s("errors.email")).email(s("errors.emailInvalid"))}),[s]),{register:u,handleSubmit:p,formState:{errors:l,isSubmitting:n}}=N({resolver:A(x)}),b=async f=>{o(null);const{error:r}=await c(f.email);if(r){o(s(r==="rate_limit"||r==="network"?`common:authErrors.${r}`:"recover.error"));return}d(!0)};return e.jsxs(e.Fragment,{children:[e.jsx(T,{eyebrow:s("recover.eyebrow"),title:s("recover.title"),subtitle:s("recover.subtitle"),withTopOffset:!1}),e.jsx("section",{className:"py-20 bg-[#f3f4f4]",children:e.jsx("div",{className:"max-w-lg mx-auto px-6",children:e.jsx(R,{children:t?e.jsxs("div",{className:"bg-white rounded-xl p-8 md:p-10 shadow-sm text-center",children:[e.jsx(C,{size:40,className:"mx-auto mb-4 text-brand-green"}),e.jsx("p",{className:"mb-6 leading-relaxed text-brand-ink/80",children:s("recover.sent")}),e.jsxs(m,{to:"/acceso",className:"btn-green inline-flex items-center gap-2",children:[e.jsx(F,{size:18}),s("recover.backToLogin")]})]}):e.jsxs("form",{onSubmit:p(b),className:"bg-white rounded-xl p-8 md:p-10 shadow-sm",noValidate:!0,children:[e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("label",{className:S,htmlFor:"email",children:s("email")}),e.jsx("input",{id:"email",type:"email",autoComplete:"email",className:w,...u("email")}),l.email&&e.jsx("p",{className:y,children:l.email.message})]}),i&&e.jsxs("div",{className:"flex items-center gap-2 text-brand-orange",children:[e.jsx(L,{size:18}),e.jsx("span",{className:"text-sm",children:i})]}),e.jsxs("button",{type:"submit",disabled:n,className:"btn-green w-full inline-flex items-center justify-center gap-2 disabled:opacity-60",children:[e.jsx(E,{size:18}),s(n?"recover.submitting":"recover.submit")]})]}),e.jsx("p",{className:"mt-6 text-center text-sm text-brand-ink/70",children:e.jsx(m,{to:"/acceso",className:"font-semibold text-brand-green hover:underline",children:s("recover.backToLogin")})})]})})})})]})}export{I as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.