root = Card([header, onTimePerformance, flightTable, delayedFlights, gateChanges, crewsAvailable, weatherAdvisories, avgLoad, connectionsAtRisk, rebookBtn, hubSwitchBtn, cancellationsTable, avgTurnaround])
header = CardHeader("Airline Hub Operations", null)
onTimePerformance = TextContent("On-time performance today: 92%", "large")
flightNumberCol = Col("Flight", ["AA123", "DL456", "UA789", "AA101", "DL202"], "string")
routeCol = Col("Route", ["JFK-LAX", "ORD-ATL", "SEA-DFW", "MIA-BOS", "DFW-ORD"], "string")
gateCol = Col("Gate", ["A12", "B3", "C5", "D7", "E9"], "string")
statusCol = Col("Status", ["On-time", "Delayed", "On-time", "On-time", "Delayed"], "string")
flightTable = Table([flightNumberCol, routeCol, gateCol, statusCol])
delayedFlights = Callout("warning", "Delayed Flights", "AA123 (JFK-LAX) Gate A12, DL456 (ORD-ATL) Gate B3, UA789 (SEA-DFW) Gate C5")
gateChanges = ListBlock(items: [ListItem("AA123: Gate A14", null, null, null), ListItem("DL456: Gate B2", null, null, null), ListItem("UA789: Gate C8", null, null, null)])
crewsAvailable = ListBlock(items: [ListItem("Captain Smith", "Available", null, null), ListItem("First Officer Jane", "Available", null, null), ListItem("Dispatcher Alex", "Available", null, null)])
weatherAdvisories = ListBlock(items: [ListItem("Strong crosswinds", "Gusts up to 30kt", null, null), ListItem("Low visibility", "Fog at terminal", null, null), ListItem("High temperature", "38°C", null, null)])
avgLoad = Progress(value:85, label:"Avg passenger load")
connectionsAtRisk = ListBlock(items: [ListItem("AA123 → DL456", "Missed connection risk", null, null), ListItem("UA789 → AA101", "Missed connection risk", null, null)])
rebookBtn = Button("Rebook Affected Passengers", null, "primary")
hubSwitchBtn = Button("View Different Hub", null, "secondary")
cancellationCol = Col("Cancelled", ["Yes", "No", "Yes", "No", "No"], "string")
flightCol = Col("Flight", ["AA123", "DL456", "UA789", "AA101", "DL202"], "string")
gateCol2 = Col("Gate", ["A12", "B3", "C5", "D7", "E9"], "string")
statusCol2 = Col("Status", ["Cancelled", "On-time", "Delayed", "On-time", "On-time"], "string")
cancellationsTable = Table([cancellationCol, flightCol, gateCol2, statusCol2])
avgTurnaround = TextContent("Avg turnaround time: 45 min", "large")