package main import ( "bytes" "context" "git.dev.alexdunmow.com/block/core/blocks" ) // BigCTABlockMeta defines metadata for the oversized CTA block. var BigCTABlockMeta = blocks.BlockMeta{ Key: "big_cta", Title: "Big CTA", Description: "Oversized pill button with crayon underline.", Category: blocks.CategoryContent, Source: "kindergarten", } // BigCTAData is the renderer input. type BigCTAData struct { Label string Href string ColorVariant string } // BigCTABlock renders the oversized pill button. // Content shape: {label,href,colorVariant}. func BigCTABlock(ctx context.Context, content map[string]any) string { color := getStringDefault(content, "colorVariant", "yellow") switch color { case "red", "blue", "yellow", "green": default: color = "yellow" } data := BigCTAData{ Label: getString(content, "label"), Href: getStringDefault(content, "href", "#"), ColorVariant: color, } var buf bytes.Buffer _ = bigCTAComponent(data).Render(ctx, &buf) return buf.String() }