@agent-native/toolkit 0.0.0-beta-20260819143124

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 (1070) hide show
  1. package/README.md +151 -0
  2. package/agent-native.eject.json +588 -0
  3. package/dist/app-shell/header-actions.d.ts +18 -0
  4. package/dist/app-shell/header-actions.d.ts.map +1 -0
  5. package/dist/app-shell/header-actions.js +52 -0
  6. package/dist/app-shell/header-actions.js.map +1 -0
  7. package/dist/app-shell/index.d.ts +3 -0
  8. package/dist/app-shell/index.d.ts.map +1 -0
  9. package/dist/app-shell/index.js +3 -0
  10. package/dist/app-shell/index.js.map +1 -0
  11. package/dist/app-shell/sidebar-footer-actions.d.ts +14 -0
  12. package/dist/app-shell/sidebar-footer-actions.d.ts.map +1 -0
  13. package/dist/app-shell/sidebar-footer-actions.js +10 -0
  14. package/dist/app-shell/sidebar-footer-actions.js.map +1 -0
  15. package/dist/app-shell/sidebar-footer-actions.spec.d.ts +2 -0
  16. package/dist/app-shell/sidebar-footer-actions.spec.d.ts.map +1 -0
  17. package/dist/app-shell/sidebar-footer-actions.spec.js +43 -0
  18. package/dist/app-shell/sidebar-footer-actions.spec.js.map +1 -0
  19. package/dist/canvas-annotations/CanvasCommentPins.d.ts +68 -0
  20. package/dist/canvas-annotations/CanvasCommentPins.d.ts.map +1 -0
  21. package/dist/canvas-annotations/CanvasCommentPins.js +513 -0
  22. package/dist/canvas-annotations/CanvasCommentPins.js.map +1 -0
  23. package/dist/canvas-annotations/DrawOverlay.d.ts +108 -0
  24. package/dist/canvas-annotations/DrawOverlay.d.ts.map +1 -0
  25. package/dist/canvas-annotations/DrawOverlay.js +746 -0
  26. package/dist/canvas-annotations/DrawOverlay.js.map +1 -0
  27. package/dist/canvas-annotations/DrawOverlay.spec.d.ts +2 -0
  28. package/dist/canvas-annotations/DrawOverlay.spec.d.ts.map +1 -0
  29. package/dist/canvas-annotations/DrawOverlay.spec.js +111 -0
  30. package/dist/canvas-annotations/DrawOverlay.spec.js.map +1 -0
  31. package/dist/canvas-annotations/index.d.ts +4 -0
  32. package/dist/canvas-annotations/index.d.ts.map +1 -0
  33. package/dist/canvas-annotations/index.js +3 -0
  34. package/dist/canvas-annotations/index.js.map +1 -0
  35. package/dist/canvas-annotations/types.d.ts +8 -0
  36. package/dist/canvas-annotations/types.d.ts.map +1 -0
  37. package/dist/canvas-annotations/types.js +2 -0
  38. package/dist/canvas-annotations/types.js.map +1 -0
  39. package/dist/canvas-interactions/canvas-interactions.d.ts +334 -0
  40. package/dist/canvas-interactions/canvas-interactions.d.ts.map +1 -0
  41. package/dist/canvas-interactions/canvas-interactions.js +486 -0
  42. package/dist/canvas-interactions/canvas-interactions.js.map +1 -0
  43. package/dist/canvas-interactions/canvas-interactions.spec.d.ts +2 -0
  44. package/dist/canvas-interactions/canvas-interactions.spec.d.ts.map +1 -0
  45. package/dist/canvas-interactions/canvas-interactions.spec.js +593 -0
  46. package/dist/canvas-interactions/canvas-interactions.spec.js.map +1 -0
  47. package/dist/canvas-interactions/index.d.ts +2 -0
  48. package/dist/canvas-interactions/index.d.ts.map +1 -0
  49. package/dist/canvas-interactions/index.js +2 -0
  50. package/dist/canvas-interactions/index.js.map +1 -0
  51. package/dist/chat-history/ChatHistoryList.d.ts +103 -0
  52. package/dist/chat-history/ChatHistoryList.d.ts.map +1 -0
  53. package/dist/chat-history/ChatHistoryList.js +102 -0
  54. package/dist/chat-history/ChatHistoryList.js.map +1 -0
  55. package/dist/chat-history/ChatHistoryList.spec.d.ts +2 -0
  56. package/dist/chat-history/ChatHistoryList.spec.d.ts.map +1 -0
  57. package/dist/chat-history/ChatHistoryList.spec.js +293 -0
  58. package/dist/chat-history/ChatHistoryList.spec.js.map +1 -0
  59. package/dist/chat-history/ChatHistoryRail.d.ts +33 -0
  60. package/dist/chat-history/ChatHistoryRail.d.ts.map +1 -0
  61. package/dist/chat-history/ChatHistoryRail.js +35 -0
  62. package/dist/chat-history/ChatHistoryRail.js.map +1 -0
  63. package/dist/chat-history/ChatHistoryRail.spec.d.ts +2 -0
  64. package/dist/chat-history/ChatHistoryRail.spec.d.ts.map +1 -0
  65. package/dist/chat-history/ChatHistoryRail.spec.js +157 -0
  66. package/dist/chat-history/ChatHistoryRail.spec.js.map +1 -0
  67. package/dist/chat-history/index.d.ts +4 -0
  68. package/dist/chat-history/index.d.ts.map +1 -0
  69. package/dist/chat-history/index.js +4 -0
  70. package/dist/chat-history/index.js.map +1 -0
  71. package/dist/chat-history/useChatHistoryRailController.d.ts +26 -0
  72. package/dist/chat-history/useChatHistoryRailController.d.ts.map +1 -0
  73. package/dist/chat-history/useChatHistoryRailController.js +36 -0
  74. package/dist/chat-history/useChatHistoryRailController.js.map +1 -0
  75. package/dist/chat-history/useChatHistoryRailController.spec.d.ts +2 -0
  76. package/dist/chat-history/useChatHistoryRailController.spec.d.ts.map +1 -0
  77. package/dist/chat-history/useChatHistoryRailController.spec.js +101 -0
  78. package/dist/chat-history/useChatHistoryRailController.spec.js.map +1 -0
  79. package/dist/chat-history.css +469 -0
  80. package/dist/collab-ui/AgentPresenceChip.d.ts +12 -0
  81. package/dist/collab-ui/AgentPresenceChip.d.ts.map +1 -0
  82. package/dist/collab-ui/AgentPresenceChip.js +42 -0
  83. package/dist/collab-ui/AgentPresenceChip.js.map +1 -0
  84. package/dist/collab-ui/LiveCursorOverlay.d.ts +46 -0
  85. package/dist/collab-ui/LiveCursorOverlay.d.ts.map +1 -0
  86. package/dist/collab-ui/LiveCursorOverlay.js +125 -0
  87. package/dist/collab-ui/LiveCursorOverlay.js.map +1 -0
  88. package/dist/collab-ui/PresenceBar.d.ts +30 -0
  89. package/dist/collab-ui/PresenceBar.d.ts.map +1 -0
  90. package/dist/collab-ui/PresenceBar.js +172 -0
  91. package/dist/collab-ui/PresenceBar.js.map +1 -0
  92. package/dist/collab-ui/PresenceBar.spec.d.ts +2 -0
  93. package/dist/collab-ui/PresenceBar.spec.d.ts.map +1 -0
  94. package/dist/collab-ui/PresenceBar.spec.js +30 -0
  95. package/dist/collab-ui/PresenceBar.spec.js.map +1 -0
  96. package/dist/collab-ui/RecentEditHighlights.d.ts +46 -0
  97. package/dist/collab-ui/RecentEditHighlights.d.ts.map +1 -0
  98. package/dist/collab-ui/RecentEditHighlights.js +154 -0
  99. package/dist/collab-ui/RecentEditHighlights.js.map +1 -0
  100. package/dist/collab-ui/RemoteSelectionRings.d.ts +53 -0
  101. package/dist/collab-ui/RemoteSelectionRings.d.ts.map +1 -0
  102. package/dist/collab-ui/RemoteSelectionRings.js +130 -0
  103. package/dist/collab-ui/RemoteSelectionRings.js.map +1 -0
  104. package/dist/collab-ui/agent-identity.d.ts +9 -0
  105. package/dist/collab-ui/agent-identity.d.ts.map +1 -0
  106. package/dist/collab-ui/agent-identity.js +9 -0
  107. package/dist/collab-ui/agent-identity.js.map +1 -0
  108. package/dist/collab-ui/index.d.ts +9 -0
  109. package/dist/collab-ui/index.d.ts.map +1 -0
  110. package/dist/collab-ui/index.js +9 -0
  111. package/dist/collab-ui/index.js.map +1 -0
  112. package/dist/collab-ui/lead-client.d.ts +3 -0
  113. package/dist/collab-ui/lead-client.d.ts.map +1 -0
  114. package/dist/collab-ui/lead-client.js +29 -0
  115. package/dist/collab-ui/lead-client.js.map +1 -0
  116. package/dist/collab-ui/types.d.ts +48 -0
  117. package/dist/collab-ui/types.d.ts.map +1 -0
  118. package/dist/collab-ui/types.js +52 -0
  119. package/dist/collab-ui/types.js.map +1 -0
  120. package/dist/collab-ui/types.spec.d.ts +2 -0
  121. package/dist/collab-ui/types.spec.d.ts.map +1 -0
  122. package/dist/collab-ui/types.spec.js +15 -0
  123. package/dist/collab-ui/types.spec.js.map +1 -0
  124. package/dist/composer/AgentComposerFrame.d.ts +19 -0
  125. package/dist/composer/AgentComposerFrame.d.ts.map +1 -0
  126. package/dist/composer/AgentComposerFrame.js +17 -0
  127. package/dist/composer/AgentComposerFrame.js.map +1 -0
  128. package/dist/composer/ComposerPlusMenu.d.ts +30 -0
  129. package/dist/composer/ComposerPlusMenu.d.ts.map +1 -0
  130. package/dist/composer/ComposerPlusMenu.js +635 -0
  131. package/dist/composer/ComposerPlusMenu.js.map +1 -0
  132. package/dist/composer/ComposerPlusMenu.spec.d.ts +2 -0
  133. package/dist/composer/ComposerPlusMenu.spec.d.ts.map +1 -0
  134. package/dist/composer/ComposerPlusMenu.spec.js +12 -0
  135. package/dist/composer/ComposerPlusMenu.spec.js.map +1 -0
  136. package/dist/composer/MentionPopover.d.ts +29 -0
  137. package/dist/composer/MentionPopover.d.ts.map +1 -0
  138. package/dist/composer/MentionPopover.js +221 -0
  139. package/dist/composer/MentionPopover.js.map +1 -0
  140. package/dist/composer/PastedTextChip.d.ts +9 -0
  141. package/dist/composer/PastedTextChip.d.ts.map +1 -0
  142. package/dist/composer/PastedTextChip.js +71 -0
  143. package/dist/composer/PastedTextChip.js.map +1 -0
  144. package/dist/composer/PastedTextChip.spec.d.ts +2 -0
  145. package/dist/composer/PastedTextChip.spec.d.ts.map +1 -0
  146. package/dist/composer/PastedTextChip.spec.js +42 -0
  147. package/dist/composer/PastedTextChip.spec.js.map +1 -0
  148. package/dist/composer/PromptComposer.d.ts +151 -0
  149. package/dist/composer/PromptComposer.d.ts.map +1 -0
  150. package/dist/composer/PromptComposer.js +322 -0
  151. package/dist/composer/PromptComposer.js.map +1 -0
  152. package/dist/composer/PromptComposer.spec.d.ts +2 -0
  153. package/dist/composer/PromptComposer.spec.d.ts.map +1 -0
  154. package/dist/composer/PromptComposer.spec.js +87 -0
  155. package/dist/composer/PromptComposer.spec.js.map +1 -0
  156. package/dist/composer/RealtimeVoiceMode.d.ts +108 -0
  157. package/dist/composer/RealtimeVoiceMode.d.ts.map +1 -0
  158. package/dist/composer/RealtimeVoiceMode.js +312 -0
  159. package/dist/composer/RealtimeVoiceMode.js.map +1 -0
  160. package/dist/composer/RealtimeVoiceMode.spec.d.ts +2 -0
  161. package/dist/composer/RealtimeVoiceMode.spec.d.ts.map +1 -0
  162. package/dist/composer/RealtimeVoiceMode.spec.js +540 -0
  163. package/dist/composer/RealtimeVoiceMode.spec.js.map +1 -0
  164. package/dist/composer/TiptapComposer.d.ts +288 -0
  165. package/dist/composer/TiptapComposer.d.ts.map +1 -0
  166. package/dist/composer/TiptapComposer.js +2233 -0
  167. package/dist/composer/TiptapComposer.js.map +1 -0
  168. package/dist/composer/TiptapComposer.spec.d.ts +2 -0
  169. package/dist/composer/TiptapComposer.spec.d.ts.map +1 -0
  170. package/dist/composer/TiptapComposer.spec.js +415 -0
  171. package/dist/composer/TiptapComposer.spec.js.map +1 -0
  172. package/dist/composer/VoiceButton.d.ts +27 -0
  173. package/dist/composer/VoiceButton.d.ts.map +1 -0
  174. package/dist/composer/VoiceButton.js +151 -0
  175. package/dist/composer/VoiceButton.js.map +1 -0
  176. package/dist/composer/VoiceButton.spec.d.ts +2 -0
  177. package/dist/composer/VoiceButton.spec.d.ts.map +1 -0
  178. package/dist/composer/VoiceButton.spec.js +27 -0
  179. package/dist/composer/VoiceButton.spec.js.map +1 -0
  180. package/dist/composer/asset-picker-url.d.ts +16 -0
  181. package/dist/composer/asset-picker-url.d.ts.map +1 -0
  182. package/dist/composer/asset-picker-url.js +64 -0
  183. package/dist/composer/asset-picker-url.js.map +1 -0
  184. package/dist/composer/asset-picker-url.spec.d.ts +2 -0
  185. package/dist/composer/asset-picker-url.spec.d.ts.map +1 -0
  186. package/dist/composer/asset-picker-url.spec.js +23 -0
  187. package/dist/composer/asset-picker-url.spec.js.map +1 -0
  188. package/dist/composer/attachment-accept.d.ts +9 -0
  189. package/dist/composer/attachment-accept.d.ts.map +1 -0
  190. package/dist/composer/attachment-accept.js +69 -0
  191. package/dist/composer/attachment-accept.js.map +1 -0
  192. package/dist/composer/attachment-accept.spec.d.ts +2 -0
  193. package/dist/composer/attachment-accept.spec.d.ts.map +1 -0
  194. package/dist/composer/attachment-accept.spec.js +24 -0
  195. package/dist/composer/attachment-accept.spec.js.map +1 -0
  196. package/dist/composer/draft-key.d.ts +2 -0
  197. package/dist/composer/draft-key.d.ts.map +1 -0
  198. package/dist/composer/draft-key.js +8 -0
  199. package/dist/composer/draft-key.js.map +1 -0
  200. package/dist/composer/draft-key.spec.d.ts +2 -0
  201. package/dist/composer/draft-key.spec.d.ts.map +1 -0
  202. package/dist/composer/draft-key.spec.js +13 -0
  203. package/dist/composer/draft-key.spec.js.map +1 -0
  204. package/dist/composer/extensions/FileReference.d.ts +3 -0
  205. package/dist/composer/extensions/FileReference.d.ts.map +1 -0
  206. package/dist/composer/extensions/FileReference.js +36 -0
  207. package/dist/composer/extensions/FileReference.js.map +1 -0
  208. package/dist/composer/extensions/MentionReference.d.ts +3 -0
  209. package/dist/composer/extensions/MentionReference.d.ts.map +1 -0
  210. package/dist/composer/extensions/MentionReference.js +66 -0
  211. package/dist/composer/extensions/MentionReference.js.map +1 -0
  212. package/dist/composer/extensions/SkillReference.d.ts +3 -0
  213. package/dist/composer/extensions/SkillReference.d.ts.map +1 -0
  214. package/dist/composer/extensions/SkillReference.js +40 -0
  215. package/dist/composer/extensions/SkillReference.js.map +1 -0
  216. package/dist/composer/index.d.ts +16 -0
  217. package/dist/composer/index.d.ts.map +1 -0
  218. package/dist/composer/index.js +14 -0
  219. package/dist/composer/index.js.map +1 -0
  220. package/dist/composer/model-selection.d.ts +12 -0
  221. package/dist/composer/model-selection.d.ts.map +1 -0
  222. package/dist/composer/model-selection.js +31 -0
  223. package/dist/composer/model-selection.js.map +1 -0
  224. package/dist/composer/model-selection.spec.d.ts +2 -0
  225. package/dist/composer/model-selection.spec.d.ts.map +1 -0
  226. package/dist/composer/model-selection.spec.js +38 -0
  227. package/dist/composer/model-selection.spec.js.map +1 -0
  228. package/dist/composer/pasted-text.d.ts +31 -0
  229. package/dist/composer/pasted-text.d.ts.map +1 -0
  230. package/dist/composer/pasted-text.js +130 -0
  231. package/dist/composer/pasted-text.js.map +1 -0
  232. package/dist/composer/pasted-text.spec.d.ts +2 -0
  233. package/dist/composer/pasted-text.spec.d.ts.map +1 -0
  234. package/dist/composer/pasted-text.spec.js +107 -0
  235. package/dist/composer/pasted-text.spec.js.map +1 -0
  236. package/dist/composer/prompt-attachments.d.ts +18 -0
  237. package/dist/composer/prompt-attachments.d.ts.map +1 -0
  238. package/dist/composer/prompt-attachments.js +65 -0
  239. package/dist/composer/prompt-attachments.js.map +1 -0
  240. package/dist/composer/prompt-attachments.spec.d.ts +2 -0
  241. package/dist/composer/prompt-attachments.spec.d.ts.map +1 -0
  242. package/dist/composer/prompt-attachments.spec.js +63 -0
  243. package/dist/composer/prompt-attachments.spec.js.map +1 -0
  244. package/dist/composer/realtime-voice-audio-level.d.ts +14 -0
  245. package/dist/composer/realtime-voice-audio-level.d.ts.map +1 -0
  246. package/dist/composer/realtime-voice-audio-level.js +48 -0
  247. package/dist/composer/realtime-voice-audio-level.js.map +1 -0
  248. package/dist/composer/realtime-voice-audio-level.spec.d.ts +2 -0
  249. package/dist/composer/realtime-voice-audio-level.spec.d.ts.map +1 -0
  250. package/dist/composer/realtime-voice-audio-level.spec.js +32 -0
  251. package/dist/composer/realtime-voice-audio-level.spec.js.map +1 -0
  252. package/dist/composer/realtime-voice-transcript.d.ts +26 -0
  253. package/dist/composer/realtime-voice-transcript.d.ts.map +1 -0
  254. package/dist/composer/realtime-voice-transcript.js +103 -0
  255. package/dist/composer/realtime-voice-transcript.js.map +1 -0
  256. package/dist/composer/realtime-voice-transcript.spec.d.ts +2 -0
  257. package/dist/composer/realtime-voice-transcript.spec.d.ts.map +1 -0
  258. package/dist/composer/realtime-voice-transcript.spec.js +76 -0
  259. package/dist/composer/realtime-voice-transcript.spec.js.map +1 -0
  260. package/dist/composer/runtime-adapters.d.ts +169 -0
  261. package/dist/composer/runtime-adapters.d.ts.map +1 -0
  262. package/dist/composer/runtime-adapters.js +141 -0
  263. package/dist/composer/runtime-adapters.js.map +1 -0
  264. package/dist/composer/runtime-adapters.spec.d.ts +2 -0
  265. package/dist/composer/runtime-adapters.spec.d.ts.map +1 -0
  266. package/dist/composer/runtime-adapters.spec.js +69 -0
  267. package/dist/composer/runtime-adapters.spec.js.map +1 -0
  268. package/dist/composer/types.d.ts +60 -0
  269. package/dist/composer/types.d.ts.map +1 -0
  270. package/dist/composer/types.js +2 -0
  271. package/dist/composer/types.js.map +1 -0
  272. package/dist/composer/use-file-search.d.ts +6 -0
  273. package/dist/composer/use-file-search.d.ts.map +1 -0
  274. package/dist/composer/use-file-search.js +53 -0
  275. package/dist/composer/use-file-search.js.map +1 -0
  276. package/dist/composer/use-mention-search.d.ts +6 -0
  277. package/dist/composer/use-mention-search.d.ts.map +1 -0
  278. package/dist/composer/use-mention-search.js +75 -0
  279. package/dist/composer/use-mention-search.js.map +1 -0
  280. package/dist/composer/use-skills.d.ts +7 -0
  281. package/dist/composer/use-skills.d.ts.map +1 -0
  282. package/dist/composer/use-skills.js +40 -0
  283. package/dist/composer/use-skills.js.map +1 -0
  284. package/dist/composer/useRealtimeVoiceMode.d.ts +189 -0
  285. package/dist/composer/useRealtimeVoiceMode.d.ts.map +1 -0
  286. package/dist/composer/useRealtimeVoiceMode.js +1899 -0
  287. package/dist/composer/useRealtimeVoiceMode.js.map +1 -0
  288. package/dist/composer/useRealtimeVoiceMode.spec.d.ts +2 -0
  289. package/dist/composer/useRealtimeVoiceMode.spec.d.ts.map +1 -0
  290. package/dist/composer/useRealtimeVoiceMode.spec.js +716 -0
  291. package/dist/composer/useRealtimeVoiceMode.spec.js.map +1 -0
  292. package/dist/composer/useVoiceDictation.browser.spec.d.ts +2 -0
  293. package/dist/composer/useVoiceDictation.browser.spec.d.ts.map +1 -0
  294. package/dist/composer/useVoiceDictation.browser.spec.js +220 -0
  295. package/dist/composer/useVoiceDictation.browser.spec.js.map +1 -0
  296. package/dist/composer/useVoiceDictation.d.ts +58 -0
  297. package/dist/composer/useVoiceDictation.d.ts.map +1 -0
  298. package/dist/composer/useVoiceDictation.js +1058 -0
  299. package/dist/composer/useVoiceDictation.js.map +1 -0
  300. package/dist/composer/useVoiceDictation.spec.d.ts +2 -0
  301. package/dist/composer/useVoiceDictation.spec.d.ts.map +1 -0
  302. package/dist/composer/useVoiceDictation.spec.js +32 -0
  303. package/dist/composer/useVoiceDictation.spec.js.map +1 -0
  304. package/dist/conformance/__fixtures__/css-in-js-adapter.d.ts +7 -0
  305. package/dist/conformance/__fixtures__/css-in-js-adapter.d.ts.map +1 -0
  306. package/dist/conformance/__fixtures__/css-in-js-adapter.js +84 -0
  307. package/dist/conformance/__fixtures__/css-in-js-adapter.js.map +1 -0
  308. package/dist/conformance/conformance.spec.d.ts +2 -0
  309. package/dist/conformance/conformance.spec.d.ts.map +1 -0
  310. package/dist/conformance/conformance.spec.js +87 -0
  311. package/dist/conformance/conformance.spec.js.map +1 -0
  312. package/dist/conformance/index.d.ts +4 -0
  313. package/dist/conformance/index.d.ts.map +1 -0
  314. package/dist/conformance/index.js +4 -0
  315. package/dist/conformance/index.js.map +1 -0
  316. package/dist/conformance/runner.d.ts +12 -0
  317. package/dist/conformance/runner.d.ts.map +1 -0
  318. package/dist/conformance/runner.js +515 -0
  319. package/dist/conformance/runner.js.map +1 -0
  320. package/dist/conformance/types.d.ts +26 -0
  321. package/dist/conformance/types.d.ts.map +1 -0
  322. package/dist/conformance/types.js +13 -0
  323. package/dist/conformance/types.js.map +1 -0
  324. package/dist/conformance/version.d.ts +6 -0
  325. package/dist/conformance/version.d.ts.map +1 -0
  326. package/dist/conformance/version.js +14 -0
  327. package/dist/conformance/version.js.map +1 -0
  328. package/dist/context-ui/ContextMeter.d.ts +11 -0
  329. package/dist/context-ui/ContextMeter.d.ts.map +1 -0
  330. package/dist/context-ui/ContextMeter.js +40 -0
  331. package/dist/context-ui/ContextMeter.js.map +1 -0
  332. package/dist/context-ui/ContextMeter.spec.d.ts +2 -0
  333. package/dist/context-ui/ContextMeter.spec.d.ts.map +1 -0
  334. package/dist/context-ui/ContextMeter.spec.js +52 -0
  335. package/dist/context-ui/ContextMeter.spec.js.map +1 -0
  336. package/dist/context-ui/ContextSegmentRow.d.ts +16 -0
  337. package/dist/context-ui/ContextSegmentRow.d.ts.map +1 -0
  338. package/dist/context-ui/ContextSegmentRow.js +92 -0
  339. package/dist/context-ui/ContextSegmentRow.js.map +1 -0
  340. package/dist/context-ui/ContextTreemap.d.ts +8 -0
  341. package/dist/context-ui/ContextTreemap.d.ts.map +1 -0
  342. package/dist/context-ui/ContextTreemap.js +58 -0
  343. package/dist/context-ui/ContextTreemap.js.map +1 -0
  344. package/dist/context-ui/ContextXRayPanel.d.ts +14 -0
  345. package/dist/context-ui/ContextXRayPanel.d.ts.map +1 -0
  346. package/dist/context-ui/ContextXRayPanel.js +209 -0
  347. package/dist/context-ui/ContextXRayPanel.js.map +1 -0
  348. package/dist/context-ui/format.d.ts +6 -0
  349. package/dist/context-ui/format.d.ts.map +1 -0
  350. package/dist/context-ui/format.js +58 -0
  351. package/dist/context-ui/format.js.map +1 -0
  352. package/dist/context-ui/index.d.ts +7 -0
  353. package/dist/context-ui/index.d.ts.map +1 -0
  354. package/dist/context-ui/index.js +6 -0
  355. package/dist/context-ui/index.js.map +1 -0
  356. package/dist/context-ui/types.d.ts +41 -0
  357. package/dist/context-ui/types.d.ts.map +1 -0
  358. package/dist/context-ui/types.js +8 -0
  359. package/dist/context-ui/types.js.map +1 -0
  360. package/dist/dashboard/DataTable.d.ts +20 -0
  361. package/dist/dashboard/DataTable.d.ts.map +1 -0
  362. package/dist/dashboard/DataTable.js +87 -0
  363. package/dist/dashboard/DataTable.js.map +1 -0
  364. package/dist/dashboard/DateRangePicker.d.ts +15 -0
  365. package/dist/dashboard/DateRangePicker.d.ts.map +1 -0
  366. package/dist/dashboard/DateRangePicker.js +15 -0
  367. package/dist/dashboard/DateRangePicker.js.map +1 -0
  368. package/dist/dashboard/GenericChartPanel.d.ts +57 -0
  369. package/dist/dashboard/GenericChartPanel.d.ts.map +1 -0
  370. package/dist/dashboard/GenericChartPanel.js +119 -0
  371. package/dist/dashboard/GenericChartPanel.js.map +1 -0
  372. package/dist/dashboard/GenericChartPanel.spec.d.ts +2 -0
  373. package/dist/dashboard/GenericChartPanel.spec.d.ts.map +1 -0
  374. package/dist/dashboard/GenericChartPanel.spec.js +41 -0
  375. package/dist/dashboard/GenericChartPanel.spec.js.map +1 -0
  376. package/dist/dashboard/MetricCard.d.ts +14 -0
  377. package/dist/dashboard/MetricCard.d.ts.map +1 -0
  378. package/dist/dashboard/MetricCard.js +10 -0
  379. package/dist/dashboard/MetricCard.js.map +1 -0
  380. package/dist/dashboard/StatsCard.d.ts +16 -0
  381. package/dist/dashboard/StatsCard.d.ts.map +1 -0
  382. package/dist/dashboard/StatsCard.js +8 -0
  383. package/dist/dashboard/StatsCard.js.map +1 -0
  384. package/dist/dashboard/dashboard-layout.d.ts +49 -0
  385. package/dist/dashboard/dashboard-layout.d.ts.map +1 -0
  386. package/dist/dashboard/dashboard-layout.js +231 -0
  387. package/dist/dashboard/dashboard-layout.js.map +1 -0
  388. package/dist/dashboard/dashboard-layout.spec.d.ts +2 -0
  389. package/dist/dashboard/dashboard-layout.spec.d.ts.map +1 -0
  390. package/dist/dashboard/dashboard-layout.spec.js +52 -0
  391. package/dist/dashboard/dashboard-layout.spec.js.map +1 -0
  392. package/dist/dashboard/index.d.ts +7 -0
  393. package/dist/dashboard/index.d.ts.map +1 -0
  394. package/dist/dashboard/index.js +7 -0
  395. package/dist/dashboard/index.js.map +1 -0
  396. package/dist/data-grid/DataGrid.d.ts +92 -0
  397. package/dist/data-grid/DataGrid.d.ts.map +1 -0
  398. package/dist/data-grid/DataGrid.js +315 -0
  399. package/dist/data-grid/DataGrid.js.map +1 -0
  400. package/dist/data-grid/DataGrid.spec.d.ts +2 -0
  401. package/dist/data-grid/DataGrid.spec.d.ts.map +1 -0
  402. package/dist/data-grid/DataGrid.spec.js +134 -0
  403. package/dist/data-grid/DataGrid.spec.js.map +1 -0
  404. package/dist/data-grid/index.d.ts +2 -0
  405. package/dist/data-grid/index.d.ts.map +1 -0
  406. package/dist/data-grid/index.js +2 -0
  407. package/dist/data-grid/index.js.map +1 -0
  408. package/dist/design-system/components.d.ts +58 -0
  409. package/dist/design-system/components.d.ts.map +1 -0
  410. package/dist/design-system/components.js +88 -0
  411. package/dist/design-system/components.js.map +1 -0
  412. package/dist/design-system/context.d.ts +11 -0
  413. package/dist/design-system/context.d.ts.map +1 -0
  414. package/dist/design-system/context.js +17 -0
  415. package/dist/design-system/context.js.map +1 -0
  416. package/dist/design-system/default-adapter.d.ts +3 -0
  417. package/dist/design-system/default-adapter.d.ts.map +1 -0
  418. package/dist/design-system/default-adapter.js +172 -0
  419. package/dist/design-system/default-adapter.js.map +1 -0
  420. package/dist/design-system/default-adapter.spec.d.ts +2 -0
  421. package/dist/design-system/default-adapter.spec.d.ts.map +1 -0
  422. package/dist/design-system/default-adapter.spec.js +108 -0
  423. package/dist/design-system/default-adapter.spec.js.map +1 -0
  424. package/dist/design-system/definition.d.ts +9 -0
  425. package/dist/design-system/definition.d.ts.map +1 -0
  426. package/dist/design-system/definition.js +4 -0
  427. package/dist/design-system/definition.js.map +1 -0
  428. package/dist/design-system/design-system.spec.d.ts +2 -0
  429. package/dist/design-system/design-system.spec.d.ts.map +1 -0
  430. package/dist/design-system/design-system.spec.js +208 -0
  431. package/dist/design-system/design-system.spec.js.map +1 -0
  432. package/dist/design-system/error-boundary.d.ts +18 -0
  433. package/dist/design-system/error-boundary.d.ts.map +1 -0
  434. package/dist/design-system/error-boundary.js +16 -0
  435. package/dist/design-system/error-boundary.js.map +1 -0
  436. package/dist/design-system/index.d.ts +8 -0
  437. package/dist/design-system/index.d.ts.map +1 -0
  438. package/dist/design-system/index.js +8 -0
  439. package/dist/design-system/index.js.map +1 -0
  440. package/dist/design-system/theme.d.ts +30 -0
  441. package/dist/design-system/theme.d.ts.map +1 -0
  442. package/dist/design-system/theme.js +95 -0
  443. package/dist/design-system/theme.js.map +1 -0
  444. package/dist/design-system/theme.spec.d.ts +2 -0
  445. package/dist/design-system/theme.spec.d.ts.map +1 -0
  446. package/dist/design-system/theme.spec.js +43 -0
  447. package/dist/design-system/theme.spec.js.map +1 -0
  448. package/dist/design-system/types.d.ts +292 -0
  449. package/dist/design-system/types.d.ts.map +1 -0
  450. package/dist/design-system/types.js +2 -0
  451. package/dist/design-system/types.js.map +1 -0
  452. package/dist/design-tweaks/index.d.ts +2 -0
  453. package/dist/design-tweaks/index.d.ts.map +1 -0
  454. package/dist/design-tweaks/index.js +2 -0
  455. package/dist/design-tweaks/index.js.map +1 -0
  456. package/dist/design-tweaks/scrub-input-utils.d.ts +61 -0
  457. package/dist/design-tweaks/scrub-input-utils.d.ts.map +1 -0
  458. package/dist/design-tweaks/scrub-input-utils.js +235 -0
  459. package/dist/design-tweaks/scrub-input-utils.js.map +1 -0
  460. package/dist/design-tweaks/scrub-input.d.ts +70 -0
  461. package/dist/design-tweaks/scrub-input.d.ts.map +1 -0
  462. package/dist/design-tweaks/scrub-input.js +319 -0
  463. package/dist/design-tweaks/scrub-input.js.map +1 -0
  464. package/dist/design-tweaks/visual-style-controls.d.ts +90 -0
  465. package/dist/design-tweaks/visual-style-controls.d.ts.map +1 -0
  466. package/dist/design-tweaks/visual-style-controls.js +423 -0
  467. package/dist/design-tweaks/visual-style-controls.js.map +1 -0
  468. package/dist/design-tweaks/visual-style-controls.spec.d.ts +2 -0
  469. package/dist/design-tweaks/visual-style-controls.spec.d.ts.map +1 -0
  470. package/dist/design-tweaks/visual-style-controls.spec.js +84 -0
  471. package/dist/design-tweaks/visual-style-controls.spec.js.map +1 -0
  472. package/dist/editor/BubbleToolbar.d.ts +37 -0
  473. package/dist/editor/BubbleToolbar.d.ts.map +1 -0
  474. package/dist/editor/BubbleToolbar.js +171 -0
  475. package/dist/editor/BubbleToolbar.js.map +1 -0
  476. package/dist/editor/CodeBlockNode.d.ts +49 -0
  477. package/dist/editor/CodeBlockNode.d.ts.map +1 -0
  478. package/dist/editor/CodeBlockNode.js +127 -0
  479. package/dist/editor/CodeBlockNode.js.map +1 -0
  480. package/dist/editor/DragHandle.d.ts +103 -0
  481. package/dist/editor/DragHandle.d.ts.map +1 -0
  482. package/dist/editor/DragHandle.js +1101 -0
  483. package/dist/editor/DragHandle.js.map +1 -0
  484. package/dist/editor/DragHandle.spec.d.ts +2 -0
  485. package/dist/editor/DragHandle.spec.d.ts.map +1 -0
  486. package/dist/editor/DragHandle.spec.js +495 -0
  487. package/dist/editor/DragHandle.spec.js.map +1 -0
  488. package/dist/editor/ImageExtension.d.ts +63 -0
  489. package/dist/editor/ImageExtension.d.ts.map +1 -0
  490. package/dist/editor/ImageExtension.js +243 -0
  491. package/dist/editor/ImageExtension.js.map +1 -0
  492. package/dist/editor/ImageExtension.roundtrip.spec.d.ts +2 -0
  493. package/dist/editor/ImageExtension.roundtrip.spec.d.ts.map +1 -0
  494. package/dist/editor/ImageExtension.roundtrip.spec.js +103 -0
  495. package/dist/editor/ImageExtension.roundtrip.spec.js.map +1 -0
  496. package/dist/editor/RegistryBlockContext.d.ts +68 -0
  497. package/dist/editor/RegistryBlockContext.d.ts.map +1 -0
  498. package/dist/editor/RegistryBlockContext.js +10 -0
  499. package/dist/editor/RegistryBlockContext.js.map +1 -0
  500. package/dist/editor/RegistryBlockNode.d.ts +66 -0
  501. package/dist/editor/RegistryBlockNode.d.ts.map +1 -0
  502. package/dist/editor/RegistryBlockNode.js +406 -0
  503. package/dist/editor/RegistryBlockNode.js.map +1 -0
  504. package/dist/editor/RegistryBlockNode.spec.d.ts +2 -0
  505. package/dist/editor/RegistryBlockNode.spec.d.ts.map +1 -0
  506. package/dist/editor/RegistryBlockNode.spec.js +215 -0
  507. package/dist/editor/RegistryBlockNode.spec.js.map +1 -0
  508. package/dist/editor/RichMarkdownEditor.collab.spec.d.ts +2 -0
  509. package/dist/editor/RichMarkdownEditor.collab.spec.d.ts.map +1 -0
  510. package/dist/editor/RichMarkdownEditor.collab.spec.js +65 -0
  511. package/dist/editor/RichMarkdownEditor.collab.spec.js.map +1 -0
  512. package/dist/editor/RichMarkdownEditor.d.ts +52 -0
  513. package/dist/editor/RichMarkdownEditor.d.ts.map +1 -0
  514. package/dist/editor/RichMarkdownEditor.js +38 -0
  515. package/dist/editor/RichMarkdownEditor.js.map +1 -0
  516. package/dist/editor/RichMarkdownEditor.roundtrip.spec.d.ts +2 -0
  517. package/dist/editor/RichMarkdownEditor.roundtrip.spec.d.ts.map +1 -0
  518. package/dist/editor/RichMarkdownEditor.roundtrip.spec.js +186 -0
  519. package/dist/editor/RichMarkdownEditor.roundtrip.spec.js.map +1 -0
  520. package/dist/editor/RunId.d.ts +28 -0
  521. package/dist/editor/RunId.d.ts.map +1 -0
  522. package/dist/editor/RunId.js +60 -0
  523. package/dist/editor/RunId.js.map +1 -0
  524. package/dist/editor/SharedRichEditor.d.ts +112 -0
  525. package/dist/editor/SharedRichEditor.d.ts.map +1 -0
  526. package/dist/editor/SharedRichEditor.js +159 -0
  527. package/dist/editor/SharedRichEditor.js.map +1 -0
  528. package/dist/editor/SharedRichEditor.spec.d.ts +2 -0
  529. package/dist/editor/SharedRichEditor.spec.d.ts.map +1 -0
  530. package/dist/editor/SharedRichEditor.spec.js +63 -0
  531. package/dist/editor/SharedRichEditor.spec.js.map +1 -0
  532. package/dist/editor/SlashCommandMenu.d.ts +59 -0
  533. package/dist/editor/SlashCommandMenu.d.ts.map +1 -0
  534. package/dist/editor/SlashCommandMenu.js +279 -0
  535. package/dist/editor/SlashCommandMenu.js.map +1 -0
  536. package/dist/editor/SlashCommandMenu.spec.d.ts +2 -0
  537. package/dist/editor/SlashCommandMenu.spec.d.ts.map +1 -0
  538. package/dist/editor/SlashCommandMenu.spec.js +67 -0
  539. package/dist/editor/SlashCommandMenu.spec.js.map +1 -0
  540. package/dist/editor/disableHistory.spec.d.ts +2 -0
  541. package/dist/editor/disableHistory.spec.d.ts.map +1 -0
  542. package/dist/editor/disableHistory.spec.js +73 -0
  543. package/dist/editor/disableHistory.spec.js.map +1 -0
  544. package/dist/editor/extensions.d.ts +178 -0
  545. package/dist/editor/extensions.d.ts.map +1 -0
  546. package/dist/editor/extensions.js +264 -0
  547. package/dist/editor/extensions.js.map +1 -0
  548. package/dist/editor/gfmDoc.d.ts +24 -0
  549. package/dist/editor/gfmDoc.d.ts.map +1 -0
  550. package/dist/editor/gfmDoc.js +83 -0
  551. package/dist/editor/gfmDoc.js.map +1 -0
  552. package/dist/editor/gfmDoc.spec.d.ts +2 -0
  553. package/dist/editor/gfmDoc.spec.d.ts.map +1 -0
  554. package/dist/editor/gfmDoc.spec.js +194 -0
  555. package/dist/editor/gfmDoc.spec.js.map +1 -0
  556. package/dist/editor/index.d.ts +16 -0
  557. package/dist/editor/index.d.ts.map +1 -0
  558. package/dist/editor/index.js +15 -0
  559. package/dist/editor/index.js.map +1 -0
  560. package/dist/editor/registrySlashCommands.d.ts +68 -0
  561. package/dist/editor/registrySlashCommands.d.ts.map +1 -0
  562. package/dist/editor/registrySlashCommands.js +51 -0
  563. package/dist/editor/registrySlashCommands.js.map +1 -0
  564. package/dist/editor/structuralReorderUndo.spec.d.ts +2 -0
  565. package/dist/editor/structuralReorderUndo.spec.d.ts.map +1 -0
  566. package/dist/editor/structuralReorderUndo.spec.js +120 -0
  567. package/dist/editor/structuralReorderUndo.spec.js.map +1 -0
  568. package/dist/editor/surgical-apply.d.ts +66 -0
  569. package/dist/editor/surgical-apply.d.ts.map +1 -0
  570. package/dist/editor/surgical-apply.js +147 -0
  571. package/dist/editor/surgical-apply.js.map +1 -0
  572. package/dist/editor/surgical-apply.spec.d.ts +2 -0
  573. package/dist/editor/surgical-apply.spec.d.ts.map +1 -0
  574. package/dist/editor/surgical-apply.spec.js +257 -0
  575. package/dist/editor/surgical-apply.spec.js.map +1 -0
  576. package/dist/editor/useCollabReconcile.concurrent.spec.d.ts +2 -0
  577. package/dist/editor/useCollabReconcile.concurrent.spec.d.ts.map +1 -0
  578. package/dist/editor/useCollabReconcile.concurrent.spec.js +641 -0
  579. package/dist/editor/useCollabReconcile.concurrent.spec.js.map +1 -0
  580. package/dist/editor/useCollabReconcile.d.ts +117 -0
  581. package/dist/editor/useCollabReconcile.d.ts.map +1 -0
  582. package/dist/editor/useCollabReconcile.idempotent.spec.d.ts +2 -0
  583. package/dist/editor/useCollabReconcile.idempotent.spec.d.ts.map +1 -0
  584. package/dist/editor/useCollabReconcile.idempotent.spec.js +248 -0
  585. package/dist/editor/useCollabReconcile.idempotent.spec.js.map +1 -0
  586. package/dist/editor/useCollabReconcile.js +521 -0
  587. package/dist/editor/useCollabReconcile.js.map +1 -0
  588. package/dist/editor.css +587 -0
  589. package/dist/hooks/index.d.ts +3 -0
  590. package/dist/hooks/index.d.ts.map +1 -0
  591. package/dist/hooks/index.js +3 -0
  592. package/dist/hooks/index.js.map +1 -0
  593. package/dist/hooks/use-mobile.d.ts +2 -0
  594. package/dist/hooks/use-mobile.d.ts.map +1 -0
  595. package/dist/hooks/use-mobile.js +16 -0
  596. package/dist/hooks/use-mobile.js.map +1 -0
  597. package/dist/hooks/use-toast.d.ts +45 -0
  598. package/dist/hooks/use-toast.d.ts.map +1 -0
  599. package/dist/hooks/use-toast.js +127 -0
  600. package/dist/hooks/use-toast.js.map +1 -0
  601. package/dist/index.d.ts +11 -0
  602. package/dist/index.d.ts.map +1 -0
  603. package/dist/index.js +11 -0
  604. package/dist/index.js.map +1 -0
  605. package/dist/onboarding/index.d.ts +2 -0
  606. package/dist/onboarding/index.d.ts.map +1 -0
  607. package/dist/onboarding/index.js +2 -0
  608. package/dist/onboarding/index.js.map +1 -0
  609. package/dist/provider.d.ts +15 -0
  610. package/dist/provider.d.ts.map +1 -0
  611. package/dist/provider.js +60 -0
  612. package/dist/provider.js.map +1 -0
  613. package/dist/sharing/SharePrimitives.d.ts +42 -0
  614. package/dist/sharing/SharePrimitives.d.ts.map +1 -0
  615. package/dist/sharing/SharePrimitives.js +53 -0
  616. package/dist/sharing/SharePrimitives.js.map +1 -0
  617. package/dist/sharing/VisibilityBadge.d.ts +11 -0
  618. package/dist/sharing/VisibilityBadge.d.ts.map +1 -0
  619. package/dist/sharing/VisibilityBadge.js +19 -0
  620. package/dist/sharing/VisibilityBadge.js.map +1 -0
  621. package/dist/sharing/VisibilityBadge.spec.d.ts +2 -0
  622. package/dist/sharing/VisibilityBadge.spec.d.ts.map +1 -0
  623. package/dist/sharing/VisibilityBadge.spec.js +60 -0
  624. package/dist/sharing/VisibilityBadge.spec.js.map +1 -0
  625. package/dist/sharing/index.d.ts +3 -0
  626. package/dist/sharing/index.d.ts.map +1 -0
  627. package/dist/sharing/index.js +3 -0
  628. package/dist/sharing/index.js.map +1 -0
  629. package/dist/styles.css +232 -0
  630. package/dist/ui/accordion.d.ts +8 -0
  631. package/dist/ui/accordion.d.ts.map +1 -0
  632. package/dist/ui/accordion.js +14 -0
  633. package/dist/ui/accordion.js.map +1 -0
  634. package/dist/ui/alert-dialog.d.ts +21 -0
  635. package/dist/ui/alert-dialog.d.ts.map +1 -0
  636. package/dist/ui/alert-dialog.js +27 -0
  637. package/dist/ui/alert-dialog.js.map +1 -0
  638. package/dist/ui/alert.d.ts +9 -0
  639. package/dist/ui/alert.d.ts.map +1 -0
  640. package/dist/ui/alert.js +23 -0
  641. package/dist/ui/alert.js.map +1 -0
  642. package/dist/ui/aspect-ratio.d.ts +4 -0
  643. package/dist/ui/aspect-ratio.d.ts.map +1 -0
  644. package/dist/ui/aspect-ratio.js +4 -0
  645. package/dist/ui/aspect-ratio.js.map +1 -0
  646. package/dist/ui/avatar.d.ts +7 -0
  647. package/dist/ui/avatar.d.ts.map +1 -0
  648. package/dist/ui/avatar.js +12 -0
  649. package/dist/ui/avatar.js.map +1 -0
  650. package/dist/ui/badge.d.ts +10 -0
  651. package/dist/ui/badge.d.ts.map +1 -0
  652. package/dist/ui/badge.js +21 -0
  653. package/dist/ui/badge.js.map +1 -0
  654. package/dist/ui/breadcrumb.d.ts +20 -0
  655. package/dist/ui/breadcrumb.d.ts.map +1 -0
  656. package/dist/ui/breadcrumb.js +24 -0
  657. package/dist/ui/breadcrumb.js.map +1 -0
  658. package/dist/ui/button.d.ts +18 -0
  659. package/dist/ui/button.d.ts.map +1 -0
  660. package/dist/ui/button.js +67 -0
  661. package/dist/ui/button.js.map +1 -0
  662. package/dist/ui/calendar.d.ts +9 -0
  663. package/dist/ui/calendar.d.ts.map +1 -0
  664. package/dist/ui/calendar.js +74 -0
  665. package/dist/ui/calendar.js.map +1 -0
  666. package/dist/ui/card.d.ts +9 -0
  667. package/dist/ui/card.d.ts.map +1 -0
  668. package/dist/ui/card.js +17 -0
  669. package/dist/ui/card.js.map +1 -0
  670. package/dist/ui/carousel.d.ts +19 -0
  671. package/dist/ui/carousel.d.ts.map +1 -0
  672. package/dist/ui/carousel.js +99 -0
  673. package/dist/ui/carousel.js.map +1 -0
  674. package/dist/ui/chart.d.ts +80 -0
  675. package/dist/ui/chart.d.ts.map +1 -0
  676. package/dist/ui/chart.js +131 -0
  677. package/dist/ui/chart.js.map +1 -0
  678. package/dist/ui/checkbox.d.ts +5 -0
  679. package/dist/ui/checkbox.d.ts.map +1 -0
  680. package/dist/ui/checkbox.js +9 -0
  681. package/dist/ui/checkbox.js.map +1 -0
  682. package/dist/ui/collapsible.d.ts +6 -0
  683. package/dist/ui/collapsible.d.ts.map +1 -0
  684. package/dist/ui/collapsible.js +6 -0
  685. package/dist/ui/collapsible.js.map +1 -0
  686. package/dist/ui/command.d.ts +85 -0
  687. package/dist/ui/command.d.ts.map +1 -0
  688. package/dist/ui/command.js +29 -0
  689. package/dist/ui/command.js.map +1 -0
  690. package/dist/ui/command.spec.d.ts +2 -0
  691. package/dist/ui/command.spec.d.ts.map +1 -0
  692. package/dist/ui/command.spec.js +29 -0
  693. package/dist/ui/command.spec.js.map +1 -0
  694. package/dist/ui/context-menu.d.ts +28 -0
  695. package/dist/ui/context-menu.d.ts.map +1 -0
  696. package/dist/ui/context-menu.js +34 -0
  697. package/dist/ui/context-menu.js.map +1 -0
  698. package/dist/ui/date-picker.d.ts +10 -0
  699. package/dist/ui/date-picker.d.ts.map +1 -0
  700. package/dist/ui/date-picker.js +20 -0
  701. package/dist/ui/date-picker.js.map +1 -0
  702. package/dist/ui/dialog.d.ts +32 -0
  703. package/dist/ui/dialog.d.ts.map +1 -0
  704. package/dist/ui/dialog.js +26 -0
  705. package/dist/ui/dialog.js.map +1 -0
  706. package/dist/ui/dialog.spec.d.ts +2 -0
  707. package/dist/ui/dialog.spec.d.ts.map +1 -0
  708. package/dist/ui/dialog.spec.js +21 -0
  709. package/dist/ui/dialog.spec.js.map +1 -0
  710. package/dist/ui/drawer.d.ts +35 -0
  711. package/dist/ui/drawer.d.ts.map +1 -0
  712. package/dist/ui/drawer.js +25 -0
  713. package/dist/ui/drawer.js.map +1 -0
  714. package/dist/ui/dropdown-menu.d.ts +32 -0
  715. package/dist/ui/dropdown-menu.d.ts.map +1 -0
  716. package/dist/ui/dropdown-menu.js +42 -0
  717. package/dist/ui/dropdown-menu.js.map +1 -0
  718. package/dist/ui/form.d.ts +26 -0
  719. package/dist/ui/form.d.ts.map +1 -0
  720. package/dist/ui/form.js +63 -0
  721. package/dist/ui/form.js.map +1 -0
  722. package/dist/ui/hover-card.d.ts +7 -0
  723. package/dist/ui/hover-card.d.ts.map +1 -0
  724. package/dist/ui/hover-card.js +10 -0
  725. package/dist/ui/hover-card.js.map +1 -0
  726. package/dist/ui/index.d.ts +53 -0
  727. package/dist/ui/index.d.ts.map +1 -0
  728. package/dist/ui/index.js +53 -0
  729. package/dist/ui/index.js.map +1 -0
  730. package/dist/ui/input-otp.d.ts +35 -0
  731. package/dist/ui/input-otp.d.ts.map +1 -0
  732. package/dist/ui/input-otp.js +19 -0
  733. package/dist/ui/input-otp.js.map +1 -0
  734. package/dist/ui/input.d.ts +4 -0
  735. package/dist/ui/input.d.ts.map +1 -0
  736. package/dist/ui/input.js +9 -0
  737. package/dist/ui/input.js.map +1 -0
  738. package/dist/ui/label.d.ts +6 -0
  739. package/dist/ui/label.d.ts.map +1 -0
  740. package/dist/ui/label.js +10 -0
  741. package/dist/ui/label.js.map +1 -0
  742. package/dist/ui/logo.d.ts +7 -0
  743. package/dist/ui/logo.d.ts.map +1 -0
  744. package/dist/ui/logo.js +10 -0
  745. package/dist/ui/logo.js.map +1 -0
  746. package/dist/ui/menubar.d.ts +29 -0
  747. package/dist/ui/menubar.d.ts.map +1 -0
  748. package/dist/ui/menubar.js +36 -0
  749. package/dist/ui/menubar.js.map +1 -0
  750. package/dist/ui/navigation-menu.d.ts +13 -0
  751. package/dist/ui/navigation-menu.d.ts.map +1 -0
  752. package/dist/ui/navigation-menu.js +25 -0
  753. package/dist/ui/navigation-menu.js.map +1 -0
  754. package/dist/ui/pagination.d.ts +29 -0
  755. package/dist/ui/pagination.d.ts.map +1 -0
  756. package/dist/ui/pagination.js +24 -0
  757. package/dist/ui/pagination.js.map +1 -0
  758. package/dist/ui/popover.d.ts +11 -0
  759. package/dist/ui/popover.d.ts.map +1 -0
  760. package/dist/ui/popover.js +16 -0
  761. package/dist/ui/popover.js.map +1 -0
  762. package/dist/ui/progress.d.ts +5 -0
  763. package/dist/ui/progress.d.ts.map +1 -0
  764. package/dist/ui/progress.js +8 -0
  765. package/dist/ui/progress.js.map +1 -0
  766. package/dist/ui/radio-group.d.ts +6 -0
  767. package/dist/ui/radio-group.d.ts.map +1 -0
  768. package/dist/ui/radio-group.js +15 -0
  769. package/dist/ui/radio-group.js.map +1 -0
  770. package/dist/ui/resizable.d.ts +8 -0
  771. package/dist/ui/resizable.d.ts.map +1 -0
  772. package/dist/ui/resizable.js +9 -0
  773. package/dist/ui/resizable.js.map +1 -0
  774. package/dist/ui/scroll-area.d.ts +6 -0
  775. package/dist/ui/scroll-area.d.ts.map +1 -0
  776. package/dist/ui/scroll-area.js +12 -0
  777. package/dist/ui/scroll-area.js.map +1 -0
  778. package/dist/ui/select.d.ts +16 -0
  779. package/dist/ui/select.d.ts.map +1 -0
  780. package/dist/ui/select.js +27 -0
  781. package/dist/ui/select.js.map +1 -0
  782. package/dist/ui/separator.d.ts +5 -0
  783. package/dist/ui/separator.d.ts.map +1 -0
  784. package/dist/ui/separator.js +8 -0
  785. package/dist/ui/separator.js.map +1 -0
  786. package/dist/ui/sheet.d.ts +29 -0
  787. package/dist/ui/sheet.d.ts.map +1 -0
  788. package/dist/ui/sheet.js +37 -0
  789. package/dist/ui/sheet.js.map +1 -0
  790. package/dist/ui/sidebar.d.ts +71 -0
  791. package/dist/ui/sidebar.d.ts.map +1 -0
  792. package/dist/ui/sidebar.js +230 -0
  793. package/dist/ui/sidebar.js.map +1 -0
  794. package/dist/ui/skeleton.d.ts +3 -0
  795. package/dist/ui/skeleton.d.ts.map +1 -0
  796. package/dist/ui/skeleton.js +7 -0
  797. package/dist/ui/skeleton.js.map +1 -0
  798. package/dist/ui/slider.d.ts +5 -0
  799. package/dist/ui/slider.d.ts.map +1 -0
  800. package/dist/ui/slider.js +8 -0
  801. package/dist/ui/slider.js.map +1 -0
  802. package/dist/ui/sonner.d.ts +5 -0
  803. package/dist/ui/sonner.d.ts.map +1 -0
  804. package/dist/ui/sonner.js +25 -0
  805. package/dist/ui/sonner.js.map +1 -0
  806. package/dist/ui/spinner.d.ts +3 -0
  807. package/dist/ui/spinner.d.ts.map +1 -0
  808. package/dist/ui/spinner.js +7 -0
  809. package/dist/ui/spinner.js.map +1 -0
  810. package/dist/ui/switch.d.ts +5 -0
  811. package/dist/ui/switch.d.ts.map +1 -0
  812. package/dist/ui/switch.js +8 -0
  813. package/dist/ui/switch.js.map +1 -0
  814. package/dist/ui/table.d.ts +11 -0
  815. package/dist/ui/table.d.ts.map +1 -0
  816. package/dist/ui/table.js +21 -0
  817. package/dist/ui/table.js.map +1 -0
  818. package/dist/ui/tabs.d.ts +8 -0
  819. package/dist/ui/tabs.d.ts.map +1 -0
  820. package/dist/ui/tabs.js +13 -0
  821. package/dist/ui/tabs.js.map +1 -0
  822. package/dist/ui/textarea.d.ts +6 -0
  823. package/dist/ui/textarea.d.ts.map +1 -0
  824. package/dist/ui/textarea.js +9 -0
  825. package/dist/ui/textarea.js.map +1 -0
  826. package/dist/ui/toast.d.ts +16 -0
  827. package/dist/ui/toast.d.ts.map +1 -0
  828. package/dist/ui/toast.js +34 -0
  829. package/dist/ui/toast.js.map +1 -0
  830. package/dist/ui/toaster.d.ts +2 -0
  831. package/dist/ui/toaster.d.ts.map +1 -0
  832. package/dist/ui/toaster.js +10 -0
  833. package/dist/ui/toaster.js.map +1 -0
  834. package/dist/ui/toggle-group.d.ts +13 -0
  835. package/dist/ui/toggle-group.d.ts.map +1 -0
  836. package/dist/ui/toggle-group.js +21 -0
  837. package/dist/ui/toggle-group.js.map +1 -0
  838. package/dist/ui/toggle.d.ts +13 -0
  839. package/dist/ui/toggle.d.ts.map +1 -0
  840. package/dist/ui/toggle.js +26 -0
  841. package/dist/ui/toggle.js.map +1 -0
  842. package/dist/ui/tooltip.d.ts +11 -0
  843. package/dist/ui/tooltip.d.ts.map +1 -0
  844. package/dist/ui/tooltip.js +18 -0
  845. package/dist/ui/tooltip.js.map +1 -0
  846. package/dist/ui/use-toast.d.ts +3 -0
  847. package/dist/ui/use-toast.d.ts.map +1 -0
  848. package/dist/ui/use-toast.js +3 -0
  849. package/dist/ui/use-toast.js.map +1 -0
  850. package/dist/utils.d.ts +4 -0
  851. package/dist/utils.d.ts.map +1 -0
  852. package/dist/utils.js +7 -0
  853. package/dist/utils.js.map +1 -0
  854. package/migration-manifest.json +4 -0
  855. package/package.json +369 -0
  856. package/src/app-shell/header-actions.tsx +84 -0
  857. package/src/app-shell/index.ts +2 -0
  858. package/src/app-shell/sidebar-footer-actions.spec.tsx +81 -0
  859. package/src/app-shell/sidebar-footer-actions.tsx +45 -0
  860. package/src/canvas-annotations/CanvasCommentPins.tsx +861 -0
  861. package/src/canvas-annotations/DrawOverlay.spec.tsx +145 -0
  862. package/src/canvas-annotations/DrawOverlay.tsx +1233 -0
  863. package/src/canvas-annotations/index.ts +15 -0
  864. package/src/canvas-annotations/types.ts +14 -0
  865. package/src/canvas-interactions/canvas-interactions.spec.ts +765 -0
  866. package/src/canvas-interactions/canvas-interactions.ts +965 -0
  867. package/src/canvas-interactions/index.ts +67 -0
  868. package/src/chat-history/ChatHistoryList.spec.tsx +485 -0
  869. package/src/chat-history/ChatHistoryList.tsx +481 -0
  870. package/src/chat-history/ChatHistoryRail.spec.tsx +312 -0
  871. package/src/chat-history/ChatHistoryRail.tsx +150 -0
  872. package/src/chat-history/index.ts +21 -0
  873. package/src/chat-history/useChatHistoryRailController.spec.tsx +131 -0
  874. package/src/chat-history/useChatHistoryRailController.ts +76 -0
  875. package/src/chat-history.css +469 -0
  876. package/src/collab-ui/AgentPresenceChip.tsx +69 -0
  877. package/src/collab-ui/LiveCursorOverlay.tsx +241 -0
  878. package/src/collab-ui/PresenceBar.spec.tsx +44 -0
  879. package/src/collab-ui/PresenceBar.tsx +373 -0
  880. package/src/collab-ui/RecentEditHighlights.tsx +239 -0
  881. package/src/collab-ui/RemoteSelectionRings.tsx +227 -0
  882. package/src/collab-ui/agent-identity.ts +16 -0
  883. package/src/collab-ui/index.ts +39 -0
  884. package/src/collab-ui/lead-client.ts +32 -0
  885. package/src/collab-ui/types.spec.ts +18 -0
  886. package/src/collab-ui/types.ts +96 -0
  887. package/src/composer/AgentComposerFrame.tsx +62 -0
  888. package/src/composer/ComposerPlusMenu.spec.ts +14 -0
  889. package/src/composer/ComposerPlusMenu.tsx +1266 -0
  890. package/src/composer/MentionPopover.tsx +483 -0
  891. package/src/composer/PastedTextChip.spec.tsx +58 -0
  892. package/src/composer/PastedTextChip.tsx +178 -0
  893. package/src/composer/PromptComposer.spec.ts +110 -0
  894. package/src/composer/PromptComposer.tsx +796 -0
  895. package/src/composer/RealtimeVoiceMode.spec.tsx +998 -0
  896. package/src/composer/RealtimeVoiceMode.tsx +1019 -0
  897. package/src/composer/TiptapComposer.spec.ts +592 -0
  898. package/src/composer/TiptapComposer.tsx +3746 -0
  899. package/src/composer/VoiceButton.spec.ts +49 -0
  900. package/src/composer/VoiceButton.tsx +329 -0
  901. package/src/composer/asset-picker-url.spec.ts +56 -0
  902. package/src/composer/asset-picker-url.ts +80 -0
  903. package/src/composer/attachment-accept.spec.ts +32 -0
  904. package/src/composer/attachment-accept.ts +75 -0
  905. package/src/composer/draft-key.spec.ts +19 -0
  906. package/src/composer/draft-key.ts +7 -0
  907. package/src/composer/extensions/FileReference.tsx +55 -0
  908. package/src/composer/extensions/MentionReference.tsx +93 -0
  909. package/src/composer/extensions/SkillReference.tsx +56 -0
  910. package/src/composer/index.ts +86 -0
  911. package/src/composer/model-selection.spec.ts +45 -0
  912. package/src/composer/model-selection.ts +51 -0
  913. package/src/composer/pasted-text.spec.ts +162 -0
  914. package/src/composer/pasted-text.ts +160 -0
  915. package/src/composer/prompt-attachments.spec.ts +80 -0
  916. package/src/composer/prompt-attachments.ts +93 -0
  917. package/src/composer/realtime-voice-audio-level.spec.ts +47 -0
  918. package/src/composer/realtime-voice-audio-level.ts +65 -0
  919. package/src/composer/realtime-voice-transcript.spec.ts +95 -0
  920. package/src/composer/realtime-voice-transcript.ts +134 -0
  921. package/src/composer/runtime-adapters.spec.tsx +102 -0
  922. package/src/composer/runtime-adapters.tsx +364 -0
  923. package/src/composer/types.ts +66 -0
  924. package/src/composer/use-file-search.ts +64 -0
  925. package/src/composer/use-mention-search.ts +90 -0
  926. package/src/composer/use-skills.ts +45 -0
  927. package/src/composer/useRealtimeVoiceMode.spec.ts +952 -0
  928. package/src/composer/useRealtimeVoiceMode.tsx +2388 -0
  929. package/src/composer/useVoiceDictation.browser.spec.tsx +265 -0
  930. package/src/composer/useVoiceDictation.spec.ts +45 -0
  931. package/src/composer/useVoiceDictation.ts +1256 -0
  932. package/src/conformance/__fixtures__/css-in-js-adapter.tsx +401 -0
  933. package/src/conformance/conformance.spec.tsx +143 -0
  934. package/src/conformance/index.ts +3 -0
  935. package/src/conformance/runner.tsx +862 -0
  936. package/src/conformance/types.ts +45 -0
  937. package/src/conformance/version.ts +22 -0
  938. package/src/context-ui/ContextMeter.spec.tsx +73 -0
  939. package/src/context-ui/ContextMeter.tsx +131 -0
  940. package/src/context-ui/ContextSegmentRow.tsx +273 -0
  941. package/src/context-ui/ContextTreemap.tsx +131 -0
  942. package/src/context-ui/ContextXRayPanel.tsx +491 -0
  943. package/src/context-ui/format.ts +42 -0
  944. package/src/context-ui/index.ts +15 -0
  945. package/src/context-ui/types.ts +57 -0
  946. package/src/dashboard/DataTable.tsx +273 -0
  947. package/src/dashboard/DateRangePicker.tsx +57 -0
  948. package/src/dashboard/GenericChartPanel.spec.tsx +53 -0
  949. package/src/dashboard/GenericChartPanel.tsx +461 -0
  950. package/src/dashboard/MetricCard.tsx +54 -0
  951. package/src/dashboard/StatsCard.tsx +49 -0
  952. package/src/dashboard/dashboard-layout.spec.ts +79 -0
  953. package/src/dashboard/dashboard-layout.ts +329 -0
  954. package/src/dashboard/index.ts +6 -0
  955. package/src/data-grid/DataGrid.spec.tsx +243 -0
  956. package/src/data-grid/DataGrid.tsx +754 -0
  957. package/src/data-grid/index.ts +15 -0
  958. package/src/design-system/components.tsx +196 -0
  959. package/src/design-system/context.tsx +31 -0
  960. package/src/design-system/default-adapter.spec.tsx +158 -0
  961. package/src/design-system/default-adapter.tsx +923 -0
  962. package/src/design-system/definition.ts +14 -0
  963. package/src/design-system/design-system.spec.tsx +356 -0
  964. package/src/design-system/error-boundary.tsx +37 -0
  965. package/src/design-system/index.ts +7 -0
  966. package/src/design-system/theme.spec.ts +61 -0
  967. package/src/design-system/theme.ts +145 -0
  968. package/src/design-system/types.ts +367 -0
  969. package/src/design-tweaks/index.ts +1 -0
  970. package/src/design-tweaks/scrub-input-utils.ts +311 -0
  971. package/src/design-tweaks/scrub-input.tsx +525 -0
  972. package/src/design-tweaks/visual-style-controls.spec.tsx +172 -0
  973. package/src/design-tweaks/visual-style-controls.tsx +1043 -0
  974. package/src/editor/BubbleToolbar.tsx +253 -0
  975. package/src/editor/CodeBlockNode.tsx +254 -0
  976. package/src/editor/DragHandle.spec.ts +694 -0
  977. package/src/editor/DragHandle.ts +1491 -0
  978. package/src/editor/ImageExtension.roundtrip.spec.ts +117 -0
  979. package/src/editor/ImageExtension.ts +306 -0
  980. package/src/editor/RegistryBlockContext.tsx +107 -0
  981. package/src/editor/RegistryBlockNode.spec.ts +279 -0
  982. package/src/editor/RegistryBlockNode.tsx +652 -0
  983. package/src/editor/RichMarkdownEditor.collab.spec.ts +79 -0
  984. package/src/editor/RichMarkdownEditor.roundtrip.spec.ts +226 -0
  985. package/src/editor/RichMarkdownEditor.tsx +81 -0
  986. package/src/editor/RunId.ts +61 -0
  987. package/src/editor/SharedRichEditor.spec.tsx +82 -0
  988. package/src/editor/SharedRichEditor.tsx +353 -0
  989. package/src/editor/SlashCommandMenu.spec.ts +90 -0
  990. package/src/editor/SlashCommandMenu.tsx +396 -0
  991. package/src/editor/disableHistory.spec.ts +85 -0
  992. package/src/editor/extensions.ts +454 -0
  993. package/src/editor/gfmDoc.spec.ts +230 -0
  994. package/src/editor/gfmDoc.ts +92 -0
  995. package/src/editor/index.ts +96 -0
  996. package/src/editor/registrySlashCommands.ts +131 -0
  997. package/src/editor/structuralReorderUndo.spec.ts +144 -0
  998. package/src/editor/surgical-apply.spec.ts +279 -0
  999. package/src/editor/surgical-apply.ts +192 -0
  1000. package/src/editor/useCollabReconcile.concurrent.spec.ts +781 -0
  1001. package/src/editor/useCollabReconcile.idempotent.spec.ts +324 -0
  1002. package/src/editor/useCollabReconcile.ts +684 -0
  1003. package/src/editor.css +587 -0
  1004. package/src/hooks/index.ts +2 -0
  1005. package/src/hooks/use-mobile.tsx +21 -0
  1006. package/src/hooks/use-toast.ts +188 -0
  1007. package/src/index.ts +10 -0
  1008. package/src/onboarding/index.ts +1 -0
  1009. package/src/provider.tsx +148 -0
  1010. package/src/sharing/SharePrimitives.tsx +224 -0
  1011. package/src/sharing/VisibilityBadge.spec.ts +96 -0
  1012. package/src/sharing/VisibilityBadge.tsx +37 -0
  1013. package/src/sharing/index.ts +16 -0
  1014. package/src/styles.css +232 -0
  1015. package/src/ui/accordion.tsx +56 -0
  1016. package/src/ui/alert-dialog.tsx +141 -0
  1017. package/src/ui/alert.tsx +59 -0
  1018. package/src/ui/aspect-ratio.tsx +5 -0
  1019. package/src/ui/avatar.tsx +48 -0
  1020. package/src/ui/badge.tsx +37 -0
  1021. package/src/ui/breadcrumb.tsx +115 -0
  1022. package/src/ui/button.tsx +167 -0
  1023. package/src/ui/calendar.tsx +214 -0
  1024. package/src/ui/card.tsx +86 -0
  1025. package/src/ui/carousel.tsx +260 -0
  1026. package/src/ui/chart.tsx +375 -0
  1027. package/src/ui/checkbox.tsx +28 -0
  1028. package/src/ui/collapsible.tsx +9 -0
  1029. package/src/ui/command.spec.tsx +51 -0
  1030. package/src/ui/command.tsx +174 -0
  1031. package/src/ui/context-menu.tsx +202 -0
  1032. package/src/ui/date-picker.tsx +67 -0
  1033. package/src/ui/dialog.spec.tsx +43 -0
  1034. package/src/ui/dialog.tsx +171 -0
  1035. package/src/ui/drawer.tsx +126 -0
  1036. package/src/ui/dropdown-menu.tsx +222 -0
  1037. package/src/ui/form.tsx +177 -0
  1038. package/src/ui/hover-card.tsx +27 -0
  1039. package/src/ui/index.ts +52 -0
  1040. package/src/ui/input-otp.tsx +69 -0
  1041. package/src/ui/input.tsx +22 -0
  1042. package/src/ui/label.tsx +24 -0
  1043. package/src/ui/logo.tsx +36 -0
  1044. package/src/ui/menubar.tsx +235 -0
  1045. package/src/ui/navigation-menu.tsx +128 -0
  1046. package/src/ui/pagination.tsx +121 -0
  1047. package/src/ui/popover.tsx +58 -0
  1048. package/src/ui/progress.tsx +27 -0
  1049. package/src/ui/radio-group.tsx +42 -0
  1050. package/src/ui/resizable.tsx +43 -0
  1051. package/src/ui/scroll-area.tsx +46 -0
  1052. package/src/ui/select.tsx +162 -0
  1053. package/src/ui/separator.tsx +29 -0
  1054. package/src/ui/sheet.tsx +160 -0
  1055. package/src/ui/sidebar.tsx +776 -0
  1056. package/src/ui/skeleton.tsx +18 -0
  1057. package/src/ui/slider.tsx +26 -0
  1058. package/src/ui/sonner.tsx +58 -0
  1059. package/src/ui/spinner.tsx +17 -0
  1060. package/src/ui/switch.tsx +27 -0
  1061. package/src/ui/table.tsx +110 -0
  1062. package/src/ui/tabs.tsx +53 -0
  1063. package/src/ui/textarea.tsx +23 -0
  1064. package/src/ui/toast.tsx +127 -0
  1065. package/src/ui/toaster.tsx +33 -0
  1066. package/src/ui/toggle-group.tsx +59 -0
  1067. package/src/ui/toggle.tsx +43 -0
  1068. package/src/ui/tooltip.tsx +57 -0
  1069. package/src/ui/use-toast.ts +3 -0
  1070. package/src/utils.ts +8 -0
@@ -0,0 +1,151 @@
1
+ import { type CSSProperties, type Ref, type ReactNode } from "react";
2
+ import type { ComposerTerminalModeControl } from "./ComposerPlusMenu.js";
3
+ import { type EngineModelGroup, type ReasoningEffort } from "./runtime-adapters.js";
4
+ import { type ComposerAgentOption, type ComposerSubmitIntent, type TiptapComposerHandle } from "./TiptapComposer.js";
5
+ import type { AgentComposerLayoutVariant, Reference, SkillResult, SlashCommand } from "./types.js";
6
+ /**
7
+ * Files the user attached via the "+" button in PromptComposer. The host owns
8
+ * what to do with them — typically POST to a per-app upload endpoint and pass
9
+ * the resulting URLs/paths into the prompt that gets sent to the agent.
10
+ */
11
+ export type PromptComposerFile = File;
12
+ export interface PromptComposerSubmitOptions {
13
+ intent?: ComposerSubmitIntent;
14
+ model?: string;
15
+ engine?: string;
16
+ effort?: ReasoningEffort;
17
+ }
18
+ export interface PromptComposerProps {
19
+ /** Called when the user submits the composer. */
20
+ onSubmit: (text: string, files: PromptComposerFile[], references: Reference[], options: PromptComposerSubmitOptions) => void | Promise<void>;
21
+ placeholder?: string;
22
+ disabled?: boolean;
23
+ /** Called when a host-gated composer is clicked while it is disabled. */
24
+ onDisabledClick?: () => void;
25
+ /** Override the generic document attachment cap for a multipart host. */
26
+ maxDocumentAttachmentBytes?: number;
27
+ /** Label used in the visible document attachment limit error. */
28
+ documentAttachmentLimitLabel?: string;
29
+ autoFocus?: boolean;
30
+ className?: string;
31
+ style?: CSSProperties;
32
+ rootClassName?: string;
33
+ rootStyle?: CSSProperties;
34
+ /** Forwarded to TiptapComposer for draft persistence. */
35
+ draftScope?: string;
36
+ /** Keep the submitted prompt in the editor. Default: false. */
37
+ preserveDraftOnSubmit?: boolean;
38
+ /** Show the model selector (default: true). */
39
+ showModelSelector?: boolean;
40
+ /** Controlled open state for hosts that resize around the model picker. */
41
+ modelSelectorOpen?: boolean;
42
+ /** Show the legacy provider-level Auto model option (default: true). */
43
+ showAutoModelOption?: boolean;
44
+ /** Show the voice dictation button. Defaults to DEFAULT_VOICE_DICTATION_ENABLED. */
45
+ voiceEnabled?: boolean;
46
+ /** Show file upload controls and pass submitted files to onSubmit (default: true). */
47
+ attachmentsEnabled?: boolean;
48
+ /**
49
+ * Controls the shared "+" affordance. Defaults to upload-only for standalone
50
+ * prompt forms; chat surfaces can opt into the full sidebar menu.
51
+ */
52
+ plusMenuMode?: "full" | "upload-only" | "terminal" | "hidden";
53
+ /** Controls the terminal-specific plus menu when `plusMenuMode` is terminal. */
54
+ terminalModeControl?: ComposerTerminalModeControl;
55
+ /**
56
+ * Include extension creation in the full "+" menu. Defaults to false.
57
+ */
58
+ extensionTools?: boolean;
59
+ /** Programmatically seed the composer with plain text. */
60
+ initialText?: string;
61
+ /** Stable key used to re-apply `initialText` when the host picks a preset. */
62
+ initialTextKey?: string | number;
63
+ /** Optional host-owned control rendered directly after the "+" button. */
64
+ modeControl?: ReactNode;
65
+ /** Explicit host-owned toolbar slot rendered directly after the "+" button. */
66
+ toolbarSlot?: ReactNode;
67
+ /** Custom attachment button to render instead of the default "+" affordance. */
68
+ attachButton?: ReactNode;
69
+ /** Custom action button to render instead of the default send button. */
70
+ actionButton?: ReactNode;
71
+ /** Extra button rendered alongside the default send button. */
72
+ extraActionButton?: ReactNode;
73
+ /** Shared sizing/layout variant for host surfaces. Default keeps sidebar behavior. */
74
+ layoutVariant?: AgentComposerLayoutVariant;
75
+ /** Additional slash commands surfaced in the shared / menu. */
76
+ slashCommands?: SlashCommand[];
77
+ /** Additional slash skills surfaced in the shared / menu. */
78
+ slashSkills?: SkillResult[];
79
+ /** Include built-in sidebar slash commands like /clear and /help. Default true. */
80
+ includeDefaultSlashCommands?: boolean;
81
+ /** Include app-discovered skills from the default agent endpoint. Default true. */
82
+ includeDefaultSlashSkills?: boolean;
83
+ /** Called when a slash command from the shared / menu is executed. */
84
+ onSlashCommand?: (command: string) => void;
85
+ /** External model list for hosts that already resolve models outside the app. */
86
+ availableModels?: EngineModelGroup[];
87
+ /** Whether the external model list is still being resolved. */
88
+ modelListLoading?: boolean;
89
+ selectedModel?: string;
90
+ selectedEngine?: string;
91
+ selectedEffort?: ReasoningEffort;
92
+ onModelChange?: (model: string, engine: string) => void;
93
+ onEffortChange?: (effort: ReasoningEffort) => void;
94
+ /** Local or hosted agent runtimes shown above the model list. */
95
+ availableAgents?: ComposerAgentOption[];
96
+ /** Selected agent runtime identifier. */
97
+ selectedAgent?: string;
98
+ /** Show only the selected agent in the model control. */
99
+ agentOnly?: boolean;
100
+ /** Callback when the user picks an agent runtime. */
101
+ onAgentChange?: (agent: string) => void;
102
+ /** Called when the shared model picker opens or closes. */
103
+ onModelSelectorOpenChange?: (open: boolean) => void;
104
+ /**
105
+ * Enable server-backed model/provider status checks. Defaults off when the
106
+ * host supplies model state and callbacks, otherwise on.
107
+ */
108
+ modelStatusChecksEnabled?: boolean;
109
+ /** Called whenever the plain editor text changes. */
110
+ onTextChange?: (text: string) => void;
111
+ /**
112
+ * Override the Builder.io connect action in the model picker. When provided,
113
+ * clicking "Connect Builder.io" calls this instead of opening a browser popup.
114
+ * Used by the Electron desktop app to route through the native IPC handler.
115
+ */
116
+ onConnectProvider?: () => void;
117
+ /** Called when a local runtime needs its native sign-in/setup flow. */
118
+ onConnectLocalRuntime?: (engine: string) => void;
119
+ /** Imperative handle for focusing the composer. */
120
+ composerRef?: Ref<TiptapComposerHandle>;
121
+ }
122
+ /**
123
+ * Only a confirmed-missing engine that also has a setup component to render
124
+ * may block typing: a disabled composer with no way out is never an acceptable
125
+ * terminal state, and `unknown`/`unavailable` mean the status check has not
126
+ * answered — not that no provider is configured.
127
+ */
128
+ export declare function shouldGateComposerForMissingEngine(input: {
129
+ state: string;
130
+ hasSetupComponent: boolean;
131
+ }): boolean;
132
+ export declare function buildPromptComposerSubmission(options: {
133
+ text: string;
134
+ attachments?: ReadonlyArray<unknown>;
135
+ }): Promise<{
136
+ text: string;
137
+ files: File[];
138
+ }>;
139
+ /**
140
+ * Standalone composer that mirrors the agent sidebar's input experience —
141
+ * voice dictation, file upload, model selector, submit-on-Enter — for use in
142
+ * popovers and inline prompt forms (create tool, create deck, create dashboard,
143
+ * the Dispatch new-app flow, etc.).
144
+ *
145
+ * The host owns submission: when the user presses Enter or clicks submit,
146
+ * `onSubmit(text, files, references, options)` is called. PromptComposer runs
147
+ * its own minimal assistant-ui runtime so it can be dropped into any subtree
148
+ * without needing the outer chat to be mounted.
149
+ */
150
+ export declare function PromptComposer(props: PromptComposerProps): import("react").JSX.Element;
151
+ //# sourceMappingURL=PromptComposer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptComposer.d.ts","sourceRoot":"","sources":["../../src/composer/PromptComposer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,322 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { AssistantRuntimeProvider, ThreadPrimitive, useAui, useComposer, useLocalRuntime, } from "@assistant-ui/react";
3
+ import { CompositeAttachmentAdapter, SimpleImageAttachmentAdapter, } from "@assistant-ui/react";
4
+ import { IconX } from "@tabler/icons-react";
5
+ import { useCallback, useEffect, useMemo, useRef, useState, } from "react";
6
+ import { TooltipProvider } from "../ui/tooltip.js";
7
+ import { cn } from "../utils.js";
8
+ import { AgentComposerFrame } from "./AgentComposerFrame.js";
9
+ import { IMAGE_ATTACHMENT_ACCEPT } from "./attachment-accept.js";
10
+ import { PROMPT_DOCUMENT_ATTACHMENT_ACCEPT, TextAttachmentAdapter, } from "./attachment-accept.js";
11
+ import { isPastedTextAttachmentName } from "./pasted-text.js";
12
+ import { PastedTextChip } from "./PastedTextChip.js";
13
+ import { escapePromptAttachmentAttribute } from "./prompt-attachments.js";
14
+ import { useComposerRuntimeAdapters, } from "./runtime-adapters.js";
15
+ import { DEFAULT_VOICE_DICTATION_ENABLED, TiptapComposer, } from "./TiptapComposer.js";
16
+ const MAX_INLINE_TEXT_FILE_CHARS = 60_000;
17
+ // Minimal pass-through adapter. PromptComposer always submits through
18
+ // onSubmitOverride, so the runtime never actually calls this — but
19
+ // `useLocalRuntime` needs *something* shaped like a ChatModelAdapter.
20
+ const NOOP_ADAPTER = {
21
+ async *run() {
22
+ return;
23
+ },
24
+ };
25
+ /**
26
+ * Local binary document adapter so reference PDFs, decks, and docs can be
27
+ * attached without dragging the whole assistant chat module into bundles that
28
+ * just want a prompt popover.
29
+ */
30
+ class BinaryDocumentAttachmentAdapter {
31
+ accept = PROMPT_DOCUMENT_ATTACHMENT_ACCEPT;
32
+ async add(state) {
33
+ return {
34
+ id: state.file.name,
35
+ type: "document",
36
+ name: state.file.name,
37
+ contentType: state.file.type || "application/octet-stream",
38
+ file: state.file,
39
+ status: { type: "requires-action", reason: "composer-send" },
40
+ };
41
+ }
42
+ async send(attachment) {
43
+ return {
44
+ ...attachment,
45
+ status: { type: "complete" },
46
+ content: [],
47
+ };
48
+ }
49
+ async remove() {
50
+ /* noop */
51
+ }
52
+ }
53
+ class RasterImageAttachmentAdapter extends SimpleImageAttachmentAdapter {
54
+ accept = IMAGE_ATTACHMENT_ACCEPT;
55
+ }
56
+ function isInlineableTextFile(file) {
57
+ if (file.type.startsWith("text/"))
58
+ return true;
59
+ if (file.type === "application/json")
60
+ return true;
61
+ return /\.(txt|md|markdown|csv|json|yaml|yml|html?|css|xml)$/i.test(file.name);
62
+ }
63
+ function formatInlineTextFile(name, text) {
64
+ const truncated = text.length > MAX_INLINE_TEXT_FILE_CHARS;
65
+ const body = truncated ? text.slice(0, MAX_INLINE_TEXT_FILE_CHARS) : text;
66
+ return [
67
+ `<uploaded-text-file name="${escapePromptAttachmentAttribute(name)}">`,
68
+ body,
69
+ truncated
70
+ ? `[Truncated after ${MAX_INLINE_TEXT_FILE_CHARS} characters.]`
71
+ : "",
72
+ "</uploaded-text-file>",
73
+ ]
74
+ .filter(Boolean)
75
+ .join("\n");
76
+ }
77
+ /**
78
+ * Only a confirmed-missing engine that also has a setup component to render
79
+ * may block typing: a disabled composer with no way out is never an acceptable
80
+ * terminal state, and `unknown`/`unavailable` mean the status check has not
81
+ * answered — not that no provider is configured.
82
+ */
83
+ export function shouldGateComposerForMissingEngine(input) {
84
+ return input.state === "missing" && input.hasSetupComponent;
85
+ }
86
+ export async function buildPromptComposerSubmission(options) {
87
+ const files = [];
88
+ const pastedTextBlocks = [];
89
+ const rawText = options.text;
90
+ for (const att of options.attachments ?? []) {
91
+ const a = att;
92
+ if ("file" in a && a.file instanceof File) {
93
+ const file = a.file;
94
+ if (isPastedTextAttachmentName(file.name)) {
95
+ try {
96
+ pastedTextBlocks.push(await file.text());
97
+ }
98
+ catch {
99
+ files.push(file);
100
+ }
101
+ }
102
+ else {
103
+ if (isInlineableTextFile(file)) {
104
+ try {
105
+ pastedTextBlocks.push(formatInlineTextFile(file.name, await file.text()));
106
+ }
107
+ catch {
108
+ // Keep the upload path fallback below.
109
+ }
110
+ }
111
+ // Note: images are NOT inlined into the prompt text even when small.
112
+ // Inlining a base64 data-URL into a text string consumes an enormous
113
+ // number of tokens (≈ 700 K per MB) and most hosts handle images via
114
+ // proper attachment channels. The `files` array below carries the image
115
+ // for the host to process through a dedicated attachment pipeline.
116
+ files.push(file);
117
+ }
118
+ }
119
+ }
120
+ return {
121
+ text: pastedTextBlocks.length
122
+ ? [rawText.trim(), ...pastedTextBlocks].filter(Boolean).join("\n\n")
123
+ : rawText,
124
+ files,
125
+ };
126
+ }
127
+ function getImageSrc(attachment) {
128
+ if (attachment.type !== "image")
129
+ return null;
130
+ if ("file" in attachment && attachment.file) {
131
+ return URL.createObjectURL(attachment.file);
132
+ }
133
+ const imagePart = attachment.content?.find((part) => part.type === "image");
134
+ return imagePart && "image" in imagePart ? imagePart.image : null;
135
+ }
136
+ function ImagePreviewLightbox({ src, alt, onClose, }) {
137
+ const t = useComposerRuntimeAdapters().translate;
138
+ useEffect(() => {
139
+ const handler = (e) => {
140
+ if (e.key === "Escape")
141
+ onClose();
142
+ };
143
+ document.addEventListener("keydown", handler);
144
+ document.body.style.overflow = "hidden";
145
+ return () => {
146
+ document.removeEventListener("keydown", handler);
147
+ document.body.style.overflow = "";
148
+ };
149
+ }, [onClose]);
150
+ return (_jsxs("div", { role: "dialog", "aria-label": t("agentChat.composer.imagePreview", {
151
+ defaultValue: "Image preview",
152
+ }), onClick: onClose, className: "fixed inset-0 z-[300] flex items-center justify-center bg-black/80 p-6 cursor-zoom-out", children: [_jsx("img", { src: src, alt: alt, onClick: (e) => e.stopPropagation(), className: "max-h-full max-w-full object-contain rounded-md shadow-2xl cursor-default" }), _jsx("button", { type: "button", onClick: onClose, "aria-label": t("agentChat.composer.closePreview", {
153
+ defaultValue: "Close preview",
154
+ }), className: "absolute end-4 top-4 flex h-8 w-8 cursor-pointer items-center justify-center rounded-full border border-white/30 bg-black/40 text-white hover:bg-black/60", children: _jsx(IconX, { className: "h-4 w-4" }) })] }));
155
+ }
156
+ function AttachmentChip({ attachment, onRemove, }) {
157
+ const src = useMemo(() => getImageSrc(attachment), [attachment]);
158
+ const [previewOpen, setPreviewOpen] = useState(false);
159
+ const t = useComposerRuntimeAdapters().translate;
160
+ useEffect(() => () => {
161
+ if (src?.startsWith("blob:"))
162
+ URL.revokeObjectURL(src);
163
+ }, [src]);
164
+ if (isPastedTextAttachmentName(attachment.name)) {
165
+ return _jsx(PastedTextChip, { attachment: attachment, onRemove: onRemove });
166
+ }
167
+ if (src) {
168
+ return (_jsxs(_Fragment, { children: [_jsxs("button", { type: "button", onClick: () => setPreviewOpen(true), "aria-label": t("agentChat.composer.previewAttachment", {
169
+ name: attachment.name,
170
+ defaultValue: `Preview ${attachment.name}`,
171
+ }), className: "agent-composer-attachment-image group relative flex h-16 min-w-16 max-w-28 cursor-zoom-in items-center justify-center overflow-hidden rounded-lg border border-border/70 bg-muted/50", children: [_jsx("img", { src: src, alt: attachment.name, className: "max-h-full max-w-full object-contain p-1" }), _jsx("span", { role: "button", tabIndex: 0, onClick: (e) => {
172
+ e.stopPropagation();
173
+ onRemove(attachment.id);
174
+ }, onKeyDown: (e) => {
175
+ if (e.key === "Enter" || e.key === " ") {
176
+ e.preventDefault();
177
+ e.stopPropagation();
178
+ onRemove(attachment.id);
179
+ }
180
+ }, "aria-label": t("agentChat.composer.removeAttachment", {
181
+ name: attachment.name,
182
+ defaultValue: `Remove ${attachment.name}`,
183
+ }), className: "absolute end-1 top-1 flex h-5 w-5 cursor-pointer items-center justify-center rounded-full border border-border/60 bg-background/90 text-muted-foreground hover:text-foreground", children: _jsx(IconX, { className: "h-3 w-3" }) })] }), previewOpen ? (_jsx(ImagePreviewLightbox, { src: src, alt: attachment.name, onClose: () => setPreviewOpen(false) })) : null] }));
184
+ }
185
+ return (_jsxs("div", { className: "agent-composer-attachment-chip group relative inline-flex max-w-[200px] items-center gap-2 rounded-md border border-border/70 bg-muted/50 px-2 py-1.5 text-xs", children: [_jsx("div", { className: "flex h-6 w-6 shrink-0 items-center justify-center rounded bg-background text-[9px] font-semibold uppercase text-muted-foreground", children: attachment.name.split(".").pop() ||
186
+ t("agentChat.composer.file", { defaultValue: "file" }) }), _jsx("span", { className: "min-w-0 truncate font-medium", children: attachment.name }), _jsx("button", { type: "button", onClick: () => onRemove(attachment.id), "aria-label": t("agentChat.composer.removeAttachment", {
187
+ name: attachment.name,
188
+ defaultValue: `Remove ${attachment.name}`,
189
+ }), className: "flex h-5 w-5 shrink-0 cursor-pointer items-center justify-center rounded text-muted-foreground hover:text-foreground", children: _jsx(IconX, { className: "h-3 w-3" }) })] }));
190
+ }
191
+ function PromptAttachmentStrip() {
192
+ const attachments = useComposer((state) => state.attachments);
193
+ const aui = useAui();
194
+ const handleRemove = useCallback((id) => {
195
+ void aui.composer().attachment({ id }).remove();
196
+ }, [aui]);
197
+ if (attachments.length === 0)
198
+ return null;
199
+ return (_jsx("div", { className: "agent-composer-attachment-strip flex flex-wrap gap-2 px-2 pt-2", children: attachments.map((attachment) => (_jsx(AttachmentChip, { attachment: attachment, onRemove: handleRemove }, attachment.id))) }));
200
+ }
201
+ function PromptComposerInner({ onSubmit, placeholder, disabled, onDisabledClick, maxDocumentAttachmentBytes, documentAttachmentLimitLabel, autoFocus, className, style, rootClassName, rootStyle, draftScope, preserveDraftOnSubmit = false, showModelSelector = true, modelSelectorOpen, showAutoModelOption = true, voiceEnabled = DEFAULT_VOICE_DICTATION_ENABLED, attachmentsEnabled = true, plusMenuMode, terminalModeControl, extensionTools = false, initialText, initialTextKey, modeControl, toolbarSlot, attachButton, actionButton, extraActionButton, layoutVariant, slashCommands, slashSkills, includeDefaultSlashCommands, includeDefaultSlashSkills, onSlashCommand, availableModels, modelListLoading, selectedModel, selectedEngine, selectedEffort, onModelChange, onEffortChange, availableAgents, selectedAgent, agentOnly = false, onAgentChange, onModelSelectorOpenChange, modelStatusChecksEnabled, onTextChange, onConnectProvider, onConnectLocalRuntime, composerRef, }) {
202
+ const adapters = useComposerRuntimeAdapters();
203
+ const t = adapters.translate;
204
+ const modelsAdapter = adapters.models;
205
+ const BuilderSetupCard = modelsAdapter.BuilderSetupCard;
206
+ const BuilderSetupContent = modelsAdapter.BuilderSetupContent;
207
+ const localRef = useRef(null);
208
+ const handleRef = composerRef ?? localRef;
209
+ const hostManagedModels = Boolean(availableModels && selectedModel && onModelChange);
210
+ const resolvedModelStatusChecksEnabled = modelStatusChecksEnabled ?? !hostManagedModels;
211
+ const models = modelsAdapter.useChatModels({
212
+ enabled: showModelSelector && resolvedModelStatusChecksEnabled,
213
+ });
214
+ const composerModel = showModelSelector
215
+ ? (selectedModel ?? models.selectedModel)
216
+ : undefined;
217
+ const composerEngine = showModelSelector
218
+ ? (selectedEngine ?? models.selectedEngine)
219
+ : undefined;
220
+ const composerEffort = showModelSelector
221
+ ? (selectedEffort ?? models.selectedEffort)
222
+ : undefined;
223
+ const composerModelGroups = showModelSelector
224
+ ? (availableModels ?? models.availableModels)
225
+ : undefined;
226
+ const composerModelListLoading = showModelSelector &&
227
+ (modelListLoading ??
228
+ (availableModels ? availableModels.length === 0 : models.isLoading));
229
+ const handleModelChange = showModelSelector
230
+ ? (onModelChange ?? models.onModelChange)
231
+ : undefined;
232
+ const handleEffortChange = showModelSelector
233
+ ? (onEffortChange ?? models.onEffortChange)
234
+ : undefined;
235
+ const agentEngineConfigured = modelsAdapter.useAgentEngineConfigured(resolvedModelStatusChecksEnabled);
236
+ const missingApiKey = agentEngineConfigured.missing;
237
+ const [missingKeyBouncePulse, setMissingKeyBouncePulse] = useState(0);
238
+ const bounceMissingKeySetup = useCallback(() => {
239
+ setMissingKeyBouncePulse((pulse) => pulse + 1);
240
+ if (typeof window !== "undefined") {
241
+ window.dispatchEvent(new Event("agent-chat:missing-api-key"));
242
+ }
243
+ }, []);
244
+ const handleBuilderConnected = useCallback(() => {
245
+ if (typeof window !== "undefined") {
246
+ window.dispatchEvent(new Event("agent-engine:configured-changed"));
247
+ }
248
+ }, []);
249
+ useEffect(() => {
250
+ if (!autoFocus)
251
+ return;
252
+ const id = window.setTimeout(() => {
253
+ const target = typeof handleRef === "object" && handleRef && "current" in handleRef
254
+ ? handleRef.current
255
+ : null;
256
+ target?.focus();
257
+ }, 50);
258
+ return () => window.clearTimeout(id);
259
+ }, [autoFocus, handleRef]);
260
+ const handleSubmit = useCallback(async (text, references, attachments, submitOptions) => {
261
+ // PromptComposer hosts (NewWorkspaceAppFlow, create-extension, create-deck,
262
+ // …) submit a single string prompt — they don't run the assistant-ui
263
+ // attachment send pipeline. TiptapComposer auto-converts large pastes
264
+ // into a "Pasted text" chip, which would otherwise disappear into an
265
+ // unprocessed File. Inline the chip body back into the prompt text so
266
+ // newlines and full content survive the round-trip.
267
+ const { text: finalText, files } = await buildPromptComposerSubmission({
268
+ text,
269
+ attachments,
270
+ });
271
+ await onSubmit(finalText, files, references, {
272
+ intent: submitOptions?.intent ?? "immediate",
273
+ model: composerModel,
274
+ engine: composerEngine,
275
+ effort: composerEffort,
276
+ });
277
+ }, [composerEffort, composerEngine, composerModel, onSubmit]);
278
+ const useInlineMissingKeySetup = layoutVariant === "compact";
279
+ const gateComposer = shouldGateComposerForMissingEngine({
280
+ state: agentEngineConfigured.state,
281
+ hasSetupComponent: Boolean(useInlineMissingKeySetup ? BuilderSetupContent : BuilderSetupCard),
282
+ });
283
+ return (_jsxs(_Fragment, { children: [missingApiKey && !useInlineMissingKeySetup && BuilderSetupCard ? (_jsx(BuilderSetupCard, { onConnected: handleBuilderConnected, bouncePulse: missingKeyBouncePulse, attached: true, fullWidth: true, layout: "sidebar" })) : null, missingApiKey && useInlineMissingKeySetup && BuilderSetupContent ? (_jsx("div", { className: "agent-builder-setup-inline--attached mb-0 rounded-md border border-border/80 bg-background/80 p-2.5 text-start shadow-sm", children: _jsx(BuilderSetupContent, { onConnected: handleBuilderConnected, layout: "sidebar" }) })) : null, _jsxs(AgentComposerFrame, { className: cn("text-start", gateComposer && "cursor-pointer", (gateComposer || onDisabledClick) &&
284
+ "agent-composer-area--attached-above", className), rootClassName: rootClassName, style: style, rootStyle: rootStyle, layoutVariant: layoutVariant, onClick: gateComposer
285
+ ? bounceMissingKeySetup
286
+ : onDisabledClick
287
+ ? () => onDisabledClick()
288
+ : undefined, children: [_jsx(PromptAttachmentStrip, {}), _jsx(TiptapComposer, { focusRef: handleRef, disabled: disabled || gateComposer, maxDocumentAttachmentBytes: maxDocumentAttachmentBytes, documentAttachmentLimitLabel: documentAttachmentLimitLabel, placeholder: gateComposer
289
+ ? t("agentChat.composer.connectAbove", {
290
+ defaultValue: "Connect AI above to continue...",
291
+ })
292
+ : placeholder, initialText: initialText, initialTextKey: initialTextKey, onSubmit: handleSubmit, clearOnSubmit: !preserveDraftOnSubmit, plusMenuMode: plusMenuMode ?? (attachmentsEnabled ? "upload-only" : "hidden"), terminalModeControl: terminalModeControl, extensionTools: extensionTools, attachButton: attachButton, modeControl: modeControl, toolbarSlot: toolbarSlot, actionButton: actionButton, extraActionButton: extraActionButton, layoutVariant: layoutVariant, slashCommands: slashCommands, slashSkills: slashSkills, includeDefaultSlashCommands: includeDefaultSlashCommands, includeDefaultSlashSkills: includeDefaultSlashSkills, onSlashCommand: onSlashCommand, voiceEnabled: voiceEnabled, onTextChange: onTextChange, draftScope: draftScope, selectedModel: composerModel, modelSelectorOpen: modelSelectorOpen, selectedEffort: composerEffort, availableModels: composerModelGroups, availableAgents: availableAgents, selectedAgent: selectedAgent, agentOnly: agentOnly, showAutoModelOption: showAutoModelOption, modelListLoading: composerModelListLoading, onModelChange: handleModelChange, onEffortChange: handleEffortChange, onAgentChange: onAgentChange, onModelSelectorOpenChange: onModelSelectorOpenChange, providerConnectStatusEnabled: resolvedModelStatusChecksEnabled, onConnectProvider: onConnectProvider, onConnectLocalRuntime: onConnectLocalRuntime })] })] }));
293
+ }
294
+ /**
295
+ * Standalone composer that mirrors the agent sidebar's input experience —
296
+ * voice dictation, file upload, model selector, submit-on-Enter — for use in
297
+ * popovers and inline prompt forms (create tool, create deck, create dashboard,
298
+ * the Dispatch new-app flow, etc.).
299
+ *
300
+ * The host owns submission: when the user presses Enter or clicks submit,
301
+ * `onSubmit(text, files, references, options)` is called. PromptComposer runs
302
+ * its own minimal assistant-ui runtime so it can be dropped into any subtree
303
+ * without needing the outer chat to be mounted.
304
+ */
305
+ export function PromptComposer(props) {
306
+ const StaleIndexBoundary = useComposerRuntimeAdapters().agentChat.StaleIndexBoundary;
307
+ const attachmentAdapter = useMemo(() => new CompositeAttachmentAdapter([
308
+ new RasterImageAttachmentAdapter(),
309
+ new BinaryDocumentAttachmentAdapter(),
310
+ new TextAttachmentAdapter(),
311
+ ]), []);
312
+ const runtime = useLocalRuntime(NOOP_ADAPTER, {
313
+ adapters: { attachments: attachmentAdapter },
314
+ });
315
+ const resetKey = [
316
+ props.draftScope ?? "",
317
+ props.initialTextKey ?? "",
318
+ props.initialText ?? "",
319
+ ].join(":");
320
+ return (_jsx(TooltipProvider, { delayDuration: 200, children: _jsx(AssistantRuntimeProvider, { runtime: runtime, children: _jsx(ThreadPrimitive.Root, { className: "contents", style: { display: "contents" }, children: _jsx(StaleIndexBoundary, { resetKey: resetKey, componentName: "PromptComposer", children: _jsx(PromptComposerInner, { ...props }) }) }) }) }));
321
+ }
322
+ //# sourceMappingURL=PromptComposer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptComposer.js","sourceRoot":"","sources":["../../src/composer/PromptComposer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PromptComposer.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptComposer.spec.d.ts","sourceRoot":"","sources":["../../src/composer/PromptComposer.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,87 @@
1
+ // @vitest-environment happy-dom
2
+ import { describe, expect, it } from "vitest";
3
+ import { buildPromptComposerSubmission, shouldGateComposerForMissingEngine, } from "./PromptComposer.js";
4
+ describe("shouldGateComposerForMissingEngine", () => {
5
+ it("never disables the composer while the status check is unresolved", () => {
6
+ for (const state of ["unknown", "unavailable"]) {
7
+ expect(shouldGateComposerForMissingEngine({ state, hasSetupComponent: true })).toBe(false);
8
+ }
9
+ });
10
+ it("gates only when a connect affordance can be rendered", () => {
11
+ expect(shouldGateComposerForMissingEngine({
12
+ state: "missing",
13
+ hasSetupComponent: true,
14
+ })).toBe(true);
15
+ expect(shouldGateComposerForMissingEngine({
16
+ state: "missing",
17
+ hasSetupComponent: false,
18
+ })).toBe(false);
19
+ });
20
+ it("leaves the composer usable once an engine is configured", () => {
21
+ expect(shouldGateComposerForMissingEngine({
22
+ state: "configured",
23
+ hasSetupComponent: true,
24
+ })).toBe(false);
25
+ });
26
+ });
27
+ describe("buildPromptComposerSubmission", () => {
28
+ it("passes images through files only — never inlines base64 into prompt text", async () => {
29
+ // Images are passed to `files` for the host to process through the
30
+ // attachment pipeline. They must NOT be inlined as base64 in `text`
31
+ // (≈700K tokens per MB of image data).
32
+ const file = new File(["fake image"], "sketch.png", {
33
+ type: "image/png",
34
+ });
35
+ const result = await buildPromptComposerSubmission({
36
+ text: "",
37
+ attachments: [
38
+ {
39
+ id: "sketch.png",
40
+ name: "sketch.png",
41
+ type: "image",
42
+ file,
43
+ },
44
+ ],
45
+ });
46
+ expect(result.files).toEqual([file]);
47
+ // text must not contain any base64 data or uploaded-image markup
48
+ expect(result.text).not.toContain("data:image");
49
+ expect(result.text).not.toContain("<uploaded-image");
50
+ });
51
+ it("escapes inline attachment metadata in standalone submissions", async () => {
52
+ const file = new File(["hello"], 'bad"name&.md', {
53
+ type: "text/markdown",
54
+ });
55
+ const result = await buildPromptComposerSubmission({
56
+ text: "Review this",
57
+ attachments: [
58
+ {
59
+ id: "bad",
60
+ name: file.name,
61
+ type: "document",
62
+ file,
63
+ },
64
+ ],
65
+ });
66
+ expect(result.text).toContain('name="bad&quot;name&amp;.md"');
67
+ expect(result.text).not.toContain('name="bad"name&.md"');
68
+ });
69
+ it("does not include image data in prompt text regardless of file size", async () => {
70
+ // Both small and large images stay in `files` only.
71
+ const smallFile = new File(["small image"], "small.png", {
72
+ type: "image/png",
73
+ });
74
+ const largeFile = new File([new Uint8Array(3 * 1024 * 1024)], "large.png", {
75
+ type: "image/png",
76
+ });
77
+ for (const file of [smallFile, largeFile]) {
78
+ const result = await buildPromptComposerSubmission({
79
+ text: "",
80
+ attachments: [{ id: file.name, name: file.name, type: "image", file }],
81
+ });
82
+ expect(result.files).toEqual([file]);
83
+ expect(result.text).not.toContain("data:image");
84
+ }
85
+ });
86
+ });
87
+ //# sourceMappingURL=PromptComposer.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptComposer.spec.js","sourceRoot":"","sources":["../../src/composer/PromptComposer.spec.ts"],"names":[],"mappings":"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"}