root = Card([header, kpiSection, trafficSection, campaignsSection, subscriberSection, exportSection], "card", "column", "l")
header = CardHeader("Marketing Dashboard", "Weekly overview")
kpiSection = Card([kpiHeading, kpiTable], "sunk")
kpiHeading = Heading("Key Metrics", "h3")
kpiTable = Table([kpiMetric, kpiValue])
kpiMetric = Col("Metric", ["Site Visitors (30d)", "Conversion Rate", "Email Subscribers (this month)"])
kpiValue = Col("Value", ["48,210", "3.2%", "+1,245"])
trafficSection = Card([trafficHeading, trafficChart], "sunk")
trafficHeading = Heading("Top Traffic Sources", "h3")
trafficChart = HorizontalBarChart(["Organic Search", "Direct", "Social", "Referral", "Email"], [trafficSeries], "grouped", "Share (%)", "Source")
trafficSeries = Series("Share", [42, 25, 18, 10, 5])
campaignsSection = Card([campaignsHeading, campaignsTable, bestCampaign], "sunk")
campaignsHeading = Heading("Running Campaigns", "h3")
campaignsTable = Table([campaignName, campaignSpend])
campaignName = Col("Campaign", ["Summer Launch", "Product Demo", "Holiday Promo", "Newsletter Blast", "Retargeting"])
campaignSpend = Col("Spend", ["$12,400", "$9,800", "$7,200", "$5,600", "$4,100"])
bestCampaign = Callout("success", "Top Performer", "Summer Launch is the best performing campaign with a 4.8% conversion rate and $12,400 spend.")
subscriberSection = Card([subscriberHeading, subscriberChart], "sunk")
subscriberHeading = Heading("Email Subscriber Growth", "h3")
subscriberChart = LineChart(["Week 1", "Week 2", "Week 3", "Week 4"], [subscriberSeries], "linear", "Week", "Subscribers")
subscriberSeries = Series("Subscribers", [250, 310, 380, 305])
exportSection = Card([exportHeading, exportButtons], "clear")
exportHeading = Heading("Export Report", "h3")
exportButtons = Buttons([exportBtn, dateRangeBtn])
exportBtn = Button("Export Report")
dateRangeBtn = Button("Change Date Range", null, "secondary")