Docs / Tool calls /
ConversationRich
Rich conversation thread rendering mixed message types — user, assistant, and tool calls — in a single scrollable view.
Preview
Research session
Claude · sonnet-4-5
Based on the codebase analysis, the authentication flow uses 1 and short-lived JWTs refreshed via 2. The refresh logic lives in src/lib/auth/refresh.ts.
Variants
With sources
Web research
claude-sonnet-4-5 · 3 sources
Tailwind v4 introduces a new CSS-first configuration approach — no more tailwind.config.js. Design tokens are declared directly in CSS using @theme.
Compact tool list
Image attachment
Image analysis
The screenshot shows the dashboard with the metrics panel open. The layout uses a two-column grid with a sticky sidebar.
Dashboard · metrics panel open
dashboard-screenshot.png · 184 KB
Props
| Prop | Type | Description |
|---|---|---|
| title | string | Optional heading rendered in the card's header bar. |
| subtitle | string | Optional secondary line below the title — useful for model name or session info. |
| meta | React.ReactNode | Slot for right-aligned header content (e.g. action buttons or a status pill). |
| children* | React.ReactNode | Chat body content — prose, tool call rows, source pills, attachments, etc. |
| density | "comfortable" | "compact" | "comfortable" (default) uses larger padding and gap; "compact" tightens spacing for tool-call lists. |
| className | string | Extra classes for the outer section element. |
* required.
Usage
import {
ChatContainer,
SourcePillGroup,
InlineCopyButton,
} from "@/components/agent/conversation-rich";
<ChatContainer
title="Research session"
subtitle="claude-sonnet-4-5"
density="comfortable"
>
<p>Your response text here.</p>
<SourcePillGroup
sources={[
{ domain: "tailwindcss.com", label: "Tailwind v4 docs" },
]}
/>
<InlineCopyButton label="Copy response" />
</ChatContainer>