v0.6.0 d5cc8fe

pages_templ.go RawHistoryFolder

1// Code generated by templ - DO NOT EDIT.
2
3// templ: version: v0.3.1020
4// SPDX-License-Identifier: AGPL-3.0-or-later
5
6package web
7
8//lint:file-ignore SA4006 This context is only used if a nested component is present.
9
10import "github.com/a-h/templ"
11import templruntime "github.com/a-h/templ/runtime"
12
13// Home is the repository list.
14func Home(l Layout, p HomePage) templ.Component {
15	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
16		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
17		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
18			return templ_7745c5c3_CtxErr
19		}
20		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
21		if !templ_7745c5c3_IsBuffer {
22			defer func() {
23				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
24				if templ_7745c5c3_Err == nil {
25					templ_7745c5c3_Err = templ_7745c5c3_BufErr
26				}
27			}()
28		}
29		ctx = templ.InitializeContext(ctx)
30		templ_7745c5c3_Var1 := templ.GetChildren(ctx)
31		if templ_7745c5c3_Var1 == nil {
32			templ_7745c5c3_Var1 = templ.NopComponent
33		}
34		ctx = templ.ClearChildren(ctx)
35		templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
36			templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
37			templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
38			if !templ_7745c5c3_IsBuffer {
39				defer func() {
40					templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
41					if templ_7745c5c3_Err == nil {
42						templ_7745c5c3_Err = templ_7745c5c3_BufErr
43					}
44				}()
45			}
46			ctx = templ.InitializeContext(ctx)
47			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<div class=\"filter\"><label for=\"home-filter\" class=\"sr\">filter</label> <input id=\"home-filter\" type=\"search\" data-filter placeholder=\"Filter repositories…\" autocomplete=\"off\" hx-on:input=\"let t = this.value.toLowerCase(); q('#repo-rows > tr').arr().forEach(r => r.hidden = !r.textContent.toLowerCase().includes(t)); take('data-cursor', '#repo-rows > tr:not([hidden])')\"></div><table class=\"list home\" aria-label=\"Repositories\"><thead><tr><th class=\"cur\"></th>")
48			if templ_7745c5c3_Err != nil {
49				return templ_7745c5c3_Err
50			}
51			for _, c := range p.Cols {
52				var templ_7745c5c3_Var3 = []any{c.Class}
53				templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var3...)
54				if templ_7745c5c3_Err != nil {
55					return templ_7745c5c3_Err
56				}
57				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "<th class=\"")
58				if templ_7745c5c3_Err != nil {
59					return templ_7745c5c3_Err
60				}
61				var templ_7745c5c3_Var4 string
62				templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var3).String())
63				if templ_7745c5c3_Err != nil {
64					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 1, Col: 0}
65				}
66				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var4)
67				if templ_7745c5c3_Err != nil {
68					return templ_7745c5c3_Err
69				}
70				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "\" aria-sort=\"")
71				if templ_7745c5c3_Err != nil {
72					return templ_7745c5c3_Err
73				}
74				var templ_7745c5c3_Var5 string
75				templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Dir)
76				if templ_7745c5c3_Err != nil {
77					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 24, Col: 45}
78				}
79				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var5)
80				if templ_7745c5c3_Err != nil {
81					return templ_7745c5c3_Err
82				}
83				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "\"><a href=\"")
84				if templ_7745c5c3_Err != nil {
85					return templ_7745c5c3_Err
86				}
87				var templ_7745c5c3_Var6 templ.SafeURL
88				templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href))
89				if templ_7745c5c3_Err != nil {
90					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 25, Col: 38}
91				}
92				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
93				if templ_7745c5c3_Err != nil {
94					return templ_7745c5c3_Err
95				}
96				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "\">")
97				if templ_7745c5c3_Err != nil {
98					return templ_7745c5c3_Err
99				}
100				var templ_7745c5c3_Var7 string
101				templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(c.Label)
102				if templ_7745c5c3_Err != nil {
103					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 26, Col: 17}
104				}
105				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
106				if templ_7745c5c3_Err != nil {
107					return templ_7745c5c3_Err
108				}
109				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, " ")
110				if templ_7745c5c3_Err != nil {
111					return templ_7745c5c3_Err
112				}
113				if c.Mark != "" {
114					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "<span aria-hidden=\"true\">")
115					if templ_7745c5c3_Err != nil {
116						return templ_7745c5c3_Err
117					}
118					var templ_7745c5c3_Var8 string
119					templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(c.Mark)
120					if templ_7745c5c3_Err != nil {
121						return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 28, Col: 42}
122					}
123					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
124					if templ_7745c5c3_Err != nil {
125						return templ_7745c5c3_Err
126					}
127					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "</span>")
128					if templ_7745c5c3_Err != nil {
129						return templ_7745c5c3_Err
130					}
131				}
132				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "</a></th>")
133				if templ_7745c5c3_Err != nil {
134					return templ_7745c5c3_Err
135				}
136			}
137			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "</tr></thead> <tbody id=\"repo-rows\" data-rows>")
138			if templ_7745c5c3_Err != nil {
139				return templ_7745c5c3_Err
140			}
141			for _, r := range p.Rows {
142				templ_7745c5c3_Err = HomeRowView(r).Render(ctx, templ_7745c5c3_Buffer)
143				if templ_7745c5c3_Err != nil {
144					return templ_7745c5c3_Err
145				}
146			}
147			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "</tbody></table>")
148			if templ_7745c5c3_Err != nil {
149				return templ_7745c5c3_Err
150			}
151			if len(p.Rows) == 0 {
152				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "<p class=\"lede dim\">no repositories yet.</p>")
153				if templ_7745c5c3_Err != nil {
154					return templ_7745c5c3_Err
155				}
156			}
157			return nil
158		})
159		templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
160		if templ_7745c5c3_Err != nil {
161			return templ_7745c5c3_Err
162		}
163		return nil
164	})
165}
166
167// Summary is the summary of a repository: the README reads in the main
168// column at the reading measure; what one acts on sits in the rail.
169func Summary(l Layout, p SummaryPage) templ.Component {
170	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
171		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
172		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
173			return templ_7745c5c3_CtxErr
174		}
175		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
176		if !templ_7745c5c3_IsBuffer {
177			defer func() {
178				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
179				if templ_7745c5c3_Err == nil {
180					templ_7745c5c3_Err = templ_7745c5c3_BufErr
181				}
182			}()
183		}
184		ctx = templ.InitializeContext(ctx)
185		templ_7745c5c3_Var9 := templ.GetChildren(ctx)
186		if templ_7745c5c3_Var9 == nil {
187			templ_7745c5c3_Var9 = templ.NopComponent
188		}
189		ctx = templ.ClearChildren(ctx)
190		templ_7745c5c3_Var10 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
191			templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
192			templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
193			if !templ_7745c5c3_IsBuffer {
194				defer func() {
195					templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
196					if templ_7745c5c3_Err == nil {
197						templ_7745c5c3_Err = templ_7745c5c3_BufErr
198					}
199				}()
200			}
201			ctx = templ.InitializeContext(ctx)
202			if p.Readme != nil {
203				templ_7745c5c3_Err = ReadmeCard(*p.Readme).Render(ctx, templ_7745c5c3_Buffer)
204				if templ_7745c5c3_Err != nil {
205					return templ_7745c5c3_Err
206				}
207			}
208			return nil
209		})
210		templ_7745c5c3_Err = Shell(l, summaryRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var10), templ_7745c5c3_Buffer)
211		if templ_7745c5c3_Err != nil {
212			return templ_7745c5c3_Err
213		}
214		return nil
215	})
216}
217
218func summaryRail(p SummaryPage) templ.Component {
219	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
220		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
221		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
222			return templ_7745c5c3_CtxErr
223		}
224		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
225		if !templ_7745c5c3_IsBuffer {
226			defer func() {
227				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
228				if templ_7745c5c3_Err == nil {
229					templ_7745c5c3_Err = templ_7745c5c3_BufErr
230				}
231			}()
232		}
233		ctx = templ.InitializeContext(ctx)
234		templ_7745c5c3_Var11 := templ.GetChildren(ctx)
235		if templ_7745c5c3_Var11 == nil {
236			templ_7745c5c3_Var11 = templ.NopComponent
237		}
238		ctx = templ.ClearChildren(ctx)
239		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "<section aria-labelledby=\"r-clone\"><h2 id=\"r-clone\">Clone</h2>")
240		if templ_7745c5c3_Err != nil {
241			return templ_7745c5c3_Err
242		}
243		templ_7745c5c3_Err = CloneBlock(p.Clone).Render(ctx, templ_7745c5c3_Buffer)
244		if templ_7745c5c3_Err != nil {
245			return templ_7745c5c3_Err
246		}
247		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "</section><section aria-labelledby=\"r-facts\"><h2 id=\"r-facts\">About</h2>")
248		if templ_7745c5c3_Err != nil {
249			return templ_7745c5c3_Err
250		}
251		templ_7745c5c3_Err = Facts(p.Facts).Render(ctx, templ_7745c5c3_Buffer)
252		if templ_7745c5c3_Err != nil {
253			return templ_7745c5c3_Err
254		}
255		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "</section>")
256		if templ_7745c5c3_Err != nil {
257			return templ_7745c5c3_Err
258		}
259		if p.Latest != nil {
260			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "<section aria-labelledby=\"r-tag\"><h2 id=\"r-tag\">Tags <span class=\"count\">")
261			if templ_7745c5c3_Err != nil {
262				return templ_7745c5c3_Err
263			}
264			var templ_7745c5c3_Var12 string
265			templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Latest.Count))
266			if templ_7745c5c3_Err != nil {
267				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 64, Col: 65}
268			}
269			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
270			if templ_7745c5c3_Err != nil {
271				return templ_7745c5c3_Err
272			}
273			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "</span> <a href=\"")
274			if templ_7745c5c3_Err != nil {
275				return templ_7745c5c3_Err
276			}
277			var templ_7745c5c3_Var13 templ.SafeURL
278			templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Latest.RefsHref))
279			if templ_7745c5c3_Err != nil {
280				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 64, Col: 117}
281			}
282			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
283			if templ_7745c5c3_Err != nil {
284				return templ_7745c5c3_Err
285			}
286			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "\">View all</a></h2>")
287			if templ_7745c5c3_Err != nil {
288				return templ_7745c5c3_Err
289			}
290			if p.Latest.Name != "" {
291				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "<div class=\"latest-tag\"><a class=\"tag-name\" href=\"")
292				if templ_7745c5c3_Err != nil {
293					return templ_7745c5c3_Err
294				}
295				var templ_7745c5c3_Var14 templ.SafeURL
296				templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Latest.Href))
297				if templ_7745c5c3_Err != nil {
298					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 67, Col: 60}
299				}
300				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
301				if templ_7745c5c3_Err != nil {
302					return templ_7745c5c3_Err
303				}
304				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "\"><span class=\"ico i-tag\" aria-hidden=\"true\"></span>")
305				if templ_7745c5c3_Err != nil {
306					return templ_7745c5c3_Err
307				}
308				var templ_7745c5c3_Var15 string
309				templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(p.Latest.Name)
310				if templ_7745c5c3_Err != nil {
311					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 67, Col: 128}
312				}
313				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
314				if templ_7745c5c3_Err != nil {
315					return templ_7745c5c3_Err
316				}
317				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "</a> <span class=\"pill\">latest</span> <time class=\"dim\" datetime=\"")
318				if templ_7745c5c3_Err != nil {
319					return templ_7745c5c3_Err
320				}
321				var templ_7745c5c3_Var16 string
322				templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Latest.WhenAt)
323				if templ_7745c5c3_Err != nil {
324					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 69, Col: 49}
325				}
326				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var16)
327				if templ_7745c5c3_Err != nil {
328					return templ_7745c5c3_Err
329				}
330				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "\" title=\"")
331				if templ_7745c5c3_Err != nil {
332					return templ_7745c5c3_Err
333				}
334				var templ_7745c5c3_Var17 string
335				templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Latest.WhenAt)
336				if templ_7745c5c3_Err != nil {
337					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 69, Col: 75}
338				}
339				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var17)
340				if templ_7745c5c3_Err != nil {
341					return templ_7745c5c3_Err
342				}
343				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "\">")
344				if templ_7745c5c3_Err != nil {
345					return templ_7745c5c3_Err
346				}
347				var templ_7745c5c3_Var18 string
348				templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(p.Latest.When)
349				if templ_7745c5c3_Err != nil {
350					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 69, Col: 93}
351				}
352				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18))
353				if templ_7745c5c3_Err != nil {
354					return templ_7745c5c3_Err
355				}
356				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "</time> ")
357				if templ_7745c5c3_Err != nil {
358					return templ_7745c5c3_Err
359				}
360				if p.Latest.Subject != "" {
361					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "<p class=\"tag-sub dim\">")
362					if templ_7745c5c3_Err != nil {
363						return templ_7745c5c3_Err
364					}
365					var templ_7745c5c3_Var19 string
366					templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(p.Latest.Subject)
367					if templ_7745c5c3_Err != nil {
368						return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 71, Col: 47}
369					}
370					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))
371					if templ_7745c5c3_Err != nil {
372						return templ_7745c5c3_Err
373					}
374					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "</p>")
375					if templ_7745c5c3_Err != nil {
376						return templ_7745c5c3_Err
377					}
378				}
379				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "</div>")
380				if templ_7745c5c3_Err != nil {
381					return templ_7745c5c3_Err
382				}
383			} else {
384				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "<p class=\"dim\">")
385				if templ_7745c5c3_Err != nil {
386					return templ_7745c5c3_Err
387				}
388				var templ_7745c5c3_Var20 string
389				templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.Latest.Count, "tag", "tags"))
390				if templ_7745c5c3_Err != nil {
391					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 75, Col: 58}
392				}
393				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20))
394				if templ_7745c5c3_Err != nil {
395					return templ_7745c5c3_Err
396				}
397				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "</p>")
398				if templ_7745c5c3_Err != nil {
399					return templ_7745c5c3_Err
400				}
401			}
402			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "</section>")
403			if templ_7745c5c3_Err != nil {
404				return templ_7745c5c3_Err
405			}
406		}
407		if len(p.Recent) > 0 {
408			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "<section aria-labelledby=\"r-recent\"><h2 id=\"r-recent\">Recent commits <a href=\"")
409			if templ_7745c5c3_Err != nil {
410				return templ_7745c5c3_Err
411			}
412			var templ_7745c5c3_Var21 templ.SafeURL
413			templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.AllHref))
414			if templ_7745c5c3_Err != nil {
415				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 80, Col: 105}
416			}
417			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21))
418			if templ_7745c5c3_Err != nil {
419				return templ_7745c5c3_Err
420			}
421			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "\">View all</a></h2>")
422			if templ_7745c5c3_Err != nil {
423				return templ_7745c5c3_Err
424			}
425			templ_7745c5c3_Err = CommitRows(p.Recent).Render(ctx, templ_7745c5c3_Buffer)
426			if templ_7745c5c3_Err != nil {
427				return templ_7745c5c3_Err
428			}
429			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "</section>")
430			if templ_7745c5c3_Err != nil {
431				return templ_7745c5c3_Err
432			}
433		}
434		if len(p.Outline) > 0 && p.Readme != nil {
435			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "<section aria-labelledby=\"r-outline\"><h2 id=\"r-outline\">On this page</h2>")
436			if templ_7745c5c3_Err != nil {
437				return templ_7745c5c3_Err
438			}
439			templ_7745c5c3_Err = Outline(p.Outline).Render(ctx, templ_7745c5c3_Buffer)
440			if templ_7745c5c3_Err != nil {
441				return templ_7745c5c3_Err
442			}
443			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "</section>")
444			if templ_7745c5c3_Err != nil {
445				return templ_7745c5c3_Err
446			}
447		}
448		return nil
449	})
450}
451
452// Refs lists the branches and tags of a repository.
453func Refs(l Layout, p RefsPage) templ.Component {
454	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
455		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
456		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
457			return templ_7745c5c3_CtxErr
458		}
459		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
460		if !templ_7745c5c3_IsBuffer {
461			defer func() {
462				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
463				if templ_7745c5c3_Err == nil {
464					templ_7745c5c3_Err = templ_7745c5c3_BufErr
465				}
466			}()
467		}
468		ctx = templ.InitializeContext(ctx)
469		templ_7745c5c3_Var22 := templ.GetChildren(ctx)
470		if templ_7745c5c3_Var22 == nil {
471			templ_7745c5c3_Var22 = templ.NopComponent
472		}
473		ctx = templ.ClearChildren(ctx)
474		templ_7745c5c3_Var23 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
475			templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
476			templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
477			if !templ_7745c5c3_IsBuffer {
478				defer func() {
479					templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
480					if templ_7745c5c3_Err == nil {
481						templ_7745c5c3_Err = templ_7745c5c3_BufErr
482					}
483				}()
484			}
485			ctx = templ.InitializeContext(ctx)
486			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "<div class=\"filter\"><label for=\"ref-filter\" class=\"sr\">filter</label> <input id=\"ref-filter\" type=\"search\" data-filter placeholder=\"Filter branches and tags…\" autocomplete=\"off\" hx-on:input=\"let t = this.value.toLowerCase(); q('#ref-rows > tr').arr().forEach(r => r.hidden = !r.textContent.toLowerCase().includes(t));\n      let first = q('#ref-rows > tr:not([hidden])').arr()[0]; first && q(first).take('data-cursor', '#ref-rows > tr')\"></div><table class=\"list refs\" aria-label=\"Branches and tags\"><thead><tr><th class=\"cur\"></th><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>")
487			if templ_7745c5c3_Err != nil {
488				return templ_7745c5c3_Err
489			}
490			templ_7745c5c3_Err = RefsBody(p).Render(ctx, templ_7745c5c3_Buffer)
491			if templ_7745c5c3_Err != nil {
492				return templ_7745c5c3_Err
493			}
494			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "</table>")
495			if templ_7745c5c3_Err != nil {
496				return templ_7745c5c3_Err
497			}
498			if p.Note != "" {
499				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "<p class=\"note\">")
500				if templ_7745c5c3_Err != nil {
501					return templ_7745c5c3_Err
502				}
503				var templ_7745c5c3_Var24 string
504				templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)
505				if templ_7745c5c3_Err != nil {
506					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 111, Col: 27}
507				}
508				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var24))
509				if templ_7745c5c3_Err != nil {
510					return templ_7745c5c3_Err
511				}
512				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "</p>")
513				if templ_7745c5c3_Err != nil {
514					return templ_7745c5c3_Err
515				}
516			}
517			return nil
518		})
519		templ_7745c5c3_Err = Shell(l, refsRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var23), templ_7745c5c3_Buffer)
520		if templ_7745c5c3_Err != nil {
521			return templ_7745c5c3_Err
522		}
523		return nil
524	})
525}
526
527func refRow(kind string, r RefRow) templ.Component {
528	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
529		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
530		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
531			return templ_7745c5c3_CtxErr
532		}
533		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
534		if !templ_7745c5c3_IsBuffer {
535			defer func() {
536				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
537				if templ_7745c5c3_Err == nil {
538					templ_7745c5c3_Err = templ_7745c5c3_BufErr
539				}
540			}()
541		}
542		ctx = templ.InitializeContext(ctx)
543		templ_7745c5c3_Var25 := templ.GetChildren(ctx)
544		if templ_7745c5c3_Var25 == nil {
545			templ_7745c5c3_Var25 = templ.NopComponent
546		}
547		ctx = templ.ClearChildren(ctx)
548		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "<tr")
549		if templ_7745c5c3_Err != nil {
550			return templ_7745c5c3_Err
551		}
552		if r.Cursor {
553			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, " data-cursor")
554			if templ_7745c5c3_Err != nil {
555				return templ_7745c5c3_Err
556			}
557		}
558		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "><td class=\"cur\" aria-hidden=\"true\"></td><td class=\"c-kind mute\">")
559		if templ_7745c5c3_Err != nil {
560			return templ_7745c5c3_Err
561		}
562		var templ_7745c5c3_Var26 string
563		templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(kind)
564		if templ_7745c5c3_Err != nil {
565			return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 119, Col: 32}
566		}
567		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26))
568		if templ_7745c5c3_Err != nil {
569			return templ_7745c5c3_Err
570		}
571		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "</td><td class=\"c-name\"><a href=\"")
572		if templ_7745c5c3_Err != nil {
573			return templ_7745c5c3_Err
574		}
575		var templ_7745c5c3_Var27 templ.SafeURL
576		templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href))
577		if templ_7745c5c3_Err != nil {
578			return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 121, Col: 34}
579		}
580		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27))
581		if templ_7745c5c3_Err != nil {
582			return templ_7745c5c3_Err
583		}
584		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "\">")
585		if templ_7745c5c3_Err != nil {
586			return templ_7745c5c3_Err
587		}
588		var templ_7745c5c3_Var28 string
589		templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
590		if templ_7745c5c3_Err != nil {
591			return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 121, Col: 45}
592		}
593		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var28))
594		if templ_7745c5c3_Err != nil {
595			return templ_7745c5c3_Err
596		}
597		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "</a> ")
598		if templ_7745c5c3_Err != nil {
599			return templ_7745c5c3_Err
600		}
601		if r.Default {
602			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "<span class=\"pill\">default</span>")
603			if templ_7745c5c3_Err != nil {
604				return templ_7745c5c3_Err
605			}
606		}
607		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "</td><td class=\"c-sha\">")
608		if templ_7745c5c3_Err != nil {
609			return templ_7745c5c3_Err
610		}
611		if r.CHref != "" {
612			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "<a href=\"")
613			if templ_7745c5c3_Err != nil {
614				return templ_7745c5c3_Err
615			}
616			var templ_7745c5c3_Var29 templ.SafeURL
617			templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.CHref))
618			if templ_7745c5c3_Err != nil {
619				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 128, Col: 36}
620			}
621			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29))
622			if templ_7745c5c3_Err != nil {
623				return templ_7745c5c3_Err
624			}
625			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "\">")
626			if templ_7745c5c3_Err != nil {
627				return templ_7745c5c3_Err
628			}
629			var templ_7745c5c3_Var30 string
630			templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short)
631			if templ_7745c5c3_Err != nil {
632				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 128, Col: 48}
633			}
634			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30))
635			if templ_7745c5c3_Err != nil {
636				return templ_7745c5c3_Err
637			}
638			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "</a>")
639			if templ_7745c5c3_Err != nil {
640				return templ_7745c5c3_Err
641			}
642		} else {
643			var templ_7745c5c3_Var31 string
644			templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short)
645			if templ_7745c5c3_Err != nil {
646				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 130, Col: 13}
647			}
648			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31))
649			if templ_7745c5c3_Err != nil {
650				return templ_7745c5c3_Err
651			}
652		}
653		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "</td><td class=\"c-sub\">")
654		if templ_7745c5c3_Err != nil {
655			return templ_7745c5c3_Err
656		}
657		var templ_7745c5c3_Var32 string
658		templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs(r.Subject)
659		if templ_7745c5c3_Err != nil {
660			return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 133, Col: 31}
661		}
662		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32))
663		if templ_7745c5c3_Err != nil {
664			return templ_7745c5c3_Err
665		}
666		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "</td><td class=\"c-when dim\">")
667		if templ_7745c5c3_Err != nil {
668			return templ_7745c5c3_Err
669		}
670		if r.WhenAt != "" {
671			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "<time datetime=\"")
672			if templ_7745c5c3_Err != nil {
673				return templ_7745c5c3_Err
674			}
675			var templ_7745c5c3_Var33 string
676			templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
677			if templ_7745c5c3_Err != nil {
678				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 136, Col: 29}
679			}
680			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var33)
681			if templ_7745c5c3_Err != nil {
682				return templ_7745c5c3_Err
683			}
684			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "\" title=\"")
685			if templ_7745c5c3_Err != nil {
686				return templ_7745c5c3_Err
687			}
688			var templ_7745c5c3_Var34 string
689			templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
690			if templ_7745c5c3_Err != nil {
691				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 136, Col: 48}
692			}
693			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var34)
694			if templ_7745c5c3_Err != nil {
695				return templ_7745c5c3_Err
696			}
697			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "\">")
698			if templ_7745c5c3_Err != nil {
699				return templ_7745c5c3_Err
700			}
701			var templ_7745c5c3_Var35 string
702			templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinStringErrs(r.When)
703			if templ_7745c5c3_Err != nil {
704				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 136, Col: 59}
705			}
706			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35))
707			if templ_7745c5c3_Err != nil {
708				return templ_7745c5c3_Err
709			}
710			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "</time>")
711			if templ_7745c5c3_Err != nil {
712				return templ_7745c5c3_Err
713			}
714		}
715		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "</td></tr>")
716		if templ_7745c5c3_Err != nil {
717			return templ_7745c5c3_Err
718		}
719		return nil
720	})
721}
722
723func refsRail(p RefsPage) templ.Component {
724	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
725		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
726		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
727			return templ_7745c5c3_CtxErr
728		}
729		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
730		if !templ_7745c5c3_IsBuffer {
731			defer func() {
732				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
733				if templ_7745c5c3_Err == nil {
734					templ_7745c5c3_Err = templ_7745c5c3_BufErr
735				}
736			}()
737		}
738		ctx = templ.InitializeContext(ctx)
739		templ_7745c5c3_Var36 := templ.GetChildren(ctx)
740		if templ_7745c5c3_Var36 == nil {
741			templ_7745c5c3_Var36 = templ.NopComponent
742		}
743		ctx = templ.ClearChildren(ctx)
744		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "<section aria-labelledby=\"r-refs\"><h2 id=\"r-refs\">Overview</h2>")
745		if templ_7745c5c3_Err != nil {
746			return templ_7745c5c3_Err
747		}
748		templ_7745c5c3_Err = RefsKV(p).Render(ctx, templ_7745c5c3_Buffer)
749		if templ_7745c5c3_Err != nil {
750			return templ_7745c5c3_Err
751		}
752		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</section>")
753		if templ_7745c5c3_Err != nil {
754			return templ_7745c5c3_Err
755		}
756		return nil
757	})
758}
759
760// State is a 404, 500 or empty-repository page inside the normal shell.
761func State(l Layout, p StatePage) templ.Component {
762	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
763		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
764		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
765			return templ_7745c5c3_CtxErr
766		}
767		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
768		if !templ_7745c5c3_IsBuffer {
769			defer func() {
770				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
771				if templ_7745c5c3_Err == nil {
772					templ_7745c5c3_Err = templ_7745c5c3_BufErr
773				}
774			}()
775		}
776		ctx = templ.InitializeContext(ctx)
777		templ_7745c5c3_Var37 := templ.GetChildren(ctx)
778		if templ_7745c5c3_Var37 == nil {
779			templ_7745c5c3_Var37 = templ.NopComponent
780		}
781		ctx = templ.ClearChildren(ctx)
782		templ_7745c5c3_Var38 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
783			templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
784			templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
785			if !templ_7745c5c3_IsBuffer {
786				defer func() {
787					templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
788					if templ_7745c5c3_Err == nil {
789						templ_7745c5c3_Err = templ_7745c5c3_BufErr
790					}
791				}()
792			}
793			ctx = templ.InitializeContext(ctx)
794			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "<section class=\"state\" aria-labelledby=\"state-title\"><p class=\"eyebrow\">")
795			if templ_7745c5c3_Err != nil {
796				return templ_7745c5c3_Err
797			}
798			var templ_7745c5c3_Var39 string
799			templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.JoinStringErrs(p.Code)
800			if templ_7745c5c3_Err != nil {
801				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 153, Col: 30}
802			}
803			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var39))
804			if templ_7745c5c3_Err != nil {
805				return templ_7745c5c3_Err
806			}
807			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "</p><h1 id=\"state-title\">")
808			if templ_7745c5c3_Err != nil {
809				return templ_7745c5c3_Err
810			}
811			var templ_7745c5c3_Var40 string
812			templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)
813			if templ_7745c5c3_Err != nil {
814				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 154, Col: 33}
815			}
816			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var40))
817			if templ_7745c5c3_Err != nil {
818				return templ_7745c5c3_Err
819			}
820			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "</h1>")
821			if templ_7745c5c3_Err != nil {
822				return templ_7745c5c3_Err
823			}
824			for _, line := range p.Lines {
825				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "<p class=\"dim\">")
826				if templ_7745c5c3_Err != nil {
827					return templ_7745c5c3_Err
828				}
829				var templ_7745c5c3_Var41 string
830				templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.JoinStringErrs(line)
831				if templ_7745c5c3_Err != nil {
832					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 156, Col: 25}
833				}
834				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var41))
835				if templ_7745c5c3_Err != nil {
836					return templ_7745c5c3_Err
837				}
838				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "</p>")
839				if templ_7745c5c3_Err != nil {
840					return templ_7745c5c3_Err
841				}
842			}
843			if p.Clone != nil {
844				templ_7745c5c3_Err = CloneBlock(*p.Clone).Render(ctx, templ_7745c5c3_Buffer)
845				if templ_7745c5c3_Err != nil {
846					return templ_7745c5c3_Err
847				}
848			}
849			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "<p class=\"state-back\">")
850			if templ_7745c5c3_Err != nil {
851				return templ_7745c5c3_Err
852			}
853			for _, b := range p.Back {
854				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "<a href=\"")
855				if templ_7745c5c3_Err != nil {
856					return templ_7745c5c3_Err
857				}
858				var templ_7745c5c3_Var42 templ.SafeURL
859				templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(b.Href))
860				if templ_7745c5c3_Err != nil {
861					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 163, Col: 36}
862				}
863				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42))
864				if templ_7745c5c3_Err != nil {
865					return templ_7745c5c3_Err
866				}
867				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "\">")
868				if templ_7745c5c3_Err != nil {
869					return templ_7745c5c3_Err
870				}
871				var templ_7745c5c3_Var43 string
872				templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinStringErrs(b.Label)
873				if templ_7745c5c3_Err != nil {
874					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 163, Col: 48}
875				}
876				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43))
877				if templ_7745c5c3_Err != nil {
878					return templ_7745c5c3_Err
879				}
880				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "</a>")
881				if templ_7745c5c3_Err != nil {
882					return templ_7745c5c3_Err
883				}
884			}
885			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "</p></section>")
886			if templ_7745c5c3_Err != nil {
887				return templ_7745c5c3_Err
888			}
889			return nil
890		})
891		templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var38), templ_7745c5c3_Buffer)
892		if templ_7745c5c3_Err != nil {
893			return templ_7745c5c3_Err
894		}
895		return nil
896	})
897}
898
899// Login asks the owner to confirm a login link. Opening the link consumes
900// nothing; only this form does. It is a state page with a button.
901func Login(l Layout, p LoginPage) templ.Component {
902	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
903		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
904		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
905			return templ_7745c5c3_CtxErr
906		}
907		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
908		if !templ_7745c5c3_IsBuffer {
909			defer func() {
910				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
911				if templ_7745c5c3_Err == nil {
912					templ_7745c5c3_Err = templ_7745c5c3_BufErr
913				}
914			}()
915		}
916		ctx = templ.InitializeContext(ctx)
917		templ_7745c5c3_Var44 := templ.GetChildren(ctx)
918		if templ_7745c5c3_Var44 == nil {
919			templ_7745c5c3_Var44 = templ.NopComponent
920		}
921		ctx = templ.ClearChildren(ctx)
922		templ_7745c5c3_Var45 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
923			templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
924			templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
925			if !templ_7745c5c3_IsBuffer {
926				defer func() {
927					templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
928					if templ_7745c5c3_Err == nil {
929						templ_7745c5c3_Err = templ_7745c5c3_BufErr
930					}
931				}()
932			}
933			ctx = templ.InitializeContext(ctx)
934			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "<section class=\"state\" aria-labelledby=\"state-title\"><h1 id=\"state-title\">")
935			if templ_7745c5c3_Err != nil {
936				return templ_7745c5c3_Err
937			}
938			var templ_7745c5c3_Var46 string
939			templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)
940			if templ_7745c5c3_Err != nil {
941				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 175, Col: 33}
942			}
943			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var46))
944			if templ_7745c5c3_Err != nil {
945				return templ_7745c5c3_Err
946			}
947			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</h1>")
948			if templ_7745c5c3_Err != nil {
949				return templ_7745c5c3_Err
950			}
951			for _, line := range p.Lines {
952				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "<p class=\"dim\">")
953				if templ_7745c5c3_Err != nil {
954					return templ_7745c5c3_Err
955				}
956				var templ_7745c5c3_Var47 string
957				templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.JoinStringErrs(line)
958				if templ_7745c5c3_Err != nil {
959					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 177, Col: 25}
960				}
961				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var47))
962				if templ_7745c5c3_Err != nil {
963					return templ_7745c5c3_Err
964				}
965				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "</p>")
966				if templ_7745c5c3_Err != nil {
967					return templ_7745c5c3_Err
968				}
969			}
970			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "<form class=\"state-act\" method=\"post\" action=\"")
971			if templ_7745c5c3_Err != nil {
972				return templ_7745c5c3_Err
973			}
974			var templ_7745c5c3_Var48 templ.SafeURL
975			templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Action))
976			if templ_7745c5c3_Err != nil {
977				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 179, Col: 73}
978			}
979			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var48))
980			if templ_7745c5c3_Err != nil {
981				return templ_7745c5c3_Err
982			}
983			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, "\"><button type=\"submit\" class=\"btn primary\">")
984			if templ_7745c5c3_Err != nil {
985				return templ_7745c5c3_Err
986			}
987			var templ_7745c5c3_Var49 string
988			templ_7745c5c3_Var49, templ_7745c5c3_Err = templ.JoinStringErrs(p.Button)
989			if templ_7745c5c3_Err != nil {
990				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 180, Col: 56}
991			}
992			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var49))
993			if templ_7745c5c3_Err != nil {
994				return templ_7745c5c3_Err
995			}
996			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "</button></form><p class=\"state-back\"><a href=\"/\">Back to home</a></p></section>")
997			if templ_7745c5c3_Err != nil {
998				return templ_7745c5c3_Err
999			}
1000			return nil
1001		})
1002		templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var45), templ_7745c5c3_Buffer)
1003		if templ_7745c5c3_Err != nil {
1004			return templ_7745c5c3_Err
1005		}
1006		return nil
1007	})
1008}
1009
1010var _ = templruntime.GeneratedTemplate

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