package main import ( "bytes" "context" "git.dev.alexdunmow.com/block/core/templates" ) // Y2KEmailWrapper wraps body content in a Y2K-branded email shell: // // - Centred 600px chrome-bordered card on a near-black background. // - Magenta-to-teal gradient header bar. // - Inter Tight body (with system fallback). // - Plain marquee pill footer. // // All colours are sourced from emailCtx.Colors when present, falling back to // HSL token-equivalent hex values that match the chrome-dream dark preset. func Y2KEmailWrapper(body string, emailCtx templates.EmailContext) string { var buf bytes.Buffer _ = y2kEmailTemplate(emailCtx, body).Render(context.Background(), &buf) return buf.String() } // Resolved palette per render — these helpers translate the preset HSL triples // to email-safe hex via theme tokens, with fallbacks aligned to the // chrome-dream dark preset. func y2kEmailBg(emailCtx templates.EmailContext) string { if emailCtx.Colors.Background != "" { return emailCtx.Colors.Background } return "#0c0820" // chrome-dream dark background equivalent } func y2kEmailCard(emailCtx templates.EmailContext) string { if emailCtx.Colors.Card != "" { return emailCtx.Colors.Card } return "#150f2a" } func y2kEmailFg(emailCtx templates.EmailContext) string { if emailCtx.Colors.Foreground != "" { return emailCtx.Colors.Foreground } return "#f4e8fa" } func y2kEmailMuted(emailCtx templates.EmailContext) string { if emailCtx.Colors.Muted != "" { return emailCtx.Colors.Muted } return "#1f1740" } func y2kEmailMutedFg(emailCtx templates.EmailContext) string { if emailCtx.Colors.MutedForeground != "" { return emailCtx.Colors.MutedForeground } return "#b9a8d3" } func y2kEmailBorder(emailCtx templates.EmailContext) string { if emailCtx.Colors.Border != "" { return emailCtx.Colors.Border } return "#4d2b6f" } func y2kEmailPrimary(emailCtx templates.EmailContext) string { if emailCtx.Colors.Primary != "" { return emailCtx.Colors.Primary } return "#ff4dd2" } func y2kEmailSecondary(emailCtx templates.EmailContext) string { if emailCtx.Colors.Secondary != "" { return emailCtx.Colors.Secondary } return "#4ddff0" }