root = Card([appointmentsCard, expectedCountText, noShowCallout, freeRooms, nextPatientCallout, checkInButton, dayNavButton])
appointmentsHeader = CardHeader("Today's appointments")
appointmentsTable = Table([Col("Time", ["10:00","10:30","11:00"], "string"), Col("Patient", ["Alice","Bob","Charlie"], "string")])
timeCol = Col("Time", ["10:00","10:30","11:00"], "string")
patientCol = Col("Patient", ["Alice","Bob","Charlie"], "string")
appointmentsCard = Card([appointmentsHeader, appointmentsTable])
expectedCountText = TextContent("3 patients expected", "default")
noShowCallout = TextCallout("warning", "No-show rate", "5%")
roomItem1 = ListItem("Room 1", "Free")
roomItem2 = ListItem("Room 2", "Occupied")
roomItem3 = ListItem("Room 3", "Free")
freeRooms = ListBlock([roomItem1, roomItem2, roomItem3])
nextPatientCallout = Callout("info", "Next patient", "Bob at 10:30")
checkInButton = Button("Check in")
dayNavButton = Button("Next Day")