Agentic
Conversation
The thread with the agent: turns that scroll and follow the reply, an empty state, the composer docked under them, and an optional rail to jump between questions.
Usage
Anatomy
The parts and how they nest, taken from the preview above.
With the AI SDK
Key each turn by the message id. Mark the log busy while the reply streams.
With TanStack AI
Same shape: one turn per message, keyed by its id.
Examples
Empty state
Before the first turn, a start screen. A starter sends in one click, and the agent thinks, reads a file, and answers.
Recommendations
| Guidance | Practice |
|---|---|
| Do | Key each turn by its message id and pass the person's turns as Message from="user", so they settle near the top when sent. Set busy while a reply streams, and add navigation once threads get long. |
Usage boundaries
| Guidance | Boundary |
|---|---|
| Scope | The application sends messages and streams replies. Conversation lays out and scrolls the thread; it stores nothing. |
| Scope | Give it a parent with a bounded height, such as a full-height panel. It does not size the page. |
API reference
Public props from @mizen-labs/ui. Use exported prop types for the complete TypeScript contract.
| Prop | Type | Default | Description |
|---|---|---|---|
| | — | Holds the thread and the footer, and fills a parent with a bounded height. |
| | — | The turns, each with a key that is its id, and an optional ConversationEmptyState shown before the first one. A Message from the person settles near the top when sent. |
| | false | Marks the log busy while a reply streams, so assistive tech waits for it. |
| | false | Adds a MessageScrollerNavigation rail, one tick per question, to preview and jump to. |
| | — | The start screen before the first turn; Suggestions go in children. |
| | — | Holds the composer under the thread, in the thread's 48rem column. |