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 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "><div class=\"repo-main\"><h2 class=\"repo-name\"><a href=\"")
199 if templ_7745c5c3_Err != nil {
200 return templ_7745c5c3_Err
201 }
202 var templ_7745c5c3_Var9 templ.SafeURL
203 templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href))
204 if templ_7745c5c3_Err != nil {
205 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 43, Col: 35}
206 }
207 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
208 if templ_7745c5c3_Err != nil {
209 return templ_7745c5c3_Err
210 }
211 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "\">")
212 if templ_7745c5c3_Err != nil {
213 return templ_7745c5c3_Err
214 }
215 var templ_7745c5c3_Var10 string
216 templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
217 if templ_7745c5c3_Err != nil {
218 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 43, Col: 46}
219 }
220 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
221 if templ_7745c5c3_Err != nil {
222 return templ_7745c5c3_Err
223 }
224 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "</a> ")
225 if templ_7745c5c3_Err != nil {
226 return templ_7745c5c3_Err
227 }
228 if r.Private {
229 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "<span class=\"pill\">private</span> ")
230 if templ_7745c5c3_Err != nil {
231 return templ_7745c5c3_Err
232 }
233 }
234 if r.Fresh {
235 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "<span class=\"pill new\">new push</span>")
236 if templ_7745c5c3_Err != nil {
237 return templ_7745c5c3_Err
238 }
239 }
240 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "</h2>")
241 if templ_7745c5c3_Err != nil {
242 return templ_7745c5c3_Err
243 }
244 if r.Desc != "" {
245 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "<p class=\"repo-desc\">")
246 if templ_7745c5c3_Err != nil {
247 return templ_7745c5c3_Err
248 }
249 var templ_7745c5c3_Var11 string
250 templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(r.Desc)
251 if templ_7745c5c3_Err != nil {
252 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 52, Col: 33}
253 }
254 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
255 if templ_7745c5c3_Err != nil {
256 return templ_7745c5c3_Err
257 }
258 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "</p>")
259 if templ_7745c5c3_Err != nil {
260 return templ_7745c5c3_Err
261 }
262 } else {
263 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "<p class=\"repo-desc mute\">no description</p>")
264 if templ_7745c5c3_Err != nil {
265 return templ_7745c5c3_Err
266 }
267 }
268 if len(r.Topics) > 0 {
269 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "<ul class=\"repo-topics\" aria-label=\"")
270 if templ_7745c5c3_Err != nil {
271 return templ_7745c5c3_Err
272 }
273 var templ_7745c5c3_Var12 string
274 templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.ResolveAttributeValue("Topics of " + r.Name)
275 if templ_7745c5c3_Err != nil {
276 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 57, Col: 62}
277 }
278 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var12)
279 if templ_7745c5c3_Err != nil {
280 return templ_7745c5c3_Err
281 }
282 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "\">")
283 if templ_7745c5c3_Err != nil {
284 return templ_7745c5c3_Err
285 }
286 for _, t := range r.Topics {
287 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "<li>")
288 if templ_7745c5c3_Err != nil {
289 return templ_7745c5c3_Err
290 }
291 var templ_7745c5c3_Var13 string
292 templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(t)
293 if templ_7745c5c3_Err != nil {
294 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 59, Col: 13}
295 }
296 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
297 if templ_7745c5c3_Err != nil {
298 return templ_7745c5c3_Err
299 }
300 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "</li>")
301 if templ_7745c5c3_Err != nil {
302 return templ_7745c5c3_Err
303 }
304 }
305 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "</ul>")
306 if templ_7745c5c3_Err != nil {
307 return templ_7745c5c3_Err
308 }
309 }
310 if r.Stats != nil && r.Stats.Pulse != nil {
311 templ_7745c5c3_Err = pulse(r.Stats.Pulse).Render(ctx, templ_7745c5c3_Buffer)
312 if templ_7745c5c3_Err != nil {
313 return templ_7745c5c3_Err
314 }
315 }
316 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "</div><div class=\"repo-head\"><dl class=\"repo-stats\" aria-label=\"")
317 if templ_7745c5c3_Err != nil {
318 return templ_7745c5c3_Err
319 }
320 var templ_7745c5c3_Var14 string
321 templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.ResolveAttributeValue("Figures of " + r.Name)
322 if templ_7745c5c3_Err != nil {
323 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 68, Col: 61}
324 }
325 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var14)
326 if templ_7745c5c3_Err != nil {
327 return templ_7745c5c3_Err
328 }
329 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "\">")
330 if templ_7745c5c3_Err != nil {
331 return templ_7745c5c3_Err
332 }
333 if s := r.Stats; s != nil {
334 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "<div><dt>commits</dt><dd>")
335 if templ_7745c5c3_Err != nil {
336 return templ_7745c5c3_Err
337 }
338 var templ_7745c5c3_Var15 string
339 templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(s.Commits)
340 if templ_7745c5c3_Err != nil {
341 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 70, Col: 41}
342 }
343 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
344 if templ_7745c5c3_Err != nil {
345 return templ_7745c5c3_Err
346 }
347 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "</dd></div><div><dt>last 30 days</dt><dd>")
348 if templ_7745c5c3_Err != nil {
349 return templ_7745c5c3_Err
350 }
351 var templ_7745c5c3_Var16 string
352 templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(s.Recent)
353 if templ_7745c5c3_Err != nil {
354 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 71, Col: 45}
355 }
356 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16))
357 if templ_7745c5c3_Err != nil {
358 return templ_7745c5c3_Err
359 }
360 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "</dd></div>")
361 if templ_7745c5c3_Err != nil {
362 return templ_7745c5c3_Err
363 }
364 if s.Tag != "" {
365 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "<div class=\"rs-tag\"><dt>latest tag</dt>")
366 if templ_7745c5c3_Err != nil {
367 return templ_7745c5c3_Err
368 }
369 if s.TagHref != "" {
370 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "<dd><a href=\"")
371 if templ_7745c5c3_Err != nil {
372 return templ_7745c5c3_Err
373 }
374 var templ_7745c5c3_Var17 templ.SafeURL
375 templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(s.TagHref))
376 if templ_7745c5c3_Err != nil {
377 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 76, Col: 46}
378 }
379 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var17))
380 if templ_7745c5c3_Err != nil {
381 return templ_7745c5c3_Err
382 }
383 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "\" title=\"")
384 if templ_7745c5c3_Err != nil {
385 return templ_7745c5c3_Err
386 }
387 var templ_7745c5c3_Var18 string
388 templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.ResolveAttributeValue(s.Tag + " · made " + s.TagWhen)
389 if templ_7745c5c3_Err != nil {
390 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 76, Col: 88}
391 }
392 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var18)
393 if templ_7745c5c3_Err != nil {
394 return templ_7745c5c3_Err
395 }
396 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "\">")
397 if templ_7745c5c3_Err != nil {
398 return templ_7745c5c3_Err
399 }
400 var templ_7745c5c3_Var19 string
401 templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(s.Tag)
402 if templ_7745c5c3_Err != nil {
403 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 76, Col: 98}
404 }
405 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))
406 if templ_7745c5c3_Err != nil {
407 return templ_7745c5c3_Err
408 }
409 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "</a></dd>")
410 if templ_7745c5c3_Err != nil {
411 return templ_7745c5c3_Err
412 }
413 } else {
414 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "<dd title=\"")
415 if templ_7745c5c3_Err != nil {
416 return templ_7745c5c3_Err
417 }
418 var templ_7745c5c3_Var20 string
419 templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.ResolveAttributeValue(s.Tag + " · made " + s.TagWhen)
420 if templ_7745c5c3_Err != nil {
421 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 78, Col: 51}
422 }
423 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var20)
424 if templ_7745c5c3_Err != nil {
425 return templ_7745c5c3_Err
426 }
427 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "\">")
428 if templ_7745c5c3_Err != nil {
429 return templ_7745c5c3_Err
430 }
431 var templ_7745c5c3_Var21 string
432 templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs(s.Tag)
433 if templ_7745c5c3_Err != nil {
434 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 78, Col: 61}
435 }
436 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21))
437 if templ_7745c5c3_Err != nil {
438 return templ_7745c5c3_Err
439 }
440 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "</dd>")
441 if templ_7745c5c3_Err != nil {
442 return templ_7745c5c3_Err
443 }
444 }
445 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "</div>")
446 if templ_7745c5c3_Err != nil {
447 return templ_7745c5c3_Err
448 }
449 }
450 }
451 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "<div><dt>last activity</dt>")
452 if templ_7745c5c3_Err != nil {
453 return templ_7745c5c3_Err
454 }
455 if r.ActiveAt != "" {
456 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "<dd><time datetime=\"")
457 if templ_7745c5c3_Err != nil {
458 return templ_7745c5c3_Err
459 }
460 var templ_7745c5c3_Var22 string
461 templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.ActiveAt)
462 if templ_7745c5c3_Err != nil {
463 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 86, Col: 37}
464 }
465 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var22)
466 if templ_7745c5c3_Err != nil {
467 return templ_7745c5c3_Err
468 }
469 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "\" title=\"")
470 if templ_7745c5c3_Err != nil {
471 return templ_7745c5c3_Err
472 }
473 var templ_7745c5c3_Var23 string
474 templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.ActiveAt)
475 if templ_7745c5c3_Err != nil {
476 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 86, Col: 58}
477 }
478 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var23)
479 if templ_7745c5c3_Err != nil {
480 return templ_7745c5c3_Err
481 }
482 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "\">")
483 if templ_7745c5c3_Err != nil {
484 return templ_7745c5c3_Err
485 }
486 var templ_7745c5c3_Var24 string
487 templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.JoinStringErrs(r.Active)
488 if templ_7745c5c3_Err != nil {
489 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 86, Col: 71}
490 }
491 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var24))
492 if templ_7745c5c3_Err != nil {
493 return templ_7745c5c3_Err
494 }
495 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "</time></dd>")
496 if templ_7745c5c3_Err != nil {
497 return templ_7745c5c3_Err
498 }
499 } else {
500 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "<dd class=\"mute\">never</dd>")
501 if templ_7745c5c3_Err != nil {
502 return templ_7745c5c3_Err
503 }
504 }
505 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "</div></dl>")
506 if templ_7745c5c3_Err != nil {
507 return templ_7745c5c3_Err
508 }
509 if r.CI != nil {
510 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "<a class=\"repo-ci\" href=\"")
511 if templ_7745c5c3_Err != nil {
512 return templ_7745c5c3_Err
513 }
514 var templ_7745c5c3_Var25 templ.SafeURL
515 templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.CI.Href))
516 if templ_7745c5c3_Err != nil {
517 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 93, Col: 54}
518 }
519 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25))
520 if templ_7745c5c3_Err != nil {
521 return templ_7745c5c3_Err
522 }
523 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "\" title=\"")
524 if templ_7745c5c3_Err != nil {
525 return templ_7745c5c3_Err
526 }
527 var templ_7745c5c3_Var26 string
528 templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.CI.Title)
529 if templ_7745c5c3_Err != nil {
530 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 93, Col: 75}
531 }
532 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var26)
533 if templ_7745c5c3_Err != nil {
534 return templ_7745c5c3_Err
535 }
536 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "\">")
537 if templ_7745c5c3_Err != nil {
538 return templ_7745c5c3_Err
539 }
540 var templ_7745c5c3_Var27 = []any{"ck", "ck-" + r.CI.Kind}
541 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var27...)
542 if templ_7745c5c3_Err != nil {
543 return templ_7745c5c3_Err
544 }
545 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "<span class=\"")
546 if templ_7745c5c3_Err != nil {
547 return templ_7745c5c3_Err
548 }
549 var templ_7745c5c3_Var28 string
550 templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var27).String())
551 if templ_7745c5c3_Err != nil {
552 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 1, Col: 0}
553 }
554 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var28)
555 if templ_7745c5c3_Err != nil {
556 return templ_7745c5c3_Err
557 }
558 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "\" aria-hidden=\"true\"></span> <span class=\"sr\">CI: </span>")
559 if templ_7745c5c3_Err != nil {
560 return templ_7745c5c3_Err
561 }
562 var templ_7745c5c3_Var29 string
563 templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(r.CI.Label)
564 if templ_7745c5c3_Err != nil {
565 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 95, Col: 45}
566 }
567 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29))
568 if templ_7745c5c3_Err != nil {
569 return templ_7745c5c3_Err
570 }
571 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "</a>")
572 if templ_7745c5c3_Err != nil {
573 return templ_7745c5c3_Err
574 }
575 }
576 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "</div>")
577 if templ_7745c5c3_Err != nil {
578 return templ_7745c5c3_Err
579 }
580 if len(r.Commits) > 0 {
581 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "<ul class=\"repo-commits\"")
582 if templ_7745c5c3_Err != nil {
583 return templ_7745c5c3_Err
584 }
585 if len(r.Commits) == homeRecent {
586 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, " data-full")
587 if templ_7745c5c3_Err != nil {
588 return templ_7745c5c3_Err
589 }
590 }
591 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, " aria-label=\"")
592 if templ_7745c5c3_Err != nil {
593 return templ_7745c5c3_Err
594 }
595 var templ_7745c5c3_Var30 string
596 templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.ResolveAttributeValue("Recent commits of " + r.Name)
597 if templ_7745c5c3_Err != nil {
598 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 103, Col: 46}
599 }
600 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var30)
601 if templ_7745c5c3_Err != nil {
602 return templ_7745c5c3_Err
603 }
604 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "\">")
605 if templ_7745c5c3_Err != nil {
606 return templ_7745c5c3_Err
607 }
608 for _, c := range r.Commits {
609 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "<li><a class=\"rc-sha\" href=\"")
610 if templ_7745c5c3_Err != nil {
611 return templ_7745c5c3_Err
612 }
613 var templ_7745c5c3_Var31 templ.SafeURL
614 templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref))
615 if templ_7745c5c3_Err != nil {
616 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 107, Col: 53}
617 }
618 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31))
619 if templ_7745c5c3_Err != nil {
620 return templ_7745c5c3_Err
621 }
622 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "\">")
623 if templ_7745c5c3_Err != nil {
624 return templ_7745c5c3_Err
625 }
626 var templ_7745c5c3_Var32 string
627 templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short)
628 if templ_7745c5c3_Err != nil {
629 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 107, Col: 65}
630 }
631 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32))
632 if templ_7745c5c3_Err != nil {
633 return templ_7745c5c3_Err
634 }
635 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "</a> <span class=\"rc-subject\" title=\"")
636 if templ_7745c5c3_Err != nil {
637 return templ_7745c5c3_Err
638 }
639 var templ_7745c5c3_Var33 string
640 templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Subject)
641 if templ_7745c5c3_Err != nil {
642 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 108, Col: 48}
643 }
644 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var33)
645 if templ_7745c5c3_Err != nil {
646 return templ_7745c5c3_Err
647 }
648 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "\">")
649 if templ_7745c5c3_Err != nil {
650 return templ_7745c5c3_Err
651 }
652 var templ_7745c5c3_Var34 string
653 templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject)
654 if templ_7745c5c3_Err != nil {
655 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 108, Col: 62}
656 }
657 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34))
658 if templ_7745c5c3_Err != nil {
659 return templ_7745c5c3_Err
660 }
661 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "</span> ")
662 if templ_7745c5c3_Err != nil {
663 return templ_7745c5c3_Err
664 }
665 if c.WhenAt != "" {
666 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "<time class=\"dim\" datetime=\"")
667 if templ_7745c5c3_Err != nil {
668 return templ_7745c5c3_Err
669 }
670 var templ_7745c5c3_Var35 string
671 templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
672 if templ_7745c5c3_Err != nil {
673 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 110, Col: 44}
674 }
675 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var35)
676 if templ_7745c5c3_Err != nil {
677 return templ_7745c5c3_Err
678 }
679 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "\" title=\"")
680 if templ_7745c5c3_Err != nil {
681 return templ_7745c5c3_Err
682 }
683 var templ_7745c5c3_Var36 string
684 templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
685 if templ_7745c5c3_Err != nil {
686 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 110, Col: 63}
687 }
688 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var36)
689 if templ_7745c5c3_Err != nil {
690 return templ_7745c5c3_Err
691 }
692 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "\">")
693 if templ_7745c5c3_Err != nil {
694 return templ_7745c5c3_Err
695 }
696 var templ_7745c5c3_Var37 string
697 templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)
698 if templ_7745c5c3_Err != nil {
699 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 110, Col: 74}
700 }
701 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var37))
702 if templ_7745c5c3_Err != nil {
703 return templ_7745c5c3_Err
704 }
705 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "</time>")
706 if templ_7745c5c3_Err != nil {
707 return templ_7745c5c3_Err
708 }
709 }
710 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "</li>")
711 if templ_7745c5c3_Err != nil {
712 return templ_7745c5c3_Err
713 }
714 }
715 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "</ul>")
716 if templ_7745c5c3_Err != nil {
717 return templ_7745c5c3_Err
718 }
719 } else if r.NoCommits {
720 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "<p class=\"repo-commits mute\">no commits yet</p>")
721 if templ_7745c5c3_Err != nil {
722 return templ_7745c5c3_Err
723 }
724 }
725 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "</li>")
726 if templ_7745c5c3_Err != nil {
727 return templ_7745c5c3_Err
728 }
729 return nil
730 })
731}
732
733// pulse is the activity curve of a home row: a smooth line over a fading
734// area on a faint grid, and a dot at today that beats while the repository
735// is active. The SVG scales evenly with its column, so the dot stays round.
736func pulse(h *Heartbeat) templ.Component {
737 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
738 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
739 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
740 return templ_7745c5c3_CtxErr
741 }
742 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
743 if !templ_7745c5c3_IsBuffer {
744 defer func() {
745 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
746 if templ_7745c5c3_Err == nil {
747 templ_7745c5c3_Err = templ_7745c5c3_BufErr
748 }
749 }()
750 }
751 ctx = templ.InitializeContext(ctx)
752 templ_7745c5c3_Var38 := templ.GetChildren(ctx)
753 if templ_7745c5c3_Var38 == nil {
754 templ_7745c5c3_Var38 = templ.NopComponent
755 }
756 ctx = templ.ClearChildren(ctx)
757 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "<figure class=\"repo-pulse\"")
758 if templ_7745c5c3_Err != nil {
759 return templ_7745c5c3_Err
760 }
761 if h.Live {
762 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, " data-live")
763 if templ_7745c5c3_Err != nil {
764 return templ_7745c5c3_Err
765 }
766 }
767 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, "><svg viewBox=\"0 0 600 64\" role=\"img\" aria-label=\"")
768 if templ_7745c5c3_Err != nil {
769 return templ_7745c5c3_Err
770 }
771 var templ_7745c5c3_Var39 string
772 templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.ResolveAttributeValue(h.Label)
773 if templ_7745c5c3_Err != nil {
774 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 126, Col: 59}
775 }
776 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var39)
777 if templ_7745c5c3_Err != nil {
778 return templ_7745c5c3_Err
779 }
780 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "\" focusable=\"false\"><defs><linearGradient id=\"")
781 if templ_7745c5c3_Err != nil {
782 return templ_7745c5c3_Err
783 }
784 var templ_7745c5c3_Var40 string
785 templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.ResolveAttributeValue(h.GradID)
786 if templ_7745c5c3_Err != nil {
787 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 128, Col: 33}
788 }
789 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var40)
790 if templ_7745c5c3_Err != nil {
791 return templ_7745c5c3_Err
792 }
793 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, "\" 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=\"")
794 if templ_7745c5c3_Err != nil {
795 return templ_7745c5c3_Err
796 }
797 var templ_7745c5c3_Var41 string
798 templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.ResolveAttributeValue(h.Area)
799 if templ_7745c5c3_Err != nil {
800 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 134, Col: 38}
801 }
802 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var41)
803 if templ_7745c5c3_Err != nil {
804 return templ_7745c5c3_Err
805 }
806 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, "\" fill=\"")
807 if templ_7745c5c3_Err != nil {
808 return templ_7745c5c3_Err
809 }
810 var templ_7745c5c3_Var42 string
811 templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.ResolveAttributeValue("url(#" + h.GradID + ")")
812 if templ_7745c5c3_Err != nil {
813 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 134, Col: 72}
814 }
815 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var42)
816 if templ_7745c5c3_Err != nil {
817 return templ_7745c5c3_Err
818 }
819 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, "\"></path> <path class=\"pulse-line\" d=\"")
820 if templ_7745c5c3_Err != nil {
821 return templ_7745c5c3_Err
822 }
823 var templ_7745c5c3_Var43 string
824 templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.ResolveAttributeValue(h.Line)
825 if templ_7745c5c3_Err != nil {
826 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 135, Col: 38}
827 }
828 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var43)
829 if templ_7745c5c3_Err != nil {
830 return templ_7745c5c3_Err
831 }
832 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, "\" vector-effect=\"non-scaling-stroke\"></path> <circle class=\"pulse-ring\" cx=\"")
833 if templ_7745c5c3_Err != nil {
834 return templ_7745c5c3_Err
835 }
836 var templ_7745c5c3_Var44 string
837 templ_7745c5c3_Var44, templ_7745c5c3_Err = templ.ResolveAttributeValue(h.X)
838 if templ_7745c5c3_Err != nil {
839 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 136, Col: 38}
840 }
841 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var44)
842 if templ_7745c5c3_Err != nil {
843 return templ_7745c5c3_Err
844 }
845 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, "\" cy=\"")
846 if templ_7745c5c3_Err != nil {
847 return templ_7745c5c3_Err
848 }
849 var templ_7745c5c3_Var45 string
850 templ_7745c5c3_Var45, templ_7745c5c3_Err = templ.ResolveAttributeValue(h.Y)
851 if templ_7745c5c3_Err != nil {
852 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 136, Col: 49}
853 }
854 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var45)
855 if templ_7745c5c3_Err != nil {
856 return templ_7745c5c3_Err
857 }
858 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "\" r=\"4\"></circle> <circle class=\"pulse-dot\" cx=\"")
859 if templ_7745c5c3_Err != nil {
860 return templ_7745c5c3_Err
861 }
862 var templ_7745c5c3_Var46 string
863 templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.ResolveAttributeValue(h.X)
864 if templ_7745c5c3_Err != nil {
865 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 137, Col: 37}
866 }
867 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var46)
868 if templ_7745c5c3_Err != nil {
869 return templ_7745c5c3_Err
870 }
871 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "\" cy=\"")
872 if templ_7745c5c3_Err != nil {
873 return templ_7745c5c3_Err
874 }
875 var templ_7745c5c3_Var47 string
876 templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.ResolveAttributeValue(h.Y)
877 if templ_7745c5c3_Err != nil {
878 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 137, Col: 48}
879 }
880 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var47)
881 if templ_7745c5c3_Err != nil {
882 return templ_7745c5c3_Err
883 }
884 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, "\" r=\"3.5\"></circle></svg><figcaption class=\"pulse-cap\" aria-hidden=\"true\"><span>90 days ago</span><span>today</span></figcaption></figure>")
885 if templ_7745c5c3_Err != nil {
886 return templ_7745c5c3_Err
887 }
888 return nil
889 })
890}
891
892// Outline is the README outline; levels indent by 2ch, the h1 is bold.
893func Outline(headings []Heading) templ.Component {
894 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
895 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
896 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
897 return templ_7745c5c3_CtxErr
898 }
899 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
900 if !templ_7745c5c3_IsBuffer {
901 defer func() {
902 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
903 if templ_7745c5c3_Err == nil {
904 templ_7745c5c3_Err = templ_7745c5c3_BufErr
905 }
906 }()
907 }
908 ctx = templ.InitializeContext(ctx)
909 templ_7745c5c3_Var48 := templ.GetChildren(ctx)
910 if templ_7745c5c3_Var48 == nil {
911 templ_7745c5c3_Var48 = templ.NopComponent
912 }
913 ctx = templ.ClearChildren(ctx)
914 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 85, "<nav class=\"outline\" aria-label=\"Outline\">")
915 if templ_7745c5c3_Err != nil {
916 return templ_7745c5c3_Err
917 }
918 for _, h := range headings {
919 var templ_7745c5c3_Var49 = []any{"l" + itoa(h.Level)}
920 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var49...)
921 if templ_7745c5c3_Err != nil {
922 return templ_7745c5c3_Err
923 }
924 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "<a class=\"")
925 if templ_7745c5c3_Err != nil {
926 return templ_7745c5c3_Err
927 }
928 var templ_7745c5c3_Var50 string
929 templ_7745c5c3_Var50, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var49).String())
930 if templ_7745c5c3_Err != nil {
931 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 1, Col: 0}
932 }
933 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var50)
934 if templ_7745c5c3_Err != nil {
935 return templ_7745c5c3_Err
936 }
937 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 87, "\" href=\"")
938 if templ_7745c5c3_Err != nil {
939 return templ_7745c5c3_Err
940 }
941 var templ_7745c5c3_Var51 templ.SafeURL
942 templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL("#" + h.ID))
943 if templ_7745c5c3_Err != nil {
944 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 147, Col: 68}
945 }
946 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var51))
947 if templ_7745c5c3_Err != nil {
948 return templ_7745c5c3_Err
949 }
950 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 88, "\">")
951 if templ_7745c5c3_Err != nil {
952 return templ_7745c5c3_Err
953 }
954 var templ_7745c5c3_Var52 string
955 templ_7745c5c3_Var52, templ_7745c5c3_Err = templ.JoinStringErrs(h.Text)
956 if templ_7745c5c3_Err != nil {
957 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 147, Col: 79}
958 }
959 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var52))
960 if templ_7745c5c3_Err != nil {
961 return templ_7745c5c3_Err
962 }
963 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 89, "</a>")
964 if templ_7745c5c3_Err != nil {
965 return templ_7745c5c3_Err
966 }
967 }
968 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 90, "</nav>")
969 if templ_7745c5c3_Err != nil {
970 return templ_7745c5c3_Err
971 }
972 return nil
973 })
974}
975
976// ReadmeCard is a README in a card whose header names the file.
977func ReadmeCard(r Readme) templ.Component {
978 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
979 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
980 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
981 return templ_7745c5c3_CtxErr
982 }
983 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
984 if !templ_7745c5c3_IsBuffer {
985 defer func() {
986 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
987 if templ_7745c5c3_Err == nil {
988 templ_7745c5c3_Err = templ_7745c5c3_BufErr
989 }
990 }()
991 }
992 ctx = templ.InitializeContext(ctx)
993 templ_7745c5c3_Var53 := templ.GetChildren(ctx)
994 if templ_7745c5c3_Var53 == nil {
995 templ_7745c5c3_Var53 = templ.NopComponent
996 }
997 ctx = templ.ClearChildren(ctx)
998 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 91, "<section class=\"card readme\" aria-labelledby=\"readme-h\"><h2 class=\"card-h\" id=\"readme-h\"><span class=\"ico i-file\" aria-hidden=\"true\"></span> ")
999 if templ_7745c5c3_Err != nil {
1000 return templ_7745c5c3_Err
1001 }
1002 var templ_7745c5c3_Var54 string
1003 templ_7745c5c3_Var54, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
1004 if templ_7745c5c3_Err != nil {
1005 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 157, Col: 11}
1006 }
1007 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var54))
1008 if templ_7745c5c3_Err != nil {
1009 return templ_7745c5c3_Err
1010 }
1011 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 92, "</h2>")
1012 if templ_7745c5c3_Err != nil {
1013 return templ_7745c5c3_Err
1014 }
1015 templ_7745c5c3_Err = ReadmeView(r).Render(ctx, templ_7745c5c3_Buffer)
1016 if templ_7745c5c3_Err != nil {
1017 return templ_7745c5c3_Err
1018 }
1019 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 93, "</section>")
1020 if templ_7745c5c3_Err != nil {
1021 return templ_7745c5c3_Err
1022 }
1023 return nil
1024 })
1025}
1026
1027// ReadmeView is a rendered README. Its HTML comes from the Markdown
1028// renderer, which drops raw HTML and filters URLs.
1029func ReadmeView(r Readme) templ.Component {
1030 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1031 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1032 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1033 return templ_7745c5c3_CtxErr
1034 }
1035 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1036 if !templ_7745c5c3_IsBuffer {
1037 defer func() {
1038 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1039 if templ_7745c5c3_Err == nil {
1040 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1041 }
1042 }()
1043 }
1044 ctx = templ.InitializeContext(ctx)
1045 templ_7745c5c3_Var55 := templ.GetChildren(ctx)
1046 if templ_7745c5c3_Var55 == nil {
1047 templ_7745c5c3_Var55 = templ.NopComponent
1048 }
1049 ctx = templ.ClearChildren(ctx)
1050 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, "<article class=\"prose\" aria-label=\"")
1051 if templ_7745c5c3_Err != nil {
1052 return templ_7745c5c3_Err
1053 }
1054 var templ_7745c5c3_Var56 string
1055 templ_7745c5c3_Var56, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.Name)
1056 if templ_7745c5c3_Err != nil {
1057 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 166, Col: 43}
1058 }
1059 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var56)
1060 if templ_7745c5c3_Err != nil {
1061 return templ_7745c5c3_Err
1062 }
1063 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 95, "\" hx-ignore>")
1064 if templ_7745c5c3_Err != nil {
1065 return templ_7745c5c3_Err
1066 }
1067 if r.Note != "" {
1068 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 96, "<p class=\"dim\">")
1069 if templ_7745c5c3_Err != nil {
1070 return templ_7745c5c3_Err
1071 }
1072 var templ_7745c5c3_Var57 string
1073 templ_7745c5c3_Var57, templ_7745c5c3_Err = templ.JoinStringErrs(r.Note)
1074 if templ_7745c5c3_Err != nil {
1075 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 168, Col: 26}
1076 }
1077 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var57))
1078 if templ_7745c5c3_Err != nil {
1079 return templ_7745c5c3_Err
1080 }
1081 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 97, "</p>")
1082 if templ_7745c5c3_Err != nil {
1083 return templ_7745c5c3_Err
1084 }
1085 } else {
1086 templ_7745c5c3_Err = templ.Raw(r.HTML).Render(ctx, templ_7745c5c3_Buffer)
1087 if templ_7745c5c3_Err != nil {
1088 return templ_7745c5c3_Err
1089 }
1090 }
1091 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 98, "</article>")
1092 if templ_7745c5c3_Err != nil {
1093 return templ_7745c5c3_Err
1094 }
1095 return nil
1096 })
1097}
1098
1099// CommitRows is a cursor table of commits: sha, subject with inline refs,
1100// author, relative date (absolute in the title).
1101func CommitRows(rows []CommitRow) templ.Component {
1102 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1103 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1104 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1105 return templ_7745c5c3_CtxErr
1106 }
1107 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1108 if !templ_7745c5c3_IsBuffer {
1109 defer func() {
1110 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1111 if templ_7745c5c3_Err == nil {
1112 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1113 }
1114 }()
1115 }
1116 ctx = templ.InitializeContext(ctx)
1117 templ_7745c5c3_Var58 := templ.GetChildren(ctx)
1118 if templ_7745c5c3_Var58 == nil {
1119 templ_7745c5c3_Var58 = templ.NopComponent
1120 }
1121 ctx = templ.ClearChildren(ctx)
1122 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, "<table class=\"list commits\" aria-label=\"Commits\"><tbody data-rows>")
1123 if templ_7745c5c3_Err != nil {
1124 return templ_7745c5c3_Err
1125 }
1126 for _, c := range rows {
1127 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 100, "<tr")
1128 if templ_7745c5c3_Err != nil {
1129 return templ_7745c5c3_Err
1130 }
1131 if c.ID != "" {
1132 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, " id=\"")
1133 if templ_7745c5c3_Err != nil {
1134 return templ_7745c5c3_Err
1135 }
1136 var templ_7745c5c3_Var59 string
1137 templ_7745c5c3_Var59, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.ID)
1138 if templ_7745c5c3_Err != nil {
1139 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 183, Col: 15}
1140 }
1141 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var59)
1142 if templ_7745c5c3_Err != nil {
1143 return templ_7745c5c3_Err
1144 }
1145 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 102, "\"")
1146 if templ_7745c5c3_Err != nil {
1147 return templ_7745c5c3_Err
1148 }
1149 }
1150 if c.Cursor {
1151 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, " data-cursor")
1152 if templ_7745c5c3_Err != nil {
1153 return templ_7745c5c3_Err
1154 }
1155 }
1156 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, "><td class=\"c-sha mute\">")
1157 if templ_7745c5c3_Err != nil {
1158 return templ_7745c5c3_Err
1159 }
1160 var templ_7745c5c3_Var60 string
1161 templ_7745c5c3_Var60, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short)
1162 if templ_7745c5c3_Err != nil {
1163 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 187, Col: 37}
1164 }
1165 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var60))
1166 if templ_7745c5c3_Err != nil {
1167 return templ_7745c5c3_Err
1168 }
1169 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, "</td><td class=\"c-subject\"><a href=\"")
1170 if templ_7745c5c3_Err != nil {
1171 return templ_7745c5c3_Err
1172 }
1173 var templ_7745c5c3_Var61 templ.SafeURL
1174 templ_7745c5c3_Var61, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref))
1175 if templ_7745c5c3_Err != nil {
1176 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 189, Col: 38}
1177 }
1178 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var61))
1179 if templ_7745c5c3_Err != nil {
1180 return templ_7745c5c3_Err
1181 }
1182 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, "\">")
1183 if templ_7745c5c3_Err != nil {
1184 return templ_7745c5c3_Err
1185 }
1186 var templ_7745c5c3_Var62 string
1187 templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject)
1188 if templ_7745c5c3_Err != nil {
1189 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 189, Col: 52}
1190 }
1191 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var62))
1192 if templ_7745c5c3_Err != nil {
1193 return templ_7745c5c3_Err
1194 }
1195 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, "</a> ")
1196 if templ_7745c5c3_Err != nil {
1197 return templ_7745c5c3_Err
1198 }
1199 if c.Merge {
1200 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, "<span class=\"pill\">merge</span> ")
1201 if templ_7745c5c3_Err != nil {
1202 return templ_7745c5c3_Err
1203 }
1204 }
1205 for _, b := range c.Branches {
1206 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, "<span class=\"pill\">")
1207 if templ_7745c5c3_Err != nil {
1208 return templ_7745c5c3_Err
1209 }
1210 var templ_7745c5c3_Var63 string
1211 templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.JoinStringErrs(b)
1212 if templ_7745c5c3_Err != nil {
1213 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 194, Col: 29}
1214 }
1215 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var63))
1216 if templ_7745c5c3_Err != nil {
1217 return templ_7745c5c3_Err
1218 }
1219 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "</span> ")
1220 if templ_7745c5c3_Err != nil {
1221 return templ_7745c5c3_Err
1222 }
1223 }
1224 for _, t := range c.Tags {
1225 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, "<span class=\"pill tag\"><span class=\"sr\">tag </span>")
1226 if templ_7745c5c3_Err != nil {
1227 return templ_7745c5c3_Err
1228 }
1229 var templ_7745c5c3_Var64 string
1230 templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.JoinStringErrs(t)
1231 if templ_7745c5c3_Err != nil {
1232 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 197, Col: 61}
1233 }
1234 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var64))
1235 if templ_7745c5c3_Err != nil {
1236 return templ_7745c5c3_Err
1237 }
1238 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, "</span>")
1239 if templ_7745c5c3_Err != nil {
1240 return templ_7745c5c3_Err
1241 }
1242 }
1243 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, "</td><td class=\"c-ck\">")
1244 if templ_7745c5c3_Err != nil {
1245 return templ_7745c5c3_Err
1246 }
1247 templ_7745c5c3_Err = CommitChecks(c.Checks).Render(ctx, templ_7745c5c3_Buffer)
1248 if templ_7745c5c3_Err != nil {
1249 return templ_7745c5c3_Err
1250 }
1251 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, "</td><td class=\"c-who dim\">")
1252 if templ_7745c5c3_Err != nil {
1253 return templ_7745c5c3_Err
1254 }
1255 var templ_7745c5c3_Var65 string
1256 templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)
1257 if templ_7745c5c3_Err != nil {
1258 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 201, Col: 37}
1259 }
1260 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var65))
1261 if templ_7745c5c3_Err != nil {
1262 return templ_7745c5c3_Err
1263 }
1264 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, "</td><td class=\"c-when nowrap dim\"><time datetime=\"")
1265 if templ_7745c5c3_Err != nil {
1266 return templ_7745c5c3_Err
1267 }
1268 var templ_7745c5c3_Var66 string
1269 templ_7745c5c3_Var66, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
1270 if templ_7745c5c3_Err != nil {
1271 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 202, Col: 60}
1272 }
1273 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var66)
1274 if templ_7745c5c3_Err != nil {
1275 return templ_7745c5c3_Err
1276 }
1277 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 116, "\" title=\"")
1278 if templ_7745c5c3_Err != nil {
1279 return templ_7745c5c3_Err
1280 }
1281 var templ_7745c5c3_Var67 string
1282 templ_7745c5c3_Var67, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
1283 if templ_7745c5c3_Err != nil {
1284 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 202, Col: 79}
1285 }
1286 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var67)
1287 if templ_7745c5c3_Err != nil {
1288 return templ_7745c5c3_Err
1289 }
1290 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 117, "\">")
1291 if templ_7745c5c3_Err != nil {
1292 return templ_7745c5c3_Err
1293 }
1294 var templ_7745c5c3_Var68 string
1295 templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)
1296 if templ_7745c5c3_Err != nil {
1297 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/components.templ`, Line: 202, Col: 90}
1298 }
1299 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var68))
1300 if templ_7745c5c3_Err != nil {
1301 return templ_7745c5c3_Err
1302 }
1303 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 118, "</time></td></tr>")
1304 if templ_7745c5c3_Err != nil {
1305 return templ_7745c5c3_Err
1306 }
1307 }
1308 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 119, "</tbody></table>")
1309 if templ_7745c5c3_Err != nil {
1310 return templ_7745c5c3_Err
1311 }
1312 return nil
1313 })
1314}
1315
1316var _ = templruntime.GeneratedTemplate