@kitn.ai/ui 0.20.1 → 0.22.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 (510) hide show
  1. package/README.md +44 -45
  2. package/dist/components/artifact-card.d.ts +51 -0
  3. package/dist/components/artifact.d.ts +1 -1
  4. package/dist/components/attachments.d.ts +2 -2
  5. package/dist/components/audio-visualizer/index.d.ts +3 -3
  6. package/dist/components/audio-visualizer/labs/lab-choreography.d.ts +59 -0
  7. package/dist/components/audio-visualizer/labs/lab-shaders.d.ts +22 -0
  8. package/dist/components/audio-visualizer/labs/lab-visualizer.d.ts +18 -0
  9. package/dist/components/audio-visualizer/variant-aurora.d.ts +2 -2
  10. package/dist/components/audio-visualizer/variant-bar.d.ts +2 -2
  11. package/dist/components/audio-visualizer/variant-custom.d.ts +2 -2
  12. package/dist/components/audio-visualizer/variant-grid.d.ts +1 -1
  13. package/dist/components/audio-visualizer/variant-radial.d.ts +1 -1
  14. package/dist/components/audio-visualizer/variant-wave.d.ts +1 -1
  15. package/dist/components/card-fallback.d.ts +12 -2
  16. package/dist/components/card-renderer.d.ts +63 -2
  17. package/dist/components/chat-container.d.ts +3 -0
  18. package/dist/components/chat-scope-picker.d.ts +2 -2
  19. package/dist/components/chat-thread.d.ts +77 -18
  20. package/dist/components/choice-card.d.ts +3 -28
  21. package/dist/components/composer-dom.d.ts +1 -1
  22. package/dist/components/composer-highlight.d.ts +1 -1
  23. package/dist/components/composer-history.d.ts +1 -1
  24. package/dist/components/composer.d.ts +1 -1
  25. package/dist/components/confirm-card.d.ts +3 -18
  26. package/dist/components/context.d.ts +8 -4
  27. package/dist/components/conversation-item.d.ts +1 -1
  28. package/dist/components/conversation-list.d.ts +4 -3
  29. package/dist/components/embed.d.ts +3 -3
  30. package/dist/components/file-tree.d.ts +11 -22
  31. package/dist/components/form-widgets.d.ts +1 -1
  32. package/dist/components/form.d.ts +3 -44
  33. package/dist/components/link-preview.d.ts +3 -3
  34. package/dist/components/loader.d.ts +30 -48
  35. package/dist/components/message-skills.d.ts +4 -0
  36. package/dist/components/message.d.ts +84 -21
  37. package/dist/components/model-switcher.d.ts +2 -2
  38. package/dist/components/prompt-input.d.ts +2 -2
  39. package/dist/components/response-compare-types.d.ts +11 -2
  40. package/dist/components/response-compare.d.ts +3 -3
  41. package/dist/components/source.d.ts +12 -3
  42. package/dist/components/tasks-card.d.ts +3 -31
  43. package/dist/components/thread.d.ts +17 -5
  44. package/dist/components/toast.d.ts +2 -2
  45. package/dist/components/tool-classify.d.ts +8 -0
  46. package/dist/components/tool-types.d.ts +29 -1
  47. package/dist/components/tool.d.ts +3 -3
  48. package/dist/components/use-card-resolution.d.ts +1 -1
  49. package/dist/create-tween-COnPwAQN.js +338 -0
  50. package/dist/create-tween-DmTUaXWE.js +341 -0
  51. package/dist/create-tween-qs-jjvNA.js +7 -0
  52. package/dist/custom-elements.json +1726 -463
  53. package/dist/elements/agent-card.js +1 -1
  54. package/dist/elements/artifact.js +1 -1
  55. package/dist/elements/attachments.js +1 -1
  56. package/dist/elements/audio-visualizer.js +1 -1
  57. package/dist/elements/avatar.js +1 -1
  58. package/dist/elements/badge.js +1 -1
  59. package/dist/elements/button.js +1 -1
  60. package/dist/elements/card.js +1 -1
  61. package/dist/elements/cards.js +1 -1
  62. package/dist/elements/chain-of-thought.js +1 -1
  63. package/dist/elements/chat-scope-picker.js +1 -1
  64. package/dist/elements/chat-types.d.ts +70 -10
  65. package/dist/elements/chat-workspace.js +1 -1
  66. package/dist/elements/chat.js +1 -1
  67. package/dist/elements/checkpoint.js +1 -1
  68. package/dist/elements/choice.js +1 -1
  69. package/dist/elements/chunks/{Icon-Tj58ES_d.js → Icon-CHG5z5L7.js} +1 -1
  70. package/dist/elements/chunks/{action-icons-ns1Fnedj.js → action-icons-BAtCEEgg.js} +1 -1
  71. package/dist/elements/chunks/arrow-left-CFPTeL1Y.js +1 -0
  72. package/dist/elements/chunks/artifact-fBZOE4SO.js +1 -0
  73. package/dist/elements/chunks/{attachments-mCB5F1Fq.js → attachments-DpYMe5VQ.js} +1 -1
  74. package/dist/elements/chunks/audio-visualizer-DFwzAcuL.js +1 -0
  75. package/dist/elements/chunks/{badge-B4Zuajl2.js → badge-D6zodm6E.js} +1 -1
  76. package/dist/elements/chunks/{button-ZWNif3--.js → button-C42vrGvO.js} +1 -1
  77. package/dist/elements/chunks/card-renderer-DMZsSuvU.js +1 -0
  78. package/dist/elements/chunks/card-tags-D8lZ-C_U.js +1 -0
  79. package/dist/elements/chunks/chat-thread-CNNEhol-.js +1 -0
  80. package/dist/elements/chunks/check-7Q3K-iXE.js +1 -0
  81. package/dist/elements/chunks/chevron-down-CpNYLn7E.js +1 -0
  82. package/dist/elements/chunks/chevron-right-DrH85Fha.js +1 -0
  83. package/dist/elements/chunks/choice-card-YoWjpsFV.js +1 -0
  84. package/dist/elements/chunks/circle-C9KRjKYv.js +1 -0
  85. package/dist/elements/chunks/circle-check-Dmi7Y4zw.js +1 -0
  86. package/dist/elements/chunks/{circle-x-B7faJFlY.js → circle-x-QIxXda6k.js} +1 -1
  87. package/dist/elements/chunks/code-block-CqeugReY.js +1 -0
  88. package/dist/elements/chunks/{collapsible-DM1Ckd4e.js → collapsible-sTv-_5lF.js} +1 -1
  89. package/dist/elements/chunks/{composer-BguS0QL_.js → composer-ldQyeVEB.js} +2 -2
  90. package/dist/elements/chunks/confirm-card-C0RNOwfn.js +1 -0
  91. package/dist/elements/chunks/context-5qgypNHC.js +1 -0
  92. package/dist/elements/chunks/conversation-list-DLzOacXz.js +1 -0
  93. package/dist/elements/chunks/create-tween-V4TXZ93X.js +7 -0
  94. package/dist/elements/chunks/default-input-DeeRSDHc.js +1 -0
  95. package/dist/elements/chunks/define-lE-QvQFn.js +1 -0
  96. package/dist/elements/chunks/{disclosure-CIZ5c8nO.js → disclosure-DZSa9jog.js} +1 -1
  97. package/dist/elements/chunks/{download-Dsbg3ste.js → download-B2ZmnGqW.js} +1 -1
  98. package/dist/elements/chunks/{dropdown-BDd1-Zgi.js → dropdown-R3B7cSRE.js} +1 -1
  99. package/dist/elements/chunks/{ellipsis-Dw6qrss-.js → ellipsis-BmxceY4l.js} +1 -1
  100. package/dist/elements/chunks/embed-BVrtTZPo.js +1 -0
  101. package/dist/elements/chunks/{external-link-Vt74zAoL.js → external-link-BbdR7YO7.js} +1 -1
  102. package/dist/elements/chunks/{file-text-CZrZF6_v.js → file-text-D7dijo1A.js} +1 -1
  103. package/dist/elements/chunks/{file-tree-DF4okKyo.js → file-tree-0upJ5jeb.js} +1 -1
  104. package/dist/elements/chunks/{folder-glP5rha4.js → folder-D8z58t7B.js} +1 -1
  105. package/dist/elements/chunks/form-p5BKJNw5.js +1 -0
  106. package/dist/elements/chunks/hover-card-CN9s2md5.js +1 -0
  107. package/dist/elements/chunks/{icon-BLb8beoi.js → icon-CNiKP37E.js} +1 -1
  108. package/dist/elements/chunks/{info-CIsv92JK.js → info-BSnuJiHI.js} +1 -1
  109. package/dist/elements/chunks/{input-Dds1kFyt.js → input-BauDmzxX.js} +1 -1
  110. package/dist/elements/chunks/{kbd-De_xbgi9.js → kbd-BlHJaP9b.js} +1 -1
  111. package/dist/elements/chunks/{link-i4r_k7z4.js → link-DEi5iUWC.js} +1 -1
  112. package/dist/elements/chunks/link-preview-BaHyM6W4.js +1 -0
  113. package/dist/elements/chunks/{loader-BmQH4s3V.js → loader-CmJG_Fkq.js} +1 -1
  114. package/dist/elements/chunks/{markdown-Zi21WhUz.js → markdown-D2jaMpCN.js} +1 -1
  115. package/dist/elements/chunks/message-C5UfXZ2Z.js +1 -0
  116. package/dist/elements/chunks/message-CXWLmmLn.js +1 -0
  117. package/dist/elements/chunks/message-square-hXylwsy0.js +1 -0
  118. package/dist/elements/chunks/{minimize-2--ifeCGrl.js → minimize-2-C9ytZFMU.js} +1 -1
  119. package/dist/elements/chunks/model-switcher-CivGfD7-.js +1 -0
  120. package/dist/elements/chunks/{overlay-kD8dwRv_.js → overlay-DJL_sbOm.js} +1 -1
  121. package/dist/elements/chunks/{paperclip-q21dYOSK.js → paperclip-CFaB8naM.js} +1 -1
  122. package/dist/elements/chunks/{progress-bar-BrAIIaaJ.js → progress-bar-Br5SksfR.js} +1 -1
  123. package/dist/elements/chunks/{prompt-suggestion-Bjn2K-fR.js → prompt-suggestion-CMIvtAhU.js} +1 -1
  124. package/dist/elements/chunks/reasoning-DpZcNzLq.js +1 -0
  125. package/dist/elements/chunks/{resizable-Dp4JExql.js → resizable-Q8i3T9a_.js} +1 -1
  126. package/dist/elements/chunks/{rotate-cw-CFWWkpj2.js → rotate-cw-B5IHCBFV.js} +1 -1
  127. package/dist/elements/chunks/{scroll-area-Bb0kHH1j.js → scroll-area-eLeydBje.js} +1 -1
  128. package/dist/elements/chunks/scroll-button-DWbz0yA1.js +1 -0
  129. package/dist/elements/chunks/{separator-9kRgr1X9.js → separator-Xic78AD_.js} +1 -1
  130. package/dist/elements/chunks/{settings-B8lmec4D.js → settings-B8H51pAx.js} +1 -1
  131. package/dist/elements/chunks/{settings-group-I0hEuXiN.js → settings-group-CsG9eYLe.js} +1 -1
  132. package/dist/elements/chunks/{share-C3lTiYGt.js → share-CNTx0z__.js} +1 -1
  133. package/dist/elements/chunks/skeleton-CLlHTcMI.js +1 -0
  134. package/dist/elements/chunks/slots-CIw9RlAe.js +1 -0
  135. package/dist/elements/chunks/source-BoVcU5ok.js +1 -0
  136. package/dist/elements/chunks/{star-CSJtGxgv.js → star-CxQVTVhI.js} +1 -1
  137. package/dist/elements/chunks/{store-CHyW95TP.js → store-CLtS5CUG.js} +1 -1
  138. package/dist/elements/chunks/tasks-card-CzlkLmUt.js +1 -0
  139. package/dist/elements/chunks/{text-shimmer-Cn9TmNpI.js → text-shimmer-D5NhpIQ1.js} +1 -1
  140. package/dist/elements/chunks/textarea-x5Uxsmtm.js +1 -0
  141. package/dist/elements/chunks/{thumbs-up-PNVVThEF.js → thumbs-up-UobcJnx9.js} +1 -1
  142. package/dist/elements/chunks/{toast-store-DKbQn3Wn.js → toast-store-BOfs9eXq.js} +1 -1
  143. package/dist/elements/chunks/{tool-DjTRpIpl.js → tool-Be6Dh_dt.js} +1 -1
  144. package/dist/elements/chunks/tooltip-RxMxyCLF.js +1 -0
  145. package/dist/elements/chunks/{triangle-alert-DsHTHCPm.js → triangle-alert-C4yxH2XN.js} +1 -1
  146. package/dist/elements/chunks/use-card-resolution-jva9ehH6.js +1 -0
  147. package/dist/elements/chunks/{variant-aurora-Dc4nQUia.js → variant-aurora-Dx4VRcjS.js} +2 -2
  148. package/dist/elements/chunks/{variant-custom-y_3kVQhS.js → variant-custom-Y1ZTWgEa.js} +1 -1
  149. package/dist/elements/chunks/{variant-wave-D5OR1-9Z.js → variant-wave-B9gml9Cg.js} +2 -2
  150. package/dist/elements/chunks/{video-B7vmenoC.js → video-CrPHsytT.js} +1 -1
  151. package/dist/elements/chunks/x-_-OPHept.js +1 -0
  152. package/dist/elements/coachmark.js +1 -1
  153. package/dist/elements/code-block.js +1 -1
  154. package/dist/elements/command.js +1 -1
  155. package/dist/elements/compare.js +1 -1
  156. package/dist/elements/composer.js +1 -1
  157. package/dist/elements/confirm-card.js +1 -1
  158. package/dist/elements/context-meter.js +1 -1
  159. package/dist/elements/conversation-list.js +1 -1
  160. package/dist/elements/default-input.d.ts +34 -7
  161. package/dist/elements/define.d.ts +1 -0
  162. package/dist/elements/dialog.js +1 -1
  163. package/dist/elements/disclosure.d.ts +1 -1
  164. package/dist/elements/editable-label.js +1 -1
  165. package/dist/elements/element-data-types.d.ts +107 -0
  166. package/dist/elements/embed.js +1 -1
  167. package/dist/elements/empty.js +1 -1
  168. package/dist/elements/feedback-bar.js +1 -1
  169. package/dist/elements/file-tree.js +1 -1
  170. package/dist/elements/file-upload.js +1 -1
  171. package/dist/elements/form.js +1 -1
  172. package/dist/elements/hover-card.js +1 -1
  173. package/dist/elements/icon.js +1 -1
  174. package/dist/elements/image.js +1 -1
  175. package/dist/elements/input.js +1 -1
  176. package/dist/elements/kbd.js +1 -1
  177. package/dist/elements/link-preview.js +1 -1
  178. package/dist/elements/loader.js +1 -1
  179. package/dist/elements/markdown.js +1 -1
  180. package/dist/elements/menu.js +1 -1
  181. package/dist/elements/message-skills.js +1 -1
  182. package/dist/elements/message.js +1 -1
  183. package/dist/elements/model-switcher.js +1 -1
  184. package/dist/elements/nav.js +1 -1
  185. package/dist/elements/notice.js +1 -1
  186. package/dist/elements/pane-group.js +1 -1
  187. package/dist/elements/pane.js +1 -1
  188. package/dist/elements/popover.js +1 -1
  189. package/dist/elements/progress-bar.js +1 -1
  190. package/dist/elements/prompt-dock.js +1 -1
  191. package/dist/elements/prompt-input.js +1 -1
  192. package/dist/elements/prompt-suggestions.js +1 -1
  193. package/dist/elements/reasoning.js +1 -1
  194. package/dist/elements/register.d.ts +8 -6
  195. package/dist/elements/remote.js +1 -1
  196. package/dist/elements/resizable.js +1 -1
  197. package/dist/elements/response-stream.js +1 -1
  198. package/dist/elements/screen.js +1 -1
  199. package/dist/elements/scroll-area.js +1 -1
  200. package/dist/elements/scroll-button.js +1 -1
  201. package/dist/elements/search.js +1 -1
  202. package/dist/elements/segmented.js +1 -1
  203. package/dist/elements/separator.js +1 -1
  204. package/dist/elements/setting-item.js +1 -1
  205. package/dist/elements/settings-group.js +1 -1
  206. package/dist/elements/skeleton.js +1 -1
  207. package/dist/elements/slot-text.d.ts +51 -0
  208. package/dist/elements/slots.d.ts +21 -0
  209. package/dist/elements/source.js +1 -1
  210. package/dist/elements/status.js +1 -1
  211. package/dist/elements/switch.js +1 -1
  212. package/dist/elements/tabs.js +1 -1
  213. package/dist/elements/tasks.js +1 -1
  214. package/dist/elements/text-shimmer.js +1 -1
  215. package/dist/elements/thinking-bar.js +1 -1
  216. package/dist/elements/thread.js +1 -1
  217. package/dist/elements/toast.js +1 -1
  218. package/dist/elements/tool.js +1 -1
  219. package/dist/elements/tooltip.js +1 -1
  220. package/dist/elements/validate-messages.d.ts +25 -0
  221. package/dist/elements/voice-input.js +1 -1
  222. package/dist/elements/voice-output.js +1 -1
  223. package/dist/elements.d.ts +2734 -217
  224. package/dist/index.d.ts +163 -125
  225. package/dist/index.js +6572 -5990
  226. package/dist/index.server.d.ts +5 -0
  227. package/dist/index.server.js +5403 -4860
  228. package/dist/kai-provider.es.d.ts +5 -0
  229. package/dist/kai-provider.es.js +79 -77
  230. package/dist/kai.es.d.ts +5 -0
  231. package/dist/kai.es.js +1 -1
  232. package/dist/llms/llms-full.txt +774 -151
  233. package/dist/llms/llms.txt +57 -5
  234. package/dist/mcp.es.js +4756 -782
  235. package/dist/primitives/card-component-types.d.ts +11 -0
  236. package/dist/primitives/card-data-types.d.ts +196 -0
  237. package/dist/primitives/card-host.d.ts +1 -1
  238. package/dist/primitives/card-recovery.d.ts +3 -3
  239. package/dist/primitives/card-registry.d.ts +4 -14
  240. package/dist/primitives/card-resolution.d.ts +1 -1
  241. package/dist/primitives/card-routing.d.ts +1 -1
  242. package/dist/primitives/card-tags.d.ts +11 -0
  243. package/dist/primitives/card-validate-cards.d.ts +57 -0
  244. package/dist/primitives/card-validate-generator.testlib.d.ts +20 -0
  245. package/dist/primitives/card-validate-schemas.d.ts +17 -0
  246. package/dist/primitives/card-validate.d.ts +24 -0
  247. package/dist/primitives/create-kai-chat.d.ts +3 -3
  248. package/dist/primitives/embed-providers.d.ts +1 -1
  249. package/dist/primitives/link-preview.d.ts +1 -1
  250. package/dist/primitives/message-feedback.d.ts +2 -2
  251. package/dist/primitives/toast-store.d.ts +1 -1
  252. package/dist/react/index.d.ts +730 -302
  253. package/dist/react/use-kai-chat.d.ts +8 -4
  254. package/dist/react.d.ts +5 -0
  255. package/dist/react.js +418 -317
  256. package/dist/register-impl-AxIlqjo7.js +145 -0
  257. package/dist/remote/host-embed.d.ts +1 -1
  258. package/dist/remote/index.d.ts +2 -2
  259. package/dist/remote/provider-runtime.d.ts +2 -2
  260. package/dist/remote/provider.d.ts +2 -2
  261. package/dist/remote/validate.d.ts +1 -1
  262. package/dist/remote/wire.d.ts +1 -1
  263. package/dist/schemas/artifact.schema.json +92 -0
  264. package/dist/schemas/embed.schema.json +0 -2
  265. package/dist/schemas/from-tool-call.d.ts +48 -0
  266. package/dist/schemas/index.d.ts +48 -0
  267. package/dist/schemas/link.schema.json +0 -2
  268. package/dist/schemas/provider-subsets.d.ts +136 -0
  269. package/dist/schemas/registry.d.ts +140 -0
  270. package/dist/schemas/tool-defs.d.ts +121 -0
  271. package/dist/schemas.d.ts +5 -0
  272. package/dist/schemas.js +717 -0
  273. package/dist/solid-BGYSJyHG.js +22960 -0
  274. package/dist/solid-Dt2nEwfl.js +20194 -0
  275. package/dist/solid.d.ts +66 -0
  276. package/dist/solid.js +261 -0
  277. package/dist/solid.server.d.ts +5 -0
  278. package/dist/solid.server.js +261 -0
  279. package/dist/state/index.d.ts +14 -4
  280. package/dist/state/messages.d.ts +8 -3
  281. package/dist/state/mock.d.ts +46 -0
  282. package/dist/state/parts.d.ts +85 -0
  283. package/dist/state/stream.d.ts +15 -9
  284. package/dist/state.d.ts +5 -0
  285. package/dist/state.js +253 -84
  286. package/dist/ui/action-icons.d.ts +1 -1
  287. package/dist/ui/collapsible.d.ts +11 -6
  288. package/dist/ui/dropdown.d.ts +47 -42
  289. package/dist/ui/pane-group.d.ts +1 -1
  290. package/dist/{variant-aurora-DVtGqVH6.js → variant-aurora-B44X69AG.js} +1 -1
  291. package/dist/variant-aurora-BRhV8Flk.js +391 -0
  292. package/dist/variant-aurora-Ds5ou9BH.js +381 -0
  293. package/dist/variant-custom-B20FhtYj.js +170 -0
  294. package/dist/{variant-custom-Dif-IV4u.js → variant-custom-BvA1Schl.js} +1 -1
  295. package/dist/variant-custom-D6Rtvneb.js +200 -0
  296. package/dist/{variant-wave-DbfNdvSi.js → variant-wave-BUQtkryq.js} +1 -1
  297. package/dist/variant-wave-BVYnqy9L.js +218 -0
  298. package/dist/variant-wave-DXC6_LcH.js +208 -0
  299. package/dist/wire/chunk.d.ts +171 -0
  300. package/dist/wire/consume.d.ts +26 -0
  301. package/dist/wire/encode.d.ts +221 -0
  302. package/dist/wire/files.d.ts +116 -0
  303. package/dist/wire/formats/anthropic.d.ts +2 -0
  304. package/dist/wire/formats/openai.d.ts +5 -0
  305. package/dist/wire/index.d.ts +16 -0
  306. package/dist/wire/media-types.d.ts +106 -0
  307. package/dist/wire/read.d.ts +26 -0
  308. package/dist/wire/sink-helpers.d.ts +21 -0
  309. package/dist/wire/sse.d.ts +33 -0
  310. package/dist/wire.d.ts +5 -53
  311. package/dist/wire.js +1126 -0
  312. package/frameworks/react/index.tsx +191 -158
  313. package/frameworks/react/runtime.tsx +21 -1
  314. package/frameworks/react/use-kai-chat.tsx +11 -1
  315. package/llms-full.txt +774 -151
  316. package/llms.txt +57 -5
  317. package/package.json +62 -8
  318. package/src/agent-tooling/archetypes.ts +127 -0
  319. package/src/agent-tooling/integrations/anthropic.ts +436 -0
  320. package/src/agent-tooling/integrations/cloudflare.ts +141 -52
  321. package/src/agent-tooling/integrations/langgraph.ts +80 -13
  322. package/src/agent-tooling/integrations/mastra.ts +161 -12
  323. package/src/agent-tooling/integrations/mock.ts +47 -8
  324. package/src/agent-tooling/integrations/ollama.ts +68 -24
  325. package/src/agent-tooling/integrations/openai.ts +89 -0
  326. package/src/agent-tooling/integrations/openrouter.ts +58 -8
  327. package/src/agent-tooling/integrations/pi.ts +104 -23
  328. package/src/agent-tooling/integrations/pydantic-ai.ts +61 -5
  329. package/src/agent-tooling/integrations/vercel-ai-sdk.ts +120 -13
  330. package/src/agent-tooling/mcp/manifest.ts +206 -25
  331. package/src/agent-tooling/mcp/tools/debug.ts +13 -7
  332. package/src/agent-tooling/mcp/tools/reference.ts +285 -6
  333. package/src/agent-tooling/mcp/tools/scaffold.ts +4152 -661
  334. package/src/agent-tooling/registry.ts +74 -0
  335. package/src/agent-tooling/types.ts +361 -1
  336. package/src/components/artifact-card.tsx +120 -0
  337. package/src/components/audio-visualizer/index.tsx +9 -0
  338. package/src/components/audio-visualizer/labs/lab-choreography.ts +187 -0
  339. package/src/components/audio-visualizer/labs/lab-shaders.ts +363 -0
  340. package/src/components/audio-visualizer/labs/lab-visualizer.tsx +102 -0
  341. package/src/components/audio-visualizer/shader-canvas.tsx +31 -1
  342. package/src/components/card-fallback.tsx +42 -10
  343. package/src/components/card-renderer.tsx +146 -9
  344. package/src/components/chat-container.tsx +4 -0
  345. package/src/components/chat-thread.tsx +128 -52
  346. package/src/components/choice-card.tsx +17 -29
  347. package/src/components/composer.tsx +12 -2
  348. package/src/components/confirm-card.tsx +24 -20
  349. package/src/components/context.tsx +30 -16
  350. package/src/components/conversation-item.tsx +6 -0
  351. package/src/components/conversation-list.tsx +18 -2
  352. package/src/components/file-tree.tsx +11 -22
  353. package/src/components/file-upload.tsx +14 -8
  354. package/src/components/form.tsx +14 -47
  355. package/src/components/loader.tsx +39 -12
  356. package/src/components/message-skills.tsx +4 -0
  357. package/src/components/message.tsx +294 -46
  358. package/src/components/model-switcher.tsx +38 -8
  359. package/src/components/reasoning.tsx +92 -5
  360. package/src/components/response-compare-types.ts +25 -0
  361. package/src/components/response-compare.tsx +4 -9
  362. package/src/components/source.tsx +50 -24
  363. package/src/components/tasks-card.tsx +10 -33
  364. package/src/components/thread.tsx +84 -42
  365. package/src/components/toast.tsx +17 -6
  366. package/src/components/tool-classify.ts +26 -0
  367. package/src/components/tool-types.ts +31 -1
  368. package/src/elements/agent-card.tsx +11 -11
  369. package/src/elements/artifact.tsx +15 -7
  370. package/src/elements/attachments.tsx +6 -4
  371. package/src/elements/avatar.tsx +1 -1
  372. package/src/elements/button.tsx +29 -6
  373. package/src/elements/card.tsx +2 -2
  374. package/src/elements/cards.tsx +109 -14
  375. package/src/elements/chain-of-thought.tsx +14 -10
  376. package/src/elements/chat-scope-picker.tsx +9 -7
  377. package/src/elements/chat-types.ts +59 -6
  378. package/src/elements/chat-workspace.tsx +50 -9
  379. package/src/elements/chat.tsx +90 -3
  380. package/src/elements/choice.tsx +8 -8
  381. package/src/elements/coachmark.tsx +1 -1
  382. package/src/elements/command.tsx +8 -23
  383. package/src/elements/compare.tsx +7 -6
  384. package/src/elements/compiled.css +1 -1
  385. package/src/elements/composer.tsx +8 -8
  386. package/src/elements/confirm-card.tsx +9 -9
  387. package/src/elements/context-meter.tsx +4 -18
  388. package/src/elements/conversation-list.tsx +14 -9
  389. package/src/elements/default-input.tsx +131 -8
  390. package/src/elements/define.tsx +178 -43
  391. package/src/elements/editable-label.tsx +17 -2
  392. package/src/elements/element-data-types.ts +112 -0
  393. package/src/elements/element-meta.json +1624 -306
  394. package/src/elements/element-types.d.ts +2645 -214
  395. package/src/elements/feedback-bar.tsx +1 -1
  396. package/src/elements/file-tree.tsx +1 -1
  397. package/src/elements/file-upload.tsx +1 -1
  398. package/src/elements/form.tsx +14 -6
  399. package/src/elements/input.tsx +1 -1
  400. package/src/elements/kbd.tsx +1 -1
  401. package/src/elements/menu.tsx +40 -32
  402. package/src/elements/message-skills.tsx +7 -9
  403. package/src/elements/message.tsx +200 -32
  404. package/src/elements/model-switcher.tsx +5 -3
  405. package/src/elements/pane.tsx +1 -1
  406. package/src/elements/prompt-dock.tsx +8 -8
  407. package/src/elements/prompt-input.tsx +10 -10
  408. package/src/elements/prompt-suggestions.tsx +7 -4
  409. package/src/elements/reasoning.tsx +1 -1
  410. package/src/elements/register.ts +9 -0
  411. package/src/elements/resizable.globals.d.ts +36 -0
  412. package/src/elements/resizable.tsx +24 -13
  413. package/src/elements/response-stream.tsx +1 -1
  414. package/src/elements/scroll-button.tsx +1 -1
  415. package/src/elements/search.tsx +6 -1
  416. package/src/elements/segmented.tsx +5 -11
  417. package/src/elements/separator.tsx +1 -1
  418. package/src/elements/slot-text.ts +73 -0
  419. package/src/elements/slots.ts +67 -24
  420. package/src/elements/source.tsx +21 -22
  421. package/src/elements/switch.tsx +3 -3
  422. package/src/elements/tasks.tsx +5 -4
  423. package/src/elements/thread.tsx +36 -4
  424. package/src/elements/toast.tsx +3 -2
  425. package/src/elements/tool.tsx +1 -1
  426. package/src/elements/validate-messages.ts +76 -0
  427. package/src/elements/voice-input.tsx +7 -7
  428. package/src/elements/voice-output.tsx +4 -4
  429. package/src/index.ts +145 -6
  430. package/src/primitives/card-component-types.ts +63 -0
  431. package/src/primitives/card-data-types.ts +312 -0
  432. package/src/primitives/card-recovery.ts +13 -2
  433. package/src/primitives/card-registry.tsx +34 -23
  434. package/src/primitives/card-schemas/artifact.schema.json +92 -0
  435. package/src/primitives/card-schemas/embed.schema.json +0 -2
  436. package/src/primitives/card-schemas/link.schema.json +0 -2
  437. package/src/primitives/card-tags.ts +61 -0
  438. package/src/primitives/card-validate-cards.ts +255 -0
  439. package/src/primitives/card-validate-generator.testlib.ts +38 -0
  440. package/src/primitives/card-validate-schemas.ts +58 -0
  441. package/src/primitives/card-validate.ts +48 -20
  442. package/src/primitives/create-tween.ts +54 -2
  443. package/src/primitives/message-feedback.ts +3 -2
  444. package/src/primitives/use-audio-analysis.ts +20 -1
  445. package/src/primitives/use-sequencer.ts +20 -1
  446. package/src/schemas/from-tool-call.ts +151 -0
  447. package/src/schemas/index.ts +340 -0
  448. package/src/schemas/provider-subsets.ts +538 -0
  449. package/src/schemas/registry.ts +355 -0
  450. package/src/schemas/tool-defs.ts +492 -0
  451. package/src/solid.ts +150 -0
  452. package/src/state/index.ts +27 -1
  453. package/src/state/messages.ts +21 -4
  454. package/src/state/mock.ts +211 -0
  455. package/src/state/parts.ts +295 -0
  456. package/src/state/stream.ts +56 -58
  457. package/src/ui/collapsible.tsx +17 -5
  458. package/src/ui/dropdown.tsx +46 -12
  459. package/src/ui/overlay.tsx +10 -4
  460. package/src/wire/chunk.ts +201 -0
  461. package/src/wire/consume.ts +440 -0
  462. package/src/wire/encode.ts +689 -0
  463. package/src/wire/files.ts +342 -0
  464. package/src/wire/formats/anthropic.ts +267 -0
  465. package/src/wire/formats/openai.ts +187 -0
  466. package/src/wire/index.ts +73 -0
  467. package/src/wire/media-types.ts +344 -0
  468. package/src/wire/read.ts +152 -0
  469. package/src/wire/sink-helpers.ts +50 -0
  470. package/src/wire/sse.ts +140 -0
  471. package/dist/create-tween-hvpmSuwW.js +0 -7
  472. package/dist/elements/chunks/arrow-left-DQocUFvy.js +0 -1
  473. package/dist/elements/chunks/audio-visualizer-BqNy7dfm.js +0 -1
  474. package/dist/elements/chunks/card-BkHbp4BA.js +0 -1
  475. package/dist/elements/chunks/chat-thread-CkRN6pZ7.js +0 -1
  476. package/dist/elements/chunks/check-B9-gn6SS.js +0 -1
  477. package/dist/elements/chunks/chevron-down-BNsxc2hk.js +0 -1
  478. package/dist/elements/chunks/chevron-right-Hv00StBO.js +0 -1
  479. package/dist/elements/chunks/circle-0e3KJTDr.js +0 -1
  480. package/dist/elements/chunks/circle-check-BNAS0JEy.js +0 -1
  481. package/dist/elements/chunks/code-block-BFUHn6Va.js +0 -1
  482. package/dist/elements/chunks/context-Cb7k4F-v.js +0 -1
  483. package/dist/elements/chunks/conversation-list-CvoAkWhN.js +0 -1
  484. package/dist/elements/chunks/create-tween-oVvAIG8r.js +0 -7
  485. package/dist/elements/chunks/default-input-Cqqilg9t.js +0 -1
  486. package/dist/elements/chunks/define-D1din7Ld.js +0 -1
  487. package/dist/elements/chunks/hover-card-Cmm6Q53m.js +0 -1
  488. package/dist/elements/chunks/message-BqyXDN3-.js +0 -1
  489. package/dist/elements/chunks/message-feedback-Djr3z6Yb.js +0 -1
  490. package/dist/elements/chunks/message-square-vFAgbDaX.js +0 -1
  491. package/dist/elements/chunks/model-switcher-B94YAKsM.js +0 -1
  492. package/dist/elements/chunks/reasoning-DTpCGtnY.js +0 -1
  493. package/dist/elements/chunks/scroll-button-B0cH5fXf.js +0 -1
  494. package/dist/elements/chunks/skeleton-DSXW5Yya.js +0 -1
  495. package/dist/elements/chunks/slots--V19HwUb.js +0 -1
  496. package/dist/elements/chunks/textarea-CUwqAX0G.js +0 -1
  497. package/dist/elements/chunks/tooltip-CgBZCVKp.js +0 -1
  498. package/dist/elements/chunks/use-card-resolution-BSu_XHjH.js +0 -1
  499. package/dist/elements/chunks/x-GRUeeQFT.js +0 -1
  500. package/dist/host-embed.d.ts +0 -33
  501. package/dist/kai-provider.d.ts +0 -2
  502. package/dist/origin.d.ts +0 -5
  503. package/dist/provider-runtime.d.ts +0 -27
  504. package/dist/register-impl-DQyejdfb.js +0 -145
  505. package/dist/validate.d.ts +0 -4
  506. package/dist/version.d.ts +0 -4
  507. package/src/components/component-meta.json +0 -4550
  508. package/src/elements/card-media.jpg +0 -0
  509. package/src/elements/resizable.d.ts +0 -27
  510. package/src/elements/video-poster.jpg +0 -0
@@ -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-D1din7Ld.js";import{c as u}from"./chunks/cn-CU7UAWzk.js";import{I as N}from"./chunks/Icon-Tj58ES_d.js";import{e as j}from"./chunks/ellipsis-Dw6qrss-.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-lE-QvQFn.js";import{c as u}from"./chunks/cn-CU7UAWzk.js";import{I as N}from"./chunks/Icon-CHG5z5L7.js";import{e as j}from"./chunks/ellipsis-BmxceY4l.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{c as a,m as P,s as ce,g as k,h as F,j as C,o as Z,k as j,l as he,i as f,S as b,t as v,d as p,a as y,b as J,u as Q,n as ge,p as X,e as fe,f as be}from"./chunks/define-D1din7Ld.js";import{c as E}from"./chunks/cn-CU7UAWzk.js";import{B as z}from"./chunks/button-ZWNif3--.js";import{C as me,a as ve}from"./chunks/code-block-BFUHn6Va.js";import{F as pe}from"./chunks/file-tree-DF4okKyo.js";import{L as we}from"./chunks/loader-BmQH4s3V.js";import{a as xe}from"./chunks/arrow-left-DQocUFvy.js";import{I as Y}from"./chunks/Icon-Tj58ES_d.js";import{r as ke,h as ye,c as ze}from"./chunks/rotate-cw-CFWWkpj2.js";import{d as Te}from"./chunks/download-Dsbg3ste.js";import{e as ee}from"./chunks/external-link-Vt74zAoL.js";import{f as Fe}from"./chunks/file-text-CZrZF6_v.js";import{m as Ce,a as Pe}from"./chunks/minimize-2--ifeCGrl.js";var Re=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],Se=r=>a(Y,P(r,{name:"ArrowRight",iconNode:Re})),Oe=Se,Ne=[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Ie=r=>a(Y,P(r,{name:"Eye",iconNode:Ne})),je=Ie;const Ee="6.0.227",re=`https://cdn.jsdelivr.net/npm/pdfjs-dist@${Ee}/build`,He=()=>import(/*@vite-ignore*/`${re}/pdf.min.mjs`),Me=`${re}/pdf.worker.min.mjs`;let Ue=He,Le=Me,H=null;function $e(){if(!H){const r=Ue;H=(async()=>{const n=await r(),e=n.default??n;return e.GlobalWorkerOptions.workerSrc=Le,e})()}return H}async function Be(r,n,e){const l=await(await $e()).getDocument({url:r}).promise;n.replaceChildren();const s=typeof window<"u"&&window.devicePixelRatio?window.devicePixelRatio:1;for(let d=1;d<=l.numPages;d++){const c=await l.getPage(d),i=c.getViewport({scale:1}),h=i.width>0?e/i.width:1,u=c.getViewport({scale:h*s}),g=document.createElement("canvas");g.width=Math.max(1,Math.floor(u.width)),g.height=Math.max(1,Math.floor(u.height)),g.setAttribute("role","img"),g.setAttribute("aria-label",`Page ${d}`),g.style.width="100%",g.style.height="auto",g.style.display="block";const w=g.getContext("2d");n.appendChild(g),await c.render({canvasContext:w,viewport:u}).promise}return{pages:l.numPages}}var De=v('<div><div class="relative min-h-0 flex-1">'),Ae=v('<form class="min-w-0 flex-1"><label class=sr-only for=kai-artifact-path>Address</label><input id=kai-artifact-path name=kai-artifact-path type=text autocomplete=off placeholder="Enter a path or URL\u2026">'),Ve=v("<div class=flex-1 aria-hidden=true>"),We=v('<div role=tablist aria-label=View class="flex shrink-0 items-center gap-0.5 rounded-md bg-muted p-0.5">'),qe=v('<div data-artifact-toolbar class="flex shrink-0 items-center gap-1.5 border-b border-border bg-surface px-2 py-1.5">'),Ke=v("<button type=button role=tab>"),_e=v('<iframe class="absolute inset-0 h-full w-full border-0 bg-white">'),Ge=v('<div class="absolute inset-0 flex"><div class="w-56 shrink-0 overflow-auto border-r border-border bg-surface-sunken py-1.5 scrollbar-thin"></div><div class="min-w-0 flex-1 overflow-auto scrollbar-thin">'),Ze=v('<div class="flex h-full items-center justify-center p-6 text-sm text-muted-foreground">Select a file to view its source.'),Je=v('<div class="flex h-full items-center justify-center p-6 text-sm text-muted-foreground">No source \u2014 this file (<!>) has no code view.'),Qe=v(`<div role=region aria-label="PDF preview unavailable"class="absolute inset-0 flex flex-col items-center justify-center gap-3 bg-card p-6 text-center"><div class="text-sm font-medium text-foreground"></div><div class="text-xs text-muted-foreground">Can't preview this PDF inline.</div><div class="flex flex-wrap items-center justify-center gap-2"><a class="inline-flex h-8 items-center gap-1.5 rounded-md border border-border bg-background px-3 text-xs font-medium text-foreground transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"target=_blank rel="noopener noreferrer">Open in new tab</a><a class="inline-flex h-8 items-center gap-1.5 rounded-md border border-border bg-background px-3 text-xs font-medium text-foreground transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"download>Download`),Xe=v('<div class="pointer-events-none absolute inset-0 flex items-center justify-center">'),Ye=v('<div class="absolute inset-0"><div role=region aria-label="PDF preview"tabindex=0 class="absolute inset-0 flex flex-col items-center gap-3 overflow-auto bg-surface-sunken p-3 scrollbar-thin focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset">');const er="allow-scripts allow-forms";function rr(r,n){if(r.url)return r.url;if(!n)return r.path;try{return new URL(r.path,n).href}catch{return r.path}}function tr(r,n){if(!r)return!1;const e=n.find(s=>s.url===r||s.path===r);if(e?.type==="pdf")return!0;const l=r.split(/[?#]/)[0];return/\.pdf$/i.test(l)}function nr(r){const n=P({files:[],defaultTab:"preview",sandbox:er,showNav:!0,showReload:!0,showHome:!0,showPathField:!0,showTabs:!0,expandable:!1,openInTab:!1,standalone:!1,readonlyPath:!1,maximized:!1},r),[e,l]=ce(n,["src","files","tab","defaultTab","activeFile","sandbox","iframeTitle","onNavigate","onTabChange","onFileSelect","maximized","onMaximizeChange","showNav","showReload","showHome","showPathField","showTabs","expandable","openInTab","standalone","readonlyPath","displayUrl","controllerRef","class"]),[s,d]=k(e.src?[e.src]:[]),[c,i]=k(e.src?0:-1),h=()=>s()[c()]??"",u=()=>c()>0,g=()=>c()<s().length-1,[w,M]=k(e.tab??e.defaultTab),[U,L]=k(e.activeFile),[ne,ae]=k(0),[R,S]=k(e.maximized??!1);F(()=>S(e.maximized??!1));const ie=()=>{var t;const o=!R();S(o),(t=e.onMaximizeChange)==null||t.call(e,o)},$=C(()=>{const t=h();return!!t&&t!=="about:blank"}),B=()=>{$()&&window.open(h(),"_blank","noopener,noreferrer")},D=C(()=>e.expandable&&!e.standalone),le=C(()=>e.showNav||e.showReload||e.showHome||e.showPathField||e.showTabs||D()||e.openInTab);let x;F(()=>{e.tab!==void 0&&M(e.tab)}),F(()=>L(e.activeFile)),F(Z(()=>e.src,t=>{t&&t!==h()&&T(t)},{defer:!0}));const A=t=>t===void 0?void 0:e.files.find(o=>o.path===t),V=C(()=>A(U())),oe=C(()=>{const t=V();return!!t&&t.type!=="image"&&t.type!=="pdf"&&typeof t.code=="string"});function T(t){if(t===h()){N();return}d(o=>[...o.slice(0,c()+1),t]),i(o=>o+1),O()}function O(){var t;const o=h();x&&(x.src=o||"about:blank"),(t=e.onNavigate)==null||t.call(e,o)}function se(t){var o;t!==w()&&(M(t),(o=e.onTabChange)==null||o.call(e,t))}function W(t,o){var m;L(t),(m=e.onFileSelect)==null||m.call(e,t),T(rr(o,e.src))}const q=()=>{u()&&(i(t=>t-1),O())},K=()=>{g()&&(i(t=>t+1),O())};function N(){var t;const o=h();x&&(x.src="about:blank",x.src=o||"about:blank"),ae(m=>m+1),(t=e.onNavigate)==null||t.call(e,o)}const _=()=>{e.src&&T(e.src)},G=t=>{var o;R()!==t&&(S(t),(o=e.onMaximizeChange)==null||o.call(e,t))};j(()=>{var t;(t=e.controllerRef)==null||t.call(e,{back:()=>q(),forward:()=>K(),reload:()=>N(),home:()=>_(),navigate:o=>T(o),selectFile:o=>{const m=A(o);m&&W(o,m)},openExternal:()=>B(),maximize:()=>G(!0),restore:()=>G(!1)})});const de=()=>{var t,o;try{const m=(t=x?.contentWindow)==null?void 0:t.location.href;m&&m!=="about:blank"&&m!==h()&&(d(I=>[...I.slice(0,c()+1),m]),i(I=>I+1),(o=e.onNavigate)==null||o.call(e,m))}catch{}},ue=t=>{t.preventDefault();const o=t.currentTarget.elements.namedItem("kai-artifact-path");if(e.readonlyPath||e.displayUrl!=null){o&&(o.value=e.displayUrl??h());return}o&&o.value&&T(o.value)};return(()=>{var t=De(),o=t.firstChild;return he(t,P({get class(){return E("flex h-full w-full flex-col overflow-hidden bg-card text-card-foreground",e.standalone&&"rounded-xl border border-border",e.class)}},l),!1,!0),f(t,a(b,{get when(){return le()},get children(){return a(ar,{url:()=>e.displayUrl??h(),tab:w,canBack:u,canForward:g,canHome:()=>!!e.src,onBack:q,onForward:K,onReload:N,onHome:_,onSubmitPath:ue,onTab:se,showNav:()=>e.showNav,showReload:()=>e.showReload,showHome:()=>e.showHome,showPathField:()=>e.showPathField,showTabs:()=>e.showTabs,showExpand:D,showOpenInTab:()=>e.openInTab,maximized:R,onToggleMaximize:ie,canOpenInTab:$,onOpenInTab:B,readonlyPath:()=>e.readonlyPath||e.displayUrl!=null})}}),o),f(o,a(b,{get when(){return w()==="preview"},get fallback(){return a(lr,{get files(){return e.files},activeFile:U,activeFileObj:V,hasSource:oe,onSelect:W})},get children(){return a(b,{get when(){return tr(h(),e.files)},get fallback(){return a(ir,{ref:m=>x=m,src:h,get sandbox(){return e.sandbox},get title(){return e.iframeTitle??"Artifact preview"},onLoad:de})},get children(){return a(sr,{get url(){return h()},get reloadKey(){return ne()}})}})}})),t})()}function ar(r){return(()=>{var n=qe();return f(n,a(b,{get when(){return r.showNav()},get children(){return[a(z,{variant:"ghost",size:"icon-sm","aria-label":"Back",get disabled(){return!r.canBack()},onClick:()=>r.onBack(),get children(){return a(xe,{size:16,"aria-hidden":"true"})}}),a(z,{variant:"ghost",size:"icon-sm","aria-label":"Forward",get disabled(){return!r.canForward()},onClick:()=>r.onForward(),get children(){return a(Oe,{size:16,"aria-hidden":"true"})}})]}}),null),f(n,a(b,{get when(){return r.showReload()},get children(){return a(z,{variant:"ghost",size:"icon-sm","aria-label":"Reload",onClick:()=>r.onReload(),get children(){return a(ke,{size:15,"aria-hidden":"true"})}})}}),null),f(n,a(b,{get when(){return r.showHome()},get children(){return a(z,{variant:"ghost",size:"icon-sm","aria-label":"Home",get disabled(){return!r.canHome()},onClick:()=>r.onHome(),get children(){return a(ye,{size:15,"aria-hidden":"true"})}})}}),null),f(n,a(b,{get when(){return r.showPathField()},get children(){var e=Ae(),l=e.firstChild,s=l.nextSibling;return e.addEventListener("submit",d=>r.onSubmitPath(d)),p(s,"spellcheck",!1),y(d=>{var c=r.readonlyPath()||void 0,i=r.readonlyPath()?"true":void 0,h=E("h-7 w-full rounded-md border border-border px-2.5 text-xs text-foreground font-mono outline-none",r.readonlyPath()?"bg-muted/40 cursor-default":"bg-background focus-visible:ring-2 focus-visible:ring-ring");return c!==d.e&&(s.readOnly=d.e=c),i!==d.t&&p(s,"aria-readonly",d.t=i),h!==d.a&&J(s,d.a=h),d},{e:void 0,t:void 0,a:void 0}),y(()=>s.value=r.url()),e}}),null),f(n,a(b,{get when(){return!r.showPathField()},get children(){return Ve()}}),null),f(n,a(b,{get when(){return r.showExpand()},get children(){return a(z,{variant:"ghost",size:"icon-sm",get"aria-label"(){return r.maximized()?"Collapse":"Expand"},get"aria-expanded"(){return r.maximized()},onClick:()=>r.onToggleMaximize(),get children(){return a(b,{get when(){return r.maximized()},get fallback(){return a(Pe,{size:15,"aria-hidden":"true"})},get children(){return a(Ce,{size:15,"aria-hidden":"true"})}})}})}}),null),f(n,a(b,{get when(){return r.showOpenInTab()},get children(){return a(z,{variant:"ghost",size:"icon-sm","aria-label":"Open in new tab",get disabled(){return!r.canOpenInTab()},onClick:()=>r.onOpenInTab(),get children(){return a(ee,{size:15,"aria-hidden":"true"})}})}}),null),f(n,a(b,{get when(){return r.showTabs()},get children(){var e=We();return f(e,a(te,{label:"Preview",get icon(){return a(je,{size:14,"aria-hidden":"true"})},get selected(){return r.tab()==="preview"},onClick:()=>r.onTab("preview")}),null),f(e,a(te,{label:"Code",get icon(){return a(ze,{size:14,"aria-hidden":"true"})},get selected(){return r.tab()==="code"},onClick:()=>r.onTab("code")}),null),e}}),null),n})()}function te(r){return(()=>{var n=Ke();return n.$$click=()=>r.onClick(),f(n,()=>r.icon,null),f(n,()=>r.label,null),y(e=>{var l=r.selected,s=E("inline-flex h-6 items-center gap-1.5 rounded px-2 text-xs font-medium transition-colors outline-none","focus-visible:ring-2 focus-visible:ring-ring",r.selected?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground");return l!==e.e&&p(n,"aria-selected",e.e=l),s!==e.t&&J(n,e.t=s),e},{e:void 0,t:void 0}),n})()}function ir(r){return(()=>{var n=_e();n.addEventListener("load",()=>r.onLoad());var e=r.ref;return typeof e=="function"?Q(e,n):r.ref=n,y(l=>{var s=r.src()||"about:blank",d=r.sandbox,c=r.title;return s!==l.e&&p(n,"src",l.e=s),d!==l.t&&p(n,"sandbox",l.t=d),c!==l.a&&p(n,"title",l.a=c),l},{e:void 0,t:void 0,a:void 0}),n})()}function lr(r){return(()=>{var n=Ge(),e=n.firstChild,l=e.nextSibling;return f(e,a(pe,{get files(){return r.files},get activeFile(){return r.activeFile()},onSelect:(s,d)=>r.onSelect(s,d)})),f(l,a(b,{get when(){return r.activeFileObj()},get fallback(){return Ze()},get children(){return a(b,{get when(){return r.hasSource()},get fallback(){return(()=>{var s=Je(),d=s.firstChild,c=d.nextSibling;return c.nextSibling,f(s,()=>r.activeFileObj().type??"binary",c),s})()},get children(){return a(me,{class:"h-full rounded-none border-0",get children(){return a(ve,{get code(){return r.activeFileObj().code??""},get language(){return r.activeFileObj().language}})}})}})}})),n})()}function or(r){const n=()=>{const e=r.url.split(/[?#]/)[0];return e.slice(e.lastIndexOf("/")+1)||"document.pdf"};return(()=>{var e=Qe(),l=e.firstChild,s=l.nextSibling,d=s.nextSibling,c=d.firstChild;c.firstChild;var i=c.nextSibling,h=i.firstChild;return f(e,a(Fe,{size:40,class:"text-muted-foreground","aria-hidden":"true"}),l),f(l,n),f(c,a(ee,{size:13,"aria-hidden":"true"}),null),f(i,a(Te,{size:13,"aria-hidden":"true"}),h),y(u=>{var g=r.url,w=r.url;return g!==u.e&&p(c,"href",u.e=g),w!==u.t&&p(i,"href",u.t=w),u},{e:void 0,t:void 0}),e})()}function sr(r){const[n,e]=k("loading");let l,s=0,d;const c=async()=>{if(!l){e("error");return}const i=++s;e("loading");try{const h=l.clientWidth||600;await Be(r.url,l,h),i===s&&e("success")}catch{i===s&&e("error")}};return F(Z(()=>[r.url,r.reloadKey],()=>{c()})),j(()=>{if(!l||typeof ResizeObserver>"u")return;const i=new ResizeObserver(()=>{n()==="success"&&(clearTimeout(d),d=setTimeout(()=>{c()},200))});i.observe(l),X(()=>{i.disconnect(),clearTimeout(d),s++})}),(()=>{var i=Ye(),h=i.firstChild;return Q(u=>l=u,h),f(i,a(b,{get when(){return ge(()=>!0)()&&n()==="loading"},get children(){var u=Xe();return f(u,a(we,{variant:"circular",size:"md"})),u}}),null),f(i,a(b,{get when(){return n()==="error"},get children(){return a(or,{get url(){return r.url}})}}),null),y(()=>p(h,"aria-busy",n()==="loading")),i})()}fe(["click"]);var dr=v("<style>:host{display:block;height:100%;min-height:0}"),ur=v('<div style="display:grid;grid-template-rows:minmax(0, 1fr);grid-template-columns:minmax(0, 1fr);height:100%;min-height:0">');be("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},(r,{element:n,dispatch:e,flag:l,expose:s})=>{const[d,c]=k(l("maximized"));let i;s({back:()=>i?.back(),forward:()=>i?.forward(),reload:()=>i?.reload(),home:()=>i?.home(),navigate:u=>i?.navigate(u),selectFile:u=>i?.selectFile(u),openExternal:()=>i?.openExternal(),maximize:()=>i?.maximize(),restore:()=>i?.restore()});const h=u=>{c(u),n.dispatchEvent(new CustomEvent("kai-maximize-intent",{detail:{requested:u},bubbles:!0,composed:!0})),e("kai-maximize-change",{maximized:u})};return j(()=>{const u=g=>c(g.detail.maximized);n.addEventListener("kai-maximize-state",u),X(()=>n.removeEventListener("kai-maximize-state",u))}),[dr(),(()=>{var u=ur();return f(u,a(nr,{get src(){return r.src},get files(){return r.files},get tab(){return r.tab},get defaultTab(){return r.defaultTab},get activeFile(){return r.activeFile},get sandbox(){return r.sandbox},get iframeTitle(){return r.iframeTitle},get maximized(){return d()},get expandable(){return l("expandable")},get openInTab(){return l("openInTab")},get showNav(){return!l("noNav")},get showReload(){return!l("noReload")},get showHome(){return!l("noHome")},get showPathField(){return!l("noPathField")},get showTabs(){return!l("noTabs")},get standalone(){return l("standalone")},get readonlyPath(){return l("readonlyPath")},get displayUrl(){return r.displayUrl},onMaximizeChange:h,onNavigate:g=>e("kai-navigate",{url:g}),onTabChange:g=>e("kai-tab-change",{tab:g}),onFileSelect:g=>e("kai-file-select",{path:g}),controllerRef:g=>i=g})),u})()]});
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-lE-QvQFn.js";import{A as p}from"./chunks/artifact-fBZOE4SO.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,n as c,a as k,d as o,i as m,t as d}from"./chunks/define-D1din7Ld.js";import{A as M,a as C,b as j,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-mCB5F1Fq.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:g})=>{const i=()=>n.variant??"grid",y=()=>g("hoverCard"),x=()=>g("removable"),l=()=>g("showMediaType");return e(a,{get when(){return n.items.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(C,{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 l()}})}})]},get children(){return e(j,{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 l()}})}})]}}),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 a,j as c,a as k,d as o,i as m,t as d}from"./chunks/define-lE-QvQFn.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-DpYMe5VQ.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 +1 @@
1
- import{A as a,n as r}from"./chunks/audio-visualizer-BqNy7dfm.js";import"./chunks/define-D1din7Ld.js";export{a as AudioVisualizerFacade,r as num};
1
+ import{A as a,n as r}from"./chunks/audio-visualizer-DFwzAcuL.js";import"./chunks/define-lE-QvQFn.js";export{a as AudioVisualizerFacade,r as num};
@@ -1 +1 @@
1
- import{s as m,l 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-D1din7Ld.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 y(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(y,{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-lE-QvQFn.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,w as n,t as r}from"./chunks/define-D1din7Ld.js";import{B as l}from"./chunks/badge-B4Zuajl2.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,u as n,t as r}from"./chunks/define-lE-QvQFn.js";import{B as l}from"./chunks/badge-D6zodm6E.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{f,c as r,w as c,i as v,S as s,n as b,t as a}from"./chunks/define-D1din7Ld.js";import{B as m}from"./chunks/button-ZWNif3--.js";import{r as d}from"./chunks/icon-BLb8beoi.js";var k=a("<style>:host{display:inline-flex}:host([full]){display:block}"),p=a("<slot name=icon>"),y=a("<slot>");f("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:g,flag:o,element:t,expose:h})=>{const l=()=>n.size==="icon"||n.size==="icon-sm";return h({focus:e=>{var i,u;return(u=(i=t.shadowRoot)==null?void 0:i.querySelector("button"))==null?void 0:u.focus(e)},blur:()=>{var e,i;return(i=(e=t.shadowRoot)==null?void 0:e.querySelector("button"))==null?void 0:i.blur()},click:()=>{var e,i;return(i=(e=t.shadowRoot)==null?void 0:e.querySelector("button"))==null?void 0:i.click()}}),[k(),r(m,{part:"button",get variant(){return n.variant??"default"},get size(){return n.size??"md"},get align(){return n.align??"center"},get full(){return o("full")||!l()},get type(){return n.type??"button"},get disabled(){return o("disabled")},get"aria-label"(){return n.label},onClick:()=>g("kai-click"),get children(){return[(()=>{var e=p();return e._$owner=c(),v(e,r(s,{get when(){return n.icon},get children(){return d(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})(),r(s,{get when(){return!l()},get children(){var e=y();return e._$owner=c(),e}}),r(s,{get when(){return b(()=>!!n.iconTrailing)()&&!l()},get children(){return d(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,u as g,i as p,S as c,v as k,j as y,t as d}from"./chunks/define-lE-QvQFn.js";import{B as z}from"./chunks/button-C42vrGvO.js";import{r as h}from"./chunks/icon-CNiKP37E.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 j,g as y,x as q,i as n,c as a,S as c,D as K,n as x,t as o,e as P,f as X,k as F,p as G,w as E,d as H}from"./chunks/define-D1din7Ld.js";import{c as I}from"./chunks/cn-CU7UAWzk.js";import{x as J}from"./chunks/x-GRUeeQFT.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 f=C({appearance:"outlined",orientation:"vertical",collapse:"28rem",dense:!1},u),[e,v]=j(f,["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",p=`.${d}`,L=`${p} .kc-layout{display:flex;flex-direction:${t?"row":"column"}}${p} .kc-media{overflow:hidden;${t?"flex-shrink:0;align-self:stretch":"width:100%"}}${p} [part="footer"]{display:flex;flex-direction:column;gap:0.75rem}${p} .kc-actions{display:flex;flex-direction:column-reverse;align-items:stretch;gap:0.5rem}`,M=`${p} [part="footer"]{flex-direction:row;align-items:center}${p} .kc-actions{flex-direction:row;align-items:center;margin-left:auto}`+(i?`${p} .kc-layout{flex-direction:row}${p} .kc-media{width:auto;flex-shrink:0;align-self:stretch}`:"");return`${L}@container (min-width:${r}){${M}}`},$=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:f,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]=!!f.querySelector(`:scope > [slot="${d}"]`);k(m),g(Array.from(f.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(f,{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,u as E,d as H}from"./chunks/define-lE-QvQFn.js";import{c as I}from"./chunks/cn-CU7UAWzk.js";import{x as J}from"./chunks/x-_-OPHept.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{c as o,i as l,t as m,f as x,g as b,h as v,o as C,k as f,p as I,F as S,D as w,S as A}from"./chunks/define-D1din7Ld.js";import{C as k,r as E,e as L}from"./chunks/card-routing-C986KuUA.js";import{C as U}from"./chunks/card-BkHbp4BA.js";import{t as $}from"./chunks/triangle-alert-DsHTHCPm.js";import"./form.js";import"./confirm-card.js";import"./tasks.js";import"./choice.js";import"./link-preview.js";import"./embed.js";const g={form:"kai-form",confirm:"kai-confirm",tasks:"kai-tasks",choice:"kai-choice",link:"kai-link-preview",embed:"kai-embed"};function D(e){return e?{...g,...e}:{...g}}var F=m('<div role=alert class="flex items-center gap-2 p-4 text-sm text-muted-foreground"><span>Unsupported card type: <code class=font-mono>');function R(e){return o(U,{get children(){var t=F(),s=t.firstChild,d=s.firstChild,c=d.nextSibling;return l(t,o($,{class:"size-4 shrink-0 text-destructive dark:text-red-400","aria-hidden":"true"}),s),l(c,()=>e.type),t}})}var q=m('<div class="flex flex-col gap-3">');function z(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 t;return v(()=>{t&&(t.data=e.envelope.data,t.cardId=e.envelope.id,e.envelope.title!=null&&(t.heading=e.envelope.title),t.resolution=e.envelope.resolution,t.setAttribute("theme",e.theme),t.setAttribute("data-card-id",e.envelope.id))}),f(()=>{e.tag||e.emit({kind:"error",cardId:e.envelope.id,message:`Unsupported card type: ${e.envelope.type}`})}),o(A,{get when(){return e.tag},get fallback(){return o(R,{get type(){return e.envelope.type},get cardId(){return e.envelope.id}})},children:s=>o(w,{get component(){return s()},ref(d){var c=t;typeof c=="function"?c(d):t=d}})})}x("kai-cards",{cards:void 0,types:void 0,policy:void 0},(e,{element:t,dispatch:s,expose:d})=>{const[c,p]=b(e.cards??[]);v(C(()=>e.cards,r=>p(r??[]),{defer:!0})),f(()=>{const r=a=>{const i=a.detail;E(e.policy??{},i);const n=z(i);n&&s("kai-card-resolved",{cardId:i.cardId,resolution:n})};t.addEventListener(k,r),I(()=>t.removeEventListener(k,r))});const u=(r,a)=>p(i=>i.some(n=>n.id===r)?i.map(n=>n.id===r?{...n,resolution:a}:n):i);d({resolve:(r,a)=>u(r,a),dismiss:r=>u(r,{kind:"dismissed"}),getCard:r=>{var a;return((a=t.shadowRoot)==null?void 0:a.querySelector(`[data-card-id="${CSS.escape(r)}"]`))??null}});const h=()=>e.theme??"auto",y=()=>D(e.types);return(()=>{var r=q();return l(r,o(S,{get each(){return c()},children:a=>o(N,{envelope:a,get tag(){return y()[a.type]},get theme(){return h()},emit:i=>L(t,i)})})),r})()});
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-lE-QvQFn.js";import{C as h,r as L,e as $}from"./chunks/card-routing-C986KuUA.js";import{h as B,v as F,c as R,C as y}from"./chunks/card-renderer-DMZsSuvU.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,n as L,i as g,a as z,b as V,s as R,l as q,m as E,t as v,f as F,k as H,p as K}from"./chunks/define-D1din7Ld.js";import{c as f}from"./chunks/cn-CU7UAWzk.js";import{C as M,a as _,b as B}from"./chunks/collapsible-DM1Ckd4e.js";import{c as k}from"./chunks/chevron-down-BNsxc2hk.js";import{c as D}from"./chunks/circle-0e3KJTDr.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]=R(e,["children","class"]);return(()=>{var o=A();return q(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(k,{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(k,{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 j(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(j))};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{j 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-lE-QvQFn.js";import{c as f}from"./chunks/cn-CU7UAWzk.js";import{C as M,a as _,b as B}from"./chunks/collapsible-sTv-_5lF.js";import{c as j}from"./chunks/chevron-down-CpNYLn7E.js";import{c as D}from"./chunks/circle-C9KRjKYv.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,n as h,S as c,F as u,t as n,f as p}from"./chunks/define-D1din7Ld.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-BDd1-Zgi.js";import{B as x}from"./chunks/button-ZWNif3--.js";import{w}from"./chunks/disclosure-CIZ5c8nO.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-lE-QvQFn.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-R3B7cSRE.js";import{B as x}from"./chunks/button-C42vrGvO.js";import{w}from"./chunks/disclosure-DZSa9jog.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,5 +1,10 @@
1
- import { ToolPart } from '../components/tool-types';
2
- import { AttachmentData } from '../components/attachment-types';
1
+ import { ToolPart, RawOrigin } from '../components/tool-types.js';
2
+ import { AttachmentData } from '../components/attachment-types.js';
3
+ import { CardEnvelope } from '../primitives/card-contract.js';
4
+ /** Re-exported so consumers of chat-types (and MessagePart) can keep using
5
+ * RawOrigin unqualified. It is defined in components/tool-types.ts, not here,
6
+ * to keep the components -> elements import direction one-way. */
7
+ export type { RawOrigin };
3
8
  /** The five built-in action buttons (each carries its own curated icon + label). */
4
9
  export type ChatMessageAction = 'copy' | 'like' | 'dislike' | 'regenerate' | 'edit';
5
10
  /** A like/dislike feedback vote on an assistant message. */
@@ -26,17 +31,72 @@ export interface AvatarData {
26
31
  /** Alt text for the image. */
27
32
  alt?: string;
28
33
  }
34
+ /** A citation the model produced. */
35
+ export interface Source {
36
+ id?: string;
37
+ url?: string;
38
+ title?: string;
39
+ snippet?: string;
40
+ /** Citation marker number, when the model numbers its citations. */
41
+ index?: number;
42
+ }
43
+ /** The public name for the citation carried by a `source` part, and the argument
44
+ * type of `AssistantStream.addSource`. The bare `Source` name is already taken
45
+ * on the public entry by the citation-chip COMPONENT (`./components/source`),
46
+ * so exporting this interface unaliased would be a duplicate identifier and the
47
+ * type would be unnameable from `@kitn.ai/ui`. */
48
+ export type MessageSource = Source;
49
+ /** One ordered piece of message content. Closed union: extension happens at the CARD
50
+ * layer via the card registry, not by adding variants here. */
51
+ export type MessagePart = {
52
+ type: 'text';
53
+ text: string;
54
+ raw?: RawOrigin;
55
+ } | {
56
+ type: 'reasoning';
57
+ text: string;
58
+ label?: string;
59
+ /** Provider block index. Keeps parallel reasoning blocks distinct. */
60
+ index?: number;
61
+ /** Which provider RESPONSE STREAM `index` was counted in. Anthropic restarts
62
+ * content-block indices at 0 for every message, and a multi-round tool loop
63
+ * folds several of those messages into ONE assistant turn, so `index` alone
64
+ * is not unique within `parts`. Set by the wire adapter, one value per
65
+ * `consumeModelStream` call. See `appendReasoningPart`. */
66
+ streamId?: string;
67
+ /** Load-bearing on the OpenAI wire, informational on the Anthropic one.
68
+ * `toOpenAIMessages({ reasoning: 'include' })` REBUILDS a signed
69
+ * `reasoning_details` entry from `text` plus this, because `raw` after a
70
+ * streamed turn is a textless fragment: only the final frame carries the
71
+ * signature and it has no text, and `appendReasoningPart` resolves `raw`
72
+ * last-write-wins. `toAnthropicMessages` ignores this field and echoes
73
+ * `raw.payload` verbatim — a thinking block rebuilt from text plus
74
+ * signature is a hard 400. */
75
+ signature?: string;
76
+ raw?: RawOrigin;
77
+ } | {
78
+ type: 'tool';
79
+ tool: ToolPart;
80
+ raw?: RawOrigin;
81
+ } | {
82
+ type: 'card';
83
+ envelope: CardEnvelope;
84
+ raw?: RawOrigin;
85
+ } | {
86
+ type: 'source';
87
+ source: Source;
88
+ raw?: RawOrigin;
89
+ } | {
90
+ type: 'file';
91
+ attachment: AttachmentData;
92
+ raw?: RawOrigin;
93
+ };
29
94
  export interface ChatMessage {
30
95
  id: string;
31
96
  role: 'user' | 'assistant';
32
- content: string;
33
- reasoning?: {
34
- text: string;
35
- label?: string;
36
- };
37
- tools?: ToolPart[];
38
- attachments?: AttachmentData[];
39
- /** Action buttons under the message — built-in names and/or custom descriptors. */
97
+ /** The ONLY content channel. Ordered. */
98
+ parts: MessagePart[];
99
+ /** Action buttons under the message. Chrome, not content. */
40
100
  actions?: (ChatMessageAction | CustomAction)[];
41
101
  /** Optional speaker avatar shown to the left of the message column. */
42
102
  avatar?: AvatarData;
@@ -1 +1 @@
1
- import{f as I,g as R,k as C,p as S,c as t,i as d,w as f,S as u,u as $,a as H,b as O,t as c}from"./chunks/define-D1din7Ld.js";import{c as y,C as V,a as _}from"./chunks/conversation-list-CvoAkWhN.js";import{r as A,W as E}from"./chunks/slots--V19HwUb.js";import{C as L}from"./chunks/chat-thread-CkRN6pZ7.js";import{R as N,a as M,b as j}from"./chunks/resizable-Dp4JExql.js";var q=c('<div class="shrink-0 border-b border-border"><slot name=main-header>'),D=c("<slot name=main>"),F=c('<div class="flex h-full flex-col overflow-hidden"><div class="min-h-0 flex-1">'),G=c("<div><slot name=sidebar-header>"),J=c('<div class="min-h-0 flex-1">'),K=c("<div class=shrink-0><slot name=sidebar-footer>"),P=c('<div part=sidebar class="flex h-full flex-col overflow-hidden bg-surface">'),Q=c('<div class="h-full w-full overflow-hidden bg-background">'),U=c('<div class="flex h-full"><div class="flex w-11 shrink-0 flex-col items-center border-r border-border bg-surface pt-2.5"></div><div class="min-w-0 flex-1">');I("kai-workspace",{groups:[],conversations:[],activeId:void 0,messages:[],value:void 0,placeholder:"Send a message...",loading:!1,suggestions:void 0,suggestionMode:"submit",proseSize:"sm",codeTheme:"github-dark-dimmed",codeHighlight:!0,chatTitle:void 0,models:void 0,currentModel:void 0,context:void 0,scrollButton:!0,search:!1,voice:!1,triggers:void 0,kindIcons:void 0,sidebarWidth:26,sidebarMinWidth:240,sidebarMaxWidth:420,sidebarCollapsed:void 0,defaultSidebarCollapsed:void 0,collapseBelow:void 0,compact:void 0,noConversations:void 0},(r,{dispatch:i,flag:g,expose:T,element:w})=>{const[v,z]=R({});C(()=>{const e=()=>z(A(w,E));e();const s=new MutationObserver(e);s.observe(w,{childList:!0}),S(()=>s.disconnect())});const[b,W]=y(()=>r.sidebarCollapsed,g("defaultSidebarCollapsed")),h=e=>{W(e),i("kai-sidebar-toggle",{collapsed:e})},p=()=>h(!b());let m,k=!1;C(()=>{if(typeof ResizeObserver>"u")return;const e=new ResizeObserver(s=>{var o;const n=r.collapseBelow;if(n==null||r.sidebarCollapsed!==void 0)return;const a=(((o=s[0])==null?void 0:o.contentRect.width)??m.clientWidth)<n;a&&!b()?(k=!0,h(!0)):!a&&b()&&k&&(k=!1,h(!1))});e.observe(m),S(()=>e.disconnect())});let l;T({toggleSidebar:()=>p(),collapseSidebar:()=>h(!0),expandSidebar:()=>h(!1),focus:e=>l?.focus(e),clear:()=>l?.clear(),send:()=>l?.send(),scrollToBottom:e=>l?.scrollToBottom(e)});const B=t(L,{get messages(){return r.messages},get value(){return r.value},get placeholder(){return r.placeholder},get loading(){return g("loading")},get suggestions(){return r.suggestions},get suggestionMode(){return r.suggestionMode},get proseSize(){return r.proseSize},get codeTheme(){return r.codeTheme},get codeHighlight(){return g("codeHighlight")},get chatTitle(){return r.chatTitle},get models(){return r.models},get currentModel(){return r.currentModel},get context(){return r.context},get scrollButton(){return r.scrollButton!==!1},get search(){return g("search")},get voice(){return g("voice")},get triggers(){return r.triggers},get kindIcons(){return r.kindIcons},onValueChange:e=>i("kai-value-change",{value:e}),onSubmit:e=>i("kai-submit",e),onSuggestionClick:e=>i("kai-suggestion-click",{value:e}),onModelChange:e=>i("kai-model-change",{modelId:e}),onMessageAction:e=>i("kai-message-action",e),onSearch:()=>i("kai-search",{}),onVoice:()=>i("kai-voice",{}),controllerRef:e=>l=e}),x=(()=>{var e=F(),s=e.firstChild;return d(e,t(u,{get when(){return v()["main-header"]},get children(){var o=q(),n=o.firstChild;return n._$owner=f(),o}}),s),d(s,t(u,{get when(){return v().main},fallback:B,get children(){var o=D();return o._$owner=f(),o}})),e})();return(()=>{var e=Q(),s=m;return typeof s=="function"?$(s,e):m=e,d(e,t(u,{get when(){return!b()},get fallback(){return(()=>{var o=U(),n=o.firstChild,a=n.nextSibling;return d(n,t(_,{onExpand:p,class:"bg-transparent shadow-none backdrop-blur-none"})),d(a,x),o})()},get children(){return t(N,{orientation:"horizontal",get children(){return[t(M,{get defaultSize(){return r.sidebarWidth},get"data-min-size"(){return String(r.sidebarMinWidth)},get"data-max-size"(){return String(r.sidebarMaxWidth)},get children(){var o=P();return d(o,t(u,{get when(){return v()["sidebar-header"]},get children(){var n=G(),a=n.firstChild;return a._$owner=f(),H(()=>O(n,g("noConversations")?"min-h-0 flex-1":"shrink-0")),n}}),null),d(o,t(u,{get when(){return!g("noConversations")},get children(){var n=J();return d(n,t(V,{class:"bg-transparent",get groups(){return r.groups},get conversations(){return r.conversations},get activeId(){return r.activeId},get compact(){return g("compact")},onSelect:a=>i("kai-conversation-select",{id:a}),onNewChat:()=>i("kai-new-chat",{}),onToggleSidebar:p})),n}}),null),d(o,t(u,{get when(){return v()["sidebar-footer"]},get children(){var n=K(),a=n.firstChild;return a._$owner=f(),n}}),null),o}}),t(j,{}),t(M,{children:x})]}})}})),e})()});
1
+ import{f as y,g as R,o as S,h as C,c as a,i as d,u as f,S as u,v as _,a as $,b as H,t as c}from"./chunks/define-lE-QvQFn.js";import{c as O,C as V,a as A}from"./chunks/conversation-list-DLzOacXz.js";import{r as E,W as L}from"./chunks/slots-CIw9RlAe.js";import{C as N}from"./chunks/chat-thread-CNNEhol-.js";import{R as j,a as M,b as q}from"./chunks/resizable-Q8i3T9a_.js";import{c as D,a as F}from"./chunks/message-CXWLmmLn.js";var G=c('<div class="shrink-0 border-b border-border"><slot name=main-header>'),J=c("<slot name=main>"),K=c('<div class="flex h-full flex-col overflow-hidden"><div class="min-h-0 flex-1">'),P=c("<div><slot name=sidebar-header>"),Q=c('<div class="min-h-0 flex-1">'),U=c("<div class=shrink-0><slot name=sidebar-footer>"),X=c('<div part=sidebar class="flex h-full flex-col overflow-hidden bg-surface">'),Y=c('<div class="h-full w-full overflow-hidden bg-background">'),Z=c('<div class="flex h-full"><div class="flex w-11 shrink-0 flex-col items-center border-r border-border bg-surface pt-2.5"></div><div class="min-w-0 flex-1">');y("kai-workspace",{groups:[],conversations:[],activeId:void 0,messages:[],value:void 0,placeholder:"Send a message...",loading:!1,suggestions:void 0,suggestionMode:"submit",proseSize:"sm",codeTheme:"github-dark-dimmed",codeHighlight:!0,chatTitle:void 0,models:void 0,currentModel:void 0,context:void 0,scrollButton:!0,search:!1,voice:!1,triggers:void 0,kindIcons:void 0,sidebarWidth:26,sidebarMinWidth:240,sidebarMaxWidth:420,sidebarCollapsed:void 0,defaultSidebarCollapsed:void 0,collapseBelow:void 0,compact:void 0,noConversations:void 0,cardTypes:void 0,cardSchemas:void 0},(r,{dispatch:t,flag:g,expose:T,element:w})=>{const z=F("kai-workspace"),[v,W]=R({});S(()=>{const e=()=>W(E(w,L));e();const s=new MutationObserver(e);s.observe(w,{childList:!0}),C(()=>s.disconnect())});const[m,B]=O(()=>r.sidebarCollapsed,g("defaultSidebarCollapsed")),h=e=>{B(e),t("kai-sidebar-toggle",{collapsed:e})},p=()=>h(!m());let b,k=!1;S(()=>{if(typeof ResizeObserver>"u")return;const e=new ResizeObserver(s=>{var n;const o=r.collapseBelow;if(o==null||r.sidebarCollapsed!==void 0)return;const i=(((n=s[0])==null?void 0:n.contentRect.width)??b.clientWidth)<o;i&&!m()?(k=!0,h(!0)):!i&&m()&&k&&(k=!1,h(!1))});e.observe(b),C(()=>e.disconnect())});let l;T({toggleSidebar:()=>p(),collapseSidebar:()=>h(!0),expandSidebar:()=>h(!1),focus:e=>l?.focus(e),clear:()=>l?.clear(),send:()=>l?.send(),scrollToBottom:e=>l?.scrollToBottom(e)});const I=a(N,{get messages(){return z(r.messages)},get value(){return r.value},get placeholder(){return r.placeholder},get loading(){return g("loading")},get suggestions(){return r.suggestions},get suggestionMode(){return r.suggestionMode},get proseSize(){return r.proseSize},get codeTheme(){return r.codeTheme},get codeHighlight(){return g("codeHighlight")},get chatTitle(){return r.chatTitle},get models(){return r.models},get currentModel(){return r.currentModel},get context(){return r.context},get scrollButton(){return r.scrollButton!==!1},get search(){return g("search")},get voice(){return g("voice")},get triggers(){return r.triggers},get kindIcons(){return r.kindIcons},get cardTypes(){return D(r.cardTypes,r.theme)},get cardSchemas(){return r.cardSchemas},onValueChange:e=>t("kai-value-change",{value:e}),onSubmit:e=>t("kai-submit",e),onSuggestionClick:e=>t("kai-suggestion-click",{value:e}),onModelChange:e=>t("kai-model-change",{modelId:e}),onMessageAction:e=>t("kai-message-action",e),onSearch:()=>t("kai-search",{}),onVoice:()=>t("kai-voice",{}),controllerRef:e=>l=e}),x=(()=>{var e=K(),s=e.firstChild;return d(e,a(u,{get when(){return v()["main-header"]},get children(){var n=G(),o=n.firstChild;return o._$owner=f(),n}}),s),d(s,a(u,{get when(){return v().main},fallback:I,get children(){var n=J();return n._$owner=f(),n}})),e})();return(()=>{var e=Y(),s=b;return typeof s=="function"?_(s,e):b=e,d(e,a(u,{get when(){return!m()},get fallback(){return(()=>{var n=Z(),o=n.firstChild,i=o.nextSibling;return d(o,a(A,{onExpand:p,class:"bg-transparent shadow-none backdrop-blur-none"})),d(i,x),n})()},get children(){return a(j,{orientation:"horizontal",get children(){return[a(M,{get defaultSize(){return r.sidebarWidth},get"data-min-size"(){return String(r.sidebarMinWidth)},get"data-max-size"(){return String(r.sidebarMaxWidth)},get children(){var n=X();return d(n,a(u,{get when(){return v()["sidebar-header"]},get children(){var o=P(),i=o.firstChild;return i._$owner=f(),$(()=>H(o,g("noConversations")?"min-h-0 flex-1":"shrink-0")),o}}),null),d(n,a(u,{get when(){return!g("noConversations")},get children(){var o=Q();return d(o,a(V,{class:"bg-transparent",get groups(){return r.groups??[]},get conversations(){return r.conversations??[]},get activeId(){return r.activeId},get compact(){return g("compact")},onSelect:i=>t("kai-conversation-select",{id:i}),onNewChat:()=>t("kai-new-chat",{}),onToggleSidebar:p})),o}}),null),d(n,a(u,{get when(){return v()["sidebar-footer"]},get children(){var o=U(),i=o.firstChild;return i._$owner=f(),o}}),null),n}}),a(q,{}),a(M,{children:x})]}})}})),e})()});
@@ -1 +1 @@
1
- import{f as u,g as d,k as h,p as m,h as v,c as p}from"./chunks/define-D1din7Ld.js";import{r as k,C as b}from"./chunks/slots--V19HwUb.js";import{C as S}from"./chunks/chat-thread-CkRN6pZ7.js";u("kai-chat",{messages:[],value:void 0,placeholder:"Send a message...",loading:!1,suggestions:void 0,suggestionMode:"submit",persistSuggestions:!1,proseSize:"sm",codeTheme:"github-dark-dimmed",codeHighlight:!0,chatTitle:void 0,models:void 0,currentModel:void 0,context:void 0,scrollButton:!0,search:!1,voice:!1,triggers:void 0,kindIcons:void 0,actionsReveal:"always"},(t,{dispatch:o,flag:s,element:i,expose:g})=>{const[l,c]=d({}),n=e=>l()[e]===!0;h(()=>{const e=()=>c(k(i,b));e();const a=new MutationObserver(e);a.observe(i,{childList:!0}),m(()=>a.disconnect())}),v(()=>{i.toggleAttribute("loading",s("loading"))});let r;return g({focus:e=>r?.focus(e),blur:()=>{var e,a;return(a=(e=i.shadowRoot)==null?void 0:e.activeElement)==null?void 0:a.blur()},clear:()=>r?.clear(),send:()=>r?.send(),scrollToBottom:e=>r?.scrollToBottom(e)}),p(S,{get messages(){return t.messages},get value(){return t.value},get placeholder(){return t.placeholder},get loading(){return s("loading")},get suggestions(){return t.suggestions},get suggestionMode(){return t.suggestionMode},get persistSuggestions(){return s("persistSuggestions")},get proseSize(){return t.proseSize},get codeTheme(){return t.codeTheme},get codeHighlight(){return s("codeHighlight")},get chatTitle(){return t.chatTitle},get models(){return t.models},get currentModel(){return t.currentModel},get context(){return t.context},get scrollButton(){return t.scrollButton!==!1},get search(){return s("search")},get voice(){return s("voice")},get triggers(){return t.triggers},get kindIcons(){return t.kindIcons},get actionsReveal(){return t.actionsReveal},onValueChange:e=>o("kai-value-change",{value:e}),onSubmit:e=>o("kai-submit",e),onAttachmentsChange:e=>o("kai-attachments-change",{attachments:e}),onSuggestionClick:e=>o("kai-suggestion-click",{value:e}),onModelChange:e=>o("kai-model-change",{modelId:e}),onMessageAction:e=>o("kai-message-action",e),onSearch:()=>o("kai-search",{}),onVoice:()=>o("kai-voice",{}),controllerRef:e=>r=e,get headerStart(){return n("header-start")},get headerEnd(){return n("header-end")},get headerFull(){return n("header")},get sidebar(){return n("sidebar")},get empty(){return n("empty")},get composer(){return n("composer")},get composerActions(){return n("composer-actions")},get footer(){return n("footer")}})});
1
+ import{f as u,g as h,o as m,h as v,k as p,c as k}from"./chunks/define-lE-QvQFn.js";import{r as S,C as b}from"./chunks/slots-CIw9RlAe.js";import{C as f}from"./chunks/chat-thread-CNNEhol-.js";import{c as T,a as M}from"./chunks/message-CXWLmmLn.js";u("kai-chat",{messages:[],value:void 0,placeholder:"Send a message...",loading:!1,suggestions:void 0,suggestionMode:"submit",persistSuggestions:!1,proseSize:"sm",codeTheme:"github-dark-dimmed",codeHighlight:!0,chatTitle:void 0,models:void 0,currentModel:void 0,context:void 0,scrollButton:!0,search:!1,voice:!1,triggers:void 0,kindIcons:void 0,actionsReveal:"always",cardTypes:void 0,cardSchemas:void 0,accept:void 0},(t,{dispatch:r,flag:s,element:i,expose:c})=>{const g=M("kai-chat"),[d,l]=h({}),n=e=>d()[e]===!0;m(()=>{const e=()=>l(S(i,b));e();const a=new MutationObserver(e);a.observe(i,{childList:!0}),v(()=>a.disconnect())}),p(()=>{i.toggleAttribute("loading",s("loading"))});let o;return c({focus:e=>o?.focus(e),blur:()=>{var e,a;return(a=(e=i.shadowRoot)==null?void 0:e.activeElement)==null?void 0:a.blur()},clear:()=>o?.clear(),send:()=>o?.send(),scrollToBottom:e=>o?.scrollToBottom(e)}),k(f,{get messages(){return g(t.messages)},get value(){return t.value},get placeholder(){return t.placeholder},get loading(){return s("loading")},get suggestions(){return t.suggestions},get suggestionMode(){return t.suggestionMode},get persistSuggestions(){return s("persistSuggestions")},get proseSize(){return t.proseSize},get codeTheme(){return t.codeTheme},get codeHighlight(){return s("codeHighlight")},get chatTitle(){return t.chatTitle},get models(){return t.models},get currentModel(){return t.currentModel},get context(){return t.context},get scrollButton(){return t.scrollButton!==!1},get search(){return s("search")},get voice(){return s("voice")},get triggers(){return t.triggers},get kindIcons(){return t.kindIcons},get actionsReveal(){return t.actionsReveal},get cardTypes(){return T(t.cardTypes,t.theme)},get cardSchemas(){return t.cardSchemas},onValueChange:e=>r("kai-value-change",{value:e}),onSubmit:e=>r("kai-submit",e),get accept(){return t.accept},onAttachmentsChange:e=>r("kai-attachments-change",{attachments:e}),onAttachmentsRejected:e=>r("kai-attachments-rejected",{rejected:e}),onSuggestionClick:e=>r("kai-suggestion-click",{value:e}),onModelChange:e=>r("kai-model-change",{modelId:e}),onMessageAction:e=>r("kai-message-action",e),onSearch:()=>r("kai-search",{}),onVoice:()=>r("kai-voice",{}),controllerRef:e=>o=e,get headerStart(){return n("header-start")},get headerEnd(){return n("header-end")},get headerFull(){return n("header")},get sidebar(){return n("sidebar")},get empty(){return n("empty")},get composer(){return n("composer")},get composerActions(){return n("composer-actions")},get footer(){return n("footer")}})});
@@ -1 +1 @@
1
- import{c as e,S as i,a as c,d as u,s as g,l as h,m as d,i as l,t as s,f as p,n as v}from"./chunks/define-D1din7Ld.js";import{c as o}from"./chunks/cn-CU7UAWzk.js";import{B as m}from"./chunks/button-ZWNif3--.js";import{T as f}from"./chunks/tooltip-CgBZCVKp.js";import{S as k}from"./chunks/separator-9kRgr1X9.js";var b=s("<div>"),w=s('<svg width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><path d="M19 21l-7-5-7 5V5a2 2 0 012-2h10a2 2 0 012 2z">');function z(t){const[r,a]=g(t,["class","children"]);return(()=>{var n=b();return h(n,d({get class(){return o("flex items-center gap-0.5 overflow-hidden text-muted-foreground",r.class)}},a),!1,!0),l(n,()=>r.children,null),l(n,e(k,{}),null),n})()}function C(t){return e(i,{get when(){return!t.children},get fallback(){return t.children},get children(){var r=w();return c(()=>u(r,"class",o("size-4 shrink-0",t.class))),r}})}function x(t){const r=()=>t.variant??"ghost",a=()=>t.size??"sm",n=()=>e(m,{get variant(){return r()},get size(){return a()},type:"button",get"aria-label"(){return t["aria-label"]},get onClick(){return t.onClick},get class(){return t.class},get children(){return t.children}});return e(i,{get when(){return t.tooltip},get fallback(){return n()},get children(){return e(f,{get content(){return t.tooltip},get children(){return n()}})}})}var B=s("<span class=ml-1.5>");p("kai-checkpoint",{label:void 0,tooltip:void 0,variant:"ghost",size:"sm"},(t,{dispatch:r})=>e(z,{get children(){return e(x,{get tooltip(){return t.tooltip},get"aria-label"(){return v(()=>!!t.label)()?void 0:t.tooltip??"Checkpoint"},get variant(){return t.variant},get size(){return t.size},onClick:()=>r("kai-select"),get children(){return[e(C,{}),e(i,{get when(){return t.label},get children(){var a=B();return l(a,()=>t.label),a}})]}})}}));
1
+ import{c as e,S as i,a as c,d as u,s as g,q as h,m as d,i as l,t as s,f as p,j as v}from"./chunks/define-lE-QvQFn.js";import{c as o}from"./chunks/cn-CU7UAWzk.js";import{B as m}from"./chunks/button-C42vrGvO.js";import{T as f}from"./chunks/tooltip-RxMxyCLF.js";import{S as k}from"./chunks/separator-Xic78AD_.js";var b=s("<div>"),w=s('<svg width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><path d="M19 21l-7-5-7 5V5a2 2 0 012-2h10a2 2 0 012 2z">');function z(t){const[r,a]=g(t,["class","children"]);return(()=>{var n=b();return h(n,d({get class(){return o("flex items-center gap-0.5 overflow-hidden text-muted-foreground",r.class)}},a),!1,!0),l(n,()=>r.children,null),l(n,e(k,{}),null),n})()}function C(t){return e(i,{get when(){return!t.children},get fallback(){return t.children},get children(){var r=w();return c(()=>u(r,"class",o("size-4 shrink-0",t.class))),r}})}function x(t){const r=()=>t.variant??"ghost",a=()=>t.size??"sm",n=()=>e(m,{get variant(){return r()},get size(){return a()},type:"button",get"aria-label"(){return t["aria-label"]},get onClick(){return t.onClick},get class(){return t.class},get children(){return t.children}});return e(i,{get when(){return t.tooltip},get fallback(){return n()},get children(){return e(f,{get content(){return t.tooltip},get children(){return n()}})}})}var B=s("<span class=ml-1.5>");p("kai-checkpoint",{label:void 0,tooltip:void 0,variant:"ghost",size:"sm"},(t,{dispatch:r})=>e(z,{get children(){return e(x,{get tooltip(){return t.tooltip},get"aria-label"(){return v(()=>!!t.label)()?void 0:t.tooltip??"Checkpoint"},get variant(){return t.variant},get size(){return t.size},onClick:()=>r("kai-select"),get children(){return[e(C,{}),e(i,{get when(){return t.label},get children(){var a=B();return l(a,()=>t.label),a}})]}})}}));
@@ -1 +1 @@
1
- import{m as ve,s as me,x as fe,j as k,g as U,h as G,o as re,k as he,c as u,E as be,S as b,i as p,d as v,F as ye,a as w,b as z,u as te,t as f,z as ke,n as L,e as xe,f as we}from"./chunks/define-D1din7Ld.js";import{c as M}from"./chunks/cn-CU7UAWzk.js";import{B as ne}from"./chunks/button-ZWNif3--.js";import{H as Ie}from"./chunks/hover-card-Cmm6Q53m.js";import{C as J}from"./chunks/card-BkHbp4BA.js";import{u as Ae,a as De,D as Ce}from"./chunks/use-card-resolution-BSu_XHjH.js";import{e as Re}from"./chunks/card-routing-C986KuUA.js";import{x as $e}from"./chunks/x-GRUeeQFT.js";import{c as Se}from"./chunks/check-B9-gn6SS.js";var je=f('<p class="text-sm text-foreground">'),Ve=f("<div role=radiogroup>"),Ee=f('<div class="flex flex-col gap-2"><label class=sr-only></label><input type=text class="w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-60">'),Te=f('<div class="flex w-full flex-wrap items-center justify-between gap-2">'),ze=f("<div>"),Le=f('<span class="inline-flex items-center rounded-full bg-[var(--color-primary)] px-1.5 py-0.5 text-[0.625rem] font-medium uppercase leading-none tracking-wide text-[var(--color-primary-foreground,white)]">Recommended'),Me=f("<img>"),Oe=f('<span aria-hidden=true class="flex h-9 w-9 shrink-0 items-center justify-center rounded-md bg-muted text-sm font-medium text-muted-foreground">'),_e=f('<img class="max-h-80 max-w-80 rounded-md object-contain">'),Fe=f('<span class="h-2 w-2 rounded-full bg-[var(--color-primary)]">'),qe=f('<span class="text-xs font-normal text-muted-foreground">'),He=f('<span class="ml-auto shrink-0 text-xs font-normal text-muted-foreground">'),Pe=f('<div role=radio><span aria-hidden=true></span><span class="flex min-w-0 flex-col gap-0.5"><span class="flex items-center gap-2"><span class=truncate>'),Be=f("<span>"),Ue=f('<span class="ml-auto text-xs font-normal text-muted-foreground">'),Ge=f('<div class="flex items-center gap-3 rounded-lg border border-input bg-accent px-3 py-2.5 text-sm font-medium text-accent-foreground">'),Je=f("<span>Other: ");const Ke="choice",D="__other__",K="Other\u2026";function Ne(r){if(!Array.isArray(r)||r.length===0)return{options:[],error:"This card couldn't be displayed."};const o=new Set,t=[];for(const s of r){if(!s||typeof s!="object")continue;const i=s;if(typeof i.id!="string"||i.id.length===0||typeof i.label!="string"||i.label.length===0)continue;if(o.has(i.id)){console.warn(`[kai-choice] duplicate option id "${i.id}" ignored`);continue}o.add(i.id);const l=i.media&&typeof i.media=="object"?{image:typeof i.media.image=="string"?i.media.image:void 0,imageAlt:typeof i.media.imageAlt=="string"?i.media.imageAlt:void 0,icon:typeof i.media.icon=="string"?i.media.icon:void 0}:void 0;t.push({id:i.id,label:i.label,description:typeof i.description=="string"?i.description:void 0,media:l,meta:typeof i.meta=="string"?i.meta:void 0,recommended:i.recommended===!0,disabled:i.disabled===!0,payload:i.payload})}return t.length===0?{options:[],error:"This card couldn't be displayed."}:{options:t}}function Qe(r){return r?r===!0?{label:K,placeholder:void 0}:typeof r=="object"?{label:typeof r.label=="string"&&r.label.length>0?r.label:K,placeholder:typeof r.placeholder=="string"?r.placeholder:void 0}:null:null}function oe(r,o,t){const s=r.length;if(s===0)return o;for(let i=1;i<=s;i+=1){const l=((o+t*i)%s+s)%s;if(!r[l].disabled)return l}return o}function ie(r){return r.findIndex(o=>!o.disabled)}function We(r){const o=ve({cardId:"kai-choice"},r),[t]=me(o,["data","cardId","heading","host","hostElement","class","resolution","value","defaultValue","disabled","onValueChange","controllerRef"]),s=Ae(),i=fe(),l=e=>{const n=t.host??s;n?n.emit(e):t.hostElement&&Re(t.hostElement,e)},a=k(()=>{var e;return Ne((e=t.data)==null?void 0:e.options)}),h=k(()=>a().error===void 0),I=k(()=>a().error??""),x=k(()=>a().options),V=k(()=>{var e;return Qe((e=t.data)==null?void 0:e.allowOther)}),C=k(()=>{const e=V();return e?[...x(),{id:D,label:e.label}]:x()}),m=De({prop:()=>t.resolution,data:()=>t.data}),O=k(()=>{const e=m.resolution();return e&&e.kind==="action"?e.action:void 0}),[q,R]=U(0),[ae,N]=U(r.defaultValue),T=k(()=>t.value??ae()),de=e=>{var n;T()!==e&&(N(e),(n=t.onValueChange)==null||n.call(t,e))},[H,Q]=U(""),A=()=>t.disabled===!0;let _,E;const W=k(()=>T()===D);G(re(()=>t.data,()=>{N(t.defaultValue),Q(""),R(Math.max(0,ie(C())))}));const le=k(()=>{var e;const n=m.resolution();return!n||n.kind!=="action"?void 0:n.action===D?{other:!0,text:((e=n.payload)==null?void 0:e.text)??""}:{other:!1,opt:x().find(c=>c.id===n.action),id:n.action}});G(re(h,e=>{l(e?{kind:"ready",cardId:t.cardId}:{kind:"error",cardId:t.cardId,message:I()})})),G(()=>{const e=t.hostElement;if(!e)return;const n=O();n!==void 0?e.setAttribute("data-kai-resolved",n):e.removeAttribute("data-kai-resolved")});const se=e=>e.id===D,P=e=>{m.isResolved()||A()||e.disabled||(de(e.id),se(e)&&queueMicrotask(()=>E?.focus()))},ue=k(()=>{if(m.isResolved()||A())return!1;const e=T();return e===void 0?!1:e===D?H().trim().length>0:!0}),ce=()=>{var e;return((e=t.data)==null?void 0:e.submitLabel)??"Submit"},B=()=>{if(m.isResolved()||A())return;const e=T();if(e===void 0)return;if(e===D){const c=H().trim();if(c.length===0)return;l({kind:"action",cardId:t.cardId,action:D,payload:{text:c}}),m.setLocal({kind:"action",action:D,payload:{text:c}});return}const n=x().find(c=>c.id===e);n&&(l({kind:"action",cardId:t.cardId,action:n.id,...n.payload!==void 0?{payload:n.payload}:{}}),m.setLocal({kind:"action",action:n.id,...n.payload!==void 0?{payload:n.payload}:{}}))},X=()=>{m.isResolved()||(l({kind:"dismiss",cardId:t.cardId}),m.setLocal({kind:"dismissed"}))},Y=()=>l({kind:"reopen",cardId:t.cardId}),F=(e,n)=>{var c;const d=_?.querySelectorAll('[role="radio"]');(c=d?.[e])==null||c.focus(n)};he(()=>{var e;(e=t.controllerRef)==null||e.call(t,{focus:n=>{W()&&E?E.focus(n):F(q(),n)},select:n=>{const c=C(),d=c.findIndex(y=>y.id===n);d!==-1&&(R(d),P(c[d]))},send:()=>B(),dismiss:()=>X(),reopen:()=>Y()})});const pe=e=>{if(m.isResolved()||A())return;const n=C(),c=q();if(e.key==="ArrowDown"||e.key==="ArrowRight"){e.preventDefault();const d=oe(n,c,1);R(d),F(d)}else if(e.key==="ArrowUp"||e.key==="ArrowLeft"){e.preventDefault();const d=oe(n,c,-1);R(d),F(d)}else if(e.key==="Home"){e.preventDefault();const d=Math.max(0,ie(n));R(d),F(d)}else if(e.key===" "||e.key==="Enter"){e.preventDefault();const d=n[c];d&&P(d)}},ge=()=>{var e;return t.heading??((e=t.data)==null?void 0:e.prompt)??"Choose an option"},Z=`kai-choice-prompt-${i}`,ee=`kai-choice-other-${i}`;return u(b,{get when(){return h()},get fallback(){return u(J,{get heading(){return t.heading},get errorMessage(){return I()}})},get children(){return u(be,{fallback:()=>(l({kind:"error",cardId:t.cardId,message:"The card failed to render."}),u(J,{get heading(){return t.heading},errorMessage:"The card failed to render."})),get children(){return u(b,{get when(){return!m.isDeferred()},get fallback(){return u(Ce,{type:Ke,get title(){return t.heading},onReopen:Y})},get children(){return u(J,{get heading(){return t.heading},get children(){var e=ze();return p(e,u(b,{get when(){var n;return(n=t.data)==null?void 0:n.prompt},get children(){var n=je();return v(n,"id",Z),p(n,()=>{var c;return(c=t.data)==null?void 0:c.prompt}),n}}),null),p(e,u(b,{get when(){return!m.isResolved()},get fallback(){return u(rr,{get choice(){return le()},get optimistic(){return m.isOptimistic()}})},get children(){return[(()=>{var n=Ve();n.$$keydown=pe;var c=_;return typeof c=="function"?te(c,n):_=n,p(n,u(ye,{get each(){return C()},children:(d,y)=>{const g=()=>T()===d.id,$=()=>!d.disabled&&!A()&&y()===q()&&!m.isResolved(),S=`kai-choice-desc-${i}-${d.id}`,j=()=>!!d.description;return u(er,{opt:d,get checked(){return g()},get tabStop(){return $()},descId:S,get hasDesc(){return j()},onPick:()=>{R(y()),P(d)},onFocus:()=>R(y())})}})),w(d=>{var y,g=ge(),$=(y=t.data)!=null&&y.prompt?Z:void 0,S=A()?"true":void 0,j=M("divide-y divide-border overflow-hidden rounded-lg border border-input",A()&&"cursor-not-allowed opacity-60");return g!==d.e&&v(n,"aria-label",d.e=g),$!==d.t&&v(n,"aria-describedby",d.t=$),S!==d.a&&v(n,"aria-disabled",d.a=S),j!==d.o&&z(n,d.o=j),d},{e:void 0,t:void 0,a:void 0,o:void 0}),n})(),u(b,{get when(){return W()},get children(){var n=Ee(),c=n.firstChild,d=c.nextSibling;v(c,"for",ee),p(c,()=>{var g;return((g=V())==null?void 0:g.label)??K}),d.$$keydown=g=>{g.key==="Enter"&&(g.preventDefault(),B())},d.$$input=g=>Q(g.currentTarget.value);var y=E;return typeof y=="function"?te(y,d):E=d,v(d,"id",ee),w(g=>{var $,S=A(),j=($=V())==null?void 0:$.placeholder;return S!==g.e&&(d.disabled=g.e=S),j!==g.t&&v(d,"placeholder",g.t=j),g},{e:void 0,t:void 0}),w(()=>d.value=H()),n}}),(()=>{var n=Te();return p(n,u(b,{get when(){var c;return((c=t.data)==null?void 0:c.dismissible)===!0},get children(){return u(ne,{type:"button",variant:"ghost",size:"icon-sm","aria-label":"Dismiss",onClick:X,get children(){return u($e,{size:16,"aria-hidden":"true"})}})}}),null),p(n,u(ne,{type:"button",class:"ml-auto",get disabled(){return!ue()},onClick:B,get children(){return ce()}}),null),n})()]}}),null),w(()=>z(e,M("flex flex-col gap-3",t.class))),e}})}})}})}})}function Xe(){return Le()}function Ye(r){return(()=>{var o=Me();return w(t=>{var s=r.media.image,i=r.media.imageAlt??"",l=M("shrink-0 rounded-md object-cover",r.class);return s!==t.e&&v(o,"src",t.e=s),i!==t.t&&v(o,"alt",t.t=i),l!==t.a&&z(o,t.a=l),t},{e:void 0,t:void 0,a:void 0}),o})()}function Ze(r){return(()=>{var o=Oe();return p(o,()=>r.name.slice(0,2)),o})()}function er(r){return(()=>{var o=Pe(),t=o.firstChild,s=t.nextSibling,i=s.firstChild,l=i.firstChild;return ke(o,"focus",r.onFocus),o.$$click=()=>!r.opt.disabled&&r.onPick(),p(o,u(b,{get when(){var a;return(a=r.opt.media)==null?void 0:a.image},get children(){return u(Ie,{openDelay:150,class:"p-1 w-auto",placement:"right-start",get trigger(){return u(Ye,{get media(){return r.opt.media},class:"h-9 w-9"})},get children(){var a=_e();return w(h=>{var I=r.opt.media.image,x=r.opt.media.imageAlt??"";return I!==h.e&&v(a,"src",h.e=I),x!==h.t&&v(a,"alt",h.t=x),h},{e:void 0,t:void 0}),a}})}}),t),p(o,u(b,{get when(){var a;return L(()=>{var h;return!((h=r.opt.media)!=null&&h.image)})()&&((a=r.opt.media)==null?void 0:a.icon)},get children(){return u(Ze,{get name(){return r.opt.media.icon}})}}),t),p(t,u(b,{get when(){return r.checked},get children(){return Fe()}})),p(l,()=>r.opt.label),p(i,u(b,{get when(){return r.opt.recommended},get children(){return u(Xe,{})}}),null),p(s,u(b,{get when(){return r.opt.description},get children(){var a=qe();return p(a,()=>r.opt.description),w(()=>v(a,"id",r.descId)),a}}),null),p(o,u(b,{get when(){return r.opt.meta},get children(){var a=He();return p(a,()=>r.opt.meta),a}}),null),w(a=>{var h=r.checked,I=r.opt.disabled?"true":void 0,x=r.hasDesc?r.descId:void 0,V=r.opt.id,C=r.opt.disabled?-1:r.tabStop?0:-1,m=M("flex items-center gap-3 px-3 py-2.5 text-sm outline-none transition-colors focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",r.opt.disabled?"cursor-not-allowed opacity-60 text-foreground":"cursor-pointer hover:bg-muted/50",r.checked?"bg-accent font-medium text-accent-foreground":"text-foreground"),O=M("flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full border-[1.5px] transition-colors",r.checked?"border-[var(--color-primary)]":"border-input bg-background");return h!==a.e&&v(o,"aria-checked",a.e=h),I!==a.t&&v(o,"aria-disabled",a.t=I),x!==a.a&&v(o,"aria-describedby",a.a=x),V!==a.o&&v(o,"data-option-id",a.o=V),C!==a.i&&v(o,"tabindex",a.i=C),m!==a.n&&z(o,a.n=m),O!==a.s&&z(t,a.s=O),a},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),o})()}function rr(r){const o=r.choice;return(()=>{var t=Ge();return p(t,u(Se,{size:16,"aria-hidden":"true"}),null),p(t,u(b,{get when(){return!o.other},get fallback(){return(()=>{var s=Je();return s.firstChild,p(s,(()=>{var i=L(()=>!!o.other);return()=>i()?o.text:""})(),null),s})()},get children(){return[(()=>{var s=Be();return p(s,(()=>{var i=L(()=>!o.other);return()=>{var l;return i()?((l=o.opt)==null?void 0:l.label)??o.id:""}})()),s})(),u(b,{get when(){var s;return L(()=>!o.other)()&&((s=o.opt)==null?void 0:s.meta)},get children(){var s=Ue();return p(s,(()=>{var i=L(()=>!o.other);return()=>{var l;return i()?(l=o.opt)==null?void 0:l.meta:""}})()),s}})]}}),null),w(()=>v(t,"role",r.optimistic?"status":void 0)),t})()}xe(["keydown","input","click"]),we("kai-choice",{data:void 0,cardId:void 0,heading:void 0,resolution:void 0,value:void 0,defaultValue:void 0,disabled:void 0},(r,{element:o,dispatch:t,flag:s,expose:i})=>{let l;return i({focus:a=>l?.focus(a),select:a=>l?.select(a),send:()=>l?.send(),dismiss:()=>l?.dismiss(),reopen:()=>l?.reopen()}),u(We,{get data(){return r.data},get cardId(){return r.cardId??(o.id||"kai-choice")},get heading(){return r.heading},get resolution(){return r.resolution},get value(){return r.value},get defaultValue(){return r.defaultValue},get disabled(){return s("disabled")},onValueChange:a=>t("kai-value-change",{value:a}),controllerRef:a=>l=a,hostElement:o})});
1
+ import{f as r,c as u}from"./chunks/define-lE-QvQFn.js";import{C as n}from"./chunks/choice-card-YoWjpsFV.js";r("kai-choice",{data:void 0,cardId:void 0,heading:void 0,resolution:void 0,value:void 0,defaultValue:void 0,disabled:void 0},(l,{element:d,dispatch:t,flag:i,expose:o})=>{let e;return o({focus:a=>e?.focus(a),select:a=>e?.select(a),send:()=>e?.send(),dismiss:()=>e?.dismiss(),reopen:()=>e?.reopen()}),u(n,{get data(){return l.data},get cardId(){return l.cardId??(d.id||"kai-choice")},get heading(){return l.heading},get resolution(){return l.resolution},get value(){return l.value},get defaultValue(){return l.defaultValue},get disabled(){return i("disabled")},onValueChange:a=>t("kai-value-change",{value:a}),controllerRef:a=>e=a,hostElement:d})});
@@ -1 +1 @@
1
- import{s as d,l as h,m as i,n as u,i as c,c as n,D as k,F as g,t as w}from"./define-D1din7Ld.js";var m={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"},t=m,v=w("<svg>"),p=r=>r.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),b=(...r)=>r.filter((e,s,o)=>!!e&&o.indexOf(e)===s).join(" "),f=r=>{const[e,s]=d(r,["color","size","strokeWidth","children","class","name","iconNode","absoluteStrokeWidth"]);return(()=>{var o=v();return h(o,i(t,{get width(){return e.size??t.width},get height(){return e.size??t.height},get stroke(){return e.color??t.stroke},get"stroke-width"(){return u(()=>!!e.absoluteStrokeWidth)()?Number(e.strokeWidth??t["stroke-width"])*24/Number(e.size):Number(e.strokeWidth??t["stroke-width"])},get class(){return b("lucide","lucide-icon",e.name!=null?`lucide-${p(e?.name)}`:void 0,e.class!=null?e.class:"")}},s),!0,!0),c(o,n(g,{get each(){return e.iconNode},children:([l,a])=>n(k,i({component:l},a))})),o})()},z=f;export{z as I};
1
+ import{s as d,q as h,m as i,j as u,i as c,c as n,D as k,F as g,t as w}from"./define-lE-QvQFn.js";var m={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"},t=m,v=w("<svg>"),p=r=>r.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),b=(...r)=>r.filter((e,s,o)=>!!e&&o.indexOf(e)===s).join(" "),f=r=>{const[e,s]=d(r,["color","size","strokeWidth","children","class","name","iconNode","absoluteStrokeWidth"]);return(()=>{var o=v();return h(o,i(t,{get width(){return e.size??t.width},get height(){return e.size??t.height},get stroke(){return e.color??t.stroke},get"stroke-width"(){return u(()=>!!e.absoluteStrokeWidth)()?Number(e.strokeWidth??t["stroke-width"])*24/Number(e.size):Number(e.strokeWidth??t["stroke-width"])},get class(){return b("lucide","lucide-icon",e.name!=null?`lucide-${p(e?.name)}`:void 0,e.class!=null?e.class:"")}},s),!0,!0),c(o,n(g,{get each(){return e.iconNode},children:([a,l])=>n(k,i({component:a},l))})),o})()},z=f;export{z as I};
@@ -1 +1 @@
1
- import{I as a}from"./Icon-Tj58ES_d.js";import{c as o,m as r}from"./define-D1din7Ld.js";import{f as t,b as i,s,p,c as m}from"./share-C3lTiYGt.js";import{c as k}from"./check-B9-gn6SS.js";import{d}from"./download-Dsbg3ste.js";import{e as y}from"./ellipsis-Dw6qrss-.js";import{l as n}from"./link-i4r_k7z4.js";import{s as c}from"./star-CSJtGxgv.js";import{a as l,t as h}from"./thumbs-up-PNVVThEF.js";import{x as f}from"./x-GRUeeQFT.js";var v=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],M=e=>o(a,r(e,{name:"RefreshCw",iconNode:v})),u=M,x=[["polyline",{points:"9 17 4 12 9 7",key:"hvgpf2"}],["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}]],g=e=>o(a,r(e,{name:"Reply",iconNode:x})),N=g,w=[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]],L=e=>o(a,r(e,{name:"Trash2",iconNode:w})),R=L,b=[["polygon",{points:"11 5 6 9 2 9 2 15 6 15 11 19 11 5",key:"16drj5"}],["path",{d:"M15.54 8.46a5 5 0 0 1 0 7.07",key:"ltjumu"}],["path",{d:"M19.07 4.93a10 10 0 0 1 0 14.14",key:"1kegas"}]],j=e=>o(a,r(e,{name:"Volume2",iconNode:b})),C=j;const H={copy:m,like:h,dislike:l,regenerate:u,edit:p,share:s,bookmark:i,download:d,link:n,trash:R,check:k,x:f,star:c,flag:t,reply:N,more:y,"volume-2":C};function V(e){if(e)return H[e]}const D={copy:"Copy",like:"Like",dislike:"Dislike",regenerate:"Regenerate",edit:"Edit"};export{D as B,V as a};
1
+ import{I as a}from"./Icon-CHG5z5L7.js";import{c as o,m as r}from"./define-lE-QvQFn.js";import{f as t,b as i,s,p,c as m}from"./share-CNTx0z__.js";import{c as k}from"./check-7Q3K-iXE.js";import{d}from"./download-B2ZmnGqW.js";import{e as y}from"./ellipsis-BmxceY4l.js";import{l as n}from"./link-DEi5iUWC.js";import{s as c}from"./star-CxQVTVhI.js";import{a as l,t as h}from"./thumbs-up-UobcJnx9.js";import{x as f}from"./x-_-OPHept.js";var v=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],M=e=>o(a,r(e,{name:"RefreshCw",iconNode:v})),u=M,x=[["polyline",{points:"9 17 4 12 9 7",key:"hvgpf2"}],["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}]],g=e=>o(a,r(e,{name:"Reply",iconNode:x})),N=g,w=[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]],L=e=>o(a,r(e,{name:"Trash2",iconNode:w})),R=L,b=[["polygon",{points:"11 5 6 9 2 9 2 15 6 15 11 19 11 5",key:"16drj5"}],["path",{d:"M15.54 8.46a5 5 0 0 1 0 7.07",key:"ltjumu"}],["path",{d:"M19.07 4.93a10 10 0 0 1 0 14.14",key:"1kegas"}]],j=e=>o(a,r(e,{name:"Volume2",iconNode:b})),C=j;const H={copy:m,like:h,dislike:l,regenerate:u,edit:p,share:s,bookmark:i,download:d,link:n,trash:R,check:k,x:f,star:c,flag:t,reply:N,more:y,"volume-2":C};function V(e){if(e)return H[e]}const D={copy:"Copy",like:"Like",dislike:"Dislike",regenerate:"Regenerate",edit:"Edit"};export{D as B,V as a};
@@ -0,0 +1 @@
1
+ import{I as o}from"./Icon-CHG5z5L7.js";import{c as m,m as r}from"./define-lE-QvQFn.js";var e=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],t=a=>m(o,r(a,{name:"ArrowLeft",iconNode:e})),p=t;export{p as a};
@@ -0,0 +1 @@
1
+ import{c as a,m as P,s as ce,g as k,k as C,l as F,x as G,o as Z,q as ue,i as h,S as g,t as v,d as p,a as y,b as J,v as Q,j as he,h as fe,e as ge}from"./define-lE-QvQFn.js";import{c as N}from"./cn-CU7UAWzk.js";import{B as z}from"./button-C42vrGvO.js";import{C as be,a as me}from"./code-block-CqeugReY.js";import{F as ve}from"./file-tree-0upJ5jeb.js";import{L as pe}from"./loader-CmJG_Fkq.js";import{a as we}from"./arrow-left-CFPTeL1Y.js";import{I as X}from"./Icon-CHG5z5L7.js";import{r as xe,h as ke,c as ye}from"./rotate-cw-B5IHCBFV.js";import{d as ze}from"./download-B2ZmnGqW.js";import{e as Y}from"./external-link-BbdR7YO7.js";import{f as Te}from"./file-text-D7dijo1A.js";import{m as Ce,a as Fe}from"./minimize-2-C9ytZFMU.js";var Pe=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],Se=r=>a(X,P(r,{name:"ArrowRight",iconNode:Pe})),Oe=Se,Re=[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],je=r=>a(X,P(r,{name:"Eye",iconNode:Re})),Ie=je;const Ne="6.0.227",ee=`https://cdn.jsdelivr.net/npm/pdfjs-dist@${Ne}/build`,He=()=>import(/*@vite-ignore*/`${ee}/pdf.min.mjs`),Me=`${ee}/pdf.worker.min.mjs`;let Ee=He,Le=Me,H=null;function Ue(){if(!H){const r=Ee;H=(async()=>{const t=await r(),e=t.default??t;return e.GlobalWorkerOptions.workerSrc=Le,e})()}return H}async function $e(r,t,e){const o=await(await Ue()).getDocument({url:r}).promise;t.replaceChildren();const l=typeof window<"u"&&window.devicePixelRatio?window.devicePixelRatio:1;for(let s=1;s<=o.numPages;s++){const d=await o.getPage(s),c=d.getViewport({scale:1}),u=c.width>0?e/c.width:1,f=d.getViewport({scale:u*l}),b=document.createElement("canvas");b.width=Math.max(1,Math.floor(f.width)),b.height=Math.max(1,Math.floor(f.height)),b.setAttribute("role","img"),b.setAttribute("aria-label",`Page ${s}`),b.style.width="100%",b.style.height="auto",b.style.display="block";const w=b.getContext("2d");t.appendChild(b),await d.render({canvasContext:w,viewport:f}).promise}return{pages:o.numPages}}var Be=v('<div><div class="relative min-h-0 flex-1">'),De=v('<form class="min-w-0 flex-1"><label class=sr-only for=kai-artifact-path>Address</label><input id=kai-artifact-path name=kai-artifact-path type=text autocomplete=off placeholder="Enter a path or URL\u2026">'),Ae=v("<div class=flex-1 aria-hidden=true>"),Ve=v('<div role=tablist aria-label=View class="flex shrink-0 items-center gap-0.5 rounded-md bg-muted p-0.5">'),We=v('<div data-artifact-toolbar class="flex shrink-0 items-center gap-1.5 border-b border-border bg-surface px-2 py-1.5">'),qe=v("<button type=button role=tab>"),Ke=v('<iframe class="absolute inset-0 h-full w-full border-0 bg-white">'),_e=v('<div class="absolute inset-0 flex"><div class="w-56 shrink-0 overflow-auto border-r border-border bg-surface-sunken py-1.5 scrollbar-thin"></div><div class="min-w-0 flex-1 overflow-auto scrollbar-thin">'),Ge=v('<div class="flex h-full items-center justify-center p-6 text-sm text-muted-foreground">Select a file to view its source.'),Ze=v('<div class="flex h-full items-center justify-center p-6 text-sm text-muted-foreground">No source \u2014 this file (<!>) has no code view.'),Je=v(`<div role=region aria-label="PDF preview unavailable"class="absolute inset-0 flex flex-col items-center justify-center gap-3 bg-card p-6 text-center"><div class="text-sm font-medium text-foreground"></div><div class="text-xs text-muted-foreground">Can't preview this PDF inline.</div><div class="flex flex-wrap items-center justify-center gap-2"><a class="inline-flex h-8 items-center gap-1.5 rounded-md border border-border bg-background px-3 text-xs font-medium text-foreground transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"target=_blank rel="noopener noreferrer">Open in new tab</a><a class="inline-flex h-8 items-center gap-1.5 rounded-md border border-border bg-background px-3 text-xs font-medium text-foreground transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"download>Download`),Qe=v('<div class="pointer-events-none absolute inset-0 flex items-center justify-center">'),Xe=v('<div class="absolute inset-0"><div role=region aria-label="PDF preview"tabindex=0 class="absolute inset-0 flex flex-col items-center gap-3 overflow-auto bg-surface-sunken p-3 scrollbar-thin focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset">');const Ye="allow-scripts allow-forms";function er(r,t){if(r.url)return r.url;if(!t)return r.path;try{return new URL(r.path,t).href}catch{return r.path}}function rr(r,t){if(!r)return!1;const e=t.find(l=>l.url===r||l.path===r);if(e?.type==="pdf")return!0;const o=r.split(/[?#]/)[0];return/\.pdf$/i.test(o)}function nr(r){const t=P({files:[],defaultTab:"preview",sandbox:Ye,showNav:!0,showReload:!0,showHome:!0,showPathField:!0,showTabs:!0,expandable:!1,openInTab:!1,standalone:!1,readonlyPath:!1,maximized:!1},r),[e,o]=ce(t,["src","files","tab","defaultTab","activeFile","sandbox","iframeTitle","onNavigate","onTabChange","onFileSelect","maximized","onMaximizeChange","showNav","showReload","showHome","showPathField","showTabs","expandable","openInTab","standalone","readonlyPath","displayUrl","controllerRef","class"]),[l,s]=k(e.src?[e.src]:[]),[d,c]=k(e.src?0:-1),u=()=>l()[d()]??"",f=()=>d()>0,b=()=>d()<l().length-1,[w,M]=k(e.tab??e.defaultTab),[E,L]=k(e.activeFile),[ne,te]=k(0),[S,O]=k(e.maximized??!1);C(()=>O(e.maximized??!1));const ae=()=>{var n;const i=!S();O(i),(n=e.onMaximizeChange)==null||n.call(e,i)},U=F(()=>{const n=u();return!!n&&n!=="about:blank"}),$=()=>{U()&&window.open(u(),"_blank","noopener,noreferrer")},B=F(()=>e.expandable&&!e.standalone),ie=F(()=>e.showNav||e.showReload||e.showHome||e.showPathField||e.showTabs||B()||e.openInTab);let x;C(()=>{e.tab!==void 0&&M(e.tab)}),C(()=>L(e.activeFile)),C(G(()=>e.src,n=>{n&&n!==u()&&T(n)},{defer:!0}));const D=n=>n===void 0?void 0:e.files.find(i=>i.path===n),A=F(()=>D(E())),oe=F(()=>{const n=A();return!!n&&n.type!=="image"&&n.type!=="pdf"&&typeof n.code=="string"});function T(n){if(n===u()){j();return}s(i=>[...i.slice(0,d()+1),n]),c(i=>i+1),R()}function R(){var n;const i=u();x&&(x.src=i||"about:blank"),(n=e.onNavigate)==null||n.call(e,i)}function le(n){var i;n!==w()&&(M(n),(i=e.onTabChange)==null||i.call(e,n))}function V(n,i){var m;L(n),(m=e.onFileSelect)==null||m.call(e,n),T(er(i,e.src))}const W=()=>{f()&&(c(n=>n-1),R())},q=()=>{b()&&(c(n=>n+1),R())};function j(){var n;const i=u();x&&(x.src="about:blank",x.src=i||"about:blank"),te(m=>m+1),(n=e.onNavigate)==null||n.call(e,i)}const K=()=>{e.src&&T(e.src)},_=n=>{var i;S()!==n&&(O(n),(i=e.onMaximizeChange)==null||i.call(e,n))};Z(()=>{var n;(n=e.controllerRef)==null||n.call(e,{back:()=>W(),forward:()=>q(),reload:()=>j(),home:()=>K(),navigate:i=>T(i),selectFile:i=>{const m=D(i);m&&V(i,m)},openExternal:()=>$(),maximize:()=>_(!0),restore:()=>_(!1)})});const se=()=>{var n,i;try{const m=(n=x?.contentWindow)==null?void 0:n.location.href;m&&m!=="about:blank"&&m!==u()&&(s(I=>[...I.slice(0,d()+1),m]),c(I=>I+1),(i=e.onNavigate)==null||i.call(e,m))}catch{}},de=n=>{n.preventDefault();const i=n.currentTarget.elements.namedItem("kai-artifact-path");if(e.readonlyPath||e.displayUrl!=null){i&&(i.value=e.displayUrl??u());return}i&&i.value&&T(i.value)};return(()=>{var n=Be(),i=n.firstChild;return ue(n,P({get class(){return N("flex h-full w-full flex-col overflow-hidden bg-card text-card-foreground",e.standalone&&"rounded-xl border border-border",e.class)}},o),!1,!0),h(n,a(g,{get when(){return ie()},get children(){return a(tr,{url:()=>e.displayUrl??u(),tab:w,canBack:f,canForward:b,canHome:()=>!!e.src,onBack:W,onForward:q,onReload:j,onHome:K,onSubmitPath:de,onTab:le,showNav:()=>e.showNav,showReload:()=>e.showReload,showHome:()=>e.showHome,showPathField:()=>e.showPathField,showTabs:()=>e.showTabs,showExpand:B,showOpenInTab:()=>e.openInTab,maximized:S,onToggleMaximize:ae,canOpenInTab:U,onOpenInTab:$,readonlyPath:()=>e.readonlyPath||e.displayUrl!=null})}}),i),h(i,a(g,{get when(){return w()==="preview"},get fallback(){return a(ir,{get files(){return e.files},activeFile:E,activeFileObj:A,hasSource:oe,onSelect:V})},get children(){return a(g,{get when(){return rr(u(),e.files)},get fallback(){return a(ar,{ref:m=>x=m,src:u,get sandbox(){return e.sandbox},get title(){return e.iframeTitle??"Artifact preview"},onLoad:se})},get children(){return a(lr,{get url(){return u()},get reloadKey(){return ne()}})}})}})),n})()}function tr(r){return(()=>{var t=We();return h(t,a(g,{get when(){return r.showNav()},get children(){return[a(z,{variant:"ghost",size:"icon-sm","aria-label":"Back",get disabled(){return!r.canBack()},onClick:()=>r.onBack(),get children(){return a(we,{size:16,"aria-hidden":"true"})}}),a(z,{variant:"ghost",size:"icon-sm","aria-label":"Forward",get disabled(){return!r.canForward()},onClick:()=>r.onForward(),get children(){return a(Oe,{size:16,"aria-hidden":"true"})}})]}}),null),h(t,a(g,{get when(){return r.showReload()},get children(){return a(z,{variant:"ghost",size:"icon-sm","aria-label":"Reload",onClick:()=>r.onReload(),get children(){return a(xe,{size:15,"aria-hidden":"true"})}})}}),null),h(t,a(g,{get when(){return r.showHome()},get children(){return a(z,{variant:"ghost",size:"icon-sm","aria-label":"Home",get disabled(){return!r.canHome()},onClick:()=>r.onHome(),get children(){return a(ke,{size:15,"aria-hidden":"true"})}})}}),null),h(t,a(g,{get when(){return r.showPathField()},get children(){var e=De(),o=e.firstChild,l=o.nextSibling;return e.addEventListener("submit",s=>r.onSubmitPath(s)),p(l,"spellcheck",!1),y(s=>{var d=r.readonlyPath()||void 0,c=r.readonlyPath()?"true":void 0,u=N("h-7 w-full rounded-md border border-border px-2.5 text-xs text-foreground font-mono outline-none",r.readonlyPath()?"bg-muted/40 cursor-default":"bg-background focus-visible:ring-2 focus-visible:ring-ring");return d!==s.e&&(l.readOnly=s.e=d),c!==s.t&&p(l,"aria-readonly",s.t=c),u!==s.a&&J(l,s.a=u),s},{e:void 0,t:void 0,a:void 0}),y(()=>l.value=r.url()),e}}),null),h(t,a(g,{get when(){return!r.showPathField()},get children(){return Ae()}}),null),h(t,a(g,{get when(){return r.showExpand()},get children(){return a(z,{variant:"ghost",size:"icon-sm",get"aria-label"(){return r.maximized()?"Collapse":"Expand"},get"aria-expanded"(){return r.maximized()},onClick:()=>r.onToggleMaximize(),get children(){return a(g,{get when(){return r.maximized()},get fallback(){return a(Fe,{size:15,"aria-hidden":"true"})},get children(){return a(Ce,{size:15,"aria-hidden":"true"})}})}})}}),null),h(t,a(g,{get when(){return r.showOpenInTab()},get children(){return a(z,{variant:"ghost",size:"icon-sm","aria-label":"Open in new tab",get disabled(){return!r.canOpenInTab()},onClick:()=>r.onOpenInTab(),get children(){return a(Y,{size:15,"aria-hidden":"true"})}})}}),null),h(t,a(g,{get when(){return r.showTabs()},get children(){var e=Ve();return h(e,a(re,{label:"Preview",get icon(){return a(Ie,{size:14,"aria-hidden":"true"})},get selected(){return r.tab()==="preview"},onClick:()=>r.onTab("preview")}),null),h(e,a(re,{label:"Code",get icon(){return a(ye,{size:14,"aria-hidden":"true"})},get selected(){return r.tab()==="code"},onClick:()=>r.onTab("code")}),null),e}}),null),t})()}function re(r){return(()=>{var t=qe();return t.$$click=()=>r.onClick(),h(t,()=>r.icon,null),h(t,()=>r.label,null),y(e=>{var o=r.selected,l=N("inline-flex h-6 items-center gap-1.5 rounded px-2 text-xs font-medium transition-colors outline-none","focus-visible:ring-2 focus-visible:ring-ring",r.selected?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground");return o!==e.e&&p(t,"aria-selected",e.e=o),l!==e.t&&J(t,e.t=l),e},{e:void 0,t:void 0}),t})()}function ar(r){return(()=>{var t=Ke();t.addEventListener("load",()=>r.onLoad());var e=r.ref;return typeof e=="function"?Q(e,t):r.ref=t,y(o=>{var l=r.src()||"about:blank",s=r.sandbox,d=r.title;return l!==o.e&&p(t,"src",o.e=l),s!==o.t&&p(t,"sandbox",o.t=s),d!==o.a&&p(t,"title",o.a=d),o},{e:void 0,t:void 0,a:void 0}),t})()}function ir(r){return(()=>{var t=_e(),e=t.firstChild,o=e.nextSibling;return h(e,a(ve,{get files(){return r.files},get activeFile(){return r.activeFile()},onSelect:(l,s)=>r.onSelect(l,s)})),h(o,a(g,{get when(){return r.activeFileObj()},get fallback(){return Ge()},get children(){return a(g,{get when(){return r.hasSource()},get fallback(){return(()=>{var l=Ze(),s=l.firstChild,d=s.nextSibling;return d.nextSibling,h(l,()=>r.activeFileObj().type??"binary",d),l})()},get children(){return a(be,{class:"h-full rounded-none border-0",get children(){return a(me,{get code(){return r.activeFileObj().code??""},get language(){return r.activeFileObj().language}})}})}})}})),t})()}function or(r){const t=()=>{const e=r.url.split(/[?#]/)[0];return e.slice(e.lastIndexOf("/")+1)||"document.pdf"};return(()=>{var e=Je(),o=e.firstChild,l=o.nextSibling,s=l.nextSibling,d=s.firstChild;d.firstChild;var c=d.nextSibling,u=c.firstChild;return h(e,a(Te,{size:40,class:"text-muted-foreground","aria-hidden":"true"}),o),h(o,t),h(d,a(Y,{size:13,"aria-hidden":"true"}),null),h(c,a(ze,{size:13,"aria-hidden":"true"}),u),y(f=>{var b=r.url,w=r.url;return b!==f.e&&p(d,"href",f.e=b),w!==f.t&&p(c,"href",f.t=w),f},{e:void 0,t:void 0}),e})()}function lr(r){const[t,e]=k("loading");let o,l=0,s;const d=async()=>{if(!o){e("error");return}const c=++l;e("loading");try{const u=o.clientWidth||600;await $e(r.url,o,u),c===l&&e("success")}catch{c===l&&e("error")}};return C(G(()=>[r.url,r.reloadKey],()=>{d()})),Z(()=>{if(!o||typeof ResizeObserver>"u")return;const c=new ResizeObserver(()=>{t()==="success"&&(clearTimeout(s),s=setTimeout(()=>{d()},200))});c.observe(o),fe(()=>{c.disconnect(),clearTimeout(s),l++})}),(()=>{var c=Xe(),u=c.firstChild;return Q(f=>o=f,u),h(c,a(g,{get when(){return he(()=>!0)()&&t()==="loading"},get children(){var f=Qe();return h(f,a(pe,{variant:"circular",size:"md"})),f}}),null),h(c,a(g,{get when(){return t()==="error"},get children(){return a(or,{get url(){return r.url}})}}),null),y(()=>p(u,"aria-busy",t()==="loading")),c})()}ge(["click"]);export{nr as A};
@@ -1 +1 @@
1
- import{c as n,m,s as h,l as p,i as u,S as w,n as j,t as g,A as C,B as I,a as k,d as y}from"./define-D1din7Ld.js";import{c as d}from"./cn-CU7UAWzk.js";import{B as D}from"./button-ZWNif3--.js";import{a as M,b as P,c as B}from"./hover-card-Cmm6Q53m.js";import{x as N}from"./x-GRUeeQFT.js";import{f as S}from"./file-text-CZrZF6_v.js";import{p as E,g as V,i as q}from"./paperclip-q21dYOSK.js";import{I as F}from"./Icon-Tj58ES_d.js";import{v as G}from"./video-B7vmenoC.js";var H=[["circle",{cx:"8",cy:"18",r:"4",key:"1fc0mg"}],["path",{d:"M12 18V2l7 4",key:"g04rme"}]],J=r=>n(F,m(r,{name:"Music2",iconNode:H})),K=J,b=g("<div>"),L=g('<img class="size-full object-cover"height=96 width=96>'),O=g('<img class="size-full rounded object-cover"height=20 width=20>'),Q=g('<video class="size-full object-cover"muted>'),U=g('<span class="text-muted-foreground text-caption block truncate">'),X=g('<div><span class="block truncate">'),Y=g("<span class=sr-only>");const _={audio:K,document:S,image:q,source:V,unknown:E,video:G},z=r=>{if(r.type==="source-document")return"source";const t=r.mediaType??"";return t.startsWith("image/")?"image":t.startsWith("video/")?"video":t.startsWith("audio/")?"audio":t.startsWith("application/")||t.startsWith("text/")?"document":"unknown"},A=r=>{if(r.type==="source-document")return r.title||r.filename||"Source";const t=z(r);return r.filename||(t==="image"?"Image":"Attachment")},T=C(),W=C(),$=()=>I(T)??{variant:"grid"},R=()=>{const r=I(W);if(!r)throw new Error("Attachment components must be used within <Attachment>");return r};function Z(r){const[t,s]=h(r,["variant","class","children"]),e=()=>t.variant??"grid";return n(T.Provider,{value:{get variant(){return e()}},get children(){var a=b();return p(a,m({get class(){return d("flex items-start",e()==="list"?"flex-col gap-2":"flex-wrap gap-2",e()==="grid"&&"w-fit",t.class)}},s),!1,!0),u(a,()=>t.children),a}})}function ee(r){const[t,s]=h(r,["data","onRemove","class","children"]),e=$(),a=()=>z(t.data);return n(W.Provider,{value:{get data(){return t.data},get mediaCategory(){return a()},get onRemove(){return t.onRemove},get variant(){return e.variant}},get children(){var o=b();return p(o,m({get class(){return d("group relative",e.variant==="grid"&&"size-24 overflow-hidden rounded-lg",e.variant==="inline"&&["flex h-8 cursor-pointer select-none items-center gap-1.5","rounded-md bg-surface-strong px-1.5 text-foreground","font-medium text-sm transition-all","hover:bg-muted"],e.variant==="list"&&["flex w-full items-center gap-3 rounded-lg bg-surface p-3 text-foreground","hover:bg-muted/50"],t.class)}},s),!1,!0),u(o,()=>t.children),o}})}function re(r){const[t,s]=h(r,["fallbackIcon","class"]),e=R(),a=()=>e.variant==="inline"?"size-3":"size-4",o=c=>n(c,{get class(){return d(a(),"text-muted-foreground")}}),x=()=>{if(e.mediaCategory==="image"&&e.data.type==="file"&&e.data.url)return e.variant==="grid"?(()=>{var l=L();return k(i=>{var v=e.data.filename||"Image",f=e.data.url;return v!==i.e&&y(l,"alt",i.e=v),f!==i.t&&y(l,"src",i.t=f),i},{e:void 0,t:void 0}),l})():(()=>{var l=O();return k(i=>{var v=e.data.filename||"Image",f=e.data.url;return v!==i.e&&y(l,"alt",i.e=v),f!==i.t&&y(l,"src",i.t=f),i},{e:void 0,t:void 0}),l})();if(e.mediaCategory==="video"&&e.data.type==="file"&&e.data.url)return(()=>{var l=Q();return k(()=>y(l,"src",e.data.url)),l})();const c=_[e.mediaCategory];return t.fallbackIcon??o(c)};return(()=>{var c=b();return p(c,m({get class(){return d("flex shrink-0 items-center justify-center overflow-hidden",e.variant==="grid"&&"size-full bg-muted",e.variant==="inline"&&"size-5 rounded bg-background",e.variant==="list"&&"size-12 rounded bg-muted",t.class)}},s),!1,!0),u(c,x),c})()}function te(r){const[t,s]=h(r,["showMediaType","class"]),e=R(),a=()=>A(e.data);return n(w,{get when(){return e.variant!=="grid"},get children(){var o=X(),x=o.firstChild;return p(o,m({get class(){return d("min-w-0 flex-1",t.class)}},s),!1,!0),u(x,a),u(o,n(w,{get when(){return j(()=>!!(t.showMediaType&&e.variant==="list"))()&&e.data.mediaType},get children(){var c=U();return u(c,()=>e.data.mediaType),c}}),null),o}})}function ae(r){const t=R(),s=e=>{var a;e.stopPropagation(),(a=t.onRemove)==null||a.call(t)};return n(w,{get when(){return t.onRemove},get children(){return n(D,{get"aria-label"(){return r.label??"Remove"},get class(){return d(t.variant==="grid"&&["absolute top-2 right-2 size-6 rounded-full p-0","bg-background/80 backdrop-blur-sm","opacity-0 transition-opacity group-hover:opacity-100","hover:bg-background","[&>svg]:size-3"],t.variant==="inline"&&["size-5 rounded p-0","opacity-0 transition-opacity group-hover:opacity-100","[&>svg]:size-2.5"],t.variant==="list"&&["size-8 shrink-0 rounded p-0","[&>svg]:size-4"],r.class)},onClick:s,type:"button",variant:"ghost",get children(){return[j(()=>r.children??n(N,{})),(()=>{var e=Y();return u(e,()=>r.label??"Remove"),e})()]}})}})}function ne(r){return n(M,{get openDelay(){return r.openDelay??0},get closeDelay(){return r.closeDelay??0},get children(){return r.children}})}function se(r){return n(P,{get class(){return r.class},get children(){return r.children}})}function ie(r){return n(B,{get class(){return d("w-auto p-2",r.class)},get children(){return r.children}})}function oe(r){const[t,s]=h(r,["class","children"]);return(()=>{var e=b();return p(e,m({get class(){return d("flex items-center justify-center p-4 text-muted-foreground text-sm",t.class)}},s),!1,!0),u(e,()=>t.children??"No attachments"),e})()}export{Z as A,ee as a,ne as b,se as c,re as d,te as e,ie as f,A as g,z as h,ae as i,oe as j};
1
+ import{c as n,m,s as h,q as p,i as u,S as w,j as R,t as g,z as C,A as I,a as k,d as y}from"./define-lE-QvQFn.js";import{c as d}from"./cn-CU7UAWzk.js";import{B as D}from"./button-C42vrGvO.js";import{H as M,a as P,b as N}from"./hover-card-CN9s2md5.js";import{x as S}from"./x-_-OPHept.js";import{f as q}from"./file-text-D7dijo1A.js";import{p as B,g as E,i as H}from"./paperclip-CFaB8naM.js";import{I as V}from"./Icon-CHG5z5L7.js";import{v as F}from"./video-CrPHsytT.js";var G=[["circle",{cx:"8",cy:"18",r:"4",key:"1fc0mg"}],["path",{d:"M12 18V2l7 4",key:"g04rme"}]],J=r=>n(V,m(r,{name:"Music2",iconNode:G})),K=J,b=g("<div>"),L=g('<img class="size-full object-cover"height=96 width=96>'),O=g('<img class="size-full rounded object-cover"height=20 width=20>'),Q=g('<video class="size-full object-cover"muted>'),U=g('<span class="text-muted-foreground text-caption block truncate">'),X=g('<div><span class="block truncate">'),Y=g("<span class=sr-only>");const _={audio:K,document:q,image:H,source:E,unknown:B,video:F},z=r=>{if(r.type==="source-document")return"source";const t=r.mediaType??"";return t.startsWith("image/")?"image":t.startsWith("video/")?"video":t.startsWith("audio/")?"audio":t.startsWith("application/")||t.startsWith("text/")?"document":"unknown"},A=r=>{if(r.type==="source-document")return r.title||r.filename||"Source";const t=z(r);return r.filename||(t==="image"?"Image":"Attachment")},T=C(),W=C(),$=()=>I(T)??{variant:"grid"},j=()=>{const r=I(W);if(!r)throw new Error("Attachment components must be used within <Attachment>");return r};function Z(r){const[t,i]=h(r,["variant","class","children"]),e=()=>t.variant??"grid";return n(T.Provider,{value:{get variant(){return e()}},get children(){var a=b();return p(a,m({get class(){return d("flex items-start",e()==="list"?"flex-col gap-2":"flex-wrap gap-2",e()==="grid"&&"w-fit",t.class)}},i),!1,!0),u(a,()=>t.children),a}})}function ee(r){const[t,i]=h(r,["data","onRemove","class","children"]),e=$(),a=()=>z(t.data);return n(W.Provider,{value:{get data(){return t.data},get mediaCategory(){return a()},get onRemove(){return t.onRemove},get variant(){return e.variant}},get children(){var o=b();return p(o,m({get class(){return d("group relative",e.variant==="grid"&&"size-24 overflow-hidden rounded-lg",e.variant==="inline"&&["flex h-8 cursor-pointer select-none items-center gap-1.5","rounded-md bg-surface-strong px-1.5 text-foreground","font-medium text-sm transition-all","hover:bg-muted"],e.variant==="list"&&["flex w-full items-center gap-3 rounded-lg bg-surface p-3 text-foreground","hover:bg-muted/50"],t.class)}},i),!1,!0),u(o,()=>t.children),o}})}function re(r){const[t,i]=h(r,["fallbackIcon","class"]),e=j(),a=()=>e.variant==="inline"?"size-3":"size-4",o=c=>n(c,{get class(){return d(a(),"text-muted-foreground")}}),x=()=>{if(e.mediaCategory==="image"&&e.data.type==="file"&&e.data.url)return e.variant==="grid"?(()=>{var l=L();return k(s=>{var v=e.data.filename||"Image",f=e.data.url;return v!==s.e&&y(l,"alt",s.e=v),f!==s.t&&y(l,"src",s.t=f),s},{e:void 0,t:void 0}),l})():(()=>{var l=O();return k(s=>{var v=e.data.filename||"Image",f=e.data.url;return v!==s.e&&y(l,"alt",s.e=v),f!==s.t&&y(l,"src",s.t=f),s},{e:void 0,t:void 0}),l})();if(e.mediaCategory==="video"&&e.data.type==="file"&&e.data.url)return(()=>{var l=Q();return k(()=>y(l,"src",e.data.url)),l})();const c=_[e.mediaCategory];return t.fallbackIcon??o(c)};return(()=>{var c=b();return p(c,m({get class(){return d("flex shrink-0 items-center justify-center overflow-hidden",e.variant==="grid"&&"size-full bg-muted",e.variant==="inline"&&"size-5 rounded bg-background",e.variant==="list"&&"size-12 rounded bg-muted",t.class)}},i),!1,!0),u(c,x),c})()}function te(r){const[t,i]=h(r,["showMediaType","class"]),e=j(),a=()=>A(e.data);return n(w,{get when(){return e.variant!=="grid"},get children(){var o=X(),x=o.firstChild;return p(o,m({get class(){return d("min-w-0 flex-1",t.class)}},i),!1,!0),u(x,a),u(o,n(w,{get when(){return R(()=>!!(t.showMediaType&&e.variant==="list"))()&&e.data.mediaType},get children(){var c=U();return u(c,()=>e.data.mediaType),c}}),null),o}})}function ae(r){const t=j(),i=e=>{var a;e.stopPropagation(),(a=t.onRemove)==null||a.call(t)};return n(w,{get when(){return t.onRemove},get children(){return n(D,{get"aria-label"(){return r.label??"Remove"},get class(){return d(t.variant==="grid"&&["absolute top-2 right-2 size-6 rounded-full p-0","bg-background/80 backdrop-blur-sm","opacity-0 transition-opacity group-hover:opacity-100","hover:bg-background","[&>svg]:size-3"],t.variant==="inline"&&["size-5 rounded p-0","opacity-0 transition-opacity group-hover:opacity-100","[&>svg]:size-2.5"],t.variant==="list"&&["size-8 shrink-0 rounded p-0","[&>svg]:size-4"],r.class)},onClick:i,type:"button",variant:"ghost",get children(){return[R(()=>r.children??n(S,{})),(()=>{var e=Y();return u(e,()=>r.label??"Remove"),e})()]}})}})}function ne(r){return n(M,{get openDelay(){return r.openDelay??0},get closeDelay(){return r.closeDelay??0},get children(){return r.children}})}function ie(r){return n(P,{get class(){return r.class},get children(){return r.children}})}function se(r){return n(N,{get class(){return d("w-auto p-2",r.class)},get children(){return r.children}})}function oe(r){const[t,i]=h(r,["class","children"]);return(()=>{var e=b();return p(e,m({get class(){return d("flex items-center justify-center p-4 text-muted-foreground text-sm",t.class)}},i),!1,!0),u(e,()=>t.children??"No attachments"),e})()}export{Z as A,ee as a,ne as b,ie as c,re as d,te as e,se as f,A as g,z as h,ae as i,oe as j};