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