root = Card([header, kpiSection, priorityFilter, recentTickets, newTicketAction])
header = CardHeader("Support Dashboard", "Morning overview")
kpiSection = Card([kpiHeading, kpiTable], "sunk")
kpiHeading = Heading("Key metrics", "h3")
kpiTable = Table([kpiName, kpiValue])
kpiName = Col("Metric", ["Open tickets", "Average first-response time"])
kpiValue = Col("Value", ["24", "1h 42m"])
priorityFilter = Card([filterHeading, filterButtons], "sunk")
filterHeading = Heading("Filter tickets", "h4")
filterButtons = Buttons([allBtn, highBtn])
allBtn = Button("All priorities", null, "secondary")
highBtn = Button("High priority only", null, "primary")
recentTickets = Card([recentHeading, ticketsTable])
recentHeading = Heading("Five most recent tickets", "h3")
ticketsTable = Table([ticketId, ticketSubject, ticketPriority])
ticketId = Col("ID", ["#4821", "#4820", "#4819", "#4818", "#4817"])
ticketSubject = Col("Subject", ["Login loop on iOS", "Billing invoice mismatch", "Export fails with large data", "SSO setup for new domain", "Password reset not arriving"])
ticketPriority = Col("Priority", ["High", "Medium", "Low", "High", "Low"])
newTicketAction = Card([newTicketHeading, newTicketButtons])
newTicketHeading = Heading("Open a new ticket", "h4")
newTicketButtons = Buttons([newTicketBtn])
newTicketBtn = Button("New ticket", null, "primary")