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