Skip to content
Open
Show file tree
Hide file tree
Changes from 44 commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
353746f
[docs] Reorganize existing chat docs navigation
hasdfa May 17, 2026
153c262
[chat-headless] Add createEchoAdapter and createAiSdkAdapter
hasdfa May 13, 2026
2f156eb
[x-chat] Complete built-in adapter exports
hasdfa May 17, 2026
59f5389
[chat-headless] Format AI SDK adapter test
hasdfa May 17, 2026
849b199
[x-chat] Address built-in adapter review comments
hasdfa May 18, 2026
8d32a61
[x-chat] Fix adapter CI issues
hasdfa May 18, 2026
2e92b22
[chat-headless] Harden runtime model and message errors
hasdfa May 17, 2026
216a7da
[chat-headless] Fix runtime branch CI
hasdfa May 17, 2026
c8fc6ba
[chat-headless] Keep runtime tests on pre-slots API
hasdfa May 18, 2026
9034463
[chat-headless] Fix runtime static docs output
hasdfa May 18, 2026
212b1cc
[chat-headless] Address runtime review comments
hasdfa May 18, 2026
0585a84
[chat-headless] Fix provider controlled message reset
hasdfa May 18, 2026
555b9fa
[chat-headless] Forward role display names
hasdfa May 18, 2026
738f10e
Merge branch 'master' into x-chat-docs-ia-existing-content
hasdfa May 18, 2026
2d10846
[chat-headless] Regenerate ChatBox API docs
hasdfa May 18, 2026
285865c
[x-chat] Harden material message surfaces
hasdfa May 17, 2026
2f6463d
[x-chat] Fix material message surfaces CI
hasdfa May 17, 2026
66c6e5a
[x-chat] Fix message surface API docs generation
hasdfa May 18, 2026
613840a
[docs] Dedupe chat API imports
hasdfa May 18, 2026
7d4443f
[docs] Address chat nav review suggestions
hasdfa May 20, 2026
bcd8b46
Merge branch 'master' into x-chat-docs-ia-existing-content
hasdfa May 20, 2026
cdaf1cb
Merge branch 'master' into x-chat-headless-runtime-model
hasdfa May 20, 2026
1648d70
Merge branch 'master' into x-chat-headless-runtime-model
hasdfa May 20, 2026
696e9be
Merge branch 'master' into x-chat-docs-ia-existing-content
hasdfa May 26, 2026
a48abf7
[docs] Align chat display nav group path
hasdfa May 26, 2026
81ab35f
Merge branch 'master' into x-chat-headless-runtime-model
hasdfa May 26, 2026
aee4621
[chat-headless] Address runtime model review comments
hasdfa May 26, 2026
59ea6ab
Merge branch 'master' into x-chat-docs-ia-existing-content
hasdfa May 27, 2026
2a6984b
Merge branch 'master' into x-chat-docs-ia-existing-content
hasdfa May 27, 2026
ebeccbd
Merge remote-tracking branch 'upstream/master' into x-chat-headless-r…
hasdfa May 27, 2026
557d583
Merge remote-tracking branch 'upstream/master' into x-chat-material-m…
hasdfa May 27, 2026
25959cd
Update messageReasoningLabel from 'Thoughts' to 'Reasoning'
hasdfa May 27, 2026
e35f0ee
[docs] Fix controlled composer demo width
hasdfa May 27, 2026
b906a95
fix tests
hasdfa May 27, 2026
0cd3365
fix tests
hasdfa May 27, 2026
71abd6b
[docs] Fix controlled composer demo width
hasdfa May 27, 2026
65b335c
Merge remote-tracking branch 'origin/x-chat-docs-ia-existing-content'…
hasdfa May 27, 2026
0696106
Merge remote-tracking branch 'origin/x-chat-headless-runtime-model' i…
hasdfa May 28, 2026
712e696
Merge branch 'master' into x-chat-material-message-surfaces
hasdfa Jun 2, 2026
2ce51bb
Merge branch 'master' into x-chat-material-message-surfaces
hasdfa Jun 2, 2026
8dc6572
Merge branch 'master' into x-chat-material-message-surfaces
hasdfa Jun 2, 2026
5d1d0c6
Merge remote-tracking branch 'upstream/master' into x-chat-material-m…
Copilot Jun 2, 2026
4258a05
Merge master into copilot/x-chat-material-message-surfaces-reopen
Copilot Jun 2, 2026
ed6de9a
Merge branch 'master' into copilot/hasdfamui-xcopilotx-chat-material-…
hasdfa Jun 2, 2026
b59eebd
[x-chat] Address review feedback on Material message surfaces
hasdfa Jun 2, 2026
5435ba0
[x-chat] Use an effect to auto-open the tool input section
hasdfa Jun 2, 2026
fe84f39
[x-chat] Restore the default conversation-list sidebar width
hasdfa Jun 2, 2026
dcc0fed
Merge branch 'master' into copilot/hasdfamui-xcopilotx-chat-material-…
hasdfa Jun 3, 2026
12da38f
Merge branch 'master' into copilot/hasdfamui-xcopilotx-chat-material-…
hasdfa Jun 3, 2026
8d27d9b
Merge branch 'master' into copilot/hasdfamui-xcopilotx-chat-material-…
hasdfa Jun 3, 2026
dc4e741
Merge branch 'master' into copilot/hasdfamui-xcopilotx-chat-material-…
hasdfa Jun 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/data/chat/behavior/error-handling/error-handling.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ productId: x-chat
title: Error Handling
packageName: '@mui/x-chat'
githubLabel: 'scope: chat'
components: ChatBox, MessageError
components: ChatBox, ChatMessageError, MessageError
---

# Chat - Error Handling
Expand Down
4 changes: 4 additions & 0 deletions docs/data/chatApiPages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,10 @@ const chatApiPages: MuiPage[] = [
pathname: '/x/api/chat/chat-message-content',
title: 'ChatMessageContent',
},
{
pathname: '/x/api/chat/chat-message-error',
title: 'ChatMessageError',
},
{
pathname: '/x/api/chat/chat-message-group',
title: 'ChatMessageGroup',
Expand Down
6 changes: 6 additions & 0 deletions docs/pages/x/api/chat/chat-date-divider.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,12 @@
"description": "Styles applied to the message meta element.",
"isGlobal": false
},
{
"key": "noAvatar",
"className": "MuiChatDateDivider-noAvatar",
"description": "Applied when the avatar slot is hidden (`slots.avatar: null`) so the grid drops the avatar track.",
"isGlobal": false
},
{
"key": "roleAssistant",
"className": "MuiChatDateDivider-roleAssistant",
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/chat-layout.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ChatLayout",
"imports": [
"import { ChatLayout } from '@mui/x-chat/headless';",
"import { ChatLayout } from '@mui/x-chat/headless';"
],
"imports": ["import { ChatLayout } from '@mui/x-chat/headless';"],
"slots": [
{ "name": "root", "description": "", "class": null },
{ "name": "conversationsPane", "description": "", "class": null },
Expand Down
6 changes: 6 additions & 0 deletions docs/pages/x/api/chat/chat-message-actions.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,12 @@
"description": "Styles applied to the message meta element.",
"isGlobal": false
},
{
"key": "noAvatar",
"className": "MuiChatMessageActions-noAvatar",
"description": "Applied when the avatar slot is hidden (`slots.avatar: null`) so the grid drops the avatar track.",
"isGlobal": false
},
{
"key": "roleAssistant",
"className": "MuiChatMessageActions-roleAssistant",
Expand Down
6 changes: 6 additions & 0 deletions docs/pages/x/api/chat/chat-message-author-label.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,12 @@
"description": "Styles applied to the message meta element.",
"isGlobal": false
},
{
"key": "noAvatar",
"className": "MuiChatMessageAuthorLabel-noAvatar",
"description": "Applied when the avatar slot is hidden (`slots.avatar: null`) so the grid drops the avatar track.",
"isGlobal": false
},
{
"key": "roleAssistant",
"className": "MuiChatMessageAuthorLabel-roleAssistant",
Expand Down
6 changes: 6 additions & 0 deletions docs/pages/x/api/chat/chat-message-avatar.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,12 @@
"description": "Styles applied to the message meta element.",
"isGlobal": false
},
{
"key": "noAvatar",
"className": "MuiChatMessageAvatar-noAvatar",
"description": "Applied when the avatar slot is hidden (`slots.avatar: null`) so the grid drops the avatar track.",
"isGlobal": false
},
{
"key": "roleAssistant",
"className": "MuiChatMessageAvatar-roleAssistant",
Expand Down
6 changes: 6 additions & 0 deletions docs/pages/x/api/chat/chat-message-content.json
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,12 @@
"description": "Styles applied to the message meta element.",
"isGlobal": false
},
{
"key": "noAvatar",
"className": "MuiChatMessageContent-noAvatar",
"description": "Applied when the avatar slot is hidden (`slots.avatar: null`) so the grid drops the avatar track.",
Comment thread
hasdfa marked this conversation as resolved.
"isGlobal": false
},
{
"key": "roleAssistant",
"className": "MuiChatMessageContent-roleAssistant",
Expand Down
20 changes: 20 additions & 0 deletions docs/pages/x/api/chat/chat-message-error.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import * as React from 'react';
import { ApiPage } from '@mui/internal-core-docs/ApiPage';
import { mapApiPageTranslations } from '@mui/internal-core-docs/mapApiPageTranslations';
import jsonPageContent from './chat-message-error.json';

export default function Page(props) {
const { descriptions } = props;
return <ApiPage descriptions={descriptions} pageContent={jsonPageContent} />;
}

export async function getStaticProps() {
const req = require.context(
'docs/translations/api-docs/chat/chat-message-error',
false,
/\.\/chat-message-error.*\.json$/,
);
const descriptions = mapApiPageTranslations(req);

return { props: { descriptions } };
}
35 changes: 35 additions & 0 deletions docs/pages/x/api/chat/chat-message-error.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"props": {},
"name": "ChatMessageError",
"imports": [
"import { ChatMessageError } from '@mui/x-chat/ChatMessageError';",
"import { ChatMessageError } from '@mui/x-chat';"
],
"classes": [
{
"key": "message",
"className": "MuiChatMessageError-message",
"description": "Styles applied to the message text element.",
"isGlobal": false
},
{
"key": "retryButton",
"className": "MuiChatMessageError-retryButton",
"description": "Styles applied to the retry button.",
"isGlobal": false
},
{
"key": "root",
"className": "MuiChatMessageError-root",
"description": "Styles applied to the root element.",
"isGlobal": false
}
],
"spread": true,
"themeDefaultProps": null,
"muiName": "MuiChatMessageError",
"filename": "/packages/x-chat/src/ChatMessageError/ChatMessageError.tsx",
"inheritance": null,
"demos": "<ul><li><a href=\"/x/react-chat/behavior/error-handling/\">Chat - Error Handling</a></li></ul>",
"cssComponent": false
}
6 changes: 6 additions & 0 deletions docs/pages/x/api/chat/chat-message-group.json
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,12 @@
"description": "Styles applied to the message meta element.",
"isGlobal": false
},
{
"key": "noAvatar",
"className": "MuiChatMessageGroup-noAvatar",
"description": "Applied when the avatar slot is hidden (`slots.avatar: null`) so the grid drops the avatar track.",
"isGlobal": false
},
{
"key": "roleAssistant",
"className": "MuiChatMessageGroup-roleAssistant",
Expand Down
3 changes: 2 additions & 1 deletion docs/pages/x/api/chat/chat-message-list.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"autoScroll": {
"type": { "name": "union", "description": "{ buffer?: number }<br>&#124;&nbsp;bool" },
"default": "true"
}
},
"renderItem": { "type": { "name": "func" } }
},
"name": "ChatMessageList",
"imports": [
Expand Down
6 changes: 6 additions & 0 deletions docs/pages/x/api/chat/chat-message-meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,12 @@
"description": "Styles applied to the message meta element.",
"isGlobal": false
},
{
"key": "noAvatar",
"className": "MuiChatMessageMeta-noAvatar",
"description": "Applied when the avatar slot is hidden (`slots.avatar: null`) so the grid drops the avatar track.",
"isGlobal": false
},
{
"key": "roleAssistant",
"className": "MuiChatMessageMeta-roleAssistant",
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/chat-root.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ChatRoot",
"imports": [
"import { ChatRoot } from '@mui/x-chat/headless';",
"import { ChatRoot } from '@mui/x-chat/headless';"
],
"imports": ["import { ChatRoot } from '@mui/x-chat/headless';"],
"slots": [{ "name": "root", "description": "", "class": null }],
"classes": [],
"spread": true,
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/composer-attach-button.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ComposerAttachButton",
"imports": [
"import { ComposerAttachButton } from '@mui/x-chat/headless';",
"import { ComposerAttachButton } from '@mui/x-chat/headless';"
],
"imports": ["import { ComposerAttachButton } from '@mui/x-chat/headless';"],
"slots": [
{ "name": "attachButton", "description": "", "class": null },
{ "name": "attachInput", "description": "", "class": null }
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/composer-attachment-list.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ComposerAttachmentList",
"imports": [
"import { ComposerAttachmentList } from '@mui/x-chat/headless';",
"import { ComposerAttachmentList } from '@mui/x-chat/headless';"
],
"imports": ["import { ComposerAttachmentList } from '@mui/x-chat/headless';"],
"slots": [{ "name": "attachmentList", "description": "", "class": null }],
"classes": [],
"muiName": "MuiComposerAttachmentList",
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/composer-helper-text.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ComposerHelperText",
"imports": [
"import { ComposerHelperText } from '@mui/x-chat/headless';",
"import { ComposerHelperText } from '@mui/x-chat/headless';"
],
"imports": ["import { ComposerHelperText } from '@mui/x-chat/headless';"],
"slots": [{ "name": "helperText", "description": "", "class": null }],
"classes": [],
"muiName": "MuiComposerHelperText",
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/composer-label.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ComposerLabel",
"imports": [
"import { ComposerLabel } from '@mui/x-chat/headless';",
"import { ComposerLabel } from '@mui/x-chat/headless';"
],
"imports": ["import { ComposerLabel } from '@mui/x-chat/headless';"],
"slots": [{ "name": "label", "description": "", "class": null }],
"classes": [],
"muiName": "MuiComposerLabel",
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/composer-root.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ComposerRoot",
"imports": [
"import { ComposerRoot } from '@mui/x-chat/headless';",
"import { ComposerRoot } from '@mui/x-chat/headless';"
],
"imports": ["import { ComposerRoot } from '@mui/x-chat/headless';"],
"slots": [{ "name": "root", "description": "", "class": null }],
"classes": [],
"spread": true,
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/composer-send-button.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ComposerSendButton",
"imports": [
"import { ComposerSendButton } from '@mui/x-chat/headless';",
"import { ComposerSendButton } from '@mui/x-chat/headless';"
],
"imports": ["import { ComposerSendButton } from '@mui/x-chat/headless';"],
"slots": [{ "name": "sendButton", "description": "", "class": null }],
"classes": [],
"muiName": "MuiComposerSendButton",
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/composer-text-area.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ComposerTextArea",
"imports": [
"import { ComposerTextArea } from '@mui/x-chat/headless';",
"import { ComposerTextArea } from '@mui/x-chat/headless';"
],
"imports": ["import { ComposerTextArea } from '@mui/x-chat/headless';"],
"slots": [{ "name": "input", "description": "", "class": null }],
"classes": [],
"muiName": "MuiComposerTextArea",
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/composer-toolbar.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ComposerToolbar",
"imports": [
"import { ComposerToolbar } from '@mui/x-chat/headless';",
"import { ComposerToolbar } from '@mui/x-chat/headless';"
],
"imports": ["import { ComposerToolbar } from '@mui/x-chat/headless';"],
"slots": [{ "name": "toolbar", "description": "", "class": null }],
"classes": [],
"muiName": "MuiComposerToolbar",
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/conversation-header-actions.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ConversationHeaderActions",
"imports": [
"import { ConversationHeaderActions } from '@mui/x-chat/headless';",
"import { ConversationHeaderActions } from '@mui/x-chat/headless';"
],
"imports": ["import { ConversationHeaderActions } from '@mui/x-chat/headless';"],
"slots": [{ "name": "actions", "description": "", "class": null }],
"classes": [],
"muiName": "MuiConversationHeaderActions",
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/conversation-header.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ConversationHeader",
"imports": [
"import { ConversationHeader } from '@mui/x-chat/headless';",
"import { ConversationHeader } from '@mui/x-chat/headless';"
],
"imports": ["import { ConversationHeader } from '@mui/x-chat/headless';"],
"slots": [{ "name": "header", "description": "", "class": null }],
"classes": [],
"muiName": "MuiConversationHeader",
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/conversation-list-item-avatar.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ConversationListItemAvatar",
"imports": [
"import { ConversationListItemAvatar } from '@mui/x-chat/headless';",
"import { ConversationListItemAvatar } from '@mui/x-chat/headless';"
],
"imports": ["import { ConversationListItemAvatar } from '@mui/x-chat/headless';"],
"slots": [
{ "name": "root", "description": "", "class": null },
{ "name": "image", "description": "", "class": null }
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/conversation-list-item.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ConversationListItem",
"imports": [
"import { ConversationListItem } from '@mui/x-chat/headless';",
"import { ConversationListItem } from '@mui/x-chat/headless';"
],
"imports": ["import { ConversationListItem } from '@mui/x-chat/headless';"],
"slots": [{ "name": "root", "description": "", "class": null }],
"classes": [],
"muiName": "MuiConversationListItem",
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/conversation-list-preview.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ConversationListPreview",
"imports": [
"import { ConversationListPreview } from '@mui/x-chat/headless';",
"import { ConversationListPreview } from '@mui/x-chat/headless';"
],
"imports": ["import { ConversationListPreview } from '@mui/x-chat/headless';"],
"slots": [{ "name": "root", "description": "", "class": null }],
"classes": [],
"muiName": "MuiConversationListPreview",
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/conversation-list-root.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ConversationListRoot",
"imports": [
"import { ConversationListRoot } from '@mui/x-chat/headless';",
"import { ConversationListRoot } from '@mui/x-chat/headless';"
],
"imports": ["import { ConversationListRoot } from '@mui/x-chat/headless';"],
"slots": [
{ "name": "root", "description": "", "class": null },
{ "name": "scroller", "description": "", "class": null },
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/conversation-list-timestamp.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ConversationListTimestamp",
"imports": [
"import { ConversationListTimestamp } from '@mui/x-chat/headless';",
"import { ConversationListTimestamp } from '@mui/x-chat/headless';"
],
"imports": ["import { ConversationListTimestamp } from '@mui/x-chat/headless';"],
"slots": [{ "name": "root", "description": "", "class": null }],
"classes": [],
"muiName": "MuiConversationListTimestamp",
Expand Down
5 changes: 1 addition & 4 deletions docs/pages/x/api/chat/conversation-list-title.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
{
"props": {},
"name": "ConversationListTitle",
"imports": [
"import { ConversationListTitle } from '@mui/x-chat/headless';",
"import { ConversationListTitle } from '@mui/x-chat/headless';"
],
"imports": ["import { ConversationListTitle } from '@mui/x-chat/headless';"],
"slots": [{ "name": "root", "description": "", "class": null }],
"classes": [],
"muiName": "MuiConversationListTitle",
Expand Down
Loading
Loading