root = Card([header, dateNav, expectedBadge, statsRow, roomsSection, appointmentsSection, nextCallout, checkinSection, followups])
header = CardHeader("Reception Desk", "Day overview")
dateNav = Buttons([prevDay, todayBtn, nextDay])
prevDay = Button("← Previous day", null, "secondary")
todayBtn = Button("Today", null, "primary")
nextDay = Button("Next day →", null, "secondary")
expectedBadge = Tag("18 patients expected", null, "md", "info")
statsRow = Card([statsHeading, statsTable], "sunk")
statsHeading = Heading("Key stats", "h3")
statsTable = Table([statName, statValue])
statName = Col("Metric", ["No-show rate (this month)", "Checked in", "Waiting"])
statValue = Col("Value", ["6%", "9", "3"])
roomsSection = Card([roomsHeading, roomsList], "sunk")
roomsHeading = Heading("Rooms available now", "h3")
roomsList = ListBlock([roomA, roomB, roomC])
roomA = ListItem("Room 2", "Free", null, null)
roomB = ListItem("Room 4", "Free", null, null)
roomC = ListItem("Room 5", "Free", null, null)
appointmentsSection = Card([apptsHeading, apptsTable, apptsNote])
apptsHeading = Heading("Today's appointments", "h3")
apptsTable = Table([timeCol, patientCol, roomCol])
timeCol = Col("Time", ["09:00", "09:30", "10:00", "10:30", "11:00", "11:30", "13:00", "13:30", "14:00", "14:30", "15:00", "15:30", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30"])
patientCol = Col("Patient", ["Amelia Hart", "Noah Reed", "Olivia Grant", "Liam Park", "Emma Stone", "Mason Lee", "Sophia Brown", "Lucas King", "Ava Wilson", "Ethan Moore", "Mia Clark", "James Hall", "Isla Young", "Benjamin Scott", "Charlotte Adams", "Henry Baker", "Grace Nelson", "Daniel Carter"])
roomCol = Col("Room", ["1", "2", "3", "1", "4", "2", "3", "1", "5", "2", "4", "3", "1", "5", "2", "4", "3", "1"])
apptsNote = TextCallout("info", "Next up", "Amelia Hart at 09:00 — call out is below")
nextCallout = Callout("success", "Next patient", "Amelia Hart — please call to Room 1")
checkinSection = Card([checkinHeading, checkinForm])
checkinHeading = Heading("Check in a patient", "h3")
checkinForm = Form("checkin", checkinButtons, [nameField, timeField])
nameField = FormControl("Patient name", nameInput)
nameInput = Input("patient_name", "Search patient name")
timeField = FormControl("Appointment time", timeSelect)
timeSelect = Select("appt_time", [t09, t0930, t10], "Pick a time")
t09 = SelectItem("09:00", "09:00")
t0930 = SelectItem("09:30", "09:30")
t10 = SelectItem("10:00", "10:00")
checkinButtons = Buttons([checkinBtn])
checkinBtn = Button("Check in", null, "primary")
followups = FollowUpBlock([fu1, fu2])
fu1 = FollowUpItem("Show tomorrow's schedule")
fu2 = FollowUpItem("Who is waiting right now?")