diff --git a/apps/ui/content/docs/(root)/chat.mdx b/apps/ui/content/docs/(root)/chat.mdx index a9b948e37..12e6f9dcd 100644 --- a/apps/ui/content/docs/(root)/chat.mdx +++ b/apps/ui/content/docs/(root)/chat.mdx @@ -167,14 +167,14 @@ Import components directly from their files. There is no required global chat pr | Area | Components | Responsibility | | --- | --- | --- | | Conversation | `ChatConversation`, `useChatScroll` | Scroll viewport, end following, jump to latest, overlay slot | -| Message | `ChatMessage` | Incoming/outgoing row, avatar, author, grouping, actions, reactions, footer | +| Message | `ChatMessage`, `ChatMessageTimestamp` | Incoming/outgoing row, avatar, author, grouping, actions, reactions, footer, timestamp | | Surfaces | `ChatMessageBubble`, `ChatBubble`, `ChatMessageLayout` | Standalone previews and custom row compositions | -| Content | `ChatMessageText`, `ChatCollapsibleMessage`, `ChatReplyReference` | Mention emphasis, long text, quoted message navigation | +| Content | `ChatMessageText`, `ChatMessageMarkdown`, `ChatCollapsibleMessage`, `ChatReplyReference` | Mention emphasis, Markdown prose, long text, quoted message navigation | | Composer | `Composer`, `ComposerInput`, `ComposerPopup`, `ComposerList`, `ComposerItem`, `ComposerSubmit` | Shared coss Composer: structured draft, send, adaptive layout, and mentions | | Actions | `ChatMessageActionToolbar`, `ChatReactionPicker`, `ChatReactionChip` | Reply/menu controls, emoji selection, reactor list | | Focused reply | `ChatReplyPreview` | Move the selected message above the composer, dim the timeline, cancel/exit | | Timeline | `ChatDatePill`, `ChatUnreadDivider`, `ChatJumpToLatestButton` | Sticky date markers, unread boundary, latest navigation | -| Activity | `ChatTypingIndicator`, `ChatDeliveryIndicator` | Typing and delivery presentation | +| Activity | `ChatTypingIndicator`, `ChatDeliveryIndicator`, `ChatMessageCaret` | Typing, delivery, and streaming presentation | | People | `ChatMemberList`, `ChatMemberSection`, `ChatMessageInfo` | Member rows and receipt groups with supplied actions | | States | `ChatEmptyState`, `ChatLoadingState`, `ChatStatusBar` | Joining, unavailable history, loading, connection feedback | @@ -220,6 +220,66 @@ The toolbar reserves its width beside the bubble and appears on hover, keyboard `ChatReactionChip` is controlled through `selected`, `count`, and `onClick`; it does not update your reaction data. Supply `emoji` and an accessible `label` describing the action and count. Clicking or pressing Enter/Space toggles the reaction. With `reactorContent`, delayed hover, keyboard focus, or a long touch opens the list; also provide `reactorLabel`. The caller renders names, avatars, and a “You” marker, with a bounded scroll area for long lists. Set `animateEntrance` only for newly added chips. +## Timestamps, Markdown, and streaming + +These parts cover replies written by an assistant or agent as well as by people. They render what you pass them: your application formats dates, parses Markdown, and owns the stream. + +### Timestamps + + + +`ChatMessageTimestamp` renders a `