ikurotime / gitgud

public
main / internal/interface/web/templates/layout_templ.go
18.8 KB · Go Raw
  1// Code generated by templ - DO NOT EDIT.
  2
  3// templ: version: v0.3.865
  4package templates
  5
  6//lint:file-ignore SA4006 This context is only used if a nested component is present.
  7
  8import "github.com/a-h/templ"
  9import templruntime "github.com/a-h/templ/runtime"
 10
 11import "gitgud/internal/domain"
 12
 13func Layout(title string, user *domain.User) templ.Component {
 14	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 15		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 16		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
 17			return templ_7745c5c3_CtxErr
 18		}
 19		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 20		if !templ_7745c5c3_IsBuffer {
 21			defer func() {
 22				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 23				if templ_7745c5c3_Err == nil {
 24					templ_7745c5c3_Err = templ_7745c5c3_BufErr
 25				}
 26			}()
 27		}
 28		ctx = templ.InitializeContext(ctx)
 29		templ_7745c5c3_Var1 := templ.GetChildren(ctx)
 30		if templ_7745c5c3_Var1 == nil {
 31			templ_7745c5c3_Var1 = templ.NopComponent
 32		}
 33		ctx = templ.ClearChildren(ctx)
 34		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<!doctype html><html lang=\"en\" class=\"dark\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><title>")
 35		if templ_7745c5c3_Err != nil {
 36			return templ_7745c5c3_Err
 37		}
 38		var templ_7745c5c3_Var2 string
 39		templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(title)
 40		if templ_7745c5c3_Err != nil {
 41			return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/layout.templ`, Line: 11, Col: 17}
 42		}
 43		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
 44		if templ_7745c5c3_Err != nil {
 45			return templ_7745c5c3_Err
 46		}
 47		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "</title><link rel=\"preconnect\" href=\"https://fonts.googleapis.com\"><link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin><link href=\"https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&amp;family=JetBrains+Mono:wght@400;500;600;700&amp;display=swap\" rel=\"stylesheet\"><script src=\"https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4\"></script><style type=\"text/tailwindcss\">\n\t\t\t\t@theme {\n\t\t\t\t\t--color-canvas: #0a0a0a;\n\t\t\t\t\t--color-panel: #0e0e0e;\n\t\t\t\t\t--color-panel2: #161616;\n\t\t\t\t\t--color-line: #1f1f1f;\n\t\t\t\t\t--color-line2: #2a2a2a;\n\t\t\t\t\t--color-ink: #ededed;\n\t\t\t\t\t--color-muted: #a1a1a1;\n\t\t\t\t\t--color-faint: #6e6e6e;\n\t\t\t\t\t--color-accent: #ededed;\n\t\t\t\t\t--color-accenthi: #ffffff;\n\t\t\t\t\t--color-grass: #ededed;\n\t\t\t\t\t--color-grasshi: #ffffff;\n\t\t\t\t\t--color-grassink: #0a0a0a;\n\t\t\t\t\t--color-open: #3fb950;\n\t\t\t\t\t--color-closed: #f85149;\n\t\t\t\t\t--color-merged: #a371f7;\n\t\t\t\t\t--color-warn: #d29922;\n\t\t\t\t\t--font-sans: \"Geist\", ui-sans-serif, system-ui, sans-serif;\n\t\t\t\t\t--font-mono: \"JetBrains Mono\", ui-monospace, monospace;\n\t\t\t\t}\n\t\t\t\t@layer base {\n\t\t\t\t\thtml { color-scheme: dark; }\n\t\t\t\t\tbody { @apply bg-canvas text-ink font-sans antialiased; }\n\t\t\t\t\tbody::before {\n\t\t\t\t\t\tcontent: \"\";\n\t\t\t\t\t\tposition: fixed;\n\t\t\t\t\t\tinset: 0;\n\t\t\t\t\t\tpointer-events: none;\n\t\t\t\t\t\tz-index: 0;\n\t\t\t\t\t\tbackground: radial-gradient(680px 320px at 50% -120px, rgba(255,255,255,.05), transparent 70%);\n\t\t\t\t\t}\n\t\t\t\t\ta { @apply transition-colors; }\n\t\t\t\t\tcode, pre, .mono { @apply font-mono; }\n\t\t\t\t\t::selection { background: rgba(255,255,255,.18); }\n\t\t\t\t\t::-webkit-scrollbar { width: 10px; height: 10px; }\n\t\t\t\t\t::-webkit-scrollbar-thumb { background: #2a2a2a; border-radius: 9999px; border: 2px solid #0a0a0a; }\n\t\t\t\t\t:focus-visible { outline: none; box-shadow: 0 0 0 2px rgba(255,255,255,.45); border-radius: 6px; }\n\t\t\t\t\tmain { animation: fade .15s ease-out both; }\n\t\t\t\t\t@keyframes fade { from { opacity: 0; } to { opacity: 1; } }\n\t\t\t\t\t@media (prefers-reduced-motion: reduce) { main { animation: none; } }\n\t\t\t\t}\n\t\t\t\t@layer components {\n\t\t\t\t\t.btn { @apply inline-flex items-center gap-1.5 rounded-md border border-line2 bg-panel2 px-3 py-1.5 text-sm font-medium text-ink transition hover:border-faint hover:bg-line; }\n\t\t\t\t\t.btn-primary { @apply border-transparent bg-grass font-semibold text-grassink hover:bg-grasshi hover:border-transparent; }\n\t\t\t\t\t.btn-danger { @apply text-closed hover:border-closed hover:bg-closed/10; }\n\t\t\t\t\t.input, .textarea, .select { @apply w-full rounded-md border border-line2 bg-[#111111] px-3 py-2 text-sm text-ink placeholder:text-faint transition focus:border-faint; }\n\t\t\t\t\t.card { @apply rounded-md border border-line bg-panel; }\n\t\t\t\t\t.link { @apply text-ink hover:text-accent; }\n\t\t\t\t\t.muted { @apply text-muted; }\n\t\t\t\t\t.meta { @apply font-mono text-xs text-faint; }\n\t\t\t\t\t.tab { @apply inline-flex items-center gap-2 border-b-2 border-transparent pb-2.5 text-sm text-muted transition hover:text-ink; }\n\t\t\t\t\t.tab-active { @apply border-accent font-semibold text-ink; }\n\t\t\t\t\t.badge { @apply inline-flex items-center gap-1 rounded border border-line2 px-2 py-0.5 text-xs font-medium text-muted; }\n\t\t\t\t\t.badge-open { @apply gap-1.5 rounded-full border-transparent bg-open/16 px-3 py-1 font-medium text-open; }\n\t\t\t\t\t.badge-closed { @apply gap-1.5 rounded-full border-transparent bg-closed/16 px-3 py-1 font-medium text-[#ff8f86]; }\n\t\t\t\t\t.badge-merged { @apply gap-1.5 rounded-full border-transparent bg-merged/16 px-3 py-1 font-medium text-[#c8a6f7]; }\n\t\t\t\t\t.label-bug { @apply inline-flex items-center rounded-full bg-closed/16 px-2.5 py-0.5 text-[10px] font-medium text-[#ff8f86]; }\n\t\t\t\t\t.label-enh { @apply inline-flex items-center rounded-full bg-accent/16 px-2.5 py-0.5 text-[10px] font-medium text-accenthi; }\n\t\t\t\t\t.label-good { @apply inline-flex items-center rounded-full bg-warn/16 px-2.5 py-0.5 text-[10px] font-medium text-warn; }\n\t\t\t\t\t.row { @apply transition hover:bg-panel2; }\n\t\t\t\t\t.diff-add { @apply bg-open/12 text-[#7ee2a0]; }\n\t\t\t\t\t.diff-del { @apply bg-closed/12 text-[#f2b8b3]; }\n\t\t\t\t\t.diff-hunk { @apply bg-panel2 text-faint; }\n\t\t\t\t\t.prose-dark { @apply text-sm leading-relaxed text-muted; }\n\t\t\t\t\t.prose-dark h1 { @apply mt-5 mb-3 text-xl font-semibold text-ink first:mt-0; }\n\t\t\t\t\t.prose-dark h2 { @apply mt-5 mb-2 text-lg font-semibold text-ink first:mt-0; }\n\t\t\t\t\t.prose-dark h3 { @apply mt-4 mb-2 font-semibold text-ink; }\n\t\t\t\t\t.prose-dark p { @apply my-3; }\n\t\t\t\t\t.prose-dark a { @apply text-accent hover:underline; }\n\t\t\t\t\t.prose-dark strong { @apply font-semibold text-ink; }\n\t\t\t\t\t.prose-dark ul { @apply my-3 list-disc pl-5; }\n\t\t\t\t\t.prose-dark ol { @apply my-3 list-decimal pl-5; }\n\t\t\t\t\t.prose-dark li { @apply my-1; }\n\t\t\t\t\t.prose-dark code { @apply rounded border border-line2 bg-panel2 px-1.5 py-0.5 text-[.85em] text-accent; }\n\t\t\t\t\t.prose-dark pre { @apply my-3 overflow-x-auto rounded-lg border border-line bg-panel2 p-4 text-xs; }\n\t\t\t\t\t.prose-dark pre code { @apply bg-transparent p-0; }\n\t\t\t\t\t.prose-dark blockquote { @apply my-3 border-l-2 border-line2 pl-4 text-faint; }\n\t\t\t\t\t.prose-dark hr { @apply my-5 border-line; }\n\t\t\t\t}\n\t\t\t</style></head><body><header class=\"sticky top-0 z-20 border-b border-line bg-canvas/80 backdrop-blur-xl\"><nav class=\"mx-auto flex h-14 max-w-5xl items-center justify-between px-6\"><a href=\"/\" class=\"flex items-center gap-2.5\"><span class=\"text-accent\">")
 48		if templ_7745c5c3_Err != nil {
 49			return templ_7745c5c3_Err
 50		}
 51		templ_7745c5c3_Err = gitLogo("size-5").Render(ctx, templ_7745c5c3_Buffer)
 52		if templ_7745c5c3_Err != nil {
 53			return templ_7745c5c3_Err
 54		}
 55		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "</span> <span class=\"font-mono font-semibold tracking-tight text-ink\">gitgud</span></a><div class=\"flex items-center gap-4 text-sm\">")
 56		if templ_7745c5c3_Err != nil {
 57			return templ_7745c5c3_Err
 58		}
 59		if user != nil {
 60			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "<a class=\"btn\" href=\"/new\">+ New</a><div class=\"flex items-center gap-2\">")
 61			if templ_7745c5c3_Err != nil {
 62				return templ_7745c5c3_Err
 63			}
 64			templ_7745c5c3_Err = avatar(user.Username, "size-6").Render(ctx, templ_7745c5c3_Buffer)
 65			if templ_7745c5c3_Err != nil {
 66				return templ_7745c5c3_Err
 67			}
 68			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "<a class=\"link mono text-muted\" href=\"")
 69			if templ_7745c5c3_Err != nil {
 70				return templ_7745c5c3_Err
 71			}
 72			var templ_7745c5c3_Var3 templ.SafeURL = templ.SafeURL("/" + user.Username)
 73			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var3)))
 74			if templ_7745c5c3_Err != nil {
 75				return templ_7745c5c3_Err
 76			}
 77			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "\">")
 78			if templ_7745c5c3_Err != nil {
 79				return templ_7745c5c3_Err
 80			}
 81			var templ_7745c5c3_Var4 string
 82			templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(user.Username)
 83			if templ_7745c5c3_Err != nil {
 84				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/layout.templ`, Line: 111, Col: 99}
 85			}
 86			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
 87			if templ_7745c5c3_Err != nil {
 88				return templ_7745c5c3_Err
 89			}
 90			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "</a></div><form method=\"post\" action=\"/logout\">")
 91			if templ_7745c5c3_Err != nil {
 92				return templ_7745c5c3_Err
 93			}
 94			templ_7745c5c3_Err = csrfField().Render(ctx, templ_7745c5c3_Buffer)
 95			if templ_7745c5c3_Err != nil {
 96				return templ_7745c5c3_Err
 97			}
 98			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "<button class=\"text-muted transition hover:text-ink\" type=\"submit\">Sign out</button></form>")
 99			if templ_7745c5c3_Err != nil {
100				return templ_7745c5c3_Err
101			}
102		} else {
103			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "<a class=\"text-muted transition hover:text-ink\" href=\"/login\">Sign in</a> <a class=\"btn btn-primary\" href=\"/register\">Register</a>")
104			if templ_7745c5c3_Err != nil {
105				return templ_7745c5c3_Err
106			}
107		}
108		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "</div></nav></header>")
109		if templ_7745c5c3_Err != nil {
110			return templ_7745c5c3_Err
111		}
112		if flashOf(ctx) != "" {
113			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "<div class=\"mx-auto max-w-5xl px-6 pt-4\"><div class=\"card flex items-center gap-2 border-accent/30 bg-accent/10 px-4 py-2.5 text-sm text-ink\"><span class=\"size-1.5 rounded-full bg-accent\"></span> ")
114			if templ_7745c5c3_Err != nil {
115				return templ_7745c5c3_Err
116			}
117			var templ_7745c5c3_Var5 string
118			templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(flashOf(ctx))
119			if templ_7745c5c3_Err != nil {
120				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/layout.templ`, Line: 128, Col: 20}
121			}
122			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
123			if templ_7745c5c3_Err != nil {
124				return templ_7745c5c3_Err
125			}
126			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "</div></div>")
127			if templ_7745c5c3_Err != nil {
128				return templ_7745c5c3_Err
129			}
130		}
131		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "<main class=\"relative z-10 mx-auto max-w-5xl px-6 py-8\">")
132		if templ_7745c5c3_Err != nil {
133			return templ_7745c5c3_Err
134		}
135		templ_7745c5c3_Err = templ_7745c5c3_Var1.Render(ctx, templ_7745c5c3_Buffer)
136		if templ_7745c5c3_Err != nil {
137			return templ_7745c5c3_Err
138		}
139		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "</main></body></html>")
140		if templ_7745c5c3_Err != nil {
141			return templ_7745c5c3_Err
142		}
143		return nil
144	})
145}
146
147func csrfField() templ.Component {
148	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
149		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
150		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
151			return templ_7745c5c3_CtxErr
152		}
153		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
154		if !templ_7745c5c3_IsBuffer {
155			defer func() {
156				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
157				if templ_7745c5c3_Err == nil {
158					templ_7745c5c3_Err = templ_7745c5c3_BufErr
159				}
160			}()
161		}
162		ctx = templ.InitializeContext(ctx)
163		templ_7745c5c3_Var6 := templ.GetChildren(ctx)
164		if templ_7745c5c3_Var6 == nil {
165			templ_7745c5c3_Var6 = templ.NopComponent
166		}
167		ctx = templ.ClearChildren(ctx)
168		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "<input type=\"hidden\" name=\"csrf_token\" value=\"")
169		if templ_7745c5c3_Err != nil {
170			return templ_7745c5c3_Err
171		}
172		var templ_7745c5c3_Var7 string
173		templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(csrfToken(ctx))
174		if templ_7745c5c3_Err != nil {
175			return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/layout.templ`, Line: 140, Col: 62}
176		}
177		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
178		if templ_7745c5c3_Err != nil {
179			return templ_7745c5c3_Err
180		}
181		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "\">")
182		if templ_7745c5c3_Err != nil {
183			return templ_7745c5c3_Err
184		}
185		return nil
186	})
187}
188
189// gitLogo renders the gitgud branch-network mark. Color is inherited via currentColor.
190func gitLogo(class string) templ.Component {
191	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
192		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
193		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
194			return templ_7745c5c3_CtxErr
195		}
196		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
197		if !templ_7745c5c3_IsBuffer {
198			defer func() {
199				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
200				if templ_7745c5c3_Err == nil {
201					templ_7745c5c3_Err = templ_7745c5c3_BufErr
202				}
203			}()
204		}
205		ctx = templ.InitializeContext(ctx)
206		templ_7745c5c3_Var8 := templ.GetChildren(ctx)
207		if templ_7745c5c3_Var8 == nil {
208			templ_7745c5c3_Var8 = templ.NopComponent
209		}
210		ctx = templ.ClearChildren(ctx)
211		var templ_7745c5c3_Var9 = []any{class}
212		templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var9...)
213		if templ_7745c5c3_Err != nil {
214			return templ_7745c5c3_Err
215		}
216		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "<svg class=\"")
217		if templ_7745c5c3_Err != nil {
218			return templ_7745c5c3_Err
219		}
220		var templ_7745c5c3_Var10 string
221		templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(templ.CSSClasses(templ_7745c5c3_Var9).String())
222		if templ_7745c5c3_Err != nil {
223			return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/layout.templ`, Line: 1, Col: 0}
224		}
225		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
226		if templ_7745c5c3_Err != nil {
227			return templ_7745c5c3_Err
228		}
229		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"6\" cy=\"5.5\" r=\"2.5\"></circle> <circle cx=\"6\" cy=\"18.5\" r=\"2.5\"></circle> <circle cx=\"18\" cy=\"12\" r=\"2.5\"></circle> <path d=\"M6 8v8\"></path> <path d=\"M6 12h6.5a3 3 0 0 0 3-3V9.5\"></path></svg>")
230		if templ_7745c5c3_Err != nil {
231			return templ_7745c5c3_Err
232		}
233		return nil
234	})
235}
236
237// avatar renders a deterministic gradient avatar with the user's initial.
238func avatar(name, class string) templ.Component {
239	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
240		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
241		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
242			return templ_7745c5c3_CtxErr
243		}
244		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
245		if !templ_7745c5c3_IsBuffer {
246			defer func() {
247				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
248				if templ_7745c5c3_Err == nil {
249					templ_7745c5c3_Err = templ_7745c5c3_BufErr
250				}
251			}()
252		}
253		ctx = templ.InitializeContext(ctx)
254		templ_7745c5c3_Var11 := templ.GetChildren(ctx)
255		if templ_7745c5c3_Var11 == nil {
256			templ_7745c5c3_Var11 = templ.NopComponent
257		}
258		ctx = templ.ClearChildren(ctx)
259		var templ_7745c5c3_Var12 = []any{"inline-flex shrink-0 items-center justify-center rounded-full bg-gradient-to-br from-[#2a2a2a] to-[#0e0e0e] font-semibold text-ink ring-1 ring-line2", class}
260		templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var12...)
261		if templ_7745c5c3_Err != nil {
262			return templ_7745c5c3_Err
263		}
264		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "<span class=\"")
265		if templ_7745c5c3_Err != nil {
266			return templ_7745c5c3_Err
267		}
268		var templ_7745c5c3_Var13 string
269		templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(templ.CSSClasses(templ_7745c5c3_Var12).String())
270		if templ_7745c5c3_Err != nil {
271			return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/layout.templ`, Line: 1, Col: 0}
272		}
273		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
274		if templ_7745c5c3_Err != nil {
275			return templ_7745c5c3_Err
276		}
277		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "\" style=\"font-size:.62em\">")
278		if templ_7745c5c3_Err != nil {
279			return templ_7745c5c3_Err
280		}
281		var templ_7745c5c3_Var14 string
282		templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(initial(name))
283		if templ_7745c5c3_Err != nil {
284			return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/layout.templ`, Line: 159, Col: 17}
285		}
286		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
287		if templ_7745c5c3_Err != nil {
288			return templ_7745c5c3_Err
289		}
290		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "</span>")
291		if templ_7745c5c3_Err != nil {
292			return templ_7745c5c3_Err
293		}
294		return nil
295	})
296}
297
298var _ = templruntime.GeneratedTemplate