shadcn.io is not affiliated with official shadcn/ui
Project Standup Chat Block for Radix UI
A stand-up bot asks Yesterday, Today and Blockers in turn, the field follows the step, and each answer fills a board of cards that can be copied as Markdown.
Installation
Overview
Run a daily stand-up in a conversation, with this project standup chat for React with Radix UI. A hairline frame with a plus mark on each corner holds a window of fixed height for Standline, a stand-up bot: Standline Bot, marked with a Bot word, asks three questions one at a time in Message and Bubble rows, a strip of three steps above the field shows where you are, and the field's label and placeholder follow the step ("Yesterday I...", "Today I will...", "Blocked by..."). At the end sits Today's board with three lists; each answer posts in the thread and adds your card to the board next to four teammates' typed cards, "Posted 4 of 5" counts everyone who has answered all three, and a Blockers card is marked with a glyph and the word "Blocked" unless the answer is "none". "Copy summary" really copies the board as Markdown. The composer's Shine Button is the only colored control, and on a phone a Toggle Group switches between Chat and Board. The frame is ruled by Guides, and everything moves with CSS only. It's the starting point for a stand-up bot, a check-in or any guided conversation that fills a record.
FAQ
How does the field follow the step?
The step is the number of answers you have given, so STEPS.at(answers) gives the label, the placeholder and the question the bot asked. The strip is a list with the current step marked aria-current="step" and done steps ticked. After the third answer the field becomes a plain message field and the bot closes the stand-up.
How is the board derived?
Teammates' answers are typed in TEAM; yours come from state. cardsOf builds each list from both, postedOf counts the people with all three answers, and a card is Blocked when it is in the Blockers list and its text does not start with none, no, nothing or n/a. The same function feeds the board, the count and the Markdown, so they never disagree.
What does Copy summary copy?
A real Markdown document: a title, then Yesterday, Today and Blockers headings each with one line per person, and "(blocked)" after a blocker. If the browser refuses the clipboard, the status line says so. Replace the summary with a call to your tracker if you want it posted.