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// Facts is a key/value block on an 11ch key column.
14func Facts(facts []Fact) 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_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<dl class=\"kv\">")
36 if templ_7745c5c3_Err != nil {
37 return templ_7745c5c3_Err
38 }
39 for _, f := range facts {
40 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "<dt>")
41 if templ_7745c5c3_Err != nil {
42 return templ_7745c5c3_Err
43 }
44 var templ_7745c5c3_Var2 string
45 templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(f.Key)
46 if templ_7745c5c3_Err != nil {
47 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 9, Col: 14}
48 }
49 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
50 if templ_7745c5c3_Err != nil {
51 return templ_7745c5c3_Err
52 }
53 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "</dt>")
54 if templ_7745c5c3_Err != nil {
55 return templ_7745c5c3_Err
56 }
57 templ_7745c5c3_Err = FactValue(f).Render(ctx, templ_7745c5c3_Buffer)
58 if templ_7745c5c3_Err != nil {
59 return templ_7745c5c3_Err
60 }
61 }
62 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "</dl>")
63 if templ_7745c5c3_Err != nil {
64 return templ_7745c5c3_Err
65 }
66 return nil
67 })
68}
69
70// CloneBlock is a block of copyable shell lines; each has its own [copy]
71// button, whose label says "copied" for 1.5 s.
72func CloneBlock(c Clone) templ.Component {
73 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
74 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
75 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
76 return templ_7745c5c3_CtxErr
77 }
78 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
79 if !templ_7745c5c3_IsBuffer {
80 defer func() {
81 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
82 if templ_7745c5c3_Err == nil {
83 templ_7745c5c3_Err = templ_7745c5c3_BufErr
84 }
85 }()
86 }
87 ctx = templ.InitializeContext(ctx)
88 templ_7745c5c3_Var3 := templ.GetChildren(ctx)
89 if templ_7745c5c3_Var3 == nil {
90 templ_7745c5c3_Var3 = templ.NopComponent
91 }
92 ctx = templ.ClearChildren(ctx)
93 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "<div class=\"clone\" id=\"")
94 if templ_7745c5c3_Err != nil {
95 return templ_7745c5c3_Err
96 }
97 var templ_7745c5c3_Var4 string
98 templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.ID)
99 if templ_7745c5c3_Err != nil {
100 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 18, Col: 29}
101 }
102 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var4)
103 if templ_7745c5c3_Err != nil {
104 return templ_7745c5c3_Err
105 }
106 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "\">")
107 if templ_7745c5c3_Err != nil {
108 return templ_7745c5c3_Err
109 }
110 for _, line := range c.Lines {
111 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "<div class=\"clone-line\"><span class=\"mute\" aria-hidden=\"true\">$ </span><code>")
112 if templ_7745c5c3_Err != nil {
113 return templ_7745c5c3_Err
114 }
115 var templ_7745c5c3_Var5 string
116 templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(line)
117 if templ_7745c5c3_Err != nil {
118 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 21, Col: 63}
119 }
120 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
121 if templ_7745c5c3_Err != nil {
122 return templ_7745c5c3_Err
123 }
124 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "</code> <button type=\"button\" class=\"btn copy\" data-js data-label=\"Copy\" aria-label=\"")
125 if templ_7745c5c3_Err != nil {
126 return templ_7745c5c3_Err
127 }
128 var templ_7745c5c3_Var6 string
129 templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.ResolveAttributeValue("copy: " + line)
130 if templ_7745c5c3_Err != nil {
131 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 27, Col: 33}
132 }
133 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var6)
134 if templ_7745c5c3_Err != nil {
135 return templ_7745c5c3_Err
136 }
137 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "\" hx-on:click=\"ermite.copy(this)\">Copy</button></div>")
138 if templ_7745c5c3_Err != nil {
139 return templ_7745c5c3_Err
140 }
141 }
142 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "</div>")
143 if templ_7745c5c3_Err != nil {
144 return templ_7745c5c3_Err
145 }
146 return nil
147 })
148}
149
150// HomeRowView is the row of a repository in the home list. On the left what
151// it is: name, description, topics and the pulse of its activity; on the
152// right its figures and CI state over its newest commits. Its id is the
153// target of SSE swaps; the name link comes first, `enter` follows it.
154func HomeRowView(r HomeRow) templ.Component {
155 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
156 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
157 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
158 return templ_7745c5c3_CtxErr
159 }
160 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
161 if !templ_7745c5c3_IsBuffer {
162 defer func() {
163 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
164 if templ_7745c5c3_Err == nil {
165 templ_7745c5c3_Err = templ_7745c5c3_BufErr
166 }
167 }()
168 }
169 ctx = templ.InitializeContext(ctx)
170 templ_7745c5c3_Var7 := templ.GetChildren(ctx)
171 if templ_7745c5c3_Var7 == nil {
172 templ_7745c5c3_Var7 = templ.NopComponent
173 }
174 ctx = templ.ClearChildren(ctx)
175 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "<li id=\"")
176 if templ_7745c5c3_Err != nil {
177 return templ_7745c5c3_Err
178 }
179 var templ_7745c5c3_Var8 string
180 templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.ID)
181 if templ_7745c5c3_Err != nil {
182 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 40, Col: 14}
183 }
184 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var8)
185 if templ_7745c5c3_Err != nil {
186 return templ_7745c5c3_Err
187 }
188 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "\" class=\"repo\"")
189 if templ_7745c5c3_Err != nil {
190 return templ_7745c5c3_Err
191 }
192 if r.Cursor {
193 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, " data-cursor")
194 if templ_7745c5c3_Err != nil {
195 return templ_7745c5c3_Err
196 }
197 }
198 if r.Fresh {
199 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, " data-activity")
200 if templ_7745c5c3_Err != nil {
201 return templ_7745c5c3_Err
202 }
203 }
204 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "><div class=\"repo-main\"><h2 class=\"repo-name\"><a href=\"")
205 if templ_7745c5c3_Err != nil {
206 return templ_7745c5c3_Err
207 }
208 var templ_7745c5c3_Var9 templ.SafeURL
209 templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href))
210 if templ_7745c5c3_Err != nil {
211 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 43, Col: 35}
212 }
213 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
214 if templ_7745c5c3_Err != nil {
215 return templ_7745c5c3_Err
216 }
217 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "\">")
218 if templ_7745c5c3_Err != nil {
219 return templ_7745c5c3_Err
220 }
221 var templ_7745c5c3_Var10 string
222 templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
223 if templ_7745c5c3_Err != nil {
224 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 43, Col: 46}
225 }
226 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
227 if templ_7745c5c3_Err != nil {
228 return templ_7745c5c3_Err
229 }
230 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "</a> ")
231 if templ_7745c5c3_Err != nil {
232 return templ_7745c5c3_Err
233 }
234 if rel := r.Release; rel != nil {
235 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "<a class=\"pill repo-release\" href=\"")
236 if templ_7745c5c3_Err != nil {
237 return templ_7745c5c3_Err
238 }
239 var templ_7745c5c3_Var11 templ.SafeURL
240 templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(rel.Href))
241 if templ_7745c5c3_Err != nil {
242 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 45, Col: 64}
243 }
244 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
245 if templ_7745c5c3_Err != nil {
246 return templ_7745c5c3_Err
247 }
248 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "\" title=\"")
249 if templ_7745c5c3_Err != nil {
250 return templ_7745c5c3_Err
251 }
252 var templ_7745c5c3_Var12 string
253 templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.ResolveAttributeValue("Latest release: " + rel.Tag)
254 if templ_7745c5c3_Err != nil {
255 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 45, Col: 103}
256 }
257 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var12)
258 if templ_7745c5c3_Err != nil {
259 return templ_7745c5c3_Err
260 }
261 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "\">")
262 if templ_7745c5c3_Err != nil {
263 return templ_7745c5c3_Err
264 }
265 var templ_7745c5c3_Var13 string
266 templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(rel.Tag)
267 if templ_7745c5c3_Err != nil {
268 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 45, Col: 115}
269 }
270 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
271 if templ_7745c5c3_Err != nil {
272 return templ_7745c5c3_Err
273 }
274 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "</a> ")
275 if templ_7745c5c3_Err != nil {
276 return templ_7745c5c3_Err
277 }
278 }
279 if r.Private {
280 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "<span class=\"pill\">private</span> ")
281 if templ_7745c5c3_Err != nil {
282 return templ_7745c5c3_Err
283 }
284 }
285 if lic := r.License; lic != nil {
286 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "<a class=\"pill repo-license\" href=\"")
287 if templ_7745c5c3_Err != nil {
288 return templ_7745c5c3_Err
289 }
290 var templ_7745c5c3_Var14 templ.SafeURL
291 templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(lic.Href))
292 if templ_7745c5c3_Err != nil {
293 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 51, Col: 64}
294 }
295 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
296 if templ_7745c5c3_Err != nil {
297 return templ_7745c5c3_Err
298 }
299 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "\" title=\"")
300 if templ_7745c5c3_Err != nil {
301 return templ_7745c5c3_Err
302 }
303 var templ_7745c5c3_Var15 string
304 templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.ResolveAttributeValue("License: " + lic.ID)
305 if templ_7745c5c3_Err != nil {
306 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 51, Col: 95}
307 }
308 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var15)
309 if templ_7745c5c3_Err != nil {
310 return templ_7745c5c3_Err
311 }
312 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "\">")
313 if templ_7745c5c3_Err != nil {
314 return templ_7745c5c3_Err
315 }
316 var templ_7745c5c3_Var16 string
317 templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(lic.ID)
318 if templ_7745c5c3_Err != nil {
319 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 51, Col: 106}
320 }
321 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16))
322 if templ_7745c5c3_Err != nil {
323 return templ_7745c5c3_Err
324 }
325 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "</a> ")
326 if templ_7745c5c3_Err != nil {
327 return templ_7745c5c3_Err
328 }
329 }
330 if r.Fresh {
331 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "<span class=\"repo-activity\" title=\"new activity\"><span class=\"ico i-refresh-cw\" aria-hidden=\"true\"></span><span class=\"sr\">new activity</span></span>")
332 if templ_7745c5c3_Err != nil {
333 return templ_7745c5c3_Err
334 }
335 }
336 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "</h2>")
337 if templ_7745c5c3_Err != nil {
338 return templ_7745c5c3_Err
339 }
340 if r.Desc != "" {
341 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "<p class=\"repo-desc\">")
342 if templ_7745c5c3_Err != nil {
343 return templ_7745c5c3_Err
344 }
345 var templ_7745c5c3_Var17 string
346 templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(r.Desc)
347 if templ_7745c5c3_Err != nil {
348 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 58, Col: 33}
349 }
350 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var17))
351 if templ_7745c5c3_Err != nil {
352 return templ_7745c5c3_Err
353 }
354 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "</p>")
355 if templ_7745c5c3_Err != nil {
356 return templ_7745c5c3_Err
357 }
358 } else {
359 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "<p class=\"repo-desc mute\">no description</p>")
360 if templ_7745c5c3_Err != nil {
361 return templ_7745c5c3_Err
362 }
363 }
364 if len(r.Topics) > 0 {
365 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "<ul class=\"repo-topics\" aria-label=\"")
366 if templ_7745c5c3_Err != nil {
367 return templ_7745c5c3_Err
368 }
369 var templ_7745c5c3_Var18 string
370 templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.ResolveAttributeValue("Topics of " + r.Name)
371 if templ_7745c5c3_Err != nil {
372 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 63, Col: 62}
373 }
374 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var18)
375 if templ_7745c5c3_Err != nil {
376 return templ_7745c5c3_Err
377 }
378 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "\" data-fit>")
379 if templ_7745c5c3_Err != nil {
380 return templ_7745c5c3_Err
381 }
382 for _, t := range r.Topics {
383 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "<li>")
384 if templ_7745c5c3_Err != nil {
385 return templ_7745c5c3_Err
386 }
387 var templ_7745c5c3_Var19 string
388 templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(t)
389 if templ_7745c5c3_Err != nil {
390 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 65, Col: 13}
391 }
392 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))
393 if templ_7745c5c3_Err != nil {
394 return templ_7745c5c3_Err
395 }
396 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "</li>")
397 if templ_7745c5c3_Err != nil {
398 return templ_7745c5c3_Err
399 }
400 }
401 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "</ul>")
402 if templ_7745c5c3_Err != nil {
403 return templ_7745c5c3_Err
404 }
405 } else {
406 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "<div class=\"repo-topics\" aria-hidden=\"true\"></div>")
407 if templ_7745c5c3_Err != nil {
408 return templ_7745c5c3_Err
409 }
410 }
411 if r.Stats != nil && r.Stats.Pulse != nil {
412 templ_7745c5c3_Err = pulse(r.Stats.Pulse).Render(ctx, templ_7745c5c3_Buffer)
413 if templ_7745c5c3_Err != nil {
414 return templ_7745c5c3_Err
415 }
416 } else {
417 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "<div class=\"repo-pulse\" aria-hidden=\"true\"></div>")
418 if templ_7745c5c3_Err != nil {
419 return templ_7745c5c3_Err
420 }
421 }
422 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "</div><div class=\"repo-head\"><dl class=\"repo-stats\" aria-label=\"")
423 if templ_7745c5c3_Err != nil {
424 return templ_7745c5c3_Err
425 }
426 var templ_7745c5c3_Var20 string
427 templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.ResolveAttributeValue("Figures of " + r.Name)
428 if templ_7745c5c3_Err != nil {
429 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 78, Col: 61}
430 }
431 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var20)
432 if templ_7745c5c3_Err != nil {
433 return templ_7745c5c3_Err
434 }
435 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "\">")
436 if templ_7745c5c3_Err != nil {
437 return templ_7745c5c3_Err
438 }
439 if s := r.Stats; s != nil {
440 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "<div><dt>commits</dt><dd>")
441 if templ_7745c5c3_Err != nil {
442 return templ_7745c5c3_Err
443 }
444 var templ_7745c5c3_Var21 string
445 templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs(s.Commits)
446 if templ_7745c5c3_Err != nil {
447 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 80, Col: 41}
448 }
449 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21))
450 if templ_7745c5c3_Err != nil {
451 return templ_7745c5c3_Err
452 }
453 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "</dd></div><div><dt>last 30 days</dt><dd>")
454 if templ_7745c5c3_Err != nil {
455 return templ_7745c5c3_Err
456 }
457 var templ_7745c5c3_Var22 string
458 templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.JoinStringErrs(s.Recent)
459 if templ_7745c5c3_Err != nil {
460 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 81, Col: 45}
461 }
462 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var22))
463 if templ_7745c5c3_Err != nil {
464 return templ_7745c5c3_Err
465 }
466 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "</dd></div>")
467 if templ_7745c5c3_Err != nil {
468 return templ_7745c5c3_Err
469 }
470 }
471 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "<div class=\"rs-active\"><dt>last activity</dt>")
472 if templ_7745c5c3_Err != nil {
473 return templ_7745c5c3_Err
474 }
475 if r.ActiveAt != "" {
476 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "<dd><time datetime=\"")
477 if templ_7745c5c3_Err != nil {
478 return templ_7745c5c3_Err
479 }
480 var templ_7745c5c3_Var23 string
481 templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.ActiveAt)
482 if templ_7745c5c3_Err != nil {
483 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 86, Col: 37}
484 }
485 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var23)
486 if templ_7745c5c3_Err != nil {
487 return templ_7745c5c3_Err
488 }
489 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "\" title=\"")
490 if templ_7745c5c3_Err != nil {
491 return templ_7745c5c3_Err
492 }
493 var templ_7745c5c3_Var24 string
494 templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.ActiveAt)
495 if templ_7745c5c3_Err != nil {
496 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 86, Col: 58}
497 }
498 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var24)
499 if templ_7745c5c3_Err != nil {
500 return templ_7745c5c3_Err
501 }
502 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "\">")
503 if templ_7745c5c3_Err != nil {
504 return templ_7745c5c3_Err
505 }
506 var templ_7745c5c3_Var25 string
507 templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(r.Active)
508 if templ_7745c5c3_Err != nil {
509 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 86, Col: 71}
510 }
511 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25))
512 if templ_7745c5c3_Err != nil {
513 return templ_7745c5c3_Err
514 }
515 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "</time></dd>")
516 if templ_7745c5c3_Err != nil {
517 return templ_7745c5c3_Err
518 }
519 } else {
520 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "<dd class=\"mute\">never</dd>")
521 if templ_7745c5c3_Err != nil {
522 return templ_7745c5c3_Err
523 }
524 }
525 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "</div>")
526 if templ_7745c5c3_Err != nil {
527 return templ_7745c5c3_Err
528 }
529 if s := r.Stats; s != nil && s.Tag != "" {
530 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "<div class=\"rs-tag\"><dt>last tag</dt>")
531 if templ_7745c5c3_Err != nil {
532 return templ_7745c5c3_Err
533 }
534 if s.TagHref != "" {
535 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "<dd><a href=\"")
536 if templ_7745c5c3_Err != nil {
537 return templ_7745c5c3_Err
538 }
539 var templ_7745c5c3_Var26 templ.SafeURL
540 templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(s.TagHref))
541 if templ_7745c5c3_Err != nil {
542 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 95, Col: 45}
543 }
544 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26))
545 if templ_7745c5c3_Err != nil {
546 return templ_7745c5c3_Err
547 }
548 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "\" title=\"")
549 if templ_7745c5c3_Err != nil {
550 return templ_7745c5c3_Err
551 }
552 var templ_7745c5c3_Var27 string
553 templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.ResolveAttributeValue(s.Tag + " · made " + s.TagWhen)
554 if templ_7745c5c3_Err != nil {
555 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 95, Col: 87}
556 }
557 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var27)
558 if templ_7745c5c3_Err != nil {
559 return templ_7745c5c3_Err
560 }
561 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "\">")
562 if templ_7745c5c3_Err != nil {
563 return templ_7745c5c3_Err
564 }
565 var templ_7745c5c3_Var28 string
566 templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinStringErrs(s.Tag)
567 if templ_7745c5c3_Err != nil {
568 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 95, Col: 97}
569 }
570 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var28))
571 if templ_7745c5c3_Err != nil {
572 return templ_7745c5c3_Err
573 }
574 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "</a></dd>")
575 if templ_7745c5c3_Err != nil {
576 return templ_7745c5c3_Err
577 }
578 } else {
579 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "<dd title=\"")
580 if templ_7745c5c3_Err != nil {
581 return templ_7745c5c3_Err
582 }
583 var templ_7745c5c3_Var29 string
584 templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.ResolveAttributeValue(s.Tag + " · made " + s.TagWhen)
585 if templ_7745c5c3_Err != nil {
586 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 97, Col: 50}
587 }
588 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var29)
589 if templ_7745c5c3_Err != nil {
590 return templ_7745c5c3_Err
591 }
592 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "\">")
593 if templ_7745c5c3_Err != nil {
594 return templ_7745c5c3_Err
595 }
596 var templ_7745c5c3_Var30 string
597 templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(s.Tag)
598 if templ_7745c5c3_Err != nil {
599 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 97, Col: 60}
600 }
601 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30))
602 if templ_7745c5c3_Err != nil {
603 return templ_7745c5c3_Err
604 }
605 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "</dd>")
606 if templ_7745c5c3_Err != nil {
607 return templ_7745c5c3_Err
608 }
609 }
610 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</div>")
611 if templ_7745c5c3_Err != nil {
612 return templ_7745c5c3_Err
613 }
614 }
615 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "</dl>")
616 if templ_7745c5c3_Err != nil {
617 return templ_7745c5c3_Err
618 }
619 if r.CI != nil {
620 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "<a class=\"repo-ci\" href=\"")
621 if templ_7745c5c3_Err != nil {
622 return templ_7745c5c3_Err
623 }
624 var templ_7745c5c3_Var31 templ.SafeURL
625 templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.CI.Href))
626 if templ_7745c5c3_Err != nil {
627 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 103, Col: 54}
628 }
629 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31))
630 if templ_7745c5c3_Err != nil {
631 return templ_7745c5c3_Err
632 }
633 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "\" title=\"")
634 if templ_7745c5c3_Err != nil {
635 return templ_7745c5c3_Err
636 }
637 var templ_7745c5c3_Var32 string
638 templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.CI.Label + " · " + r.CI.Title)
639 if templ_7745c5c3_Err != nil {
640 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 103, Col: 97}
641 }
642 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var32)
643 if templ_7745c5c3_Err != nil {
644 return templ_7745c5c3_Err
645 }
646 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "\">")
647 if templ_7745c5c3_Err != nil {
648 return templ_7745c5c3_Err
649 }
650 var templ_7745c5c3_Var33 = []any{"ck", "ck-" + r.CI.Kind}
651 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var33...)
652 if templ_7745c5c3_Err != nil {
653 return templ_7745c5c3_Err
654 }
655 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "<span class=\"")
656 if templ_7745c5c3_Err != nil {
657 return templ_7745c5c3_Err
658 }
659 var templ_7745c5c3_Var34 string
660 templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var33).String())
661 if templ_7745c5c3_Err != nil {
662 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 1, Col: 0}
663 }
664 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var34)
665 if templ_7745c5c3_Err != nil {
666 return templ_7745c5c3_Err
667 }
668 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "\" aria-hidden=\"true\"></span> <span class=\"sr\">")
669 if templ_7745c5c3_Err != nil {
670 return templ_7745c5c3_Err
671 }
672 var templ_7745c5c3_Var35 string
673 templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinStringErrs("CI: " + r.CI.Label)
674 if templ_7745c5c3_Err != nil {
675 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 105, Col: 43}
676 }
677 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35))
678 if templ_7745c5c3_Err != nil {
679 return templ_7745c5c3_Err
680 }
681 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "</span></a>")
682 if templ_7745c5c3_Err != nil {
683 return templ_7745c5c3_Err
684 }
685 }
686 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "</div>")
687 if templ_7745c5c3_Err != nil {
688 return templ_7745c5c3_Err
689 }
690 if len(r.Commits) > 0 {
691 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "<ul class=\"repo-commits\"")
692 if templ_7745c5c3_Err != nil {
693 return templ_7745c5c3_Err
694 }
695 if len(r.Commits) == homeRecent {
696 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, " data-full")
697 if templ_7745c5c3_Err != nil {
698 return templ_7745c5c3_Err
699 }
700 }
701 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, " aria-label=\"")
702 if templ_7745c5c3_Err != nil {
703 return templ_7745c5c3_Err
704 }
705 var templ_7745c5c3_Var36 string
706 templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.ResolveAttributeValue("Recent commits of " + r.Name)
707 if templ_7745c5c3_Err != nil {
708 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 113, Col: 46}
709 }
710 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var36)
711 if templ_7745c5c3_Err != nil {
712 return templ_7745c5c3_Err
713 }
714 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "\">")
715 if templ_7745c5c3_Err != nil {
716 return templ_7745c5c3_Err
717 }
718 for _, c := range r.Commits {
719 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "<li><a class=\"rc-sha\" href=\"")
720 if templ_7745c5c3_Err != nil {
721 return templ_7745c5c3_Err
722 }
723 var templ_7745c5c3_Var37 templ.SafeURL
724 templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref))
725 if templ_7745c5c3_Err != nil {
726 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 117, Col: 53}
727 }
728 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var37))
729 if templ_7745c5c3_Err != nil {
730 return templ_7745c5c3_Err
731 }
732 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "\">")
733 if templ_7745c5c3_Err != nil {
734 return templ_7745c5c3_Err
735 }
736 var templ_7745c5c3_Var38 string
737 templ_7745c5c3_Var38, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short)
738 if templ_7745c5c3_Err != nil {
739 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 117, Col: 65}
740 }
741 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var38))
742 if templ_7745c5c3_Err != nil {
743 return templ_7745c5c3_Err
744 }
745 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "</a> <span class=\"rc-subject\" title=\"")
746 if templ_7745c5c3_Err != nil {
747 return templ_7745c5c3_Err
748 }
749 var templ_7745c5c3_Var39 string
750 templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Subject)
751 if templ_7745c5c3_Err != nil {
752 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 118, Col: 48}
753 }
754 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var39)
755 if templ_7745c5c3_Err != nil {
756 return templ_7745c5c3_Err
757 }
758 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, "\">")
759 if templ_7745c5c3_Err != nil {
760 return templ_7745c5c3_Err
761 }
762 var templ_7745c5c3_Var40 string
763 templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject)
764 if templ_7745c5c3_Err != nil {
765 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 118, Col: 62}
766 }
767 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var40))
768 if templ_7745c5c3_Err != nil {
769 return templ_7745c5c3_Err
770 }
771 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "</span> ")
772 if templ_7745c5c3_Err != nil {
773 return templ_7745c5c3_Err
774 }
775 if c.WhenAt != "" {
776 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, "<time class=\"dim\" datetime=\"")
777 if templ_7745c5c3_Err != nil {
778 return templ_7745c5c3_Err
779 }
780 var templ_7745c5c3_Var41 string
781 templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
782 if templ_7745c5c3_Err != nil {
783 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 120, Col: 44}
784 }
785 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var41)
786 if templ_7745c5c3_Err != nil {
787 return templ_7745c5c3_Err
788 }
789 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, "\" title=\"")
790 if templ_7745c5c3_Err != nil {
791 return templ_7745c5c3_Err
792 }
793 var templ_7745c5c3_Var42 string
794 templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
795 if templ_7745c5c3_Err != nil {
796 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 120, Col: 63}
797 }
798 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var42)
799 if templ_7745c5c3_Err != nil {
800 return templ_7745c5c3_Err
801 }
802 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, "\">")
803 if templ_7745c5c3_Err != nil {
804 return templ_7745c5c3_Err
805 }
806 var templ_7745c5c3_Var43 string
807 templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)
808 if templ_7745c5c3_Err != nil {
809 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 120, Col: 74}
810 }
811 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43))
812 if templ_7745c5c3_Err != nil {
813 return templ_7745c5c3_Err
814 }
815 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, "</time>")
816 if templ_7745c5c3_Err != nil {
817 return templ_7745c5c3_Err
818 }
819 }
820 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, "</li>")
821 if templ_7745c5c3_Err != nil {
822 return templ_7745c5c3_Err
823 }
824 }
825 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "</ul>")
826 if templ_7745c5c3_Err != nil {
827 return templ_7745c5c3_Err
828 }
829 } else if r.NoCommits {
830 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "<p class=\"repo-commits mute\">no commits yet</p>")
831 if templ_7745c5c3_Err != nil {
832 return templ_7745c5c3_Err
833 }
834 }
835 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, "</li>")
836 if templ_7745c5c3_Err != nil {
837 return templ_7745c5c3_Err
838 }
839 return nil
840 })
841}
842
843// pulse is the activity curve of a home row: a smooth line over a fading
844// area on a faint grid, and a dot at today, in colour while the repository
845// is active. Nothing moves: the page stays idle. The SVG scales evenly with
846// its column, so the dot stays round.
847func pulse(h *Heartbeat) templ.Component {
848 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
849 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
850 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
851 return templ_7745c5c3_CtxErr
852 }
853 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
854 if !templ_7745c5c3_IsBuffer {
855 defer func() {
856 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
857 if templ_7745c5c3_Err == nil {
858 templ_7745c5c3_Err = templ_7745c5c3_BufErr
859 }
860 }()
861 }
862 ctx = templ.InitializeContext(ctx)
863 templ_7745c5c3_Var44 := templ.GetChildren(ctx)
864 if templ_7745c5c3_Var44 == nil {
865 templ_7745c5c3_Var44 = templ.NopComponent
866 }
867 ctx = templ.ClearChildren(ctx)
868 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 85, "<figure class=\"repo-pulse\"")
869 if templ_7745c5c3_Err != nil {
870 return templ_7745c5c3_Err
871 }
872 if h.Live {
873 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, " data-live")
874 if templ_7745c5c3_Err != nil {
875 return templ_7745c5c3_Err
876 }
877 }
878 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 87, "><svg viewBox=\"0 0 600 64\" role=\"img\" aria-label=\"")
879 if templ_7745c5c3_Err != nil {
880 return templ_7745c5c3_Err
881 }
882 var templ_7745c5c3_Var45 string
883 templ_7745c5c3_Var45, templ_7745c5c3_Err = templ.ResolveAttributeValue(h.Label)
884 if templ_7745c5c3_Err != nil {
885 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 137, Col: 59}
886 }
887 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var45)
888 if templ_7745c5c3_Err != nil {
889 return templ_7745c5c3_Err
890 }
891 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 88, "\" focusable=\"false\"><defs><linearGradient id=\"")
892 if templ_7745c5c3_Err != nil {
893 return templ_7745c5c3_Err
894 }
895 var templ_7745c5c3_Var46 string
896 templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.ResolveAttributeValue(h.GradID)
897 if templ_7745c5c3_Err != nil {
898 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 139, Col: 33}
899 }
900 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var46)
901 if templ_7745c5c3_Err != nil {
902 return templ_7745c5c3_Err
903 }
904 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 89, "\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\"><stop class=\"pulse-stop-top\" offset=\"0\"></stop> <stop class=\"pulse-stop-bottom\" offset=\"1\"></stop></linearGradient></defs> <path class=\"pulse-grid\" d=\"M0 21.5 H600 M0 42.5 H600 M0 63.5 H600\" vector-effect=\"non-scaling-stroke\"></path> <path class=\"pulse-area\" d=\"")
905 if templ_7745c5c3_Err != nil {
906 return templ_7745c5c3_Err
907 }
908 var templ_7745c5c3_Var47 string
909 templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.ResolveAttributeValue(h.Area)
910 if templ_7745c5c3_Err != nil {
911 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 145, Col: 38}
912 }
913 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var47)
914 if templ_7745c5c3_Err != nil {
915 return templ_7745c5c3_Err
916 }
917 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 90, "\" fill=\"")
918 if templ_7745c5c3_Err != nil {
919 return templ_7745c5c3_Err
920 }
921 var templ_7745c5c3_Var48 string
922 templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.ResolveAttributeValue("url(#" + h.GradID + ")")
923 if templ_7745c5c3_Err != nil {
924 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 145, Col: 72}
925 }
926 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var48)
927 if templ_7745c5c3_Err != nil {
928 return templ_7745c5c3_Err
929 }
930 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 91, "\"></path> <path class=\"pulse-line\" d=\"")
931 if templ_7745c5c3_Err != nil {
932 return templ_7745c5c3_Err
933 }
934 var templ_7745c5c3_Var49 string
935 templ_7745c5c3_Var49, templ_7745c5c3_Err = templ.ResolveAttributeValue(h.Line)
936 if templ_7745c5c3_Err != nil {
937 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 146, Col: 38}
938 }
939 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var49)
940 if templ_7745c5c3_Err != nil {
941 return templ_7745c5c3_Err
942 }
943 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 92, "\" vector-effect=\"non-scaling-stroke\"></path> <circle class=\"pulse-dot\" cx=\"")
944 if templ_7745c5c3_Err != nil {
945 return templ_7745c5c3_Err
946 }
947 var templ_7745c5c3_Var50 string
948 templ_7745c5c3_Var50, templ_7745c5c3_Err = templ.ResolveAttributeValue(h.X)
949 if templ_7745c5c3_Err != nil {
950 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 147, Col: 37}
951 }
952 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var50)
953 if templ_7745c5c3_Err != nil {
954 return templ_7745c5c3_Err
955 }
956 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 93, "\" cy=\"")
957 if templ_7745c5c3_Err != nil {
958 return templ_7745c5c3_Err
959 }
960 var templ_7745c5c3_Var51 string
961 templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.ResolveAttributeValue(h.Y)
962 if templ_7745c5c3_Err != nil {
963 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 147, Col: 48}
964 }
965 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var51)
966 if templ_7745c5c3_Err != nil {
967 return templ_7745c5c3_Err
968 }
969 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, "\" r=\"3.5\"></circle></svg></figure>")
970 if templ_7745c5c3_Err != nil {
971 return templ_7745c5c3_Err
972 }
973 return nil
974 })
975}
976
977// Outline is the README outline; levels indent by 2ch, the h1 is bold.
978func Outline(headings []Heading) templ.Component {
979 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
980 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
981 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
982 return templ_7745c5c3_CtxErr
983 }
984 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
985 if !templ_7745c5c3_IsBuffer {
986 defer func() {
987 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
988 if templ_7745c5c3_Err == nil {
989 templ_7745c5c3_Err = templ_7745c5c3_BufErr
990 }
991 }()
992 }
993 ctx = templ.InitializeContext(ctx)
994 templ_7745c5c3_Var52 := templ.GetChildren(ctx)
995 if templ_7745c5c3_Var52 == nil {
996 templ_7745c5c3_Var52 = templ.NopComponent
997 }
998 ctx = templ.ClearChildren(ctx)
999 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 95, "<nav class=\"outline\" aria-label=\"Outline\">")
1000 if templ_7745c5c3_Err != nil {
1001 return templ_7745c5c3_Err
1002 }
1003 for _, h := range headings {
1004 var templ_7745c5c3_Var53 = []any{"l" + itoa(h.Level)}
1005 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var53...)
1006 if templ_7745c5c3_Err != nil {
1007 return templ_7745c5c3_Err
1008 }
1009 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 96, "<a class=\"")
1010 if templ_7745c5c3_Err != nil {
1011 return templ_7745c5c3_Err
1012 }
1013 var templ_7745c5c3_Var54 string
1014 templ_7745c5c3_Var54, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var53).String())
1015 if templ_7745c5c3_Err != nil {
1016 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 1, Col: 0}
1017 }
1018 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var54)
1019 if templ_7745c5c3_Err != nil {
1020 return templ_7745c5c3_Err
1021 }
1022 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 97, "\" href=\"")
1023 if templ_7745c5c3_Err != nil {
1024 return templ_7745c5c3_Err
1025 }
1026 var templ_7745c5c3_Var55 templ.SafeURL
1027 templ_7745c5c3_Var55, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL("#" + h.ID))
1028 if templ_7745c5c3_Err != nil {
1029 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 156, Col: 68}
1030 }
1031 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var55))
1032 if templ_7745c5c3_Err != nil {
1033 return templ_7745c5c3_Err
1034 }
1035 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 98, "\">")
1036 if templ_7745c5c3_Err != nil {
1037 return templ_7745c5c3_Err
1038 }
1039 var templ_7745c5c3_Var56 string
1040 templ_7745c5c3_Var56, templ_7745c5c3_Err = templ.JoinStringErrs(h.Text)
1041 if templ_7745c5c3_Err != nil {
1042 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 156, Col: 79}
1043 }
1044 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var56))
1045 if templ_7745c5c3_Err != nil {
1046 return templ_7745c5c3_Err
1047 }
1048 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, "</a>")
1049 if templ_7745c5c3_Err != nil {
1050 return templ_7745c5c3_Err
1051 }
1052 }
1053 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 100, "</nav>")
1054 if templ_7745c5c3_Err != nil {
1055 return templ_7745c5c3_Err
1056 }
1057 return nil
1058 })
1059}
1060
1061// ReadmeCard is a README in a card whose header names the file.
1062func ReadmeCard(r Readme, docs ...DocTab) templ.Component {
1063 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1064 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1065 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1066 return templ_7745c5c3_CtxErr
1067 }
1068 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1069 if !templ_7745c5c3_IsBuffer {
1070 defer func() {
1071 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1072 if templ_7745c5c3_Err == nil {
1073 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1074 }
1075 }()
1076 }
1077 ctx = templ.InitializeContext(ctx)
1078 templ_7745c5c3_Var57 := templ.GetChildren(ctx)
1079 if templ_7745c5c3_Var57 == nil {
1080 templ_7745c5c3_Var57 = templ.NopComponent
1081 }
1082 ctx = templ.ClearChildren(ctx)
1083 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, "<section class=\"card readme\" aria-label=\"")
1084 if templ_7745c5c3_Err != nil {
1085 return templ_7745c5c3_Err
1086 }
1087 var templ_7745c5c3_Var58 string
1088 templ_7745c5c3_Var58, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.Name)
1089 if templ_7745c5c3_Err != nil {
1090 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 163, Col: 49}
1091 }
1092 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var58)
1093 if templ_7745c5c3_Err != nil {
1094 return templ_7745c5c3_Err
1095 }
1096 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 102, "\">")
1097 if templ_7745c5c3_Err != nil {
1098 return templ_7745c5c3_Err
1099 }
1100 if len(docs) > 1 {
1101 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, "<nav class=\"card-h doc-tabs\" aria-label=\"Repository documents\">")
1102 if templ_7745c5c3_Err != nil {
1103 return templ_7745c5c3_Err
1104 }
1105 for _, doc := range docs {
1106 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, "<a href=\"")
1107 if templ_7745c5c3_Err != nil {
1108 return templ_7745c5c3_Err
1109 }
1110 var templ_7745c5c3_Var59 templ.SafeURL
1111 templ_7745c5c3_Var59, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(doc.Href))
1112 if templ_7745c5c3_Err != nil {
1113 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 167, Col: 38}
1114 }
1115 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var59))
1116 if templ_7745c5c3_Err != nil {
1117 return templ_7745c5c3_Err
1118 }
1119 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, "\"")
1120 if templ_7745c5c3_Err != nil {
1121 return templ_7745c5c3_Err
1122 }
1123 if doc.Current {
1124 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, " aria-current=\"page\"")
1125 if templ_7745c5c3_Err != nil {
1126 return templ_7745c5c3_Err
1127 }
1128 }
1129 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, ">")
1130 if templ_7745c5c3_Err != nil {
1131 return templ_7745c5c3_Err
1132 }
1133 var templ_7745c5c3_Var60 string
1134 templ_7745c5c3_Var60, templ_7745c5c3_Err = templ.JoinStringErrs(doc.Name)
1135 if templ_7745c5c3_Err != nil {
1136 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 171, Col: 16}
1137 }
1138 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var60))
1139 if templ_7745c5c3_Err != nil {
1140 return templ_7745c5c3_Err
1141 }
1142 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, "</a>")
1143 if templ_7745c5c3_Err != nil {
1144 return templ_7745c5c3_Err
1145 }
1146 }
1147 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, "</nav>")
1148 if templ_7745c5c3_Err != nil {
1149 return templ_7745c5c3_Err
1150 }
1151 } else {
1152 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "<h2 class=\"card-h\" id=\"readme-h\"><span class=\"ico i-file\" aria-hidden=\"true\"></span> ")
1153 if templ_7745c5c3_Err != nil {
1154 return templ_7745c5c3_Err
1155 }
1156 var templ_7745c5c3_Var61 string
1157 templ_7745c5c3_Var61, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
1158 if templ_7745c5c3_Err != nil {
1159 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 177, Col: 12}
1160 }
1161 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var61))
1162 if templ_7745c5c3_Err != nil {
1163 return templ_7745c5c3_Err
1164 }
1165 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, "</h2>")
1166 if templ_7745c5c3_Err != nil {
1167 return templ_7745c5c3_Err
1168 }
1169 }
1170 templ_7745c5c3_Err = ReadmeView(r).Render(ctx, templ_7745c5c3_Buffer)
1171 if templ_7745c5c3_Err != nil {
1172 return templ_7745c5c3_Err
1173 }
1174 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, "</section>")
1175 if templ_7745c5c3_Err != nil {
1176 return templ_7745c5c3_Err
1177 }
1178 return nil
1179 })
1180}
1181
1182// ReadmeView is a rendered README. Its HTML comes from the Markdown
1183// renderer, which drops raw HTML and filters URLs.
1184func ReadmeView(r Readme) templ.Component {
1185 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1186 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1187 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1188 return templ_7745c5c3_CtxErr
1189 }
1190 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1191 if !templ_7745c5c3_IsBuffer {
1192 defer func() {
1193 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1194 if templ_7745c5c3_Err == nil {
1195 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1196 }
1197 }()
1198 }
1199 ctx = templ.InitializeContext(ctx)
1200 templ_7745c5c3_Var62 := templ.GetChildren(ctx)
1201 if templ_7745c5c3_Var62 == nil {
1202 templ_7745c5c3_Var62 = templ.NopComponent
1203 }
1204 ctx = templ.ClearChildren(ctx)
1205 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, "<article class=\"prose\" aria-label=\"")
1206 if templ_7745c5c3_Err != nil {
1207 return templ_7745c5c3_Err
1208 }
1209 var templ_7745c5c3_Var63 string
1210 templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.Name)
1211 if templ_7745c5c3_Err != nil {
1212 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 187, Col: 43}
1213 }
1214 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var63)
1215 if templ_7745c5c3_Err != nil {
1216 return templ_7745c5c3_Err
1217 }
1218 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, "\" hx-ignore>")
1219 if templ_7745c5c3_Err != nil {
1220 return templ_7745c5c3_Err
1221 }
1222 if r.Note != "" {
1223 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, "<p class=\"dim\">")
1224 if templ_7745c5c3_Err != nil {
1225 return templ_7745c5c3_Err
1226 }
1227 var templ_7745c5c3_Var64 string
1228 templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.JoinStringErrs(r.Note)
1229 if templ_7745c5c3_Err != nil {
1230 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 189, Col: 26}
1231 }
1232 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var64))
1233 if templ_7745c5c3_Err != nil {
1234 return templ_7745c5c3_Err
1235 }
1236 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 116, "</p>")
1237 if templ_7745c5c3_Err != nil {
1238 return templ_7745c5c3_Err
1239 }
1240 } else {
1241 templ_7745c5c3_Err = templ.Raw(r.HTML).Render(ctx, templ_7745c5c3_Buffer)
1242 if templ_7745c5c3_Err != nil {
1243 return templ_7745c5c3_Err
1244 }
1245 }
1246 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 117, "</article>")
1247 if templ_7745c5c3_Err != nil {
1248 return templ_7745c5c3_Err
1249 }
1250 return nil
1251 })
1252}
1253
1254// CommitRows is a cursor table of commits: sha, subject with inline refs,
1255// author, relative date (absolute in the title).
1256func CommitRows(rows []CommitRow) templ.Component {
1257 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1258 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1259 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1260 return templ_7745c5c3_CtxErr
1261 }
1262 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1263 if !templ_7745c5c3_IsBuffer {
1264 defer func() {
1265 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1266 if templ_7745c5c3_Err == nil {
1267 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1268 }
1269 }()
1270 }
1271 ctx = templ.InitializeContext(ctx)
1272 templ_7745c5c3_Var65 := templ.GetChildren(ctx)
1273 if templ_7745c5c3_Var65 == nil {
1274 templ_7745c5c3_Var65 = templ.NopComponent
1275 }
1276 ctx = templ.ClearChildren(ctx)
1277 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 118, "<table class=\"list commits\" aria-label=\"Commits\"><tbody data-rows>")
1278 if templ_7745c5c3_Err != nil {
1279 return templ_7745c5c3_Err
1280 }
1281 for _, c := range rows {
1282 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 119, "<tr")
1283 if templ_7745c5c3_Err != nil {
1284 return templ_7745c5c3_Err
1285 }
1286 if c.ID != "" {
1287 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 120, " id=\"")
1288 if templ_7745c5c3_Err != nil {
1289 return templ_7745c5c3_Err
1290 }
1291 var templ_7745c5c3_Var66 string
1292 templ_7745c5c3_Var66, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.ID)
1293 if templ_7745c5c3_Err != nil {
1294 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 204, Col: 15}
1295 }
1296 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var66)
1297 if templ_7745c5c3_Err != nil {
1298 return templ_7745c5c3_Err
1299 }
1300 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 121, "\"")
1301 if templ_7745c5c3_Err != nil {
1302 return templ_7745c5c3_Err
1303 }
1304 }
1305 if c.Cursor {
1306 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 122, " data-cursor")
1307 if templ_7745c5c3_Err != nil {
1308 return templ_7745c5c3_Err
1309 }
1310 }
1311 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 123, "><td class=\"c-sha mute\">")
1312 if templ_7745c5c3_Err != nil {
1313 return templ_7745c5c3_Err
1314 }
1315 var templ_7745c5c3_Var67 string
1316 templ_7745c5c3_Var67, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short)
1317 if templ_7745c5c3_Err != nil {
1318 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 208, Col: 37}
1319 }
1320 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var67))
1321 if templ_7745c5c3_Err != nil {
1322 return templ_7745c5c3_Err
1323 }
1324 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 124, "</td><td class=\"c-subject\"><a href=\"")
1325 if templ_7745c5c3_Err != nil {
1326 return templ_7745c5c3_Err
1327 }
1328 var templ_7745c5c3_Var68 templ.SafeURL
1329 templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref))
1330 if templ_7745c5c3_Err != nil {
1331 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 210, Col: 38}
1332 }
1333 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var68))
1334 if templ_7745c5c3_Err != nil {
1335 return templ_7745c5c3_Err
1336 }
1337 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 125, "\">")
1338 if templ_7745c5c3_Err != nil {
1339 return templ_7745c5c3_Err
1340 }
1341 var templ_7745c5c3_Var69 string
1342 templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject)
1343 if templ_7745c5c3_Err != nil {
1344 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 210, Col: 52}
1345 }
1346 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var69))
1347 if templ_7745c5c3_Err != nil {
1348 return templ_7745c5c3_Err
1349 }
1350 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 126, "</a> ")
1351 if templ_7745c5c3_Err != nil {
1352 return templ_7745c5c3_Err
1353 }
1354 if c.Merge {
1355 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 127, "<span class=\"pill\">merge</span> ")
1356 if templ_7745c5c3_Err != nil {
1357 return templ_7745c5c3_Err
1358 }
1359 }
1360 if c.Sig != nil {
1361 templ_7745c5c3_Err = signaturePill(c.Sig).Render(ctx, templ_7745c5c3_Buffer)
1362 if templ_7745c5c3_Err != nil {
1363 return templ_7745c5c3_Err
1364 }
1365 }
1366 for _, b := range c.Branches {
1367 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 128, "<span class=\"pill\">")
1368 if templ_7745c5c3_Err != nil {
1369 return templ_7745c5c3_Err
1370 }
1371 var templ_7745c5c3_Var70 string
1372 templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinStringErrs(b)
1373 if templ_7745c5c3_Err != nil {
1374 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 218, Col: 29}
1375 }
1376 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var70))
1377 if templ_7745c5c3_Err != nil {
1378 return templ_7745c5c3_Err
1379 }
1380 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 129, "</span> ")
1381 if templ_7745c5c3_Err != nil {
1382 return templ_7745c5c3_Err
1383 }
1384 }
1385 for _, t := range c.Tags {
1386 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 130, "<span class=\"pill tag\"><span class=\"sr\">tag </span>")
1387 if templ_7745c5c3_Err != nil {
1388 return templ_7745c5c3_Err
1389 }
1390 var templ_7745c5c3_Var71 string
1391 templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.JoinStringErrs(t)
1392 if templ_7745c5c3_Err != nil {
1393 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 221, Col: 61}
1394 }
1395 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var71))
1396 if templ_7745c5c3_Err != nil {
1397 return templ_7745c5c3_Err
1398 }
1399 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 131, "</span>")
1400 if templ_7745c5c3_Err != nil {
1401 return templ_7745c5c3_Err
1402 }
1403 }
1404 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 132, "</td><td class=\"c-ck\">")
1405 if templ_7745c5c3_Err != nil {
1406 return templ_7745c5c3_Err
1407 }
1408 templ_7745c5c3_Err = CommitChecks(c.Checks).Render(ctx, templ_7745c5c3_Buffer)
1409 if templ_7745c5c3_Err != nil {
1410 return templ_7745c5c3_Err
1411 }
1412 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 133, "</td><td class=\"c-who dim\">")
1413 if templ_7745c5c3_Err != nil {
1414 return templ_7745c5c3_Err
1415 }
1416 var templ_7745c5c3_Var72 string
1417 templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)
1418 if templ_7745c5c3_Err != nil {
1419 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 225, Col: 37}
1420 }
1421 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var72))
1422 if templ_7745c5c3_Err != nil {
1423 return templ_7745c5c3_Err
1424 }
1425 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 134, "</td><td class=\"c-when nowrap dim\"><time datetime=\"")
1426 if templ_7745c5c3_Err != nil {
1427 return templ_7745c5c3_Err
1428 }
1429 var templ_7745c5c3_Var73 string
1430 templ_7745c5c3_Var73, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
1431 if templ_7745c5c3_Err != nil {
1432 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 226, Col: 60}
1433 }
1434 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var73)
1435 if templ_7745c5c3_Err != nil {
1436 return templ_7745c5c3_Err
1437 }
1438 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 135, "\" title=\"")
1439 if templ_7745c5c3_Err != nil {
1440 return templ_7745c5c3_Err
1441 }
1442 var templ_7745c5c3_Var74 string
1443 templ_7745c5c3_Var74, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
1444 if templ_7745c5c3_Err != nil {
1445 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 226, Col: 79}
1446 }
1447 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var74)
1448 if templ_7745c5c3_Err != nil {
1449 return templ_7745c5c3_Err
1450 }
1451 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 136, "\">")
1452 if templ_7745c5c3_Err != nil {
1453 return templ_7745c5c3_Err
1454 }
1455 var templ_7745c5c3_Var75 string
1456 templ_7745c5c3_Var75, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)
1457 if templ_7745c5c3_Err != nil {
1458 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 226, Col: 90}
1459 }
1460 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var75))
1461 if templ_7745c5c3_Err != nil {
1462 return templ_7745c5c3_Err
1463 }
1464 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 137, "</time></td></tr>")
1465 if templ_7745c5c3_Err != nil {
1466 return templ_7745c5c3_Err
1467 }
1468 }
1469 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 138, "</tbody></table>")
1470 if templ_7745c5c3_Err != nil {
1471 return templ_7745c5c3_Err
1472 }
1473 return nil
1474 })
1475}
1476
1477// signaturePill is the badge of a signed commit: the protocol and the verdict
1478// as text, the reason in the tooltip.
1479func signaturePill(b *SignatureBadge) templ.Component {
1480 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1481 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1482 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1483 return templ_7745c5c3_CtxErr
1484 }
1485 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1486 if !templ_7745c5c3_IsBuffer {
1487 defer func() {
1488 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1489 if templ_7745c5c3_Err == nil {
1490 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1491 }
1492 }()
1493 }
1494 ctx = templ.InitializeContext(ctx)
1495 templ_7745c5c3_Var76 := templ.GetChildren(ctx)
1496 if templ_7745c5c3_Var76 == nil {
1497 templ_7745c5c3_Var76 = templ.NopComponent
1498 }
1499 ctx = templ.ClearChildren(ctx)
1500 var templ_7745c5c3_Var77 = []any{"pill sig", b.Class}
1501 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var77...)
1502 if templ_7745c5c3_Err != nil {
1503 return templ_7745c5c3_Err
1504 }
1505 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 139, "<span class=\"")
1506 if templ_7745c5c3_Err != nil {
1507 return templ_7745c5c3_Err
1508 }
1509 var templ_7745c5c3_Var78 string
1510 templ_7745c5c3_Var78, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var77).String())
1511 if templ_7745c5c3_Err != nil {
1512 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 1, Col: 0}
1513 }
1514 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var78)
1515 if templ_7745c5c3_Err != nil {
1516 return templ_7745c5c3_Err
1517 }
1518 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 140, "\" title=\"")
1519 if templ_7745c5c3_Err != nil {
1520 return templ_7745c5c3_Err
1521 }
1522 var templ_7745c5c3_Var79 string
1523 templ_7745c5c3_Var79, templ_7745c5c3_Err = templ.ResolveAttributeValue(b.Title)
1524 if templ_7745c5c3_Err != nil {
1525 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 236, Col: 52}
1526 }
1527 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var79)
1528 if templ_7745c5c3_Err != nil {
1529 return templ_7745c5c3_Err
1530 }
1531 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 141, "\">")
1532 if templ_7745c5c3_Err != nil {
1533 return templ_7745c5c3_Err
1534 }
1535 if b.Proto != "" {
1536 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 142, "<span class=\"sig-proto\">")
1537 if templ_7745c5c3_Err != nil {
1538 return templ_7745c5c3_Err
1539 }
1540 var templ_7745c5c3_Var80 string
1541 templ_7745c5c3_Var80, templ_7745c5c3_Err = templ.JoinStringErrs(b.Proto)
1542 if templ_7745c5c3_Err != nil {
1543 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 238, Col: 36}
1544 }
1545 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var80))
1546 if templ_7745c5c3_Err != nil {
1547 return templ_7745c5c3_Err
1548 }
1549 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 143, "</span> ")
1550 if templ_7745c5c3_Err != nil {
1551 return templ_7745c5c3_Err
1552 }
1553 }
1554 var templ_7745c5c3_Var81 string
1555 templ_7745c5c3_Var81, templ_7745c5c3_Err = templ.JoinStringErrs(b.Label)
1556 if templ_7745c5c3_Err != nil {
1557 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 240, Col: 11}
1558 }
1559 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var81))
1560 if templ_7745c5c3_Err != nil {
1561 return templ_7745c5c3_Err
1562 }
1563 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 144, "</span>")
1564 if templ_7745c5c3_Err != nil {
1565 return templ_7745c5c3_Err
1566 }
1567 return nil
1568 })
1569}
1570
1571var _ = templruntime.GeneratedTemplate