@chatsdk-dev/ui 0.0.1 → 0.1.3

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 (468) hide show
  1. package/README.md +7 -7
  2. package/dist/atoms/accordion.d.ts +7 -0
  3. package/dist/atoms/accordion.d.ts.map +1 -0
  4. package/dist/atoms/accordion.js +18 -0
  5. package/dist/atoms/alert-dialog.d.ts +19 -0
  6. package/dist/atoms/alert-dialog.d.ts.map +1 -0
  7. package/dist/atoms/alert-dialog.js +42 -0
  8. package/dist/atoms/alert.d.ts +11 -0
  9. package/dist/atoms/alert.d.ts.map +1 -0
  10. package/dist/atoms/alert.js +27 -0
  11. package/dist/atoms/avatar.d.ts +12 -0
  12. package/dist/atoms/avatar.d.ts.map +1 -0
  13. package/dist/atoms/avatar.js +23 -0
  14. package/dist/atoms/badge.d.ts +8 -0
  15. package/dist/atoms/badge.d.ts.map +1 -0
  16. package/dist/atoms/badge.js +44 -0
  17. package/dist/atoms/button-group.d.ts +11 -0
  18. package/dist/atoms/button-group.d.ts.map +1 -0
  19. package/dist/atoms/button-group.js +36 -0
  20. package/dist/atoms/button-loader.d.ts +9 -0
  21. package/dist/atoms/button-loader.d.ts.map +1 -0
  22. package/dist/atoms/button-loader.js +10 -0
  23. package/dist/atoms/button.d.ts +9 -0
  24. package/dist/atoms/button.d.ts.map +1 -0
  25. package/dist/atoms/button.js +32 -0
  26. package/dist/atoms/card.d.ts +12 -0
  27. package/dist/atoms/card.d.ts.map +1 -0
  28. package/dist/atoms/card.js +25 -0
  29. package/dist/atoms/carousel.d.ts +29 -0
  30. package/dist/atoms/carousel.d.ts.map +1 -0
  31. package/dist/atoms/carousel.js +91 -0
  32. package/dist/atoms/collapsible.d.ts +6 -0
  33. package/dist/atoms/collapsible.d.ts.map +1 -0
  34. package/dist/atoms/collapsible.js +13 -0
  35. package/dist/atoms/command.d.ts +20 -0
  36. package/dist/atoms/command.d.ts.map +1 -0
  37. package/dist/atoms/command.js +35 -0
  38. package/dist/atoms/container.d.ts +8 -0
  39. package/dist/atoms/container.d.ts.map +1 -0
  40. package/dist/atoms/container.js +5 -0
  41. package/dist/atoms/dialog.d.ts +19 -0
  42. package/dist/atoms/dialog.d.ts.map +1 -0
  43. package/dist/atoms/dialog.js +38 -0
  44. package/dist/atoms/dots-loader.d.ts +15 -0
  45. package/dist/atoms/dots-loader.d.ts.map +1 -0
  46. package/dist/atoms/dots-loader.js +21 -0
  47. package/dist/atoms/drawer.d.ts +14 -0
  48. package/dist/atoms/drawer.d.ts.map +1 -0
  49. package/dist/atoms/drawer.js +35 -0
  50. package/dist/atoms/dropdown-menu.d.ts +26 -0
  51. package/dist/atoms/dropdown-menu.d.ts.map +1 -0
  52. package/dist/atoms/dropdown-menu.js +51 -0
  53. package/dist/atoms/empty.d.ts +12 -0
  54. package/dist/atoms/empty.d.ts.map +1 -0
  55. package/dist/atoms/empty.js +33 -0
  56. package/dist/atoms/field.d.ts +25 -0
  57. package/dist/atoms/field.d.ts.map +1 -0
  58. package/dist/atoms/field.js +68 -0
  59. package/dist/atoms/form.d.ts +23 -0
  60. package/dist/atoms/form.d.ts.map +1 -0
  61. package/dist/atoms/form.js +68 -0
  62. package/dist/atoms/header.d.ts +6 -0
  63. package/dist/atoms/header.d.ts.map +1 -0
  64. package/dist/atoms/header.js +6 -0
  65. package/dist/atoms/hover-card.d.ts +6 -0
  66. package/dist/atoms/hover-card.d.ts.map +1 -0
  67. package/dist/atoms/hover-card.js +14 -0
  68. package/dist/atoms/index.d.ts +5 -0
  69. package/dist/atoms/index.d.ts.map +1 -0
  70. package/dist/atoms/index.js +5 -0
  71. package/dist/atoms/input-group.d.ts +19 -0
  72. package/dist/atoms/input-group.d.ts.map +1 -0
  73. package/dist/atoms/input-group.js +57 -0
  74. package/dist/atoms/input.d.ts +7 -0
  75. package/dist/atoms/input.d.ts.map +1 -0
  76. package/dist/atoms/input.js +6 -0
  77. package/dist/atoms/label.d.ts +3 -0
  78. package/dist/atoms/label.d.ts.map +1 -0
  79. package/dist/atoms/label.js +7 -0
  80. package/dist/atoms/logo.d.ts +7 -0
  81. package/dist/atoms/logo.d.ts.map +1 -0
  82. package/dist/atoms/logo.js +6 -0
  83. package/dist/atoms/number-flow.d.ts +3 -0
  84. package/dist/atoms/number-flow.d.ts.map +1 -0
  85. package/dist/atoms/number-flow.js +6 -0
  86. package/dist/atoms/popover.d.ts +10 -0
  87. package/dist/atoms/popover.d.ts.map +1 -0
  88. package/dist/atoms/popover.js +23 -0
  89. package/dist/atoms/progress.d.ts +8 -0
  90. package/dist/atoms/progress.d.ts.map +1 -0
  91. package/dist/atoms/progress.js +20 -0
  92. package/dist/atoms/radio-group.d.ts +6 -0
  93. package/dist/atoms/radio-group.d.ts.map +1 -0
  94. package/dist/atoms/radio-group.js +13 -0
  95. package/dist/atoms/scroll-area.d.ts +5 -0
  96. package/dist/atoms/scroll-area.d.ts.map +1 -0
  97. package/dist/atoms/scroll-area.js +11 -0
  98. package/dist/atoms/select.d.ts +17 -0
  99. package/dist/atoms/select.d.ts.map +1 -0
  100. package/dist/atoms/select.js +34 -0
  101. package/dist/atoms/separator.d.ts +3 -0
  102. package/dist/atoms/separator.d.ts.map +1 -0
  103. package/dist/atoms/separator.js +7 -0
  104. package/dist/atoms/sheet.d.ts +15 -0
  105. package/dist/atoms/sheet.d.ts.map +1 -0
  106. package/dist/atoms/sheet.js +37 -0
  107. package/dist/atoms/sidebar.d.ts +65 -0
  108. package/dist/atoms/sidebar.d.ts.map +1 -0
  109. package/dist/atoms/sidebar.js +258 -0
  110. package/dist/atoms/skeleton.d.ts +2 -0
  111. package/dist/atoms/skeleton.d.ts.map +1 -0
  112. package/dist/atoms/skeleton.js +5 -0
  113. package/dist/atoms/spinner.d.ts +3 -0
  114. package/dist/atoms/spinner.d.ts.map +1 -0
  115. package/dist/atoms/spinner.js +7 -0
  116. package/dist/atoms/switch.d.ts +5 -0
  117. package/dist/atoms/switch.d.ts.map +1 -0
  118. package/dist/atoms/switch.js +7 -0
  119. package/dist/atoms/table.d.ts +13 -0
  120. package/dist/atoms/table.d.ts.map +1 -0
  121. package/dist/atoms/table.js +28 -0
  122. package/dist/atoms/tabs.d.ts +12 -0
  123. package/dist/atoms/tabs.d.ts.map +1 -0
  124. package/dist/atoms/tabs.js +32 -0
  125. package/dist/atoms/textarea.d.ts +3 -0
  126. package/dist/atoms/textarea.d.ts.map +1 -0
  127. package/dist/atoms/textarea.js +5 -0
  128. package/dist/atoms/toggle.d.ts +9 -0
  129. package/dist/atoms/toggle.d.ts.map +1 -0
  130. package/dist/atoms/toggle.js +26 -0
  131. package/dist/atoms/tooltip.d.ts +7 -0
  132. package/dist/atoms/tooltip.d.ts.map +1 -0
  133. package/dist/atoms/tooltip.js +17 -0
  134. package/dist/atoms/typography/h1.d.ts +10 -0
  135. package/dist/atoms/typography/h1.d.ts.map +1 -0
  136. package/dist/atoms/typography/h1.js +6 -0
  137. package/dist/atoms/typography/paragraph.d.ts +6 -0
  138. package/dist/atoms/typography/paragraph.d.ts.map +1 -0
  139. package/dist/atoms/typography/paragraph.js +6 -0
  140. package/dist/atoms/typography/text.d.ts +14 -0
  141. package/dist/atoms/typography/text.d.ts.map +1 -0
  142. package/dist/atoms/typography/text.js +41 -0
  143. package/dist/components/responsive-alert-dialog.d.ts +16 -0
  144. package/dist/components/responsive-alert-dialog.d.ts.map +1 -0
  145. package/dist/components/responsive-alert-dialog.js +20 -0
  146. package/dist/components/responsive-dialog.d.ts +11 -0
  147. package/dist/components/responsive-dialog.d.ts.map +1 -0
  148. package/dist/components/responsive-dialog.js +21 -0
  149. package/dist/hooks/use-copy-to-clipboard.d.ts +2 -0
  150. package/dist/hooks/use-copy-to-clipboard.d.ts.map +1 -0
  151. package/dist/hooks/use-copy-to-clipboard.js +31 -0
  152. package/dist/index.css +1580 -39
  153. package/dist/molecules/actions.d.ts +10 -0
  154. package/dist/molecules/actions.d.ts.map +1 -0
  155. package/dist/molecules/actions.js +13 -0
  156. package/dist/molecules/agent.d.ts +27 -0
  157. package/dist/molecules/agent.d.ts.map +1 -0
  158. package/dist/molecules/agent.js +27 -0
  159. package/dist/molecules/ai/actions.d.ts +10 -0
  160. package/dist/molecules/ai/actions.d.ts.map +1 -0
  161. package/dist/molecules/ai/actions.js +13 -0
  162. package/dist/molecules/ai/agent.d.ts +27 -0
  163. package/dist/molecules/ai/agent.d.ts.map +1 -0
  164. package/dist/molecules/ai/agent.js +27 -0
  165. package/dist/molecules/ai/artifact.d.ts +24 -0
  166. package/dist/molecules/ai/artifact.d.ts.map +1 -0
  167. package/dist/molecules/ai/artifact.js +20 -0
  168. package/dist/molecules/ai/attachments.d.ts +55 -0
  169. package/dist/molecules/ai/attachments.d.ts.map +1 -0
  170. package/dist/molecules/ai/attachments.js +125 -0
  171. package/dist/molecules/ai/audio-player.d.ts +30 -0
  172. package/dist/molecules/ai/audio-player.d.ts.map +1 -0
  173. package/dist/molecules/ai/audio-player.js +43 -0
  174. package/dist/molecules/ai/canvas.d.ts +9 -0
  175. package/dist/molecules/ai/canvas.d.ts.map +1 -0
  176. package/dist/molecules/ai/canvas.js +5 -0
  177. package/dist/molecules/ai/chain-of-thought.d.ts +30 -0
  178. package/dist/molecules/ai/chain-of-thought.d.ts.map +1 -0
  179. package/dist/molecules/ai/chain-of-thought.js +49 -0
  180. package/dist/molecules/ai/checkpoint.d.ts +12 -0
  181. package/dist/molecules/ai/checkpoint.d.ts.map +1 -0
  182. package/dist/molecules/ai/checkpoint.js +10 -0
  183. package/dist/molecules/ai/code-block.d.ts +46 -0
  184. package/dist/molecules/ai/code-block.d.ts.map +1 -0
  185. package/dist/molecules/ai/code-block.js +216 -0
  186. package/dist/molecules/ai/commit.d.ts +65 -0
  187. package/dist/molecules/ai/commit.d.ts.map +1 -0
  188. package/dist/molecules/ai/commit.js +95 -0
  189. package/dist/molecules/ai/confirmation.d.ts +50 -0
  190. package/dist/molecules/ai/confirmation.d.ts.map +1 -0
  191. package/dist/molecules/ai/confirmation.js +61 -0
  192. package/dist/molecules/ai/connection.d.ts +3 -0
  193. package/dist/molecules/ai/connection.d.ts.map +1 -0
  194. package/dist/molecules/ai/connection.js +3 -0
  195. package/dist/molecules/ai/context.d.ts +33 -0
  196. package/dist/molecules/ai/context.d.ts.map +1 -0
  197. package/dist/molecules/ai/context.js +164 -0
  198. package/dist/molecules/ai/controls.d.ts +5 -0
  199. package/dist/molecules/ai/controls.d.ts.map +1 -0
  200. package/dist/molecules/ai/controls.js +5 -0
  201. package/dist/molecules/ai/conversation.d.ts +24 -0
  202. package/dist/molecules/ai/conversation.d.ts.map +1 -0
  203. package/dist/molecules/ai/conversation.js +41 -0
  204. package/dist/molecules/ai/edge.d.ts +6 -0
  205. package/dist/molecules/ai/edge.d.ts.map +1 -0
  206. package/dist/molecules/ai/edge.js +87 -0
  207. package/dist/molecules/ai/environment-variables.d.ts +39 -0
  208. package/dist/molecules/ai/environment-variables.d.ts.map +1 -0
  209. package/dist/molecules/ai/environment-variables.js +87 -0
  210. package/dist/molecules/ai/file-tree.d.ts +27 -0
  211. package/dist/molecules/ai/file-tree.d.ts.map +1 -0
  212. package/dist/molecules/ai/file-tree.js +71 -0
  213. package/dist/molecules/ai/image.d.ts +7 -0
  214. package/dist/molecules/ai/image.d.ts.map +1 -0
  215. package/dist/molecules/ai/image.js +3 -0
  216. package/dist/molecules/ai/inline-citation.d.ts +39 -0
  217. package/dist/molecules/ai/inline-citation.d.ts.map +1 -0
  218. package/dist/molecules/ai/inline-citation.js +68 -0
  219. package/dist/molecules/ai/jsx-preview.d.ts +30 -0
  220. package/dist/molecules/ai/jsx-preview.d.ts.map +1 -0
  221. package/dist/molecules/ai/jsx-preview.js +167 -0
  222. package/dist/molecules/ai/loader.d.ts +6 -0
  223. package/dist/molecules/ai/loader.d.ts.map +1 -0
  224. package/dist/molecules/ai/loader.js +4 -0
  225. package/dist/molecules/ai/message.d.ts +38 -0
  226. package/dist/molecules/ai/message.d.ts.map +1 -0
  227. package/dist/molecules/ai/message.js +92 -0
  228. package/dist/molecules/ai/mic-selector.d.ts +46 -0
  229. package/dist/molecules/ai/mic-selector.d.ts.map +1 -0
  230. package/dist/molecules/ai/mic-selector.js +184 -0
  231. package/dist/molecules/ai/model-selector.d.ts +36 -0
  232. package/dist/molecules/ai/model-selector.d.ts.map +1 -0
  233. package/dist/molecules/ai/model-selector.js +18 -0
  234. package/dist/molecules/ai/node.d.ts +22 -0
  235. package/dist/molecules/ai/node.d.ts.map +1 -0
  236. package/dist/molecules/ai/node.js +11 -0
  237. package/dist/molecules/ai/open-in-chat.d.ts +29 -0
  238. package/dist/molecules/ai/open-in-chat.d.ts.map +1 -0
  239. package/dist/molecules/ai/open-in-chat.js +100 -0
  240. package/dist/molecules/ai/package-info.d.ts +30 -0
  241. package/dist/molecules/ai/package-info.d.ts.map +1 -0
  242. package/dist/molecules/ai/package-info.js +50 -0
  243. package/dist/molecules/ai/panel.d.ts +6 -0
  244. package/dist/molecules/ai/panel.d.ts.map +1 -0
  245. package/dist/molecules/ai/panel.js +4 -0
  246. package/dist/molecules/ai/persona.d.ts +49 -0
  247. package/dist/molecules/ai/persona.d.ts.map +1 -0
  248. package/dist/molecules/ai/persona.js +189 -0
  249. package/dist/molecules/ai/plan.d.ts +26 -0
  250. package/dist/molecules/ai/plan.d.ts.map +1 -0
  251. package/dist/molecules/ai/plan.js +34 -0
  252. package/dist/molecules/ai/prompt-input.d.ts +149 -0
  253. package/dist/molecules/ai/prompt-input.d.ts.map +1 -0
  254. package/dist/molecules/ai/prompt-input.js +702 -0
  255. package/dist/molecules/ai/queue.d.ts +62 -0
  256. package/dist/molecules/ai/queue.d.ts.map +1 -0
  257. package/dist/molecules/ai/queue.js +28 -0
  258. package/dist/molecules/ai/reasoning.d.ts +27 -0
  259. package/dist/molecules/ai/reasoning.d.ts.map +1 -0
  260. package/dist/molecules/ai/reasoning.js +95 -0
  261. package/dist/molecules/ai/response.d.ts +6 -0
  262. package/dist/molecules/ai/response.d.ts.map +1 -0
  263. package/dist/molecules/ai/response.js +18 -0
  264. package/dist/molecules/ai/sandbox.d.ts +25 -0
  265. package/dist/molecules/ai/sandbox.d.ts.map +1 -0
  266. package/dist/molecules/ai/sandbox.js +15 -0
  267. package/dist/molecules/ai/schema-display.d.ts +56 -0
  268. package/dist/molecules/ai/schema-display.d.ts.map +1 -0
  269. package/dist/molecules/ai/schema-display.js +73 -0
  270. package/dist/molecules/ai/shimmer.d.ts +10 -0
  271. package/dist/molecules/ai/shimmer.d.ts.map +1 -0
  272. package/dist/molecules/ai/shimmer.js +28 -0
  273. package/dist/molecules/ai/snippet.d.ts +19 -0
  274. package/dist/molecules/ai/snippet.d.ts.map +1 -0
  275. package/dist/molecules/ai/snippet.js +46 -0
  276. package/dist/molecules/ai/sources.d.ts +13 -0
  277. package/dist/molecules/ai/sources.d.ts.map +1 -0
  278. package/dist/molecules/ai/sources.js +9 -0
  279. package/dist/molecules/ai/speech-input.d.ts +55 -0
  280. package/dist/molecules/ai/speech-input.d.ts.map +1 -0
  281. package/dist/molecules/ai/speech-input.js +187 -0
  282. package/dist/molecules/ai/stack-trace.d.ts +38 -0
  283. package/dist/molecules/ai/stack-trace.d.ts.map +1 -0
  284. package/dist/molecules/ai/stack-trace.js +194 -0
  285. package/dist/molecules/ai/suggestion.d.ts +11 -0
  286. package/dist/molecules/ai/suggestion.d.ts.map +1 -0
  287. package/dist/molecules/ai/suggestion.js +13 -0
  288. package/dist/molecules/ai/task.d.ts +15 -0
  289. package/dist/molecules/ai/task.d.ts.map +1 -0
  290. package/dist/molecules/ai/task.js +10 -0
  291. package/dist/molecules/ai/terminal.d.ts +28 -0
  292. package/dist/molecules/ai/terminal.d.ts.map +1 -0
  293. package/dist/molecules/ai/terminal.js +68 -0
  294. package/dist/molecules/ai/test-results.d.ts +59 -0
  295. package/dist/molecules/ai/test-results.d.ts.map +1 -0
  296. package/dist/molecules/ai/test-results.js +97 -0
  297. package/dist/molecules/ai/tool.d.ts +32 -0
  298. package/dist/molecules/ai/tool.d.ts.map +1 -0
  299. package/dist/molecules/ai/tool.js +49 -0
  300. package/dist/molecules/ai/toolbar.d.ts +6 -0
  301. package/dist/molecules/ai/toolbar.d.ts.map +1 -0
  302. package/dist/molecules/ai/toolbar.js +4 -0
  303. package/dist/molecules/ai/transcription.d.ts +17 -0
  304. package/dist/molecules/ai/transcription.d.ts.map +1 -0
  305. package/dist/molecules/ai/transcription.js +36 -0
  306. package/dist/molecules/ai/voice-selector.d.ts +64 -0
  307. package/dist/molecules/ai/voice-selector.d.ts.map +1 -0
  308. package/dist/molecules/ai/voice-selector.js +224 -0
  309. package/dist/molecules/ai/web-preview.d.ts +35 -0
  310. package/dist/molecules/ai/web-preview.d.ts.map +1 -0
  311. package/dist/molecules/ai/web-preview.js +65 -0
  312. package/dist/molecules/artifact.d.ts +24 -0
  313. package/dist/molecules/artifact.d.ts.map +1 -0
  314. package/dist/molecules/artifact.js +20 -0
  315. package/dist/molecules/attachments.d.ts +55 -0
  316. package/dist/molecules/attachments.d.ts.map +1 -0
  317. package/dist/molecules/attachments.js +125 -0
  318. package/dist/molecules/audio-player.d.ts +30 -0
  319. package/dist/molecules/audio-player.d.ts.map +1 -0
  320. package/dist/molecules/audio-player.js +43 -0
  321. package/dist/molecules/canvas.d.ts +9 -0
  322. package/dist/molecules/canvas.d.ts.map +1 -0
  323. package/dist/molecules/canvas.js +5 -0
  324. package/dist/molecules/chain-of-thought.d.ts +30 -0
  325. package/dist/molecules/chain-of-thought.d.ts.map +1 -0
  326. package/dist/molecules/chain-of-thought.js +49 -0
  327. package/dist/molecules/chat-message.d.ts +10 -0
  328. package/dist/molecules/chat-message.d.ts.map +1 -0
  329. package/dist/molecules/chat-message.js +53 -0
  330. package/dist/molecules/checkpoint.d.ts +12 -0
  331. package/dist/molecules/checkpoint.d.ts.map +1 -0
  332. package/dist/molecules/checkpoint.js +10 -0
  333. package/dist/molecules/code-block.d.ts +46 -0
  334. package/dist/molecules/code-block.d.ts.map +1 -0
  335. package/dist/molecules/code-block.js +216 -0
  336. package/dist/molecules/commit.d.ts +65 -0
  337. package/dist/molecules/commit.d.ts.map +1 -0
  338. package/dist/molecules/commit.js +95 -0
  339. package/dist/molecules/confirmation.d.ts +50 -0
  340. package/dist/molecules/confirmation.d.ts.map +1 -0
  341. package/dist/molecules/confirmation.js +61 -0
  342. package/dist/molecules/connection.d.ts +3 -0
  343. package/dist/molecules/connection.d.ts.map +1 -0
  344. package/dist/molecules/connection.js +3 -0
  345. package/dist/molecules/context.d.ts +33 -0
  346. package/dist/molecules/context.d.ts.map +1 -0
  347. package/dist/molecules/context.js +164 -0
  348. package/dist/molecules/controls.d.ts +5 -0
  349. package/dist/molecules/controls.d.ts.map +1 -0
  350. package/dist/molecules/controls.js +5 -0
  351. package/dist/molecules/conversation.d.ts +24 -0
  352. package/dist/molecules/conversation.d.ts.map +1 -0
  353. package/dist/molecules/conversation.js +41 -0
  354. package/dist/molecules/edge.d.ts +6 -0
  355. package/dist/molecules/edge.d.ts.map +1 -0
  356. package/dist/molecules/edge.js +87 -0
  357. package/dist/molecules/environment-variables.d.ts +39 -0
  358. package/dist/molecules/environment-variables.d.ts.map +1 -0
  359. package/dist/molecules/environment-variables.js +87 -0
  360. package/dist/molecules/file-tree.d.ts +27 -0
  361. package/dist/molecules/file-tree.d.ts.map +1 -0
  362. package/dist/molecules/file-tree.js +71 -0
  363. package/dist/molecules/image.d.ts +7 -0
  364. package/dist/molecules/image.d.ts.map +1 -0
  365. package/dist/molecules/image.js +3 -0
  366. package/dist/molecules/inline-citation.d.ts +39 -0
  367. package/dist/molecules/inline-citation.d.ts.map +1 -0
  368. package/dist/molecules/inline-citation.js +68 -0
  369. package/dist/molecules/jsx-preview.d.ts +30 -0
  370. package/dist/molecules/jsx-preview.d.ts.map +1 -0
  371. package/dist/molecules/jsx-preview.js +167 -0
  372. package/dist/molecules/loader.d.ts +6 -0
  373. package/dist/molecules/loader.d.ts.map +1 -0
  374. package/dist/molecules/loader.js +4 -0
  375. package/dist/molecules/message.d.ts +38 -0
  376. package/dist/molecules/message.d.ts.map +1 -0
  377. package/dist/molecules/message.js +92 -0
  378. package/dist/molecules/mic-selector.d.ts +46 -0
  379. package/dist/molecules/mic-selector.d.ts.map +1 -0
  380. package/dist/molecules/mic-selector.js +184 -0
  381. package/dist/molecules/model-selector.d.ts +36 -0
  382. package/dist/molecules/model-selector.d.ts.map +1 -0
  383. package/dist/molecules/model-selector.js +18 -0
  384. package/dist/molecules/node.d.ts +22 -0
  385. package/dist/molecules/node.d.ts.map +1 -0
  386. package/dist/molecules/node.js +11 -0
  387. package/dist/molecules/open-in-chat.d.ts +29 -0
  388. package/dist/molecules/open-in-chat.d.ts.map +1 -0
  389. package/dist/molecules/open-in-chat.js +100 -0
  390. package/dist/molecules/package-info.d.ts +30 -0
  391. package/dist/molecules/package-info.d.ts.map +1 -0
  392. package/dist/molecules/package-info.js +50 -0
  393. package/dist/molecules/panel.d.ts +6 -0
  394. package/dist/molecules/panel.d.ts.map +1 -0
  395. package/dist/molecules/panel.js +4 -0
  396. package/dist/molecules/persona.d.ts +49 -0
  397. package/dist/molecules/persona.d.ts.map +1 -0
  398. package/dist/molecules/persona.js +189 -0
  399. package/dist/molecules/plan.d.ts +26 -0
  400. package/dist/molecules/plan.d.ts.map +1 -0
  401. package/dist/molecules/plan.js +34 -0
  402. package/dist/molecules/prompt-input.d.ts +149 -0
  403. package/dist/molecules/prompt-input.d.ts.map +1 -0
  404. package/dist/molecules/prompt-input.js +702 -0
  405. package/dist/molecules/queue.d.ts +62 -0
  406. package/dist/molecules/queue.d.ts.map +1 -0
  407. package/dist/molecules/queue.js +28 -0
  408. package/dist/molecules/reasoning.d.ts +27 -0
  409. package/dist/molecules/reasoning.d.ts.map +1 -0
  410. package/dist/molecules/reasoning.js +95 -0
  411. package/dist/molecules/response.d.ts +6 -0
  412. package/dist/molecules/response.d.ts.map +1 -0
  413. package/dist/molecules/response.js +18 -0
  414. package/dist/molecules/responsive-alert-dialog.d.ts +16 -0
  415. package/dist/molecules/responsive-alert-dialog.d.ts.map +1 -0
  416. package/dist/molecules/responsive-alert-dialog.js +20 -0
  417. package/dist/molecules/responsive-dialog.d.ts +11 -0
  418. package/dist/molecules/responsive-dialog.d.ts.map +1 -0
  419. package/dist/molecules/responsive-dialog.js +21 -0
  420. package/dist/molecules/sandbox.d.ts +25 -0
  421. package/dist/molecules/sandbox.d.ts.map +1 -0
  422. package/dist/molecules/sandbox.js +15 -0
  423. package/dist/molecules/schema-display.d.ts +56 -0
  424. package/dist/molecules/schema-display.d.ts.map +1 -0
  425. package/dist/molecules/schema-display.js +73 -0
  426. package/dist/molecules/shimmer.d.ts +10 -0
  427. package/dist/molecules/shimmer.d.ts.map +1 -0
  428. package/dist/molecules/shimmer.js +28 -0
  429. package/dist/molecules/snippet.d.ts +19 -0
  430. package/dist/molecules/snippet.d.ts.map +1 -0
  431. package/dist/molecules/snippet.js +46 -0
  432. package/dist/molecules/sources.d.ts +13 -0
  433. package/dist/molecules/sources.d.ts.map +1 -0
  434. package/dist/molecules/sources.js +9 -0
  435. package/dist/molecules/speech-input.d.ts +55 -0
  436. package/dist/molecules/speech-input.d.ts.map +1 -0
  437. package/dist/molecules/speech-input.js +187 -0
  438. package/dist/molecules/stack-trace.d.ts +38 -0
  439. package/dist/molecules/stack-trace.d.ts.map +1 -0
  440. package/dist/molecules/stack-trace.js +194 -0
  441. package/dist/molecules/suggestion.d.ts +11 -0
  442. package/dist/molecules/suggestion.d.ts.map +1 -0
  443. package/dist/molecules/suggestion.js +13 -0
  444. package/dist/molecules/task.d.ts +15 -0
  445. package/dist/molecules/task.d.ts.map +1 -0
  446. package/dist/molecules/task.js +10 -0
  447. package/dist/molecules/terminal.d.ts +28 -0
  448. package/dist/molecules/terminal.d.ts.map +1 -0
  449. package/dist/molecules/terminal.js +68 -0
  450. package/dist/molecules/test-results.d.ts +59 -0
  451. package/dist/molecules/test-results.d.ts.map +1 -0
  452. package/dist/molecules/test-results.js +97 -0
  453. package/dist/molecules/tool.d.ts +32 -0
  454. package/dist/molecules/tool.d.ts.map +1 -0
  455. package/dist/molecules/tool.js +49 -0
  456. package/dist/molecules/toolbar.d.ts +6 -0
  457. package/dist/molecules/toolbar.d.ts.map +1 -0
  458. package/dist/molecules/toolbar.js +4 -0
  459. package/dist/molecules/transcription.d.ts +17 -0
  460. package/dist/molecules/transcription.d.ts.map +1 -0
  461. package/dist/molecules/transcription.js +36 -0
  462. package/dist/molecules/voice-selector.d.ts +64 -0
  463. package/dist/molecules/voice-selector.d.ts.map +1 -0
  464. package/dist/molecules/voice-selector.js +224 -0
  465. package/dist/molecules/web-preview.d.ts +35 -0
  466. package/dist/molecules/web-preview.d.ts.map +1 -0
  467. package/dist/molecules/web-preview.js +65 -0
  468. package/package.json +27 -8
@@ -0,0 +1,49 @@
1
+ import type { RiveParameters } from "@rive-app/react-webgl2";
2
+ import type { FC } from "react";
3
+ export type PersonaState = "idle" | "listening" | "thinking" | "speaking" | "asleep";
4
+ interface PersonaProps {
5
+ state: PersonaState;
6
+ onLoad?: RiveParameters["onLoad"];
7
+ onLoadError?: RiveParameters["onLoadError"];
8
+ onReady?: () => void;
9
+ onPause?: RiveParameters["onPause"];
10
+ onPlay?: RiveParameters["onPlay"];
11
+ onStop?: RiveParameters["onStop"];
12
+ className?: string;
13
+ variant?: keyof typeof sources;
14
+ }
15
+ declare const sources: {
16
+ command: {
17
+ dynamicColor: boolean;
18
+ hasModel: boolean;
19
+ source: string;
20
+ };
21
+ glint: {
22
+ dynamicColor: boolean;
23
+ hasModel: boolean;
24
+ source: string;
25
+ };
26
+ halo: {
27
+ dynamicColor: boolean;
28
+ hasModel: boolean;
29
+ source: string;
30
+ };
31
+ mana: {
32
+ dynamicColor: boolean;
33
+ hasModel: boolean;
34
+ source: string;
35
+ };
36
+ obsidian: {
37
+ dynamicColor: boolean;
38
+ hasModel: boolean;
39
+ source: string;
40
+ };
41
+ opal: {
42
+ dynamicColor: boolean;
43
+ hasModel: boolean;
44
+ source: string;
45
+ };
46
+ };
47
+ export declare const Persona: FC<PersonaProps>;
48
+ export {};
49
+ //# sourceMappingURL=persona.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persona.d.ts","sourceRoot":"","sources":["../../../src/molecules/ai/persona.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAQ7D,OAAO,KAAK,EAAE,EAAE,EAAa,MAAM,OAAO,CAAC;AAoB3C,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,WAAW,GACX,UAAU,GACV,UAAU,GACV,QAAQ,CAAC;AAEb,UAAU,YAAY;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,OAAO,OAAO,CAAC;CAChC;AAKD,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCZ,CAAC;AAmGF,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CAkHpC,CAAC"}
@@ -0,0 +1,189 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { cn } from "@chatsdk-dev/ui/lib/utils";
4
+ import { useRive, useStateMachineInput, useViewModel, useViewModelInstance, useViewModelInstanceColor, } from "@rive-app/react-webgl2";
5
+ import { memo, useEffect, useMemo, useRef, useState } from "react";
6
+ // Delays Rive initialization by one frame so that React Strict Mode's
7
+ // immediate unmount cycle never creates a WebGL2 context. Only the
8
+ // second (real) mount will initialise, avoiding context exhaustion.
9
+ const useStrictModeSafeInit = () => {
10
+ const [ready, setReady] = useState(false);
11
+ useEffect(() => {
12
+ const id = requestAnimationFrame(() => setReady(true));
13
+ return () => {
14
+ cancelAnimationFrame(id);
15
+ setReady(false);
16
+ };
17
+ }, []);
18
+ return ready;
19
+ };
20
+ // The state machine name is always 'default' for Elements AI visuals
21
+ const stateMachine = "default";
22
+ const sources = {
23
+ command: {
24
+ dynamicColor: true,
25
+ hasModel: true,
26
+ source: "https://ejiidnob33g9ap1r.public.blob.vercel-storage.com/command-2.0.riv",
27
+ },
28
+ glint: {
29
+ dynamicColor: true,
30
+ hasModel: true,
31
+ source: "https://ejiidnob33g9ap1r.public.blob.vercel-storage.com/glint-2.0.riv",
32
+ },
33
+ halo: {
34
+ dynamicColor: true,
35
+ hasModel: true,
36
+ source: "https://ejiidnob33g9ap1r.public.blob.vercel-storage.com/halo-2.0.riv",
37
+ },
38
+ mana: {
39
+ dynamicColor: false,
40
+ hasModel: true,
41
+ source: "https://ejiidnob33g9ap1r.public.blob.vercel-storage.com/mana-2.0.riv",
42
+ },
43
+ obsidian: {
44
+ dynamicColor: true,
45
+ hasModel: true,
46
+ source: "https://ejiidnob33g9ap1r.public.blob.vercel-storage.com/obsidian-2.0.riv",
47
+ },
48
+ opal: {
49
+ dynamicColor: false,
50
+ hasModel: false,
51
+ source: "https://ejiidnob33g9ap1r.public.blob.vercel-storage.com/orb-1.2.riv",
52
+ },
53
+ };
54
+ const getCurrentTheme = () => {
55
+ if (typeof window !== "undefined") {
56
+ if (document.documentElement.classList.contains("dark")) {
57
+ return "dark";
58
+ }
59
+ if (window.matchMedia?.("(prefers-color-scheme: dark)").matches) {
60
+ return "dark";
61
+ }
62
+ }
63
+ return "light";
64
+ };
65
+ const useTheme = (enabled) => {
66
+ const [theme, setTheme] = useState(getCurrentTheme);
67
+ useEffect(() => {
68
+ // Skip if not enabled (avoids unnecessary observers for non-dynamic-color variants)
69
+ if (!enabled) {
70
+ return;
71
+ }
72
+ // Watch for classList changes
73
+ const observer = new MutationObserver(() => {
74
+ setTheme(getCurrentTheme());
75
+ });
76
+ observer.observe(document.documentElement, {
77
+ attributeFilter: ["class"],
78
+ attributes: true,
79
+ });
80
+ // Watch for OS-level theme changes
81
+ let mql = null;
82
+ const handleMediaChange = () => {
83
+ setTheme(getCurrentTheme());
84
+ };
85
+ if (window.matchMedia) {
86
+ mql = window.matchMedia("(prefers-color-scheme: dark)");
87
+ mql.addEventListener("change", handleMediaChange);
88
+ }
89
+ return () => {
90
+ observer.disconnect();
91
+ if (mql) {
92
+ mql.removeEventListener("change", handleMediaChange);
93
+ }
94
+ };
95
+ }, [enabled]);
96
+ return theme;
97
+ };
98
+ const PersonaWithModel = memo(({ rive, source, children }) => {
99
+ const theme = useTheme(source.dynamicColor);
100
+ const viewModel = useViewModel(rive, { useDefault: true });
101
+ const viewModelInstance = useViewModelInstance(viewModel, {
102
+ rive,
103
+ useDefault: true,
104
+ });
105
+ const viewModelInstanceColor = useViewModelInstanceColor("color", viewModelInstance);
106
+ useEffect(() => {
107
+ if (!(viewModelInstanceColor && source.dynamicColor)) {
108
+ return;
109
+ }
110
+ const [r, g, b] = theme === "dark" ? [255, 255, 255] : [0, 0, 0];
111
+ viewModelInstanceColor.setRgb(r, g, b);
112
+ }, [viewModelInstanceColor, theme, source.dynamicColor]);
113
+ return children;
114
+ });
115
+ PersonaWithModel.displayName = "PersonaWithModel";
116
+ const PersonaWithoutModel = memo(({ children }) => children);
117
+ PersonaWithoutModel.displayName = "PersonaWithoutModel";
118
+ export const Persona = memo(({ variant = "obsidian", state = "idle", onLoad, onLoadError, onReady, onPause, onPlay, onStop, className, }) => {
119
+ const source = sources[variant];
120
+ if (!source) {
121
+ throw new Error(`Invalid variant: ${variant}`);
122
+ }
123
+ // Stabilize callbacks to prevent useRive from reinitializing
124
+ const callbacksRef = useRef({
125
+ onLoad,
126
+ onLoadError,
127
+ onPause,
128
+ onPlay,
129
+ onReady,
130
+ onStop,
131
+ });
132
+ useEffect(() => {
133
+ callbacksRef.current = {
134
+ onLoad,
135
+ onLoadError,
136
+ onPause,
137
+ onPlay,
138
+ onReady,
139
+ onStop,
140
+ };
141
+ }, [onLoad, onLoadError, onPause, onPlay, onReady, onStop]);
142
+ const stableCallbacks = useMemo(() => ({
143
+ onLoad: ((loadedRive) => callbacksRef.current.onLoad?.(loadedRive)),
144
+ onLoadError: ((err) => callbacksRef.current.onLoadError?.(err)),
145
+ onPause: ((event) => callbacksRef.current.onPause?.(event)),
146
+ onPlay: ((event) => callbacksRef.current.onPlay?.(event)),
147
+ onReady: () => callbacksRef.current.onReady?.(),
148
+ onStop: ((event) => callbacksRef.current.onStop?.(event)),
149
+ }), []);
150
+ // Delay initialisation by one frame to avoid creating (and leaking)
151
+ // a WebGL2 context during React Strict Mode's first throw-away mount.
152
+ const ready = useStrictModeSafeInit();
153
+ const { rive, RiveComponent } = useRive(ready
154
+ ? {
155
+ autoplay: true,
156
+ onLoad: stableCallbacks.onLoad,
157
+ onLoadError: stableCallbacks.onLoadError,
158
+ onPause: stableCallbacks.onPause,
159
+ onPlay: stableCallbacks.onPlay,
160
+ onRiveReady: stableCallbacks.onReady,
161
+ onStop: stableCallbacks.onStop,
162
+ src: source.source,
163
+ stateMachines: stateMachine,
164
+ }
165
+ : null);
166
+ const listeningInput = useStateMachineInput(rive, stateMachine, "listening");
167
+ const thinkingInput = useStateMachineInput(rive, stateMachine, "thinking");
168
+ const speakingInput = useStateMachineInput(rive, stateMachine, "speaking");
169
+ const asleepInput = useStateMachineInput(rive, stateMachine, "asleep");
170
+ // Rive state machine inputs are mutable objects that must be set via direct
171
+ // property assignment — this is the intended Rive API, not a React anti-pattern.
172
+ useEffect(() => {
173
+ if (listeningInput) {
174
+ listeningInput.value = state === "listening";
175
+ }
176
+ if (thinkingInput) {
177
+ thinkingInput.value = state === "thinking";
178
+ }
179
+ if (speakingInput) {
180
+ speakingInput.value = state === "speaking";
181
+ }
182
+ if (asleepInput) {
183
+ asleepInput.value = state === "asleep";
184
+ }
185
+ }, [state, listeningInput, thinkingInput, speakingInput, asleepInput]);
186
+ const Component = source.hasModel ? PersonaWithModel : PersonaWithoutModel;
187
+ return (_jsx(Component, { rive: rive, source: source, children: _jsx(RiveComponent, { className: cn("size-16 shrink-0", className) }) }));
188
+ });
189
+ Persona.displayName = "Persona";
@@ -0,0 +1,26 @@
1
+ import { CardAction, CardContent, CardDescription, CardHeader, CardTitle } from "@chatsdk-dev/ui/atoms/card";
2
+ import { Collapsible, CollapsibleTrigger } from "@chatsdk-dev/ui/atoms/collapsible";
3
+ import type { ComponentProps } from "react";
4
+ export type PlanProps = ComponentProps<typeof Collapsible> & {
5
+ isStreaming?: boolean;
6
+ };
7
+ export declare const Plan: ({ className, isStreaming, children, ...props }: PlanProps) => import("react/jsx-runtime").JSX.Element;
8
+ export type PlanHeaderProps = ComponentProps<typeof CardHeader>;
9
+ export declare const PlanHeader: ({ className, ...props }: PlanHeaderProps) => import("react/jsx-runtime").JSX.Element;
10
+ export type PlanTitleProps = Omit<ComponentProps<typeof CardTitle>, "children"> & {
11
+ children: string;
12
+ };
13
+ export declare const PlanTitle: ({ children, ...props }: PlanTitleProps) => import("react/jsx-runtime").JSX.Element;
14
+ export type PlanDescriptionProps = Omit<ComponentProps<typeof CardDescription>, "children"> & {
15
+ children: string;
16
+ };
17
+ export declare const PlanDescription: ({ className, children, ...props }: PlanDescriptionProps) => import("react/jsx-runtime").JSX.Element;
18
+ export type PlanActionProps = ComponentProps<typeof CardAction>;
19
+ export declare const PlanAction: (props: PlanActionProps) => import("react/jsx-runtime").JSX.Element;
20
+ export type PlanContentProps = ComponentProps<typeof CardContent>;
21
+ export declare const PlanContent: (props: PlanContentProps) => import("react/jsx-runtime").JSX.Element;
22
+ export type PlanFooterProps = ComponentProps<"div">;
23
+ export declare const PlanFooter: (props: PlanFooterProps) => import("react/jsx-runtime").JSX.Element;
24
+ export type PlanTriggerProps = ComponentProps<typeof CollapsibleTrigger>;
25
+ export declare const PlanTrigger: ({ className, render, ...props }: PlanTriggerProps) => import("react/jsx-runtime").JSX.Element;
26
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/molecules/ai/plan.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,UAAU,EACV,WAAW,EACX,eAAe,EAEf,UAAU,EACV,SAAS,EACV,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,WAAW,EAEX,kBAAkB,EACnB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAmB5C,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,GAAG;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,IAAI,GAAI,gDAKlB,SAAS,4CAaX,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,CAAC;AAEhE,eAAO,MAAM,UAAU,GAAI,yBAAyB,eAAe,4CAMlE,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,cAAc,CAAC,OAAO,SAAS,CAAC,EAChC,UAAU,CACX,GAAG;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,wBAAwB,cAAc,4CAQ/D,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,cAAc,CAAC,OAAO,eAAe,CAAC,EACtC,UAAU,CACX,GAAG;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,mCAI7B,oBAAoB,4CAYtB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,CAAC;AAEhE,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,4CAEhD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC;AAElE,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,4CAKlD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAEpD,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,4CAEhD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEzE,eAAO,MAAM,WAAW,GAAI,iCAIzB,gBAAgB,4CAgBlB,CAAC"}
@@ -0,0 +1,34 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Button } from "@chatsdk-dev/ui/atoms/button";
4
+ import { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from "@chatsdk-dev/ui/atoms/card";
5
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "@chatsdk-dev/ui/atoms/collapsible";
6
+ import { cn } from "@chatsdk-dev/ui/lib/utils";
7
+ import { ChevronsUpDownIcon } from "lucide-react";
8
+ import { createContext, useContext, useMemo } from "react";
9
+ import { Shimmer } from "./shimmer";
10
+ const PlanContext = createContext(null);
11
+ const usePlan = () => {
12
+ const context = useContext(PlanContext);
13
+ if (!context) {
14
+ throw new Error("Plan components must be used within Plan");
15
+ }
16
+ return context;
17
+ };
18
+ export const Plan = ({ className, isStreaming = false, children, ...props }) => {
19
+ const contextValue = useMemo(() => ({ isStreaming }), [isStreaming]);
20
+ return (_jsx(PlanContext.Provider, { value: contextValue, children: _jsx(Collapsible, { ...props, render: () => (_jsx(Card, { className: cn("shadow-none", className), children: children })) }) }));
21
+ };
22
+ export const PlanHeader = ({ className, ...props }) => (_jsx(CardHeader, { className: cn("flex items-start justify-between", className), "data-slot": "plan-header", ...props }));
23
+ export const PlanTitle = ({ children, ...props }) => {
24
+ const { isStreaming } = usePlan();
25
+ return (_jsx(CardTitle, { "data-slot": "plan-title", ...props, children: isStreaming ? _jsx(Shimmer, { children: children }) : children }));
26
+ };
27
+ export const PlanDescription = ({ className, children, ...props }) => {
28
+ const { isStreaming } = usePlan();
29
+ return (_jsx(CardDescription, { className: cn("text-balance", className), "data-slot": "plan-description", ...props, children: isStreaming ? _jsx(Shimmer, { children: children }) : children }));
30
+ };
31
+ export const PlanAction = (props) => (_jsx(CardAction, { "data-slot": "plan-action", ...props }));
32
+ export const PlanContent = (props) => (_jsx(CollapsibleContent, { ...props, render: () => _jsx(CardContent, { "data-slot": "plan-content", ...props }) }));
33
+ export const PlanFooter = (props) => (_jsx(CardFooter, { "data-slot": "plan-footer", ...props }));
34
+ export const PlanTrigger = ({ className, render, ...props }) => (_jsx(CollapsibleTrigger, { ...props, render: () => (_jsxs(Button, { className: cn("size-8", className), "data-slot": "plan-trigger", size: "icon", variant: "ghost", ...props, children: [_jsx(ChevronsUpDownIcon, { className: "size-4" }), _jsx("span", { className: "sr-only", children: "Toggle plan" })] })) }));
@@ -0,0 +1,149 @@
1
+ import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator } from "@chatsdk-dev/ui/atoms/command";
2
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem } from "@chatsdk-dev/ui/atoms/dropdown-menu";
3
+ import { HoverCard, HoverCardContent, HoverCardTrigger } from "@chatsdk-dev/ui/atoms/hover-card";
4
+ import { InputGroupAddon, InputGroupButton, InputGroupTextarea } from "@chatsdk-dev/ui/atoms/input-group";
5
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@chatsdk-dev/ui/atoms/select";
6
+ import { TooltipContent } from "@chatsdk-dev/ui/atoms/tooltip";
7
+ import type { ChatStatus, FileUIPart, SourceDocumentUIPart } from "ai";
8
+ import type { ComponentProps, HTMLAttributes, PropsWithChildren, ReactNode, RefObject } from "react";
9
+ export interface AttachmentsContext {
10
+ files: (FileUIPart & {
11
+ id: string;
12
+ })[];
13
+ add: (files: File[] | FileList) => void;
14
+ remove: (id: string) => void;
15
+ clear: () => void;
16
+ openFileDialog: () => void;
17
+ fileInputRef: RefObject<HTMLInputElement | null>;
18
+ }
19
+ export interface TextInputContext {
20
+ value: string;
21
+ setInput: (v: string) => void;
22
+ clear: () => void;
23
+ }
24
+ export interface PromptInputControllerProps {
25
+ textInput: TextInputContext;
26
+ attachments: AttachmentsContext;
27
+ /** INTERNAL: Allows PromptInput to register its file textInput + "open" callback */
28
+ __registerFileInput: (ref: RefObject<HTMLInputElement | null>, open: () => void) => void;
29
+ }
30
+ export declare const usePromptInputController: () => PromptInputControllerProps;
31
+ export declare const useProviderAttachments: () => AttachmentsContext;
32
+ export type PromptInputProviderProps = PropsWithChildren<{
33
+ initialInput?: string;
34
+ }>;
35
+ /**
36
+ * Optional global provider that lifts PromptInput state outside of PromptInput.
37
+ * If you don't use it, PromptInput stays fully self-managed.
38
+ */
39
+ export declare const PromptInputProvider: ({ initialInput: initialTextInput, children, }: PromptInputProviderProps) => import("react/jsx-runtime").JSX.Element;
40
+ export declare const usePromptInputAttachments: () => AttachmentsContext;
41
+ export interface ReferencedSourcesContext {
42
+ sources: (SourceDocumentUIPart & {
43
+ id: string;
44
+ })[];
45
+ add: (sources: SourceDocumentUIPart[] | SourceDocumentUIPart) => void;
46
+ remove: (id: string) => void;
47
+ clear: () => void;
48
+ }
49
+ export declare const LocalReferencedSourcesContext: import("react").Context<ReferencedSourcesContext | null>;
50
+ export declare const usePromptInputReferencedSources: () => ReferencedSourcesContext;
51
+ export type PromptInputActionAddAttachmentsProps = ComponentProps<typeof DropdownMenuItem> & {
52
+ label?: string;
53
+ };
54
+ export declare const PromptInputActionAddAttachments: ({ label, ...props }: PromptInputActionAddAttachmentsProps) => import("react/jsx-runtime").JSX.Element;
55
+ export type PromptInputActionAddScreenshotProps = ComponentProps<typeof DropdownMenuItem> & {
56
+ label?: string;
57
+ };
58
+ export declare const PromptInputActionAddScreenshot: ({ label, onSelect, ...props }: PromptInputActionAddScreenshotProps) => import("react/jsx-runtime").JSX.Element;
59
+ export interface PromptInputMessage {
60
+ text: string;
61
+ files: FileUIPart[];
62
+ }
63
+ export type PromptInputProps = Omit<HTMLAttributes<HTMLFormElement>, "onSubmit" | "onError"> & {
64
+ accept?: string;
65
+ multiple?: boolean;
66
+ globalDrop?: boolean;
67
+ syncHiddenInput?: boolean;
68
+ maxFiles?: number;
69
+ maxFileSize?: number;
70
+ onError?: (err: {
71
+ code: "max_files" | "max_file_size" | "accept";
72
+ message: string;
73
+ }) => void;
74
+ onSubmit: (message: PromptInputMessage, event: React.SubmitEvent<HTMLFormElement>) => void | Promise<void>;
75
+ };
76
+ export declare const PromptInput: ({ className, accept, multiple, globalDrop, syncHiddenInput, maxFiles, maxFileSize, onError, onSubmit, children, ...props }: PromptInputProps) => import("react/jsx-runtime").JSX.Element;
77
+ export type PromptInputBodyProps = HTMLAttributes<HTMLDivElement>;
78
+ export declare const PromptInputBody: ({ className, ...props }: PromptInputBodyProps) => import("react/jsx-runtime").JSX.Element;
79
+ export type PromptInputTextareaProps = ComponentProps<typeof InputGroupTextarea>;
80
+ export declare const PromptInputTextarea: ({ onChange, onKeyDown, className, placeholder, ...props }: PromptInputTextareaProps) => import("react/jsx-runtime").JSX.Element;
81
+ export type PromptInputHeaderProps = Omit<ComponentProps<typeof InputGroupAddon>, "align">;
82
+ export declare const PromptInputHeader: ({ className, ...props }: PromptInputHeaderProps) => import("react/jsx-runtime").JSX.Element;
83
+ export type PromptInputFooterProps = Omit<ComponentProps<typeof InputGroupAddon>, "align">;
84
+ export declare const PromptInputFooter: ({ className, ...props }: PromptInputFooterProps) => import("react/jsx-runtime").JSX.Element;
85
+ export type PromptInputToolsProps = HTMLAttributes<HTMLDivElement>;
86
+ export declare const PromptInputTools: ({ className, ...props }: PromptInputToolsProps) => import("react/jsx-runtime").JSX.Element;
87
+ export type PromptInputButtonTooltip = string | {
88
+ content: ReactNode;
89
+ shortcut?: string;
90
+ side?: ComponentProps<typeof TooltipContent>["side"];
91
+ };
92
+ export type PromptInputButtonProps = ComponentProps<typeof InputGroupButton> & {
93
+ tooltip?: PromptInputButtonTooltip;
94
+ };
95
+ export declare const PromptInputButton: ({ variant, className, size, tooltip, ...props }: PromptInputButtonProps) => import("react/jsx-runtime").JSX.Element;
96
+ export type PromptInputActionMenuProps = ComponentProps<typeof DropdownMenu>;
97
+ export declare const PromptInputActionMenu: (props: PromptInputActionMenuProps) => import("react/jsx-runtime").JSX.Element;
98
+ export type PromptInputActionMenuTriggerProps = PromptInputButtonProps;
99
+ export declare const PromptInputActionMenuTrigger: ({ className, children, ...props }: PromptInputActionMenuTriggerProps) => import("react/jsx-runtime").JSX.Element;
100
+ export type PromptInputActionMenuContentProps = ComponentProps<typeof DropdownMenuContent>;
101
+ export declare const PromptInputActionMenuContent: ({ className, ...props }: PromptInputActionMenuContentProps) => import("react/jsx-runtime").JSX.Element;
102
+ export type PromptInputActionMenuItemProps = ComponentProps<typeof DropdownMenuItem>;
103
+ export declare const PromptInputActionMenuItem: ({ className, ...props }: PromptInputActionMenuItemProps) => import("react/jsx-runtime").JSX.Element;
104
+ export type PromptInputSubmitProps = ComponentProps<typeof InputGroupButton> & {
105
+ status?: ChatStatus;
106
+ onStop?: () => void;
107
+ };
108
+ export declare const PromptInputSubmit: ({ className, variant, size, status, onStop, onClick, children, ...props }: PromptInputSubmitProps) => import("react/jsx-runtime").JSX.Element;
109
+ export type PromptInputSelectProps = ComponentProps<typeof Select>;
110
+ export declare const PromptInputSelect: (props: PromptInputSelectProps) => import("react/jsx-runtime").JSX.Element;
111
+ export type PromptInputSelectTriggerProps = ComponentProps<typeof SelectTrigger>;
112
+ export declare const PromptInputSelectTrigger: ({ className, ...props }: PromptInputSelectTriggerProps) => import("react/jsx-runtime").JSX.Element;
113
+ export type PromptInputSelectContentProps = ComponentProps<typeof SelectContent>;
114
+ export declare const PromptInputSelectContent: ({ className, ...props }: PromptInputSelectContentProps) => import("react/jsx-runtime").JSX.Element;
115
+ export type PromptInputSelectItemProps = ComponentProps<typeof SelectItem>;
116
+ export declare const PromptInputSelectItem: ({ className, ...props }: PromptInputSelectItemProps) => import("react/jsx-runtime").JSX.Element;
117
+ export type PromptInputSelectValueProps = ComponentProps<typeof SelectValue>;
118
+ export declare const PromptInputSelectValue: ({ className, ...props }: PromptInputSelectValueProps) => import("react/jsx-runtime").JSX.Element;
119
+ export type PromptInputHoverCardProps = ComponentProps<typeof HoverCard>;
120
+ export declare const PromptInputHoverCard: ({ ...props }: PromptInputHoverCardProps) => import("react/jsx-runtime").JSX.Element;
121
+ export type PromptInputHoverCardTriggerProps = ComponentProps<typeof HoverCardTrigger>;
122
+ export declare const PromptInputHoverCardTrigger: (props: PromptInputHoverCardTriggerProps) => import("react/jsx-runtime").JSX.Element;
123
+ export type PromptInputHoverCardContentProps = ComponentProps<typeof HoverCardContent>;
124
+ export declare const PromptInputHoverCardContent: ({ align, ...props }: PromptInputHoverCardContentProps) => import("react/jsx-runtime").JSX.Element;
125
+ export type PromptInputTabsListProps = HTMLAttributes<HTMLDivElement>;
126
+ export declare const PromptInputTabsList: ({ className, ...props }: PromptInputTabsListProps) => import("react/jsx-runtime").JSX.Element;
127
+ export type PromptInputTabProps = HTMLAttributes<HTMLDivElement>;
128
+ export declare const PromptInputTab: ({ className, ...props }: PromptInputTabProps) => import("react/jsx-runtime").JSX.Element;
129
+ export type PromptInputTabLabelProps = HTMLAttributes<HTMLHeadingElement>;
130
+ export declare const PromptInputTabLabel: ({ className, ...props }: PromptInputTabLabelProps) => import("react/jsx-runtime").JSX.Element;
131
+ export type PromptInputTabBodyProps = HTMLAttributes<HTMLDivElement>;
132
+ export declare const PromptInputTabBody: ({ className, ...props }: PromptInputTabBodyProps) => import("react/jsx-runtime").JSX.Element;
133
+ export type PromptInputTabItemProps = HTMLAttributes<HTMLDivElement>;
134
+ export declare const PromptInputTabItem: ({ className, ...props }: PromptInputTabItemProps) => import("react/jsx-runtime").JSX.Element;
135
+ export type PromptInputCommandProps = ComponentProps<typeof Command>;
136
+ export declare const PromptInputCommand: ({ className, ...props }: PromptInputCommandProps) => import("react/jsx-runtime").JSX.Element;
137
+ export type PromptInputCommandInputProps = ComponentProps<typeof CommandInput>;
138
+ export declare const PromptInputCommandInput: ({ className, ...props }: PromptInputCommandInputProps) => import("react/jsx-runtime").JSX.Element;
139
+ export type PromptInputCommandListProps = ComponentProps<typeof CommandList>;
140
+ export declare const PromptInputCommandList: ({ className, ...props }: PromptInputCommandListProps) => import("react/jsx-runtime").JSX.Element;
141
+ export type PromptInputCommandEmptyProps = ComponentProps<typeof CommandEmpty>;
142
+ export declare const PromptInputCommandEmpty: ({ className, ...props }: PromptInputCommandEmptyProps) => import("react/jsx-runtime").JSX.Element;
143
+ export type PromptInputCommandGroupProps = ComponentProps<typeof CommandGroup>;
144
+ export declare const PromptInputCommandGroup: ({ className, ...props }: PromptInputCommandGroupProps) => import("react/jsx-runtime").JSX.Element;
145
+ export type PromptInputCommandItemProps = ComponentProps<typeof CommandItem>;
146
+ export declare const PromptInputCommandItem: ({ className, ...props }: PromptInputCommandItemProps) => import("react/jsx-runtime").JSX.Element;
147
+ export type PromptInputCommandSeparatorProps = ComponentProps<typeof CommandSeparator>;
148
+ export declare const PromptInputCommandSeparator: ({ className, ...props }: PromptInputCommandSeparatorProps) => import("react/jsx-runtime").JSX.Element;
149
+ //# sourceMappingURL=prompt-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-input.d.ts","sourceRoot":"","sources":["../../../src/molecules/ai/prompt-input.tsx"],"names":[],"mappings":"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"}