@kitn.ai/ui 0.25.2 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/README.md +2 -2
  2. package/dist/components/attachment-types.d.ts +46 -1
  3. package/dist/components/attachments.d.ts +31 -0
  4. package/dist/components/audio-visualizer/fit-scale.d.ts +50 -0
  5. package/dist/components/audio-visualizer/index.d.ts +15 -1
  6. package/dist/components/audio-visualizer/variant-bar.d.ts +24 -1
  7. package/dist/components/chat-thread.d.ts +3 -41
  8. package/dist/components/code-block.d.ts +22 -0
  9. package/dist/components/conversation-item.d.ts +54 -1
  10. package/dist/components/conversation-list.d.ts +65 -0
  11. package/dist/components/form.d.ts +42 -0
  12. package/dist/components/message.d.ts +7 -0
  13. package/dist/components/toast.d.ts +2 -1
  14. package/dist/components/voice-input.d.ts +8 -0
  15. package/dist/components/voice-output.d.ts +12 -1
  16. package/dist/components/workspace-shell.d.ts +87 -0
  17. package/dist/{create-tween-B5Y4Im8G.js → create-tween-BFT6c-Y8.js} +1 -1
  18. package/dist/{create-tween-4z1XYLkR.js → create-tween-CJNlzoaO.js} +1 -1
  19. package/dist/{create-tween-CUzOlaMS.js → create-tween-CQED4T0g.js} +1 -1
  20. package/dist/custom-elements.json +2931 -2572
  21. package/dist/diagnostics/hook.d.ts +81 -0
  22. package/dist/diagnostics/index.d.ts +7 -0
  23. package/dist/diagnostics/report-request.d.ts +61 -0
  24. package/dist/diagnostics.d.ts +5 -0
  25. package/dist/diagnostics.js +209 -0
  26. package/dist/elements/agent-card.js +1 -1
  27. package/dist/elements/artifact.js +1 -1
  28. package/dist/elements/attachments.js +1 -1
  29. package/dist/elements/audio-visualizer.js +1 -1
  30. package/dist/elements/autoloader.js +1 -1
  31. package/dist/elements/avatar.js +1 -1
  32. package/dist/elements/badge.js +1 -1
  33. package/dist/elements/button.js +1 -1
  34. package/dist/elements/card.js +1 -1
  35. package/dist/elements/cards.js +1 -1
  36. package/dist/elements/chain-of-thought.js +1 -1
  37. package/dist/elements/chat-scope-picker.js +1 -1
  38. package/dist/elements/chat-workspace.js +1 -1
  39. package/dist/elements/chat.js +1 -1
  40. package/dist/elements/checkpoint.js +1 -1
  41. package/dist/elements/choice.js +1 -1
  42. package/dist/elements/chunks/{Icon-b5A8hlHs.js → Icon--Y8vsFal.js} +1 -1
  43. package/dist/elements/chunks/action-icons-D9u3OzYW.js +1 -0
  44. package/dist/elements/chunks/arrow-left-CVh1TeN7.js +1 -0
  45. package/dist/elements/chunks/{artifact-BSuPYFHY.js → artifact-BkYcfIlZ.js} +1 -1
  46. package/dist/elements/chunks/attachments-DwfNlubq.js +1 -0
  47. package/dist/elements/chunks/audio-visualizer-D7lB6mvR.js +1 -0
  48. package/dist/elements/chunks/{badge-TIMiJFKc.js → badge-Q0-Cmwzz.js} +1 -1
  49. package/dist/elements/chunks/{button-B9okqG73.js → button-flUbeufF.js} +1 -1
  50. package/dist/elements/chunks/{card-renderer-CSoTL_e1.js → card-renderer-3Dyl-FpN.js} +1 -1
  51. package/dist/elements/chunks/check-B5kBPKeo.js +1 -0
  52. package/dist/elements/chunks/chevron-down-DZ1GS39h.js +1 -0
  53. package/dist/elements/chunks/chevron-right-CvP7OUd2.js +1 -0
  54. package/dist/elements/chunks/{choice-card-CGMc3kek.js → choice-card-D4QUIOWZ.js} +1 -1
  55. package/dist/elements/chunks/circle-CDf9g6MQ.js +1 -0
  56. package/dist/elements/chunks/circle-check-CA47Nqbz.js +1 -0
  57. package/dist/elements/chunks/{circle-x-mhH7pOK2.js → circle-x-CJ_HVbC8.js} +1 -1
  58. package/dist/elements/chunks/code-block-BdLiTitd.js +1 -0
  59. package/dist/elements/chunks/collapsible-BzbXpPzr.js +1 -0
  60. package/dist/elements/chunks/{composer-CZZmtYOT.js → composer-Byve-n8K.js} +2 -2
  61. package/dist/elements/chunks/{confirm-card-BWjf2-xo.js → confirm-card-B0flE3MN.js} +1 -1
  62. package/dist/elements/chunks/context-VLIL3sJ-.js +1 -0
  63. package/dist/elements/chunks/controllable-DTwTIlwp.js +1 -0
  64. package/dist/elements/chunks/conversation-item-BDztezOG.js +1 -0
  65. package/dist/elements/chunks/copy-Nf-kqxXH.js +1 -0
  66. package/dist/elements/chunks/{create-tween-CUrM6D_o.js → create-tween-c4Z8TDYz.js} +2 -2
  67. package/dist/elements/chunks/default-input-C2iLFq0b.js +1 -0
  68. package/dist/elements/chunks/define-wjHR1MkU.js +1 -0
  69. package/dist/elements/chunks/disclosure-CcNbyLy0.js +1 -0
  70. package/dist/elements/chunks/{download-DnCyWFJE.js → download-C4V7tBdb.js} +1 -1
  71. package/dist/elements/chunks/dropdown-BgWTthUx.js +1 -0
  72. package/dist/elements/chunks/{ellipsis-CVxqfsDZ.js → ellipsis-7gU33mL2.js} +1 -1
  73. package/dist/elements/chunks/embed-D3KewsIJ.js +1 -0
  74. package/dist/elements/chunks/{external-link-DG2sRdQL.js → external-link-CSOEsNlx.js} +1 -1
  75. package/dist/elements/chunks/{file-text-D0J9F6M7.js → file-text-D1G8khle.js} +1 -1
  76. package/dist/elements/chunks/{file-tree-yGWNK0Js.js → file-tree-zvB2i7P9.js} +1 -1
  77. package/dist/elements/chunks/{folder-NV1pi_ud.js → folder-WW2LGLid.js} +1 -1
  78. package/dist/elements/chunks/form-CQirdC4W.js +1 -0
  79. package/dist/elements/chunks/hover-card-CJJkfHTK.js +1 -0
  80. package/dist/elements/chunks/icon-Cfgmf4fa.js +1 -0
  81. package/dist/elements/chunks/{info-C8r5Q6cc.js → info-DX3YMOt6.js} +1 -1
  82. package/dist/elements/chunks/input-BtW9U6Sq.js +1 -0
  83. package/dist/elements/chunks/{kbd-OGJDUT-O.js → kbd-LGXwuT_V.js} +1 -1
  84. package/dist/elements/chunks/{link-BdsfLB7b.js → link-2My69BqT.js} +1 -1
  85. package/dist/elements/chunks/{link-preview-Cf5KOP-i.js → link-preview-OQ9IEq0f.js} +1 -1
  86. package/dist/elements/chunks/{loader-B5QzK_8_.js → loader-iOxc_Tu-.js} +1 -1
  87. package/dist/elements/chunks/{markdown-DbozyYqa.js → markdown-DgBFaGAz.js} +1 -1
  88. package/dist/elements/chunks/{message-DtXKPqiR.js → message-VMZohrXx.js} +1 -1
  89. package/dist/elements/chunks/message-circle-CpXMM-_n.js +1 -0
  90. package/dist/elements/chunks/message-square-DxcWtETQ.js +1 -0
  91. package/dist/elements/chunks/message-tZmV2A3p.js +1 -0
  92. package/dist/elements/chunks/{minimize-2-SegJ_oku.js → minimize-2-DPIUKTrT.js} +1 -1
  93. package/dist/elements/chunks/{model-switcher-D7JrFFHp.js → model-switcher-DsT8tFB0.js} +1 -1
  94. package/dist/elements/chunks/{overlay-CV7z2YuX.js → overlay-DuiwdXjm.js} +1 -1
  95. package/dist/elements/chunks/{paperclip-Bg0ITU3b.js → paperclip-CRZVp4z_.js} +1 -1
  96. package/dist/elements/chunks/{progress-bar-D1_rzt6N.js → progress-bar-DNy66e_E.js} +1 -1
  97. package/dist/elements/chunks/{prompt-suggestion-D5Sm8xF1.js → prompt-suggestion-Bn64Nl7L.js} +1 -1
  98. package/dist/elements/chunks/reasoning-Emn9N4-T.js +1 -0
  99. package/dist/elements/chunks/{resizable-Dpzjlvp4.js → resizable-D181b4fM.js} +1 -1
  100. package/dist/elements/chunks/{rotate-cw-DzVDJOA1.js → rotate-cw-CPWe37D9.js} +1 -1
  101. package/dist/elements/chunks/{scroll-area-93A1bbeG.js → scroll-area-ClZkZxIk.js} +1 -1
  102. package/dist/elements/chunks/scroll-button-DPE-t3x_.js +1 -0
  103. package/dist/elements/chunks/{separator-DH2r_ZSZ.js → separator-CeJHQqLW.js} +1 -1
  104. package/dist/elements/chunks/{settings-BFMOd6yB.js → settings-CqaHgJF9.js} +1 -1
  105. package/dist/elements/chunks/{settings-group-B3VZKIcz.js → settings-group-CjqjLCOn.js} +1 -1
  106. package/dist/elements/chunks/share-CyfnNEqp.js +1 -0
  107. package/dist/elements/chunks/{skeleton-N8BuWYmf.js → skeleton-D8akBnKS.js} +1 -1
  108. package/dist/elements/chunks/slots-DaNjX0rc.js +1 -0
  109. package/dist/elements/chunks/{source-w9V0NnBn.js → source-UWCvmVak.js} +1 -1
  110. package/dist/elements/chunks/{star-DHvACxtm.js → star-DoHFAikQ.js} +1 -1
  111. package/dist/elements/chunks/store-Cjq0qwYN.js +1 -0
  112. package/dist/elements/chunks/{tasks-card-lPxoodlA.js → tasks-card-CmZ5xh6v.js} +1 -1
  113. package/dist/elements/chunks/{text-shimmer-BY_rI3s5.js → text-shimmer-DYn09zrz.js} +1 -1
  114. package/dist/elements/chunks/textarea-skiGHURM.js +1 -0
  115. package/dist/elements/chunks/{thumbs-up-DQe0hvkZ.js → thumbs-up-DX2Ijk3H.js} +1 -1
  116. package/dist/elements/chunks/{toast-store-VUZZBhzH.js → toast-store-CFnQpThX.js} +1 -1
  117. package/dist/elements/chunks/{tool-C1YtxwPu.js → tool-DKQ2D1DP.js} +1 -1
  118. package/dist/elements/chunks/{tooltip-BqwnFWhn.js → tooltip-B0G99y8w.js} +1 -1
  119. package/dist/elements/chunks/{triangle-alert-B6or7F5u.js → triangle-alert-F9cyUEyy.js} +1 -1
  120. package/dist/elements/chunks/{use-card-resolution-DJg32jGH.js → use-card-resolution-DoA2f_EU.js} +1 -1
  121. package/dist/elements/chunks/{variant-aurora-QXTZPyST.js → variant-aurora-qt6Zct8M.js} +2 -2
  122. package/dist/elements/chunks/variant-custom-tJp22_BQ.js +1 -0
  123. package/dist/{variant-wave-BwzrHD1s.js → elements/chunks/variant-wave-CaQ5ti39.js} +2 -2
  124. package/dist/elements/chunks/x-B6UnOiLw.js +1 -0
  125. package/dist/elements/coachmark.js +1 -1
  126. package/dist/elements/code-block.js +1 -1
  127. package/dist/elements/command.js +1 -1
  128. package/dist/elements/compare.js +1 -1
  129. package/dist/elements/composer.js +1 -1
  130. package/dist/elements/confirm-card.js +1 -1
  131. package/dist/elements/context-meter.js +1 -1
  132. package/dist/elements/conversation-item.d.ts +1 -0
  133. package/dist/elements/conversation-item.js +1 -0
  134. package/dist/elements/conversation-list.js +1 -1
  135. package/dist/elements/default-input.d.ts +3 -3
  136. package/dist/elements/define.d.ts +27 -0
  137. package/dist/elements/diagnostic-events.d.ts +74 -0
  138. package/dist/elements/dialog.js +1 -1
  139. package/dist/elements/dock.d.ts +1 -0
  140. package/dist/elements/dock.js +149 -0
  141. package/dist/elements/dropdown.d.ts +1 -0
  142. package/dist/elements/dropdown.js +1 -0
  143. package/dist/elements/editable-label.js +1 -1
  144. package/dist/elements/element-diagnostics.d.ts +81 -0
  145. package/dist/elements/embed.js +1 -1
  146. package/dist/elements/empty.js +1 -1
  147. package/dist/elements/feedback-bar.js +1 -1
  148. package/dist/elements/file-tree.js +1 -1
  149. package/dist/elements/file-upload.js +1 -1
  150. package/dist/elements/form.js +1 -1
  151. package/dist/elements/hover-card.js +1 -1
  152. package/dist/elements/icon.js +1 -1
  153. package/dist/elements/image.js +1 -1
  154. package/dist/elements/input.js +1 -1
  155. package/dist/elements/kbd.js +1 -1
  156. package/dist/elements/link-preview.js +1 -1
  157. package/dist/elements/loader.js +1 -1
  158. package/dist/elements/markdown.js +1 -1
  159. package/dist/elements/menu.js +1 -1
  160. package/dist/elements/message-skills.js +1 -1
  161. package/dist/elements/message.js +1 -1
  162. package/dist/elements/model-switcher.js +1 -1
  163. package/dist/elements/nav.js +1 -1
  164. package/dist/elements/notice.js +1 -1
  165. package/dist/elements/pane-group.js +1 -1
  166. package/dist/elements/pane.js +1 -1
  167. package/dist/elements/popover.js +1 -1
  168. package/dist/elements/progress-bar.js +1 -1
  169. package/dist/elements/prompt-dock.js +1 -1
  170. package/dist/elements/prompt-input.js +1 -1
  171. package/dist/elements/prompt-suggestions.js +1 -1
  172. package/dist/elements/reasoning.js +1 -1
  173. package/dist/elements/register.d.ts +2 -0
  174. package/dist/elements/remote.js +1 -1
  175. package/dist/elements/resizable.js +1 -1
  176. package/dist/elements/response-stream.js +3 -3
  177. package/dist/elements/screen.js +1 -1
  178. package/dist/elements/scroll-area.js +1 -1
  179. package/dist/elements/scroll-button.js +1 -1
  180. package/dist/elements/search.js +1 -1
  181. package/dist/elements/segmented.js +1 -1
  182. package/dist/elements/separator.js +1 -1
  183. package/dist/elements/setting-item.js +1 -1
  184. package/dist/elements/settings-group.js +1 -1
  185. package/dist/elements/skeleton.js +1 -1
  186. package/dist/elements/slots.d.ts +35 -3
  187. package/dist/elements/source.js +1 -1
  188. package/dist/elements/status.js +1 -1
  189. package/dist/elements/switch.js +1 -1
  190. package/dist/elements/tabs.js +1 -1
  191. package/dist/elements/tasks.js +1 -1
  192. package/dist/elements/text-shimmer.js +1 -1
  193. package/dist/elements/thinking-bar.js +1 -1
  194. package/dist/elements/thread.js +1 -1
  195. package/dist/elements/toast.js +1 -1
  196. package/dist/elements/tool.js +1 -1
  197. package/dist/elements/tooltip.js +1 -1
  198. package/dist/elements/voice-input.js +1 -1
  199. package/dist/elements/voice-output.js +1 -1
  200. package/dist/elements.d.ts +232 -148
  201. package/dist/index.d.ts +2 -0
  202. package/dist/index.js +5456 -4931
  203. package/dist/index.server.js +4142 -3669
  204. package/dist/kai-provider.es.js +40 -40
  205. package/dist/kai.es.js +1 -1
  206. package/dist/llms/llms-full.txt +184 -69
  207. package/dist/llms/llms.txt +3 -3
  208. package/dist/mcp.es.js +2669 -546
  209. package/dist/primitives/use-resize-observer.d.ts +23 -0
  210. package/dist/primitives/use-speech-recognition.d.ts +8 -0
  211. package/dist/primitives/use-text-stream.d.ts +5 -0
  212. package/dist/react/index.d.ts +115 -266
  213. package/dist/react.js +247 -221
  214. package/dist/register-impl-DpE7icIb.js +293 -0
  215. package/dist/schemas/index.d.ts +1 -1
  216. package/dist/schemas/tool-defs.d.ts +35 -0
  217. package/dist/schemas.js +403 -310
  218. package/dist/{solid-BMuDmFo_.js → solid-BtdqNZI7.js} +8435 -7394
  219. package/dist/{solid-CGYNdLRR.js → solid-CnavwBye.js} +5987 -5035
  220. package/dist/solid.d.ts +5 -0
  221. package/dist/solid.js +210 -203
  222. package/dist/solid.server.js +210 -203
  223. package/dist/state/index.d.ts +4 -0
  224. package/dist/state/persistence.d.ts +51 -0
  225. package/dist/state/stream.d.ts +50 -0
  226. package/dist/state/threads.d.ts +71 -0
  227. package/dist/state.js +269 -169
  228. package/dist/types.d.ts +4 -2
  229. package/dist/ui/dock.d.ts +109 -0
  230. package/dist/ui/hover-card.d.ts +44 -0
  231. package/dist/{variant-aurora-DwSOfraQ.js → variant-aurora-B8II3-I1.js} +27 -27
  232. package/dist/{variant-aurora-wKvAQ5wp.js → variant-aurora-CMNWOSJR.js} +28 -28
  233. package/dist/{variant-aurora-XEkPT0_z.js → variant-aurora-CcuDMWwQ.js} +2 -2
  234. package/dist/{variant-custom-eFIg2XWQ.js → variant-custom-BdvYC7af.js} +40 -40
  235. package/dist/{variant-custom-BhS9wIpU.js → variant-custom-C714mqKl.js} +65 -65
  236. package/dist/variant-custom-L16JLLZy.js +1 -0
  237. package/dist/{elements/chunks/variant-wave-DDCwhLas.js → variant-wave-2S4La2Ka.js} +2 -2
  238. package/dist/{variant-wave-CbVsmgwT.js → variant-wave-D7ruiA1W.js} +25 -25
  239. package/dist/{variant-wave-CUWGx9Bn.js → variant-wave-ecwykeyL.js} +21 -21
  240. package/dist/wire/chunk.d.ts +47 -0
  241. package/dist/wire/diagnostics.d.ts +575 -0
  242. package/dist/wire/encode-probe.d.ts +70 -0
  243. package/dist/wire/encode.d.ts +24 -0
  244. package/dist/wire/index.d.ts +2 -0
  245. package/dist/wire/sse.d.ts +10 -2
  246. package/dist/wire.js +917 -480
  247. package/frameworks/react/index.tsx +132 -93
  248. package/llms-full.txt +184 -69
  249. package/llms.txt +3 -3
  250. package/package.json +26 -6
  251. package/src/agent-tooling/archetypes.ts +41 -9
  252. package/src/agent-tooling/catalog/README.md +676 -0
  253. package/src/agent-tooling/catalog/catalog-types.ts +231 -0
  254. package/src/agent-tooling/catalog/fabrications.ts +96 -0
  255. package/src/agent-tooling/catalog/invariants.ts +284 -0
  256. package/src/agent-tooling/catalog/labs-titles.ts +114 -0
  257. package/src/agent-tooling/catalog/scenarios.ts +87 -0
  258. package/src/agent-tooling/catalog/surfaces.ts +275 -0
  259. package/src/agent-tooling/integrations/anthropic.ts +7 -1
  260. package/src/agent-tooling/integrations/cloudflare.ts +43 -2
  261. package/src/agent-tooling/integrations/langgraph.ts +7 -1
  262. package/src/agent-tooling/integrations/mastra.ts +7 -1
  263. package/src/agent-tooling/integrations/mock.ts +92 -17
  264. package/src/agent-tooling/integrations/ollama.ts +7 -1
  265. package/src/agent-tooling/integrations/openai.ts +7 -1
  266. package/src/agent-tooling/integrations/openrouter.ts +7 -1
  267. package/src/agent-tooling/integrations/pi.ts +56 -1
  268. package/src/agent-tooling/integrations/vercel-ai-sdk.ts +7 -1
  269. package/src/agent-tooling/mcp/css-raw.d.ts +12 -0
  270. package/src/agent-tooling/mcp/manifest.ts +100 -1
  271. package/src/agent-tooling/mcp/server.ts +61 -5
  272. package/src/agent-tooling/mcp/tools/reference.ts +440 -4
  273. package/src/agent-tooling/mcp/tools/scaffold.ts +1834 -307
  274. package/src/agent-tooling/mcp/tools/theme.ts +146 -30
  275. package/src/agent-tooling/mcp/validate-args.ts +141 -0
  276. package/src/agent-tooling/registry.ts +19 -7
  277. package/src/agent-tooling/route-emit.ts +26 -2
  278. package/src/components/attachment-types.ts +47 -1
  279. package/src/components/attachments.tsx +169 -22
  280. package/src/components/audio-visualizer/fit-scale.ts +112 -0
  281. package/src/components/audio-visualizer/index.tsx +80 -3
  282. package/src/components/audio-visualizer/variant-aurora.tsx +10 -4
  283. package/src/components/audio-visualizer/variant-bar.tsx +38 -6
  284. package/src/components/audio-visualizer/variant-custom.tsx +8 -2
  285. package/src/components/audio-visualizer/variant-grid.tsx +16 -11
  286. package/src/components/audio-visualizer/variant-radial.tsx +15 -10
  287. package/src/components/audio-visualizer/variant-wave.tsx +7 -2
  288. package/src/components/chat-container.tsx +4 -1
  289. package/src/components/chat-thread.tsx +36 -7
  290. package/src/components/code-block.tsx +79 -3
  291. package/src/components/composer.tsx +8 -1
  292. package/src/components/conversation-item.tsx +114 -4
  293. package/src/components/conversation-list.tsx +212 -12
  294. package/src/components/embed.tsx +4 -0
  295. package/src/components/form.tsx +41 -14
  296. package/src/components/message.tsx +75 -5
  297. package/src/components/response-stream.tsx +13 -7
  298. package/src/components/screen.tsx +5 -0
  299. package/src/components/scroll-button.tsx +7 -0
  300. package/src/components/toast.tsx +11 -5
  301. package/src/components/voice-input.tsx +35 -3
  302. package/src/components/voice-output.tsx +46 -6
  303. package/src/components/workspace-shell.tsx +285 -0
  304. package/src/diagnostics/hook.ts +352 -0
  305. package/src/diagnostics/index.ts +82 -0
  306. package/src/diagnostics/report-request.ts +296 -0
  307. package/src/elements/attachments.tsx +6 -7
  308. package/src/elements/audio-visualizer.tsx +48 -4
  309. package/src/elements/chat-workspace.tsx +159 -287
  310. package/src/elements/chat.tsx +12 -9
  311. package/src/elements/code-block.tsx +19 -1
  312. package/src/elements/command.tsx +4 -1
  313. package/src/elements/compiled.css +1 -1
  314. package/src/elements/conversation-item.tsx +80 -0
  315. package/src/elements/conversation-list.tsx +60 -11
  316. package/src/elements/default-input.tsx +5 -5
  317. package/src/elements/define.tsx +168 -8
  318. package/src/elements/diagnostic-events.ts +114 -0
  319. package/src/elements/dialog.tsx +47 -0
  320. package/src/elements/disclosure.ts +34 -12
  321. package/src/elements/dock.tsx +204 -0
  322. package/src/elements/dropdown.tsx +123 -0
  323. package/src/elements/element-diagnostics.ts +392 -0
  324. package/src/elements/element-manifest.json +12 -0
  325. package/src/elements/element-meta.json +672 -439
  326. package/src/elements/element-nonscalar.json +170 -0
  327. package/src/elements/element-types.d.ts +232 -148
  328. package/src/elements/menu.tsx +13 -0
  329. package/src/elements/prompt-dock.tsx +2 -1
  330. package/src/elements/prompt-input.tsx +8 -8
  331. package/src/elements/register-impl.ts +46 -0
  332. package/src/elements/register.ts +28 -0
  333. package/src/elements/resizable.tsx +52 -25
  334. package/src/elements/scroll-button.tsx +5 -0
  335. package/src/elements/slots.ts +107 -12
  336. package/src/elements/styles.css +30 -6
  337. package/src/elements/thinking-bar.tsx +16 -7
  338. package/src/elements/toast.tsx +3 -0
  339. package/src/elements/tool.tsx +26 -5
  340. package/src/elements/voice-input.tsx +11 -2
  341. package/src/elements/voice-output.tsx +16 -3
  342. package/src/index.ts +2 -0
  343. package/src/primitives/use-resize-observer.ts +33 -0
  344. package/src/primitives/use-speech-recognition.ts +12 -1
  345. package/src/primitives/use-stick-to-bottom.ts +34 -2
  346. package/src/primitives/use-text-stream.ts +33 -2
  347. package/src/remote/provider-runtime.ts +6 -3
  348. package/src/schemas/index.ts +1 -0
  349. package/src/schemas/tool-defs.ts +297 -6
  350. package/src/solid.ts +5 -0
  351. package/src/state/index.ts +12 -0
  352. package/src/state/persistence.ts +180 -0
  353. package/src/state/stream.ts +71 -4
  354. package/src/state/threads.ts +142 -0
  355. package/src/types.ts +4 -2
  356. package/src/ui/dialog.tsx +6 -0
  357. package/src/ui/dock.tsx +445 -0
  358. package/src/ui/dropdown.tsx +67 -23
  359. package/src/ui/hover-card.tsx +156 -6
  360. package/src/ui/input.tsx +29 -10
  361. package/src/ui/resizable.tsx +11 -0
  362. package/src/wire/chunk.ts +47 -0
  363. package/src/wire/consume.ts +185 -26
  364. package/src/wire/diagnostics.ts +727 -0
  365. package/src/wire/encode-probe.ts +214 -0
  366. package/src/wire/encode.ts +267 -14
  367. package/src/wire/formats/anthropic.ts +8 -1
  368. package/src/wire/formats/openai.ts +5 -0
  369. package/src/wire/index.ts +22 -0
  370. package/src/wire/read.ts +250 -6
  371. package/src/wire/sse.ts +16 -3
  372. package/dist/elements/chunks/action-icons-DW9muWrY.js +0 -1
  373. package/dist/elements/chunks/arrow-left-iJVnQmxA.js +0 -1
  374. package/dist/elements/chunks/attachments-CL6TaqIb.js +0 -1
  375. package/dist/elements/chunks/audio-visualizer-BuUqQmaO.js +0 -1
  376. package/dist/elements/chunks/chat-thread-DxoKaStk.js +0 -1
  377. package/dist/elements/chunks/check-MdLzbxrm.js +0 -1
  378. package/dist/elements/chunks/chevron-down-MK7IzDqe.js +0 -1
  379. package/dist/elements/chunks/chevron-right-C5jXhmtV.js +0 -1
  380. package/dist/elements/chunks/circle-BG7VkPep.js +0 -1
  381. package/dist/elements/chunks/circle-check-GqvO2UBs.js +0 -1
  382. package/dist/elements/chunks/code-block-ClhQO9RW.js +0 -1
  383. package/dist/elements/chunks/collapsible-DBcBkFPh.js +0 -1
  384. package/dist/elements/chunks/context-hKjNqiyQ.js +0 -1
  385. package/dist/elements/chunks/conversation-list-CsGJjSKG.js +0 -1
  386. package/dist/elements/chunks/default-input-B1Mem5wu.js +0 -1
  387. package/dist/elements/chunks/define-B_tXMYRm.js +0 -1
  388. package/dist/elements/chunks/disclosure-DAoYOKew.js +0 -1
  389. package/dist/elements/chunks/dropdown-CmNna5lT.js +0 -1
  390. package/dist/elements/chunks/embed-CjAD2jSi.js +0 -1
  391. package/dist/elements/chunks/form-Cp8Y00Wn.js +0 -1
  392. package/dist/elements/chunks/hover-card-6KtXpLwT.js +0 -1
  393. package/dist/elements/chunks/icon-97R8SR2p.js +0 -1
  394. package/dist/elements/chunks/input-DrseEjhp.js +0 -1
  395. package/dist/elements/chunks/message-CE4k-qaj.js +0 -1
  396. package/dist/elements/chunks/message-square-C9ovmtOo.js +0 -1
  397. package/dist/elements/chunks/reasoning-BrxQfpfI.js +0 -1
  398. package/dist/elements/chunks/scroll-button-CrTo7wm4.js +0 -1
  399. package/dist/elements/chunks/share-DgNbkJKY.js +0 -1
  400. package/dist/elements/chunks/slots-CIw9RlAe.js +0 -1
  401. package/dist/elements/chunks/store-HIPGhNz9.js +0 -1
  402. package/dist/elements/chunks/textarea-DPfuhswM.js +0 -1
  403. package/dist/elements/chunks/variant-custom-D5ZlmziF.js +0 -1
  404. package/dist/elements/chunks/video-Bb86fVYI.js +0 -1
  405. package/dist/elements/chunks/x-BOhjBeOd.js +0 -1
  406. package/dist/primitives/card-validate-generator.testlib.d.ts +0 -20
  407. package/dist/register-impl-DGmGzrEM.js +0 -145
  408. package/dist/variant-custom-MkTNTycd.js +0 -1
  409. package/src/primitives/card-validate-generator.testlib.ts +0 -38
@@ -0,0 +1,81 @@
1
+ import { KaiDiagnosticEvent } from '../wire/diagnostics.js';
2
+ export interface KaiDevtoolsHook {
3
+ /** The seam. A panel newer than the kit it attached to has to be able to say
4
+ * so, which is the whole reason this is on the hook rather than inferred. */
5
+ version: 1;
6
+ /** True iff the signal was set AT INSTALL. Not reactive: the capture model
7
+ * turns on one branch or the other exactly once, and a panel reading `false`
8
+ * here is reading "this session has no history", which stays true. */
9
+ recording: boolean;
10
+ /** True iff the PAYLOAD signal was set at install -- a separate switch from
11
+ * `recording`, read at the same moment and just as un-reactive.
12
+ *
13
+ * `recording` without this is the default and the safe one: the shape of a
14
+ * conversation, and none of its content. A panel renders the difference so a
15
+ * developer knows which one they are looking at. */
16
+ payload: boolean;
17
+ /** The buffered history, and CLEARS it. `[]` on the dormant branch, always.
18
+ *
19
+ * Kept for contract compatibility, but `attach` is what a panel should use:
20
+ * pairing this with `subscribe` cannot be done without a race (see there). */
21
+ drain(): KaiDiagnosticEvent[];
22
+ /** Live events from now on. Works on both branches -- subscribing is what
23
+ * re-arms emission, so a panel can attach mid-session and see events from
24
+ * that moment forward, with no history.
25
+ *
26
+ * SUSPENDS BUFFER RETENTION while it is active, exactly as `attach` does:
27
+ * any listener means the kit stops retaining and the listener owns the data.
28
+ * Deliberate, and worth knowing before you add a passive logger -- one that
29
+ * subscribes and never drains stops history accumulating for a panel that
30
+ * attaches later, which will then see only the gap forward. */
31
+ subscribe(fn: (e: KaiDiagnosticEvent) => void): () => void;
32
+ /**
33
+ * History and live delivery in ONE synchronous step. Returns the unsubscribe.
34
+ *
35
+ * THIS IS THE ONE A PANEL WANTS, and the reason is that the obvious pairing
36
+ * of the two calls above is racy in BOTH orders: `drain()` then `subscribe()`
37
+ * silently loses an event that lands between them, while `subscribe()` then
38
+ * `drain()` delivers that event twice. Neither order is fixable from outside,
39
+ * because the gap is between two calls the caller does not control.
40
+ *
41
+ * Here the buffered events are handed over, the buffer cleared and the
42
+ * subscription installed without an await or a task boundary anywhere
43
+ * between, so there is no instant at which an event can arrive and find
44
+ * itself either unowned or owned twice.
45
+ *
46
+ * Additive, so `version` stays 1: the forward-compat rules allow new members,
47
+ * and an older panel that never calls this keeps working unchanged.
48
+ */
49
+ attach(fn: (e: KaiDiagnosticEvent) => void): () => void;
50
+ /** Set the signal and reload, so the next load records from the first event.
51
+ * Reload is the primary path because it is the only one that yields HISTORY,
52
+ * and the answer is usually near the beginning of a session. */
53
+ activate(): void;
54
+ }
55
+ declare global {
56
+ interface Window {
57
+ /** The app's own opt-in, set before the kit loads. A DIFFERENT name from
58
+ * the hook: this is the app talking to us.
59
+ *
60
+ * `true` activates with metadata only. `'payload'` and `{ payload: true }`
61
+ * activate AND capture content -- an app that reaches for the object form
62
+ * is explicitly asking for both, and having it activate nothing would be a
63
+ * footgun with no upside. `{ payload: false }` activates only. */
64
+ __KAI_DEVTOOLS__?: boolean | 'payload' | {
65
+ payload?: boolean;
66
+ };
67
+ __KAI_DEVTOOLS_HOOK__?: KaiDevtoolsHook;
68
+ }
69
+ }
70
+ /**
71
+ * Install the hook. Idempotent, SSR-safe, and reads the signal ONCE.
72
+ *
73
+ * Returns the hook, or `undefined` where there is no window -- which is the
74
+ * server, where there is no signal to read and nothing to record.
75
+ *
76
+ * Importing this module installs NOTHING. The call site decides, and in this kit
77
+ * that call site is `elements/register-impl.ts`, which is already browser-only.
78
+ * An app that imports the Solid components directly never runs that file and
79
+ * must call this itself; see the module docblock in `./index.ts`.
80
+ */
81
+ export declare function installKaiDevtoolsHook(): KaiDevtoolsHook | undefined;
@@ -0,0 +1,7 @@
1
+ export { installKaiDevtoolsHook } from './hook.js';
2
+ export type { KaiDevtoolsHook } from './hook.js';
3
+ export { reportRequest } from './report-request.js';
4
+ export type { ReportRequestOptions } from './report-request.js';
5
+ export { subscribeWireDiagnostics } from '../wire/diagnostics.js';
6
+ export type { AppRequestEvent, EncodeAttachmentReport, EncodeDroppedEvent, EncodeRequestEvent, KaiDiagnosticEvent, WireCloseEvent, WireDiagnosticBase, WireDiagnosticEvent, WireFailedEvent, WireFrameEvent, WireInterruptedEvent, WireOpenEvent, WirePartEvent, } from '../wire/diagnostics.js';
7
+ export type { ElementDiagnosticBase, ElementDiagnosticEvent, ElementRegistryEvent, ElementViolationEvent, ElementViolationKind, } from '../elements/diagnostic-events.js';
@@ -0,0 +1,61 @@
1
+ export interface ReportRequestOptions {
2
+ /**
3
+ * The app's own id for the logical turn, so this request and the read that
4
+ * answered it sit together. Same field and meaning as `ConsumeOptions.traceId`
5
+ * and the encode options.
6
+ *
7
+ * ★ CORRELATION IS ENTIRELY YOURS, AND NOTHING WARNS. Omit it and the event
8
+ * is still emitted, still complete, and completely unattached: a panel shows
9
+ * a request that belongs to no turn, beside a response that belongs to no
10
+ * request, and nothing in the kit reports that as a problem because it is not
11
+ * one -- a request legitimately may be followed by no stream, by several, or
12
+ * by one from a different turn.
13
+ *
14
+ * There is NO timing heuristic pairing a request with "the next stream that
15
+ * opens", and that omission is deliberate: such a heuristic is right often
16
+ * enough to be trusted and wrong exactly when a session is tangled enough for
17
+ * someone to have opened the panel. Pass the same id to `reportRequest` and
18
+ * to the reader, and the halves join up; pass nothing and they do not.
19
+ */
20
+ traceId?: string;
21
+ /** The app's name for this call inside its trace (`'planner'`, `'retry-2'`). */
22
+ label?: string;
23
+ /** Where it was sent. Reported as origin and pathname only; see below. */
24
+ url?: string;
25
+ }
26
+ /**
27
+ * Disclose the request body the app is about to send.
28
+ *
29
+ * Call it beside your own `fetch`, with the same object you pass as the body:
30
+ *
31
+ * ```ts
32
+ * const body = { model, messages, tools };
33
+ * reportRequest(body, { traceId: 'turn-42', url: '/api/chat' });
34
+ * const res = await fetch('/api/chat', {
35
+ * method: 'POST',
36
+ * body: JSON.stringify(body),
37
+ * });
38
+ * await readOpenAIStream(res, sink, { traceId: 'turn-42' });
39
+ * ```
40
+ *
41
+ * WHAT TRAVELS BY DEFAULT: counts, role names, the tools array's length, the
42
+ * requested model, and the origin+path it went to. WHAT DOES NOT: the messages,
43
+ * the system prompt's text, the tool definitions, the query string. The body
44
+ * itself rides only under the payload switch, exactly like every other
45
+ * content-bearing value in this stream.
46
+ *
47
+ * FREE WHEN NOBODY IS LISTENING. With no subscriber this returns before reading
48
+ * a single property of `body`, so passing a `Proxy` with expensive getters, or a
49
+ * body you would rather not touch, costs one symbol read.
50
+ *
51
+ * IT NEVER THROWS. Whatever `body` is -- a string, `FormData`, a
52
+ * `ReadableStream`, a circular object, a `Proxy` that throws on every access --
53
+ * this reports what it can and stays quiet about the rest. A diagnostic that
54
+ * took down a request would be worse than no diagnostic.
55
+ *
56
+ * NO PAIRING IS INVENTED. Without a `traceId` the event carries no correlation
57
+ * key at all, rather than being attached to whichever stream opens next: a
58
+ * request may be followed by no stream, by several, or by one belonging to a
59
+ * different turn.
60
+ */
61
+ export declare function reportRequest(body: unknown, opts?: ReportRequestOptions): void;
@@ -0,0 +1,5 @@
1
+ // GENERATED by scripts/emit-subpath-dts.mjs — do not edit.
2
+ // Sibling declarations for dist/diagnostics.js, so that RELATIVE imports
3
+ // of this bundle (which bypass package.json "exports") still resolve to types.
4
+ // Without this, tsc resolves the path to the .js and reports TS7016.
5
+ export * from './diagnostics/index.js';
@@ -0,0 +1,209 @@
1
+ const f = Symbol.for("kai.wire.diagnostics.v1");
2
+ function y() {
3
+ return globalThis[f];
4
+ }
5
+ function g() {
6
+ const t = globalThis;
7
+ return t[f] ?? (t[f] = { subs: [], seq: 0, payload: !1 });
8
+ }
9
+ function _(t) {
10
+ const e = g().subs;
11
+ e.push(t);
12
+ let n = !0;
13
+ return () => {
14
+ if (!n) return;
15
+ n = !1;
16
+ const r = e.indexOf(t);
17
+ r !== -1 && e.splice(r, 1);
18
+ };
19
+ }
20
+ function m() {
21
+ const t = y();
22
+ return t !== void 0 && t.subs.length > 0;
23
+ }
24
+ function h() {
25
+ const t = y();
26
+ return t !== void 0 && t.payload;
27
+ }
28
+ function L(t) {
29
+ g().payload = t;
30
+ }
31
+ function D(t) {
32
+ return h() ? { payload: t() } : {};
33
+ }
34
+ function I(t) {
35
+ const e = y();
36
+ if (e)
37
+ for (const n of [...e.subs])
38
+ try {
39
+ n(t);
40
+ } catch {
41
+ }
42
+ }
43
+ const u = "kai-devtools", p = "kai-devtools-payload";
44
+ function O(t) {
45
+ try {
46
+ return !!window.localStorage.getItem(t);
47
+ } catch {
48
+ return !1;
49
+ }
50
+ }
51
+ function K() {
52
+ const t = window.__KAI_DEVTOOLS__;
53
+ return t === "payload" ? !0 : typeof t == "object" && t !== null && t.payload === !0;
54
+ }
55
+ function k() {
56
+ return O(p) || K();
57
+ }
58
+ function E() {
59
+ if (O(u) || window.__KAI_DEVTOOLS__ === !0 || window.__KAI_DEVTOOLS__ === "payload" || typeof window.__KAI_DEVTOOLS__ == "object" && window.__KAI_DEVTOOLS__ !== null) return !0;
60
+ try {
61
+ return new URLSearchParams(window.location.search).get(u) === "1";
62
+ } catch {
63
+ return !1;
64
+ }
65
+ }
66
+ function T(t, e) {
67
+ let n, r = 0;
68
+ t && (n = [], _((o) => {
69
+ r > 0 || n.push(o);
70
+ }));
71
+ const i = (o) => {
72
+ r++;
73
+ const a = _(o);
74
+ let c = !0;
75
+ return () => {
76
+ c && (c = !1, r--, a());
77
+ };
78
+ };
79
+ return {
80
+ version: 1,
81
+ recording: t,
82
+ payload: e,
83
+ drain() {
84
+ if (!n) return [];
85
+ const o = n;
86
+ return n = [], o;
87
+ },
88
+ subscribe(o) {
89
+ return i(o);
90
+ },
91
+ attach(o) {
92
+ const a = n;
93
+ n && (n = []);
94
+ let c = !1;
95
+ const d = [], b = i((s) => {
96
+ c ? o(s) : d.push(s);
97
+ }), v = (s) => {
98
+ try {
99
+ o(s);
100
+ } catch {
101
+ }
102
+ };
103
+ if (a) for (const s of a) v(s);
104
+ for (let s = 0; s < d.length; s++) v(d[s]);
105
+ return c = !0, b;
106
+ },
107
+ activate() {
108
+ try {
109
+ window.localStorage.setItem(u, "1");
110
+ } catch {
111
+ console.warn(
112
+ `[kai-devtools] could not write localStorage['${u}'], so activation cannot survive a reload. Add ?${u}=1 to the URL instead, or set window.__KAI_DEVTOOLS__ = true before the kit loads.`
113
+ );
114
+ return;
115
+ }
116
+ window.location.reload();
117
+ }
118
+ };
119
+ }
120
+ function R() {
121
+ if (typeof window > "u") return;
122
+ const t = window.__KAI_DEVTOOLS_HOOK__;
123
+ if (t) return t;
124
+ const e = E(), n = k();
125
+ n && L(!0), n && !e && console.warn(
126
+ `[kai-devtools] localStorage['${p}'] is set, but nothing activated the recorder, so no events are being captured at all. Set localStorage['${u}'] = '1' (or add ?${u}=1) as well.`
127
+ );
128
+ const r = T(e, n);
129
+ return window.__KAI_DEVTOOLS_HOOK__ = r, r;
130
+ }
131
+ let l;
132
+ function S(t, e) {
133
+ if (!(t === null || typeof t != "object" && typeof t != "function"))
134
+ try {
135
+ return t[e];
136
+ } catch {
137
+ return;
138
+ }
139
+ }
140
+ function A(t, e) {
141
+ const n = S(t, e);
142
+ return typeof n == "string" && n !== "" ? n : void 0;
143
+ }
144
+ function w(t, e) {
145
+ const n = S(t, e);
146
+ return Array.isArray(n) ? n : void 0;
147
+ }
148
+ function V(t) {
149
+ const e = {};
150
+ let n = 0;
151
+ for (const r of t) {
152
+ const i = A(r, "role");
153
+ i !== void 0 && (e[i] = (e[i] ?? 0) + 1, i === "system" && n++);
154
+ }
155
+ return { byRole: e, system: n };
156
+ }
157
+ function j(t) {
158
+ try {
159
+ const e = new URL(t);
160
+ return { url: `${e.origin}${e.pathname}`, hasQuery: e.search !== "" };
161
+ } catch {
162
+ return {};
163
+ }
164
+ }
165
+ function B(t) {
166
+ try {
167
+ if (Array.isArray(t) || typeof t.toJSON == "function") return !0;
168
+ const e = Object.getPrototypeOf(t);
169
+ return e === Object.prototype || e === null;
170
+ } catch {
171
+ return !1;
172
+ }
173
+ }
174
+ function P(t) {
175
+ try {
176
+ if (typeof t == "string")
177
+ return l ?? (l = new TextEncoder()), l.encode(t).length;
178
+ if (typeof t != "object" || t === null) return;
179
+ if (B(t)) {
180
+ const e = JSON.stringify(t);
181
+ return typeof e != "string" ? void 0 : (l ?? (l = new TextEncoder()), l.encode(e).length);
182
+ }
183
+ return typeof Blob < "u" && t instanceof Blob ? t.size : typeof ArrayBuffer < "u" && (t instanceof ArrayBuffer || ArrayBuffer.isView(t)) ? t.byteLength : void 0;
184
+ } catch {
185
+ return;
186
+ }
187
+ }
188
+ function $(t, e = {}) {
189
+ if (!m()) return;
190
+ const n = w(t, "messages"), r = n ? V(n) : void 0, i = w(t, "tools"), o = A(t, "model"), a = h() ? P(t) : void 0, c = {
191
+ type: "app.request",
192
+ t: Date.now(),
193
+ ...e.traceId !== void 0 ? { traceId: e.traceId } : {},
194
+ ...e.label !== void 0 ? { label: e.label } : {},
195
+ ...e.url !== void 0 ? j(e.url) : {},
196
+ ...n !== void 0 ? { messages: n.length } : {},
197
+ ...r !== void 0 ? { byRole: r.byRole, systemMessages: r.system } : {},
198
+ ...i !== void 0 ? { tools: i.length } : {},
199
+ ...o !== void 0 ? { model: o } : {},
200
+ ...a !== void 0 ? { bytes: a } : {},
201
+ ...D(() => ({ body: t }))
202
+ };
203
+ I(c);
204
+ }
205
+ export {
206
+ R as installKaiDevtoolsHook,
207
+ $ as reportRequest,
208
+ _ as subscribeWireDiagnostics
209
+ };
@@ -1 +1 @@
1
- import{c as r,m as S,s as q,i,a as f,b as d,S as v,d as m,t as b,e as B,f as I}from"./chunks/define-B_tXMYRm.js";import{c as u}from"./chunks/cn-CU7UAWzk.js";import{I as N}from"./chunks/Icon-b5A8hlHs.js";import{e as j}from"./chunks/ellipsis-CVxqfsDZ.js";var D=[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]],E=l=>r(N,S(l,{name:"Bell",iconNode:D})),H=E,L=b("<span aria-hidden=true>"),P=b("<span>"),W=b('<span class="inline-flex items-center gap-1 rounded-full bg-tool-amber/15 px-2 py-0.5 text-[11px] font-medium text-tool-amber">Needs you'),O=b("<button type=button part=menu aria-label=More>"),R=b('<div><span class="inline-flex shrink-0 items-center gap-1.5"role=status><span class="relative inline-flex"><span aria-hidden=true part=status></span></span></span><button type=button><span class="block truncate text-sm font-medium leading-tight text-foreground"></span></button><span class="flex shrink-0 items-center gap-2">');const M={working:"bg-tool-blue",idle:"bg-muted-foreground",done:"bg-tool-green",error:"bg-tool-red",blocked:"bg-tool-amber"},T={working:"text-tool-blue",idle:"text-muted-foreground",done:"text-tool-green",error:"text-tool-red",blocked:"text-tool-amber"},X={working:"Working",idle:"Idle",done:"Done",error:"Error",blocked:"Blocked"};function _(l){const[t]=q(l,["name","status","needsAttention","active","onActivate","onClick","onMenu","class","leading","subtitle","lastLine"]),o=()=>t.status.tone,z=()=>{var n,a;(n=t.onActivate)==null||n.call(t),(a=t.onClick)==null||a.call(t)};return(()=>{var n=R(),a=n.firstChild,p=a.firstChild,h=p.firstChild,c=a.nextSibling,$=c.firstChild,x=c.nextSibling;return i(p,r(v,{get when(){return t.status.pulse},get children(){var e=L();return f(()=>d(e,u("absolute inline-flex h-full w-full animate-ping rounded-full opacity-75 motion-reduce:hidden",M[o()]))),e}}),h),i(a,r(v,{get when(){return t.status.label},get children(){var e=P();return i(e,()=>t.status.label),f(()=>d(e,u("text-[11px] font-medium leading-none",T[o()]))),e}}),null),c.$$click=z,i($,()=>t.name),i(x,r(v,{get when(){return t.needsAttention},get children(){var e=W(),s=e.firstChild;return i(e,r(H,{class:"size-3","aria-hidden":"true"}),s),e}}),null),i(x,r(v,{get when(){return t.onMenu},get children(){var e=O();return e.$$click=s=>{var g;s.stopPropagation(),(g=t.onMenu)==null||g.call(t,s)},i(e,r(j,{class:"size-4","aria-hidden":"true"})),f(()=>d(e,u("relative z-10 inline-flex size-7 shrink-0 items-center justify-center rounded-md","text-muted-foreground outline-none transition-colors","hover:bg-surface-sunken hover:text-foreground","focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring"))),e}}),null),f(e=>{var s=t.active?"":void 0,g=t.needsAttention?"":void 0,k=u("group relative flex w-full cursor-pointer items-center gap-3 rounded-lg border px-3 py-2.5 text-left","transition-[background-color,border-color,box-shadow]",t.active?"border-primary bg-accent":"border-border bg-surface hover:bg-accent",t.needsAttention&&"border-tool-amber/50 ring-2 ring-inset ring-tool-amber/60",t.class),w=t.status.label??X[o()],y=u("relative inline-block size-2 rounded-full",M[o()]),A=t.active?"true":void 0,C=u("min-w-0 flex-1 text-left outline-none","before:absolute before:inset-0 before:rounded-lg before:content-['']","focus-visible:before:ring-2 focus-visible:before:ring-inset focus-visible:before:ring-ring");return s!==e.e&&m(n,"data-active",e.e=s),g!==e.t&&m(n,"data-needs-attention",e.t=g),k!==e.a&&d(n,e.a=k),w!==e.o&&m(a,"aria-label",e.o=w),y!==e.i&&d(h,e.i=y),A!==e.n&&m(c,"aria-current",e.n=A),C!==e.s&&d(c,e.s=C),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})()}B(["click"]),I("kai-agent-card",{name:void 0,active:void 0,needsAttention:void 0,status:void 0},(l,{dispatch:t,flag:o})=>r(_,{get name(){return l.name??""},get active(){return o("active")},get needsAttention(){return o("needsAttention")},get status(){return l.status??{tone:"idle"}},onActivate:()=>t("kai-activate"),onMenu:()=>t("kai-menu")}));
1
+ import{c as r,m as S,s as q,i,a as f,b as d,S as v,d as m,t as b,e as B,f as I}from"./chunks/define-wjHR1MkU.js";import{c as u}from"./chunks/cn-CU7UAWzk.js";import{I as N}from"./chunks/Icon--Y8vsFal.js";import{e as j}from"./chunks/ellipsis-7gU33mL2.js";var D=[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]],E=l=>r(N,S(l,{name:"Bell",iconNode:D})),H=E,L=b("<span aria-hidden=true>"),P=b("<span>"),W=b('<span class="inline-flex items-center gap-1 rounded-full bg-tool-amber/15 px-2 py-0.5 text-[11px] font-medium text-tool-amber">Needs you'),O=b("<button type=button part=menu aria-label=More>"),R=b('<div><span class="inline-flex shrink-0 items-center gap-1.5"role=status><span class="relative inline-flex"><span aria-hidden=true part=status></span></span></span><button type=button><span class="block truncate text-sm font-medium leading-tight text-foreground"></span></button><span class="flex shrink-0 items-center gap-2">');const M={working:"bg-tool-blue",idle:"bg-muted-foreground",done:"bg-tool-green",error:"bg-tool-red",blocked:"bg-tool-amber"},T={working:"text-tool-blue",idle:"text-muted-foreground",done:"text-tool-green",error:"text-tool-red",blocked:"text-tool-amber"},X={working:"Working",idle:"Idle",done:"Done",error:"Error",blocked:"Blocked"};function _(l){const[t]=q(l,["name","status","needsAttention","active","onActivate","onClick","onMenu","class","leading","subtitle","lastLine"]),o=()=>t.status.tone,z=()=>{var n,a;(n=t.onActivate)==null||n.call(t),(a=t.onClick)==null||a.call(t)};return(()=>{var n=R(),a=n.firstChild,p=a.firstChild,h=p.firstChild,c=a.nextSibling,$=c.firstChild,x=c.nextSibling;return i(p,r(v,{get when(){return t.status.pulse},get children(){var e=L();return f(()=>d(e,u("absolute inline-flex h-full w-full animate-ping rounded-full opacity-75 motion-reduce:hidden",M[o()]))),e}}),h),i(a,r(v,{get when(){return t.status.label},get children(){var e=P();return i(e,()=>t.status.label),f(()=>d(e,u("text-[11px] font-medium leading-none",T[o()]))),e}}),null),c.$$click=z,i($,()=>t.name),i(x,r(v,{get when(){return t.needsAttention},get children(){var e=W(),s=e.firstChild;return i(e,r(H,{class:"size-3","aria-hidden":"true"}),s),e}}),null),i(x,r(v,{get when(){return t.onMenu},get children(){var e=O();return e.$$click=s=>{var g;s.stopPropagation(),(g=t.onMenu)==null||g.call(t,s)},i(e,r(j,{class:"size-4","aria-hidden":"true"})),f(()=>d(e,u("relative z-10 inline-flex size-7 shrink-0 items-center justify-center rounded-md","text-muted-foreground outline-none transition-colors","hover:bg-surface-sunken hover:text-foreground","focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring"))),e}}),null),f(e=>{var s=t.active?"":void 0,g=t.needsAttention?"":void 0,k=u("group relative flex w-full cursor-pointer items-center gap-3 rounded-lg border px-3 py-2.5 text-left","transition-[background-color,border-color,box-shadow]",t.active?"border-primary bg-accent":"border-border bg-surface hover:bg-accent",t.needsAttention&&"border-tool-amber/50 ring-2 ring-inset ring-tool-amber/60",t.class),w=t.status.label??X[o()],y=u("relative inline-block size-2 rounded-full",M[o()]),A=t.active?"true":void 0,C=u("min-w-0 flex-1 text-left outline-none","before:absolute before:inset-0 before:rounded-lg before:content-['']","focus-visible:before:ring-2 focus-visible:before:ring-inset focus-visible:before:ring-ring");return s!==e.e&&m(n,"data-active",e.e=s),g!==e.t&&m(n,"data-needs-attention",e.t=g),k!==e.a&&d(n,e.a=k),w!==e.o&&m(a,"aria-label",e.o=w),y!==e.i&&d(h,e.i=y),A!==e.n&&m(c,"aria-current",e.n=A),C!==e.s&&d(c,e.s=C),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),n})()}B(["click"]),I("kai-agent-card",{name:void 0,active:void 0,needsAttention:void 0,status:void 0},(l,{dispatch:t,flag:o})=>r(_,{get name(){return l.name??""},get active(){return o("active")},get needsAttention(){return o("needsAttention")},get status(){return l.status??{tone:"idle"}},onActivate:()=>t("kai-activate"),onMenu:()=>t("kai-menu")}));
@@ -1 +1 @@
1
- import{f as g,g as v,o as h,h as b,i as c,c as x,t as d}from"./chunks/define-B_tXMYRm.js";import{A as p}from"./chunks/artifact-BSuPYFHY.js";var f=d("<style>:host{display:block;height:100%;min-height:0}"),T=d('<div style="display:grid;grid-template-rows:minmax(0, 1fr);grid-template-columns:minmax(0, 1fr);height:100%;min-height:0">');g("kai-artifact",{src:void 0,files:[],tab:void 0,defaultTab:void 0,activeFile:void 0,sandbox:"allow-scripts allow-forms",iframeTitle:void 0,maximized:!1,expandable:!1,openInTab:!1,noNav:!1,noReload:!1,noHome:!1,noPathField:!1,noTabs:!1,standalone:!1,readonlyPath:!1,displayUrl:void 0},(n,{element:l,dispatch:r,flag:t,expose:s})=>{const[m,o]=v(t("maximized"));let e;s({back:()=>e?.back(),forward:()=>e?.forward(),reload:()=>e?.reload(),home:()=>e?.home(),navigate:a=>e?.navigate(a),selectFile:a=>e?.selectFile(a),openExternal:()=>e?.openExternal(),maximize:()=>e?.maximize(),restore:()=>e?.restore()});const u=a=>{o(a),l.dispatchEvent(new CustomEvent("kai-maximize-intent",{detail:{requested:a},bubbles:!0,composed:!0})),r("kai-maximize-change",{maximized:a})};return h(()=>{const a=i=>o(i.detail.maximized);l.addEventListener("kai-maximize-state",a),b(()=>l.removeEventListener("kai-maximize-state",a))}),[f(),(()=>{var a=T();return c(a,x(p,{get src(){return n.src},get files(){return n.files??[]},get tab(){return n.tab},get defaultTab(){return n.defaultTab},get activeFile(){return n.activeFile},get sandbox(){return n.sandbox},get iframeTitle(){return n.iframeTitle},get maximized(){return m()},get expandable(){return t("expandable")},get openInTab(){return t("openInTab")},get showNav(){return!t("noNav")},get showReload(){return!t("noReload")},get showHome(){return!t("noHome")},get showPathField(){return!t("noPathField")},get showTabs(){return!t("noTabs")},get standalone(){return t("standalone")},get readonlyPath(){return t("readonlyPath")},get displayUrl(){return n.displayUrl},onMaximizeChange:u,onNavigate:i=>r("kai-navigate",{url:i}),onTabChange:i=>r("kai-tab-change",{tab:i}),onFileSelect:i=>r("kai-file-select",{path:i}),controllerRef:i=>e=i})),a})()]});
1
+ import{f as g,g as v,o as h,h as b,i as c,c as x,t as d}from"./chunks/define-wjHR1MkU.js";import{A as p}from"./chunks/artifact-BkYcfIlZ.js";var f=d("<style>:host{display:block;height:100%;min-height:0}"),T=d('<div style="display:grid;grid-template-rows:minmax(0, 1fr);grid-template-columns:minmax(0, 1fr);height:100%;min-height:0">');g("kai-artifact",{src:void 0,files:[],tab:void 0,defaultTab:void 0,activeFile:void 0,sandbox:"allow-scripts allow-forms",iframeTitle:void 0,maximized:!1,expandable:!1,openInTab:!1,noNav:!1,noReload:!1,noHome:!1,noPathField:!1,noTabs:!1,standalone:!1,readonlyPath:!1,displayUrl:void 0},(n,{element:l,dispatch:r,flag:t,expose:s})=>{const[m,o]=v(t("maximized"));let e;s({back:()=>e?.back(),forward:()=>e?.forward(),reload:()=>e?.reload(),home:()=>e?.home(),navigate:a=>e?.navigate(a),selectFile:a=>e?.selectFile(a),openExternal:()=>e?.openExternal(),maximize:()=>e?.maximize(),restore:()=>e?.restore()});const u=a=>{o(a),l.dispatchEvent(new CustomEvent("kai-maximize-intent",{detail:{requested:a},bubbles:!0,composed:!0})),r("kai-maximize-change",{maximized:a})};return h(()=>{const a=i=>o(i.detail.maximized);l.addEventListener("kai-maximize-state",a),b(()=>l.removeEventListener("kai-maximize-state",a))}),[f(),(()=>{var a=T();return c(a,x(p,{get src(){return n.src},get files(){return n.files??[]},get tab(){return n.tab},get defaultTab(){return n.defaultTab},get activeFile(){return n.activeFile},get sandbox(){return n.sandbox},get iframeTitle(){return n.iframeTitle},get maximized(){return m()},get expandable(){return t("expandable")},get openInTab(){return t("openInTab")},get showNav(){return!t("noNav")},get showReload(){return!t("noReload")},get showHome(){return!t("noHome")},get showPathField(){return!t("noPathField")},get showTabs(){return!t("noTabs")},get standalone(){return t("standalone")},get readonlyPath(){return t("readonlyPath")},get displayUrl(){return n.displayUrl},onMaximizeChange:u,onNavigate:i=>r("kai-navigate",{url:i}),onTabChange:i=>r("kai-tab-change",{tab:i}),onFileSelect:i=>r("kai-file-select",{path:i}),controllerRef:i=>e=i})),a})()]});
@@ -1 +1 @@
1
- import{f as b,c as e,F as T,S as a,j as c,a as k,d as o,i as m,t as d}from"./chunks/define-B_tXMYRm.js";import{A as M,a as j,b as C,c as A,d as v,e as p,f as F,g as f,h as R,i as S,j as $}from"./chunks/attachments-CL6TaqIb.js";var z=d('<img part=preview class="block max-h-64 max-w-xs rounded object-contain">'),E=d('<div class="text-body font-medium">'),H=d('<div class="text-muted-foreground text-caption">');b("kai-attachments",{items:[],variant:"grid",hoverCard:!1,removable:!1,showMediaType:!1,emptyText:void 0},(n,{dispatch:w,flag:l})=>{const i=()=>n.variant??"grid",y=()=>l("hoverCard"),x=()=>l("removable"),g=()=>l("showMediaType");return e(a,{get when(){var r;return(r=n.items)==null?void 0:r.length},get fallback(){return e(a,{get when(){return n.emptyText},get children(){return e($,{get children(){return n.emptyText}})}})},get children(){return e(M,{get variant(){return i()},get children(){return e(T,{get each(){return n.items??[]},children:r=>e(j,{data:r,get onRemove(){return x()?()=>w("kai-remove",{id:r.id}):void 0},get children(){return[e(a,{get when(){return y()},get fallback(){return[e(v,{}),e(a,{get when(){return i()!=="grid"},get children(){return e(p,{get showMediaType(){return g()}})}})]},get children(){return e(C,{get children(){return[e(A,{get class(){return c(()=>i()==="grid")()?"block size-full":`flex items-center gap-1.5${i()==="list"?" w-full":""}`},get children(){return[e(v,{}),e(a,{get when(){return i()!=="grid"},get children(){return e(p,{get showMediaType(){return g()}})}})]}}),e(F,{get children(){return e(a,{get when(){return c(()=>R(r)==="image"&&r.type==="file")()&&r.url},get fallback(){return[(()=>{var t=E();return m(t,()=>f(r)),t})(),e(a,{get when(){return r.mediaType},get children(){var t=H();return m(t,()=>r.mediaType),t}})]},get children(){var t=z();return k(s=>{var u=r.url,h=f(r);return u!==s.e&&o(t,"src",s.e=u),h!==s.t&&o(t,"alt",s.t=h),s},{e:void 0,t:void 0}),t}})}})]}})}}),e(S,{})]}})})}})}})});
1
+ import{f as b,c as e,F as T,S as i,j as o,a as k,d as h,i as m,t as d}from"./chunks/define-wjHR1MkU.js";import{A as M,a as j,b as C,c as A,d as v,e as p,f as F,g as f,h as R,i as S,j as $}from"./chunks/attachments-DwfNlubq.js";var z=d('<img part=preview class="block max-h-64 max-w-xs rounded object-contain">'),E=d('<div class="text-body font-medium">'),H=d('<div class="text-muted-foreground text-caption">');b("kai-attachments",{items:[],variant:"grid",hoverCard:!1,removable:!1,showMediaType:!1,emptyText:void 0},(a,{dispatch:w,flag:s})=>{const l=()=>a.variant??"grid",y=()=>s("hoverCard"),x=()=>s("removable"),u=()=>s("showMediaType");return e(i,{get when(){var r;return(r=a.items)==null?void 0:r.length},get fallback(){return e(i,{get when(){return a.emptyText},get children(){return e($,{get children(){return a.emptyText}})}})},get children(){return e(M,{get variant(){return l()},get children(){return e(T,{get each(){return a.items??[]},children:r=>e(j,{data:r,get onRemove(){return x()?()=>w("kai-remove",{id:r.id}):void 0},get children(){return[e(i,{get when(){return y()},get fallback(){return[e(v,{}),e(p,{get showMediaType(){return u()}})]},get children(){return e(C,{get children(){return[e(A,{get class(){return o(()=>l()==="grid")()?"block size-full":`flex items-center gap-1.5${l()==="list"?" w-full":""}`},get children(){return[e(v,{}),e(p,{get showMediaType(){return u()}})]}}),e(F,{get children(){return e(i,{get when(){return o(()=>R(r)==="image"&&r.type==="file")()&&r.url},get fallback(){return[(()=>{var t=E();return m(t,()=>f(r)),t})(),e(i,{get when(){return r.mediaType},get children(){var t=H();return m(t,()=>r.mediaType),t}})]},get children(){var t=z();return k(n=>{var g=r.url,c=f(r);return g!==n.e&&h(t,"src",n.e=g),c!==n.t&&h(t,"alt",n.t=c),n},{e:void 0,t:void 0}),t}})}})]}})}}),e(S,{})]}})})}})}})});
@@ -1 +1 @@
1
- import{A as a,n as r}from"./chunks/audio-visualizer-BuUqQmaO.js";import"./chunks/define-B_tXMYRm.js";export{a as AudioVisualizerFacade,r as num};
1
+ import{A as a,n as r}from"./chunks/audio-visualizer-D7lB6mvR.js";import"./chunks/define-wjHR1MkU.js";export{a as AudioVisualizerFacade,r as num};
@@ -1 +1 @@
1
- const p={"kai-conversations":"conversation-list","kai-prompt-input":"prompt-input","kai-chat":"chat","kai-workspace":"chat-workspace","kai-thread":"thread","kai-thinking-bar":"thinking-bar","kai-model-switcher":"model-switcher","kai-attachments":"attachments","kai-message":"message","kai-markdown":"markdown","kai-code-block":"code-block","kai-reasoning":"reasoning","kai-tool":"tool","kai-context":"context-meter","kai-feedback-bar":"feedback-bar","kai-scope-picker":"chat-scope-picker","kai-suggestions":"prompt-suggestions","kai-file-upload":"file-upload","kai-voice-input":"voice-input","kai-audio-visualizer":"audio-visualizer","kai-loader":"loader","kai-text-shimmer":"text-shimmer","kai-image":"image","kai-checkpoint":"checkpoint","kai-skills":"message-skills","kai-source":"source","kai-sources":"source","kai-response-stream":"response-stream","kai-empty":"empty","kai-status":"status","kai-nav":"nav","kai-progress-bar":"progress-bar","kai-coachmark":"coachmark","kai-tabs":"tabs","kai-voice-output":"voice-output","kai-screen":"screen","kai-chain-of-thought":"chain-of-thought","kai-resizable":"resizable","kai-resizable-item":"resizable","kai-file-tree":"file-tree","kai-artifact":"artifact","kai-scroll-button":"scroll-button","kai-popover":"popover","kai-switch":"switch","kai-button":"button","kai-avatar":"avatar","kai-badge":"badge","kai-tooltip":"tooltip","kai-notice":"notice","kai-icon":"icon","kai-separator":"separator","kai-scroll-area":"scroll-area","kai-hover-card":"hover-card","kai-skeleton":"skeleton","kai-toast-region":"toast","kai-card":"card","kai-form":"form","kai-link-preview":"link-preview","kai-embed":"embed","kai-confirm":"confirm-card","kai-tasks":"tasks","kai-choice":"choice","kai-cards":"cards","kai-compare":"compare","kai-composer":"composer","kai-menu":"menu","kai-command":"command","kai-prompt-dock":"prompt-dock","kai-segmented":"segmented","kai-settings-group":"settings-group","kai-setting-item":"setting-item","kai-pane":"pane","kai-pane-group":"pane-group","kai-agent-card":"agent-card","kai-dialog":"dialog","kai-input":"input","kai-search":"search","kai-kbd":"kbd","kai-editable-label":"editable-label"},h={tags:p},s=h.tags,n=new Set,g=import.meta.url.slice(0,import.meta.url.lastIndexOf("/")+1);let k=null;function b(a){k=a.endsWith("/")?a:a+"/"}async function f(a){if(customElements.get(a)||n.has(a))return;const e=s[a];if(e){n.add(a);try{await import(/*@vite-ignore*/`${k??g}${e}.js`)}catch(t){n.delete(a),v(a,t)}}}let l=!1;function v(a,e){if(l)return;l=!0;const t=e?.message??String(e);console.warn(`[kai-autoloader] could not load "${a}" (${t}). The autoloader is a CDN / static-file tool \u2014 load it from a <script type="module" src=".../@kitn.ai/ui/dist/elements/autoloader.js">. It is NOT importable through a bundler. In a bundled app, register elements with per-element imports (import '@kitn.ai/ui/elements/<el>') or the register-all bundle (import '@kitn.ai/ui/elements'). To drive the autoloader from a bundler, host dist/elements/ and call setAutoloaderBasePath('<url>/') before use.`)}function d(a){var e,t,i;const r=new Set,o=(t=(e=a.tagName)==null?void 0:e.toLowerCase)==null?void 0:t.call(e);o&&o in s&&!customElements.get(o)&&r.add(o),(i=a.querySelectorAll)==null||i.call(a,":not(:defined)").forEach(m=>{const c=m.tagName.toLowerCase();c in s&&r.add(c)}),r.forEach(f)}function u(a=document){d(a),new MutationObserver(e=>{for(const t of e)for(const i of t.addedNodes)i.nodeType===1&&d(i)}).observe(document.documentElement,{childList:!0,subtree:!0})}typeof document<"u"&&queueMicrotask(()=>u());export{b as setAutoloaderBasePath,u as startAutoloader};
1
+ const p={"kai-conversations":"conversation-list","kai-conversation-item":"conversation-item","kai-prompt-input":"prompt-input","kai-chat":"chat","kai-workspace":"chat-workspace","kai-thread":"thread","kai-thinking-bar":"thinking-bar","kai-model-switcher":"model-switcher","kai-attachments":"attachments","kai-message":"message","kai-markdown":"markdown","kai-code-block":"code-block","kai-reasoning":"reasoning","kai-tool":"tool","kai-context":"context-meter","kai-feedback-bar":"feedback-bar","kai-scope-picker":"chat-scope-picker","kai-suggestions":"prompt-suggestions","kai-file-upload":"file-upload","kai-voice-input":"voice-input","kai-audio-visualizer":"audio-visualizer","kai-loader":"loader","kai-text-shimmer":"text-shimmer","kai-image":"image","kai-checkpoint":"checkpoint","kai-skills":"message-skills","kai-source":"source","kai-sources":"source","kai-response-stream":"response-stream","kai-empty":"empty","kai-status":"status","kai-nav":"nav","kai-progress-bar":"progress-bar","kai-coachmark":"coachmark","kai-tabs":"tabs","kai-voice-output":"voice-output","kai-screen":"screen","kai-chain-of-thought":"chain-of-thought","kai-resizable":"resizable","kai-resizable-item":"resizable","kai-file-tree":"file-tree","kai-artifact":"artifact","kai-scroll-button":"scroll-button","kai-popover":"popover","kai-switch":"switch","kai-button":"button","kai-avatar":"avatar","kai-badge":"badge","kai-tooltip":"tooltip","kai-notice":"notice","kai-icon":"icon","kai-separator":"separator","kai-scroll-area":"scroll-area","kai-hover-card":"hover-card","kai-skeleton":"skeleton","kai-toast-region":"toast","kai-card":"card","kai-form":"form","kai-link-preview":"link-preview","kai-embed":"embed","kai-confirm":"confirm-card","kai-tasks":"tasks","kai-choice":"choice","kai-cards":"cards","kai-compare":"compare","kai-composer":"composer","kai-menu":"menu","kai-dropdown":"dropdown","kai-command":"command","kai-prompt-dock":"prompt-dock","kai-segmented":"segmented","kai-settings-group":"settings-group","kai-setting-item":"setting-item","kai-pane":"pane","kai-pane-group":"pane-group","kai-agent-card":"agent-card","kai-dialog":"dialog","kai-dock":"dock","kai-input":"input","kai-search":"search","kai-kbd":"kbd","kai-editable-label":"editable-label"},h={tags:p},s=h.tags,n=new Set,g=import.meta.url.slice(0,import.meta.url.lastIndexOf("/")+1);let k=null;function b(a){k=a.endsWith("/")?a:a+"/"}async function f(a){if(customElements.get(a)||n.has(a))return;const e=s[a];if(e){n.add(a);try{await import(/*@vite-ignore*/`${k??g}${e}.js`)}catch(i){n.delete(a),v(a,i)}}}let l=!1;function v(a,e){if(l)return;l=!0;const i=e?.message??String(e);console.warn(`[kai-autoloader] could not load "${a}" (${i}). The autoloader is a CDN / static-file tool \u2014 load it from a <script type="module" src=".../@kitn.ai/ui/dist/elements/autoloader.js">. It is NOT importable through a bundler. In a bundled app, register elements with per-element imports (import '@kitn.ai/ui/elements/<el>') or the register-all bundle (import '@kitn.ai/ui/elements'). To drive the autoloader from a bundler, host dist/elements/ and call setAutoloaderBasePath('<url>/') before use.`)}function d(a){var e,i,t;const r=new Set,o=(i=(e=a.tagName)==null?void 0:e.toLowerCase)==null?void 0:i.call(e);o&&o in s&&!customElements.get(o)&&r.add(o),(t=a.querySelectorAll)==null||t.call(a,":not(:defined)").forEach(m=>{const c=m.tagName.toLowerCase();c in s&&r.add(c)}),r.forEach(f)}function u(a=document){d(a),new MutationObserver(e=>{for(const i of e)for(const t of i.addedNodes)t.nodeType===1&&d(t)}).observe(document.documentElement,{childList:!0,subtree:!0})}typeof document<"u"&&queueMicrotask(()=>u());export{b as setAutoloaderBasePath,u as startAutoloader};
@@ -1 +1 @@
1
- import{s as m,q as g,m as v,i,c as d,a as b,d as o,S as k,t as l,f as x}from"./chunks/define-B_tXMYRm.js";import{c as h}from"./chunks/cn-CU7UAWzk.js";var w=l('<img class="h-full w-full rounded-md object-cover">'),z=l("<div>"),p=l("<span>");const j={sm:"h-6 w-6 text-[10px]",md:"h-8 w-8 text-xs",lg:"h-10 w-10 text-sm"};function q(e){const[r,u]=m(e,["src","alt","fallback","size","class"]),f=()=>r.size??"md";return(()=>{var s=z();return g(s,v({get class(){return h("inline-flex items-center justify-center rounded-md bg-accent font-semibold text-accent-foreground flex-shrink-0",j[f()],r.class)}},u),!1,!0),i(s,d(k,{get when(){return r.src},get fallback(){return(()=>{var t=p();return i(t,()=>r.fallback),t})()},get children(){var t=w();return b(a=>{var c=r.src,n=r.alt??r.fallback;return c!==a.e&&o(t,"src",a.e=c),n!==a.t&&o(t,"alt",a.t=n),a},{e:void 0,t:void 0}),t}})),s})()}x("kai-avatar",{src:void 0,alt:void 0,fallback:"",size:"md"},e=>d(q,{get src(){return e.src},get alt(){return e.alt},get fallback(){return e.fallback??""},get size(){return e.size??"md"}}));
1
+ import{s as m,q as g,m as v,i,c as d,a as b,d as o,S as k,t as l,f as x}from"./chunks/define-wjHR1MkU.js";import{c as h}from"./chunks/cn-CU7UAWzk.js";var w=l('<img class="h-full w-full rounded-md object-cover">'),z=l("<div>"),p=l("<span>");const j={sm:"h-6 w-6 text-[10px]",md:"h-8 w-8 text-xs",lg:"h-10 w-10 text-sm"};function q(e){const[r,u]=m(e,["src","alt","fallback","size","class"]),f=()=>r.size??"md";return(()=>{var s=z();return g(s,v({get class(){return h("inline-flex items-center justify-center rounded-md bg-accent font-semibold text-accent-foreground flex-shrink-0",j[f()],r.class)}},u),!1,!0),i(s,d(k,{get when(){return r.src},get fallback(){return(()=>{var t=p();return i(t,()=>r.fallback),t})()},get children(){var t=w();return b(a=>{var c=r.src,n=r.alt??r.fallback;return c!==a.e&&o(t,"src",a.e=c),n!==a.t&&o(t,"alt",a.t=n),a},{e:void 0,t:void 0}),t}})),s})()}x("kai-avatar",{src:void 0,alt:void 0,fallback:"",size:"md"},e=>d(q,{get src(){return e.src},get alt(){return e.alt},get fallback(){return e.fallback??""},get size(){return e.size??"md"}}));
@@ -1 +1 @@
1
- import{f as e,c as i,u as n,t as r}from"./chunks/define-B_tXMYRm.js";import{B as l}from"./chunks/badge-TIMiJFKc.js";var o=r("<style>:host{display:inline-flex}"),s=r("<slot>");e("kai-badge",{variant:"default"},t=>[o(),i(l,{get variant(){return t.variant??"default"},part:"badge",get children(){var a=s();return a._$owner=n(),a}})]);
1
+ import{f as e,c as i,v as n,t as r}from"./chunks/define-wjHR1MkU.js";import{B as l}from"./chunks/badge-Q0-Cmwzz.js";var o=r("<style>:host{display:inline-flex}"),s=r("<slot>");e("kai-badge",{variant:"default"},t=>[o(),i(l,{get variant(){return t.variant??"default"},part:"badge",get children(){var a=s();return a._$owner=n(),a}})]);
@@ -1 +1 @@
1
- import{g as m,f as b,c as o,u as g,i as p,S as c,v as k,j as y,t as d}from"./chunks/define-B_tXMYRm.js";import{B as z}from"./chunks/button-B9okqG73.js";import{r as h}from"./chunks/icon-97R8SR2p.js";function w(n={}){const[u,a]=m(!1),i=r=>{const s=r.assignedNodes({flatten:n.flatten??!1});a(s.some(l=>(l.textContent??"").trim()!==""))};return{hasText:u,ref:r=>{i(r),r.addEventListener("slotchange",()=>i(r))}}}var x=d("<style>:host{display:inline-flex}:host([full]){display:block}"),C=d("<slot name=icon>"),T=d("<slot>");b("kai-button",{variant:"default",size:"md",icon:void 0,iconTrailing:void 0,label:void 0,disabled:!1,full:!1,align:"center",type:"button"},(n,{dispatch:u,flag:a,element:i,expose:r})=>{const s=()=>n.size==="icon"||n.size==="icon-sm",l=w({flatten:!0}),v=()=>!s()&&l.hasText()?void 0:n.label;return r({focus:e=>{var t,f;return(f=(t=i.shadowRoot)==null?void 0:t.querySelector("button"))==null?void 0:f.focus(e)},blur:()=>{var e,t;return(t=(e=i.shadowRoot)==null?void 0:e.querySelector("button"))==null?void 0:t.blur()},click:()=>{var e,t;return(t=(e=i.shadowRoot)==null?void 0:e.querySelector("button"))==null?void 0:t.click()}}),[x(),o(z,{part:"button",get variant(){return n.variant??"default"},get size(){return n.size??"md"},get align(){return n.align??"center"},get full(){return a("full")||!s()},get type(){return n.type??"button"},get disabled(){return a("disabled")},get"aria-label"(){return v()},onClick:()=>u("kai-click"),get children(){return[(()=>{var e=C();return e._$owner=g(),p(e,o(c,{get when(){return n.icon},get children(){return h(n.icon,{class:"size-4 shrink-0",imgClass:"size-4 shrink-0",spanClass:"inline-flex size-4 shrink-0 items-center justify-center",ariaHidden:!0})}})),e})(),o(c,{get when(){return!s()},get children(){var e=T(),t=l.ref;return typeof t=="function"?k(t,e):l.ref=e,e._$owner=g(),e}}),o(c,{get when(){return y(()=>!!n.iconTrailing)()&&!s()},get children(){return h(n.iconTrailing,{class:"size-4 shrink-0 opacity-60",imgClass:"size-4 shrink-0",spanClass:"inline-flex size-4 shrink-0 items-center justify-center",ariaHidden:!0})}})]}})]});
1
+ import{g as m,f as b,c as o,v as g,i as p,S as c,u as k,j as y,t as d}from"./chunks/define-wjHR1MkU.js";import{B as z}from"./chunks/button-flUbeufF.js";import{r as h}from"./chunks/icon-Cfgmf4fa.js";function w(n={}){const[u,a]=m(!1),i=r=>{const s=r.assignedNodes({flatten:n.flatten??!1});a(s.some(l=>(l.textContent??"").trim()!==""))};return{hasText:u,ref:r=>{i(r),r.addEventListener("slotchange",()=>i(r))}}}var x=d("<style>:host{display:inline-flex}:host([full]){display:block}"),C=d("<slot name=icon>"),T=d("<slot>");b("kai-button",{variant:"default",size:"md",icon:void 0,iconTrailing:void 0,label:void 0,disabled:!1,full:!1,align:"center",type:"button"},(n,{dispatch:u,flag:a,element:i,expose:r})=>{const s=()=>n.size==="icon"||n.size==="icon-sm",l=w({flatten:!0}),v=()=>!s()&&l.hasText()?void 0:n.label;return r({focus:e=>{var t,f;return(f=(t=i.shadowRoot)==null?void 0:t.querySelector("button"))==null?void 0:f.focus(e)},blur:()=>{var e,t;return(t=(e=i.shadowRoot)==null?void 0:e.querySelector("button"))==null?void 0:t.blur()},click:()=>{var e,t;return(t=(e=i.shadowRoot)==null?void 0:e.querySelector("button"))==null?void 0:t.click()}}),[x(),o(z,{part:"button",get variant(){return n.variant??"default"},get size(){return n.size??"md"},get align(){return n.align??"center"},get full(){return a("full")||!s()},get type(){return n.type??"button"},get disabled(){return a("disabled")},get"aria-label"(){return v()},onClick:()=>u("kai-click"),get children(){return[(()=>{var e=C();return e._$owner=g(),p(e,o(c,{get when(){return n.icon},get children(){return h(n.icon,{class:"size-4 shrink-0",imgClass:"size-4 shrink-0",spanClass:"inline-flex size-4 shrink-0 items-center justify-center",ariaHidden:!0})}})),e})(),o(c,{get when(){return!s()},get children(){var e=T(),t=l.ref;return typeof t=="function"?k(t,e):l.ref=e,e._$owner=g(),e}}),o(c,{get when(){return y(()=>!!n.iconTrailing)()&&!s()},get children(){return h(n.iconTrailing,{class:"size-4 shrink-0 opacity-60",imgClass:"size-4 shrink-0",spanClass:"inline-flex size-4 shrink-0 items-center justify-center",ariaHidden:!0})}})]}})]});
@@ -1 +1 @@
1
- import{m as C,s as M,g as y,w as q,i as n,c as a,S as c,D as K,j as x,t as o,e as P,f as X,o as F,h as G,u as E,d as H}from"./chunks/define-B_tXMYRm.js";import{c as I}from"./chunks/cn-CU7UAWzk.js";import{x as J}from"./chunks/x-BOhjBeOd.js";var N=o('<div class="min-w-0 flex-1">'),Q=o('<div class="-mt-1 shrink-0">'),R=o('<div part=header class="flex items-start justify-between gap-3">'),U=o('<div part=body class="min-w-0 text-sm">'),V=o("<div class=kc-actions>"),W=o("<div part=footer>"),Y=o('<div class="flex min-w-0 flex-1 flex-col"style=padding:var(--kai-card-spacing);gap:var(--kai-card-spacing)>'),Z=o('<button type=button part=dismiss aria-label=Dismiss class="absolute right-2 top-2 z-10 shrink-0 rounded p-1 opacity-60 transition-opacity hover:opacity-100">'),ee=o("<style>"),re=o("<div part=media class=kc-media>"),te=o("<div class=kc-layout>");const ne={outlined:"border border-border bg-card text-card-foreground kai-elevation-sm",filled:"border border-transparent bg-surface-strong text-card-foreground",plain:"border border-transparent bg-transparent",accent:"border border-transparent bg-primary text-primary-foreground"};function ae(u){const p=C({appearance:"outlined",orientation:"vertical",collapse:"28rem",dense:!1},u),[e,v]=M(p,["appearance","orientation","collapse","dense","media","header","headerActions","footer","footerActions","hasBody","dismissible","onDismiss","href","target","rel","clickable","onCardClick","class","children"]),[b,k]=y(!0),w=r=>{var t;r.stopPropagation(),k(!1),(t=e.onDismiss)==null||t.call(e)},g=()=>!!e.href,s=()=>!g()&&!!e.clickable,l=()=>g()||s(),h=/^[\d.]+(px|rem|em|ch|vw|vh|%)$/,m=()=>h.test(e.collapse)?e.collapse:"28rem",d=`kc-i-${q()}`,_=()=>{const r=m(),t=e.orientation==="horizontal",i=e.orientation==="responsive",f=`.${d}`,j=`${f} .kc-layout{display:flex;flex-direction:${t?"row":"column"}}${f} .kc-media{overflow:hidden;${t?"flex-shrink:0;align-self:stretch":"width:100%"}}${f} [part="footer"]{display:flex;flex-direction:column;gap:0.75rem}${f} .kc-actions{display:flex;flex-direction:column-reverse;align-items:stretch;gap:0.5rem}`,L=`${f} [part="footer"]{flex-direction:row;align-items:center}${f} .kc-actions{flex-direction:row;align-items:center;margin-left:auto}`+(i?`${f} .kc-layout{flex-direction:row}${f} .kc-media{width:auto;flex-shrink:0;align-self:stretch}`:"");return`${j}@container (min-width:${r}){${L}}`},$=r=>{var t;return(t=e.onCardClick)==null?void 0:t.call(e,r)},B=r=>{s()&&(r.key==="Enter"||r.key===" "||r.key==="Spacebar")&&(r.preventDefault(),$(r))},z=()=>e.rel??(e.target==="_blank"?"noopener noreferrer":void 0),A=()=>!!e.header||!!e.headerActions,D=()=>!!e.footer||!!e.footerActions,O=()=>A()||e.hasBody||D(),S=(()=>{var r=Y();return n(r,a(c,{get when(){return A()},get children(){var t=R();return n(t,a(c,{get when(){return e.header},get children(){var i=N();return n(i,()=>e.header),i}}),null),n(t,a(c,{get when(){return e.headerActions},get children(){var i=Q();return n(i,()=>e.headerActions),i}}),null),t}}),null),n(r,a(c,{get when(){return e.hasBody},get children(){var t=U();return n(t,()=>e.children),t}}),null),n(r,a(c,{get when(){return D()},get children(){var t=W();return n(t,a(c,{get when(){return e.footer},get children(){var i=N();return n(i,()=>e.footer),i}}),null),n(t,a(c,{get when(){return e.footerActions},get children(){var i=V();return n(i,()=>e.footerActions),i}}),null),t}}),null),r})();return a(c,{get when(){return b()},get children(){return a(K,C({get component(){return g()?"a":"div"},part:"card",get href(){return x(()=>!!g())()?e.href:void 0},get target(){return x(()=>!!g())()?e.target:void 0},get rel(){return x(()=>!!g())()?z():void 0},get role(){return s()?"button":void 0},get tabindex(){return s()?0:void 0},get onClick(){return l()?$:void 0},get onKeyDown(){return s()?B:void 0},get style(){return{"--kai-card-spacing":e.dense?"0.875rem":"1.25rem"}},get class(){return I("relative block overflow-hidden rounded-xl no-underline @container",d,ne[e.appearance],l()&&"cursor-pointer transition-colors hover:border-ring focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",e.class)}},v,{get children(){return[a(c,{get when(){return e.dismissible},get children(){var r=Z();return r.$$click=w,n(r,a(J,{class:"size-3.5","aria-hidden":"true"})),r}}),(()=>{var r=ee();return n(r,_),r})(),(()=>{var r=te();return n(r,a(c,{get when(){return e.media},get children(){var t=re();return n(t,()=>e.media),t}}),null),n(r,a(c,{get when(){return O()},children:S}),null),r})()]}}))}})}P(["click"]);var T=o("<slot>");const ie=["media","header","header-actions","footer","footer-actions"];X("kai-card",{appearance:"outlined",orientation:"vertical",collapse:"28rem",dense:!1,dismissible:!1,href:void 0,target:void 0,rel:void 0,clickable:!1},(u,{element:p,dispatch:e,flag:v})=>{const[b,k]=y({media:!1,header:!1,"header-actions":!1,footer:!1,"footer-actions":!1}),[w,g]=y(!1);F(()=>{const l=()=>{const m={};for(const d of ie)m[d]=!!p.querySelector(`:scope > [slot="${d}"]`);k(m),g(Array.from(p.childNodes).some(d=>d.nodeType===Node.ELEMENT_NODE&&!d.hasAttribute("slot")||d.nodeType===Node.TEXT_NODE&&(d.textContent??"").trim()!==""))};l();const h=new MutationObserver(l);h.observe(p,{childList:!0,characterData:!0,subtree:!0}),G(()=>h.disconnect())});const s=l=>b()[l]?(()=>{var h=T();return H(h,"name",l),h._$owner=E(),h})():void 0;return a(ae,{get appearance(){return u.appearance},get orientation(){return u.orientation},get collapse(){return u.collapse},get dense(){return v("dense")},get dismissible(){return v("dismissible")},get href(){return u.href},get target(){return u.target},get rel(){return u.rel},get clickable(){return v("clickable")},onDismiss:()=>e("kai-dismiss"),onCardClick:()=>e("kai-card-click"),get media(){return s("media")},get header(){return s("header")},get headerActions(){return s("header-actions")},get footer(){return s("footer")},get footerActions(){return s("footer-actions")},get hasBody(){return w()},get children(){var l=T();return l._$owner=E(),l}})});
1
+ import{m as C,s as M,g as y,w as q,i as n,c as a,S as c,D as K,j as x,t as o,e as P,f as X,o as F,h as G,v as E,d as H}from"./chunks/define-wjHR1MkU.js";import{c as I}from"./chunks/cn-CU7UAWzk.js";import{x as J}from"./chunks/x-B6UnOiLw.js";var N=o('<div class="min-w-0 flex-1">'),Q=o('<div class="-mt-1 shrink-0">'),R=o('<div part=header class="flex items-start justify-between gap-3">'),U=o('<div part=body class="min-w-0 text-sm">'),V=o("<div class=kc-actions>"),W=o("<div part=footer>"),Y=o('<div class="flex min-w-0 flex-1 flex-col"style=padding:var(--kai-card-spacing);gap:var(--kai-card-spacing)>'),Z=o('<button type=button part=dismiss aria-label=Dismiss class="absolute right-2 top-2 z-10 shrink-0 rounded p-1 opacity-60 transition-opacity hover:opacity-100">'),ee=o("<style>"),re=o("<div part=media class=kc-media>"),te=o("<div class=kc-layout>");const ne={outlined:"border border-border bg-card text-card-foreground kai-elevation-sm",filled:"border border-transparent bg-surface-strong text-card-foreground",plain:"border border-transparent bg-transparent",accent:"border border-transparent bg-primary text-primary-foreground"};function ae(u){const p=C({appearance:"outlined",orientation:"vertical",collapse:"28rem",dense:!1},u),[e,v]=M(p,["appearance","orientation","collapse","dense","media","header","headerActions","footer","footerActions","hasBody","dismissible","onDismiss","href","target","rel","clickable","onCardClick","class","children"]),[b,k]=y(!0),w=r=>{var t;r.stopPropagation(),k(!1),(t=e.onDismiss)==null||t.call(e)},g=()=>!!e.href,s=()=>!g()&&!!e.clickable,l=()=>g()||s(),h=/^[\d.]+(px|rem|em|ch|vw|vh|%)$/,m=()=>h.test(e.collapse)?e.collapse:"28rem",d=`kc-i-${q()}`,_=()=>{const r=m(),t=e.orientation==="horizontal",i=e.orientation==="responsive",f=`.${d}`,j=`${f} .kc-layout{display:flex;flex-direction:${t?"row":"column"}}${f} .kc-media{overflow:hidden;${t?"flex-shrink:0;align-self:stretch":"width:100%"}}${f} [part="footer"]{display:flex;flex-direction:column;gap:0.75rem}${f} .kc-actions{display:flex;flex-direction:column-reverse;align-items:stretch;gap:0.5rem}`,L=`${f} [part="footer"]{flex-direction:row;align-items:center}${f} .kc-actions{flex-direction:row;align-items:center;margin-left:auto}`+(i?`${f} .kc-layout{flex-direction:row}${f} .kc-media{width:auto;flex-shrink:0;align-self:stretch}`:"");return`${j}@container (min-width:${r}){${L}}`},$=r=>{var t;return(t=e.onCardClick)==null?void 0:t.call(e,r)},B=r=>{s()&&(r.key==="Enter"||r.key===" "||r.key==="Spacebar")&&(r.preventDefault(),$(r))},z=()=>e.rel??(e.target==="_blank"?"noopener noreferrer":void 0),A=()=>!!e.header||!!e.headerActions,D=()=>!!e.footer||!!e.footerActions,O=()=>A()||e.hasBody||D(),S=(()=>{var r=Y();return n(r,a(c,{get when(){return A()},get children(){var t=R();return n(t,a(c,{get when(){return e.header},get children(){var i=N();return n(i,()=>e.header),i}}),null),n(t,a(c,{get when(){return e.headerActions},get children(){var i=Q();return n(i,()=>e.headerActions),i}}),null),t}}),null),n(r,a(c,{get when(){return e.hasBody},get children(){var t=U();return n(t,()=>e.children),t}}),null),n(r,a(c,{get when(){return D()},get children(){var t=W();return n(t,a(c,{get when(){return e.footer},get children(){var i=N();return n(i,()=>e.footer),i}}),null),n(t,a(c,{get when(){return e.footerActions},get children(){var i=V();return n(i,()=>e.footerActions),i}}),null),t}}),null),r})();return a(c,{get when(){return b()},get children(){return a(K,C({get component(){return g()?"a":"div"},part:"card",get href(){return x(()=>!!g())()?e.href:void 0},get target(){return x(()=>!!g())()?e.target:void 0},get rel(){return x(()=>!!g())()?z():void 0},get role(){return s()?"button":void 0},get tabindex(){return s()?0:void 0},get onClick(){return l()?$:void 0},get onKeyDown(){return s()?B:void 0},get style(){return{"--kai-card-spacing":e.dense?"0.875rem":"1.25rem"}},get class(){return I("relative block overflow-hidden rounded-xl no-underline @container",d,ne[e.appearance],l()&&"cursor-pointer transition-colors hover:border-ring focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",e.class)}},v,{get children(){return[a(c,{get when(){return e.dismissible},get children(){var r=Z();return r.$$click=w,n(r,a(J,{class:"size-3.5","aria-hidden":"true"})),r}}),(()=>{var r=ee();return n(r,_),r})(),(()=>{var r=te();return n(r,a(c,{get when(){return e.media},get children(){var t=re();return n(t,()=>e.media),t}}),null),n(r,a(c,{get when(){return O()},children:S}),null),r})()]}}))}})}P(["click"]);var T=o("<slot>");const ie=["media","header","header-actions","footer","footer-actions"];X("kai-card",{appearance:"outlined",orientation:"vertical",collapse:"28rem",dense:!1,dismissible:!1,href:void 0,target:void 0,rel:void 0,clickable:!1},(u,{element:p,dispatch:e,flag:v})=>{const[b,k]=y({media:!1,header:!1,"header-actions":!1,footer:!1,"footer-actions":!1}),[w,g]=y(!1);F(()=>{const l=()=>{const m={};for(const d of ie)m[d]=!!p.querySelector(`:scope > [slot="${d}"]`);k(m),g(Array.from(p.childNodes).some(d=>d.nodeType===Node.ELEMENT_NODE&&!d.hasAttribute("slot")||d.nodeType===Node.TEXT_NODE&&(d.textContent??"").trim()!==""))};l();const h=new MutationObserver(l);h.observe(p,{childList:!0,characterData:!0,subtree:!0}),G(()=>h.disconnect())});const s=l=>b()[l]?(()=>{var h=T();return H(h,"name",l),h._$owner=E(),h})():void 0;return a(ae,{get appearance(){return u.appearance},get orientation(){return u.orientation},get collapse(){return u.collapse},get dense(){return v("dense")},get dismissible(){return v("dismissible")},get href(){return u.href},get target(){return u.target},get rel(){return u.rel},get clickable(){return v("clickable")},onDismiss:()=>e("kai-dismiss"),onCardClick:()=>e("kai-card-click"),get media(){return s("media")},get header(){return s("header")},get headerActions(){return s("header-actions")},get footer(){return s("footer")},get footerActions(){return s("footer-actions")},get hasBody(){return w()},get children(){var l=T();return l._$owner=E(),l}})});
@@ -1 +1 @@
1
- import{f as k,g as I,k as m,x as b,o as v,h as C,i as w,c as d,F as x,t as S,l as A,S as g,D as E}from"./chunks/define-B_tXMYRm.js";import{C as h,r as L,e as $}from"./chunks/card-routing-BK09BdmL.js";import{h as B,v as F,c as R,C as y}from"./chunks/card-renderer-CSoTL_e1.js";import"./form.js";import"./confirm-card.js";import"./tasks.js";import"./choice.js";import"./link-preview.js";import"./embed.js";import{m as U,B as q}from"./chunks/card-tags-D8lZ-C_U.js";var D=S('<div class="flex flex-col gap-3">');function M(e){switch(e.kind){case"action":return{kind:"action",action:e.action,payload:e.payload};case"submit":return{kind:"submit",data:e.data};case"dismiss":return{kind:"dismissed"};default:return}}function N(e){let r;const l=A(()=>!e.validate||!B(e.schemas,e.envelope.type)&&e.tag!==q[e.envelope.type]?null:F(e.envelope.type,e.envelope.data,e.schemas)),u=()=>{var a;return((a=l())==null?void 0:a.tier)==="hard"};m(()=>{r&&(r.data=e.envelope.data,r.cardId=e.envelope.id,e.envelope.title!=null&&(r.heading=e.envelope.title),r.resolution=e.envelope.resolution,r.setAttribute("theme",e.theme),r.setAttribute("data-card-id",e.envelope.id))}),v(()=>{e.tag||e.emit({kind:"error",cardId:e.envelope.id,message:`Unsupported card type: ${e.envelope.type}`})});let c=null;return m(()=>{const a=l();if(!e.tag)return;if(!a||a.ok){c=null;return}const s=R(a);s!==c&&(c=s,e.emit({kind:"error",cardId:e.envelope.id,message:s}))}),d(g,{get when(){return e.tag},get fallback(){return d(y,{get type(){return e.envelope.type},get cardId(){return e.envelope.id}})},children:a=>d(g,{get when(){return u()},get fallback(){return d(E,{get component(){return a()},ref(s){var p=r;typeof p=="function"?p(s):r=s}})},get children(){return d(y,{get type(){return e.envelope.type},get cardId(){return e.envelope.id},get reason(){return l().summary}})}})})}k("kai-cards",{cards:void 0,types:void 0,schemas:void 0,policy:void 0,validateCards:!0},(e,{element:r,dispatch:l,expose:u})=>{const[c,a]=I(e.cards??[]);m(b(()=>e.cards,t=>a(t??[]),{defer:!0})),v(()=>{const t=n=>{const o=n.detail;L(e.policy??{},o);const i=M(o);i&&l("kai-card-resolved",{cardId:o.cardId,resolution:i})};r.addEventListener(h,t),C(()=>r.removeEventListener(h,t))});const s=(t,n)=>a(o=>o.some(i=>i.id===t)?o.map(i=>i.id===t?{...i,resolution:n}:i):o);u({resolve:(t,n)=>s(t,n),dismiss:t=>s(t,{kind:"dismissed"}),getCard:t=>{var n;return((n=r.shadowRoot)==null?void 0:n.querySelector(`[data-card-id="${CSS.escape(t)}"]`))??null}});const p=()=>e.theme??"auto",f=()=>U(e.types);return(()=>{var t=D();return w(t,d(x,{get each(){return c()},children:n=>d(N,{envelope:n,get tag(){return f()[n.type]},get theme(){return p()},get validate(){return e.validateCards!==!1},get schemas(){return e.schemas},emit:o=>$(r,o)})})),t})()});
1
+ import{f as k,g as I,k as m,x as b,o as v,h as C,i as w,c as d,F as x,t as S,l as A,S as g,D as E}from"./chunks/define-wjHR1MkU.js";import{C as h,r as L,e as $}from"./chunks/card-routing-BK09BdmL.js";import{h as B,v as F,c as R,C as y}from"./chunks/card-renderer-3Dyl-FpN.js";import"./form.js";import"./confirm-card.js";import"./tasks.js";import"./choice.js";import"./link-preview.js";import"./embed.js";import{m as U,B as q}from"./chunks/card-tags-D8lZ-C_U.js";var D=S('<div class="flex flex-col gap-3">');function M(e){switch(e.kind){case"action":return{kind:"action",action:e.action,payload:e.payload};case"submit":return{kind:"submit",data:e.data};case"dismiss":return{kind:"dismissed"};default:return}}function N(e){let r;const l=A(()=>!e.validate||!B(e.schemas,e.envelope.type)&&e.tag!==q[e.envelope.type]?null:F(e.envelope.type,e.envelope.data,e.schemas)),u=()=>{var a;return((a=l())==null?void 0:a.tier)==="hard"};m(()=>{r&&(r.data=e.envelope.data,r.cardId=e.envelope.id,e.envelope.title!=null&&(r.heading=e.envelope.title),r.resolution=e.envelope.resolution,r.setAttribute("theme",e.theme),r.setAttribute("data-card-id",e.envelope.id))}),v(()=>{e.tag||e.emit({kind:"error",cardId:e.envelope.id,message:`Unsupported card type: ${e.envelope.type}`})});let c=null;return m(()=>{const a=l();if(!e.tag)return;if(!a||a.ok){c=null;return}const s=R(a);s!==c&&(c=s,e.emit({kind:"error",cardId:e.envelope.id,message:s}))}),d(g,{get when(){return e.tag},get fallback(){return d(y,{get type(){return e.envelope.type},get cardId(){return e.envelope.id}})},children:a=>d(g,{get when(){return u()},get fallback(){return d(E,{get component(){return a()},ref(s){var p=r;typeof p=="function"?p(s):r=s}})},get children(){return d(y,{get type(){return e.envelope.type},get cardId(){return e.envelope.id},get reason(){return l().summary}})}})})}k("kai-cards",{cards:void 0,types:void 0,schemas:void 0,policy:void 0,validateCards:!0},(e,{element:r,dispatch:l,expose:u})=>{const[c,a]=I(e.cards??[]);m(b(()=>e.cards,t=>a(t??[]),{defer:!0})),v(()=>{const t=n=>{const o=n.detail;L(e.policy??{},o);const i=M(o);i&&l("kai-card-resolved",{cardId:o.cardId,resolution:i})};r.addEventListener(h,t),C(()=>r.removeEventListener(h,t))});const s=(t,n)=>a(o=>o.some(i=>i.id===t)?o.map(i=>i.id===t?{...i,resolution:n}:i):o);u({resolve:(t,n)=>s(t,n),dismiss:t=>s(t,{kind:"dismissed"}),getCard:t=>{var n;return((n=r.shadowRoot)==null?void 0:n.querySelector(`[data-card-id="${CSS.escape(t)}"]`))??null}});const p=()=>e.theme??"auto",f=()=>U(e.types);return(()=>{var t=D();return w(t,d(x,{get each(){return c()},children:n=>d(N,{envelope:n,get tag(){return f()[n.type]},get theme(){return p()},get validate(){return e.validateCards!==!1},get schemas(){return e.schemas},emit:o=>$(r,o)})})),t})()});
@@ -1 +1 @@
1
- import{g as C,c as a,F as I,S as y,j as L,i as g,a as z,b as V,s as q,q as R,m as E,t as v,f as F,o as H,h as K}from"./chunks/define-B_tXMYRm.js";import{c as f}from"./chunks/cn-CU7UAWzk.js";import{C as M,a as _,b as B}from"./chunks/collapsible-DBcBkFPh.js";import{c as j}from"./chunks/chevron-down-MK7IzDqe.js";import{c as D}from"./chunks/circle-BG7VkPep.js";var A=v("<div>"),G=v('<span class="relative inline-flex size-4 items-center justify-center"><span>'),J=v('<div class="flex items-center gap-2"><span>'),N=v('<span class="relative inline-flex size-4 items-center justify-center">'),P=v('<div class="grid grid-cols-[min-content_minmax(0,1fr)] gap-x-4"><div class="bg-primary/20 ml-1.75 h-full w-px group-data-[last=true]:hidden"></div><div class="ml-1.75 h-full w-px bg-transparent group-data-[last=false]:hidden"></div><div class="mt-2 space-y-2">'),Q=v('<div class="flex justify-start group-data-[last=true]:hidden"><div class="bg-primary/20 ml-1.75 h-4 w-px">');function T(e){const[n,c]=q(e,["children","class"]);return(()=>{var o=A();return R(o,E({get class(){return f("text-muted-foreground text-sm",n.class)}},c),!1,!0),g(o,()=>n.children),o})()}function U(e){const n=()=>e.swapIconOnHover??!0;return a(_,{get class(){return f("group text-muted-foreground hover:text-foreground flex cursor-pointer items-center justify-start gap-1 text-left text-meta transition-colors",e.class)},get children(){return[(()=>{var c=J(),o=c.firstChild;return g(c,a(y,{get when(){return e.leftIcon},get fallback(){return(()=>{var l=N();return g(l,a(D,{class:"size-2 fill-current"})),l})()},get children(){var l=G(),d=l.firstChild;return g(d,()=>e.leftIcon),g(l,a(y,{get when(){return n()},get children(){return a(j,{class:"absolute size-4 opacity-0 transition-opacity group-hover:opacity-100 group-data-[state=open]:rotate-180"})}}),null),z(()=>V(d,f("transition-opacity",n()&&"group-hover:opacity-0"))),l}}),o),g(o,()=>e.children),c})(),a(y,{get when(){return!e.leftIcon},get children(){return a(j,{class:"size-4 transition-transform group-data-[state=open]:rotate-180"})}})]}})}function W(e){return a(B,{get class(){return f("text-popover-foreground data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down overflow-hidden",e.class)},get children(){var n=P(),c=n.firstChild,o=c.nextSibling,l=o.nextSibling;return g(l,()=>e.children),n}})}function X(e){return(()=>{var n=A();return g(n,()=>e.children),z(()=>V(n,f("space-y-0",e.class))),n})()}function Y(e){return a(M,{get class(){return f("group",e.class)},get"data-last"(){return e.isLast??!1},get open(){return e.open},get onOpenChange(){return e.onOpenChange},get children(){return[L(()=>e.children),Q()]}})}function O(e){return e==null?new Set:new Set(Array.isArray(e)?e:[e])}function $(e){var n;const[c,o]=C(O(e.defaultValue)),l=()=>e.type??"multiple",d=(t,r)=>t.id??String(r),m=()=>e.value!==void 0,u=()=>m()?O(e.value):c(),s=t=>u().has(t),h=t=>{if(l()==="single"){const r=t.values().next();return r.done?"":r.value}return[...t]},p=t=>{var r;const i=u();i.size===t.size&&[...i].every(b=>t.has(b))||(m()||o(t),(r=e.onValueChange)==null||r.call(e,h(t)))},x=(t,r)=>{if(l()==="single"){p(r?new Set([t]):new Set);return}const i=new Set(u());r?i.add(t):i.delete(t),p(i)},w=t=>{const r=e.steps[t];return r?d(r,t):void 0},S=()=>e.steps.map((t,r)=>d(t,r));return(n=e.controllerRef)==null||n.call(e,{value:()=>h(u()),expand:t=>{if(t===void 0){if(l()==="single"){const i=S();p(i.length?new Set([i[i.length-1]]):new Set)}else p(new Set(S()));return}const r=w(t);r!==void 0&&x(r,!0)},collapse:t=>{if(t===void 0){p(new Set);return}const r=w(t);r!==void 0&&x(r,!1)},toggle:t=>{if(t===void 0)return;const r=w(t);r!==void 0&&x(r,!s(r))}}),a(X,{get class(){return e.class},get children(){return a(I,{get each(){return e.steps},children:(t,r)=>{const i=()=>d(t,r());return a(Y,{get isLast(){return r()===e.steps.length-1},get open(){return s(i())},onOpenChange:b=>x(i(),b),get children(){return[a(U,{get children(){return t.label}}),a(y,{get when(){return t.content},get children(){return a(W,{get children(){return a(T,{get children(){return t.content}})}})}})]}})}})}})}function k(e){var n;return{label:e.getAttribute("label")??"",content:((n=e.textContent)==null?void 0:n.trim())||void 0,id:e.getAttribute("step-id")??void 0}}F("kai-chain-of-thought",{steps:[],type:void 0,value:void 0,defaultValue:void 0},(e,{element:n,dispatch:c,expose:o})=>{const[l,d]=C([]);H(()=>{const s=()=>{const p=[...n.querySelectorAll("kai-step")];d(p.map(k))};s();const h=new MutationObserver(s);h.observe(n,{childList:!0,attributes:!0,subtree:!0}),K(()=>h.disconnect())});const m=()=>[...e.steps??[],...l()];let u;return o({expand:s=>u?.expand(s),collapse:s=>u?.collapse(s),toggle:s=>u?.toggle(s)}),a($,{get steps(){return m()},get type(){return e.type},get value(){return e.value},get defaultValue(){return e.defaultValue},onValueChange:s=>{c("kai-value-change",{value:s})},controllerRef:s=>u=s})});export{k as parseKaiStepElement};
1
+ import{g as C,c as a,F as I,S as y,j as L,i as g,a as z,b as V,s as q,q as R,m as E,t as v,f as F,o as H,h as K}from"./chunks/define-wjHR1MkU.js";import{c as f}from"./chunks/cn-CU7UAWzk.js";import{C as M,a as _,b as B}from"./chunks/collapsible-BzbXpPzr.js";import{c as j}from"./chunks/chevron-down-DZ1GS39h.js";import{c as D}from"./chunks/circle-CDf9g6MQ.js";var A=v("<div>"),G=v('<span class="relative inline-flex size-4 items-center justify-center"><span>'),J=v('<div class="flex items-center gap-2"><span>'),N=v('<span class="relative inline-flex size-4 items-center justify-center">'),P=v('<div class="grid grid-cols-[min-content_minmax(0,1fr)] gap-x-4"><div class="bg-primary/20 ml-1.75 h-full w-px group-data-[last=true]:hidden"></div><div class="ml-1.75 h-full w-px bg-transparent group-data-[last=false]:hidden"></div><div class="mt-2 space-y-2">'),Q=v('<div class="flex justify-start group-data-[last=true]:hidden"><div class="bg-primary/20 ml-1.75 h-4 w-px">');function T(e){const[n,c]=q(e,["children","class"]);return(()=>{var o=A();return R(o,E({get class(){return f("text-muted-foreground text-sm",n.class)}},c),!1,!0),g(o,()=>n.children),o})()}function U(e){const n=()=>e.swapIconOnHover??!0;return a(_,{get class(){return f("group text-muted-foreground hover:text-foreground flex cursor-pointer items-center justify-start gap-1 text-left text-meta transition-colors",e.class)},get children(){return[(()=>{var c=J(),o=c.firstChild;return g(c,a(y,{get when(){return e.leftIcon},get fallback(){return(()=>{var l=N();return g(l,a(D,{class:"size-2 fill-current"})),l})()},get children(){var l=G(),d=l.firstChild;return g(d,()=>e.leftIcon),g(l,a(y,{get when(){return n()},get children(){return a(j,{class:"absolute size-4 opacity-0 transition-opacity group-hover:opacity-100 group-data-[state=open]:rotate-180"})}}),null),z(()=>V(d,f("transition-opacity",n()&&"group-hover:opacity-0"))),l}}),o),g(o,()=>e.children),c})(),a(y,{get when(){return!e.leftIcon},get children(){return a(j,{class:"size-4 transition-transform group-data-[state=open]:rotate-180"})}})]}})}function W(e){return a(B,{get class(){return f("text-popover-foreground data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down overflow-hidden",e.class)},get children(){var n=P(),c=n.firstChild,o=c.nextSibling,l=o.nextSibling;return g(l,()=>e.children),n}})}function X(e){return(()=>{var n=A();return g(n,()=>e.children),z(()=>V(n,f("space-y-0",e.class))),n})()}function Y(e){return a(M,{get class(){return f("group",e.class)},get"data-last"(){return e.isLast??!1},get open(){return e.open},get onOpenChange(){return e.onOpenChange},get children(){return[L(()=>e.children),Q()]}})}function O(e){return e==null?new Set:new Set(Array.isArray(e)?e:[e])}function $(e){var n;const[c,o]=C(O(e.defaultValue)),l=()=>e.type??"multiple",d=(t,r)=>t.id??String(r),m=()=>e.value!==void 0,u=()=>m()?O(e.value):c(),s=t=>u().has(t),h=t=>{if(l()==="single"){const r=t.values().next();return r.done?"":r.value}return[...t]},p=t=>{var r;const i=u();i.size===t.size&&[...i].every(b=>t.has(b))||(m()||o(t),(r=e.onValueChange)==null||r.call(e,h(t)))},x=(t,r)=>{if(l()==="single"){p(r?new Set([t]):new Set);return}const i=new Set(u());r?i.add(t):i.delete(t),p(i)},w=t=>{const r=e.steps[t];return r?d(r,t):void 0},S=()=>e.steps.map((t,r)=>d(t,r));return(n=e.controllerRef)==null||n.call(e,{value:()=>h(u()),expand:t=>{if(t===void 0){if(l()==="single"){const i=S();p(i.length?new Set([i[i.length-1]]):new Set)}else p(new Set(S()));return}const r=w(t);r!==void 0&&x(r,!0)},collapse:t=>{if(t===void 0){p(new Set);return}const r=w(t);r!==void 0&&x(r,!1)},toggle:t=>{if(t===void 0)return;const r=w(t);r!==void 0&&x(r,!s(r))}}),a(X,{get class(){return e.class},get children(){return a(I,{get each(){return e.steps},children:(t,r)=>{const i=()=>d(t,r());return a(Y,{get isLast(){return r()===e.steps.length-1},get open(){return s(i())},onOpenChange:b=>x(i(),b),get children(){return[a(U,{get children(){return t.label}}),a(y,{get when(){return t.content},get children(){return a(W,{get children(){return a(T,{get children(){return t.content}})}})}})]}})}})}})}function k(e){var n;return{label:e.getAttribute("label")??"",content:((n=e.textContent)==null?void 0:n.trim())||void 0,id:e.getAttribute("step-id")??void 0}}F("kai-chain-of-thought",{steps:[],type:void 0,value:void 0,defaultValue:void 0},(e,{element:n,dispatch:c,expose:o})=>{const[l,d]=C([]);H(()=>{const s=()=>{const p=[...n.querySelectorAll("kai-step")];d(p.map(k))};s();const h=new MutationObserver(s);h.observe(n,{childList:!0,attributes:!0,subtree:!0}),K(()=>h.disconnect())});const m=()=>[...e.steps??[],...l()];let u;return o({expand:s=>u?.expand(s),collapse:s=>u?.collapse(s),toggle:s=>u?.toggle(s)}),a($,{get steps(){return m()},get type(){return e.type},get value(){return e.value},get defaultValue(){return e.defaultValue},onValueChange:s=>{c("kai-value-change",{value:s})},controllerRef:s=>u=s})});export{k as parseKaiStepElement};
@@ -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,m as g,j as h,S as c,F as u,t as n,f as p}from"./chunks/define-wjHR1MkU.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-BgWTthUx.js";import{B as x}from"./chunks/button-flUbeufF.js";import{w}from"./chunks/disclosure-CcNbyLy0.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})});