@@ -26,75 +26,94 @@ templ New(data NewPageData) {
2626 </div >
2727
2828 <div class =" flex flex-col gap-2" >
29- <h1 class =" text-center text-3xl font-bold" >
29+ <h1 class =" text-center text-3xl font-bold antialiased " >
3030 { templates.T (ctx, " sign_in_title" ) }
3131 </h1 >
3232 </div >
3333
3434 @ components.FormErrors (data.FormErrors )
3535
36- <form method =" POST" action =" /sign_in" class =" grid gap-6" >
36+ <form
37+ action =" /sign_in"
38+ class =" form grid gap-6"
39+ data-on:submit __passive=" $isSubmitting = true"
40+ method =" POST"
41+ >
3742 <input type =" hidden" name =" csrf_token" value ={ data.CSRFToken }/>
3843
3944 <div class =" grid gap-2" >
4045 <label for =" email" >
4146 { templates.T (ctx, " label_email" ) }
4247 </label >
48+
4349 <input
4450 if data.FormErrors != nil && data.FormErrors .Fields [" email" ] != nil {
4551 aria-invalid =" true"
4652 } else {
4753 aria-invalid =" false"
4854 }
49- type =" email"
55+ autocomplete =" email"
56+ autofocus
5057 id =" email"
5158 name =" email"
52- autocomplete =" username"
53- autofocus
5459 required
5560 tabindex =" 1"
61+ type =" email"
5662 value ={ data.Email }
5763 />
64+
5865 if data.FormErrors != nil && data.FormErrors .Fields [" email" ] != nil {
5966 for _ , errorMsg := range data.FormErrors .Fields [" email" ] {
60- <p class =" text-sm text-red-600" >{ errorMsg }</p >
67+ <p class =" text-sm text-red-600" >
68+ { errorMsg }
69+ </p >
6170 }
6271 }
6372 </div >
6473
6574 <div class =" grid gap-2" >
66- <div class =" flex items-center justify-between " >
75+ <div class =" flex items-center gap-2 " >
6776 <label for =" password" >
6877 { templates.T (ctx, " label_password" ) }
6978 </label >
70- <a class =" link text-sm" href =" /password_reset" tabindex =" 4" >
79+
80+ <a class =" link text-sm ml-auto" href =" /password_reset" tabindex =" 4" >
7181 { templates.T (ctx, " password_reset_title" ) }
7282 </a >
7383 </div >
84+
7485 <input
7586 if data.FormErrors != nil && data.FormErrors .Fields [" password" ] != nil {
7687 aria-invalid =" true"
7788 } else {
7889 aria-invalid =" false"
7990 }
80- type = " password"
91+ autocomplete = " current- password"
8192 id =" password"
8293 name =" password"
83- autocomplete =" current-password"
8494 required
8595 tabindex =" 2"
96+ type =" password"
8697 />
98+
8799 if data.FormErrors != nil && data.FormErrors .Fields [" password" ] != nil {
88100 for _ , errorMsg := range data.FormErrors .Fields [" password" ] {
89- <p class =" text-sm text-red-600" >{ errorMsg }</p >
101+ <p class =" text-sm text-red-600" >
102+ { errorMsg }
103+ </p >
90104 }
91105 }
92106 </div >
93107
94108 @ components.Turnstile (data.TurnstileSiteKey )
95109
96- <button class =" btn rounded-full w-fit" tabindex =" 3" type =" submit" >
97- @ templates.Icon (" sign-in" )
110+ <button
111+ class =" btn rounded-full w-fit text-black"
112+ tabindex =" 3"
113+ type =" submit"
114+ data-attr:disabled =" $isSubmitting == true"
115+ >
116+ @ templates.Icon (" arrow-right" )
98117 { templates.T (ctx, " btn_sign_in" ) }
99118 </button >
100119 </form >
0 commit comments