root = Card([header, summary, missingCallout, blockedCallout, teamHeading, teamTable, postHeading, standupForm], "card", "column", "l")
header = CardHeader("Async Standup", "Tuesday, June 10, 2025 · Remote team of 8")
summary = Progress(5, "5 of 8 updates submitted")
missingCallout = Callout("info", "3 updates still missing", "Waiting on Omar, Emily, and Jake to check in today.")
blockedCallout = Callout("warning", "Blocked teammates", "Alex Chen needs API credentials from IT. Priya Patel is waiting on client feedback for Q3 scope.")
teamHeading = Heading("Today's updates", "h2")
teamTable = Table([nameCol, updateCol, blockedCol])
nameCol = Col("Teammate", ["Alex Chen", "Priya Patel", "Sofia Ruiz", "Marcus Lee", "Nina Kowalski", "Omar Haddad", "Emily Zhang", "Jake Miller"])
updateCol = Col("Status update", ["Waiting on API credentials from IT — can't start migration.", "Awaiting client feedback on Q3 scope.", "Shipped checkout improvements; running e2e tests.", "Drafted Postgres migration plan; reviewing edge cases.", "Fixed customer report bug; deployed to staging.", "No update yet", "No update yet", "No update yet"])
blockedCol = Col("Blocked?", ["Yes", "Yes", "No", "No", "No", "—", "—", "—"])
postHeading = Heading("Post your update", "h2")
standupForm = Form("standup-update", postButtons, [nameField, workField, blockersField])
nameField = FormControl("Your name", nameInput, "So your team knows who this is")
nameInput = Input("name", "Your name")
workField = FormControl("What did you work on?", workInput)
workInput = TextArea("work_done", "e.g. Fixed login bug, reviewed PR #412", 3)
blockersField = FormControl("Any blockers?", blockersInput, "Leave blank if clear")
blockersInput = TextArea("blockers", "e.g. Waiting on access to Figma", 2)
postButtons = Buttons([postBtn, cancelBtn])
postBtn = Button("Post update", null, "primary")
cancelBtn = Button("Cancel", null, "tertiary")