root = Card([header, missingAlert, teamList, actions, formSection])
header = CardHeader("Async Standup — Tuesday, Mar 18", "Remote team daily updates")
missingAlert = Callout("warning", "3 updates still missing", "Jordan, Priya, and Sam haven't posted yet today.")
teamList = ListBlock([mayaItem, alexItem, jordanItem, priyaItem, samItem], "image")
mayaItem = ListItem("Maya Chen", "✅ Deployed v2.1 to staging; reviewing QA feedback. No blockers.", ["https://picsum.photos/seed/maya/80/80"], "View")
alexItem = ListItem("Alex Rivera", "🚧 Blocked on API rate limits from vendor — need escalation. ✅ Wrote integration tests.", ["https://picsum.photos/seed/alex/80/80"], "View")
jordanItem = ListItem("Jordan Lee", "⏳ Missing update — expected by 10:00 AM.", ["https://picsum.photos/seed/jordan/80/80"], "View")
priyaItem = ListItem("Priya Sharma", "⏳ Missing update — expected by 10:00 AM.", ["https://picsum.photos/seed/priya/80/80"], "View")
samItem = ListItem("Sam Okafor", "⏳ Missing update — expected by 10:00 AM.", ["https://picsum.photos/seed/sam/80/80"], "View")
blockedCallout = Callout("error", "Blocked teammate", "Alex is blocked on vendor API rate limits. Please follow up in #eng-vendor.")
actions = Buttons([viewBlockedBtn])
viewBlockedBtn = Button("View blockers", null, "secondary")
formSection = Card([formHeading, form], "sunk")
formHeading = Heading("Post your update", "h3")
form = Form("standup-update", formButtons, [statusField, blockerField])
statusField = FormControl("What did you work on?", statusInput)
statusInput = TextArea("status", "e.g. Shipped checkout flow, reviewed PRs...", 3)
blockerField = FormControl("Any blockers?", blockerInput, "Leave blank if none")
blockerInput = Input("blocker", "e.g. Waiting on credentials from IT")
formButtons = Buttons([submitBtn])
submitBtn = Button("Post update", null, "primary")