@kitn.ai/ui 0.16.0 → 0.18.0

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 (493) hide show
  1. package/README.md +55 -17
  2. package/dist/components/artifact.d.ts +39 -1
  3. package/dist/components/attachment-types.d.ts +12 -0
  4. package/dist/components/attachments.d.ts +2 -10
  5. package/dist/components/card.d.ts +27 -0
  6. package/dist/components/chain-of-thought.d.ts +78 -2
  7. package/dist/components/chat-scope-picker.d.ts +7 -0
  8. package/dist/components/chat-thread.d.ts +39 -16
  9. package/dist/components/choice-card.d.ts +27 -0
  10. package/dist/components/coachmark.d.ts +49 -0
  11. package/dist/components/composer-dom.d.ts +35 -0
  12. package/dist/components/composer-highlight.d.ts +48 -0
  13. package/dist/components/composer-history.d.ts +34 -0
  14. package/dist/components/composer.d.ts +86 -0
  15. package/dist/components/confirm-card.d.ts +17 -0
  16. package/dist/components/conversation-item.d.ts +9 -0
  17. package/dist/components/conversation-list.d.ts +36 -1
  18. package/dist/components/dismissed-stub.d.ts +22 -0
  19. package/dist/components/file-tree.d.ts +15 -0
  20. package/dist/components/form.d.ts +34 -0
  21. package/dist/components/markdown.d.ts +3 -0
  22. package/dist/components/message.d.ts +71 -2
  23. package/dist/components/model-switcher.d.ts +7 -0
  24. package/dist/components/prompt-input.d.ts +13 -4
  25. package/dist/components/prompt-suggestion.d.ts +9 -1
  26. package/dist/components/reasoning.d.ts +14 -1
  27. package/dist/components/response-compare-types.d.ts +66 -0
  28. package/dist/components/response-compare.d.ts +65 -0
  29. package/dist/components/screen.d.ts +46 -0
  30. package/dist/components/tasks-card.d.ts +50 -1
  31. package/dist/components/toast.d.ts +58 -0
  32. package/dist/components/tool-types.d.ts +10 -0
  33. package/dist/components/tool.d.ts +8 -8
  34. package/dist/components/use-card-resolution.d.ts +10 -6
  35. package/dist/components/voice-input.d.ts +27 -0
  36. package/dist/components/voice-output.d.ts +33 -0
  37. package/dist/core-C8fzo39E.js +12 -0
  38. package/dist/custom-elements.json +8472 -1691
  39. package/dist/elements/agent-card.d.ts +1 -0
  40. package/dist/elements/agent-card.js +1 -0
  41. package/dist/elements/artifact.js +1 -0
  42. package/dist/elements/attachments.js +1 -0
  43. package/dist/elements/autoloader.d.ts +2 -0
  44. package/dist/elements/autoloader.js +1 -0
  45. package/dist/elements/avatar.d.ts +1 -0
  46. package/dist/elements/avatar.js +1 -0
  47. package/dist/elements/badge.d.ts +1 -0
  48. package/dist/elements/badge.js +1 -0
  49. package/dist/elements/button.d.ts +1 -0
  50. package/dist/elements/button.js +1 -0
  51. package/dist/elements/card.js +1 -0
  52. package/dist/elements/cards.d.ts +1 -0
  53. package/dist/elements/cards.js +1 -0
  54. package/dist/elements/chain-of-thought.d.ts +0 -12
  55. package/dist/elements/chain-of-thought.js +1 -0
  56. package/dist/elements/chat-scope-picker.js +1 -0
  57. package/dist/elements/chat-types.d.ts +8 -2
  58. package/dist/elements/chat-workspace.js +1 -0
  59. package/dist/elements/chat.js +1 -0
  60. package/dist/elements/checkpoint.js +1 -0
  61. package/dist/elements/choice.js +1 -0
  62. package/dist/elements/chunks/Icon-DLLBeLG5.js +1 -0
  63. package/dist/elements/chunks/action-icons-UB4V5FNq.js +1 -0
  64. package/dist/elements/chunks/arrow-left-C-gwlUmx.js +1 -0
  65. package/dist/elements/chunks/attachments-CgbErf1r.js +1 -0
  66. package/dist/elements/chunks/badge-DTQpgB6N.js +1 -0
  67. package/dist/elements/chunks/bash-InADTalH.js +1 -0
  68. package/dist/elements/chunks/button-XDUM6lXs.js +1 -0
  69. package/dist/elements/chunks/card-CBlFZ-7I.js +1 -0
  70. package/dist/elements/chunks/card-routing-C986KuUA.js +1 -0
  71. package/dist/elements/chunks/chat-thread-BIhmqwNL.js +1 -0
  72. package/dist/elements/chunks/check-hGUoVIKb.js +1 -0
  73. package/dist/elements/chunks/chevron-down-DDoaSUtO.js +1 -0
  74. package/dist/elements/chunks/chevron-right-CdGEUakB.js +1 -0
  75. package/dist/elements/chunks/circle-BKAZdmzb.js +1 -0
  76. package/dist/elements/chunks/circle-check-CmYG-y3I.js +1 -0
  77. package/dist/elements/chunks/circle-x-DewgAEym.js +1 -0
  78. package/dist/elements/chunks/cn-CU7UAWzk.js +1 -0
  79. package/dist/elements/chunks/code-block-DedwxwFI.js +1 -0
  80. package/dist/elements/chunks/collapsible-FfgmTHtM.js +1 -0
  81. package/dist/elements/chunks/composer-Cfbw5HKT.js +65 -0
  82. package/dist/elements/chunks/context-DwJmxlRE.js +1 -0
  83. package/dist/elements/chunks/conversation-list-DsCQMfPq.js +1 -0
  84. package/dist/elements/chunks/core-AYMC6_lb.js +12 -0
  85. package/dist/elements/chunks/css-M7EaDHN_.js +1 -0
  86. package/dist/elements/chunks/default-input-BuqsoENC.js +1 -0
  87. package/dist/elements/chunks/define-rGsaWsLL.js +1 -0
  88. package/dist/elements/chunks/disclosure-CwoAkpMH.js +1 -0
  89. package/dist/elements/chunks/download-DJ06G3Bz.js +1 -0
  90. package/dist/elements/chunks/dropdown-BFg8ri_R.js +1 -0
  91. package/dist/elements/chunks/ellipsis-dlN6YvGw.js +1 -0
  92. package/dist/elements/chunks/engine-javascript-vq0WuIJl.js +141 -0
  93. package/dist/elements/chunks/external-link-DBX2lc_R.js +1 -0
  94. package/dist/elements/chunks/file-text-HfwUx4F9.js +1 -0
  95. package/dist/elements/chunks/file-tree-C6Toj71u.js +1 -0
  96. package/dist/elements/chunks/folder-MYuqa9Xp.js +1 -0
  97. package/dist/elements/chunks/github-dark-dimmed-DUshB20C.js +1 -0
  98. package/dist/elements/chunks/github-light-JYsPkUQd.js +1 -0
  99. package/dist/elements/chunks/hover-card-gE7iyXdW.js +1 -0
  100. package/dist/elements/chunks/html-CPZ3oZQ7.js +1 -0
  101. package/dist/elements/chunks/icon-Vqz4ivrY.js +1 -0
  102. package/dist/elements/chunks/index-BCRhi84a.js +1 -0
  103. package/dist/elements/chunks/info-B_toFS0l.js +1 -0
  104. package/dist/elements/chunks/input-gzbHYZvQ.js +1 -0
  105. package/dist/elements/chunks/javascript-C25yR2R2.js +1 -0
  106. package/dist/elements/chunks/json-DxJze_jm.js +1 -0
  107. package/dist/elements/chunks/kbd-n49c4KZm.js +1 -0
  108. package/dist/elements/chunks/link-CKPs9yM0.js +1 -0
  109. package/dist/elements/chunks/loader-q6MamGus.js +1 -0
  110. package/dist/elements/chunks/markdown-DBrcqq4S.js +64 -0
  111. package/dist/elements/chunks/message-CTqaYI0s.js +1 -0
  112. package/dist/elements/chunks/message-feedback-Cvzm03w0.js +1 -0
  113. package/dist/elements/chunks/message-square-CUg9eRCi.js +1 -0
  114. package/dist/elements/chunks/minimize-2-l2klxP6K.js +1 -0
  115. package/dist/elements/chunks/model-switcher-CmyjiHO1.js +1 -0
  116. package/dist/elements/chunks/overlay-C8sOYqjT.js +1 -0
  117. package/dist/elements/chunks/paperclip-42Ia7xHD.js +1 -0
  118. package/dist/elements/chunks/progress-bar-tzKMWAwO.js +1 -0
  119. package/dist/elements/chunks/prompt-suggestion-D3F6vP_A.js +1 -0
  120. package/dist/elements/chunks/reasoning-BJNmmyov.js +1 -0
  121. package/dist/elements/chunks/resizable-BRsk19qI.js +1 -0
  122. package/dist/elements/chunks/rotate-cw-BgcggLHC.js +1 -0
  123. package/dist/elements/chunks/scroll-area-CgGbFFbT.js +1 -0
  124. package/dist/elements/chunks/separator-8hM4GdHE.js +1 -0
  125. package/dist/elements/chunks/settings-CaUIYOg-.js +1 -0
  126. package/dist/elements/chunks/settings-group-CYjOVIZQ.js +1 -0
  127. package/dist/elements/chunks/share-BTYM3Ddt.js +1 -0
  128. package/dist/elements/chunks/skeleton-DsTYrPUe.js +1 -0
  129. package/dist/elements/chunks/slots-DkZ-Cmha.js +1 -0
  130. package/dist/elements/chunks/star-9R3LBQ9n.js +1 -0
  131. package/dist/elements/chunks/store-CYl5Y0_u.js +1 -0
  132. package/dist/elements/chunks/svelte--5p79yCD.js +1 -0
  133. package/dist/elements/chunks/text-shimmer-CaYGv8Se.js +1 -0
  134. package/dist/elements/chunks/textarea-NEr2SLcD.js +1 -0
  135. package/dist/elements/chunks/thumbs-up-DZYZkFfc.js +1 -0
  136. package/dist/elements/chunks/toast-store-ClxVZRcc.js +1 -0
  137. package/dist/elements/chunks/tool-CHZOmoe9.js +1 -0
  138. package/dist/elements/chunks/tooltip-WpHElELC.js +1 -0
  139. package/dist/elements/chunks/triangle-alert-BlS80PUg.js +1 -0
  140. package/dist/elements/chunks/tsx-B8rCNbgL.js +1 -0
  141. package/dist/elements/chunks/typescript-RycA9KXf.js +1 -0
  142. package/dist/elements/chunks/use-card-resolution-VSVoxDeJ.js +1 -0
  143. package/dist/elements/chunks/video-DxTPZqT8.js +1 -0
  144. package/dist/elements/chunks/vue-BmIZj4XD.js +1 -0
  145. package/dist/elements/chunks/x-C1qtndxn.js +1 -0
  146. package/dist/elements/coachmark.d.ts +1 -0
  147. package/dist/elements/coachmark.js +1 -0
  148. package/dist/elements/code-block.js +1 -0
  149. package/dist/elements/command.d.ts +1 -0
  150. package/dist/elements/command.js +1 -0
  151. package/dist/elements/compare.d.ts +1 -0
  152. package/dist/elements/compare.js +1 -0
  153. package/dist/elements/composer.d.ts +1 -0
  154. package/dist/elements/composer.js +1 -0
  155. package/dist/elements/confirm-card.js +1 -0
  156. package/dist/elements/context-meter.js +1 -0
  157. package/dist/elements/conversation-list.d.ts +1 -11
  158. package/dist/elements/conversation-list.js +1 -0
  159. package/dist/elements/default-input.d.ts +20 -9
  160. package/dist/elements/define.d.ts +11 -0
  161. package/dist/elements/dialog.d.ts +1 -0
  162. package/dist/elements/dialog.js +1 -0
  163. package/dist/elements/disclosure.d.ts +37 -0
  164. package/dist/elements/editable-label.d.ts +1 -0
  165. package/dist/elements/editable-label.js +1 -0
  166. package/dist/elements/embed.js +1 -0
  167. package/dist/elements/empty.js +1 -0
  168. package/dist/elements/feedback-bar.js +1 -0
  169. package/dist/elements/file-tree.js +1 -0
  170. package/dist/elements/file-upload.js +1 -0
  171. package/dist/elements/form.js +1 -0
  172. package/dist/elements/hover-card.d.ts +1 -0
  173. package/dist/elements/hover-card.js +1 -0
  174. package/dist/elements/icon.d.ts +1 -0
  175. package/dist/elements/icon.js +1 -0
  176. package/dist/elements/image.js +1 -0
  177. package/dist/elements/input.d.ts +1 -0
  178. package/dist/elements/input.js +1 -0
  179. package/dist/elements/kbd.d.ts +1 -0
  180. package/dist/elements/kbd.js +1 -0
  181. package/dist/elements/link-preview.js +1 -0
  182. package/dist/elements/loader.js +1 -0
  183. package/dist/elements/markdown.js +1 -0
  184. package/dist/elements/menu.d.ts +1 -0
  185. package/dist/elements/menu.js +1 -0
  186. package/dist/elements/message-skills.d.ts +0 -16
  187. package/dist/elements/message-skills.js +1 -0
  188. package/dist/elements/message.js +1 -0
  189. package/dist/elements/model-switcher.d.ts +1 -11
  190. package/dist/elements/model-switcher.js +1 -0
  191. package/dist/elements/nav.d.ts +1 -0
  192. package/dist/elements/nav.js +1 -0
  193. package/dist/elements/notice.d.ts +1 -0
  194. package/dist/elements/notice.js +1 -0
  195. package/dist/elements/pane-group.d.ts +1 -0
  196. package/dist/elements/pane-group.js +1 -0
  197. package/dist/elements/pane.d.ts +1 -0
  198. package/dist/elements/pane.js +1 -0
  199. package/dist/elements/popover.js +1 -0
  200. package/dist/elements/progress-bar.d.ts +1 -0
  201. package/dist/elements/progress-bar.js +1 -0
  202. package/dist/elements/prompt-dock.d.ts +1 -0
  203. package/dist/elements/prompt-dock.js +1 -0
  204. package/dist/elements/prompt-input.d.ts +1 -9
  205. package/dist/elements/prompt-input.js +1 -0
  206. package/dist/elements/prompt-suggestions.d.ts +0 -6
  207. package/dist/elements/prompt-suggestions.js +1 -0
  208. package/dist/elements/reasoning.js +1 -0
  209. package/dist/elements/register.d.ts +10 -0
  210. package/dist/elements/remote.js +1 -0
  211. package/dist/elements/resizable.d.ts +1 -17
  212. package/dist/elements/resizable.js +1 -0
  213. package/dist/elements/response-stream.js +14 -0
  214. package/dist/elements/screen.d.ts +1 -0
  215. package/dist/elements/screen.js +1 -0
  216. package/dist/elements/scroll-area.d.ts +1 -0
  217. package/dist/elements/scroll-area.js +1 -0
  218. package/dist/elements/scroll-button.js +1 -0
  219. package/dist/elements/search.d.ts +1 -0
  220. package/dist/elements/search.js +1 -0
  221. package/dist/elements/segmented.d.ts +1 -0
  222. package/dist/elements/segmented.js +1 -0
  223. package/dist/elements/separator.d.ts +1 -0
  224. package/dist/elements/separator.js +1 -0
  225. package/dist/elements/setting-item.d.ts +1 -0
  226. package/dist/elements/setting-item.js +1 -0
  227. package/dist/elements/settings-group.d.ts +1 -0
  228. package/dist/elements/settings-group.js +1 -0
  229. package/dist/elements/skeleton.d.ts +1 -0
  230. package/dist/elements/skeleton.js +1 -0
  231. package/dist/elements/slots.d.ts +176 -0
  232. package/dist/elements/source.d.ts +0 -17
  233. package/dist/elements/source.js +1 -0
  234. package/dist/elements/status.d.ts +1 -0
  235. package/dist/elements/status.js +1 -0
  236. package/dist/elements/switch.js +1 -0
  237. package/dist/elements/tabs.d.ts +1 -0
  238. package/dist/elements/tabs.js +1 -0
  239. package/dist/elements/tasks.js +1 -0
  240. package/dist/elements/text-shimmer.js +1 -0
  241. package/dist/elements/thinking-bar.js +1 -0
  242. package/dist/elements/toast.d.ts +1 -0
  243. package/dist/elements/toast.js +1 -0
  244. package/dist/elements/tool.js +1 -0
  245. package/dist/elements/tooltip.d.ts +1 -0
  246. package/dist/elements/tooltip.js +1 -0
  247. package/dist/elements/voice-input.js +1 -0
  248. package/dist/elements/voice-output.d.ts +1 -0
  249. package/dist/elements/voice-output.js +1 -0
  250. package/dist/elements.d.ts +772 -61
  251. package/dist/engine-javascript-C1x7zo1_.js +141 -0
  252. package/dist/index.d.ts +15 -2
  253. package/dist/index.js +14405 -9810
  254. package/dist/kai.es.js +1 -0
  255. package/dist/llms/llms-full.txt +1234 -107
  256. package/dist/llms/llms.txt +4 -4
  257. package/dist/mcp.es.js +217 -6
  258. package/dist/primitives/card-contract.d.ts +20 -4
  259. package/dist/primitives/card-recovery.d.ts +55 -0
  260. package/dist/primitives/composer-model.d.ts +22 -0
  261. package/dist/primitives/composer-triggers.d.ts +19 -0
  262. package/dist/primitives/create-kai-chat.d.ts +38 -0
  263. package/dist/primitives/message-feedback.d.ts +35 -0
  264. package/dist/primitives/toast-store.d.ts +118 -0
  265. package/dist/primitives/use-speech-recognition.d.ts +26 -0
  266. package/dist/react/index.d.ts +1166 -98
  267. package/dist/react/runtime.d.ts +9 -2
  268. package/dist/react/use-kai-chat.d.ts +41 -0
  269. package/dist/react.js +575 -186
  270. package/dist/register-impl-CYWGkgbI.js +141 -0
  271. package/dist/schemas/choice.schema.json +5 -0
  272. package/dist/schemas/tasks.schema.json +7 -2
  273. package/dist/state/index.d.ts +4 -0
  274. package/dist/state/messages.d.ts +11 -0
  275. package/dist/state/stream.d.ts +22 -0
  276. package/dist/state/suggestions.d.ts +4 -0
  277. package/dist/state.js +117 -0
  278. package/dist/theme.tokens.css +87 -0
  279. package/dist/types.d.ts +4 -0
  280. package/dist/ui/agent-card.d.ts +61 -0
  281. package/dist/ui/button.d.ts +5 -2
  282. package/dist/ui/card.d.ts +61 -0
  283. package/dist/ui/collapsible.d.ts +15 -1
  284. package/dist/ui/command.d.ts +33 -0
  285. package/dist/ui/dialog.d.ts +42 -0
  286. package/dist/ui/dropdown.d.ts +95 -1
  287. package/dist/ui/editable-label.d.ts +26 -0
  288. package/dist/ui/hover-card.d.ts +13 -1
  289. package/dist/ui/icon.d.ts +18 -0
  290. package/dist/ui/input.d.ts +33 -0
  291. package/dist/ui/kbd.d.ts +21 -0
  292. package/dist/ui/nav.d.ts +62 -0
  293. package/dist/ui/notice.d.ts +31 -0
  294. package/dist/ui/overlay.d.ts +12 -0
  295. package/dist/ui/pane-grid.d.ts +58 -0
  296. package/dist/ui/pane-group.d.ts +75 -0
  297. package/dist/ui/pane.d.ts +78 -0
  298. package/dist/ui/popover.d.ts +11 -1
  299. package/dist/ui/progress-bar.d.ts +23 -0
  300. package/dist/ui/prompt-dock.d.ts +96 -0
  301. package/dist/ui/resizable.d.ts +12 -0
  302. package/dist/ui/scroll-area.d.ts +4 -0
  303. package/dist/ui/segmented.d.ts +28 -0
  304. package/dist/ui/settings-group.d.ts +32 -0
  305. package/dist/ui/skeleton.d.ts +12 -0
  306. package/dist/ui/stat.d.ts +16 -0
  307. package/dist/ui/status.d.ts +13 -0
  308. package/dist/ui/switch.d.ts +8 -1
  309. package/dist/ui/tabs.d.ts +35 -0
  310. package/dist/ui/tooltip.d.ts +20 -1
  311. package/frameworks/react/index.tsx +1100 -163
  312. package/frameworks/react/runtime.tsx +30 -1
  313. package/frameworks/react/use-kai-chat.tsx +87 -0
  314. package/llms-full.txt +1234 -107
  315. package/llms.txt +4 -4
  316. package/package.json +36 -12
  317. package/src/agent-tooling/mcp/manifest.ts +14 -0
  318. package/src/agent-tooling/mcp/tools/debug.ts +194 -6
  319. package/src/agent-tooling/mcp/tools/reference.ts +32 -0
  320. package/src/agent-tooling/mcp/tools/scaffold.ts +162 -1
  321. package/src/components/artifact.tsx +98 -13
  322. package/src/components/attachment-types.ts +13 -0
  323. package/src/components/attachments.tsx +4 -14
  324. package/src/components/card.tsx +109 -15
  325. package/src/components/chain-of-thought.tsx +210 -1
  326. package/src/components/chat-scope-picker.tsx +13 -3
  327. package/src/components/chat-thread.tsx +238 -137
  328. package/src/components/choice-card.tsx +136 -15
  329. package/src/components/coachmark.tsx +245 -0
  330. package/src/components/component-meta.json +921 -108
  331. package/src/components/composer-dom.ts +159 -0
  332. package/src/components/composer-highlight.ts +242 -0
  333. package/src/components/composer-history.ts +82 -0
  334. package/src/components/composer.tsx +979 -0
  335. package/src/components/confirm-card.tsx +69 -2
  336. package/src/components/conversation-item.tsx +69 -7
  337. package/src/components/conversation-list.tsx +134 -37
  338. package/src/components/dismissed-stub.tsx +80 -0
  339. package/src/components/file-tree.tsx +197 -47
  340. package/src/components/form-widgets.tsx +9 -7
  341. package/src/components/form.tsx +161 -20
  342. package/src/components/image.tsx +3 -5
  343. package/src/components/link-preview.tsx +5 -4
  344. package/src/components/markdown.tsx +5 -2
  345. package/src/components/message.tsx +174 -14
  346. package/src/components/model-switcher.tsx +19 -4
  347. package/src/components/prompt-input.tsx +46 -75
  348. package/src/components/prompt-suggestion.tsx +48 -16
  349. package/src/components/reasoning.tsx +29 -6
  350. package/src/components/response-compare-types.ts +127 -0
  351. package/src/components/response-compare.tsx +460 -0
  352. package/src/components/screen.tsx +176 -0
  353. package/src/components/tasks-card.tsx +374 -23
  354. package/src/components/toast.tsx +486 -0
  355. package/src/components/tool-types.ts +10 -0
  356. package/src/components/tool.tsx +22 -16
  357. package/src/components/use-card-resolution.ts +24 -8
  358. package/src/components/voice-input.tsx +102 -19
  359. package/src/components/voice-output.tsx +202 -0
  360. package/src/elements/agent-card.tsx +67 -0
  361. package/src/elements/artifact.tsx +53 -4
  362. package/src/elements/attachments.tsx +1 -0
  363. package/src/elements/autoloader.ts +89 -0
  364. package/src/elements/avatar.tsx +33 -0
  365. package/src/elements/badge.tsx +32 -0
  366. package/src/elements/button.tsx +126 -0
  367. package/src/elements/card-media.jpg +0 -0
  368. package/src/elements/card.tsx +124 -31
  369. package/src/elements/cards.tsx +81 -7
  370. package/src/elements/chain-of-thought.tsx +77 -32
  371. package/src/elements/chat-scope-picker.tsx +35 -8
  372. package/src/elements/chat-types.ts +9 -2
  373. package/src/elements/chat-workspace.tsx +157 -43
  374. package/src/elements/chat.tsx +49 -25
  375. package/src/elements/choice.tsx +71 -19
  376. package/src/elements/coachmark.tsx +90 -0
  377. package/src/elements/command.tsx +209 -0
  378. package/src/elements/compare.tsx +110 -0
  379. package/src/elements/compiled.css +1 -1
  380. package/src/elements/composer.tsx +151 -0
  381. package/src/elements/confirm-card.tsx +36 -11
  382. package/src/elements/conversation-list.tsx +80 -11
  383. package/src/elements/default-input.tsx +75 -53
  384. package/src/elements/define.tsx +47 -6
  385. package/src/elements/dialog.tsx +98 -0
  386. package/src/elements/disclosure.ts +73 -0
  387. package/src/elements/editable-label.tsx +125 -0
  388. package/src/elements/element-manifest.json +310 -0
  389. package/src/elements/element-meta.json +5954 -1605
  390. package/src/elements/element-types.d.ts +771 -60
  391. package/src/elements/file-tree.tsx +12 -2
  392. package/src/elements/file-upload.tsx +1 -1
  393. package/src/elements/form.tsx +54 -11
  394. package/src/elements/hover-card.tsx +80 -0
  395. package/src/elements/icon-names.json +48 -0
  396. package/src/elements/icon.tsx +41 -0
  397. package/src/elements/input.tsx +203 -0
  398. package/src/elements/kbd.tsx +45 -0
  399. package/src/elements/menu.tsx +217 -0
  400. package/src/elements/message.tsx +84 -55
  401. package/src/elements/model-switcher.tsx +27 -1
  402. package/src/elements/nav.tsx +87 -0
  403. package/src/elements/notice.tsx +53 -0
  404. package/src/elements/pane-group.tsx +119 -0
  405. package/src/elements/pane.tsx +129 -0
  406. package/src/elements/popover.tsx +39 -17
  407. package/src/elements/progress-bar.tsx +39 -0
  408. package/src/elements/prompt-dock.tsx +81 -0
  409. package/src/elements/prompt-input.tsx +112 -63
  410. package/src/elements/prompt-suggestions.tsx +25 -9
  411. package/src/elements/reasoning.tsx +30 -9
  412. package/src/elements/register-impl.ts +41 -3
  413. package/src/elements/register.ts +20 -3
  414. package/src/elements/remote.tsx +4 -0
  415. package/src/elements/resizable.tsx +48 -11
  416. package/src/elements/screen.tsx +90 -0
  417. package/src/elements/scroll-area.tsx +33 -0
  418. package/src/elements/search.tsx +180 -0
  419. package/src/elements/segmented.tsx +135 -0
  420. package/src/elements/separator.tsx +36 -0
  421. package/src/elements/setting-item.tsx +50 -0
  422. package/src/elements/settings-group.tsx +37 -0
  423. package/src/elements/skeleton.tsx +45 -0
  424. package/src/elements/slots.ts +607 -0
  425. package/src/elements/source.tsx +13 -6
  426. package/src/elements/status.tsx +42 -0
  427. package/src/elements/styles.css +19 -0
  428. package/src/elements/switch.tsx +89 -14
  429. package/src/elements/tabs.tsx +95 -0
  430. package/src/elements/tasks.tsx +70 -14
  431. package/src/elements/toast.tsx +89 -0
  432. package/src/elements/tool.tsx +43 -9
  433. package/src/elements/tooltip.tsx +85 -0
  434. package/src/elements/video-poster.jpg +0 -0
  435. package/src/elements/voice-input.tsx +66 -16
  436. package/src/elements/voice-output.tsx +69 -0
  437. package/src/index.ts +35 -2
  438. package/src/primitives/card-contract.ts +14 -5
  439. package/src/primitives/card-recovery.ts +149 -0
  440. package/src/primitives/card-routing.ts +3 -0
  441. package/src/primitives/card-schemas/choice.schema.json +5 -0
  442. package/src/primitives/card-schemas/tasks.schema.json +7 -2
  443. package/src/primitives/composer-model.ts +49 -0
  444. package/src/primitives/composer-triggers.ts +35 -0
  445. package/src/primitives/create-kai-chat.ts +66 -0
  446. package/src/primitives/message-feedback.ts +123 -0
  447. package/src/primitives/toast-store.ts +276 -0
  448. package/src/primitives/use-speech-recognition.ts +135 -0
  449. package/src/state/index.ts +6 -0
  450. package/src/state/messages.ts +36 -0
  451. package/src/state/stream.ts +92 -0
  452. package/src/state/suggestions.ts +9 -0
  453. package/src/types.ts +4 -0
  454. package/src/ui/agent-card.tsx +212 -0
  455. package/src/ui/button.tsx +16 -5
  456. package/src/ui/card.tsx +245 -0
  457. package/src/ui/collapsible.tsx +30 -4
  458. package/src/ui/command.tsx +99 -0
  459. package/src/ui/dialog.tsx +217 -0
  460. package/src/ui/dropdown.tsx +375 -13
  461. package/src/ui/editable-label.tsx +112 -0
  462. package/src/ui/hover-card.tsx +28 -5
  463. package/src/ui/icon.tsx +110 -0
  464. package/src/ui/input.tsx +132 -0
  465. package/src/ui/kbd.tsx +118 -0
  466. package/src/ui/nav.tsx +282 -0
  467. package/src/ui/notice.tsx +84 -0
  468. package/src/ui/overlay.tsx +108 -2
  469. package/src/ui/pane-grid.tsx +116 -0
  470. package/src/ui/pane-group.tsx +280 -0
  471. package/src/ui/pane.tsx +193 -0
  472. package/src/ui/popover.tsx +16 -2
  473. package/src/ui/progress-bar.tsx +83 -0
  474. package/src/ui/prompt-dock.tsx +145 -0
  475. package/src/ui/resizable.tsx +69 -1
  476. package/src/ui/scroll-area.tsx +14 -3
  477. package/src/ui/segmented.tsx +109 -0
  478. package/src/ui/settings-group.tsx +67 -0
  479. package/src/ui/skeleton.tsx +62 -5
  480. package/src/ui/stat.tsx +41 -0
  481. package/src/ui/status.tsx +48 -0
  482. package/src/ui/switch.tsx +49 -23
  483. package/src/ui/tabs.tsx +168 -0
  484. package/src/ui/tooltip.tsx +57 -7
  485. package/theme.css +113 -0
  486. package/dist/components/slash-command.d.ts +0 -15
  487. package/dist/kitn-chat.es.js +0 -1
  488. package/dist/register-impl-wCsFPoh9.js +0 -77
  489. package/dist/register-ujhr1nBS.js +0 -1
  490. package/src/components/slash-command.tsx +0 -232
  491. package/src/elements/framework-usage.json +0 -563
  492. /package/dist/{kitn-chat-provider.d.ts → kai-provider.d.ts} +0 -0
  493. /package/dist/{kitn-chat-provider.es.js → kai-provider.es.js} +0 -0
@@ -1,563 +0,0 @@
1
- [
2
- {
3
- "tag": "kai-artifact",
4
- "displayName": "Artifact",
5
- "hasSolid": true,
6
- "snippets": {
7
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-artifact></kai-artifact>\n<script type=\"module\">\n const el = document.querySelector('kai-artifact');\n el.files = /* … */;\n el.addEventListener('kai-file-select', (e) => console.log(e.detail));\n el.addEventListener('kai-maximize-change', (e) => console.log(e.detail));\n el.addEventListener('kai-navigate', (e) => console.log(e.detail));\n el.addEventListener('kai-tab-change', (e) => console.log(e.detail));\n</script>",
8
- "react": "import { Artifact } from '@kitn.ai/ui/react';\n\n<Artifact\n files={files}\n onFileSelect={(e) => console.log(e.detail)}\n onMaximizeChange={(e) => console.log(e.detail)}\n onNavigate={(e) => console.log(e.detail)}\n onTabChange={(e) => console.log(e.detail)}\n/>",
9
- "vue": "<kai-artifact\n :files.prop=\"files\"\n @kai-file-select=\"onFileSelect\"\n @kai-maximize-change=\"onMaximizeChange\"\n @kai-navigate=\"onNavigate\"\n @kai-tab-change=\"onTabChange\"\n/>",
10
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-artifact\n {files}\n on:kai-file-select={onFileSelect}\n on:kai-maximize-change={onMaximizeChange}\n on:kai-navigate={onNavigate}\n on:kai-tab-change={onTabChange}\n></kai-artifact>",
11
- "angular": "<kai-artifact\n [files]=\"files\"\n (kai-file-select)=\"onFileSelect($event)\"\n (kai-maximize-change)=\"onMaximizeChange($event)\"\n (kai-navigate)=\"onNavigate($event)\"\n (kai-tab-change)=\"onTabChange($event)\"\n></kai-artifact>",
12
- "solid": "import { Artifact } from '@kitn.ai/ui';\n\n<Artifact\n files={files}\n onFileSelect={(e) => console.log(e.detail)}\n onMaximizeChange={(e) => console.log(e.detail)}\n onNavigate={(e) => console.log(e.detail)}\n onTabChange={(e) => console.log(e.detail)}\n/>"
13
- }
14
- },
15
- {
16
- "tag": "kai-attachments",
17
- "displayName": "Attachments",
18
- "hasSolid": true,
19
- "snippets": {
20
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-attachments></kai-attachments>\n<script type=\"module\">\n const el = document.querySelector('kai-attachments');\n el.items = /* … */;\n el.addEventListener('kai-remove', (e) => console.log(e.detail));\n</script>",
21
- "react": "import { Attachments } from '@kitn.ai/ui/react';\n\n<Attachments\n items={items}\n onRemove={(e) => console.log(e.detail)}\n/>",
22
- "vue": "<kai-attachments\n :items.prop=\"items\"\n @kai-remove=\"onRemove\"\n/>",
23
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-attachments\n {items}\n on:kai-remove={onRemove}\n></kai-attachments>",
24
- "angular": "<kai-attachments\n [items]=\"items\"\n (kai-remove)=\"onRemove($event)\"\n></kai-attachments>",
25
- "solid": "import { Attachments } from '@kitn.ai/ui';\n\n<Attachments\n items={items}\n onRemove={(e) => console.log(e.detail)}\n/>"
26
- }
27
- },
28
- {
29
- "tag": "kai-card",
30
- "displayName": "Card",
31
- "hasSolid": true,
32
- "snippets": {
33
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-card></kai-card>",
34
- "react": "import { Card } from '@kitn.ai/ui/react';\n\n<Card />",
35
- "vue": "<kai-card />",
36
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-card></kai-card>",
37
- "angular": "<kai-card></kai-card>",
38
- "solid": "import { Card } from '@kitn.ai/ui';\n\n<Card />"
39
- }
40
- },
41
- {
42
- "tag": "kai-cards",
43
- "displayName": "Cards",
44
- "hasSolid": false,
45
- "snippets": {
46
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-cards></kai-cards>",
47
- "react": "import { Cards } from '@kitn.ai/ui/react';\n\n<Cards />",
48
- "vue": "<kai-cards />",
49
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-cards></kai-cards>",
50
- "angular": "<kai-cards></kai-cards>"
51
- }
52
- },
53
- {
54
- "tag": "kai-chain-of-thought",
55
- "displayName": "ChainOfThought",
56
- "hasSolid": true,
57
- "snippets": {
58
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-chain-of-thought></kai-chain-of-thought>\n<script type=\"module\">\n const el = document.querySelector('kai-chain-of-thought');\n el.steps = /* … */;\n</script>",
59
- "react": "import { ChainOfThought } from '@kitn.ai/ui/react';\n\n<ChainOfThought\n steps={steps}\n/>",
60
- "vue": "<kai-chain-of-thought\n :steps.prop=\"steps\"\n/>",
61
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-chain-of-thought\n {steps}\n></kai-chain-of-thought>",
62
- "angular": "<kai-chain-of-thought\n [steps]=\"steps\"\n></kai-chain-of-thought>",
63
- "solid": "import { ChainOfThought } from '@kitn.ai/ui';\n\n<ChainOfThought\n steps={steps}\n/>"
64
- }
65
- },
66
- {
67
- "tag": "kai-chat",
68
- "displayName": "Chat",
69
- "hasSolid": false,
70
- "snippets": {
71
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-chat></kai-chat>\n<script type=\"module\">\n const el = document.querySelector('kai-chat');\n el.messages = /* … */;\n el.addEventListener('kai-message-action', (e) => console.log(e.detail));\n el.addEventListener('kai-model-change', (e) => console.log(e.detail));\n el.addEventListener('kai-search', (e) => console.log(e.detail));\n el.addEventListener('kai-slash-select', (e) => console.log(e.detail));\n el.addEventListener('kai-submit', (e) => console.log(e.detail));\n el.addEventListener('kai-suggestion-click', (e) => console.log(e.detail));\n el.addEventListener('kai-value-change', (e) => console.log(e.detail));\n el.addEventListener('kai-voice', (e) => console.log(e.detail));\n</script>",
72
- "react": "import { Chat } from '@kitn.ai/ui/react';\n\n<Chat\n messages={messages}\n onMessageAction={(e) => console.log(e.detail)}\n onModelChange={(e) => console.log(e.detail)}\n onSearch={(e) => console.log(e.detail)}\n onSlashSelect={(e) => console.log(e.detail)}\n onSubmit={(e) => console.log(e.detail)}\n onSuggestionClick={(e) => console.log(e.detail)}\n onValueChange={(e) => console.log(e.detail)}\n onVoice={(e) => console.log(e.detail)}\n/>",
73
- "vue": "<kai-chat\n :messages.prop=\"messages\"\n @kai-message-action=\"onMessageAction\"\n @kai-model-change=\"onModelChange\"\n @kai-search=\"onSearch\"\n @kai-slash-select=\"onSlashSelect\"\n @kai-submit=\"onSubmit\"\n @kai-suggestion-click=\"onSuggestionClick\"\n @kai-value-change=\"onValueChange\"\n @kai-voice=\"onVoice\"\n/>",
74
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-chat\n {messages}\n on:kai-message-action={onMessageAction}\n on:kai-model-change={onModelChange}\n on:kai-search={onSearch}\n on:kai-slash-select={onSlashSelect}\n on:kai-submit={onSubmit}\n on:kai-suggestion-click={onSuggestionClick}\n on:kai-value-change={onValueChange}\n on:kai-voice={onVoice}\n></kai-chat>",
75
- "angular": "<kai-chat\n [messages]=\"messages\"\n (kai-message-action)=\"onMessageAction($event)\"\n (kai-model-change)=\"onModelChange($event)\"\n (kai-search)=\"onSearch($event)\"\n (kai-slash-select)=\"onSlashSelect($event)\"\n (kai-submit)=\"onSubmit($event)\"\n (kai-suggestion-click)=\"onSuggestionClick($event)\"\n (kai-value-change)=\"onValueChange($event)\"\n (kai-voice)=\"onVoice($event)\"\n></kai-chat>"
76
- }
77
- },
78
- {
79
- "tag": "kai-checkpoint",
80
- "displayName": "Checkpoint",
81
- "hasSolid": true,
82
- "snippets": {
83
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-checkpoint></kai-checkpoint>\n<script type=\"module\">\n const el = document.querySelector('kai-checkpoint');\n el.addEventListener('kai-select', (e) => console.log(e.detail));\n</script>",
84
- "react": "import { Checkpoint } from '@kitn.ai/ui/react';\n\n<Checkpoint\n onSelect={(e) => console.log(e.detail)}\n/>",
85
- "vue": "<kai-checkpoint\n @kai-select=\"onSelect\"\n/>",
86
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-checkpoint\n on:kai-select={onSelect}\n></kai-checkpoint>",
87
- "angular": "<kai-checkpoint\n (kai-select)=\"onSelect($event)\"\n></kai-checkpoint>",
88
- "solid": "import { Checkpoint } from '@kitn.ai/ui';\n\n<Checkpoint\n onSelect={(e) => console.log(e.detail)}\n/>"
89
- }
90
- },
91
- {
92
- "tag": "kai-choice",
93
- "displayName": "Choice",
94
- "hasSolid": false,
95
- "snippets": {
96
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-choice></kai-choice>",
97
- "react": "import { Choice } from '@kitn.ai/ui/react';\n\n<Choice />",
98
- "vue": "<kai-choice />",
99
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-choice></kai-choice>",
100
- "angular": "<kai-choice></kai-choice>"
101
- }
102
- },
103
- {
104
- "tag": "kai-code-block",
105
- "displayName": "CodeBlock",
106
- "hasSolid": true,
107
- "snippets": {
108
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-code-block code=\"…\"></kai-code-block>",
109
- "react": "import { CodeBlock } from '@kitn.ai/ui/react';\n\n<CodeBlock\n code={code}\n/>",
110
- "vue": "<kai-code-block\n :code=\"code\"\n/>",
111
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-code-block\n {code}\n></kai-code-block>",
112
- "angular": "<kai-code-block\n [code]=\"code\"\n></kai-code-block>",
113
- "solid": "import { CodeBlock } from '@kitn.ai/ui';\n\n<CodeBlock\n code={code}\n/>"
114
- }
115
- },
116
- {
117
- "tag": "kai-confirm",
118
- "displayName": "Confirm",
119
- "hasSolid": false,
120
- "snippets": {
121
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-confirm></kai-confirm>",
122
- "react": "import { Confirm } from '@kitn.ai/ui/react';\n\n<Confirm />",
123
- "vue": "<kai-confirm />",
124
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-confirm></kai-confirm>",
125
- "angular": "<kai-confirm></kai-confirm>"
126
- }
127
- },
128
- {
129
- "tag": "kai-context",
130
- "displayName": "Context",
131
- "hasSolid": true,
132
- "snippets": {
133
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-context></kai-context>\n<script type=\"module\">\n const el = document.querySelector('kai-context');\n el.addEventListener('kai-threshold-change', (e) => console.log(e.detail));\n</script>",
134
- "react": "import { Context } from '@kitn.ai/ui/react';\n\n<Context\n onThresholdChange={(e) => console.log(e.detail)}\n/>",
135
- "vue": "<kai-context\n @kai-threshold-change=\"onThresholdChange\"\n/>",
136
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-context\n on:kai-threshold-change={onThresholdChange}\n></kai-context>",
137
- "angular": "<kai-context\n (kai-threshold-change)=\"onThresholdChange($event)\"\n></kai-context>",
138
- "solid": "import { Context } from '@kitn.ai/ui';\n\n<Context\n onThresholdChange={(e) => console.log(e.detail)}\n/>"
139
- }
140
- },
141
- {
142
- "tag": "kai-conversations",
143
- "displayName": "Conversations",
144
- "hasSolid": true,
145
- "snippets": {
146
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-conversations></kai-conversations>\n<script type=\"module\">\n const el = document.querySelector('kai-conversations');\n el.groups = /* … */;\n el.conversations = /* … */;\n el.addEventListener('kai-conversation-select', (e) => console.log(e.detail));\n el.addEventListener('kai-new-chat', (e) => console.log(e.detail));\n el.addEventListener('kai-toggle-sidebar', (e) => console.log(e.detail));\n</script>",
147
- "react": "import { Conversations } from '@kitn.ai/ui/react';\n\n<Conversations\n groups={groups}\n conversations={conversations}\n onConversationSelect={(e) => console.log(e.detail)}\n onNewChat={(e) => console.log(e.detail)}\n onToggleSidebar={(e) => console.log(e.detail)}\n/>",
148
- "vue": "<kai-conversations\n :groups.prop=\"groups\"\n :conversations.prop=\"conversations\"\n @kai-conversation-select=\"onConversationSelect\"\n @kai-new-chat=\"onNewChat\"\n @kai-toggle-sidebar=\"onToggleSidebar\"\n/>",
149
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-conversations\n {groups}\n {conversations}\n on:kai-conversation-select={onConversationSelect}\n on:kai-new-chat={onNewChat}\n on:kai-toggle-sidebar={onToggleSidebar}\n></kai-conversations>",
150
- "angular": "<kai-conversations\n [groups]=\"groups\"\n [conversations]=\"conversations\"\n (kai-conversation-select)=\"onConversationSelect($event)\"\n (kai-new-chat)=\"onNewChat($event)\"\n (kai-toggle-sidebar)=\"onToggleSidebar($event)\"\n></kai-conversations>",
151
- "solid": "import { ConversationList } from '@kitn.ai/ui';\n\n<ConversationList\n groups={groups}\n conversations={conversations}\n onConversationSelect={(e) => console.log(e.detail)}\n onNewChat={(e) => console.log(e.detail)}\n onToggleSidebar={(e) => console.log(e.detail)}\n/>"
152
- }
153
- },
154
- {
155
- "tag": "kai-embed",
156
- "displayName": "Embed",
157
- "hasSolid": true,
158
- "snippets": {
159
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-embed></kai-embed>",
160
- "react": "import { Embed } from '@kitn.ai/ui/react';\n\n<Embed />",
161
- "vue": "<kai-embed />",
162
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-embed></kai-embed>",
163
- "angular": "<kai-embed></kai-embed>",
164
- "solid": "import { Embed } from '@kitn.ai/ui';\n\n<Embed />"
165
- }
166
- },
167
- {
168
- "tag": "kai-empty",
169
- "displayName": "Empty",
170
- "hasSolid": true,
171
- "snippets": {
172
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-empty></kai-empty>",
173
- "react": "import { Empty } from '@kitn.ai/ui/react';\n\n<Empty />",
174
- "vue": "<kai-empty />",
175
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-empty></kai-empty>",
176
- "angular": "<kai-empty></kai-empty>",
177
- "solid": "import { Empty } from '@kitn.ai/ui';\n\n<Empty />"
178
- }
179
- },
180
- {
181
- "tag": "kai-feedback-bar",
182
- "displayName": "FeedbackBar",
183
- "hasSolid": true,
184
- "snippets": {
185
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-feedback-bar></kai-feedback-bar>\n<script type=\"module\">\n const el = document.querySelector('kai-feedback-bar');\n el.addEventListener('kai-close', (e) => console.log(e.detail));\n el.addEventListener('kai-feedback', (e) => console.log(e.detail));\n el.addEventListener('kai-feedback-detail', (e) => console.log(e.detail));\n</script>",
186
- "react": "import { FeedbackBar } from '@kitn.ai/ui/react';\n\n<FeedbackBar\n onClose={(e) => console.log(e.detail)}\n onFeedback={(e) => console.log(e.detail)}\n onFeedbackDetail={(e) => console.log(e.detail)}\n/>",
187
- "vue": "<kai-feedback-bar\n @kai-close=\"onClose\"\n @kai-feedback=\"onFeedback\"\n @kai-feedback-detail=\"onFeedbackDetail\"\n/>",
188
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-feedback-bar\n on:kai-close={onClose}\n on:kai-feedback={onFeedback}\n on:kai-feedback-detail={onFeedbackDetail}\n></kai-feedback-bar>",
189
- "angular": "<kai-feedback-bar\n (kai-close)=\"onClose($event)\"\n (kai-feedback)=\"onFeedback($event)\"\n (kai-feedback-detail)=\"onFeedbackDetail($event)\"\n></kai-feedback-bar>",
190
- "solid": "import { FeedbackBar } from '@kitn.ai/ui';\n\n<FeedbackBar\n onClose={(e) => console.log(e.detail)}\n onFeedback={(e) => console.log(e.detail)}\n onFeedbackDetail={(e) => console.log(e.detail)}\n/>"
191
- }
192
- },
193
- {
194
- "tag": "kai-file-tree",
195
- "displayName": "FileTree",
196
- "hasSolid": true,
197
- "snippets": {
198
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-file-tree></kai-file-tree>\n<script type=\"module\">\n const el = document.querySelector('kai-file-tree');\n el.files = /* … */;\n el.addEventListener('kai-select', (e) => console.log(e.detail));\n</script>",
199
- "react": "import { FileTree } from '@kitn.ai/ui/react';\n\n<FileTree\n files={files}\n onSelect={(e) => console.log(e.detail)}\n/>",
200
- "vue": "<kai-file-tree\n :files.prop=\"files\"\n @kai-select=\"onSelect\"\n/>",
201
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-file-tree\n {files}\n on:kai-select={onSelect}\n></kai-file-tree>",
202
- "angular": "<kai-file-tree\n [files]=\"files\"\n (kai-select)=\"onSelect($event)\"\n></kai-file-tree>",
203
- "solid": "import { FileTree } from '@kitn.ai/ui';\n\n<FileTree\n files={files}\n onSelect={(e) => console.log(e.detail)}\n/>"
204
- }
205
- },
206
- {
207
- "tag": "kai-file-upload",
208
- "displayName": "FileUpload",
209
- "hasSolid": true,
210
- "snippets": {
211
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-file-upload></kai-file-upload>\n<script type=\"module\">\n const el = document.querySelector('kai-file-upload');\n el.addEventListener('kai-files-added', (e) => console.log(e.detail));\n</script>",
212
- "react": "import { FileUpload } from '@kitn.ai/ui/react';\n\n<FileUpload\n onFilesAdded={(e) => console.log(e.detail)}\n/>",
213
- "vue": "<kai-file-upload\n @kai-files-added=\"onFilesAdded\"\n/>",
214
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-file-upload\n on:kai-files-added={onFilesAdded}\n></kai-file-upload>",
215
- "angular": "<kai-file-upload\n (kai-files-added)=\"onFilesAdded($event)\"\n></kai-file-upload>",
216
- "solid": "import { FileUpload } from '@kitn.ai/ui';\n\n<FileUpload\n onFilesAdded={(e) => console.log(e.detail)}\n/>"
217
- }
218
- },
219
- {
220
- "tag": "kai-form",
221
- "displayName": "Form",
222
- "hasSolid": true,
223
- "snippets": {
224
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-form></kai-form>",
225
- "react": "import { Form } from '@kitn.ai/ui/react';\n\n<Form />",
226
- "vue": "<kai-form />",
227
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-form></kai-form>",
228
- "angular": "<kai-form></kai-form>",
229
- "solid": "import { Form } from '@kitn.ai/ui';\n\n<Form />"
230
- }
231
- },
232
- {
233
- "tag": "kai-image",
234
- "displayName": "Image",
235
- "hasSolid": true,
236
- "snippets": {
237
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-image></kai-image>",
238
- "react": "import { Image } from '@kitn.ai/ui/react';\n\n<Image />",
239
- "vue": "<kai-image />",
240
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-image></kai-image>",
241
- "angular": "<kai-image></kai-image>",
242
- "solid": "import { Image } from '@kitn.ai/ui';\n\n<Image />"
243
- }
244
- },
245
- {
246
- "tag": "kai-link-preview",
247
- "displayName": "LinkPreview",
248
- "hasSolid": true,
249
- "snippets": {
250
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-link-preview></kai-link-preview>",
251
- "react": "import { LinkPreview } from '@kitn.ai/ui/react';\n\n<LinkPreview />",
252
- "vue": "<kai-link-preview />",
253
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-link-preview></kai-link-preview>",
254
- "angular": "<kai-link-preview></kai-link-preview>",
255
- "solid": "import { LinkPreview } from '@kitn.ai/ui';\n\n<LinkPreview />"
256
- }
257
- },
258
- {
259
- "tag": "kai-loader",
260
- "displayName": "Loader",
261
- "hasSolid": true,
262
- "snippets": {
263
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-loader></kai-loader>",
264
- "react": "import { Loader } from '@kitn.ai/ui/react';\n\n<Loader />",
265
- "vue": "<kai-loader />",
266
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-loader></kai-loader>",
267
- "angular": "<kai-loader></kai-loader>",
268
- "solid": "import { Loader } from '@kitn.ai/ui';\n\n<Loader />"
269
- }
270
- },
271
- {
272
- "tag": "kai-markdown",
273
- "displayName": "Markdown",
274
- "hasSolid": true,
275
- "snippets": {
276
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-markdown content=\"…\"></kai-markdown>",
277
- "react": "import { Markdown } from '@kitn.ai/ui/react';\n\n<Markdown\n content={content}\n/>",
278
- "vue": "<kai-markdown\n :content=\"content\"\n/>",
279
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-markdown\n {content}\n></kai-markdown>",
280
- "angular": "<kai-markdown\n [content]=\"content\"\n></kai-markdown>",
281
- "solid": "import { Markdown } from '@kitn.ai/ui';\n\n<Markdown\n content={content}\n/>"
282
- }
283
- },
284
- {
285
- "tag": "kai-message",
286
- "displayName": "Message",
287
- "hasSolid": true,
288
- "snippets": {
289
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-message></kai-message>\n<script type=\"module\">\n const el = document.querySelector('kai-message');\n el.addEventListener('kai-message-action', (e) => console.log(e.detail));\n</script>",
290
- "react": "import { Message } from '@kitn.ai/ui/react';\n\n<Message\n onMessageAction={(e) => console.log(e.detail)}\n/>",
291
- "vue": "<kai-message\n @kai-message-action=\"onMessageAction\"\n/>",
292
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-message\n on:kai-message-action={onMessageAction}\n></kai-message>",
293
- "angular": "<kai-message\n (kai-message-action)=\"onMessageAction($event)\"\n></kai-message>",
294
- "solid": "import { Message } from '@kitn.ai/ui';\n\n<Message\n onMessageAction={(e) => console.log(e.detail)}\n/>"
295
- }
296
- },
297
- {
298
- "tag": "kai-model-switcher",
299
- "displayName": "ModelSwitcher",
300
- "hasSolid": true,
301
- "snippets": {
302
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-model-switcher></kai-model-switcher>\n<script type=\"module\">\n const el = document.querySelector('kai-model-switcher');\n el.models = /* … */;\n el.addEventListener('kai-model-change', (e) => console.log(e.detail));\n</script>",
303
- "react": "import { ModelSwitcher } from '@kitn.ai/ui/react';\n\n<ModelSwitcher\n models={models}\n onModelChange={(e) => console.log(e.detail)}\n/>",
304
- "vue": "<kai-model-switcher\n :models.prop=\"models\"\n @kai-model-change=\"onModelChange\"\n/>",
305
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-model-switcher\n {models}\n on:kai-model-change={onModelChange}\n></kai-model-switcher>",
306
- "angular": "<kai-model-switcher\n [models]=\"models\"\n (kai-model-change)=\"onModelChange($event)\"\n></kai-model-switcher>",
307
- "solid": "import { ModelSwitcher } from '@kitn.ai/ui';\n\n<ModelSwitcher\n models={models}\n onModelChange={(e) => console.log(e.detail)}\n/>"
308
- }
309
- },
310
- {
311
- "tag": "kai-popover",
312
- "displayName": "Popover",
313
- "hasSolid": false,
314
- "snippets": {
315
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-popover></kai-popover>\n<script type=\"module\">\n const el = document.querySelector('kai-popover');\n el.addEventListener('kai-open-change', (e) => console.log(e.detail));\n</script>",
316
- "react": "import { Popover } from '@kitn.ai/ui/react';\n\n<Popover\n onOpenChange={(e) => console.log(e.detail)}\n/>",
317
- "vue": "<kai-popover\n @kai-open-change=\"onOpenChange\"\n/>",
318
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-popover\n on:kai-open-change={onOpenChange}\n></kai-popover>",
319
- "angular": "<kai-popover\n (kai-open-change)=\"onOpenChange($event)\"\n></kai-popover>"
320
- }
321
- },
322
- {
323
- "tag": "kai-prompt-input",
324
- "displayName": "PromptInput",
325
- "hasSolid": true,
326
- "snippets": {
327
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-prompt-input></kai-prompt-input>\n<script type=\"module\">\n const el = document.querySelector('kai-prompt-input');\n el.addEventListener('kai-search', (e) => console.log(e.detail));\n el.addEventListener('kai-slash-select', (e) => console.log(e.detail));\n el.addEventListener('kai-stop', (e) => console.log(e.detail));\n el.addEventListener('kai-submit', (e) => console.log(e.detail));\n el.addEventListener('kai-suggestion-click', (e) => console.log(e.detail));\n el.addEventListener('kai-toolbar-action', (e) => console.log(e.detail));\n el.addEventListener('kai-value-change', (e) => console.log(e.detail));\n el.addEventListener('kai-voice', (e) => console.log(e.detail));\n</script>",
328
- "react": "import { PromptInput } from '@kitn.ai/ui/react';\n\n<PromptInput\n onSearch={(e) => console.log(e.detail)}\n onSlashSelect={(e) => console.log(e.detail)}\n onStop={(e) => console.log(e.detail)}\n onSubmit={(e) => console.log(e.detail)}\n onSuggestionClick={(e) => console.log(e.detail)}\n onToolbarAction={(e) => console.log(e.detail)}\n onValueChange={(e) => console.log(e.detail)}\n onVoice={(e) => console.log(e.detail)}\n/>",
329
- "vue": "<kai-prompt-input\n @kai-search=\"onSearch\"\n @kai-slash-select=\"onSlashSelect\"\n @kai-stop=\"onStop\"\n @kai-submit=\"onSubmit\"\n @kai-suggestion-click=\"onSuggestionClick\"\n @kai-toolbar-action=\"onToolbarAction\"\n @kai-value-change=\"onValueChange\"\n @kai-voice=\"onVoice\"\n/>",
330
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-prompt-input\n on:kai-search={onSearch}\n on:kai-slash-select={onSlashSelect}\n on:kai-stop={onStop}\n on:kai-submit={onSubmit}\n on:kai-suggestion-click={onSuggestionClick}\n on:kai-toolbar-action={onToolbarAction}\n on:kai-value-change={onValueChange}\n on:kai-voice={onVoice}\n></kai-prompt-input>",
331
- "angular": "<kai-prompt-input\n (kai-search)=\"onSearch($event)\"\n (kai-slash-select)=\"onSlashSelect($event)\"\n (kai-stop)=\"onStop($event)\"\n (kai-submit)=\"onSubmit($event)\"\n (kai-suggestion-click)=\"onSuggestionClick($event)\"\n (kai-toolbar-action)=\"onToolbarAction($event)\"\n (kai-value-change)=\"onValueChange($event)\"\n (kai-voice)=\"onVoice($event)\"\n></kai-prompt-input>",
332
- "solid": "import { PromptInput } from '@kitn.ai/ui';\n\n<PromptInput\n onSearch={(e) => console.log(e.detail)}\n onSlashSelect={(e) => console.log(e.detail)}\n onStop={(e) => console.log(e.detail)}\n onSubmit={(e) => console.log(e.detail)}\n onSuggestionClick={(e) => console.log(e.detail)}\n onToolbarAction={(e) => console.log(e.detail)}\n onValueChange={(e) => console.log(e.detail)}\n onVoice={(e) => console.log(e.detail)}\n/>"
333
- }
334
- },
335
- {
336
- "tag": "kai-reasoning",
337
- "displayName": "Reasoning",
338
- "hasSolid": true,
339
- "snippets": {
340
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-reasoning text=\"…\"></kai-reasoning>\n<script type=\"module\">\n const el = document.querySelector('kai-reasoning');\n el.addEventListener('kai-open-change', (e) => console.log(e.detail));\n</script>",
341
- "react": "import { Reasoning } from '@kitn.ai/ui/react';\n\n<Reasoning\n text={text}\n onOpenChange={(e) => console.log(e.detail)}\n/>",
342
- "vue": "<kai-reasoning\n :text=\"text\"\n @kai-open-change=\"onOpenChange\"\n/>",
343
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-reasoning\n {text}\n on:kai-open-change={onOpenChange}\n></kai-reasoning>",
344
- "angular": "<kai-reasoning\n [text]=\"text\"\n (kai-open-change)=\"onOpenChange($event)\"\n></kai-reasoning>",
345
- "solid": "import { Reasoning } from '@kitn.ai/ui';\n\n<Reasoning\n text={text}\n onOpenChange={(e) => console.log(e.detail)}\n/>"
346
- }
347
- },
348
- {
349
- "tag": "kai-remote",
350
- "displayName": "Remote",
351
- "hasSolid": false,
352
- "snippets": {
353
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-remote></kai-remote>",
354
- "react": "import { Remote } from '@kitn.ai/ui/react';\n\n<Remote />",
355
- "vue": "<kai-remote />",
356
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-remote></kai-remote>",
357
- "angular": "<kai-remote></kai-remote>"
358
- }
359
- },
360
- {
361
- "tag": "kai-resizable",
362
- "displayName": "Resizable",
363
- "hasSolid": true,
364
- "snippets": {
365
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-resizable></kai-resizable>\n<script type=\"module\">\n const el = document.querySelector('kai-resizable');\n el.addEventListener('kai-change', (e) => console.log(e.detail));\n el.addEventListener('kai-maximize-change', (e) => console.log(e.detail));\n</script>",
366
- "react": "import { Resizable } from '@kitn.ai/ui/react';\n\n<Resizable\n onChange={(e) => console.log(e.detail)}\n onMaximizeChange={(e) => console.log(e.detail)}\n/>",
367
- "vue": "<kai-resizable\n @kai-change=\"onChange\"\n @kai-maximize-change=\"onMaximizeChange\"\n/>",
368
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-resizable\n on:kai-change={onChange}\n on:kai-maximize-change={onMaximizeChange}\n></kai-resizable>",
369
- "angular": "<kai-resizable\n (kai-change)=\"onChange($event)\"\n (kai-maximize-change)=\"onMaximizeChange($event)\"\n></kai-resizable>",
370
- "solid": "import { Resizable } from '@kitn.ai/ui';\n\n<Resizable\n onChange={(e) => console.log(e.detail)}\n onMaximizeChange={(e) => console.log(e.detail)}\n/>"
371
- }
372
- },
373
- {
374
- "tag": "kai-resizable-item",
375
- "displayName": "ResizableItem",
376
- "hasSolid": false,
377
- "snippets": {
378
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-resizable-item></kai-resizable-item>\n<script type=\"module\">\n const el = document.querySelector('kai-resizable-item');\n el.addEventListener('kai-change', (e) => console.log(e.detail));\n el.addEventListener('kai-maximize-change', (e) => console.log(e.detail));\n</script>",
379
- "react": "import { ResizableItem } from '@kitn.ai/ui/react';\n\n<ResizableItem\n onChange={(e) => console.log(e.detail)}\n onMaximizeChange={(e) => console.log(e.detail)}\n/>",
380
- "vue": "<kai-resizable-item\n @kai-change=\"onChange\"\n @kai-maximize-change=\"onMaximizeChange\"\n/>",
381
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-resizable-item\n on:kai-change={onChange}\n on:kai-maximize-change={onMaximizeChange}\n></kai-resizable-item>",
382
- "angular": "<kai-resizable-item\n (kai-change)=\"onChange($event)\"\n (kai-maximize-change)=\"onMaximizeChange($event)\"\n></kai-resizable-item>"
383
- }
384
- },
385
- {
386
- "tag": "kai-response-stream",
387
- "displayName": "ResponseStream",
388
- "hasSolid": true,
389
- "snippets": {
390
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-response-stream></kai-response-stream>\n<script type=\"module\">\n const el = document.querySelector('kai-response-stream');\n el.addEventListener('kai-complete', (e) => console.log(e.detail));\n</script>",
391
- "react": "import { ResponseStream } from '@kitn.ai/ui/react';\n\n<ResponseStream\n onComplete={(e) => console.log(e.detail)}\n/>",
392
- "vue": "<kai-response-stream\n @kai-complete=\"onComplete\"\n/>",
393
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-response-stream\n on:kai-complete={onComplete}\n></kai-response-stream>",
394
- "angular": "<kai-response-stream\n (kai-complete)=\"onComplete($event)\"\n></kai-response-stream>",
395
- "solid": "import { ResponseStream } from '@kitn.ai/ui';\n\n<ResponseStream\n onComplete={(e) => console.log(e.detail)}\n/>"
396
- }
397
- },
398
- {
399
- "tag": "kai-scope-picker",
400
- "displayName": "ScopePicker",
401
- "hasSolid": true,
402
- "snippets": {
403
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-scope-picker></kai-scope-picker>\n<script type=\"module\">\n const el = document.querySelector('kai-scope-picker');\n el.availableAuthors = /* … */;\n el.availableTags = /* … */;\n el.addEventListener('kai-scope-change', (e) => console.log(e.detail));\n</script>",
404
- "react": "import { ScopePicker } from '@kitn.ai/ui/react';\n\n<ScopePicker\n availableAuthors={availableAuthors}\n availableTags={availableTags}\n onScopeChange={(e) => console.log(e.detail)}\n/>",
405
- "vue": "<kai-scope-picker\n :availableAuthors.prop=\"availableAuthors\"\n :availableTags.prop=\"availableTags\"\n @kai-scope-change=\"onScopeChange\"\n/>",
406
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-scope-picker\n {availableAuthors}\n {availableTags}\n on:kai-scope-change={onScopeChange}\n></kai-scope-picker>",
407
- "angular": "<kai-scope-picker\n [availableAuthors]=\"availableAuthors\"\n [availableTags]=\"availableTags\"\n (kai-scope-change)=\"onScopeChange($event)\"\n></kai-scope-picker>",
408
- "solid": "import { ChatScopePicker } from '@kitn.ai/ui';\n\n<ChatScopePicker\n availableAuthors={availableAuthors}\n availableTags={availableTags}\n onScopeChange={(e) => console.log(e.detail)}\n/>"
409
- }
410
- },
411
- {
412
- "tag": "kai-scroll-button",
413
- "displayName": "ScrollButton",
414
- "hasSolid": true,
415
- "snippets": {
416
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-scroll-button></kai-scroll-button>\n<script type=\"module\">\n const el = document.querySelector('kai-scroll-button');\n el.addEventListener('kai-scroll', (e) => console.log(e.detail));\n</script>",
417
- "react": "import { ScrollButton } from '@kitn.ai/ui/react';\n\n<ScrollButton\n onScroll={(e) => console.log(e.detail)}\n/>",
418
- "vue": "<kai-scroll-button\n @kai-scroll=\"onScroll\"\n/>",
419
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-scroll-button\n on:kai-scroll={onScroll}\n></kai-scroll-button>",
420
- "angular": "<kai-scroll-button\n (kai-scroll)=\"onScroll($event)\"\n></kai-scroll-button>",
421
- "solid": "import { ScrollButton } from '@kitn.ai/ui';\n\n<ScrollButton\n onScroll={(e) => console.log(e.detail)}\n/>"
422
- }
423
- },
424
- {
425
- "tag": "kai-skills",
426
- "displayName": "Skills",
427
- "hasSolid": true,
428
- "snippets": {
429
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-skills></kai-skills>\n<script type=\"module\">\n const el = document.querySelector('kai-skills');\n el.skills = /* … */;\n</script>",
430
- "react": "import { Skills } from '@kitn.ai/ui/react';\n\n<Skills\n skills={skills}\n/>",
431
- "vue": "<kai-skills\n :skills.prop=\"skills\"\n/>",
432
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-skills\n {skills}\n></kai-skills>",
433
- "angular": "<kai-skills\n [skills]=\"skills\"\n></kai-skills>",
434
- "solid": "import { MessageSkills } from '@kitn.ai/ui';\n\n<MessageSkills\n skills={skills}\n/>"
435
- }
436
- },
437
- {
438
- "tag": "kai-source",
439
- "displayName": "Source",
440
- "hasSolid": true,
441
- "snippets": {
442
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-source></kai-source>",
443
- "react": "import { Source } from '@kitn.ai/ui/react';\n\n<Source />",
444
- "vue": "<kai-source />",
445
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-source></kai-source>",
446
- "angular": "<kai-source></kai-source>",
447
- "solid": "import { Source } from '@kitn.ai/ui';\n\n<Source />"
448
- }
449
- },
450
- {
451
- "tag": "kai-sources",
452
- "displayName": "Sources",
453
- "hasSolid": true,
454
- "snippets": {
455
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-sources></kai-sources>\n<script type=\"module\">\n const el = document.querySelector('kai-sources');\n el.sources = /* … */;\n</script>",
456
- "react": "import { Sources } from '@kitn.ai/ui/react';\n\n<Sources\n sources={sources}\n/>",
457
- "vue": "<kai-sources\n :sources.prop=\"sources\"\n/>",
458
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-sources\n {sources}\n></kai-sources>",
459
- "angular": "<kai-sources\n [sources]=\"sources\"\n></kai-sources>",
460
- "solid": "import { SourceList } from '@kitn.ai/ui';\n\n<SourceList\n sources={sources}\n/>"
461
- }
462
- },
463
- {
464
- "tag": "kai-suggestions",
465
- "displayName": "Suggestions",
466
- "hasSolid": false,
467
- "snippets": {
468
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-suggestions></kai-suggestions>\n<script type=\"module\">\n const el = document.querySelector('kai-suggestions');\n el.suggestions = /* … */;\n el.addEventListener('kai-select', (e) => console.log(e.detail));\n</script>",
469
- "react": "import { Suggestions } from '@kitn.ai/ui/react';\n\n<Suggestions\n suggestions={suggestions}\n onSelect={(e) => console.log(e.detail)}\n/>",
470
- "vue": "<kai-suggestions\n :suggestions.prop=\"suggestions\"\n @kai-select=\"onSelect\"\n/>",
471
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-suggestions\n {suggestions}\n on:kai-select={onSelect}\n></kai-suggestions>",
472
- "angular": "<kai-suggestions\n [suggestions]=\"suggestions\"\n (kai-select)=\"onSelect($event)\"\n></kai-suggestions>"
473
- }
474
- },
475
- {
476
- "tag": "kai-switch",
477
- "displayName": "Switch",
478
- "hasSolid": false,
479
- "snippets": {
480
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-switch></kai-switch>\n<script type=\"module\">\n const el = document.querySelector('kai-switch');\n el.addEventListener('kai-change', (e) => console.log(e.detail));\n</script>",
481
- "react": "import { Switch } from '@kitn.ai/ui/react';\n\n<Switch\n onChange={(e) => console.log(e.detail)}\n/>",
482
- "vue": "<kai-switch\n @kai-change=\"onChange\"\n/>",
483
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-switch\n on:kai-change={onChange}\n></kai-switch>",
484
- "angular": "<kai-switch\n (kai-change)=\"onChange($event)\"\n></kai-switch>"
485
- }
486
- },
487
- {
488
- "tag": "kai-tasks",
489
- "displayName": "Tasks",
490
- "hasSolid": false,
491
- "snippets": {
492
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-tasks></kai-tasks>",
493
- "react": "import { Tasks } from '@kitn.ai/ui/react';\n\n<Tasks />",
494
- "vue": "<kai-tasks />",
495
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-tasks></kai-tasks>",
496
- "angular": "<kai-tasks></kai-tasks>"
497
- }
498
- },
499
- {
500
- "tag": "kai-text-shimmer",
501
- "displayName": "TextShimmer",
502
- "hasSolid": true,
503
- "snippets": {
504
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-text-shimmer></kai-text-shimmer>",
505
- "react": "import { TextShimmer } from '@kitn.ai/ui/react';\n\n<TextShimmer />",
506
- "vue": "<kai-text-shimmer />",
507
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-text-shimmer></kai-text-shimmer>",
508
- "angular": "<kai-text-shimmer></kai-text-shimmer>",
509
- "solid": "import { TextShimmer } from '@kitn.ai/ui';\n\n<TextShimmer />"
510
- }
511
- },
512
- {
513
- "tag": "kai-thinking-bar",
514
- "displayName": "ThinkingBar",
515
- "hasSolid": true,
516
- "snippets": {
517
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-thinking-bar></kai-thinking-bar>\n<script type=\"module\">\n const el = document.querySelector('kai-thinking-bar');\n el.addEventListener('kai-stop', (e) => console.log(e.detail));\n</script>",
518
- "react": "import { ThinkingBar } from '@kitn.ai/ui/react';\n\n<ThinkingBar\n onStop={(e) => console.log(e.detail)}\n/>",
519
- "vue": "<kai-thinking-bar\n @kai-stop=\"onStop\"\n/>",
520
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-thinking-bar\n on:kai-stop={onStop}\n></kai-thinking-bar>",
521
- "angular": "<kai-thinking-bar\n (kai-stop)=\"onStop($event)\"\n></kai-thinking-bar>",
522
- "solid": "import { ThinkingBar } from '@kitn.ai/ui';\n\n<ThinkingBar\n onStop={(e) => console.log(e.detail)}\n/>"
523
- }
524
- },
525
- {
526
- "tag": "kai-tool",
527
- "displayName": "Tool",
528
- "hasSolid": true,
529
- "snippets": {
530
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-tool></kai-tool>",
531
- "react": "import { Tool } from '@kitn.ai/ui/react';\n\n<Tool />",
532
- "vue": "<kai-tool />",
533
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-tool></kai-tool>",
534
- "angular": "<kai-tool></kai-tool>",
535
- "solid": "import { Tool } from '@kitn.ai/ui';\n\n<Tool />"
536
- }
537
- },
538
- {
539
- "tag": "kai-voice-input",
540
- "displayName": "VoiceInput",
541
- "hasSolid": true,
542
- "snippets": {
543
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-voice-input></kai-voice-input>\n<script type=\"module\">\n const el = document.querySelector('kai-voice-input');\n el.addEventListener('kai-audio-captured', (e) => console.log(e.detail));\n el.addEventListener('kai-transcription', (e) => console.log(e.detail));\n</script>",
544
- "react": "import { VoiceInput } from '@kitn.ai/ui/react';\n\n<VoiceInput\n onAudioCaptured={(e) => console.log(e.detail)}\n onTranscription={(e) => console.log(e.detail)}\n/>",
545
- "vue": "<kai-voice-input\n @kai-audio-captured=\"onAudioCaptured\"\n @kai-transcription=\"onTranscription\"\n/>",
546
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-voice-input\n on:kai-audio-captured={onAudioCaptured}\n on:kai-transcription={onTranscription}\n></kai-voice-input>",
547
- "angular": "<kai-voice-input\n (kai-audio-captured)=\"onAudioCaptured($event)\"\n (kai-transcription)=\"onTranscription($event)\"\n></kai-voice-input>",
548
- "solid": "import { VoiceInput } from '@kitn.ai/ui';\n\n<VoiceInput\n onAudioCaptured={(e) => console.log(e.detail)}\n onTranscription={(e) => console.log(e.detail)}\n/>"
549
- }
550
- },
551
- {
552
- "tag": "kai-workspace",
553
- "displayName": "Workspace",
554
- "hasSolid": false,
555
- "snippets": {
556
- "html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/ui/dist/kitn-chat.es.js\"></script>\n\n<kai-workspace></kai-workspace>\n<script type=\"module\">\n const el = document.querySelector('kai-workspace');\n el.groups = /* … */;\n el.conversations = /* … */;\n el.messages = /* … */;\n el.addEventListener('kai-conversation-select', (e) => console.log(e.detail));\n el.addEventListener('kai-message-action', (e) => console.log(e.detail));\n el.addEventListener('kai-model-change', (e) => console.log(e.detail));\n el.addEventListener('kai-new-chat', (e) => console.log(e.detail));\n el.addEventListener('kai-search', (e) => console.log(e.detail));\n el.addEventListener('kai-sidebar-toggle', (e) => console.log(e.detail));\n el.addEventListener('kai-slash-select', (e) => console.log(e.detail));\n el.addEventListener('kai-submit', (e) => console.log(e.detail));\n el.addEventListener('kai-suggestion-click', (e) => console.log(e.detail));\n el.addEventListener('kai-value-change', (e) => console.log(e.detail));\n el.addEventListener('kai-voice', (e) => console.log(e.detail));\n</script>",
557
- "react": "import { Workspace } from '@kitn.ai/ui/react';\n\n<Workspace\n groups={groups}\n conversations={conversations}\n messages={messages}\n onConversationSelect={(e) => console.log(e.detail)}\n onMessageAction={(e) => console.log(e.detail)}\n onModelChange={(e) => console.log(e.detail)}\n onNewChat={(e) => console.log(e.detail)}\n onSearch={(e) => console.log(e.detail)}\n onSidebarToggle={(e) => console.log(e.detail)}\n onSlashSelect={(e) => console.log(e.detail)}\n onSubmit={(e) => console.log(e.detail)}\n onSuggestionClick={(e) => console.log(e.detail)}\n onValueChange={(e) => console.log(e.detail)}\n onVoice={(e) => console.log(e.detail)}\n/>",
558
- "vue": "<kai-workspace\n :groups.prop=\"groups\"\n :conversations.prop=\"conversations\"\n :messages.prop=\"messages\"\n @kai-conversation-select=\"onConversationSelect\"\n @kai-message-action=\"onMessageAction\"\n @kai-model-change=\"onModelChange\"\n @kai-new-chat=\"onNewChat\"\n @kai-search=\"onSearch\"\n @kai-sidebar-toggle=\"onSidebarToggle\"\n @kai-slash-select=\"onSlashSelect\"\n @kai-submit=\"onSubmit\"\n @kai-suggestion-click=\"onSuggestionClick\"\n @kai-value-change=\"onValueChange\"\n @kai-voice=\"onVoice\"\n/>",
559
- "svelte": "<script>\n import '@kitn.ai/ui/elements';\n</script>\n\n<kai-workspace\n {groups}\n {conversations}\n {messages}\n on:kai-conversation-select={onConversationSelect}\n on:kai-message-action={onMessageAction}\n on:kai-model-change={onModelChange}\n on:kai-new-chat={onNewChat}\n on:kai-search={onSearch}\n on:kai-sidebar-toggle={onSidebarToggle}\n on:kai-slash-select={onSlashSelect}\n on:kai-submit={onSubmit}\n on:kai-suggestion-click={onSuggestionClick}\n on:kai-value-change={onValueChange}\n on:kai-voice={onVoice}\n></kai-workspace>",
560
- "angular": "<kai-workspace\n [groups]=\"groups\"\n [conversations]=\"conversations\"\n [messages]=\"messages\"\n (kai-conversation-select)=\"onConversationSelect($event)\"\n (kai-message-action)=\"onMessageAction($event)\"\n (kai-model-change)=\"onModelChange($event)\"\n (kai-new-chat)=\"onNewChat($event)\"\n (kai-search)=\"onSearch($event)\"\n (kai-sidebar-toggle)=\"onSidebarToggle($event)\"\n (kai-slash-select)=\"onSlashSelect($event)\"\n (kai-submit)=\"onSubmit($event)\"\n (kai-suggestion-click)=\"onSuggestionClick($event)\"\n (kai-value-change)=\"onValueChange($event)\"\n (kai-voice)=\"onVoice($event)\"\n></kai-workspace>"
561
- }
562
- }
563
- ]