@assistant-ui/mcp-docs-server 0.2.3 → 0.3.1

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 (452) hide show
  1. package/README.md +16 -43
  2. package/dist/index.d.ts +2 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +3 -91
  5. package/dist/index.js.map +1 -1
  6. package/dist/proxy.d.ts +9 -0
  7. package/dist/proxy.d.ts.map +1 -0
  8. package/dist/proxy.js +91 -0
  9. package/dist/proxy.js.map +1 -0
  10. package/package.json +8 -12
  11. package/src/index.ts +3 -115
  12. package/src/proxy.test.ts +385 -0
  13. package/src/proxy.ts +126 -0
  14. package/.docs/organized/code-examples/waterfall.md +0 -807
  15. package/.docs/organized/code-examples/with-a2a.md +0 -675
  16. package/.docs/organized/code-examples/with-ag-ui.md +0 -553
  17. package/.docs/organized/code-examples/with-ai-sdk-v7.md +0 -466
  18. package/.docs/organized/code-examples/with-artifacts.md +0 -815
  19. package/.docs/organized/code-examples/with-assistant-transport.md +0 -576
  20. package/.docs/organized/code-examples/with-browser-extension.md +0 -371
  21. package/.docs/organized/code-examples/with-chain-of-thought.md +0 -962
  22. package/.docs/organized/code-examples/with-cloud-standalone.md +0 -681
  23. package/.docs/organized/code-examples/with-cloud.md +0 -439
  24. package/.docs/organized/code-examples/with-custom-thread-list.md +0 -569
  25. package/.docs/organized/code-examples/with-elevenlabs-conversational.md +0 -527
  26. package/.docs/organized/code-examples/with-elevenlabs-scribe.md +0 -697
  27. package/.docs/organized/code-examples/with-eve.md +0 -405
  28. package/.docs/organized/code-examples/with-expo.md +0 -2246
  29. package/.docs/organized/code-examples/with-external-store.md +0 -421
  30. package/.docs/organized/code-examples/with-ffmpeg.md +0 -829
  31. package/.docs/organized/code-examples/with-generative-ui.md +0 -1810
  32. package/.docs/organized/code-examples/with-google-adk.md +0 -368
  33. package/.docs/organized/code-examples/with-heat-graph.md +0 -304
  34. package/.docs/organized/code-examples/with-image-generation.md +0 -463
  35. package/.docs/organized/code-examples/with-interactables.md +0 -733
  36. package/.docs/organized/code-examples/with-langchain.md +0 -446
  37. package/.docs/organized/code-examples/with-langgraph.md +0 -855
  38. package/.docs/organized/code-examples/with-livekit.md +0 -643
  39. package/.docs/organized/code-examples/with-mcp.md +0 -782
  40. package/.docs/organized/code-examples/with-nuxt.md +0 -2428
  41. package/.docs/organized/code-examples/with-opencode.md +0 -1974
  42. package/.docs/organized/code-examples/with-openui.md +0 -450
  43. package/.docs/organized/code-examples/with-pi.md +0 -2084
  44. package/.docs/organized/code-examples/with-react-hook-form.md +0 -727
  45. package/.docs/organized/code-examples/with-react-ink-web.md +0 -740
  46. package/.docs/organized/code-examples/with-react-ink.md +0 -473
  47. package/.docs/organized/code-examples/with-react-router.md +0 -936
  48. package/.docs/organized/code-examples/with-resumable-stream.md +0 -668
  49. package/.docs/organized/code-examples/with-store.md +0 -679
  50. package/.docs/organized/code-examples/with-svelte.md +0 -415
  51. package/.docs/organized/code-examples/with-sveltekit.md +0 -1061
  52. package/.docs/organized/code-examples/with-tanstack.md +0 -812
  53. package/.docs/organized/code-examples/with-tap-runtime.md +0 -813
  54. package/.docs/organized/code-examples/with-virtualized-thread.md +0 -681
  55. package/.docs/organized/code-examples/with-vue.md +0 -408
  56. package/.docs/raw/docs/(getting-started)/architecture.mdx +0 -146
  57. package/.docs/raw/docs/(getting-started)/base-ui.mdx +0 -39
  58. package/.docs/raw/docs/(getting-started)/cli.mdx +0 -542
  59. package/.docs/raw/docs/(getting-started)/devtools.mdx +0 -79
  60. package/.docs/raw/docs/(getting-started)/index.mdx +0 -23
  61. package/.docs/raw/docs/(getting-started)/installation.mdx +0 -483
  62. package/.docs/raw/docs/(getting-started)/llm.mdx +0 -211
  63. package/.docs/raw/docs/(getting-started)/rtl.mdx +0 -78
  64. package/.docs/raw/docs/(reference)/api-reference/adapters/attachments.mdx +0 -36
  65. package/.docs/raw/docs/(reference)/api-reference/adapters/feedback.mdx +0 -20
  66. package/.docs/raw/docs/(reference)/api-reference/adapters/index.mdx +0 -34
  67. package/.docs/raw/docs/(reference)/api-reference/adapters/model.mdx +0 -44
  68. package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +0 -59
  69. package/.docs/raw/docs/(reference)/api-reference/adapters/runtime.mdx +0 -20
  70. package/.docs/raw/docs/(reference)/api-reference/adapters/suggestions.mdx +0 -26
  71. package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +0 -84
  72. package/.docs/raw/docs/(reference)/api-reference/context-providers/index.mdx +0 -22
  73. package/.docs/raw/docs/(reference)/api-reference/context-providers/scoped-providers.mdx +0 -64
  74. package/.docs/raw/docs/(reference)/api-reference/external-store/index.mdx +0 -22
  75. package/.docs/raw/docs/(reference)/api-reference/external-store/message-conversion.mdx +0 -57
  76. package/.docs/raw/docs/(reference)/api-reference/external-store/runtime.mdx +0 -49
  77. package/.docs/raw/docs/(reference)/api-reference/generative-ui/a2ui.mdx +0 -40
  78. package/.docs/raw/docs/(reference)/api-reference/generative-ui/actions.mdx +0 -56
  79. package/.docs/raw/docs/(reference)/api-reference/generative-ui/components.mdx +0 -86
  80. package/.docs/raw/docs/(reference)/api-reference/generative-ui/index.mdx +0 -39
  81. package/.docs/raw/docs/(reference)/api-reference/generative-ui/json-generative-ui.mdx +0 -42
  82. package/.docs/raw/docs/(reference)/api-reference/generative-ui/rendering.mdx +0 -84
  83. package/.docs/raw/docs/(reference)/api-reference/generative-ui/slack.mdx +0 -85
  84. package/.docs/raw/docs/(reference)/api-reference/generative-ui/spec.mdx +0 -45
  85. package/.docs/raw/docs/(reference)/api-reference/generative-ui/teams.mdx +0 -93
  86. package/.docs/raw/docs/(reference)/api-reference/generative-ui/tokens.mdx +0 -62
  87. package/.docs/raw/docs/(reference)/api-reference/hooks/composer-triggers.mdx +0 -129
  88. package/.docs/raw/docs/(reference)/api-reference/hooks/index.mdx +0 -31
  89. package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +0 -34
  90. package/.docs/raw/docs/(reference)/api-reference/hooks/primitives.mdx +0 -350
  91. package/.docs/raw/docs/(reference)/api-reference/hooks/runtimes.mdx +0 -28
  92. package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +0 -97
  93. package/.docs/raw/docs/(reference)/api-reference/integrations/ai-sdk.mdx +0 -200
  94. package/.docs/raw/docs/(reference)/api-reference/integrations/cloud-ai-sdk.mdx +0 -24
  95. package/.docs/raw/docs/(reference)/api-reference/integrations/eve.mdx +0 -118
  96. package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +0 -28
  97. package/.docs/raw/docs/(reference)/api-reference/integrations/react-data-stream.mdx +0 -37
  98. package/.docs/raw/docs/(reference)/api-reference/model-context/context.mdx +0 -50
  99. package/.docs/raw/docs/(reference)/api-reference/model-context/index.mdx +0 -22
  100. package/.docs/raw/docs/(reference)/api-reference/model-context/registry.mdx +0 -20
  101. package/.docs/raw/docs/(reference)/api-reference/overview.mdx +0 -566
  102. package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar-more.mdx +0 -152
  103. package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar.mdx +0 -239
  104. package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +0 -208
  105. package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-modal.mdx +0 -108
  106. package/.docs/raw/docs/(reference)/api-reference/primitives/attachment.mdx +0 -99
  107. package/.docs/raw/docs/(reference)/api-reference/primitives/branch-picker.mdx +0 -145
  108. package/.docs/raw/docs/(reference)/api-reference/primitives/chain-of-thought.mdx +0 -82
  109. package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +0 -637
  110. package/.docs/raw/docs/(reference)/api-reference/primitives/composition.mdx +0 -22
  111. package/.docs/raw/docs/(reference)/api-reference/primitives/error.mdx +0 -65
  112. package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +0 -73
  113. package/.docs/raw/docs/(reference)/api-reference/primitives/message-part.mdx +0 -117
  114. package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +0 -339
  115. package/.docs/raw/docs/(reference)/api-reference/primitives/queue-item.mdx +0 -77
  116. package/.docs/raw/docs/(reference)/api-reference/primitives/selection-toolbar.mdx +0 -88
  117. package/.docs/raw/docs/(reference)/api-reference/primitives/suggestion.mdx +0 -81
  118. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item-more.mdx +0 -129
  119. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item.mdx +0 -138
  120. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +0 -122
  121. package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +0 -289
  122. package/.docs/raw/docs/(reference)/api-reference/runtimes/assistant-runtime.mdx +0 -20
  123. package/.docs/raw/docs/(reference)/api-reference/runtimes/attachment-runtime.mdx +0 -24
  124. package/.docs/raw/docs/(reference)/api-reference/runtimes/composer-runtime.mdx +0 -32
  125. package/.docs/raw/docs/(reference)/api-reference/runtimes/index.mdx +0 -43
  126. package/.docs/raw/docs/(reference)/api-reference/runtimes/message-part-runtime.mdx +0 -43
  127. package/.docs/raw/docs/(reference)/api-reference/runtimes/message-runtime.mdx +0 -24
  128. package/.docs/raw/docs/(reference)/api-reference/runtimes/queue-state.mdx +0 -20
  129. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-item-runtime.mdx +0 -24
  130. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +0 -24
  131. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-runtime.mdx +0 -36
  132. package/.docs/raw/docs/(reference)/api-reference/tools/component-tools.mdx +0 -85
  133. package/.docs/raw/docs/(reference)/api-reference/tools/index.mdx +0 -45
  134. package/.docs/raw/docs/(reference)/api-reference/tools/interactables-legacy.mdx +0 -55
  135. package/.docs/raw/docs/(reference)/api-reference/tools/interactables.mdx +0 -151
  136. package/.docs/raw/docs/(reference)/api-reference/tools/rendering.mdx +0 -106
  137. package/.docs/raw/docs/(reference)/api-reference/tools/status.mdx +0 -62
  138. package/.docs/raw/docs/(reference)/api-reference/tools/toolkits.mdx +0 -178
  139. package/.docs/raw/docs/(reference)/api-reference/transport/assistant-transport.mdx +0 -48
  140. package/.docs/raw/docs/(reference)/api-reference/transport/frame.mdx +0 -62
  141. package/.docs/raw/docs/(reference)/api-reference/transport/index.mdx +0 -22
  142. package/.docs/raw/docs/(reference)/api-reference/utilities/index.mdx +0 -19
  143. package/.docs/raw/docs/(reference)/api-reference/utilities/miscellaneous.mdx +0 -152
  144. package/.docs/raw/docs/(reference)/api-reference/voice/index.mdx +0 -22
  145. package/.docs/raw/docs/(reference)/api-reference/voice/session.mdx +0 -54
  146. package/.docs/raw/docs/(reference)/api-reference/voice/speech-dictation.mdx +0 -36
  147. package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +0 -527
  148. package/.docs/raw/docs/cloud/ai-sdk.mdx +0 -604
  149. package/.docs/raw/docs/cloud/authorization.mdx +0 -252
  150. package/.docs/raw/docs/cloud/index.mdx +0 -46
  151. package/.docs/raw/docs/cloud/langgraph.mdx +0 -554
  152. package/.docs/raw/docs/copilots/assistant-frame.mdx +0 -411
  153. package/.docs/raw/docs/copilots/make-assistant-visible.mdx +0 -82
  154. package/.docs/raw/docs/copilots/model-context.mdx +0 -156
  155. package/.docs/raw/docs/copilots/motivation.mdx +0 -202
  156. package/.docs/raw/docs/copilots/use-assistant-instructions.mdx +0 -64
  157. package/.docs/raw/docs/guides/attachments.mdx +0 -619
  158. package/.docs/raw/docs/guides/branching.mdx +0 -76
  159. package/.docs/raw/docs/guides/chain-of-thought.mdx +0 -164
  160. package/.docs/raw/docs/guides/chatgpt-subscription.mdx +0 -108
  161. package/.docs/raw/docs/guides/context-api.mdx +0 -619
  162. package/.docs/raw/docs/guides/dictation.mdx +0 -298
  163. package/.docs/raw/docs/guides/editing.mdx +0 -102
  164. package/.docs/raw/docs/guides/electron.mdx +0 -369
  165. package/.docs/raw/docs/guides/headless-composer-input.mdx +0 -113
  166. package/.docs/raw/docs/guides/image-generation.mdx +0 -74
  167. package/.docs/raw/docs/guides/index.mdx +0 -117
  168. package/.docs/raw/docs/guides/input-history.mdx +0 -55
  169. package/.docs/raw/docs/guides/latex.mdx +0 -158
  170. package/.docs/raw/docs/guides/mentions.mdx +0 -575
  171. package/.docs/raw/docs/guides/message-timing.mdx +0 -215
  172. package/.docs/raw/docs/guides/quoting.mdx +0 -169
  173. package/.docs/raw/docs/guides/resumable-stream-deployment.mdx +0 -212
  174. package/.docs/raw/docs/guides/resumable-stream-stores.mdx +0 -152
  175. package/.docs/raw/docs/guides/resumable-streams.mdx +0 -292
  176. package/.docs/raw/docs/guides/slash-commands.mdx +0 -358
  177. package/.docs/raw/docs/guides/speech.mdx +0 -172
  178. package/.docs/raw/docs/guides/suggestions.mdx +0 -384
  179. package/.docs/raw/docs/guides/virtualization.mdx +0 -133
  180. package/.docs/raw/docs/guides/voice.mdx +0 -310
  181. package/.docs/raw/docs/ink/adapters.mdx +0 -99
  182. package/.docs/raw/docs/ink/custom-backend.mdx +0 -254
  183. package/.docs/raw/docs/ink/hooks.mdx +0 -469
  184. package/.docs/raw/docs/ink/index.mdx +0 -237
  185. package/.docs/raw/docs/ink/migration.mdx +0 -138
  186. package/.docs/raw/docs/ink/primitives.mdx +0 -1259
  187. package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +0 -528
  188. package/.docs/raw/docs/integrations/auth/better-auth.mdx +0 -188
  189. package/.docs/raw/docs/integrations/auth/clerk.mdx +0 -166
  190. package/.docs/raw/docs/integrations/auth/next-auth.mdx +0 -191
  191. package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +0 -88
  192. package/.docs/raw/docs/integrations/frameworks/cloudflare-agents.mdx +0 -283
  193. package/.docs/raw/docs/integrations/frameworks/mastra/full-stack.mdx +0 -188
  194. package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +0 -57
  195. package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +0 -201
  196. package/.docs/raw/docs/integrations/gateways/index.mdx +0 -162
  197. package/.docs/raw/docs/integrations/index.mdx +0 -178
  198. package/.docs/raw/docs/integrations/observability/helicone.mdx +0 -129
  199. package/.docs/raw/docs/integrations/observability/langfuse.mdx +0 -161
  200. package/.docs/raw/docs/integrations/observability/langsmith.mdx +0 -151
  201. package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +0 -773
  202. package/.docs/raw/docs/migrations/deprecation-policy.mdx +0 -42
  203. package/.docs/raw/docs/migrations/index.mdx +0 -50
  204. package/.docs/raw/docs/migrations/react-compatibility.mdx +0 -74
  205. package/.docs/raw/docs/migrations/react-langgraph-v0-7.mdx +0 -328
  206. package/.docs/raw/docs/migrations/toolkit-tools.mdx +0 -236
  207. package/.docs/raw/docs/migrations/v0-11.mdx +0 -172
  208. package/.docs/raw/docs/migrations/v0-12.mdx +0 -302
  209. package/.docs/raw/docs/migrations/v0-14.mdx +0 -297
  210. package/.docs/raw/docs/migrations/v0-15.mdx +0 -270
  211. package/.docs/raw/docs/primitives/action-bar.mdx +0 -352
  212. package/.docs/raw/docs/primitives/assistant-modal.mdx +0 -216
  213. package/.docs/raw/docs/primitives/attachment.mdx +0 -217
  214. package/.docs/raw/docs/primitives/branch-picker.mdx +0 -222
  215. package/.docs/raw/docs/primitives/chain-of-thought.mdx +0 -315
  216. package/.docs/raw/docs/primitives/composer.mdx +0 -659
  217. package/.docs/raw/docs/primitives/error.mdx +0 -142
  218. package/.docs/raw/docs/primitives/index.mdx +0 -99
  219. package/.docs/raw/docs/primitives/message.mdx +0 -618
  220. package/.docs/raw/docs/primitives/selection-toolbar.mdx +0 -191
  221. package/.docs/raw/docs/primitives/suggestion.mdx +0 -254
  222. package/.docs/raw/docs/primitives/thread-list.mdx +0 -467
  223. package/.docs/raw/docs/primitives/thread.mdx +0 -509
  224. package/.docs/raw/docs/react-native/adapters.mdx +0 -94
  225. package/.docs/raw/docs/react-native/custom-backend.mdx +0 -207
  226. package/.docs/raw/docs/react-native/hooks.mdx +0 -339
  227. package/.docs/raw/docs/react-native/index.mdx +0 -289
  228. package/.docs/raw/docs/react-native/migration.mdx +0 -142
  229. package/.docs/raw/docs/react-native/primitives.mdx +0 -976
  230. package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +0 -399
  231. package/.docs/raw/docs/runtimes/a2a/overview.mdx +0 -60
  232. package/.docs/raw/docs/runtimes/a2a/quickstart.mdx +0 -216
  233. package/.docs/raw/docs/runtimes/ag-ui/agent-state.mdx +0 -124
  234. package/.docs/raw/docs/runtimes/ag-ui/overview.mdx +0 -70
  235. package/.docs/raw/docs/runtimes/ag-ui/quickstart.mdx +0 -243
  236. package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +0 -267
  237. package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +0 -61
  238. package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +0 -122
  239. package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +0 -135
  240. package/.docs/raw/docs/runtimes/ai-sdk/v6-legacy.mdx +0 -636
  241. package/.docs/raw/docs/runtimes/ai-sdk/v7.mdx +0 -731
  242. package/.docs/raw/docs/runtimes/claude-managed-agents.mdx +0 -118
  243. package/.docs/raw/docs/runtimes/concepts/adapters.mdx +0 -265
  244. package/.docs/raw/docs/runtimes/concepts/architecture.mdx +0 -167
  245. package/.docs/raw/docs/runtimes/concepts/stability.mdx +0 -68
  246. package/.docs/raw/docs/runtimes/concepts/threads.mdx +0 -513
  247. package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +0 -763
  248. package/.docs/raw/docs/runtimes/custom/data-stream.mdx +0 -339
  249. package/.docs/raw/docs/runtimes/custom/external-store.mdx +0 -957
  250. package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +0 -902
  251. package/.docs/raw/docs/runtimes/custom/overview.mdx +0 -71
  252. package/.docs/raw/docs/runtimes/eve/overview.mdx +0 -151
  253. package/.docs/raw/docs/runtimes/eve/quickstart.mdx +0 -192
  254. package/.docs/raw/docs/runtimes/google-adk/api.mdx +0 -256
  255. package/.docs/raw/docs/runtimes/google-adk/hooks.mdx +0 -784
  256. package/.docs/raw/docs/runtimes/google-adk/overview.mdx +0 -69
  257. package/.docs/raw/docs/runtimes/google-adk/quickstart.mdx +0 -229
  258. package/.docs/raw/docs/runtimes/langchain.mdx +0 -901
  259. package/.docs/raw/docs/runtimes/langgraph/agent-state.mdx +0 -181
  260. package/.docs/raw/docs/runtimes/langgraph/generative-ui.mdx +0 -305
  261. package/.docs/raw/docs/runtimes/langgraph/interrupts.mdx +0 -104
  262. package/.docs/raw/docs/runtimes/langgraph/overview.mdx +0 -84
  263. package/.docs/raw/docs/runtimes/langgraph/quickstart.mdx +0 -496
  264. package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +0 -144
  265. package/.docs/raw/docs/runtimes/langgraph/threads.mdx +0 -113
  266. package/.docs/raw/docs/runtimes/langgraph/tutorial/introduction.mdx +0 -29
  267. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-1.mdx +0 -93
  268. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-2.mdx +0 -347
  269. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-3.mdx +0 -393
  270. package/.docs/raw/docs/runtimes/opencode/hooks.mdx +0 -194
  271. package/.docs/raw/docs/runtimes/opencode/overview.mdx +0 -58
  272. package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +0 -119
  273. package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +0 -133
  274. package/.docs/raw/docs/tools/a2ui.mdx +0 -107
  275. package/.docs/raw/docs/tools/backend.mdx +0 -147
  276. package/.docs/raw/docs/tools/defining-tools.mdx +0 -574
  277. package/.docs/raw/docs/tools/dynamic-tools.mdx +0 -112
  278. package/.docs/raw/docs/tools/generative-ui-primitive.mdx +0 -180
  279. package/.docs/raw/docs/tools/generative-ui-slack.mdx +0 -167
  280. package/.docs/raw/docs/tools/generative-ui-teams.mdx +0 -160
  281. package/.docs/raw/docs/tools/generative-ui.mdx +0 -322
  282. package/.docs/raw/docs/tools/index.mdx +0 -72
  283. package/.docs/raw/docs/tools/interactables.mdx +0 -1084
  284. package/.docs/raw/docs/tools/mcp-apps.mdx +0 -363
  285. package/.docs/raw/docs/tools/mcp.mdx +0 -466
  286. package/.docs/raw/docs/tools/multi-agent.mdx +0 -237
  287. package/.docs/raw/docs/tools/openui.mdx +0 -175
  288. package/.docs/raw/docs/tools/tool-ui.mdx +0 -1020
  289. package/.docs/raw/docs/tools/user-managed-mcp.mdx +0 -428
  290. package/.docs/raw/docs/ui/assistant-modal.mdx +0 -166
  291. package/.docs/raw/docs/ui/assistant-sidebar.mdx +0 -89
  292. package/.docs/raw/docs/ui/attachment.mdx +0 -279
  293. package/.docs/raw/docs/ui/composer-trigger-popover.mdx +0 -247
  294. package/.docs/raw/docs/ui/context-display.mdx +0 -148
  295. package/.docs/raw/docs/ui/directive-text.mdx +0 -114
  296. package/.docs/raw/docs/ui/file.mdx +0 -159
  297. package/.docs/raw/docs/ui/follow-up-suggestions.mdx +0 -82
  298. package/.docs/raw/docs/ui/image.mdx +0 -102
  299. package/.docs/raw/docs/ui/markdown.mdx +0 -103
  300. package/.docs/raw/docs/ui/mcp-config.mdx +0 -107
  301. package/.docs/raw/docs/ui/mermaid.mdx +0 -92
  302. package/.docs/raw/docs/ui/message-timing.mdx +0 -93
  303. package/.docs/raw/docs/ui/model-selector.mdx +0 -455
  304. package/.docs/raw/docs/ui/part-grouping.mdx +0 -614
  305. package/.docs/raw/docs/ui/quote.mdx +0 -211
  306. package/.docs/raw/docs/ui/reasoning.mdx +0 -214
  307. package/.docs/raw/docs/ui/scrollbar.mdx +0 -77
  308. package/.docs/raw/docs/ui/sources.mdx +0 -186
  309. package/.docs/raw/docs/ui/streamdown.mdx +0 -392
  310. package/.docs/raw/docs/ui/syntax-highlighting.mdx +0 -205
  311. package/.docs/raw/docs/ui/thread-list.mdx +0 -411
  312. package/.docs/raw/docs/ui/thread.mdx +0 -559
  313. package/.docs/raw/docs/ui/tool-fallback.mdx +0 -141
  314. package/.docs/raw/docs/ui/tool-group.mdx +0 -240
  315. package/.docs/raw/docs/ui/voice.mdx +0 -173
  316. package/.docs/raw/docs/utilities/heat-graph.mdx +0 -237
  317. package/.docs/raw/docs/utilities/react-o11y.mdx +0 -362
  318. package/.docs/raw/docs/utilities/tw-shimmer.mdx +0 -212
  319. package/dist/constants.d.ts +0 -14
  320. package/dist/constants.d.ts.map +0 -1
  321. package/dist/constants.js +0 -19
  322. package/dist/constants.js.map +0 -1
  323. package/dist/prepare-docs/code-examples.d.ts +0 -5
  324. package/dist/prepare-docs/code-examples.d.ts.map +0 -1
  325. package/dist/prepare-docs/code-examples.js +0 -117
  326. package/dist/prepare-docs/code-examples.js.map +0 -1
  327. package/dist/prepare-docs/copy-raw.d.ts +0 -5
  328. package/dist/prepare-docs/copy-raw.d.ts.map +0 -1
  329. package/dist/prepare-docs/copy-raw.js +0 -49
  330. package/dist/prepare-docs/copy-raw.js.map +0 -1
  331. package/dist/prepare-docs/prepare.d.ts +0 -1
  332. package/dist/prepare-docs/prepare.js +0 -22
  333. package/dist/prepare-docs/prepare.js.map +0 -1
  334. package/dist/prompts/xulux-playground.d.ts +0 -12
  335. package/dist/prompts/xulux-playground.d.ts.map +0 -1
  336. package/dist/prompts/xulux-playground.js +0 -33
  337. package/dist/prompts/xulux-playground.js.map +0 -1
  338. package/dist/tools/docs.d.ts +0 -22
  339. package/dist/tools/docs.d.ts.map +0 -1
  340. package/dist/tools/docs.js +0 -177
  341. package/dist/tools/docs.js.map +0 -1
  342. package/dist/tools/examples.d.ts +0 -24
  343. package/dist/tools/examples.d.ts.map +0 -1
  344. package/dist/tools/examples.js +0 -87
  345. package/dist/tools/examples.js.map +0 -1
  346. package/dist/tools/resources.d.ts +0 -6
  347. package/dist/tools/resources.d.ts.map +0 -1
  348. package/dist/tools/resources.js +0 -75
  349. package/dist/tools/resources.js.map +0 -1
  350. package/dist/tools/search.d.ts +0 -24
  351. package/dist/tools/search.d.ts.map +0 -1
  352. package/dist/tools/search.js +0 -39
  353. package/dist/tools/search.js.map +0 -1
  354. package/dist/tools/tests/mcp-test-client.d.ts +0 -15
  355. package/dist/tools/tests/mcp-test-client.d.ts.map +0 -1
  356. package/dist/tools/tests/mcp-test-client.js +0 -68
  357. package/dist/tools/tests/mcp-test-client.js.map +0 -1
  358. package/dist/tools/tests/test-setup.d.ts +0 -7
  359. package/dist/tools/tests/test-setup.d.ts.map +0 -1
  360. package/dist/tools/tests/test-setup.js +0 -36
  361. package/dist/tools/tests/test-setup.js.map +0 -1
  362. package/dist/tools/xulux-templates.d.ts +0 -58
  363. package/dist/tools/xulux-templates.d.ts.map +0 -1
  364. package/dist/tools/xulux-templates.js +0 -84
  365. package/dist/tools/xulux-templates.js.map +0 -1
  366. package/dist/utils/cache.d.ts +0 -5
  367. package/dist/utils/cache.d.ts.map +0 -1
  368. package/dist/utils/cache.js +0 -18
  369. package/dist/utils/cache.js.map +0 -1
  370. package/dist/utils/logger.d.ts +0 -10
  371. package/dist/utils/logger.d.ts.map +0 -1
  372. package/dist/utils/logger.js +0 -20
  373. package/dist/utils/logger.js.map +0 -1
  374. package/dist/utils/mcp-format.d.ts +0 -11
  375. package/dist/utils/mcp-format.d.ts.map +0 -1
  376. package/dist/utils/mcp-format.js +0 -14
  377. package/dist/utils/mcp-format.js.map +0 -1
  378. package/dist/utils/mdx.d.ts +0 -12
  379. package/dist/utils/mdx.d.ts.map +0 -1
  380. package/dist/utils/mdx.js +0 -45
  381. package/dist/utils/mdx.js.map +0 -1
  382. package/dist/utils/paths.d.ts +0 -12
  383. package/dist/utils/paths.d.ts.map +0 -1
  384. package/dist/utils/paths.js +0 -93
  385. package/dist/utils/paths.js.map +0 -1
  386. package/dist/utils/search.d.ts +0 -10
  387. package/dist/utils/search.d.ts.map +0 -1
  388. package/dist/utils/search.js +0 -97
  389. package/dist/utils/search.js.map +0 -1
  390. package/dist/utils/security.d.ts +0 -5
  391. package/dist/utils/security.d.ts.map +0 -1
  392. package/dist/utils/security.js +0 -22
  393. package/dist/utils/security.js.map +0 -1
  394. package/dist/xulux/catalog-client.d.ts +0 -14
  395. package/dist/xulux/catalog-client.d.ts.map +0 -1
  396. package/dist/xulux/catalog-client.js +0 -112
  397. package/dist/xulux/catalog-client.js.map +0 -1
  398. package/dist/xulux/fallback-catalog.d.ts +0 -7
  399. package/dist/xulux/fallback-catalog.d.ts.map +0 -1
  400. package/dist/xulux/fallback-catalog.js +0 -47
  401. package/dist/xulux/fallback-catalog.js.map +0 -1
  402. package/dist/xulux/fetch-sandbox.d.ts +0 -5
  403. package/dist/xulux/fetch-sandbox.d.ts.map +0 -1
  404. package/dist/xulux/fetch-sandbox.js +0 -40
  405. package/dist/xulux/fetch-sandbox.js.map +0 -1
  406. package/dist/xulux/template-service.d.ts +0 -84
  407. package/dist/xulux/template-service.d.ts.map +0 -1
  408. package/dist/xulux/template-service.js +0 -223
  409. package/dist/xulux/template-service.js.map +0 -1
  410. package/dist/xulux/types.d.ts +0 -55
  411. package/dist/xulux/types.d.ts.map +0 -1
  412. package/dist/xulux/types.js +0 -6
  413. package/dist/xulux/types.js.map +0 -1
  414. package/src/constants.ts +0 -24
  415. package/src/prepare-docs/code-examples.ts +0 -158
  416. package/src/prepare-docs/copy-raw.ts +0 -50
  417. package/src/prepare-docs/prepare.ts +0 -24
  418. package/src/prompts/xulux-playground.ts +0 -36
  419. package/src/tools/docs.ts +0 -255
  420. package/src/tools/examples.ts +0 -114
  421. package/src/tools/resources.ts +0 -111
  422. package/src/tools/search.ts +0 -46
  423. package/src/tools/tests/completions.test.ts +0 -60
  424. package/src/tools/tests/directory-size-cap.test.ts +0 -50
  425. package/src/tools/tests/docs.test.ts +0 -147
  426. package/src/tools/tests/examples.test.ts +0 -94
  427. package/src/tools/tests/integration.test.ts +0 -45
  428. package/src/tools/tests/json-parsing.test.ts +0 -23
  429. package/src/tools/tests/listings-cache.test.ts +0 -19
  430. package/src/tools/tests/mcp-protocol.test.ts +0 -216
  431. package/src/tools/tests/mcp-test-client.ts +0 -111
  432. package/src/tools/tests/path-traversal.test.ts +0 -84
  433. package/src/tools/tests/resources.test.ts +0 -133
  434. package/src/tools/tests/search.test.ts +0 -37
  435. package/src/tools/tests/test-setup.ts +0 -50
  436. package/src/tools/tests/xulux-templates.test.ts +0 -325
  437. package/src/tools/xulux-templates.ts +0 -141
  438. package/src/utils/cache.ts +0 -20
  439. package/src/utils/logger.ts +0 -20
  440. package/src/utils/mcp-format.ts +0 -14
  441. package/src/utils/mdx.ts +0 -59
  442. package/src/utils/paths.ts +0 -139
  443. package/src/utils/search.ts +0 -131
  444. package/src/utils/security.ts +0 -52
  445. package/src/utils/tests/cache.test.ts +0 -51
  446. package/src/utils/tests/mcp-format.test.ts +0 -22
  447. package/src/utils/tests/security.test.ts +0 -119
  448. package/src/xulux/catalog-client.ts +0 -150
  449. package/src/xulux/fallback-catalog.ts +0 -63
  450. package/src/xulux/fetch-sandbox.ts +0 -56
  451. package/src/xulux/template-service.ts +0 -406
  452. package/src/xulux/types.ts +0 -64
@@ -1,352 +0,0 @@
1
- ---
2
- title: ActionBar
3
- description: Build message action buttons with auto-hide, copy state, and intelligent disabling.
4
- platforms: ["react"]
5
- ---
6
-
7
- import { ActionBarPrimitiveSample } from "@/components/pages/docs/samples/action-bar-primitive";
8
- import { ActionBarPrimitive as ActionBarPrimitiveDocs } from "@/generated/primitiveDocs";
9
-
10
- The ActionBar primitive provides message actions: copy, reload, edit, feedback, speech, and export. It handles intelligent visibility with auto-hide on hover, automatic disabling based on message state, and floating behavior. You compose the buttons; the primitive handles action state and availability.
11
-
12
- <Tabs items={["Preview", "Code"]}>
13
- <Tab>
14
- <ActionBarPrimitiveSample />
15
- </Tab>
16
- <Tab>
17
- ```tsx
18
- import {
19
- ActionBarPrimitive,
20
- MessagePrimitive,
21
- } from "@assistant-ui/react";
22
- import { CheckIcon, CopyIcon, RefreshCwIcon } from "lucide-react";
23
-
24
- function AssistantMessage() {
25
- return (
26
- <MessagePrimitive.Root className="group flex flex-col items-start gap-1">
27
- <div className="max-w-[80%] rounded-2xl bg-muted px-4 py-2.5 text-sm">
28
- <MessagePrimitive.Parts />
29
- </div>
30
- <ActionBarPrimitive.Root
31
- hideWhenRunning
32
- autohide="not-last"
33
- autohideFloat="always"
34
- className="flex gap-0.5 data-[floating]:opacity-0 data-[floating]:group-hover:opacity-100 data-[floating]:transition-opacity"
35
- >
36
- <ActionBarPrimitive.Copy className="group/copy flex size-8 items-center justify-center rounded-lg text-muted-foreground hover:bg-muted hover:text-foreground">
37
- <CopyIcon className="size-4 group-data-[copied]/copy:hidden" />
38
- <CheckIcon className="hidden size-4 group-data-[copied]/copy:block" />
39
- </ActionBarPrimitive.Copy>
40
- <ActionBarPrimitive.Reload className="flex size-8 items-center justify-center rounded-lg text-muted-foreground hover:bg-muted hover:text-foreground">
41
- <RefreshCwIcon className="size-4" />
42
- </ActionBarPrimitive.Reload>
43
- </ActionBarPrimitive.Root>
44
- </MessagePrimitive.Root>
45
- );
46
- }
47
- ```
48
- </Tab>
49
- </Tabs>
50
-
51
- ## Quick Start
52
-
53
- A minimal action bar with copy and reload:
54
-
55
- ```tsx
56
- import { ActionBarPrimitive } from "@assistant-ui/react";
57
-
58
- <ActionBarPrimitive.Root>
59
- <ActionBarPrimitive.Copy>Copy</ActionBarPrimitive.Copy>
60
- <ActionBarPrimitive.Reload>Reload</ActionBarPrimitive.Reload>
61
- </ActionBarPrimitive.Root>
62
- ```
63
-
64
- `Root` renders a `<div>`, action buttons render `<button>` elements. Each button auto-disables when its action isn't available (e.g., Copy is disabled when there's no content, Reload is disabled while the model is running).
65
-
66
- <Callout type="info">
67
- ActionBar must be placed inside a `MessagePrimitive.Root` because it reads message state from the nearest message context.
68
- </Callout>
69
-
70
- <Callout type="info">
71
- Runtime setup: primitives require runtime context. Wrap your UI in `AssistantRuntimeProvider` with a runtime (for example `useLocalRuntime(...)`). See [Pick a Runtime](/docs/runtimes/pick-a-runtime).
72
- </Callout>
73
-
74
- ## Core Concepts
75
-
76
- ### Auto-Hide & Floating
77
-
78
- The `autohide` prop controls when the action bar is visible:
79
-
80
- - **`"never"`** (default): always visible
81
- - **`"not-last"`**: hidden on all messages except the last, shown on hover
82
- - **`"always"`**: hidden on all messages, shown on hover
83
-
84
- When `autohideFloat` is set, hidden action bars get the `data-floating` attribute instead of being removed from the DOM. This lets you animate them with CSS:
85
-
86
- ```tsx
87
- <ActionBarPrimitive.Root
88
- autohide="not-last"
89
- autohideFloat="always"
90
- className="data-[floating]:opacity-0 data-[floating]:group-hover:opacity-100 data-[floating]:transition-opacity"
91
- >
92
- {/* buttons */}
93
- </ActionBarPrimitive.Root>
94
- ```
95
-
96
- The `"single-branch"` option for `autohideFloat` only floats when the message has a single branch (no alternatives).
97
-
98
- ### Automatic Disabling
99
-
100
- Action buttons automatically disable based on state, with no manual wiring needed:
101
-
102
- - **Copy**: disabled when there's no copyable text content or an assistant message is still running
103
- - **Reload**: disabled when the thread is running or the message role isn't assistant
104
- - **Edit**: disabled when the message is already being edited
105
- - **Speak**: disabled when there's no speakable text or an assistant message is still running
106
-
107
- ### Copy State
108
-
109
- After clicking Copy, the button gets a `data-copied` attribute for a configurable duration (default 3 seconds). Use this for visual feedback:
110
-
111
- ```tsx
112
- <ActionBarPrimitive.Copy copiedDuration={2000} className="group">
113
- <CopyIcon className="group-data-[copied]:hidden" />
114
- <CheckIcon className="hidden group-data-[copied]:block" />
115
- </ActionBarPrimitive.Copy>
116
- ```
117
-
118
- ### Feedback Buttons
119
-
120
- Feedback buttons track submission state with `data-submitted`:
121
-
122
- ```tsx
123
- <ActionBarPrimitive.FeedbackPositive className="data-[submitted]:text-green-500">
124
- 👍
125
- </ActionBarPrimitive.FeedbackPositive>
126
- <ActionBarPrimitive.FeedbackNegative className="data-[submitted]:text-red-500">
127
- 👎
128
- </ActionBarPrimitive.FeedbackNegative>
129
- ```
130
-
131
- ## Parts
132
-
133
- ### Root
134
-
135
- Container with auto-hide and floating behavior. Renders a `<div>` element unless `asChild` is set.
136
-
137
- ```tsx
138
- <ActionBarPrimitive.Root
139
- hideWhenRunning
140
- autohide="not-last"
141
- autohideFloat="always"
142
- className="flex gap-1"
143
- >
144
- <ActionBarPrimitive.Copy>Copy</ActionBarPrimitive.Copy>
145
- <ActionBarPrimitive.Reload>Reload</ActionBarPrimitive.Reload>
146
- </ActionBarPrimitive.Root>
147
- ```
148
-
149
- <PrimitivesTypeTable type="ActionBarPrimitiveRootProps" parameters={ActionBarPrimitiveDocs.Root.props.filter(p => p.name !== "asChild")} />
150
-
151
- ### Copy
152
-
153
- Copies message text to clipboard. Renders a `<button>` element unless `asChild` is set.
154
-
155
- ```tsx
156
- <ActionBarPrimitive.Copy copiedDuration={2000} className="group">
157
- <CopyIcon className="group-data-[copied]:hidden" />
158
- <CheckIcon className="hidden group-data-[copied]:block" />
159
- </ActionBarPrimitive.Copy>
160
- ```
161
-
162
- <PrimitivesTypeTable type="ActionBarPrimitiveCopyProps" parameters={ActionBarPrimitiveDocs.Copy.props.filter(p => p.name !== "asChild")} />
163
-
164
- ### Reload
165
-
166
- Reloads or regenerates the current assistant message. Renders a `<button>` element unless `asChild` is set.
167
-
168
- ```tsx
169
- <ActionBarPrimitive.Reload className="rounded-md px-2 py-1 text-sm hover:bg-muted">
170
- Regenerate
171
- </ActionBarPrimitive.Reload>
172
- ```
173
-
174
- ### Edit
175
-
176
- Enters edit mode for the current message. Renders a `<button>` element unless `asChild` is set.
177
-
178
- ```tsx
179
- <ActionBarPrimitive.Edit className="rounded-md px-2 py-1 text-sm hover:bg-muted">
180
- Edit
181
- </ActionBarPrimitive.Edit>
182
- ```
183
-
184
- ### Speak
185
-
186
- Starts speech playback for the current message. Renders a `<button>` element unless `asChild` is set.
187
-
188
- ```tsx
189
- <ActionBarPrimitive.Speak className="rounded-md px-2 py-1 text-sm hover:bg-muted">
190
- Play
191
- </ActionBarPrimitive.Speak>
192
- ```
193
-
194
- ### StopSpeaking
195
-
196
- Stops speech playback for the current message. Renders a `<button>` element unless `asChild` is set.
197
-
198
- ```tsx
199
- <ActionBarPrimitive.StopSpeaking className="rounded-md px-2 py-1 text-sm hover:bg-muted">
200
- Stop
201
- </ActionBarPrimitive.StopSpeaking>
202
- ```
203
-
204
- ### FeedbackPositive
205
-
206
- Submits positive feedback for the current message. Renders a `<button>` element unless `asChild` is set.
207
-
208
- ```tsx
209
- <ActionBarPrimitive.FeedbackPositive className="rounded-md px-2 py-1 text-sm hover:bg-muted">
210
- Helpful
211
- </ActionBarPrimitive.FeedbackPositive>
212
- ```
213
-
214
- ### FeedbackNegative
215
-
216
- Submits negative feedback for the current message. Renders a `<button>` element unless `asChild` is set.
217
-
218
- ```tsx
219
- <ActionBarPrimitive.FeedbackNegative className="rounded-md px-2 py-1 text-sm hover:bg-muted">
220
- Not helpful
221
- </ActionBarPrimitive.FeedbackNegative>
222
- ```
223
-
224
- ### ExportMarkdown
225
-
226
- Downloads message as Markdown or calls custom handler. Renders a `<button>` element unless `asChild` is set.
227
-
228
- ```tsx
229
- <ActionBarPrimitive.ExportMarkdown
230
- onExport={async (content) => {
231
- await navigator.clipboard.writeText(content);
232
- }}
233
- >
234
- Export
235
- </ActionBarPrimitive.ExportMarkdown>
236
- ```
237
-
238
- <PrimitivesTypeTable type="ActionBarPrimitiveExportMarkdownProps" parameters={ActionBarPrimitiveDocs.ExportMarkdown.props.filter(p => p.name !== "asChild")} />
239
-
240
- ## Patterns
241
-
242
- ### Assistant Action Bar
243
-
244
- ```tsx
245
- <ActionBarPrimitive.Root
246
- hideWhenRunning
247
- autohide="not-last"
248
- autohideFloat="single-branch"
249
- >
250
- <ActionBarPrimitive.Copy>Copy</ActionBarPrimitive.Copy>
251
- <ActionBarPrimitive.Reload>Regenerate</ActionBarPrimitive.Reload>
252
- <ActionBarPrimitive.ExportMarkdown>Export</ActionBarPrimitive.ExportMarkdown>
253
- </ActionBarPrimitive.Root>
254
- ```
255
-
256
- ### User Action Bar
257
-
258
- ```tsx
259
- <ActionBarPrimitive.Root hideWhenRunning autohide="not-last">
260
- <ActionBarPrimitive.Edit>Edit</ActionBarPrimitive.Edit>
261
- </ActionBarPrimitive.Root>
262
- ```
263
-
264
- ### Speech Toggle
265
-
266
- ```tsx
267
- <AuiIf condition={(s) => !s.message.isSpeaking}>
268
- <ActionBarPrimitive.Speak>Play</ActionBarPrimitive.Speak>
269
- </AuiIf>
270
- <AuiIf condition={(s) => s.message.isSpeaking}>
271
- <ActionBarPrimitive.StopSpeaking>Stop</ActionBarPrimitive.StopSpeaking>
272
- </AuiIf>
273
- ```
274
-
275
- <Callout type="info">
276
- Speech requires a `SpeechSynthesisAdapter` configured in your runtime. See [Speech & Dictation](/docs/guides/speech) for setup.
277
- </Callout>
278
-
279
- ### Export with Custom Handler
280
-
281
- ```tsx
282
- <ActionBarPrimitive.ExportMarkdown
283
- onExport={async (content) => {
284
- await navigator.clipboard.writeText(content);
285
- toast("Copied as Markdown!");
286
- }}
287
- >
288
- Copy Markdown
289
- </ActionBarPrimitive.ExportMarkdown>
290
- ```
291
-
292
- ## Overflow Menu (ActionBarMorePrimitive)
293
-
294
- `ActionBarMorePrimitive` is a Radix DropdownMenu for overflow actions, using the same pattern as `ThreadListItemMorePrimitive`. Use it to group secondary actions behind a "more" button.
295
-
296
- `ActionBarMorePrimitive.Item` maps to Radix `DropdownMenu.Item`, so it preserves menu keyboard/focus semantics. Prefer `asChild` when composing an `ActionBarPrimitive` button into a menu item.
297
-
298
- `ActionBarMorePrimitive.Content` defaults to `sideOffset={4}` so the menu has a small gap from the trigger.
299
-
300
- | Part | Element | Purpose |
301
- |------|---------|---------|
302
- | `Root` | N/A | Radix DropdownMenu provider |
303
- | `Trigger` | `<button>` | Opens the dropdown |
304
- | `Content` | `<div>` (portal) | The dropdown panel |
305
- | `Item` | `<div>` | A menu item |
306
- | `Separator` | `<div>` | Visual separator between items |
307
-
308
- ```tsx
309
- import {
310
- ActionBarPrimitive,
311
- ActionBarMorePrimitive,
312
- } from "@assistant-ui/react";
313
- import { MoreHorizontalIcon } from "lucide-react";
314
-
315
- <ActionBarPrimitive.Root>
316
- <ActionBarPrimitive.Copy>Copy</ActionBarPrimitive.Copy>
317
- <ActionBarPrimitive.Reload>Regenerate</ActionBarPrimitive.Reload>
318
- <ActionBarMorePrimitive.Root>
319
- <ActionBarMorePrimitive.Trigger className="flex size-8 items-center justify-center rounded-lg hover:bg-muted">
320
- <MoreHorizontalIcon className="size-4" />
321
- </ActionBarMorePrimitive.Trigger>
322
- <ActionBarMorePrimitive.Content side="bottom" align="end">
323
- <ActionBarMorePrimitive.Item asChild>
324
- <ActionBarPrimitive.ExportMarkdown>
325
- Export Markdown
326
- </ActionBarPrimitive.ExportMarkdown>
327
- </ActionBarMorePrimitive.Item>
328
- <ActionBarMorePrimitive.Separator />
329
- <ActionBarMorePrimitive.Item asChild>
330
- <ActionBarPrimitive.FeedbackPositive>
331
- Helpful
332
- </ActionBarPrimitive.FeedbackPositive>
333
- </ActionBarMorePrimitive.Item>
334
- </ActionBarMorePrimitive.Content>
335
- </ActionBarMorePrimitive.Root>
336
- </ActionBarPrimitive.Root>
337
- ```
338
-
339
- See the [ActionBarMorePrimitive API Reference](/docs/api-reference/primitives/action-bar-more) for full prop details.
340
-
341
- ## Relationship to Components
342
-
343
- The shadcn [Thread](/docs/ui/thread) component uses `ActionBarPrimitive` inside its `AssistantMessage` (with Copy, Reload, and an export dropdown) and `UserMessage` (with Edit). If those defaults work, use the component. Reach for `ActionBarPrimitive` directly when you need different actions, custom layout, or actions outside the standard thread UI.
344
-
345
- ActionBar is commonly paired with [BranchPicker](/docs/primitives/branch-picker) for navigating between alternative responses on assistant messages.
346
-
347
- ## API Reference
348
-
349
- For full prop details on every part, see the [ActionBarPrimitive API Reference](/docs/api-reference/primitives/action-bar).
350
-
351
- Related:
352
- - [ActionBarMorePrimitive API Reference](/docs/api-reference/primitives/action-bar-more)
@@ -1,216 +0,0 @@
1
- ---
2
- title: AssistantModal
3
- description: A floating chat popover with a fixed-position trigger button that opens a chat panel.
4
- platforms: ["react"]
5
- ---
6
-
7
- import { AssistantModalSample } from "@/components/pages/docs/samples/assistant-modal";
8
- import { AssistantModalPrimitive as AssistantModalPrimitiveDocs } from "@/generated/primitiveDocs";
9
-
10
- The AssistantModal primitive is a floating chat popover built on [Radix Popover](https://www.radix-ui.com/primitives/docs/components/popover). A trigger button opens a chat panel, which is a common floating assistant launcher pattern. You control the trigger, content, positioning, and animations.
11
-
12
- <Tabs items={["Preview", "Code"]}>
13
- <Tab>
14
- <AssistantModalSample />
15
- </Tab>
16
- <Tab>
17
- ```tsx
18
- import { AssistantModalPrimitive } from "@assistant-ui/react";
19
-
20
- function MinimalAssistantModal() {
21
- return (
22
- <AssistantModalPrimitive.Root>
23
- <AssistantModalPrimitive.Anchor>
24
- <AssistantModalPrimitive.Trigger>
25
- Open Chat
26
- </AssistantModalPrimitive.Trigger>
27
- </AssistantModalPrimitive.Anchor>
28
- <AssistantModalPrimitive.Content>
29
- {/* Your Thread goes here */}
30
- </AssistantModalPrimitive.Content>
31
- </AssistantModalPrimitive.Root>
32
- );
33
- }
34
- ```
35
- </Tab>
36
- </Tabs>
37
-
38
- ## Quick Start
39
-
40
- Minimal example:
41
-
42
- ```tsx
43
- import { AssistantModalPrimitive } from "@assistant-ui/react";
44
-
45
- <AssistantModalPrimitive.Root>
46
- <AssistantModalPrimitive.Anchor>
47
- <AssistantModalPrimitive.Trigger>Open</AssistantModalPrimitive.Trigger>
48
- </AssistantModalPrimitive.Anchor>
49
- <AssistantModalPrimitive.Content>
50
- <Thread />
51
- </AssistantModalPrimitive.Content>
52
- </AssistantModalPrimitive.Root>
53
- ```
54
-
55
- `Root` is a Radix Popover provider (no DOM), `Trigger` renders a `<button>`, `Anchor` renders a `<div>`, and `Content` renders a `<div>` inside a portal. Add your own classes, animations, and layout.
56
-
57
- <Callout type="info">
58
- Runtime setup: primitives require runtime context. Wrap your UI in `AssistantRuntimeProvider` with a runtime (for example `useLocalRuntime(...)`). See [Pick a Runtime](/docs/runtimes/pick-a-runtime).
59
- </Callout>
60
-
61
- ## Core Concepts
62
-
63
- ### Popover Architecture
64
-
65
- AssistantModal is built directly on Radix Popover. `Root` manages open/close state, `Trigger` toggles it, `Anchor` positions the popover, and `Content` is the floating panel. All Radix Popover props are available on the corresponding parts.
66
-
67
- ### Anchor vs Trigger
68
-
69
- `Content` positions itself relative to `Anchor`, not `Trigger`. The common pattern is wrapping `Trigger` inside `Anchor` so the popover aligns to a larger area (like a fixed-position button container) rather than the button itself:
70
-
71
- ```tsx
72
- <AssistantModalPrimitive.Anchor className="fixed right-4 bottom-4 size-11">
73
- <AssistantModalPrimitive.Trigger>
74
- Open
75
- </AssistantModalPrimitive.Trigger>
76
- </AssistantModalPrimitive.Anchor>
77
- ```
78
-
79
- ### Auto-Open on Run Start
80
-
81
- The `unstable_openOnRunStart` prop (default `true`) automatically opens the modal when the assistant starts responding. This means if a user triggers a run programmatically while the modal is closed, it pops open to show the response. Set to `false` to disable.
82
-
83
- ### Dismiss Behavior
84
-
85
- `Content` uses `dissmissOnInteractOutside` *(intentional current API spelling, with the extra `s`)* and defaults it to `false`. Clicking outside the modal does **not** close it. This matches expected chat UX where users interact with the page while keeping the chat open. Set it to `true` for standard popover dismiss behavior.
86
-
87
- ### Open/Close Animations
88
-
89
- `Content` exposes `data-[state=open]` and `data-[state=closed]` attributes for CSS animations:
90
-
91
- ```tsx
92
- <AssistantModalPrimitive.Content
93
- className="data-[state=open]:animate-in data-[state=open]:fade-in data-[state=closed]:animate-out data-[state=closed]:fade-out"
94
- >
95
- ```
96
-
97
- ## Parts
98
-
99
- ### Root
100
-
101
- Radix Popover provider, manages open/close state. No DOM element rendered.
102
-
103
- ```tsx
104
- <AssistantModalPrimitive.Root unstable_openOnRunStart={false}>
105
- ...
106
- </AssistantModalPrimitive.Root>
107
- ```
108
-
109
- <PrimitivesTypeTable type="AssistantModalPrimitiveRootProps" parameters={AssistantModalPrimitiveDocs.Root.props} />
110
-
111
- ### Trigger
112
-
113
- Button that toggles the modal open and closed. Renders a `<button>` element unless `asChild` is set.
114
-
115
- ```tsx
116
- <AssistantModalPrimitive.Trigger className="rounded-full bg-primary px-4 py-2 text-primary-foreground">
117
- Open Chat
118
- </AssistantModalPrimitive.Trigger>
119
- ```
120
-
121
- ### Anchor
122
-
123
- Positions the trigger and content relative to a shared anchor. Renders a `<div>` element unless `asChild` is set.
124
-
125
- ```tsx
126
- <AssistantModalPrimitive.Anchor className="fixed right-4 bottom-4">
127
- <AssistantModalPrimitive.Trigger>Chat</AssistantModalPrimitive.Trigger>
128
- </AssistantModalPrimitive.Anchor>
129
- ```
130
-
131
- ### Content
132
-
133
- The floating chat panel. Renders a `<div>` element inside a portal.
134
-
135
- ```tsx
136
- <AssistantModalPrimitive.Content
137
- sideOffset={16}
138
- className="h-[600px] w-[400px] rounded-xl border bg-background shadow-lg"
139
- >
140
- <Thread />
141
- </AssistantModalPrimitive.Content>
142
- ```
143
-
144
- <PrimitivesTypeTable type="AssistantModalPrimitiveContentProps" parameters={AssistantModalPrimitiveDocs.Content.props} />
145
-
146
- ## Patterns
147
-
148
- ### Floating Bottom-Right Widget
149
-
150
- ```tsx
151
- <AssistantModalPrimitive.Root>
152
- <AssistantModalPrimitive.Anchor className="fixed right-4 bottom-4 size-11">
153
- <AssistantModalPrimitive.Trigger className="size-full rounded-full bg-primary text-primary-foreground shadow-lg">
154
- <BotIcon className="size-6" />
155
- </AssistantModalPrimitive.Trigger>
156
- </AssistantModalPrimitive.Anchor>
157
- <AssistantModalPrimitive.Content
158
- sideOffset={16}
159
- className="h-[600px] w-[400px] rounded-xl border bg-background shadow-lg"
160
- >
161
- <Thread />
162
- </AssistantModalPrimitive.Content>
163
- </AssistantModalPrimitive.Root>
164
- ```
165
-
166
- ### Trigger Icon Swap
167
-
168
- The `Trigger` button receives a `data-state` attribute from Radix (`"open"` or `"closed"`). To pass that state down to child icons, use `asChild` with a wrapper component that destructures and forwards it:
169
-
170
- ```tsx
171
- import { forwardRef } from "react";
172
-
173
- const ModalButton = forwardRef<
174
- HTMLButtonElement,
175
- React.ComponentPropsWithoutRef<"button"> & { "data-state"?: string }
176
- >(({ "data-state": state, ...props }, ref) => (
177
- <button ref={ref} {...props} className="relative size-11 rounded-full">
178
- <BotIcon
179
- data-state={state}
180
- className="absolute size-6 transition-all data-[state=open]:rotate-90 data-[state=open]:scale-0"
181
- />
182
- <XIcon
183
- data-state={state}
184
- className="absolute size-6 transition-all data-[state=closed]:-rotate-90 data-[state=closed]:scale-0"
185
- />
186
- </button>
187
- ));
188
-
189
- <AssistantModalPrimitive.Trigger asChild>
190
- <ModalButton />
191
- </AssistantModalPrimitive.Trigger>
192
- ```
193
-
194
- ### Custom Portal Container
195
-
196
- Render the content inside a specific container instead of `document.body`:
197
-
198
- ```tsx
199
- <AssistantModalPrimitive.Content
200
- portalProps={{ container: myContainerRef.current }}
201
- >
202
- <Thread />
203
- </AssistantModalPrimitive.Content>
204
- ```
205
-
206
- ## Relationship to Components
207
-
208
- The shadcn [AssistantModal](/docs/ui/assistant-modal) component wraps these primitives with slide/fade animations, icon transitions between open and closed states, and responsive sizing. Start there for a prebuilt floating chat widget.
209
-
210
- ## API Reference
211
-
212
- For full prop details on every part, see the [AssistantModalPrimitive API Reference](/docs/api-reference/primitives/assistant-modal).
213
-
214
- Related:
215
- - [ThreadPrimitive](/docs/primitives/thread)
216
- - [ComposerPrimitive](/docs/primitives/composer)