@kitn.ai/ui 0.25.2 → 0.26.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 (409) hide show
  1. package/README.md +2 -2
  2. package/dist/components/attachment-types.d.ts +46 -1
  3. package/dist/components/attachments.d.ts +31 -0
  4. package/dist/components/audio-visualizer/fit-scale.d.ts +50 -0
  5. package/dist/components/audio-visualizer/index.d.ts +15 -1
  6. package/dist/components/audio-visualizer/variant-bar.d.ts +24 -1
  7. package/dist/components/chat-thread.d.ts +3 -41
  8. package/dist/components/code-block.d.ts +22 -0
  9. package/dist/components/conversation-item.d.ts +54 -1
  10. package/dist/components/conversation-list.d.ts +65 -0
  11. package/dist/components/form.d.ts +42 -0
  12. package/dist/components/message.d.ts +7 -0
  13. package/dist/components/toast.d.ts +2 -1
  14. package/dist/components/voice-input.d.ts +8 -0
  15. package/dist/components/voice-output.d.ts +12 -1
  16. package/dist/components/workspace-shell.d.ts +87 -0
  17. package/dist/{create-tween-B5Y4Im8G.js → create-tween-BFT6c-Y8.js} +1 -1
  18. package/dist/{create-tween-4z1XYLkR.js → create-tween-CJNlzoaO.js} +1 -1
  19. package/dist/{create-tween-CUzOlaMS.js → create-tween-CQED4T0g.js} +1 -1
  20. package/dist/custom-elements.json +2931 -2572
  21. package/dist/diagnostics/hook.d.ts +81 -0
  22. package/dist/diagnostics/index.d.ts +7 -0
  23. package/dist/diagnostics/report-request.d.ts +61 -0
  24. package/dist/diagnostics.d.ts +5 -0
  25. package/dist/diagnostics.js +209 -0
  26. package/dist/elements/agent-card.js +1 -1
  27. package/dist/elements/artifact.js +1 -1
  28. package/dist/elements/attachments.js +1 -1
  29. package/dist/elements/audio-visualizer.js +1 -1
  30. package/dist/elements/autoloader.js +1 -1
  31. package/dist/elements/avatar.js +1 -1
  32. package/dist/elements/badge.js +1 -1
  33. package/dist/elements/button.js +1 -1
  34. package/dist/elements/card.js +1 -1
  35. package/dist/elements/cards.js +1 -1
  36. package/dist/elements/chain-of-thought.js +1 -1
  37. package/dist/elements/chat-scope-picker.js +1 -1
  38. package/dist/elements/chat-workspace.js +1 -1
  39. package/dist/elements/chat.js +1 -1
  40. package/dist/elements/checkpoint.js +1 -1
  41. package/dist/elements/choice.js +1 -1
  42. package/dist/elements/chunks/{Icon-b5A8hlHs.js → Icon--Y8vsFal.js} +1 -1
  43. package/dist/elements/chunks/action-icons-D9u3OzYW.js +1 -0
  44. package/dist/elements/chunks/arrow-left-CVh1TeN7.js +1 -0
  45. package/dist/elements/chunks/{artifact-BSuPYFHY.js → artifact-BkYcfIlZ.js} +1 -1
  46. package/dist/elements/chunks/attachments-DwfNlubq.js +1 -0
  47. package/dist/elements/chunks/audio-visualizer-D7lB6mvR.js +1 -0
  48. package/dist/elements/chunks/{badge-TIMiJFKc.js → badge-Q0-Cmwzz.js} +1 -1
  49. package/dist/elements/chunks/{button-B9okqG73.js → button-flUbeufF.js} +1 -1
  50. package/dist/elements/chunks/{card-renderer-CSoTL_e1.js → card-renderer-3Dyl-FpN.js} +1 -1
  51. package/dist/elements/chunks/check-B5kBPKeo.js +1 -0
  52. package/dist/elements/chunks/chevron-down-DZ1GS39h.js +1 -0
  53. package/dist/elements/chunks/chevron-right-CvP7OUd2.js +1 -0
  54. package/dist/elements/chunks/{choice-card-CGMc3kek.js → choice-card-D4QUIOWZ.js} +1 -1
  55. package/dist/elements/chunks/circle-CDf9g6MQ.js +1 -0
  56. package/dist/elements/chunks/circle-check-CA47Nqbz.js +1 -0
  57. package/dist/elements/chunks/{circle-x-mhH7pOK2.js → circle-x-CJ_HVbC8.js} +1 -1
  58. package/dist/elements/chunks/code-block-BdLiTitd.js +1 -0
  59. package/dist/elements/chunks/collapsible-BzbXpPzr.js +1 -0
  60. package/dist/elements/chunks/{composer-CZZmtYOT.js → composer-Byve-n8K.js} +2 -2
  61. package/dist/elements/chunks/{confirm-card-BWjf2-xo.js → confirm-card-B0flE3MN.js} +1 -1
  62. package/dist/elements/chunks/context-VLIL3sJ-.js +1 -0
  63. package/dist/elements/chunks/controllable-DTwTIlwp.js +1 -0
  64. package/dist/elements/chunks/conversation-item-BDztezOG.js +1 -0
  65. package/dist/elements/chunks/copy-Nf-kqxXH.js +1 -0
  66. package/dist/elements/chunks/{create-tween-CUrM6D_o.js → create-tween-c4Z8TDYz.js} +2 -2
  67. package/dist/elements/chunks/default-input-C2iLFq0b.js +1 -0
  68. package/dist/elements/chunks/define-wjHR1MkU.js +1 -0
  69. package/dist/elements/chunks/disclosure-CcNbyLy0.js +1 -0
  70. package/dist/elements/chunks/{download-DnCyWFJE.js → download-C4V7tBdb.js} +1 -1
  71. package/dist/elements/chunks/dropdown-BgWTthUx.js +1 -0
  72. package/dist/elements/chunks/{ellipsis-CVxqfsDZ.js → ellipsis-7gU33mL2.js} +1 -1
  73. package/dist/elements/chunks/embed-D3KewsIJ.js +1 -0
  74. package/dist/elements/chunks/{external-link-DG2sRdQL.js → external-link-CSOEsNlx.js} +1 -1
  75. package/dist/elements/chunks/{file-text-D0J9F6M7.js → file-text-D1G8khle.js} +1 -1
  76. package/dist/elements/chunks/{file-tree-yGWNK0Js.js → file-tree-zvB2i7P9.js} +1 -1
  77. package/dist/elements/chunks/{folder-NV1pi_ud.js → folder-WW2LGLid.js} +1 -1
  78. package/dist/elements/chunks/form-CQirdC4W.js +1 -0
  79. package/dist/elements/chunks/hover-card-CJJkfHTK.js +1 -0
  80. package/dist/elements/chunks/icon-Cfgmf4fa.js +1 -0
  81. package/dist/elements/chunks/{info-C8r5Q6cc.js → info-DX3YMOt6.js} +1 -1
  82. package/dist/elements/chunks/input-BtW9U6Sq.js +1 -0
  83. package/dist/elements/chunks/{kbd-OGJDUT-O.js → kbd-LGXwuT_V.js} +1 -1
  84. package/dist/elements/chunks/{link-BdsfLB7b.js → link-2My69BqT.js} +1 -1
  85. package/dist/elements/chunks/{link-preview-Cf5KOP-i.js → link-preview-OQ9IEq0f.js} +1 -1
  86. package/dist/elements/chunks/{loader-B5QzK_8_.js → loader-iOxc_Tu-.js} +1 -1
  87. package/dist/elements/chunks/{markdown-DbozyYqa.js → markdown-DgBFaGAz.js} +1 -1
  88. package/dist/elements/chunks/{message-DtXKPqiR.js → message-VMZohrXx.js} +1 -1
  89. package/dist/elements/chunks/message-circle-CpXMM-_n.js +1 -0
  90. package/dist/elements/chunks/message-square-DxcWtETQ.js +1 -0
  91. package/dist/elements/chunks/message-tZmV2A3p.js +1 -0
  92. package/dist/elements/chunks/{minimize-2-SegJ_oku.js → minimize-2-DPIUKTrT.js} +1 -1
  93. package/dist/elements/chunks/{model-switcher-D7JrFFHp.js → model-switcher-DsT8tFB0.js} +1 -1
  94. package/dist/elements/chunks/{overlay-CV7z2YuX.js → overlay-DuiwdXjm.js} +1 -1
  95. package/dist/elements/chunks/{paperclip-Bg0ITU3b.js → paperclip-CRZVp4z_.js} +1 -1
  96. package/dist/elements/chunks/{progress-bar-D1_rzt6N.js → progress-bar-DNy66e_E.js} +1 -1
  97. package/dist/elements/chunks/{prompt-suggestion-D5Sm8xF1.js → prompt-suggestion-Bn64Nl7L.js} +1 -1
  98. package/dist/elements/chunks/reasoning-Emn9N4-T.js +1 -0
  99. package/dist/elements/chunks/{resizable-Dpzjlvp4.js → resizable-D181b4fM.js} +1 -1
  100. package/dist/elements/chunks/{rotate-cw-DzVDJOA1.js → rotate-cw-CPWe37D9.js} +1 -1
  101. package/dist/elements/chunks/{scroll-area-93A1bbeG.js → scroll-area-ClZkZxIk.js} +1 -1
  102. package/dist/elements/chunks/scroll-button-DPE-t3x_.js +1 -0
  103. package/dist/elements/chunks/{separator-DH2r_ZSZ.js → separator-CeJHQqLW.js} +1 -1
  104. package/dist/elements/chunks/{settings-BFMOd6yB.js → settings-CqaHgJF9.js} +1 -1
  105. package/dist/elements/chunks/{settings-group-B3VZKIcz.js → settings-group-CjqjLCOn.js} +1 -1
  106. package/dist/elements/chunks/share-CyfnNEqp.js +1 -0
  107. package/dist/elements/chunks/{skeleton-N8BuWYmf.js → skeleton-D8akBnKS.js} +1 -1
  108. package/dist/elements/chunks/slots-DaNjX0rc.js +1 -0
  109. package/dist/elements/chunks/{source-w9V0NnBn.js → source-UWCvmVak.js} +1 -1
  110. package/dist/elements/chunks/{star-DHvACxtm.js → star-DoHFAikQ.js} +1 -1
  111. package/dist/elements/chunks/store-Cjq0qwYN.js +1 -0
  112. package/dist/elements/chunks/{tasks-card-lPxoodlA.js → tasks-card-CmZ5xh6v.js} +1 -1
  113. package/dist/elements/chunks/{text-shimmer-BY_rI3s5.js → text-shimmer-DYn09zrz.js} +1 -1
  114. package/dist/elements/chunks/textarea-skiGHURM.js +1 -0
  115. package/dist/elements/chunks/{thumbs-up-DQe0hvkZ.js → thumbs-up-DX2Ijk3H.js} +1 -1
  116. package/dist/elements/chunks/{toast-store-VUZZBhzH.js → toast-store-CFnQpThX.js} +1 -1
  117. package/dist/elements/chunks/{tool-C1YtxwPu.js → tool-DKQ2D1DP.js} +1 -1
  118. package/dist/elements/chunks/{tooltip-BqwnFWhn.js → tooltip-B0G99y8w.js} +1 -1
  119. package/dist/elements/chunks/{triangle-alert-B6or7F5u.js → triangle-alert-F9cyUEyy.js} +1 -1
  120. package/dist/elements/chunks/{use-card-resolution-DJg32jGH.js → use-card-resolution-DoA2f_EU.js} +1 -1
  121. package/dist/elements/chunks/{variant-aurora-QXTZPyST.js → variant-aurora-qt6Zct8M.js} +2 -2
  122. package/dist/elements/chunks/variant-custom-tJp22_BQ.js +1 -0
  123. package/dist/{variant-wave-BwzrHD1s.js → elements/chunks/variant-wave-CaQ5ti39.js} +2 -2
  124. package/dist/elements/chunks/x-B6UnOiLw.js +1 -0
  125. package/dist/elements/coachmark.js +1 -1
  126. package/dist/elements/code-block.js +1 -1
  127. package/dist/elements/command.js +1 -1
  128. package/dist/elements/compare.js +1 -1
  129. package/dist/elements/composer.js +1 -1
  130. package/dist/elements/confirm-card.js +1 -1
  131. package/dist/elements/context-meter.js +1 -1
  132. package/dist/elements/conversation-item.d.ts +1 -0
  133. package/dist/elements/conversation-item.js +1 -0
  134. package/dist/elements/conversation-list.js +1 -1
  135. package/dist/elements/default-input.d.ts +3 -3
  136. package/dist/elements/define.d.ts +27 -0
  137. package/dist/elements/diagnostic-events.d.ts +74 -0
  138. package/dist/elements/dialog.js +1 -1
  139. package/dist/elements/dock.d.ts +1 -0
  140. package/dist/elements/dock.js +149 -0
  141. package/dist/elements/dropdown.d.ts +1 -0
  142. package/dist/elements/dropdown.js +1 -0
  143. package/dist/elements/editable-label.js +1 -1
  144. package/dist/elements/element-diagnostics.d.ts +81 -0
  145. package/dist/elements/embed.js +1 -1
  146. package/dist/elements/empty.js +1 -1
  147. package/dist/elements/feedback-bar.js +1 -1
  148. package/dist/elements/file-tree.js +1 -1
  149. package/dist/elements/file-upload.js +1 -1
  150. package/dist/elements/form.js +1 -1
  151. package/dist/elements/hover-card.js +1 -1
  152. package/dist/elements/icon.js +1 -1
  153. package/dist/elements/image.js +1 -1
  154. package/dist/elements/input.js +1 -1
  155. package/dist/elements/kbd.js +1 -1
  156. package/dist/elements/link-preview.js +1 -1
  157. package/dist/elements/loader.js +1 -1
  158. package/dist/elements/markdown.js +1 -1
  159. package/dist/elements/menu.js +1 -1
  160. package/dist/elements/message-skills.js +1 -1
  161. package/dist/elements/message.js +1 -1
  162. package/dist/elements/model-switcher.js +1 -1
  163. package/dist/elements/nav.js +1 -1
  164. package/dist/elements/notice.js +1 -1
  165. package/dist/elements/pane-group.js +1 -1
  166. package/dist/elements/pane.js +1 -1
  167. package/dist/elements/popover.js +1 -1
  168. package/dist/elements/progress-bar.js +1 -1
  169. package/dist/elements/prompt-dock.js +1 -1
  170. package/dist/elements/prompt-input.js +1 -1
  171. package/dist/elements/prompt-suggestions.js +1 -1
  172. package/dist/elements/reasoning.js +1 -1
  173. package/dist/elements/register.d.ts +2 -0
  174. package/dist/elements/remote.js +1 -1
  175. package/dist/elements/resizable.js +1 -1
  176. package/dist/elements/response-stream.js +3 -3
  177. package/dist/elements/screen.js +1 -1
  178. package/dist/elements/scroll-area.js +1 -1
  179. package/dist/elements/scroll-button.js +1 -1
  180. package/dist/elements/search.js +1 -1
  181. package/dist/elements/segmented.js +1 -1
  182. package/dist/elements/separator.js +1 -1
  183. package/dist/elements/setting-item.js +1 -1
  184. package/dist/elements/settings-group.js +1 -1
  185. package/dist/elements/skeleton.js +1 -1
  186. package/dist/elements/slots.d.ts +35 -3
  187. package/dist/elements/source.js +1 -1
  188. package/dist/elements/status.js +1 -1
  189. package/dist/elements/switch.js +1 -1
  190. package/dist/elements/tabs.js +1 -1
  191. package/dist/elements/tasks.js +1 -1
  192. package/dist/elements/text-shimmer.js +1 -1
  193. package/dist/elements/thinking-bar.js +1 -1
  194. package/dist/elements/thread.js +1 -1
  195. package/dist/elements/toast.js +1 -1
  196. package/dist/elements/tool.js +1 -1
  197. package/dist/elements/tooltip.js +1 -1
  198. package/dist/elements/voice-input.js +1 -1
  199. package/dist/elements/voice-output.js +1 -1
  200. package/dist/elements.d.ts +232 -148
  201. package/dist/index.d.ts +2 -0
  202. package/dist/index.js +5456 -4931
  203. package/dist/index.server.js +4142 -3669
  204. package/dist/kai-provider.es.js +40 -40
  205. package/dist/kai.es.js +1 -1
  206. package/dist/llms/llms-full.txt +184 -69
  207. package/dist/llms/llms.txt +3 -3
  208. package/dist/mcp.es.js +2669 -546
  209. package/dist/primitives/use-resize-observer.d.ts +23 -0
  210. package/dist/primitives/use-speech-recognition.d.ts +8 -0
  211. package/dist/primitives/use-text-stream.d.ts +5 -0
  212. package/dist/react/index.d.ts +115 -266
  213. package/dist/react.js +247 -221
  214. package/dist/register-impl-DpE7icIb.js +293 -0
  215. package/dist/schemas/index.d.ts +1 -1
  216. package/dist/schemas/tool-defs.d.ts +35 -0
  217. package/dist/schemas.js +403 -310
  218. package/dist/{solid-BMuDmFo_.js → solid-BtdqNZI7.js} +8435 -7394
  219. package/dist/{solid-CGYNdLRR.js → solid-CnavwBye.js} +5987 -5035
  220. package/dist/solid.d.ts +5 -0
  221. package/dist/solid.js +210 -203
  222. package/dist/solid.server.js +210 -203
  223. package/dist/state/index.d.ts +4 -0
  224. package/dist/state/persistence.d.ts +51 -0
  225. package/dist/state/stream.d.ts +50 -0
  226. package/dist/state/threads.d.ts +71 -0
  227. package/dist/state.js +269 -169
  228. package/dist/types.d.ts +4 -2
  229. package/dist/ui/dock.d.ts +109 -0
  230. package/dist/ui/hover-card.d.ts +44 -0
  231. package/dist/{variant-aurora-DwSOfraQ.js → variant-aurora-B8II3-I1.js} +27 -27
  232. package/dist/{variant-aurora-wKvAQ5wp.js → variant-aurora-CMNWOSJR.js} +28 -28
  233. package/dist/{variant-aurora-XEkPT0_z.js → variant-aurora-CcuDMWwQ.js} +2 -2
  234. package/dist/{variant-custom-eFIg2XWQ.js → variant-custom-BdvYC7af.js} +40 -40
  235. package/dist/{variant-custom-BhS9wIpU.js → variant-custom-C714mqKl.js} +65 -65
  236. package/dist/variant-custom-L16JLLZy.js +1 -0
  237. package/dist/{elements/chunks/variant-wave-DDCwhLas.js → variant-wave-2S4La2Ka.js} +2 -2
  238. package/dist/{variant-wave-CbVsmgwT.js → variant-wave-D7ruiA1W.js} +25 -25
  239. package/dist/{variant-wave-CUWGx9Bn.js → variant-wave-ecwykeyL.js} +21 -21
  240. package/dist/wire/chunk.d.ts +47 -0
  241. package/dist/wire/diagnostics.d.ts +575 -0
  242. package/dist/wire/encode-probe.d.ts +70 -0
  243. package/dist/wire/encode.d.ts +24 -0
  244. package/dist/wire/index.d.ts +2 -0
  245. package/dist/wire/sse.d.ts +10 -2
  246. package/dist/wire.js +917 -480
  247. package/frameworks/react/index.tsx +132 -93
  248. package/llms-full.txt +184 -69
  249. package/llms.txt +3 -3
  250. package/package.json +26 -6
  251. package/src/agent-tooling/archetypes.ts +41 -9
  252. package/src/agent-tooling/catalog/README.md +676 -0
  253. package/src/agent-tooling/catalog/catalog-types.ts +231 -0
  254. package/src/agent-tooling/catalog/fabrications.ts +96 -0
  255. package/src/agent-tooling/catalog/invariants.ts +284 -0
  256. package/src/agent-tooling/catalog/labs-titles.ts +114 -0
  257. package/src/agent-tooling/catalog/scenarios.ts +87 -0
  258. package/src/agent-tooling/catalog/surfaces.ts +275 -0
  259. package/src/agent-tooling/integrations/anthropic.ts +7 -1
  260. package/src/agent-tooling/integrations/cloudflare.ts +43 -2
  261. package/src/agent-tooling/integrations/langgraph.ts +7 -1
  262. package/src/agent-tooling/integrations/mastra.ts +7 -1
  263. package/src/agent-tooling/integrations/mock.ts +92 -17
  264. package/src/agent-tooling/integrations/ollama.ts +7 -1
  265. package/src/agent-tooling/integrations/openai.ts +7 -1
  266. package/src/agent-tooling/integrations/openrouter.ts +7 -1
  267. package/src/agent-tooling/integrations/pi.ts +56 -1
  268. package/src/agent-tooling/integrations/vercel-ai-sdk.ts +7 -1
  269. package/src/agent-tooling/mcp/css-raw.d.ts +12 -0
  270. package/src/agent-tooling/mcp/manifest.ts +100 -1
  271. package/src/agent-tooling/mcp/server.ts +61 -5
  272. package/src/agent-tooling/mcp/tools/reference.ts +440 -4
  273. package/src/agent-tooling/mcp/tools/scaffold.ts +1834 -307
  274. package/src/agent-tooling/mcp/tools/theme.ts +146 -30
  275. package/src/agent-tooling/mcp/validate-args.ts +141 -0
  276. package/src/agent-tooling/registry.ts +19 -7
  277. package/src/agent-tooling/route-emit.ts +26 -2
  278. package/src/components/attachment-types.ts +47 -1
  279. package/src/components/attachments.tsx +169 -22
  280. package/src/components/audio-visualizer/fit-scale.ts +112 -0
  281. package/src/components/audio-visualizer/index.tsx +80 -3
  282. package/src/components/audio-visualizer/variant-aurora.tsx +10 -4
  283. package/src/components/audio-visualizer/variant-bar.tsx +38 -6
  284. package/src/components/audio-visualizer/variant-custom.tsx +8 -2
  285. package/src/components/audio-visualizer/variant-grid.tsx +16 -11
  286. package/src/components/audio-visualizer/variant-radial.tsx +15 -10
  287. package/src/components/audio-visualizer/variant-wave.tsx +7 -2
  288. package/src/components/chat-container.tsx +4 -1
  289. package/src/components/chat-thread.tsx +36 -7
  290. package/src/components/code-block.tsx +79 -3
  291. package/src/components/composer.tsx +8 -1
  292. package/src/components/conversation-item.tsx +114 -4
  293. package/src/components/conversation-list.tsx +212 -12
  294. package/src/components/embed.tsx +4 -0
  295. package/src/components/form.tsx +41 -14
  296. package/src/components/message.tsx +75 -5
  297. package/src/components/response-stream.tsx +13 -7
  298. package/src/components/screen.tsx +5 -0
  299. package/src/components/scroll-button.tsx +7 -0
  300. package/src/components/toast.tsx +11 -5
  301. package/src/components/voice-input.tsx +35 -3
  302. package/src/components/voice-output.tsx +46 -6
  303. package/src/components/workspace-shell.tsx +285 -0
  304. package/src/diagnostics/hook.ts +352 -0
  305. package/src/diagnostics/index.ts +82 -0
  306. package/src/diagnostics/report-request.ts +296 -0
  307. package/src/elements/attachments.tsx +6 -7
  308. package/src/elements/audio-visualizer.tsx +48 -4
  309. package/src/elements/chat-workspace.tsx +159 -287
  310. package/src/elements/chat.tsx +12 -9
  311. package/src/elements/code-block.tsx +19 -1
  312. package/src/elements/command.tsx +4 -1
  313. package/src/elements/compiled.css +1 -1
  314. package/src/elements/conversation-item.tsx +80 -0
  315. package/src/elements/conversation-list.tsx +60 -11
  316. package/src/elements/default-input.tsx +5 -5
  317. package/src/elements/define.tsx +168 -8
  318. package/src/elements/diagnostic-events.ts +114 -0
  319. package/src/elements/dialog.tsx +47 -0
  320. package/src/elements/disclosure.ts +34 -12
  321. package/src/elements/dock.tsx +204 -0
  322. package/src/elements/dropdown.tsx +123 -0
  323. package/src/elements/element-diagnostics.ts +392 -0
  324. package/src/elements/element-manifest.json +12 -0
  325. package/src/elements/element-meta.json +672 -439
  326. package/src/elements/element-nonscalar.json +170 -0
  327. package/src/elements/element-types.d.ts +232 -148
  328. package/src/elements/menu.tsx +13 -0
  329. package/src/elements/prompt-dock.tsx +2 -1
  330. package/src/elements/prompt-input.tsx +8 -8
  331. package/src/elements/register-impl.ts +46 -0
  332. package/src/elements/register.ts +28 -0
  333. package/src/elements/resizable.tsx +52 -25
  334. package/src/elements/scroll-button.tsx +5 -0
  335. package/src/elements/slots.ts +107 -12
  336. package/src/elements/styles.css +30 -6
  337. package/src/elements/thinking-bar.tsx +16 -7
  338. package/src/elements/toast.tsx +3 -0
  339. package/src/elements/tool.tsx +26 -5
  340. package/src/elements/voice-input.tsx +11 -2
  341. package/src/elements/voice-output.tsx +16 -3
  342. package/src/index.ts +2 -0
  343. package/src/primitives/use-resize-observer.ts +33 -0
  344. package/src/primitives/use-speech-recognition.ts +12 -1
  345. package/src/primitives/use-stick-to-bottom.ts +34 -2
  346. package/src/primitives/use-text-stream.ts +33 -2
  347. package/src/remote/provider-runtime.ts +6 -3
  348. package/src/schemas/index.ts +1 -0
  349. package/src/schemas/tool-defs.ts +297 -6
  350. package/src/solid.ts +5 -0
  351. package/src/state/index.ts +12 -0
  352. package/src/state/persistence.ts +180 -0
  353. package/src/state/stream.ts +71 -4
  354. package/src/state/threads.ts +142 -0
  355. package/src/types.ts +4 -2
  356. package/src/ui/dialog.tsx +6 -0
  357. package/src/ui/dock.tsx +445 -0
  358. package/src/ui/dropdown.tsx +67 -23
  359. package/src/ui/hover-card.tsx +156 -6
  360. package/src/ui/input.tsx +29 -10
  361. package/src/ui/resizable.tsx +11 -0
  362. package/src/wire/chunk.ts +47 -0
  363. package/src/wire/consume.ts +185 -26
  364. package/src/wire/diagnostics.ts +727 -0
  365. package/src/wire/encode-probe.ts +214 -0
  366. package/src/wire/encode.ts +267 -14
  367. package/src/wire/formats/anthropic.ts +8 -1
  368. package/src/wire/formats/openai.ts +5 -0
  369. package/src/wire/index.ts +22 -0
  370. package/src/wire/read.ts +250 -6
  371. package/src/wire/sse.ts +16 -3
  372. package/dist/elements/chunks/action-icons-DW9muWrY.js +0 -1
  373. package/dist/elements/chunks/arrow-left-iJVnQmxA.js +0 -1
  374. package/dist/elements/chunks/attachments-CL6TaqIb.js +0 -1
  375. package/dist/elements/chunks/audio-visualizer-BuUqQmaO.js +0 -1
  376. package/dist/elements/chunks/chat-thread-DxoKaStk.js +0 -1
  377. package/dist/elements/chunks/check-MdLzbxrm.js +0 -1
  378. package/dist/elements/chunks/chevron-down-MK7IzDqe.js +0 -1
  379. package/dist/elements/chunks/chevron-right-C5jXhmtV.js +0 -1
  380. package/dist/elements/chunks/circle-BG7VkPep.js +0 -1
  381. package/dist/elements/chunks/circle-check-GqvO2UBs.js +0 -1
  382. package/dist/elements/chunks/code-block-ClhQO9RW.js +0 -1
  383. package/dist/elements/chunks/collapsible-DBcBkFPh.js +0 -1
  384. package/dist/elements/chunks/context-hKjNqiyQ.js +0 -1
  385. package/dist/elements/chunks/conversation-list-CsGJjSKG.js +0 -1
  386. package/dist/elements/chunks/default-input-B1Mem5wu.js +0 -1
  387. package/dist/elements/chunks/define-B_tXMYRm.js +0 -1
  388. package/dist/elements/chunks/disclosure-DAoYOKew.js +0 -1
  389. package/dist/elements/chunks/dropdown-CmNna5lT.js +0 -1
  390. package/dist/elements/chunks/embed-CjAD2jSi.js +0 -1
  391. package/dist/elements/chunks/form-Cp8Y00Wn.js +0 -1
  392. package/dist/elements/chunks/hover-card-6KtXpLwT.js +0 -1
  393. package/dist/elements/chunks/icon-97R8SR2p.js +0 -1
  394. package/dist/elements/chunks/input-DrseEjhp.js +0 -1
  395. package/dist/elements/chunks/message-CE4k-qaj.js +0 -1
  396. package/dist/elements/chunks/message-square-C9ovmtOo.js +0 -1
  397. package/dist/elements/chunks/reasoning-BrxQfpfI.js +0 -1
  398. package/dist/elements/chunks/scroll-button-CrTo7wm4.js +0 -1
  399. package/dist/elements/chunks/share-DgNbkJKY.js +0 -1
  400. package/dist/elements/chunks/slots-CIw9RlAe.js +0 -1
  401. package/dist/elements/chunks/store-HIPGhNz9.js +0 -1
  402. package/dist/elements/chunks/textarea-DPfuhswM.js +0 -1
  403. package/dist/elements/chunks/variant-custom-D5ZlmziF.js +0 -1
  404. package/dist/elements/chunks/video-Bb86fVYI.js +0 -1
  405. package/dist/elements/chunks/x-BOhjBeOd.js +0 -1
  406. package/dist/primitives/card-validate-generator.testlib.d.ts +0 -20
  407. package/dist/register-impl-DGmGzrEM.js +0 -145
  408. package/dist/variant-custom-MkTNTycd.js +0 -1
  409. package/src/primitives/card-validate-generator.testlib.ts +0 -38
package/dist/react.js CHANGED
@@ -1,11 +1,11 @@
1
1
  "use client";
2
- import { forwardRef as A, useRef as x, useImperativeHandle as E, useLayoutEffect as w, createElement as V, useState as I, useCallback as g, useMemo as F } from "react";
2
+ import { forwardRef as E, useRef as x, useImperativeHandle as M, useLayoutEffect as T, createElement as V, useState as I, useCallback as k, useMemo as L } from "react";
3
3
  const O = /* @__PURE__ */ new Set();
4
- let T;
5
- function P(e, t) {
4
+ let w;
5
+ function D(e, t) {
6
6
  if (!(!t || O.has(e)) && !(typeof window > "u" || typeof customElements > "u") && (O.add(e), !customElements.get(e))) {
7
- if (T) {
8
- T.catch(() => t());
7
+ if (w) {
8
+ w.catch(() => t());
9
9
  return;
10
10
  }
11
11
  t();
@@ -13,40 +13,40 @@ function P(e, t) {
13
13
  }
14
14
  function ae() {
15
15
  if (!(typeof window > "u" || typeof customElements > "u"))
16
- return T ?? (T = import("@kitn.ai/ui/elements")), T;
16
+ return w ?? (w = import("@kitn.ai/ui/elements")), w;
17
17
  }
18
18
  function a(e, t, n, i) {
19
- const s = Object.entries(n), c = A((o, l) => {
20
- const r = x(null);
21
- E(l, () => r.current, []);
19
+ const r = Object.entries(n), c = E((o, s) => {
20
+ const l = x(null);
21
+ M(s, () => l.current, []);
22
22
  const m = o, f = x({});
23
- for (const p of Object.keys(n)) f.current[p] = m[p];
24
- return w(() => {
25
- const p = r.current;
26
- if (!p) return;
27
- const k = () => {
28
- for (const h of t)
29
- h in m && m[h] !== void 0 && (p[h] = m[h]);
23
+ for (const d of Object.keys(n)) f.current[d] = m[d];
24
+ return T(() => {
25
+ const d = l.current;
26
+ if (!d) return;
27
+ const h = () => {
28
+ for (const g of t)
29
+ g in m && m[g] !== void 0 && (d[g] = m[g]);
30
30
  };
31
- k(), typeof customElements < "u" && !customElements.get(e) && customElements.whenDefined(e).then(k);
32
- }), w(() => {
33
- P(e, i);
34
- }, []), w(() => {
35
- const p = r.current;
36
- if (!p) return;
37
- const k = [];
38
- for (const [h, b] of s) {
39
- const C = (S) => {
40
- const y = f.current[h];
41
- typeof y == "function" && y(S);
31
+ h(), typeof customElements < "u" && !customElements.get(e) && customElements.whenDefined(e).then(h);
32
+ }), T(() => {
33
+ D(e, i);
34
+ }, []), T(() => {
35
+ const d = l.current;
36
+ if (!d) return;
37
+ const h = [];
38
+ for (const [g, b] of r) {
39
+ const C = (y) => {
40
+ const S = f.current[g];
41
+ typeof S == "function" && S(y);
42
42
  };
43
- p.addEventListener(b, C), k.push([b, C]);
43
+ d.addEventListener(b, C), h.push([b, C]);
44
44
  }
45
- return () => k.forEach(([h, b]) => p.removeEventListener(h, b));
45
+ return () => h.forEach(([g, b]) => d.removeEventListener(g, b));
46
46
  }, []), V(
47
47
  e,
48
48
  {
49
- ref: r,
49
+ ref: l,
50
50
  className: m.className,
51
51
  style: m.style,
52
52
  id: m.id
@@ -66,29 +66,29 @@ function v(e) {
66
66
  if (i === null || typeof i != "object") return i;
67
67
  if (t.has(i)) return "[circular]";
68
68
  t.add(i);
69
- const s = i, c = Array.isArray(i) ? i.map(n) : Object.fromEntries(Object.keys(s).sort().map((o) => [o, n(s[o])]));
69
+ const r = i, c = Array.isArray(i) ? i.map(n) : Object.fromEntries(Object.keys(r).sort().map((o) => [o, n(r[o])]));
70
70
  return t.delete(i), c;
71
71
  };
72
72
  return JSON.stringify(n(e)) ?? "";
73
73
  }
74
- function D(e, t) {
74
+ function F(e, t) {
75
75
  const n = e[e.length - 1];
76
76
  return (n == null ? void 0 : n.type) === "text" ? [...e.slice(0, -1), { ...n, text: n.text + t }] : [...e, { type: "text", text: t }];
77
77
  }
78
- function L(e, t, n = {}) {
79
- const i = n.index ?? 0, s = n.streamId, c = e.findIndex(
80
- (r) => r.type === "reasoning" && (r.index ?? 0) === i && r.streamId === s
78
+ function P(e, t, n = {}) {
79
+ const i = n.index ?? 0, r = n.streamId, c = e.findIndex(
80
+ (l) => l.type === "reasoning" && (l.index ?? 0) === i && l.streamId === r
81
81
  );
82
82
  if (c < 0)
83
- return [...e, { type: "reasoning", text: t, index: i, streamId: s, label: n.label, signature: n.signature, raw: n.raw }];
84
- const o = e[c], l = {
83
+ return [...e, { type: "reasoning", text: t, index: i, streamId: r, label: n.label, signature: n.signature, raw: n.raw }];
84
+ const o = e[c], s = {
85
85
  ...o,
86
86
  text: o.text + t,
87
87
  label: n.label ?? o.label,
88
88
  signature: n.signature ?? o.signature,
89
89
  raw: n.raw ?? o.raw
90
90
  };
91
- return H(o, l) ? e : [...e.slice(0, c), l, ...e.slice(c + 1)];
91
+ return H(o, s) ? e : [...e.slice(0, c), s, ...e.slice(c + 1)];
92
92
  }
93
93
  const N = [
94
94
  "type",
@@ -111,7 +111,7 @@ function H(e, t) {
111
111
  return N.every((n) => B[n](e, t));
112
112
  }
113
113
  function j(e, t) {
114
- const n = e.findIndex((s) => s.type === "card" && s.envelope.id === t.id);
114
+ const n = e.findIndex((r) => r.type === "card" && r.envelope.id === t.id);
115
115
  if (n < 0) return [...e, { type: "card", envelope: t }];
116
116
  const i = e[n];
117
117
  return v(i.envelope) === v(t) ? e : [...e.slice(0, n), { ...i, envelope: t }, ...e.slice(n + 1)];
@@ -127,8 +127,8 @@ function U(e, t, n) {
127
127
  };
128
128
  return o.kind = o.kind ?? z(o.type), [...e, { type: "tool", tool: o }];
129
129
  }
130
- const s = e[i].tool, c = { ...s, ...n, toolCallId: t };
131
- return c.kind = W(s, n, c.type), c.raw === void 0 && s.raw !== void 0 && (c.raw = s.raw), G(s, c) ? e : [...e.slice(0, i), { type: "tool", tool: c }, ...e.slice(i + 1)];
130
+ const r = e[i].tool, c = { ...r, ...n, toolCallId: t };
131
+ return c.kind = W(r, n, c.type), c.raw === void 0 && r.raw !== void 0 && (c.raw = r.raw), G(r, c) ? e : [...e.slice(0, i), { type: "tool", tool: c }, ...e.slice(i + 1)];
132
132
  }
133
133
  function W(e, t, n) {
134
134
  return t.kind !== void 0 ? t.kind : e.kind === void 0 || e.kind === z(e.type) ? z(n) : e.kind;
@@ -181,39 +181,47 @@ function $(e, t = {}) {
181
181
  const n = t.id ?? Z();
182
182
  let i = !1;
183
183
  e((o) => [...o, { id: n, role: "assistant", parts: [], ...t }]);
184
- const s = (o) => {
185
- i || e((l) => {
186
- const r = l.findIndex((f) => f.id === n);
187
- if (r < 0) return l;
188
- const m = o(l[r].parts);
189
- return m === l[r].parts ? l : [...l.slice(0, r), { ...l[r], parts: m }, ...l.slice(r + 1)];
184
+ const r = (o) => {
185
+ i || e((s) => {
186
+ const l = s.findIndex((f) => f.id === n);
187
+ if (l < 0) return s;
188
+ const m = o(s[l].parts);
189
+ return m === s[l].parts ? s : [...s.slice(0, l), { ...s[l], parts: m }, ...s.slice(l + 1)];
190
190
  });
191
191
  }, c = {
192
192
  id: n,
193
193
  appendText(o) {
194
- return s((l) => D(l, o)), c;
194
+ return r((s) => F(s, o)), c;
195
195
  },
196
- appendReasoning(o, l) {
197
- return s((r) => L(r, o, l)), c;
196
+ appendReasoning(o, s) {
197
+ return r((l) => P(l, o, s)), c;
198
198
  },
199
- upsertTool(o, l) {
200
- return s((r) => U(r, o, l)), c;
199
+ upsertTool(o, s) {
200
+ return r((l) => U(l, o, s)), c;
201
201
  },
202
202
  // Upsert, not append: keyed on envelope.id so a revised card replaces itself.
203
203
  addCard(o) {
204
- return s((l) => j(l, o)), c;
204
+ return r((s) => j(s, o)), c;
205
205
  },
206
206
  addSource(o) {
207
- return s((l) => [...l, { type: "source", source: o }]), c;
207
+ return r((s) => [...s, { type: "source", source: o }]), c;
208
208
  },
209
209
  addFile(o) {
210
- return s((l) => [...l, { type: "file", attachment: o }]), c;
210
+ return r((s) => [...s, { type: "file", attachment: o }]), c;
211
211
  },
212
212
  done() {
213
213
  i = !0;
214
214
  },
215
215
  abort(o) {
216
- s((l) => l.map((r) => r.type === "tool" && r.tool.state !== "output-available" ? { ...r, tool: { ...r.tool, state: "output-error", errorText: o } } : r)), i = !0;
216
+ const s = (o == null ? void 0 : o.trim()) || void 0;
217
+ r((l) => {
218
+ let m = !1;
219
+ const f = l.map((d) => {
220
+ var h;
221
+ return d.type !== "tool" || d.tool.state === "output-available" ? d : d.tool.state === "output-error" && ((h = d.tool.errorText) != null && h.trim()) ? (m = !0, d) : (m = !0, { ...d, tool: { ...d.tool, state: "output-error", errorText: s } });
222
+ });
223
+ return m || !s ? f : [...f, { type: "text", text: s }];
224
+ }), i = !0;
217
225
  }
218
226
  };
219
227
  return c;
@@ -224,11 +232,11 @@ function ee(e, t) {
224
232
  appendText(i) {
225
233
  return e.appendText(i), n;
226
234
  },
227
- appendReasoning(i, s) {
228
- return e.appendReasoning(i, s), n;
235
+ appendReasoning(i, r) {
236
+ return e.appendReasoning(i, r), n;
229
237
  },
230
- upsertTool(i, s) {
231
- return e.upsertTool(i, s), n;
238
+ upsertTool(i, r) {
239
+ return e.upsertTool(i, r), n;
232
240
  },
233
241
  addCard(i) {
234
242
  return e.addCard(i), n;
@@ -249,38 +257,38 @@ function ee(e, t) {
249
257
  return n;
250
258
  }
251
259
  function ne(e = {}) {
252
- const [t, n] = I(() => [...e.initialMessages ?? []]), [i, s] = I(() => [...e.initialSuggestions ?? []]), [c, o] = I(!1), l = x(e.onSubmit);
253
- l.current = e.onSubmit;
254
- const r = g((d) => n(d), []), m = g((d) => r((u) => _(u, d)), [r]), f = g(
255
- (d, u) => r((R) => Y(R, d, u)),
256
- [r]
257
- ), p = g((d) => r((u) => J(u, d)), [r]), k = g((d) => s((u) => Q(u, d)), []), h = g((d) => s((u) => X(u, d)), []), b = g(() => s([]), []), C = g((d) => (o(!0), ee($(r, d), () => o(!1))), [r]), S = g(
258
- (d) => {
259
- var u;
260
- (u = l.current) == null || u.call(l, d.detail);
260
+ const [t, n] = I(() => [...e.initialMessages ?? []]), [i, r] = I(() => [...e.initialSuggestions ?? []]), [c, o] = I(!1), s = x(e.onSubmit);
261
+ s.current = e.onSubmit;
262
+ const l = k((u) => n(u), []), m = k((u) => l((p) => _(p, u)), [l]), f = k(
263
+ (u, p) => l((R) => Y(R, u, p)),
264
+ [l]
265
+ ), d = k((u) => l((p) => J(p, u)), [l]), h = k((u) => r((p) => Q(p, u)), []), g = k((u) => r((p) => X(p, u)), []), b = k(() => r([]), []), C = k((u) => (o(!0), ee($(l, u), () => o(!1))), [l]), y = k(
266
+ (u) => {
267
+ var p;
268
+ (p = s.current) == null || p.call(s, u.detail);
261
269
  },
262
270
  []
263
- ), y = F(
264
- () => ({ messages: t, loading: c, suggestions: i, onSubmit: S }),
265
- [t, c, i, S]
271
+ ), S = L(
272
+ () => ({ messages: t, loading: c, suggestions: i, onSubmit: y }),
273
+ [t, c, i, y]
266
274
  );
267
275
  return {
268
276
  messages: t,
269
277
  setMessages: n,
270
278
  suggestions: i,
271
- setSuggestions: s,
279
+ setSuggestions: r,
272
280
  loading: c,
273
281
  append: m,
274
282
  update: f,
275
- remove: p,
276
- addSuggestion: k,
277
- removeSuggestion: h,
283
+ remove: d,
284
+ addSuggestion: h,
285
+ removeSuggestion: g,
278
286
  clearSuggestions: b,
279
287
  streamAssistant: C,
280
- bind: y
288
+ bind: S
281
289
  };
282
290
  }
283
- function M() {
291
+ function A() {
284
292
  if (typeof window > "u") return;
285
293
  const e = window;
286
294
  return e.SpeechRecognition ?? e.webkitSpeechRecognition;
@@ -288,10 +296,10 @@ function M() {
288
296
  function ie(e) {
289
297
  const t = x(e);
290
298
  t.current = e;
291
- const n = M() !== void 0, i = g(() => {
292
- const s = M();
293
- if (!s) return;
294
- const c = new s();
299
+ const n = A() !== void 0, i = k(() => {
300
+ const r = A();
301
+ if (!r) return;
302
+ const c = new r();
295
303
  c.lang = "en-US", c.interimResults = !1, c.onresult = (o) => t.current(o.results[0][0].transcript), c.start();
296
304
  }, []);
297
305
  return { supported: n, start: i };
@@ -301,19 +309,19 @@ const oe = /* @__PURE__ */ a(
301
309
  ["theme", "name", "active", "needsAttention", "status"],
302
310
  { onActivate: "kai-activate", onMenu: "kai-menu" },
303
311
  () => import("@kitn.ai/ui/elements/agent-card")
304
- ), se = /* @__PURE__ */ a(
312
+ ), re = /* @__PURE__ */ a(
305
313
  "kai-artifact",
306
314
  ["theme", "src", "files", "tab", "defaultTab", "activeFile", "sandbox", "iframeTitle", "maximized", "expandable", "openInTab", "noNav", "noReload", "noHome", "noPathField", "noTabs", "standalone", "readonlyPath", "displayUrl"],
307
315
  { onFileSelect: "kai-file-select", onMaximizeChange: "kai-maximize-change", onMaximizeIntent: "kai-maximize-intent", onNavigate: "kai-navigate", onTabChange: "kai-tab-change" },
308
316
  () => import("@kitn.ai/ui/elements/artifact")
309
- ), re = /* @__PURE__ */ a(
317
+ ), se = /* @__PURE__ */ a(
310
318
  "kai-attachments",
311
319
  ["theme", "items", "variant", "hoverCard", "removable", "showMediaType", "emptyText"],
312
320
  { onRemove: "kai-remove" },
313
321
  () => import("@kitn.ai/ui/elements/attachments")
314
322
  ), ce = /* @__PURE__ */ a(
315
323
  "kai-audio-visualizer",
316
- ["theme", "variant", "state", "size", "barCount", "count", "radius", "spread", "interval", "color", "complexity", "label", "stream", "audioElement", "bands", "shader", "animateWhenNotVisible"],
324
+ ["theme", "variant", "state", "size", "barCount", "count", "radius", "spread", "interval", "color", "complexity", "label", "stream", "audioElement", "bands", "listeningAmplitude", "shader", "animateWhenNotVisible"],
317
325
  {},
318
326
  () => import("@kitn.ai/ui/elements/audio-visualizer")
319
327
  ), le = /* @__PURE__ */ a(
@@ -348,8 +356,8 @@ const oe = /* @__PURE__ */ a(
348
356
  () => import("@kitn.ai/ui/elements/chain-of-thought")
349
357
  ), ge = /* @__PURE__ */ a(
350
358
  "kai-chat",
351
- ["theme", "search", "value", "placeholder", "loading", "suggestions", "suggestionMode", "persistSuggestions", "proseSize", "codeTheme", "codeHighlight", "chatTitle", "models", "currentModel", "context", "scrollButton", "headerStart", "headerEnd", "headerFull", "sidebar", "empty", "composer", "composerActions", "footer", "voice", "triggers", "kindIcons", "actionsReveal", "accept", "messages", "cardTypes", "cardSchemas"],
352
- { onAttachmentsChange: "kai-attachments-change", onAttachmentsRejected: "kai-attachments-rejected", onMessageAction: "kai-message-action", onModelChange: "kai-model-change", onSearch: "kai-search", onSubmit: "kai-submit", onSuggestionClick: "kai-suggestion-click", onValueChange: "kai-value-change", onVoice: "kai-voice" },
359
+ ["theme", "value", "placeholder", "loading", "suggestions", "suggestionMode", "persistSuggestions", "proseSize", "codeTheme", "codeHighlight", "chatTitle", "models", "currentModel", "context", "scrollButton", "headerStart", "headerEnd", "headerFull", "sidebar", "empty", "composer", "composerActions", "footer", "webSearch", "voice", "triggers", "kindIcons", "actionsReveal", "accept", "messages", "cardTypes", "cardSchemas"],
360
+ { onAttachmentsChange: "kai-attachments-change", onAttachmentsRejected: "kai-attachments-rejected", onMessageAction: "kai-message-action", onModelChange: "kai-model-change", onSubmit: "kai-submit", onSuggestionClick: "kai-suggestion-click", onValueChange: "kai-value-change", onVoice: "kai-voice", onWebSearch: "kai-web-search" },
353
361
  () => import("@kitn.ai/ui/elements/chat")
354
362
  ), ke = /* @__PURE__ */ a(
355
363
  "kai-checkpoint",
@@ -368,7 +376,7 @@ const oe = /* @__PURE__ */ a(
368
376
  () => import("@kitn.ai/ui/elements/coachmark")
369
377
  ), ve = /* @__PURE__ */ a(
370
378
  "kai-code-block",
371
- ["theme", "code", "language", "codeTheme", "codeHighlight", "proseSize"],
379
+ ["theme", "code", "language", "codeTheme", "codeHighlight", "copy", "proseSize"],
372
380
  {},
373
381
  () => import("@kitn.ai/ui/elements/code-block")
374
382
  ), Ce = /* @__PURE__ */ a(
@@ -376,12 +384,12 @@ const oe = /* @__PURE__ */ a(
376
384
  ["theme", "items", "placeholder", "emptyLabel"],
377
385
  { onActiveChange: "kai-active-change", onQueryChange: "kai-query-change", onSelect: "kai-select" },
378
386
  () => import("@kitn.ai/ui/elements/command")
379
- ), Se = /* @__PURE__ */ a(
387
+ ), ye = /* @__PURE__ */ a(
380
388
  "kai-compare",
381
389
  ["theme", "data", "compareId", "selection", "layout", "proseSize", "codeTheme", "codeHighlight"],
382
390
  { onCompareSelect: "kai-compare-select", onError: "kai-error", onReady: "kai-ready" },
383
391
  () => import("@kitn.ai/ui/elements/compare")
384
- ), ye = /* @__PURE__ */ a(
392
+ ), Se = /* @__PURE__ */ a(
385
393
  "kai-composer",
386
394
  ["theme", "value", "placeholder", "disabled", "loading", "maxHeight", "submitOnEnter", "triggers", "highlights", "kindIcons"],
387
395
  { onBlur: "kai-blur", onEntityAdd: "kai-entity-add", onEntityRemove: "kai-entity-remove", onFocus: "kai-focus", onSubmit: "kai-submit", onTrigger: "kai-trigger", onTriggerClose: "kai-trigger-close", onValueChange: "kai-value-change" },
@@ -391,27 +399,42 @@ const oe = /* @__PURE__ */ a(
391
399
  ["theme", "data", "cardId", "heading", "autofocus", "resolution"],
392
400
  {},
393
401
  () => import("@kitn.ai/ui/elements/confirm-card")
394
- ), Te = /* @__PURE__ */ a(
402
+ ), we = /* @__PURE__ */ a(
395
403
  "kai-context",
396
404
  ["theme", "context", "warnThreshold", "dangerThreshold"],
397
405
  { onThresholdChange: "kai-threshold-change" },
398
406
  () => import("@kitn.ai/ui/elements/context-meter")
399
- ), we = /* @__PURE__ */ a(
407
+ ), Te = /* @__PURE__ */ a(
408
+ "kai-conversation-item",
409
+ ["theme", "conversationId", "active", "compact"],
410
+ {},
411
+ () => import("@kitn.ai/ui/elements/conversation-item")
412
+ ), Ie = /* @__PURE__ */ a(
400
413
  "kai-conversations",
401
- ["theme", "groups", "conversations", "activeId", "collapsed", "defaultCollapsed"],
414
+ ["theme", "groups", "conversations", "activeId", "collapsed", "defaultCollapsed", "compact"],
402
415
  { onCollapseToggle: "kai-collapse-toggle", onConversationSelect: "kai-conversation-select", onNewChat: "kai-new-chat", onSearch: "kai-search", onToggleSidebar: "kai-toggle-sidebar" },
403
416
  () => import("@kitn.ai/ui/elements/conversation-list")
404
- ), Ie = /* @__PURE__ */ a(
417
+ ), ze = /* @__PURE__ */ a(
405
418
  "kai-dialog",
406
- ["theme", "open", "defaultOpen"],
419
+ ["theme", "open", "defaultOpen", "label"],
407
420
  { onOpenChange: "kai-open-change" },
408
421
  () => import("@kitn.ai/ui/elements/dialog")
409
- ), ze = /* @__PURE__ */ a(
422
+ ), Oe = /* @__PURE__ */ a(
423
+ "kai-dock",
424
+ ["theme", "open", "defaultOpen", "position", "label", "openLabel", "closeLabel", "unread", "disabled", "focusOnOpen"],
425
+ { onOpenChange: "kai-open-change" },
426
+ () => import("@kitn.ai/ui/elements/dock")
427
+ ), Ae = /* @__PURE__ */ a(
428
+ "kai-dropdown",
429
+ ["theme", "triggerIcon", "triggerLabel", "triggerIconTrailing", "label", "full", "open", "defaultOpen", "disabled"],
430
+ { onOpenChange: "kai-open-change" },
431
+ () => import("@kitn.ai/ui/elements/dropdown")
432
+ ), Re = /* @__PURE__ */ a(
410
433
  "kai-editable-label",
411
434
  ["theme", "value", "editing", "placeholder", "disabled"],
412
435
  { onCancel: "kai-cancel", onRename: "kai-rename" },
413
436
  () => import("@kitn.ai/ui/elements/editable-label")
414
- ), Oe = /* @__PURE__ */ a(
437
+ ), Ee = /* @__PURE__ */ a(
415
438
  "kai-embed",
416
439
  ["theme", "cardId", "data"],
417
440
  {},
@@ -421,286 +444,286 @@ const oe = /* @__PURE__ */ a(
421
444
  ["theme", "emptyTitle", "description"],
422
445
  {},
423
446
  () => import("@kitn.ai/ui/elements/empty")
424
- ), Re = /* @__PURE__ */ a(
447
+ ), Ve = /* @__PURE__ */ a(
425
448
  "kai-feedback-bar",
426
449
  ["theme", "barTitle", "collectDetail", "categories", "detailTitle", "detailPlaceholder", "submitLabel", "thanksMessage"],
427
450
  { onClose: "kai-close", onFeedback: "kai-feedback", onFeedbackDetail: "kai-feedback-detail" },
428
451
  () => import("@kitn.ai/ui/elements/feedback-bar")
429
- ), Ae = /* @__PURE__ */ a(
452
+ ), Le = /* @__PURE__ */ a(
430
453
  "kai-file-tree",
431
454
  ["theme", "files", "activeFile", "defaultExpanded", "summary"],
432
455
  { onSelect: "kai-select" },
433
456
  () => import("@kitn.ai/ui/elements/file-tree")
434
- ), Ee = /* @__PURE__ */ a(
457
+ ), De = /* @__PURE__ */ a(
435
458
  "kai-file-upload",
436
459
  ["theme", "multiple", "accept", "disabled", "label"],
437
460
  { onFilesAdded: "kai-files-added" },
438
461
  () => import("@kitn.ai/ui/elements/file-upload")
439
- ), Ve = /* @__PURE__ */ a(
462
+ ), Fe = /* @__PURE__ */ a(
440
463
  "kai-form",
441
464
  ["theme", "data", "cardId", "heading", "resolution", "values", "defaultValues", "disabled"],
442
465
  { onValuesChange: "kai-values-change" },
443
466
  () => import("@kitn.ai/ui/elements/form")
444
- ), Fe = /* @__PURE__ */ a(
467
+ ), Pe = /* @__PURE__ */ a(
445
468
  "kai-hover-card",
446
469
  ["theme", "openDelay", "closeDelay", "placement", "open", "defaultOpen", "disabled"],
447
470
  { onOpenChange: "kai-open-change" },
448
471
  () => import("@kitn.ai/ui/elements/hover-card")
449
- ), Pe = /* @__PURE__ */ a(
472
+ ), Ne = /* @__PURE__ */ a(
450
473
  "kai-icon",
451
474
  ["theme", "name", "size"],
452
475
  {},
453
476
  () => import("@kitn.ai/ui/elements/icon")
454
- ), De = /* @__PURE__ */ a(
477
+ ), Be = /* @__PURE__ */ a(
455
478
  "kai-image",
456
479
  ["theme", "base64", "bytes", "alt", "mediaType"],
457
480
  {},
458
481
  () => import("@kitn.ai/ui/elements/image")
459
- ), Le = /* @__PURE__ */ a(
482
+ ), He = /* @__PURE__ */ a(
460
483
  "kai-input",
461
484
  ["theme", "type", "value", "placeholder", "label", "hint", "error", "size", "disabled", "readonly", "required", "invalid", "name", "autocomplete", "inputmode"],
462
485
  { onChange: "kai-change", onInput: "kai-input" },
463
486
  () => import("@kitn.ai/ui/elements/input")
464
- ), Ne = /* @__PURE__ */ a(
487
+ ), je = /* @__PURE__ */ a(
465
488
  "kai-kbd",
466
489
  ["theme", "keys", "platform", "size"],
467
490
  {},
468
491
  () => import("@kitn.ai/ui/elements/kbd")
469
- ), Be = /* @__PURE__ */ a(
492
+ ), Ue = /* @__PURE__ */ a(
470
493
  "kai-link-preview",
471
494
  ["theme", "cardId", "data"],
472
495
  {},
473
496
  () => import("@kitn.ai/ui/elements/link-preview")
474
- ), He = /* @__PURE__ */ a(
497
+ ), We = /* @__PURE__ */ a(
475
498
  "kai-loader",
476
499
  ["theme", "variant", "size", "text"],
477
500
  {},
478
501
  () => import("@kitn.ai/ui/elements/loader")
479
- ), je = /* @__PURE__ */ a(
502
+ ), Ke = /* @__PURE__ */ a(
480
503
  "kai-markdown",
481
504
  ["theme", "content", "proseSize", "codeTheme", "codeHighlight"],
482
505
  {},
483
506
  () => import("@kitn.ai/ui/elements/markdown")
484
- ), Ue = /* @__PURE__ */ a(
507
+ ), qe = /* @__PURE__ */ a(
485
508
  "kai-menu",
486
- ["theme", "items", "placement", "triggerIcon", "triggerLabel", "triggerIconTrailing", "label", "open", "defaultOpen", "disabled"],
509
+ ["theme", "items", "placement", "triggerIcon", "triggerLabel", "triggerIconTrailing", "label", "full", "open", "defaultOpen", "disabled"],
487
510
  { onOpenChange: "kai-open-change", onSelect: "kai-select" },
488
511
  () => import("@kitn.ai/ui/elements/menu")
489
- ), We = /* @__PURE__ */ a(
512
+ ), Ge = /* @__PURE__ */ a(
490
513
  "kai-message",
491
514
  ["theme", "message", "role", "markdown", "proseSize", "codeTheme", "codeHighlight", "actionsReveal", "avatarSrc", "avatarFallback", "avatar", "cardTypes", "cardSchemas"],
492
515
  { onMessageAction: "kai-message-action" },
493
516
  () => import("@kitn.ai/ui/elements/message")
494
- ), Ke = /* @__PURE__ */ a(
517
+ ), _e = /* @__PURE__ */ a(
495
518
  "kai-model-switcher",
496
519
  ["theme", "models", "currentModel", "open", "defaultOpen", "disabled"],
497
520
  { onModelChange: "kai-model-change", onOpenChange: "kai-open-change" },
498
521
  () => import("@kitn.ai/ui/elements/model-switcher")
499
- ), qe = /* @__PURE__ */ a(
522
+ ), Ye = /* @__PURE__ */ a(
500
523
  "kai-nav",
501
524
  ["theme", "items", "value", "defaultValue", "defaultCollapsed"],
502
525
  { onNavItemAction: "kai-nav-item-action", onNavItemClose: "kai-nav-item-close", onNavSelect: "kai-nav-select" },
503
526
  () => import("@kitn.ai/ui/elements/nav")
504
- ), Ge = /* @__PURE__ */ a(
527
+ ), Je = /* @__PURE__ */ a(
505
528
  "kai-notice",
506
529
  ["theme", "severity", "icon", "dismissible"],
507
530
  { onDismiss: "kai-dismiss" },
508
531
  () => import("@kitn.ai/ui/elements/notice")
509
- ), _e = /* @__PURE__ */ a(
532
+ ), Qe = /* @__PURE__ */ a(
510
533
  "kai-pane",
511
534
  ["theme", "headline", "subtitle", "maximized", "focused", "showSplit", "showDock", "status"],
512
535
  { onClose: "kai-close", onDock: "kai-dock", onMaximize: "kai-maximize", onSplit: "kai-split" },
513
536
  () => import("@kitn.ai/ui/elements/pane")
514
- ), Ye = /* @__PURE__ */ a(
537
+ ), Xe = /* @__PURE__ */ a(
515
538
  "kai-pane-group",
516
539
  ["theme", "tabs", "active", "focused"],
517
540
  { onTabChange: "kai-tab-change", onTabClose: "kai-tab-close", onTabMenu: "kai-tab-menu" },
518
541
  () => import("@kitn.ai/ui/elements/pane-group")
519
- ), Je = /* @__PURE__ */ a(
542
+ ), Ze = /* @__PURE__ */ a(
520
543
  "kai-popover",
521
544
  ["theme", "placement", "gutter", "open", "defaultOpen", "disabled"],
522
545
  { onOpenChange: "kai-open-change" },
523
546
  () => import("@kitn.ai/ui/elements/popover")
524
- ), Qe = /* @__PURE__ */ a(
547
+ ), $e = /* @__PURE__ */ a(
525
548
  "kai-progress-bar",
526
549
  ["theme", "value", "max", "label", "tone"],
527
550
  {},
528
551
  () => import("@kitn.ai/ui/elements/progress-bar")
529
- ), Xe = /* @__PURE__ */ a(
552
+ ), et = /* @__PURE__ */ a(
530
553
  "kai-prompt-dock",
531
554
  ["theme", "frame", "appearance"],
532
555
  {},
533
556
  () => import("@kitn.ai/ui/elements/prompt-dock")
534
- ), Ze = /* @__PURE__ */ a(
557
+ ), tt = /* @__PURE__ */ a(
535
558
  "kai-prompt-input",
536
- ["theme", "value", "placeholder", "disabled", "loading", "suggestions", "suggestionMode", "search", "voice", "stoppable", "submit", "attach", "attachments", "triggers", "kindIcons"],
537
- { onAttachmentsChange: "kai-attachments-change", onSearch: "kai-search", onStop: "kai-stop", onSubmit: "kai-submit", onSuggestionClick: "kai-suggestion-click", onToolbarAction: "kai-toolbar-action", onValueChange: "kai-value-change", onVoice: "kai-voice" },
559
+ ["theme", "value", "placeholder", "disabled", "loading", "suggestions", "suggestionMode", "webSearch", "voice", "stoppable", "submit", "attach", "attachments", "triggers", "kindIcons"],
560
+ { onAttachmentsChange: "kai-attachments-change", onStop: "kai-stop", onSubmit: "kai-submit", onSuggestionClick: "kai-suggestion-click", onToolbarAction: "kai-toolbar-action", onValueChange: "kai-value-change", onVoice: "kai-voice", onWebSearch: "kai-web-search" },
538
561
  () => import("@kitn.ai/ui/elements/prompt-input")
539
- ), $e = /* @__PURE__ */ a(
562
+ ), at = /* @__PURE__ */ a(
540
563
  "kai-reasoning",
541
564
  ["theme", "text", "label", "open", "defaultOpen", "streaming", "markdown", "disabled"],
542
565
  { onOpenChange: "kai-open-change" },
543
566
  () => import("@kitn.ai/ui/elements/reasoning")
544
- ), et = /* @__PURE__ */ a(
567
+ ), nt = /* @__PURE__ */ a(
545
568
  "kai-remote",
546
569
  ["theme", "src", "providerOrigin", "envelope", "policy"],
547
570
  {},
548
571
  () => import("@kitn.ai/ui/elements/remote")
549
- ), tt = /* @__PURE__ */ a(
572
+ ), it = /* @__PURE__ */ a(
550
573
  "kai-resizable",
551
574
  ["theme", "orientation", "maximizedIndex", "handle"],
552
575
  { onChange: "kai-change", onMaximizeChange: "kai-maximize-change", onMaximizeState: "kai-maximize-state" },
553
576
  () => import("@kitn.ai/ui/elements/resizable")
554
- ), at = /* @__PURE__ */ a(
577
+ ), ot = /* @__PURE__ */ a(
555
578
  "kai-resizable-item",
556
579
  ["theme", "size", "min", "max", "locked", "hidden", "collapsed"],
557
580
  { onChange: "kai-change", onMaximizeChange: "kai-maximize-change", onMaximizeState: "kai-maximize-state" },
558
581
  () => import("@kitn.ai/ui/elements/resizable")
559
- ), nt = /* @__PURE__ */ a(
582
+ ), rt = /* @__PURE__ */ a(
560
583
  "kai-response-stream",
561
584
  ["theme", "text", "mode", "speed", "as"],
562
585
  { onComplete: "kai-complete" },
563
586
  () => import("@kitn.ai/ui/elements/response-stream")
564
- ), it = /* @__PURE__ */ a(
587
+ ), st = /* @__PURE__ */ a(
565
588
  "kai-scope-picker",
566
589
  ["theme", "availableAuthors", "availableTags", "currentLabel", "open", "defaultOpen", "disabled"],
567
590
  { onOpenChange: "kai-open-change", onScopeChange: "kai-scope-change" },
568
591
  () => import("@kitn.ai/ui/elements/chat-scope-picker")
569
- ), ot = /* @__PURE__ */ a(
592
+ ), ct = /* @__PURE__ */ a(
570
593
  "kai-screen",
571
594
  ["theme", "open", "defaultOpen", "headline", "back", "noInert"],
572
595
  { onBack: "kai-back", onOpenChange: "kai-open-change" },
573
596
  () => import("@kitn.ai/ui/elements/screen")
574
- ), st = /* @__PURE__ */ a(
597
+ ), lt = /* @__PURE__ */ a(
575
598
  "kai-scroll-area",
576
599
  ["theme", "orientation"],
577
600
  {},
578
601
  () => import("@kitn.ai/ui/elements/scroll-area")
579
- ), rt = /* @__PURE__ */ a(
602
+ ), dt = /* @__PURE__ */ a(
580
603
  "kai-scroll-button",
581
604
  ["theme", "for", "variant", "size"],
582
605
  { onScroll: "kai-scroll" },
583
606
  () => import("@kitn.ai/ui/elements/scroll-button")
584
- ), ct = /* @__PURE__ */ a(
607
+ ), mt = /* @__PURE__ */ a(
585
608
  "kai-search",
586
609
  ["theme", "value", "placeholder", "icon", "debounce", "loading", "shortcut"],
587
610
  { onChange: "kai-change", onSearch: "kai-search", onSubmit: "kai-submit" },
588
611
  () => import("@kitn.ai/ui/elements/search")
589
- ), lt = /* @__PURE__ */ a(
612
+ ), ut = /* @__PURE__ */ a(
590
613
  "kai-segmented",
591
614
  ["theme", "options", "value", "size"],
592
615
  { onChange: "kai-change" },
593
616
  () => import("@kitn.ai/ui/elements/segmented")
594
- ), dt = /* @__PURE__ */ a(
617
+ ), pt = /* @__PURE__ */ a(
595
618
  "kai-separator",
596
619
  ["theme", "orientation"],
597
620
  {},
598
621
  () => import("@kitn.ai/ui/elements/separator")
599
- ), mt = /* @__PURE__ */ a(
622
+ ), ht = /* @__PURE__ */ a(
600
623
  "kai-setting-item",
601
624
  ["theme", "label", "description"],
602
625
  {},
603
626
  () => import("@kitn.ai/ui/elements/setting-item")
604
- ), ut = /* @__PURE__ */ a(
627
+ ), gt = /* @__PURE__ */ a(
605
628
  "kai-settings-group",
606
629
  ["theme", "heading", "description"],
607
630
  {},
608
631
  () => import("@kitn.ai/ui/elements/settings-group")
609
- ), pt = /* @__PURE__ */ a(
632
+ ), kt = /* @__PURE__ */ a(
610
633
  "kai-skeleton",
611
634
  ["theme", "variant", "width", "height", "lines"],
612
635
  {},
613
636
  () => import("@kitn.ai/ui/elements/skeleton")
614
- ), ht = /* @__PURE__ */ a(
637
+ ), ft = /* @__PURE__ */ a(
615
638
  "kai-skills",
616
639
  ["theme", "skills"],
617
640
  {},
618
641
  () => import("@kitn.ai/ui/elements/message-skills")
619
- ), gt = /* @__PURE__ */ a(
642
+ ), bt = /* @__PURE__ */ a(
620
643
  "kai-source",
621
644
  ["theme", "href", "label", "headline", "description", "showFavicon"],
622
645
  {},
623
646
  () => import("@kitn.ai/ui/elements/source")
624
- ), kt = /* @__PURE__ */ a(
647
+ ), vt = /* @__PURE__ */ a(
625
648
  "kai-sources",
626
649
  ["theme", "sources", "showFavicon", "numbered"],
627
650
  {},
628
651
  () => import("@kitn.ai/ui/elements/source")
629
- ), ft = /* @__PURE__ */ a(
652
+ ), Ct = /* @__PURE__ */ a(
630
653
  "kai-status",
631
654
  ["theme", "status", "pulse", "label", "size"],
632
655
  {},
633
656
  () => import("@kitn.ai/ui/elements/status")
634
- ), bt = /* @__PURE__ */ a(
657
+ ), yt = /* @__PURE__ */ a(
635
658
  "kai-suggestions",
636
659
  ["theme", "suggestions", "variant", "size", "layout", "block", "highlight"],
637
660
  { onSelect: "kai-select" },
638
661
  () => import("@kitn.ai/ui/elements/prompt-suggestions")
639
- ), vt = /* @__PURE__ */ a(
662
+ ), St = /* @__PURE__ */ a(
640
663
  "kai-switch",
641
664
  ["theme", "checked", "defaultChecked", "disabled", "label", "name", "value"],
642
665
  { onChange: "kai-change" },
643
666
  () => import("@kitn.ai/ui/elements/switch")
644
- ), Ct = /* @__PURE__ */ a(
667
+ ), xt = /* @__PURE__ */ a(
645
668
  "kai-tabs",
646
669
  ["theme", "items", "value", "defaultValue", "variant", "block", "disabled"],
647
670
  { onTabChange: "kai-tab-change" },
648
671
  () => import("@kitn.ai/ui/elements/tabs")
649
- ), St = /* @__PURE__ */ a(
672
+ ), wt = /* @__PURE__ */ a(
650
673
  "kai-tasks",
651
674
  ["theme", "data", "cardId", "heading", "resolution", "value", "defaultValue", "disabled", "readonly"],
652
675
  { onValueChange: "kai-value-change" },
653
676
  () => import("@kitn.ai/ui/elements/tasks")
654
- ), yt = /* @__PURE__ */ a(
677
+ ), Tt = /* @__PURE__ */ a(
655
678
  "kai-text-shimmer",
656
679
  ["theme", "text", "as", "duration", "spread"],
657
680
  {},
658
681
  () => import("@kitn.ai/ui/elements/text-shimmer")
659
- ), xt = /* @__PURE__ */ a(
682
+ ), It = /* @__PURE__ */ a(
660
683
  "kai-thinking-bar",
661
684
  ["theme", "text", "stoppable", "stopLabel"],
662
685
  { onStop: "kai-stop" },
663
686
  () => import("@kitn.ai/ui/elements/thinking-bar")
664
- ), Tt = /* @__PURE__ */ a(
687
+ ), zt = /* @__PURE__ */ a(
665
688
  "kai-thread",
666
689
  ["theme", "messages", "loading", "proseSize", "codeTheme", "codeHighlight", "actionsReveal", "scrollButton", "class", "cardTypes", "cardSchemas"],
667
690
  { onMessageAction: "kai-message-action" },
668
691
  () => import("@kitn.ai/ui/elements/thread")
669
- ), wt = /* @__PURE__ */ a(
692
+ ), Ot = /* @__PURE__ */ a(
670
693
  "kai-toast-region",
671
694
  ["theme", "toasts", "position", "max", "stack", "appearance", "inverse", "target"],
672
695
  { onAction: "kai-action", onDismiss: "kai-dismiss" },
673
696
  () => import("@kitn.ai/ui/elements/toast")
674
- ), It = /* @__PURE__ */ a(
697
+ ), At = /* @__PURE__ */ a(
675
698
  "kai-tool",
676
699
  ["theme", "tool", "open", "defaultOpen", "disabled"],
677
700
  { onOpenChange: "kai-open-change" },
678
701
  () => import("@kitn.ai/ui/elements/tool")
679
- ), zt = /* @__PURE__ */ a(
702
+ ), Rt = /* @__PURE__ */ a(
680
703
  "kai-tooltip",
681
704
  ["theme", "content", "openDelay", "closeDelay", "placement", "open", "defaultOpen", "disabled"],
682
705
  { onOpenChange: "kai-open-change" },
683
706
  () => import("@kitn.ai/ui/elements/tooltip")
684
- ), Ot = /* @__PURE__ */ a(
707
+ ), Et = /* @__PURE__ */ a(
685
708
  "kai-voice-input",
686
709
  ["theme", "transcribe", "disabled", "recognitionLang", "interim"],
687
- { onAudioCaptured: "kai-audio-captured", onRecordingChange: "kai-recording-change", onTranscriptInterim: "kai-transcript-interim", onTranscription: "kai-transcription" },
710
+ { onAudioCaptured: "kai-audio-captured", onRecordingChange: "kai-recording-change", onTranscriptInterim: "kai-transcript-interim", onTranscription: "kai-transcription", onVoiceError: "kai-voice-error" },
688
711
  () => import("@kitn.ai/ui/elements/voice-input")
689
712
  ), Mt = /* @__PURE__ */ a(
690
713
  "kai-voice-output",
691
714
  ["theme", "text", "autoplay", "synthesize", "disabled"],
692
- { onSpeakingChange: "kai-speaking-change", onSynthesized: "kai-synthesized" },
715
+ { onSpeakingChange: "kai-speaking-change", onSynthesized: "kai-synthesized", onVoiceError: "kai-voice-error" },
693
716
  () => import("@kitn.ai/ui/elements/voice-output")
694
- ), Rt = /* @__PURE__ */ a(
717
+ ), Vt = /* @__PURE__ */ a(
695
718
  "kai-workspace",
696
- ["theme", "groups", "conversations", "activeId", "messages", "value", "placeholder", "loading", "suggestions", "suggestionMode", "proseSize", "codeTheme", "codeHighlight", "chatTitle", "models", "currentModel", "context", "scrollButton", "search", "voice", "triggers", "kindIcons", "sidebarWidth", "sidebarMinWidth", "sidebarMaxWidth", "sidebarCollapsed", "defaultSidebarCollapsed", "collapseBelow", "compact", "noConversations", "cardTypes", "cardSchemas"],
697
- { onConversationSelect: "kai-conversation-select", onMessageAction: "kai-message-action", onModelChange: "kai-model-change", onNewChat: "kai-new-chat", onSearch: "kai-search", onSidebarToggle: "kai-sidebar-toggle", onSubmit: "kai-submit", onSuggestionClick: "kai-suggestion-click", onValueChange: "kai-value-change", onVoice: "kai-voice" },
719
+ ["theme", "startCollapsed", "defaultStartCollapsed", "endCollapsed", "defaultEndCollapsed", "collapseBelow", "drawerBelow", "compact"],
720
+ { onAsideResize: "kai-aside-resize", onAsideToggle: "kai-aside-toggle" },
698
721
  () => import("@kitn.ai/ui/elements/chat-workspace")
699
722
  );
700
723
  export {
701
724
  oe as AgentCard,
702
- se as Artifact,
703
- re as Attachments,
725
+ re as Artifact,
726
+ se as Attachments,
704
727
  ce as AudioVisualizer,
705
728
  le as Avatar,
706
729
  de as Badge,
@@ -714,70 +737,73 @@ export {
714
737
  be as Coachmark,
715
738
  ve as CodeBlock,
716
739
  Ce as Command,
717
- Se as Compare,
718
- ye as Composer,
740
+ ye as Compare,
741
+ Se as Composer,
719
742
  xe as Confirm,
720
- Te as Context,
721
- we as Conversations,
722
- Ie as Dialog,
723
- ze as EditableLabel,
724
- Oe as Embed,
743
+ we as Context,
744
+ Te as ConversationItem,
745
+ Ie as Conversations,
746
+ ze as Dialog,
747
+ Oe as Dock,
748
+ Ae as Dropdown,
749
+ Re as EditableLabel,
750
+ Ee as Embed,
725
751
  Me as Empty,
726
- Re as FeedbackBar,
727
- Ae as FileTree,
728
- Ee as FileUpload,
729
- Ve as Form,
730
- Fe as HoverCard,
731
- Pe as Icon,
732
- De as Image,
733
- Le as Input,
734
- Ne as Kbd,
735
- Be as LinkPreview,
736
- He as Loader,
737
- je as Markdown,
738
- Ue as Menu,
739
- We as Message,
740
- Ke as ModelSwitcher,
741
- qe as Nav,
742
- Ge as Notice,
743
- _e as Pane,
744
- Ye as PaneGroup,
745
- Je as Popover,
746
- Qe as ProgressBar,
747
- Xe as PromptDock,
748
- Ze as PromptInput,
749
- $e as Reasoning,
750
- et as Remote,
751
- tt as Resizable,
752
- at as ResizableItem,
753
- nt as ResponseStream,
754
- it as ScopePicker,
755
- ot as Screen,
756
- st as ScrollArea,
757
- rt as ScrollButton,
758
- ct as Search,
759
- lt as Segmented,
760
- dt as Separator,
761
- mt as SettingItem,
762
- ut as SettingsGroup,
763
- pt as Skeleton,
764
- ht as Skills,
765
- gt as Source,
766
- kt as Sources,
767
- ft as Status,
768
- bt as Suggestions,
769
- vt as Switch,
770
- Ct as Tabs,
771
- St as Tasks,
772
- yt as TextShimmer,
773
- xt as ThinkingBar,
774
- Tt as Thread,
775
- wt as ToastRegion,
776
- It as Tool,
777
- zt as Tooltip,
778
- Ot as VoiceInput,
752
+ Ve as FeedbackBar,
753
+ Le as FileTree,
754
+ De as FileUpload,
755
+ Fe as Form,
756
+ Pe as HoverCard,
757
+ Ne as Icon,
758
+ Be as Image,
759
+ He as Input,
760
+ je as Kbd,
761
+ Ue as LinkPreview,
762
+ We as Loader,
763
+ Ke as Markdown,
764
+ qe as Menu,
765
+ Ge as Message,
766
+ _e as ModelSwitcher,
767
+ Ye as Nav,
768
+ Je as Notice,
769
+ Qe as Pane,
770
+ Xe as PaneGroup,
771
+ Ze as Popover,
772
+ $e as ProgressBar,
773
+ et as PromptDock,
774
+ tt as PromptInput,
775
+ at as Reasoning,
776
+ nt as Remote,
777
+ it as Resizable,
778
+ ot as ResizableItem,
779
+ rt as ResponseStream,
780
+ st as ScopePicker,
781
+ ct as Screen,
782
+ lt as ScrollArea,
783
+ dt as ScrollButton,
784
+ mt as Search,
785
+ ut as Segmented,
786
+ pt as Separator,
787
+ ht as SettingItem,
788
+ gt as SettingsGroup,
789
+ kt as Skeleton,
790
+ ft as Skills,
791
+ bt as Source,
792
+ vt as Sources,
793
+ Ct as Status,
794
+ yt as Suggestions,
795
+ St as Switch,
796
+ xt as Tabs,
797
+ wt as Tasks,
798
+ Tt as TextShimmer,
799
+ It as ThinkingBar,
800
+ zt as Thread,
801
+ Ot as ToastRegion,
802
+ At as Tool,
803
+ Rt as Tooltip,
804
+ Et as VoiceInput,
779
805
  Mt as VoiceOutput,
780
- Rt as Workspace,
806
+ Vt as Workspace,
781
807
  ae as registerAll,
782
808
  ne as useKaiChat,
783
809
  ie as useVoiceInput