@pstdio/ui 0.0.2 → 0.0.4

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 (737) hide show
  1. package/dist/EquationComponent-DeDYHvqY.js +62 -0
  2. package/dist/EquationComponent-DeDYHvqY.js.map +1 -0
  3. package/dist/chat-ui.js +347 -0
  4. package/dist/chat-ui.js.map +1 -0
  5. package/dist/components/button.stories.d.ts +18 -0
  6. package/dist/components/chat-ui/components/ai-conversation.d.ts +1161 -0
  7. package/dist/components/chat-ui/index.d.ts +10 -0
  8. package/dist/components/chat-ui/utils/get-icon.d.ts +34 -0
  9. package/{storybook-static → dist}/components/column-file-browser.d.ts +1 -2
  10. package/dist/components/column-file-browser.stories.d.ts +15 -0
  11. package/dist/components/data-table/build-columns.d.ts +3 -0
  12. package/dist/components/data-table/data-table.d.ts +2 -0
  13. package/{storybook-static/components → dist/components/data-table}/data-table.stories.d.ts +1 -1
  14. package/dist/components/data-table/helpers.d.ts +10 -0
  15. package/dist/components/data-table/index.d.ts +3 -0
  16. package/dist/components/data-table/pagination-footer.d.ts +5 -0
  17. package/dist/components/data-table/selection-toolbar.d.ts +9 -0
  18. package/{storybook-static/components/data-table.d.ts → dist/components/data-table/types.d.ts} +6 -4
  19. package/{storybook-static → dist}/components/file-selector.d.ts +1 -2
  20. package/{storybook-static/components/style-guide.stories.d.ts → dist/components/file-selector.stories.d.ts} +6 -3
  21. package/{storybook-static → dist}/components/info-card.d.ts +1 -2
  22. package/dist/components/info-card.stories.d.ts +41 -0
  23. package/{storybook-static → dist}/components/menu-item.d.ts +1 -1
  24. package/dist/components/menu-item.stories.d.ts +72 -0
  25. package/dist/components/number-input.d.ts +8 -0
  26. package/{storybook-static → dist}/components/param-editor.stories.d.ts +1 -0
  27. package/{storybook-static → dist}/components/rich-text/collaborative-markdown-editor/collaborative-markdown-editor.d.ts +1 -0
  28. package/dist/components/rich-text/utils/inferResourceType.d.ts +1 -0
  29. package/dist/components/session-indicator.d.ts +14 -0
  30. package/dist/components/session-indicator.stories.d.ts +11 -0
  31. package/dist/components/slider.stories.d.ts +15 -0
  32. package/dist/components/style-guide.stories.d.ts +28 -0
  33. package/dist/components/ticket-board.d.ts +33 -0
  34. package/dist/components/ticket-board.stories.d.ts +5 -0
  35. package/dist/components/ticket-card.d.ts +24 -0
  36. package/dist/components/ticket-card.stories.d.ts +17 -0
  37. package/dist/components/toaster.d.ts +3 -0
  38. package/{storybook-static → dist}/index.d.ts +5 -3
  39. package/dist/index.js +435 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/rich-message-CiA3ripk.js +1401 -0
  42. package/dist/rich-message-CiA3ripk.js.map +1 -0
  43. package/dist/rich-text.js +485 -0
  44. package/dist/rich-text.js.map +1 -0
  45. package/dist/style.css +1 -0
  46. package/{storybook-static → dist}/theme/primitives/colors.d.ts +6 -0
  47. package/dist/theme-9E0MRtZk.js +1985 -0
  48. package/dist/theme-9E0MRtZk.js.map +1 -0
  49. package/{src/theme/index.ts → dist/theme.js} +5 -2
  50. package/dist/theme.js.map +1 -0
  51. package/dist/tooltip-Gm7PLwZG.js +51 -0
  52. package/dist/tooltip-Gm7PLwZG.js.map +1 -0
  53. package/{storybook-static/theme/applyThemePreference.d.ts → dist/utils/apply-theme-preference.d.ts} +1 -1
  54. package/{storybook-static/theme → dist/utils}/theme-preference.d.ts +3 -3
  55. package/package.json +12 -9
  56. package/.storybook/main.ts +0 -28
  57. package/.storybook/preview.tsx +0 -28
  58. package/.storybook/vitest.setup.ts +0 -6
  59. package/src/components/alert.tsx +0 -27
  60. package/src/components/breadcrumb.stories.tsx +0 -40
  61. package/src/components/breadcrumb.tsx +0 -67
  62. package/src/components/button.stories.tsx +0 -151
  63. package/src/components/chat-ui/agent-types.ts +0 -231
  64. package/src/components/chat-ui/components/ai-conversation.stories.tsx +0 -49
  65. package/src/components/chat-ui/components/ai-conversation.tsx +0 -68
  66. package/src/components/chat-ui/components/ai-message.stories.tsx +0 -60
  67. package/src/components/chat-ui/components/ai-message.tsx +0 -103
  68. package/src/components/chat-ui/components/ai-response.stories.tsx +0 -48
  69. package/src/components/chat-ui/components/ai-response.tsx +0 -19
  70. package/src/components/chat-ui/components/approval-prompt.tsx +0 -51
  71. package/src/components/chat-ui/components/attachment-list.stories.tsx +0 -24
  72. package/src/components/chat-ui/components/attachment-list.tsx +0 -76
  73. package/src/components/chat-ui/components/auto-scroll.tsx +0 -42
  74. package/src/components/chat-ui/components/chat-input.stories.tsx +0 -114
  75. package/src/components/chat-ui/components/chat-input.tsx +0 -142
  76. package/src/components/chat-ui/components/chat-panel.stories.tsx +0 -396
  77. package/src/components/chat-ui/components/chat-panel.tsx +0 -97
  78. package/src/components/chat-ui/components/message-parts-renderer.stories.tsx +0 -59
  79. package/src/components/chat-ui/components/message-parts-renderer.tsx +0 -133
  80. package/src/components/chat-ui/components/message-types.ts +0 -40
  81. package/src/components/chat-ui/components/model-swap-separator.stories.tsx +0 -27
  82. package/src/components/chat-ui/components/model-swap-separator.tsx +0 -20
  83. package/src/components/chat-ui/components/send-button.tsx +0 -56
  84. package/src/components/chat-ui/components/timeline.tsx +0 -414
  85. package/src/components/chat-ui/components/tool-invocation-timeline.stories.tsx +0 -32
  86. package/src/components/chat-ui/components/tool-invocation-timeline.tsx +0 -16
  87. package/src/components/chat-ui/index.ts +0 -8
  88. package/src/components/chat-ui/mocks/full-conversation-normalized.json +0 -3557
  89. package/src/components/chat-ui/tool-rendering/build-timeline.ts +0 -127
  90. package/src/components/chat-ui/tool-rendering/default-renderers.ts +0 -420
  91. package/src/components/chat-ui/tool-rendering/index.ts +0 -3
  92. package/src/components/chat-ui/tool-rendering/types.ts +0 -19
  93. package/src/components/chat-ui/utils/diff.ts +0 -228
  94. package/src/components/chat-ui/utils/editor-state.ts +0 -5
  95. package/src/components/chat-ui/utils/get-icon.ts +0 -81
  96. package/src/components/code-editor.tsx +0 -147
  97. package/src/components/column-file-browser.stories.tsx +0 -217
  98. package/src/components/column-file-browser.tsx +0 -380
  99. package/src/components/content-placeholder.tsx +0 -21
  100. package/src/components/data-table/build-columns.tsx +0 -78
  101. package/src/components/data-table/data-table.css +0 -51
  102. package/src/components/data-table/data-table.stories.tsx +0 -209
  103. package/src/components/data-table/data-table.tsx +0 -232
  104. package/src/components/data-table/helpers.tsx +0 -69
  105. package/src/components/data-table/index.ts +0 -3
  106. package/src/components/data-table/pagination-footer.tsx +0 -58
  107. package/src/components/data-table/selection-toolbar.tsx +0 -26
  108. package/src/components/data-table/types.ts +0 -21
  109. package/src/components/delete-confirmation-modal.stories.tsx +0 -46
  110. package/src/components/delete-confirmation-modal.tsx +0 -56
  111. package/src/components/diff-bubble.stories.tsx +0 -70
  112. package/src/components/diff-bubble.tsx +0 -70
  113. package/src/components/diff-card.tsx +0 -139
  114. package/src/components/diff-drawer.stories.tsx +0 -106
  115. package/src/components/diff-drawer.tsx +0 -59
  116. package/src/components/diff-editor.tsx +0 -55
  117. package/src/components/drawer-inline.stories.tsx +0 -124
  118. package/src/components/drawer-inline.tsx +0 -90
  119. package/src/components/empty-state.stories.tsx +0 -65
  120. package/src/components/empty-state.tsx +0 -28
  121. package/src/components/error-boundary.tsx +0 -80
  122. package/src/components/file-selector.stories.tsx +0 -166
  123. package/src/components/file-selector.tsx +0 -192
  124. package/src/components/file-tree-helpers.ts +0 -28
  125. package/src/components/horizontal-menu-stack.tsx +0 -15
  126. package/src/components/info-card.stories.tsx +0 -120
  127. package/src/components/info-card.tsx +0 -60
  128. package/src/components/item-section.stories.tsx +0 -57
  129. package/src/components/item-section.tsx +0 -57
  130. package/src/components/layout.stories.tsx +0 -341
  131. package/src/components/layout.tsx +0 -67
  132. package/src/components/menu-item.stories.tsx +0 -162
  133. package/src/components/menu-item.tsx +0 -207
  134. package/src/components/number-input.tsx +0 -21
  135. package/src/components/open-source-notices-screen.stories.tsx +0 -69
  136. package/src/components/open-source-notices-screen.tsx +0 -154
  137. package/src/components/panel-menu.stories.tsx +0 -44
  138. package/src/components/panel-menu.tsx +0 -27
  139. package/src/components/param-editor-color-input.tsx +0 -98
  140. package/src/components/param-editor-date-input.tsx +0 -106
  141. package/src/components/param-editor-horizontal-text-input.tsx +0 -130
  142. package/src/components/param-editor-horizontal.stories.tsx +0 -545
  143. package/src/components/param-editor-horizontal.tsx +0 -137
  144. package/src/components/param-editor-input-group.tsx +0 -145
  145. package/src/components/param-editor-number-input.tsx +0 -145
  146. package/src/components/param-editor-selection-input.tsx +0 -181
  147. package/src/components/param-editor-text-input.tsx +0 -113
  148. package/src/components/param-editor.stories.tsx +0 -986
  149. package/src/components/param-editor.tsx +0 -142
  150. package/src/components/param-editor.types.ts +0 -95
  151. package/src/components/properties.stories.tsx +0 -108
  152. package/src/components/properties.tsx +0 -73
  153. package/src/components/pstdio-logo.tsx +0 -26
  154. package/src/components/resource-badge.stories.tsx +0 -26
  155. package/src/components/resource-badge.tsx +0 -173
  156. package/src/components/rich-text/collaborative-markdown-editor/awareness-cursors.tsx +0 -45
  157. package/src/components/rich-text/collaborative-markdown-editor/collaborative-markdown-editor.stories.tsx +0 -230
  158. package/src/components/rich-text/collaborative-markdown-editor/collaborative-markdown-editor.tsx +0 -131
  159. package/src/components/rich-text/index.ts +0 -14
  160. package/src/components/rich-text/markdown-editor/markdown-editor.stories.tsx +0 -147
  161. package/src/components/rich-text/markdown-editor/markdown-editor.tsx +0 -112
  162. package/src/components/rich-text/markdown-editor/plugins/ReferenceLinkPlugin/ReferenceLinkNode.tsx +0 -100
  163. package/src/components/rich-text/markdown-editor/plugins/ReferenceLinkPlugin/ReferenceLinkTransformer.ts +0 -32
  164. package/src/components/rich-text/markdown-editor/plugins/ReferenceLinkPlugin/index.ts +0 -2
  165. package/src/components/rich-text/prompt-input/commands.ts +0 -44
  166. package/src/components/rich-text/prompt-input/events.ts +0 -21
  167. package/src/components/rich-text/prompt-input/plugins/CommentPlugin/CommentPlugin.tsx +0 -8
  168. package/src/components/rich-text/prompt-input/plugins/CommentPlugin/hooks/useCommentCommands.ts +0 -49
  169. package/src/components/rich-text/prompt-input/plugins/CommentPlugin/hooks/useCommentSchema.ts +0 -30
  170. package/src/components/rich-text/prompt-input/plugins/CommentPlugin/nodes/CommentNode/CommentNode.tsx +0 -127
  171. package/src/components/rich-text/prompt-input/plugins/ImperativeAPIPlugin.tsx +0 -32
  172. package/src/components/rich-text/prompt-input/plugins/KeyboardShortcutPlugin.tsx +0 -30
  173. package/src/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/ReferenceMenuOption.ts +0 -15
  174. package/src/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/ReferenceMenuPlugin.tsx +0 -88
  175. package/src/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/components/ReferenceMenu/ReferenceMenu.tsx +0 -90
  176. package/src/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/components/ReferenceMenu/ReferenceMenuItem.tsx +0 -50
  177. package/src/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/constants.ts +0 -3
  178. package/src/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/hooks/useContextLookup.tsx +0 -50
  179. package/src/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/utils/checkForTriggers.ts +0 -45
  180. package/src/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/utils/getSortedMenuOptions.ts +0 -20
  181. package/src/components/rich-text/prompt-input/plugins/ReferencePlugin/ReferencePlugin.tsx +0 -50
  182. package/src/components/rich-text/prompt-input/plugins/ReferencePlugin/nodes/ReferenceNode/ReferenceNode.tsx +0 -107
  183. package/src/components/rich-text/prompt-input/plugins/keyboard-shortcuts.ts +0 -13
  184. package/src/components/rich-text/prompt-input/prompt-input.stories.tsx +0 -87
  185. package/src/components/rich-text/prompt-input/prompt-input.tsx +0 -106
  186. package/src/components/rich-text/prompt-input/theme/prompt-input-theme.css +0 -3
  187. package/src/components/rich-text/prompt-input/theme/prompt-input-theme.ts +0 -11
  188. package/src/components/rich-text/prompt-input/utils.ts +0 -158
  189. package/src/components/rich-text/rich-message/plugins/ReferenceLinkPlugin/ReferenceLinkNode.tsx +0 -100
  190. package/src/components/rich-text/rich-message/plugins/ReferenceLinkPlugin/ReferenceLinkTransformer.ts +0 -32
  191. package/src/components/rich-text/rich-message/plugins/ReferenceLinkPlugin/index.ts +0 -2
  192. package/src/components/rich-text/rich-message/rich-message.stories.tsx +0 -146
  193. package/src/components/rich-text/rich-message/rich-message.tsx +0 -118
  194. package/src/components/rich-text/shared/components/content-editable.tsx +0 -28
  195. package/src/components/rich-text/shared/components/default-rich-text-components.tsx +0 -99
  196. package/src/components/rich-text/shared/editor-config.ts +0 -38
  197. package/src/components/rich-text/shared/nodes/DataTableNode.stories.tsx +0 -52
  198. package/src/components/rich-text/shared/nodes/DataTableNode.tsx +0 -73
  199. package/src/components/rich-text/shared/plugins/CodePlugin/CodeBlockPlugin.tsx +0 -22
  200. package/src/components/rich-text/shared/plugins/CodePlugin/CodeNode.tsx +0 -57
  201. package/src/components/rich-text/shared/plugins/EquationPlugin/EquationComponent.tsx +0 -46
  202. package/src/components/rich-text/shared/plugins/EquationPlugin/EquationNode.tsx +0 -161
  203. package/src/components/rich-text/shared/plugins/EquationPlugin/EquationPlugin.css +0 -16
  204. package/src/components/rich-text/shared/plugins/EquationPlugin/EquationPlugin.tsx +0 -45
  205. package/src/components/rich-text/shared/plugins/EquationPlugin/KatexRenderer.tsx +0 -40
  206. package/src/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/FloatingTextFormatToolbarPlugin.css +0 -26
  207. package/src/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/FloatingTextFormatToolbarPlugin.tsx +0 -414
  208. package/src/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/index.ts +0 -1
  209. package/src/components/rich-text/shared/plugins/HorizontalRulePlugin/HorizontalRuleNode.ts +0 -52
  210. package/src/components/rich-text/shared/plugins/HorizontalRulePlugin/horizontalRule.ts +0 -16
  211. package/src/components/rich-text/shared/plugins/LinkEditorPlugin/LinkEditorPlugin.css +0 -163
  212. package/src/components/rich-text/shared/plugins/LinkEditorPlugin/LinkEditorPlugin.tsx +0 -355
  213. package/src/components/rich-text/shared/plugins/LinkEditorPlugin/LinkPlugin.tsx +0 -6
  214. package/src/components/rich-text/shared/plugins/LinkEditorPlugin/utils/getSelectedNode.ts +0 -17
  215. package/src/components/rich-text/shared/plugins/LinkEditorPlugin/utils/setFloatingElemPos.ts +0 -39
  216. package/src/components/rich-text/shared/plugins/LinkEditorPlugin/utils/url.ts +0 -23
  217. package/src/components/rich-text/shared/plugins/StateUpdatePlugin.tsx +0 -21
  218. package/src/components/rich-text/shared/plugins/TableActionMenuPlugin/TableActionMenuPlugin.tsx +0 -224
  219. package/src/components/rich-text/shared/plugins/TableCellResizerPlugin/TableCellResizerPlugin.css +0 -3
  220. package/src/components/rich-text/shared/plugins/TableCellResizerPlugin/TableCellResizerPlugin.tsx +0 -315
  221. package/src/components/rich-text/shared/plugins/ToggleEditablePlugin.tsx +0 -12
  222. package/src/components/rich-text/shared/plugins/TreeViewPlugin/TreeViewPlugin.tsx +0 -20
  223. package/src/components/rich-text/shared/transformers/markdown-transformers.ts +0 -123
  224. package/src/components/rich-text/shared/types/rich-text-components.ts +0 -17
  225. package/src/components/rich-text/theme/report-theme.tsx +0 -81
  226. package/src/components/rich-text/theme/rich-text-theme.css +0 -773
  227. package/src/components/rich-text/theme/rich-text-theme.tsx +0 -81
  228. package/src/components/rich-text/types.ts +0 -9
  229. package/src/components/rich-text/utils/inferResourceType.ts +0 -17
  230. package/src/components/rich-text/utils/markdown.ts +0 -12
  231. package/src/components/rich-text/utils/mediaType.ts +0 -31
  232. package/src/components/session-indicator.stories.tsx +0 -46
  233. package/src/components/session-indicator.tsx +0 -40
  234. package/src/components/slider.stories.tsx +0 -38
  235. package/src/components/slider.tsx +0 -20
  236. package/src/components/style-guide-data.ts +0 -374
  237. package/src/components/style-guide.stories.tsx +0 -212
  238. package/src/components/style-guide.tsx +0 -305
  239. package/src/components/ticket-board.stories.tsx +0 -109
  240. package/src/components/ticket-board.tsx +0 -167
  241. package/src/components/ticket-card.stories.tsx +0 -133
  242. package/src/components/ticket-card.tsx +0 -126
  243. package/src/components/toaster.stories.tsx +0 -79
  244. package/src/components/toaster.tsx +0 -26
  245. package/src/components/tooltip.tsx +0 -43
  246. package/src/index.ts +0 -16
  247. package/src/theme/global.ts +0 -49
  248. package/src/theme/primitives/colors.ts +0 -209
  249. package/src/theme/primitives/fonts.ts +0 -33
  250. package/src/theme/primitives/sizes.ts +0 -49
  251. package/src/theme/recipes/alert.ts +0 -12
  252. package/src/theme/recipes/button.ts +0 -124
  253. package/src/theme/recipes/dialog.ts +0 -11
  254. package/src/theme/recipes/divider.ts +0 -7
  255. package/src/theme/recipes/drawer.ts +0 -16
  256. package/src/theme/recipes/editable.ts +0 -42
  257. package/src/theme/recipes/form.ts +0 -11
  258. package/src/theme/recipes/input.ts +0 -25
  259. package/src/theme/recipes/menu.ts +0 -40
  260. package/src/theme/recipes/popover.ts +0 -46
  261. package/src/theme/recipes/progress-circle.ts +0 -22
  262. package/src/theme/recipes/skeleton.ts +0 -8
  263. package/src/theme/recipes/textarea.ts +0 -29
  264. package/src/theme/recipes/tooltip.ts +0 -15
  265. package/src/theme/theme.ts +0 -70
  266. package/src/theme/tokens/borders.ts +0 -38
  267. package/src/theme/tokens/colors.ts +0 -488
  268. package/src/theme/tokens/layer-styles.ts +0 -15
  269. package/src/theme/tokens/shadows.ts +0 -47
  270. package/src/theme/tokens/text.ts +0 -236
  271. package/src/utils/apply-theme-preference.ts +0 -17
  272. package/src/utils/formats.ts +0 -27
  273. package/src/utils/get-file-type-icon.ts +0 -52
  274. package/src/utils/theme-preference.tsx +0 -60
  275. package/src/vite-env.d.ts +0 -6
  276. package/storybook-static/assets/CodeBlockPlugin-C3OWpvP8.js +0 -281
  277. package/storybook-static/assets/CodeBlockPlugin-e2vWgtYm.css +0 -1
  278. package/storybook-static/assets/DataTableNode.stories-DLgTftOI.js +0 -33
  279. package/storybook-static/assets/EquationComponent-CUFxwyNf.js +0 -1
  280. package/storybook-static/assets/EquationComponent-DWZwfaVI.css +0 -1
  281. package/storybook-static/assets/FloatingTextFormatToolbarPlugin-B6jc8xvg.js +0 -1
  282. package/storybook-static/assets/FloatingTextFormatToolbarPlugin-D2l3--Te.css +0 -1
  283. package/storybook-static/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  284. package/storybook-static/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  285. package/storybook-static/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  286. package/storybook-static/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  287. package/storybook-static/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  288. package/storybook-static/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  289. package/storybook-static/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  290. package/storybook-static/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  291. package/storybook-static/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  292. package/storybook-static/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  293. package/storybook-static/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  294. package/storybook-static/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  295. package/storybook-static/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  296. package/storybook-static/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  297. package/storybook-static/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  298. package/storybook-static/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  299. package/storybook-static/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  300. package/storybook-static/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  301. package/storybook-static/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  302. package/storybook-static/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  303. package/storybook-static/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  304. package/storybook-static/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  305. package/storybook-static/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  306. package/storybook-static/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  307. package/storybook-static/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  308. package/storybook-static/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  309. package/storybook-static/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  310. package/storybook-static/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  311. package/storybook-static/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  312. package/storybook-static/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  313. package/storybook-static/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  314. package/storybook-static/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  315. package/storybook-static/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  316. package/storybook-static/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  317. package/storybook-static/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  318. package/storybook-static/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  319. package/storybook-static/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  320. package/storybook-static/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  321. package/storybook-static/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  322. package/storybook-static/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  323. package/storybook-static/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  324. package/storybook-static/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  325. package/storybook-static/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  326. package/storybook-static/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  327. package/storybook-static/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  328. package/storybook-static/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  329. package/storybook-static/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  330. package/storybook-static/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  331. package/storybook-static/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  332. package/storybook-static/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  333. package/storybook-static/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  334. package/storybook-static/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  335. package/storybook-static/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  336. package/storybook-static/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  337. package/storybook-static/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  338. package/storybook-static/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  339. package/storybook-static/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  340. package/storybook-static/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  341. package/storybook-static/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  342. package/storybook-static/assets/LexicalHistoryPlugin.prod-BQAibkDj.js +0 -1
  343. package/storybook-static/assets/TreeViewPlugin-CyVKCrKJ.js +0 -24
  344. package/storybook-static/assets/ai-conversation-DcjS--ee.js +0 -1
  345. package/storybook-static/assets/ai-conversation.stories-COjWuS8V.js +0 -3
  346. package/storybook-static/assets/ai-message-DLdAGhWH.js +0 -1
  347. package/storybook-static/assets/ai-message.stories-CRTyreKL.js +0 -3
  348. package/storybook-static/assets/ai-response-ySM6s0iN.js +0 -1
  349. package/storybook-static/assets/ai-response.stories-DVBYlrGf.js +0 -11
  350. package/storybook-static/assets/attachment-list-1p1601I5.js +0 -1
  351. package/storybook-static/assets/attachment-list.stories-Cydlsnio.js +0 -7
  352. package/storybook-static/assets/badge-CtgJasjB.js +0 -1
  353. package/storybook-static/assets/breadcrumb.stories-SAjB-iqH.js +0 -5
  354. package/storybook-static/assets/button-C7it2n8t.js +0 -1
  355. package/storybook-static/assets/button.stories-BMVbbb4y.js +0 -72
  356. package/storybook-static/assets/chat-input-B-915nCM.js +0 -1
  357. package/storybook-static/assets/chat-input.stories-DrxvpT9p.js +0 -32
  358. package/storybook-static/assets/chat-panel.stories-D0L6eIte.js +0 -96
  359. package/storybook-static/assets/chevron-down-BYCAGyCV.js +0 -1
  360. package/storybook-static/assets/chevron-right-owK1wZnx.js +0 -1
  361. package/storybook-static/assets/collaborative-markdown-editor-Bj0GvTvv.js +0 -41
  362. package/storybook-static/assets/collaborative-markdown-editor.stories-B_MUIC5s.js +0 -11
  363. package/storybook-static/assets/collapsible-DBDG7h1r.js +0 -1
  364. package/storybook-static/assets/collapsible-content-B1Uq3jUM.js +0 -1
  365. package/storybook-static/assets/column-file-browser.stories-DPMQnHCw.js +0 -54
  366. package/storybook-static/assets/compiler-runtime-BXE7OOXE.js +0 -1
  367. package/storybook-static/assets/computed-style-C0hzrq9-.js +0 -1
  368. package/storybook-static/assets/create-recipe-context-BU56IzEo.js +0 -1
  369. package/storybook-static/assets/create-slot-recipe-context-DAhDE6G_.js +0 -1
  370. package/storybook-static/assets/create-split-props-u5h9OPvL.js +0 -1
  371. package/storybook-static/assets/createLucideIcon-CcBBUKX8.js +0 -1
  372. package/storybook-static/assets/data-table-vuIeWXui.css +0 -1
  373. package/storybook-static/assets/data-table.stories-Cs-q7dpj.js +0 -19
  374. package/storybook-static/assets/delete-confirmation-modal.stories-C8vDKFRD.js +0 -14
  375. package/storybook-static/assets/diff-bubble-_zZypMRt.js +0 -1
  376. package/storybook-static/assets/diff-bubble.stories-DfonanIk.js +0 -39
  377. package/storybook-static/assets/diff-drawer.stories-CGDWiKD8.js +0 -38
  378. package/storybook-static/assets/diff-editor-DV9BXqbn.js +0 -11
  379. package/storybook-static/assets/dismissable-layer-Cc5dFRd8.js +0 -1
  380. package/storybook-static/assets/drawer-inline.stories-B3Tp7vjL.js +0 -88
  381. package/storybook-static/assets/empty-state-BXkyq69k.js +0 -1
  382. package/storybook-static/assets/empty-state.stories-6eYYBOWR.js +0 -29
  383. package/storybook-static/assets/factory-BR3bc_RM.js +0 -1
  384. package/storybook-static/assets/factory-DAJZwK4o.js +0 -1
  385. package/storybook-static/assets/file-selector.stories-PKIGBUd5.js +0 -31
  386. package/storybook-static/assets/file-text-D5m8MJlG.js +0 -1
  387. package/storybook-static/assets/flex-DAJL4AFZ.js +0 -1
  388. package/storybook-static/assets/folder-C5dba_Co.js +0 -1
  389. package/storybook-static/assets/form-D_Xln9tK.js +0 -1
  390. package/storybook-static/assets/full-conversation-normalized-LUbl1coD.js +0 -1
  391. package/storybook-static/assets/grid-7OIKBlfh.js +0 -1
  392. package/storybook-static/assets/h-stack-DWHd8f97.js +0 -1
  393. package/storybook-static/assets/horizontal-menu-stack-Cph6x7ui.js +0 -1
  394. package/storybook-static/assets/icon-C8FN9JqD.js +0 -1
  395. package/storybook-static/assets/icon-button-DHiUe7rR.js +0 -1
  396. package/storybook-static/assets/icons-WRA1cA-W.js +0 -1
  397. package/storybook-static/assets/iframe-2XPD_vrQ.css +0 -1
  398. package/storybook-static/assets/iframe-B8FSoBNY.js +0 -1075
  399. package/storybook-static/assets/index-B0y2_lLF.js +0 -1
  400. package/storybook-static/assets/index-CXwl6T4k.js +0 -1
  401. package/storybook-static/assets/index-DaXC_qY_.js +0 -1
  402. package/storybook-static/assets/index-DpB4ozcR.js +0 -1
  403. package/storybook-static/assets/index-cFwdnc0b.js +0 -1
  404. package/storybook-static/assets/info-DlgY5-DW.js +0 -1
  405. package/storybook-static/assets/info-card.stories-Cry0Qfrn.js +0 -55
  406. package/storybook-static/assets/input-ZSs5cSFQ.js +0 -1
  407. package/storybook-static/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
  408. package/storybook-static/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
  409. package/storybook-static/assets/inter-cyrillic-500-normal-BasfLYem.woff2 +0 -0
  410. package/storybook-static/assets/inter-cyrillic-500-normal-CxZf_p3X.woff +0 -0
  411. package/storybook-static/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
  412. package/storybook-static/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
  413. package/storybook-static/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 +0 -0
  414. package/storybook-static/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff +0 -0
  415. package/storybook-static/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
  416. package/storybook-static/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
  417. package/storybook-static/assets/inter-greek-500-normal-BIZE56-Y.woff2 +0 -0
  418. package/storybook-static/assets/inter-greek-500-normal-Xzm54t5V.woff +0 -0
  419. package/storybook-static/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
  420. package/storybook-static/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
  421. package/storybook-static/assets/inter-greek-ext-500-normal-2j5mBUwD.woff +0 -0
  422. package/storybook-static/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 +0 -0
  423. package/storybook-static/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
  424. package/storybook-static/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
  425. package/storybook-static/assets/inter-latin-500-normal-BL9OpVg8.woff +0 -0
  426. package/storybook-static/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
  427. package/storybook-static/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
  428. package/storybook-static/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
  429. package/storybook-static/assets/inter-latin-ext-500-normal-BxGbmqWO.woff +0 -0
  430. package/storybook-static/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 +0 -0
  431. package/storybook-static/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
  432. package/storybook-static/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
  433. package/storybook-static/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
  434. package/storybook-static/assets/inter-vietnamese-500-normal-mJboJaSs.woff +0 -0
  435. package/storybook-static/assets/item-section-AoQrVPNJ.js +0 -1
  436. package/storybook-static/assets/item-section.stories-kYTPHRsx.js +0 -24
  437. package/storybook-static/assets/layout.stories-DhSjwzU1.js +0 -3
  438. package/storybook-static/assets/link-DE5grRtm.js +0 -1
  439. package/storybook-static/assets/markdown-BLUemkxK.js +0 -1
  440. package/storybook-static/assets/markdown-editor-Y4eMsgVb.js +0 -1
  441. package/storybook-static/assets/markdown-editor.stories-DIWw-hRP.js +0 -115
  442. package/storybook-static/assets/menu-item-CrqDaj9K.js +0 -1
  443. package/storybook-static/assets/menu-item.stories-D9Isjjrf.js +0 -68
  444. package/storybook-static/assets/message-parts-renderer.stories-CewRvbm7.js +0 -5
  445. package/storybook-static/assets/message-types-CEyA7Qm7.js +0 -60
  446. package/storybook-static/assets/model-swap-separator.stories-DrQW2NWQ.js +0 -9
  447. package/storybook-static/assets/mutation-observer-CAfGweIM.js +0 -1
  448. package/storybook-static/assets/normalize-props-D7NI5JRu.js +0 -1
  449. package/storybook-static/assets/number-C92MPsRM.js +0 -1
  450. package/storybook-static/assets/number-input-D1aC-9ls.js +0 -7
  451. package/storybook-static/assets/onest-cyrillic-400-normal-BxvCLB5P.woff +0 -0
  452. package/storybook-static/assets/onest-cyrillic-400-normal-DH8vlB-A.woff2 +0 -0
  453. package/storybook-static/assets/onest-cyrillic-500-normal-CyY1vN0Q.woff +0 -0
  454. package/storybook-static/assets/onest-cyrillic-500-normal-DHyr8B2c.woff2 +0 -0
  455. package/storybook-static/assets/onest-cyrillic-700-normal-CwpXuTGk.woff2 +0 -0
  456. package/storybook-static/assets/onest-cyrillic-700-normal-DOtXtm0s.woff +0 -0
  457. package/storybook-static/assets/onest-latin-400-normal-BAzPRZHg.woff +0 -0
  458. package/storybook-static/assets/onest-latin-400-normal-bladozIj.woff2 +0 -0
  459. package/storybook-static/assets/onest-latin-500-normal-oFTiz6Nq.woff +0 -0
  460. package/storybook-static/assets/onest-latin-500-normal-qHiQtL66.woff2 +0 -0
  461. package/storybook-static/assets/onest-latin-700-normal-Bd6qVL4Q.woff2 +0 -0
  462. package/storybook-static/assets/onest-latin-700-normal-XTvQgpoh.woff +0 -0
  463. package/storybook-static/assets/onest-latin-ext-400-normal--mQR5RlC.woff2 +0 -0
  464. package/storybook-static/assets/onest-latin-ext-400-normal-BbXTNVXw.woff +0 -0
  465. package/storybook-static/assets/onest-latin-ext-500-normal-BlXa29q8.woff2 +0 -0
  466. package/storybook-static/assets/onest-latin-ext-500-normal-CoujUMv_.woff +0 -0
  467. package/storybook-static/assets/onest-latin-ext-700-normal-C-Tcltod.woff2 +0 -0
  468. package/storybook-static/assets/onest-latin-ext-700-normal-CSGWRWNE.woff +0 -0
  469. package/storybook-static/assets/open-source-notices-screen.stories-BpdJxDZC.js +0 -21
  470. package/storybook-static/assets/overflow-CkG1DOya.js +0 -1
  471. package/storybook-static/assets/panel-menu-CqLSrdTB.js +0 -1
  472. package/storybook-static/assets/panel-menu.stories-CxdWaWjq.js +0 -14
  473. package/storybook-static/assets/param-editor-horizontal.stories-C1o-VOjG.js +0 -561
  474. package/storybook-static/assets/param-editor-selection-input-2pJE1_W1.js +0 -1
  475. package/storybook-static/assets/param-editor.stories-0ae3y4Vu.js +0 -921
  476. package/storybook-static/assets/playfair-display-cyrillic-400-normal-CjW2EstV.woff2 +0 -0
  477. package/storybook-static/assets/playfair-display-cyrillic-400-normal-ZiRag6zj.woff +0 -0
  478. package/storybook-static/assets/playfair-display-cyrillic-600-normal-DbWAkkgN.woff +0 -0
  479. package/storybook-static/assets/playfair-display-cyrillic-600-normal-oLY6jnZ7.woff2 +0 -0
  480. package/storybook-static/assets/playfair-display-cyrillic-700-normal-Dk1mTcxf.woff +0 -0
  481. package/storybook-static/assets/playfair-display-cyrillic-700-normal-Dw3uKy19.woff2 +0 -0
  482. package/storybook-static/assets/playfair-display-latin-400-normal-CFtfchNt.woff2 +0 -0
  483. package/storybook-static/assets/playfair-display-latin-400-normal-DHYHbkg3.woff +0 -0
  484. package/storybook-static/assets/playfair-display-latin-600-normal-CZLGqjJe.woff2 +0 -0
  485. package/storybook-static/assets/playfair-display-latin-600-normal-CxxueQ0Z.woff +0 -0
  486. package/storybook-static/assets/playfair-display-latin-700-normal-Bc_1Q1cG.woff +0 -0
  487. package/storybook-static/assets/playfair-display-latin-700-normal-CuDiGg7c.woff2 +0 -0
  488. package/storybook-static/assets/playfair-display-latin-ext-400-normal-BxlSGspa.woff2 +0 -0
  489. package/storybook-static/assets/playfair-display-latin-ext-400-normal-qdZwdvNS.woff +0 -0
  490. package/storybook-static/assets/playfair-display-latin-ext-600-normal-BumBfC1v.woff +0 -0
  491. package/storybook-static/assets/playfair-display-latin-ext-600-normal-CEjQclLc.woff2 +0 -0
  492. package/storybook-static/assets/playfair-display-latin-ext-700-normal-C58ejOkc.woff2 +0 -0
  493. package/storybook-static/assets/playfair-display-latin-ext-700-normal-D5HUU8GT.woff +0 -0
  494. package/storybook-static/assets/playfair-display-vietnamese-400-normal-BV2APVTb.woff2 +0 -0
  495. package/storybook-static/assets/playfair-display-vietnamese-400-normal-BbvUAu4N.woff +0 -0
  496. package/storybook-static/assets/playfair-display-vietnamese-600-normal-BPJkAZPN.woff +0 -0
  497. package/storybook-static/assets/playfair-display-vietnamese-600-normal-ICsRR-qJ.woff2 +0 -0
  498. package/storybook-static/assets/playfair-display-vietnamese-700-normal-CaKJSIny.woff2 +0 -0
  499. package/storybook-static/assets/playfair-display-vietnamese-700-normal-Cr1rw0mr.woff +0 -0
  500. package/storybook-static/assets/portal-CZHfPTRw.js +0 -1
  501. package/storybook-static/assets/preload-helper-PPVm8Dsz.js +0 -1
  502. package/storybook-static/assets/prompt-input-BLCttowi.js +0 -14
  503. package/storybook-static/assets/prompt-input-BVbz9joI.css +0 -1
  504. package/storybook-static/assets/prompt-input.stories-J8-AMVXy.js +0 -9
  505. package/storybook-static/assets/properties.stories-Bs7ivKgb.js +0 -59
  506. package/storybook-static/assets/react-18-KY0R7ltw.js +0 -9
  507. package/storybook-static/assets/render-strategy-BebqUNCa.js +0 -1
  508. package/storybook-static/assets/resource-badge-Bw5UoU4J.js +0 -1
  509. package/storybook-static/assets/resource-badge.stories-DtSh-RX9.js +0 -9
  510. package/storybook-static/assets/rich-message-BIkzo1SM.js +0 -1
  511. package/storybook-static/assets/rich-message.stories-C9Wc4d3O.js +0 -115
  512. package/storybook-static/assets/rich-text-theme-Bkhh9rAZ.js +0 -14
  513. package/storybook-static/assets/rich-text-theme-K2MBoCbx.css +0 -1
  514. package/storybook-static/assets/separator-CQkMOHNm.js +0 -1
  515. package/storybook-static/assets/settings-DUgg22A7.js +0 -1
  516. package/storybook-static/assets/simple-grid-DIKjhnVI.js +0 -1
  517. package/storybook-static/assets/spinner-ZYH_gvW-.js +0 -1
  518. package/storybook-static/assets/stack-CN4X31TA.js +0 -1
  519. package/storybook-static/assets/star-CvcHIXRa.js +0 -1
  520. package/storybook-static/assets/style-guide.stories-BUvEhZov.js +0 -6
  521. package/storybook-static/assets/tabbable-DHAf8oAu.js +0 -1
  522. package/storybook-static/assets/table-BKNSzs2r.js +0 -1
  523. package/storybook-static/assets/textarea-rqmaWSc5.js +0 -1
  524. package/storybook-static/assets/toaster-d9nN0H7K.js +0 -1
  525. package/storybook-static/assets/toaster.stories-BRVCYyaM.js +0 -52
  526. package/storybook-static/assets/tool-invocation-timeline-B-cS0W6M.js +0 -59
  527. package/storybook-static/assets/tool-invocation-timeline.stories-DXO59O73.js +0 -5
  528. package/storybook-static/assets/tooltip-C_a-XGZ8.js +0 -1
  529. package/storybook-static/assets/tooltip-DZxUoouw.js +0 -1
  530. package/storybook-static/assets/trash-2-BO05slEk.js +0 -1
  531. package/storybook-static/assets/typeahead-CuY9WxfQ.js +0 -1
  532. package/storybook-static/assets/use-field-context-DoxKQlMm.js +0 -1
  533. package/storybook-static/assets/use-presence-context-DK2PGZth.js +0 -1
  534. package/storybook-static/assets/v-stack-Btoq6OB_.js +0 -1
  535. package/storybook-static/assets/x-D42ziktz.js +0 -1
  536. package/storybook-static/components/chat-ui/mocks/full-conversation-normalized.json.d.ts +0 -3560
  537. package/storybook-static/components/rich-text/utils/inferResourceType.d.ts +0 -1
  538. package/storybook-static/favicon-wrapper.svg +0 -46
  539. package/storybook-static/favicon.svg +0 -1
  540. package/storybook-static/iframe.html +0 -705
  541. package/storybook-static/index.html +0 -150
  542. package/storybook-static/index.json +0 -1
  543. package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  544. package/storybook-static/nunito-sans-bold.woff2 +0 -0
  545. package/storybook-static/nunito-sans-italic.woff2 +0 -0
  546. package/storybook-static/nunito-sans-regular.woff2 +0 -0
  547. package/storybook-static/project.json +0 -1
  548. package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +0 -628
  549. package/storybook-static/sb-addons/themes-1/manager-bundle.js +0 -3
  550. package/storybook-static/sb-addons/vitest-2/manager-bundle.js +0 -3
  551. package/storybook-static/sb-common-assets/favicon-wrapper.svg +0 -46
  552. package/storybook-static/sb-common-assets/favicon.svg +0 -1
  553. package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  554. package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  555. package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  556. package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  557. package/storybook-static/sb-manager/globals-runtime.js +0 -77956
  558. package/storybook-static/sb-manager/globals.js +0 -24
  559. package/storybook-static/sb-manager/manager-stores.js +0 -23
  560. package/storybook-static/sb-manager/runtime.js +0 -20422
  561. package/storybook-static/theme/types.d.ts +0 -1
  562. package/storybook-static/vite-inject-mocker-entry.js +0 -2
  563. package/tsconfig.json +0 -29
  564. package/vite.config.ts +0 -82
  565. package/vitest.shims.d.ts +0 -1
  566. /package/{storybook-static → dist}/components/alert.d.ts +0 -0
  567. /package/{storybook-static → dist}/components/breadcrumb.d.ts +0 -0
  568. /package/{storybook-static → dist}/components/breadcrumb.stories.d.ts +0 -0
  569. /package/{storybook-static → dist}/components/chat-ui/agent-types.d.ts +0 -0
  570. /package/{storybook-static → dist}/components/chat-ui/components/ai-conversation.stories.d.ts +0 -0
  571. /package/{storybook-static → dist}/components/chat-ui/components/ai-message.d.ts +0 -0
  572. /package/{storybook-static → dist}/components/chat-ui/components/ai-message.stories.d.ts +0 -0
  573. /package/{storybook-static → dist}/components/chat-ui/components/ai-response.d.ts +0 -0
  574. /package/{storybook-static → dist}/components/chat-ui/components/ai-response.stories.d.ts +0 -0
  575. /package/{storybook-static → dist}/components/chat-ui/components/approval-prompt.d.ts +0 -0
  576. /package/{storybook-static → dist}/components/chat-ui/components/attachment-list.d.ts +0 -0
  577. /package/{storybook-static → dist}/components/chat-ui/components/attachment-list.stories.d.ts +0 -0
  578. /package/{storybook-static → dist}/components/chat-ui/components/auto-scroll.d.ts +0 -0
  579. /package/{storybook-static → dist}/components/chat-ui/components/chat-input.d.ts +0 -0
  580. /package/{storybook-static → dist}/components/chat-ui/components/chat-input.stories.d.ts +0 -0
  581. /package/{storybook-static → dist}/components/chat-ui/components/chat-panel.d.ts +0 -0
  582. /package/{storybook-static → dist}/components/chat-ui/components/chat-panel.stories.d.ts +0 -0
  583. /package/{storybook-static → dist}/components/chat-ui/components/message-parts-renderer.d.ts +0 -0
  584. /package/{storybook-static → dist}/components/chat-ui/components/message-parts-renderer.stories.d.ts +0 -0
  585. /package/{storybook-static → dist}/components/chat-ui/components/message-types.d.ts +0 -0
  586. /package/{storybook-static → dist}/components/chat-ui/components/model-swap-separator.d.ts +0 -0
  587. /package/{storybook-static → dist}/components/chat-ui/components/model-swap-separator.stories.d.ts +0 -0
  588. /package/{storybook-static → dist}/components/chat-ui/components/send-button.d.ts +0 -0
  589. /package/{storybook-static → dist}/components/chat-ui/components/timeline.d.ts +0 -0
  590. /package/{storybook-static → dist}/components/chat-ui/components/tool-invocation-timeline.d.ts +0 -0
  591. /package/{storybook-static → dist}/components/chat-ui/components/tool-invocation-timeline.stories.d.ts +0 -0
  592. /package/{storybook-static → dist}/components/chat-ui/tool-rendering/build-timeline.d.ts +0 -0
  593. /package/{storybook-static → dist}/components/chat-ui/tool-rendering/default-renderers.d.ts +0 -0
  594. /package/{storybook-static → dist}/components/chat-ui/tool-rendering/index.d.ts +0 -0
  595. /package/{storybook-static → dist}/components/chat-ui/tool-rendering/types.d.ts +0 -0
  596. /package/{storybook-static → dist}/components/chat-ui/utils/diff.d.ts +0 -0
  597. /package/{storybook-static → dist}/components/chat-ui/utils/editor-state.d.ts +0 -0
  598. /package/{storybook-static → dist}/components/code-editor.d.ts +0 -0
  599. /package/{storybook-static → dist}/components/content-placeholder.d.ts +0 -0
  600. /package/{storybook-static → dist}/components/delete-confirmation-modal.d.ts +0 -0
  601. /package/{storybook-static → dist}/components/delete-confirmation-modal.stories.d.ts +0 -0
  602. /package/{storybook-static → dist}/components/diff-bubble.d.ts +0 -0
  603. /package/{storybook-static → dist}/components/diff-bubble.stories.d.ts +0 -0
  604. /package/{storybook-static → dist}/components/diff-card.d.ts +0 -0
  605. /package/{storybook-static → dist}/components/diff-drawer.d.ts +0 -0
  606. /package/{storybook-static → dist}/components/diff-drawer.stories.d.ts +0 -0
  607. /package/{storybook-static → dist}/components/diff-editor.d.ts +0 -0
  608. /package/{storybook-static → dist}/components/drawer-inline.d.ts +0 -0
  609. /package/{storybook-static → dist}/components/drawer-inline.stories.d.ts +0 -0
  610. /package/{storybook-static → dist}/components/empty-state.d.ts +0 -0
  611. /package/{storybook-static → dist}/components/empty-state.stories.d.ts +0 -0
  612. /package/{storybook-static → dist}/components/error-boundary.d.ts +0 -0
  613. /package/{storybook-static → dist}/components/file-tree-helpers.d.ts +0 -0
  614. /package/{storybook-static → dist}/components/horizontal-menu-stack.d.ts +0 -0
  615. /package/{storybook-static → dist}/components/item-section.d.ts +0 -0
  616. /package/{storybook-static → dist}/components/item-section.stories.d.ts +0 -0
  617. /package/{storybook-static → dist}/components/layout.d.ts +0 -0
  618. /package/{storybook-static → dist}/components/layout.stories.d.ts +0 -0
  619. /package/{storybook-static → dist}/components/open-source-notices-screen.d.ts +0 -0
  620. /package/{storybook-static → dist}/components/open-source-notices-screen.stories.d.ts +0 -0
  621. /package/{storybook-static → dist}/components/panel-menu.d.ts +0 -0
  622. /package/{storybook-static → dist}/components/panel-menu.stories.d.ts +0 -0
  623. /package/{storybook-static → dist}/components/param-editor-color-input.d.ts +0 -0
  624. /package/{storybook-static → dist}/components/param-editor-date-input.d.ts +0 -0
  625. /package/{storybook-static → dist}/components/param-editor-horizontal-text-input.d.ts +0 -0
  626. /package/{storybook-static → dist}/components/param-editor-horizontal.d.ts +0 -0
  627. /package/{storybook-static → dist}/components/param-editor-horizontal.stories.d.ts +0 -0
  628. /package/{storybook-static → dist}/components/param-editor-input-group.d.ts +0 -0
  629. /package/{storybook-static → dist}/components/param-editor-number-input.d.ts +0 -0
  630. /package/{storybook-static → dist}/components/param-editor-selection-input.d.ts +0 -0
  631. /package/{storybook-static → dist}/components/param-editor-text-input.d.ts +0 -0
  632. /package/{storybook-static → dist}/components/param-editor.d.ts +0 -0
  633. /package/{storybook-static → dist}/components/param-editor.types.d.ts +0 -0
  634. /package/{storybook-static → dist}/components/properties.d.ts +0 -0
  635. /package/{storybook-static → dist}/components/properties.stories.d.ts +0 -0
  636. /package/{storybook-static/components/schub-logo.d.ts → dist/components/pstdio-logo.d.ts} +0 -0
  637. /package/{storybook-static → dist}/components/resource-badge.d.ts +0 -0
  638. /package/{storybook-static → dist}/components/resource-badge.stories.d.ts +0 -0
  639. /package/{storybook-static → dist}/components/rich-text/collaborative-markdown-editor/awareness-cursors.d.ts +0 -0
  640. /package/{storybook-static → dist}/components/rich-text/collaborative-markdown-editor/collaborative-markdown-editor.stories.d.ts +0 -0
  641. /package/{storybook-static → dist}/components/rich-text/index.d.ts +0 -0
  642. /package/{storybook-static → dist}/components/rich-text/markdown-editor/markdown-editor.d.ts +0 -0
  643. /package/{storybook-static → dist}/components/rich-text/markdown-editor/markdown-editor.stories.d.ts +0 -0
  644. /package/{storybook-static → dist}/components/rich-text/markdown-editor/plugins/ReferenceLinkPlugin/ReferenceLinkNode.d.ts +0 -0
  645. /package/{storybook-static → dist}/components/rich-text/markdown-editor/plugins/ReferenceLinkPlugin/ReferenceLinkTransformer.d.ts +0 -0
  646. /package/{storybook-static → dist}/components/rich-text/markdown-editor/plugins/ReferenceLinkPlugin/index.d.ts +0 -0
  647. /package/{storybook-static → dist}/components/rich-text/prompt-input/commands.d.ts +0 -0
  648. /package/{storybook-static → dist}/components/rich-text/prompt-input/events.d.ts +0 -0
  649. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/CommentPlugin/CommentPlugin.d.ts +0 -0
  650. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/CommentPlugin/hooks/useCommentCommands.d.ts +0 -0
  651. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/CommentPlugin/hooks/useCommentSchema.d.ts +0 -0
  652. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/CommentPlugin/nodes/CommentNode/CommentNode.d.ts +0 -0
  653. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/ImperativeAPIPlugin.d.ts +0 -0
  654. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/KeyboardShortcutPlugin.d.ts +0 -0
  655. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/ReferenceMenuOption.d.ts +0 -0
  656. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/ReferenceMenuPlugin.d.ts +0 -0
  657. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/components/ReferenceMenu/ReferenceMenu.d.ts +0 -0
  658. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/components/ReferenceMenu/ReferenceMenuItem.d.ts +0 -0
  659. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/constants.d.ts +0 -0
  660. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/hooks/useContextLookup.d.ts +0 -0
  661. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/utils/checkForTriggers.d.ts +0 -0
  662. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/utils/getSortedMenuOptions.d.ts +0 -0
  663. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/ReferencePlugin/ReferencePlugin.d.ts +0 -0
  664. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/ReferencePlugin/nodes/ReferenceNode/ReferenceNode.d.ts +0 -0
  665. /package/{storybook-static → dist}/components/rich-text/prompt-input/plugins/keyboard-shortcuts.d.ts +0 -0
  666. /package/{storybook-static → dist}/components/rich-text/prompt-input/prompt-input.d.ts +0 -0
  667. /package/{storybook-static → dist}/components/rich-text/prompt-input/prompt-input.stories.d.ts +0 -0
  668. /package/{storybook-static → dist}/components/rich-text/prompt-input/theme/prompt-input-theme.d.ts +0 -0
  669. /package/{storybook-static → dist}/components/rich-text/prompt-input/utils.d.ts +0 -0
  670. /package/{storybook-static → dist}/components/rich-text/rich-message/plugins/ReferenceLinkPlugin/ReferenceLinkNode.d.ts +0 -0
  671. /package/{storybook-static → dist}/components/rich-text/rich-message/plugins/ReferenceLinkPlugin/ReferenceLinkTransformer.d.ts +0 -0
  672. /package/{storybook-static → dist}/components/rich-text/rich-message/plugins/ReferenceLinkPlugin/index.d.ts +0 -0
  673. /package/{storybook-static → dist}/components/rich-text/rich-message/rich-message.d.ts +0 -0
  674. /package/{storybook-static → dist}/components/rich-text/rich-message/rich-message.stories.d.ts +0 -0
  675. /package/{storybook-static → dist}/components/rich-text/shared/components/content-editable.d.ts +0 -0
  676. /package/{storybook-static → dist}/components/rich-text/shared/components/default-rich-text-components.d.ts +0 -0
  677. /package/{storybook-static → dist}/components/rich-text/shared/editor-config.d.ts +0 -0
  678. /package/{storybook-static → dist}/components/rich-text/shared/nodes/DataTableNode.d.ts +0 -0
  679. /package/{storybook-static → dist}/components/rich-text/shared/nodes/DataTableNode.stories.d.ts +0 -0
  680. /package/{storybook-static → dist}/components/rich-text/shared/plugins/CodePlugin/CodeBlockPlugin.d.ts +0 -0
  681. /package/{storybook-static → dist}/components/rich-text/shared/plugins/CodePlugin/CodeNode.d.ts +0 -0
  682. /package/{storybook-static → dist}/components/rich-text/shared/plugins/EquationPlugin/EquationComponent.d.ts +0 -0
  683. /package/{storybook-static → dist}/components/rich-text/shared/plugins/EquationPlugin/EquationNode.d.ts +0 -0
  684. /package/{storybook-static → dist}/components/rich-text/shared/plugins/EquationPlugin/EquationPlugin.d.ts +0 -0
  685. /package/{storybook-static → dist}/components/rich-text/shared/plugins/EquationPlugin/KatexRenderer.d.ts +0 -0
  686. /package/{storybook-static → dist}/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/FloatingTextFormatToolbarPlugin.d.ts +0 -0
  687. /package/{storybook-static → dist}/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/index.d.ts +0 -0
  688. /package/{storybook-static → dist}/components/rich-text/shared/plugins/HorizontalRulePlugin/HorizontalRuleNode.d.ts +0 -0
  689. /package/{storybook-static → dist}/components/rich-text/shared/plugins/HorizontalRulePlugin/horizontalRule.d.ts +0 -0
  690. /package/{storybook-static → dist}/components/rich-text/shared/plugins/LinkEditorPlugin/LinkEditorPlugin.d.ts +0 -0
  691. /package/{storybook-static → dist}/components/rich-text/shared/plugins/LinkEditorPlugin/LinkPlugin.d.ts +0 -0
  692. /package/{storybook-static → dist}/components/rich-text/shared/plugins/LinkEditorPlugin/utils/getSelectedNode.d.ts +0 -0
  693. /package/{storybook-static → dist}/components/rich-text/shared/plugins/LinkEditorPlugin/utils/setFloatingElemPos.d.ts +0 -0
  694. /package/{storybook-static → dist}/components/rich-text/shared/plugins/LinkEditorPlugin/utils/url.d.ts +0 -0
  695. /package/{storybook-static → dist}/components/rich-text/shared/plugins/StateUpdatePlugin.d.ts +0 -0
  696. /package/{storybook-static → dist}/components/rich-text/shared/plugins/TableActionMenuPlugin/TableActionMenuPlugin.d.ts +0 -0
  697. /package/{storybook-static → dist}/components/rich-text/shared/plugins/TableCellResizerPlugin/TableCellResizerPlugin.d.ts +0 -0
  698. /package/{storybook-static → dist}/components/rich-text/shared/plugins/ToggleEditablePlugin.d.ts +0 -0
  699. /package/{storybook-static → dist}/components/rich-text/shared/plugins/TreeViewPlugin/TreeViewPlugin.d.ts +0 -0
  700. /package/{storybook-static → dist}/components/rich-text/shared/transformers/markdown-transformers.d.ts +0 -0
  701. /package/{storybook-static → dist}/components/rich-text/shared/types/rich-text-components.d.ts +0 -0
  702. /package/{storybook-static → dist}/components/rich-text/theme/report-theme.d.ts +0 -0
  703. /package/{storybook-static → dist}/components/rich-text/theme/rich-text-theme.d.ts +0 -0
  704. /package/{storybook-static → dist}/components/rich-text/types.d.ts +0 -0
  705. /package/{storybook-static → dist}/components/rich-text/utils/markdown.d.ts +0 -0
  706. /package/{storybook-static → dist}/components/rich-text/utils/mediaType.d.ts +0 -0
  707. /package/{storybook-static → dist}/components/slider.d.ts +0 -0
  708. /package/{storybook-static → dist}/components/style-guide-data.d.ts +0 -0
  709. /package/{storybook-static → dist}/components/style-guide.d.ts +0 -0
  710. /package/{storybook-static → dist}/components/toaster.stories.d.ts +0 -0
  711. /package/{storybook-static → dist}/components/tooltip.d.ts +0 -0
  712. /package/{storybook-static → dist}/theme/global.d.ts +0 -0
  713. /package/{storybook-static → dist}/theme/index.d.ts +0 -0
  714. /package/{storybook-static → dist}/theme/primitives/fonts.d.ts +0 -0
  715. /package/{storybook-static → dist}/theme/primitives/sizes.d.ts +0 -0
  716. /package/{storybook-static → dist}/theme/recipes/alert.d.ts +0 -0
  717. /package/{storybook-static → dist}/theme/recipes/button.d.ts +0 -0
  718. /package/{storybook-static → dist}/theme/recipes/dialog.d.ts +0 -0
  719. /package/{storybook-static → dist}/theme/recipes/divider.d.ts +0 -0
  720. /package/{storybook-static → dist}/theme/recipes/drawer.d.ts +0 -0
  721. /package/{storybook-static → dist}/theme/recipes/editable.d.ts +0 -0
  722. /package/{storybook-static → dist}/theme/recipes/form.d.ts +0 -0
  723. /package/{storybook-static → dist}/theme/recipes/input.d.ts +0 -0
  724. /package/{storybook-static → dist}/theme/recipes/menu.d.ts +0 -0
  725. /package/{storybook-static → dist}/theme/recipes/popover.d.ts +0 -0
  726. /package/{storybook-static → dist}/theme/recipes/progress-circle.d.ts +0 -0
  727. /package/{storybook-static → dist}/theme/recipes/skeleton.d.ts +0 -0
  728. /package/{storybook-static → dist}/theme/recipes/textarea.d.ts +0 -0
  729. /package/{storybook-static → dist}/theme/recipes/tooltip.d.ts +0 -0
  730. /package/{storybook-static → dist}/theme/theme.d.ts +0 -0
  731. /package/{storybook-static → dist}/theme/tokens/borders.d.ts +0 -0
  732. /package/{storybook-static → dist}/theme/tokens/colors.d.ts +0 -0
  733. /package/{storybook-static → dist}/theme/tokens/layer-styles.d.ts +0 -0
  734. /package/{storybook-static → dist}/theme/tokens/shadows.d.ts +0 -0
  735. /package/{storybook-static → dist}/theme/tokens/text.d.ts +0 -0
  736. /package/{storybook-static → dist}/utils/formats.d.ts +0 -0
  737. /package/{storybook-static → dist}/utils/get-file-type-icon.d.ts +0 -0
@@ -1,396 +0,0 @@
1
- import { Box, Button, HStack, Text } from "@chakra-ui/react";
2
- import type { Meta, StoryObj } from "@storybook/react";
3
- import { type ComponentProps, useEffect, useRef, useState } from "react";
4
- import type { SessionMessage } from "../agent-types";
5
- import rawConversationMessages from "../mocks/full-conversation-normalized.json";
6
- import { ChatPanel } from "./chat-panel";
7
-
8
- const conversationMessages = rawConversationMessages as unknown as SessionMessage[];
9
-
10
- const meta: Meta<typeof ChatPanel> = {
11
- title: "Chat UI/Chat Panel",
12
- component: ChatPanel,
13
- parameters: {
14
- layout: "padded",
15
- actions: { argTypesRegex: "^on[A-Z].*" },
16
- },
17
- };
18
-
19
- export default meta;
20
-
21
- type Story = StoryObj<typeof ChatPanel>;
22
- type ChatPanelProps = ComponentProps<typeof ChatPanel>;
23
-
24
- const panelContainerStyles = {
25
- w: "960px",
26
- maxW: "100%",
27
- h: "680px",
28
- bg: "bg",
29
- borderWidth: "1px",
30
- borderColor: "border",
31
- borderRadius: "lg",
32
- p: "md",
33
- } as const;
34
-
35
- const defaultActions = (
36
- <HStack gap="2">
37
- <Button size="xs" variant="subtle">
38
- Opencode
39
- </Button>
40
- <Button size="xs" variant="subtle">
41
- GPT-5.3 Codex
42
- </Button>
43
- </HStack>
44
- );
45
-
46
- const defaultRepoMenu = (
47
- <HStack gap="2">
48
- <Text textStyle="label/S/medium" color="fg.muted">
49
- mono
50
- </Text>
51
- <Button size="xs" variant="ghost">
52
- main
53
- </Button>
54
- </HStack>
55
- );
56
-
57
- const streamingMessages = conversationMessages.slice(-18);
58
- const STREAM_CHUNK_SIZE = 10;
59
- const STREAM_INTERVAL_MS = 60;
60
-
61
- const splitTextIntoChunks = (text: string) => {
62
- if (!text) return [];
63
-
64
- const chunks: string[] = [];
65
-
66
- for (let index = 0; index < text.length; index += STREAM_CHUNK_SIZE) {
67
- chunks.push(text.slice(index, index + STREAM_CHUNK_SIZE));
68
- }
69
-
70
- return chunks;
71
- };
72
-
73
- const isTextPart = (part: SessionMessage["parts"][number]): part is { type: "text"; text: string } => {
74
- return part.type === "text";
75
- };
76
-
77
- const updateAssistantTextPart = (
78
- currentMessages: SessionMessage[],
79
- messageId: string,
80
- partIndex: number,
81
- text: string,
82
- ) => {
83
- return currentMessages.map((message) => {
84
- if (message.id !== messageId) return message;
85
-
86
- const targetPart = message.parts[partIndex];
87
- if (!targetPart || !isTextPart(targetPart)) return message;
88
-
89
- const nextParts = [...message.parts];
90
- nextParts[partIndex] = { ...targetPart, text };
91
-
92
- return {
93
- ...message,
94
- parts: nextParts,
95
- };
96
- });
97
- };
98
-
99
- type TextPartEntry = { part: { type: "text"; text: string }; idx: number };
100
-
101
- const getTextPartEntries = (message: SessionMessage) => {
102
- return message.parts
103
- .map((part, idx) => ({ part, idx }))
104
- .filter(({ part }) => isTextPart(part) && part.text.trim().length > 0) as TextPartEntry[];
105
- };
106
-
107
- const seedTextParts = (message: SessionMessage, textPartEntries: TextPartEntry[]) => {
108
- const textPartIndexes = new Set(textPartEntries.map(({ idx }) => idx));
109
- return {
110
- ...message,
111
- parts: message.parts.map((part, idx) =>
112
- textPartIndexes.has(idx) && isTextPart(part) ? { ...part, text: "" } : part,
113
- ),
114
- } satisfies SessionMessage;
115
- };
116
-
117
- const streamTextParts = async (options: {
118
- message: SessionMessage;
119
- textPartEntries: TextPartEntry[];
120
- isCancelled: () => boolean;
121
- onChunk: (messageId: string, partIndex: number, text: string) => void;
122
- }) => {
123
- const { message, textPartEntries, isCancelled, onChunk } = options;
124
-
125
- for (const { part, idx } of textPartEntries) {
126
- if (isCancelled()) return;
127
-
128
- const chunks = splitTextIntoChunks(part.text);
129
- let streamed = "";
130
-
131
- for (const chunk of chunks) {
132
- if (isCancelled()) return;
133
- streamed += chunk;
134
- onChunk(message.id, idx, streamed);
135
- await delay(STREAM_INTERVAL_MS);
136
- }
137
- }
138
- };
139
-
140
- const streamConversationMessages = async (options: {
141
- messages: SessionMessage[];
142
- isCancelled: () => boolean;
143
- onStart: () => void;
144
- onMessage: (message: SessionMessage) => void;
145
- onChunk: (messageId: string, partIndex: number, text: string) => void;
146
- onComplete: () => void;
147
- }) => {
148
- const { messages, isCancelled, onStart, onMessage, onChunk, onComplete } = options;
149
-
150
- onStart();
151
-
152
- for (const message of messages) {
153
- if (isCancelled()) return;
154
-
155
- const textPartEntries = getTextPartEntries(message);
156
- if (textPartEntries.length === 0) {
157
- onMessage(message);
158
-
159
- const pauseMs =
160
- message.role === "user" ? CONVERSATION_STREAM_MESSAGE_DELAY_MS : CONVERSATION_STREAM_STEP_DELAY_MS;
161
- await delay(pauseMs);
162
- continue;
163
- }
164
-
165
- onMessage(seedTextParts(message, textPartEntries));
166
- await streamTextParts({ message, textPartEntries, isCancelled, onChunk });
167
- await delay(CONVERSATION_STREAM_MESSAGE_DELAY_MS);
168
- }
169
-
170
- if (!isCancelled()) onComplete();
171
- };
172
-
173
- const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
174
-
175
- const CONVERSATION_STREAM_MESSAGE_DELAY_MS = 200;
176
- const CONVERSATION_STREAM_STEP_DELAY_MS = 80;
177
-
178
- const clearStreamTimer = (timerRef: { current: ReturnType<typeof setInterval> | null }) => {
179
- if (timerRef.current === null) return;
180
-
181
- clearInterval(timerRef.current);
182
- timerRef.current = null;
183
- };
184
-
185
- const streamAssistantText = (options: {
186
- timerRef: { current: ReturnType<typeof setInterval> | null };
187
- sourceText: string;
188
- onStart: () => void;
189
- onChunk: (nextText: string) => void;
190
- onComplete: () => void;
191
- }) => {
192
- const { timerRef, sourceText, onStart, onChunk, onComplete } = options;
193
-
194
- clearStreamTimer(timerRef);
195
-
196
- const chunks = splitTextIntoChunks(sourceText);
197
- if (chunks.length === 0) {
198
- onComplete();
199
- return;
200
- }
201
-
202
- let streamedText = "";
203
- let chunkIndex = 0;
204
-
205
- onStart();
206
-
207
- timerRef.current = setInterval(() => {
208
- streamedText += chunks[chunkIndex] ?? "";
209
- onChunk(streamedText);
210
-
211
- chunkIndex += 1;
212
-
213
- if (chunkIndex >= chunks.length) {
214
- clearStreamTimer(timerRef);
215
- onComplete();
216
- }
217
- }, STREAM_INTERVAL_MS);
218
- };
219
-
220
- const buildMockAssistantReply = (text: string, attachments: string[]) => {
221
- if (attachments.length === 0) {
222
- return `Mock response: I received "${text}" and generated a draft answer.`;
223
- }
224
-
225
- return `Mock response: I received "${text}" with ${attachments.length} attachment(s): ${attachments.join(", ")}.`;
226
- };
227
-
228
- function MockChatPanelRenderer(props: ChatPanelProps) {
229
- const {
230
- messages: initialMessages = [],
231
- onSubmitMessage,
232
- emptyStateTitle,
233
- emptyStateDescription,
234
- chatInputPlaceholder,
235
- actions,
236
- repoMenu,
237
- } = props;
238
-
239
- const [messages, setMessages] = useState<SessionMessage[]>(initialMessages);
240
- const [streaming, setStreaming] = useState(false);
241
- const [nextMessageNumber, setNextMessageNumber] = useState(initialMessages.length + 1);
242
- const streamTimerRef = useRef<ReturnType<typeof setInterval> | null>(null);
243
-
244
- useEffect(() => {
245
- clearStreamTimer(streamTimerRef);
246
- setMessages(initialMessages);
247
- setNextMessageNumber(initialMessages.length + 1);
248
- }, [initialMessages]);
249
-
250
- useEffect(() => {
251
- return () => clearStreamTimer(streamTimerRef);
252
- }, []);
253
-
254
- const handleSubmitMessage = (text: string, attachments: string[]) => {
255
- onSubmitMessage?.(text, attachments);
256
-
257
- const userMessage: SessionMessage = {
258
- id: `message-${nextMessageNumber}`,
259
- role: "user",
260
- parts: [{ type: "text", text }],
261
- };
262
-
263
- const assistantReply = buildMockAssistantReply(text, attachments);
264
- const assistantMessageId = `message-${nextMessageNumber + 1}`;
265
- const assistantMessage: SessionMessage = {
266
- id: assistantMessageId,
267
- role: "assistant",
268
- parts: [{ type: "text", text: "" }],
269
- };
270
-
271
- setNextMessageNumber((current) => current + 2);
272
- setMessages((current) => [...current, userMessage, assistantMessage]);
273
- streamAssistantText({
274
- timerRef: streamTimerRef,
275
- sourceText: assistantReply,
276
- onStart: () => setStreaming(true),
277
- onChunk: (nextText) => {
278
- setMessages((current) => updateAssistantTextPart(current, assistantMessageId, 0, nextText));
279
- },
280
- onComplete: () => setStreaming(false),
281
- });
282
- };
283
-
284
- return (
285
- <ChatPanel
286
- messages={messages}
287
- streaming={streaming}
288
- emptyStateTitle={emptyStateTitle}
289
- emptyStateDescription={emptyStateDescription}
290
- chatInputPlaceholder={chatInputPlaceholder}
291
- onSubmitMessage={handleSubmitMessage}
292
- actions={actions}
293
- repoMenu={repoMenu}
294
- />
295
- );
296
- }
297
-
298
- export const Empty: Story = {
299
- render: (args) => (
300
- <Box {...panelContainerStyles}>
301
- <MockChatPanelRenderer {...args} />
302
- </Box>
303
- ),
304
- args: {
305
- messages: [],
306
- streaming: false,
307
- emptyStateTitle: "No active conversations",
308
- emptyStateDescription: "Start a conversation to see messages here.",
309
- chatInputPlaceholder: "Type a message...",
310
- actions: defaultActions,
311
- repoMenu: defaultRepoMenu,
312
- onSubmitMessage: (text: string, attachments: string[]) => {
313
- console.log("Submitted", { text, attachments });
314
- },
315
- },
316
- };
317
-
318
- export const Conversation: Story = {
319
- render: (args) => (
320
- <Box {...panelContainerStyles}>
321
- <MockChatPanelRenderer {...args} />
322
- </Box>
323
- ),
324
- args: {
325
- ...Empty.args,
326
- messages: conversationMessages,
327
- },
328
- };
329
-
330
- function StreamingConversationRenderer(props: ChatPanelProps) {
331
- const {
332
- messages: allMessages = [],
333
- emptyStateTitle,
334
- emptyStateDescription,
335
- chatInputPlaceholder,
336
- actions,
337
- repoMenu,
338
- } = props;
339
-
340
- const [visibleMessages, setVisibleMessages] = useState<SessionMessage[]>([]);
341
- const [streaming, setStreaming] = useState(true);
342
-
343
- useEffect(() => {
344
- let cancelled = false;
345
-
346
- const run = async () => {
347
- await streamConversationMessages({
348
- messages: allMessages,
349
- isCancelled: () => cancelled,
350
- onStart: () => {
351
- setVisibleMessages([]);
352
- setStreaming(true);
353
- },
354
- onMessage: (message) => {
355
- setVisibleMessages((prev) => [...prev, message]);
356
- },
357
- onChunk: (messageId, partIndex, text) => {
358
- setVisibleMessages((prev) => updateAssistantTextPart(prev, messageId, partIndex, text));
359
- },
360
- onComplete: () => {
361
- setStreaming(false);
362
- },
363
- });
364
- };
365
-
366
- run();
367
-
368
- return () => {
369
- cancelled = true;
370
- };
371
- }, [allMessages]);
372
-
373
- return (
374
- <ChatPanel
375
- messages={visibleMessages}
376
- streaming={streaming}
377
- emptyStateTitle={emptyStateTitle}
378
- emptyStateDescription={emptyStateDescription}
379
- chatInputPlaceholder={chatInputPlaceholder}
380
- actions={actions}
381
- repoMenu={repoMenu}
382
- />
383
- );
384
- }
385
-
386
- export const Streaming: Story = {
387
- render: (args) => (
388
- <Box {...panelContainerStyles}>
389
- <StreamingConversationRenderer {...args} />
390
- </Box>
391
- ),
392
- args: {
393
- ...Empty.args,
394
- messages: streamingMessages,
395
- },
396
- };
@@ -1,97 +0,0 @@
1
- import { Box, Flex, Stack } from "@chakra-ui/react";
2
- import { MessageCircleIcon } from "lucide-react";
3
- import type { ReactNode } from "react";
4
- import { EmptyState } from "@/components/empty-state";
5
- import { createSerializedPromptState } from "../utils/editor-state";
6
- import { ChatPrimitives } from "./ai-conversation";
7
- import { ChatMessage } from "./ai-message";
8
- import { AutoScroll } from "./auto-scroll";
9
- import { ChatInput } from "./chat-input";
10
- import { MessagePartsRenderer } from "./message-parts-renderer";
11
- import { getMessageOrigin, mergeReasoningToolOnlyMessages, type SessionMessage } from "./message-types";
12
-
13
- const EMPTY_PROMPT_STATE = createSerializedPromptState();
14
-
15
- interface ChatPanelProps {
16
- messages: SessionMessage[];
17
- streaming?: boolean;
18
- emptyStateTitle: string;
19
- emptyStateDescription: string;
20
- chatInputPlaceholder: string;
21
- onSubmitMessage?: (text: string, attachments: string[]) => void;
22
- actions?: ReactNode;
23
- repoMenu?: ReactNode;
24
- attachedResources?: string[];
25
- onClearAttachments?: () => void;
26
- attachmentList?: ReactNode;
27
- approvalPrompt?: ReactNode;
28
- }
29
-
30
- export const ChatPanel = (props: ChatPanelProps) => {
31
- const {
32
- messages,
33
- streaming = false,
34
- emptyStateTitle,
35
- emptyStateDescription,
36
- chatInputPlaceholder,
37
- onSubmitMessage,
38
- actions,
39
- repoMenu,
40
- attachedResources,
41
- onClearAttachments,
42
- attachmentList,
43
- approvalPrompt,
44
- } = props;
45
-
46
- const merged = mergeReasoningToolOnlyMessages(messages);
47
- const hasMessages = merged.length > 0;
48
- const userMessageCount = merged.reduce((count, message) => count + (message.role === "user" ? 1 : 0), 0);
49
-
50
- return (
51
- <Flex position="relative" direction="column" w="full" h="full" overflow="hidden">
52
- <ChatPrimitives.Root>
53
- <AutoScroll userMessageCount={userMessageCount} />
54
- <ChatPrimitives.Viewport>
55
- {hasMessages ? (
56
- <Stack gap="sm">
57
- {merged.map((message) => {
58
- const from = getMessageOrigin(message.role);
59
-
60
- return (
61
- <ChatMessage.Root key={message.id} from={from}>
62
- <ChatMessage.Content from={from}>
63
- <MessagePartsRenderer message={message} streaming={streaming} />
64
- </ChatMessage.Content>
65
- </ChatMessage.Root>
66
- );
67
- })}
68
- </Stack>
69
- ) : (
70
- <EmptyState
71
- icon={<MessageCircleIcon size={48} strokeWidth={1.5} />}
72
- title={emptyStateTitle}
73
- description={emptyStateDescription}
74
- />
75
- )}
76
- </ChatPrimitives.Viewport>
77
- <ChatPrimitives.ScrollToBottom aria-label="Scroll to latest message" />
78
- </ChatPrimitives.Root>
79
- {approvalPrompt}
80
- <Box px="sm">
81
- <ChatInput
82
- placeholder={chatInputPlaceholder}
83
- defaultState={EMPTY_PROMPT_STATE}
84
- streaming={streaming}
85
- onSubmit={onSubmitMessage}
86
- actions={actions}
87
- attachedResources={attachedResources}
88
- onClearAttachments={onClearAttachments}
89
- attachmentList={attachmentList}
90
- />
91
- </Box>
92
- <Flex p="2xs" justifyContent="flex-end">
93
- {repoMenu}
94
- </Flex>
95
- </Flex>
96
- );
97
- };
@@ -1,59 +0,0 @@
1
- import { Box, Stack } from "@chakra-ui/react";
2
- import type { Meta, StoryObj } from "@storybook/react";
3
- import type { SessionMessage } from "../agent-types";
4
- import rawConversationMessages from "../mocks/full-conversation-normalized.json";
5
- import { ChatMessage } from "./ai-message";
6
- import { MessagePartsRenderer } from "./message-parts-renderer";
7
- import { getMessageOrigin } from "./message-types";
8
-
9
- const conversationMessages = rawConversationMessages as unknown as SessionMessage[];
10
-
11
- const hasTextPart = (message: SessionMessage) =>
12
- (message.parts ?? []).some((part) => part.type === "text" && "text" in part);
13
-
14
- const hasReasoningOrToolPart = (message: SessionMessage) =>
15
- (message.parts ?? []).some((part) => part.type === "reasoning" || part.type === "tool");
16
-
17
- const assistantMessageWithRichParts =
18
- conversationMessages.find((message) => message.role === "assistant" && hasReasoningOrToolPart(message)) ??
19
- conversationMessages[0];
20
-
21
- const userMessageWithText =
22
- conversationMessages.find((message) => message.role === "user" && hasTextPart(message)) ?? conversationMessages[0];
23
-
24
- const meta: Meta<typeof MessagePartsRenderer> = {
25
- title: "Chat UI/Message Parts Renderer",
26
- component: MessagePartsRenderer,
27
- parameters: {
28
- layout: "padded",
29
- },
30
- };
31
-
32
- export default meta;
33
-
34
- type Story = StoryObj<typeof MessagePartsRenderer>;
35
-
36
- const MessagePreview = (props: { message: SessionMessage }) => {
37
- const { message } = props;
38
- const from = getMessageOrigin(message.role);
39
-
40
- return (
41
- <Box maxW="960px" w="full" borderWidth="1px" borderRadius="md" bg="bg" p="md">
42
- <Stack gap="sm">
43
- <ChatMessage.Root from={from}>
44
- <ChatMessage.Content from={from}>
45
- <MessagePartsRenderer message={message} />
46
- </ChatMessage.Content>
47
- </ChatMessage.Root>
48
- </Stack>
49
- </Box>
50
- );
51
- };
52
-
53
- export const AssistantReasoningAndToolParts: Story = {
54
- render: () => <MessagePreview message={assistantMessageWithRichParts} />,
55
- };
56
-
57
- export const UserTextParts: Story = {
58
- render: () => <MessagePreview message={userMessageWithText} />,
59
- };
@@ -1,133 +0,0 @@
1
- import { Box, Spinner, Text } from "@chakra-ui/react";
2
- import type { ReactNode } from "react";
3
- import { RichMessage } from "@/components/rich-text";
4
- import type { ErrorPart, SessionMessage, SessionMessagePart, ToolPart } from "../agent-types";
5
- import { Response } from "./ai-response";
6
- import { ToolInvocationTimeline, type ToolInvocationTimelineProps } from "./tool-invocation-timeline";
7
-
8
- type ToolInvocationTimelineComponent = (props: ToolInvocationTimelineProps) => ReactNode;
9
-
10
- export interface MessagePartsProps {
11
- message: SessionMessage;
12
- streaming?: boolean;
13
- onOpenFile?: (filePath: string) => void;
14
- toolInvocationTimeline?: ToolInvocationTimelineComponent;
15
- }
16
-
17
- const isToolPart = (part: SessionMessagePart): part is ToolPart => {
18
- return part.type === "tool";
19
- };
20
-
21
- const formatTokenCount = (count: number) => {
22
- if (count >= 1000) return `${(count / 1000).toFixed(1)}k`;
23
- return String(count);
24
- };
25
-
26
- const getErrorMessage = (errorType: ErrorPart["errorType"]) => {
27
- switch (errorType) {
28
- case "timeout":
29
- return "Session timed out.";
30
- case "crash":
31
- return "Session crashed unexpectedly.";
32
- case "permission":
33
- return "Permission denied.";
34
- default:
35
- return "An error occurred.";
36
- }
37
- };
38
-
39
- const collectToolInvocations = (parts: SessionMessagePart[], startIndex: number) => {
40
- const invocations: ToolPart[] = [];
41
- let lookahead = startIndex;
42
-
43
- while (lookahead < parts.length) {
44
- const nextPart = parts[lookahead];
45
- if (!isToolPart(nextPart)) break;
46
- invocations.push(nextPart);
47
- lookahead += 1;
48
- }
49
-
50
- return { invocations, nextIndex: lookahead - 1 };
51
- };
52
-
53
- export function MessagePartsRenderer(props: MessagePartsProps) {
54
- const { message, onOpenFile, toolInvocationTimeline } = props;
55
- const RenderToolInvocationTimeline = toolInvocationTimeline ?? ToolInvocationTimeline;
56
- const parts = message.parts ?? [];
57
- const nodes: ReactNode[] = [];
58
-
59
- for (let partIndex = 0; partIndex < parts.length; partIndex += 1) {
60
- const part = parts[partIndex];
61
- const key = `${message.id}-${partIndex}`;
62
-
63
- switch (part.type) {
64
- case "text":
65
- nodes.push(
66
- <div key={key}>
67
- <Response>{part.text}</Response>
68
- </div>,
69
- );
70
- break;
71
- case "reasoning":
72
- nodes.push(
73
- <Box
74
- key={key}
75
- padding="0"
76
- css={{
77
- "& .rich-text, & .rich-text *": {
78
- color: "fg.subtle !important",
79
- fontSize: ".75rem !important",
80
- fontWeight: "normal !important",
81
- },
82
- }}
83
- >
84
- <RichMessage defaultState={part.text} />
85
- </Box>,
86
- );
87
- break;
88
- case "tool": {
89
- const { invocations, nextIndex } = collectToolInvocations(parts, partIndex);
90
- partIndex = nextIndex;
91
- nodes.push(
92
- <Box key={key} width="full">
93
- <RenderToolInvocationTimeline invocations={invocations} labeledBlocks onOpenFile={onOpenFile} />
94
- </Box>,
95
- );
96
- break;
97
- }
98
- case "loading":
99
- nodes.push(
100
- <Box key={key} display="flex" alignItems="center" gap="2" py="2">
101
- <Spinner size="sm" />
102
- <Text fontSize="sm" color="fg.muted">
103
- Thinking...
104
- </Text>
105
- </Box>,
106
- );
107
- break;
108
- case "error":
109
- nodes.push(
110
- <Box key={key} py="2">
111
- <Text fontSize="sm" color="fg.error">
112
- {getErrorMessage(part.errorType)}
113
- </Text>
114
- </Box>,
115
- );
116
- break;
117
- case "token_usage":
118
- nodes.push(
119
- <Box key={key} py="1">
120
- <Text fontSize="xs" color="fg.subtle">
121
- Tokens: {formatTokenCount(part.inputTokens)} in / {formatTokenCount(part.outputTokens)} out
122
- {part.cacheReadTokens ? ` / ${formatTokenCount(part.cacheReadTokens)} cache read` : ""}
123
- </Text>
124
- </Box>,
125
- );
126
- break;
127
- default:
128
- nodes.push(null);
129
- }
130
- }
131
-
132
- return <>{nodes}</>;
133
- }