@assistant-ui/mcp-docs-server 0.1.31 → 0.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/.docs/organized/code-examples/waterfall.md +8 -8
  2. package/.docs/organized/code-examples/with-a2a.md +10 -10
  3. package/.docs/organized/code-examples/with-ag-ui.md +11 -11
  4. package/.docs/organized/code-examples/with-ai-sdk-v6.md +13 -13
  5. package/.docs/organized/code-examples/with-artifacts.md +13 -13
  6. package/.docs/organized/code-examples/with-assistant-transport.md +10 -10
  7. package/.docs/organized/code-examples/with-browser-extension.md +345 -0
  8. package/.docs/organized/code-examples/with-chain-of-thought.md +54 -17
  9. package/.docs/organized/code-examples/with-cloud-standalone.md +13 -13
  10. package/.docs/organized/code-examples/with-cloud.md +13 -13
  11. package/.docs/organized/code-examples/with-custom-thread-list.md +13 -13
  12. package/.docs/organized/code-examples/with-elevenlabs-conversational.md +17 -16
  13. package/.docs/organized/code-examples/with-elevenlabs-scribe.md +17 -16
  14. package/.docs/organized/code-examples/with-expo.md +24 -24
  15. package/.docs/organized/code-examples/with-external-store.md +10 -10
  16. package/.docs/organized/code-examples/with-ffmpeg.md +13 -13
  17. package/.docs/organized/code-examples/with-generative-ui.md +210 -13
  18. package/.docs/organized/code-examples/with-google-adk.md +10 -10
  19. package/.docs/organized/code-examples/with-heat-graph.md +8 -8
  20. package/.docs/organized/code-examples/with-image-generation.md +454 -0
  21. package/.docs/organized/code-examples/with-interactables.md +13 -13
  22. package/.docs/organized/code-examples/with-langchain.md +12 -12
  23. package/.docs/organized/code-examples/with-langgraph.md +15 -12
  24. package/.docs/organized/code-examples/with-livekit.md +18 -17
  25. package/.docs/organized/code-examples/with-mcp.md +748 -0
  26. package/.docs/organized/code-examples/with-opencode.md +11 -11
  27. package/.docs/organized/code-examples/with-parent-id-grouping.md +11 -11
  28. package/.docs/organized/code-examples/with-react-hook-form.md +14 -14
  29. package/.docs/organized/code-examples/with-react-ink.md +4 -4
  30. package/.docs/organized/code-examples/with-react-router.md +15 -15
  31. package/.docs/organized/code-examples/with-resumable-stream.md +660 -0
  32. package/.docs/organized/code-examples/with-store.md +8 -8
  33. package/.docs/organized/code-examples/with-tanstack.md +14 -14
  34. package/.docs/organized/code-examples/with-tap-runtime.md +11 -10
  35. package/.docs/raw/docs/(docs)/cli.mdx +1 -0
  36. package/.docs/raw/docs/(docs)/index.mdx +2 -2
  37. package/.docs/raw/docs/(docs)/installation.mdx +1 -1
  38. package/.docs/raw/docs/(reference)/api-reference/adapters/attachments.mdx +26 -24
  39. package/.docs/raw/docs/(reference)/api-reference/adapters/feedback.mdx +20 -0
  40. package/.docs/raw/docs/(reference)/api-reference/adapters/index.mdx +20 -12
  41. package/.docs/raw/docs/(reference)/api-reference/adapters/model.mdx +44 -0
  42. package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +37 -16
  43. package/.docs/raw/docs/(reference)/api-reference/adapters/runtime.mdx +12 -23
  44. package/.docs/raw/docs/(reference)/api-reference/adapters/suggestions.mdx +20 -0
  45. package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +37 -8
  46. package/.docs/raw/docs/(reference)/api-reference/context-providers/index.mdx +11 -9
  47. package/.docs/raw/docs/(reference)/api-reference/context-providers/scoped-providers.mdx +64 -0
  48. package/.docs/raw/docs/(reference)/api-reference/external-store/index.mdx +22 -0
  49. package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +52 -0
  50. package/.docs/raw/docs/(reference)/api-reference/external-store/runtime.mdx +36 -0
  51. package/.docs/raw/docs/(reference)/api-reference/hooks/composer-triggers.mdx +98 -0
  52. package/.docs/raw/docs/(reference)/api-reference/hooks/index.mdx +18 -13
  53. package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +18 -57
  54. package/.docs/raw/docs/(reference)/api-reference/hooks/primitives.mdx +640 -0
  55. package/.docs/raw/docs/(reference)/api-reference/hooks/runtimes.mdx +15 -28
  56. package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +64 -18
  57. package/.docs/raw/docs/(reference)/api-reference/hooks/utilities.mdx +434 -0
  58. package/.docs/raw/docs/(reference)/api-reference/integrations/cloud-ai-sdk.mdx +24 -0
  59. package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +11 -12
  60. package/.docs/raw/docs/(reference)/api-reference/integrations/react-ai-sdk.mdx +79 -0
  61. package/.docs/raw/docs/(reference)/api-reference/model-context/context.mdx +52 -0
  62. package/.docs/raw/docs/(reference)/api-reference/model-context/index.mdx +22 -0
  63. package/.docs/raw/docs/(reference)/api-reference/model-context/registry.mdx +20 -0
  64. package/.docs/raw/docs/(reference)/api-reference/overview.mdx +110 -131
  65. package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar-more.mdx +78 -221
  66. package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar.mdx +127 -242
  67. package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +39 -20
  68. package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-modal.mdx +66 -87
  69. package/.docs/raw/docs/(reference)/api-reference/primitives/attachment.mdx +50 -58
  70. package/.docs/raw/docs/(reference)/api-reference/primitives/branch-picker.mdx +80 -48
  71. package/.docs/raw/docs/(reference)/api-reference/primitives/chain-of-thought.mdx +67 -0
  72. package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +323 -461
  73. package/.docs/raw/docs/(reference)/api-reference/primitives/error.mdx +36 -43
  74. package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +29 -24
  75. package/.docs/raw/docs/(reference)/api-reference/primitives/message-part.mdx +63 -245
  76. package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +175 -591
  77. package/.docs/raw/docs/(reference)/api-reference/primitives/queue-item.mdx +65 -0
  78. package/.docs/raw/docs/(reference)/api-reference/primitives/selection-toolbar.mdx +35 -22
  79. package/.docs/raw/docs/(reference)/api-reference/primitives/suggestion.mdx +57 -140
  80. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item-more.mdx +70 -161
  81. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item.mdx +84 -108
  82. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +77 -96
  83. package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +173 -349
  84. package/.docs/raw/docs/(reference)/api-reference/runtimes/assistant-runtime.mdx +9 -21
  85. package/.docs/raw/docs/(reference)/api-reference/runtimes/attachment-runtime.mdx +10 -21
  86. package/.docs/raw/docs/(reference)/api-reference/runtimes/composer-runtime.mdx +15 -70
  87. package/.docs/raw/docs/(reference)/api-reference/runtimes/index.mdx +18 -13
  88. package/.docs/raw/docs/(reference)/api-reference/runtimes/message-part-runtime.mdx +25 -28
  89. package/.docs/raw/docs/(reference)/api-reference/runtimes/message-runtime.mdx +11 -63
  90. package/.docs/raw/docs/(reference)/api-reference/runtimes/queue-state.mdx +20 -0
  91. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-item-runtime.mdx +11 -48
  92. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +10 -47
  93. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-runtime.mdx +18 -30
  94. package/.docs/raw/docs/(reference)/api-reference/tools/component-tools.mdx +68 -0
  95. package/.docs/raw/docs/(reference)/api-reference/tools/index.mdx +39 -0
  96. package/.docs/raw/docs/(reference)/api-reference/tools/rendering.mdx +79 -0
  97. package/.docs/raw/docs/(reference)/api-reference/tools/status.mdx +42 -0
  98. package/.docs/raw/docs/(reference)/api-reference/tools/toolkits.mdx +92 -0
  99. package/.docs/raw/docs/(reference)/api-reference/transport/assistant-transport.mdx +48 -0
  100. package/.docs/raw/docs/(reference)/api-reference/transport/frame.mdx +62 -0
  101. package/.docs/raw/docs/(reference)/api-reference/transport/index.mdx +22 -0
  102. package/.docs/raw/docs/(reference)/api-reference/utilities/index.mdx +19 -0
  103. package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +131 -0
  104. package/.docs/raw/docs/(reference)/api-reference/voice/index.mdx +22 -0
  105. package/.docs/raw/docs/(reference)/api-reference/voice/session.mdx +54 -0
  106. package/.docs/raw/docs/(reference)/api-reference/voice/speech-dictation.mdx +36 -0
  107. package/.docs/raw/docs/cloud/ai-sdk.mdx +1 -1
  108. package/.docs/raw/docs/cloud/index.mdx +2 -2
  109. package/.docs/raw/docs/guides/attachments.mdx +4 -4
  110. package/.docs/raw/docs/guides/branching.mdx +1 -1
  111. package/.docs/raw/docs/guides/chain-of-thought.mdx +5 -5
  112. package/.docs/raw/docs/guides/context-api.mdx +4 -4
  113. package/.docs/raw/docs/guides/dictation.mdx +2 -2
  114. package/.docs/raw/docs/guides/editing.mdx +1 -1
  115. package/.docs/raw/docs/guides/generative-ui.mdx +142 -0
  116. package/.docs/raw/docs/guides/image-generation.mdx +74 -0
  117. package/.docs/raw/docs/guides/index.mdx +2 -2
  118. package/.docs/raw/docs/guides/interactables.mdx +2 -2
  119. package/.docs/raw/docs/guides/latex.mdx +2 -2
  120. package/.docs/raw/docs/guides/mcp-apps.mdx +231 -0
  121. package/.docs/raw/docs/guides/mentions.mdx +2 -2
  122. package/.docs/raw/docs/guides/message-timing.mdx +38 -5
  123. package/.docs/raw/docs/guides/multi-agent.mdx +2 -2
  124. package/.docs/raw/docs/guides/quoting.mdx +1 -1
  125. package/.docs/raw/docs/guides/resumable-stream-deployment.mdx +212 -0
  126. package/.docs/raw/docs/guides/resumable-stream-stores.mdx +152 -0
  127. package/.docs/raw/docs/guides/resumable-streams.mdx +210 -0
  128. package/.docs/raw/docs/guides/slash-commands.mdx +1 -1
  129. package/.docs/raw/docs/guides/speech.mdx +2 -2
  130. package/.docs/raw/docs/guides/suggestions.mdx +88 -4
  131. package/.docs/raw/docs/guides/tool-ui.mdx +2 -2
  132. package/.docs/raw/docs/guides/tools.mdx +66 -5
  133. package/.docs/raw/docs/guides/voice.mdx +2 -2
  134. package/.docs/raw/docs/ink/adapters.mdx +37 -1
  135. package/.docs/raw/docs/ink/custom-backend.mdx +59 -8
  136. package/.docs/raw/docs/ink/index.mdx +10 -11
  137. package/.docs/raw/docs/ink/primitives.mdx +349 -8
  138. package/.docs/raw/docs/integrations/auth/better-auth.mdx +1 -1
  139. package/.docs/raw/docs/integrations/auth/clerk.mdx +1 -1
  140. package/.docs/raw/docs/integrations/auth/next-auth.mdx +1 -1
  141. package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +2 -2
  142. package/.docs/raw/docs/integrations/frameworks/cloudflare-agents/overview.mdx +282 -0
  143. package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +2 -2
  144. package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +1 -1
  145. package/.docs/raw/docs/integrations/gateways/index.mdx +9 -4
  146. package/.docs/raw/docs/integrations/index.mdx +15 -3
  147. package/.docs/raw/docs/integrations/observability/langfuse.mdx +8 -1
  148. package/.docs/raw/docs/integrations/observability/langsmith.mdx +8 -4
  149. package/.docs/raw/docs/integrations/tools/react-mcp.mdx +337 -0
  150. package/.docs/raw/docs/primitives/composer.mdx +53 -0
  151. package/.docs/raw/docs/primitives/index.mdx +2 -2
  152. package/.docs/raw/docs/primitives/suggestion.mdx +9 -0
  153. package/.docs/raw/docs/react-native/hooks.mdx +2 -2
  154. package/.docs/raw/docs/react-native/index.mdx +4 -4
  155. package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +4 -4
  156. package/.docs/raw/docs/runtimes/a2a/overview.mdx +2 -2
  157. package/.docs/raw/docs/runtimes/ag-ui/overview.mdx +2 -2
  158. package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +32 -1
  159. package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +2 -2
  160. package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +7 -2
  161. package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +1 -1
  162. package/.docs/raw/docs/runtimes/ai-sdk/v6.mdx +7 -0
  163. package/.docs/raw/docs/runtimes/custom/data-stream.mdx +27 -2
  164. package/.docs/raw/docs/runtimes/custom/external-store.mdx +9 -1
  165. package/.docs/raw/docs/runtimes/custom/overview.mdx +2 -2
  166. package/.docs/raw/docs/runtimes/google-adk/overview.mdx +2 -2
  167. package/.docs/raw/docs/runtimes/langchain.mdx +2 -2
  168. package/.docs/raw/docs/runtimes/langgraph/overview.mdx +2 -2
  169. package/.docs/raw/docs/runtimes/opencode/overview.mdx +2 -2
  170. package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +1 -1
  171. package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +12 -5
  172. package/.docs/raw/docs/ui/composer-trigger-popover.mdx +11 -1
  173. package/.docs/raw/docs/ui/mcp-config.mdx +102 -0
  174. package/.docs/raw/docs/ui/model-selector.mdx +8 -8
  175. package/.docs/raw/docs/ui/sources.mdx +17 -0
  176. package/.docs/raw/docs/ui/streamdown.mdx +34 -2
  177. package/.docs/raw/docs/ui/thread-list.mdx +2 -2
  178. package/.docs/raw/docs/ui/thread.mdx +2 -2
  179. package/README.md +14 -72
  180. package/dist/constants.d.ts +12 -9
  181. package/dist/constants.d.ts.map +1 -1
  182. package/dist/constants.js +13 -9
  183. package/dist/constants.js.map +1 -1
  184. package/dist/index.d.ts +7 -3
  185. package/dist/index.d.ts.map +1 -1
  186. package/dist/index.js +25 -24
  187. package/dist/index.js.map +1 -1
  188. package/dist/prepare-docs/code-examples.d.ts +4 -1
  189. package/dist/prepare-docs/code-examples.d.ts.map +1 -1
  190. package/dist/prepare-docs/code-examples.js +109 -121
  191. package/dist/prepare-docs/code-examples.js.map +1 -1
  192. package/dist/prepare-docs/copy-raw.d.ts +4 -1
  193. package/dist/prepare-docs/copy-raw.d.ts.map +1 -1
  194. package/dist/prepare-docs/copy-raw.js +45 -42
  195. package/dist/prepare-docs/copy-raw.js.map +1 -1
  196. package/dist/prepare-docs/prepare.d.ts +1 -2
  197. package/dist/prepare-docs/prepare.js +17 -17
  198. package/dist/prepare-docs/prepare.js.map +1 -1
  199. package/dist/stdio.d.ts +1 -3
  200. package/dist/stdio.js +6 -3
  201. package/dist/stdio.js.map +1 -1
  202. package/dist/tools/docs.d.ts +20 -15
  203. package/dist/tools/docs.d.ts.map +1 -1
  204. package/dist/tools/docs.js +140 -161
  205. package/dist/tools/docs.js.map +1 -1
  206. package/dist/tools/examples.d.ts +20 -15
  207. package/dist/tools/examples.d.ts.map +1 -1
  208. package/dist/tools/examples.js +74 -86
  209. package/dist/tools/examples.js.map +1 -1
  210. package/dist/tools/tests/test-setup.d.ts +5 -2
  211. package/dist/tools/tests/test-setup.d.ts.map +1 -1
  212. package/dist/tools/tests/test-setup.js +21 -28
  213. package/dist/tools/tests/test-setup.js.map +1 -1
  214. package/dist/utils/logger.d.ts +8 -5
  215. package/dist/utils/logger.d.ts.map +1 -1
  216. package/dist/utils/logger.js +17 -17
  217. package/dist/utils/logger.js.map +1 -1
  218. package/dist/utils/mcp-format.d.ts +8 -5
  219. package/dist/utils/mcp-format.d.ts.map +1 -1
  220. package/dist/utils/mcp-format.js +9 -9
  221. package/dist/utils/mcp-format.js.map +1 -1
  222. package/dist/utils/mdx.d.ts +8 -6
  223. package/dist/utils/mdx.d.ts.map +1 -1
  224. package/dist/utils/mdx.js +22 -22
  225. package/dist/utils/mdx.js.map +1 -1
  226. package/dist/utils/paths.d.ts +9 -6
  227. package/dist/utils/paths.d.ts.map +1 -1
  228. package/dist/utils/paths.js +66 -76
  229. package/dist/utils/paths.js.map +1 -1
  230. package/dist/utils/security.d.ts +4 -1
  231. package/dist/utils/security.d.ts.map +1 -1
  232. package/dist/utils/security.js +19 -40
  233. package/dist/utils/security.js.map +1 -1
  234. package/package.json +5 -5
  235. package/.docs/raw/docs/(reference)/api-reference/adapters/feedback-speech.mdx +0 -41
  236. package/.docs/raw/docs/(reference)/api-reference/context-providers/text-message-part-provider.mdx +0 -40
  237. package/.docs/raw/docs/(reference)/api-reference/integrations/react-data-stream.mdx +0 -260
  238. package/.docs/raw/docs/(reference)/api-reference/integrations/react-hook-form.mdx +0 -103
  239. package/.docs/raw/docs/(reference)/api-reference/integrations/vercel-ai-sdk.mdx +0 -254
  240. package/dist/prepare-docs/prepare.d.ts.map +0 -1
  241. package/dist/stdio.d.ts.map +0 -1
  242. /package/.docs/raw/docs/{(reference)/migrations → migrations}/deprecation-policy.mdx +0 -0
  243. /package/.docs/raw/docs/{(reference) → migrations}/react-compatibility.mdx +0 -0
  244. /package/.docs/raw/docs/{(reference)/migrations → migrations}/react-langgraph-v0-7.mdx +0 -0
  245. /package/.docs/raw/docs/{(reference)/migrations → migrations}/v0-11.mdx +0 -0
  246. /package/.docs/raw/docs/{(reference)/migrations → migrations}/v0-12.mdx +0 -0
  247. /package/.docs/raw/docs/{(reference)/migrations → migrations}/v0-14.mdx +0 -0
@@ -1,13 +1,17 @@
1
1
  ---
2
2
  title: MessagePrimitive
3
- description: Components for rendering message content, parts, and attachments.
3
+ description: Message primitives for rendering assistant and user turns, message parts, attachments, actions, editing, and branch controls.
4
4
  ---
5
5
 
6
+ import { MessagePrimitiveAttachmentByIndexProps, MessagePrimitiveAttachmentsProps, MessagePrimitiveContentProps, MessagePrimitiveGenerativeUIProps, MessagePrimitiveGroupedPartsProps, MessagePrimitiveIfProps, MessagePrimitivePartByIndexProps, MessagePrimitivePartsProps, MessagePrimitiveQuoteProps, MessagePrimitiveRootProps, MessagePrimitiveUnstable_PartsGroupedByParentIdProps, MessagePrimitiveUnstable_PartsGroupedProps } from "@/generated/typeDocs";
6
7
  import { MessagePrimitive as MessagePrimitiveDocs } from "@/generated/primitiveDocs";
7
8
 
8
- A single message in a conversation. Messages may consist of multiple parts.
9
+ {/* AUTO-GENERATED PAGE by scripts/generate-api-reference.mts */}
10
+ {/* Do not edit manually. */}
9
11
 
12
+ For examples and usage patterns, see [Message](/docs/primitives/message).
10
13
 
14
+ {/* api-manual:start */}
11
15
  ## Anatomy
12
16
 
13
17
  ```tsx
@@ -29,641 +33,221 @@ const AssistantMessage = () => (
29
33
  </MessagePrimitive.Root>
30
34
  );
31
35
  ```
36
+ {/* api-manual:end */}
37
+
38
+ {/* api-reference:start */}
39
+ {/* AUTO-GENERATED by scripts/generate-api-reference.mts */}
40
+ {/* Do not edit this block manually. */}
32
41
 
33
42
  ## API Reference
34
43
 
35
44
  ### Root
36
45
 
37
- Contains all parts of the message.
46
+ {MessagePrimitiveDocs.Root?.deprecated && (
47
+ <Callout type="warn">
48
+ <strong>Deprecated.</strong> {MessagePrimitiveDocs.Root.deprecated}
49
+ </Callout>
50
+ )}
51
+
52
+ {MessagePrimitiveDocs.Root?.description}
38
53
 
39
- This primitive renders a `<div>` element unless `asChild` is set.
54
+ {MessagePrimitiveDocs.Root?.element && (
55
+ <p>This primitive renders a <code>{`<${MessagePrimitiveDocs.Root?.element}>`}</code> element unless <code>asChild</code> is set.</p>
56
+ )}
40
57
 
41
- <ParametersTable
42
- type="MessagePrimitiveRootProps"
43
- parameters={[
44
- {
45
- name: "asChild",
46
- },
47
- ]}
48
- />
58
+ <ParametersTable {...MessagePrimitiveRootProps} />
49
59
 
50
60
  ### Parts
51
61
 
52
- The content of the message. This renders a separate component for each message part.
53
-
54
- <ParametersTable
55
- type="MessagePrimitivePartsProps"
56
- parameters={[
57
- {
58
- name: "components",
59
- required: false,
60
- type: "MessagePartComponents",
61
- description: "The components to render for each message part.",
62
- children: [
63
- {
64
- type: "MessagePartComponents",
65
- parameters: [
66
- {
67
- name: "Text",
68
- type: "TextMessagePartComponent",
69
- description:
70
- "The component to render for each text message part.",
71
- },
72
- {
73
- name: "Image",
74
- type: "ImageMessagePartComponent",
75
- description:
76
- "The component to render for each image message part.",
77
- },
78
- {
79
- name: "Source",
80
- type: "SourceMessagePartComponent",
81
- description:
82
- "The component to render for each source message part.",
83
- },
84
- {
85
- name: "File",
86
- type: "FileMessagePartComponent",
87
- description:
88
- "The component to render for each file message part.",
89
- },
90
- {
91
- name: "Unstable_Audio",
92
- type: "Unstable_AudioMessagePartComponent",
93
- description:
94
- "The component to render for each audio message part.",
95
- },
96
- {
97
- name: "Reasoning",
98
- type: "ReasoningMessagePartComponent",
99
- description:
100
- "Deprecated components-map renderer for each reasoning message part. Prefer the children render function or MessagePrimitive.GroupedParts.",
101
- },
102
- {
103
- name: "tools",
104
- type: "object",
105
- description:
106
- "Deprecated components-map configuration for tool call rendering. Prefer part.toolUI in the children render function or MessagePrimitive.GroupedParts.",
107
- children: [
108
- {
109
- parameters: [
110
- {
111
- name: "by_name",
112
- type: "Record<string, ToolCallMessagePartComponent>",
113
- description:
114
- "Map of tool names to their specific components.",
115
- },
116
- {
117
- name: "Fallback",
118
- type: "ToolCallMessagePartComponent",
119
- description:
120
- "Fallback component for tool calls not matched by by_name.",
121
- },
122
- {
123
- name: "Override",
124
- type: "ComponentType<ToolCallMessagePartProps>",
125
- description:
126
- "Override component that handles all tool calls. When set, by_name and Fallback are ignored.",
127
- },
128
- ],
129
- },
130
- ],
131
- },
132
- {
133
- name: "data",
134
- type: "object",
135
- description:
136
- "Configuration for data part rendering.",
137
- children: [
138
- {
139
- parameters: [
140
- {
141
- name: "by_name",
142
- type: "Record<string, DataMessagePartComponent>",
143
- description:
144
- "Map of data event names to their specific components.",
145
- },
146
- {
147
- name: "Fallback",
148
- type: "DataMessagePartComponent",
149
- description:
150
- "Fallback component for data events not matched by by_name.",
151
- },
152
- ],
153
- },
154
- ],
155
- },
156
- {
157
- name: "ToolGroup",
158
- type: "ComponentType<PropsWithChildren<{ startIndex: number; endIndex: number }>>",
159
- description:
160
- "Deprecated legacy wrapper for grouped consecutive tool calls. Prefer MessagePrimitive.GroupedParts with groupBy returning \"group-tool\".",
161
- children: [
162
- {
163
- type: "ToolGroupProps",
164
- parameters: [
165
- {
166
- name: "startIndex",
167
- type: "number",
168
- description: "Index of the first tool call in the group.",
169
- required: true,
170
- },
171
- {
172
- name: "endIndex",
173
- type: "number",
174
- description: "Index of the last tool call in the group.",
175
- required: true,
176
- },
177
- {
178
- name: "children",
179
- type: "ReactNode",
180
- description:
181
- "The rendered tool call components within the group.",
182
- required: true,
183
- },
184
- ],
185
- },
186
- ],
187
- },
188
- {
189
- name: "ReasoningGroup",
190
- type: "ReasoningGroupComponent",
191
- description:
192
- "Deprecated legacy wrapper for grouped consecutive reasoning parts. Prefer MessagePrimitive.GroupedParts with groupBy returning \"group-reasoning\".",
193
- children: [
194
- {
195
- type: "ReasoningGroupProps",
196
- parameters: [
197
- {
198
- name: "startIndex",
199
- type: "number",
200
- description: "Index of the first reasoning part in the group.",
201
- required: true,
202
- },
203
- {
204
- name: "endIndex",
205
- type: "number",
206
- description: "Index of the last reasoning part in the group.",
207
- required: true,
208
- },
209
- {
210
- name: "children",
211
- type: "ReactNode",
212
- description:
213
- "The rendered reasoning part components within the group.",
214
- required: true,
215
- },
216
- ],
217
- },
218
- ],
219
- },
220
- {
221
- name: "ChainOfThought",
222
- type: "ComponentType",
223
- description:
224
- "Deprecated legacy grouping path. Prefer MessagePrimitive.GroupedParts for grouped reasoning and tool calls.",
225
- },
226
- {
227
- name: "Empty",
228
- type: "EmptyMessagePartComponent",
229
- description:
230
- "Component to render when the message has no parts, or when unstable_showEmptyOnNonTextEnd is enabled and the last part is not text or reasoning.",
231
- },
232
- ],
233
- },
234
- ],
235
- },
236
- {
237
- name: "unstable_showEmptyOnNonTextEnd",
238
- required: false,
239
- type: "boolean",
240
- description:
241
- "When enabled, shows the Empty component if the last part in the message is anything other than Text or Reasoning. Defaults to true.",
242
- },
243
- ]}
244
- />
62
+ {MessagePrimitiveDocs.Parts?.deprecated && (
63
+ <Callout type="warn">
64
+ <strong>Deprecated.</strong> {MessagePrimitiveDocs.Parts.deprecated}
65
+ </Callout>
66
+ )}
245
67
 
246
- ### Quote
68
+ {MessagePrimitiveDocs.Parts?.description}
247
69
 
248
- Renders a quote block if the message has quote metadata (`message.metadata.custom.quote`). Place this above `MessagePrimitive.Parts`.
70
+ {MessagePrimitiveDocs.Parts?.element && (
71
+ <p>This primitive renders a <code>{`<${MessagePrimitiveDocs.Parts?.element}>`}</code> element unless <code>asChild</code> is set.</p>
72
+ )}
249
73
 
250
- ```tsx
251
- <MessagePrimitive.Quote>
252
- {({ text, messageId }) => <QuoteBlock text={text} messageId={messageId} />}
253
- </MessagePrimitive.Quote>
254
- ```
255
-
256
- <ParametersTable
257
- type="MessagePrimitiveQuoteProps"
258
- parameters={[
259
- {
260
- name: "children",
261
- required: true,
262
- type: "(quote: QuoteInfo) => ReactNode",
263
- description: "Render function called when a quote is present. Receives { text, messageId }.",
264
- },
265
- ]}
266
- />
74
+ <ParametersTable {...MessagePrimitivePartsProps} />
267
75
 
268
76
  ### PartByIndex
269
77
 
270
- Renders a single message part at the specified index.
78
+ {MessagePrimitiveDocs.PartByIndex?.deprecated && (
79
+ <Callout type="warn">
80
+ <strong>Deprecated.</strong> {MessagePrimitiveDocs.PartByIndex.deprecated}
81
+ </Callout>
82
+ )}
271
83
 
272
- ```tsx
273
- <MessagePrimitive.PartByIndex
274
- index={0}
275
- components={{
276
- Text: MyTextComponent,
277
- Image: MyImageComponent
278
- }}
279
- />
280
- ```
84
+ {MessagePrimitiveDocs.PartByIndex?.description}
85
+
86
+ {MessagePrimitiveDocs.PartByIndex?.element && (
87
+ <p>This primitive renders a <code>{`<${MessagePrimitiveDocs.PartByIndex?.element}>`}</code> element unless <code>asChild</code> is set.</p>
88
+ )}
89
+
90
+ <ParametersTable {...MessagePrimitivePartByIndexProps} />
91
+
92
+ ### Content
93
+
94
+ {MessagePrimitiveDocs.Content?.deprecated && (
95
+ <Callout type="warn">
96
+ <strong>Deprecated.</strong> {MessagePrimitiveDocs.Content.deprecated}
97
+ </Callout>
98
+ )}
99
+
100
+ {MessagePrimitiveDocs.Content?.description}
281
101
 
282
- <ParametersTable
283
- type="MessagePrimitive.PartByIndex.Props"
284
- parameters={[
285
- {
286
- name: "index",
287
- type: "number",
288
- required: true,
289
- description: "The index of the message part to render.",
290
- },
291
- {
292
- name: "components",
293
- required: false,
294
- type: "MessagePartComponents",
295
- description: "The components to render for the message part.",
296
- },
297
- ]}
298
- />
102
+ {MessagePrimitiveDocs.Content?.element && (
103
+ <p>This primitive renders a <code>{`<${MessagePrimitiveDocs.Content?.element}>`}</code> element unless <code>asChild</code> is set.</p>
104
+ )}
105
+
106
+ <ParametersTable {...MessagePrimitiveContentProps} />
107
+
108
+ ### If
109
+
110
+ {MessagePrimitiveDocs.If?.deprecated && (
111
+ <Callout type="warn">
112
+ <strong>Deprecated.</strong> {MessagePrimitiveDocs.If.deprecated}
113
+ </Callout>
114
+ )}
115
+
116
+ {MessagePrimitiveDocs.If?.description}
117
+
118
+ {MessagePrimitiveDocs.If?.element && (
119
+ <p>This primitive renders a <code>{`<${MessagePrimitiveDocs.If?.element}>`}</code> element unless <code>asChild</code> is set.</p>
120
+ )}
121
+
122
+ <ParametersTable {...MessagePrimitiveIfProps} />
299
123
 
300
124
  ### Attachments
301
125
 
302
- Renders all attachments of the message.
303
-
304
- <ParametersTable
305
- type="MessagePrimitive.Attachments.Props"
306
- parameters={[
307
- {
308
- name: "components",
309
- type: "AttachmentComponents",
310
- description: "The components to render for each attachment.",
311
- children: [
312
- {
313
- type: "AttachmentComponents",
314
- parameters: [
315
- {
316
- name: "Image",
317
- type: "ComponentType",
318
- description: "The component to render for image attachments.",
319
- },
320
- {
321
- name: "Document",
322
- type: "ComponentType",
323
- description: "The component to render for document attachments.",
324
- },
325
- {
326
- name: "File",
327
- type: "ComponentType",
328
- description: "The component to render for file attachments.",
329
- },
330
- {
331
- name: "Attachment",
332
- type: "ComponentType",
333
- description: "The fallback component to render for any attachment type.",
334
- },
335
- ],
336
- },
337
- ],
338
- },
339
- ]}
340
- />
126
+ {MessagePrimitiveDocs.Attachments?.deprecated && (
127
+ <Callout type="warn">
128
+ <strong>Deprecated.</strong> {MessagePrimitiveDocs.Attachments.deprecated}
129
+ </Callout>
130
+ )}
131
+
132
+ {MessagePrimitiveDocs.Attachments?.description}
133
+
134
+ {MessagePrimitiveDocs.Attachments?.element && (
135
+ <p>This primitive renders a <code>{`<${MessagePrimitiveDocs.Attachments?.element}>`}</code> element unless <code>asChild</code> is set.</p>
136
+ )}
137
+
138
+ <ParametersTable {...MessagePrimitiveAttachmentsProps} />
341
139
 
342
140
  ### AttachmentByIndex
343
141
 
344
- Renders a single attachment at the specified index within the message.
142
+ {MessagePrimitiveDocs.AttachmentByIndex?.deprecated && (
143
+ <Callout type="warn">
144
+ <strong>Deprecated.</strong> {MessagePrimitiveDocs.AttachmentByIndex.deprecated}
145
+ </Callout>
146
+ )}
345
147
 
346
- ```tsx
347
- <MessagePrimitive.AttachmentByIndex
348
- index={0}
349
- components={{
350
- Image: MyImageAttachment,
351
- Document: MyDocumentAttachment
352
- }}
353
- />
354
- ```
148
+ {MessagePrimitiveDocs.AttachmentByIndex?.description}
355
149
 
356
- <ParametersTable
357
- type="MessagePrimitive.AttachmentByIndex.Props"
358
- parameters={[
359
- {
360
- name: "index",
361
- type: "number",
362
- required: true,
363
- description: "The index of the attachment to render.",
364
- },
365
- {
366
- name: "components",
367
- type: "AttachmentComponents",
368
- description: "The components to render for the attachment.",
369
- },
370
- ]}
371
- />
372
-
373
- ### useMessageQuote()
374
-
375
- A hook that returns the quote info attached to the current message, if any. Reads from `message.metadata.custom.quote`.
150
+ {MessagePrimitiveDocs.AttachmentByIndex?.element && (
151
+ <p>This primitive renders a <code>{`<${MessagePrimitiveDocs.AttachmentByIndex?.element}>`}</code> element unless <code>asChild</code> is set.</p>
152
+ )}
376
153
 
377
- ```tsx
378
- import { useMessageQuote } from "@assistant-ui/react";
379
-
380
- const QuoteBlock = () => {
381
- const quote = useMessageQuote();
382
- if (!quote) return null;
383
-
384
- return (
385
- <div className="mb-2 flex items-start gap-1.5 text-sm italic text-muted-foreground">
386
- {quote.text}
387
- </div>
388
- );
389
- };
390
- ```
154
+ <ParametersTable {...MessagePrimitiveAttachmentByIndexProps} />
391
155
 
392
- **Returns:** `QuoteInfo | undefined`
156
+ ### Quote
393
157
 
394
- ```typescript
395
- type QuoteInfo = {
396
- readonly text: string; // the quoted plain text
397
- readonly messageId: string; // the source message ID
398
- };
399
- ```
158
+ {MessagePrimitiveDocs.Quote?.deprecated && (
159
+ <Callout type="warn">
160
+ <strong>Deprecated.</strong> {MessagePrimitiveDocs.Quote.deprecated}
161
+ </Callout>
162
+ )}
163
+
164
+ {MessagePrimitiveDocs.Quote?.description}
165
+
166
+ {MessagePrimitiveDocs.Quote?.element && (
167
+ <p>This primitive renders a <code>{`<${MessagePrimitiveDocs.Quote?.element}>`}</code> element unless <code>asChild</code> is set.</p>
168
+ )}
169
+
170
+ <ParametersTable {...MessagePrimitiveQuoteProps} />
171
+
172
+ ### Error
400
173
 
401
- <Callout type="info">
402
- See the [Quoting guide](/docs/guides/quoting) for a complete walkthrough.
403
- </Callout>
174
+ {MessagePrimitiveDocs.Error?.deprecated && (
175
+ <Callout type="warn">
176
+ <strong>Deprecated.</strong> {MessagePrimitiveDocs.Error.deprecated}
177
+ </Callout>
178
+ )}
179
+
180
+ {MessagePrimitiveDocs.Error?.description}
181
+
182
+ {MessagePrimitiveDocs.Error?.element && (
183
+ <p>This primitive renders a <code>{`<${MessagePrimitiveDocs.Error?.element}>`}</code> element unless <code>asChild</code> is set.</p>
184
+ )}
185
+
186
+ {MessagePrimitiveDocs.Error?.props && (
187
+ <ParametersTable type={MessagePrimitiveDocs.Error?.element} parameters={MessagePrimitiveDocs.Error.props} />
188
+ )}
404
189
 
405
190
  ### GroupedParts
406
191
 
407
- Renders adjacent message parts through a hierarchical grouping tree. Use this for grouped Chain of Thought, consecutive tool calls, or any other adjacent grouping where each part stays in chronological order.
192
+ {MessagePrimitiveDocs.GroupedParts?.deprecated && (
193
+ <Callout type="warn">
194
+ <strong>Deprecated.</strong> {MessagePrimitiveDocs.GroupedParts.deprecated}
195
+ </Callout>
196
+ )}
408
197
 
409
- ```tsx
410
- <MessagePrimitive.GroupedParts
411
- groupBy={(part) => {
412
- if (part.type === "reasoning")
413
- return ["group-chainOfThought", "group-reasoning"];
414
- if (part.type === "tool-call")
415
- return ["group-chainOfThought", "group-tool"];
416
- return null;
417
- }}
418
- >
419
- {({ part, children }) => {
420
- switch (part.type) {
421
- case "group-chainOfThought":
422
- return <div>{children}</div>;
423
- case "group-reasoning":
424
- return <ReasoningRoot>{children}</ReasoningRoot>;
425
- case "group-tool":
426
- return <ToolGroupRoot>{children}</ToolGroupRoot>;
427
- case "text":
428
- return <MarkdownText />;
429
- case "reasoning":
430
- return <Reasoning {...part} />;
431
- case "tool-call":
432
- return part.toolUI ?? <ToolFallback {...part} />;
433
- case "data":
434
- return part.dataRendererUI;
435
- default:
436
- return null;
437
- }
438
- }}
439
- </MessagePrimitive.GroupedParts>
440
- ```
198
+ {MessagePrimitiveDocs.GroupedParts?.description}
441
199
 
442
- <ParametersTable
443
- type="MessagePrimitiveGroupedPartsProps"
444
- parameters={MessagePrimitiveDocs.GroupedParts.props}
445
- />
200
+ {MessagePrimitiveDocs.GroupedParts?.element && (
201
+ <p>This primitive renders a <code>{`<${MessagePrimitiveDocs.GroupedParts?.element}>`}</code> element unless <code>asChild</code> is set.</p>
202
+ )}
446
203
 
447
- ### Unstable_PartsGrouped
204
+ <ParametersTable {...MessagePrimitiveGroupedPartsProps} />
448
205
 
449
- Renders the parts of a message grouped by a custom grouping function. Use this unstable API only when you need non-adjacent clustering, such as collecting parts that share a common parent ID across different positions. For adjacent grouping, prefer `MessagePrimitive.GroupedParts`.
206
+ ### GenerativeUI
450
207
 
451
- The `groupingFunction` prop controls how parts are grouped. It receives the full array of message parts and must return an array of group descriptors, each with a `groupKey` (or `undefined` for ungrouped parts) and an array of `indices` into the message parts array. The optional `components.Group` component is then rendered once per group and receives the `groupKey`, `indices`, and the rendered part children.
208
+ {MessagePrimitiveDocs.GenerativeUI?.deprecated && (
209
+ <Callout type="warn">
210
+ <strong>Deprecated.</strong> {MessagePrimitiveDocs.GenerativeUI.deprecated}
211
+ </Callout>
212
+ )}
452
213
 
453
- <Callout type="warn">
454
- This API is unstable and may change in a future release.
455
- </Callout>
214
+ {MessagePrimitiveDocs.GenerativeUI?.description}
456
215
 
457
- ```tsx
458
- <MessagePrimitive.Unstable_PartsGrouped
459
- groupingFunction={(parts) => {
460
- const groups = new Map<string, number[]>();
461
- parts.forEach((part, i) => {
462
- const key = part.parentId ?? `__ungrouped_${i}`;
463
- const indices = groups.get(key) ?? [];
464
- indices.push(i);
465
- groups.set(key, indices);
466
- });
467
- return Array.from(groups.entries()).map(([key, indices]) => ({
468
- groupKey: key.startsWith("__ungrouped_") ? undefined : key,
469
- indices,
470
- }));
471
- }}
472
- components={{
473
- Text: ({ text }) => <p>{text}</p>,
474
- Group: ({ groupKey, indices, children }) => {
475
- if (!groupKey) return <>{children}</>;
476
- return (
477
- <div className="parent-group">
478
- <h4>Parent: {groupKey}</h4>
479
- {children}
480
- </div>
481
- );
482
- },
483
- }}
484
- />
485
- ```
216
+ {MessagePrimitiveDocs.GenerativeUI?.element && (
217
+ <p>This primitive renders a <code>{`<${MessagePrimitiveDocs.GenerativeUI?.element}>`}</code> element unless <code>asChild</code> is set.</p>
218
+ )}
486
219
 
487
- <ParametersTable
488
- type="MessagePrimitive.Unstable_PartsGrouped.Props"
489
- parameters={[
490
- {
491
- name: "groupingFunction",
492
- required: true,
493
- type: "GroupingFunction",
494
- description:
495
- "A function that receives the array of message parts and returns an array of groups. Each group has a groupKey (string or undefined for ungrouped parts) and an indices array of part positions.",
496
- },
497
- {
498
- name: "components",
499
- required: false,
500
- type: "object",
501
- description: "The components to render for each message part type and for group wrappers.",
502
- children: [
503
- {
504
- parameters: [
505
- {
506
- name: "Text",
507
- type: "TextMessagePartComponent",
508
- description: "The component to render for each text message part.",
509
- },
510
- {
511
- name: "Reasoning",
512
- type: "ReasoningMessagePartComponent",
513
- description: "The component to render for each reasoning message part.",
514
- },
515
- {
516
- name: "Source",
517
- type: "SourceMessagePartComponent",
518
- description: "The component to render for each source message part.",
519
- },
520
- {
521
- name: "Image",
522
- type: "ImageMessagePartComponent",
523
- description: "The component to render for each image message part.",
524
- },
525
- {
526
- name: "File",
527
- type: "FileMessagePartComponent",
528
- description: "The component to render for each file message part.",
529
- },
530
- {
531
- name: "Unstable_Audio",
532
- type: "Unstable_AudioMessagePartComponent",
533
- description: "The component to render for each audio message part.",
534
- },
535
- {
536
- name: "Empty",
537
- type: "EmptyMessagePartComponent",
538
- description: "Component to render when the message has no parts.",
539
- },
540
- {
541
- name: "tools",
542
- type: "object",
543
- description: "Configuration for tool call rendering.",
544
- children: [
545
- {
546
- parameters: [
547
- {
548
- name: "by_name",
549
- type: "Record<string, ToolCallMessagePartComponent>",
550
- description: "Map of tool names to their specific components.",
551
- },
552
- {
553
- name: "Fallback",
554
- type: "ToolCallMessagePartComponent",
555
- description:
556
- "Fallback component for tool calls not matched by by_name.",
557
- },
558
- {
559
- name: "Override",
560
- type: "ComponentType<ToolCallMessagePartProps>",
561
- description:
562
- "Override component that handles all tool calls. When set, by_name and Fallback are ignored.",
563
- },
564
- ],
565
- },
566
- ],
567
- },
568
- {
569
- name: "data",
570
- type: "object",
571
- description: "Configuration for data part rendering.",
572
- children: [
573
- {
574
- parameters: [
575
- {
576
- name: "by_name",
577
- type: "Record<string, DataMessagePartComponent>",
578
- description:
579
- "Map of data event names to their specific components.",
580
- },
581
- {
582
- name: "Fallback",
583
- type: "DataMessagePartComponent",
584
- description:
585
- "Fallback component for data events not matched by by_name.",
586
- },
587
- ],
588
- },
589
- ],
590
- },
591
- {
592
- name: "Group",
593
- type: "ComponentType<PropsWithChildren<{ groupKey: string | undefined; indices: number[] }>>",
594
- description:
595
- "Component for rendering a group of message parts. Receives the groupKey (undefined for ungrouped parts), the indices of all parts in the group, and the rendered part children.",
596
- children: [
597
- {
598
- type: "GroupProps",
599
- parameters: [
600
- {
601
- name: "groupKey",
602
- type: "string | undefined",
603
- description:
604
- "The group key, or undefined for ungrouped parts.",
605
- required: true,
606
- },
607
- {
608
- name: "indices",
609
- type: "number[]",
610
- description:
611
- "Array of indices of the message parts belonging to this group.",
612
- required: true,
613
- },
614
- {
615
- name: "children",
616
- type: "ReactNode",
617
- description:
618
- "The rendered message part components within the group.",
619
- required: true,
620
- },
621
- ],
622
- },
623
- ],
624
- },
625
- ],
626
- },
627
- ],
628
- },
629
- ]}
630
- />
220
+ <ParametersTable {...MessagePrimitiveGenerativeUIProps} />
631
221
 
632
- ### Unstable_PartsGroupedByParentId
222
+ ### Unstable_PartsGrouped
633
223
 
634
- A convenience wrapper around `MessagePrimitive.Unstable_PartsGrouped` that groups message parts by their `parentId` field. Parts without a `parentId` appear individually at their chronological position; parts sharing the same `parentId` are collected into a single group at the position of their first occurrence.
224
+ {MessagePrimitiveDocs.Unstable_PartsGrouped?.deprecated && (
225
+ <Callout type="warn">
226
+ <strong>Deprecated.</strong> {MessagePrimitiveDocs.Unstable_PartsGrouped.deprecated}
227
+ </Callout>
228
+ )}
635
229
 
636
- <Callout type="warn">
637
- This API is unstable and may change in a future release.
638
- </Callout>
230
+ {MessagePrimitiveDocs.Unstable_PartsGrouped?.description}
639
231
 
640
- ```tsx
641
- <MessagePrimitive.Unstable_PartsGroupedByParentId
642
- components={{
643
- Group: ({ groupKey, children }) => {
644
- if (!groupKey) return <>{children}</>;
645
- return (
646
- <div className="parent-group border rounded p-4">
647
- <h4>Parent ID: {groupKey}</h4>
648
- {children}
649
- </div>
650
- );
651
- },
652
- }}
653
- />
654
- ```
232
+ {MessagePrimitiveDocs.Unstable_PartsGrouped?.element && (
233
+ <p>This primitive renders a <code>{`<${MessagePrimitiveDocs.Unstable_PartsGrouped?.element}>`}</code> element unless <code>asChild</code> is set.</p>
234
+ )}
655
235
 
656
- Accepts the same `components` prop as [`MessagePrimitive.Unstable_PartsGrouped`](#unstable_partsgrouped), but without a `groupingFunction` prop (the parent-ID grouping function is applied automatically).
236
+ <ParametersTable {...MessagePrimitiveUnstable_PartsGroupedProps} />
657
237
 
658
- ### Error
238
+ ### Unstable_PartsGroupedByParentId
659
239
 
660
- Renders children only if the message has an error status.
240
+ {MessagePrimitiveDocs.Unstable_PartsGroupedByParentId?.deprecated && (
241
+ <Callout type="warn">
242
+ <strong>Deprecated.</strong> {MessagePrimitiveDocs.Unstable_PartsGroupedByParentId.deprecated}
243
+ </Callout>
244
+ )}
661
245
 
662
- ```tsx
663
- <MessagePrimitive.Error>
664
- {/* rendered if the message has an error status */}
665
- <ErrorPrimitive.Root>
666
- <ErrorPrimitive.Message />
667
- </ErrorPrimitive.Root>
668
- </MessagePrimitive.Error>
669
- ```
246
+ {MessagePrimitiveDocs.Unstable_PartsGroupedByParentId?.description}
247
+
248
+ {MessagePrimitiveDocs.Unstable_PartsGroupedByParentId?.element && (
249
+ <p>This primitive renders a <code>{`<${MessagePrimitiveDocs.Unstable_PartsGroupedByParentId?.element}>`}</code> element unless <code>asChild</code> is set.</p>
250
+ )}
251
+
252
+ <ParametersTable {...MessagePrimitiveUnstable_PartsGroupedByParentIdProps} />
253
+ {/* api-reference:end */}