root = Card([header, stats, nextPatient, appointments, rooms, checkin, dayNav])
header = CardHeader("Receptionist Day View", "Tuesday, June 11")
stats = Card([statsHeading, statTable], "sunk")
statsHeading = Heading("Today at a Glance", "h3")
statTable = Table([statLabel, statValue])
statLabel = Col("Metric", ["Expected patients", "No-show rate (this month)"])
statValue = Col("Value", ["18", "12%"])
nextPatient = Callout("info", "Next patient called", "Alex Rivera — 10:30 AM, Room 2")
appointments = Card([apptHeading, apptTable], "sunk")
apptHeading = Heading("Today's Appointments", "h3")
apptTable = Table([timeCol, patientCol, roomCol, statusCol])
timeCol = Col("Time", ["9:00", "9:30", "10:00", "10:30", "11:00", "11:30", "13:00", "13:30"])
patientCol = Col("Patient", ["Jordan Lee", "Maya Patel", "Sam Chen", "Alex Rivera", "Taylor Kim", "Priya Nair", "Noah Williams", "Ava Brown"])
roomCol = Col("Room", ["1", "2", "1", "2", "3", "1", "2", "3"])
statusCol = Col("Status", ["Checked in", "Checked in", "In progress", "Called", "Waiting", "Waiting", "Waiting", "Waiting"])
rooms = Card([roomsHeading, roomList])
roomsHeading = Heading("Rooms Free Right Now", "h3")
roomList = ListBlock([roomFree1, roomFree2, roomFree3])
roomFree1 = ListItem("Room 3", "Free since 10:15 AM")
roomFree2 = ListItem("Room 4", "Free since 10:00 AM")
roomFree3 = ListItem("Room 5", "Free since 9:45 AM")
checkin = Card([checkinHeading, checkinForm])
checkinHeading = Heading("Check In a Patient", "h3")
checkinForm = Form("checkin", checkinButtons, [patientField, roomField])
patientField = FormControl("Patient name", patientInput)
patientInput = Input("patient_name", "Type patient name")
roomField = FormControl("Assign room", roomSelect)
roomSelect = Select("room", [room3Opt, room4Opt, room5Opt], "Choose a free room")
room3Opt = SelectItem("room3", "Room 3")
room4Opt = SelectItem("room4", "Room 4")
room5Opt = SelectItem("room5", "Room 5")
checkinButtons = Buttons([checkinBtn])
checkinBtn = Button("Check in patient", null, "primary")
dayNav = Card([dayNavHeading, dayNavButtons])
dayNavHeading = Heading("Move to Another Day", "h3")
dayNavButtons = Buttons([prevDayBtn, todayBtn, nextDayBtn])
prevDayBtn = Button("← Previous day", null, "secondary")
todayBtn = Button("Today", null, "secondary")
nextDayBtn = Button("Next day →", null, "secondary")