1import{S as c,o as p,s as l,A as N,aq as h,cn as y,r as L,j as e,ab as F,L as g,az as I,ac as z,cL as R}from"./vendor-QOkwwy6v.js";import{u as w,F as P,a as j,b as _,c as f,e as E,d as b}from"./Form-BXZpHtyo.js";import{B as v,I as M}from"./index-B5Va5PI-.js";import{P as C}from"./PasswordInput-DIby0WBG.js";const V=p({email:l().email("Veuillez entrer une adresse courriel valide.")}),B=async(r,a)=>{const d=V.parse(r),t=await fetch("/_api/auth/forgot-password",{method:"POST",body:c.stringify(d),...a,headers:{"Content-Type":"application/json"}});if(!t.ok){const n=c.parse(await t.text());throw new Error(n.error)}return c.parse(await t.text())},O=p({token:l().min(1,"Le jeton est requis."),newPassword:l().min(8,"Le mot de passe doit contenir au moins 8 caractères.")}),T=async(r,a)=>{const d=O.parse(r),t=await fetch("/_api/auth/reset-password",{method:"POST",body:c.stringify(d),...a,headers:{"Content-Type":"application/json"}});if(!t.ok){const n=c.parse(await t.text());throw new Error(n.error)}return c.parse(await t.text())},W=()=>N({mutationFn:r=>B(r),onSuccess:r=>{h.success(r.message)},onError:r=>{h.error(r.message||"Une erreur est survenue lors de la demande.")}}),A=()=>N({mutationFn:r=>T(r),onSuccess:r=>{h.success(r.message)},onError:r=>{h.error(r.message||"Une erreur est survenue lors de la réinitialisation.")}}),H="_pageContainer_11rh6_1",q="_backgroundPattern_11rh6_12",U="_loginCard_11rh6_26",D="_header_11rh6_39",J="_logoLink_11rh6_44",$="_logoImage_11rh6_54",G="_title_11rh6_59",K="_subtitle_11rh6_66",Q="_form_11rh6_73",X="_submitButton_11rh6_79",Y="_footer_11rh6_84",Z="_backLink_11rh6_89",ee="_successContent_11rh6_103",se="_iconWrapper_11rh6_108",re="_successIcon_11rh6_114",ae="_hint_11rh6_118",s={pageContainer:H,backgroundPattern:q,loginCard:U,header:D,logoLink:J,logoImage:$,title:G,subtitle:K,form:Q,submitButton:X,footer:Y,backLink:Z,successContent:ee,iconWrapper:se,successIcon:re,hint:ae},te=p({email:l().email("Veuillez entrer une adresse courriel valide.")}),oe=p({password:l().min(8,"Le mot de passe doit contenir au moins 8 caractères."),confirmPassword:l()}).refine(r=>r.password===r.confirmPassword,{message:"Les mots de passe ne correspondent pas.",path:["confirmPassword"]}),de=()=>{const[r]=y(),a=r.get("token"),[d,t]=L.useState(!1),n=W(),x=A(),m=w({defaultValues:{email:""},schema:te}),i=w({defaultValues:{password:"",confirmPassword:""},schema:oe}),k=o=>{n.mutate(o,{onSuccess:()=>t(!0)})},S=o=>{a&&x.mutate({token:a,newPassword:o.password},{onSuccess:()=>t(!0)})};return d?e.jsx("div",{className:s.pageContainer,children:e.jsx("div",{className:s.loginCard,children:e.jsxs("div",{className:s.successContent,children:[e.jsx("div",{className:s.iconWrapper,children:e.jsx(F,{className:s.successIcon,size:48})}),e.jsx("h2",{className:s.title,children:"Opération réussie"}),e.jsx("p",{className:s.subtitle,children:a?"Votre mot de passe a été mis à jour. Vous pouvez maintenant vous connecter avec vos nouveaux identifiants.":"Si un compte existe pour cet email, vous recevrez un lien de réinitialisation sous peu."}),e.jsx(v,{asChild:!0,variant:"primary",className:s.submitButton,children:e.jsx(g,{to:"/login",children:"Retour à la connexion"})})]})})}):e.jsxs(e.Fragment,{children:[e.jsx(I,{children:e.jsxs("title",{children:[a?"Réinitialiser le mot de passe":"Mot de passe oublié"," | Horizon CRM"]})}),e.jsxs("div",{className:s.pageContainer,children:[e.jsx("div",{className:s.backgroundPattern}),e.jsxs("div",{className:s.loginCard,children:[e.jsxs("header",{className:s.header,children:[e.jsx(g,{to:"/",className:s.logoLink,children:e.jsx("img",{src:"https://assets.floot.app/4dfdca08-6d19-4bac-80fe-26cc9ad7f9be/6bb36044-d62f-4da1-8644-6bfb7bc89fc9.png",alt:"Horizon CRM",className:s.logoImage})}),e.jsx("h2",{className:s.title,children:a?"Nouveau mot de passe":"Mot de passe oublié ?"}),e.jsx("p",{className:s.subtitle,children:a?"Veuillez choisir un mot de passe sécurisé pour votre compte.":"Entrez votre adresse courriel pour recevoir un lien de réinitialisation."})]}),e.jsxs("main",{children:[a?e.jsx(P,{...i,children:e.jsxs("form",{onSubmit:i.handleSubmit(S),className:s.form,children:[e.jsxs(j,{name:"password",children:[e.jsx(_,{children:"Nouveau mot de passe"}),e.jsx(f,{children:e.jsx(C,{placeholder:"â¢â¢â¢â¢â¢â¢â¢â¢",value:i.values.password,onChange:o=>i.setValues(u=>({...u,password:o.target.value}))})}),e.jsx(E,{children:e.jsxs("span",{className:s.hint,children:[e.jsx(z,{size:14})," Minimum 8 caractères"]})}),e.jsx(b,{})]}),e.jsxs(j,{name:"confirmPassword",children:[e.jsx(_,{children:"Confirmer le mot de passe"}),e.jsx(f,{children:e.jsx(C,{placeholder:"â¢â¢â¢â¢â¢â¢â¢â¢",value:i.values.confirmPassword,onChange:o=>i.setValues(u=>({...u,confirmPassword:o.target.value}))})}),e.jsx(b,{})]}),e.jsx(v,{type:"submit",variant:"primary",className:s.submitButton,disabled:x.isPending,children:x.isPending?"Mise à jour...":"Réinitialiser le mot de passe"})]})}):e.jsx(P,{...m,children:e.jsxs("form",{onSubmit:m.handleSubmit(k),className:s.form,children:[e.jsxs(j,{name:"email",children:[e.jsx(_,{children:"Adresse courriel"}
1),e.jsx(f,{children:e.jsx(M,{type:"email",placeholder:"[email protected]",value:m.values.email,onChange:o=>m.setValues(u=>({...u,email:o.target.value}))})}),e.jsx(b,{})]}),e.jsx(v,{type:"submit",variant:"primary",className:s.submitButton,disabled:n.isPending,children:n.isPending?"Envoi...":"Envoyer le lien"})]})}),e.jsx("div",{className:s.footer,children:e.jsxs(g,{to:"/login",className:s.backLink,children:[e.jsx(R,{size:16})," Retour à la connexion"]})})]})]})]})]})};export{de 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.