v0.4.0 3027a40

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\">filter&gt;</label> <input id=\"home-filter\" type=\"search\" data-filter placeholder=\"name or description  ( / )\" 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.Desc != "" {
203				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "<p class=\"lede\">")
204				if templ_7745c5c3_Err != nil {
205					return templ_7745c5c3_Err
206				}
207				var templ_7745c5c3_Var11 string
208				templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(p.Desc)
209				if templ_7745c5c3_Err != nil {
210					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 52, Col: 27}
211				}
212				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
213				if templ_7745c5c3_Err != nil {
214					return templ_7745c5c3_Err
215				}
216				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "</p>")
217				if templ_7745c5c3_Err != nil {
218					return templ_7745c5c3_Err
219				}
220			}
221			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, " ")
222			if templ_7745c5c3_Err != nil {
223				return templ_7745c5c3_Err
224			}
225			if p.Readme != nil {
226				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "<h2 class=\"rule-h\"><span>")
227				if templ_7745c5c3_Err != nil {
228					return templ_7745c5c3_Err
229				}
230				var templ_7745c5c3_Var12 string
231				templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(p.Readme.Name)
232				if templ_7745c5c3_Err != nil {
233					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 55, Col: 43}
234				}
235				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
236				if templ_7745c5c3_Err != nil {
237					return templ_7745c5c3_Err
238				}
239				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "</span></h2>")
240				if templ_7745c5c3_Err != nil {
241					return templ_7745c5c3_Err
242				}
243				templ_7745c5c3_Err = ReadmeView(*p.Readme).Render(ctx, templ_7745c5c3_Buffer)
244				if templ_7745c5c3_Err != nil {
245					return templ_7745c5c3_Err
246				}
247			}
248			return nil
249		})
250		templ_7745c5c3_Err = Shell(l, summaryRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var10), templ_7745c5c3_Buffer)
251		if templ_7745c5c3_Err != nil {
252			return templ_7745c5c3_Err
253		}
254		return nil
255	})
256}
257
258func summaryRail(p SummaryPage) templ.Component {
259	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
260		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
261		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
262			return templ_7745c5c3_CtxErr
263		}
264		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
265		if !templ_7745c5c3_IsBuffer {
266			defer func() {
267				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
268				if templ_7745c5c3_Err == nil {
269					templ_7745c5c3_Err = templ_7745c5c3_BufErr
270				}
271			}()
272		}
273		ctx = templ.InitializeContext(ctx)
274		templ_7745c5c3_Var13 := templ.GetChildren(ctx)
275		if templ_7745c5c3_Var13 == nil {
276			templ_7745c5c3_Var13 = templ.NopComponent
277		}
278		ctx = templ.ClearChildren(ctx)
279		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "<section aria-labelledby=\"r-clone\"><h2 id=\"r-clone\">clone</h2>")
280		if templ_7745c5c3_Err != nil {
281			return templ_7745c5c3_Err
282		}
283		templ_7745c5c3_Err = CloneBlock(p.Clone).Render(ctx, templ_7745c5c3_Buffer)
284		if templ_7745c5c3_Err != nil {
285			return templ_7745c5c3_Err
286		}
287		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "</section><section aria-labelledby=\"r-facts\"><h2 id=\"r-facts\">facts</h2>")
288		if templ_7745c5c3_Err != nil {
289			return templ_7745c5c3_Err
290		}
291		templ_7745c5c3_Err = Facts(p.Facts).Render(ctx, templ_7745c5c3_Buffer)
292		if templ_7745c5c3_Err != nil {
293			return templ_7745c5c3_Err
294		}
295		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "</section>")
296		if templ_7745c5c3_Err != nil {
297			return templ_7745c5c3_Err
298		}
299		if len(p.Recent) > 0 {
300			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "<section aria-labelledby=\"r-recent\"><h2 id=\"r-recent\">recent commits <a href=\"")
301			if templ_7745c5c3_Err != nil {
302				return templ_7745c5c3_Err
303			}
304			var templ_7745c5c3_Var14 templ.SafeURL
305			templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.AllHref))
306			if templ_7745c5c3_Err != nil {
307				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 67, Col: 105}
308			}
309			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
310			if templ_7745c5c3_Err != nil {
311				return templ_7745c5c3_Err
312			}
313			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "\">all</a></h2>")
314			if templ_7745c5c3_Err != nil {
315				return templ_7745c5c3_Err
316			}
317			templ_7745c5c3_Err = CommitRows(p.Recent).Render(ctx, templ_7745c5c3_Buffer)
318			if templ_7745c5c3_Err != nil {
319				return templ_7745c5c3_Err
320			}
321			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "</section>")
322			if templ_7745c5c3_Err != nil {
323				return templ_7745c5c3_Err
324			}
325		}
326		if len(p.Outline) > 0 && p.Readme != nil {
327			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "<section aria-labelledby=\"r-outline\"><h2 id=\"r-outline\">")
328			if templ_7745c5c3_Err != nil {
329				return templ_7745c5c3_Err
330			}
331			var templ_7745c5c3_Var15 string
332			templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(p.Readme.Name)
333			if templ_7745c5c3_Err != nil {
334				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 71, Col: 73}
335			}
336			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
337			if templ_7745c5c3_Err != nil {
338				return templ_7745c5c3_Err
339			}
340			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "</h2>")
341			if templ_7745c5c3_Err != nil {
342				return templ_7745c5c3_Err
343			}
344			templ_7745c5c3_Err = Outline(p.Outline).Render(ctx, templ_7745c5c3_Buffer)
345			if templ_7745c5c3_Err != nil {
346				return templ_7745c5c3_Err
347			}
348			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "</section>")
349			if templ_7745c5c3_Err != nil {
350				return templ_7745c5c3_Err
351			}
352		}
353		return nil
354	})
355}
356
357// Refs lists the branches and tags of a repository.
358func Refs(l Layout, p RefsPage) templ.Component {
359	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
360		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
361		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
362			return templ_7745c5c3_CtxErr
363		}
364		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
365		if !templ_7745c5c3_IsBuffer {
366			defer func() {
367				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
368				if templ_7745c5c3_Err == nil {
369					templ_7745c5c3_Err = templ_7745c5c3_BufErr
370				}
371			}()
372		}
373		ctx = templ.InitializeContext(ctx)
374		templ_7745c5c3_Var16 := templ.GetChildren(ctx)
375		if templ_7745c5c3_Var16 == nil {
376			templ_7745c5c3_Var16 = templ.NopComponent
377		}
378		ctx = templ.ClearChildren(ctx)
379		templ_7745c5c3_Var17 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
380			templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
381			templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
382			if !templ_7745c5c3_IsBuffer {
383				defer func() {
384					templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
385					if templ_7745c5c3_Err == nil {
386						templ_7745c5c3_Err = templ_7745c5c3_BufErr
387					}
388				}()
389			}
390			ctx = templ.InitializeContext(ctx)
391			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "<div class=\"filter\"><label for=\"ref-filter\">filter&gt;</label> <input id=\"ref-filter\" type=\"search\" data-filter placeholder=\"branch or tag  ( / )\" 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>")
392			if templ_7745c5c3_Err != nil {
393				return templ_7745c5c3_Err
394			}
395			templ_7745c5c3_Err = RefsBody(p).Render(ctx, templ_7745c5c3_Buffer)
396			if templ_7745c5c3_Err != nil {
397				return templ_7745c5c3_Err
398			}
399			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "</table>")
400			if templ_7745c5c3_Err != nil {
401				return templ_7745c5c3_Err
402			}
403			if p.Note != "" {
404				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "<p class=\"note\">")
405				if templ_7745c5c3_Err != nil {
406					return templ_7745c5c3_Err
407				}
408				var templ_7745c5c3_Var18 string
409				templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)
410				if templ_7745c5c3_Err != nil {
411					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 98, Col: 27}
412				}
413				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18))
414				if templ_7745c5c3_Err != nil {
415					return templ_7745c5c3_Err
416				}
417				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "</p>")
418				if templ_7745c5c3_Err != nil {
419					return templ_7745c5c3_Err
420				}
421			}
422			return nil
423		})
424		templ_7745c5c3_Err = Shell(l, refsRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var17), templ_7745c5c3_Buffer)
425		if templ_7745c5c3_Err != nil {
426			return templ_7745c5c3_Err
427		}
428		return nil
429	})
430}
431
432func refRow(kind string, r RefRow) templ.Component {
433	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
434		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
435		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
436			return templ_7745c5c3_CtxErr
437		}
438		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
439		if !templ_7745c5c3_IsBuffer {
440			defer func() {
441				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
442				if templ_7745c5c3_Err == nil {
443					templ_7745c5c3_Err = templ_7745c5c3_BufErr
444				}
445			}()
446		}
447		ctx = templ.InitializeContext(ctx)
448		templ_7745c5c3_Var19 := templ.GetChildren(ctx)
449		if templ_7745c5c3_Var19 == nil {
450			templ_7745c5c3_Var19 = templ.NopComponent
451		}
452		ctx = templ.ClearChildren(ctx)
453		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "<tr")
454		if templ_7745c5c3_Err != nil {
455			return templ_7745c5c3_Err
456		}
457		if r.Cursor {
458			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, " data-cursor")
459			if templ_7745c5c3_Err != nil {
460				return templ_7745c5c3_Err
461			}
462		}
463		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "><td class=\"cur\" aria-hidden=\"true\"></td><td class=\"c-kind mute\">")
464		if templ_7745c5c3_Err != nil {
465			return templ_7745c5c3_Err
466		}
467		var templ_7745c5c3_Var20 string
468		templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.JoinStringErrs(kind)
469		if templ_7745c5c3_Err != nil {
470			return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 106, Col: 32}
471		}
472		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20))
473		if templ_7745c5c3_Err != nil {
474			return templ_7745c5c3_Err
475		}
476		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "</td><td class=\"c-name\"><a href=\"")
477		if templ_7745c5c3_Err != nil {
478			return templ_7745c5c3_Err
479		}
480		var templ_7745c5c3_Var21 templ.SafeURL
481		templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href))
482		if templ_7745c5c3_Err != nil {
483			return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 108, Col: 34}
484		}
485		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21))
486		if templ_7745c5c3_Err != nil {
487			return templ_7745c5c3_Err
488		}
489		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "\">")
490		if templ_7745c5c3_Err != nil {
491			return templ_7745c5c3_Err
492		}
493		var templ_7745c5c3_Var22 string
494		templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
495		if templ_7745c5c3_Err != nil {
496			return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 108, Col: 45}
497		}
498		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var22))
499		if templ_7745c5c3_Err != nil {
500			return templ_7745c5c3_Err
501		}
502		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "</a> ")
503		if templ_7745c5c3_Err != nil {
504			return templ_7745c5c3_Err
505		}
506		if r.Default {
507			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "<span class=\"tagged\">*</span>")
508			if templ_7745c5c3_Err != nil {
509				return templ_7745c5c3_Err
510			}
511		}
512		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "</td><td class=\"c-sha\">")
513		if templ_7745c5c3_Err != nil {
514			return templ_7745c5c3_Err
515		}
516		if r.CHref != "" {
517			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "<a href=\"")
518			if templ_7745c5c3_Err != nil {
519				return templ_7745c5c3_Err
520			}
521			var templ_7745c5c3_Var23 templ.SafeURL
522			templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.CHref))
523			if templ_7745c5c3_Err != nil {
524				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 115, Col: 36}
525			}
526			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23))
527			if templ_7745c5c3_Err != nil {
528				return templ_7745c5c3_Err
529			}
530			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "\">")
531			if templ_7745c5c3_Err != nil {
532				return templ_7745c5c3_Err
533			}
534			var templ_7745c5c3_Var24 string
535			templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short)
536			if templ_7745c5c3_Err != nil {
537				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 115, Col: 48}
538			}
539			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var24))
540			if templ_7745c5c3_Err != nil {
541				return templ_7745c5c3_Err
542			}
543			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "</a>")
544			if templ_7745c5c3_Err != nil {
545				return templ_7745c5c3_Err
546			}
547		} else {
548			var templ_7745c5c3_Var25 string
549			templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short)
550			if templ_7745c5c3_Err != nil {
551				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 117, Col: 13}
552			}
553			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25))
554			if templ_7745c5c3_Err != nil {
555				return templ_7745c5c3_Err
556			}
557		}
558		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "</td><td class=\"c-sub\">")
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(r.Subject)
564		if templ_7745c5c3_Err != nil {
565			return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 120, Col: 31}
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-when dim\">")
572		if templ_7745c5c3_Err != nil {
573			return templ_7745c5c3_Err
574		}
575		if r.WhenAt != "" {
576			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "<time datetime=\"")
577			if templ_7745c5c3_Err != nil {
578				return templ_7745c5c3_Err
579			}
580			var templ_7745c5c3_Var27 string
581			templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
582			if templ_7745c5c3_Err != nil {
583				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 123, Col: 29}
584			}
585			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var27)
586			if templ_7745c5c3_Err != nil {
587				return templ_7745c5c3_Err
588			}
589			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "\" title=\"")
590			if templ_7745c5c3_Err != nil {
591				return templ_7745c5c3_Err
592			}
593			var templ_7745c5c3_Var28 string
594			templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
595			if templ_7745c5c3_Err != nil {
596				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 123, Col: 48}
597			}
598			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var28)
599			if templ_7745c5c3_Err != nil {
600				return templ_7745c5c3_Err
601			}
602			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "\">")
603			if templ_7745c5c3_Err != nil {
604				return templ_7745c5c3_Err
605			}
606			var templ_7745c5c3_Var29 string
607			templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(r.When)
608			if templ_7745c5c3_Err != nil {
609				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 123, Col: 59}
610			}
611			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29))
612			if templ_7745c5c3_Err != nil {
613				return templ_7745c5c3_Err
614			}
615			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "</time>")
616			if templ_7745c5c3_Err != nil {
617				return templ_7745c5c3_Err
618			}
619		}
620		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "</td></tr>")
621		if templ_7745c5c3_Err != nil {
622			return templ_7745c5c3_Err
623		}
624		return nil
625	})
626}
627
628func refsRail(p RefsPage) templ.Component {
629	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
630		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
631		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
632			return templ_7745c5c3_CtxErr
633		}
634		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
635		if !templ_7745c5c3_IsBuffer {
636			defer func() {
637				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
638				if templ_7745c5c3_Err == nil {
639					templ_7745c5c3_Err = templ_7745c5c3_BufErr
640				}
641			}()
642		}
643		ctx = templ.InitializeContext(ctx)
644		templ_7745c5c3_Var30 := templ.GetChildren(ctx)
645		if templ_7745c5c3_Var30 == nil {
646			templ_7745c5c3_Var30 = templ.NopComponent
647		}
648		ctx = templ.ClearChildren(ctx)
649		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "<section aria-labelledby=\"r-refs\"><h2 id=\"r-refs\">refs</h2>")
650		if templ_7745c5c3_Err != nil {
651			return templ_7745c5c3_Err
652		}
653		templ_7745c5c3_Err = RefsKV(p).Render(ctx, templ_7745c5c3_Buffer)
654		if templ_7745c5c3_Err != nil {
655			return templ_7745c5c3_Err
656		}
657		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "</section><section aria-labelledby=\"r-legend\"><h2 id=\"r-legend\">legend</h2><dl class=\"kv\"><dt>*</dt><dd>default branch</dd></dl></section>")
658		if templ_7745c5c3_Err != nil {
659			return templ_7745c5c3_Err
660		}
661		return nil
662	})
663}
664
665// State is a 404, 500 or empty-repository page inside the normal shell.
666func State(l Layout, p StatePage) templ.Component {
667	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
668		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
669		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
670			return templ_7745c5c3_CtxErr
671		}
672		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
673		if !templ_7745c5c3_IsBuffer {
674			defer func() {
675				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
676				if templ_7745c5c3_Err == nil {
677					templ_7745c5c3_Err = templ_7745c5c3_BufErr
678				}
679			}()
680		}
681		ctx = templ.InitializeContext(ctx)
682		templ_7745c5c3_Var31 := templ.GetChildren(ctx)
683		if templ_7745c5c3_Var31 == nil {
684			templ_7745c5c3_Var31 = templ.NopComponent
685		}
686		ctx = templ.ClearChildren(ctx)
687		templ_7745c5c3_Var32 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
688			templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
689			templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
690			if !templ_7745c5c3_IsBuffer {
691				defer func() {
692					templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
693					if templ_7745c5c3_Err == nil {
694						templ_7745c5c3_Err = templ_7745c5c3_BufErr
695					}
696				}()
697			}
698			ctx = templ.InitializeContext(ctx)
699			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "<section class=\"state\" aria-labelledby=\"state-title\"><h1 id=\"state-title\"><span class=\"code\">")
700			if templ_7745c5c3_Err != nil {
701				return templ_7745c5c3_Err
702			}
703			var templ_7745c5c3_Var33 string
704			templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinStringErrs(p.Code)
705			if templ_7745c5c3_Err != nil {
706				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 144, Col: 51}
707			}
708			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33))
709			if templ_7745c5c3_Err != nil {
710				return templ_7745c5c3_Err
711			}
712			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "</span> ")
713			if templ_7745c5c3_Err != nil {
714				return templ_7745c5c3_Err
715			}
716			var templ_7745c5c3_Var34 string
717			templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)
718			if templ_7745c5c3_Err != nil {
719				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 144, Col: 70}
720			}
721			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34))
722			if templ_7745c5c3_Err != nil {
723				return templ_7745c5c3_Err
724			}
725			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "</h1>")
726			if templ_7745c5c3_Err != nil {
727				return templ_7745c5c3_Err
728			}
729			for _, line := range p.Lines {
730				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "<p class=\"dim\">")
731				if templ_7745c5c3_Err != nil {
732					return templ_7745c5c3_Err
733				}
734				var templ_7745c5c3_Var35 string
735				templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinStringErrs(line)
736				if templ_7745c5c3_Err != nil {
737					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 146, Col: 25}
738				}
739				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35))
740				if templ_7745c5c3_Err != nil {
741					return templ_7745c5c3_Err
742				}
743				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "</p>")
744				if templ_7745c5c3_Err != nil {
745					return templ_7745c5c3_Err
746				}
747			}
748			if p.Clone != nil {
749				templ_7745c5c3_Err = CloneBlock(*p.Clone).Render(ctx, templ_7745c5c3_Buffer)
750				if templ_7745c5c3_Err != nil {
751					return templ_7745c5c3_Err
752				}
753			}
754			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "<p class=\"state-back\">")
755			if templ_7745c5c3_Err != nil {
756				return templ_7745c5c3_Err
757			}
758			for _, b := range p.Back {
759				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "<a href=\"")
760				if templ_7745c5c3_Err != nil {
761					return templ_7745c5c3_Err
762				}
763				var templ_7745c5c3_Var36 templ.SafeURL
764				templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(b.Href))
765				if templ_7745c5c3_Err != nil {
766					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 153, Col: 36}
767				}
768				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var36))
769				if templ_7745c5c3_Err != nil {
770					return templ_7745c5c3_Err
771				}
772				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "\">")
773				if templ_7745c5c3_Err != nil {
774					return templ_7745c5c3_Err
775				}
776				var templ_7745c5c3_Var37 string
777				templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.JoinStringErrs(b.Label)
778				if templ_7745c5c3_Err != nil {
779					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 153, Col: 48}
780				}
781				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var37))
782				if templ_7745c5c3_Err != nil {
783					return templ_7745c5c3_Err
784				}
785				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</a>")
786				if templ_7745c5c3_Err != nil {
787					return templ_7745c5c3_Err
788				}
789			}
790			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "</p></section>")
791			if templ_7745c5c3_Err != nil {
792				return templ_7745c5c3_Err
793			}
794			return nil
795		})
796		templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var32), templ_7745c5c3_Buffer)
797		if templ_7745c5c3_Err != nil {
798			return templ_7745c5c3_Err
799		}
800		return nil
801	})
802}
803
804// Login asks the owner to confirm a login link. Opening the link consumes
805// nothing; only this form does. It is a state page with a button.
806func Login(l Layout, p LoginPage) templ.Component {
807	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
808		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
809		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
810			return templ_7745c5c3_CtxErr
811		}
812		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
813		if !templ_7745c5c3_IsBuffer {
814			defer func() {
815				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
816				if templ_7745c5c3_Err == nil {
817					templ_7745c5c3_Err = templ_7745c5c3_BufErr
818				}
819			}()
820		}
821		ctx = templ.InitializeContext(ctx)
822		templ_7745c5c3_Var38 := templ.GetChildren(ctx)
823		if templ_7745c5c3_Var38 == nil {
824			templ_7745c5c3_Var38 = templ.NopComponent
825		}
826		ctx = templ.ClearChildren(ctx)
827		templ_7745c5c3_Var39 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
828			templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
829			templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
830			if !templ_7745c5c3_IsBuffer {
831				defer func() {
832					templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
833					if templ_7745c5c3_Err == nil {
834						templ_7745c5c3_Err = templ_7745c5c3_BufErr
835					}
836				}()
837			}
838			ctx = templ.InitializeContext(ctx)
839			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "<section class=\"state\" aria-labelledby=\"state-title\"><h1 id=\"state-title\"><span class=\"code\">login</span> ")
840			if templ_7745c5c3_Err != nil {
841				return templ_7745c5c3_Err
842			}
843			var templ_7745c5c3_Var40 string
844			templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)
845			if templ_7745c5c3_Err != nil {
846				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 165, Col: 65}
847			}
848			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var40))
849			if templ_7745c5c3_Err != nil {
850				return templ_7745c5c3_Err
851			}
852			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "</h1>")
853			if templ_7745c5c3_Err != nil {
854				return templ_7745c5c3_Err
855			}
856			for _, line := range p.Lines {
857				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "<p class=\"dim\">")
858				if templ_7745c5c3_Err != nil {
859					return templ_7745c5c3_Err
860				}
861				var templ_7745c5c3_Var41 string
862				templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.JoinStringErrs(line)
863				if templ_7745c5c3_Err != nil {
864					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 167, Col: 25}
865				}
866				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var41))
867				if templ_7745c5c3_Err != nil {
868					return templ_7745c5c3_Err
869				}
870				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "</p>")
871				if templ_7745c5c3_Err != nil {
872					return templ_7745c5c3_Err
873				}
874			}
875			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "<form class=\"state-act\" method=\"post\" action=\"")
876			if templ_7745c5c3_Err != nil {
877				return templ_7745c5c3_Err
878			}
879			var templ_7745c5c3_Var42 templ.SafeURL
880			templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Action))
881			if templ_7745c5c3_Err != nil {
882				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 169, Col: 73}
883			}
884			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42))
885			if templ_7745c5c3_Err != nil {
886				return templ_7745c5c3_Err
887			}
888			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "\"><button type=\"submit\">")
889			if templ_7745c5c3_Err != nil {
890				return templ_7745c5c3_Err
891			}
892			var templ_7745c5c3_Var43 string
893			templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinStringErrs(p.Button)
894			if templ_7745c5c3_Err != nil {
895				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 170, Col: 36}
896			}
897			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43))
898			if templ_7745c5c3_Err != nil {
899				return templ_7745c5c3_Err
900			}
901			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "</button></form><p class=\"state-back\"><a href=\"/\">home</a></p></section>")
902			if templ_7745c5c3_Err != nil {
903				return templ_7745c5c3_Err
904			}
905			return nil
906		})
907		templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var39), templ_7745c5c3_Buffer)
908		if templ_7745c5c3_Err != nil {
909			return templ_7745c5c3_Err
910		}
911		return nil
912	})
913}
914
915var _ = 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 4

Tags 45

↑↓ moveenter openesc close