1import{_ as w,u as z,f as j,r,m as E,c as a,o as n,a as t,b as s,k as S,p as c,t as f,z as B,A as M,B as N,C as V,F as g,d as p,w as x,e as q,j as C}from"./BEWl3Bsh.js";const I={id:"main-forgot",class:"container py-4 py-md-5 lun-auth-page",tabindex:"-1"},L={class:"row justify-content-center gx-3","aria-label":"Réinitialisation du mot de passe"},T={class:"col-12 col-md-10 col-lg-6 col-xl-5"},D={class:"card border-0 shadow-sm rounded-4 overflow-hidden lun-auth-card bg-body"},F={class:"p-4 border-bottom border-secondary border-opacity-25"},R={class:"d-flex align-items-center gap-2 mb-2"},$={class:"p-4"},A={key:0,class:"alert alert-success d-flex align-items-start gap-2",role:"status"},H={key:1,class:"alert alert-danger d-flex align-items-start gap-2",role:"alert"},O={class:"lun-form-field"},P={key:0,class:"invalid-feedback",role:"alert"},U={class:"lun-form-actions"},Y=["disabled"],G={class:"d-grid gap-2"},J={class:"p-3 border-top border-secondary border-opacity-25 d-flex justify-content-between align-items-center small bg-transparent"},K={class:"text-muted"},Q={__name:"index",setup(W){z({title:"Mot de passe oublié"}),j({description:"Réinitialiser ton mot de passe Lunungu en recevant un lien sécurisé par email.",robots:"noindex, nofollow"});const l=r(""),i=r(!1),d=r(!1),v=r(!1),u=r(""),_=new Date().getFullYear(),m=E(()=>i.value?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(l.value)?"":"Email invalide.":"");async function h(){if(i.value=!0,u.value="",!m.value)try{d.value=!0,await $fetch("/auth/password-resets",{method:"POST",body:{email:l.value}}),v.value=!0}catch{u.value="Impossible dâenvoyer le lien pour le moment."}finally{d.value=!1}}return(k,e)=>{const o=S,b=q;return n(),a("main",I,[t("section",L,[t("div",T,[t("div",D,[t("header",F,[t("div",R,[s(o,{name:"ph:key",size:"28",class:"text-secondary","aria-hidden":"true"}),e[2]||(e[2]=t("span",{class:"text-uppercase small fw-semibold text-secondary",style:{"letter-spacing":".08em"}}," Lunungu ",-1))]),e[3]||(e[3]=t("h1",{class:"h4 mb-2"},"Mot de passe oublié",-1)),e[4]||(e[4]=t("p",{class:"text-muted small mb-0"}," Indique ton email : nous tâenvoyons un lien pour choisir un nouveau mot de passe. ",-1))]),t("div",$,[v.value?(n(),a("div",A,[s(o,{name:"ph:check-circle",size:"22",class:"flex-shrink-0 mt-1","aria-hidden":"true"}),e[5]||(e[5]=t("span",null,"Si un compte existe pour cette adresse, un email avec le lien vient dâêtre envoyé.",-1))])):c("",!0),u.value?(n(),a("div",H,[s(o,{name:"ph:warning-circle",size:"22",class:"flex-shrink-0 mt-1","aria-hidden":"true"}),t("span",null,f(u.value),1)])):c("",!0),v.value?c("",!0):(n(),a("form",{key:2,class:"lun-form",novalidate:"",onSubmit:B(h,["prevent"])},[t("div",O,[e[6]||(e[6]=t("label",{class:"form-label",for:"forgot-email"},"Email",-1)),M(t("input",{id:"forgot-email","onUpdate:modelValue":e[0]||(e[0]=y=>l.value=y),type:"email",inputmode:"email",autocomplete:"email",required:"",maxlength:"120",class:V(["form-control",{"is-invalid":i.value&&m.value}]),placeholder:"[email protected]","aria-describedby":"forgot-email-hint",onBlur:e[1]||(e[1]=y=>i.value=!0)},null,34),[[N,l.value,void 0,{trim:!0}]]),e[7]||(e[7]=t("p",{id:"forgot-email-hint",class:"form-text mb-0"}," Tu recevras un lien valable quelques minutes. ",-1)),i.value&&m.value?(n(),a("div",P,f(m.value),1)):c("",!0)]),t("div",U,[t("button",{class:"btn btn-primary fw-semibold d-inline-flex align-items-center justify-content-center gap-2",type:"submit",disabled:d.value||!l.value},[d.value?(n(),a(g,{key:1},[e[9]||(e[9]=t("span",{class:"spinner-border spinner-border-sm",role:"status","aria-hidden":"true"},null,-1)),e[10]||(e[10]=p(" Envoi⦠",-1))],64)):(n(),a(g,{key:0},[s(o,{name:"ph:paper-plane-tilt",size:"20","aria-hidden":"true"}),e[8]||(e[8]=p(" Envoyer le lien ",-1))],64))],8,Y)])],32)),e[13]||(e[13]=t("hr",{class:"my-4 border-secondary border-opacity-25"},null,-1)),t("div",G,[s(b,{class:"btn btn-outline-secondary d-inline-flex align-items-center justify-content-center gap-2",to:"/login"},{default:x(()=>[s(o,{name:"ph:arrow-left",size:"18","aria-hidden":"true"}),e[11]||(e[11]=p(" Retour à la connexion ",-1))]),_:1}),s(b,{class:"btn btn-outline-secondary d-inline-flex align-items-center justify-content-center gap-2",to:"/"},{default:x(()=>[s(o,{name:"ph:house",size:"18","aria-hidden":"true"}),e[12]||(e[12]=p(" Accueil ",-1))]),_:1})])]),t("footer",J,[t("div",K,"© "+f(C(_))+" Lunungu",1)])])])])])}}},Z=w(Q,[["__scopeId","data-v-31b02791"]]);export{Z 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.