NextWks/src/core/ui/launcher_templ.go

284 lines
19 KiB
Go

// Code generated by templ - DO NOT EDIT.
// templ: version: v0.3.1020
package ui
//lint:file-ignore SA4006 This context is only used if a nested component is present.
import "github.com/a-h/templ"
import templruntime "github.com/a-h/templ/runtime"
func LauncherPage(userName string, role string, apps []AppTile) templ.Component {
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
return templ_7745c5c3_CtxErr
}
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
if !templ_7745c5c3_IsBuffer {
defer func() {
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
if templ_7745c5c3_Err == nil {
templ_7745c5c3_Err = templ_7745c5c3_BufErr
}
}()
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
if templ_7745c5c3_Var1 == nil {
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<!doctype html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\"><title>Next Workspace</title><link rel=\"manifest\" href=\"/static/manifest.json\"><meta name=\"theme-color\" content=\"#1a1a2e\"><meta name=\"apple-mobile-web-app-capable\" content=\"yes\"><meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\"><script src=\"https://unpkg.com/htmx.org@2.0.4\"></script><style>{ workspaceCSS() }</style></head><body><div class=\"shell\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = topBar(userName, role).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "<main class=\"content\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = greetingSection(userName).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = AppGrid(apps).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "</main></div><!-- PWA Modal --><div id=\"pwa-overlay\" class=\"overlay\" style=\"display:none\" onclick=\"closePWA()\"><div class=\"modal\" onclick=\"event.stopPropagation()\"><div class=\"modal-head\"><h2>Install Next Workspace</h2><button class=\"close-btn\" onclick=\"closePWA()\">&times;</button></div><div class=\"modal-body\" id=\"pwa-content\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = pwaInstructions().Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "</div></div></div><script>{ launcherJS() }</script></body></html>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
return nil
})
}
func greetingSection(userName string) templ.Component {
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
return templ_7745c5c3_CtxErr
}
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
if !templ_7745c5c3_IsBuffer {
defer func() {
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
if templ_7745c5c3_Err == nil {
templ_7745c5c3_Err = templ_7745c5c3_BufErr
}
}()
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var2 := templ.GetChildren(ctx)
if templ_7745c5c3_Var2 == nil {
templ_7745c5c3_Var2 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "<div class=\"greeting\"><div class=\"avatar\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var3 string
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(initials(userName))
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `core/ui/launcher.templ`, Line: 46, Col: 42}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "</div><div class=\"greeting-text\"><h1>Good ")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var4 string
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(timeOfDay())
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `core/ui/launcher.templ`, Line: 48, Col: 25}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, ", ")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var5 string
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(userName)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `core/ui/launcher.templ`, Line: 48, Col: 39}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "</h1><p>Your workspace is ready</p></div></div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
return nil
})
}
func topBar(userName string, role string) templ.Component {
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
return templ_7745c5c3_CtxErr
}
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
if !templ_7745c5c3_IsBuffer {
defer func() {
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
if templ_7745c5c3_Err == nil {
templ_7745c5c3_Err = templ_7745c5c3_BufErr
}
}()
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var6 := templ.GetChildren(ctx)
if templ_7745c5c3_Var6 == nil {
templ_7745c5c3_Var6 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "<header class=\"topbar\"><div class=\"topbar-left\"><div class=\"logo-icon\">N</div><span class=\"logo-text\">NextWks</span></div><div class=\"topbar-right\"><button class=\"icon-btn\" onclick=\"showPWA()\" title=\"Install app\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4\"></path><polyline points=\"7 10 12 15 17 10\"></polyline><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"></line></svg></button><div class=\"user-menu\"><div class=\"avatar sm\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var7 string
templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(initials(userName))
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `core/ui/launcher.templ`, Line: 65, Col: 47}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "</div></div></div></header>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
return nil
})
}
func workspaceCSS() templ.Component {
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
return templ_7745c5c3_CtxErr
}
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
if !templ_7745c5c3_IsBuffer {
defer func() {
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
if templ_7745c5c3_Err == nil {
templ_7745c5c3_Err = templ_7745c5c3_BufErr
}
}()
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var8 := templ.GetChildren(ctx)
if templ_7745c5c3_Var8 == nil {
templ_7745c5c3_Var8 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "<style type=\"text/css\">\n\t\t*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}\n\t\t:root{\n\t\t\t--bg:#0d1117; --surface:#161b22; --surface2:#21262d; --surface3:#30363d;\n\t\t\t--border:#30363d; --text:#e6edf3; --text2:#8b949e; --text3:#6e7681;\n\t\t\t--blue:#58a6ff; --green:#3fb950; --orange:#d2991d; --red:#f85149;\n\t\t\t--purple:#a371f7; --pink:#db61a2; --teal:#39d353;\n\t\t\t--radius:16px; --radius-sm:10px\n\t\t}\n\t\thtml{font-size:15px}\n\t\tbody{\n\t\t\tfont-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',sans-serif;\n\t\t\tbackground:var(--bg); color:var(--text); min-height:100vh; min-height:100dvh;\n\t\t\t-webkit-tap-highlight-color:transparent; -webkit-user-select:none; user-select:none\n\t\t}\n\t\t.shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}\n\t\t.topbar{\n\t\t\tdisplay:flex; justify-content:space-between; align-items:center;\n\t\t\tpadding:12px 16px; background:var(--surface); border-bottom:1px solid var(--border);\n\t\t\tposition:sticky; top:0; z-index:100\n\t\t}\n\t\t.topbar-left{display:flex;align-items:center;gap:10px}\n\t\t.logo-icon{\n\t\t\twidth:32px;height:32px;border-radius:8px;background:var(--blue);\n\t\t\tdisplay:flex;align-items:center;justify-content:center;\n\t\t\tfont-weight:700;font-size:16px;color:#fff\n\t\t}\n\t\t.logo-text{font-weight:600;font-size:18px;color:var(--text)}\n\t\t.topbar-right{display:flex;align-items:center;gap:8px}\n\t\t.icon-btn{\n\t\t\twidth:36px;height:36px;border-radius:50%;border:none;background:transparent;\n\t\t\tcolor:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;\n\t\t\ttransition:all 0.15s\n\t\t}\n\t\t.icon-btn:hover{background:var(--surface2);color:var(--text)}\n\t\t.avatar{\n\t\t\twidth:40px;height:40px;border-radius:50%;background:var(--purple);\n\t\t\tdisplay:flex;align-items:center;justify-content:center;\n\t\t\tfont-weight:600;font-size:15px;color:#fff;flex-shrink:0\n\t\t}\n\t\t.avatar.sm{width:32px;height:32px;font-size:13px}\n\t\t.content{flex:1;padding:24px 16px;max-width:900px;margin:0 auto;width:100%}\n\t\t.greeting{display:flex;align-items:center;gap:12px;margin-bottom:24px}\n\t\t@media(min-width:600px){.greeting{margin-bottom:32px}}\n\t\t.greeting-text h1{font-size:1.25rem;font-weight:600;color:var(--text);line-height:1.3}\n\t\t.greeting-text p{color:var(--text2);font-size:0.85rem;margin-top:2px}\n\n\t\t/* App Grid */\n\t\t.app-grid{\n\t\t\tdisplay:grid;\n\t\t\tgrid-template-columns:repeat(3,1fr);\n\t\t\tgap:20px 10px; padding:8px 0\n\t\t}\n\t\t@media(min-width:600px){.app-grid{grid-template-columns:repeat(4,1fr);gap:24px 14px}}\n\t\t@media(min-width:900px){.app-grid{grid-template-columns:repeat(6,1fr);gap:28px 16px}}\n\n\t\t/* App Card */\n\t\t.app-card{\n\t\t\tdisplay:flex; flex-direction:column; align-items:center; gap:6px;\n\t\t\tcursor:pointer; text-decoration:none; color:inherit; padding:8px 4px;\n\t\t\tborder-radius:12px; transition:all 0.15s; -webkit-tap-highlight-color:transparent\n\t\t}\n\t\t.app-card:active{transform:scale(0.92)}\n\t\t.app-card:hover{background:rgba(255,255,255,0.03)}\n\t\t.app-card .app-icon{\n\t\t\twidth:56px;height:56px;border-radius:14px;\n\t\t\tdisplay:flex;align-items:center;justify-content:center;flex-shrink:0\n\t\t}\n\t\t@media(min-width:600px){.app-card .app-icon{width:64px;height:64px;border-radius:16px}}\n\t\t.app-card .app-icon svg{width:28px;height:28px}\n\t\t@media(min-width:600px){.app-card .app-icon svg{width:32px;height:32px}}\n\t\t.app-card .app-name{\n\t\t\tfont-size:0.72rem;font-weight:400;color:var(--text);text-align:center;\n\t\t\tline-height:1.2;max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap\n\t\t}\n\t\t@media(min-width:600px){.app-card .app-name{font-size:0.78rem}}\n\t\t.app-card .app-badge{display:none}\n\t\t.app-card.disabled{opacity:0.35;cursor:default}\n\t\t.app-card.disabled:active{transform:none}\n\n\t\t/* Overlay & Modal */\n\t\t.overlay{\n\t\t\tposition:fixed;inset:0;background:rgba(0,0,0,0.7);z-index:1000;\n\t\t\tdisplay:flex;align-items:center;justify-content:center;\n\t\t\tbackdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px)\n\t\t}\n\t\t.modal{\n\t\t\tbackground:var(--surface); border:1px solid var(--border);\n\t\t\tborder-radius:var(--radius); width:92%; max-width:420px; max-height:85vh; overflow-y:auto\n\t\t}\n\t\t.modal-head{\n\t\t\tdisplay:flex;justify-content:space-between;align-items:center;\n\t\t\tpadding:18px 20px 12px\n\t\t}\n\t\t.modal-head h2{font-size:1.1rem;font-weight:600}\n\t\t.modal-body{padding:0 20px 20px}\n\t\t.close-btn{\n\t\t\twidth:32px;height:32px;border-radius:50%;border:none;background:transparent;\n\t\t\tcolor:var(--text2);font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center\n\t\t}\n\t\t.modal-body h3{font-size:0.85rem;font-weight:600;color:var(--text2);margin:14px 0 6px;text-transform:uppercase;letter-spacing:0.5px}\n\t\t.modal-body ol{padding-left:18px}\n\t\t.modal-body li{font-size:0.85rem;color:var(--text);margin-bottom:4px;line-height:1.5}\n\t\t.modal-body code{background:var(--surface2);padding:1px 5px;border-radius:4px;font-size:0.8rem}\n\t\t.modal-body .btn{\n\t\t\tdisplay:block;width:100%;padding:12px;margin-top:16px;border:none;border-radius:var(--radius-sm);\n\t\t\tbackground:var(--blue);color:#fff;font-size:0.9rem;font-weight:600;cursor:pointer;text-align:center\n\t\t}\n\t\t.modal-body .btn:hover{opacity:0.9}\n\t</style>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
return nil
})
}
// --- Helpers ---
func initials(name string) string {
if name == "" {
return "?"
}
if len(name) == 1 {
return name
}
return string(name[0])
}
func timeOfDay() string {
// Simple: always show "morning" for now
return "morning"
}
// --- PWA Instructions ---
func pwaInstructions() templ.Component {
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
return templ_7745c5c3_CtxErr
}
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
if !templ_7745c5c3_IsBuffer {
defer func() {
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
if templ_7745c5c3_Err == nil {
templ_7745c5c3_Err = templ_7745c5c3_BufErr
}
}()
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var9 := templ.GetChildren(ctx)
if templ_7745c5c3_Var9 == nil {
templ_7745c5c3_Var9 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "<h3>Desktop Chrome/Edge</h3><ol><li>Click the <code>⊕</code> icon in the address bar</li><li>Click <strong>Install</strong></li></ol><h3>iOS Safari</h3><ol><li>Tap <strong>Share</strong> <code>⎋</code></li><li>Tap <strong>Add to Home Screen</strong></li></ol><h3>Android Chrome</h3><ol><li>Tap <strong>⋮</strong> menu</li><li>Tap <strong>Install app</strong></li></ol><button class=\"btn\" onclick=\"closePWA()\">Got it</button>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
return nil
})
}
// --- JavaScript ---
func launcherJS() templ.Component {
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
return templ_7745c5c3_CtxErr
}
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
if !templ_7745c5c3_IsBuffer {
defer func() {
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
if templ_7745c5c3_Err == nil {
templ_7745c5c3_Err = templ_7745c5c3_BufErr
}
}()
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var10 := templ.GetChildren(ctx)
if templ_7745c5c3_Var10 == nil {
templ_7745c5c3_Var10 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "<script type=\"text/javascript\">\n\t\tlet longPressTimer = null;\n\t\tlet currentUrl = null;\n\n\t\tfunction openApp(url) {\n\t\t\twindow.open(url, '_blank');\n\t\t}\n\n\t\tfunction startLongPress(e, url) {\n\t\t\tcurrentUrl = url || null;\n\t\t\tlongPressTimer = setTimeout(function() {\n\t\t\t\tshowPWA();\n\t\t\t}, 600);\n\t\t}\n\n\t\tfunction cancelLongPress() {\n\t\t\tif (longPressTimer) {\n\t\t\t\tclearTimeout(longPressTimer);\n\t\t\t\tlongPressTimer = null;\n\t\t\t}\n\t\t}\n\n\t\tfunction showPWA() {\n\t\t\tdocument.getElementById('pwa-overlay').style.display = 'flex';\n\t\t}\n\n\t\tfunction closePWA() {\n\t\t\tdocument.getElementById('pwa-overlay').style.display = 'none';\n\t\t}\n\n\t\t// PWA install handler\n\t\tlet deferredPrompt = null;\n\t\twindow.addEventListener('beforeinstallprompt', function(e) {\n\t\t\te.preventDefault();\n\t\t\tdeferredPrompt = e;\n\t\t});\n\n\t\t// Override showPWA to try native prompt first\n\t\tdocument.addEventListener('DOMContentLoaded', function() {\n\t\t\tvar origShowPWA = showPWA;\n\t\t\tshowPWA = function() {\n\t\t\t\tif (deferredPrompt) {\n\t\t\t\t\tdeferredPrompt.prompt();\n\t\t\t\t\tdeferredPrompt.userChoice.then(function() { deferredPrompt = null; });\n\t\t\t\t} else {\n\t\t\t\t\torigShowPWA();\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\t</script>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
return nil
})
}
var _ = templruntime.GeneratedTemplate