detached 4fc291e

feat(web): move the inbox button of the home page next to the logo, with a mailbox icon and a darker count badge

commit
4fc291e7aec41ccf4f7b95936bd72ed5a7b060da
author
brice · · 2026-10-19 15:37 UTC
parent
5f6d2c6
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
9 files · +545 -539
M internal/adapters/web/home.go +2 -3
@@ -121,11 +121,10 @@ func (s *Server) home(ctx context.Context, r *http.Request) (templ.Component, in
121121 p.Sorts = append(p.Sorts, sl)
122122 }
123123 p.Rows = s.homeRows(ctx, repos, now)
124+ l := s.base()
124125 if n, show := s.inboxCount(ctx); show {
125- p.Inbox = &InboxButton{Href: inboxPath, Count: n}
126+ l.Inbox = &InboxButton{Href: inboxPath, Count: n}
126127 }
127-
128- l := s.base()
129128 l.Title = s.instance
130129 l.Live, l.LiveURL = true, liveURL("home", "")
131130 l.Cmd = append([]CmdItem{{Kind: "go", Label: "home", Href: "/"}}, repoCmds(repos, "")...)
@@ -121,11 +121,10 @@ func (s *Server) home(ctx context.Context, r *http.Request) (templ.Component, in
121 p.Sorts = append(p.Sorts, sl)121 p.Sorts = append(p.Sorts, sl)
122 }122 }
123 p.Rows = s.homeRows(ctx, repos, now)123 p.Rows = s.homeRows(ctx, repos, now)
124+ l := s.base()
124 if n, show := s.inboxCount(ctx); show {125 if n, show := s.inboxCount(ctx); show {
125- p.Inbox = &InboxButton{Href: inboxPath, Count: n}126+ l.Inbox = &InboxButton{Href: inboxPath, Count: n}
126 }127 }
127-
128- l := s.base()
129 l.Title = s.instance128 l.Title = s.instance
130 l.Live, l.LiveURL = true, liveURL("home", "")129 l.Live, l.LiveURL = true, liveURL("home", "")
131 l.Cmd = append([]CmdItem{{Kind: "go", Label: "home", Href: "/"}}, repoCmds(repos, "")...)130 l.Cmd = append([]CmdItem{{Kind: "go", Label: "home", Href: "/"}}, repoCmds(repos, "")...)
M internal/adapters/web/pages.templ +0 -8
@@ -9,14 +9,6 @@ templ Home(l Layout, p HomePage) {
99 <div class="home" data-layout="cards">
1010 <section class="home-repos" aria-label="Repositories">
1111 <div class="home-bar">
12- if p.Inbox != nil {
13- <a class="btn inbox-btn" href={ templ.SafeURL(p.Inbox.Href) } title="inbox">
14- Inbox
15- if p.Inbox.Count >= 0 {
16- <span class="count">{ itoa(p.Inbox.Count) }</span>
17- }
18- </a>
19- }
2012 <div class="filter">
2113 <label for="home-filter" class="sr">filter</label>
2214 <input
@@ -9,14 +9,6 @@ templ Home(l Layout, p HomePage) {
9 <div class="home" data-layout="cards">9 <div class="home" data-layout="cards">
10 <section class="home-repos" aria-label="Repositories">10 <section class="home-repos" aria-label="Repositories">
11 <div class="home-bar">11 <div class="home-bar">
12- if p.Inbox != nil {
13- <a class="btn inbox-btn" href={ templ.SafeURL(p.Inbox.Href) } title="inbox">
14- Inbox
15- if p.Inbox.Count >= 0 {
16- <span class="count">{ itoa(p.Inbox.Count) }</span>
17- }
18- </a>
19- }
20 <div class="filter">12 <div class="filter">
21 <label for="home-filter" class="sr">filter</label>13 <label for="home-filter" class="sr">filter</label>
22 <input14 <input
M internal/adapters/web/pages_templ.go +363 -409
@@ -44,135 +44,89 @@ func Home(l Layout, p HomePage) templ.Component {
4444 }()
4545 }
4646 ctx = templ.InitializeContext(ctx)
47- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<h1 class=\"sr\">Repositories</h1><div class=\"home\" data-layout=\"cards\"><section class=\"home-repos\" aria-label=\"Repositories\"><div class=\"home-bar\">")
47+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<h1 class=\"sr\">Repositories</h1><div class=\"home\" data-layout=\"cards\"><section class=\"home-repos\" aria-label=\"Repositories\"><div class=\"home-bar\"><div class=\"filter\"><label for=\"home-filter\" class=\"sr\">filter</label> <input id=\"home-filter\" type=\"search\" data-filter=\"#repo-rows > li\" placeholder=\"Filter repositories…\" autocomplete=\"off\" hx-on:input=\"ermite.filter(this)\"></div><nav class=\"sort\" aria-label=\"Sort repositories\"><span class=\"mute\">sort</span> ")
4848 if templ_7745c5c3_Err != nil {
4949 return templ_7745c5c3_Err
5050 }
51- if p.Inbox != nil {
52- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "<a class=\"btn inbox-btn\" href=\"")
51+ for _, s := range p.Sorts {
52+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "<a href=\"")
5353 if templ_7745c5c3_Err != nil {
5454 return templ_7745c5c3_Err
5555 }
5656 var templ_7745c5c3_Var3 templ.SafeURL
57- templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Inbox.Href))
57+ templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(s.Href))
5858 if templ_7745c5c3_Err != nil {
59- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 13, Col: 65}
59+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 27, Col: 36}
6060 }
6161 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
6262 if templ_7745c5c3_Err != nil {
6363 return templ_7745c5c3_Err
6464 }
65- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "\" title=\"inbox\">Inbox ")
66- if templ_7745c5c3_Err != nil {
67- return templ_7745c5c3_Err
68- }
69- if p.Inbox.Count >= 0 {
70- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "<span class=\"count\">")
71- if templ_7745c5c3_Err != nil {
72- return templ_7745c5c3_Err
73- }
74- var templ_7745c5c3_Var4 string
75- templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Inbox.Count))
76- if templ_7745c5c3_Err != nil {
77- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 16, Col: 49}
78- }
79- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
80- if templ_7745c5c3_Err != nil {
81- return templ_7745c5c3_Err
82- }
83- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "</span>")
84- if templ_7745c5c3_Err != nil {
85- return templ_7745c5c3_Err
86- }
87- }
88- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "</a>")
89- if templ_7745c5c3_Err != nil {
90- return templ_7745c5c3_Err
91- }
92- }
93- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "<div class=\"filter\"><label for=\"home-filter\" class=\"sr\">filter</label> <input id=\"home-filter\" type=\"search\" data-filter=\"#repo-rows > li\" placeholder=\"Filter repositories…\" autocomplete=\"off\" hx-on:input=\"ermite.filter(this)\"></div><nav class=\"sort\" aria-label=\"Sort repositories\"><span class=\"mute\">sort</span> ")
94- if templ_7745c5c3_Err != nil {
95- return templ_7745c5c3_Err
96- }
97- for _, s := range p.Sorts {
98- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "<a href=\"")
99- if templ_7745c5c3_Err != nil {
100- return templ_7745c5c3_Err
101- }
102- var templ_7745c5c3_Var5 templ.SafeURL
103- templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(s.Href))
104- if templ_7745c5c3_Err != nil {
105- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 35, Col: 36}
106- }
107- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
108- if templ_7745c5c3_Err != nil {
109- return templ_7745c5c3_Err
110- }
111- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "\"")
65+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "\"")
11266 if templ_7745c5c3_Err != nil {
11367 return templ_7745c5c3_Err
11468 }
11569 if s.Mark != "" {
116- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, " aria-current=\"true\"")
70+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, " aria-current=\"true\"")
11771 if templ_7745c5c3_Err != nil {
11872 return templ_7745c5c3_Err
11973 }
12074 }
121- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, ">")
75+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, ">")
12276 if templ_7745c5c3_Err != nil {
12377 return templ_7745c5c3_Err
12478 }
125- var templ_7745c5c3_Var6 string
126- templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(s.Label)
79+ var templ_7745c5c3_Var4 string
80+ templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(s.Label)
12781 if templ_7745c5c3_Err != nil {
128- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 40, Col: 17}
82+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 32, Col: 17}
12983 }
130- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
84+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
13185 if templ_7745c5c3_Err != nil {
13286 return templ_7745c5c3_Err
13387 }
134- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, " ")
88+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, " ")
13589 if templ_7745c5c3_Err != nil {
13690 return templ_7745c5c3_Err
13791 }
13892 if s.Mark != "" {
139- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "<span aria-hidden=\"true\">")
93+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "<span aria-hidden=\"true\">")
14094 if templ_7745c5c3_Err != nil {
14195 return templ_7745c5c3_Err
14296 }
143- var templ_7745c5c3_Var7 string
144- templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(s.Mark)
97+ var templ_7745c5c3_Var5 string
98+ templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(s.Mark)
14599 if templ_7745c5c3_Err != nil {
146- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 42, Col: 42}
100+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 34, Col: 42}
147101 }
148- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
102+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
149103 if templ_7745c5c3_Err != nil {
150104 return templ_7745c5c3_Err
151105 }
152- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "</span> <span class=\"sr\">")
106+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "</span> <span class=\"sr\">")
153107 if templ_7745c5c3_Err != nil {
154108 return templ_7745c5c3_Err
155109 }
156- var templ_7745c5c3_Var8 string
157- templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(", " + s.State)
110+ var templ_7745c5c3_Var6 string
111+ templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(", " + s.State)
158112 if templ_7745c5c3_Err != nil {
159- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 43, Col: 42}
113+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 35, Col: 42}
160114 }
161- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
115+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
162116 if templ_7745c5c3_Err != nil {
163117 return templ_7745c5c3_Err
164118 }
165- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "</span>")
119+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "</span>")
166120 if templ_7745c5c3_Err != nil {
167121 return templ_7745c5c3_Err
168122 }
169123 }
170- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "</a>")
124+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "</a>")
171125 if templ_7745c5c3_Err != nil {
172126 return templ_7745c5c3_Err
173127 }
174128 }
175- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "</nav><div class=\"layout-switch\" role=\"group\" aria-label=\"Layout\" data-js><button type=\"button\" class=\"btn icon\" data-set-layout=\"cards\" aria-pressed=\"true\" title=\"Cards\" aria-label=\"Cards\"><span class=\"ico i-cards\" aria-hidden=\"true\"></span></button> <button type=\"button\" class=\"btn icon\" data-set-layout=\"split\" aria-pressed=\"false\" title=\"Two columns\" aria-label=\"Two columns\"><span class=\"ico i-split\" aria-hidden=\"true\"></span></button> <button type=\"button\" class=\"btn icon\" data-set-layout=\"compact\" aria-pressed=\"false\" title=\"Compact list\" aria-label=\"Compact list\"><span class=\"ico i-compact\" aria-hidden=\"true\"></span></button></div></div><ul class=\"repos\" id=\"repo-rows\" data-rows>")
129+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "</nav><div class=\"layout-switch\" role=\"group\" aria-label=\"Layout\" data-js><button type=\"button\" class=\"btn icon\" data-set-layout=\"cards\" aria-pressed=\"true\" title=\"Cards\" aria-label=\"Cards\"><span class=\"ico i-cards\" aria-hidden=\"true\"></span></button> <button type=\"button\" class=\"btn icon\" data-set-layout=\"split\" aria-pressed=\"false\" title=\"Two columns\" aria-label=\"Two columns\"><span class=\"ico i-split\" aria-hidden=\"true\"></span></button> <button type=\"button\" class=\"btn icon\" data-set-layout=\"compact\" aria-pressed=\"false\" title=\"Compact list\" aria-label=\"Compact list\"><span class=\"ico i-compact\" aria-hidden=\"true\"></span></button></div></div><ul class=\"repos\" id=\"repo-rows\" data-rows>")
176130 if templ_7745c5c3_Err != nil {
177131 return templ_7745c5c3_Err
178132 }
@@ -182,17 +136,17 @@ func Home(l Layout, p HomePage) templ.Component {
182136 return templ_7745c5c3_Err
183137 }
184138 }
185- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "</ul>")
139+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "</ul>")
186140 if templ_7745c5c3_Err != nil {
187141 return templ_7745c5c3_Err
188142 }
189143 if len(p.Rows) == 0 {
190- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "<p class=\"lede dim\">no repositories yet.</p>")
144+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "<p class=\"lede dim\">no repositories yet.</p>")
191145 if templ_7745c5c3_Err != nil {
192146 return templ_7745c5c3_Err
193147 }
194148 }
195- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "</section></div>")
149+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "</section></div>")
196150 if templ_7745c5c3_Err != nil {
197151 return templ_7745c5c3_Err
198152 }
@@ -224,12 +178,12 @@ func Summary(l Layout, p SummaryPage) templ.Component {
224178 }()
225179 }
226180 ctx = templ.InitializeContext(ctx)
227- templ_7745c5c3_Var9 := templ.GetChildren(ctx)
228- if templ_7745c5c3_Var9 == nil {
229- templ_7745c5c3_Var9 = templ.NopComponent
181+ templ_7745c5c3_Var7 := templ.GetChildren(ctx)
182+ if templ_7745c5c3_Var7 == nil {
183+ templ_7745c5c3_Var7 = templ.NopComponent
230184 }
231185 ctx = templ.ClearChildren(ctx)
232- templ_7745c5c3_Var10 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
186+ templ_7745c5c3_Var8 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
233187 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
234188 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
235189 if !templ_7745c5c3_IsBuffer {
@@ -249,7 +203,7 @@ func Summary(l Layout, p SummaryPage) templ.Component {
249203 }
250204 return nil
251205 })
252- templ_7745c5c3_Err = Shell(l, summaryRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var10), templ_7745c5c3_Buffer)
206+ templ_7745c5c3_Err = Shell(l, summaryRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var8), templ_7745c5c3_Buffer)
253207 if templ_7745c5c3_Err != nil {
254208 return templ_7745c5c3_Err
255209 }
@@ -276,158 +230,158 @@ func latestTagFact(t LatestTag) templ.Component {
276230 }()
277231 }
278232 ctx = templ.InitializeContext(ctx)
279- templ_7745c5c3_Var11 := templ.GetChildren(ctx)
280- if templ_7745c5c3_Var11 == nil {
281- templ_7745c5c3_Var11 = templ.NopComponent
233+ templ_7745c5c3_Var9 := templ.GetChildren(ctx)
234+ if templ_7745c5c3_Var9 == nil {
235+ templ_7745c5c3_Var9 = templ.NopComponent
282236 }
283237 ctx = templ.ClearChildren(ctx)
284- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "<dt>latest tag</dt><dd class=\"latest-tag\">")
238+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "<dt>latest tag</dt><dd class=\"latest-tag\">")
285239 if templ_7745c5c3_Err != nil {
286240 return templ_7745c5c3_Err
287241 }
288242 if t.Name != "" {
289- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "<a class=\"tag-name\" href=\"")
243+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "<a class=\"tag-name\" href=\"")
290244 if templ_7745c5c3_Err != nil {
291245 return templ_7745c5c3_Err
292246 }
293- var templ_7745c5c3_Var12 templ.SafeURL
294- templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(t.Href))
247+ var templ_7745c5c3_Var10 templ.SafeURL
248+ templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(t.Href))
295249 if templ_7745c5c3_Err != nil {
296- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 90, Col: 51}
250+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 82, Col: 51}
297251 }
298- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
252+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
299253 if templ_7745c5c3_Err != nil {
300254 return templ_7745c5c3_Err
301255 }
302- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "\" title=\"")
256+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "\" title=\"")
303257 if templ_7745c5c3_Err != nil {
304258 return templ_7745c5c3_Err
305259 }
306- var templ_7745c5c3_Var13 string
307- templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.ResolveAttributeValue(t.Subject)
260+ var templ_7745c5c3_Var11 string
261+ templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.ResolveAttributeValue(t.Subject)
308262 if templ_7745c5c3_Err != nil {
309- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 90, Col: 71}
263+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 82, Col: 71}
310264 }
311- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var13)
265+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var11)
312266 if templ_7745c5c3_Err != nil {
313267 return templ_7745c5c3_Err
314268 }
315- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "\">")
269+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "\">")
316270 if templ_7745c5c3_Err != nil {
317271 return templ_7745c5c3_Err
318272 }
319- var templ_7745c5c3_Var14 string
320- templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(t.Name)
273+ var templ_7745c5c3_Var12 string
274+ templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(t.Name)
321275 if templ_7745c5c3_Err != nil {
322- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 90, Col: 82}
276+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 82, Col: 82}
323277 }
324- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
278+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
325279 if templ_7745c5c3_Err != nil {
326280 return templ_7745c5c3_Err
327281 }
328- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "</a> ")
282+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "</a> ")
329283 if templ_7745c5c3_Err != nil {
330284 return templ_7745c5c3_Err
331285 }
332286 if t.WhenAt != "" {
333- var templ_7745c5c3_Var15 string
334- templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
287+ var templ_7745c5c3_Var13 string
288+ templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
335289 if templ_7745c5c3_Err != nil {
336- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 92, Col: 12}
290+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 84, Col: 12}
337291 }
338- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
292+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
339293 if templ_7745c5c3_Err != nil {
340294 return templ_7745c5c3_Err
341295 }
342- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "<time datetime=\"")
296+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "<time datetime=\"")
343297 if templ_7745c5c3_Err != nil {
344298 return templ_7745c5c3_Err
345299 }
346- var templ_7745c5c3_Var16 string
347- templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.ResolveAttributeValue(t.WhenAt)
300+ var templ_7745c5c3_Var14 string
301+ templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.ResolveAttributeValue(t.WhenAt)
348302 if templ_7745c5c3_Err != nil {
349- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 92, Col: 39}
303+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 84, Col: 39}
350304 }
351- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var16)
305+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var14)
352306 if templ_7745c5c3_Err != nil {
353307 return templ_7745c5c3_Err
354308 }
355- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "\" title=\"")
309+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "\" title=\"")
356310 if templ_7745c5c3_Err != nil {
357311 return templ_7745c5c3_Err
358312 }
359- var templ_7745c5c3_Var17 string
360- templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.ResolveAttributeValue(t.WhenAt)
313+ var templ_7745c5c3_Var15 string
314+ templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.ResolveAttributeValue(t.WhenAt)
361315 if templ_7745c5c3_Err != nil {
362- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 92, Col: 58}
316+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 84, Col: 58}
363317 }
364- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var17)
318+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var15)
365319 if templ_7745c5c3_Err != nil {
366320 return templ_7745c5c3_Err
367321 }
368- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "\">")
322+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "\">")
369323 if templ_7745c5c3_Err != nil {
370324 return templ_7745c5c3_Err
371325 }
372- var templ_7745c5c3_Var18 string
373- templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(t.When)
326+ var templ_7745c5c3_Var16 string
327+ templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(t.When)
374328 if templ_7745c5c3_Err != nil {
375- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 92, Col: 69}
329+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 84, Col: 69}
376330 }
377- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18))
331+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16))
378332 if templ_7745c5c3_Err != nil {
379333 return templ_7745c5c3_Err
380334 }
381- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "</time>")
335+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "</time>")
382336 if templ_7745c5c3_Err != nil {
383337 return templ_7745c5c3_Err
384338 }
385339 }
386- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, " ")
340+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, " ")
387341 if templ_7745c5c3_Err != nil {
388342 return templ_7745c5c3_Err
389343 }
390- var templ_7745c5c3_Var19 string
391- templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
344+ var templ_7745c5c3_Var17 string
345+ templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
392346 if templ_7745c5c3_Err != nil {
393- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 94, Col: 11}
347+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 86, Col: 11}
394348 }
395- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))
349+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var17))
396350 if templ_7745c5c3_Err != nil {
397351 return templ_7745c5c3_Err
398352 }
399- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, " ")
353+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, " ")
400354 if templ_7745c5c3_Err != nil {
401355 return templ_7745c5c3_Err
402356 }
403357 }
404- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "<a class=\"all-tags\" href=\"")
358+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "<a class=\"all-tags\" href=\"")
405359 if templ_7745c5c3_Err != nil {
406360 return templ_7745c5c3_Err
407361 }
408- var templ_7745c5c3_Var20 templ.SafeURL
409- templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(t.RefsHref))
362+ var templ_7745c5c3_Var18 templ.SafeURL
363+ templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(t.RefsHref))
410364 if templ_7745c5c3_Err != nil {
411- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 96, Col: 54}
365+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 88, Col: 54}
412366 }
413- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20))
367+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18))
414368 if templ_7745c5c3_Err != nil {
415369 return templ_7745c5c3_Err
416370 }
417- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "\">")
371+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "\">")
418372 if templ_7745c5c3_Err != nil {
419373 return templ_7745c5c3_Err
420374 }
421- var templ_7745c5c3_Var21 string
422- templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs(plural(t.Count, "tag", "tags"))
375+ var templ_7745c5c3_Var19 string
376+ templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(plural(t.Count, "tag", "tags"))
423377 if templ_7745c5c3_Err != nil {
424- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 96, Col: 89}
378+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 88, Col: 89}
425379 }
426- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21))
380+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))
427381 if templ_7745c5c3_Err != nil {
428382 return templ_7745c5c3_Err
429383 }
430- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "</a></dd>")
384+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "</a></dd>")
431385 if templ_7745c5c3_Err != nil {
432386 return templ_7745c5c3_Err
433387 }
@@ -451,12 +405,12 @@ func summaryRail(p SummaryPage) templ.Component {
451405 }()
452406 }
453407 ctx = templ.InitializeContext(ctx)
454- templ_7745c5c3_Var22 := templ.GetChildren(ctx)
455- if templ_7745c5c3_Var22 == nil {
456- templ_7745c5c3_Var22 = templ.NopComponent
408+ templ_7745c5c3_Var20 := templ.GetChildren(ctx)
409+ if templ_7745c5c3_Var20 == nil {
410+ templ_7745c5c3_Var20 = templ.NopComponent
457411 }
458412 ctx = templ.ClearChildren(ctx)
459- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "<section aria-labelledby=\"r-clone\"><h2 id=\"r-clone\">Clone</h2>")
413+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "<section aria-labelledby=\"r-clone\"><h2 id=\"r-clone\">Clone</h2>")
460414 if templ_7745c5c3_Err != nil {
461415 return templ_7745c5c3_Err
462416 }
@@ -464,25 +418,25 @@ func summaryRail(p SummaryPage) templ.Component {
464418 if templ_7745c5c3_Err != nil {
465419 return templ_7745c5c3_Err
466420 }
467- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "</section><section aria-labelledby=\"r-facts\"><h2 id=\"r-facts\">About</h2><dl class=\"kv\">")
421+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "</section><section aria-labelledby=\"r-facts\"><h2 id=\"r-facts\">About</h2><dl class=\"kv\">")
468422 if templ_7745c5c3_Err != nil {
469423 return templ_7745c5c3_Err
470424 }
471425 for _, f := range p.Facts {
472- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "<dt>")
426+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "<dt>")
473427 if templ_7745c5c3_Err != nil {
474428 return templ_7745c5c3_Err
475429 }
476- var templ_7745c5c3_Var23 string
477- templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(f.Key)
430+ var templ_7745c5c3_Var21 string
431+ templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs(f.Key)
478432 if templ_7745c5c3_Err != nil {
479- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 107, Col: 15}
433+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 99, Col: 15}
480434 }
481- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23))
435+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21))
482436 if templ_7745c5c3_Err != nil {
483437 return templ_7745c5c3_Err
484438 }
485- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "</dt>")
439+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "</dt>")
486440 if templ_7745c5c3_Err != nil {
487441 return templ_7745c5c3_Err
488442 }
@@ -497,25 +451,25 @@ func summaryRail(p SummaryPage) templ.Component {
497451 return templ_7745c5c3_Err
498452 }
499453 }
500- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "</dl></section>")
454+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "</dl></section>")
501455 if templ_7745c5c3_Err != nil {
502456 return templ_7745c5c3_Err
503457 }
504458 if len(p.Recent) > 0 {
505- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "<section aria-labelledby=\"r-recent\"><h2 id=\"r-recent\">Recent commits <a href=\"")
459+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "<section aria-labelledby=\"r-recent\"><h2 id=\"r-recent\">Recent commits <a href=\"")
506460 if templ_7745c5c3_Err != nil {
507461 return templ_7745c5c3_Err
508462 }
509- var templ_7745c5c3_Var24 templ.SafeURL
510- templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.AllHref))
463+ var templ_7745c5c3_Var22 templ.SafeURL
464+ templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.AllHref))
511465 if templ_7745c5c3_Err != nil {
512- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 116, Col: 105}
466+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 108, Col: 105}
513467 }
514- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var24))
468+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var22))
515469 if templ_7745c5c3_Err != nil {
516470 return templ_7745c5c3_Err
517471 }
518- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "\">View all</a></h2>")
472+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "\">View all</a></h2>")
519473 if templ_7745c5c3_Err != nil {
520474 return templ_7745c5c3_Err
521475 }
@@ -523,7 +477,7 @@ func summaryRail(p SummaryPage) templ.Component {
523477 if templ_7745c5c3_Err != nil {
524478 return templ_7745c5c3_Err
525479 }
526- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "</section>")
480+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "</section>")
527481 if templ_7745c5c3_Err != nil {
528482 return templ_7745c5c3_Err
529483 }
@@ -535,7 +489,7 @@ func summaryRail(p SummaryPage) templ.Component {
535489 }
536490 }
537491 if len(p.Outline) > 0 && p.Readme != nil {
538- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "<section aria-labelledby=\"r-outline\"><h2 id=\"r-outline\">On this page</h2>")
492+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "<section aria-labelledby=\"r-outline\"><h2 id=\"r-outline\">On this page</h2>")
539493 if templ_7745c5c3_Err != nil {
540494 return templ_7745c5c3_Err
541495 }
@@ -543,7 +497,7 @@ func summaryRail(p SummaryPage) templ.Component {
543497 if templ_7745c5c3_Err != nil {
544498 return templ_7745c5c3_Err
545499 }
546- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "</section>")
500+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "</section>")
547501 if templ_7745c5c3_Err != nil {
548502 return templ_7745c5c3_Err
549503 }
@@ -569,12 +523,12 @@ func Refs(l Layout, p RefsPage) templ.Component {
569523 }()
570524 }
571525 ctx = templ.InitializeContext(ctx)
572- templ_7745c5c3_Var25 := templ.GetChildren(ctx)
573- if templ_7745c5c3_Var25 == nil {
574- templ_7745c5c3_Var25 = templ.NopComponent
526+ templ_7745c5c3_Var23 := templ.GetChildren(ctx)
527+ if templ_7745c5c3_Var23 == nil {
528+ templ_7745c5c3_Var23 = templ.NopComponent
575529 }
576530 ctx = templ.ClearChildren(ctx)
577- templ_7745c5c3_Var26 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
531+ templ_7745c5c3_Var24 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
578532 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
579533 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
580534 if !templ_7745c5c3_IsBuffer {
@@ -586,7 +540,7 @@ func Refs(l Layout, p RefsPage) templ.Component {
586540 }()
587541 }
588542 ctx = templ.InitializeContext(ctx)
589- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "<div class=\"filter\"><label for=\"ref-filter\" class=\"sr\">filter</label> <input id=\"ref-filter\" type=\"search\" data-filter=\"#ref-rows > tr\" placeholder=\"Filter branches and tags…\" autocomplete=\"off\" hx-on:input=\"ermite.filter(this)\"></div><table class=\"list refs\" aria-label=\"Branches and tags\"><thead><tr><th class=\"c-kind\">kind</th><th class=\"c-name\">name</th><th class=\"c-sha\">commit</th><th class=\"c-sub\">subject</th><th class=\"c-when\">date</th></tr></thead>")
543+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "<div class=\"filter\"><label for=\"ref-filter\" class=\"sr\">filter</label> <input id=\"ref-filter\" type=\"search\" data-filter=\"#ref-rows > tr\" placeholder=\"Filter branches and tags…\" autocomplete=\"off\" hx-on:input=\"ermite.filter(this)\"></div><table class=\"list refs\" aria-label=\"Branches and tags\"><thead><tr><th class=\"c-kind\">kind</th><th class=\"c-name\">name</th><th class=\"c-sha\">commit</th><th class=\"c-sub\">subject</th><th class=\"c-when\">date</th></tr></thead>")
590544 if templ_7745c5c3_Err != nil {
591545 return templ_7745c5c3_Err
592546 }
@@ -594,32 +548,32 @@ func Refs(l Layout, p RefsPage) templ.Component {
594548 if templ_7745c5c3_Err != nil {
595549 return templ_7745c5c3_Err
596550 }
597- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "</table>")
551+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "</table>")
598552 if templ_7745c5c3_Err != nil {
599553 return templ_7745c5c3_Err
600554 }
601555 if p.Note != "" {
602- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "<p class=\"note\">")
556+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "<p class=\"note\">")
603557 if templ_7745c5c3_Err != nil {
604558 return templ_7745c5c3_Err
605559 }
606- var templ_7745c5c3_Var27 string
607- templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)
560+ var templ_7745c5c3_Var25 string
561+ templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)
608562 if templ_7745c5c3_Err != nil {
609- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 149, Col: 27}
563+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 141, Col: 27}
610564 }
611- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27))
565+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25))
612566 if templ_7745c5c3_Err != nil {
613567 return templ_7745c5c3_Err
614568 }
615- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "</p>")
569+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "</p>")
616570 if templ_7745c5c3_Err != nil {
617571 return templ_7745c5c3_Err
618572 }
619573 }
620574 return nil
621575 })
622- templ_7745c5c3_Err = Shell(l, refsRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var26), templ_7745c5c3_Buffer)
576+ templ_7745c5c3_Err = Shell(l, refsRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var24), templ_7745c5c3_Buffer)
623577 if templ_7745c5c3_Err != nil {
624578 return templ_7745c5c3_Err
625579 }
@@ -643,112 +597,112 @@ func refRow(kind string, r RefRow) templ.Component {
643597 }()
644598 }
645599 ctx = templ.InitializeContext(ctx)
646- templ_7745c5c3_Var28 := templ.GetChildren(ctx)
647- if templ_7745c5c3_Var28 == nil {
648- templ_7745c5c3_Var28 = templ.NopComponent
600+ templ_7745c5c3_Var26 := templ.GetChildren(ctx)
601+ if templ_7745c5c3_Var26 == nil {
602+ templ_7745c5c3_Var26 = templ.NopComponent
649603 }
650604 ctx = templ.ClearChildren(ctx)
651- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "<tr")
605+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "<tr")
652606 if templ_7745c5c3_Err != nil {
653607 return templ_7745c5c3_Err
654608 }
655609 if r.Cursor {
656- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, " data-cursor")
610+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, " data-cursor")
657611 if templ_7745c5c3_Err != nil {
658612 return templ_7745c5c3_Err
659613 }
660614 }
661- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "><td class=\"c-kind mute\">")
615+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "><td class=\"c-kind mute\">")
662616 if templ_7745c5c3_Err != nil {
663617 return templ_7745c5c3_Err
664618 }
665- var templ_7745c5c3_Var29 string
666- templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(kind)
619+ var templ_7745c5c3_Var27 string
620+ templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(kind)
667621 if templ_7745c5c3_Err != nil {
668- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 156, Col: 32}
622+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 148, Col: 32}
669623 }
670- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29))
624+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27))
671625 if templ_7745c5c3_Err != nil {
672626 return templ_7745c5c3_Err
673627 }
674- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "</td><td class=\"c-name\"><a href=\"")
628+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "</td><td class=\"c-name\"><a href=\"")
675629 if templ_7745c5c3_Err != nil {
676630 return templ_7745c5c3_Err
677631 }
678- var templ_7745c5c3_Var30 templ.SafeURL
679- templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href))
632+ var templ_7745c5c3_Var28 templ.SafeURL
633+ templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href))
680634 if templ_7745c5c3_Err != nil {
681- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 158, Col: 34}
635+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 150, Col: 34}
682636 }
683- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30))
637+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var28))
684638 if templ_7745c5c3_Err != nil {
685639 return templ_7745c5c3_Err
686640 }
687- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "\">")
641+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "\">")
688642 if templ_7745c5c3_Err != nil {
689643 return templ_7745c5c3_Err
690644 }
691- var templ_7745c5c3_Var31 string
692- templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
645+ var templ_7745c5c3_Var29 string
646+ templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
693647 if templ_7745c5c3_Err != nil {
694- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 158, Col: 45}
648+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 150, Col: 45}
695649 }
696- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31))
650+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29))
697651 if templ_7745c5c3_Err != nil {
698652 return templ_7745c5c3_Err
699653 }
700- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "</a> ")
654+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "</a> ")
701655 if templ_7745c5c3_Err != nil {
702656 return templ_7745c5c3_Err
703657 }
704658 if r.Default {
705- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "<span class=\"pill\">default</span>")
659+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "<span class=\"pill\">default</span>")
706660 if templ_7745c5c3_Err != nil {
707661 return templ_7745c5c3_Err
708662 }
709663 }
710- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "</td><td class=\"c-sha\">")
664+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "</td><td class=\"c-sha\">")
711665 if templ_7745c5c3_Err != nil {
712666 return templ_7745c5c3_Err
713667 }
714668 if r.CHref != "" {
715- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "<a href=\"")
669+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "<a href=\"")
716670 if templ_7745c5c3_Err != nil {
717671 return templ_7745c5c3_Err
718672 }
719- var templ_7745c5c3_Var32 templ.SafeURL
720- templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.CHref))
673+ var templ_7745c5c3_Var30 templ.SafeURL
674+ templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.CHref))
721675 if templ_7745c5c3_Err != nil {
722- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 165, Col: 36}
676+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 157, Col: 36}
723677 }
724- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32))
678+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30))
725679 if templ_7745c5c3_Err != nil {
726680 return templ_7745c5c3_Err
727681 }
728- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "\">")
682+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "\">")
729683 if templ_7745c5c3_Err != nil {
730684 return templ_7745c5c3_Err
731685 }
732- var templ_7745c5c3_Var33 string
733- templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short)
686+ var templ_7745c5c3_Var31 string
687+ templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short)
734688 if templ_7745c5c3_Err != nil {
735- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 165, Col: 48}
689+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 157, Col: 48}
736690 }
737- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33))
691+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31))
738692 if templ_7745c5c3_Err != nil {
739693 return templ_7745c5c3_Err
740694 }
741- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</a>")
695+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "</a>")
742696 if templ_7745c5c3_Err != nil {
743697 return templ_7745c5c3_Err
744698 }
745699 } else {
746- var templ_7745c5c3_Var34 string
747- templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short)
700+ var templ_7745c5c3_Var32 string
701+ templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short)
748702 if templ_7745c5c3_Err != nil {
749- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 167, Col: 13}
703+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 159, Col: 13}
750704 }
751- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34))
705+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32))
752706 if templ_7745c5c3_Err != nil {
753707 return templ_7745c5c3_Err
754708 }
@@ -757,69 +711,69 @@ func refRow(kind string, r RefRow) templ.Component {
757711 if templ_7745c5c3_Err != nil {
758712 return templ_7745c5c3_Err
759713 }
760- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "</td><td class=\"c-sub\">")
714+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "</td><td class=\"c-sub\">")
761715 if templ_7745c5c3_Err != nil {
762716 return templ_7745c5c3_Err
763717 }
764- var templ_7745c5c3_Var35 string
765- templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinStringErrs(r.Subject)
718+ var templ_7745c5c3_Var33 string
719+ templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinStringErrs(r.Subject)
766720 if templ_7745c5c3_Err != nil {
767- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 171, Col: 31}
721+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 163, Col: 31}
768722 }
769- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35))
723+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33))
770724 if templ_7745c5c3_Err != nil {
771725 return templ_7745c5c3_Err
772726 }
773- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "</td><td class=\"c-when dim\">")
727+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "</td><td class=\"c-when dim\">")
774728 if templ_7745c5c3_Err != nil {
775729 return templ_7745c5c3_Err
776730 }
777731 if r.WhenAt != "" {
778- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "<time datetime=\"")
732+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "<time datetime=\"")
779733 if templ_7745c5c3_Err != nil {
780734 return templ_7745c5c3_Err
781735 }
782- var templ_7745c5c3_Var36 string
783- templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
736+ var templ_7745c5c3_Var34 string
737+ templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
784738 if templ_7745c5c3_Err != nil {
785- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 174, Col: 29}
739+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 166, Col: 29}
786740 }
787- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var36)
741+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var34)
788742 if templ_7745c5c3_Err != nil {
789743 return templ_7745c5c3_Err
790744 }
791- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "\" title=\"")
745+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "\" title=\"")
792746 if templ_7745c5c3_Err != nil {
793747 return templ_7745c5c3_Err
794748 }
795- var templ_7745c5c3_Var37 string
796- templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
749+ var templ_7745c5c3_Var35 string
750+ templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
797751 if templ_7745c5c3_Err != nil {
798- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 174, Col: 48}
752+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 166, Col: 48}
799753 }
800- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var37)
754+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var35)
801755 if templ_7745c5c3_Err != nil {
802756 return templ_7745c5c3_Err
803757 }
804- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "\">")
758+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "\">")
805759 if templ_7745c5c3_Err != nil {
806760 return templ_7745c5c3_Err
807761 }
808- var templ_7745c5c3_Var38 string
809- templ_7745c5c3_Var38, templ_7745c5c3_Err = templ.JoinStringErrs(r.When)
762+ var templ_7745c5c3_Var36 string
763+ templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.JoinStringErrs(r.When)
810764 if templ_7745c5c3_Err != nil {
811- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 174, Col: 59}
765+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 166, Col: 59}
812766 }
813- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var38))
767+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var36))
814768 if templ_7745c5c3_Err != nil {
815769 return templ_7745c5c3_Err
816770 }
817- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "</time>")
771+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</time>")
818772 if templ_7745c5c3_Err != nil {
819773 return templ_7745c5c3_Err
820774 }
821775 }
822- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "</td></tr>")
776+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "</td></tr>")
823777 if templ_7745c5c3_Err != nil {
824778 return templ_7745c5c3_Err
825779 }
@@ -843,12 +797,12 @@ func refsRail(p RefsPage) templ.Component {
843797 }()
844798 }
845799 ctx = templ.InitializeContext(ctx)
846- templ_7745c5c3_Var39 := templ.GetChildren(ctx)
847- if templ_7745c5c3_Var39 == nil {
848- templ_7745c5c3_Var39 = templ.NopComponent
800+ templ_7745c5c3_Var37 := templ.GetChildren(ctx)
801+ if templ_7745c5c3_Var37 == nil {
802+ templ_7745c5c3_Var37 = templ.NopComponent
849803 }
850804 ctx = templ.ClearChildren(ctx)
851- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "<section aria-labelledby=\"r-refs\"><h2 id=\"r-refs\">Overview</h2>")
805+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "<section aria-labelledby=\"r-refs\"><h2 id=\"r-refs\">Overview</h2>")
852806 if templ_7745c5c3_Err != nil {
853807 return templ_7745c5c3_Err
854808 }
@@ -856,7 +810,7 @@ func refsRail(p RefsPage) templ.Component {
856810 if templ_7745c5c3_Err != nil {
857811 return templ_7745c5c3_Err
858812 }
859- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "</section>")
813+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "</section>")
860814 if templ_7745c5c3_Err != nil {
861815 return templ_7745c5c3_Err
862816 }
@@ -881,12 +835,12 @@ func State(l Layout, p StatePage) templ.Component {
881835 }()
882836 }
883837 ctx = templ.InitializeContext(ctx)
884- templ_7745c5c3_Var40 := templ.GetChildren(ctx)
885- if templ_7745c5c3_Var40 == nil {
886- templ_7745c5c3_Var40 = templ.NopComponent
838+ templ_7745c5c3_Var38 := templ.GetChildren(ctx)
839+ if templ_7745c5c3_Var38 == nil {
840+ templ_7745c5c3_Var38 = templ.NopComponent
887841 }
888842 ctx = templ.ClearChildren(ctx)
889- templ_7745c5c3_Var41 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
843+ templ_7745c5c3_Var39 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
890844 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
891845 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
892846 if !templ_7745c5c3_IsBuffer {
@@ -898,51 +852,51 @@ func State(l Layout, p StatePage) templ.Component {
898852 }()
899853 }
900854 ctx = templ.InitializeContext(ctx)
901- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "<section class=\"state\" aria-labelledby=\"state-title\"><p class=\"eyebrow\">")
855+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "<section class=\"state\" aria-labelledby=\"state-title\"><p class=\"eyebrow\">")
902856 if templ_7745c5c3_Err != nil {
903857 return templ_7745c5c3_Err
904858 }
905- var templ_7745c5c3_Var42 string
906- templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinStringErrs(p.Code)
859+ var templ_7745c5c3_Var40 string
860+ templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.JoinStringErrs(p.Code)
907861 if templ_7745c5c3_Err != nil {
908- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 191, Col: 30}
862+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 183, Col: 30}
909863 }
910- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42))
864+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var40))
911865 if templ_7745c5c3_Err != nil {
912866 return templ_7745c5c3_Err
913867 }
914- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "</p><h1 id=\"state-title\">")
868+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "</p><h1 id=\"state-title\">")
915869 if templ_7745c5c3_Err != nil {
916870 return templ_7745c5c3_Err
917871 }
918- var templ_7745c5c3_Var43 string
919- templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)
872+ var templ_7745c5c3_Var41 string
873+ templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)
920874 if templ_7745c5c3_Err != nil {
921- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 192, Col: 33}
875+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 184, Col: 33}
922876 }
923- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43))
877+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var41))
924878 if templ_7745c5c3_Err != nil {
925879 return templ_7745c5c3_Err
926880 }
927- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</h1>")
881+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "</h1>")
928882 if templ_7745c5c3_Err != nil {
929883 return templ_7745c5c3_Err
930884 }
931885 for _, line := range p.Lines {
932- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "<p class=\"dim\">")
886+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "<p class=\"dim\">")
933887 if templ_7745c5c3_Err != nil {
934888 return templ_7745c5c3_Err
935889 }
936- var templ_7745c5c3_Var44 string
937- templ_7745c5c3_Var44, templ_7745c5c3_Err = templ.JoinStringErrs(line)
890+ var templ_7745c5c3_Var42 string
891+ templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinStringErrs(line)
938892 if templ_7745c5c3_Err != nil {
939- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 194, Col: 25}
893+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 186, Col: 25}
940894 }
941- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var44))
895+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42))
942896 if templ_7745c5c3_Err != nil {
943897 return templ_7745c5c3_Err
944898 }
945- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "</p>")
899+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "</p>")
946900 if templ_7745c5c3_Err != nil {
947901 return templ_7745c5c3_Err
948902 }
@@ -953,49 +907,49 @@ func State(l Layout, p StatePage) templ.Component {
953907 return templ_7745c5c3_Err
954908 }
955909 }
956- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "<p class=\"state-back\">")
910+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "<p class=\"state-back\">")
957911 if templ_7745c5c3_Err != nil {
958912 return templ_7745c5c3_Err
959913 }
960914 for _, b := range p.Back {
961- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, "<a href=\"")
915+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "<a href=\"")
962916 if templ_7745c5c3_Err != nil {
963917 return templ_7745c5c3_Err
964918 }
965- var templ_7745c5c3_Var45 templ.SafeURL
966- templ_7745c5c3_Var45, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(b.Href))
919+ var templ_7745c5c3_Var43 templ.SafeURL
920+ templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(b.Href))
967921 if templ_7745c5c3_Err != nil {
968- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 201, Col: 36}
922+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 193, Col: 36}
969923 }
970- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var45))
924+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43))
971925 if templ_7745c5c3_Err != nil {
972926 return templ_7745c5c3_Err
973927 }
974- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "\">")
928+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "\">")
975929 if templ_7745c5c3_Err != nil {
976930 return templ_7745c5c3_Err
977931 }
978- var templ_7745c5c3_Var46 string
979- templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.JoinStringErrs(b.Label)
932+ var templ_7745c5c3_Var44 string
933+ templ_7745c5c3_Var44, templ_7745c5c3_Err = templ.JoinStringErrs(b.Label)
980934 if templ_7745c5c3_Err != nil {
981- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 201, Col: 48}
935+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 193, Col: 48}
982936 }
983- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var46))
937+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var44))
984938 if templ_7745c5c3_Err != nil {
985939 return templ_7745c5c3_Err
986940 }
987- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, "</a>")
941+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</a>")
988942 if templ_7745c5c3_Err != nil {
989943 return templ_7745c5c3_Err
990944 }
991945 }
992- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, "</p></section>")
946+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "</p></section>")
993947 if templ_7745c5c3_Err != nil {
994948 return templ_7745c5c3_Err
995949 }
996950 return nil
997951 })
998- templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var41), templ_7745c5c3_Buffer)
952+ templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var39), templ_7745c5c3_Buffer)
999953 if templ_7745c5c3_Err != nil {
1000954 return templ_7745c5c3_Err
1001955 }
@@ -1024,12 +978,12 @@ func Login(l Layout, p LoginPage) templ.Component {
1024978 }()
1025979 }
1026980 ctx = templ.InitializeContext(ctx)
1027- templ_7745c5c3_Var47 := templ.GetChildren(ctx)
1028- if templ_7745c5c3_Var47 == nil {
1029- templ_7745c5c3_Var47 = templ.NopComponent
981+ templ_7745c5c3_Var45 := templ.GetChildren(ctx)
982+ if templ_7745c5c3_Var45 == nil {
983+ templ_7745c5c3_Var45 = templ.NopComponent
1030984 }
1031985 ctx = templ.ClearChildren(ctx)
1032- templ_7745c5c3_Var48 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
986+ templ_7745c5c3_Var46 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1033987 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1034988 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1035989 if !templ_7745c5c3_IsBuffer {
@@ -1041,75 +995,75 @@ func Login(l Layout, p LoginPage) templ.Component {
1041995 }()
1042996 }
1043997 ctx = templ.InitializeContext(ctx)
1044- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, "<section class=\"state\" aria-labelledby=\"state-title\"><h1 id=\"state-title\">")
998+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "<section class=\"state\" aria-labelledby=\"state-title\"><h1 id=\"state-title\">")
1045999 if templ_7745c5c3_Err != nil {
10461000 return templ_7745c5c3_Err
10471001 }
1048- var templ_7745c5c3_Var49 string
1049- templ_7745c5c3_Var49, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)
1002+ var templ_7745c5c3_Var47 string
1003+ templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)
10501004 if templ_7745c5c3_Err != nil {
1051- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 216, Col: 33}
1005+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 208, Col: 33}
10521006 }
1053- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var49))
1007+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var47))
10541008 if templ_7745c5c3_Err != nil {
10551009 return templ_7745c5c3_Err
10561010 }
1057- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, "</h1>")
1011+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "</h1>")
10581012 if templ_7745c5c3_Err != nil {
10591013 return templ_7745c5c3_Err
10601014 }
10611015 for _, line := range p.Lines {
1062- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, "<p class=\"dim\">")
1016+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, "<p class=\"dim\">")
10631017 if templ_7745c5c3_Err != nil {
10641018 return templ_7745c5c3_Err
10651019 }
1066- var templ_7745c5c3_Var50 string
1067- templ_7745c5c3_Var50, templ_7745c5c3_Err = templ.JoinStringErrs(line)
1020+ var templ_7745c5c3_Var48 string
1021+ templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.JoinStringErrs(line)
10681022 if templ_7745c5c3_Err != nil {
1069- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 218, Col: 25}
1023+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 210, Col: 25}
10701024 }
1071- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var50))
1025+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var48))
10721026 if templ_7745c5c3_Err != nil {
10731027 return templ_7745c5c3_Err
10741028 }
1075- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "</p>")
1029+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "</p>")
10761030 if templ_7745c5c3_Err != nil {
10771031 return templ_7745c5c3_Err
10781032 }
10791033 }
1080- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "<form class=\"state-act\" method=\"post\" action=\"")
1034+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, "<form class=\"state-act\" method=\"post\" action=\"")
10811035 if templ_7745c5c3_Err != nil {
10821036 return templ_7745c5c3_Err
10831037 }
1084- var templ_7745c5c3_Var51 templ.SafeURL
1085- templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Action))
1038+ var templ_7745c5c3_Var49 templ.SafeURL
1039+ templ_7745c5c3_Var49, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Action))
10861040 if templ_7745c5c3_Err != nil {
1087- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 220, Col: 73}
1041+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 212, Col: 73}
10881042 }
1089- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var51))
1043+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var49))
10901044 if templ_7745c5c3_Err != nil {
10911045 return templ_7745c5c3_Err
10921046 }
1093- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, "\" data-autosubmit><button type=\"submit\" class=\"btn primary\">")
1047+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, "\" data-autosubmit><button type=\"submit\" class=\"btn primary\">")
10941048 if templ_7745c5c3_Err != nil {
10951049 return templ_7745c5c3_Err
10961050 }
1097- var templ_7745c5c3_Var52 string
1098- templ_7745c5c3_Var52, templ_7745c5c3_Err = templ.JoinStringErrs(p.Button)
1051+ var templ_7745c5c3_Var50 string
1052+ templ_7745c5c3_Var50, templ_7745c5c3_Err = templ.JoinStringErrs(p.Button)
10991053 if templ_7745c5c3_Err != nil {
1100- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 221, Col: 56}
1054+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 213, Col: 56}
11011055 }
1102- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var52))
1056+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var50))
11031057 if templ_7745c5c3_Err != nil {
11041058 return templ_7745c5c3_Err
11051059 }
1106- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 85, "</button></form><p class=\"state-back\"><a href=\"/\">Back to home</a></p></section>")
1060+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, "</button></form><p class=\"state-back\"><a href=\"/\">Back to home</a></p></section>")
11071061 if templ_7745c5c3_Err != nil {
11081062 return templ_7745c5c3_Err
11091063 }
11101064 return nil
11111065 })
1112- templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var48), templ_7745c5c3_Buffer)
1066+ templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var46), templ_7745c5c3_Buffer)
11131067 if templ_7745c5c3_Err != nil {
11141068 return templ_7745c5c3_Err
11151069 }
@@ -1135,12 +1089,12 @@ func PasskeyLogin(l Layout, p PasskeyLoginPage) templ.Component {
11351089 }()
11361090 }
11371091 ctx = templ.InitializeContext(ctx)
1138- templ_7745c5c3_Var53 := templ.GetChildren(ctx)
1139- if templ_7745c5c3_Var53 == nil {
1140- templ_7745c5c3_Var53 = templ.NopComponent
1092+ templ_7745c5c3_Var51 := templ.GetChildren(ctx)
1093+ if templ_7745c5c3_Var51 == nil {
1094+ templ_7745c5c3_Var51 = templ.NopComponent
11411095 }
11421096 ctx = templ.ClearChildren(ctx)
1143- templ_7745c5c3_Var54 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1097+ templ_7745c5c3_Var52 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
11441098 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
11451099 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
11461100 if !templ_7745c5c3_IsBuffer {
@@ -1152,88 +1106,88 @@ func PasskeyLogin(l Layout, p PasskeyLoginPage) templ.Component {
11521106 }()
11531107 }
11541108 ctx = templ.InitializeContext(ctx)
1155- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "<section class=\"state\" aria-labelledby=\"state-title\"><h1 id=\"state-title\">")
1109+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, "<section class=\"state\" aria-labelledby=\"state-title\"><h1 id=\"state-title\">")
11561110 if templ_7745c5c3_Err != nil {
11571111 return templ_7745c5c3_Err
11581112 }
1159- var templ_7745c5c3_Var55 string
1160- templ_7745c5c3_Var55, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)
1113+ var templ_7745c5c3_Var53 string
1114+ templ_7745c5c3_Var53, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)
11611115 if templ_7745c5c3_Err != nil {
1162- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 233, Col: 33}
1116+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 225, Col: 33}
11631117 }
1164- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var55))
1118+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var53))
11651119 if templ_7745c5c3_Err != nil {
11661120 return templ_7745c5c3_Err
11671121 }
1168- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 87, "</h1><form class=\"state-act\" data-js data-passkey-form><button type=\"submit\" class=\"btn primary\" data-passkey=\"login\" data-begin=\"")
1122+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, "</h1><form class=\"state-act\" data-js data-passkey-form><button type=\"submit\" class=\"btn primary\" data-passkey=\"login\" data-begin=\"")
11691123 if templ_7745c5c3_Err != nil {
11701124 return templ_7745c5c3_Err
11711125 }
1172- var templ_7745c5c3_Var56 string
1173- templ_7745c5c3_Var56, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Begin)
1126+ var templ_7745c5c3_Var54 string
1127+ templ_7745c5c3_Var54, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Begin)
11741128 if templ_7745c5c3_Err != nil {
1175- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 235, Col: 87}
1129+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 227, Col: 87}
11761130 }
1177- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var56)
1131+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var54)
11781132 if templ_7745c5c3_Err != nil {
11791133 return templ_7745c5c3_Err
11801134 }
1181- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 88, "\" data-finish=\"")
1135+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "\" data-finish=\"")
11821136 if templ_7745c5c3_Err != nil {
11831137 return templ_7745c5c3_Err
11841138 }
1185- var templ_7745c5c3_Var57 string
1186- templ_7745c5c3_Var57, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Finish)
1139+ var templ_7745c5c3_Var55 string
1140+ templ_7745c5c3_Var55, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Finish)
11871141 if templ_7745c5c3_Err != nil {
1188- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 235, Col: 112}
1142+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 227, Col: 112}
11891143 }
1190- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var57)
1144+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var55)
11911145 if templ_7745c5c3_Err != nil {
11921146 return templ_7745c5c3_Err
11931147 }
1194- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 89, "\">")
1148+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "\">")
11951149 if templ_7745c5c3_Err != nil {
11961150 return templ_7745c5c3_Err
11971151 }
1198- var templ_7745c5c3_Var58 string
1199- templ_7745c5c3_Var58, templ_7745c5c3_Err = templ.JoinStringErrs(p.Button)
1152+ var templ_7745c5c3_Var56 string
1153+ templ_7745c5c3_Var56, templ_7745c5c3_Err = templ.JoinStringErrs(p.Button)
12001154 if templ_7745c5c3_Err != nil {
1201- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 235, Col: 125}
1155+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 227, Col: 125}
12021156 }
1203- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var58))
1157+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var56))
12041158 if templ_7745c5c3_Err != nil {
12051159 return templ_7745c5c3_Err
12061160 }
1207- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 90, "</button></form><p class=\"dim\" role=\"status\" aria-live=\"polite\" data-passkey-status></p>")
1161+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, "</button></form><p class=\"dim\" role=\"status\" aria-live=\"polite\" data-passkey-status></p>")
12081162 if templ_7745c5c3_Err != nil {
12091163 return templ_7745c5c3_Err
12101164 }
12111165 for _, line := range p.Lines {
1212- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 91, "<p class=\"dim\">")
1166+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 85, "<p class=\"dim\">")
12131167 if templ_7745c5c3_Err != nil {
12141168 return templ_7745c5c3_Err
12151169 }
1216- var templ_7745c5c3_Var59 string
1217- templ_7745c5c3_Var59, templ_7745c5c3_Err = templ.JoinStringErrs(line)
1170+ var templ_7745c5c3_Var57 string
1171+ templ_7745c5c3_Var57, templ_7745c5c3_Err = templ.JoinStringErrs(line)
12181172 if templ_7745c5c3_Err != nil {
1219- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 239, Col: 25}
1173+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 231, Col: 25}
12201174 }
1221- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var59))
1175+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var57))
12221176 if templ_7745c5c3_Err != nil {
12231177 return templ_7745c5c3_Err
12241178 }
1225- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 92, "</p>")
1179+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "</p>")
12261180 if templ_7745c5c3_Err != nil {
12271181 return templ_7745c5c3_Err
12281182 }
12291183 }
1230- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 93, "<p class=\"state-back\"><a href=\"/\">Back to home</a></p></section>")
1184+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 87, "<p class=\"state-back\"><a href=\"/\">Back to home</a></p></section>")
12311185 if templ_7745c5c3_Err != nil {
12321186 return templ_7745c5c3_Err
12331187 }
12341188 return nil
12351189 })
1236- templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var54), templ_7745c5c3_Buffer)
1190+ templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var52), templ_7745c5c3_Buffer)
12371191 if templ_7745c5c3_Err != nil {
12381192 return templ_7745c5c3_Err
12391193 }
@@ -1258,12 +1212,12 @@ func Passkeys(l Layout, p PasskeysPage) templ.Component {
12581212 }()
12591213 }
12601214 ctx = templ.InitializeContext(ctx)
1261- templ_7745c5c3_Var60 := templ.GetChildren(ctx)
1262- if templ_7745c5c3_Var60 == nil {
1263- templ_7745c5c3_Var60 = templ.NopComponent
1215+ templ_7745c5c3_Var58 := templ.GetChildren(ctx)
1216+ if templ_7745c5c3_Var58 == nil {
1217+ templ_7745c5c3_Var58 = templ.NopComponent
12641218 }
12651219 ctx = templ.ClearChildren(ctx)
1266- templ_7745c5c3_Var61 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1220+ templ_7745c5c3_Var59 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
12671221 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
12681222 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
12691223 if !templ_7745c5c3_IsBuffer {
@@ -1275,231 +1229,231 @@ func Passkeys(l Layout, p PasskeysPage) templ.Component {
12751229 }()
12761230 }
12771231 ctx = templ.InitializeContext(ctx)
1278- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, "<h2 class=\"rule-h\"><span>Passkeys</span><span class=\"count\">")
1232+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 88, "<h2 class=\"rule-h\"><span>Passkeys</span><span class=\"count\">")
12791233 if templ_7745c5c3_Err != nil {
12801234 return templ_7745c5c3_Err
12811235 }
1282- var templ_7745c5c3_Var62 string
1283- templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Rows)))
1236+ var templ_7745c5c3_Var60 string
1237+ templ_7745c5c3_Var60, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Rows)))
12841238 if templ_7745c5c3_Err != nil {
1285- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 249, Col: 81}
1239+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 241, Col: 81}
12861240 }
1287- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var62))
1241+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var60))
12881242 if templ_7745c5c3_Err != nil {
12891243 return templ_7745c5c3_Err
12901244 }
1291- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 95, "</span></h2><p class=\"dim\">A passkey signs you in from this device or your phone, without a terminal. Removing one signs every browser out.</p>")
1245+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 89, "</span></h2><p class=\"dim\">A passkey signs you in from this device or your phone, without a terminal. Removing one signs every browser out.</p>")
12921246 if templ_7745c5c3_Err != nil {
12931247 return templ_7745c5c3_Err
12941248 }
12951249 if len(p.Rows) > 0 {
1296- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 96, "<table class=\"list passkeys\" aria-label=\"Passkeys\"><thead><tr><th class=\"c-name\">Name</th><th class=\"c-when\">Created</th><th class=\"c-when\">Last used</th><th class=\"c-sync\">Synced</th><th class=\"c-act\"><span class=\"sr\">Remove</span></th></tr></thead> <tbody>")
1250+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 90, "<table class=\"list passkeys\" aria-label=\"Passkeys\"><thead><tr><th class=\"c-name\">Name</th><th class=\"c-when\">Created</th><th class=\"c-when\">Last used</th><th class=\"c-sync\">Synced</th><th class=\"c-act\"><span class=\"sr\">Remove</span></th></tr></thead> <tbody>")
12971251 if templ_7745c5c3_Err != nil {
12981252 return templ_7745c5c3_Err
12991253 }
13001254 for _, r := range p.Rows {
1301- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 97, "<tr><td class=\"c-name\">")
1255+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 91, "<tr><td class=\"c-name\">")
13021256 if templ_7745c5c3_Err != nil {
13031257 return templ_7745c5c3_Err
13041258 }
1305- var templ_7745c5c3_Var63 string
1306- templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
1259+ var templ_7745c5c3_Var61 string
1260+ templ_7745c5c3_Var61, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
13071261 if templ_7745c5c3_Err != nil {
1308- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 265, Col: 34}
1262+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 257, Col: 34}
13091263 }
1310- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var63))
1264+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var61))
13111265 if templ_7745c5c3_Err != nil {
13121266 return templ_7745c5c3_Err
13131267 }
1314- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 98, "</td><td class=\"c-when nowrap\"><time")
1268+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 92, "</td><td class=\"c-when nowrap\"><time")
13151269 if templ_7745c5c3_Err != nil {
13161270 return templ_7745c5c3_Err
13171271 }
13181272 if r.CreatedAt != "" {
1319- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, " datetime=\"")
1273+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 93, " datetime=\"")
13201274 if templ_7745c5c3_Err != nil {
13211275 return templ_7745c5c3_Err
13221276 }
1323- var templ_7745c5c3_Var64 string
1324- templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.CreatedAt)
1277+ var templ_7745c5c3_Var62 string
1278+ templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.CreatedAt)
13251279 if templ_7745c5c3_Err != nil {
1326- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 269, Col: 32}
1280+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 261, Col: 32}
13271281 }
1328- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var64)
1282+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var62)
13291283 if templ_7745c5c3_Err != nil {
13301284 return templ_7745c5c3_Err
13311285 }
1332- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 100, "\"")
1286+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, "\"")
13331287 if templ_7745c5c3_Err != nil {
13341288 return templ_7745c5c3_Err
13351289 }
13361290 }
1337- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, ">")
1291+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 95, ">")
13381292 if templ_7745c5c3_Err != nil {
13391293 return templ_7745c5c3_Err
13401294 }
1341- var templ_7745c5c3_Var65 string
1342- templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.JoinStringErrs(r.Created)
1295+ var templ_7745c5c3_Var63 string
1296+ templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.JoinStringErrs(r.Created)
13431297 if templ_7745c5c3_Err != nil {
1344- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 271, Col: 20}
1298+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 263, Col: 20}
13451299 }
1346- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var65))
1300+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var63))
13471301 if templ_7745c5c3_Err != nil {
13481302 return templ_7745c5c3_Err
13491303 }
1350- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 102, "</time></td><td class=\"c-when nowrap\"><time")
1304+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 96, "</time></td><td class=\"c-when nowrap\"><time")
13511305 if templ_7745c5c3_Err != nil {
13521306 return templ_7745c5c3_Err
13531307 }
13541308 if r.LastUsedAt != "" {
1355- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, " datetime=\"")
1309+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 97, " datetime=\"")
13561310 if templ_7745c5c3_Err != nil {
13571311 return templ_7745c5c3_Err
13581312 }
1359- var templ_7745c5c3_Var66 string
1360- templ_7745c5c3_Var66, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.LastUsedAt)
1313+ var templ_7745c5c3_Var64 string
1314+ templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.LastUsedAt)
13611315 if templ_7745c5c3_Err != nil {
1362- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 276, Col: 33}
1316+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 268, Col: 33}
13631317 }
1364- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var66)
1318+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var64)
13651319 if templ_7745c5c3_Err != nil {
13661320 return templ_7745c5c3_Err
13671321 }
1368- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, "\"")
1322+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 98, "\"")
13691323 if templ_7745c5c3_Err != nil {
13701324 return templ_7745c5c3_Err
13711325 }
13721326 }
1373- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, ">")
1327+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, ">")
13741328 if templ_7745c5c3_Err != nil {
13751329 return templ_7745c5c3_Err
13761330 }
1377- var templ_7745c5c3_Var67 string
1378- templ_7745c5c3_Var67, templ_7745c5c3_Err = templ.JoinStringErrs(r.LastUsed)
1331+ var templ_7745c5c3_Var65 string
1332+ templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.JoinStringErrs(r.LastUsed)
13791333 if templ_7745c5c3_Err != nil {
1380- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 278, Col: 21}
1334+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 270, Col: 21}
13811335 }
1382- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var67))
1336+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var65))
13831337 if templ_7745c5c3_Err != nil {
13841338 return templ_7745c5c3_Err
13851339 }
1386- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, "</time></td><td class=\"c-sync\">")
1340+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 100, "</time></td><td class=\"c-sync\">")
13871341 if templ_7745c5c3_Err != nil {
13881342 return templ_7745c5c3_Err
13891343 }
13901344 if r.Synced {
1391- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, "yes")
1345+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, "yes")
13921346 if templ_7745c5c3_Err != nil {
13931347 return templ_7745c5c3_Err
13941348 }
13951349 } else {
1396- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, "no")
1350+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 102, "no")
13971351 if templ_7745c5c3_Err != nil {
13981352 return templ_7745c5c3_Err
13991353 }
14001354 }
1401- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, "</td><td class=\"c-act\"><form method=\"post\" action=\"")
1355+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, "</td><td class=\"c-act\"><form method=\"post\" action=\"")
14021356 if templ_7745c5c3_Err != nil {
14031357 return templ_7745c5c3_Err
14041358 }
1405- var templ_7745c5c3_Var68 templ.SafeURL
1406- templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Remove))
1359+ var templ_7745c5c3_Var66 templ.SafeURL
1360+ templ_7745c5c3_Var66, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Remove))
14071361 if templ_7745c5c3_Err != nil {
1408- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 288, Col: 60}
1362+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 280, Col: 60}
14091363 }
1410- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var68))
1364+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var66))
14111365 if templ_7745c5c3_Err != nil {
14121366 return templ_7745c5c3_Err
14131367 }
1414- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "\"><button type=\"submit\" class=\"btn danger\" aria-label=\"")
1368+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, "\"><button type=\"submit\" class=\"btn danger\" aria-label=\"")
14151369 if templ_7745c5c3_Err != nil {
14161370 return templ_7745c5c3_Err
14171371 }
1418- var templ_7745c5c3_Var69 string
1419- templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.ResolveAttributeValue("Remove passkey " + r.Name)
1372+ var templ_7745c5c3_Var67 string
1373+ templ_7745c5c3_Var67, templ_7745c5c3_Err = templ.ResolveAttributeValue("Remove passkey " + r.Name)
14201374 if templ_7745c5c3_Err != nil {
1421- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 289, Col: 89}
1375+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 281, Col: 89}
14221376 }
1423- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var69)
1377+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var67)
14241378 if templ_7745c5c3_Err != nil {
14251379 return templ_7745c5c3_Err
14261380 }
1427- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, "\">Remove</button></form></td></tr>")
1381+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, "\">Remove</button></form></td></tr>")
14281382 if templ_7745c5c3_Err != nil {
14291383 return templ_7745c5c3_Err
14301384 }
14311385 }
1432- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, "</tbody></table>")
1386+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, "</tbody></table>")
14331387 if templ_7745c5c3_Err != nil {
14341388 return templ_7745c5c3_Err
14351389 }
14361390 } else {
1437- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, "<p class=\"lede dim\">no passkeys yet.</p>")
1391+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, "<p class=\"lede dim\">no passkeys yet.</p>")
14381392 if templ_7745c5c3_Err != nil {
14391393 return templ_7745c5c3_Err
14401394 }
14411395 }
1442- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, " ")
1396+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, " ")
14431397 if templ_7745c5c3_Err != nil {
14441398 return templ_7745c5c3_Err
14451399 }
14461400 if p.Full {
1447- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, "<p class=\"dim\">")
1401+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, "<p class=\"dim\">")
14481402 if templ_7745c5c3_Err != nil {
14491403 return templ_7745c5c3_Err
14501404 }
1451- var templ_7745c5c3_Var70 string
1452- templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Max))
1405+ var templ_7745c5c3_Var68 string
1406+ templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Max))
14531407 if templ_7745c5c3_Err != nil {
1454- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 300, Col: 31}
1408+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 292, Col: 31}
14551409 }
1456- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var70))
1410+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var68))
14571411 if templ_7745c5c3_Err != nil {
14581412 return templ_7745c5c3_Err
14591413 }
1460- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 116, " passkeys are registered, the most there can be. Remove one to add another.</p>")
1414+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, " passkeys are registered, the most there can be. Remove one to add another.</p>")
14611415 if templ_7745c5c3_Err != nil {
14621416 return templ_7745c5c3_Err
14631417 }
14641418 } else {
1465- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 117, "<form class=\"passkey-add\" data-js data-passkey-form><label for=\"passkey-name\" class=\"sr\">Name of the new passkey</label> <input id=\"passkey-name\" type=\"text\" placeholder=\"Name, for example Pixel 9\" autocomplete=\"off\" data-passkey-name> <button type=\"submit\" class=\"btn primary\" data-passkey=\"register\" data-begin=\"")
1419+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, "<form class=\"passkey-add\" data-js data-passkey-form><label for=\"passkey-name\" class=\"sr\">Name of the new passkey</label> <input id=\"passkey-name\" type=\"text\" placeholder=\"Name, for example Pixel 9\" autocomplete=\"off\" data-passkey-name> <button type=\"submit\" class=\"btn primary\" data-passkey=\"register\" data-begin=\"")
14661420 if templ_7745c5c3_Err != nil {
14671421 return templ_7745c5c3_Err
14681422 }
1469- var templ_7745c5c3_Var71 string
1470- templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Begin)
1423+ var templ_7745c5c3_Var69 string
1424+ templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Begin)
14711425 if templ_7745c5c3_Err != nil {
1472- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 305, Col: 90}
1426+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 297, Col: 90}
14731427 }
1474- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var71)
1428+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var69)
14751429 if templ_7745c5c3_Err != nil {
14761430 return templ_7745c5c3_Err
14771431 }
1478- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 118, "\" data-finish=\"")
1432+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, "\" data-finish=\"")
14791433 if templ_7745c5c3_Err != nil {
14801434 return templ_7745c5c3_Err
14811435 }
1482- var templ_7745c5c3_Var72 string
1483- templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Finish)
1436+ var templ_7745c5c3_Var70 string
1437+ templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Finish)
14841438 if templ_7745c5c3_Err != nil {
1485- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 305, Col: 115}
1439+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 297, Col: 115}
14861440 }
1487- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var72)
1441+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var70)
14881442 if templ_7745c5c3_Err != nil {
14891443 return templ_7745c5c3_Err
14901444 }
1491- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 119, "\">Add a passkey</button></form>")
1445+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, "\">Add a passkey</button></form>")
14921446 if templ_7745c5c3_Err != nil {
14931447 return templ_7745c5c3_Err
14941448 }
14951449 }
1496- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 120, " <p class=\"dim\" role=\"status\" aria-live=\"polite\" data-passkey-status></p>")
1450+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, " <p class=\"dim\" role=\"status\" aria-live=\"polite\" data-passkey-status></p>")
14971451 if templ_7745c5c3_Err != nil {
14981452 return templ_7745c5c3_Err
14991453 }
15001454 return nil
15011455 })
1502- templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var61), templ_7745c5c3_Buffer)
1456+ templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var59), templ_7745c5c3_Buffer)
15031457 if templ_7745c5c3_Err != nil {
15041458 return templ_7745c5c3_Err
15051459 }
@@ -44,135 +44,89 @@ func Home(l Layout, p HomePage) templ.Component {
44 }()44 }()
45 }45 }
46 ctx = templ.InitializeContext(ctx)46 ctx = templ.InitializeContext(ctx)
47- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<h1 class=\"sr\">Repositories</h1><div class=\"home\" data-layout=\"cards\"><section class=\"home-repos\" aria-label=\"Repositories\"><div class=\"home-bar\">")47+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<h1 class=\"sr\">Repositories</h1><div class=\"home\" data-layout=\"cards\"><section class=\"home-repos\" aria-label=\"Repositories\"><div class=\"home-bar\"><div class=\"filter\"><label for=\"home-filter\" class=\"sr\">filter</label> <input id=\"home-filter\" type=\"search\" data-filter=\"#repo-rows > li\" placeholder=\"Filter repositories…\" autocomplete=\"off\" hx-on:input=\"ermite.filter(this)\"></div><nav class=\"sort\" aria-label=\"Sort repositories\"><span class=\"mute\">sort</span> ")
48 if templ_7745c5c3_Err != nil {48 if templ_7745c5c3_Err != nil {
49 return templ_7745c5c3_Err49 return templ_7745c5c3_Err
50 }50 }
51- if p.Inbox != nil {51+ for _, s := range p.Sorts {
52- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "<a class=\"btn inbox-btn\" href=\"")52+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "<a href=\"")
53 if templ_7745c5c3_Err != nil {53 if templ_7745c5c3_Err != nil {
54 return templ_7745c5c3_Err54 return templ_7745c5c3_Err
55 }55 }
56 var templ_7745c5c3_Var3 templ.SafeURL56 var templ_7745c5c3_Var3 templ.SafeURL
57- templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Inbox.Href))57+ templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(s.Href))
58 if templ_7745c5c3_Err != nil {58 if templ_7745c5c3_Err != nil {
59- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 13, Col: 65}59+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 27, Col: 36}
60 }60 }
61 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))61 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
62 if templ_7745c5c3_Err != nil {62 if templ_7745c5c3_Err != nil {
63 return templ_7745c5c3_Err63 return templ_7745c5c3_Err
64 }64 }
65- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "\" title=\"inbox\">Inbox ")65+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "\"")
66- if templ_7745c5c3_Err != nil {
67- return templ_7745c5c3_Err
68- }
69- if p.Inbox.Count >= 0 {
70- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "<span class=\"count\">")
71- if templ_7745c5c3_Err != nil {
72- return templ_7745c5c3_Err
73- }
74- var templ_7745c5c3_Var4 string
75- templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Inbox.Count))
76- if templ_7745c5c3_Err != nil {
77- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 16, Col: 49}
78- }
79- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
80- if templ_7745c5c3_Err != nil {
81- return templ_7745c5c3_Err
82- }
83- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "</span>")
84- if templ_7745c5c3_Err != nil {
85- return templ_7745c5c3_Err
86- }
87- }
88- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "</a>")
89- if templ_7745c5c3_Err != nil {
90- return templ_7745c5c3_Err
91- }
92- }
93- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "<div class=\"filter\"><label for=\"home-filter\" class=\"sr\">filter</label> <input id=\"home-filter\" type=\"search\" data-filter=\"#repo-rows > li\" placeholder=\"Filter repositories…\" autocomplete=\"off\" hx-on:input=\"ermite.filter(this)\"></div><nav class=\"sort\" aria-label=\"Sort repositories\"><span class=\"mute\">sort</span> ")
94- if templ_7745c5c3_Err != nil {
95- return templ_7745c5c3_Err
96- }
97- for _, s := range p.Sorts {
98- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "<a href=\"")
99- if templ_7745c5c3_Err != nil {
100- return templ_7745c5c3_Err
101- }
102- var templ_7745c5c3_Var5 templ.SafeURL
103- templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(s.Href))
104- if templ_7745c5c3_Err != nil {
105- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 35, Col: 36}
106- }
107- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
108- if templ_7745c5c3_Err != nil {
109- return templ_7745c5c3_Err
110- }
111- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "\"")
112 if templ_7745c5c3_Err != nil {66 if templ_7745c5c3_Err != nil {
113 return templ_7745c5c3_Err67 return templ_7745c5c3_Err
114 }68 }
115 if s.Mark != "" {69 if s.Mark != "" {
116- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, " aria-current=\"true\"")70+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, " aria-current=\"true\"")
117 if templ_7745c5c3_Err != nil {71 if templ_7745c5c3_Err != nil {
118 return templ_7745c5c3_Err72 return templ_7745c5c3_Err
119 }73 }
120 }74 }
121- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, ">")75+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, ">")
122 if templ_7745c5c3_Err != nil {76 if templ_7745c5c3_Err != nil {
123 return templ_7745c5c3_Err77 return templ_7745c5c3_Err
124 }78 }
125- var templ_7745c5c3_Var6 string79+ var templ_7745c5c3_Var4 string
126- templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(s.Label)80+ templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(s.Label)
127 if templ_7745c5c3_Err != nil {81 if templ_7745c5c3_Err != nil {
128- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 40, Col: 17}82+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 32, Col: 17}
129 }83 }
130- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))84+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
131 if templ_7745c5c3_Err != nil {85 if templ_7745c5c3_Err != nil {
132 return templ_7745c5c3_Err86 return templ_7745c5c3_Err
133 }87 }
134- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, " ")88+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, " ")
135 if templ_7745c5c3_Err != nil {89 if templ_7745c5c3_Err != nil {
136 return templ_7745c5c3_Err90 return templ_7745c5c3_Err
137 }91 }
138 if s.Mark != "" {92 if s.Mark != "" {
139- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "<span aria-hidden=\"true\">")93+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "<span aria-hidden=\"true\">")
140 if templ_7745c5c3_Err != nil {94 if templ_7745c5c3_Err != nil {
141 return templ_7745c5c3_Err95 return templ_7745c5c3_Err
142 }96 }
143- var templ_7745c5c3_Var7 string97+ var templ_7745c5c3_Var5 string
144- templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(s.Mark)98+ templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(s.Mark)
145 if templ_7745c5c3_Err != nil {99 if templ_7745c5c3_Err != nil {
146- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 42, Col: 42}100+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 34, Col: 42}
147 }101 }
148- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))102+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
149 if templ_7745c5c3_Err != nil {103 if templ_7745c5c3_Err != nil {
150 return templ_7745c5c3_Err104 return templ_7745c5c3_Err
151 }105 }
152- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "</span> <span class=\"sr\">")106+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "</span> <span class=\"sr\">")
153 if templ_7745c5c3_Err != nil {107 if templ_7745c5c3_Err != nil {
154 return templ_7745c5c3_Err108 return templ_7745c5c3_Err
155 }109 }
156- var templ_7745c5c3_Var8 string110+ var templ_7745c5c3_Var6 string
157- templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(", " + s.State)111+ templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(", " + s.State)
158 if templ_7745c5c3_Err != nil {112 if templ_7745c5c3_Err != nil {
159- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 43, Col: 42}113+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 35, Col: 42}
160 }114 }
161- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))115+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
162 if templ_7745c5c3_Err != nil {116 if templ_7745c5c3_Err != nil {
163 return templ_7745c5c3_Err117 return templ_7745c5c3_Err
164 }118 }
165- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "</span>")119+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "</span>")
166 if templ_7745c5c3_Err != nil {120 if templ_7745c5c3_Err != nil {
167 return templ_7745c5c3_Err121 return templ_7745c5c3_Err
168 }122 }
169 }123 }
170- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "</a>")124+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "</a>")
171 if templ_7745c5c3_Err != nil {125 if templ_7745c5c3_Err != nil {
172 return templ_7745c5c3_Err126 return templ_7745c5c3_Err
173 }127 }
174 }128 }
175- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "</nav><div class=\"layout-switch\" role=\"group\" aria-label=\"Layout\" data-js><button type=\"button\" class=\"btn icon\" data-set-layout=\"cards\" aria-pressed=\"true\" title=\"Cards\" aria-label=\"Cards\"><span class=\"ico i-cards\" aria-hidden=\"true\"></span></button> <button type=\"button\" class=\"btn icon\" data-set-layout=\"split\" aria-pressed=\"false\" title=\"Two columns\" aria-label=\"Two columns\"><span class=\"ico i-split\" aria-hidden=\"true\"></span></button> <button type=\"button\" class=\"btn icon\" data-set-layout=\"compact\" aria-pressed=\"false\" title=\"Compact list\" aria-label=\"Compact list\"><span class=\"ico i-compact\" aria-hidden=\"true\"></span></button></div></div><ul class=\"repos\" id=\"repo-rows\" data-rows>")129+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "</nav><div class=\"layout-switch\" role=\"group\" aria-label=\"Layout\" data-js><button type=\"button\" class=\"btn icon\" data-set-layout=\"cards\" aria-pressed=\"true\" title=\"Cards\" aria-label=\"Cards\"><span class=\"ico i-cards\" aria-hidden=\"true\"></span></button> <button type=\"button\" class=\"btn icon\" data-set-layout=\"split\" aria-pressed=\"false\" title=\"Two columns\" aria-label=\"Two columns\"><span class=\"ico i-split\" aria-hidden=\"true\"></span></button> <button type=\"button\" class=\"btn icon\" data-set-layout=\"compact\" aria-pressed=\"false\" title=\"Compact list\" aria-label=\"Compact list\"><span class=\"ico i-compact\" aria-hidden=\"true\"></span></button></div></div><ul class=\"repos\" id=\"repo-rows\" data-rows>")
176 if templ_7745c5c3_Err != nil {130 if templ_7745c5c3_Err != nil {
177 return templ_7745c5c3_Err131 return templ_7745c5c3_Err
178 }132 }
@@ -182,17 +136,17 @@ func Home(l Layout, p HomePage) templ.Component {
182 return templ_7745c5c3_Err136 return templ_7745c5c3_Err
183 }137 }
184 }138 }
185- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "</ul>")139+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "</ul>")
186 if templ_7745c5c3_Err != nil {140 if templ_7745c5c3_Err != nil {
187 return templ_7745c5c3_Err141 return templ_7745c5c3_Err
188 }142 }
189 if len(p.Rows) == 0 {143 if len(p.Rows) == 0 {
190- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "<p class=\"lede dim\">no repositories yet.</p>")144+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "<p class=\"lede dim\">no repositories yet.</p>")
191 if templ_7745c5c3_Err != nil {145 if templ_7745c5c3_Err != nil {
192 return templ_7745c5c3_Err146 return templ_7745c5c3_Err
193 }147 }
194 }148 }
195- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "</section></div>")149+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "</section></div>")
196 if templ_7745c5c3_Err != nil {150 if templ_7745c5c3_Err != nil {
197 return templ_7745c5c3_Err151 return templ_7745c5c3_Err
198 }152 }
@@ -224,12 +178,12 @@ func Summary(l Layout, p SummaryPage) templ.Component {
224 }()178 }()
225 }179 }
226 ctx = templ.InitializeContext(ctx)180 ctx = templ.InitializeContext(ctx)
227- templ_7745c5c3_Var9 := templ.GetChildren(ctx)181+ templ_7745c5c3_Var7 := templ.GetChildren(ctx)
228- if templ_7745c5c3_Var9 == nil {182+ if templ_7745c5c3_Var7 == nil {
229- templ_7745c5c3_Var9 = templ.NopComponent183+ templ_7745c5c3_Var7 = templ.NopComponent
230 }184 }
231 ctx = templ.ClearChildren(ctx)185 ctx = templ.ClearChildren(ctx)
232- templ_7745c5c3_Var10 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {186+ templ_7745c5c3_Var8 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
233 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context187 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
234 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)188 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
235 if !templ_7745c5c3_IsBuffer {189 if !templ_7745c5c3_IsBuffer {
@@ -249,7 +203,7 @@ func Summary(l Layout, p SummaryPage) templ.Component {
249 }203 }
250 return nil204 return nil
251 })205 })
252- templ_7745c5c3_Err = Shell(l, summaryRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var10), templ_7745c5c3_Buffer)206+ templ_7745c5c3_Err = Shell(l, summaryRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var8), templ_7745c5c3_Buffer)
253 if templ_7745c5c3_Err != nil {207 if templ_7745c5c3_Err != nil {
254 return templ_7745c5c3_Err208 return templ_7745c5c3_Err
255 }209 }
@@ -276,158 +230,158 @@ func latestTagFact(t LatestTag) templ.Component {
276 }()230 }()
277 }231 }
278 ctx = templ.InitializeContext(ctx)232 ctx = templ.InitializeContext(ctx)
279- templ_7745c5c3_Var11 := templ.GetChildren(ctx)233+ templ_7745c5c3_Var9 := templ.GetChildren(ctx)
280- if templ_7745c5c3_Var11 == nil {234+ if templ_7745c5c3_Var9 == nil {
281- templ_7745c5c3_Var11 = templ.NopComponent235+ templ_7745c5c3_Var9 = templ.NopComponent
282 }236 }
283 ctx = templ.ClearChildren(ctx)237 ctx = templ.ClearChildren(ctx)
284- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "<dt>latest tag</dt><dd class=\"latest-tag\">")238+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "<dt>latest tag</dt><dd class=\"latest-tag\">")
285 if templ_7745c5c3_Err != nil {239 if templ_7745c5c3_Err != nil {
286 return templ_7745c5c3_Err240 return templ_7745c5c3_Err
287 }241 }
288 if t.Name != "" {242 if t.Name != "" {
289- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "<a class=\"tag-name\" href=\"")243+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "<a class=\"tag-name\" href=\"")
290 if templ_7745c5c3_Err != nil {244 if templ_7745c5c3_Err != nil {
291 return templ_7745c5c3_Err245 return templ_7745c5c3_Err
292 }246 }
293- var templ_7745c5c3_Var12 templ.SafeURL247+ var templ_7745c5c3_Var10 templ.SafeURL
294- templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(t.Href))248+ templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(t.Href))
295 if templ_7745c5c3_Err != nil {249 if templ_7745c5c3_Err != nil {
296- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 90, Col: 51}250+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 82, Col: 51}
297 }251 }
298- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))252+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
299 if templ_7745c5c3_Err != nil {253 if templ_7745c5c3_Err != nil {
300 return templ_7745c5c3_Err254 return templ_7745c5c3_Err
301 }255 }
302- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "\" title=\"")256+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "\" title=\"")
303 if templ_7745c5c3_Err != nil {257 if templ_7745c5c3_Err != nil {
304 return templ_7745c5c3_Err258 return templ_7745c5c3_Err
305 }259 }
306- var templ_7745c5c3_Var13 string260+ var templ_7745c5c3_Var11 string
307- templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.ResolveAttributeValue(t.Subject)261+ templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.ResolveAttributeValue(t.Subject)
308 if templ_7745c5c3_Err != nil {262 if templ_7745c5c3_Err != nil {
309- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 90, Col: 71}263+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 82, Col: 71}
310 }264 }
311- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var13)265+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var11)
312 if templ_7745c5c3_Err != nil {266 if templ_7745c5c3_Err != nil {
313 return templ_7745c5c3_Err267 return templ_7745c5c3_Err
314 }268 }
315- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "\">")269+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "\">")
316 if templ_7745c5c3_Err != nil {270 if templ_7745c5c3_Err != nil {
317 return templ_7745c5c3_Err271 return templ_7745c5c3_Err
318 }272 }
319- var templ_7745c5c3_Var14 string273+ var templ_7745c5c3_Var12 string
320- templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(t.Name)274+ templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(t.Name)
321 if templ_7745c5c3_Err != nil {275 if templ_7745c5c3_Err != nil {
322- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 90, Col: 82}276+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 82, Col: 82}
323 }277 }
324- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))278+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
325 if templ_7745c5c3_Err != nil {279 if templ_7745c5c3_Err != nil {
326 return templ_7745c5c3_Err280 return templ_7745c5c3_Err
327 }281 }
328- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "</a> ")282+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "</a> ")
329 if templ_7745c5c3_Err != nil {283 if templ_7745c5c3_Err != nil {
330 return templ_7745c5c3_Err284 return templ_7745c5c3_Err
331 }285 }
332 if t.WhenAt != "" {286 if t.WhenAt != "" {
333- var templ_7745c5c3_Var15 string287+ var templ_7745c5c3_Var13 string
334- templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")288+ templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
335 if templ_7745c5c3_Err != nil {289 if templ_7745c5c3_Err != nil {
336- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 92, Col: 12}290+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 84, Col: 12}
337 }291 }
338- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))292+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
339 if templ_7745c5c3_Err != nil {293 if templ_7745c5c3_Err != nil {
340 return templ_7745c5c3_Err294 return templ_7745c5c3_Err
341 }295 }
342- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "<time datetime=\"")296+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "<time datetime=\"")
343 if templ_7745c5c3_Err != nil {297 if templ_7745c5c3_Err != nil {
344 return templ_7745c5c3_Err298 return templ_7745c5c3_Err
345 }299 }
346- var templ_7745c5c3_Var16 string300+ var templ_7745c5c3_Var14 string
347- templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.ResolveAttributeValue(t.WhenAt)301+ templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.ResolveAttributeValue(t.WhenAt)
348 if templ_7745c5c3_Err != nil {302 if templ_7745c5c3_Err != nil {
349- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 92, Col: 39}303+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 84, Col: 39}
350 }304 }
351- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var16)305+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var14)
352 if templ_7745c5c3_Err != nil {306 if templ_7745c5c3_Err != nil {
353 return templ_7745c5c3_Err307 return templ_7745c5c3_Err
354 }308 }
355- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "\" title=\"")309+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "\" title=\"")
356 if templ_7745c5c3_Err != nil {310 if templ_7745c5c3_Err != nil {
357 return templ_7745c5c3_Err311 return templ_7745c5c3_Err
358 }312 }
359- var templ_7745c5c3_Var17 string313+ var templ_7745c5c3_Var15 string
360- templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.ResolveAttributeValue(t.WhenAt)314+ templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.ResolveAttributeValue(t.WhenAt)
361 if templ_7745c5c3_Err != nil {315 if templ_7745c5c3_Err != nil {
362- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 92, Col: 58}316+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 84, Col: 58}
363 }317 }
364- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var17)318+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var15)
365 if templ_7745c5c3_Err != nil {319 if templ_7745c5c3_Err != nil {
366 return templ_7745c5c3_Err320 return templ_7745c5c3_Err
367 }321 }
368- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "\">")322+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "\">")
369 if templ_7745c5c3_Err != nil {323 if templ_7745c5c3_Err != nil {
370 return templ_7745c5c3_Err324 return templ_7745c5c3_Err
371 }325 }
372- var templ_7745c5c3_Var18 string326+ var templ_7745c5c3_Var16 string
373- templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(t.When)327+ templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(t.When)
374 if templ_7745c5c3_Err != nil {328 if templ_7745c5c3_Err != nil {
375- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 92, Col: 69}329+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 84, Col: 69}
376 }330 }
377- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18))331+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16))
378 if templ_7745c5c3_Err != nil {332 if templ_7745c5c3_Err != nil {
379 return templ_7745c5c3_Err333 return templ_7745c5c3_Err
380 }334 }
381- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "</time>")335+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "</time>")
382 if templ_7745c5c3_Err != nil {336 if templ_7745c5c3_Err != nil {
383 return templ_7745c5c3_Err337 return templ_7745c5c3_Err
384 }338 }
385 }339 }
386- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, " ")340+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, " ")
387 if templ_7745c5c3_Err != nil {341 if templ_7745c5c3_Err != nil {
388 return templ_7745c5c3_Err342 return templ_7745c5c3_Err
389 }343 }
390- var templ_7745c5c3_Var19 string344+ var templ_7745c5c3_Var17 string
391- templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")345+ templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
392 if templ_7745c5c3_Err != nil {346 if templ_7745c5c3_Err != nil {
393- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 94, Col: 11}347+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 86, Col: 11}
394 }348 }
395- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))349+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var17))
396 if templ_7745c5c3_Err != nil {350 if templ_7745c5c3_Err != nil {
397 return templ_7745c5c3_Err351 return templ_7745c5c3_Err
398 }352 }
399- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, " ")353+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, " ")
400 if templ_7745c5c3_Err != nil {354 if templ_7745c5c3_Err != nil {
401 return templ_7745c5c3_Err355 return templ_7745c5c3_Err
402 }356 }
403 }357 }
404- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "<a class=\"all-tags\" href=\"")358+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "<a class=\"all-tags\" href=\"")
405 if templ_7745c5c3_Err != nil {359 if templ_7745c5c3_Err != nil {
406 return templ_7745c5c3_Err360 return templ_7745c5c3_Err
407 }361 }
408- var templ_7745c5c3_Var20 templ.SafeURL362+ var templ_7745c5c3_Var18 templ.SafeURL
409- templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(t.RefsHref))363+ templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(t.RefsHref))
410 if templ_7745c5c3_Err != nil {364 if templ_7745c5c3_Err != nil {
411- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 96, Col: 54}365+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 88, Col: 54}
412 }366 }
413- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20))367+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18))
414 if templ_7745c5c3_Err != nil {368 if templ_7745c5c3_Err != nil {
415 return templ_7745c5c3_Err369 return templ_7745c5c3_Err
416 }370 }
417- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "\">")371+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "\">")
418 if templ_7745c5c3_Err != nil {372 if templ_7745c5c3_Err != nil {
419 return templ_7745c5c3_Err373 return templ_7745c5c3_Err
420 }374 }
421- var templ_7745c5c3_Var21 string375+ var templ_7745c5c3_Var19 string
422- templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs(plural(t.Count, "tag", "tags"))376+ templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(plural(t.Count, "tag", "tags"))
423 if templ_7745c5c3_Err != nil {377 if templ_7745c5c3_Err != nil {
424- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 96, Col: 89}378+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 88, Col: 89}
425 }379 }
426- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21))380+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))
427 if templ_7745c5c3_Err != nil {381 if templ_7745c5c3_Err != nil {
428 return templ_7745c5c3_Err382 return templ_7745c5c3_Err
429 }383 }
430- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "</a></dd>")384+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "</a></dd>")
431 if templ_7745c5c3_Err != nil {385 if templ_7745c5c3_Err != nil {
432 return templ_7745c5c3_Err386 return templ_7745c5c3_Err
433 }387 }
@@ -451,12 +405,12 @@ func summaryRail(p SummaryPage) templ.Component {
451 }()405 }()
452 }406 }
453 ctx = templ.InitializeContext(ctx)407 ctx = templ.InitializeContext(ctx)
454- templ_7745c5c3_Var22 := templ.GetChildren(ctx)408+ templ_7745c5c3_Var20 := templ.GetChildren(ctx)
455- if templ_7745c5c3_Var22 == nil {409+ if templ_7745c5c3_Var20 == nil {
456- templ_7745c5c3_Var22 = templ.NopComponent410+ templ_7745c5c3_Var20 = templ.NopComponent
457 }411 }
458 ctx = templ.ClearChildren(ctx)412 ctx = templ.ClearChildren(ctx)
459- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "<section aria-labelledby=\"r-clone\"><h2 id=\"r-clone\">Clone</h2>")413+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "<section aria-labelledby=\"r-clone\"><h2 id=\"r-clone\">Clone</h2>")
460 if templ_7745c5c3_Err != nil {414 if templ_7745c5c3_Err != nil {
461 return templ_7745c5c3_Err415 return templ_7745c5c3_Err
462 }416 }
@@ -464,25 +418,25 @@ func summaryRail(p SummaryPage) templ.Component {
464 if templ_7745c5c3_Err != nil {418 if templ_7745c5c3_Err != nil {
465 return templ_7745c5c3_Err419 return templ_7745c5c3_Err
466 }420 }
467- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "</section><section aria-labelledby=\"r-facts\"><h2 id=\"r-facts\">About</h2><dl class=\"kv\">")421+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "</section><section aria-labelledby=\"r-facts\"><h2 id=\"r-facts\">About</h2><dl class=\"kv\">")
468 if templ_7745c5c3_Err != nil {422 if templ_7745c5c3_Err != nil {
469 return templ_7745c5c3_Err423 return templ_7745c5c3_Err
470 }424 }
471 for _, f := range p.Facts {425 for _, f := range p.Facts {
472- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "<dt>")426+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "<dt>")
473 if templ_7745c5c3_Err != nil {427 if templ_7745c5c3_Err != nil {
474 return templ_7745c5c3_Err428 return templ_7745c5c3_Err
475 }429 }
476- var templ_7745c5c3_Var23 string430+ var templ_7745c5c3_Var21 string
477- templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(f.Key)431+ templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs(f.Key)
478 if templ_7745c5c3_Err != nil {432 if templ_7745c5c3_Err != nil {
479- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 107, Col: 15}433+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 99, Col: 15}
480 }434 }
481- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23))435+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21))
482 if templ_7745c5c3_Err != nil {436 if templ_7745c5c3_Err != nil {
483 return templ_7745c5c3_Err437 return templ_7745c5c3_Err
484 }438 }
485- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "</dt>")439+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "</dt>")
486 if templ_7745c5c3_Err != nil {440 if templ_7745c5c3_Err != nil {
487 return templ_7745c5c3_Err441 return templ_7745c5c3_Err
488 }442 }
@@ -497,25 +451,25 @@ func summaryRail(p SummaryPage) templ.Component {
497 return templ_7745c5c3_Err451 return templ_7745c5c3_Err
498 }452 }
499 }453 }
500- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "</dl></section>")454+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "</dl></section>")
501 if templ_7745c5c3_Err != nil {455 if templ_7745c5c3_Err != nil {
502 return templ_7745c5c3_Err456 return templ_7745c5c3_Err
503 }457 }
504 if len(p.Recent) > 0 {458 if len(p.Recent) > 0 {
505- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "<section aria-labelledby=\"r-recent\"><h2 id=\"r-recent\">Recent commits <a href=\"")459+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "<section aria-labelledby=\"r-recent\"><h2 id=\"r-recent\">Recent commits <a href=\"")
506 if templ_7745c5c3_Err != nil {460 if templ_7745c5c3_Err != nil {
507 return templ_7745c5c3_Err461 return templ_7745c5c3_Err
508 }462 }
509- var templ_7745c5c3_Var24 templ.SafeURL463+ var templ_7745c5c3_Var22 templ.SafeURL
510- templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.AllHref))464+ templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.AllHref))
511 if templ_7745c5c3_Err != nil {465 if templ_7745c5c3_Err != nil {
512- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 116, Col: 105}466+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 108, Col: 105}
513 }467 }
514- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var24))468+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var22))
515 if templ_7745c5c3_Err != nil {469 if templ_7745c5c3_Err != nil {
516 return templ_7745c5c3_Err470 return templ_7745c5c3_Err
517 }471 }
518- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "\">View all</a></h2>")472+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "\">View all</a></h2>")
519 if templ_7745c5c3_Err != nil {473 if templ_7745c5c3_Err != nil {
520 return templ_7745c5c3_Err474 return templ_7745c5c3_Err
521 }475 }
@@ -523,7 +477,7 @@ func summaryRail(p SummaryPage) templ.Component {
523 if templ_7745c5c3_Err != nil {477 if templ_7745c5c3_Err != nil {
524 return templ_7745c5c3_Err478 return templ_7745c5c3_Err
525 }479 }
526- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "</section>")480+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "</section>")
527 if templ_7745c5c3_Err != nil {481 if templ_7745c5c3_Err != nil {
528 return templ_7745c5c3_Err482 return templ_7745c5c3_Err
529 }483 }
@@ -535,7 +489,7 @@ func summaryRail(p SummaryPage) templ.Component {
535 }489 }
536 }490 }
537 if len(p.Outline) > 0 && p.Readme != nil {491 if len(p.Outline) > 0 && p.Readme != nil {
538- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "<section aria-labelledby=\"r-outline\"><h2 id=\"r-outline\">On this page</h2>")492+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "<section aria-labelledby=\"r-outline\"><h2 id=\"r-outline\">On this page</h2>")
539 if templ_7745c5c3_Err != nil {493 if templ_7745c5c3_Err != nil {
540 return templ_7745c5c3_Err494 return templ_7745c5c3_Err
541 }495 }
@@ -543,7 +497,7 @@ func summaryRail(p SummaryPage) templ.Component {
543 if templ_7745c5c3_Err != nil {497 if templ_7745c5c3_Err != nil {
544 return templ_7745c5c3_Err498 return templ_7745c5c3_Err
545 }499 }
546- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "</section>")500+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "</section>")
547 if templ_7745c5c3_Err != nil {501 if templ_7745c5c3_Err != nil {
548 return templ_7745c5c3_Err502 return templ_7745c5c3_Err
549 }503 }
@@ -569,12 +523,12 @@ func Refs(l Layout, p RefsPage) templ.Component {
569 }()523 }()
570 }524 }
571 ctx = templ.InitializeContext(ctx)525 ctx = templ.InitializeContext(ctx)
572- templ_7745c5c3_Var25 := templ.GetChildren(ctx)526+ templ_7745c5c3_Var23 := templ.GetChildren(ctx)
573- if templ_7745c5c3_Var25 == nil {527+ if templ_7745c5c3_Var23 == nil {
574- templ_7745c5c3_Var25 = templ.NopComponent528+ templ_7745c5c3_Var23 = templ.NopComponent
575 }529 }
576 ctx = templ.ClearChildren(ctx)530 ctx = templ.ClearChildren(ctx)
577- templ_7745c5c3_Var26 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {531+ templ_7745c5c3_Var24 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
578 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context532 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
579 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)533 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
580 if !templ_7745c5c3_IsBuffer {534 if !templ_7745c5c3_IsBuffer {
@@ -586,7 +540,7 @@ func Refs(l Layout, p RefsPage) templ.Component {
586 }()540 }()
587 }541 }
588 ctx = templ.InitializeContext(ctx)542 ctx = templ.InitializeContext(ctx)
589- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "<div class=\"filter\"><label for=\"ref-filter\" class=\"sr\">filter</label> <input id=\"ref-filter\" type=\"search\" data-filter=\"#ref-rows > tr\" placeholder=\"Filter branches and tags…\" autocomplete=\"off\" hx-on:input=\"ermite.filter(this)\"></div><table class=\"list refs\" aria-label=\"Branches and tags\"><thead><tr><th class=\"c-kind\">kind</th><th class=\"c-name\">name</th><th class=\"c-sha\">commit</th><th class=\"c-sub\">subject</th><th class=\"c-when\">date</th></tr></thead>")543+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "<div class=\"filter\"><label for=\"ref-filter\" class=\"sr\">filter</label> <input id=\"ref-filter\" type=\"search\" data-filter=\"#ref-rows > tr\" placeholder=\"Filter branches and tags…\" autocomplete=\"off\" hx-on:input=\"ermite.filter(this)\"></div><table class=\"list refs\" aria-label=\"Branches and tags\"><thead><tr><th class=\"c-kind\">kind</th><th class=\"c-name\">name</th><th class=\"c-sha\">commit</th><th class=\"c-sub\">subject</th><th class=\"c-when\">date</th></tr></thead>")
590 if templ_7745c5c3_Err != nil {544 if templ_7745c5c3_Err != nil {
591 return templ_7745c5c3_Err545 return templ_7745c5c3_Err
592 }546 }
@@ -594,32 +548,32 @@ func Refs(l Layout, p RefsPage) templ.Component {
594 if templ_7745c5c3_Err != nil {548 if templ_7745c5c3_Err != nil {
595 return templ_7745c5c3_Err549 return templ_7745c5c3_Err
596 }550 }
597- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "</table>")551+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "</table>")
598 if templ_7745c5c3_Err != nil {552 if templ_7745c5c3_Err != nil {
599 return templ_7745c5c3_Err553 return templ_7745c5c3_Err
600 }554 }
601 if p.Note != "" {555 if p.Note != "" {
602- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "<p class=\"note\">")556+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "<p class=\"note\">")
603 if templ_7745c5c3_Err != nil {557 if templ_7745c5c3_Err != nil {
604 return templ_7745c5c3_Err558 return templ_7745c5c3_Err
605 }559 }
606- var templ_7745c5c3_Var27 string560+ var templ_7745c5c3_Var25 string
607- templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)561+ templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)
608 if templ_7745c5c3_Err != nil {562 if templ_7745c5c3_Err != nil {
609- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 149, Col: 27}563+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 141, Col: 27}
610 }564 }
611- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27))565+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25))
612 if templ_7745c5c3_Err != nil {566 if templ_7745c5c3_Err != nil {
613 return templ_7745c5c3_Err567 return templ_7745c5c3_Err
614 }568 }
615- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "</p>")569+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "</p>")
616 if templ_7745c5c3_Err != nil {570 if templ_7745c5c3_Err != nil {
617 return templ_7745c5c3_Err571 return templ_7745c5c3_Err
618 }572 }
619 }573 }
620 return nil574 return nil
621 })575 })
622- templ_7745c5c3_Err = Shell(l, refsRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var26), templ_7745c5c3_Buffer)576+ templ_7745c5c3_Err = Shell(l, refsRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var24), templ_7745c5c3_Buffer)
623 if templ_7745c5c3_Err != nil {577 if templ_7745c5c3_Err != nil {
624 return templ_7745c5c3_Err578 return templ_7745c5c3_Err
625 }579 }
@@ -643,112 +597,112 @@ func refRow(kind string, r RefRow) templ.Component {
643 }()597 }()
644 }598 }
645 ctx = templ.InitializeContext(ctx)599 ctx = templ.InitializeContext(ctx)
646- templ_7745c5c3_Var28 := templ.GetChildren(ctx)600+ templ_7745c5c3_Var26 := templ.GetChildren(ctx)
647- if templ_7745c5c3_Var28 == nil {601+ if templ_7745c5c3_Var26 == nil {
648- templ_7745c5c3_Var28 = templ.NopComponent602+ templ_7745c5c3_Var26 = templ.NopComponent
649 }603 }
650 ctx = templ.ClearChildren(ctx)604 ctx = templ.ClearChildren(ctx)
651- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "<tr")605+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "<tr")
652 if templ_7745c5c3_Err != nil {606 if templ_7745c5c3_Err != nil {
653 return templ_7745c5c3_Err607 return templ_7745c5c3_Err
654 }608 }
655 if r.Cursor {609 if r.Cursor {
656- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, " data-cursor")610+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, " data-cursor")
657 if templ_7745c5c3_Err != nil {611 if templ_7745c5c3_Err != nil {
658 return templ_7745c5c3_Err612 return templ_7745c5c3_Err
659 }613 }
660 }614 }
661- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "><td class=\"c-kind mute\">")615+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "><td class=\"c-kind mute\">")
662 if templ_7745c5c3_Err != nil {616 if templ_7745c5c3_Err != nil {
663 return templ_7745c5c3_Err617 return templ_7745c5c3_Err
664 }618 }
665- var templ_7745c5c3_Var29 string619+ var templ_7745c5c3_Var27 string
666- templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(kind)620+ templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(kind)
667 if templ_7745c5c3_Err != nil {621 if templ_7745c5c3_Err != nil {
668- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 156, Col: 32}622+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 148, Col: 32}
669 }623 }
670- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29))624+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27))
671 if templ_7745c5c3_Err != nil {625 if templ_7745c5c3_Err != nil {
672 return templ_7745c5c3_Err626 return templ_7745c5c3_Err
673 }627 }
674- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "</td><td class=\"c-name\"><a href=\"")628+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "</td><td class=\"c-name\"><a href=\"")
675 if templ_7745c5c3_Err != nil {629 if templ_7745c5c3_Err != nil {
676 return templ_7745c5c3_Err630 return templ_7745c5c3_Err
677 }631 }
678- var templ_7745c5c3_Var30 templ.SafeURL632+ var templ_7745c5c3_Var28 templ.SafeURL
679- templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href))633+ templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href))
680 if templ_7745c5c3_Err != nil {634 if templ_7745c5c3_Err != nil {
681- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 158, Col: 34}635+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 150, Col: 34}
682 }636 }
683- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30))637+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var28))
684 if templ_7745c5c3_Err != nil {638 if templ_7745c5c3_Err != nil {
685 return templ_7745c5c3_Err639 return templ_7745c5c3_Err
686 }640 }
687- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "\">")641+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "\">")
688 if templ_7745c5c3_Err != nil {642 if templ_7745c5c3_Err != nil {
689 return templ_7745c5c3_Err643 return templ_7745c5c3_Err
690 }644 }
691- var templ_7745c5c3_Var31 string645+ var templ_7745c5c3_Var29 string
692- templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)646+ templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
693 if templ_7745c5c3_Err != nil {647 if templ_7745c5c3_Err != nil {
694- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 158, Col: 45}648+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 150, Col: 45}
695 }649 }
696- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31))650+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29))
697 if templ_7745c5c3_Err != nil {651 if templ_7745c5c3_Err != nil {
698 return templ_7745c5c3_Err652 return templ_7745c5c3_Err
699 }653 }
700- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "</a> ")654+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "</a> ")
701 if templ_7745c5c3_Err != nil {655 if templ_7745c5c3_Err != nil {
702 return templ_7745c5c3_Err656 return templ_7745c5c3_Err
703 }657 }
704 if r.Default {658 if r.Default {
705- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "<span class=\"pill\">default</span>")659+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "<span class=\"pill\">default</span>")
706 if templ_7745c5c3_Err != nil {660 if templ_7745c5c3_Err != nil {
707 return templ_7745c5c3_Err661 return templ_7745c5c3_Err
708 }662 }
709 }663 }
710- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "</td><td class=\"c-sha\">")664+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "</td><td class=\"c-sha\">")
711 if templ_7745c5c3_Err != nil {665 if templ_7745c5c3_Err != nil {
712 return templ_7745c5c3_Err666 return templ_7745c5c3_Err
713 }667 }
714 if r.CHref != "" {668 if r.CHref != "" {
715- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "<a href=\"")669+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "<a href=\"")
716 if templ_7745c5c3_Err != nil {670 if templ_7745c5c3_Err != nil {
717 return templ_7745c5c3_Err671 return templ_7745c5c3_Err
718 }672 }
719- var templ_7745c5c3_Var32 templ.SafeURL673+ var templ_7745c5c3_Var30 templ.SafeURL
720- templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.CHref))674+ templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.CHref))
721 if templ_7745c5c3_Err != nil {675 if templ_7745c5c3_Err != nil {
722- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 165, Col: 36}676+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 157, Col: 36}
723 }677 }
724- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32))678+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30))
725 if templ_7745c5c3_Err != nil {679 if templ_7745c5c3_Err != nil {
726 return templ_7745c5c3_Err680 return templ_7745c5c3_Err
727 }681 }
728- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "\">")682+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "\">")
729 if templ_7745c5c3_Err != nil {683 if templ_7745c5c3_Err != nil {
730 return templ_7745c5c3_Err684 return templ_7745c5c3_Err
731 }685 }
732- var templ_7745c5c3_Var33 string686+ var templ_7745c5c3_Var31 string
733- templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short)687+ templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short)
734 if templ_7745c5c3_Err != nil {688 if templ_7745c5c3_Err != nil {
735- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 165, Col: 48}689+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 157, Col: 48}
736 }690 }
737- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33))691+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31))
738 if templ_7745c5c3_Err != nil {692 if templ_7745c5c3_Err != nil {
739 return templ_7745c5c3_Err693 return templ_7745c5c3_Err
740 }694 }
741- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</a>")695+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "</a>")
742 if templ_7745c5c3_Err != nil {696 if templ_7745c5c3_Err != nil {
743 return templ_7745c5c3_Err697 return templ_7745c5c3_Err
744 }698 }
745 } else {699 } else {
746- var templ_7745c5c3_Var34 string700+ var templ_7745c5c3_Var32 string
747- templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short)701+ templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short)
748 if templ_7745c5c3_Err != nil {702 if templ_7745c5c3_Err != nil {
749- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 167, Col: 13}703+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 159, Col: 13}
750 }704 }
751- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34))705+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32))
752 if templ_7745c5c3_Err != nil {706 if templ_7745c5c3_Err != nil {
753 return templ_7745c5c3_Err707 return templ_7745c5c3_Err
754 }708 }
@@ -757,69 +711,69 @@ func refRow(kind string, r RefRow) templ.Component {
757 if templ_7745c5c3_Err != nil {711 if templ_7745c5c3_Err != nil {
758 return templ_7745c5c3_Err712 return templ_7745c5c3_Err
759 }713 }
760- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "</td><td class=\"c-sub\">")714+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "</td><td class=\"c-sub\">")
761 if templ_7745c5c3_Err != nil {715 if templ_7745c5c3_Err != nil {
762 return templ_7745c5c3_Err716 return templ_7745c5c3_Err
763 }717 }
764- var templ_7745c5c3_Var35 string718+ var templ_7745c5c3_Var33 string
765- templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinStringErrs(r.Subject)719+ templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinStringErrs(r.Subject)
766 if templ_7745c5c3_Err != nil {720 if templ_7745c5c3_Err != nil {
767- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 171, Col: 31}721+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 163, Col: 31}
768 }722 }
769- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35))723+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33))
770 if templ_7745c5c3_Err != nil {724 if templ_7745c5c3_Err != nil {
771 return templ_7745c5c3_Err725 return templ_7745c5c3_Err
772 }726 }
773- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "</td><td class=\"c-when dim\">")727+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "</td><td class=\"c-when dim\">")
774 if templ_7745c5c3_Err != nil {728 if templ_7745c5c3_Err != nil {
775 return templ_7745c5c3_Err729 return templ_7745c5c3_Err
776 }730 }
777 if r.WhenAt != "" {731 if r.WhenAt != "" {
778- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "<time datetime=\"")732+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "<time datetime=\"")
779 if templ_7745c5c3_Err != nil {733 if templ_7745c5c3_Err != nil {
780 return templ_7745c5c3_Err734 return templ_7745c5c3_Err
781 }735 }
782- var templ_7745c5c3_Var36 string736+ var templ_7745c5c3_Var34 string
783- templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)737+ templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
784 if templ_7745c5c3_Err != nil {738 if templ_7745c5c3_Err != nil {
785- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 174, Col: 29}739+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 166, Col: 29}
786 }740 }
787- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var36)741+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var34)
788 if templ_7745c5c3_Err != nil {742 if templ_7745c5c3_Err != nil {
789 return templ_7745c5c3_Err743 return templ_7745c5c3_Err
790 }744 }
791- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "\" title=\"")745+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "\" title=\"")
792 if templ_7745c5c3_Err != nil {746 if templ_7745c5c3_Err != nil {
793 return templ_7745c5c3_Err747 return templ_7745c5c3_Err
794 }748 }
795- var templ_7745c5c3_Var37 string749+ var templ_7745c5c3_Var35 string
796- templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)750+ templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
797 if templ_7745c5c3_Err != nil {751 if templ_7745c5c3_Err != nil {
798- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 174, Col: 48}752+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 166, Col: 48}
799 }753 }
800- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var37)754+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var35)
801 if templ_7745c5c3_Err != nil {755 if templ_7745c5c3_Err != nil {
802 return templ_7745c5c3_Err756 return templ_7745c5c3_Err
803 }757 }
804- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "\">")758+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "\">")
805 if templ_7745c5c3_Err != nil {759 if templ_7745c5c3_Err != nil {
806 return templ_7745c5c3_Err760 return templ_7745c5c3_Err
807 }761 }
808- var templ_7745c5c3_Var38 string762+ var templ_7745c5c3_Var36 string
809- templ_7745c5c3_Var38, templ_7745c5c3_Err = templ.JoinStringErrs(r.When)763+ templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.JoinStringErrs(r.When)
810 if templ_7745c5c3_Err != nil {764 if templ_7745c5c3_Err != nil {
811- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 174, Col: 59}765+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 166, Col: 59}
812 }766 }
813- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var38))767+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var36))
814 if templ_7745c5c3_Err != nil {768 if templ_7745c5c3_Err != nil {
815 return templ_7745c5c3_Err769 return templ_7745c5c3_Err
816 }770 }
817- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "</time>")771+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</time>")
818 if templ_7745c5c3_Err != nil {772 if templ_7745c5c3_Err != nil {
819 return templ_7745c5c3_Err773 return templ_7745c5c3_Err
820 }774 }
821 }775 }
822- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "</td></tr>")776+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "</td></tr>")
823 if templ_7745c5c3_Err != nil {777 if templ_7745c5c3_Err != nil {
824 return templ_7745c5c3_Err778 return templ_7745c5c3_Err
825 }779 }
@@ -843,12 +797,12 @@ func refsRail(p RefsPage) templ.Component {
843 }()797 }()
844 }798 }
845 ctx = templ.InitializeContext(ctx)799 ctx = templ.InitializeContext(ctx)
846- templ_7745c5c3_Var39 := templ.GetChildren(ctx)800+ templ_7745c5c3_Var37 := templ.GetChildren(ctx)
847- if templ_7745c5c3_Var39 == nil {801+ if templ_7745c5c3_Var37 == nil {
848- templ_7745c5c3_Var39 = templ.NopComponent802+ templ_7745c5c3_Var37 = templ.NopComponent
849 }803 }
850 ctx = templ.ClearChildren(ctx)804 ctx = templ.ClearChildren(ctx)
851- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "<section aria-labelledby=\"r-refs\"><h2 id=\"r-refs\">Overview</h2>")805+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "<section aria-labelledby=\"r-refs\"><h2 id=\"r-refs\">Overview</h2>")
852 if templ_7745c5c3_Err != nil {806 if templ_7745c5c3_Err != nil {
853 return templ_7745c5c3_Err807 return templ_7745c5c3_Err
854 }808 }
@@ -856,7 +810,7 @@ func refsRail(p RefsPage) templ.Component {
856 if templ_7745c5c3_Err != nil {810 if templ_7745c5c3_Err != nil {
857 return templ_7745c5c3_Err811 return templ_7745c5c3_Err
858 }812 }
859- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "</section>")813+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "</section>")
860 if templ_7745c5c3_Err != nil {814 if templ_7745c5c3_Err != nil {
861 return templ_7745c5c3_Err815 return templ_7745c5c3_Err
862 }816 }
@@ -881,12 +835,12 @@ func State(l Layout, p StatePage) templ.Component {
881 }()835 }()
882 }836 }
883 ctx = templ.InitializeContext(ctx)837 ctx = templ.InitializeContext(ctx)
884- templ_7745c5c3_Var40 := templ.GetChildren(ctx)838+ templ_7745c5c3_Var38 := templ.GetChildren(ctx)
885- if templ_7745c5c3_Var40 == nil {839+ if templ_7745c5c3_Var38 == nil {
886- templ_7745c5c3_Var40 = templ.NopComponent840+ templ_7745c5c3_Var38 = templ.NopComponent
887 }841 }
888 ctx = templ.ClearChildren(ctx)842 ctx = templ.ClearChildren(ctx)
889- templ_7745c5c3_Var41 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {843+ templ_7745c5c3_Var39 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
890 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context844 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
891 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)845 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
892 if !templ_7745c5c3_IsBuffer {846 if !templ_7745c5c3_IsBuffer {
@@ -898,51 +852,51 @@ func State(l Layout, p StatePage) templ.Component {
898 }()852 }()
899 }853 }
900 ctx = templ.InitializeContext(ctx)854 ctx = templ.InitializeContext(ctx)
901- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "<section class=\"state\" aria-labelledby=\"state-title\"><p class=\"eyebrow\">")855+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "<section class=\"state\" aria-labelledby=\"state-title\"><p class=\"eyebrow\">")
902 if templ_7745c5c3_Err != nil {856 if templ_7745c5c3_Err != nil {
903 return templ_7745c5c3_Err857 return templ_7745c5c3_Err
904 }858 }
905- var templ_7745c5c3_Var42 string859+ var templ_7745c5c3_Var40 string
906- templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinStringErrs(p.Code)860+ templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.JoinStringErrs(p.Code)
907 if templ_7745c5c3_Err != nil {861 if templ_7745c5c3_Err != nil {
908- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 191, Col: 30}862+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 183, Col: 30}
909 }863 }
910- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42))864+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var40))
911 if templ_7745c5c3_Err != nil {865 if templ_7745c5c3_Err != nil {
912 return templ_7745c5c3_Err866 return templ_7745c5c3_Err
913 }867 }
914- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "</p><h1 id=\"state-title\">")868+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "</p><h1 id=\"state-title\">")
915 if templ_7745c5c3_Err != nil {869 if templ_7745c5c3_Err != nil {
916 return templ_7745c5c3_Err870 return templ_7745c5c3_Err
917 }871 }
918- var templ_7745c5c3_Var43 string872+ var templ_7745c5c3_Var41 string
919- templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)873+ templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)
920 if templ_7745c5c3_Err != nil {874 if templ_7745c5c3_Err != nil {
921- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 192, Col: 33}875+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 184, Col: 33}
922 }876 }
923- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43))877+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var41))
924 if templ_7745c5c3_Err != nil {878 if templ_7745c5c3_Err != nil {
925 return templ_7745c5c3_Err879 return templ_7745c5c3_Err
926 }880 }
927- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</h1>")881+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "</h1>")
928 if templ_7745c5c3_Err != nil {882 if templ_7745c5c3_Err != nil {
929 return templ_7745c5c3_Err883 return templ_7745c5c3_Err
930 }884 }
931 for _, line := range p.Lines {885 for _, line := range p.Lines {
932- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "<p class=\"dim\">")886+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "<p class=\"dim\">")
933 if templ_7745c5c3_Err != nil {887 if templ_7745c5c3_Err != nil {
934 return templ_7745c5c3_Err888 return templ_7745c5c3_Err
935 }889 }
936- var templ_7745c5c3_Var44 string890+ var templ_7745c5c3_Var42 string
937- templ_7745c5c3_Var44, templ_7745c5c3_Err = templ.JoinStringErrs(line)891+ templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinStringErrs(line)
938 if templ_7745c5c3_Err != nil {892 if templ_7745c5c3_Err != nil {
939- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 194, Col: 25}893+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 186, Col: 25}
940 }894 }
941- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var44))895+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42))
942 if templ_7745c5c3_Err != nil {896 if templ_7745c5c3_Err != nil {
943 return templ_7745c5c3_Err897 return templ_7745c5c3_Err
944 }898 }
945- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "</p>")899+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "</p>")
946 if templ_7745c5c3_Err != nil {900 if templ_7745c5c3_Err != nil {
947 return templ_7745c5c3_Err901 return templ_7745c5c3_Err
948 }902 }
@@ -953,49 +907,49 @@ func State(l Layout, p StatePage) templ.Component {
953 return templ_7745c5c3_Err907 return templ_7745c5c3_Err
954 }908 }
955 }909 }
956- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "<p class=\"state-back\">")910+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "<p class=\"state-back\">")
957 if templ_7745c5c3_Err != nil {911 if templ_7745c5c3_Err != nil {
958 return templ_7745c5c3_Err912 return templ_7745c5c3_Err
959 }913 }
960 for _, b := range p.Back {914 for _, b := range p.Back {
961- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, "<a href=\"")915+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "<a href=\"")
962 if templ_7745c5c3_Err != nil {916 if templ_7745c5c3_Err != nil {
963 return templ_7745c5c3_Err917 return templ_7745c5c3_Err
964 }918 }
965- var templ_7745c5c3_Var45 templ.SafeURL919+ var templ_7745c5c3_Var43 templ.SafeURL
966- templ_7745c5c3_Var45, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(b.Href))920+ templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(b.Href))
967 if templ_7745c5c3_Err != nil {921 if templ_7745c5c3_Err != nil {
968- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 201, Col: 36}922+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 193, Col: 36}
969 }923 }
970- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var45))924+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43))
971 if templ_7745c5c3_Err != nil {925 if templ_7745c5c3_Err != nil {
972 return templ_7745c5c3_Err926 return templ_7745c5c3_Err
973 }927 }
974- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "\">")928+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "\">")
975 if templ_7745c5c3_Err != nil {929 if templ_7745c5c3_Err != nil {
976 return templ_7745c5c3_Err930 return templ_7745c5c3_Err
977 }931 }
978- var templ_7745c5c3_Var46 string932+ var templ_7745c5c3_Var44 string
979- templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.JoinStringErrs(b.Label)933+ templ_7745c5c3_Var44, templ_7745c5c3_Err = templ.JoinStringErrs(b.Label)
980 if templ_7745c5c3_Err != nil {934 if templ_7745c5c3_Err != nil {
981- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 201, Col: 48}935+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 193, Col: 48}
982 }936 }
983- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var46))937+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var44))
984 if templ_7745c5c3_Err != nil {938 if templ_7745c5c3_Err != nil {
985 return templ_7745c5c3_Err939 return templ_7745c5c3_Err
986 }940 }
987- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, "</a>")941+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</a>")
988 if templ_7745c5c3_Err != nil {942 if templ_7745c5c3_Err != nil {
989 return templ_7745c5c3_Err943 return templ_7745c5c3_Err
990 }944 }
991 }945 }
992- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, "</p></section>")946+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "</p></section>")
993 if templ_7745c5c3_Err != nil {947 if templ_7745c5c3_Err != nil {
994 return templ_7745c5c3_Err948 return templ_7745c5c3_Err
995 }949 }
996 return nil950 return nil
997 })951 })
998- templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var41), templ_7745c5c3_Buffer)952+ templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var39), templ_7745c5c3_Buffer)
999 if templ_7745c5c3_Err != nil {953 if templ_7745c5c3_Err != nil {
1000 return templ_7745c5c3_Err954 return templ_7745c5c3_Err
1001 }955 }
@@ -1024,12 +978,12 @@ func Login(l Layout, p LoginPage) templ.Component {
1024 }()978 }()
1025 }979 }
1026 ctx = templ.InitializeContext(ctx)980 ctx = templ.InitializeContext(ctx)
1027- templ_7745c5c3_Var47 := templ.GetChildren(ctx)981+ templ_7745c5c3_Var45 := templ.GetChildren(ctx)
1028- if templ_7745c5c3_Var47 == nil {982+ if templ_7745c5c3_Var45 == nil {
1029- templ_7745c5c3_Var47 = templ.NopComponent983+ templ_7745c5c3_Var45 = templ.NopComponent
1030 }984 }
1031 ctx = templ.ClearChildren(ctx)985 ctx = templ.ClearChildren(ctx)
1032- templ_7745c5c3_Var48 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {986+ templ_7745c5c3_Var46 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1033 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context987 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1034 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)988 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1035 if !templ_7745c5c3_IsBuffer {989 if !templ_7745c5c3_IsBuffer {
@@ -1041,75 +995,75 @@ func Login(l Layout, p LoginPage) templ.Component {
1041 }()995 }()
1042 }996 }
1043 ctx = templ.InitializeContext(ctx)997 ctx = templ.InitializeContext(ctx)
1044- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, "<section class=\"state\" aria-labelledby=\"state-title\"><h1 id=\"state-title\">")998+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "<section class=\"state\" aria-labelledby=\"state-title\"><h1 id=\"state-title\">")
1045 if templ_7745c5c3_Err != nil {999 if templ_7745c5c3_Err != nil {
1046 return templ_7745c5c3_Err1000 return templ_7745c5c3_Err
1047 }1001 }
1048- var templ_7745c5c3_Var49 string1002+ var templ_7745c5c3_Var47 string
1049- templ_7745c5c3_Var49, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)1003+ templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)
1050 if templ_7745c5c3_Err != nil {1004 if templ_7745c5c3_Err != nil {
1051- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 216, Col: 33}1005+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 208, Col: 33}
1052 }1006 }
1053- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var49))1007+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var47))
1054 if templ_7745c5c3_Err != nil {1008 if templ_7745c5c3_Err != nil {
1055 return templ_7745c5c3_Err1009 return templ_7745c5c3_Err
1056 }1010 }
1057- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, "</h1>")1011+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "</h1>")
1058 if templ_7745c5c3_Err != nil {1012 if templ_7745c5c3_Err != nil {
1059 return templ_7745c5c3_Err1013 return templ_7745c5c3_Err
1060 }1014 }
1061 for _, line := range p.Lines {1015 for _, line := range p.Lines {
1062- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, "<p class=\"dim\">")1016+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, "<p class=\"dim\">")
1063 if templ_7745c5c3_Err != nil {1017 if templ_7745c5c3_Err != nil {
1064 return templ_7745c5c3_Err1018 return templ_7745c5c3_Err
1065 }1019 }
1066- var templ_7745c5c3_Var50 string1020+ var templ_7745c5c3_Var48 string
1067- templ_7745c5c3_Var50, templ_7745c5c3_Err = templ.JoinStringErrs(line)1021+ templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.JoinStringErrs(line)
1068 if templ_7745c5c3_Err != nil {1022 if templ_7745c5c3_Err != nil {
1069- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 218, Col: 25}1023+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 210, Col: 25}
1070 }1024 }
1071- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var50))1025+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var48))
1072 if templ_7745c5c3_Err != nil {1026 if templ_7745c5c3_Err != nil {
1073 return templ_7745c5c3_Err1027 return templ_7745c5c3_Err
1074 }1028 }
1075- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "</p>")1029+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "</p>")
1076 if templ_7745c5c3_Err != nil {1030 if templ_7745c5c3_Err != nil {
1077 return templ_7745c5c3_Err1031 return templ_7745c5c3_Err
1078 }1032 }
1079 }1033 }
1080- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "<form class=\"state-act\" method=\"post\" action=\"")1034+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, "<form class=\"state-act\" method=\"post\" action=\"")
1081 if templ_7745c5c3_Err != nil {1035 if templ_7745c5c3_Err != nil {
1082 return templ_7745c5c3_Err1036 return templ_7745c5c3_Err
1083 }1037 }
1084- var templ_7745c5c3_Var51 templ.SafeURL1038+ var templ_7745c5c3_Var49 templ.SafeURL
1085- templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Action))1039+ templ_7745c5c3_Var49, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Action))
1086 if templ_7745c5c3_Err != nil {1040 if templ_7745c5c3_Err != nil {
1087- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 220, Col: 73}1041+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 212, Col: 73}
1088 }1042 }
1089- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var51))1043+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var49))
1090 if templ_7745c5c3_Err != nil {1044 if templ_7745c5c3_Err != nil {
1091 return templ_7745c5c3_Err1045 return templ_7745c5c3_Err
1092 }1046 }
1093- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, "\" data-autosubmit><button type=\"submit\" class=\"btn primary\">")1047+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, "\" data-autosubmit><button type=\"submit\" class=\"btn primary\">")
1094 if templ_7745c5c3_Err != nil {1048 if templ_7745c5c3_Err != nil {
1095 return templ_7745c5c3_Err1049 return templ_7745c5c3_Err
1096 }1050 }
1097- var templ_7745c5c3_Var52 string1051+ var templ_7745c5c3_Var50 string
1098- templ_7745c5c3_Var52, templ_7745c5c3_Err = templ.JoinStringErrs(p.Button)1052+ templ_7745c5c3_Var50, templ_7745c5c3_Err = templ.JoinStringErrs(p.Button)
1099 if templ_7745c5c3_Err != nil {1053 if templ_7745c5c3_Err != nil {
1100- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 221, Col: 56}1054+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 213, Col: 56}
1101 }1055 }
1102- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var52))1056+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var50))
1103 if templ_7745c5c3_Err != nil {1057 if templ_7745c5c3_Err != nil {
1104 return templ_7745c5c3_Err1058 return templ_7745c5c3_Err
1105 }1059 }
1106- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 85, "</button></form><p class=\"state-back\"><a href=\"/\">Back to home</a></p></section>")1060+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, "</button></form><p class=\"state-back\"><a href=\"/\">Back to home</a></p></section>")
1107 if templ_7745c5c3_Err != nil {1061 if templ_7745c5c3_Err != nil {
1108 return templ_7745c5c3_Err1062 return templ_7745c5c3_Err
1109 }1063 }
1110 return nil1064 return nil
1111 })1065 })
1112- templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var48), templ_7745c5c3_Buffer)1066+ templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var46), templ_7745c5c3_Buffer)
1113 if templ_7745c5c3_Err != nil {1067 if templ_7745c5c3_Err != nil {
1114 return templ_7745c5c3_Err1068 return templ_7745c5c3_Err
1115 }1069 }
@@ -1135,12 +1089,12 @@ func PasskeyLogin(l Layout, p PasskeyLoginPage) templ.Component {
1135 }()1089 }()
1136 }1090 }
1137 ctx = templ.InitializeContext(ctx)1091 ctx = templ.InitializeContext(ctx)
1138- templ_7745c5c3_Var53 := templ.GetChildren(ctx)1092+ templ_7745c5c3_Var51 := templ.GetChildren(ctx)
1139- if templ_7745c5c3_Var53 == nil {1093+ if templ_7745c5c3_Var51 == nil {
1140- templ_7745c5c3_Var53 = templ.NopComponent1094+ templ_7745c5c3_Var51 = templ.NopComponent
1141 }1095 }
1142 ctx = templ.ClearChildren(ctx)1096 ctx = templ.ClearChildren(ctx)
1143- templ_7745c5c3_Var54 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {1097+ templ_7745c5c3_Var52 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1144 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context1098 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1145 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)1099 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1146 if !templ_7745c5c3_IsBuffer {1100 if !templ_7745c5c3_IsBuffer {
@@ -1152,88 +1106,88 @@ func PasskeyLogin(l Layout, p PasskeyLoginPage) templ.Component {
1152 }()1106 }()
1153 }1107 }
1154 ctx = templ.InitializeContext(ctx)1108 ctx = templ.InitializeContext(ctx)
1155- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "<section class=\"state\" aria-labelledby=\"state-title\"><h1 id=\"state-title\">")1109+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, "<section class=\"state\" aria-labelledby=\"state-title\"><h1 id=\"state-title\">")
1156 if templ_7745c5c3_Err != nil {1110 if templ_7745c5c3_Err != nil {
1157 return templ_7745c5c3_Err1111 return templ_7745c5c3_Err
1158 }1112 }
1159- var templ_7745c5c3_Var55 string1113+ var templ_7745c5c3_Var53 string
1160- templ_7745c5c3_Var55, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)1114+ templ_7745c5c3_Var53, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)
1161 if templ_7745c5c3_Err != nil {1115 if templ_7745c5c3_Err != nil {
1162- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 233, Col: 33}1116+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 225, Col: 33}
1163 }1117 }
1164- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var55))1118+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var53))
1165 if templ_7745c5c3_Err != nil {1119 if templ_7745c5c3_Err != nil {
1166 return templ_7745c5c3_Err1120 return templ_7745c5c3_Err
1167 }1121 }
1168- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 87, "</h1><form class=\"state-act\" data-js data-passkey-form><button type=\"submit\" class=\"btn primary\" data-passkey=\"login\" data-begin=\"")1122+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, "</h1><form class=\"state-act\" data-js data-passkey-form><button type=\"submit\" class=\"btn primary\" data-passkey=\"login\" data-begin=\"")
1169 if templ_7745c5c3_Err != nil {1123 if templ_7745c5c3_Err != nil {
1170 return templ_7745c5c3_Err1124 return templ_7745c5c3_Err
1171 }1125 }
1172- var templ_7745c5c3_Var56 string1126+ var templ_7745c5c3_Var54 string
1173- templ_7745c5c3_Var56, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Begin)1127+ templ_7745c5c3_Var54, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Begin)
1174 if templ_7745c5c3_Err != nil {1128 if templ_7745c5c3_Err != nil {
1175- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 235, Col: 87}1129+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 227, Col: 87}
1176 }1130 }
1177- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var56)1131+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var54)
1178 if templ_7745c5c3_Err != nil {1132 if templ_7745c5c3_Err != nil {
1179 return templ_7745c5c3_Err1133 return templ_7745c5c3_Err
1180 }1134 }
1181- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 88, "\" data-finish=\"")1135+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "\" data-finish=\"")
1182 if templ_7745c5c3_Err != nil {1136 if templ_7745c5c3_Err != nil {
1183 return templ_7745c5c3_Err1137 return templ_7745c5c3_Err
1184 }1138 }
1185- var templ_7745c5c3_Var57 string1139+ var templ_7745c5c3_Var55 string
1186- templ_7745c5c3_Var57, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Finish)1140+ templ_7745c5c3_Var55, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Finish)
1187 if templ_7745c5c3_Err != nil {1141 if templ_7745c5c3_Err != nil {
1188- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 235, Col: 112}1142+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 227, Col: 112}
1189 }1143 }
1190- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var57)1144+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var55)
1191 if templ_7745c5c3_Err != nil {1145 if templ_7745c5c3_Err != nil {
1192 return templ_7745c5c3_Err1146 return templ_7745c5c3_Err
1193 }1147 }
1194- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 89, "\">")1148+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "\">")
1195 if templ_7745c5c3_Err != nil {1149 if templ_7745c5c3_Err != nil {
1196 return templ_7745c5c3_Err1150 return templ_7745c5c3_Err
1197 }1151 }
1198- var templ_7745c5c3_Var58 string1152+ var templ_7745c5c3_Var56 string
1199- templ_7745c5c3_Var58, templ_7745c5c3_Err = templ.JoinStringErrs(p.Button)1153+ templ_7745c5c3_Var56, templ_7745c5c3_Err = templ.JoinStringErrs(p.Button)
1200 if templ_7745c5c3_Err != nil {1154 if templ_7745c5c3_Err != nil {
1201- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 235, Col: 125}1155+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 227, Col: 125}
1202 }1156 }
1203- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var58))1157+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var56))
1204 if templ_7745c5c3_Err != nil {1158 if templ_7745c5c3_Err != nil {
1205 return templ_7745c5c3_Err1159 return templ_7745c5c3_Err
1206 }1160 }
1207- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 90, "</button></form><p class=\"dim\" role=\"status\" aria-live=\"polite\" data-passkey-status></p>")1161+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, "</button></form><p class=\"dim\" role=\"status\" aria-live=\"polite\" data-passkey-status></p>")
1208 if templ_7745c5c3_Err != nil {1162 if templ_7745c5c3_Err != nil {
1209 return templ_7745c5c3_Err1163 return templ_7745c5c3_Err
1210 }1164 }
1211 for _, line := range p.Lines {1165 for _, line := range p.Lines {
1212- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 91, "<p class=\"dim\">")1166+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 85, "<p class=\"dim\">")
1213 if templ_7745c5c3_Err != nil {1167 if templ_7745c5c3_Err != nil {
1214 return templ_7745c5c3_Err1168 return templ_7745c5c3_Err
1215 }1169 }
1216- var templ_7745c5c3_Var59 string1170+ var templ_7745c5c3_Var57 string
1217- templ_7745c5c3_Var59, templ_7745c5c3_Err = templ.JoinStringErrs(line)1171+ templ_7745c5c3_Var57, templ_7745c5c3_Err = templ.JoinStringErrs(line)
1218 if templ_7745c5c3_Err != nil {1172 if templ_7745c5c3_Err != nil {
1219- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 239, Col: 25}1173+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 231, Col: 25}
1220 }1174 }
1221- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var59))1175+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var57))
1222 if templ_7745c5c3_Err != nil {1176 if templ_7745c5c3_Err != nil {
1223 return templ_7745c5c3_Err1177 return templ_7745c5c3_Err
1224 }1178 }
1225- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 92, "</p>")1179+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "</p>")
1226 if templ_7745c5c3_Err != nil {1180 if templ_7745c5c3_Err != nil {
1227 return templ_7745c5c3_Err1181 return templ_7745c5c3_Err
1228 }1182 }
1229 }1183 }
1230- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 93, "<p class=\"state-back\"><a href=\"/\">Back to home</a></p></section>")1184+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 87, "<p class=\"state-back\"><a href=\"/\">Back to home</a></p></section>")
1231 if templ_7745c5c3_Err != nil {1185 if templ_7745c5c3_Err != nil {
1232 return templ_7745c5c3_Err1186 return templ_7745c5c3_Err
1233 }1187 }
1234 return nil1188 return nil
1235 })1189 })
1236- templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var54), templ_7745c5c3_Buffer)1190+ templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var52), templ_7745c5c3_Buffer)
1237 if templ_7745c5c3_Err != nil {1191 if templ_7745c5c3_Err != nil {
1238 return templ_7745c5c3_Err1192 return templ_7745c5c3_Err
1239 }1193 }
@@ -1258,12 +1212,12 @@ func Passkeys(l Layout, p PasskeysPage) templ.Component {
1258 }()1212 }()
1259 }1213 }
1260 ctx = templ.InitializeContext(ctx)1214 ctx = templ.InitializeContext(ctx)
1261- templ_7745c5c3_Var60 := templ.GetChildren(ctx)1215+ templ_7745c5c3_Var58 := templ.GetChildren(ctx)
1262- if templ_7745c5c3_Var60 == nil {1216+ if templ_7745c5c3_Var58 == nil {
1263- templ_7745c5c3_Var60 = templ.NopComponent1217+ templ_7745c5c3_Var58 = templ.NopComponent
1264 }1218 }
1265 ctx = templ.ClearChildren(ctx)1219 ctx = templ.ClearChildren(ctx)
1266- templ_7745c5c3_Var61 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {1220+ templ_7745c5c3_Var59 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1267 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context1221 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1268 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)1222 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1269 if !templ_7745c5c3_IsBuffer {1223 if !templ_7745c5c3_IsBuffer {
@@ -1275,231 +1229,231 @@ func Passkeys(l Layout, p PasskeysPage) templ.Component {
1275 }()1229 }()
1276 }1230 }
1277 ctx = templ.InitializeContext(ctx)1231 ctx = templ.InitializeContext(ctx)
1278- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, "<h2 class=\"rule-h\"><span>Passkeys</span><span class=\"count\">")1232+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 88, "<h2 class=\"rule-h\"><span>Passkeys</span><span class=\"count\">")
1279 if templ_7745c5c3_Err != nil {1233 if templ_7745c5c3_Err != nil {
1280 return templ_7745c5c3_Err1234 return templ_7745c5c3_Err
1281 }1235 }
1282- var templ_7745c5c3_Var62 string1236+ var templ_7745c5c3_Var60 string
1283- templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Rows)))1237+ templ_7745c5c3_Var60, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Rows)))
1284 if templ_7745c5c3_Err != nil {1238 if templ_7745c5c3_Err != nil {
1285- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 249, Col: 81}1239+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 241, Col: 81}
1286 }1240 }
1287- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var62))1241+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var60))
1288 if templ_7745c5c3_Err != nil {1242 if templ_7745c5c3_Err != nil {
1289 return templ_7745c5c3_Err1243 return templ_7745c5c3_Err
1290 }1244 }
1291- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 95, "</span></h2><p class=\"dim\">A passkey signs you in from this device or your phone, without a terminal. Removing one signs every browser out.</p>")1245+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 89, "</span></h2><p class=\"dim\">A passkey signs you in from this device or your phone, without a terminal. Removing one signs every browser out.</p>")
1292 if templ_7745c5c3_Err != nil {1246 if templ_7745c5c3_Err != nil {
1293 return templ_7745c5c3_Err1247 return templ_7745c5c3_Err
1294 }1248 }
1295 if len(p.Rows) > 0 {1249 if len(p.Rows) > 0 {
1296- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 96, "<table class=\"list passkeys\" aria-label=\"Passkeys\"><thead><tr><th class=\"c-name\">Name</th><th class=\"c-when\">Created</th><th class=\"c-when\">Last used</th><th class=\"c-sync\">Synced</th><th class=\"c-act\"><span class=\"sr\">Remove</span></th></tr></thead> <tbody>")1250+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 90, "<table class=\"list passkeys\" aria-label=\"Passkeys\"><thead><tr><th class=\"c-name\">Name</th><th class=\"c-when\">Created</th><th class=\"c-when\">Last used</th><th class=\"c-sync\">Synced</th><th class=\"c-act\"><span class=\"sr\">Remove</span></th></tr></thead> <tbody>")
1297 if templ_7745c5c3_Err != nil {1251 if templ_7745c5c3_Err != nil {
1298 return templ_7745c5c3_Err1252 return templ_7745c5c3_Err
1299 }1253 }
1300 for _, r := range p.Rows {1254 for _, r := range p.Rows {
1301- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 97, "<tr><td class=\"c-name\">")1255+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 91, "<tr><td class=\"c-name\">")
1302 if templ_7745c5c3_Err != nil {1256 if templ_7745c5c3_Err != nil {
1303 return templ_7745c5c3_Err1257 return templ_7745c5c3_Err
1304 }1258 }
1305- var templ_7745c5c3_Var63 string1259+ var templ_7745c5c3_Var61 string
1306- templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)1260+ templ_7745c5c3_Var61, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
1307 if templ_7745c5c3_Err != nil {1261 if templ_7745c5c3_Err != nil {
1308- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 265, Col: 34}1262+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 257, Col: 34}
1309 }1263 }
1310- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var63))1264+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var61))
1311 if templ_7745c5c3_Err != nil {1265 if templ_7745c5c3_Err != nil {
1312 return templ_7745c5c3_Err1266 return templ_7745c5c3_Err
1313 }1267 }
1314- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 98, "</td><td class=\"c-when nowrap\"><time")1268+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 92, "</td><td class=\"c-when nowrap\"><time")
1315 if templ_7745c5c3_Err != nil {1269 if templ_7745c5c3_Err != nil {
1316 return templ_7745c5c3_Err1270 return templ_7745c5c3_Err
1317 }1271 }
1318 if r.CreatedAt != "" {1272 if r.CreatedAt != "" {
1319- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, " datetime=\"")1273+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 93, " datetime=\"")
1320 if templ_7745c5c3_Err != nil {1274 if templ_7745c5c3_Err != nil {
1321 return templ_7745c5c3_Err1275 return templ_7745c5c3_Err
1322 }1276 }
1323- var templ_7745c5c3_Var64 string1277+ var templ_7745c5c3_Var62 string
1324- templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.CreatedAt)1278+ templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.CreatedAt)
1325 if templ_7745c5c3_Err != nil {1279 if templ_7745c5c3_Err != nil {
1326- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 269, Col: 32}1280+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 261, Col: 32}
1327 }1281 }
1328- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var64)1282+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var62)
1329 if templ_7745c5c3_Err != nil {1283 if templ_7745c5c3_Err != nil {
1330 return templ_7745c5c3_Err1284 return templ_7745c5c3_Err
1331 }1285 }
1332- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 100, "\"")1286+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, "\"")
1333 if templ_7745c5c3_Err != nil {1287 if templ_7745c5c3_Err != nil {
1334 return templ_7745c5c3_Err1288 return templ_7745c5c3_Err
1335 }1289 }
1336 }1290 }
1337- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, ">")1291+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 95, ">")
1338 if templ_7745c5c3_Err != nil {1292 if templ_7745c5c3_Err != nil {
1339 return templ_7745c5c3_Err1293 return templ_7745c5c3_Err
1340 }1294 }
1341- var templ_7745c5c3_Var65 string1295+ var templ_7745c5c3_Var63 string
1342- templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.JoinStringErrs(r.Created)1296+ templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.JoinStringErrs(r.Created)
1343 if templ_7745c5c3_Err != nil {1297 if templ_7745c5c3_Err != nil {
1344- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 271, Col: 20}1298+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 263, Col: 20}
1345 }1299 }
1346- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var65))1300+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var63))
1347 if templ_7745c5c3_Err != nil {1301 if templ_7745c5c3_Err != nil {
1348 return templ_7745c5c3_Err1302 return templ_7745c5c3_Err
1349 }1303 }
1350- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 102, "</time></td><td class=\"c-when nowrap\"><time")1304+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 96, "</time></td><td class=\"c-when nowrap\"><time")
1351 if templ_7745c5c3_Err != nil {1305 if templ_7745c5c3_Err != nil {
1352 return templ_7745c5c3_Err1306 return templ_7745c5c3_Err
1353 }1307 }
1354 if r.LastUsedAt != "" {1308 if r.LastUsedAt != "" {
1355- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, " datetime=\"")1309+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 97, " datetime=\"")
1356 if templ_7745c5c3_Err != nil {1310 if templ_7745c5c3_Err != nil {
1357 return templ_7745c5c3_Err1311 return templ_7745c5c3_Err
1358 }1312 }
1359- var templ_7745c5c3_Var66 string1313+ var templ_7745c5c3_Var64 string
1360- templ_7745c5c3_Var66, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.LastUsedAt)1314+ templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.LastUsedAt)
1361 if templ_7745c5c3_Err != nil {1315 if templ_7745c5c3_Err != nil {
1362- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 276, Col: 33}1316+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 268, Col: 33}
1363 }1317 }
1364- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var66)1318+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var64)
1365 if templ_7745c5c3_Err != nil {1319 if templ_7745c5c3_Err != nil {
1366 return templ_7745c5c3_Err1320 return templ_7745c5c3_Err
1367 }1321 }
1368- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, "\"")1322+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 98, "\"")
1369 if templ_7745c5c3_Err != nil {1323 if templ_7745c5c3_Err != nil {
1370 return templ_7745c5c3_Err1324 return templ_7745c5c3_Err
1371 }1325 }
1372 }1326 }
1373- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, ">")1327+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, ">")
1374 if templ_7745c5c3_Err != nil {1328 if templ_7745c5c3_Err != nil {
1375 return templ_7745c5c3_Err1329 return templ_7745c5c3_Err
1376 }1330 }
1377- var templ_7745c5c3_Var67 string1331+ var templ_7745c5c3_Var65 string
1378- templ_7745c5c3_Var67, templ_7745c5c3_Err = templ.JoinStringErrs(r.LastUsed)1332+ templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.JoinStringErrs(r.LastUsed)
1379 if templ_7745c5c3_Err != nil {1333 if templ_7745c5c3_Err != nil {
1380- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 278, Col: 21}1334+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 270, Col: 21}
1381 }1335 }
1382- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var67))1336+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var65))
1383 if templ_7745c5c3_Err != nil {1337 if templ_7745c5c3_Err != nil {
1384 return templ_7745c5c3_Err1338 return templ_7745c5c3_Err
1385 }1339 }
1386- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, "</time></td><td class=\"c-sync\">")1340+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 100, "</time></td><td class=\"c-sync\">")
1387 if templ_7745c5c3_Err != nil {1341 if templ_7745c5c3_Err != nil {
1388 return templ_7745c5c3_Err1342 return templ_7745c5c3_Err
1389 }1343 }
1390 if r.Synced {1344 if r.Synced {
1391- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, "yes")1345+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, "yes")
1392 if templ_7745c5c3_Err != nil {1346 if templ_7745c5c3_Err != nil {
1393 return templ_7745c5c3_Err1347 return templ_7745c5c3_Err
1394 }1348 }
1395 } else {1349 } else {
1396- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, "no")1350+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 102, "no")
1397 if templ_7745c5c3_Err != nil {1351 if templ_7745c5c3_Err != nil {
1398 return templ_7745c5c3_Err1352 return templ_7745c5c3_Err
1399 }1353 }
1400 }1354 }
1401- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, "</td><td class=\"c-act\"><form method=\"post\" action=\"")1355+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, "</td><td class=\"c-act\"><form method=\"post\" action=\"")
1402 if templ_7745c5c3_Err != nil {1356 if templ_7745c5c3_Err != nil {
1403 return templ_7745c5c3_Err1357 return templ_7745c5c3_Err
1404 }1358 }
1405- var templ_7745c5c3_Var68 templ.SafeURL1359+ var templ_7745c5c3_Var66 templ.SafeURL
1406- templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Remove))1360+ templ_7745c5c3_Var66, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Remove))
1407 if templ_7745c5c3_Err != nil {1361 if templ_7745c5c3_Err != nil {
1408- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 288, Col: 60}1362+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 280, Col: 60}
1409 }1363 }
1410- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var68))1364+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var66))
1411 if templ_7745c5c3_Err != nil {1365 if templ_7745c5c3_Err != nil {
1412 return templ_7745c5c3_Err1366 return templ_7745c5c3_Err
1413 }1367 }
1414- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "\"><button type=\"submit\" class=\"btn danger\" aria-label=\"")1368+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, "\"><button type=\"submit\" class=\"btn danger\" aria-label=\"")
1415 if templ_7745c5c3_Err != nil {1369 if templ_7745c5c3_Err != nil {
1416 return templ_7745c5c3_Err1370 return templ_7745c5c3_Err
1417 }1371 }
1418- var templ_7745c5c3_Var69 string1372+ var templ_7745c5c3_Var67 string
1419- templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.ResolveAttributeValue("Remove passkey " + r.Name)1373+ templ_7745c5c3_Var67, templ_7745c5c3_Err = templ.ResolveAttributeValue("Remove passkey " + r.Name)
1420 if templ_7745c5c3_Err != nil {1374 if templ_7745c5c3_Err != nil {
1421- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 289, Col: 89}1375+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 281, Col: 89}
1422 }1376 }
1423- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var69)1377+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var67)
1424 if templ_7745c5c3_Err != nil {1378 if templ_7745c5c3_Err != nil {
1425 return templ_7745c5c3_Err1379 return templ_7745c5c3_Err
1426 }1380 }
1427- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, "\">Remove</button></form></td></tr>")1381+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, "\">Remove</button></form></td></tr>")
1428 if templ_7745c5c3_Err != nil {1382 if templ_7745c5c3_Err != nil {
1429 return templ_7745c5c3_Err1383 return templ_7745c5c3_Err
1430 }1384 }
1431 }1385 }
1432- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, "</tbody></table>")1386+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, "</tbody></table>")
1433 if templ_7745c5c3_Err != nil {1387 if templ_7745c5c3_Err != nil {
1434 return templ_7745c5c3_Err1388 return templ_7745c5c3_Err
1435 }1389 }
1436 } else {1390 } else {
1437- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, "<p class=\"lede dim\">no passkeys yet.</p>")1391+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, "<p class=\"lede dim\">no passkeys yet.</p>")
1438 if templ_7745c5c3_Err != nil {1392 if templ_7745c5c3_Err != nil {
1439 return templ_7745c5c3_Err1393 return templ_7745c5c3_Err
1440 }1394 }
1441 }1395 }
1442- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, " ")1396+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, " ")
1443 if templ_7745c5c3_Err != nil {1397 if templ_7745c5c3_Err != nil {
1444 return templ_7745c5c3_Err1398 return templ_7745c5c3_Err
1445 }1399 }
1446 if p.Full {1400 if p.Full {
1447- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, "<p class=\"dim\">")1401+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, "<p class=\"dim\">")
1448 if templ_7745c5c3_Err != nil {1402 if templ_7745c5c3_Err != nil {
1449 return templ_7745c5c3_Err1403 return templ_7745c5c3_Err
1450 }1404 }
1451- var templ_7745c5c3_Var70 string1405+ var templ_7745c5c3_Var68 string
1452- templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Max))1406+ templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Max))
1453 if templ_7745c5c3_Err != nil {1407 if templ_7745c5c3_Err != nil {
1454- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 300, Col: 31}1408+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 292, Col: 31}
1455 }1409 }
1456- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var70))1410+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var68))
1457 if templ_7745c5c3_Err != nil {1411 if templ_7745c5c3_Err != nil {
1458 return templ_7745c5c3_Err1412 return templ_7745c5c3_Err
1459 }1413 }
1460- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 116, " passkeys are registered, the most there can be. Remove one to add another.</p>")1414+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, " passkeys are registered, the most there can be. Remove one to add another.</p>")
1461 if templ_7745c5c3_Err != nil {1415 if templ_7745c5c3_Err != nil {
1462 return templ_7745c5c3_Err1416 return templ_7745c5c3_Err
1463 }1417 }
1464 } else {1418 } else {
1465- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 117, "<form class=\"passkey-add\" data-js data-passkey-form><label for=\"passkey-name\" class=\"sr\">Name of the new passkey</label> <input id=\"passkey-name\" type=\"text\" placeholder=\"Name, for example Pixel 9\" autocomplete=\"off\" data-passkey-name> <button type=\"submit\" class=\"btn primary\" data-passkey=\"register\" data-begin=\"")1419+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, "<form class=\"passkey-add\" data-js data-passkey-form><label for=\"passkey-name\" class=\"sr\">Name of the new passkey</label> <input id=\"passkey-name\" type=\"text\" placeholder=\"Name, for example Pixel 9\" autocomplete=\"off\" data-passkey-name> <button type=\"submit\" class=\"btn primary\" data-passkey=\"register\" data-begin=\"")
1466 if templ_7745c5c3_Err != nil {1420 if templ_7745c5c3_Err != nil {
1467 return templ_7745c5c3_Err1421 return templ_7745c5c3_Err
1468 }1422 }
1469- var templ_7745c5c3_Var71 string1423+ var templ_7745c5c3_Var69 string
1470- templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Begin)1424+ templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Begin)
1471 if templ_7745c5c3_Err != nil {1425 if templ_7745c5c3_Err != nil {
1472- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 305, Col: 90}1426+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 297, Col: 90}
1473 }1427 }
1474- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var71)1428+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var69)
1475 if templ_7745c5c3_Err != nil {1429 if templ_7745c5c3_Err != nil {
1476 return templ_7745c5c3_Err1430 return templ_7745c5c3_Err
1477 }1431 }
1478- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 118, "\" data-finish=\"")1432+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, "\" data-finish=\"")
1479 if templ_7745c5c3_Err != nil {1433 if templ_7745c5c3_Err != nil {
1480 return templ_7745c5c3_Err1434 return templ_7745c5c3_Err
1481 }1435 }
1482- var templ_7745c5c3_Var72 string1436+ var templ_7745c5c3_Var70 string
1483- templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Finish)1437+ templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Finish)
1484 if templ_7745c5c3_Err != nil {1438 if templ_7745c5c3_Err != nil {
1485- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 305, Col: 115}1439+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 297, Col: 115}
1486 }1440 }
1487- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var72)1441+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var70)
1488 if templ_7745c5c3_Err != nil {1442 if templ_7745c5c3_Err != nil {
1489 return templ_7745c5c3_Err1443 return templ_7745c5c3_Err
1490 }1444 }
1491- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 119, "\">Add a passkey</button></form>")1445+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, "\">Add a passkey</button></form>")
1492 if templ_7745c5c3_Err != nil {1446 if templ_7745c5c3_Err != nil {
1493 return templ_7745c5c3_Err1447 return templ_7745c5c3_Err
1494 }1448 }
1495 }1449 }
1496- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 120, " <p class=\"dim\" role=\"status\" aria-live=\"polite\" data-passkey-status></p>")1450+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, " <p class=\"dim\" role=\"status\" aria-live=\"polite\" data-passkey-status></p>")
1497 if templ_7745c5c3_Err != nil {1451 if templ_7745c5c3_Err != nil {
1498 return templ_7745c5c3_Err1452 return templ_7745c5c3_Err
1499 }1453 }
1500 return nil1454 return nil
1501 })1455 })
1502- templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var61), templ_7745c5c3_Buffer)1456+ templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var59), templ_7745c5c3_Buffer)
1503 if templ_7745c5c3_Err != nil {1457 if templ_7745c5c3_Err != nil {
1504 return templ_7745c5c3_Err1458 return templ_7745c5c3_Err
1505 }1459 }
M internal/adapters/web/shell.templ +13 -0
@@ -80,6 +80,19 @@ templ Header(l Layout) {
8080 <a class="brand" href="/" data-g="h" aria-label="home" title="home (g h)">
8181 <span class="brand-mark" aria-hidden="true"></span>
8282 </a>
83+ if l.Inbox != nil {
84+ <a
85+ class="btn inbox-btn"
86+ href={ templ.SafeURL(l.Inbox.Href) }
87+ title="inbox"
88+ >
89+ <span class="ico i-mailbox" aria-hidden="true"></span>
90+ Inbox
91+ if l.Inbox.Count >= 0 {
92+ <span class="count">{ itoa(l.Inbox.Count) }</span>
93+ }
94+ </a>
95+ }
8396 if len(l.Crumbs) > 0 {
8497 <nav class="crumbs" aria-label="Path">
8598 <ol>
@@ -80,6 +80,19 @@ templ Header(l Layout) {
80 <a class="brand" href="/" data-g="h" aria-label="home" title="home (g h)">80 <a class="brand" href="/" data-g="h" aria-label="home" title="home (g h)">
81 <span class="brand-mark" aria-hidden="true"></span>81 <span class="brand-mark" aria-hidden="true"></span>
82 </a>82 </a>
83+ if l.Inbox != nil {
84+ <a
85+ class="btn inbox-btn"
86+ href={ templ.SafeURL(l.Inbox.Href) }
87+ title="inbox"
88+ >
89+ <span class="ico i-mailbox" aria-hidden="true"></span>
90+ Inbox
91+ if l.Inbox.Count >= 0 {
92+ <span class="count">{ itoa(l.Inbox.Count) }</span>
93+ }
94+ </a>
95+ }
83 if len(l.Crumbs) > 0 {96 if len(l.Crumbs) > 0 {
84 <nav class="crumbs" aria-label="Path">97 <nav class="crumbs" aria-label="Path">
85 <ol>98 <ol>
M internal/adapters/web/shell_templ.go +157 -115 generated file: collapsed
M internal/adapters/web/static/css/20-shell.css +6 -0
@@ -29,6 +29,7 @@
2929 .i-cards { --i: url(icons/cards.svg); }
3030 .i-split { --i: url(icons/split.svg); }
3131 .i-compact { --i: url(icons/compact.svg); }
32+ .i-mailbox { --i: url(icons/mailbox.svg); }
3233
3334 .pill {
3435 display: inline-flex; align-items: center; height: 20px; padding: 0 var(--s2); margin-left: var(--s1);
@@ -77,6 +78,11 @@
7778 }
7879 /* the hermit by his fire: a grey picture in its own rounded square */
7980 .brand-mark { width: 32px; height: 32px; flex: none; background: url(icons/brand.svg) center / contain no-repeat; }
81+ /* the inbox, right of the logo on the home page: its number in a darker badge */
82+ .inbox-btn {
83+ flex: none;
84+ & .count { margin-left: 0; color: var(--ink-hi); background: var(--bg-canvas); box-shadow: inset 0 0 0 1px var(--border); }
85+ }
8086 .crumbs {
8187 min-width: 0; flex: 1 1 auto; overflow: hidden;
8288 & ol { display: flex; align-items: center; min-width: 0; font-family: var(--mono); font-size: var(--fs); }
@@ -29,6 +29,7 @@
29 .i-cards { --i: url(icons/cards.svg); }29 .i-cards { --i: url(icons/cards.svg); }
30 .i-split { --i: url(icons/split.svg); }30 .i-split { --i: url(icons/split.svg); }
31 .i-compact { --i: url(icons/compact.svg); }31 .i-compact { --i: url(icons/compact.svg); }
32+ .i-mailbox { --i: url(icons/mailbox.svg); }
32 33
33 .pill {34 .pill {
34 display: inline-flex; align-items: center; height: 20px; padding: 0 var(--s2); margin-left: var(--s1);35 display: inline-flex; align-items: center; height: 20px; padding: 0 var(--s2); margin-left: var(--s1);
@@ -77,6 +78,11 @@
77 }78 }
78 /* the hermit by his fire: a grey picture in its own rounded square */79 /* the hermit by his fire: a grey picture in its own rounded square */
79 .brand-mark { width: 32px; height: 32px; flex: none; background: url(icons/brand.svg) center / contain no-repeat; }80 .brand-mark { width: 32px; height: 32px; flex: none; background: url(icons/brand.svg) center / contain no-repeat; }
81+ /* the inbox, right of the logo on the home page: its number in a darker badge */
82+ .inbox-btn {
83+ flex: none;
84+ & .count { margin-left: 0; color: var(--ink-hi); background: var(--bg-canvas); box-shadow: inset 0 0 0 1px var(--border); }
85+ }
80 .crumbs {86 .crumbs {
81 min-width: 0; flex: 1 1 auto; overflow: hidden;87 min-width: 0; flex: 1 1 auto; overflow: hidden;
82 & ol { display: flex; align-items: center; min-width: 0; font-family: var(--mono); font-size: var(--fs); }88 & ol { display: flex; align-items: center; min-width: 0; font-family: var(--mono); font-size: var(--fs); }
M internal/adapters/web/static/css/60-mr.css +0 -1
@@ -222,7 +222,6 @@
222222 & .inbox-counts strong { color: var(--ink-hi); font-family: var(--mono); }
223223 & .since { align-self: flex-start; max-width: 100%; }
224224 }
225- .inbox-btn { gap: var(--s2); }
226225
227226 @media (max-width: 700px) {
228227 .list.mrs .c-who { display: none; }
@@ -222,7 +222,6 @@
222 & .inbox-counts strong { color: var(--ink-hi); font-family: var(--mono); }222 & .inbox-counts strong { color: var(--ink-hi); font-family: var(--mono); }
223 & .since { align-self: flex-start; max-width: 100%; }223 & .since { align-self: flex-start; max-width: 100%; }
224 }224 }
225- .inbox-btn { gap: var(--s2); }
226 225
227 @media (max-width: 700px) {226 @media (max-width: 700px) {
228 .list.mrs .c-who { display: none; }227 .list.mrs .c-who { display: none; }
A internal/adapters/web/static/icons/mailbox.svg +1 -0
@@ -0,0 +1,1 @@
1+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9.5C2 7 4 5 6.5 5H18c2.2 0 4 1.8 4 4v8Z"/><polyline points="15,9 18,9 18,11"/><path d="M6.5 5C9 5 11 7 11 9.5V17a2 2 0 0 1-2 2"/><line x1="6" x2="7" y1="10" y2="10"/></svg>
@@ -0,0 +1,1 @@
1+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9.5C2 7 4 5 6.5 5H18c2.2 0 4 1.8 4 4v8Z"/><polyline points="15,9 18,9 18,11"/><path d="M6.5 5C9 5 11 7 11 9.5V17a2 2 0 0 1-2 2"/><line x1="6" x2="7" y1="10" y2="10"/></svg>
M internal/adapters/web/view.go +3 -3
@@ -71,6 +71,9 @@ type Layout struct {
7171 MR bool
7272 // IssueForm loads the script of the public issue form (issue-form.js).
7373 IssueForm bool
74+ // Inbox is the button to the owner's inbox, next to the logo; set on the
75+ // home page only, for the signed-in owner.
76+ Inbox *InboxButton
7477 }
7578
7679 // Link is a plain label + href pair.
@@ -137,9 +140,6 @@ type SortLink struct {
137140 type HomePage struct {
138141 Sorts []SortLink
139142 Rows []HomeRow
140- // Inbox is the button to the owner's inbox; nil unless the owner is signed
141- // in.
142- Inbox *InboxButton
143143 }
144144
145145 // InboxButton is the link to the inbox with the number of open items; Count is
@@ -71,6 +71,9 @@ type Layout struct {
71 MR bool71 MR bool
72 // IssueForm loads the script of the public issue form (issue-form.js).72 // IssueForm loads the script of the public issue form (issue-form.js).
73 IssueForm bool73 IssueForm bool
74+ // Inbox is the button to the owner's inbox, next to the logo; set on the
75+ // home page only, for the signed-in owner.
76+ Inbox *InboxButton
74 }77 }
75 78
76 // Link is a plain label + href pair.79 // Link is a plain label + href pair.
@@ -137,9 +140,6 @@ type SortLink struct {
137 type HomePage struct {140 type HomePage struct {
138 Sorts []SortLink141 Sorts []SortLink
139 Rows []HomeRow142 Rows []HomeRow
140- // Inbox is the button to the owner's inbox; nil unless the owner is signed
141- // in.
142- Inbox *InboxButton
143 }143 }
144 144
145 // InboxButton is the link to the inbox with the number of open items; Count is145 // InboxButton is the link to the inbox with the number of open items; Count is

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 2

Tags 45

↑↓ moveenter openesc close