@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
@@ -0,0 +1,98 @@
1
+ import { createSignal, onCleanup, onMount } from 'solid-js';
2
+ import { defineWebComponent } from './define';
3
+ import { Dialog, type DialogController } from '../ui/dialog';
4
+ import { wireDisclosure } from './disclosure';
5
+
6
+ interface Props extends Record<string, unknown> {
7
+ /** Drive/observe open state (Shoelace-style: settable + reflected to the `open`
8
+ * attribute; the element still self-manages on Escape/backdrop). Set
9
+ * `el.open = true`, or `<kai-dialog open>`; listen for `kai-open-change`. */
10
+ open?: boolean;
11
+ /** Initial open state on mount (uncontrolled seed). */
12
+ defaultOpen?: boolean;
13
+ }
14
+
15
+ /** Events fired by `<kai-dialog>`. */
16
+ interface Events {
17
+ /** The dialog opened or closed (Escape, backdrop click, a driven `open`, or a method). */
18
+ 'kai-open-change': { open: boolean };
19
+ }
20
+
21
+ /**
22
+ * `<kai-dialog>` — a centered modal: a dimmed backdrop over the page with a
23
+ * centered panel of arbitrary content. It is the real primitive behind the kind
24
+ * of modal that settings panels and broadcast composers reach for.
25
+ *
26
+ * **How to use** — slot the body, and optionally a `header` and `footer`:
27
+ * ```html
28
+ * <kai-dialog open>
29
+ * <h2 slot="header">Broadcast a message</h2>
30
+ * <textarea placeholder="What's on your mind?"></textarea>
31
+ * <div slot="footer">
32
+ * <button onclick="this.closest('kai-dialog').hide()">Cancel</button>
33
+ * <button>Send</button>
34
+ * </div>
35
+ * </kai-dialog>
36
+ * ```
37
+ *
38
+ * The default slot is the body; `header`/`footer` are optional regions with
39
+ * dividers. The backdrop dims the page; clicking it (or pressing Escape) closes
40
+ * the dialog. Focus moves into the panel on open and is restored on close, and a
41
+ * basic Tab focus trap keeps keyboard focus inside while open.
42
+ *
43
+ * Open state is the standard disclosure surface: settable+reflecting `open`,
44
+ * `kai-open-change`, and `show()`/`hide()`/`toggle()`; seed with `default-open`.
45
+ * It also exposes `focus()` to move focus to the panel. Parts: `backdrop` ·
46
+ * `panel` · `header` · `body` · `footer`.
47
+ */
48
+ defineWebComponent<Props, Events>('kai-dialog', {
49
+ open: undefined,
50
+ defaultOpen: undefined,
51
+ }, (props, ctx) => {
52
+ const { flag, element, expose } = ctx;
53
+ let api: DialogController | undefined;
54
+ let panel: HTMLElement | undefined;
55
+
56
+ // The standard disclosure surface: settable+reflecting `open`, kai-open-change,
57
+ // show/hide/toggle. See ./disclosure. The SOLE emitter of kai-open-change — the
58
+ // primitive's onOpenChange is intentionally NOT wired here to avoid a double
59
+ // dispatch.
60
+ wireDisclosure(ctx, () => api, () => props.open);
61
+
62
+ // Only render the header/footer chrome (border + padding) when the consumer has
63
+ // actually projected content for that slot — otherwise an empty bordered region
64
+ // would show. Tracked off the host's light-DOM children.
65
+ const [hasHeader, setHasHeader] = createSignal(false);
66
+ const [hasFooter, setHasFooter] = createSignal(false);
67
+ const recompute = () => {
68
+ setHasHeader(!!element.querySelector(':scope > [slot="header"]'));
69
+ setHasFooter(!!element.querySelector(':scope > [slot="footer"]'));
70
+ };
71
+ onMount(() => {
72
+ recompute();
73
+ if (typeof MutationObserver === 'function') {
74
+ const obs = new MutationObserver(recompute);
75
+ obs.observe(element, { childList: true });
76
+ onCleanup(() => obs.disconnect());
77
+ }
78
+ });
79
+
80
+ // focus() shadows the host's native focus so it targets the dialog panel inside
81
+ // the shadow root (the WebAwesome/Shoelace convention).
82
+ expose({
83
+ /** Move focus to the dialog panel (no-op while closed). */
84
+ focus: (options?: FocusOptions) => panel?.focus(options),
85
+ });
86
+
87
+ return (
88
+ <Dialog
89
+ defaultOpen={flag('defaultOpen')}
90
+ header={hasHeader() ? <slot name="header" /> : undefined}
91
+ footer={hasFooter() ? <slot name="footer" /> : undefined}
92
+ controllerRef={(a) => (api = a)}
93
+ panelRef={(el) => (panel = el)}
94
+ >
95
+ <slot />
96
+ </Dialog>
97
+ );
98
+ });
@@ -0,0 +1,73 @@
1
+ import { createEffect, untrack, type Accessor } from 'solid-js';
2
+ import type { WebComponentContext } from './define';
3
+
4
+ /** The open controller a primitive hands up via `controllerRef` so a facade can
5
+ * drive + observe its open/closed state. */
6
+ export interface OpenController {
7
+ open: Accessor<boolean>;
8
+ setOpen: (v: boolean) => void;
9
+ }
10
+
11
+ /**
12
+ * Wire the standard Shoelace/WebAwesome-style overlay surface onto an internal
13
+ * open controller — the kit's convention for every open/close element (hover-card,
14
+ * tooltip, popover, menu, model-switcher, scope-picker, collapsibles, …). NOT
15
+ * React-controlled: the element keeps self-managing; this layers the host-facing
16
+ * conveniences on top.
17
+ *
18
+ * Given the primitive's `{ open, setOpen }` controller, it provides:
19
+ * - **`open` reflects** to the host `[open]` attribute (for `:host([open])` CSS),
20
+ * and is **settable** — `el.open = true` / `<el open>` drives it;
21
+ * - **`kai-open-change` `{ open }`** fires once per change (a guarded reflect
22
+ * avoids the attribute⇄prop feedback loop);
23
+ * - **`show()` / `hide()` / `toggle()`** instance methods, gated by `disabled`.
24
+ *
25
+ * The facade still:
26
+ * - declares the `open` / `defaultOpen` / `disabled` props (defaults `undefined`),
27
+ * - seeds the primitive from `defaultOpen` (e.g. via the primitive's own prop),
28
+ * - includes `'kai-open-change': { open: boolean }` in its `Events` map.
29
+ *
30
+ * @param ctx the facade's WebComponentContext (its Events must include kai-open-change).
31
+ * @param getApi returns the open controller once the primitive has handed it up (may be undefined early).
32
+ * @param openProp reads the raw reactive `open` prop (e.g. `() => props.open`) — used to tell
33
+ * "consumer explicitly set open" from "unset" so a `defaultOpen` seed isn't clobbered.
34
+ */
35
+ export function wireDisclosure<E extends { 'kai-open-change': { open: boolean } }>(
36
+ ctx: WebComponentContext<E>,
37
+ getApi: () => OpenController | undefined,
38
+ openProp: () => unknown,
39
+ ): void {
40
+ const { element, dispatch, flag, expose } = ctx;
41
+ let prev: boolean | undefined;
42
+
43
+ // Reflect internal open → the `[open]` host attribute + fire kai-open-change.
44
+ createEffect(() => {
45
+ const api = getApi();
46
+ if (!api) return;
47
+ const o = api.open();
48
+ element.toggleAttribute('open', o);
49
+ if (prev !== undefined && prev !== o) dispatch('kai-open-change', { open: o } as E['kai-open-change']);
50
+ prev = o;
51
+ });
52
+
53
+ // External `open` prop/attr → drive internal state. Only when the consumer has
54
+ // EXPLICITLY set it (so a defaultOpen seed survives mount); the equality guard
55
+ // keeps the reflect above from looping back through the prop.
56
+ createEffect(() => {
57
+ const api = getApi();
58
+ if (!api) return;
59
+ const explicit = openProp() !== undefined || element.hasAttribute('open');
60
+ if (!explicit) return;
61
+ const desired = flag('open');
62
+ if (desired !== untrack(api.open)) api.setOpen(desired);
63
+ });
64
+
65
+ expose({
66
+ /** Open it programmatically (no-op while disabled). */
67
+ show: () => { if (!flag('disabled')) getApi()?.setOpen(true); },
68
+ /** Close it programmatically. */
69
+ hide: () => getApi()?.setOpen(false),
70
+ /** Flip the open state (closes while disabled). */
71
+ toggle: () => { const api = getApi(); if (api) api.setOpen(flag('disabled') ? false : !api.open()); },
72
+ });
73
+ }
@@ -0,0 +1,125 @@
1
+ import { createEffect, createSignal, untrack } from 'solid-js';
2
+ import { defineWebComponent } from './define';
3
+ import { EditableLabel } from '../ui/editable-label';
4
+
5
+ interface Props extends Record<string, unknown> {
6
+ /** The label text — settable and reflected to the `value` attribute. Read
7
+ * `el.value` for live state. */
8
+ value?: string;
9
+ /** Controlled edit state. `el.editing = true` opens the field; reflected to the
10
+ * `editing` attribute. */
11
+ editing?: boolean;
12
+ /** Placeholder shown while editing / when the value is empty. */
13
+ placeholder?: string;
14
+ /** Disable entering edit mode. */
15
+ disabled?: boolean;
16
+ }
17
+
18
+ /** Events fired by `<kai-editable-label>`. */
19
+ interface Events {
20
+ /** Committed a changed value (Enter / blur). */
21
+ 'kai-rename': { value: string };
22
+ /** Edit was cancelled (Esc); the text is restored. */
23
+ 'kai-cancel': Record<string, never>;
24
+ }
25
+
26
+ /**
27
+ * `<kai-editable-label>` — inline rename, built on `kai-input`. Shows `value` as
28
+ * text; double-click (or `el.edit()`, or `editing`) swaps in an autofocused
29
+ * field. Enter or blur commits → `kai-rename` (only when the value changed); Esc
30
+ * cancels → `kai-cancel` (the text is restored).
31
+ *
32
+ * ```html
33
+ * <kai-editable-label value="Project Alpha"></kai-editable-label>
34
+ * <script type="module">
35
+ * import '@kitn.ai/ui/elements';
36
+ * const label = document.querySelector('kai-editable-label');
37
+ * label.addEventListener('kai-rename', (e) => save(e.detail.value));
38
+ * label.edit(); // open the field programmatically
39
+ * </script>
40
+ * ```
41
+ *
42
+ * Methods: `edit()`, `commit()`, `cancel()`. Restyle via `::part(text)` and
43
+ * `::part(input)`.
44
+ */
45
+ defineWebComponent<Props, Events>('kai-editable-label', {
46
+ value: undefined,
47
+ editing: false,
48
+ placeholder: undefined,
49
+ disabled: false,
50
+ }, (props, ctx) => {
51
+ const { element, dispatch, flag, expose } = ctx;
52
+
53
+ // Controlled value, mirrored to the `value` attribute (the kai-segmented pattern).
54
+ const [value, setValue] = createSignal(
55
+ (props.value as string | undefined) ?? element.getAttribute('value') ?? '',
56
+ );
57
+ const coerce = (v: unknown): string =>
58
+ v == null ? (element.getAttribute('value') ?? '') : String(v);
59
+ Object.defineProperty(element, 'value', {
60
+ get: () => value(),
61
+ set: (v: unknown) => { const next = coerce(v); if (untrack(value) !== next) setValue(next); },
62
+ configurable: true,
63
+ enumerable: true,
64
+ });
65
+ createEffect(() => {
66
+ const v = value();
67
+ if (v) {
68
+ if (element.getAttribute('value') !== v) element.setAttribute('value', v);
69
+ } else if (element.hasAttribute('value')) {
70
+ element.removeAttribute('value');
71
+ }
72
+ });
73
+
74
+ // Edit state lives in the facade and drives the primitive. The methods map to
75
+ // the primitive's own gestures so every commit / cancel flows through its guarded
76
+ // Enter/Esc/blur handlers (no double-fire). Controlled `editing` rides the native
77
+ // solid-element prop/attribute: we follow it (so `el.editing = true` /
78
+ // `<kai-editable-label editing>` opens the field) and reflect it, but never
79
+ // override the property with a side-effecting `Object.defineProperty` — doing so
80
+ // fires the setter during solid-element's upgrade and corrupts the signal.
81
+ const [editing, setEditing] = createSignal(flag('editing'));
82
+ createEffect(() => setEditing(flag('editing')));
83
+ createEffect(() => {
84
+ if (editing()) {
85
+ if (!element.hasAttribute('editing')) element.setAttribute('editing', '');
86
+ } else if (element.hasAttribute('editing')) {
87
+ element.removeAttribute('editing');
88
+ }
89
+ });
90
+
91
+ const getInput = (): HTMLInputElement | null =>
92
+ element.shadowRoot?.querySelector<HTMLInputElement>('input') ?? null;
93
+
94
+ const enter = () => { if (!flag('disabled')) setEditing(true); };
95
+ // Blur drives the primitive's blur-commit; Escape drives its cancel.
96
+ const commit = () => { getInput()?.blur(); };
97
+ const cancel = () => {
98
+ const input = getInput();
99
+ if (input) {
100
+ input.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape', bubbles: true, composed: true }));
101
+ } else if (untrack(editing)) {
102
+ setEditing(false);
103
+ dispatch('kai-cancel', {});
104
+ }
105
+ };
106
+
107
+ expose({ edit: enter, commit, cancel });
108
+
109
+ return (
110
+ <>
111
+ <style>{':host{display:inline-flex}'}</style>
112
+ <EditableLabel
113
+ value={value()}
114
+ editing={editing()}
115
+ placeholder={props.placeholder as string | undefined}
116
+ disabled={flag('disabled')}
117
+ onRename={(next) => {
118
+ setEditing(false);
119
+ if (next !== untrack(value)) { setValue(next); dispatch('kai-rename', { value: next }); }
120
+ }}
121
+ onCancel={() => { setEditing(false); dispatch('kai-cancel', {}); }}
122
+ />
123
+ </>
124
+ );
125
+ });
@@ -0,0 +1,310 @@
1
+ {
2
+ "tags": {
3
+ "kai-conversations": "conversation-list",
4
+ "kai-prompt-input": "prompt-input",
5
+ "kai-chat": "chat",
6
+ "kai-workspace": "chat-workspace",
7
+ "kai-thinking-bar": "thinking-bar",
8
+ "kai-model-switcher": "model-switcher",
9
+ "kai-attachments": "attachments",
10
+ "kai-message": "message",
11
+ "kai-markdown": "markdown",
12
+ "kai-code-block": "code-block",
13
+ "kai-reasoning": "reasoning",
14
+ "kai-tool": "tool",
15
+ "kai-context": "context-meter",
16
+ "kai-feedback-bar": "feedback-bar",
17
+ "kai-scope-picker": "chat-scope-picker",
18
+ "kai-suggestions": "prompt-suggestions",
19
+ "kai-file-upload": "file-upload",
20
+ "kai-voice-input": "voice-input",
21
+ "kai-loader": "loader",
22
+ "kai-text-shimmer": "text-shimmer",
23
+ "kai-image": "image",
24
+ "kai-checkpoint": "checkpoint",
25
+ "kai-skills": "message-skills",
26
+ "kai-source": "source",
27
+ "kai-sources": "source",
28
+ "kai-response-stream": "response-stream",
29
+ "kai-empty": "empty",
30
+ "kai-status": "status",
31
+ "kai-nav": "nav",
32
+ "kai-progress-bar": "progress-bar",
33
+ "kai-coachmark": "coachmark",
34
+ "kai-tabs": "tabs",
35
+ "kai-voice-output": "voice-output",
36
+ "kai-screen": "screen",
37
+ "kai-chain-of-thought": "chain-of-thought",
38
+ "kai-resizable": "resizable",
39
+ "kai-resizable-item": "resizable",
40
+ "kai-file-tree": "file-tree",
41
+ "kai-artifact": "artifact",
42
+ "kai-scroll-button": "scroll-button",
43
+ "kai-popover": "popover",
44
+ "kai-switch": "switch",
45
+ "kai-button": "button",
46
+ "kai-avatar": "avatar",
47
+ "kai-badge": "badge",
48
+ "kai-tooltip": "tooltip",
49
+ "kai-notice": "notice",
50
+ "kai-icon": "icon",
51
+ "kai-separator": "separator",
52
+ "kai-scroll-area": "scroll-area",
53
+ "kai-hover-card": "hover-card",
54
+ "kai-skeleton": "skeleton",
55
+ "kai-toast-region": "toast",
56
+ "kai-card": "card",
57
+ "kai-form": "form",
58
+ "kai-link-preview": "link-preview",
59
+ "kai-embed": "embed",
60
+ "kai-confirm": "confirm-card",
61
+ "kai-tasks": "tasks",
62
+ "kai-choice": "choice",
63
+ "kai-cards": "cards",
64
+ "kai-compare": "compare",
65
+ "kai-composer": "composer",
66
+ "kai-menu": "menu",
67
+ "kai-command": "command",
68
+ "kai-prompt-dock": "prompt-dock",
69
+ "kai-segmented": "segmented",
70
+ "kai-settings-group": "settings-group",
71
+ "kai-setting-item": "setting-item",
72
+ "kai-pane": "pane",
73
+ "kai-pane-group": "pane-group",
74
+ "kai-agent-card": "agent-card",
75
+ "kai-dialog": "dialog",
76
+ "kai-input": "input",
77
+ "kai-search": "search",
78
+ "kai-kbd": "kbd",
79
+ "kai-editable-label": "editable-label"
80
+ },
81
+ "files": {
82
+ "conversation-list": [
83
+ "kai-conversations"
84
+ ],
85
+ "prompt-input": [
86
+ "kai-prompt-input"
87
+ ],
88
+ "chat": [
89
+ "kai-chat"
90
+ ],
91
+ "chat-workspace": [
92
+ "kai-workspace"
93
+ ],
94
+ "thinking-bar": [
95
+ "kai-thinking-bar"
96
+ ],
97
+ "model-switcher": [
98
+ "kai-model-switcher"
99
+ ],
100
+ "attachments": [
101
+ "kai-attachments"
102
+ ],
103
+ "message": [
104
+ "kai-message"
105
+ ],
106
+ "markdown": [
107
+ "kai-markdown"
108
+ ],
109
+ "code-block": [
110
+ "kai-code-block"
111
+ ],
112
+ "reasoning": [
113
+ "kai-reasoning"
114
+ ],
115
+ "tool": [
116
+ "kai-tool"
117
+ ],
118
+ "context-meter": [
119
+ "kai-context"
120
+ ],
121
+ "feedback-bar": [
122
+ "kai-feedback-bar"
123
+ ],
124
+ "chat-scope-picker": [
125
+ "kai-scope-picker"
126
+ ],
127
+ "prompt-suggestions": [
128
+ "kai-suggestions"
129
+ ],
130
+ "file-upload": [
131
+ "kai-file-upload"
132
+ ],
133
+ "voice-input": [
134
+ "kai-voice-input"
135
+ ],
136
+ "loader": [
137
+ "kai-loader"
138
+ ],
139
+ "text-shimmer": [
140
+ "kai-text-shimmer"
141
+ ],
142
+ "image": [
143
+ "kai-image"
144
+ ],
145
+ "checkpoint": [
146
+ "kai-checkpoint"
147
+ ],
148
+ "message-skills": [
149
+ "kai-skills"
150
+ ],
151
+ "source": [
152
+ "kai-source",
153
+ "kai-sources"
154
+ ],
155
+ "response-stream": [
156
+ "kai-response-stream"
157
+ ],
158
+ "empty": [
159
+ "kai-empty"
160
+ ],
161
+ "status": [
162
+ "kai-status"
163
+ ],
164
+ "nav": [
165
+ "kai-nav"
166
+ ],
167
+ "progress-bar": [
168
+ "kai-progress-bar"
169
+ ],
170
+ "coachmark": [
171
+ "kai-coachmark"
172
+ ],
173
+ "tabs": [
174
+ "kai-tabs"
175
+ ],
176
+ "voice-output": [
177
+ "kai-voice-output"
178
+ ],
179
+ "screen": [
180
+ "kai-screen"
181
+ ],
182
+ "chain-of-thought": [
183
+ "kai-chain-of-thought"
184
+ ],
185
+ "resizable": [
186
+ "kai-resizable",
187
+ "kai-resizable-item"
188
+ ],
189
+ "file-tree": [
190
+ "kai-file-tree"
191
+ ],
192
+ "artifact": [
193
+ "kai-artifact"
194
+ ],
195
+ "scroll-button": [
196
+ "kai-scroll-button"
197
+ ],
198
+ "popover": [
199
+ "kai-popover"
200
+ ],
201
+ "switch": [
202
+ "kai-switch"
203
+ ],
204
+ "button": [
205
+ "kai-button"
206
+ ],
207
+ "avatar": [
208
+ "kai-avatar"
209
+ ],
210
+ "badge": [
211
+ "kai-badge"
212
+ ],
213
+ "tooltip": [
214
+ "kai-tooltip"
215
+ ],
216
+ "notice": [
217
+ "kai-notice"
218
+ ],
219
+ "icon": [
220
+ "kai-icon"
221
+ ],
222
+ "separator": [
223
+ "kai-separator"
224
+ ],
225
+ "scroll-area": [
226
+ "kai-scroll-area"
227
+ ],
228
+ "hover-card": [
229
+ "kai-hover-card"
230
+ ],
231
+ "skeleton": [
232
+ "kai-skeleton"
233
+ ],
234
+ "toast": [
235
+ "kai-toast-region"
236
+ ],
237
+ "card": [
238
+ "kai-card"
239
+ ],
240
+ "form": [
241
+ "kai-form"
242
+ ],
243
+ "link-preview": [
244
+ "kai-link-preview"
245
+ ],
246
+ "embed": [
247
+ "kai-embed"
248
+ ],
249
+ "confirm-card": [
250
+ "kai-confirm"
251
+ ],
252
+ "tasks": [
253
+ "kai-tasks"
254
+ ],
255
+ "choice": [
256
+ "kai-choice"
257
+ ],
258
+ "cards": [
259
+ "kai-cards"
260
+ ],
261
+ "compare": [
262
+ "kai-compare"
263
+ ],
264
+ "composer": [
265
+ "kai-composer"
266
+ ],
267
+ "menu": [
268
+ "kai-menu"
269
+ ],
270
+ "command": [
271
+ "kai-command"
272
+ ],
273
+ "prompt-dock": [
274
+ "kai-prompt-dock"
275
+ ],
276
+ "segmented": [
277
+ "kai-segmented"
278
+ ],
279
+ "settings-group": [
280
+ "kai-settings-group"
281
+ ],
282
+ "setting-item": [
283
+ "kai-setting-item"
284
+ ],
285
+ "pane": [
286
+ "kai-pane"
287
+ ],
288
+ "pane-group": [
289
+ "kai-pane-group"
290
+ ],
291
+ "agent-card": [
292
+ "kai-agent-card"
293
+ ],
294
+ "dialog": [
295
+ "kai-dialog"
296
+ ],
297
+ "input": [
298
+ "kai-input"
299
+ ],
300
+ "search": [
301
+ "kai-search"
302
+ ],
303
+ "kbd": [
304
+ "kai-kbd"
305
+ ],
306
+ "editable-label": [
307
+ "kai-editable-label"
308
+ ]
309
+ }
310
+ }