1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6716],{87924:function(e,t,r){Promise.resolve().then(r.bind(r,94191))},94191:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return y}});var a=r(57437),n=r(12381),s=r(40279),l=r(20072),i=r(12944),o=r(83011),c=r(44275),u=r(27648),d=r(99376),f=r(2265),m=r(56212),p=r(7261);let x=e=>{let{length:t=6,onComplete:r,onResend:l,error:i,isLoading:o=!1,expirySeconds:c=300}=e,[u,d]=(0,f.useState)(Array(t).fill("")),[m,p]=(0,f.useState)(c),x=(0,f.useRef)([]),[h,g]=(0,f.useState)(!1);(0,f.useEffect)(()=>{if(m<=0)return;let e=setInterval(()=>{p(e=>Math.max(0,e-1))},1e3);return()=>clearInterval(e)},[m]),(0,f.useEffect)(()=>{let e=u.join("");e.length!==t||o||h||(g(!0),r(e))},[u,t,r,o,h]);let v=(e,r)=>{var a,n;if(r&&!/^\d+$/.test(r))return;let s=[...u];if(r.length>1){let n=r.slice(0,t);for(let r=0;r<n.length;r++)e+r<t&&(s[e+r]=n[r]);g(!1),d(s);let l=s.findIndex(e=>!e),i=-1===l?t-1:l;null===(a=x.current[i])||void 0===a||a.focus();return}s[e]=r,d(s),g(!1),r&&e<t-1&&(null===(n=x.current[e+1])||void 0===n||n.focus())},b=(e,r)=>{var a,n,s;if("Backspace"===r.key){r.preventDefault();let t=[...u];u[e]?(t[e]="",d(t),g(!1)):e>0&&(t[e-1]="",d(t),g(!1),null===(a=x.current[e-1])||void 0===a||a.focus())}else"ArrowLeft"===r.key&&e>0?null===(n=x.current[e-1])||void 0===n||n.focus():"ArrowRight"===r.key&&e<t-1&&(null===(s=x.current[e+1])||void 0===s||s.focus())},y=e=>{var r;e.preventDefault();let a=e.clipboardData.getData("text").trim();if(!/^\d+$/.test(a))return;let n=[...u];for(let e=0;e<Math.min(a.length,t);e++)n[e]=a[e];g(!1),d(n),null===(r=x.current[Math.min(a.length,t)-1])||void 0===r||r.focus()},j=m<=0;return(0,a.jsxs)("div",{className:"flex w-full flex-col gap-4",children:[(0,a.jsx)("div",{className:"text-center",children:(0,a.jsx)("p",{className:"typo-body2 text-gray-600",children:"Inserisci il codice di 6 cifre che abbiamo inviato alla tua email"})}),(0,a.jsx)("div",{className:"flex justify-center gap-2",children:u.map((e,t)=>(0,a.jsx)(s.I,{ref:e=>{x.current[t]=e},type:"text",inputMode:"numeric",maxLength:1,value:e,onChange:e=>v(t,e),onKeyDown:e=>b(t,e),onPaste:y,disabled:o||j,className:"h-14 w-12 text-center text-xl font-bold",autoFocus:0===t},t))}),(0,a.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[i&&(0,a.jsx)("p",{className:"text-sm text-red-600",children:i}),j?(0,a.jsx)("p",{className:"text-sm text-red-600",children:"Il codice \xe8 scaduto"}):(0,a.jsxs)("p",{className:"text-sm text-gray-600",children:["Codice valido per:"," ",(0,a.jsx)("span",{className:"font-semibold ".concat(m<60?"text-red-600":"text-primaryDBlue"),children:"".concat(Math.floor(m/60),":").concat((m%60).toString().padStart(2,"0"))})]})]}),(0,a.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,a.jsx)("p",{className:"text-sm text-gray-600",children:"Non hai ricevuto il codice?"}),(0,a.jsx)(n.z,{variant:"ghost",onClick:()=>{var e;d(Array(t).fill("")),p(c),g(!1),null===(e=x.current[0])||void 0===e||e.focus(),l()},disabled:o||!j&&m>240,children:o?"Invio in corso...":"Richiedi nuovo codice"}),!j&&m>240&&(0,a.jsxs)("p",{className:"text-xs text-gray-500",children:["Disponibile tra ",Math.ceil((m-240)/60)," minuto/i"]})]})]})},h=()=>{let[,e]=(0,m.Z)(["jwt"]),t=(0,d.useRouter)(),r=(0,d.useSearchParams)(),{t:h}=(0,i.QT)(),[g,v]=(0,f.useState)("credentials"),[b,y]=(0,f.useState)(!1),[j,N]=(0,f.useState)(),[w,k]=(0,f.useState)(),[I,S]=(0,f.useState)(),D=(0,c.c)({initialValues:{email:"",password:""},validate:{email:e=>e&&0!==e.trim().length?(0,o.v)(e)?null:h("login.emailInvalid"):h("login.emailRequired"),password:e=>e&&0!==e.trim().length?null:h("login.passwordRequired")},validateInputOnBlur:!1,validateInputOnChange:!1});function z(a){e("jwt",a,{path:"/",secure:!0,sameSite:"none"}),p.toast.success(h("login.success"));let n=r.get("desiredPath");t.replace(n||"/dashboard")}async function C(e){y(!0),N(void 0),S(void 0),k(void 0);try{let r=await fetch("".concat("https://backend.forimpact.ai","/login"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e.email,password:e.password})}),a=await r.json();if(!r.ok){p.toast.error(a.message||h("login.error"));return}if(a.jwt||a.token){var t;z(null!==(t=a.jwt)&&void 0!==t?t:a.token);return}if(a.requiresOtp){v("otp"),k(a.expiresIn),S(a.message),p.toast.success(a.message||h("login.otpSent"));return}p.toast.error(a.message||h("login.unexpectedResponse"))}catch(e){console.error("Errore login:",e),p.toast.error(h("login.connectionError"))}finally{y(!1)}}async function M(e){y(!0),N(void 0);try{let r=await fetch("".concat("https://backend.forimpact.ai","/auth/verify-otp"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:D.values.email,otp:e})}),a=await r.json();if(!r.ok){N(a.message||h("login.otpInvalid"));return}if(a.jwt||a.token){var t;z(null!==(t=a.jwt)&&void 0!==t?t:a.token)}else p.toast.error(h("login.error"))}catch(e){console.error("Errore verifica OTP:",e),N(h("login.connectionError"))}finally{y(!1)}}return"otp"===g?(0,a.jsxs)("div",{className:"flex w-full flex-col gap-6",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)("h3",{className:"typo-h3 text-center text-primaryDBlue",children:h("login.otpTitle")}),(0,a.jsxs)("p",{className:"text-center text-sm text-gray-600",children:[h("login.otpSentTo")," ",(0,a.jsx)("strong",{children:D.values.email})]})]}),(0,a.jsx)(x,{onComplete:M,onResend:function(){N(void 0),C(D.values)},error:j,isLoading:b,expirySeconds:null!=w?w:300}),I&&(0,a.jsx)("p",{className:"text-center text-sm text-gray-600",children:I}),(0,a.jsx)(n.z,{variant:"ghost",onClick:function(){v("credentials"),N(void 0),S(void 0),k(void 0)},disabled:b,children:h("login.back")})]}):(0,a.jsxs)("form",{onSubmit:D.onSubmit(function(e){C(e)}),className:"flex w-full flex-col gap-4",children:[(0,a.jsx)(s.I,{label:h("login.emailLabel"),type:"email",placeholder:h("login.emailPlaceholder"),...D.getInputProps("email")}),(0,a.jsx)(l.Z,{label:h("login.passwordLabel"),...D.getInputProps("password")}),(0,a.jsx)("div",{className:"flex w-full items-center justify-end",children:(0,a.jsx)(u.default,{href:"/auth/recoverPassword",className:(0,n.d)({variant:"ghost"}),children:h("login.forgotPassword")})}),(0,a.jsx)(n.z,{type:"submit",disabled:b,children:b?h("login.submitting"):h("login.submit")})]})};var g=r(33145);let v=()=>(0,a.jsx)("div",{className:"relative flex size-full w-1/2",children:(0,a.jsx)(g.default,{src:"https://forimpact.s3.eu-west-1.amazonaws.com/login_image.png",title:"ForImpact.AI",fill:!0,alt:"ForImpact.AI",className:"object-cover"})});var b=r(32021);function y(){let{t:e}=(0,i.QT)();return(0,a.jsxs)("div",{className:"flex h-full",children:[(0,a.jsxs)("div",{className:"flex size-full flex-1 flex-col justify-between gap-4 overflow-hidden pb-4",children:[(0,a.jsx)("div",{}),(0,a.jsxs)("div",{className:"flex max-w-[50%] flex-col gap-10 self-center",children:[(0,a.jsx)("h4",{className:"typo-h4 text-black",style:{whiteSpace:"pre-wrap"},children:e("login.intro")}),(0,a.jsx)("h2",{className:"typo-h2 font-primary text-primaryDBlue",children:e("login.title")}),(0,a.jsx)(f.Suspense,{fallback:(0,a.jsx)("div",{children:e("login.loading")}),children:(0,a.jsx)(h,{})})]}),(0,a.jsx)("div",{className:"flex justify-center",children:(0,a.jsx)(b.Z,{})})]}),(0,a.jsx)(v,{})]})}},32021:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});var a=r(57437);function n(){return(0,a.jsxs)("p",{className:"typo-fields2 bg-transparent font-primary text-neutralLGray",children:["for",(0,a.jsx)("b",{children:"Impact"})," platform by super",(0,a.jsx)("b",{children:"Urbanity"})]})}},12381:function(e,t,r){"use strict";r.d(t,{d:function(){return c},z:function(){return u}});var a=r(57437),n=r(93448),s=r(37053),l=r(90535),i=r(51817),o=r(2265);let c=(0,l.j)("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-transparent transition-colors focus-visible:border-neutralLGray focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-transparent focus-visible:ring-offset-0 disabled:pointer-events-none disabled:opacity-50 dark:ring-offset-transparent dark:focus-visible:ring-transparent",{variants:{variant:{default:"bg-primaryDBlue text-neutralWhite hover:bg-primaryDBlue/90 dark:bg-neutralWhite dark:text-primaryDBlue dark:hover:bg-neutralWhite/90",destructive:"bg-red-500 text-slate-50 hover:bg-red-500/90 dark:bg-red-900 dark:text-slate-50 dark:hover:bg-red-900/90",outline:"border border-neutralGrayBlue bg-white hover:bg-slate-100 hover:text-slate-900 dark:border-slate-800 dark:bg-slate-950 dar
1k:hover:bg-slate-800 dark:hover:text-slate-50",secondary:"bg-slate-100 text-slate-900 hover:bg-slate-100/80 dark:bg-slate-800 dark:text-slate-50 dark:hover:bg-slate-800/80",ghost:"text-primaryMBlue hover:bg-slate-100 hover:text-primaryMBlue dark:hover:bg-slate-800 dark:hover:text-neutralWhite",link:"text-slate-900 underline-offset-4 hover:underline dark:text-slate-50"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"size-9"}},defaultVariants:{variant:"default",size:"sm"}}),u=o.forwardRef((e,t)=>{let{children:r,className:l,icon:o,iconPosition:u="left",loading:d=!1,variant:f,size:m,asChild:p=!1,...x}=e,h=p?s.g7:"button";return(0,a.jsxs)(h,{className:(0,n.cn)(c({variant:f,size:m,className:l})),ref:t,...x,children:[d&&(!o||"left"===u)?(0,a.jsx)(i.Z,{className:r?"mr-2 size-4 animate-spin":"size-4 animate-spin"}):!!o&&"left"===u&&(0,a.jsx)(o,{className:r?"mr-2 size-4":"size-4"}),r&&"string"==typeof r?(0,a.jsx)("span",{className:"typo-buttonM",children:r}):r,d&&o&&"right"===u?(0,a.jsx)(i.Z,{className:r?"ml-2 size-4 animate-spin":"size-4 animate-spin"}):!!o&&"right"===u&&(0,a.jsx)(o,{className:r?"ml-2 size-4":"size-4"})]})});u.displayName="Button"},40279:function(e,t,r){"use strict";r.d(t,{I:function(){return o}});var a=r(57437),n=r(93448),s=r(2265),l=r(1560),i=r(75060);let o=s.forwardRef((e,t)=>{let{caption:r,className:o,end:c,error:u,id:d,label:f,onChange:m,start:p,type:x,isPercentage:h,suffix:g,...v}=e,b=s.useId(),y=null!=d?d:b,j=s.useCallback(e=>null==m?void 0:m(e.target.value),[m]),N=s.useMemo(()=>c?"string"==typeof c?(0,a.jsx)("span",{className:"absolute right-2 top-1/2 -translate-y-1/2 text-sm text-neutralDGray dark:text-neutralLGray",children:c}):(0,a.jsx)("div",{className:"absolute right-1 top-1/2 -translate-y-1/2",children:c}):void 0,[c]),w=s.useMemo(()=>p?"string"==typeof p?(0,a.jsx)("span",{className:"absolute left-2 top-1/2 -translate-y-1/2 text-sm text-neutralDGray dark:text-neutralLGray",children:p}):(0,a.jsx)("div",{className:"absolute left-1 top-1/2 -translate-y-1/2",children:p}):void 0,[p]),k=s.useMemo(()=>(0,n.cn)("flex h-9 w-full rounded-md border border-neutralGrayBlue bg-white px-3 py-2 text-sm r
1ing-offset-white file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-slate-500 focus-visible:border-neutralLGray focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-transparent focus-visible:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50 dark:border-slate-800 dark:bg-slate-950 dark:ring-offset-slate-950 dark:placeholder:text-slate-400 dark:focus-visible:ring-transparent",N?"pr-10 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none":"",w?"pl-10":"",o),[o,N,w]);return(0,a.jsxs)("div",{className:"grid w-full items-center gap-1.5",children:[!!f&&(0,a.jsx)(i._,{htmlFor:y,children:f}),(0,a.jsxs)("div",{className:"relative",children:["number"===x?(0,a.jsx)(l.h3,{...v,className:k,decimalSeparator:",",defaultValue:"string"==typeof v.defaultValue||"number"==typeof v.defaultValue?v.defaultValue:"",getInputRef:t,id:y,onValueChange:e=>null==m?void 0:m(e.value),thousandSeparator:".",suffix:" ".concat(null!=g?g:""),isAllowed:e=>{let{floatValue:t}=e;return!h||void 0===t||t<=100}}):(0,a.jsx)("input",{...v,className:k,id:y,onChange:m?j:void 0,ref:t,type:x}),N,w]}),r&&(0,a.jsx)("span",{className:"text-xs text-neutralDGray dark:text-neutralLGray",children:r}),u&&(0,a.jsx)("span",{className:"text-xs text-dangerMRed",children:u})]})});o.displayName="Input"},75060:function(e,t,r){"use strict";r.d(t,{_:function(){return c}});var a=r(57437),n=r(93448),s=r(370),l=r(90535),i=r(2265);let o=(0,l.j)("text-sm font-medium leading-none text-primaryDBlue peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),c=i.forwardRef((e,t)=>{let{className:r,...l}=e;return(0,a.jsx)(s.f,{ref:t,className:(0,n.cn)(o(),r),...l})});c.displayName=s.f.displayName},20072:function(e,t,r){"use strict";r.d(t,{Z:function(){return c}});var a=r(57437),n=r(42208),s=r(87769),l=r(2265),i=r(12381),o=r(40279);function c(e){let[t,r]=(0,l.useState)(!1);return(0,a.jsx)(o.I,{...e,type:t?"text":"password",end:(0,l.useMemo)(()=>(0,a.jsx)(i.z,{"aria-label":t?"Nascondi":"Mostra",icon:t?n.Z:s.Z,onClick:e=>{e.preventDefault(),e.stopPropagation(),r(e=>!e)},tabIndex:-1,variant:"ghost",size:"icon"}),[t])})}},93448:function(e,t,r){"use strict";r.d(t,{D:function(){return i},H1:function(){return o},HN:function(){return l},cn:function(){return s},p6:function(){return c}});var a=r(61994),n=r(53335);function s(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,n.m6)((0,a.W)(t))}function l(e){let t=Number(e);return Number.isFinite(t)?new Intl.NumberFormat("it-IT",{maximumFractionDigits:0}).format(t):e}function i(e){let t=Number(e);return Number.isFinite(t)?new Intl.NumberFormat("it-IT",{notation:"compact",compactDisplay:"long",maximumFractionDigits:1}).format(t):e.toString()}function o(e){if(e.length<=4)return e;let t=[...e].sort((e,t)=>t.value-e.value);return[...t.slice(0,3),{value:t.slice(3).reduce((e,t)=>e+t.value,0),label:"Others"}]}function c(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toLocaleDateString("it-IT",{day:"2-digit",month:"long",year:"numeric"}).replace(/\b\w/g,e=>e.toUpperCase())}r(40257)},83011:function(e,t,r){"use strict";r.d(t,{v:function(){return a}});let a=e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}},function(e){e.O(0,[6990,7261,6814,5878,3580,233,4275,5166,7648,1778,2944,2971,2117,1744],function(){return e(e.s=87924)}),_N_E=e.O()}]);
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.