root = Card([header, missingMetric, blockedSection, updatesHeader, teamCards, postForm])
header = CardHeader("Async Standup", "December 15, 2024")
missingMetric = SnippetCardBlock([missingItem], "grid", true)
missingItem = SnippetCardItem("missing-count", missingLhs, missingRhs)
missingLhs = IconText(missingIcon, "warning", "m", "Updates Missing", "3 of 6 teammates haven't posted", false, "horizontal")
missingIcon = Icon("alert-circle", "alerts")
missingRhs = BoldText("number", "3", "pending", "metric")
blockedSection = SectionBlock([blockedSectionItem], false)
blockedSectionItem = SectionItem("blocked", "🚨 Blocked Teammates (2)", [blockedCards])
blockedCards = CompositeCardBlock([blockedCard1, blockedCard2], "grid", true)
blockedCard1 = CompositeCardItem("blocked-sarah", blockedHeader1, [blockedBody1, blockedTags1], { price: blockedPrice1 })
blockedHeader1 = IconText(blockedIcon1, "danger", "m", "Sarah Chen", "Senior Engineer · Platform", true, "horizontal")
blockedIcon1 = Icon("user", "people")
blockedBody1 = Text("text", "Waiting on API credentials from DevOps to deploy the new auth service. Ticket #4421 escalated.", "Blocked since 9:15 AM")
blockedTags1 = TagBlock(["Backend", "Dependencies"])
blockedPrice1 = MetricIndicatorWithStrikethrough("⏱ 2h 45m blocked", "Escalated to #devops-channel")
blockedCard2 = CompositeCardItem("blocked-marcus", blockedHeader2, [blockedBody2, blockedTags2], { price: blockedPrice2 })
blockedHeader2 = IconText(blockedIcon2, "danger", "m", "Marcus Johnson", "Product Designer · Growth", true, "horizontal")
blockedIcon2 = Icon("user", "people")
blockedBody2 = Text("text", "Design system v3 components missing for new onboarding flow. Need review from design ops.", "Blocked since 11:30 AM")
blockedTags2 = TagBlock(["Design", "Review Needed"])
blockedPrice2 = MetricIndicatorWithStrikethrough("⏱ 1h 15m blocked", "Tagged @design-ops in Figma")
updatesHeader = InlineHeader("Today's Updates", "4 of 6 teammates have posted")
teamCards = CompositeCardBlock([card1, card2, card3, card4], "grid", true)
card1 = CompositeCardItem("alex", header1, [body1, tags1], { price: price1 })
header1 = IconText(icon1, "success", "m", "Alex Rivera", "Engineering Lead · Core", true, "horizontal")
icon1 = Icon("user-check", "people")
body1 = Text("text", "✅ Shipped the rate-limiting middleware to staging. Running load tests this afternoon. 📝 Reviewing PR #3341 for the caching layer. 🎯 Goal: Merge caching PR and promote rate-limiting to prod by EOD.", "Posted 8:42 AM")
tags1 = TagBlock(["Backend", "Infrastructure", "On Track"])
price1 = MetricIndicatorWithStrikethrough("🟢 All clear", "No blockers")
card2 = CompositeCardItem("priya", header2, [body2, tags2], { price: price2 })
header2 = IconText(icon2, "success", "m", "Priya Patel", "Full Stack Engineer · Web", true, "horizontal")
icon2 = Icon("user-check", "people")
body2 = Text("text", "✅ Fixed the mobile layout bug on the dashboard (Safari flexbox issue). 📝 Writing unit tests for the new chart components. 🎯 Goal: Finish tests and deploy dashboard fix to production.", "Posted 9:05 AM")
tags2 = TagBlock(["Frontend", "Testing", "On Track"])
price2 = MetricIndicatorWithStrikethrough("🟢 All clear", "No blockers")
card3 = CompositeCardItem("james", header3, [body3, tags3], { price: price3 })
header3 = IconText(icon3, "success", "m", "James Okonkwo", "DevOps Engineer · Platform", true, "horizontal")
icon3 = Icon("user-check", "people")
body3 = Text("text", "✅ Completed the Kubernetes 1.29 upgrade on staging cluster. 📝 Preparing runbook for production rollout tomorrow. 🎯 Goal: Finalize rollback plan and get approval for prod window.", "Posted 10:12 AM")
tags3 = TagBlock(["DevOps", "Kubernetes", "On Track"])
price3 = MetricIndicatorWithStrikethrough("🟢 All clear", "No blockers")
card4 = CompositeCardItem("lisa", header4, [body4, tags4], { price: price4 })
header4 = IconText(icon4, "success", "m", "Lisa Zhang", "QA Engineer · Core", true, "horizontal")
icon4 = Icon("user-check", "people")
body4 = Text("text", "✅ Automated the regression suite for the new auth flow — 47 tests passing. 📝 Exploratory testing on the rate-limiting feature. 🎯 Goal: Sign off on auth flow for staging promotion.", "Posted 10:30 AM")
tags4 = TagBlock(["QA", "Automation", "On Track"])
price4 = MetricIndicatorWithStrikethrough("🟢 All clear", "No blockers")
postForm = Form("standup-update", formButtons, [fcUpdate, fcBlocked, fcFocus])
formButtons = Buttons([btnPost, btnSkip], "row")
btnPost = Button("Post Update", { type: "continue_conversation", context: "Post my standup update with the form data" }, "primary")
btnSkip = Button("Cancel", { type: "continue_conversation", context: "Cancel posting standup update" }, "tertiary")
fcUpdate = FormControl("Your Update", updateArea, "What did you complete? What's next? Any blockers?")
updateArea = TextArea("update-text", "✅ Completed...\n📝 In progress...\n🎯 Today's goal...\n🚨 Blockers...", 6, { required: true })
fcBlocked = FormControl("Blocked?", blockedChips, "Are you currently blocked on anything?")
blockedChips = Chips("blocked-status", "single", [chipNo, chipYes], { required: true }, "no")
chipNo = ChipItem("no", "No, I'm unblocked", chipNoIcon)
chipNoIcon = Icon("circle-check", "shapes")
chipYes = ChipItem("yes", "Yes, I'm blocked", chipYesIcon)
chipYesIcon = Icon("alert-triangle", "alerts")
fcFocus = FormControl("Focus Area", focusSelect, "Which area does your work primarily touch today?")
focusSelect = Select("focus-area", [optEng, optDesign, optQA, optOps, optProduct, optOther], "Select focus area", { required: true })
optEng = SelectItem("engineering", "Engineering")
optDesign = SelectItem("design", "Design")
optQA = SelectItem("qa", "QA / Testing")
optOps = SelectItem("ops", "DevOps / Infrastructure")
optProduct = SelectItem("product", "Product")
optOther = SelectItem("other", "Other")