PageSourceSearch

https://www.vaughnlabs.io/assets/ForgotPassword-CdLkW3C3.js

js vaughnlabs.io collected 2026-10-02 00:22:43 UTC 3,239 bytes, 1 lines download raw bytes

1import{r,j as e}from"./vendor-react-R5BkkrFZ.js";import{L as m}from"./vendor-router-CgSJtm-X.js";import{supabase as x}from"./client-CecpOyqn.js";import{B as p}from"./Logo-DYNgcaqb.js";import{I as f}from"./input-BLvixqeV.js";import{L as h}from"./label-BcqlBcTI.js";import{L as g}from"./Layout-CEjWkSUf.js";import{S as j}from"./SeoHead-DGCzztau.js";import{u as y}from"./use-toast-Z7QdQEB_.js";import{p as N,ad as w,q as b,u as v}from"./vendor-ui-Cx5fBjSp.js";import"./vendor-supabase-CQ9eTX7v.js";import"./index-CFswJBa3.js";import"./vendor-query-Cdexl548.js";const V=()=>{const[t,l]=r.useState(""),[a,o]=r.useState(!1),[d,n]=r.useState(!1),{toast:c}=y(),u=async s=>{s.preventDefault(),o(!0);const{error:i}=await x.functions.invoke("send-password-reset",{body:{email:t,redirect_to:`${window.location.origin}/reset-password`}});if(o(!1),i){c({title:"Error",description:i.message,variant:"destructive"});return}n(!0)};return e.jsxs(g,{children:[e.jsx(j,{title:"Forgot Password | Vaughn Labs",description:"Reset the password for your Vaughn Labs account.",noindex:!0}),e.jsx("section",{className:"container mx-auto px-5 py-20 sm:py-28 md:px-8",children:e.jsx("div",{className:"max-w-md mx-auto",children:d?e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 mb-4",children:e.jsx(N,{size:32,className:"text-primary"})}),e.jsx("h1",{className:"font-display text-3xl font-bold text-foreground",children:"Check Your Email"}),e.jsxs("p",{className:"mt-3 text-muted-foreground",children:["If an account exists for ",e.jsx("span",{className:"text-foreground font-medium",children:t}),", we've sent a password reset link. Click the link in the email to set a new password."]}),e.jsxs("p",{className:"mt-2 text-sm text-muted-foreground",children:["Didn't get it? Check your spam folder, or"," ",e.jsx("button",{type:"button",onClick:()=>n(!1),className:"text-primary hover:underline font-medium",children:"try again"}),"."]}),e.jsxs(m,{to:"/login",className:"mt-8 inline-flex items-center text-sm text-muted-foreground hover:text-foreground",children:[e.jsx(w,{size:16,className:"mr-1.5"})," Back to Sign In"]})]}):e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"font-display text-3xl font-bold text-foreground text-center",children:"Forgot Password?"}),e.jsx("p",{className:"mt-2 text-center text-muted-foreground",children:"Enter your email and we'll send you a link to reset your password."}),e.jsxs("form",{onSubmit:u,className:"mt-8 space-y-4",children:[e.jsxs("div",{children:[e.jsx(h,{htmlFor:"email",children:"Email"}),e.jsx(f,{id:"email",type:"email",required:!0,value:t,onChange:s=>l(s.target.value),placeholder:"[email protected]"})]}),e.jsx(p,{variant:"hero",size:"lg",type:"submit",className:"w-full",disabled:a,children:a?e.jsxs(e.Fragment,{children:[e.jsx(b,{className:"animate-spin mr-2",size:18})," Sending..."]}):e.jsxs(e.Fragment,{children:[e.jsx(v,{size:18,className:"mr-2"})," Send Reset Link"]})})]}),e.jsxs("p",{className:"mt-6 text-center text-sm text-muted-foreground",children:["Remembered it?"," ",e.jsx(m,{to:"/login",className:"text-primary hover:underline font-medium",children:"Sign In"})]})]})})})]})};export{V 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.