@kitn.ai/ui 0.25.2 → 0.27.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 (603) hide show
  1. package/README.md +17 -6
  2. package/bin/mcp.js +16 -3
  3. package/bin/route.js +23 -0
  4. package/bin/route.test.js +58 -0
  5. package/dist/{elements/chunks/Icon-b5A8hlHs.js → Icon-BnFKqqtY.js} +1 -1
  6. package/dist/action-icons-CBskfBMz.js +1 -0
  7. package/dist/arrow-down-Br0qtpsz.js +1 -0
  8. package/dist/arrow-left-Dj7xgE12.js +1 -0
  9. package/dist/artifact-CvXEm1lS.js +1 -0
  10. package/dist/assets/dev-5XzXYR21.js +91 -0
  11. package/dist/attachments-C43ZegEq.js +1 -0
  12. package/dist/audio-visualizer-B-79y1Tj.js +1 -0
  13. package/dist/badge-BpUbq8c0.js +1 -0
  14. package/dist/bash-InADTalH.js +1 -6
  15. package/dist/bell-sn17Ip9v.js +1 -0
  16. package/dist/{elements/chunks/button-B9okqG73.js → button-BH6rN0U-.js} +1 -1
  17. package/dist/card-renderer-Cb1gQmth.js +1 -0
  18. package/dist/card-routing-DifQgS7n.js +1 -0
  19. package/dist/check-DPeeMUYx.js +1 -0
  20. package/dist/checkbox-Dc9Yov_B.js +1 -0
  21. package/dist/checkbox-group-B1kDLLYk.js +1 -0
  22. package/dist/chevron-down-CHSWk7ZT.js +1 -0
  23. package/dist/chevron-right-B7l_fMgx.js +1 -0
  24. package/dist/choice-card-BT3c1S8g.js +1 -0
  25. package/dist/circle-Bb0yOpqM.js +1 -0
  26. package/dist/circle-check-BGZpCiz7.js +1 -0
  27. package/dist/circle-x-wobWkoSx.js +1 -0
  28. package/dist/{elements/chunks/cn-CU7UAWzk.js → cn-DN5AWfiS.js} +1 -1
  29. package/dist/code-block-CUQ5mtv0.js +1 -0
  30. package/dist/collapsible-CPJbf6FM.js +1 -0
  31. package/dist/components/attachment-types.d.ts +53 -1
  32. package/dist/components/attachments.d.ts +31 -0
  33. package/dist/components/audio-visualizer/fit-scale.d.ts +50 -0
  34. package/dist/components/audio-visualizer/index.d.ts +15 -1
  35. package/dist/components/audio-visualizer/variant-bar.d.ts +24 -1
  36. package/dist/components/card-renderer.d.ts +13 -0
  37. package/dist/components/card.d.ts +4 -0
  38. package/dist/components/chat-thread.d.ts +49 -42
  39. package/dist/components/code-block.d.ts +22 -0
  40. package/dist/components/conversation-item.d.ts +66 -1
  41. package/dist/components/conversation-list.d.ts +77 -0
  42. package/dist/components/form-widgets.d.ts +67 -2
  43. package/dist/components/form.d.ts +89 -0
  44. package/dist/components/message.d.ts +29 -0
  45. package/dist/components/reasoning.d.ts +6 -0
  46. package/dist/components/scroll-button.d.ts +11 -0
  47. package/dist/components/thread.d.ts +5 -0
  48. package/dist/components/toast.d.ts +2 -1
  49. package/dist/components/tool-types.d.ts +9 -0
  50. package/dist/components/voice-input.d.ts +8 -0
  51. package/dist/components/voice-output.d.ts +12 -1
  52. package/dist/components/workspace-shell.d.ts +87 -0
  53. package/dist/composer-CjngLzal.js +106 -0
  54. package/dist/confirm-card-DCx_A4bU.js +1 -0
  55. package/dist/construct-cli.es.js +1169 -0
  56. package/dist/context-BY8V-Nlp.js +1 -0
  57. package/dist/controllable-D43BKmtX.js +1 -0
  58. package/dist/conversation-list-D4lLU_yS.js +1 -0
  59. package/dist/copy-B6DO4PqB.js +1 -0
  60. package/dist/core-AYMC6_lb.js +12 -5874
  61. package/dist/{create-tween-CUzOlaMS.js → create-tween-BPzaefTp.js} +1 -1
  62. package/dist/{create-tween-B5Y4Im8G.js → create-tween-CnMHviKB.js} +1 -1
  63. package/dist/{create-tween-4z1XYLkR.js → create-tween-D1aiGZZh.js} +1 -1
  64. package/dist/{elements/chunks/create-tween-CUrM6D_o.js → create-tween-DUSQUKpr.js} +2 -2
  65. package/dist/css-M7EaDHN_.js +1 -6
  66. package/dist/custom-elements.json +3468 -1927
  67. package/dist/default-input-CucQEOqH.js +1 -0
  68. package/dist/define-CGGX-7Vg.js +1 -0
  69. package/dist/define.d.ts +4 -0
  70. package/dist/define.js +510 -0
  71. package/dist/define.server.d.ts +5 -0
  72. package/dist/define.server.js +506 -0
  73. package/dist/diagnostics/hook.d.ts +81 -0
  74. package/dist/diagnostics/index.d.ts +7 -0
  75. package/dist/diagnostics/report-request.d.ts +61 -0
  76. package/dist/diagnostics.d.ts +5 -0
  77. package/dist/diagnostics.js +209 -0
  78. package/dist/disclosure-CbLtajUQ.js +1 -0
  79. package/dist/dropdown-BwhViJFd.js +1 -0
  80. package/dist/elements/agent-card.js +1 -1
  81. package/dist/elements/artifact.js +1 -1
  82. package/dist/elements/attachments.js +1 -1
  83. package/dist/elements/audio-visualizer.js +1 -1
  84. package/dist/elements/autoloader.js +1 -1
  85. package/dist/elements/avatar.js +1 -1
  86. package/dist/elements/badge.js +1 -1
  87. package/dist/elements/button.js +1 -1
  88. package/dist/elements/card.js +1 -1
  89. package/dist/elements/cards.js +1 -1
  90. package/dist/elements/chain-of-thought.js +1 -1
  91. package/dist/elements/chat-scope-picker.js +1 -1
  92. package/dist/elements/chat-workspace.js +1 -1
  93. package/dist/elements/chat.js +1 -1
  94. package/dist/elements/checkbox-group.d.ts +1 -0
  95. package/dist/elements/checkbox-group.js +1 -0
  96. package/dist/elements/checkbox.d.ts +1 -0
  97. package/dist/elements/checkbox.js +1 -0
  98. package/dist/elements/checkpoint.js +1 -1
  99. package/dist/elements/choice.js +1 -1
  100. package/dist/elements/coachmark.js +1 -1
  101. package/dist/elements/code-block.js +1 -1
  102. package/dist/elements/command.js +1 -1
  103. package/dist/elements/compare.js +1 -1
  104. package/dist/elements/composer.js +1 -1
  105. package/dist/elements/confirm-card.js +1 -1
  106. package/dist/elements/context-meter.js +1 -1
  107. package/dist/elements/conversation-item.d.ts +1 -0
  108. package/dist/elements/conversation-item.js +1 -0
  109. package/dist/elements/conversation-list.js +1 -1
  110. package/dist/elements/default-input.d.ts +3 -3
  111. package/dist/elements/define-entry.d.ts +12 -0
  112. package/dist/elements/define.d.ts +27 -0
  113. package/dist/elements/diagnostic-events.d.ts +74 -0
  114. package/dist/elements/dialog.js +1 -1
  115. package/dist/elements/dock.d.ts +1 -0
  116. package/dist/elements/dock.js +243 -0
  117. package/dist/elements/dropdown.d.ts +1 -0
  118. package/dist/elements/dropdown.js +1 -0
  119. package/dist/elements/editable-label.js +1 -1
  120. package/dist/elements/element-data-types.d.ts +37 -0
  121. package/dist/elements/element-diagnostics.d.ts +81 -0
  122. package/dist/elements/embed.js +1 -1
  123. package/dist/elements/empty.js +1 -1
  124. package/dist/elements/feedback-bar.js +1 -1
  125. package/dist/elements/file-tree.js +1 -1
  126. package/dist/elements/file-upload.js +1 -1
  127. package/dist/elements/form.js +1 -1
  128. package/dist/elements/hover-card.js +1 -1
  129. package/dist/elements/icon.js +1 -1
  130. package/dist/elements/image.js +1 -1
  131. package/dist/elements/input.js +1 -1
  132. package/dist/elements/kbd.js +1 -1
  133. package/dist/elements/link-preview.js +1 -1
  134. package/dist/elements/loader.js +1 -1
  135. package/dist/elements/markdown.js +1 -1
  136. package/dist/elements/menu.js +1 -1
  137. package/dist/elements/message-skills.js +1 -1
  138. package/dist/elements/message.js +1 -1
  139. package/dist/elements/model-switcher.js +1 -1
  140. package/dist/elements/nav.js +1 -1
  141. package/dist/elements/notice.js +1 -1
  142. package/dist/elements/pane-grid.d.ts +1 -0
  143. package/dist/elements/pane-grid.js +1 -0
  144. package/dist/elements/pane-group.js +1 -1
  145. package/dist/elements/pane.js +1 -1
  146. package/dist/elements/popover.js +1 -1
  147. package/dist/elements/progress-bar.js +1 -1
  148. package/dist/elements/prompt-dock.js +1 -1
  149. package/dist/elements/prompt-input.js +1 -1
  150. package/dist/elements/prompt-suggestions.js +1 -1
  151. package/dist/elements/radio-group.d.ts +1 -0
  152. package/dist/elements/radio-group.js +1 -0
  153. package/dist/elements/reasoning.js +1 -1
  154. package/dist/elements/register.d.ts +2 -0
  155. package/dist/elements/remote.js +1 -1
  156. package/dist/elements/resizable.js +1 -1
  157. package/dist/elements/response-stream.js +3 -3
  158. package/dist/elements/screen.js +1 -1
  159. package/dist/elements/scroll-area.js +1 -1
  160. package/dist/elements/scroll-button.js +1 -1
  161. package/dist/elements/search.js +1 -1
  162. package/dist/elements/segmented.js +1 -1
  163. package/dist/elements/select.d.ts +1 -0
  164. package/dist/elements/select.js +1 -0
  165. package/dist/elements/separator.js +1 -1
  166. package/dist/elements/setting-item.js +1 -1
  167. package/dist/elements/settings-group.js +1 -1
  168. package/dist/elements/skeleton.js +1 -1
  169. package/dist/elements/slider.d.ts +1 -0
  170. package/dist/elements/slider.js +1 -0
  171. package/dist/elements/slots.d.ts +36 -4
  172. package/dist/elements/source.js +1 -1
  173. package/dist/elements/status.js +1 -1
  174. package/dist/elements/switch.js +1 -1
  175. package/dist/elements/tabs.js +1 -1
  176. package/dist/elements/tasks.js +1 -1
  177. package/dist/elements/text-shimmer.js +1 -1
  178. package/dist/elements/thinking-bar.js +1 -1
  179. package/dist/elements/thread.js +1 -1
  180. package/dist/elements/toast.js +1 -1
  181. package/dist/elements/tool.js +1 -1
  182. package/dist/elements/tooltip.js +1 -1
  183. package/dist/elements/voice-input.js +1 -1
  184. package/dist/elements/voice-output.js +1 -1
  185. package/dist/elements.d.ts +589 -167
  186. package/dist/{elements/chunks/ellipsis-CVxqfsDZ.js → ellipsis-DFr4Vqr3.js} +1 -1
  187. package/dist/embed-5s_vU4J0.js +1 -0
  188. package/dist/engine-javascript-vq0WuIJl.js +14 -2516
  189. package/dist/{elements/chunks/external-link-DG2sRdQL.js → external-link-u9d85ORQ.js} +1 -1
  190. package/dist/file-text-CX7_x42o.js +1 -0
  191. package/dist/{elements/chunks/file-tree-yGWNK0Js.js → file-tree-D3kBjXI5.js} +1 -1
  192. package/dist/folder-V-YdIL8f.js +1 -0
  193. package/dist/form-BRNUMCN2.js +1 -0
  194. package/dist/github-dark-dimmed-DUshB20C.js +1 -4
  195. package/dist/github-light-JYsPkUQd.js +1 -4
  196. package/dist/hover-card-DaeiYrTA.js +1 -0
  197. package/dist/html-CPZ3oZQ7.js +1 -10
  198. package/dist/icon-BpixdZNq.js +1 -0
  199. package/dist/{elements/chunks/index-BCRhi84a.js → index-xu_pdcPi.js} +1 -1
  200. package/dist/index.d.ts +3 -1
  201. package/dist/index.js +8473 -6470
  202. package/dist/index.server.js +6495 -4958
  203. package/dist/info-8mFsIjS3.js +1 -0
  204. package/dist/input-d1Yuu-hz.js +1 -0
  205. package/dist/javascript-C25yR2R2.js +1 -6
  206. package/dist/json-DxJze_jm.js +1 -6
  207. package/dist/kai-provider.es.js +40 -40
  208. package/dist/kai.es.js +1 -1
  209. package/dist/kbd-961zMPFB.js +1 -0
  210. package/dist/link-DlZZBGaR.js +1 -0
  211. package/dist/{elements/chunks/link-preview-Cf5KOP-i.js → link-preview-DIIbV2Sd.js} +1 -1
  212. package/dist/loader-YQszHFaW.js +1 -0
  213. package/dist/{elements/chunks/markdown-DbozyYqa.js → markdown-CVk1MPsj.js} +1 -1
  214. package/dist/mcp.es.js +3873 -544
  215. package/dist/message-CwKVEdZg.js +1 -0
  216. package/dist/message-DS8lzHc1.js +1 -0
  217. package/dist/message-circle-Xf8Q-vZp.js +1 -0
  218. package/dist/message-square-Cxnwgkns.js +1 -0
  219. package/dist/{elements/chunks/minimize-2-SegJ_oku.js → minimize-2-UEZmP2QT.js} +1 -1
  220. package/dist/{elements/chunks/model-switcher-D7JrFFHp.js → model-switcher-Kk1jEQ5t.js} +1 -1
  221. package/dist/{elements/chunks/overlay-CV7z2YuX.js → overlay-C1od6LOz.js} +1 -1
  222. package/dist/panel-right-ryET0yyn.js +1 -0
  223. package/dist/paperclip-BDNoZFJP.js +1 -0
  224. package/dist/play-OFIvYXUQ.js +1 -0
  225. package/dist/primitives/card-data-types.d.ts +49 -0
  226. package/dist/primitives/card-routing.d.ts +1 -33
  227. package/dist/primitives/card-validate.d.ts +2 -2
  228. package/dist/primitives/chat-config.d.ts +29 -2
  229. package/dist/primitives/field-mask.d.ts +96 -0
  230. package/dist/primitives/field-semantics.d.ts +36 -0
  231. package/dist/primitives/input-mask.d.ts +46 -0
  232. package/dist/primitives/url-scheme-policy.d.ts +34 -0
  233. package/dist/primitives/use-resize-observer.d.ts +23 -0
  234. package/dist/primitives/use-speech-recognition.d.ts +8 -0
  235. package/dist/primitives/use-text-stream.d.ts +5 -0
  236. package/dist/progress-bar-BvYX0aoy.js +1 -0
  237. package/dist/prompt-suggestion-BRFu2lcu.js +1 -0
  238. package/dist/radio-DcL23cNJ.js +1 -0
  239. package/dist/react/index.d.ts +306 -283
  240. package/dist/react.js +309 -247
  241. package/dist/reasoning-Cackq4Rh.js +1 -0
  242. package/dist/register-impl-C7rENvPK.js +424 -0
  243. package/dist/{elements/chunks/resizable-Dpzjlvp4.js → resizable-Cp9HUYih.js} +1 -1
  244. package/dist/rotate-ccw-0DLRDHH5.js +1 -0
  245. package/dist/rotate-cw-DOB9IGcU.js +1 -0
  246. package/dist/schemas/form.schema.json +21 -1
  247. package/dist/schemas/index.d.ts +1 -1
  248. package/dist/schemas/tool-defs.d.ts +45 -0
  249. package/dist/schemas.js +398 -305
  250. package/dist/scroll-area-emVmWP4K.js +1 -0
  251. package/dist/scroll-button-CeP_gv1x.js +1 -0
  252. package/dist/select-CWmu00tS.js +1 -0
  253. package/dist/{elements/chunks/separator-DH2r_ZSZ.js → separator-CE6vly6z.js} +1 -1
  254. package/dist/{elements/chunks/settings-BFMOd6yB.js → settings-CE-78SvZ.js} +1 -1
  255. package/dist/{elements/chunks/settings-group-B3VZKIcz.js → settings-group-ZFWNxFQR.js} +1 -1
  256. package/dist/{elements/chunks/skeleton-N8BuWYmf.js → skeleton-BebdP4mf.js} +1 -1
  257. package/dist/slider-BAKRYUlz.js +1 -0
  258. package/dist/slots-DaNjX0rc.js +1 -0
  259. package/dist/{solid-BMuDmFo_.js → solid-BE5ui6sy.js} +10672 -8116
  260. package/dist/{solid-CGYNdLRR.js → solid-DFhsce3O.js} +8137 -6056
  261. package/dist/solid.d.ts +15 -0
  262. package/dist/solid.js +248 -235
  263. package/dist/solid.server.js +248 -235
  264. package/dist/source-B0FlguSx.js +1 -0
  265. package/dist/star-CBMZvLuN.js +1 -0
  266. package/dist/state/index.d.ts +5 -1
  267. package/dist/state/mock.d.ts +32 -2
  268. package/dist/state/persistence.d.ts +51 -0
  269. package/dist/state/stream.d.ts +50 -0
  270. package/dist/state/threads.d.ts +71 -0
  271. package/dist/state.js +297 -172
  272. package/dist/store-7eoadydQ.js +1 -0
  273. package/dist/svelte--5p79yCD.js +1 -15
  274. package/dist/switch-CViARZCy.js +1 -0
  275. package/dist/tasks-card-MjCcOhR_.js +1 -0
  276. package/dist/text-shimmer-DKlwRF2G.js +1 -0
  277. package/dist/textarea-3ay2Me2-.js +1 -0
  278. package/dist/theme.tokens.css +82 -13
  279. package/dist/{elements/chunks/thumbs-up-DQe0hvkZ.js → thumbs-up-DQcu2HMO.js} +1 -1
  280. package/dist/toast-store-C6yKOhbk.js +1 -0
  281. package/dist/{elements/chunks/tool-C1YtxwPu.js → tool-BCYNlfKy.js} +1 -1
  282. package/dist/{elements/chunks/tooltip-BqwnFWhn.js → tooltip-05zI4hjs.js} +1 -1
  283. package/dist/trash-2-BR1RxGky.js +1 -0
  284. package/dist/{elements/chunks/triangle-alert-B6or7F5u.js → triangle-alert-DHohDOCy.js} +1 -1
  285. package/dist/tsx-B8rCNbgL.js +1 -6
  286. package/dist/types.d.ts +4 -2
  287. package/dist/typescript-RycA9KXf.js +1 -6
  288. package/dist/ui/checkbox-group.d.ts +83 -0
  289. package/dist/ui/checkbox.d.ts +40 -0
  290. package/dist/ui/dock.d.ts +131 -0
  291. package/dist/ui/hover-card.d.ts +44 -0
  292. package/dist/ui/icon.d.ts +3 -0
  293. package/dist/ui/input.d.ts +48 -2
  294. package/dist/ui/radio.d.ts +85 -0
  295. package/dist/ui/select.d.ts +71 -0
  296. package/dist/ui/slider.d.ts +65 -0
  297. package/dist/ui/switch.d.ts +9 -2
  298. package/dist/upload-BbGW6A_u.js +1 -0
  299. package/dist/url-scheme-policy-DHpoTJwB.js +1 -0
  300. package/dist/use-card-resolution-CJW4grFa.js +1 -0
  301. package/dist/{variant-aurora-DwSOfraQ.js → variant-aurora-BUOVgPOB.js} +27 -27
  302. package/dist/{variant-aurora-wKvAQ5wp.js → variant-aurora-CUsUJvFI.js} +28 -28
  303. package/dist/{variant-aurora-XEkPT0_z.js → variant-aurora-CW2i4bfr.js} +2 -2
  304. package/dist/{elements/chunks/variant-aurora-QXTZPyST.js → variant-aurora-xiMPty8f.js} +2 -2
  305. package/dist/variant-custom-BQtOnmeO.js +1 -0
  306. package/dist/{variant-custom-BhS9wIpU.js → variant-custom-CAm9L-E5.js} +65 -65
  307. package/dist/{variant-custom-eFIg2XWQ.js → variant-custom-CAnzzppW.js} +40 -40
  308. package/dist/variant-custom-D91HjAKz.js +1 -0
  309. package/dist/{variant-wave-CUWGx9Bn.js → variant-wave-Ca1Ls4_y.js} +21 -21
  310. package/dist/{variant-wave-CbVsmgwT.js → variant-wave-CxX39DKd.js} +25 -25
  311. package/dist/{variant-wave-BwzrHD1s.js → variant-wave-DYyzIIZv.js} +2 -2
  312. package/dist/{elements/chunks/variant-wave-DDCwhLas.js → variant-wave-uY5crU_K.js} +2 -2
  313. package/dist/vue-BmIZj4XD.js +1 -33
  314. package/dist/wire/chunk.d.ts +47 -0
  315. package/dist/wire/diagnostics.d.ts +575 -0
  316. package/dist/wire/encode-probe.d.ts +70 -0
  317. package/dist/wire/encode.d.ts +24 -0
  318. package/dist/wire/index.d.ts +2 -0
  319. package/dist/wire/sse.d.ts +10 -2
  320. package/dist/wire.js +917 -480
  321. package/dist/x-C5m1JFgi.js +1 -0
  322. package/frameworks/react/index.tsx +325 -108
  323. package/llms-full.txt +1354 -82
  324. package/llms.txt +6 -3
  325. package/package.json +39 -6
  326. package/src/agent-tooling/archetypes.ts +41 -9
  327. package/src/agent-tooling/catalog/README.md +676 -0
  328. package/src/agent-tooling/catalog/catalog-types.ts +231 -0
  329. package/src/agent-tooling/catalog/fabrications.ts +96 -0
  330. package/src/agent-tooling/catalog/invariants.ts +284 -0
  331. package/src/agent-tooling/catalog/labs-titles.ts +114 -0
  332. package/src/agent-tooling/catalog/scenarios.ts +87 -0
  333. package/src/agent-tooling/catalog/surfaces.ts +347 -0
  334. package/src/agent-tooling/construct/cli-entry.ts +8 -0
  335. package/src/agent-tooling/construct/cli.ts +131 -0
  336. package/src/agent-tooling/construct/codegen.ts +1353 -0
  337. package/src/agent-tooling/construct/construct.v1.schema.json +250 -0
  338. package/src/agent-tooling/construct/dev.ts +148 -0
  339. package/src/agent-tooling/construct/fixtures/demo-widget.construct.json +7 -0
  340. package/src/agent-tooling/construct/fixtures/ops-console.construct.json +44 -0
  341. package/src/agent-tooling/construct/fixtures/owner-widget.construct.json +23 -0
  342. package/src/agent-tooling/construct/schema.ts +371 -0
  343. package/src/agent-tooling/integrations/anthropic.ts +7 -1
  344. package/src/agent-tooling/integrations/cloudflare.ts +43 -2
  345. package/src/agent-tooling/integrations/langgraph.ts +7 -1
  346. package/src/agent-tooling/integrations/mastra.ts +7 -1
  347. package/src/agent-tooling/integrations/mock.ts +92 -17
  348. package/src/agent-tooling/integrations/ollama.ts +7 -1
  349. package/src/agent-tooling/integrations/openai.ts +7 -1
  350. package/src/agent-tooling/integrations/openrouter.ts +7 -1
  351. package/src/agent-tooling/integrations/pi.ts +56 -1
  352. package/src/agent-tooling/integrations/vercel-ai-sdk.ts +7 -1
  353. package/src/agent-tooling/mcp/css-raw.d.ts +12 -0
  354. package/src/agent-tooling/mcp/manifest.ts +100 -1
  355. package/src/agent-tooling/mcp/server.ts +63 -6
  356. package/src/agent-tooling/mcp/tools/construct.ts +130 -0
  357. package/src/agent-tooling/mcp/tools/debug.ts +126 -4
  358. package/src/agent-tooling/mcp/tools/reference.ts +542 -5
  359. package/src/agent-tooling/mcp/tools/scaffold.ts +1834 -307
  360. package/src/agent-tooling/mcp/tools/theme.ts +146 -30
  361. package/src/agent-tooling/mcp/validate-args.ts +141 -0
  362. package/src/agent-tooling/recipes/composed-thread.ts +714 -0
  363. package/src/agent-tooling/recipes/index.ts +22 -0
  364. package/src/agent-tooling/recipes/types.ts +32 -0
  365. package/src/agent-tooling/registry.ts +24 -7
  366. package/src/agent-tooling/route-emit.ts +26 -2
  367. package/src/components/attachment-types.ts +54 -1
  368. package/src/components/attachments.tsx +169 -22
  369. package/src/components/audio-visualizer/fit-scale.ts +112 -0
  370. package/src/components/audio-visualizer/index.tsx +80 -3
  371. package/src/components/audio-visualizer/variant-aurora.tsx +10 -4
  372. package/src/components/audio-visualizer/variant-bar.tsx +38 -6
  373. package/src/components/audio-visualizer/variant-custom.tsx +8 -2
  374. package/src/components/audio-visualizer/variant-grid.tsx +16 -11
  375. package/src/components/audio-visualizer/variant-radial.tsx +15 -10
  376. package/src/components/audio-visualizer/variant-wave.tsx +7 -2
  377. package/src/components/card-renderer.tsx +39 -8
  378. package/src/components/card.tsx +10 -2
  379. package/src/components/chat-container.tsx +4 -1
  380. package/src/components/chat-scope-picker.tsx +2 -2
  381. package/src/components/chat-thread.tsx +105 -13
  382. package/src/components/choice-card.tsx +102 -37
  383. package/src/components/coachmark.tsx +1 -1
  384. package/src/components/code-block.tsx +81 -5
  385. package/src/components/composer.tsx +89 -8
  386. package/src/components/confirm-card.tsx +20 -4
  387. package/src/components/conversation-item.tsx +138 -4
  388. package/src/components/conversation-list.tsx +230 -15
  389. package/src/components/embed.tsx +4 -0
  390. package/src/components/empty.tsx +14 -3
  391. package/src/components/file-tree.tsx +5 -1
  392. package/src/components/form-widgets.tsx +257 -195
  393. package/src/components/form.tsx +336 -21
  394. package/src/components/loader.tsx +12 -5
  395. package/src/components/message-skills.tsx +1 -1
  396. package/src/components/message.tsx +142 -12
  397. package/src/components/prompt-input.tsx +7 -1
  398. package/src/components/prompt-suggestion.tsx +4 -1
  399. package/src/components/reasoning.tsx +30 -3
  400. package/src/components/response-compare.tsx +2 -2
  401. package/src/components/response-stream.tsx +13 -7
  402. package/src/components/screen.tsx +5 -0
  403. package/src/components/scroll-button.tsx +63 -4
  404. package/src/components/source.tsx +6 -1
  405. package/src/components/tasks-card.tsx +58 -16
  406. package/src/components/thread.tsx +10 -1
  407. package/src/components/toast.tsx +11 -5
  408. package/src/components/tool-types.ts +9 -0
  409. package/src/components/voice-input.tsx +35 -3
  410. package/src/components/voice-output.tsx +46 -6
  411. package/src/components/workspace-shell.tsx +285 -0
  412. package/src/diagnostics/hook.ts +352 -0
  413. package/src/diagnostics/index.ts +82 -0
  414. package/src/diagnostics/report-request.ts +296 -0
  415. package/src/elements/attachments.tsx +9 -8
  416. package/src/elements/audio-visualizer.tsx +48 -4
  417. package/src/elements/chat-workspace.tsx +159 -287
  418. package/src/elements/chat.tsx +31 -10
  419. package/src/elements/checkbox-group.tsx +164 -0
  420. package/src/elements/checkbox.tsx +134 -0
  421. package/src/elements/code-block.tsx +19 -1
  422. package/src/elements/command.tsx +4 -1
  423. package/src/elements/compiled.css +1 -1
  424. package/src/elements/composer.tsx +12 -1
  425. package/src/elements/conversation-item.tsx +120 -0
  426. package/src/elements/conversation-list.tsx +60 -11
  427. package/src/elements/default-input.tsx +5 -5
  428. package/src/elements/define-entry.ts +12 -0
  429. package/src/elements/define.tsx +168 -8
  430. package/src/elements/diagnostic-events.ts +114 -0
  431. package/src/elements/dialog.tsx +47 -0
  432. package/src/elements/disclosure.ts +34 -12
  433. package/src/elements/dock.tsx +215 -0
  434. package/src/elements/dropdown.tsx +123 -0
  435. package/src/elements/element-data-types.ts +40 -0
  436. package/src/elements/element-diagnostics.ts +392 -0
  437. package/src/elements/element-manifest.json +36 -0
  438. package/src/elements/element-meta.json +1483 -560
  439. package/src/elements/element-nonscalar.json +185 -0
  440. package/src/elements/element-types.d.ts +589 -167
  441. package/src/elements/feedback-bar.tsx +5 -0
  442. package/src/elements/icon-names.json +29 -0
  443. package/src/elements/input.tsx +312 -23
  444. package/src/elements/menu.tsx +13 -0
  445. package/src/elements/message.tsx +2 -0
  446. package/src/elements/pane-grid.tsx +111 -0
  447. package/src/elements/prompt-dock.tsx +2 -1
  448. package/src/elements/prompt-input.tsx +16 -10
  449. package/src/elements/radio-group.tsx +129 -0
  450. package/src/elements/register-impl.ts +52 -0
  451. package/src/elements/register.ts +28 -0
  452. package/src/elements/resizable.tsx +52 -25
  453. package/src/elements/scroll-button.tsx +59 -6
  454. package/src/elements/select.tsx +165 -0
  455. package/src/elements/slider.tsx +171 -0
  456. package/src/elements/slots.ts +108 -13
  457. package/src/elements/styles.css +119 -9
  458. package/src/elements/thinking-bar.tsx +16 -7
  459. package/src/elements/thread.tsx +2 -0
  460. package/src/elements/toast.tsx +17 -1
  461. package/src/elements/tool.tsx +26 -5
  462. package/src/elements/voice-input.tsx +11 -2
  463. package/src/elements/voice-output.tsx +16 -3
  464. package/src/index.ts +4 -1
  465. package/src/primitives/card-data-types.ts +49 -0
  466. package/src/primitives/card-host.tsx +4 -2
  467. package/src/primitives/card-routing.ts +7 -56
  468. package/src/primitives/card-schemas/form.schema.json +21 -1
  469. package/src/primitives/card-validate.ts +10 -2
  470. package/src/primitives/chat-config.tsx +33 -6
  471. package/src/primitives/field-mask.ts +256 -0
  472. package/src/primitives/field-semantics.ts +115 -0
  473. package/src/primitives/input-mask.ts +853 -0
  474. package/src/primitives/toast-store.ts +66 -4
  475. package/src/primitives/url-scheme-policy.ts +70 -0
  476. package/src/primitives/use-resize-observer.ts +33 -0
  477. package/src/primitives/use-speech-recognition.ts +12 -1
  478. package/src/primitives/use-stick-to-bottom.ts +34 -2
  479. package/src/primitives/use-text-stream.ts +33 -2
  480. package/src/remote/provider-runtime.ts +6 -3
  481. package/src/schemas/index.ts +1 -0
  482. package/src/schemas/tool-defs.ts +307 -6
  483. package/src/solid.ts +15 -0
  484. package/src/state/index.ts +13 -1
  485. package/src/state/mock.ts +92 -6
  486. package/src/state/persistence.ts +180 -0
  487. package/src/state/stream.ts +71 -4
  488. package/src/state/threads.ts +142 -0
  489. package/src/types.ts +4 -2
  490. package/src/ui/agent-card.tsx +2 -2
  491. package/src/ui/avatar.tsx +1 -1
  492. package/src/ui/checkbox-group.tsx +153 -0
  493. package/src/ui/checkbox.tsx +63 -0
  494. package/src/ui/dialog.tsx +6 -0
  495. package/src/ui/dock.tsx +584 -0
  496. package/src/ui/dropdown.tsx +67 -23
  497. package/src/ui/hover-card.tsx +156 -6
  498. package/src/ui/icon.tsx +53 -0
  499. package/src/ui/input.tsx +275 -16
  500. package/src/ui/kbd.tsx +1 -1
  501. package/src/ui/nav.tsx +1 -1
  502. package/src/ui/pane-group.tsx +2 -2
  503. package/src/ui/radio.tsx +150 -0
  504. package/src/ui/resizable.tsx +11 -0
  505. package/src/ui/select.tsx +168 -0
  506. package/src/ui/slider.tsx +178 -0
  507. package/src/ui/switch.tsx +49 -18
  508. package/src/utils/cn.ts +11 -5
  509. package/src/wire/chunk.ts +47 -0
  510. package/src/wire/consume.ts +185 -26
  511. package/src/wire/diagnostics.ts +727 -0
  512. package/src/wire/encode-probe.ts +214 -0
  513. package/src/wire/encode.ts +267 -14
  514. package/src/wire/formats/anthropic.ts +8 -1
  515. package/src/wire/formats/openai.ts +5 -0
  516. package/src/wire/index.ts +22 -0
  517. package/src/wire/read.ts +250 -6
  518. package/src/wire/sse.ts +16 -3
  519. package/theme.css +84 -13
  520. package/dist/elements/chunks/action-icons-DW9muWrY.js +0 -1
  521. package/dist/elements/chunks/arrow-left-iJVnQmxA.js +0 -1
  522. package/dist/elements/chunks/artifact-BSuPYFHY.js +0 -1
  523. package/dist/elements/chunks/attachments-CL6TaqIb.js +0 -1
  524. package/dist/elements/chunks/audio-visualizer-BuUqQmaO.js +0 -1
  525. package/dist/elements/chunks/badge-TIMiJFKc.js +0 -1
  526. package/dist/elements/chunks/bash-InADTalH.js +0 -1
  527. package/dist/elements/chunks/card-renderer-CSoTL_e1.js +0 -1
  528. package/dist/elements/chunks/card-routing-BK09BdmL.js +0 -1
  529. package/dist/elements/chunks/chat-thread-DxoKaStk.js +0 -1
  530. package/dist/elements/chunks/check-MdLzbxrm.js +0 -1
  531. package/dist/elements/chunks/chevron-down-MK7IzDqe.js +0 -1
  532. package/dist/elements/chunks/chevron-right-C5jXhmtV.js +0 -1
  533. package/dist/elements/chunks/choice-card-CGMc3kek.js +0 -1
  534. package/dist/elements/chunks/circle-BG7VkPep.js +0 -1
  535. package/dist/elements/chunks/circle-check-GqvO2UBs.js +0 -1
  536. package/dist/elements/chunks/circle-x-mhH7pOK2.js +0 -1
  537. package/dist/elements/chunks/code-block-ClhQO9RW.js +0 -1
  538. package/dist/elements/chunks/collapsible-DBcBkFPh.js +0 -1
  539. package/dist/elements/chunks/composer-CZZmtYOT.js +0 -69
  540. package/dist/elements/chunks/confirm-card-BWjf2-xo.js +0 -1
  541. package/dist/elements/chunks/context-hKjNqiyQ.js +0 -1
  542. package/dist/elements/chunks/conversation-list-CsGJjSKG.js +0 -1
  543. package/dist/elements/chunks/core-AYMC6_lb.js +0 -12
  544. package/dist/elements/chunks/css-M7EaDHN_.js +0 -1
  545. package/dist/elements/chunks/default-input-B1Mem5wu.js +0 -1
  546. package/dist/elements/chunks/define-B_tXMYRm.js +0 -1
  547. package/dist/elements/chunks/disclosure-DAoYOKew.js +0 -1
  548. package/dist/elements/chunks/download-DnCyWFJE.js +0 -1
  549. package/dist/elements/chunks/dropdown-CmNna5lT.js +0 -1
  550. package/dist/elements/chunks/embed-CjAD2jSi.js +0 -1
  551. package/dist/elements/chunks/engine-javascript-vq0WuIJl.js +0 -141
  552. package/dist/elements/chunks/file-text-D0J9F6M7.js +0 -1
  553. package/dist/elements/chunks/folder-NV1pi_ud.js +0 -1
  554. package/dist/elements/chunks/form-Cp8Y00Wn.js +0 -1
  555. package/dist/elements/chunks/github-dark-dimmed-DUshB20C.js +0 -1
  556. package/dist/elements/chunks/github-light-JYsPkUQd.js +0 -1
  557. package/dist/elements/chunks/hover-card-6KtXpLwT.js +0 -1
  558. package/dist/elements/chunks/html-CPZ3oZQ7.js +0 -1
  559. package/dist/elements/chunks/icon-97R8SR2p.js +0 -1
  560. package/dist/elements/chunks/info-C8r5Q6cc.js +0 -1
  561. package/dist/elements/chunks/input-DrseEjhp.js +0 -1
  562. package/dist/elements/chunks/javascript-C25yR2R2.js +0 -1
  563. package/dist/elements/chunks/json-DxJze_jm.js +0 -1
  564. package/dist/elements/chunks/kbd-OGJDUT-O.js +0 -1
  565. package/dist/elements/chunks/link-BdsfLB7b.js +0 -1
  566. package/dist/elements/chunks/loader-B5QzK_8_.js +0 -1
  567. package/dist/elements/chunks/message-CE4k-qaj.js +0 -1
  568. package/dist/elements/chunks/message-DtXKPqiR.js +0 -1
  569. package/dist/elements/chunks/message-square-C9ovmtOo.js +0 -1
  570. package/dist/elements/chunks/paperclip-Bg0ITU3b.js +0 -1
  571. package/dist/elements/chunks/progress-bar-D1_rzt6N.js +0 -1
  572. package/dist/elements/chunks/prompt-suggestion-D5Sm8xF1.js +0 -1
  573. package/dist/elements/chunks/reasoning-BrxQfpfI.js +0 -1
  574. package/dist/elements/chunks/rotate-cw-DzVDJOA1.js +0 -1
  575. package/dist/elements/chunks/scroll-area-93A1bbeG.js +0 -1
  576. package/dist/elements/chunks/scroll-button-CrTo7wm4.js +0 -1
  577. package/dist/elements/chunks/share-DgNbkJKY.js +0 -1
  578. package/dist/elements/chunks/slots-CIw9RlAe.js +0 -1
  579. package/dist/elements/chunks/source-w9V0NnBn.js +0 -1
  580. package/dist/elements/chunks/star-DHvACxtm.js +0 -1
  581. package/dist/elements/chunks/store-HIPGhNz9.js +0 -1
  582. package/dist/elements/chunks/svelte--5p79yCD.js +0 -1
  583. package/dist/elements/chunks/tasks-card-lPxoodlA.js +0 -1
  584. package/dist/elements/chunks/text-shimmer-BY_rI3s5.js +0 -1
  585. package/dist/elements/chunks/textarea-DPfuhswM.js +0 -1
  586. package/dist/elements/chunks/toast-store-VUZZBhzH.js +0 -1
  587. package/dist/elements/chunks/tsx-B8rCNbgL.js +0 -1
  588. package/dist/elements/chunks/typescript-RycA9KXf.js +0 -1
  589. package/dist/elements/chunks/use-card-resolution-DJg32jGH.js +0 -1
  590. package/dist/elements/chunks/variant-custom-D5ZlmziF.js +0 -1
  591. package/dist/elements/chunks/video-Bb86fVYI.js +0 -1
  592. package/dist/elements/chunks/vue-BmIZj4XD.js +0 -1
  593. package/dist/elements/chunks/x-BOhjBeOd.js +0 -1
  594. package/dist/llms/llms-full.txt +0 -2834
  595. package/dist/llms/llms.txt +0 -156
  596. package/dist/primitives/card-validate-generator.testlib.d.ts +0 -20
  597. package/dist/register-impl-DGmGzrEM.js +0 -145
  598. package/dist/ui/stat.d.ts +0 -16
  599. package/dist/variant-custom-MkTNTycd.js +0 -1
  600. package/src/primitives/card-validate-generator.testlib.ts +0 -38
  601. package/src/ui/stat.tsx +0 -41
  602. /package/dist/{elements/chunks/card-tags-D8lZ-C_U.js → card-tags-D8lZ-C_U.js} +0 -0
  603. /package/dist/{elements/chunks/link-preview-DNILK391.js → link-preview-DNILK391.js} +0 -0
@@ -1 +1 @@
1
- import{s as d,c as r,m as g,j as h,S as c,F as u,t as n,f as p}from"./chunks/define-B_tXMYRm.js";import{c as v}from"./chunks/cn-CU7UAWzk.js";import{D as b,a as f,b as o,c as m}from"./chunks/dropdown-CmNna5lT.js";import{B as x}from"./chunks/button-B9okqG73.js";import{w}from"./chunks/disclosure-DAoYOKew.js";var A=n('<div class="px-2 py-1 text-[10px] uppercase tracking-wider text-muted-foreground">Authors'),C=n('<div class="px-2 py-1 text-[10px] uppercase tracking-wider text-muted-foreground">Tags'),k=n('<svg width=12 height=12 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3">'),S=n('<svg width=12 height=12 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><polyline points="6 9 12 15 18 9">');function T(a){const[e]=d(a,["currentLabel","onScopeChange","availableAuthors","availableTags","class","defaultOpen","disabled","controllerRef"]);return r(m,{get defaultOpen(){return e.defaultOpen},get disabled(){return e.disabled},get controllerRef(){return e.controllerRef},get children(){return[r(b,{as:t=>r(x,g({variant:"ghost",size:"sm",get class(){return v("gap-1 text-xs",e.class)}},t,{get children(){return[k(),h(()=>e.currentLabel),S()]}}))}),r(f,{class:"min-w-[180px]",get children(){return[r(o,{onSelect:()=>e.onScopeChange(void 0),children:"All Content"}),r(c,{get when(){var t;return(t=e.availableAuthors)==null?void 0:t.length},get children(){return[A(),r(u,{get each(){return e.availableAuthors},children:t=>r(o,{onSelect:()=>e.onScopeChange({authors:[t]}),children:t})})]}}),r(c,{get when(){var t;return(t=e.availableTags)==null?void 0:t.length},get children(){return[C(),r(u,{get each(){return e.availableTags},children:t=>r(o,{onSelect:()=>e.onScopeChange({tags:[t]}),children:t})})]}})]}})]}})}p("kai-scope-picker",{availableAuthors:[],availableTags:[],currentLabel:"All Content",open:void 0,defaultOpen:void 0,disabled:void 0},(a,e)=>{const{dispatch:t,flag:s}=e;let i;return w(e,()=>i,()=>a.open),r(T,{get currentLabel(){return a.currentLabel??"All Content"},get availableAuthors(){return a.availableAuthors??[]},get availableTags(){return a.availableTags??[]},onScopeChange:l=>t("kai-scope-change",{filters:l}),get defaultOpen(){return s("defaultOpen")},get disabled(){return s("disabled")},controllerRef:l=>i=l})});
1
+ import{s as d,c as r,q as g,m as h,S as c,F as u,t as n,f as p}from"../define-CGGX-7Vg.js";import{c as v}from"../cn-DN5AWfiS.js";import{D as b,a as f,b as o,c as m}from"../dropdown-BwhViJFd.js";import{B as w}from"../button-BH6rN0U-.js";import{w as x}from"../disclosure-CbLtajUQ.js";var A=n('<div class="px-2 py-1 text-micro uppercase tracking-wider text-muted-foreground">Authors'),C=n('<div class="px-2 py-1 text-micro uppercase tracking-wider text-muted-foreground">Tags'),k=n('<svg width=12 height=12 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3">'),S=n('<svg width=12 height=12 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><polyline points="6 9 12 15 18 9">');function T(a){const[e]=d(a,["currentLabel","onScopeChange","availableAuthors","availableTags","class","defaultOpen","disabled","controllerRef"]);return r(m,{get defaultOpen(){return e.defaultOpen},get disabled(){return e.disabled},get controllerRef(){return e.controllerRef},get children(){return[r(b,{as:t=>r(w,g({variant:"ghost",size:"sm",get class(){return v("gap-1 text-xs",e.class)}},t,{get children(){return[k(),h(()=>e.currentLabel),S()]}}))}),r(f,{class:"min-w-[180px]",get children(){return[r(o,{onSelect:()=>e.onScopeChange(void 0),children:"All Content"}),r(c,{get when(){var t;return(t=e.availableAuthors)==null?void 0:t.length},get children(){return[A(),r(u,{get each(){return e.availableAuthors},children:t=>r(o,{onSelect:()=>e.onScopeChange({authors:[t]}),children:t})})]}}),r(c,{get when(){var t;return(t=e.availableTags)==null?void 0:t.length},get children(){return[C(),r(u,{get each(){return e.availableTags},children:t=>r(o,{onSelect:()=>e.onScopeChange({tags:[t]}),children:t})})]}})]}})]}})}p("kai-scope-picker",{availableAuthors:[],availableTags:[],currentLabel:"All Content",open:void 0,defaultOpen:void 0,disabled:void 0},(a,e)=>{const{dispatch:t,flag:s}=e;let i;return x(e,()=>i,()=>a.open),r(T,{get currentLabel(){return a.currentLabel??"All Content"},get availableAuthors(){return a.availableAuthors??[]},get availableTags(){return a.availableTags??[]},onScopeChange:l=>t("kai-scope-change",{filters:l}),get defaultOpen(){return s("defaultOpen")},get disabled(){return s("disabled")},controllerRef:l=>i=l})});
@@ -1 +1 @@
1
- import{f as y,g as R,o as S,h as C,c as a,i as d,u as f,S as u,v as _,a as $,b as H,t as c}from"./chunks/define-B_tXMYRm.js";import{c as O,C as V,a as A}from"./chunks/conversation-list-CsGJjSKG.js";import{r as E,W as L}from"./chunks/slots-CIw9RlAe.js";import{C as N}from"./chunks/chat-thread-DxoKaStk.js";import{R as j,a as M,b as q}from"./chunks/resizable-Dpzjlvp4.js";import{c as D,a as F}from"./chunks/message-DtXKPqiR.js";var G=c('<div class="shrink-0 border-b border-border"><slot name=main-header>'),J=c("<slot name=main>"),K=c('<div class="flex h-full flex-col overflow-hidden"><div class="min-h-0 flex-1">'),P=c("<div><slot name=sidebar-header>"),Q=c('<div class="min-h-0 flex-1">'),U=c("<div class=shrink-0><slot name=sidebar-footer>"),X=c('<div part=sidebar class="flex h-full flex-col overflow-hidden bg-surface">'),Y=c('<div class="h-full w-full overflow-hidden bg-background">'),Z=c('<div class="flex h-full"><div class="flex w-11 shrink-0 flex-col items-center border-r border-border bg-surface pt-2.5"></div><div class="min-w-0 flex-1">');y("kai-workspace",{groups:[],conversations:[],activeId:void 0,messages:[],value:void 0,placeholder:"Send a message...",loading:!1,suggestions:void 0,suggestionMode:"submit",proseSize:"sm",codeTheme:"github-dark-dimmed",codeHighlight:!0,chatTitle:void 0,models:void 0,currentModel:void 0,context:void 0,scrollButton:!0,search:!1,voice:!1,triggers:void 0,kindIcons:void 0,sidebarWidth:26,sidebarMinWidth:240,sidebarMaxWidth:420,sidebarCollapsed:void 0,defaultSidebarCollapsed:void 0,collapseBelow:void 0,compact:void 0,noConversations:void 0,cardTypes:void 0,cardSchemas:void 0},(r,{dispatch:t,flag:g,expose:T,element:w})=>{const z=F("kai-workspace"),[v,W]=R({});S(()=>{const e=()=>W(E(w,L));e();const s=new MutationObserver(e);s.observe(w,{childList:!0}),C(()=>s.disconnect())});const[m,B]=O(()=>r.sidebarCollapsed,g("defaultSidebarCollapsed")),h=e=>{B(e),t("kai-sidebar-toggle",{collapsed:e})},p=()=>h(!m());let b,k=!1;S(()=>{if(typeof ResizeObserver>"u")return;const e=new ResizeObserver(s=>{var n;const o=r.collapseBelow;if(o==null||r.sidebarCollapsed!==void 0)return;const i=(((n=s[0])==null?void 0:n.contentRect.width)??b.clientWidth)<o;i&&!m()?(k=!0,h(!0)):!i&&m()&&k&&(k=!1,h(!1))});e.observe(b),C(()=>e.disconnect())});let l;T({toggleSidebar:()=>p(),collapseSidebar:()=>h(!0),expandSidebar:()=>h(!1),focus:e=>l?.focus(e),clear:()=>l?.clear(),send:()=>l?.send(),scrollToBottom:e=>l?.scrollToBottom(e)});const I=a(N,{get messages(){return z(r.messages)},get value(){return r.value},get placeholder(){return r.placeholder},get loading(){return g("loading")},get suggestions(){return r.suggestions},get suggestionMode(){return r.suggestionMode},get proseSize(){return r.proseSize},get codeTheme(){return r.codeTheme},get codeHighlight(){return g("codeHighlight")},get chatTitle(){return r.chatTitle},get models(){return r.models},get currentModel(){return r.currentModel},get context(){return r.context},get scrollButton(){return r.scrollButton!==!1},get search(){return g("search")},get voice(){return g("voice")},get triggers(){return r.triggers},get kindIcons(){return r.kindIcons},get cardTypes(){return D(r.cardTypes,r.theme)},get cardSchemas(){return r.cardSchemas},onValueChange:e=>t("kai-value-change",{value:e}),onSubmit:e=>t("kai-submit",e),onSuggestionClick:e=>t("kai-suggestion-click",{value:e}),onModelChange:e=>t("kai-model-change",{modelId:e}),onMessageAction:e=>t("kai-message-action",e),onSearch:()=>t("kai-search",{}),onVoice:()=>t("kai-voice",{}),controllerRef:e=>l=e}),x=(()=>{var e=K(),s=e.firstChild;return d(e,a(u,{get when(){return v()["main-header"]},get children(){var n=G(),o=n.firstChild;return o._$owner=f(),n}}),s),d(s,a(u,{get when(){return v().main},fallback:I,get children(){var n=J();return n._$owner=f(),n}})),e})();return(()=>{var e=Y(),s=b;return typeof s=="function"?_(s,e):b=e,d(e,a(u,{get when(){return!m()},get fallback(){return(()=>{var n=Z(),o=n.firstChild,i=o.nextSibling;return d(o,a(A,{onExpand:p,class:"bg-transparent shadow-none backdrop-blur-none"})),d(i,x),n})()},get children(){return a(j,{orientation:"horizontal",get children(){return[a(M,{get defaultSize(){return r.sidebarWidth},get"data-min-size"(){return String(r.sidebarMinWidth)},get"data-max-size"(){return String(r.sidebarMaxWidth)},get children(){var n=X();return d(n,a(u,{get when(){return v()["sidebar-header"]},get children(){var o=P(),i=o.firstChild;return i._$owner=f(),$(()=>H(o,g("noConversations")?"min-h-0 flex-1":"shrink-0")),o}}),null),d(n,a(u,{get when(){return!g("noConversations")},get children(){var o=Q();return d(o,a(V,{class:"bg-transparent",get groups(){return r.groups??[]},get conversations(){return r.conversations??[]},get activeId(){return r.activeId},get compact(){return g("compact")},onSelect:i=>t("kai-conversation-select",{id:i}),onNewChat:()=>t("kai-new-chat",{}),onToggleSidebar:p})),o}}),null),d(n,a(u,{get when(){return v()["sidebar-footer"]},get children(){var o=U(),i=o.firstChild;return i._$owner=f(),o}}),null),n}}),a(q,{}),a(M,{children:x})]}})}})),e})()});
1
+ import{g as O,k as U,o as T,h as L,u as X,i as g,c as s,S as f,m as l,a as V,b as q,d as H,t as i,y as Y,l as Z,e as ee,f as te,z as re,q as ne,v as m}from"../define-CGGX-7Vg.js";import{r as ae,W as de}from"../slots-DaNjX0rc.js";import{c as N}from"../controllable-D43BKmtX.js";import{R as j,a as D,b as se}from"../resizable-Cp9HUYih.js";import{c as G}from"../cn-DN5AWfiS.js";var oe=i("<div data-drawer>"),le=i('<div part=header class="shrink-0 border-b border-border">'),ie=i('<div part=footer class="shrink-0 border-t border-border">'),ue=i('<div><div class="relative min-h-0 flex-1">');function ce(n){var k;let c;const[R,v]=O(void 0),[x,h]=N(()=>n.startCollapsed,n.defaultStartCollapsed??!1),[y,p]=N(()=>n.endCollapsed,n.defaultEndCollapsed??!1),w=e=>e==="start"?x():y(),u=e=>(e==="start"?n.startCollapsed:n.endCollapsed)!==void 0,t=(e,r)=>{var d;e==="start"?h(r):p(r),r&&I(e),(d=n.onAsideToggle)==null||d.call(n,{side:e,collapsed:r})},o=U(()=>{const e=n.drawerBelow,r=R();return e!=null&&r!=null&&r<e}),b={},z=e=>{if(!o())return;const r=document.activeElement;r instanceof HTMLElement&&(b[e]=r)},I=e=>{const r=b[e];delete b[e],o()&&r&&r.isConnected&&r.focus()},M=e=>{z(e),t(e,!1)},J={toggleAside:e=>w(e)?M(e):t(e,!0),collapseAside:e=>t(e,!0),expandAside:e=>M(e)};(k=n.controllerRef)==null||k.call(n,J);const $={start:!1,end:!1},K=e=>{const r=n.collapseBelow;if(r==null)return;const d=e<r;for(const a of["start","end"])W(a)&&(u(a)||(d&&!w(a)?($[a]=!0,t(a,!0)):!d&&w(a)&&$[a]&&($[a]=!1,t(a,!1))))};T(()=>{if(typeof ResizeObserver>"u")return;const e=new ResizeObserver(r=>{var d;const a=((d=r[0])==null?void 0:d.contentRect.width)??c.clientWidth;v(a),K(a)});e.observe(c),L(()=>e.disconnect())});const S=e=>e==="start"?{size:n.startWidth??280,min:n.startMinWidth??200,max:n.startMaxWidth??480}:{size:n.endWidth??320,min:n.endMinWidth??200,max:n.endMaxWidth??480},Q=e=>r=>{r.key==="Escape"&&t(e,!0)},B={},E=e=>{var r;const d=B[e];d&&((r=n.onAsideResize)==null||r.call(n,{side:e,width:d.getBoundingClientRect().width}))},W=e=>e==="start"?n.start:n.end,_=e=>{const r=S(e);return s(D,{get defaultSize(){return`${r.size}px`},get minSize(){return`${r.min}px`},get maxSize(){return`${r.max}px`},part:e==="start"?"aside start":"aside end",ref:d=>B[e]=d,class:"bg-surface",get children(){return W(e)}})},P=e=>(()=>{var r=oe();return Y(r,"keydown",Q(e),!0),H(r,"part",e==="start"?"aside start":"aside end"),g(r,()=>W(e)),V(d=>{var a=G("absolute inset-y-0 z-20 max-w-[85%] overflow-auto border-border bg-surface shadow-lg",e==="start"?"start-0 border-e":"end-0 border-s"),C=`${S(e).size}px`;return a!==d.e&&q(r,d.e=a),C!==d.t&&Z(r,"width",d.t=C),d},{e:void 0,t:void 0}),r})(),A=e=>!!W(e)&&!w(e);return(()=>{var e=ue(),r=e.firstChild,d=c;return typeof d=="function"?X(d,e):c=e,g(e,s(f,{get when(){return n.header},get children(){var a=le();return g(a,()=>n.header),a}}),r),g(r,s(se,{orientation:"horizontal",get children(){return[s(f,{get when(){return l(()=>!!A("start"))()&&!o()},get children(){return[l(()=>_("start")),s(j,{onPanelResize:()=>E("start")})]}}),s(D,{part:"main",get children(){return n.children}}),s(f,{get when(){return l(()=>!!A("end"))()&&!o()},get children(){return[s(j,{onPanelResize:()=>E("end")}),l(()=>_("end"))]}})]}}),null),g(r,s(f,{get when(){return l(()=>!!A("start"))()&&o()},get children(){return P("start")}}),null),g(r,s(f,{get when(){return l(()=>!!A("end"))()&&o()},get children(){return P("end")}}),null),g(e,s(f,{get when(){return n.footer},get children(){var a=ie();return g(a,()=>n.footer),a}}),null),V(a=>{var C=G("flex h-full w-full flex-col overflow-hidden bg-background",n.class),F=n.compact?"":void 0;return C!==a.e&&q(e,a.e=C),F!==a.t&&H(e,"data-compact",a.t=F),a},{e:void 0,t:void 0}),e})()}ee(["keydown"]);var pe=i("<slot name=main>"),ge=i("<slot>"),ve=i("<slot name=header>"),he=i("<slot name=start>"),we=i("<slot name=end>"),fe=i("<slot name=footer>");te("kai-workspace",{startCollapsed:void 0,defaultStartCollapsed:void 0,endCollapsed:void 0,defaultEndCollapsed:void 0,collapseBelow:void 0,drawerBelow:void 0,compact:void 0},(n,{dispatch:k,flag:c,expose:R,element:v,reflectFlag:x})=>{const[h,y]=O({});T(()=>{const t=()=>y(ae(v,de));t();const o=new MutationObserver(t);o.observe(v,{childList:!0}),L(()=>o.disconnect())}),x("compact"),x("defaultStartCollapsed"),x("defaultEndCollapsed");const p=(t,o)=>{const b=v.style.getPropertyValue(t).trim()||getComputedStyle(v).getPropertyValue(t).trim(),z=parseFloat(b);return Number.isFinite(z)?z:o},w=re(()=>({startWidth:p("--kai-workspace-start-width",280),startMinWidth:p("--kai-workspace-start-min-width",200),startMaxWidth:p("--kai-workspace-start-max-width",480),endWidth:p("--kai-workspace-end-width",320),endMinWidth:p("--kai-workspace-end-min-width",200),endMaxWidth:p("--kai-workspace-end-max-width",480)}));let u;return R({toggleAside:t=>u?.toggleAside(t),collapseAside:t=>u?.collapseAside(t),expandAside:t=>u?.expandAside(t)}),s(ce,ne({get header(){return l(()=>!!h().header)()?(()=>{var t=ve();return t._$owner=m(),t})():void 0},get start(){return l(()=>!!h().start)()?(()=>{var t=he();return t._$owner=m(),t})():void 0},get end(){return l(()=>!!h().end)()?(()=>{var t=we();return t._$owner=m(),t})():void 0},get footer(){return l(()=>!!h().footer)()?(()=>{var t=fe();return t._$owner=m(),t})():void 0},get startCollapsed(){return n.startCollapsed},get defaultStartCollapsed(){return c("defaultStartCollapsed")},get endCollapsed(){return n.endCollapsed},get defaultEndCollapsed(){return c("defaultEndCollapsed")},get collapseBelow(){return n.collapseBelow},get drawerBelow(){return n.drawerBelow},get compact(){return c("compact")}},w,{onAsideToggle:t=>k("kai-aside-toggle",t),onAsideResize:t=>k("kai-aside-resize",t),controllerRef:t=>u=t,get children(){return[(()=>{var t=pe();return t._$owner=m(),t})(),(()=>{var t=ge();return t._$owner=m(),t})()]}}))});
@@ -1 +1 @@
1
- import{f as u,g as h,o as m,h as v,k as p,c as k}from"./chunks/define-B_tXMYRm.js";import{r as S,C as b}from"./chunks/slots-CIw9RlAe.js";import{C as f}from"./chunks/chat-thread-DxoKaStk.js";import{c as T,a as M}from"./chunks/message-DtXKPqiR.js";u("kai-chat",{messages:[],value:void 0,placeholder:"Send a message...",loading:!1,suggestions:void 0,suggestionMode:"submit",persistSuggestions:!1,proseSize:"sm",codeTheme:"github-dark-dimmed",codeHighlight:!0,chatTitle:void 0,models:void 0,currentModel:void 0,context:void 0,scrollButton:!0,search:!1,voice:!1,triggers:void 0,kindIcons:void 0,actionsReveal:"always",cardTypes:void 0,cardSchemas:void 0,accept:void 0},(t,{dispatch:r,flag:s,element:i,expose:c})=>{const g=M("kai-chat"),[d,l]=h({}),n=e=>d()[e]===!0;m(()=>{const e=()=>l(S(i,b));e();const a=new MutationObserver(e);a.observe(i,{childList:!0}),v(()=>a.disconnect())}),p(()=>{i.toggleAttribute("loading",s("loading"))});let o;return c({focus:e=>o?.focus(e),blur:()=>{var e,a;return(a=(e=i.shadowRoot)==null?void 0:e.activeElement)==null?void 0:a.blur()},clear:()=>o?.clear(),send:()=>o?.send(),scrollToBottom:e=>o?.scrollToBottom(e)}),k(f,{get messages(){return g(t.messages)},get value(){return t.value},get placeholder(){return t.placeholder},get loading(){return s("loading")},get suggestions(){return t.suggestions},get suggestionMode(){return t.suggestionMode},get persistSuggestions(){return s("persistSuggestions")},get proseSize(){return t.proseSize},get codeTheme(){return t.codeTheme},get codeHighlight(){return s("codeHighlight")},get chatTitle(){return t.chatTitle},get models(){return t.models},get currentModel(){return t.currentModel},get context(){return t.context},get scrollButton(){return t.scrollButton!==!1},get search(){return s("search")},get voice(){return s("voice")},get triggers(){return t.triggers},get kindIcons(){return t.kindIcons},get actionsReveal(){return t.actionsReveal},get cardTypes(){return T(t.cardTypes,t.theme)},get cardSchemas(){return t.cardSchemas},onValueChange:e=>r("kai-value-change",{value:e}),onSubmit:e=>r("kai-submit",e),get accept(){return t.accept},onAttachmentsChange:e=>r("kai-attachments-change",{attachments:e}),onAttachmentsRejected:e=>r("kai-attachments-rejected",{rejected:e}),onSuggestionClick:e=>r("kai-suggestion-click",{value:e}),onModelChange:e=>r("kai-model-change",{modelId:e}),onMessageAction:e=>r("kai-message-action",e),onSearch:()=>r("kai-search",{}),onVoice:()=>r("kai-voice",{}),controllerRef:e=>o=e,get headerStart(){return n("header-start")},get headerEnd(){return n("header-end")},get headerFull(){return n("header")},get sidebar(){return n("sidebar")},get empty(){return n("empty")},get composer(){return n("composer")},get composerActions(){return n("composer-actions")},get footer(){return n("footer")}})});
1
+ import{A as D,k as L,g as A,j as U,o as _,c as r,u as G,i as c,S as u,v as b,m as j,F as J,a as B,b as E,C as K,t as m,f as N,h as P}from"../define-CGGX-7Vg.js";import{r as Q,C as X}from"../slots-DaNjX0rc.js";import{s as Y,n as Z}from"../composer-CjngLzal.js";import{C as ee,a as te,b as re,S as ne}from"../scroll-button-CeP_gv1x.js";import{M as ae,a as I,b as oe}from"../message-DS8lzHc1.js";import{c as se,a as le,b as ie}from"../message-CwKVEdZg.js";import{M as ce}from"../model-switcher-Kk1jEQ5t.js";import{C as ue,a as ge,b as de,c as he,d as me,e as ve,f as pe,g as fe}from"../context-BY8V-Nlp.js";import{D as xe}from"../default-input-CucQEOqH.js";var be=m('<aside part=sidebar class="flex w-64 shrink-0 flex-col overflow-hidden border-r border-border"><slot name=sidebar>'),we=m("<header part=header class=shrink-0><slot name=header>"),ke=m('<div class="absolute bottom-4 left-1/2 flex w-full max-w-3xl -translate-x-1/2 justify-center px-5">'),Se=m('<div class="shrink-0 px-4"><div class="mx-auto flex max-w-3xl items-center gap-2 pb-2"><slot name=composer-actions>'),Ce=m("<slot name=composer>"),Te=m('<div part=footer class="shrink-0 px-4 pb-3"><div class="mx-auto max-w-3xl text-center text-xs text-muted-foreground"><slot name=footer>'),ye=m('<div><div class="flex h-full min-w-0 flex-1 flex-col"><div class="relative flex-1 overflow-hidden"></div><div class="shrink-0 px-4 pb-4"><div class="mx-auto max-w-3xl">'),Me=m('<div class="text-sm font-semibold text-foreground">'),$e=m("<div class=space-y-1.5>"),Ae=m('<header part=header-bar class="flex h-14 shrink-0 items-center justify-between border-b border-border px-5"><div class="flex items-center gap-2"><slot name=header-start></slot></div><div class="flex items-center gap-2"><slot name=header-end>'),Re=m("<slot name=empty>"),He=m("<div>");const V="items-stretch";function _e(e){const v=D(),f=()=>e.actionsReveal==="hover"?"hover":"always",M=L(()=>e.messages.map(a=>a.id));let p;const T=se({emit:a=>{var o;return(o=e.onMessageAction)==null?void 0:o.call(e,a)},target:()=>p}),[$,k]=A(e.value??""),[y,d]=A([]),h=()=>typeof e.value=="string"?e.value:$();U(()=>{const a=e.value;a!=null&&typeof a!="string"&&k(a)});const n=a=>{var o;k(a),(o=e.onValueChange)==null||o.call(e,a)},x=()=>{d([]),e.value===void 0&&k("")},R=()=>{var a;(a=e.onSubmit)==null||a.call(e,{value:Y(Z(h())),attachments:y()}),x()},F=a=>{var o,g;(e.suggestionMode??"submit")==="fill"?(n(a),(o=e.onSuggestionClick)==null||o.call(e,a)):((g=e.onSubmit)==null||g.call(e,{value:a,attachments:y()}),x())},O=()=>!!(e.chatTitle||e.models||e.context||e.headerStart||e.headerEnd||e.headerEndContent),z=()=>e.persistSuggestions||e.messages.length===0?e.suggestions:void 0,W=()=>e.scrollButton!==!1;return _(()=>{var a;(a=e.controllerRef)==null||a.call(e,{focus:o=>{var g;return(g=p?.querySelector('[contenteditable]:not([contenteditable="false"]), textarea'))==null?void 0:g.focus(o)},clear:()=>{var o;k(""),d([]),(o=e.onValueChange)==null||o.call(e,"")},send:()=>R(),scrollToBottom:o=>{const g=p?.querySelector(".overflow-y-auto");g?.scrollTo({top:g.scrollHeight,behavior:o??"smooth"})}})}),r(K,{get proseSize(){return e.proseSize},get codeTheme(){return e.codeTheme},get codeHighlight(){return e.codeHighlight!==!1},get portalMount(){return v.portalMount()},get children(){var a=ye(),o=a.firstChild,g=o.firstChild,H=g.nextSibling,q=H.firstChild;return G(t=>p=t,a),c(a,r(u,{get when(){return e.sidebar},get children(){var t=be(),l=t.firstChild;return l._$owner=b(),t}}),o),c(o,r(u,{get when(){return e.headerFull},get fallback(){return r(u,{get when(){return O()},get children(){var t=Ae(),l=t.firstChild,s=l.firstChild,w=l.nextSibling,S=w.firstChild;return s._$owner=b(),c(l,r(u,{get when(){return e.chatTitle},get children(){var i=Me();return c(i,()=>e.chatTitle),i}}),null),c(w,r(u,{get when(){return e.models},get children(){return r(ce,{get models(){return e.models},get currentModelId(){var i;return e.currentModel??((i=e.models[0])==null?void 0:i.id)??""},onModelChange:i=>{var C;return(C=e.onModelChange)==null?void 0:C.call(e,i)}})}}),S),c(w,r(u,{get when(){return e.context},get children(){return r(ue,{get usedTokens(){return e.context.usedTokens},get maxTokens(){return e.context.maxTokens},get inputTokens(){return e.context.inputTokens},get outputTokens(){return e.context.outputTokens},get estimatedCost(){return e.context.estimatedCost},get children(){return[r(ge,{}),r(de,{get children(){return[r(he,{}),r(me,{get children(){var i=$e();return c(i,r(ve,{}),null),c(i,r(pe,{}),null),i}}),r(fe,{})]}})]}})}}),S),S._$owner=b(),c(w,()=>e.headerEndContent,null),t}})},get children(){var t=we(),l=t.firstChild;return l._$owner=b(),t}}),g),c(g,r(ee,{class:"h-full px-4 py-3",get children(){return[r(te,{class:"mx-auto w-full max-w-3xl space-y-4",get children(){return[r(u,{get when(){return j(()=>!!(e.empty||e.emptyContent))()&&e.messages.length===0},get children(){return r(u,{get when(){return e.emptyContent},get fallback(){return(()=>{var t=Re();return t._$owner=b(),t})()},get children(){return e.emptyContent}})}}),r(J,{get each(){return M()},children:(t,l)=>r(u,{get when(){return e.messages[l()]},children:s=>{const w=r(ae,{get parts(){return s().parts},get isStreaming(){return j(()=>e.loading===!0&&s().role==="assistant")()&&l()===e.messages.length-1},get reasoningMode(){return e.reasoning},get reasoningDefaultOpen(){return e.reasoningOpen},get cardTypes(){return e.cardTypes},get cardSchemas(){return e.cardSchemas},get cardHostElement(){return e.cardHostElement},get isUser(){return s().role==="user"},get markdown(){return s().role==="assistant"},get actions(){return s().actions},get actionsReveal(){return f()},get activeFeedback(){return T.resolveFeedback(s())},get copied(){return T.isCopied(s().id)},onAction:i=>T.handleAction(s(),i)}),S=()=>f()==="hover"?"group ":"";return r(u,{get when(){return s().avatar},get fallback(){return r(I,{get role(){return s().role},get class(){return`${S()}${s().role==="user"?"flex-col items-end":`flex-col ${V}`}`},children:w})},children:i=>r(I,{get role(){return s().role},get class(){return S()},get children(){return[r(oe,{get src(){return i().src??""},get alt(){return i().alt??""},get fallback(){return i().fallback}}),(()=>{var C=He();return c(C,w),B(()=>E(C,`flex min-w-0 flex-1 flex-col ${s().role==="user"?"items-end":V}`)),C})()]}})})}})}),r(re,{})]}}),r(u,{get when(){return W()},get children(){var t=ke();return c(t,r(ne,{})),t}})]}})),c(o,r(u,{get when(){return e.composerActions},get children(){var t=Se(),l=t.firstChild,s=l.firstChild;return s._$owner=b(),t}}),H),c(q,r(u,{get when(){return e.composer},get fallback(){return r(xe,{get value(){return h()},get placeholder(){return e.placeholder},get loading(){return e.loading===!0},get suggestions(){return z()},get attachments(){return y()},get accept(){return e.accept},get onAttachmentsRejected(){return e.onAttachmentsRejected},get attach(){return e.attach},get webSearch(){return e.webSearch===!0},get voice(){return e.voice===!0},get triggers(){return e.triggers},get kindIcons(){return e.kindIcons},onValueChange:n,onSubmit:R,onSuggestionClick:F,onAttachmentsChange:t=>{var l;d(t),(l=e.onAttachmentsChange)==null||l.call(e,t)},onWebSearch:()=>{var t;return(t=e.onWebSearch)==null?void 0:t.call(e)},onVoice:()=>{var t;return(t=e.onVoice)==null?void 0:t.call(e)}})},get children(){var t=Ce();return t._$owner=b(),t}})),c(o,r(u,{get when(){return e.footer},get children(){var t=Te(),l=t.firstChild,s=l.firstChild;return s._$owner=b(),t}}),null),B(()=>E(a,`flex h-full bg-background ${e.class??""}`)),a}})}N("kai-chat",{messages:[],value:void 0,placeholder:"Send a message...",loading:!1,suggestions:void 0,suggestionMode:"submit",persistSuggestions:!1,proseSize:"sm",codeTheme:"github-dark-dimmed",codeHighlight:!0,chatTitle:void 0,models:void 0,currentModel:void 0,context:void 0,scrollButton:!0,attach:!0,webSearch:!1,voice:!1,triggers:void 0,kindIcons:void 0,actionsReveal:"always",cardTypes:void 0,cardSchemas:void 0,accept:void 0,reasoning:void 0,reasoningOpen:void 0},(e,{dispatch:v,flag:f,reflectFlag:M,element:p,expose:T})=>{const $=ie("kai-chat"),[k,y]=A({}),d=n=>k()[n]===!0;_(()=>{const n=()=>y(Q(p,X));n();const x=new MutationObserver(n);x.observe(p,{childList:!0}),P(()=>x.disconnect())}),M("loading");let h;return T({focus:n=>h?.focus(n),blur:()=>{var n,x;return(x=(n=p.shadowRoot)==null?void 0:n.activeElement)==null?void 0:x.blur()},clear:()=>h?.clear(),send:()=>h?.send(),scrollToBottom:n=>h?.scrollToBottom(n)}),r(_e,{get messages(){return $(e.messages)},get value(){return e.value},get placeholder(){return e.placeholder},get loading(){return f("loading")},get suggestions(){return e.suggestions},get suggestionMode(){return e.suggestionMode},get persistSuggestions(){return f("persistSuggestions")},get proseSize(){return e.proseSize},get codeTheme(){return e.codeTheme},get codeHighlight(){return f("codeHighlight")},get chatTitle(){return e.chatTitle},get models(){return e.models},get currentModel(){return e.currentModel},get context(){return e.context},get scrollButton(){return e.scrollButton!==!1},get attach(){return f("attach")},get webSearch(){return f("webSearch")},get voice(){return f("voice")},get reasoning(){return e.reasoning},get reasoningOpen(){return f("reasoningOpen")},get triggers(){return e.triggers},get kindIcons(){return e.kindIcons},get actionsReveal(){return e.actionsReveal},get cardTypes(){return le(e.cardTypes,e.theme)},get cardSchemas(){return e.cardSchemas},cardHostElement:p,onValueChange:n=>v("kai-value-change",{value:n}),onSubmit:n=>v("kai-submit",n),get accept(){return e.accept},onAttachmentsChange:n=>v("kai-attachments-change",{attachments:n}),onAttachmentsRejected:n=>v("kai-attachments-rejected",{rejected:n}),onSuggestionClick:n=>v("kai-suggestion-click",{value:n}),onModelChange:n=>v("kai-model-change",{modelId:n}),onMessageAction:n=>v("kai-message-action",n),onWebSearch:()=>v("kai-web-search",{}),onVoice:()=>v("kai-voice",{}),controllerRef:n=>h=n,get headerStart(){return d("header-start")},get headerEnd(){return d("header-end")},get headerFull(){return d("header")},get sidebar(){return d("sidebar")},get empty(){return d("empty")},get composer(){return d("composer")},get composerActions(){return d("composer-actions")},get footer(){return d("footer")}})});
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ import{f,g as h,z as s,j as A,c as y}from"../define-CGGX-7Vg.js";import{C as k}from"../checkbox-group-B1kDLLYk.js";f("kai-checkbox-group",{options:[],value:void 0,name:void 0,disabled:void 0,label:void 0},(a,v)=>{const{element:t,dispatch:g,flag:b,expose:c}=v,i=a.value??t.getAttribute("value")??"",[u,o]=h(i?[i]:[]),n=()=>u()[0]??"",d=e=>e==null?t.getAttribute("value")??"":String(e),p=e=>{const r=s(u);r.length===e.length&&r.every((l,m)=>l===e[m])||(o(e),g("kai-change",{value:e[0]??"",values:e}))};return Object.defineProperty(t,"value",{get:()=>n(),set:e=>{const r=d(e);s(n)!==r&&o(r?[r]:[])},configurable:!0,enumerable:!0}),Object.defineProperty(t,"values",{get:()=>u(),set:e=>o(Array.isArray(e)?e.map(String):[]),configurable:!0,enumerable:!0}),A(()=>{const e=n();e?t.getAttribute("value")!==e&&t.setAttribute("value",e):t.hasAttribute("value")&&t.removeAttribute("value")}),c({focus:e=>{var r,l;return(l=(r=t.shadowRoot)==null?void 0:r.querySelector('input[type="checkbox"]'))==null?void 0:l.focus(e)}}),y(k,{get options(){return a.options??[]},get value(){return u()},get name(){return a.name},get disabled(){return b("disabled")},get label(){return a.label},onChange:e=>p(e)})});
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ import{f as k,g as b,z as c,j as v,c as m,t as f}from"../define-CGGX-7Vg.js";import{C as p}from"../checkbox-Dc9Yov_B.js";var x=f("<style>:host{display:inline-flex}");k("kai-checkbox",{checked:void 0,defaultChecked:void 0,indeterminate:void 0,disabled:void 0,required:void 0,label:void 0,name:void 0,value:void 0},(i,l)=>{const{element:r,dispatch:s,flag:t,expose:h}=l,[a,n]=b(t("defaultChecked")||t("checked")),g=e=>e===!0?!0:e===!1?!1:r.hasAttribute("checked")&&r.getAttribute("checked")!=="false",o=e=>{t("disabled")||c(a)!==e&&(n(e),s("kai-change",{checked:e}))};return Object.defineProperty(r,"checked",{get:()=>a(),set:e=>{const d=g(e);c(a)!==d&&n(d)},configurable:!0,enumerable:!0}),v(()=>{const e=a();e!==r.hasAttribute("checked")&&r.toggleAttribute("checked",e)}),h({toggle:()=>o(!c(a)),focus:e=>{var d,u;return(u=(d=r.shadowRoot)==null?void 0:d.querySelector('input[type="checkbox"]'))==null?void 0:u.focus(e)}}),[x(),m(p,{get checked(){return a()},get indeterminate(){return t("indeterminate")},get disabled(){return t("disabled")},get required(){return t("required")},get"aria-label"(){return i.label},get"aria-checked"(){return t("indeterminate")?"mixed":void 0},get name(){return i.name},get value(){return i.value??"on"},onChange:e=>o(e.currentTarget.checked)})]});
@@ -1 +1 @@
1
- import{c as e,S as i,a as c,d as u,s as g,q as h,m as d,i as l,t as s,f as p,j as v}from"./chunks/define-B_tXMYRm.js";import{c as o}from"./chunks/cn-CU7UAWzk.js";import{B as m}from"./chunks/button-B9okqG73.js";import{T as f}from"./chunks/tooltip-BqwnFWhn.js";import{S as k}from"./chunks/separator-DH2r_ZSZ.js";var b=s("<div>"),w=s('<svg width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><path d="M19 21l-7-5-7 5V5a2 2 0 012-2h10a2 2 0 012 2z">');function z(t){const[r,a]=g(t,["class","children"]);return(()=>{var n=b();return h(n,d({get class(){return o("flex items-center gap-0.5 overflow-hidden text-muted-foreground",r.class)}},a),!1,!0),l(n,()=>r.children,null),l(n,e(k,{}),null),n})()}function C(t){return e(i,{get when(){return!t.children},get fallback(){return t.children},get children(){var r=w();return c(()=>u(r,"class",o("size-4 shrink-0",t.class))),r}})}function x(t){const r=()=>t.variant??"ghost",a=()=>t.size??"sm",n=()=>e(m,{get variant(){return r()},get size(){return a()},type:"button",get"aria-label"(){return t["aria-label"]},get onClick(){return t.onClick},get class(){return t.class},get children(){return t.children}});return e(i,{get when(){return t.tooltip},get fallback(){return n()},get children(){return e(f,{get content(){return t.tooltip},get children(){return n()}})}})}var B=s("<span class=ml-1.5>");p("kai-checkpoint",{label:void 0,tooltip:void 0,variant:"ghost",size:"sm"},(t,{dispatch:r})=>e(z,{get children(){return e(x,{get tooltip(){return t.tooltip},get"aria-label"(){return v(()=>!!t.label)()?void 0:t.tooltip??"Checkpoint"},get variant(){return t.variant},get size(){return t.size},onClick:()=>r("kai-select"),get children(){return[e(C,{}),e(i,{get when(){return t.label},get children(){var a=B();return l(a,()=>t.label),a}})]}})}}));
1
+ import{c as e,S as i,a as c,d as u,s as g,p as h,q as d,i as l,t as s,f as p,m as v}from"../define-CGGX-7Vg.js";import{c as o}from"../cn-DN5AWfiS.js";import{B as m}from"../button-BH6rN0U-.js";import{T as f}from"../tooltip-05zI4hjs.js";import{S as k}from"../separator-CE6vly6z.js";var b=s("<div>"),w=s('<svg width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><path d="M19 21l-7-5-7 5V5a2 2 0 012-2h10a2 2 0 012 2z">');function z(t){const[r,a]=g(t,["class","children"]);return(()=>{var n=b();return h(n,d({get class(){return o("flex items-center gap-0.5 overflow-hidden text-muted-foreground",r.class)}},a),!1,!0),l(n,()=>r.children,null),l(n,e(k,{}),null),n})()}function C(t){return e(i,{get when(){return!t.children},get fallback(){return t.children},get children(){var r=w();return c(()=>u(r,"class",o("size-4 shrink-0",t.class))),r}})}function x(t){const r=()=>t.variant??"ghost",a=()=>t.size??"sm",n=()=>e(m,{get variant(){return r()},get size(){return a()},type:"button",get"aria-label"(){return t["aria-label"]},get onClick(){return t.onClick},get class(){return t.class},get children(){return t.children}});return e(i,{get when(){return t.tooltip},get fallback(){return n()},get children(){return e(f,{get content(){return t.tooltip},get children(){return n()}})}})}var B=s("<span class=ml-1.5>");p("kai-checkpoint",{label:void 0,tooltip:void 0,variant:"ghost",size:"sm"},(t,{dispatch:r})=>e(z,{get children(){return e(x,{get tooltip(){return t.tooltip},get"aria-label"(){return v(()=>!!t.label)()?void 0:t.tooltip??"Checkpoint"},get variant(){return t.variant},get size(){return t.size},onClick:()=>r("kai-select"),get children(){return[e(C,{}),e(i,{get when(){return t.label},get children(){var a=B();return l(a,()=>t.label),a}})]}})}}));
@@ -1 +1 @@
1
- import{f as r,c as u}from"./chunks/define-B_tXMYRm.js";import{C as n}from"./chunks/choice-card-CGMc3kek.js";r("kai-choice",{data:void 0,cardId:void 0,heading:void 0,resolution:void 0,value:void 0,defaultValue:void 0,disabled:void 0},(l,{element:d,dispatch:t,flag:i,expose:o})=>{let e;return o({focus:a=>e?.focus(a),select:a=>e?.select(a),send:()=>e?.send(),dismiss:()=>e?.dismiss(),reopen:()=>e?.reopen()}),u(n,{get data(){return l.data},get cardId(){return l.cardId??(d.id||"kai-choice")},get heading(){return l.heading},get resolution(){return l.resolution},get value(){return l.value},get defaultValue(){return l.defaultValue},get disabled(){return i("disabled")},onValueChange:a=>t("kai-value-change",{value:a}),controllerRef:a=>e=a,hostElement:d})});
1
+ import{f as r,c as u}from"../define-CGGX-7Vg.js";import{C as n}from"../choice-card-BT3c1S8g.js";r("kai-choice",{data:void 0,cardId:void 0,heading:void 0,resolution:void 0,value:void 0,defaultValue:void 0,disabled:void 0},(l,{element:d,dispatch:t,flag:i,expose:o})=>{let e;return o({focus:a=>e?.focus(a),select:a=>e?.select(a),send:()=>e?.send(),dismiss:()=>e?.dismiss(),reopen:()=>e?.reopen()}),u(n,{get data(){return l.data},get cardId(){return l.cardId??(d.id||"kai-choice")},get heading(){return l.heading},get resolution(){return l.resolution},get value(){return l.value},get defaultValue(){return l.defaultValue},get disabled(){return i("disabled")},onValueChange:a=>t("kai-value-change",{value:a}),controllerRef:a=>e=a,hostElement:d})});
@@ -1 +1 @@
1
- import{y as K,w as N,g as $,k as Q,h as T,v as R,i as s,c,P as U,d as z,S as x,a as O,n,b as P,t as u,e as V,f as W,u as A}from"./chunks/define-B_tXMYRm.js";import{c as D}from"./chunks/cn-CU7UAWzk.js";import{c as X,u as Y}from"./chunks/overlay-CV7z2YuX.js";import{x as Z}from"./chunks/x-BOhjBeOd.js";import{w as ee}from"./chunks/disclosure-DAoYOKew.js";var re=u("<span style=display:inline-flex;vertical-align:middle>"),te=u('<div part=arrow aria-hidden=true class="absolute size-2 rotate-45">'),oe=u("<span part=badge>"),ae=u('<div class="flex items-center gap-2"><span part=title class="font-semibold leading-tight">'),ne=u("<div>"),ie=u("<div part=bubble role=dialog style=position:fixed><button type=button part=dismiss aria-label=Dismiss>");const le={top:"bottom",bottom:"top",left:"right",right:"left"},se={primary:{bg:"var(--color-primary)",fg:"var(--color-primary-foreground)"},info:{bg:"var(--color-tool-blue)",fg:"#fff"},success:{bg:"var(--color-tool-green)",fg:"#fff"},warning:{bg:"var(--color-warning-soft)",fg:"var(--color-foreground)"},error:{bg:"var(--color-tool-red)",fg:"#fff"}},de="text-current/70 hover:bg-current/15 hover:text-current",ce="bg-current/20",ue="text-current/85";function ge(t){var g;const w=K(),p=()=>se[t.tone??"primary"],v=N(),[i,B]=$(t.defaultOpen??!1),[L,F]=$(),[G,H]=$(),[I,J]=$(),_=()=>t.open!==void 0,C=()=>_()?!!t.open:i(),E=r=>{var a;_()||B(r),(a=t.onOpenChange)==null||a.call(t,r)};(g=t.controllerRef)==null||g.call(t,{open:C,setOpen:E});const k=X(C),d=Y(L,G,{placement:t.placement??"bottom",gutter:10,arrowEl:I,onDisconnect:()=>E(!1)}),y=()=>le[d.pos().placement.split("-")[0]]??"top",j=()=>{var r;E(!1),(r=t.onDismiss)==null||r.call(t)};return Q(()=>{const r=L();if(!r)return;const a=()=>{C()&&j()};r.addEventListener("click",a),T(()=>r.removeEventListener("click",a))}),[(()=>{var r=re();return R(F,r),s(r,()=>t.children),r})(),c(x,{get when(){return k.present()},get children(){return c(U,{get mount(){return w.portalMount()},get children(){var r=ie(),a=r.firstChild;return R(e=>{H(e),k.setRef(e)},r),z(r,"aria-labelledby",v),s(r,c(x,{get when(){return t.arrow!==!1},get children(){var e=te();return R(J,e),O(o=>{var l=y()==="left"?"-4px":d.arrowPos().x!=null?`${d.arrowPos().x}px`:"",f=y()==="top"?"-4px":d.arrowPos().y!=null?`${d.arrowPos().y}px`:"",m=y()==="right"?"-4px":"",h=y()==="bottom"?"-4px":"",b=`var(--kai-coachmark-bg, ${p().bg})`;return l!==o.e&&n(e,"left",o.e=l),f!==o.t&&n(e,"top",o.t=f),m!==o.a&&n(e,"right",o.a=m),h!==o.o&&n(e,"bottom",o.o=h),b!==o.i&&n(e,"background",o.i=b),o},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),e}}),a),a.$$click=j,s(a,c(Z,{class:"size-3.5","aria-hidden":"true"})),s(r,c(x,{get when(){return t.headline},get children(){var e=ae(),o=e.firstChild;return z(o,"id",v),s(o,()=>t.headline),s(e,c(x,{get when(){return t.badge},get children(){var l=oe();return s(l,()=>t.badge),O(()=>P(l,D("inline-flex items-center rounded-full px-1.5 py-0.5 text-[0.625rem] font-medium uppercase leading-none tracking-wide",ce))),l}}),null),e}}),null),s(r,c(x,{get when(){return t.content},get children(){var e=ne();return s(e,()=>t.content),O(()=>P(e,D(ue,t.headline?"mt-1.5":""))),e}}),null),O(e=>{var o=k.state()==="open"?"":void 0,l=k.state()==="closed"?"":void 0,f=`${d.pos().x}px`,m=`${d.pos().y}px`,h=d.hidden()?"hidden":"visible",b=`var(--kai-coachmark-bg, ${p().bg})`,M=`var(--kai-coachmark-fg, ${p().fg})`,S=D("z-50 w-64 rounded-lg p-3 pr-8 text-sm kai-elevation","animate-in fade-in-0 zoom-in-95 data-[closed]:animate-out data-[closed]:fade-out-0 data-[closed]:zoom-out-95"),q=D("absolute right-2 top-2 inline-flex size-5 items-center justify-center rounded transition-colors",de);return o!==e.e&&z(r,"data-expanded",e.e=o),l!==e.t&&z(r,"data-closed",e.t=l),f!==e.a&&n(r,"left",e.a=f),m!==e.o&&n(r,"top",e.o=m),h!==e.i&&n(r,"visibility",e.i=h),b!==e.n&&n(r,"background",e.n=b),M!==e.s&&n(r,"color",e.s=M),S!==e.h&&P(r,e.h=S),q!==e.r&&P(a,e.r=q),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),r}})}})]}V(["click"]);var pe=u("<slot>"),ve=u("<slot name=content>");W("kai-coachmark",{open:void 0,defaultOpen:void 0,headline:void 0,badge:void 0,placement:void 0,tone:void 0,arrow:!0},(t,g)=>{const{flag:w,dispatch:p}=g;let v;return ee(g,()=>v,()=>t.open),c(ge,{get defaultOpen(){return w("defaultOpen")},get arrow(){return w("arrow")},get placement(){return t.placement},get tone(){return t.tone},get headline(){return t.headline},get badge(){return t.badge},get content(){return(()=>{var i=ve();return i._$owner=A(),i})()},controllerRef:i=>v=i,onDismiss:()=>p("kai-dismiss",{}),get children(){var i=pe();return i._$owner=A(),i}})});
1
+ import{A as K,w as N,g as $,j as Q,h as T,u as R,i as s,c,P as U,d as z,S as x,a as O,l as n,b as P,t as u,e as V,f as W,v as q}from"../define-CGGX-7Vg.js";import{c as D}from"../cn-DN5AWfiS.js";import{c as X,u as Y}from"../overlay-C1od6LOz.js";import{x as Z}from"../x-C5m1JFgi.js";import{w as ee}from"../disclosure-CbLtajUQ.js";var re=u("<span style=display:inline-flex;vertical-align:middle>"),te=u('<div part=arrow aria-hidden=true class="absolute size-2 rotate-45">'),oe=u("<span part=badge>"),ae=u('<div class="flex items-center gap-2"><span part=title class="font-semibold leading-tight">'),ne=u("<div>"),ie=u("<div part=bubble role=dialog style=position:fixed><button type=button part=dismiss aria-label=Dismiss>");const le={top:"bottom",bottom:"top",left:"right",right:"left"},se={primary:{bg:"var(--color-primary)",fg:"var(--color-primary-foreground)"},info:{bg:"var(--color-tool-blue)",fg:"#fff"},success:{bg:"var(--color-tool-green)",fg:"#fff"},warning:{bg:"var(--color-warning-soft)",fg:"var(--color-foreground)"},error:{bg:"var(--color-tool-red)",fg:"#fff"}},de="text-current/70 hover:bg-current/15 hover:text-current",ce="bg-current/20",ue="text-current/85";function ge(t){var g;const w=K(),p=()=>se[t.tone??"primary"],v=N(),[i,B]=$(t.defaultOpen??!1),[j,F]=$(),[G,H]=$(),[I,J]=$(),L=()=>t.open!==void 0,C=()=>L()?!!t.open:i(),E=r=>{var a;L()||B(r),(a=t.onOpenChange)==null||a.call(t,r)};(g=t.controllerRef)==null||g.call(t,{open:C,setOpen:E});const k=X(C),d=Y(j,G,{placement:t.placement??"bottom",gutter:10,arrowEl:I,onDisconnect:()=>E(!1)}),y=()=>le[d.pos().placement.split("-")[0]]??"top",_=()=>{var r;E(!1),(r=t.onDismiss)==null||r.call(t)};return Q(()=>{const r=j();if(!r)return;const a=()=>{C()&&_()};r.addEventListener("click",a),T(()=>r.removeEventListener("click",a))}),[(()=>{var r=re();return R(F,r),s(r,()=>t.children),r})(),c(x,{get when(){return k.present()},get children(){return c(U,{get mount(){return w.portalMount()},get children(){var r=ie(),a=r.firstChild;return R(e=>{H(e),k.setRef(e)},r),z(r,"aria-labelledby",v),s(r,c(x,{get when(){return t.arrow!==!1},get children(){var e=te();return R(J,e),O(o=>{var l=y()==="left"?"-4px":d.arrowPos().x!=null?`${d.arrowPos().x}px`:"",f=y()==="top"?"-4px":d.arrowPos().y!=null?`${d.arrowPos().y}px`:"",m=y()==="right"?"-4px":"",h=y()==="bottom"?"-4px":"",b=`var(--kai-coachmark-bg, ${p().bg})`;return l!==o.e&&n(e,"left",o.e=l),f!==o.t&&n(e,"top",o.t=f),m!==o.a&&n(e,"right",o.a=m),h!==o.o&&n(e,"bottom",o.o=h),b!==o.i&&n(e,"background",o.i=b),o},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),e}}),a),a.$$click=_,s(a,c(Z,{class:"size-3.5","aria-hidden":"true"})),s(r,c(x,{get when(){return t.headline},get children(){var e=ae(),o=e.firstChild;return z(o,"id",v),s(o,()=>t.headline),s(e,c(x,{get when(){return t.badge},get children(){var l=oe();return s(l,()=>t.badge),O(()=>P(l,D("inline-flex items-center rounded-full px-1.5 py-0.5 text-micro font-medium uppercase leading-none tracking-wide",ce))),l}}),null),e}}),null),s(r,c(x,{get when(){return t.content},get children(){var e=ne();return s(e,()=>t.content),O(()=>P(e,D(ue,t.headline?"mt-1.5":""))),e}}),null),O(e=>{var o=k.state()==="open"?"":void 0,l=k.state()==="closed"?"":void 0,f=`${d.pos().x}px`,m=`${d.pos().y}px`,h=d.hidden()?"hidden":"visible",b=`var(--kai-coachmark-bg, ${p().bg})`,A=`var(--kai-coachmark-fg, ${p().fg})`,M=D("z-50 w-64 rounded-lg p-3 pr-8 text-sm kai-elevation","animate-in fade-in-0 zoom-in-95 data-[closed]:animate-out data-[closed]:fade-out-0 data-[closed]:zoom-out-95"),S=D("absolute right-2 top-2 inline-flex size-5 items-center justify-center rounded transition-colors",de);return o!==e.e&&z(r,"data-expanded",e.e=o),l!==e.t&&z(r,"data-closed",e.t=l),f!==e.a&&n(r,"left",e.a=f),m!==e.o&&n(r,"top",e.o=m),h!==e.i&&n(r,"visibility",e.i=h),b!==e.n&&n(r,"background",e.n=b),A!==e.s&&n(r,"color",e.s=A),M!==e.h&&P(r,e.h=M),S!==e.r&&P(a,e.r=S),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),r}})}})]}V(["click"]);var pe=u("<slot>"),ve=u("<slot name=content>");W("kai-coachmark",{open:void 0,defaultOpen:void 0,headline:void 0,badge:void 0,placement:void 0,tone:void 0,arrow:!0},(t,g)=>{const{flag:w,dispatch:p}=g;let v;return ee(g,()=>v,()=>t.open),c(ge,{get defaultOpen(){return w("defaultOpen")},get arrow(){return w("arrow")},get placement(){return t.placement},get tone(){return t.tone},get headline(){return t.headline},get badge(){return t.badge},get content(){return(()=>{var i=ve();return i._$owner=q(),i})()},controllerRef:i=>v=i,onDismiss:()=>p("kai-dismiss",{}),get children(){var i=pe();return i._$owner=q(),i}})});
@@ -1 +1 @@
1
- import{f as g,y as a,c as r,C as i}from"./chunks/define-B_tXMYRm.js";import{C as n,a as d}from"./chunks/code-block-ClhQO9RW.js";g("kai-code-block",{code:"",language:void 0,codeTheme:"github-dark-dimmed",codeHighlight:!0,proseSize:"sm"},(e,{flag:t})=>{const o=a();return r(i,{get proseSize(){return e.proseSize},get codeTheme(){return e.codeTheme},get codeHighlight(){return t("codeHighlight")},get portalMount(){return o.portalMount()},get children(){return r(n,{get children(){return r(d,{get code(){return e.code},get language(){return e.language}})}})}})});
1
+ import{f as g,A as c,c as r,C as n}from"../define-CGGX-7Vg.js";import{C as a,a as d}from"../code-block-CUQ5mtv0.js";g("kai-code-block",{code:"",language:void 0,codeTheme:"github-dark-dimmed",codeHighlight:!0,copy:!0,proseSize:"sm"},(e,{flag:t})=>{const o=c();return r(n,{get proseSize(){return e.proseSize},get codeTheme(){return e.codeTheme},get codeHighlight(){return t("codeHighlight")},get portalMount(){return o.portalMount()},get children(){return r(a,{get copy(){return t("copy")},get copyText(){return e.code},get children(){return r(d,{get code(){return e.code},get language(){return e.language}})}})}})});
@@ -1 +1 @@
1
- import{i as u,c,F as $,S as g,a as x,d as h,b as j,t as m,e as S,f as A,w as E,g as D,l as w,k as q,x as N}from"./chunks/define-B_tXMYRm.js";import{c as F}from"./chunks/cn-CU7UAWzk.js";import{r as H}from"./chunks/icon-97R8SR2p.js";import{K}from"./chunks/kbd-OGJDUT-O.js";var O=m("<div>"),T=m('<div class="px-3 py-4 text-center text-sm text-muted-foreground select-none">'),U=m('<div class="px-3 pt-2 pb-1 text-xs font-medium text-muted-foreground select-none">'),B=m('<span class="min-w-0 truncate text-muted-foreground">'),M=m('<button role=option><span class="font-medium whitespace-nowrap shrink-0">'),Q=m('<span part=shortcut class="ml-auto shrink-0 pl-3">');function W(s){const d=()=>s.groups.some(l=>l.items.length>0);return(()=>{var l=O();return u(l,c(g,{get when(){return d()},get fallback(){return(()=>{var o=T();return u(o,()=>s.emptyLabel??"No results"),o})()},get children(){return c($,{get each(){return s.groups},children:o=>c(g,{get when(){return o.items.length>0},get children(){return[c(g,{get when(){return o.group},get children(){var i=U();return u(i,()=>o.group),i}}),c($,{get each(){return o.items},children:i=>(()=>{var a=M(),p=a.firstChild;return a.$$click=()=>s.onSelect(i.id),a.$$mousedown=r=>r.preventDefault(),u(a,c(g,{get when(){return i.icon},children:r=>H(r(),{imgClass:"size-4 shrink-0 rounded object-cover",spanClass:"flex size-4 shrink-0 items-center justify-center text-sm",ariaHidden:!0})}),p),u(p,()=>i.label),u(a,c(g,{get when(){return i.description},get children(){var r=B();return u(r,()=>i.description),r}}),null),u(a,c(g,{get when(){return i.shortcut},children:r=>(()=>{var v=Q();return u(v,c(K,{get keys(){return r()},platform:"auto",size:"sm"})),v})()}),null),x(r=>{var v=i.id===s.activeId,b=F("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors",i.id===s.activeId?"bg-muted text-foreground":"text-foreground hover:bg-muted");return v!==r.e&&h(a,"aria-selected",r.e=v),b!==r.t&&j(a,r.t=b),r},{e:void 0,t:void 0}),a})()})]}})})}})),x(o=>{var i=d()?"listbox":void 0,a=d()?s.ariaLabel??"Command palette":void 0,p=s.id;return i!==o.e&&h(l,"role",o.e=i),a!==o.t&&h(l,"aria-label",o.t=a),p!==o.a&&h(l,"id",o.a=p),o},{e:void 0,t:void 0,a:void 0}),l})()}S(["mousedown","click"]);var _=m('<div class="flex flex-col overflow-hidden"><div class="border-b border-border px-3 py-2"><input type=text role=combobox aria-expanded=true aria-haspopup=listbox aria-autocomplete=list class="w-full bg-transparent text-sm text-foreground placeholder:text-muted-foreground focus-visible:outline-none"></div><div class="overflow-y-auto max-h-[320px]">');A("kai-command",{items:void 0,placeholder:void 0,emptyLabel:void 0},(s,{dispatch:d,element:l,expose:o})=>{const i=E(),[a,p]=D(""),[r,v]=D(void 0),b=()=>s.items??[],y=w(()=>{const e=a().toLowerCase();return e?b().filter(t=>{var n;return t.label.toLowerCase().includes(e)||(((n=t.description)==null?void 0:n.toLowerCase().includes(e))??!1)}):b()}),z=w(()=>{const e=[];for(const t of y()){let n=e.find(f=>f.group===t.group);n||(n={group:t.group,items:[]},e.push(n)),n.items.push({id:t.id,label:t.label,icon:t.icon,description:t.description,shortcut:t.shortcut})}return e}),k=w(()=>y().map(e=>e.id));q(()=>{const e=k(),t=r();(!t||!e.includes(t))&&v(e[0])}),q(N(r,(e,t)=>{e!==t&&d("kai-active-change",{id:e})}));function C(e){d("kai-select",{id:e})}function I(e){const t=e.currentTarget.value;p(t),d("kai-query-change",{value:t})}function R(e){const t=k();if(!t.length)return;const n=r(),f=n!==void 0?t.indexOf(n):-1;if(e.key==="ArrowDown")e.preventDefault(),v(t[(f+1)%t.length]);else if(e.key==="ArrowUp")e.preventDefault(),v(t[(f-1+t.length)%t.length]);else if(e.key==="Enter"){e.preventDefault();const L=r();L!==void 0&&C(L)}else e.key==="Escape"&&(e.preventDefault(),p(""),d("kai-query-change",{value:""}))}return o({focus:e=>{var t,n;return(n=(t=l.shadowRoot)==null?void 0:t.querySelector('input[role="combobox"], input'))==null?void 0:n.focus(e)},blur:()=>{var e,t;return(t=(e=l.shadowRoot)==null?void 0:e.querySelector('input[role="combobox"], input'))==null?void 0:t.blur()},clear:()=>{p(""),d("kai-query-change",{value:""})}}),(()=>{var e=_(),t=e.firstChild,n=t.firstChild,f=t.nextSibling;return n.$$keydown=R,n.$$input=I,h(n,"aria-controls",i),u(f,c(W,{id:i,ariaLabel:"Results",get groups(){return z()},get activeId(){return r()},onSelect:C,get emptyLabel(){return s.emptyLabel??"No results"}})),x(()=>h(n,"placeholder",s.placeholder??"Search\u2026")),x(()=>n.value=a()),e})()}),S(["input","keydown"]);
1
+ import{i as u,c,F as $,S as h,a as b,d as f,b as R,t as m,e as S,f as A,w as E,g as D,k as w,j as q,x as N}from"../define-CGGX-7Vg.js";import{c as F}from"../cn-DN5AWfiS.js";import{r as H}from"../icon-BpixdZNq.js";import{K}from"../kbd-961zMPFB.js";var O=m("<div>"),T=m('<div class="px-3 py-4 text-center text-sm text-muted-foreground select-none">'),U=m('<div class="px-3 pt-2 pb-1 text-xs font-medium text-muted-foreground select-none">'),B=m('<span class="min-w-0 truncate text-muted-foreground">'),M=m('<button role=option><span class="font-medium whitespace-nowrap shrink-0">'),Q=m('<span part=shortcut class="ml-auto shrink-0 pl-3">');function W(s){const d=()=>s.groups.some(l=>l.items.length>0);return(()=>{var l=O();return u(l,c(h,{get when(){return d()},get fallback(){return(()=>{var o=T();return u(o,()=>s.emptyLabel??"No results"),o})()},get children(){return c($,{get each(){return s.groups},children:o=>c(h,{get when(){return o.items.length>0},get children(){return[c(h,{get when(){return o.group},get children(){var i=U();return u(i,()=>o.group),i}}),c($,{get each(){return o.items},children:i=>(()=>{var a=M(),p=a.firstChild;return a.$$click=()=>s.onSelect(i.id),a.$$mousedown=r=>r.preventDefault(),u(a,c(h,{get when(){return i.icon},children:r=>H(r(),{imgClass:"size-4 shrink-0 rounded object-cover",spanClass:"flex size-4 shrink-0 items-center justify-center text-sm",ariaHidden:!0})}),p),u(p,()=>i.label),u(a,c(h,{get when(){return i.description},get children(){var r=B();return u(r,()=>i.description),r}}),null),u(a,c(h,{get when(){return i.shortcut},children:r=>(()=>{var v=Q();return u(v,c(K,{get keys(){return r()},platform:"auto",size:"sm"})),v})()}),null),b(r=>{var v=i.id===s.activeId,x=F("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors",i.id===s.activeId?"bg-muted text-foreground":"text-foreground hover:bg-muted");return v!==r.e&&f(a,"aria-selected",r.e=v),x!==r.t&&R(a,r.t=x),r},{e:void 0,t:void 0}),a})()})]}})})}})),b(o=>{var i=d()?"listbox":void 0,a=d()?s.ariaLabel??"Command palette":void 0,p=s.id;return i!==o.e&&f(l,"role",o.e=i),a!==o.t&&f(l,"aria-label",o.t=a),p!==o.a&&f(l,"id",o.a=p),o},{e:void 0,t:void 0,a:void 0}),l})()}S(["mousedown","click"]);var _=m('<div class="flex flex-col overflow-hidden"><div class="border-b border-border px-3 py-2"><input type=text role=combobox aria-expanded=true aria-haspopup=listbox aria-autocomplete=list class="w-full bg-transparent text-sm text-foreground placeholder:text-muted-foreground"></div><div class="overflow-y-auto max-h-[320px]">');A("kai-command",{items:void 0,placeholder:void 0,emptyLabel:void 0},(s,{dispatch:d,element:l,expose:o})=>{const i=E(),[a,p]=D(""),[r,v]=D(void 0),x=()=>s.items??[],y=w(()=>{const e=a().toLowerCase();return e?x().filter(t=>{var n;return t.label.toLowerCase().includes(e)||(((n=t.description)==null?void 0:n.toLowerCase().includes(e))??!1)}):x()}),j=w(()=>{const e=[];for(const t of y()){let n=e.find(g=>g.group===t.group);n||(n={group:t.group,items:[]},e.push(n)),n.items.push({id:t.id,label:t.label,icon:t.icon,description:t.description,shortcut:t.shortcut})}return e}),k=w(()=>y().map(e=>e.id));q(()=>{const e=k(),t=r();(!t||!e.includes(t))&&v(e[0])}),q(N(r,(e,t)=>{e!==t&&d("kai-active-change",{id:e})}));function C(e){d("kai-select",{id:e})}function z(e){const t=e.currentTarget.value;p(t),d("kai-query-change",{value:t})}function I(e){const t=k();if(!t.length)return;const n=r(),g=n!==void 0?t.indexOf(n):-1;if(e.key==="ArrowDown")e.preventDefault(),v(t[(g+1)%t.length]);else if(e.key==="ArrowUp")e.preventDefault(),v(t[(g-1+t.length)%t.length]);else if(e.key==="Enter"){e.preventDefault();const L=r();L!==void 0&&C(L)}else e.key==="Escape"&&(e.preventDefault(),p(""),d("kai-query-change",{value:""}))}return o({focus:e=>{var t,n;return(n=(t=l.shadowRoot)==null?void 0:t.querySelector('input[role="combobox"], input'))==null?void 0:n.focus(e)},blur:()=>{var e,t;return(t=(e=l.shadowRoot)==null?void 0:e.querySelector('input[role="combobox"], input'))==null?void 0:t.blur()},clear:()=>{p(""),d("kai-query-change",{value:""})}}),(()=>{var e=_(),t=e.firstChild,n=t.firstChild,g=t.nextSibling;return n.$$keydown=I,n.$$input=z,f(n,"aria-controls",i),u(g,c(W,{id:i,ariaLabel:"Results",get groups(){return j()},get activeId(){return r()},onSelect:C,get emptyLabel(){return s.emptyLabel??"No results"}})),b(()=>f(n,"placeholder",s.placeholder??"Search\u2026")),b(()=>n.value=a()),e})()}),S(["input","keydown"]);
@@ -1 +1 @@
1
- import{m as X,s as Y,w as Z,l as f,g as P,k as H,x as j,c as s,E as ee,i as u,S as v,d as R,I as U,a as k,b as C,v as te,t as m,j as re,e as ae,f as ne,y as oe,C as ie}from"./chunks/define-B_tXMYRm.js";import{c as T}from"./chunks/cn-CU7UAWzk.js";import{B as le}from"./chunks/button-B9okqG73.js";import{C as O}from"./chunks/use-card-resolution-DJg32jGH.js";import{M as q}from"./chunks/message-CE4k-qaj.js";import{T as de}from"./chunks/text-shimmer-BY_rI3s5.js";import{c as se}from"./chunks/check-MdLzbxrm.js";function ce(e){if(!Array.isArray(e))return{candidates:null,error:"This comparison couldn't be displayed."};if(e.length!==2)return{candidates:null,error:`A comparison needs exactly two candidates (got ${e.length}).`};const i=[],l=new Set;for(const r of e){if(!r||typeof r!="object")return{candidates:null,error:"This comparison couldn't be displayed."};const a=r;if(typeof a.id!="string"||a.id.length===0)return{candidates:null,error:"Each candidate needs a non-empty id."};if(l.has(a.id))return{candidates:null,error:`Duplicate candidate id "${a.id}".`};l.add(a.id),i.push({id:a.id,content:typeof a.content=="string"?a.content:"",reasoning:a.reasoning,tools:Array.isArray(a.tools)?a.tools:void 0,attachments:Array.isArray(a.attachments)?a.attachments:void 0,label:typeof a.label=="string"?a.label:void 0,model:typeof a.model=="string"?a.model:void 0,streaming:a.streaming===!0})}return{candidates:[i[0],i[1]]}}function ue(e,i){const l=e.filter(r=>r.id!==i).map(r=>r.id);return{chosenId:i,rejectedIds:l,at:Date.now()}}function pe(e){return e?e.some(i=>i.streaming===!0):!1}function B(e){const i=[];e.reasoning&&i.push({type:"reasoning",text:e.reasoning.text,label:e.reasoning.label});for(const l of e.tools??[])i.push({type:"tool",tool:l});for(const l of e.attachments??[])i.push({type:"file",attachment:l});return e.content&&i.push({type:"text",text:e.content}),i}var ge=m('<p class="text-sm text-foreground">'),me=m('<div role=tablist aria-label="Switch response">'),fe=m("<div role=radiogroup>"),ve=m("<div>"),he=m("<button type=button role=tab>"),ye=m('<span class="text-xs font-semibold uppercase tracking-wide text-muted-foreground">'),be=m('<span class="text-xs text-muted-foreground">'),xe=m('<div class="flex items-center gap-2">'),ke=m('<div><div class="min-w-0 flex-1">'),we=m('<div class="flex flex-col gap-2 rounded-lg border border-input bg-accent/40 p-3"><div class="flex items-center gap-2 text-sm font-medium text-accent-foreground"><span>Selected'),Se=m('<p class="text-sm text-muted-foreground">Response selected.'),Ae=m("<div class=min-w-0>");function Re(e){const[i,l]=P(void 0);H(j(e.data,()=>l(void 0),{defer:!0}));const r=f(()=>e.prop()??i()),a=f(()=>r()!==void 0),c=f(()=>e.prop()===void 0&&i()!==void 0);return{value:r,isResolved:a,isOptimistic:c,setLocal:l}}function Ce(e){var i;const l=X({compareId:"kai-compare",layout:"auto"},e),[r]=Y(l,["data","compareId","selection","layout","class","controllerRef","onSelect","onReady","onError"]),a=Z(),c=f(()=>{var t;return ce((t=r.data)==null?void 0:t.candidates)}),h=f(()=>c().candidates!==null),g=f(()=>c().error??""),b=f(()=>c().candidates),x=Re({prop:()=>r.selection,data:()=>r.data}),E=f(()=>pe(b())),[I,w]=P(0),[D,z]=P(0);let $;H(j(()=>r.data,()=>{w(0),z(0)})),H(j([h,E],([t,n])=>{var d,o;if(!t){(d=r.onError)==null||d.call(r,g());return}n||(o=r.onReady)==null||o.call(r)}));const G=f(()=>{var t;return(t=x.value())==null?void 0:t.chosenId}),_=f(()=>{var t;const n=G();return n===void 0||(t=b())==null?void 0:t.find(d=>d.id===n)}),M=t=>{var n;if(x.isResolved()||E())return;const d=b();if(!d)return;const o=ue(d,t.id);(n=r.onSelect)==null||n.call(r,o),x.setLocal(o)},F=(t,n)=>{var d;const o=$?.querySelectorAll('[role="radio"]');(d=o?.[t])==null||d.focus(n)};(i=r.controllerRef)==null||i.call(r,{select:t=>{var n;const d=(n=b())==null?void 0:n.find(o=>o.id===t);d&&M(d)},focus:t=>F(I(),t)});const J=t=>{if(x.isResolved())return;const n=b();if(!n)return;const d=o=>{w(o),z(o),F(o)};if(t.key==="ArrowRight"||t.key==="ArrowDown"||t.key==="ArrowLeft"||t.key==="ArrowUp")t.preventDefault(),d(I()===0?1:0);else if(t.key==="Home")t.preventDefault(),d(0);else if(t.key==="End")t.preventDefault(),d(1);else if(t.key===" "||t.key==="Enter"){t.preventDefault();const o=n[I()];o&&M(o)}},K=f(()=>{const t=r.layout;return t==="columns"?"grid grid-cols-2 gap-3":t==="tabs"?"grid grid-cols-1 gap-3":"grid grid-cols-1 gap-3 @[640px]/compare:grid-cols-2"}),N=()=>r.layout==="tabs"||r.layout==="auto",Q=()=>r.layout==="auto"?"@[640px]/compare:hidden":"",V=t=>{const n=r.layout;return n==="columns"||t===D()?"":n==="tabs"?"hidden":"hidden @[640px]/compare:block"},L=`kai-compare-prompt-${a}`,W=()=>{var t;return((t=r.data)==null?void 0:t.prompt)??"Compare two responses"};return s(v,{get when(){return h()},get fallback(){return s(O,{get errorMessage(){return g()||"This comparison couldn't be displayed."}})},get children(){return s(ee,{fallback:()=>{var t;return(t=r.onError)==null||t.call(r,"The comparison failed to render."),s(O,{errorMessage:"The comparison failed to render."})},get children(){var t=ve();return u(t,s(v,{get when(){var n;return(n=r.data)==null?void 0:n.prompt},get children(){var n=ge();return R(n,"id",L),u(n,()=>{var d;return(d=r.data)==null?void 0:d.prompt}),n}}),null),u(t,s(v,{get when(){return!x.isResolved()},get fallback(){return s($e,{get candidate(){return _()},get optimistic(){return x.isOptimistic()}})},get children(){return[s(v,{get when(){return N()},get children(){var n=me();return u(n,s(U,{get each(){return b()??[]},children:(d,o)=>(()=>{var p=he();return p.$$click=()=>{z(o),w(o)},u(p,()=>d().label??`Response ${d().id}`),k(y=>{var S=D()===o,A=T("rounded-md px-3 py-1 text-xs font-medium transition-colors",D()===o?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground");return S!==y.e&&R(p,"aria-selected",y.e=S),A!==y.t&&C(p,y.t=A),y},{e:void 0,t:void 0}),p})()})),k(()=>C(n,T("flex gap-1",Q()))),n}}),(()=>{var n=fe();n.$$keydown=J;var d=$;return typeof d=="function"?te(d,n):$=n,u(n,s(U,{get each(){return b()??[]},children:(o,p)=>s(Ie,{get candidate(){return o()},get tabStop(){return p===I()},get disabled(){return E()},hiddenClass:()=>V(p),onFocus:()=>w(p),onPick:()=>{w(p),M(o())}})})),k(o=>{var p,y=W(),S=(p=r.data)!=null&&p.prompt?L:void 0,A=K();return y!==o.e&&R(n,"aria-label",o.e=y),S!==o.t&&R(n,"aria-describedby",o.t=S),A!==o.a&&C(n,o.a=A),o},{e:void 0,t:void 0,a:void 0}),n})()]}}),null),k(()=>C(t,T("flex flex-col gap-3",r.layout==="auto"&&"@container/compare",r.class))),t}})}})}function Ie(e){const i=()=>e.candidate.label??e.candidate.model??e.candidate.id;return(()=>{var l=ke(),r=l.firstChild;return u(l,s(v,{get when(){return e.candidate.label||e.candidate.model},get children(){var a=xe();return u(a,s(v,{get when(){return e.candidate.label},get children(){var c=ye();return u(c,()=>e.candidate.label),c}}),null),u(a,s(v,{get when(){return e.candidate.model},get children(){var c=be();return u(c,()=>e.candidate.model),c}}),null),a}}),r),u(r,s(v,{get when(){return e.candidate.streaming},get fallback(){return s(q,{get parts(){return B(e.candidate)},isUser:!1,markdown:!0})},get children(){return s(de,{class:"text-sm",children:"Generating response\u2026"})}})),u(l,s(le,{type:"button",role:"radio","aria-checked":!1,get"aria-label"(){return`Pick ${i()}`},get"data-candidate-id"(){return e.candidate.id},variant:"outline",size:"sm",class:"mt-auto w-full",get disabled(){return e.disabled},get tabindex(){return e.tabStop?0:-1},get onFocus(){return e.onFocus},onClick:a=>{a.stopPropagation(),e.onPick()},children:"Pick this"}),null),k(()=>{var a;return C(l,T("flex min-w-0 flex-col gap-3 rounded-lg border border-input bg-background/40 p-3",(a=e.hiddenClass)==null?void 0:a.call(e)))}),l})()}function $e(e){return(()=>{var i=we(),l=i.firstChild,r=l.firstChild;return r.firstChild,u(l,s(se,{size:16,"aria-hidden":"true"}),r),u(r,(()=>{var a=re(()=>{var c;return!!((c=e.candidate)!=null&&c.label)});return()=>a()?`: ${e.candidate.label}`:""})(),null),u(i,s(v,{get when(){return e.candidate},get fallback(){return Se()},children:a=>(()=>{var c=Ae();return u(c,s(q,{get parts(){return B(a())},isUser:!1,markdown:!0})),c})()}),null),k(()=>R(i,"role",e.optimistic?"status":void 0)),i})()}ae(["keydown","click"]),ne("kai-compare",{data:void 0,compareId:void 0,selection:void 0,layout:"auto",proseSize:void 0,codeTheme:void 0,codeHighlight:void 0},(e,{element:i,dispatch:l,expose:r})=>{const a=()=>e.compareId??(i.id||"kai-compare"),c=oe();let h;return r({select:g=>h?.select(g),focus:g=>h?.focus(g)}),s(ie,{get proseSize(){return e.proseSize},get codeTheme(){return e.codeTheme},get codeHighlight(){return e.codeHighlight},get portalMount(){return c.portalMount()},get children(){return s(Ce,{get data(){return e.data},get compareId(){return a()},get selection(){return e.selection},get layout(){return e.layout??"auto"},controllerRef:g=>h=g,onSelect:g=>l("kai-compare-select",g),onReady:()=>l("kai-ready",{compareId:a()}),onError:g=>l("kai-error",{compareId:a(),message:g})})}})});
1
+ import{q as X,s as Y,w as Z,k as f,g as P,j as H,x as j,c as s,E as ee,i as u,S as v,d as R,I as U,a as k,b as C,u as te,t as m,m as re,e as ae,f as ne,A as oe,C as ie}from"../define-CGGX-7Vg.js";import{c as T}from"../cn-DN5AWfiS.js";import{B as de}from"../button-BH6rN0U-.js";import{C as q}from"../use-card-resolution-CJW4grFa.js";import{M as O}from"../message-DS8lzHc1.js";import{T as le}from"../text-shimmer-DKlwRF2G.js";import{c as se}from"../check-DPeeMUYx.js";function ce(e){if(!Array.isArray(e))return{candidates:null,error:"This comparison couldn't be displayed."};if(e.length!==2)return{candidates:null,error:`A comparison needs exactly two candidates (got ${e.length}).`};const i=[],d=new Set;for(const r of e){if(!r||typeof r!="object")return{candidates:null,error:"This comparison couldn't be displayed."};const a=r;if(typeof a.id!="string"||a.id.length===0)return{candidates:null,error:"Each candidate needs a non-empty id."};if(d.has(a.id))return{candidates:null,error:`Duplicate candidate id "${a.id}".`};d.add(a.id),i.push({id:a.id,content:typeof a.content=="string"?a.content:"",reasoning:a.reasoning,tools:Array.isArray(a.tools)?a.tools:void 0,attachments:Array.isArray(a.attachments)?a.attachments:void 0,label:typeof a.label=="string"?a.label:void 0,model:typeof a.model=="string"?a.model:void 0,streaming:a.streaming===!0})}return{candidates:[i[0],i[1]]}}function ue(e,i){const d=e.filter(r=>r.id!==i).map(r=>r.id);return{chosenId:i,rejectedIds:d,at:Date.now()}}function pe(e){return e?e.some(i=>i.streaming===!0):!1}function B(e){const i=[];e.reasoning&&i.push({type:"reasoning",text:e.reasoning.text,label:e.reasoning.label});for(const d of e.tools??[])i.push({type:"tool",tool:d});for(const d of e.attachments??[])i.push({type:"file",attachment:d});return e.content&&i.push({type:"text",text:e.content}),i}var ge=m('<p class="text-sm text-foreground">'),me=m('<div role=tablist aria-label="Switch response">'),fe=m("<div role=radiogroup>"),ve=m("<div>"),he=m("<button type=button role=tab>"),ye=m('<span class="text-xs font-semibold uppercase tracking-wide text-muted-foreground">'),be=m('<span class="text-xs text-muted-foreground">'),xe=m('<div class="flex items-center gap-2">'),ke=m('<div><div class="min-w-0 flex-1">'),we=m('<div class="flex flex-col gap-2 rounded-lg border border-border bg-accent/40 p-3"><div class="flex items-center gap-2 text-sm font-medium text-accent-foreground"><span>Selected'),Ae=m('<p class="text-sm text-muted-foreground">Response selected.'),Se=m("<div class=min-w-0>");function Re(e){const[i,d]=P(void 0);H(j(e.data,()=>d(void 0),{defer:!0}));const r=f(()=>e.prop()??i()),a=f(()=>r()!==void 0),c=f(()=>e.prop()===void 0&&i()!==void 0);return{value:r,isResolved:a,isOptimistic:c,setLocal:d}}function Ce(e){var i;const d=X({compareId:"kai-compare",layout:"auto"},e),[r]=Y(d,["data","compareId","selection","layout","class","controllerRef","onSelect","onReady","onError"]),a=Z(),c=f(()=>{var t;return ce((t=r.data)==null?void 0:t.candidates)}),h=f(()=>c().candidates!==null),g=f(()=>c().error??""),b=f(()=>c().candidates),x=Re({prop:()=>r.selection,data:()=>r.data}),E=f(()=>pe(b())),[I,w]=P(0),[D,z]=P(0);let $;H(j(()=>r.data,()=>{w(0),z(0)})),H(j([h,E],([t,n])=>{var l,o;if(!t){(l=r.onError)==null||l.call(r,g());return}n||(o=r.onReady)==null||o.call(r)}));const G=f(()=>{var t;return(t=x.value())==null?void 0:t.chosenId}),_=f(()=>{var t;const n=G();return n===void 0||(t=b())==null?void 0:t.find(l=>l.id===n)}),M=t=>{var n;if(x.isResolved()||E())return;const l=b();if(!l)return;const o=ue(l,t.id);(n=r.onSelect)==null||n.call(r,o),x.setLocal(o)},F=(t,n)=>{var l;const o=$?.querySelectorAll('[role="radio"]');(l=o?.[t])==null||l.focus(n)};(i=r.controllerRef)==null||i.call(r,{select:t=>{var n;const l=(n=b())==null?void 0:n.find(o=>o.id===t);l&&M(l)},focus:t=>F(I(),t)});const J=t=>{if(x.isResolved())return;const n=b();if(!n)return;const l=o=>{w(o),z(o),F(o)};if(t.key==="ArrowRight"||t.key==="ArrowDown"||t.key==="ArrowLeft"||t.key==="ArrowUp")t.preventDefault(),l(I()===0?1:0);else if(t.key==="Home")t.preventDefault(),l(0);else if(t.key==="End")t.preventDefault(),l(1);else if(t.key===" "||t.key==="Enter"){t.preventDefault();const o=n[I()];o&&M(o)}},K=f(()=>{const t=r.layout;return t==="columns"?"grid grid-cols-2 gap-3":t==="tabs"?"grid grid-cols-1 gap-3":"grid grid-cols-1 gap-3 @[640px]/compare:grid-cols-2"}),N=()=>r.layout==="tabs"||r.layout==="auto",Q=()=>r.layout==="auto"?"@[640px]/compare:hidden":"",V=t=>{const n=r.layout;return n==="columns"||t===D()?"":n==="tabs"?"hidden":"hidden @[640px]/compare:block"},L=`kai-compare-prompt-${a}`,W=()=>{var t;return((t=r.data)==null?void 0:t.prompt)??"Compare two responses"};return s(v,{get when(){return h()},get fallback(){return s(q,{get errorMessage(){return g()||"This comparison couldn't be displayed."}})},get children(){return s(ee,{fallback:()=>{var t;return(t=r.onError)==null||t.call(r,"The comparison failed to render."),s(q,{errorMessage:"The comparison failed to render."})},get children(){var t=ve();return u(t,s(v,{get when(){var n;return(n=r.data)==null?void 0:n.prompt},get children(){var n=ge();return R(n,"id",L),u(n,()=>{var l;return(l=r.data)==null?void 0:l.prompt}),n}}),null),u(t,s(v,{get when(){return!x.isResolved()},get fallback(){return s($e,{get candidate(){return _()},get optimistic(){return x.isOptimistic()}})},get children(){return[s(v,{get when(){return N()},get children(){var n=me();return u(n,s(U,{get each(){return b()??[]},children:(l,o)=>(()=>{var p=he();return p.$$click=()=>{z(o),w(o)},u(p,()=>l().label??`Response ${l().id}`),k(y=>{var A=D()===o,S=T("rounded-md px-3 py-1 text-xs font-medium transition-colors",D()===o?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground");return A!==y.e&&R(p,"aria-selected",y.e=A),S!==y.t&&C(p,y.t=S),y},{e:void 0,t:void 0}),p})()})),k(()=>C(n,T("flex gap-1",Q()))),n}}),(()=>{var n=fe();n.$$keydown=J;var l=$;return typeof l=="function"?te(l,n):$=n,u(n,s(U,{get each(){return b()??[]},children:(o,p)=>s(Ie,{get candidate(){return o()},get tabStop(){return p===I()},get disabled(){return E()},hiddenClass:()=>V(p),onFocus:()=>w(p),onPick:()=>{w(p),M(o())}})})),k(o=>{var p,y=W(),A=(p=r.data)!=null&&p.prompt?L:void 0,S=K();return y!==o.e&&R(n,"aria-label",o.e=y),A!==o.t&&R(n,"aria-describedby",o.t=A),S!==o.a&&C(n,o.a=S),o},{e:void 0,t:void 0,a:void 0}),n})()]}}),null),k(()=>C(t,T("flex flex-col gap-3",r.layout==="auto"&&"@container/compare",r.class))),t}})}})}function Ie(e){const i=()=>e.candidate.label??e.candidate.model??e.candidate.id;return(()=>{var d=ke(),r=d.firstChild;return u(d,s(v,{get when(){return e.candidate.label||e.candidate.model},get children(){var a=xe();return u(a,s(v,{get when(){return e.candidate.label},get children(){var c=ye();return u(c,()=>e.candidate.label),c}}),null),u(a,s(v,{get when(){return e.candidate.model},get children(){var c=be();return u(c,()=>e.candidate.model),c}}),null),a}}),r),u(r,s(v,{get when(){return e.candidate.streaming},get fallback(){return s(O,{get parts(){return B(e.candidate)},isUser:!1,markdown:!0})},get children(){return s(le,{class:"text-sm",children:"Generating response\u2026"})}})),u(d,s(de,{type:"button",role:"radio","aria-checked":!1,get"aria-label"(){return`Pick ${i()}`},get"data-candidate-id"(){return e.candidate.id},variant:"outline",size:"sm",class:"mt-auto w-full",get disabled(){return e.disabled},get tabindex(){return e.tabStop?0:-1},get onFocus(){return e.onFocus},onClick:a=>{a.stopPropagation(),e.onPick()},children:"Pick this"}),null),k(()=>{var a;return C(d,T("flex min-w-0 flex-col gap-3 rounded-lg border border-border bg-background/40 p-3",(a=e.hiddenClass)==null?void 0:a.call(e)))}),d})()}function $e(e){return(()=>{var i=we(),d=i.firstChild,r=d.firstChild;return r.firstChild,u(d,s(se,{size:16,"aria-hidden":"true"}),r),u(r,(()=>{var a=re(()=>{var c;return!!((c=e.candidate)!=null&&c.label)});return()=>a()?`: ${e.candidate.label}`:""})(),null),u(i,s(v,{get when(){return e.candidate},get fallback(){return Ae()},children:a=>(()=>{var c=Se();return u(c,s(O,{get parts(){return B(a())},isUser:!1,markdown:!0})),c})()}),null),k(()=>R(i,"role",e.optimistic?"status":void 0)),i})()}ae(["keydown","click"]),ne("kai-compare",{data:void 0,compareId:void 0,selection:void 0,layout:"auto",proseSize:void 0,codeTheme:void 0,codeHighlight:void 0},(e,{element:i,dispatch:d,expose:r})=>{const a=()=>e.compareId??(i.id||"kai-compare"),c=oe();let h;return r({select:g=>h?.select(g),focus:g=>h?.focus(g)}),s(ie,{get proseSize(){return e.proseSize},get codeTheme(){return e.codeTheme},get codeHighlight(){return e.codeHighlight},get portalMount(){return c.portalMount()},get children(){return s(Ce,{get data(){return e.data},get compareId(){return a()},get selection(){return e.selection},get layout(){return e.layout??"auto"},controllerRef:g=>h=g,onSelect:g=>d("kai-compare-select",g),onReady:()=>d("kai-ready",{compareId:a()}),onError:g=>d("kai-error",{compareId:a(),message:g})})}})});
@@ -1 +1 @@
1
- import{f as d,g as u,c as s}from"./chunks/define-B_tXMYRm.js";import{C as c}from"./chunks/composer-CZZmtYOT.js";function v(e,r,n){var o;return{id:e.getAttribute("item-id")??"",label:((o=e.textContent)==null?void 0:o.trim())||e.getAttribute("label")||e.getAttribute("item-id")||"",icon:e.getAttribute("icon")??void 0,promptText:e.getAttribute("prompt-text")??void 0,data:void 0}}d("kai-composer",{value:void 0,placeholder:void 0,disabled:!1,loading:!1,maxHeight:240,submitOnEnter:!0,triggers:void 0,highlights:void 0,kindIcons:void 0},(e,{dispatch:r,flag:n,expose:o})=>{const[l,g]=u(e.value),a=()=>e.value??l();let i;return o({focus:t=>i?.focus(t),blur:()=>i?.blur(),clear:()=>i?.clear(),send:()=>i?.send(),insertEntity:t=>i?.insertEntity(t)}),s(c,{get value(){return a()},get placeholder(){return e.placeholder},get disabled(){return n("disabled")},get loading(){return n("loading")},get maxHeight(){return e.maxHeight},get submitOnEnter(){return n("submitOnEnter")},get triggers(){return e.triggers},get highlights(){return e.highlights},get kindIcons(){return e.kindIcons},onChange:t=>{g(t.doc),r("kai-value-change",{doc:t.doc,text:t.text,entities:t.entities})},onSubmit:t=>{r("kai-submit",{doc:t.doc,text:t.text,entities:t.entities})},onEntityAdd:t=>r("kai-entity-add",{entity:t}),onEntityRemove:t=>r("kai-entity-remove",{entity:t}),onTrigger:t=>r("kai-trigger",t),onTriggerClose:()=>r("kai-trigger-close",{}),onFocus:t=>r("kai-focus",{originalEvent:t}),onBlur:t=>r("kai-blur",{originalEvent:t}),controllerRef:t=>i=t})});export{v as parseKaiTriggerItemElement};
1
+ import{f as d,g as u,c as s}from"../define-CGGX-7Vg.js";import{C as c}from"../composer-CjngLzal.js";function v(e,r,n){var o;return{id:e.getAttribute("item-id")??"",label:((o=e.textContent)==null?void 0:o.trim())||e.getAttribute("label")||e.getAttribute("item-id")||"",icon:e.getAttribute("icon")??void 0,promptText:e.getAttribute("prompt-text")??void 0,data:void 0}}d("kai-composer",{value:void 0,placeholder:void 0,disabled:!1,loading:!1,maxHeight:240,submitOnEnter:!0,triggers:void 0,highlights:void 0,kindIcons:void 0},(e,{dispatch:r,flag:n,expose:o})=>{const[l,g]=u(e.value),a=()=>e.value??l();let i;return o({focus:t=>i?.focus(t),blur:()=>i?.blur(),clear:()=>i?.clear(),send:()=>i?.send(),insertEntity:t=>i?.insertEntity(t)}),s(c,{get value(){return a()},get placeholder(){return e.placeholder},get disabled(){return n("disabled")},get loading(){return n("loading")},get maxHeight(){return e.maxHeight},get submitOnEnter(){return n("submitOnEnter")},get triggers(){return e.triggers},get highlights(){return e.highlights},get kindIcons(){return e.kindIcons},onChange:t=>{g(t.doc),r("kai-value-change",{doc:t.doc,text:t.text,entities:t.entities})},onSubmit:t=>{r("kai-submit",{doc:t.doc,text:t.text,entities:t.entities})},onEntityAdd:t=>r("kai-entity-add",{entity:t}),onEntityRemove:t=>r("kai-entity-remove",{entity:t}),onTrigger:t=>r("kai-trigger",t),onTriggerClose:()=>r("kai-trigger-close",{}),onFocus:t=>r("kai-focus",{originalEvent:t}),onBlur:t=>r("kai-blur",{originalEvent:t}),controllerRef:t=>i=t})});export{v as parseKaiTriggerItemElement};
@@ -1 +1 @@
1
- import{f as d,c as u}from"./chunks/define-B_tXMYRm.js";import{C as s}from"./chunks/confirm-card-BWjf2-xo.js";d("kai-confirm",{data:void 0,cardId:void 0,heading:void 0,autofocus:!1,resolution:void 0},(r,{element:i,flag:t,expose:n})=>{let o;return n({focus:e=>o?.focus(e),confirm:e=>o?.confirm(e),dismiss:()=>o?.dismiss(),reopen:()=>o?.reopen()}),u(s,{get data(){return r.data},get cardId(){return r.cardId??(i.id||"kai-confirm")},get heading(){return r.heading},get autofocus(){return t("autofocus")},get resolution(){return r.resolution},controllerRef:e=>o=e,hostElement:i})});
1
+ import{f as d,c as u}from"../define-CGGX-7Vg.js";import{C as s}from"../confirm-card-DCx_A4bU.js";d("kai-confirm",{data:void 0,cardId:void 0,heading:void 0,autofocus:!1,resolution:void 0},(r,{element:i,flag:t,expose:n})=>{let o;return n({focus:e=>o?.focus(e),confirm:e=>o?.confirm(e),dismiss:()=>o?.dismiss(),reopen:()=>o?.reopen()}),u(s,{get data(){return r.data},get cardId(){return r.cardId??(i.id||"kai-confirm")},get heading(){return r.heading},get autofocus(){return t("autofocus")},get resolution(){return r.resolution},controllerRef:e=>o=e,hostElement:i})});
@@ -1 +1 @@
1
- import{f as d,l as g,k as i,x as l,c as t,i as r,S as s,t as T}from"./chunks/define-B_tXMYRm.js";import{h as k,C as x,a as m,b as v,c as p,d as w,e as f,f as C,i as D,j as S,g as b,D as j,k as y}from"./chunks/context-hKjNqiyQ.js";var E=T("<div class=space-y-1.5>");d("kai-context",{context:void 0,warnThreshold:void 0,dangerThreshold:void 0},(e,{dispatch:c})=>{const o=()=>e.warnThreshold??j,a=()=>e.dangerThreshold??y,h=g(()=>{const n=e.context;return n?k(n.usedTokens/n.maxTokens,o(),a()):"ok"});return i(l(h,(n,u)=>{u!==void 0&&n!==u&&c("kai-threshold-change",{level:n})})),t(s,{get when(){return e.context},get children(){return t(x,{get usedTokens(){return e.context.usedTokens},get maxTokens(){return e.context.maxTokens},get inputTokens(){return e.context.inputTokens},get outputTokens(){return e.context.outputTokens},get reasoningTokens(){return e.context.reasoningTokens},get cacheTokens(){return e.context.cacheTokens},get estimatedCost(){return e.context.estimatedCost},get warnThreshold(){return o()},get dangerThreshold(){return a()},get children(){return[t(m,{}),t(v,{get children(){return[t(p,{}),t(w,{get children(){var n=E();return r(n,t(f,{}),null),r(n,t(C,{}),null),r(n,t(s,{get when(){return e.context.reasoningTokens},get children(){return t(D,{})}}),null),r(n,t(s,{get when(){return e.context.cacheTokens},get children(){return t(S,{})}}),null),n}}),t(b,{})]}})]}})}})});
1
+ import{f as d,k as g,j as i,x as l,c as t,i as r,S as s,t as T}from"../define-CGGX-7Vg.js";import{h as k,C as x,a as m,b as v,c as p,d as w,e as f,f as C,i as j,j as D,g as S,D as b,k as y}from"../context-BY8V-Nlp.js";var E=T("<div class=space-y-1.5>");d("kai-context",{context:void 0,warnThreshold:void 0,dangerThreshold:void 0},(e,{dispatch:c})=>{const o=()=>e.warnThreshold??b,a=()=>e.dangerThreshold??y,h=g(()=>{const n=e.context;return n?k(n.usedTokens/n.maxTokens,o(),a()):"ok"});return i(l(h,(n,u)=>{u!==void 0&&n!==u&&c("kai-threshold-change",{level:n})})),t(s,{get when(){return e.context},get children(){return t(x,{get usedTokens(){return e.context.usedTokens},get maxTokens(){return e.context.maxTokens},get inputTokens(){return e.context.inputTokens},get outputTokens(){return e.context.outputTokens},get reasoningTokens(){return e.context.reasoningTokens},get cacheTokens(){return e.context.cacheTokens},get estimatedCost(){return e.context.estimatedCost},get warnThreshold(){return o()},get dangerThreshold(){return a()},get children(){return[t(m,{}),t(v,{get children(){return[t(p,{}),t(w,{get children(){var n=E();return r(n,t(f,{}),null),r(n,t(C,{}),null),r(n,t(s,{get when(){return e.context.reasoningTokens},get children(){return t(j,{})}}),null),r(n,t(s,{get when(){return e.context.cacheTokens},get children(){return t(D,{})}}),null),n}}),t(S,{})]}})]}})}})});
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ import{f,g as c,o as h,h as w,c as _,v as r,m as o,t as a}from"../define-CGGX-7Vg.js";import{r as $,a as A}from"../slots-DaNjX0rc.js";import{i as v,S as I,r as S}from"../conversation-list-D4lLU_yS.js";var k=a("<slot>"),M=a("<slot name=leading>"),O=a("<slot name=meta>"),C=a("<slot name=menu>");f("kai-conversation-item",{conversationId:void 0,active:void 0,compact:void 0},(m,{element:e,flag:i,reflectFlag:u,dispatch:d})=>{const[n,l]=c({}),[g,p]=c(!1);h(()=>{const t=()=>l($(e,A));t();const s=new MutationObserver(t);s.observe(e,{childList:!0,attributes:!0,subtree:!0}),w(()=>s.disconnect()),e.hasAttribute("role")||e.setAttribute("role","listitem"),p(v(e))});const b=()=>{v(e)&&d("kai-select",{id:S(e)})};return u("active"),_(I,{get conversationId(){return m.conversationId},get active(){return i("active")},get compact(){return i("compact")},hostSemantics:!0,get onActivate(){return g()?b:void 0},get leading(){return o(()=>!!n().leading)()?(()=>{var t=M();return t._$owner=r(),t})():void 0},get meta(){return o(()=>!!n().meta)()?(()=>{var t=O();return t._$owner=r(),t})():void 0},get menu(){return o(()=>!!n().menu)()?(()=>{var t=C();return t._$owner=r(),t})():void 0},get children(){var t=k();return t._$owner=r(),t}})});
@@ -1 +1 @@
1
- import{f as y,g as v,o as I,h as x,c,j as u,u as d,S as A,t as g}from"./chunks/define-B_tXMYRm.js";import{c as O,C as _,a as $}from"./chunks/conversation-list-CsGJjSKG.js";import{r as q,a as E}from"./chunks/slots-CIw9RlAe.js";var M=g("<slot name=header>"),R=g("<slot name=footer>"),D=g("<slot name=empty>");function f(r){var t;return{id:r.getAttribute("id")??"",title:((t=r.textContent)==null?void 0:t.trim())??"",groupId:r.getAttribute("group-id")??void 0,scope:{type:"collection"},messageCount:0,lastMessageAt:new Date(0).toISOString(),updatedAt:new Date(0).toISOString()}}y("kai-conversations",{groups:[],conversations:[],activeId:void 0,collapsed:void 0,defaultCollapsed:void 0},(r,{dispatch:t,element:s,expose:m,flag:h})=>{const[w,S]=v([]),[l,b]=v({});I(()=>{const e=()=>{const i=[...s.querySelectorAll("kai-conversation")];S(i.map(f)),b(q(s,E))};e();const n=new MutationObserver(e);n.observe(s,{childList:!0,attributes:!0,subtree:!0}),x(()=>n.disconnect())});const k=()=>[...r.conversations??[],...w()],[p,C]=O(()=>r.collapsed,h("defaultCollapsed")),o=e=>{C(e),t("kai-collapse-toggle",{collapsed:e})};let a;return m({focus:e=>{var n,i;a?a.focus(e):(i=(n=s.shadowRoot)==null?void 0:n.querySelector("input"))==null||i.focus(e)},clear:()=>a?.clearSearch(),select:e=>t("kai-conversation-select",{id:e}),collapse:()=>o(!0),expand:()=>o(!1),toggle:()=>o(!p())}),c(A,{get when(){return!p()},get fallback(){return c($,{onExpand:()=>o(!1)})},get children(){return c(_,{get groups(){return r.groups??[]},get conversations(){return k()},get activeId(){return r.activeId},onSelect:e=>t("kai-conversation-select",{id:e}),onNewChat:()=>t("kai-new-chat"),onToggleSidebar:()=>{t("kai-toggle-sidebar"),o(!0)},onSearchChange:e=>t("kai-search",{query:e}),controllerRef:e=>a=e,get header(){return u(()=>!!l().header)()?(()=>{var e=M();return e._$owner=d(),e})():void 0},get footer(){return u(()=>!!l().footer)()?(()=>{var e=R();return e._$owner=d(),e})():void 0},get empty(){return u(()=>!!l().empty)()?(()=>{var e=D();return e._$owner=d(),e})():void 0}})}})});export{f as parseKaiConversationElement};
1
+ import{f as D,g as m,o as R,h as j,j as E,c as h,m as d,v as u,S as L,t as g}from"../define-CGGX-7Vg.js";import{c as M}from"../controllable-D43BKmtX.js";import{r as N,b as T}from"../slots-DaNjX0rc.js";import{c as z,C as B,a as F}from"../conversation-list-D4lLU_yS.js";var H=g("<slot>"),O=g("<slot name=header>"),V=g("<slot name=footer>"),W=g("<slot name=empty>");function b(r){var t;return{id:r.getAttribute("id")??"",title:((t=r.textContent)==null?void 0:t.trim())??"",groupId:r.getAttribute("group-id")??void 0,messageCount:0,updatedAt:""}}D("kai-conversations",{groups:[],conversations:[],activeId:void 0,collapsed:void 0,defaultCollapsed:void 0,compact:void 0},(r,{dispatch:t,element:o,expose:C,flag:f})=>{const[S,I]=m([]),[k,A]=m([]),[v,x]=m({});R(()=>{const e=()=>{const c=[...o.querySelectorAll("kai-conversation")];I(c.map(b));const l=[...o.querySelectorAll(":scope > kai-conversation-item")];A(p=>p.length===l.length&&l.every(($,K)=>$===p[K])?p:l),x(N(o,T)),l.length&&i.sync()};e();const s=new MutationObserver(e);s.observe(o,{childList:!0,attributes:!0,subtree:!0}),j(()=>s.disconnect())});const y=()=>k().length>0,q=()=>[...r.conversations??[],...S()],i=z({getItems:k,getActiveId:()=>r.activeId,onSelect:e=>t("kai-conversation-select",{id:e})});E(()=>{y()&&i.sync()});const[w,_]=M(()=>r.collapsed,f("defaultCollapsed")),a=e=>{_(e),t("kai-collapse-toggle",{collapsed:e})};let n;return C({focus:e=>{var s,c;n?n.focus(e):(c=(s=o.shadowRoot)==null?void 0:s.querySelector("input"))==null||c.focus(e)},clear:()=>n?.clearSearch(),select:e=>t("kai-conversation-select",{id:e}),collapse:()=>a(!0),expand:()=>a(!1),toggle:()=>a(!w())}),h(L,{get when(){return!w()},get fallback(){return h(F,{onExpand:()=>a(!1)})},get children(){return h(B,{get groups(){return r.groups??[]},get conversations(){return q()},get activeId(){return r.activeId},onSelect:e=>t("kai-conversation-select",{id:e}),onNewChat:()=>t("kai-new-chat"),onToggleSidebar:()=>{t("kai-toggle-sidebar"),a(!0)},get compact(){return f("compact")},onSearchChange:e=>t("kai-search",{query:e}),controllerRef:e=>n=e,get items(){return d(()=>!!y())()?(()=>{var e=H();return e._$owner=u(),e})():void 0},get itemsKeyDown(){return i.handleKeyDown},get itemsClick(){return i.handleClick},get header(){return d(()=>!!v().header)()?(()=>{var e=O();return e._$owner=u(),e})():void 0},get footer(){return d(()=>!!v().footer)()?(()=>{var e=V();return e._$owner=u(),e})():void 0},get empty(){return d(()=>!!v().empty)()?(()=>{var e=W();return e._$owner=u(),e})():void 0}})}})});export{b as parseKaiConversationElement};
@@ -43,8 +43,8 @@ export interface DefaultPromptInputProps {
43
43
  * (name, media type, reason) and renders nothing itself: what the user should
44
44
  * see is the application's call, not the kit's. */
45
45
  onAttachmentsRejected?: (rejected: RejectedAttachment[]) => void;
46
- /** Show a Search (Globe) button in the left toolbar; calls `onSearch`. */
47
- search?: boolean;
46
+ /** Show a web-search (Globe) button in the left toolbar; calls `onWebSearch`. */
47
+ webSearch?: boolean;
48
48
  /** Show a Voice (Mic) button in the left toolbar; calls `onVoice`. */
49
49
  voice?: boolean;
50
50
  /** Send-button visibility. `'always'` (default) always shows it; `'auto'` shows
@@ -57,7 +57,7 @@ export interface DefaultPromptInputProps {
57
57
  onSubmit: () => void;
58
58
  onSuggestionClick: (v: string) => void;
59
59
  onAttachmentsChange?: (attachments: AttachmentData[]) => void;
60
- onSearch?: () => void;
60
+ onWebSearch?: () => void;
61
61
  onVoice?: () => void;
62
62
  /** When `true` and `loading` is also `true`, the send button is replaced by
63
63
  * a Stop button that calls `onStop`. */
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @kitn.ai/ui/define — the facade seam, public.
3
+ *
4
+ * The construct engine's GENERATED projects (and any consumer who wants to wrap
5
+ * a pure-Solid interior as one self-registering element) import from here. Its
6
+ * own subpath rather than ./solid because define.tsx carries ELEMENT_CSS (the
7
+ * full compiled kit CSS) and solid-element — weight ./solid consumers must not
8
+ * pay. SSR-safe by construction: defineWebComponent no-ops without
9
+ * customElements (see define.tsx).
10
+ */
11
+ export { defineWebComponent } from './define.js';
12
+ export type { WebComponentContext } from './define.js';
@@ -35,6 +35,33 @@ export interface WebComponentContext<E = Record<string, unknown>> {
35
35
  * convention). Methods are attached when the facade renders (on element upgrade).
36
36
  */
37
37
  expose: (methods: Record<string, (...args: never[]) => unknown>) => void;
38
+ /**
39
+ * Reflect a boolean prop to its host attribute AND make that prop read back what
40
+ * was set. Use this instead of hand-rolling
41
+ * `createEffect(() => element.toggleAttribute('x', flag('x')))`.
42
+ *
43
+ * WHY IT IS ONE CALL AND NOT TWO. The reflection is what BREAKS the read-back, so
44
+ * the fix has to be attached to it or it gets forgotten — and it was, three times.
45
+ * `toggleAttribute(name, true)` sets the attribute to the EMPTY STRING;
46
+ * component-register's `attributeChangedCallback` then writes the prop back as
47
+ * `this[name] = parseAttributeValue("")`, and `parseAttributeValue` returns
48
+ * `undefined` for the empty string. So a reflected flag became write-only:
49
+ * `el.loading = true` left `el.loading === undefined` while `[loading]` was on the
50
+ * host. The element kept BEHAVING correctly, because `flag()` reads the attribute —
51
+ * which is precisely why nobody noticed until a consumer tried to read the property
52
+ * back (findings G-05).
53
+ *
54
+ * What this installs is an instance-level wrapper around the accessor
55
+ * component-register already created, coercing every incoming value through the
56
+ * same `flag()` policy (`resolveFlag`) — so the `undefined` write-back resolves to
57
+ * the attribute that caused it, and the property and the attribute can no longer
58
+ * disagree. It delegates to the underlying setter, so reactivity is untouched.
59
+ *
60
+ * `source` overrides where the ON/OFF value comes from, for an element whose truth
61
+ * is an internal controller rather than the prop (see `wireDisclosure`). Returning
62
+ * `undefined` from it means "not ready, leave the attribute alone".
63
+ */
64
+ reflectFlag: (name: string, source?: () => boolean | undefined) => void;
38
65
  /**
39
66
  * Whether the element should currently render its dark-mode look --
40
67
  * exactly the SAME resolved value that already drives the `.dark` class
@@ -0,0 +1,74 @@
1
+ /** The envelope, structurally identical to `WireDiagnosticBase`. Restated here
2
+ * rather than imported so this file keeps its zero-import property; the two are
3
+ * kept in step by `element-diagnostics.test.ts`, which asserts every emitted
4
+ * element event carries a `type` and a numeric `t`. */
5
+ export interface ElementDiagnosticBase {
6
+ type: string;
7
+ /** `Date.now()` at emission. */
8
+ t: number;
9
+ }
10
+ /** Which contract was broken. A closed vocabulary, so a panel keys its own
11
+ * explanation off the kind and never needs prose from the kit. */
12
+ export type ElementViolationKind =
13
+ /** A non-scalar prop received a value through the ATTRIBUTE channel. The
14
+ * attribute cannot carry an array or an object, so the property now holds a
15
+ * string and the element renders nothing. */
16
+ 'array-prop-as-attribute'
17
+ /** A list prop was set to the array reference it already held. Solid compares
18
+ * with `===`, so this notified nothing — a no-op write. */
19
+ | 'same-array-reference'
20
+ /** A list prop received a NEW array of the SAME length whose every item is
21
+ * reference-identical to the previous array's. The array notified, but every
22
+ * row's identity is unchanged, so a reference-keyed `<For>` re-invokes none
23
+ * of them. The classic "I mutated the item and copied the array" case.
24
+ *
25
+ * NOTE what this deliberately does NOT claim: the kit cannot know an item
26
+ * "changed" without comparing its CONTENT, and content is payload. So this
27
+ * reports the structurally knowable fact — an update that cannot render —
28
+ * and leaves the question of whether the consumer meant anything by it to
29
+ * the consumer, who is the only one who can answer it. */
30
+ | 'mutated-in-place';
31
+ /** A consumer broke one of the three `kai-` contract rules on a live element. */
32
+ export interface ElementViolationEvent extends ElementDiagnosticBase {
33
+ type: 'element.violation';
34
+ kind: ElementViolationKind;
35
+ /** The custom-element tag, e.g. `kai-chat`. */
36
+ tag: string;
37
+ /** The camelCase prop name, e.g. `messages`. */
38
+ prop: string;
39
+ /**
40
+ * SHAPE of the offending value, never its content. `array-prop-as-attribute`
41
+ * only. A closed vocabulary:
42
+ *
43
+ * `[object Object]` one object stringified into the attribute
44
+ * `[object Object] x N` an array of N objects stringified — the common case
45
+ * `json:number` the attribute held valid JSON, but a scalar
46
+ * `json:boolean` "
47
+ * `json:null` "
48
+ * `string(len=N)` anything else: the LENGTH of the text, never the text
49
+ * `empty-attribute` a bare attribute on a prop that needs a value
50
+ */
51
+ valuePreview?: string;
52
+ /** Element count of the array involved. `same-array-reference` and
53
+ * `mutated-in-place` only. A length is shape, not content. */
54
+ length?: number;
55
+ }
56
+ /** Which `kai-*` elements are DEFINED in this realm right now.
57
+ *
58
+ * The question behind it is hydration: an SSR page whose markup contains
59
+ * `<kai-chat>` but whose element bundle never loaded shows empty boxes and no
60
+ * error, because an undefined custom element is a valid, inert HTMLElement.
61
+ * The SSR starters already answer this by hand for a hard-coded handful
62
+ * (`HydrationBadge.tsx`); this is the same answer over the whole manifest. */
63
+ export interface ElementRegistryEvent extends ElementDiagnosticBase {
64
+ type: 'element.registry';
65
+ /** Tags `customElements.get()` resolved. */
66
+ defined: string[];
67
+ /** Tags in the manifest that are NOT defined in this realm. Named for what it
68
+ * is rather than `undefined`, which is a miserable key to read in a panel. */
69
+ notDefined: string[];
70
+ /** `defined.length + notDefined.length`. Present so a panel can show "62 of
71
+ * 79" without trusting itself to add up two arrays it may have truncated. */
72
+ total: number;
73
+ }
74
+ export type ElementDiagnosticEvent = ElementViolationEvent | ElementRegistryEvent;
@@ -1 +1 @@
1
- import{y as W,g as $,w as B,k as F,c as x,P as G,v as L,i as w,S as O,d as p,a as I,b as j,t as h,e as J,f as N,o as Q,h as U,u as E,j as z}from"./chunks/define-B_tXMYRm.js";import{c as D}from"./chunks/cn-CU7UAWzk.js";import{c as V}from"./chunks/overlay-CV7z2YuX.js";import{w as X}from"./chunks/disclosure-DAoYOKew.js";var Y=h('<header part=header class="shrink-0 border-b border-border px-5 py-4 text-base font-semibold text-foreground">'),Z=h('<footer part=footer class="flex shrink-0 items-center justify-end gap-2 border-t border-border px-5 py-3">'),ee=h('<div part=backdrop><div part=panel role=dialog aria-modal=true tabindex=-1><div part=body class="min-h-0 flex-1 overflow-auto px-5 py-4 text-sm text-foreground">');const _=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])','[tabindex]:not([tabindex="-1"])'].join(",");function te(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)&&getComputedStyle(t).visibility!=="hidden"}function oe(t){const a=[],u=f=>{for(const i of Array.from(f.children))if(i instanceof HTMLSlotElement)for(const d of i.assignedElements())d instanceof HTMLElement&&(d.matches(_)&&a.push(d),u(d));else i instanceof HTMLElement&&(i.matches(_)&&a.push(i),u(i))};return u(t),a.filter(te)}function P(){var t;let a=document.activeElement;for(;(t=a?.shadowRoot)!=null&&t.activeElement;)a=a.shadowRoot.activeElement;return a}function ne(t){var a;const u=W(),[f,i]=$(t.defaultOpen??!1),d=`kai-dialog-title-${B()}`,v=()=>t.open!==void 0,m=()=>v()?!!t.open:f(),b=o=>{var n;v()||i(o),(n=t.onOpenChange)==null||n.call(t,o)};(a=t.controllerRef)==null||a.call(t,{open:m,setOpen:b});const c=V(m);let y,l,r=null,k=!1;F(o=>{const n=m();if(n&&!o)r=P(),queueMicrotask(()=>l?.focus());else if(!n&&o){const s=r;r=null,s&&s.isConnected&&queueMicrotask(()=>s.focus())}return n},!1);const A=o=>{if(o.key==="Escape"){o.stopPropagation(),b(!1);return}if(o.key!=="Tab"||!l)return;const n=oe(l);if(!n.length){o.preventDefault(),l.focus();return}const s=P(),e=s?n.indexOf(s):-1;o.shiftKey?e<=0&&(o.preventDefault(),n[n.length-1].focus()):(e===-1||e===n.length-1)&&(o.preventDefault(),n[0].focus())},K=o=>{k&&o.target===y&&b(!1),k=!1};return x(O,{get when(){return c.present()},get children(){return x(G,{get mount(){return u.portalMount()},get children(){var o=ee(),n=o.firstChild,s=n.firstChild;return o.$$keydown=A,o.$$click=K,o.$$pointerdown=e=>{k=e.target===e.currentTarget},L(e=>{y=e,c.setRef(e)},o),L(e=>{var g;l=e,(g=t.panelRef)==null||g.call(t,e)},n),w(n,x(O,{get when(){return t.header},get children(){var e=Y();return p(e,"id",d),w(e,()=>t.header),e}}),s),w(s,()=>t.children),w(n,x(O,{get when(){return t.footer},get children(){var e=Z();return w(e,()=>t.footer),e}}),null),I(e=>{var g=c.state()==="open"?"":void 0,M=c.state()==="closed"?"":void 0,R=D("fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4","animate-in fade-in-0 data-[closed]:animate-out data-[closed]:fade-out-0 motion-reduce:animate-none"),C=t.header?d:void 0,S=t.header?void 0:t["aria-label"],T=c.state()==="open"?"":void 0,q=c.state()==="closed"?"":void 0,H=D("flex max-h-[85vh] w-full max-w-lg flex-col overflow-hidden rounded-xl border border-border bg-background text-foreground shadow-xl outline-none","animate-in fade-in-0 zoom-in-95 data-[closed]:animate-out data-[closed]:fade-out-0 data-[closed]:zoom-out-95 motion-reduce:animate-none",t.class);return g!==e.e&&p(o,"data-expanded",e.e=g),M!==e.t&&p(o,"data-closed",e.t=M),R!==e.a&&j(o,e.a=R),C!==e.o&&p(n,"aria-labelledby",e.o=C),S!==e.i&&p(n,"aria-label",e.i=S),T!==e.n&&p(n,"data-expanded",e.n=T),q!==e.s&&p(n,"data-closed",e.s=q),H!==e.h&&j(n,e.h=H),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),o}})}})}J(["pointerdown","click","keydown"]);var re=h("<slot>"),ae=h("<slot name=header>"),ie=h("<slot name=footer>");N("kai-dialog",{open:void 0,defaultOpen:void 0},(t,a)=>{const{flag:u,element:f,expose:i}=a;let d,v;X(a,()=>d,()=>t.open);const[m,b]=$(!1),[c,y]=$(!1),l=()=>{b(!!f.querySelector(':scope > [slot="header"]')),y(!!f.querySelector(':scope > [slot="footer"]'))};return Q(()=>{if(l(),typeof MutationObserver=="function"){const r=new MutationObserver(l);r.observe(f,{childList:!0}),U(()=>r.disconnect())}}),i({focus:r=>v?.focus(r)}),x(ne,{get defaultOpen(){return u("defaultOpen")},get header(){return z(()=>!!m())()?(()=>{var r=ae();return r._$owner=E(),r})():void 0},get footer(){return z(()=>!!c())()?(()=>{var r=ie();return r._$owner=E(),r})():void 0},controllerRef:r=>d=r,panelRef:r=>v=r,get children(){var r=re();return r._$owner=E(),r}})});
1
+ import{A as B,g as $,w as F,j as G,c as x,P as I,u as D,i as w,S as O,d as p,a as J,b as H,t as h,e as N,f as Q,o as U,h as V,v as E,m as L}from"../define-CGGX-7Vg.js";import{c as z}from"../cn-DN5AWfiS.js";import{c as X}from"../overlay-C1od6LOz.js";import{w as Y}from"../disclosure-CbLtajUQ.js";var Z=h('<header part=header class="shrink-0 border-b border-border px-5 py-4 text-base font-semibold text-foreground">'),ee=h('<footer part=footer class="flex shrink-0 items-center justify-end gap-2 border-t border-border px-5 py-3">'),te=h('<div part=backdrop><div part=panel role=dialog aria-modal=true tabindex=-1><div part=body class="min-h-0 flex-1 overflow-auto px-5 py-4 text-sm text-foreground">');const _=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])','[tabindex]:not([tabindex="-1"])'].join(",");function oe(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)&&getComputedStyle(t).visibility!=="hidden"}function ne(t){const a=[],u=f=>{for(const l of Array.from(f.children))if(l instanceof HTMLSlotElement)for(const i of l.assignedElements())i instanceof HTMLElement&&(i.matches(_)&&a.push(i),u(i));else l instanceof HTMLElement&&(l.matches(_)&&a.push(l),u(l))};return u(t),a.filter(oe)}function A(){var t;let a=document.activeElement;for(;(t=a?.shadowRoot)!=null&&t.activeElement;)a=a.shadowRoot.activeElement;return a}function re(t){var a;const u=B(),[f,l]=$(t.defaultOpen??!1),i=`kai-dialog-title-${F()}`,v=()=>t.open!==void 0,m=()=>v()?!!t.open:f(),b=o=>{var n;v()||l(o),(n=t.onOpenChange)==null||n.call(t,o)};(a=t.controllerRef)==null||a.call(t,{open:m,setOpen:b});const c=X(m);let y,d,r=null,k=!1;G(o=>{const n=m();if(n&&!o)r=A(),queueMicrotask(()=>d?.focus());else if(!n&&o){const s=r;r=null,s&&s.isConnected&&queueMicrotask(()=>s.focus())}return n},!1);const K=o=>{if(o.key==="Escape"){o.stopPropagation(),b(!1);return}if(o.key!=="Tab"||!d)return;const n=ne(d);if(!n.length){o.preventDefault(),d.focus();return}const s=A(),e=s?n.indexOf(s):-1;o.shiftKey?e<=0&&(o.preventDefault(),n[n.length-1].focus()):(e===-1||e===n.length-1)&&(o.preventDefault(),n[0].focus())},W=o=>{k&&o.target===y&&b(!1),k=!1};return x(O,{get when(){return c.present()},get children(){return x(I,{get mount(){return u.portalMount()},get children(){var o=te(),n=o.firstChild,s=n.firstChild;return o.$$keydown=K,o.$$click=W,o.$$pointerdown=e=>{k=e.target===e.currentTarget},D(e=>{y=e,c.setRef(e)},o),D(e=>{var g;d=e,(g=t.panelRef)==null||g.call(t,e)},n),w(n,x(O,{get when(){return t.header},get children(){var e=Z();return p(e,"id",i),w(e,()=>t.header),e}}),s),w(s,()=>t.children),w(n,x(O,{get when(){return t.footer},get children(){var e=ee();return w(e,()=>t.footer),e}}),null),J(e=>{var g=c.state()==="open"?"":void 0,M=c.state()==="closed"?"":void 0,R=z("fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4","animate-in fade-in-0 data-[closed]:animate-out data-[closed]:fade-out-0 motion-reduce:animate-none"),C=t.header?i:void 0,S=t.header?void 0:t["aria-label"],T=c.state()==="open"?"":void 0,j=c.state()==="closed"?"":void 0,q=z("flex max-h-[85vh] w-full max-w-lg flex-col overflow-hidden rounded-xl border border-border bg-background text-foreground shadow-xl outline-none","animate-in fade-in-0 zoom-in-95 data-[closed]:animate-out data-[closed]:fade-out-0 data-[closed]:zoom-out-95 motion-reduce:animate-none",t.class);return g!==e.e&&p(o,"data-expanded",e.e=g),M!==e.t&&p(o,"data-closed",e.t=M),R!==e.a&&H(o,e.a=R),C!==e.o&&p(n,"aria-labelledby",e.o=C),S!==e.i&&p(n,"aria-label",e.i=S),T!==e.n&&p(n,"data-expanded",e.n=T),j!==e.s&&p(n,"data-closed",e.s=j),q!==e.h&&H(n,e.h=q),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),o}})}})}N(["pointerdown","click","keydown"]);var ae=h("<slot>"),le=h("<slot name=header>"),ie=h("<slot name=footer>");const P="Dialog";function de(t){return typeof t=="string"&&t.trim()!==""?t:P}Q("kai-dialog",{open:void 0,defaultOpen:void 0,label:P},(t,a)=>{const{flag:u,element:f,expose:l}=a;let i,v;Y(a,()=>i,()=>t.open);const[m,b]=$(!1),[c,y]=$(!1),d=()=>{b(!!f.querySelector(':scope > [slot="header"]')),y(!!f.querySelector(':scope > [slot="footer"]'))};return U(()=>{if(d(),typeof MutationObserver=="function"){const r=new MutationObserver(d);r.observe(f,{childList:!0}),V(()=>r.disconnect())}}),l({focus:r=>v?.focus(r)}),x(re,{get defaultOpen(){return u("defaultOpen")},get"aria-label"(){return de(t.label)},get header(){return L(()=>!!m())()?(()=>{var r=le();return r._$owner=E(),r})():void 0},get footer(){return L(()=>!!c())()?(()=>{var r=ie();return r._$owner=E(),r})():void 0},controllerRef:r=>i=r,panelRef:r=>v=r,get children(){var r=ae();return r._$owner=E(),r}})});
@@ -0,0 +1 @@
1
+ export {};