root = Card([header, oee, units, lines, defectChart, downtimeChart, maintenance, stock, deliveries, shifts, safety, quality, energy, workOrders, scheduleForm, lineFocus, andon, exportButtons])

header = CardHeader("Factory Floor Supervisor Console")
oee = Card([CardHeader("Overall Equipment Effectiveness"), TextContent("85%", "large")], "sunk")
units = Card([CardHeader("Units Produced vs Target"), TextContent("12,340 / 12,000", "large")])
lines = Card([CardHeader("Production Lines"), ListBlock(items: [lineA, lineB, lineC], variant: "number")])
defectLabels = ["W1","W2","W3","W4","W5","W6","W7","W8","W9","W10","W11","W12"]
defectSeries = Series("Defects", [2,1.5,2.5,3,2,1,2,3,2.5,2,1.5,2])
defectChart = LineChart(labels: defectLabels, series: [defectSeries], "natural", "Week", "Defect Rate (%)")
downtimeLabels = ["Mechanical","Electrical","Material","Other"]
downtimeValues = [120,80,50,30]
downtimeChart = PieChart(labels: downtimeLabels, values: downtimeValues)
maintenance = Card([CardHeader("Machines Due for Maintenance"), ListBlock(items: [maintItem1, maintItem2], variant: "number")])
steelItem = ListItem("Steel", "5,000 kg")
resinItem = ListItem("Resin", "2,500 kg")
packagingItem = ListItem("Packaging", "10,000 units")
stock = Card([CardHeader("Inventory Stock"), ListBlock(items: [steelItem, resinItem, packagingItem], variant: "number")])
deliveryItem1 = ListItem("Acme Metals", "2025-10-02")
deliveryItem2 = ListItem("ResinCo", "2025-10-04")
deliveryItem3 = ListItem("PackSup", "2025-10-06")
deliveries = Card([CardHeader("Supplier Deliveries This Week"), ListBlock(items: [deliveryItem1, deliveryItem2, deliveryItem3], variant: "number")])
shiftItem1 = ListItem("Morning", "1,200 units - On schedule")
shiftItem2 = ListItem("Afternoon", "1,050 units - Slight delay")
shiftItem3 = ListItem("Night", "950 units - On schedule")
shifts = Card([CardHeader("Shift Output Comparison"), ListBlock(items: [shiftItem1, shiftItem2, shiftItem3], variant: "number")])
safetyText1 = TextContent("5 incidents this year", "large")
safetyText2 = TextContent("45 days since last", "large")
safety = Card([CardHeader("Safety Incidents"), safetyText1, safetyText2])
quality = Card([CardHeader("Quality Hold Batches"), ListBlock(items: [batchItem1, batchItem2], variant: "number")])
batchItem1 = TextContent("Batch #1023 - QC hold", "default")
batchItem2 = TextContent("Batch #1024 - QC hold", "default")
energy = Card([CardHeader("Energy Use Today"), TextContent("23,450 kWh", "large")])
workOrders = Card([CardHeader("Open Work Orders"), ListBlock(items: [woItem1, woItem2, woItem3], variant: "number")])
woItem1 = TextContent("Order #001 - High priority", "default")
woItem2 = TextContent("Order #002 - Medium priority", "default")
woItem3 = TextContent("Order #003 - Low priority", "default")
scheduleForm = Form("schedule-form", formButtons, [machineControl, dateControl])
machineControl = FormControl("Machine", machineInput)
machineInput = Input("machine", "Machine X", "text")
datePicker = DatePicker("date", "single", null, ["2025-10-01"])
formButtons = Buttons([submitBtn, cancelBtn])
submitBtn = Button("Save", null, "primary")
cancelBtn = Button("Cancel", null, "tertiary")
lineFocus = Card([CardHeader("Focus on Line"), lineFocusCallout])
lineFocusCallout = TextCallout(variant: "info", title: "Select a line to view details", description: null)
andon = Card([CardHeader("Live Andon Alerts"), andonCallout])
andonCallout = TextCallout(variant: "warning", title: "Machine Y down", description: "Check equipment")
exportBtn = Button("Export Shift Report", null, "secondary")
exportButtons = Buttons([exportBtn])