@kitn.ai/ui 0.16.0 → 0.17.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 (194) hide show
  1. package/README.md +28 -13
  2. package/dist/components/chat-thread.d.ts +2 -4
  3. package/dist/components/choice-card.d.ts +1 -0
  4. package/dist/components/dismissed-stub.d.ts +22 -0
  5. package/dist/components/message.d.ts +59 -2
  6. package/dist/components/response-compare-types.d.ts +66 -0
  7. package/dist/components/response-compare.d.ts +51 -0
  8. package/dist/components/tasks-card.d.ts +1 -0
  9. package/dist/components/toast.d.ts +48 -0
  10. package/dist/components/use-card-resolution.d.ts +10 -6
  11. package/dist/custom-elements.json +260 -11
  12. package/dist/elements/artifact.js +1 -0
  13. package/dist/elements/attachments.js +1 -0
  14. package/dist/elements/autoloader.d.ts +2 -0
  15. package/dist/elements/autoloader.js +1 -0
  16. package/dist/elements/card.js +1 -0
  17. package/dist/elements/cards.d.ts +1 -0
  18. package/dist/elements/cards.js +1 -0
  19. package/dist/elements/chain-of-thought.d.ts +0 -12
  20. package/dist/elements/chain-of-thought.js +1 -0
  21. package/dist/elements/chat-scope-picker.js +1 -0
  22. package/dist/elements/chat-workspace.js +1 -0
  23. package/dist/elements/chat.js +1 -0
  24. package/dist/elements/checkpoint.js +1 -0
  25. package/dist/elements/choice.js +1 -0
  26. package/dist/elements/chunks/Icon-D_Zmwmwh.js +1 -0
  27. package/dist/elements/chunks/action-icons-PVfIvcuG.js +1 -0
  28. package/dist/elements/chunks/attachments-Dp6vqtrc.js +1 -0
  29. package/dist/elements/chunks/bash-InADTalH.js +1 -0
  30. package/dist/elements/chunks/button-CKyYD9G4.js +1 -0
  31. package/dist/elements/chunks/card-Cjho-PYk.js +1 -0
  32. package/dist/elements/chunks/card-routing-C986KuUA.js +1 -0
  33. package/dist/elements/chunks/chat-thread-RT808iPf.js +1 -0
  34. package/dist/elements/chunks/check-CDYaMYrM.js +1 -0
  35. package/dist/elements/chunks/chevron-down-3SBiq8HF.js +1 -0
  36. package/dist/elements/chunks/chevron-right-k2UFlIVK.js +1 -0
  37. package/dist/elements/chunks/cn-Dogu6PbV.js +1 -0
  38. package/dist/elements/chunks/code-block-BYUmfFSd.js +1 -0
  39. package/dist/elements/chunks/collapsible-BiNwdOn6.js +1 -0
  40. package/dist/elements/chunks/context-18g6oi4J.js +1 -0
  41. package/dist/elements/chunks/conversation-list-D9Y0NVdo.js +1 -0
  42. package/dist/elements/chunks/core-AYMC6_lb.js +12 -0
  43. package/dist/elements/chunks/css-M7EaDHN_.js +1 -0
  44. package/dist/elements/chunks/default-input-CSAoYYMd.js +1 -0
  45. package/dist/elements/chunks/download-D8K0Je8r.js +1 -0
  46. package/dist/elements/chunks/dropdown-bUs2iTia.js +1 -0
  47. package/dist/elements/chunks/engine-javascript-vq0WuIJl.js +141 -0
  48. package/dist/elements/chunks/external-link-6mA0wxab.js +1 -0
  49. package/dist/elements/chunks/file-text-DnaYk3Dm.js +1 -0
  50. package/dist/elements/chunks/file-tree-CgtRLlxK.js +1 -0
  51. package/dist/elements/chunks/github-dark-dimmed-DUshB20C.js +1 -0
  52. package/dist/elements/chunks/github-light-JYsPkUQd.js +1 -0
  53. package/dist/elements/chunks/hover-card-CIGw62gP.js +1 -0
  54. package/dist/elements/chunks/html-CPZ3oZQ7.js +1 -0
  55. package/dist/elements/chunks/index-CTBEJeo6.js +1 -0
  56. package/dist/elements/chunks/javascript-C25yR2R2.js +1 -0
  57. package/dist/elements/chunks/json-DxJze_jm.js +1 -0
  58. package/dist/elements/chunks/link-BlGSeoPy.js +1 -0
  59. package/dist/elements/chunks/loader-DvhR4qa0.js +1 -0
  60. package/dist/elements/chunks/markdown-CMTGx9r8.js +64 -0
  61. package/dist/elements/chunks/message-CDZwXjhL.js +1 -0
  62. package/dist/elements/chunks/message-feedback-CYx81QiA.js +1 -0
  63. package/dist/elements/chunks/model-switcher-O_tUhoOT.js +1 -0
  64. package/dist/elements/chunks/overlay-DydXYMQW.js +1 -0
  65. package/dist/elements/chunks/prompt-suggestion-ldlWV5kd.js +1 -0
  66. package/dist/elements/chunks/reasoning-2PUnHlmr.js +1 -0
  67. package/dist/elements/chunks/resizable-B5WNbSeb.js +1 -0
  68. package/dist/elements/chunks/star-t9tI-P0q.js +1 -0
  69. package/dist/elements/chunks/store-C6rIooZz.js +1 -0
  70. package/dist/elements/chunks/svelte--5p79yCD.js +1 -0
  71. package/dist/elements/chunks/text-shimmer-uh9V_KUh.js +1 -0
  72. package/dist/elements/chunks/textarea-3nm6Ia9U.js +1 -0
  73. package/dist/elements/chunks/thumbs-up-BBtguGld.js +1 -0
  74. package/dist/elements/chunks/toast-store-D8cL3fWl.js +1 -0
  75. package/dist/elements/chunks/tool-GJ3vwp1U.js +1 -0
  76. package/dist/elements/chunks/tooltip-DwKAz4XR.js +1 -0
  77. package/dist/elements/chunks/triangle-alert-Ct1zt2JL.js +1 -0
  78. package/dist/elements/chunks/tsx-B8rCNbgL.js +1 -0
  79. package/dist/elements/chunks/typescript-RycA9KXf.js +1 -0
  80. package/dist/elements/chunks/use-card-resolution-D-_0Alzy.js +1 -0
  81. package/dist/elements/chunks/video-mVYiM99-.js +1 -0
  82. package/dist/elements/chunks/vue-BmIZj4XD.js +1 -0
  83. package/dist/elements/chunks/x-CzxL27Ch.js +1 -0
  84. package/dist/elements/code-block.js +1 -0
  85. package/dist/elements/compare.js +1 -0
  86. package/dist/elements/confirm-card.js +1 -0
  87. package/dist/elements/context-meter.js +1 -0
  88. package/dist/elements/conversation-list.d.ts +1 -11
  89. package/dist/elements/conversation-list.js +1 -0
  90. package/dist/elements/embed.js +1 -0
  91. package/dist/elements/empty.js +1 -0
  92. package/dist/elements/feedback-bar.js +1 -0
  93. package/dist/elements/file-tree.js +1 -0
  94. package/dist/elements/file-upload.js +1 -0
  95. package/dist/elements/form.js +1 -0
  96. package/dist/elements/image.js +1 -0
  97. package/dist/elements/link-preview.js +1 -0
  98. package/dist/elements/loader.js +1 -0
  99. package/dist/elements/markdown.js +1 -0
  100. package/dist/elements/message-skills.d.ts +0 -16
  101. package/dist/elements/message-skills.js +1 -0
  102. package/dist/elements/message.js +1 -0
  103. package/dist/elements/model-switcher.d.ts +1 -11
  104. package/dist/elements/model-switcher.js +1 -0
  105. package/dist/elements/popover.js +1 -0
  106. package/dist/elements/prompt-input.d.ts +1 -9
  107. package/dist/elements/prompt-input.js +1 -0
  108. package/dist/elements/prompt-suggestions.d.ts +0 -6
  109. package/dist/elements/prompt-suggestions.js +1 -0
  110. package/dist/elements/reasoning.js +1 -0
  111. package/dist/elements/resizable.d.ts +1 -17
  112. package/dist/elements/resizable.js +1 -0
  113. package/dist/elements/response-stream.js +14 -0
  114. package/dist/elements/scroll-button.js +1 -0
  115. package/dist/elements/source.d.ts +0 -17
  116. package/dist/elements/source.js +1 -0
  117. package/dist/elements/switch.js +1 -0
  118. package/dist/elements/tasks.js +1 -0
  119. package/dist/elements/text-shimmer.js +1 -0
  120. package/dist/elements/thinking-bar.js +1 -0
  121. package/dist/elements/toast.d.ts +1 -0
  122. package/dist/elements/toast.js +1 -0
  123. package/dist/elements/tool.js +1 -0
  124. package/dist/elements/voice-input.js +1 -0
  125. package/dist/elements.d.ts +41 -5
  126. package/dist/index.d.ts +12 -0
  127. package/dist/index.js +11832 -9790
  128. package/dist/kitn-chat.es.js +1 -1
  129. package/dist/llms/llms-full.txt +57 -12
  130. package/dist/llms/llms.txt +3 -3
  131. package/dist/mcp.es.js +157 -1
  132. package/dist/primitives/card-contract.d.ts +20 -4
  133. package/dist/primitives/card-recovery.d.ts +55 -0
  134. package/dist/primitives/message-feedback.d.ts +35 -0
  135. package/dist/primitives/toast-store.d.ts +88 -0
  136. package/dist/react/index.d.ts +83 -3
  137. package/dist/react.js +90 -80
  138. package/dist/register-JyTglR6m.js +1 -0
  139. package/dist/register-impl-C6wlSsts.js +77 -0
  140. package/dist/schemas/choice.schema.json +5 -0
  141. package/dist/schemas/tasks.schema.json +5 -0
  142. package/dist/ui/tooltip.d.ts +1 -0
  143. package/frameworks/react/index.tsx +63 -11
  144. package/llms-full.txt +57 -12
  145. package/llms.txt +3 -3
  146. package/package.json +15 -6
  147. package/src/agent-tooling/mcp/tools/debug.ts +184 -0
  148. package/src/agent-tooling/mcp/tools/scaffold.ts +133 -1
  149. package/src/components/chat-thread.tsx +27 -35
  150. package/src/components/choice-card.tsx +33 -4
  151. package/src/components/component-meta.json +250 -26
  152. package/src/components/confirm-card.tsx +15 -1
  153. package/src/components/dismissed-stub.tsx +80 -0
  154. package/src/components/form.tsx +21 -3
  155. package/src/components/message.tsx +151 -10
  156. package/src/components/response-compare-types.ts +127 -0
  157. package/src/components/response-compare.tsx +431 -0
  158. package/src/components/tasks-card.tsx +33 -3
  159. package/src/components/toast.tsx +398 -0
  160. package/src/components/use-card-resolution.ts +24 -8
  161. package/src/elements/autoloader.ts +89 -0
  162. package/src/elements/chat-types.ts +7 -0
  163. package/src/elements/chat-workspace.tsx +4 -2
  164. package/src/elements/chat.tsx +4 -2
  165. package/src/elements/compare.tsx +88 -0
  166. package/src/elements/compiled.css +1 -1
  167. package/src/elements/element-manifest.json +182 -0
  168. package/src/elements/element-meta.json +191 -68
  169. package/src/elements/element-types.d.ts +41 -5
  170. package/src/elements/framework-usage.json +25 -0
  171. package/src/elements/message.tsx +27 -45
  172. package/src/elements/register-impl.ts +3 -0
  173. package/src/elements/register.ts +9 -0
  174. package/src/elements/remote.tsx +4 -0
  175. package/src/elements/styles.css +19 -0
  176. package/src/elements/toast.tsx +74 -0
  177. package/src/index.ts +30 -0
  178. package/src/primitives/card-contract.ts +14 -5
  179. package/src/primitives/card-recovery.ts +149 -0
  180. package/src/primitives/card-routing.ts +3 -0
  181. package/src/primitives/card-schemas/choice.schema.json +5 -0
  182. package/src/primitives/card-schemas/tasks.schema.json +5 -0
  183. package/src/primitives/message-feedback.ts +123 -0
  184. package/src/primitives/toast-store.ts +235 -0
  185. package/src/ui/tooltip.tsx +8 -2
  186. package/dist/elements/chat-types.d.ts +0 -41
  187. package/dist/elements/css.d.ts +0 -1
  188. package/dist/elements/default-input.d.ts +0 -40
  189. package/dist/elements/define.d.ts +0 -42
  190. package/dist/elements/register-impl.d.ts +0 -0
  191. package/dist/elements/register.d.ts +0 -3
  192. package/dist/register-impl-wCsFPoh9.js +0 -77
  193. package/dist/register-ujhr1nBS.js +0 -1
  194. /package/dist/elements/{remote.d.ts → compare.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ import n from"./css-M7EaDHN_.js";import e from"./javascript-C25yR2R2.js";import a from"./typescript-RycA9KXf.js";import s from"./json-DxJze_jm.js";import t from"./html-CPZ3oZQ7.js";const i=Object.freeze(JSON.parse('{"displayName":"HTML (Derivative)","injections":{"R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)":{"patterns":[{"match":"<","name":"invalid.illegal.bad-angle-bracket.html"}]}},"name":"html-derivative","patterns":[{"include":"text.html.basic#core-minus-invalid"},{"begin":"(</?)(\\\\w[^<>\\\\s]*)(?<!/)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":"((?: ?/)?>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.other.unrecognized.html.derivative","patterns":[{"include":"text.html.basic#attribute"}]}],"scopeName":"text.html.derivative","embeddedLangs":["html"]}')),u=[...t,i],m=Object.freeze(JSON.parse('{"fileTypes":[],"injectTo":["text.html.markdown"],"injectionSelector":"L:text.html.markdown","name":"markdown-vue","patterns":[{"include":"#vue-code-block"}],"repository":{"vue-code-block":{"begin":"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(vue)((\\\\s+|[,:?{])[^`~]*)?$)","beginCaptures":{"3":{"name":"punctuation.definition.markdown"},"4":{"name":"fenced_code.block.language.markdown"},"5":{"name":"fenced_code.block.language.attributes.markdown","patterns":[]}},"end":"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$","endCaptures":{"3":{"name":"punctuation.definition.markdown"}},"name":"markup.fenced_code.block.markdown","patterns":[{"include":"text.html.vue"}]}},"scopeName":"markdown.vue.codeblock"}')),r=[m],c=Object.freeze(JSON.parse('{"fileTypes":[],"injectTo":["source.vue","text.html.markdown","text.html.derivative","text.pug"],"injectionSelector":"L:meta.tag -meta.attribute -meta.ng-binding -entity.name.tag.pug -attribute_value -source.tsx -source.js.jsx, L:meta.element -meta.attribute","name":"vue-directives","patterns":[{"include":"text.html.vue#vue-directives"}],"scopeName":"vue.directives"}')),l=[c],o=Object.freeze(JSON.parse('{"fileTypes":[],"injectTo":["source.vue","text.html.markdown","text.html.derivative","text.pug"],"injectionSelector":"L:text.pug -comment -string.comment, L:text.html.derivative -comment.block, L:text.html.markdown -comment.block","name":"vue-interpolations","patterns":[{"include":"text.html.vue#vue-interpolations"}],"scopeName":"vue.interpolations"}')),d=[o],g=Object.freeze(JSON.parse(`{"fileTypes":[],"injectTo":["source.vue"],"injectionSelector":"L:source.css -comment, L:source.postcss -comment, L:source.sass -comment, L:source.stylus -comment","name":"vue-sfc-style-variable-injection","patterns":[{"include":"#vue-sfc-style-variable-injection"}],"repository":{"vue-sfc-style-variable-injection":{"begin":"\\\\b(v-bind)\\\\s*\\\\(","beginCaptures":{"1":{"name":"entity.name.function"}},"end":"\\\\)","name":"vue.sfc.style.variable.injection.v-bind","patterns":[{"begin":"([\\"'])","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"}},"end":"(\\\\1)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"source.ts.embedded.html.vue","patterns":[{"include":"source.js"}]},{"include":"source.js"}]}},"scopeName":"vue.sfc.style.variable.injection","embeddedLangs":["javascript"]}`)),p=[...e,g],b=Object.freeze(JSON.parse(`{"displayName":"Vue","name":"vue","patterns":[{"include":"#vue-comments"},{"include":"#self-closing-tag"},{"begin":"(<)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"}},"end":"(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html.vue"}},"patterns":[{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)md\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"text.html.markdown","patterns":[{"include":"text.html.markdown"}]}]},{"begin":"(?!template(?![-0-:A-Za-z]))([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)html\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"contentName":"text.html.derivative","end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"include":"#html-stuff"}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)pug\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"text.pug","patterns":[{"include":"text.pug"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)stylus\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"source.stylus","patterns":[{"include":"source.stylus"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)postcss\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"source.postcss","patterns":[{"include":"source.postcss"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)sass\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"source.sass","patterns":[{"include":"source.sass"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)css\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"source.css","patterns":[{"include":"source.css"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)scss\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"source.css.scss","patterns":[{"include":"source.css.scss"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)less\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"source.css.less","patterns":[{"include":"source.css.less"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)js\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"source.js","patterns":[{"include":"source.js"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)ts\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)(?=[^\\\\n]*<\/script[>\\\\s])","end":"(?=<\/script[>\\\\s])","name":"source.ts","patterns":[{"include":"source.ts"}]},{"begin":"(?<=>)","name":"source.ts","patterns":[{"include":"source.ts"}],"while":"^(?!\\\\s*<\/script[>\\\\s])"}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)jsx\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"source.js.jsx","patterns":[{"include":"source.js.jsx"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)tsx\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)(?=[^\\\\n]*<\/script[>\\\\s])","end":"(?=<\/script[>\\\\s])","name":"source.tsx","patterns":[{"include":"source.tsx"}]},{"begin":"(?<=>)","name":"source.tsx","patterns":[{"include":"source.tsx"}],"while":"^(?!\\\\s*<\/script[>\\\\s])"}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)coffee\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"source.coffee","patterns":[{"include":"source.coffee"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)json\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"source.json","patterns":[{"include":"source.json"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)jsonc\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"source.json.comments","patterns":[{"include":"source.json.comments"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)json5\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"source.json5","patterns":[{"include":"source.json5"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)yaml\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"source.yaml","patterns":[{"include":"source.yaml"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)toml\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"source.toml","patterns":[{"include":"source.toml"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)(g(?:ql|raphql))\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"source.graphql","patterns":[{"include":"source.graphql"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)vue\\\\b\\\\2)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"text.html.vue","patterns":[{"include":"text.html.vue"}]}]},{"begin":"(template)(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</template[>\\\\s])","name":"text.html.derivative","patterns":[{"include":"#html-stuff"}]}]},{"begin":"(script)(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#multi-line-script-tag-stuff"}]},{"begin":"(style)(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#multi-line-style-tag-stuff"}]},{"begin":"([-0-:A-Za-z]+)","beginCaptures":{"1":{"name":"entity.name.tag.$1.html.vue"}},"end":"(</)(\\\\1)\\\\s*(?=>)","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"text"}]}]}],"repository":{"html-stuff":{"patterns":[{"include":"#template-tag"},{"include":"text.html.derivative"},{"include":"text.html.basic"}]},"multi-line-script-tag-stuff":{"begin":"\\\\G","end":"(?=<\/script[>\\\\s])","patterns":[{"begin":"\\\\G(?!\\\\blang\\\\s*=\\\\s*[\\"']?(?:tsx??|jsx|coffee)\\\\b)","end":"(?=\\\\blang\\\\s*=\\\\s*[\\"']?(?:tsx??|jsx|coffee)\\\\b)|(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html.vue"}},"name":"meta.tag-stuff","patterns":[{"include":"#vue-directives"},{"include":"text.html.basic#attribute"}]},{"begin":"(?=\\\\blang\\\\s*=\\\\s*[\\"']?ts\\\\b)","end":"(?=<\/script[>\\\\s])","patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)(?=[^\\\\n]*<\/script[>\\\\s])","end":"(?=<\/script[>\\\\s])","name":"source.ts","patterns":[{"include":"source.ts"}]},{"begin":"(?<=>)","name":"source.ts","patterns":[{"include":"source.ts"}],"while":"^(?!\\\\s*<\/script[>\\\\s])"}]},{"begin":"(?=\\\\blang\\\\s*=\\\\s*[\\"']?tsx\\\\b)","end":"(?=<\/script[>\\\\s])","patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)(?=[^\\\\n]*<\/script[>\\\\s])","end":"(?=<\/script[>\\\\s])","name":"source.tsx","patterns":[{"include":"source.tsx"}]},{"begin":"(?<=>)","name":"source.tsx","patterns":[{"include":"source.tsx"}],"while":"^(?!\\\\s*<\/script[>\\\\s])"}]},{"begin":"(?=\\\\blang\\\\s*=\\\\s*[\\"']?jsx\\\\b)","end":"(?=<\/script[>\\\\s])","patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=<\/script[>\\\\s])","name":"source.js.jsx","patterns":[{"include":"source.js.jsx"}]}]},{"begin":"(?=\\\\blang\\\\s*=\\\\s*[\\"']?coffee\\\\b)","end":"(?=<\/script[>\\\\s])","patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=<\/script[>\\\\s])","name":"source.coffee","patterns":[{"include":"source.coffee"}]}]},{"begin":"(?<=>)","end":"(?=<\/script[>\\\\s])","name":"source.js","patterns":[{"include":"source.js"}]}]},"multi-line-style-tag-stuff":{"begin":"\\\\G","end":"(?=</style[>\\\\s])","patterns":[{"begin":"\\\\G(?!\\\\blang\\\\s*=\\\\s*[\\"']?(?:scss|stylus|less|postcss)\\\\b)","end":"(?=\\\\blang\\\\s*=\\\\s*[\\"']?(?:scss|stylus|less|postcss)\\\\b)|(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html.vue"}},"name":"meta.tag-stuff","patterns":[{"include":"#vue-directives"},{"include":"text.html.basic#attribute"}]},{"begin":"(?=\\\\blang\\\\s*=\\\\s*[\\"']?scss\\\\b)","end":"(?=</style[>\\\\s])","patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</style[>\\\\s])","name":"source.css.scss","patterns":[{"include":"source.css.scss"}]}]},{"begin":"(?=\\\\blang\\\\s*=\\\\s*[\\"']?stylus\\\\b)","end":"(?=</style[>\\\\s])","patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</style[>\\\\s])","name":"source.stylus","patterns":[{"include":"source.stylus"}]}]},{"begin":"(?=\\\\blang\\\\s*=\\\\s*[\\"']?less\\\\b)","end":"(?=</style[>\\\\s])","patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</style[>\\\\s])","name":"source.css.less","patterns":[{"include":"source.css.less"}]}]},{"begin":"(?=\\\\blang\\\\s*=\\\\s*[\\"']?postcss\\\\b)","end":"(?=</style[>\\\\s])","patterns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</style[>\\\\s])","name":"source.postcss","patterns":[{"include":"source.postcss"}]}]},{"begin":"(?<=>)","end":"(?=</style[>\\\\s])","name":"source.css","patterns":[{"include":"source.css"}]}]},"self-closing-tag":{"begin":"(<)([-0-:A-Za-z]+)(?=([^>]+/>))","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"end":"(/>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html.vue"}},"name":"self-closing-tag","patterns":[{"include":"#tag-stuff"}]},"tag-stuff":{"begin":"\\\\G","end":"(?=/>)|(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html.vue"}},"name":"meta.tag-stuff","patterns":[{"include":"#vue-directives"},{"include":"text.html.basic#attribute"}]},"template-tag":{"patterns":[{"include":"#template-tag-1"},{"include":"#template-tag-2"}]},"template-tag-1":{"begin":"(<)(template)\\\\b(>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"},"3":{"name":"punctuation.definition.tag.end.html.vue"}},"end":"(/?>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html.vue"}},"name":"meta.template-tag.start","patterns":[{"begin":"\\\\G","end":"(?=/>)|((</)(template)(?=[>\\\\s]))","endCaptures":{"2":{"name":"punctuation.definition.tag.begin.html.vue"},"3":{"name":"entity.name.tag.$3.html.vue"}},"name":"meta.template-tag.end","patterns":[{"include":"#html-stuff"}]}]},"template-tag-2":{"begin":"(<)(template)(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html.vue"},"2":{"name":"entity.name.tag.$2.html.vue"}},"end":"(/?>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html.vue"}},"name":"meta.template-tag.start","patterns":[{"begin":"\\\\G","end":"(?=/>)|((</)(template)(?=[>\\\\s]))","endCaptures":{"2":{"name":"punctuation.definition.tag.begin.html.vue"},"3":{"name":"entity.name.tag.$3.html.vue"}},"name":"meta.template-tag.end","patterns":[{"include":"#tag-stuff"},{"include":"#html-stuff"}]}]},"vue-comments":{"patterns":[{"include":"#vue-comments-key-value"},{"begin":"<!--","captures":{"0":{"name":"punctuation.definition.comment.vue"}},"end":"-->","name":"comment.block.vue"}]},"vue-comments-key-value":{"begin":"(<!--)\\\\s*(@)([$\\\\w]+)(?=\\\\s)","beginCaptures":{"1":{"name":"punctuation.definition.comment.vue"},"2":{"name":"punctuation.definition.block.tag.comment.vue"},"3":{"name":"storage.type.class.comment.vue"}},"end":"(-->)","endCaptures":{"1":{"name":"punctuation.definition.comment.vue"}},"name":"comment.block.vue","patterns":[{"include":"source.json#value"}]},"vue-directives":{"patterns":[{"include":"#vue-directives-control"},{"include":"#vue-directives-generic-attr"},{"include":"#vue-directives-style-attr"},{"include":"#vue-directives-original"}]},"vue-directives-control":{"begin":"(?:(v-for)|(v-(?:if|else-if|else)))(?=[)/=>\\\\s])","beginCaptures":{"1":{"name":"keyword.control.loop.vue"},"2":{"name":"keyword.control.conditional.vue"}},"end":"(?=\\\\s*[^=\\\\s])","name":"meta.attribute.directive.control.vue","patterns":[{"include":"#vue-directives-expression"}]},"vue-directives-expression":{"patterns":[{"begin":"(=)\\\\s*([\\"'\`])","beginCaptures":{"1":{"name":"punctuation.separator.key-value.html.vue"},"2":{"name":"punctuation.definition.string.begin.html.vue"}},"end":"(\\\\2)","endCaptures":{"1":{"name":"punctuation.definition.string.end.html.vue"}},"patterns":[{"begin":"(?<=([\\"'\`]))","end":"(?=\\\\1)","name":"source.ts.embedded.html.vue","patterns":[{"include":"source.ts#expression"}]}]},{"begin":"(=)\\\\s*(?=[^\\"'\`])","beginCaptures":{"1":{"name":"punctuation.separator.key-value.html.vue"}},"end":"(?=([>\\\\s]|/>))","patterns":[{"begin":"(?=[^\\"'\`])","end":"(?=([>\\\\s]|/>))","name":"source.ts.embedded.html.vue","patterns":[{"include":"source.ts#expression"}]}]}]},"vue-directives-generic-attr":{"begin":"\\\\b(generic)\\\\s*(=)","beginCaptures":{"1":{"name":"entity.other.attribute-name.html.vue"},"2":{"name":"punctuation.separator.key-value.html.vue"}},"end":"(?<=[\\"'])","name":"meta.attribute.generic.vue","patterns":[{"begin":"([\\"'])","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.html.vue"}},"end":"(\\\\1)","endCaptures":{"1":{"name":"punctuation.definition.string.end.html.vue"}},"name":"meta.type.parameters.vue","patterns":[{"include":"source.ts#comment"},{"match":"(?<![$_[:alnum:]])(?:(?<=\\\\.\\\\.\\\\.)|(?<!\\\\.))(extends|in|out)(?![$_[:alnum:]])(?:(?=\\\\.\\\\.\\\\.)|(?!\\\\.))","name":"storage.modifier.ts"},{"include":"source.ts#type"},{"include":"source.ts#punctuation-comma"},{"match":"(=)(?!>)","name":"keyword.operator.assignment.ts"}]}]},"vue-directives-original":{"begin":"(?:(v-[-\\\\w]+)(:)?|([.:])|(@)|(#))(?:(\\\\[)([^]]*)(])|([-\\\\w]+))?","beginCaptures":{"1":{"name":"entity.other.attribute-name.html.vue"},"2":{"name":"punctuation.separator.key-value.html.vue"},"3":{"name":"punctuation.attribute-shorthand.bind.html.vue"},"4":{"name":"punctuation.attribute-shorthand.event.html.vue"},"5":{"name":"punctuation.attribute-shorthand.slot.html.vue"},"6":{"name":"punctuation.separator.key-value.html.vue"},"7":{"name":"source.ts.embedded.html.vue","patterns":[{"include":"source.ts#expression"}]},"8":{"name":"punctuation.separator.key-value.html.vue"},"9":{"name":"entity.other.attribute-name.html.vue"}},"end":"(?=\\\\s*[^=\\\\s])","name":"meta.attribute.directive.vue","patterns":[{"1":{"name":"punctuation.separator.key-value.html.vue"},"2":{"name":"entity.other.attribute-name.html.vue"},"match":"(\\\\.)([-\\\\w]*)"},{"include":"#vue-directives-expression"}]},"vue-directives-style-attr":{"begin":"\\\\b(style)\\\\s*(=)","beginCaptures":{"1":{"name":"entity.other.attribute-name.html.vue"},"2":{"name":"punctuation.separator.key-value.html.vue"}},"end":"(?<=[\\"'])","name":"meta.attribute.style.vue","patterns":[{"begin":"([\\"'])","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.html.vue"}},"end":"(\\\\1)","endCaptures":{"1":{"name":"punctuation.definition.string.end.html.vue"}},"name":"source.css.embedded.html.vue","patterns":[{"include":"source.css#comment-block"},{"include":"source.css#escapes"},{"include":"source.css#font-features"},{"match":"(?<![-\\\\w])--[-A-Z_a-z[^\\\\x00-\\\\x7F]](?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*","name":"variable.css"},{"begin":"(?<![-A-Za-z])(?=[-A-Za-z])","end":"$|(?![-A-Za-z])","name":"meta.property-name.css","patterns":[{"include":"source.css#property-names"}]},{"begin":"(:)\\\\s*","beginCaptures":{"1":{"name":"punctuation.separator.key-value.css"}},"contentName":"meta.property-value.css","end":"\\\\s*(;)|\\\\s*(?=[\\"'])","endCaptures":{"1":{"name":"punctuation.terminator.rule.css"}},"patterns":[{"include":"source.css#comment-block"},{"include":"source.css#property-values"}]},{"match":";","name":"punctuation.terminator.rule.css"}]}]},"vue-interpolations":{"patterns":[{"begin":"(\\\\{\\\\{)","beginCaptures":{"1":{"name":"punctuation.definition.interpolation.begin.html.vue"}},"end":"(}})","endCaptures":{"1":{"name":"punctuation.definition.interpolation.end.html.vue"}},"name":"expression.embedded.vue","patterns":[{"begin":"\\\\G","end":"(?=}})","name":"source.ts.embedded.html.vue","patterns":[{"include":"source.ts#expression"}]}]}]}},"scopeName":"text.html.vue","embeddedLangs":["css","javascript","typescript","json","html","html-derivative","markdown-vue","vue-directives","vue-interpolations","vue-sfc-style-variable-injection"],"embeddedLangsLazy":["markdown","pug","stylus","sass","scss","less","jsx","tsx","coffee","jsonc","json5","yaml","toml","graphql"]}`)),v=[...n,...e,...a,...s,...t,...u,...r,...l,...d,...p,b];export{v as default};
@@ -0,0 +1 @@
1
+ import{I as m}from"./Icon-D_Zmwmwh.js";import{c as o,m as r}from"./cn-Dogu6PbV.js";var e=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],t=a=>o(m,r(a,{name:"X",iconNode:e})),p=t;export{p as x};
@@ -0,0 +1 @@
1
+ import{q as g,x as a,c as r,C as i}from"./chunks/cn-Dogu6PbV.js";import{C as n,a as d}from"./chunks/code-block-BYUmfFSd.js";g("kai-code-block",{code:"",language:void 0,codeTheme:"github-dark-dimmed",codeHighlight:!0,proseSize:"sm"},(e,{flag:t})=>{const o=a();return r(i,{get proseSize(){return e.proseSize},get codeTheme(){return e.codeTheme},get codeHighlight(){return t("codeHighlight")},get portalMount(){return o.portalMount()},get children(){return r(n,{get children(){return r(d,{get code(){return e.code},get language(){return e.language}})}})}})});
@@ -0,0 +1 @@
1
+ import{d as V,m as W,s as X,y as Y,e as m,a as D,b as z,o as M,c as l,E as Z,i as u,S as f,g as S,I as F,h as y,j as I,k as A,u as ee,t as p,n as te,q as re,x as ae,C as ne}from"./chunks/cn-Dogu6PbV.js";import{B as oe}from"./chunks/button-CKyYD9G4.js";import{C as L}from"./chunks/card-Cjho-PYk.js";import{M as U}from"./chunks/message-CDZwXjhL.js";import{T as ie}from"./chunks/text-shimmer-uh9V_KUh.js";import{c as de}from"./chunks/check-CDYaMYrM.js";function le(e){if(!Array.isArray(e))return{candidates:null,error:"This comparison couldn't be displayed."};if(e.length!==2)return{candidates:null,error:`A comparison needs exactly two candidates (got ${e.length}).`};const s=[],t=new Set;for(const i of e){if(!i||typeof i!="object")return{candidates:null,error:"This comparison couldn't be displayed."};const a=i;if(typeof a.id!="string"||a.id.length===0)return{candidates:null,error:"Each candidate needs a non-empty id."};if(t.has(a.id))return{candidates:null,error:`Duplicate candidate id "${a.id}".`};t.add(a.id),s.push({id:a.id,content:typeof a.content=="string"?a.content:"",reasoning:a.reasoning,tools:Array.isArray(a.tools)?a.tools:void 0,attachments:Array.isArray(a.attachments)?a.attachments:void 0,label:typeof a.label=="string"?a.label:void 0,model:typeof a.model=="string"?a.model:void 0,streaming:a.streaming===!0})}return{candidates:[s[0],s[1]]}}function se(e,s){const t=e.filter(i=>i.id!==s).map(i=>i.id);return{chosenId:s,rejectedIds:t,at:Date.now()}}function ce(e){return e?e.some(s=>s.streaming===!0):!1}var ue=p('<p class="text-sm text-foreground">'),ge=p('<div role=tablist aria-label="Switch response">'),pe=p("<div role=radiogroup>"),me=p("<div>"),fe=p("<button type=button role=tab>"),ve=p('<span class="text-xs font-semibold uppercase tracking-wide text-muted-foreground">'),he=p('<span class="text-xs text-muted-foreground">'),be=p('<div class="flex items-center gap-2">'),ye=p('<div><div class="min-w-0 flex-1">'),ke=p('<div class="flex flex-col gap-2 rounded-lg border border-input bg-accent/40 p-3"><div class="flex items-center gap-2 text-sm font-medium text-accent-foreground"><span>Selected'),xe=p('<p class="text-sm text-muted-foreground">Response selected.'),we=p("<div class=min-w-0>");function Se(e){const[s,t]=D(void 0);z(M(e.data,()=>t(void 0),{defer:!0}));const i=m(()=>e.prop()??s()),a=m(()=>i()!==void 0),c=m(()=>e.prop()===void 0&&s()!==void 0);return{value:i,isResolved:a,isOptimistic:c,setLocal:t}}function Ae(e){const s=W({compareId:"kai-compare",layout:"auto"},e),[t]=X(s,["data","compareId","selection","layout","class","onSelect","onReady","onError"]),i=Y(),a=m(()=>{var r;return le((r=t.data)==null?void 0:r.candidates)}),c=m(()=>a().candidates!==null),P=m(()=>a().error??""),h=m(()=>a().candidates),b=Se({prop:()=>t.selection,data:()=>t.data}),$=m(()=>ce(h())),[R,k]=D(0),[T,E]=D(0);let C;z(M(()=>t.data,()=>{k(0),E(0)})),z(M([c,$],([r,n])=>{var d,o;if(!r){(d=t.onError)==null||d.call(t,P());return}n||(o=t.onReady)==null||o.call(t)}));const q=m(()=>{var r;return(r=b.value())==null?void 0:r.chosenId}),O=m(()=>{var r;const n=q();return n===void 0||(r=h())==null?void 0:r.find(d=>d.id===n)}),H=r=>{var n;if(b.isResolved()||$())return;const d=h();if(!d)return;const o=se(d,r.id);(n=t.onSelect)==null||n.call(t,o),b.setLocal(o)},B=r=>{var n;const d=C?.querySelectorAll('[role="radio"]');(n=d?.[r])==null||n.focus()},G=r=>{if(b.isResolved())return;const n=h();if(!n)return;const d=o=>{k(o),E(o),B(o)};if(r.key==="ArrowRight"||r.key==="ArrowDown"||r.key==="ArrowLeft"||r.key==="ArrowUp")r.preventDefault(),d(R()===0?1:0);else if(r.key==="Home")r.preventDefault(),d(0);else if(r.key==="End")r.preventDefault(),d(1);else if(r.key===" "||r.key==="Enter"){r.preventDefault();const o=n[R()];o&&H(o)}},_=m(()=>{const r=t.layout;return r==="columns"?"grid grid-cols-2 gap-3":r==="tabs"?"grid grid-cols-1 gap-3":"grid grid-cols-1 gap-3 @[640px]/compare:grid-cols-2"}),J=()=>t.layout==="tabs"||t.layout==="auto",K=()=>t.layout==="auto"?"@[640px]/compare:hidden":"",N=r=>{const n=t.layout;return n==="columns"||r===T()?"":n==="tabs"?"hidden":"hidden @[640px]/compare:block"},j=`kai-compare-prompt-${i}`,Q=()=>{var r;return((r=t.data)==null?void 0:r.prompt)??"Compare two responses"};return l(f,{get when(){return c()},get fallback(){return l(L,{get errorMessage(){return P()||"This comparison couldn't be displayed."}})},get children(){return l(Z,{fallback:()=>{var r;return(r=t.onError)==null||r.call(t,"The comparison failed to render."),l(L,{errorMessage:"The comparison failed to render."})},get children(){var r=me();return u(r,l(f,{get when(){var n;return(n=t.data)==null?void 0:n.prompt},get children(){var n=ue();return S(n,"id",j),u(n,()=>{var d;return(d=t.data)==null?void 0:d.prompt}),n}}),null),u(r,l(f,{get when(){return!b.isResolved()},get fallback(){return l(Ie,{get candidate(){return O()},get optimistic(){return b.isOptimistic()}})},get children(){return[l(f,{get when(){return J()},get children(){var n=ge();return u(n,l(F,{get each(){return h()??[]},children:(d,o)=>(()=>{var g=fe();return g.$$click=()=>{E(o),k(o)},u(g,()=>d().label??`Response ${d().id}`),y(v=>{var x=T()===o,w=I("rounded-md px-3 py-1 text-xs font-medium transition-colors",T()===o?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground");return x!==v.e&&S(g,"aria-selected",v.e=x),w!==v.t&&A(g,v.t=w),v},{e:void 0,t:void 0}),g})()})),y(()=>A(n,I("flex gap-1",K()))),n}}),(()=>{var n=pe();n.$$keydown=G;var d=C;return typeof d=="function"?ee(d,n):C=n,u(n,l(F,{get each(){return h()??[]},children:(o,g)=>l(Ce,{get candidate(){return o()},get tabStop(){return g===R()},get disabled(){return $()},hiddenClass:()=>N(g),onFocus:()=>k(g),onPick:()=>{k(g),H(o())}})})),y(o=>{var g,v=Q(),x=(g=t.data)!=null&&g.prompt?j:void 0,w=_();return v!==o.e&&S(n,"aria-label",o.e=v),x!==o.t&&S(n,"aria-describedby",o.t=x),w!==o.a&&A(n,o.a=w),o},{e:void 0,t:void 0,a:void 0}),n})()]}}),null),y(()=>A(r,I("flex flex-col gap-3",t.layout==="auto"&&"@container/compare",t.class))),r}})}})}function Ce(e){const s=()=>e.candidate.label??e.candidate.model??e.candidate.id;return(()=>{var t=ye(),i=t.firstChild;return u(t,l(f,{get when(){return e.candidate.label||e.candidate.model},get children(){var a=be();return u(a,l(f,{get when(){return e.candidate.label},get children(){var c=ve();return u(c,()=>e.candidate.label),c}}),null),u(a,l(f,{get when(){return e.candidate.model},get children(){var c=he();return u(c,()=>e.candidate.model),c}}),null),a}}),i),u(i,l(f,{get when(){return e.candidate.streaming},get fallback(){return l(U,{get content(){return e.candidate.content},get reasoning(){return e.candidate.reasoning},get tools(){return e.candidate.tools},get attachments(){return e.candidate.attachments},isUser:!1,markdown:!0})},get children(){return l(ie,{class:"text-sm",children:"Generating response\u2026"})}})),u(t,l(oe,{type:"button",role:"radio","aria-checked":!1,get"aria-label"(){return`Pick ${s()}`},get"data-candidate-id"(){return e.candidate.id},variant:"outline",size:"sm",class:"mt-auto w-full",get disabled(){return e.disabled},get tabindex(){return e.tabStop?0:-1},get onFocus(){return e.onFocus},onClick:a=>{a.stopPropagation(),e.onPick()},children:"Pick this"}),null),y(()=>{var a;return A(t,I("flex min-w-0 flex-col gap-3 rounded-lg border border-input bg-background/40 p-3",(a=e.hiddenClass)==null?void 0:a.call(e)))}),t})()}function Ie(e){return(()=>{var s=ke(),t=s.firstChild,i=t.firstChild;return i.firstChild,u(t,l(de,{size:16,"aria-hidden":"true"}),i),u(i,(()=>{var a=te(()=>{var c;return!!((c=e.candidate)!=null&&c.label)});return()=>a()?`: ${e.candidate.label}`:""})(),null),u(s,l(f,{get when(){return e.candidate},get fallback(){return xe()},children:a=>(()=>{var c=we();return u(c,l(U,{get content(){return a().content},get reasoning(){return a().reasoning},get tools(){return a().tools},get attachments(){return a().attachments},isUser:!1,markdown:!0})),c})()}),null),y(()=>S(s,"role",e.optimistic?"status":void 0)),s})()}V(["keydown","click"]),re("kai-compare",{data:void 0,compareId:void 0,selection:void 0,layout:"auto",proseSize:void 0,codeTheme:void 0,codeHighlight:void 0},(e,{element:s,dispatch:t})=>{const i=()=>e.compareId??(s.id||"kai-compare"),a=ae();return l(ne,{get proseSize(){return e.proseSize},get codeTheme(){return e.codeTheme},get codeHighlight(){return e.codeHighlight},get portalMount(){return a.portalMount()},get children(){return l(Ae,{get data(){return e.data},get compareId(){return i()},get selection(){return e.selection},get layout(){return e.layout??"auto"},onSelect:c=>t("kai-compare-select",c),onReady:()=>t("kai-ready",{compareId:i()}),onError:c=>t("kai-error",{compareId:i(),message:c})})}})});
@@ -0,0 +1 @@
1
+ import{d as q,m as B,s as L,e as g,b as E,o as M,c as n,E as N,S as c,i as l,h as C,j as O,k as F,g as T,F as H,u as U,t as v,q as G}from"./chunks/cn-Dogu6PbV.js";import{B as $}from"./chunks/button-CKyYD9G4.js";import{C as k}from"./chunks/card-Cjho-PYk.js";import{u as J,a as K,D as P}from"./chunks/use-card-resolution-D-_0Alzy.js";import{e as Q}from"./chunks/card-routing-C986KuUA.js";import{t as V}from"./chunks/triangle-alert-Ct1zt2JL.js";import{c as W}from"./chunks/check-CDYaMYrM.js";import{x as X}from"./chunks/x-CzxL27Ch.js";var Y=v('<div class="flex items-center gap-2 text-sm font-medium text-destructive dark:text-red-400"><span>Heads up'),Z=v('<p class="text-sm font-semibold text-foreground">'),_=v('<p class="text-sm text-foreground">'),ee=v("<div>"),te=v('<div class="flex w-full flex-wrap items-center justify-between gap-2"><div class="ml-auto flex flex-wrap items-center gap-2">'),re=v('<div class="ml-auto flex items-center gap-2 text-sm font-medium text-foreground"><span>');const ae="confirm",ne=new Set(["primary","default","destructive"]);function ie(d){switch(d){case"primary":return"default";case"destructive":return"destructive";case"default":case void 0:return"outline";default:return console.warn(`[kai-confirm] unknown action style "${d}"; using default`),"outline"}}function de(d){if(!Array.isArray(d)||d.length===0)return{actions:[],error:"This card couldn't be displayed."};const s=new Set,r=[];for(const h of d){if(!h||typeof h!="object")continue;const a=h;if(typeof a.id!="string"||a.id.length===0||typeof a.label!="string"||a.label.length===0)continue;if(s.has(a.id)){console.warn(`[kai-confirm] duplicate action id "${a.id}" ignored`);continue}s.add(a.id);const f=ne.has(a.style)?a.style:void 0;a.style!==void 0&&f===void 0&&console.warn(`[kai-confirm] unknown action style "${String(a.style)}"; using default`),r.push({id:a.id,label:a.label,style:f,payload:a.payload,default:a.default===!0})}return r.length===0?{actions:[],error:"This card couldn't be displayed."}:{actions:r}}function oe(d){var s;return(s=d.find(r=>r.default))==null?void 0:s.id}function se(d){const s=B({cardId:"kai-confirm",autofocus:!1},d),[r]=L(s,["data","cardId","heading","host","hostElement","autofocus","class","resolution"]),h=J(),a=e=>{const i=r.host??h;i?i.emit(e):r.hostElement&&Q(r.hostElement,e)},f=g(()=>{var e;return de((e=r.data)==null?void 0:e.actions)}),b=g(()=>f().error===void 0),w=g(()=>f().error??""),p=g(()=>f().actions),z=()=>{var e;return((e=r.data)==null?void 0:e.tone)??"default"},A=()=>z()==="danger",y=g(()=>oe(p())),u=K({prop:()=>r.resolution,data:()=>r.data}),R=g(()=>{const e=u.resolution();if(!e||e.kind!=="action")return;const i=p().find(t=>t.id===e.action);return{label:i?.label??e.action}});E(M(b,e=>{a(e?{kind:"ready",cardId:r.cardId}:{kind:"error",cardId:r.cardId,message:w()})}));const x=e=>{u.isResolved()||(a({kind:"action",cardId:r.cardId,action:e.id,...e.payload!==void 0?{payload:e.payload}:{}}),u.setLocal({kind:"action",action:e.id,...e.payload!==void 0?{payload:e.payload}:{}}))},S=()=>{u.isResolved()||(a({kind:"dismiss",cardId:r.cardId}),u.setLocal({kind:"dismissed"}))},j=()=>a({kind:"reopen",cardId:r.cardId});let I;return E(()=>{const e=r.hostElement;if(!e)return;const i=u.resolution();i&&i.kind==="action"?e.setAttribute("data-kai-resolved",i.action):e.removeAttribute("data-kai-resolved")}),n(c,{get when(){return b()},get fallback(){return n(k,{get heading(){return r.heading},get errorMessage(){return w()}})},get children(){return n(N,{fallback:()=>(a({kind:"error",cardId:r.cardId,message:"The card failed to render."}),n(k,{get heading(){return r.heading},errorMessage:"The card failed to render."})),get children(){return n(c,{get when(){return!u.isDeferred()},get fallback(){return n(P,{type:ae,get title(){return r.heading},onReopen:j})},get children(){return n(k,{get heading(){return r.heading},get actions(){return n(c,{get when(){return!u.isResolved()},get fallback(){return(()=>{var e=re(),i=e.firstChild;return l(e,n(W,{size:16,"aria-hidden":"true"}),i),l(i,()=>{var t;return(t=R())==null?void 0:t.label}),C(()=>T(e,"role",u.isOptimistic()?"status":void 0)),e})()},get children(){var e=te(),i=e.firstChild;return l(e,n(c,{get when(){var t;return((t=r.data)==null?void 0:t.dismissible)===!0},get children(){return n($,{type:"button",variant:"ghost",size:"icon-sm","aria-label":"Dismiss",onClick:S,get children(){return n(X,{size:16,"aria-hidden":"true"})}})}}),i),l(i,n(H,{get each(){return p()},children:t=>n($,{type:"button",get variant(){return ie(t.style)},get"data-action-id"(){return t.id},get"data-kai-default"(){return t.default?"true":void 0},ref:o=>{r.autofocus&&t.id===y()&&queueMicrotask(()=>o.focus())},onClick:()=>x(t),get children(){return t.label}})})),e}})},get children(){var e=ee();e.$$keydown=t=>{if(t.key!=="Enter"||t.target.tagName==="BUTTON")return;const o=y();if(o===void 0)return;const m=p().find(D=>D.id===o);m&&x(m)};var i=I;return typeof i=="function"?U(i,e):I=e,l(e,n(c,{get when(){return A()},get children(){var t=Y(),o=t.firstChild;return l(t,n(V,{size:16,class:"shrink-0","aria-hidden":"true"}),o),t}}),null),l(e,n(c,{get when(){var t;return(t=r.data)==null?void 0:t.heading},get children(){var t=Z();return l(t,()=>{var o;return(o=r.data)==null?void 0:o.heading}),t}}),null),l(e,n(c,{get when(){var t;return(t=r.data)==null?void 0:t.body},get children(){var t=_();return l(t,()=>{var o;return(o=r.data)==null?void 0:o.body}),t}}),null),C(t=>{var o=O("flex flex-col gap-2",r.class),m=y()!==void 0?0:void 0;return o!==t.e&&F(e,t.e=o),m!==t.t&&T(e,"tabindex",t.t=m),t},{e:void 0,t:void 0}),e}})}})}})}})}q(["keydown"]),G("kai-confirm",{data:void 0,cardId:void 0,heading:void 0,autofocus:!1,resolution:void 0},(d,{element:s,flag:r})=>n(se,{get data(){return d.data},get cardId(){return d.cardId??(s.id||"kai-confirm")},get heading(){return d.heading},get autofocus(){return r("autofocus")},get resolution(){return d.resolution},hostElement:s}));
@@ -0,0 +1 @@
1
+ import{q as d,e as g,b as i,o as l,c as t,i as r,S as s,t as T}from"./chunks/cn-Dogu6PbV.js";import{h as k,C as x,a as m,b as v,c as p,d as w,e as f,f as C,i as b,j as D,g as S,D as j,k as q}from"./chunks/context-18g6oi4J.js";var y=T("<div class=space-y-1.5>");d("kai-context",{context:void 0,warnThreshold:void 0,dangerThreshold:void 0},(e,{dispatch:c})=>{const o=()=>e.warnThreshold??j,a=()=>e.dangerThreshold??q,h=g(()=>{const n=e.context;return n?k(n.usedTokens/n.maxTokens,o(),a()):"ok"});return i(l(h,(n,u)=>{u!==void 0&&n!==u&&c("kai-threshold-change",{level:n})})),t(s,{get when(){return e.context},get children(){return t(x,{get usedTokens(){return e.context.usedTokens},get maxTokens(){return e.context.maxTokens},get inputTokens(){return e.context.inputTokens},get outputTokens(){return e.context.outputTokens},get reasoningTokens(){return e.context.reasoningTokens},get cacheTokens(){return e.context.cacheTokens},get estimatedCost(){return e.context.estimatedCost},get warnThreshold(){return o()},get dangerThreshold(){return a()},get children(){return[t(m,{}),t(v,{get children(){return[t(p,{}),t(w,{get children(){var n=y();return r(n,t(f,{}),null),r(n,t(C,{}),null),r(n,t(s,{get when(){return e.context.reasoningTokens},get children(){return t(b,{})}}),null),r(n,t(s,{get when(){return e.context.cacheTokens},get children(){return t(D,{})}}),null),n}}),t(S,{})]}})]}})}})});
@@ -1,11 +1 @@
1
- import { ConversationSummary } from '../types';
2
- /** Parse a single light-DOM `<kai-conversation>` element into a `ConversationSummary`.
3
- * Attribute mapping:
4
- * - `id` → ConversationSummary.id
5
- * - `group-id` → ConversationSummary.groupId (optional)
6
- * - textContent → ConversationSummary.title
7
- * Required fields not expressible as HTML attributes (`scope`, `messageCount`,
8
- * `lastMessageAt`, `updatedAt`) receive safe defaults so the rendered list item
9
- * is fully functional with just `id` + title text.
10
- */
11
- export declare function parseKaiConversationElement(n: Element): ConversationSummary;
1
+ export {};
@@ -0,0 +1 @@
1
+ import{q as d,a as g,l,p as v,c as p}from"./chunks/cn-Dogu6PbV.js";import{C as m}from"./chunks/conversation-list-D9Y0NVdo.js";function i(t){var e;return{id:t.getAttribute("id")??"",title:((e=t.textContent)==null?void 0:e.trim())??"",groupId:t.getAttribute("group-id")??void 0,scope:{type:"collection"},messageCount:0,lastMessageAt:new Date(0).toISOString(),updatedAt:new Date(0).toISOString()}}d("kai-conversations",{groups:[],conversations:[],activeId:void 0},(t,{dispatch:e,element:n})=>{const[s,a]=g([]);l(()=>{const o=()=>{const u=[...n.querySelectorAll("kai-conversation")];a(u.map(i))};o();const r=new MutationObserver(o);r.observe(n,{childList:!0,attributes:!0,subtree:!0}),v(()=>r.disconnect())});const c=()=>[...t.conversations??[],...s()];return p(m,{get groups(){return t.groups},get conversations(){return c()},get activeId(){return t.activeId},onSelect:o=>e("kai-conversation-select",{id:o}),onNewChat:()=>e("kai-new-chat"),onToggleSidebar:()=>e("kai-toggle-sidebar")})});export{i as parseKaiConversationElement};
@@ -0,0 +1 @@
1
+ import{c as i,m as P,d as G,s as H,a as D,e as h,l as J,b as M,o as N,f as K,j as Q,i as u,S as w,u as W,h as y,g as m,A as X,t as f,q as ee}from"./chunks/cn-Dogu6PbV.js";import{I as re}from"./chunks/Icon-D_Zmwmwh.js";import{e as te}from"./chunks/external-link-6mA0wxab.js";import{t as oe}from"./chunks/triangle-alert-Ct1zt2JL.js";import{v as ae}from"./chunks/video-mVYiM99-.js";import{e as ne}from"./chunks/card-routing-C986KuUA.js";var ie=[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]],se=e=>i(re,P(e,{name:"Play",iconNode:ie})),le=se;const k="allow-scripts allow-same-origin allow-presentation allow-popups allow-popups-to-escape-sandbox",$="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; fullscreen",ue=new Set;function ce(e){const r=O(e);return r!==void 0&&ue.has(r)}function O(e){try{return new URL(e).origin}catch{return}}function T(e){let r;try{r=new URL(e)}catch{return}const a=r.hostname.replace(/^www\./,"");if(a==="youtu.be")return E(r.pathname.slice(1));if(a==="youtube.com"||a==="m.youtube.com"||a==="youtube-nocookie.com"){const s=r.searchParams.get("v");if(s)return E(s);const g=r.pathname.match(/^\/(?:shorts|embed|v)\/([^/?#]+)/);if(g)return E(g[1])}}function V(e){let r;try{r=new URL(e)}catch{return}const a=r.hostname.replace(/^www\./,"");if(a!=="vimeo.com"&&a!=="player.vimeo.com")return;const s=r.pathname.match(/(?:^|\/)(\d+)(?:\/|$)/);return s?s[1]:void 0}function E(e){return/^[A-Za-z0-9_-]+$/.test(e)?e:void 0}function de(e){const r=e.start?`&start=${e.start}`:"";switch(e.provider){case"youtube":{const a=e.id??(e.url?T(e.url):void 0);if(!a)throw new Error("youtube embed: missing or unparseable id/url");return{embedUrl:`https://www.youtube-nocookie.com/embed/${a}?autoplay=1&rel=0${r}`,posterUrl:e.poster??`https://i.ytimg.com/vi/${a}/hqdefault.jpg`,sandbox:k,allow:$}}case"vimeo":{const a=e.id??(e.url?V(e.url):void 0);if(!a)throw new Error("vimeo embed: missing or unparseable id/url");return{embedUrl:`https://player.vimeo.com/video/${a}?autoplay=1&dnt=1${e.start?`#t=${e.start}s`:""}`,posterUrl:e.poster,sandbox:k,allow:$}}case"generic":{if(!e.url)throw new Error("generic embed: missing url");if(me(e.url),!ce(e.url))throw new Error(`generic embed: origin not allowlisted \u2014 call configureEmbedAllowlist([...]) to permit ${O(e.url)??e.url}`);return{embedUrl:e.url,posterUrl:e.poster,sandbox:k,allow:$}}}}function me(e){let r;try{r=new URL(e).protocol}catch{throw new Error(`generic embed: invalid url "${e}"`)}if(r!=="https:")throw new Error(`generic embed: only https player URLs are allowed (got ${r})`)}function fe(e){switch(e.provider){case"youtube":{const r=e.id??(e.url?T(e.url):void 0);return r?`https://www.youtube.com/watch?v=${r}`:e.url}case"vimeo":{const r=e.id??(e.url?V(e.url):void 0);return r?`https://vimeo.com/${r}`:e.url}case"generic":return e.url}}function pe(e){switch(e){case"youtube":return"YouTube";case"vimeo":return"Vimeo";case"generic":return"site"}}function ve(e){switch(e){case"4:3":return"4 / 3";case"1:1":return"1 / 1";case"9:16":return"9 / 16";default:return"16 / 9"}}var be=f('<div tabindex=-1 class="absolute inset-0 outline-none"><iframe allowfullscreen class="absolute inset-0 h-full w-full border-0">'),ge=f('<button type=button class="inline-flex shrink-0 items-center gap-1 rounded-md px-2 py-1 text-xs font-medium text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring">Open on '),he=f('<div><div class="relative w-full bg-black"></div><div class="flex items-center justify-between gap-2 px-3 py-2"><span class="flex min-w-0 items-center gap-1.5 text-sm text-foreground"><span class=truncate>'),we=f(`<div role=img aria-label="Can't load this video"class="absolute inset-0 flex flex-col items-center justify-center gap-2 bg-muted p-4 text-center text-sm text-muted-foreground"><span>Can't load this video`),ye=f('<img class="absolute inset-0 h-full w-full object-cover">'),xe=f('<button type=button class="group absolute inset-0 flex h-full w-full items-center justify-center outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset"><span class="relative flex h-14 w-14 items-center justify-center rounded-full bg-black/60 text-white shadow-lg transition-transform motion-safe:group-hover:scale-110"aria-hidden=true>'),ke=f('<div class="absolute inset-0 bg-gradient-to-br from-zinc-800 to-zinc-950"aria-hidden=true>');function $e(e){const[r,a]=H(e,["cardId","data","onEmit","class"]),s=o=>{var p;return(p=r.onEmit)==null?void 0:p.call(r,o)},[g,U]=D(!1),[Y,I]=D(!1);let x;const c=h(()=>{try{return{ok:!0,value:de(r.data)}}catch(o){return{ok:!1,error:o instanceof Error?o.message:String(o)}}}),Z=h(()=>ve(r.data.aspectRatio)),_=()=>r.data.title??"Embedded video",C=h(()=>c().ok&&!Y()?c().value.posterUrl:void 0),j=h(()=>fe(r.data)),z=()=>pe(r.data.provider);J(()=>s({kind:"ready",cardId:r.cardId})),M(N(c,o=>{o.ok||s({kind:"error",cardId:r.cardId,message:o.error})})),M(N(()=>r.data,()=>{U(!1),I(!1)},{defer:!0}));const L=()=>{c().ok&&(U(!0),queueMicrotask(()=>x?.focus()))},B=o=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),L())},F=()=>{const o=j();o&&s({kind:"open",cardId:r.cardId,url:o,target:"tab"})};return(()=>{var o=he(),p=o.firstChild,R=p.nextSibling,S=R.firstChild,q=S.firstChild;return K(o,P({get class(){return Q("overflow-hidden rounded-xl border border-border bg-card text-card-foreground",r.class)}},a),!1,!0),u(p,i(w,{get when(){return c().ok},get fallback(){return(()=>{var t=we(),l=t.firstChild;return u(t,i(oe,{size:28,"aria-hidden":"true"}),l),t})()},get children(){return i(w,{get when(){return g()},get fallback(){return(()=>{var t=xe(),l=t.firstChild;return t.$$keydown=B,t.$$click=()=>L(),u(t,i(w,{get when(){return C()},get fallback(){return ke()},get children(){var n=ye();return n.addEventListener("error",()=>I(!0)),y(d=>{var v=C(),b=r.data.title??"";return v!==d.e&&m(n,"src",d.e=v),b!==d.t&&m(n,"alt",d.t=b),d},{e:void 0,t:void 0}),n}}),l),u(l,i(le,{size:26,fill:"currentColor"})),y(()=>m(t,"aria-label",`Play ${r.data.title??"video"}`)),t})()},get children(){var t=be(),l=t.firstChild;return W(n=>x=n,t),y(n=>{var d=c().value.embedUrl,v=_(),b=c().value.sandbox,A=c().value.allow;return d!==n.e&&m(l,"src",n.e=d),v!==n.t&&m(l,"title",n.t=v),b!==n.a&&m(l,"sandbox",n.a=b),A!==n.o&&m(l,"allow",n.o=A),n},{e:void 0,t:void 0,a:void 0,o:void 0}),t}})}})),u(S,i(ae,{size:14,class:"shrink-0 opacity-70","aria-hidden":"true"}),q),u(q,()=>r.data.title??z()),u(R,i(w,{get when(){return j()},get children(){var t=ge();return t.firstChild,t.$$click=()=>F(),u(t,z,null),u(t,i(te,{size:12,"aria-hidden":"true"}),null),t}}),null),y(t=>X(p,"aspect-ratio",Z())),o})()}G(["click","keydown"]),ee("kai-embed",{cardId:void 0,data:void 0},(e,{element:r})=>i($e,{get cardId(){return e.cardId??""},get data(){return e.data??{provider:"generic"}},onEmit:a=>ne(r,a)}));
@@ -0,0 +1 @@
1
+ import{s as i,f as l,m as c,j as d,i as u,t as a,q as g,c as s,r as o,S as m}from"./chunks/cn-Dogu6PbV.js";import{c as f}from"./chunks/index-CTBEJeo6.js";var h=a("<div data-slot=empty>"),v=a("<div data-slot=empty-header>"),p=a("<div data-slot=empty-media>"),x=a("<div data-slot=empty-title>"),y=a("<p data-slot=empty-description>"),w=a("<div data-slot=empty-content>");function b(r){const[e,n]=i(r,["class","children"]);return(()=>{var t=h();return l(t,c({get class(){return d("flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg p-6 text-center text-balance",e.class)}},n),!1,!0),u(t,()=>e.children),t})()}function j(r){const[e,n]=i(r,["class","children"]);return(()=>{var t=v();return l(t,c({get class(){return d("flex max-w-sm flex-col items-center gap-2 text-center",e.class)}},n),!1,!0),u(t,()=>e.children),t})()}const k=f("flex shrink-0 items-center justify-center mb-2 [&_svg]:size-6",{variants:{variant:{default:"bg-transparent",icon:"bg-muted text-foreground size-10 rounded-lg"}},defaultVariants:{variant:"default"}});function T(r){const[e,n]=i(r,["class","variant","children"]);return(()=>{var t=p();return l(t,c({get"data-variant"(){return e.variant??"default"},get class(){return d(k({variant:e.variant}),e.class)}},n),!1,!0),u(t,()=>e.children),t})()}function _(r){const[e,n]=i(r,["class","children"]);return(()=>{var t=x();return l(t,c({get class(){return d("text-lg font-medium tracking-tight",e.class)}},n),!1,!0),u(t,()=>e.children),t})()}function z(r){const[e,n]=i(r,["class","children"]);return(()=>{var t=y();return l(t,c({get class(){return d("text-muted-foreground text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",e.class)}},n),!1,!0),u(t,()=>e.children),t})()}function $(r){const[e,n]=i(r,["class","children"]);return(()=>{var t=w();return l(t,c({get class(){return d("flex w-full max-w-sm min-w-0 flex-col items-center gap-2 text-sm text-balance",e.class)}},n),!1,!0),u(t,()=>e.children),t})()}var q=a("<slot name=media>"),C=a("<slot>");g("kai-empty",{emptyTitle:"",description:""},r=>s(b,{get children(){return[s(j,{get children(){return[s(T,{variant:"icon",get children(){var e=q();return e._$owner=o(),e}}),s(m,{get when(){return r.emptyTitle},get children(){return s(_,{get children(){return r.emptyTitle}})}}),s(m,{get when(){return r.description},get children(){return s(z,{get children(){return r.description}})}})]}}),s($,{get children(){var e=C();return e._$owner=o(),e}})]}}));
@@ -0,0 +1 @@
1
+ import{d as B,a as v,i as t,c as r,M as x,S,F as W,h as j,j as T,g as H,k as $,B as I,t as g,q as N}from"./chunks/cn-Dogu6PbV.js";import{B as z}from"./chunks/button-CKyYD9G4.js";import{T as q}from"./chunks/textarea-3nm6Ia9U.js";import{t as A,a as E}from"./chunks/thumbs-up-BBtguGld.js";import{c as G}from"./chunks/check-CDYaMYrM.js";import{x as D}from"./chunks/x-CzxL27Ch.js";var J=g('<div class="flex w-full items-center justify-between"><div class="flex flex-1 items-center justify-start gap-4 py-3 pl-4"><span class="text-foreground font-medium"></span></div><div class="flex items-center justify-center gap-0.5 px-3 py-0"><button type=button class="text-muted-foreground hover:text-foreground flex size-8 items-center justify-center rounded-md transition-colors"aria-label=Helpful></button><button type=button class="text-muted-foreground hover:text-foreground flex size-8 items-center justify-center rounded-md transition-colors"aria-label="Not helpful"></button></div><div class="border-border flex items-center justify-center border-l"><button type=button class="text-muted-foreground hover:text-foreground flex items-center justify-center rounded-md p-3"aria-label=Close>'),K=g('<div class="flex flex-wrap gap-1.5">'),O=g('<div class="flex w-[min(22rem,80vw)] flex-col gap-2.5 p-3"><div class="flex items-center justify-between"><span class="text-foreground font-medium"></span><button type=button aria-label=Skip class="text-muted-foreground hover:text-foreground"></button></div><div class="flex justify-end gap-2">'),Q=g('<div class="flex items-center gap-2 px-4 py-3"role=status><span class="text-foreground font-medium">'),R=g("<div>"),U=g("<button type=button>");function V(e){const[u,f]=v("ask"),[b,M]=v(),[p,L]=v(),[k,P]=v(""),y=i=>{var l;M(i),(l=e.onFeedback)==null||l.call(e,i),f(i==="not-helpful"&&e.collectDetail?"detail":"thanks")},F=()=>{var i;(i=e.onSubmitDetail)==null||i.call(e,{value:b(),category:p(),comment:k()||void 0}),f("thanks")};return(()=>{var i=R();return t(i,r(I,{get children(){return[r(x,{get when(){return u()==="ask"},get children(){var l=J(),n=l.firstChild,m=n.firstChild,h=n.nextSibling,s=h.firstChild,a=s.nextSibling,c=h.nextSibling,o=c.firstChild;return t(n,r(S,{get when(){return e.icon},get children(){return e.icon}}),m),t(m,()=>e.title),s.$$click=()=>y("helpful"),t(s,r(A,{class:"size-4"})),a.$$click=()=>y("not-helpful"),t(a,r(E,{class:"size-4"})),o.$$click=()=>{var d;return(d=e.onClose)==null?void 0:d.call(e)},t(o,r(D,{class:"size-5"})),l}}),r(x,{get when(){return u()==="detail"},get children(){var l=O(),n=l.firstChild,m=n.firstChild,h=m.nextSibling,s=n.nextSibling;return t(m,()=>e.detailTitle??"What went wrong?"),h.$$click=()=>f("thanks"),t(h,r(D,{class:"size-4"})),t(l,r(S,{get when(){var a;return(a=e.categories)==null?void 0:a.length},get children(){var a=K();return t(a,r(W,{get each(){return e.categories},children:c=>(()=>{var o=U();return o.$$click=()=>L(p()===c?void 0:c),t(o,c),j(d=>{var w=p()===c,C=T("rounded-full border px-2.5 py-1 text-xs transition-colors",p()===c?"border-primary bg-primary text-primary-foreground":"border-border text-muted-foreground hover:text-foreground");return w!==d.e&&H(o,"aria-pressed",d.e=w),C!==d.t&&$(o,d.t=C),d},{e:void 0,t:void 0}),o})()})),a}}),s),t(l,r(q,{get value(){return k()},onInput:a=>P(a.currentTarget.value),get placeholder(){return e.detailPlaceholder??"Tell us more (optional)"},class:"border-border min-h-[3rem] rounded-md border px-2 py-1.5"}),s),t(s,r(z,{variant:"ghost",size:"sm",onClick:()=>f("thanks"),children:"Skip"}),null),t(s,r(z,{variant:"default",size:"sm",onClick:F,get children(){return e.submitLabel??"Submit"}}),null),l}}),r(x,{get when(){return u()==="thanks"},get children(){var l=Q(),n=l.firstChild;return t(l,r(G,{class:"size-4 text-emerald-500"}),n),t(n,()=>e.thanksMessage??"Thanks for your feedback"),l}})]}})),j(()=>$(i,T("bg-background border-border inline-flex rounded-[12px] border text-sm",e.class))),i})()}B(["click"]),N("kai-feedback-bar",{barTitle:"Was this helpful?",collectDetail:void 0,categories:void 0,detailTitle:void 0,detailPlaceholder:void 0,submitLabel:void 0,thanksMessage:void 0},(e,{dispatch:u,flag:f})=>r(V,{get title(){return e.barTitle},get collectDetail(){return f("collectDetail")},get categories(){return e.categories},get detailTitle(){return e.detailTitle},get detailPlaceholder(){return e.detailPlaceholder},get submitLabel(){return e.submitLabel},get thanksMessage(){return e.thanksMessage},onFeedback:b=>u("kai-feedback",{value:b}),onSubmitDetail:b=>u("kai-feedback-detail",b),onClose:()=>u("kai-close")}));
@@ -0,0 +1 @@
1
+ import{q as s,i as d,c as n,t}from"./chunks/cn-Dogu6PbV.js";import{F as o}from"./chunks/file-tree-CgtRLlxK.js";var h=t("<style>:host{display:block;height:100%;min-height:0}"),m=t('<div style="display:grid;grid-template-rows:minmax(0, 1fr);grid-template-columns:minmax(0, 1fr);height:100%;min-height:0"><div class="overflow-auto scrollbar-thin py-1.5"style=min-height:0>');s("kai-file-tree",{files:[],activeFile:void 0,defaultExpanded:void 0},(e,{dispatch:a})=>[h(),(()=>{var i=m(),l=i.firstChild;return d(l,n(o,{get files(){return e.files},get activeFile(){return e.activeFile},get defaultExpanded(){return e.defaultExpanded},onSelect:r=>a("kai-select",{path:r})})),i})()]);
@@ -0,0 +1 @@
1
+ import{c as p,m,d as x,s as b,w as E,f as L,i as w,a as A,b as $,p as F,u as R,h as T,g as D,n as I,v as P,t as v,q as j,r as q}from"./chunks/cn-Dogu6PbV.js";import{I as z}from"./chunks/Icon-D_Zmwmwh.js";var C=[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]],H=l=>p(z,m(l,{name:"Upload",iconNode:C})),M=H,N=v("<input type=file class=hidden aria-hidden=true>"),U=v("<button type=button>");const h=P();function _(l){const[n]=b(l,["onFilesAdded","children","multiple","accept","disabled"]);let s;const[d,o]=A(!1);let a=0;const f=()=>n.multiple??!0,g=e=>{const t=Array.from(e);f()?n.onFilesAdded(t):n.onFilesAdded(t.slice(0,1))};$(()=>{const e=r=>{r.preventDefault(),r.stopPropagation()},t=r=>{var c;e(r),a++,(c=r.dataTransfer)!=null&&c.items.length&&o(!0)},i=r=>{e(r),a--,a===0&&o(!1)},u=r=>{var c;e(r),o(!1),a=0,(c=r.dataTransfer)!=null&&c.files.length&&g(r.dataTransfer.files)};window.addEventListener("dragenter",t),window.addEventListener("dragleave",i),window.addEventListener("dragover",e),window.addEventListener("drop",u),F(()=>{window.removeEventListener("dragenter",t),window.removeEventListener("dragleave",i),window.removeEventListener("dragover",e),window.removeEventListener("drop",u)})});const y=e=>{var t;const i=e.target;(t=i.files)!=null&&t.length&&(g(i.files),i.value="")},k={isDragging:d,get inputRef(){return s},setInputRef:e=>{s=e},multiple:n.multiple,disabled:n.disabled};return p(h.Provider,{value:k,get children(){return[(()=>{var e=N();return e.$$input=y,R(t=>{s=t},e),T(t=>{var i=f(),u=n.accept,r=n.disabled;return i!==t.e&&(e.multiple=t.e=i),u!==t.t&&D(e,"accept",t.t=u),r!==t.a&&(e.disabled=t.a=r),t},{e:void 0,t:void 0,a:void 0}),e})(),I(()=>n.children)]}})}function O(l){const[n,s]=b(l,["class","children"]),d=E(h),o=()=>{var a;return(a=d?.inputRef)==null?void 0:a.click()};return(()=>{var a=U();return a.$$click=o,L(a,m({get class(){return n.class}},s),!1,!0),w(a,()=>n.children),a})()}x(["input","click"]);var S=v("<slot>");j("kai-file-upload",{multiple:!0,accept:void 0,disabled:!1,label:"Click or drop files to upload"},(l,{dispatch:n,flag:s})=>p(_,{get multiple(){return s("multiple")},get accept(){return l.accept},get disabled(){return s("disabled")},onFilesAdded:d=>n("kai-files-added",{files:d}),get children(){return p(O,{class:"border-border bg-muted/30 hover:bg-muted/60 text-muted-foreground flex w-full cursor-pointer flex-col items-center justify-center gap-2 rounded-xl border border-dashed px-6 py-8 text-sm transition-colors",get children(){return[p(M,{class:"size-5"}),(()=>{var d=S();return d._$owner=q(),w(d,()=>l.label),d})()]}})}}));
@@ -0,0 +1 @@
1
+ import{d as de,f as S,m as b,j as I,i as o,c as l,S as v,n as oe,g as L,h as y,F as C,k as T,a as se,t as f,s as ce,e as M,b as K,o as Z,E as ge,I as me,q as fe}from"./chunks/cn-Dogu6PbV.js";import{c as G,p as D,u as pe}from"./chunks/store-C6rIooZz.js";import{B as E}from"./chunks/button-CKyYD9G4.js";import{C as R}from"./chunks/card-Cjho-PYk.js";import{u as he,a as be,D as ve}from"./chunks/use-card-resolution-D-_0Alzy.js";import{e as xe}from"./chunks/card-routing-C986KuUA.js";import{T as ye}from"./chunks/textarea-3nm6Ia9U.js";import{s as ke}from"./chunks/star-t9tI-P0q.js";import{c as we}from"./chunks/check-CDYaMYrM.js";function J(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function $e(e,r){switch(r){case"integer":return typeof e=="number"&&Number.isInteger(e);case"number":return typeof e=="number"&&Number.isFinite(e);case"array":return Array.isArray(e);case"null":return e===null;case"object":return J(e)==="object";default:return typeof e===r}}function _(e,r,t,n){const i=t||"(root)";if(e.type&&!$e(r,e.type)){n.push(`${i}: expected ${e.type}, got ${J(r)}`);return}if("const"in e&&JSON.stringify(r)!==JSON.stringify(e.const)&&n.push(`${i}: must equal const ${JSON.stringify(e.const)}`),e.enum&&!e.enum.some(a=>JSON.stringify(a)===JSON.stringify(r))&&n.push(`${i}: must be one of ${JSON.stringify(e.enum)}`),typeof r=="number"&&(e.minimum!==void 0&&r<e.minimum&&n.push(`${i}: < minimum ${e.minimum}`),e.maximum!==void 0&&r>e.maximum&&n.push(`${i}: > maximum ${e.maximum}`),e.exclusiveMinimum!==void 0&&r<=e.exclusiveMinimum&&n.push(`${i}: <= exclusiveMinimum`),e.exclusiveMaximum!==void 0&&r>=e.exclusiveMaximum&&n.push(`${i}: >= exclusiveMaximum`)),typeof r=="string"&&(e.minLength!==void 0&&r.length<e.minLength&&n.push(`${i}: shorter than minLength ${e.minLength}`),e.maxLength!==void 0&&r.length>e.maxLength&&n.push(`${i}: longer than maxLength ${e.maxLength}`),e.pattern!==void 0&&!new RegExp(e.pattern).test(r)&&n.push(`${i}: does not match pattern`)),Array.isArray(r)&&(e.minItems!==void 0&&r.length<e.minItems&&n.push(`${i}: fewer than minItems ${e.minItems}`),e.maxItems!==void 0&&r.length>e.maxItems&&n.push(`${i}: more than maxItems ${e.maxItems}`),e.uniqueItems&&new Set(r.map(a=>JSON.stringify(a))).size!==r.length&&n.push(`${i}: items not unique`),e.items&&r.forEach((a,u)=>_(e.items,a,`${i}[${u}]`,n))),J(r)==="object"){const a=r;for(const u of e.required??[])(!(u in a)||a[u]===void 0)&&n.push(`${i}.${u}: required`);if(e.properties)for(const[u,d]of Object.entries(e.properties))u in a&&a[u]!==void 0&&_(d,a[u],`${i}.${u}`,n)}}function Ie(e,r){const t=[];return _(e,r,"",t),{valid:t.length===0,errors:t}}var Ae=f("<input data-control>"),Se=f('<span class="self-end text-xs text-muted-foreground">/'),Le=f('<div class="flex flex-col gap-1">'),Ce=f("<input data-control type=number>"),je=f('<div class="flex items-center gap-3"><input data-control type=range class=kai-range><span class="min-w-9 shrink-0 rounded-md bg-background px-2 py-1 text-center text-sm font-medium tabular-nums text-foreground shadow-sm">'),Be=f('<div role=radiogroup data-control tabindex=0 class="flex items-center gap-1 rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring">'),qe=f('<button type=button role=radio tabindex=-1 class="rounded p-0.5 text-muted-foreground hover:text-foreground">'),Oe=f("<button data-control type=button role=switch><span>"),Me=f('<label class="-mx-1.5 inline-flex cursor-pointer items-center gap-2.5 rounded-md px-1.5 py-1.5 text-sm text-foreground transition-colors hover:bg-muted/60"><input data-control type=checkbox class=kai-checkbox><span>'),Ne=f('<div role=radiogroup data-control class="divide-y divide-border overflow-hidden rounded-lg border border-input">'),Ee=f("<label><input type=radio class=kai-radio><span>"),Te=f("<select data-control><option value disabled>"),H=f("<option>"),Ke=f('<div role=group data-control class="divide-y divide-border overflow-hidden rounded-lg border border-input">'),De=f("<label><input type=checkbox class=kai-checkbox><span>"),Re=f("<select data-control multiple>"),Je=f('<div class="flex flex-col gap-2"role=group><div class="flex flex-wrap gap-1.5"></div><div class="flex items-center gap-2"><input data-control type=text><button type=button class="rounded-md border border-input px-3 py-2 text-sm text-foreground hover:bg-muted disabled:opacity-50">Add'),_e=f('<span class="inline-flex items-center gap-1 rounded-full bg-muted px-2 py-0.5 text-xs text-foreground"><button type=button class="text-muted-foreground hover:text-foreground">\u2715');const N="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:opacity-50 disabled:pointer-events-none";function A(e){return{"aria-required":e.required||void 0,"aria-invalid":e.invalid||void 0,"aria-describedby":e.describedBy}}function ze(e){const r=()=>{switch(e.variant){case"email":return"email";case"url":return"url";case"date":return"date";case"datetime":return"datetime-local";case"time":return"time";case"password":return"password";default:return"text"}};return(()=>{var t=Ae();return S(t,b({get id(){return e.id},get type(){return r()},get class(){return I(N,e.invalid&&"border-destructive dark:border-red-400/70")},get value(){return e.value??""},get placeholder(){return e.placeholder},get disabled(){return e.disabled},get minLength(){return e.field.minLength},get maxLength(){return e.field.maxLength}},()=>A(e),{onInput:n=>e.onInput(n.currentTarget.value),get onBlur(){return e.onBlur}}),!1,!1),t})()}function Ue(e){const r=()=>(e.value??"").length;return(()=>{var t=Le();return o(t,l(ye,b({get id(){return e.id},"data-control":!0,get class(){return I(N,e.invalid&&"border-destructive dark:border-red-400/70")},get value(){return e.value??""},get placeholder(){return e.placeholder},get disabled(){return e.disabled},get maxLength(){return e.field.maxLength}},()=>A(e),{onInput:n=>e.onInput(n.currentTarget.value),get onBlur(){return e.onBlur}})),null),o(t,l(v,{get when(){return e.field.maxLength!==void 0},get children(){var n=Se(),i=n.firstChild;return o(n,r,i),o(n,()=>e.field.maxLength,null),n}}),null),t})()}function Fe(e){const r=()=>e.field["x-kai-step"]??(e.field.type==="integer"?1:void 0);return(()=>{var t=Ce();return S(t,b({get id(){return e.id},get class(){return I(N,e.invalid&&"border-destructive dark:border-red-400/70")},get value(){return oe(()=>e.value===void 0||e.value===null)()?"":String(e.value)},get placeholder(){return e.placeholder},get disabled(){return e.disabled},get min(){return e.field.minimum},get max(){return e.field.maximum},get step(){return r()}},()=>A(e),{onInput:n=>e.onInput(n.currentTarget.value),get onBlur(){return e.onBlur}}),!1,!1),t})()}function Ye(e){const r=()=>e.field.minimum??0,t=()=>e.field.maximum??100,n=()=>e.field["x-kai-step"]??(e.field.type==="integer"?1:void 0),i=()=>e.value===void 0||e.value===null?r():Number(e.value),a=()=>{const u=r(),d=t();return d>u?`${(i()-u)/(d-u)*100}%`:"0%"};return(()=>{var u=je(),d=u.firstChild,h=d.nextSibling;return S(d,b({get id(){return e.id},get style(){return{"--kai-range-fill":a()}},get value(){return i()},get min(){return r()},get max(){return t()},get step(){return n()},get disabled(){return e.disabled},get"aria-valuetext"(){return String(i())}},()=>A(e),{onInput:m=>e.onInput(Number(m.currentTarget.value)),get onBlur(){return e.onBlur}}),!1,!1),o(h,i),u})()}function Ze(e){const r=()=>e.field.maximum??5,t=()=>Number(e.value??0),n=()=>Array.from({length:r()},(a,u)=>u+1),i=a=>{a.key==="ArrowRight"||a.key==="ArrowUp"?(a.preventDefault(),e.onInput(Math.min(r(),t()+1))):(a.key==="ArrowLeft"||a.key==="ArrowDown")&&(a.preventDefault(),e.onInput(Math.max(e.field.minimum??1,t()-1)))};return(()=>{var a=Be();return S(a,b({get"aria-label"(){return e.label}},()=>A(e),{onKeyDown:i}),!1,!0),o(a,l(C,{get each(){return n()},children:u=>(()=>{var d=qe();return d.$$click=()=>e.onInput(u),L(d,"aria-label",`${u} ${u===1?"star":"stars"}`),o(d,l(ke,{size:20,get class(){return I(u<=t()?"fill-current text-[var(--color-primary)]":"")},"aria-hidden":"true"})),y(h=>{var m=t()===u,p=e.disabled;return m!==h.e&&L(d,"aria-checked",h.e=m),p!==h.t&&(d.disabled=h.t=p),h},{e:void 0,t:void 0}),d})()})),a})()}function Ge(e){const r=()=>e.value===!0,t=()=>{e.disabled||(e.onInput(!r()),e.onBlur())};return(()=>{var n=Oe(),i=n.firstChild;return S(n,b({get id(){return e.id},get"aria-checked"(){return r()},get"aria-label"(){return e.label},get disabled(){return e.disabled},get class(){return I("relative inline-flex h-6 w-11 shrink-0 items-center rounded-full transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",r()?"bg-[var(--color-primary)]":"bg-muted")}},()=>A(e),{onClick:t}),!1,!0),y(()=>T(i,I("inline-block h-5 w-5 transform rounded-full bg-background shadow transition-transform",r()?"translate-x-5":"translate-x-0.5"))),n})()}function He(e){return(()=>{var r=Me(),t=r.firstChild,n=t.nextSibling;return S(t,b({get id(){return e.id},get checked(){return e.value===!0},get disabled(){return e.disabled}},()=>A(e),{onChange:i=>{e.onInput(i.currentTarget.checked),e.onBlur()}}),!1,!1),o(n,()=>e.label),r})()}function Pe(e){const r=()=>e.field.enum??[];return(()=>{var t=Ne();return S(t,b({get"aria-label"(){return e.label}},()=>A(e)),!1,!0),o(t,l(C,{get each(){return r()},children:n=>(()=>{var i=Ee(),a=i.firstChild,u=a.nextSibling;return a.addEventListener("change",()=>{e.onInput(n),e.onBlur()}),o(u,()=>String(n)),y(d=>{var h=I("flex cursor-pointer items-center gap-3 px-3 py-2.5 text-sm transition-colors",e.value===n?"bg-accent font-medium text-accent-foreground":"text-foreground hover:bg-muted/50"),m=e.id,p=e.disabled;return h!==d.e&&T(i,d.e=h),m!==d.t&&L(a,"name",d.t=m),p!==d.a&&(a.disabled=d.a=p),d},{e:void 0,t:void 0,a:void 0}),y(()=>a.value=String(n)),y(()=>a.checked=e.value===n),i})()})),t})()}function Qe(e){const r=()=>e.field.enum??[];return(()=>{var t=Te(),n=t.firstChild;return S(t,b({get id(){return e.id},get class(){return I(N,e.invalid&&"border-destructive dark:border-red-400/70")},get disabled(){return e.disabled}},()=>A(e),{onChange:i=>{e.onInput(i.currentTarget.value),e.onBlur()}}),!1,!0),o(n,()=>e.placeholder??"Select\u2026"),o(t,l(C,{get each(){return r()},children:i=>(()=>{var a=H();return o(a,()=>String(i)),y(()=>a.selected=e.value===i),y(()=>a.value=String(i)),a})()}),null),y(()=>n.selected=e.value===void 0||e.value===""),t})()}function P(e){const r=e.items;return r&&"enum"in r&&Array.isArray(r.enum)?r.enum:[]}function Ve(e){const r=()=>Array.isArray(e.value)?e.value:[],t=n=>{const i=r(),a=i.includes(n)?i.filter(u=>u!==n):[...i,n];e.onInput(a),e.onBlur()};return(()=>{var n=Ke();return S(n,b({get"aria-label"(){return e.label}},()=>A(e)),!1,!0),o(n,l(C,{get each(){return P(e.field)},children:i=>(()=>{var a=De(),u=a.firstChild,d=u.nextSibling;return u.addEventListener("change",()=>t(i)),o(d,()=>String(i)),y(h=>{var m=I("flex cursor-pointer items-center gap-3 px-3 py-2.5 text-sm transition-colors",r().includes(i)?"bg-accent font-medium text-accent-foreground":"text-foreground hover:bg-muted/50"),p=e.disabled;return m!==h.e&&T(a,h.e=m),p!==h.t&&(u.disabled=h.t=p),h},{e:void 0,t:void 0}),y(()=>u.checked=r().includes(i)),a})()})),n})()}function We(e){const r=()=>Array.isArray(e.value)?e.value:[];return(()=>{var t=Re();return S(t,b({get id(){return e.id},get"aria-label"(){return e.label},get class(){return I(N,"min-h-[6rem]",e.invalid&&"border-destructive dark:border-red-400/70")},get disabled(){return e.disabled}},()=>A(e),{onChange:n=>{const i=Array.from(n.currentTarget.selectedOptions).map(a=>a.value);e.onInput(i),e.onBlur()}}),!1,!0),o(t,l(C,{get each(){return P(e.field)},children:n=>(()=>{var i=H();return o(i,()=>String(n)),y(()=>i.selected=r().includes(n)),y(()=>i.value=String(n)),i})()})),t})()}function Xe(e){const r=()=>Array.isArray(e.value)?e.value:[],[t,n]=se(""),i=()=>{const u=t().trim();u&&(e.onInput([...r(),u]),n(""),e.onBlur())},a=u=>{e.onInput(r().filter((d,h)=>h!==u)),e.onBlur()};return(()=>{var u=Je(),d=u.firstChild,h=d.nextSibling,m=h.firstChild,p=m.nextSibling;return o(d,l(C,{get each(){return r()},children:(g,j)=>(()=>{var k=_e(),$=k.firstChild;return o(k,g,$),$.$$click=()=>a(j()),L($,"aria-label",`Remove ${g}`),y(()=>$.disabled=e.disabled),k})()})),S(m,b({get id(){return e.id},get class(){return I(N)},get value(){return t()},get placeholder(){return e.placeholder??"Add\u2026"},get disabled(){return e.disabled}},()=>A(e),{onInput:g=>n(g.currentTarget.value),onKeyDown:g=>{g.key==="Enter"&&(g.preventDefault(),i())}}),!1,!1),p.$$click=i,y(g=>{var j=e.label,k=e.disabled;return j!==g.e&&L(u,"aria-label",g.e=j),k!==g.t&&(p.disabled=g.t=k),g},{e:void 0,t:void 0}),u})()}de(["click"]);var er=f("<form novalidate>"),rr=f('<div class="flex w-full flex-wrap items-center justify-between gap-2"><div class="ml-auto flex flex-wrap items-center gap-2">'),tr=f('<div class="flex flex-col gap-3"><p class="flex items-center gap-2 text-sm font-medium text-foreground"><span>Submitted</span></p><dl class="grid grid-cols-[max-content_1fr] gap-x-4 gap-y-1.5">'),nr=f('<dt class="text-xs text-muted-foreground">'),ir=f('<dd class="m-0 text-sm font-medium text-foreground">'),ar=f('<span class="text-destructive dark:text-red-400"aria-hidden=true> *'),ur=f('<label class="text-sm font-medium text-foreground">'),lr=f('<p class="text-xs text-muted-foreground">'),dr=f('<p role=alert class="text-xs text-destructive dark:text-red-400">'),or=f('<div class="flex flex-col gap-2 rounded-xl bg-muted/40 p-3.5">'),sr=f('<p class="rounded-md border border-dashed border-border p-2 text-xs text-muted-foreground">Unsupported field "<!>".'),cr=f('<fieldset class="flex flex-col gap-3 rounded-lg border border-border p-3"><legend class="px-1 text-sm font-medium text-foreground">'),gr=f('<fieldset class="flex flex-col gap-3 rounded-lg border border-border p-3"data-control><legend class="px-1 text-sm font-medium text-foreground">'),mr=f('<div class="flex flex-col gap-2 rounded-md border border-border/60 p-2"><div class="flex items-center justify-between"><span class="text-xs text-muted-foreground">Item ');const z=4,fr=new Set(["textarea","slider","rating","radio","select","checkbox","password","switch"]);function pr(e,r){const t=e["x-kai-widget"];if(t&&fr.has(t))switch(t){case"textarea":return"textarea";case"slider":return"slider";case"rating":return"rating";case"radio":return"radio";case"select":return"select";case"checkbox":return"checkbox";case"password":return"password";case"switch":return"switch"}switch(e.type){case"string":{if(Array.isArray(e.enum))return e.enum.length<=r?"radio":"select";switch(e.format){case"email":return"email";case"uri":case"url":return"url";case"date":return"date";case"date-time":return"datetime";case"time":return"time"}return e.maxLength!==void 0&&e.maxLength>120?"textarea":"text"}case"number":case"integer":return"number";case"boolean":return"switch";case"array":{const n=e.items;return n&&"enum"in n&&Array.isArray(n.enum)?n.enum.length<=r?"checkbox-group":"multiselect":n&&"type"in n&&n.type==="object"?"repeater":(n&&"type"in n&&n.type,"taglist")}case"object":return"fieldset";default:return"unsupported"}}function U(e){return e.replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").trim().replace(/\b\w/g,r=>r.toUpperCase())}function hr(e){const r=Object.keys(e.properties??{}),t=e["x-kai-order"];if(Array.isArray(t)){const a=t.filter(d=>r.includes(d)),u=r.filter(d=>!a.includes(d));return[...a,...u]}const n=(e.required??[]).filter(a=>r.includes(a)),i=r.filter(a=>!n.includes(a));return[...n,...i]}function br(e,r){if(e.type==="number"||e.type==="integer"){if(r===""||r===null||r===void 0)return;const t=typeof r=="number"?r:Number(r);return Number.isNaN(t)?r:t}return e.type==="boolean"?!!r:r}const vr="^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$";function xr(e){const r={type:e.type};return e.enum&&(r.enum=e.enum),e.minimum!==void 0&&(r.minimum=e.minimum),e.maximum!==void 0&&(r.maximum=e.maximum),e.minLength!==void 0&&(r.minLength=e.minLength),e.maxLength!==void 0&&(r.maxLength=e.maxLength),e.minItems!==void 0&&(r.minItems=e.minItems),e.maxItems!==void 0&&(r.maxItems=e.maxItems),e.pattern!==void 0?r.pattern=e.pattern:e.format==="email"&&(r.pattern=vr),r}function Q(e){return e==null||e===""||Array.isArray(e)&&e.length===0}function V(e,r){const t={},n=new Set(e.required??[]);for(const[i,a]of Object.entries(e.properties??{})){const u=r[i];if(n.has(i)&&Q(u)){t[i]=`${a.title??U(i)} is required.`;continue}if(Q(u))continue;const d=Ie(xr(a),u);d.valid||(t[i]=yr(a,i,d.errors[0]))}return{valid:Object.keys(t).length===0,fieldErrors:t}}function yr(e,r,t){const n=e.title??U(r);return t?t.includes("minimum")?`${n} must be at least ${e.minimum}.`:t.includes("maximum")?`${n} must be at most ${e.maximum}.`:t.includes("minLength")?`${n} must be at least ${e.minLength} characters.`:t.includes("maxLength")?`${n} must be at most ${e.maxLength} characters.`:t.includes("pattern")?e.format==="email"?`${n} must be a valid email address.`:`${n} is not in the expected format.`:t.includes("one of")?`${n} must be one of the allowed options.`:t.includes("expected integer")?`${n} must be a whole number.`:t.includes("expected")?`${n} is invalid.`:t.includes("minItems")?`${n}: choose at least ${e.minItems}.`:t.includes("maxItems")?`${n}: choose at most ${e.maxItems}.`:`${n} is invalid.`:`${n} is invalid.`}function kr(e,r){return e?.["x-kai-widget"]==="password"?r==null||r===""?"\u2014":"\u2022\u2022\u2022\u2022":typeof r=="boolean"?r?"Yes":"No":r==null||r===""?"\u2014":Array.isArray(r)?r.length?r.map(t=>String(t)).join(", "):"\u2014":String(r)}function wr(e,r){const t=e.properties??{};return(Array.isArray(e["x-kai-order"])&&e["x-kai-order"].length>0?e["x-kai-order"].filter(n=>n in t):Object.keys(t)).map(n=>{const i=t[n];return{key:n,label:i?.title??n,value:kr(i,r[n])}})}function $r(e,r){const t={};for(const n of Object.keys(e.properties??{})){const i=e.properties[n],a=br(i,r[n]);a===void 0||a===""||Array.isArray(a)&&a.length===0||(t[n]=a)}return t}const W={type:"object",properties:{}};function Ir(e){const r=b({cardId:"kai-form"},e),[t]=ce(r,["data","cardId","heading","host","hostElement","class","resolution"]),n=he(),i=s=>{const c=t.host??n;c?c.emit(s):t.hostElement&&xe(t.hostElement,s)},a=M(()=>{const s=t.data;return s?s.type!=="object"||typeof s.properties!="object"||s.properties===null?{ok:!1,message:"This form couldn't be displayed."}:{ok:!0,message:""}:{ok:!1,message:"No form definition provided."}}),u=M(()=>a().ok?t.data??W:W),d=()=>u()["x-kai-inlineMax"]??z,h=M(()=>hr(u())),m=be({prop:()=>t.resolution,data:()=>t.data}),[p,g]=G({}),[j,k]=G({}),$=s=>{const c={};for(const[x,w]of Object.entries(s.properties??{}))w.default!==void 0?c[x]=w.default:w.type==="array"&&(c[x]=[]);g(D(x=>{for(const w of Object.keys(x))delete x[w];Object.assign(x,c)})),k(D(x=>{for(const w of Object.keys(x))delete x[w]}))};K(Z(()=>t.data,()=>{a().ok&&$(u())})),K(Z(a,s=>{s.ok?i({kind:"ready",cardId:t.cardId}):i({kind:"error",cardId:t.cardId,message:s.message})})),K(()=>{var s;const c=t.hostElement;c&&(((s=m.resolution())==null?void 0:s.kind)==="submit"?c.setAttribute("data-kai-resolved","submitted"):c.removeAttribute("data-kai-resolved"))});const B=(s,c)=>{g(s,c),j[s]&&k(s,void 0)},ee=s=>{const c=u().properties[s];if(!c)return;const x=V({required:u().required,properties:{[s]:c}},{[s]:p[s]});k(s,x.fieldErrors[s])},re=s=>{if(s.preventDefault(),m.isResolved())return;const c=s.currentTarget,x=pe(p),w=V(u(),x);if(k(D(q=>{for(const O of Object.keys(q))delete q[O];Object.assign(q,w.fieldErrors)})),!w.valid){const q=h().find(O=>w.fieldErrors[O]);q&&t.hostElement&&queueMicrotask(()=>{var O;(O=(c?.closest("form")??c??document).querySelector(`[data-field="${qr(q)}"] [data-control]`))==null||O.focus()});return}const Y=$r(u(),x);i({kind:"submit",cardId:t.cardId,data:Y}),m.setLocal({kind:"submit",data:Y})},te=()=>{m.isResolved()||(i({kind:"dismiss",cardId:t.cardId}),m.setLocal({kind:"dismissed"}))},ne=()=>i({kind:"reopen",cardId:t.cardId}),ie=M(()=>u()["x-kai-actions"]??[]),ae=()=>u()["x-kai-submitLabel"]??"Submit",ue=()=>u()["x-kai-dismissible"]===!0,le=M(()=>{const s=m.resolution();return!s||s.kind!=="submit"?[]:wr(u(),s.data??{})});return l(v,{get when(){return a().ok},get fallback(){return l(R,{get heading(){return t.heading},get errorMessage(){return a().message}})},get children(){return l(ge,{fallback:()=>(i({kind:"error",cardId:t.cardId,message:"The form failed to render."}),l(R,{get heading(){return t.heading},errorMessage:"The form failed to render."})),get children(){return l(v,{get when(){return!m.isDeferred()},get fallback(){return l(ve,{type:"form",get title(){return t.heading??u().title},onReopen:ne})},get children(){return l(R,{get heading(){return t.heading??u().title},get description(){return u().description},get actions(){return l(v,{get when(){return!m.isResolved()},fallback:void 0,get children(){var s=rr(),c=s.firstChild;return o(s,l(v,{get when(){return ue()},get children(){return l(E,{type:"button",variant:"ghost",onClick:te,children:"Dismiss"})}}),c),o(c,l(C,{get each(){return ie()},children:x=>l(E,{type:"button",get variant(){return x.variant??"ghost"},onClick:()=>i({kind:"action",cardId:t.cardId,action:x.id}),get children(){return x.label}})}),null),o(c,l(E,{type:"submit",get form(){return X()},get children(){return ae()}}),null),s}})},get children(){return l(v,{get when(){return!m.isResolved()},get fallback(){return l(Lr,{get rows(){return le()},get optimistic(){return m.isOptimistic()}})},get children(){var s=er();return s.addEventListener("submit",re),o(s,l(C,{get each(){return h()},children:c=>l(F,{fieldKey:c,get field(){return u().properties[c]},get required(){return(u().required??[]).includes(c)},get inlineMax(){return d()},value:()=>p[c],error:()=>j[c],disabled:!1,onInput:x=>B(c,x),onBlur:()=>ee(c)})})),y(c=>{var x=X(),w=I("flex flex-col gap-3",t.class);return x!==c.e&&L(s,"id",c.e=x),w!==c.t&&T(s,c.t=w),c},{e:void 0,t:void 0}),s}})}})}})}})}})}let Ar=0;const Sr=`kai-form-${++Ar}`;function X(){return Sr}function Lr(e){return(()=>{var r=tr(),t=r.firstChild,n=t.firstChild,i=t.nextSibling;return o(t,l(we,{size:16,"aria-hidden":"true"}),n),o(i,l(C,{get each(){return e.rows},children:a=>[(()=>{var u=nr();return o(u,()=>a.label),u})(),(()=>{var u=ir();return o(u,()=>a.value),u})()]})),y(()=>L(r,"role",e.optimistic?"status":void 0)),r})()}function F(e){const r=`f-${e.fieldKey}-${Math.random().toString(36).slice(2,8)}`,t=`${r}-err`,n=`${r}-desc`,i=()=>e.field.title??U(e.fieldKey),a=M(()=>pr(e.field,e.inlineMax)),u=()=>e.field["x-kai-placeholder"],d=()=>[e.field.description?n:"",e.error()?t:""].filter(Boolean).join(" ")||void 0,h=()=>({id:r,value:e.value(),field:e.field,disabled:e.disabled||e.field.readOnly===!0,placeholder:u(),required:e.required,invalid:!!e.error(),describedBy:d(),label:i(),onInput:e.onInput,onBlur:e.onBlur}),m=()=>["fieldset","repeater","checkbox-group","multiselect","radio","taglist"].includes(a());return(()=>{var p=or();return o(p,l(v,{get when(){return!m()},get children(){var g=ur();return L(g,"for",r),o(g,i,null),o(g,l(v,{get when(){return e.required},get children(){return ar()}}),null),g}}),null),o(p,l(v,{get when(){return e.field.description},get children(){var g=lr();return L(g,"id",n),o(g,()=>e.field.description),g}}),null),o(p,l(Cr,{get widget(){return a()},get common(){return h()},get fieldKey(){return e.fieldKey}}),null),o(p,l(v,{get when(){return e.error()},get children(){var g=dr();return L(g,"id",t),o(g,()=>e.error()),g}}),null),y(()=>L(p,"data-field",e.fieldKey)),p})()}function Cr(e){const r=()=>e.widget,t=()=>e.common;return[l(v,{get when(){return r()==="text"||r()==="email"||r()==="url"||r()==="date"||r()==="datetime"||r()==="time"||r()==="password"},get children(){return l(ze,b(t,{get variant(){return r()}}))}}),l(v,{get when(){return r()==="textarea"},get children(){return l(Ue,b(t))}}),l(v,{get when(){return r()==="number"},get children(){return l(Fe,b(t))}}),l(v,{get when(){return r()==="slider"},get children(){return l(Ye,b(t))}}),l(v,{get when(){return r()==="rating"},get children(){return l(Ze,b(t))}}),l(v,{get when(){return r()==="switch"},get children(){return l(Ge,b(t))}}),l(v,{get when(){return r()==="checkbox"},get children(){return l(He,b(t))}}),l(v,{get when(){return r()==="radio"},get children(){return l(Pe,b(t))}}),l(v,{get when(){return r()==="select"},get children(){return l(Qe,b(t))}}),l(v,{get when(){return r()==="checkbox-group"},get children(){return l(Ve,b(t))}}),l(v,{get when(){return r()==="multiselect"},get children(){return l(We,b(t))}}),l(v,{get when(){return r()==="taglist"},get children(){return l(Xe,b(t))}}),l(v,{get when(){return r()==="repeater"},get children(){return l(Br,b(t,{inlineMax:z}))}}),l(v,{get when(){return r()==="fieldset"},get children(){return l(jr,b(t,{inlineMax:z}))}}),l(v,{get when(){return r()==="unsupported"},get children(){var n=sr(),i=n.firstChild,a=i.nextSibling;return a.nextSibling,o(n,()=>e.fieldKey,a),n}})]}function jr(e){const r=()=>e.field.properties??{},t=()=>e.value&&typeof e.value=="object"?e.value:{},n=(i,a)=>{e.onInput({...t(),[i]:a})};return(()=>{var i=cr(),a=i.firstChild;return o(a,()=>e.label),o(i,l(C,{get each(){return Object.keys(r())},children:u=>l(F,{fieldKey:u,get field(){return r()[u]},get required(){return(e.field.required??[]).includes(u)},get inlineMax(){return e.inlineMax},value:()=>t()[u],error:()=>{},get disabled(){return e.disabled},onInput:d=>n(u,d),get onBlur(){return e.onBlur}})}),null),i})()}function Br(e){const r=()=>e.field.items??{type:"object",properties:{}},t=()=>Array.isArray(e.value)?e.value:[],n=d=>e.onInput(d),i=()=>n([...t(),{}]),a=d=>n(t().filter((h,m)=>m!==d)),u=(d,h,m)=>{const p=t().slice();p[d]={...p[d],[h]:m},n(p)};return(()=>{var d=gr(),h=d.firstChild;return o(h,()=>e.label),o(d,l(me,{get each(){return t()},children:(m,p)=>(()=>{var g=mr(),j=g.firstChild,k=j.firstChild;return k.firstChild,o(k,p+1,null),o(j,l(E,{type:"button",size:"icon-sm",variant:"ghost","aria-label":`Remove row ${p+1}`,get disabled(){return e.disabled},onClick:()=>a(p),children:"\u2715"}),null),o(g,l(C,{get each(){return Object.keys(r().properties??{})},children:$=>l(F,{fieldKey:$,get field(){return r().properties[$]},get required(){return(r().required??[]).includes($)},get inlineMax(){return e.inlineMax},value:()=>{var B;return(B=m())==null?void 0:B[$]},error:()=>{},get disabled(){return e.disabled},onInput:B=>u(p,$,B),get onBlur(){return e.onBlur}})}),null),g})()}),null),o(d,l(E,{type:"button",variant:"outline",size:"sm",get disabled(){return e.disabled},onClick:i,children:"Add item"}),null),d})()}function qr(e){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(e):e.replace(/["\\]/g,"\\$&")}fe("kai-form",{data:void 0,cardId:void 0,heading:void 0,resolution:void 0},(e,{element:r})=>l(Ir,{get data(){return e.data},get cardId(){return e.cardId??(r.id||"kai-form")},get heading(){return e.heading},get resolution(){return e.resolution},hostElement:r}));
@@ -0,0 +1 @@
1
+ import{s as f,a as p,b as h,p as w,c as v,h as m,j as c,g as s,k as b,S as T,t as g,q as k}from"./chunks/cn-Dogu6PbV.js";var L=g("<img role=img>"),R=g("<div role=img>");function U(r,t){if(r&&t)return`data:${t};base64,${r}`}function j(r){const[t,A]=f(r,["base64","uint8Array","mediaType","class","alt"]),[y,o]=p(void 0),d=()=>t.mediaType??"image/png";h(()=>{const e=t.uint8Array,a=d();if(e&&a){const n=new Blob([e],{type:a}),i=URL.createObjectURL(n);o(i),w(()=>URL.revokeObjectURL(i))}else o(void 0)});const l=()=>U(t.base64,d())??y();return v(T,{get when(){return l()},get fallback(){return(()=>{var e=R();return m(a=>{var n=t.alt,i=c("h-auto max-w-full animate-pulse overflow-hidden rounded-md bg-muted",t.class);return n!==a.e&&s(e,"aria-label",a.e=n),i!==a.t&&b(e,a.t=i),a},{e:void 0,t:void 0}),e})()},get children(){var e=L();return m(a=>{var n=l(),i=t.alt,u=c("h-auto max-w-full overflow-hidden rounded-md",t.class);return n!==a.e&&s(e,"src",a.e=n),i!==a.t&&s(e,"alt",a.t=i),u!==a.a&&b(e,a.a=u),a},{e:void 0,t:void 0,a:void 0}),e}})}k("kai-image",{base64:void 0,bytes:void 0,alt:"",mediaType:void 0},r=>v(j,{get alt(){return r.alt??""},get base64(){return r.base64},get uint8Array(){return r.bytes},get mediaType(){return r.mediaType}}));
@@ -0,0 +1 @@
1
+ import{d as N,s as O,a as w,e as v,l as B,b as E,o as C,c as i,i as l,S as g,h as b,g as h,j as L,k as j,t as c,q as F}from"./chunks/cn-Dogu6PbV.js";import{l as z}from"./chunks/link-BlGSeoPy.js";import{e as G}from"./chunks/card-routing-C986KuUA.js";function H(t){try{return new URL(t).hostname.replace(/^www\./,"")}catch{return}}const J=["http:","https:"];function K(t){try{return J.includes(new URL(t).protocol)}catch{return!1}}var M=c('<div class="aspect-[16/9] w-full animate-pulse bg-muted">'),P=c('<div class="space-y-2 p-3"><div class="h-3 w-1/3 animate-pulse rounded bg-muted"></div><div class="h-4 w-2/3 animate-pulse rounded bg-muted"></div><div class="h-3 w-full animate-pulse rounded bg-muted">'),Q=c('<img role=img class="aspect-[16/9] w-full object-cover">'),T=c('<img alt class="h-3.5 w-3.5 shrink-0 rounded-sm">'),V=c('<div class="line-clamp-3 text-xs text-muted-foreground">'),W=c('<div class="space-y-1 p-3"><div class="flex items-center gap-1.5 text-xs text-muted-foreground"><span class=truncate></span></div><div class="line-clamp-2 text-sm font-semibold text-foreground">'),X=c('<a rel="noopener noreferrer">'),Y=c('<div role=img aria-label="Invalid link"><span class=truncate>Invalid link');function Z(t){return!!(t.title||t.description||t.image)}function _(t){const[a]=O(t,["cardId","data","onEmit","class"]),m=e=>{var r;return(r=a.onEmit)==null?void 0:r.call(a,e)},[D,ee]=w(),[x,re]=w(!1),[R,I]=w(!1),u=()=>a.data.url,f=v(()=>K(u())),d=v(()=>({...a.data,...D()}));B(()=>m({kind:"ready",cardId:a.cardId})),E(C(f,e=>{e||m({kind:"error",cardId:a.cardId,message:`Invalid link url: ${u()}`})})),E(C(()=>[a.data,f()],([e,r])=>{I(!1),!r||Z(e)}));const k=v(()=>d().domain??H(u())??u()),S=v(()=>d().siteName??k()),y=v(()=>d().title??k()),U=v(()=>!!d().image&&!R()),$=()=>{f()&&m({kind:"open",cardId:a.cardId,url:u(),target:"tab"})},q=e=>{e.preventDefault(),$()},A=e=>{(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),$())};return i(g,{get when(){return f()},get fallback(){return(()=>{var e=Y(),r=e.firstChild;return l(e,i(z,{size:16,"aria-hidden":"true"}),r),b(()=>j(e,L("flex items-center gap-2 rounded-xl border border-destructive/40 bg-destructive/10 px-3 py-2 text-sm text-destructive dark:border-red-400/50 dark:bg-destructive/20 dark:text-red-400",a.class))),e})()},get children(){var e=X();return e.$$keydown=A,e.$$click=q,l(e,i(g,{get when(){return x()},get children(){return[M(),P()]}}),null),l(e,i(g,{get when(){return!x()},get children(){return[i(g,{get when(){return U()},get children(){var r=Q();return r.addEventListener("error",()=>I(!0)),b(n=>{var s=d().image,o=d().imageAlt??"";return s!==n.e&&h(r,"src",n.e=s),o!==n.t&&h(r,"alt",n.t=o),n},{e:void 0,t:void 0}),r}}),(()=>{var r=W(),n=r.firstChild,s=n.firstChild,o=n.nextSibling;return l(n,i(g,{get when(){return d().favicon},get fallback(){return i(z,{size:12,class:"shrink-0 opacity-70","aria-hidden":"true"})},get children(){var p=T();return b(()=>h(p,"src",d().favicon)),p}}),s),l(s,S),l(o,y),l(r,i(g,{get when(){return d().description},get children(){var p=V();return l(p,()=>d().description),p}}),null),r})()]}}),null),b(r=>{var n=u(),s=`Open ${y()} on ${k()}`,o=L("group block overflow-hidden rounded-xl border border-border bg-card text-card-foreground no-underline outline-none transition-shadow","cursor-pointer hover:shadow-md focus-visible:ring-2 focus-visible:ring-ring",a.class);return n!==r.e&&h(e,"href",r.e=n),s!==r.t&&h(e,"aria-label",r.t=s),o!==r.a&&j(e,r.a=o),r},{e:void 0,t:void 0,a:void 0}),e}})}N(["click","keydown"]),F("kai-link-preview",{cardId:void 0,data:void 0},(t,{element:a})=>i(_,{get cardId(){return t.cardId??""},get data(){return t.data??{url:""}},onEmit:m=>G(a,m)}));
@@ -0,0 +1 @@
1
+ import{q as r,c as a}from"./chunks/cn-Dogu6PbV.js";import{L as e}from"./chunks/loader-DvhR4qa0.js";r("kai-loader",{variant:"circular",size:"md",text:void 0},t=>a(e,{get variant(){return t.variant},get size(){return t.size},get text(){return t.text}}));
@@ -0,0 +1 @@
1
+ import{q as n,x as i,c as t,C as g}from"./chunks/cn-Dogu6PbV.js";import{M as a}from"./chunks/markdown-CMTGx9r8.js";n("kai-markdown",{content:"",proseSize:"sm",codeTheme:"github-dark-dimmed",codeHighlight:!0},(e,{flag:r})=>{const o=i();return t(g,{get proseSize(){return e.proseSize},get codeTheme(){return e.codeTheme},get codeHighlight(){return r("codeHighlight")},get portalMount(){return o.portalMount()},get children(){return t(a,{get content(){return e.content}})}})});
@@ -1,17 +1 @@
1
- interface Skill {
2
- /** Stable identifier for the skill. */
3
- id: string;
4
- /** Human-readable skill name shown on the badge. */
5
- name: string;
6
- }
7
- /**
8
- * Parse a single light-DOM `<kai-skill>` element into a `Skill` descriptor.
9
- *
10
- * Attribute / content mapping:
11
- * - `id` → Skill.id (falls back to `name` when absent)
12
- * - `textContent` → Skill.name (the human-readable badge label)
13
- *
14
- * Example: `<kai-skill id="web-search">Web Search</kai-skill>`
15
- */
16
- export declare function parseKaiSkillElement(n: Element): Skill;
17
1
  export {};
@@ -0,0 +1 @@
1
+ import{c as r,i as a,F as k,h as m,k as p,j as v,S as x,t as o,q as g,a as f,l as h,p as b}from"./chunks/cn-Dogu6PbV.js";var w=o("<div>"),S=o('<span class="inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-medium bg-violet-400/10 text-violet-600 dark:text-violet-400">');function q(t){return r(x,{get when(){return t.skills.length>0},get children(){var e=w();return a(e,r(k,{get each(){return t.skills},children:s=>(()=>{var n=S();return a(n,()=>s.name),n})()})),m(()=>p(e,v("flex items-center gap-1 flex-wrap",t.class))),e}})}function c(t){var e;const s=((e=t.textContent)==null?void 0:e.trim())??"";return{id:t.getAttribute("id")??s,name:s}}g("kai-skills",{skills:[]},(t,{element:e})=>{const[s,n]=f([]);h(()=>{const l=()=>{const d=[...e.querySelectorAll("kai-skill")];n(d.map(c))};l();const i=new MutationObserver(l);i.observe(e,{childList:!0,attributes:!0,subtree:!0}),b(()=>i.disconnect())});const u=()=>[...t.skills??[],...s()];return r(q,{get skills(){return u()}})});export{c as parseKaiSkillElement};
@@ -0,0 +1 @@
1
+ import{q as F,x as M,a as y,l as z,p as C,c as o,S as H,i as R,h as T,k as $,C as q,t as L}from"./chunks/cn-Dogu6PbV.js";import{a as v,b as U,M as B}from"./chunks/message-CDZwXjhL.js";import{c as E}from"./chunks/message-feedback-CYx81QiA.js";var G=L("<div>");F("kai-message",{message:void 0,role:"assistant",content:void 0,markdown:void 0,proseSize:"sm",codeTheme:"github-dark-dimmed",codeHighlight:!0,actionsReveal:"always",avatarSrc:void 0,avatarFallback:void 0},(t,{dispatch:h,flag:l,element:i})=>{const b=M(),e=()=>t.message??{id:"message",role:t.role??"assistant",content:t.content??""},c=E({emit:a=>h("kai-message-action",a),target:()=>i}),[k,p]=y([]);z(()=>{const a=()=>{const x=[...i.querySelectorAll("kai-action")];p(x.map(r=>{var m;return{id:r.id||r.getAttribute("action")||"",label:((m=r.textContent)==null?void 0:m.trim())||r.getAttribute("label")||r.id||"",icon:r.getAttribute("icon")??void 0,tooltip:r.getAttribute("tooltip")??void 0}}))};a();const n=new MutationObserver(a);n.observe(i,{childList:!0,attributes:!0,subtree:!0}),C(()=>n.disconnect())});const s=()=>e().role==="user",f=()=>e().avatar??(t.avatarSrc||t.avatarFallback?{src:t.avatarSrc,fallback:t.avatarFallback}:void 0),g=()=>t.actionsReveal==="hover"?"hover":"always",w=()=>i.hasAttribute("markdown")||t.markdown===!0||t.markdown===!1,A=()=>w()?l("markdown"):!s(),S=()=>[...e().actions??[],...k()],d=()=>o(B,{get content(){return e().content},get reasoning(){return e().reasoning},get tools(){return e().tools},get attachments(){return e().attachments},get isUser(){return s()},get markdown(){return A()},get actions(){return S()},get actionsReveal(){return g()},get activeFeedback(){return c.resolveFeedback(e())},get copied(){return c.isCopied(e().id)},onAction:a=>c.handleAction(e(),a)}),u=()=>g()==="hover"?"group ":"";return o(q,{get proseSize(){return t.proseSize},get codeTheme(){return t.codeTheme},get codeHighlight(){return l("codeHighlight")},get portalMount(){return b.portalMount()},get children(){return o(H,{get when(){return f()},get fallback(){return o(v,{get class(){return`${u()}${s()?"flex-col items-end":"flex-col items-start"}`},get children(){return d()}})},children:a=>o(v,{get class(){return u()},get children(){return[o(U,{get src(){return a().src??""},get alt(){return a().alt??""},get fallback(){return a().fallback}}),(()=>{var n=G();return R(n,d),T(()=>$(n,`flex min-w-0 flex-1 flex-col ${s()?"items-end":"items-start"}`)),n})()]}})})}})});
@@ -1,11 +1 @@
1
- import { ModelOption } from '../types';
2
- /**
3
- * Parse a single light-DOM `<kai-model>` element into a `ModelOption` descriptor.
4
- * Attribute mapping:
5
- * - `id` → ModelOption.id
6
- * - textContent → ModelOption.name
7
- * - `provider` → ModelOption.provider (optional)
8
- * - `description` → ModelOption.description (optional subtitle)
9
- * - `group` → ModelOption.group (optional collapsible section)
10
- */
11
- export declare function parseKaiModelElement(n: Element): ModelOption;
1
+ export {};
@@ -0,0 +1 @@
1
+ import{q as u,a as c,l as m,p,c as v}from"./chunks/cn-Dogu6PbV.js";import{M as g}from"./chunks/model-switcher-O_tUhoOT.js";function n(t){var o;return{id:t.getAttribute("id")??"",name:((o=t.textContent)==null?void 0:o.trim())??"",provider:t.getAttribute("provider")??void 0,description:t.getAttribute("description")??void 0,group:t.getAttribute("group")??void 0}}u("kai-model-switcher",{models:[],currentModel:void 0},(t,{dispatch:o,element:r})=>{const[s,l]=c([]);m(()=>{const e=()=>{const a=[...r.querySelectorAll("kai-model")];l(a.map(n))};e();const d=new MutationObserver(e);d.observe(r,{childList:!0,attributes:!0,subtree:!0}),p(()=>d.disconnect())});const i=()=>[...t.models??[],...s()];return v(g,{get models(){return i()},get currentModelId(){var e;return t.currentModel??((e=i()[0])==null?void 0:e.id)??""},onModelChange:e=>o("kai-model-change",{modelId:e})})});export{n as parseKaiModelElement};
@@ -0,0 +1 @@
1
+ import{d as A,a as u,u as $,i as w,c as z,h as D,j as R,g as O,A as i,k as S,S as q,t as s,q as B,r as C}from"./chunks/cn-Dogu6PbV.js";import{c as E,u as F,a as G}from"./chunks/overlay-DydXYMQW.js";var H=s("<span style=display:inline-flex>"),I=s("<div role=dialog style=position:fixed>");function N(t){const[d,l]=u(t.defaultOpen??!1),[o,_]=u(),[v,j]=u(),c=()=>t.open!==void 0,p=()=>c()?!!t.open:d(),g=e=>{var a;c()||l(e),(a=t.onOpenChange)==null||a.call(t,e)},r=E(p),n=F(o,v,{placement:t.placement??"bottom-start",gutter:t.gutter??6});return G({enabled:p,onDismiss:()=>g(!1),refs:()=>{var e;return[o(),v(),(e=t.boundary)==null?void 0:e.call(t)]}}),[(()=>{var e=H();return e.$$click=()=>g(!p()),$(_,e),w(e,()=>t.trigger),e})(),z(q,{get when(){return r.present()},get children(){var e=I();return $(a=>{j(a),r.setRef(a)},e),w(e,()=>t.children),D(a=>{var m=r.state()==="open"?"":void 0,h=r.state()==="closed"?"":void 0,f=`${n.pos().x}px`,b=`${n.pos().y}px`,x=n.hidden()?"hidden":"visible",y=n.hidden()?"none":void 0,k=R("z-50 min-w-[12rem] rounded-lg bg-card p-1 text-sm kai-elevation","animate-in fade-in-0 zoom-in-95 data-[closed]:animate-out data-[closed]:fade-out-0 data-[closed]:zoom-out-95",t.class);return m!==a.e&&O(e,"data-expanded",a.e=m),h!==a.t&&O(e,"data-closed",a.t=h),f!==a.a&&i(e,"left",a.a=f),b!==a.o&&i(e,"top",a.o=b),x!==a.i&&i(e,"visibility",a.i=x),y!==a.n&&i(e,"pointer-events",a.n=y),k!==a.s&&S(e,a.s=k),a},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),e}})]}A(["click"]);var P=s("<slot>"),T=s("<slot name=trigger>");B("kai-popover",{placement:"bottom-start",gutter:6,open:void 0},(t,{dispatch:d,element:l})=>z(N,{get trigger(){return(()=>{var o=T();return o._$owner=C(),o})()},get placement(){return t.placement},get gutter(){return t.gutter},get open(){return t.open},boundary:()=>l,onOpenChange:o=>d("kai-open-change",{open:o}),get children(){var o=P();return o._$owner=C(),o}}));
@@ -1,9 +1 @@
1
- import { SlashCommandItem } from '../components/slash-command';
2
- /** Parse a single light-DOM `<kai-slash-command>` element into a SlashCommandItem.
3
- * Attribute mapping:
4
- * - `command` → SlashCommandItem.id (required; empty string fallback)
5
- * - textContent → SlashCommandItem.label (primary); `label` attr as fallback
6
- * - `description` → SlashCommandItem.description
7
- * - `category` → SlashCommandItem.category
8
- */
9
- export declare function parseKaiSlashCommandElement(n: Element): SlashCommandItem;
1
+ export {};
@@ -0,0 +1 @@
1
+ import{q as I,a as n,b as M,l as V,p as w,c as D,n as E}from"./chunks/cn-Dogu6PbV.js";import{D as K}from"./chunks/default-input-CSAoYYMd.js";function b(t){var e;return{id:t.getAttribute("command")??"",label:((e=t.textContent)==null?void 0:e.trim())||t.getAttribute("label")||t.getAttribute("command")||"",description:t.getAttribute("description")??void 0,category:t.getAttribute("category")??void 0}}I("kai-prompt-input",{value:void 0,placeholder:"Send a message...",disabled:!1,loading:!1,suggestions:void 0,suggestionMode:"submit",slashCommands:void 0,slashActiveIds:void 0,slashCompact:!1,search:!1,voice:!1,stoppable:!1,attachments:void 0},(t,{dispatch:e,flag:s,element:r})=>{const[p,A]=n(t.value??""),[l,o]=n(t.attachments??[]);M(()=>{t.attachments&&o(t.attachments)});const[k,C]=n([]),[S,f]=n([]);V(()=>{const a=()=>{const c=[...r.querySelectorAll("kai-action")];C(c.map(i=>{var v;return{id:i.id||i.getAttribute("action")||"",label:((v=i.textContent)==null?void 0:v.trim())||i.getAttribute("label")||i.id||"",icon:i.getAttribute("icon")??void 0,tooltip:i.getAttribute("tooltip")??void 0}}))},x=()=>{const c=[...r.querySelectorAll("kai-slash-command")];f(c.map(b))},m=()=>{a(),x()};m();const h=new MutationObserver(m);h.observe(r,{childList:!0,attributes:!0,subtree:!0}),w(()=>h.disconnect())});const u=()=>t.value??p(),d=a=>{A(a),e("kai-value-change",{value:a})},y=()=>{e("kai-submit",{value:u(),attachments:l()}),o([])},q=a=>{(t.suggestionMode??"submit")==="fill"?(d(a),e("kai-suggestion-click",{value:a})):(e("kai-submit",{value:a,attachments:l()}),o([]))},g=()=>[...t.slashCommands??[],...S()];return D(K,{get value(){return u()},get placeholder(){return t.placeholder},get disabled(){return s("disabled")},get loading(){return s("loading")},get stoppable(){return s("stoppable")},get suggestions(){return t.suggestions},get attachments(){return l()},get slashCommands(){return E(()=>!!g().length)()?g():void 0},get slashActiveIds(){return t.slashActiveIds},get slashCompact(){return s("slashCompact")},get search(){return s("search")},get voice(){return s("voice")},get toolbarActions(){return k()},onValueChange:d,onSubmit:y,onSuggestionClick:q,onAttachmentsChange:o,onSearch:()=>e("kai-search"),onVoice:()=>e("kai-voice"),onStop:()=>e("kai-stop"),onSlashSelect:a=>e("kai-slash-select",{command:a}),onAction:a=>e("kai-toolbar-action",{action:a})})});export{b as parseKaiSlashCommandElement};
@@ -1,7 +1 @@
1
- type Item = string | {
2
- label: string;
3
- value?: string;
4
- };
5
- /** Parse a single `<kai-suggestion>` node into an `Item` descriptor. */
6
- export declare function parseSuggestionNode(n: Element): Item;
7
1
  export {};
@@ -0,0 +1 @@
1
+ import{q as v,a as h,l as b,p,i as d,c as n,F as f,h as k,k as m,t as x}from"./chunks/cn-Dogu6PbV.js";import{P as y}from"./chunks/prompt-suggestion-ldlWV5kd.js";var z=x("<div>");const C=t=>typeof t=="string"?t:t.label,S=t=>typeof t=="string"?t:t.value??t.label;function l(t){var a;const s=((a=t.textContent)==null?void 0:a.trim())??"",i=t.getAttribute("value")??s;return{label:s,value:i}}v("kai-suggestions",{suggestions:[],variant:"outline",size:void 0,block:!1,highlight:void 0},(t,{dispatch:a,flag:s,element:i})=>{const[o,g]=h([]);b(()=>{const e=()=>{const c=[...i.querySelectorAll("kai-suggestion")];g(c.map(l))};e();const r=new MutationObserver(e);r.observe(i,{childList:!0,attributes:!0,subtree:!0}),p(()=>r.disconnect())});const u=()=>[...t.suggestions??[],...o()];return(()=>{var e=z();return d(e,n(f,{get each(){return u()},children:r=>n(y,{get variant(){return t.variant},get size(){return t.size},get block(){return s("block")},get highlight(){return t.highlight},onClick:()=>a("kai-select",{value:S(r)}),get children(){return C(r)}})})),k(()=>m(e,s("block")?"flex flex-col gap-2":"flex flex-wrap gap-2")),e})()});export{l as parseSuggestionNode};
@@ -0,0 +1 @@
1
+ import{q as g,x as i,c as e,C as s}from"./chunks/cn-Dogu6PbV.js";import{R as l,a as u,b as m}from"./chunks/reasoning-2PUnHlmr.js";g("kai-reasoning",{text:"",label:"Reasoning",open:void 0,streaming:!1,markdown:!0},(r,{dispatch:t,flag:n})=>{const a=i();return e(s,{get portalMount(){return a.portalMount()},get children(){return e(l,{get open(){return r.open},get isStreaming(){return n("streaming")},onOpenChange:o=>t("kai-open-change",{open:o}),get children(){return[e(u,{get children(){return r.label}}),e(m,{get markdown(){return n("markdown")},get children(){return r.text}})]}})}})});
@@ -1,17 +1 @@
1
- /** Bubbling, composed intent: a descendant asks the nearest enclosing
2
- * <kai-resizable> to maximize the item containing it (filling, hiding siblings)
3
- * or to restore. Any panel content may emit it — the protocol is zero-config. */
4
- export interface KaiMaximizeIntentDetail {
5
- /** true = maximize the item containing me; false = restore. */
6
- requested: boolean;
7
- }
8
- /** Composed, non-bubbling notification the group dispatches DOWN onto the
9
- * affected <kai-resizable-item> (on maximize) or the group host + the formerly
10
- * maximized item (on restore) so descendant content can sync its affordance. */
11
- export interface KaiMaximizeStateDetail {
12
- /** Whether THIS subtree's item is the maximized one. */
13
- maximized: boolean;
14
- }
15
- /** Event type names for the cross-element maximize protocol. */
16
- export declare const KAI_MAXIMIZE_INTENT: "kai-maximize-intent";
17
- export declare const KAI_MAXIMIZE_STATE: "kai-maximize-state";
1
+ export {};
@@ -0,0 +1 @@
1
+ import{q as K,a as W,l as V,p as Y,b as ee,o as te,i as ie,c as N,S as ne,r as X,h as Z,g as c,G as re,F as ae,A as se,t as z}from"./chunks/cn-Dogu6PbV.js";import{n as de,b as oe}from"./chunks/resizable-B5WNbSeb.js";var le=z("<style>:host{display:block;height:100%}"),ue=z("<div data-resizable-root style=display:flex;width:100%;height:100%>"),me=z('<div data-panel style="display:grid;grid-template-rows:minmax(0, 1fr);grid-template-columns:minmax(0, 1fr);min-width:0;min-height:0;overflow:hidden"><slot>'),ce=z("<style>:host{display:block;width:100%;height:100%;min-width:0;min-height:0;overflow:auto}"),he=z('<div style="display:grid;grid-template-rows:minmax(0, 1fr);grid-template-columns:minmax(0, 1fr);width:100%;height:100%;min-width:0;min-height:0"><slot>');const fe="kai-maximize-intent",ve="kai-maximize-state",E=3;function $(m){if(m===void 0||m==="")return{};const s=m.trim();return s.endsWith("px")?{pxAttr:String(parseFloat(s))}:s.endsWith("%")?{pctAttr:String(parseFloat(s))}:Number.isFinite(Number(s))?{pctAttr:s}:{}}K("kai-resizable",{orientation:"horizontal",maximizedIndex:null},(m,{element:s,dispatch:y})=>{const[f,G]=W([]),g=()=>m.orientation==="vertical"?"vertical":"horizontal";function p(){const e=Array.from(s.children).filter(t=>t.tagName.toLowerCase()==="kai-resizable-item");e.length>E&&console.warn(`<kai-resizable>: only the first ${E} <kai-resizable-item> children are laid out (got ${e.length}). Nest <kai-resizable> for more.`);const i=e.slice(0,E).map(t=>{t.hasAttribute("data-kai-default-size")||t.setAttribute("data-kai-default-size",t.getAttribute("size")??"");const r=t.getAttribute("data-kai-default-size")||void 0;return{el:t,size:t.getAttribute("size")??void 0,defaultSize:r,min:t.getAttribute("min")??void 0,max:t.getAttribute("max")??void 0,locked:t.hasAttribute("locked")&&t.getAttribute("locked")!=="false",hidden:t.hidden||t.hasAttribute("hidden")&&t.getAttribute("hidden")!=="false"}});let n=0;for(const t of i)t.hidden?t.el.removeAttribute("slot"):(t.el.setAttribute("slot",`p${n}`),n++);for(const t of e.slice(E))t.removeAttribute("slot");O(f(),i)&&G(i)}function O(e,i){if(e.length!==i.length)return!0;for(let n=0;n<e.length;n++){const t=e[n],r=i[n];if(t.el!==r.el||t.size!==r.size||t.min!==r.min||t.max!==r.max||t.locked!==r.locked||t.hidden!==r.hidden)return!0}return!1}const x=()=>f().filter(e=>!e.hidden);function M(){return x().map(e=>{var i;const n=((i=e.el.assignedSlot)==null?void 0:i.closest("[data-panel]"))??e.el,t=n.parentElement,r=g()==="horizontal"?"width":"height",a=t?t.getBoundingClientRect()[r]:0,o=n.getBoundingClientRect()[r];return a>0?Math.round(o/a*100):0})}function k(){y("kai-change",{sizes:M()})}let C=!1;function j(){const e=x(),i=M();e.length===i.length&&(C=!0,e.forEach((n,t)=>{const r=i[t];Number.isFinite(r)&&r>0&&n.el.setAttribute("size",`${r}%`)}),queueMicrotask(()=>{C=!1}))}const[A,q]=W(null);let b=!1;function D(e){let i=e instanceof Element?e:e?.parentElement??null;const n=f().map(t=>t.el);for(;i;){if(i instanceof HTMLElement&&n.includes(i))return i;i=i.parentElement??i.getRootNode().host??null}return null}function J(e){return{size:e.getAttribute("size"),hidden:e.hidden||e.hasAttribute("hidden")&&e.getAttribute("hidden")!=="false",locked:e.hasAttribute("locked")&&e.getAttribute("locked")!=="false"}}function w(e,i,n){n?e.setAttribute(i,""):e.removeAttribute(i)}function I(e){const i=f(),n=i.findIndex(u=>u.el===e);if(n<0)return;const t=A();if(t){if(t.item===e)return;v()}b=!0;const r=M();let a=0;const o=i.map(u=>{const h=J(u.el);if(!h.hidden){const l=r[a++];Number.isFinite(l)&&l>0&&u.el.setAttribute("size",`${l}%`)}return{el:u.el,size:u.el.getAttribute("size"),hidden:h.hidden,locked:h.locked}});i.forEach((u,h)=>{h===n?(u.el.removeAttribute("size"),u.el.removeAttribute("locked"),w(u.el,"hidden",!1)):w(u.el,"hidden",!0)}),q({item:e,saved:o}),s.setAttribute("data-maximized",""),e.setAttribute("data-maximized-panel",""),p(),k(),queueMicrotask(()=>{b=!1}),e.dispatchEvent(new CustomEvent("kai-maximize-state",{detail:{maximized:!0},bubbles:!1,composed:!0})),y("kai-maximize-change",{maximized:!0,index:n})}function v(){const e=A();if(!e)return;b=!0;for(const n of e.saved)n.el.isConnected&&(n.size===null?n.el.removeAttribute("size"):n.el.setAttribute("size",n.size),w(n.el,"hidden",n.hidden),w(n.el,"locked",n.locked),n.el.removeAttribute("data-maximized-panel"));const i=e.item;q(null),s.removeAttribute("data-maximized"),p(),k(),queueMicrotask(()=>{b=!1}),s.dispatchEvent(new CustomEvent("kai-maximize-state",{detail:{maximized:!1},bubbles:!1,composed:!0})),i?.dispatchEvent(new CustomEvent("kai-maximize-state",{detail:{maximized:!1},bubbles:!1,composed:!0})),y("kai-maximize-change",{maximized:!1,index:null})}V(()=>{p();const e=r=>{const a=r;r.stopPropagation();const o=D(a.target);o&&(a.detail.requested?I(o):v())};s.addEventListener("kai-maximize-intent",e);const i=r=>{r.key!=="Escape"||!A()||(r.stopPropagation(),v())};s.addEventListener("keydown",i,!0);const n=new MutationObserver(()=>{if(C)return;p();const r=A();if(r){const a=r.item,o=a.isConnected&&s.contains(a),u=o&&!(a.hidden||a.hasAttribute("hidden"));if(!o||!u){v();return}}b||queueMicrotask(k)});n.observe(s,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["size","locked","min","max","hidden"]}),Y(()=>{n.disconnect(),s.removeEventListener("kai-maximize-intent",e),s.removeEventListener("keydown",i,!0)});const t=s;t.maximize=r=>{var a;const o=(a=f()[r])==null?void 0:a.el;o&&I(o)},t.restore=()=>v(),ee(te(()=>m.maximizedIndex,r=>{var a;if(r==null)v();else{const o=(a=f()[r])==null?void 0:a.el;o&&I(o)}},{defer:!0}))});const Q=()=>g()==="horizontal";return[le(),(()=>{var e=ue();return ie(e,N(ae,{get each(){return x()},children:(i,n)=>{const t=$(i.min),r=$(i.max),a=$(i.defaultSize),o=de(i.size),u=()=>x()[n()-1],h=()=>{var l;return!!(i.locked||(l=u())!=null&&l.locked)};return[N(ne,{get when(){return n()>0},get children(){return N(oe,{withHandle:!0,get orientation(){return g()},get static(){return h()},onPanelResize:()=>{j(),queueMicrotask(k)}})}}),(()=>{var l=me(),F=l.firstChild;return F._$owner=X(),Z(d=>{var L=i.locked?"":void 0,S=t.pxAttr,_=t.pctAttr,T=r.pxAttr,R=r.pctAttr,P=a.pxAttr,B=a.pctAttr,U={...o!==void 0?{"flex-basis":o,"flex-grow":"0","flex-shrink":"0"}:{flex:"1 1 0%"}},H=`p${n()}`;return L!==d.e&&c(l,"data-locked",d.e=L),S!==d.t&&c(l,"data-min-size",d.t=S),_!==d.a&&c(l,"data-min-size-pct",d.a=_),T!==d.o&&c(l,"data-max-size",d.o=T),R!==d.i&&c(l,"data-max-size-pct",d.i=R),P!==d.n&&c(l,"data-default-size",d.n=P),B!==d.s&&c(l,"data-default-size-pct",d.s=B),d.h=re(l,U,d.h),H!==d.r&&c(F,"name",d.r=H),d},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),l})()]}})),Z(i=>{var n=g(),t=Q()?"row":"column";return n!==i.e&&c(e,"data-orientation",i.e=n),t!==i.t&&se(e,"flex-direction",i.t=t),i},{e:void 0,t:void 0}),e})()]}),K("kai-resizable-item",{size:void 0,min:void 0,max:void 0,locked:!1,hidden:!1},()=>[ce(),(()=>{var m=he(),s=m.firstChild;return s._$owner=X(),m})()]);export{fe as KAI_MAXIMIZE_INTENT,ve as KAI_MAXIMIZE_STATE};
@@ -0,0 +1,14 @@
1
+ import{a as M,p as A,s as B,b,o as D,i as v,c as C,F,h as I,j as E,k as z,A as G,n as H,S as J,t as x,q as K}from"./chunks/cn-Dogu6PbV.js";function L(t){const e=t.speed??20,y=t.characterChunkSize??3,[f,i]=M(""),[S,u]=M(!0),[a,n]=M([]);let s="",d=0,m,o=!1,r;function l(){m!==void 0&&(clearInterval(m),m=void 0)}function p(){if(!o){if(d>=s.length){r||(l(),u(!0));return}d=Math.min(d+y,s.length),i(s.slice(0,d))}}async function q(c){r=c[Symbol.asyncIterator]();try{for(;;){const{value:h,done:k}=await r.next();if(k)break;h&&(s+=h,n(g=>[...g,{text:h,index:g.length}]))}}finally{r=void 0}}function $(c){if(w(),u(!1),typeof c=="string")if(s=c,t.mode==="typewriter")m=setInterval(p,e);else{const h=c.split(/(\s+)/).filter(Boolean);n(h.map((k,g)=>({text:k,index:g}))),i(c)}else t.mode==="typewriter"&&(m=setInterval(p,e)),q(c).then(()=>{t.mode==="fade"&&(i(s),u(!0))})}function T(){o=!0}function j(){o=!1}function w(){l(),s="",d=0,o=!1,r=void 0,i(""),u(!0),n([])}return A(()=>l()),{displayedText:f,isComplete:S,segments:a,startStreaming:$,pause:T,resume:j,reset:w}}var N=x("<style>"),P=x("<div class=relative>"),R=x("<div>"),W=x("<span>");function _(t){const[e]=B(t,["textStream","mode","speed","class","onComplete","as","fadeDuration","segmentDelay","characterChunkSize"]),y=()=>e.mode??"typewriter",f=()=>e.speed??20,i=L({mode:y(),speed:f(),characterChunkSize:e.characterChunkSize,fadeDuration:e.fadeDuration});b(D(()=>e.textStream,a=>{a&&i.startStreaming(a)})),b(D(()=>i.isComplete(),a=>{var n;a&&((n=e.onComplete)==null||n.call(e))}));const S=()=>`
2
+ @keyframes fadeIn {
3
+ from { opacity: 0; }
4
+ to { opacity: 1; }
5
+ }
6
+ .fade-segment {
7
+ display: inline-block;
8
+ opacity: 0;
9
+ animation: fadeIn ${e.fadeDuration??Math.round(1e3/Math.sqrt(Math.min(100,Math.max(1,f()))))}ms ease-out forwards;
10
+ }
11
+ .fade-segment-space {
12
+ white-space: pre;
13
+ }
14
+ `,u=()=>{if(typeof e.segmentDelay=="number")return Math.max(0,e.segmentDelay);const a=Math.min(100,Math.max(1,f()));return Math.max(1,Math.round(100/Math.sqrt(a)))};return(()=>{var a=R();return v(a,C(J,{get when(){return y()==="fade"},get fallback(){return H(()=>i.displayedText())},get children(){return[(()=>{var n=N();return v(n,S),n})(),(()=>{var n=P();return v(n,C(F,{get each(){return i.segments()},children:(s,d)=>{const m=()=>/^\s+$/.test(s.text);return(()=>{var o=W();return v(o,()=>s.text),I(r=>{var l=E("fade-segment",m()&&"fade-segment-space"),p=`${d()*u()}ms`;return l!==r.e&&z(o,r.e=l),p!==r.t&&G(o,"animation-delay",r.t=p),r},{e:void 0,t:void 0}),o})()}})),n})()]}})),I(()=>z(a,e.class)),a})()}K("kai-response-stream",{text:"",mode:"typewriter",speed:20,as:void 0},(t,{dispatch:e})=>C(_,{get textStream(){return t.text??""},get mode(){return t.mode},get speed(){return t.speed},get as(){return t.as},class:"text-body",onComplete:()=>e("kai-complete")}));
@@ -0,0 +1 @@
1
+ import{q as h,a as v,l as g,p as E,c,j as y}from"./chunks/cn-Dogu6PbV.js";import{B as H}from"./chunks/button-CKyYD9G4.js";import{c as b}from"./chunks/chevron-down-3SBiq8HF.js";const w=50;function k(n){let t=n.parentElement;for(;t&&t!==document.documentElement;){const r=getComputedStyle(t),l=r.overflow+r.overflowY;if(/auto|scroll/.test(l)&&t.scrollHeight>t.clientHeight)return t;t=t.parentElement}return null}h("kai-scroll-button",{for:void 0,variant:"outline",size:"icon"},(n,{element:t,dispatch:r})=>{const[l,a]=v(!0);let o=null,i=[];function s(){if(!o)return;const{scrollTop:e,scrollHeight:p,clientHeight:d}=o;a(p-e-d<w)}function u(){o&&(o.scrollTo({top:o.scrollHeight,behavior:"smooth"}),a(!0))}function f(e){o=e,e.addEventListener("scroll",s,{passive:!0}),s(),i.push(()=>e.removeEventListener("scroll",s))}function m(){i.forEach(e=>e()),i=[],o=null}return g(()=>{const e=n.for?document.getElementById(n.for):k(t);e&&f(e)}),E(m),c(H,{get variant(){return n.variant??"outline"},get size(){return n.size??"icon"},"aria-label":"Scroll to bottom",get class(){return y("rounded-full transition-all duration-150 ease-out",l()?"pointer-events-none translate-y-4 scale-95 opacity-0":"translate-y-0 scale-100 opacity-100")},onClick:()=>{u(),r("kai-scroll")},get children(){return c(b,{class:"h-5 w-5"})}})});
@@ -1,18 +1 @@
1
- interface SourceItem {
2
- href: string;
3
- title?: string;
4
- description?: string;
5
- label?: string;
6
- showFavicon?: boolean;
7
- }
8
- /** Parse a single light-DOM `<kai-source>` element into a `SourceItem` descriptor.
9
- * Attribute mapping:
10
- * - `href` → SourceItem.href
11
- * - `label` → SourceItem.label
12
- * - `headline` → SourceItem.title (matches kai-source's prop name; "title" is a
13
- * reserved HTMLElement attribute so kai-source uses "headline")
14
- * - `description` → SourceItem.description
15
- * - `show-favicon`→ SourceItem.showFavicon (bare boolean attribute)
16
- */
17
- export declare function parseKaiSourceElement(n: Element): SourceItem;
18
1
  export {};
@@ -0,0 +1 @@
1
+ import{c as t,i as u,S as m,h,g as f,j as v,k as w,v as C,w as z,t as g,q as b,a as _,l as R,p as U,F as q,n as E}from"./chunks/cn-Dogu6PbV.js";import{a as I,b as L,c as $}from"./chunks/hover-card-CIGw62gP.js";var j=g('<img alt=favicon width=14 height=14 class="size-3.5 rounded-full">'),M=g('<a target=_blank rel="noopener noreferrer"><span class="truncate tabular-nums text-center font-normal">'),D=g('<a target=_blank rel="noopener noreferrer"class="flex flex-col gap-2 p-3"><div class="flex items-center gap-1.5"><img alt=favicon class="size-4 rounded-full"width=16 height=16><div class="text-primary truncate text-sm"></div></div><div class="line-clamp-2 text-sm font-medium"></div><div class="text-muted-foreground line-clamp-2 text-sm">'),H=g("<div>");const x=C();function F(){const e=z(x);if(!e)throw new Error("Source.* must be used inside <Source>");return e}function S(e){const r=()=>{try{return new URL(e.href).hostname}catch{return e.href.split("/").pop()||e.href}};return t(x.Provider,{value:{get href(){return e.href},get domain(){return r()}},get children(){return t(I,{openDelay:150,get children(){return e.children}})}})}function k(e){const r=F(),a=()=>e.label??r.domain.replace("www.","");return t(L,{get children(){var o=M(),l=o.firstChild;return u(o,t(m,{get when(){return e.showFavicon},get children(){var i=j();return h(()=>f(i,"src",`https://www.google.com/s2/favicons?sz=64&domain_url=${encodeURIComponent(r.href)}`)),i}}),l),u(l,a),h(i=>{var c=r.href,n=v("bg-muted text-foreground/80 hover:bg-muted-foreground/30 hover:text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background inline-flex h-5 max-w-32 items-center gap-1 overflow-hidden rounded-full py-0 text-xs no-underline transition-colors duration-150",e.showFavicon?"pr-2 pl-1":"px-2",e.class);return c!==i.e&&f(o,"href",i.e=c),n!==i.t&&w(o,i.t=n),i},{e:void 0,t:void 0}),o}})}function A(e){const r=F();return t($,{get class(){return v("w-80 p-0 shadow-xs",e.class)},get children(){var a=D(),o=a.firstChild,l=o.firstChild,i=l.nextSibling,c=o.nextSibling,n=c.nextSibling;return u(i,()=>r.domain.replace("www.","")),u(c,()=>e.title),u(n,()=>e.description),h(s=>{var d=r.href,p=`https://www.google.com/s2/favicons?sz=64&domain_url=${encodeURIComponent(r.href)}`;return d!==s.e&&f(a,"href",s.e=d),p!==s.t&&f(l,"src",s.t=p),s},{e:void 0,t:void 0}),a}})}function K(e){return(()=>{var r=H();return u(r,()=>e.children),h(()=>w(r,v("flex flex-wrap gap-1.5 mt-3",e.class))),r})()}b("kai-source",{href:"",label:void 0,headline:"",description:"",showFavicon:!1},(e,{flag:r})=>t(m,{get when(){return e.href},get children(){return t(S,{get href(){return e.href},get children(){return[t(k,{get label(){return e.label},get showFavicon(){return r("showFavicon")}}),t(A,{get title(){return e.headline??""},get description(){return e.description??""}})]}})}}));function y(e){return{href:e.getAttribute("href")??"",label:e.getAttribute("label")??void 0,title:e.getAttribute("headline")??void 0,description:e.getAttribute("description")??void 0,showFavicon:e.hasAttribute("show-favicon")&&e.getAttribute("show-favicon")!=="false"}}b("kai-sources",{sources:[],showFavicon:!1,numbered:!1},(e,{element:r,flag:a})=>{const[o,l]=_([]);R(()=>{const n=()=>{const d=[...r.querySelectorAll("kai-source")];l(d.map(y))};n();const s=new MutationObserver(n);s.observe(r,{childList:!0,attributes:!0,subtree:!0}),U(()=>s.disconnect())});const i=()=>[...e.sources,...o()],c=()=>a("numbered");return t(K,{get children(){return t(q,{get each(){return i()},children:(n,s)=>t(S,{get href(){return n.href},get children(){return[t(k,{get label(){return E(()=>!!c())()?s()+1:n.label},get showFavicon(){return n.showFavicon??a("showFavicon")}}),t(A,{get title(){return n.title??""},get description(){return n.description??""}})]}})})}})});export{y as parseKaiSourceElement};
@@ -0,0 +1 @@
1
+ import{d as g,a as w,h as m,j as h,g as k,k as v,t as p,q as y,c as C}from"./chunks/cn-Dogu6PbV.js";var x=p("<button type=button role=switch><span>");function $(i){const[o,r]=w(i.defaultChecked??!1),l=()=>i.checked!==void 0,d=()=>l()?!!i.checked:o(),s=()=>{var a;if(i.disabled)return;const n=!d();l()||r(n),(a=i.onChange)==null||a.call(i,n)};return(()=>{var a=x(),n=a.firstChild;return a.$$keydown=e=>{(e.key===" "||e.key==="Enter")&&(e.preventDefault(),s())},a.$$click=s,m(e=>{var t=d(),c=i.label,u=i.disabled,b=h("relative inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background","disabled:cursor-not-allowed disabled:opacity-50",d()?"bg-primary":"bg-muted",i.class),f=h("inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",d()?"translate-x-[1.125rem]":"translate-x-0.5");return t!==e.e&&k(a,"aria-checked",e.e=t),c!==e.t&&k(a,"aria-label",e.t=c),u!==e.a&&(a.disabled=e.a=u),b!==e.o&&v(a,e.o=b),f!==e.i&&v(n,e.i=f),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),a})()}g(["click","keydown"]),y("kai-switch",{checked:void 0,disabled:void 0,label:void 0},(i,{dispatch:o,flag:r})=>C($,{get defaultChecked(){return r("checked")},get disabled(){return r("disabled")},get label(){return i.label},onChange:l=>o("kai-change",{checked:l})}));
@@ -0,0 +1 @@
1
+ import{d as se,m as oe,s as le,y as ce,e as v,a as ue,b as z,o as K,c as s,E as ge,S as b,i as c,u as he,h as E,j as N,k as M,g as x,F as Q,n as fe,t as p,q as me}from"./chunks/cn-Dogu6PbV.js";import{B as V}from"./chunks/button-CKyYD9G4.js";import{C as U}from"./chunks/card-Cjho-PYk.js";import{u as ve,a as pe,D as ke}from"./chunks/use-card-resolution-D-_0Alzy.js";import{e as be}from"./chunks/card-routing-C986KuUA.js";import{x as xe}from"./chunks/x-CzxL27Ch.js";import{c as ye}from"./chunks/check-CDYaMYrM.js";var we=p('<p class="pt-1 text-xs text-muted-foreground">Up to <!> selected.'),Ie=p('<div role=group><div class="divide-y divide-border overflow-hidden rounded-lg border border-input">'),Se=p("<span class=sr-only>"),Ce=p('<div class="flex w-full flex-wrap items-center justify-between gap-2"><span aria-live=polite class="text-xs text-muted-foreground"> selected</span><div class="ml-auto flex items-center gap-2">'),Ee=p("<label><input type=checkbox class=kai-checkbox><span>Select all"),$e=p('<span class="text-xs font-normal text-muted-foreground">'),Te=p('<label><input type=checkbox class="kai-checkbox mt-0.5"><span class="flex flex-col gap-0.5"><span>'),Ae=p('<ul class="list-disc pl-5 text-sm text-foreground">'),Re=p('<div class="flex flex-col gap-2"><p class="flex items-center gap-2 text-sm font-medium text-foreground"><span>Selected <!> of '),ze=p('<p class="text-sm text-muted-foreground">None selected'),Le=p("<li>");const je="tasks";function De(t){if(!Array.isArray(t)||t.length===0)return{tasks:[],error:"This card couldn't be displayed."};const n=new Set,e=[];for(const h of t){if(!h||typeof h!="object")continue;const o=h;if(!(typeof o.id!="string"||o.id.length===0)&&!(typeof o.label!="string"||o.label.length===0)){if(n.has(o.id)){console.warn(`[kai-tasks] duplicate task id "${o.id}" ignored`);continue}n.add(o.id),e.push({id:o.id,label:o.label,description:typeof o.description=="string"?o.description:void 0,checked:o.checked===!0,disabled:o.disabled===!0})}}return e.length===0?{tasks:[],error:"This card couldn't be displayed."}:{tasks:e}}function Ne(t){return t.filter(n=>n.checked).map(n=>n.id)}function Me(t,n){return t.filter(e=>n.has(e.id)).map(e=>e.id)}function q(t){return t.filter(n=>!n.disabled).map(n=>n.id)}function Ue(t,n){const e=q(t);if(e.length===0)return"unchecked";const h=e.filter(o=>n.has(o)).length;return h===0?"unchecked":h===e.length?"checked":"indeterminate"}function qe(t,n){if(t.selectAll!==!0)return!1;const e=q(n).length;return!(t.max!==void 0&&e>t.max)}function W(t,n){const e=t.min??(t.allowEmpty?0:1);return!(n<e||t.max!==void 0&&n>t.max)}function X(t,n){return t.max!==void 0&&n>=t.max}function Be(t,n){if(W(t,n))return;const e=t.min??(t.allowEmpty?0:1);if(n<e)return`Select at least ${e}.`;if(t.max!==void 0&&n>t.max)return`Select at most ${t.max}.`}const Fe={tasks:[]};function Pe(t){const n=oe({cardId:"kai-tasks"},t),[e]=le(n,["data","cardId","heading","host","hostElement","class","resolution"]),h=ve(),o=ce(),y=r=>{const a=e.host??h;a?a.emit(r):e.hostElement&&be(e.hostElement,r)},S=v(()=>{var r;return De((r=e.data)==null?void 0:r.tasks)}),T=v(()=>S().error===void 0),$=v(()=>S().error??""),I=v(()=>S().tasks),w=v(()=>e.data??Fe),[C,L]=ue(new Set),f=pe({prop:()=>e.resolution,data:()=>e.data});z(K(()=>e.data,()=>{L(new Set(Ne(I())))})),z(K(T,r=>{y(r?{kind:"ready",cardId:e.cardId}:{kind:"error",cardId:e.cardId,message:$()})}));const A=v(()=>C().size),Y=()=>w().confirmLabel??"Confirm",R=v(()=>Ue(I(),C())),Z=v(()=>qe(w(),I())),j=v(()=>Be(w(),A())),D=v(()=>W(w(),A())&&!f.isResolved()),ee=(r,a)=>{if(f.isResolved())return;const i=new Set(C());if(a){if(X(w(),i.size)&&!i.has(r))return;i.add(r)}else i.delete(r);L(i)},te=r=>{if(f.isResolved())return;const a=new Set(C());for(const i of q(I()))r?a.add(i):a.delete(i);L(a)},B=()=>{if(!D())return;const r={selected:Me(I(),C())};y({kind:"submit",cardId:e.cardId,data:r}),f.setLocal({kind:"submit",data:r})},re=()=>{f.isResolved()||(y({kind:"dismiss",cardId:e.cardId}),f.setLocal({kind:"dismissed"}))},ie=()=>y({kind:"reopen",cardId:e.cardId});z(()=>{var r;const a=e.hostElement;a&&(((r=f.resolution())==null?void 0:r.kind)==="submit"?a.setAttribute("data-kai-resolved","submitted"):a.removeAttribute("data-kai-resolved"))});const ne=v(()=>{var r;const a=f.resolution();if(!a||a.kind!=="submit")return;const i=(r=a.data)==null?void 0:r.selected,u=Array.isArray(i)?i:[],d=I(),l=d.filter(m=>u.includes(m.id)).map(m=>m.label);return{count:l.length,total:d.length,labels:l}}),F=`kai-tl-reason-${o}`,ae=`kai-tl-count-${o}`;return s(b,{get when(){return T()},get fallback(){return s(U,{get heading(){return e.heading},get errorMessage(){return $()}})},get children(){return s(ge,{fallback:()=>(y({kind:"error",cardId:e.cardId,message:"The card failed to render."}),s(U,{get heading(){return e.heading},errorMessage:"The card failed to render."})),get children(){return s(b,{get when(){return!f.isDeferred()},get fallback(){return s(ke,{type:je,get title(){var r;return e.heading??((r=e.data)==null?void 0:r.heading)},onReopen:ie})},get children(){return s(U,{get heading(){var r;return e.heading??((r=e.data)==null?void 0:r.heading)},get actions(){return fe(()=>!!f.isResolved())()?void 0:(()=>{var r=Ce(),a=r.firstChild,i=a.firstChild,u=a.nextSibling;return c(r,s(b,{get when(){var d;return((d=e.data)==null?void 0:d.dismissible)===!0},get children(){return s(V,{type:"button",variant:"ghost",size:"icon-sm","aria-label":"Dismiss",onClick:re,get children(){return s(xe,{size:16,"aria-hidden":"true"})}})}}),a),x(a,"id",ae),c(a,A,i),c(u,s(b,{get when(){return j()},get children(){var d=Se();return x(d,"id",F),c(d,j),d}}),null),c(u,s(V,{type:"button",get disabled(){return!D()},get"aria-describedby"(){return j()?F:void 0},onClick:B,get children(){return Y()}}),null),r})()},get children(){return s(b,{get when(){return!f.isResolved()},get fallback(){return s(Oe,{get summary(){return ne()},get optimistic(){return f.isOptimistic()}})},get children(){var r=Ie(),a=r.firstChild;return r.$$keydown=i=>{i.key!=="Enter"||i.target.tagName==="INPUT"||D()&&B()},c(a,s(b,{get when(){return Z()},get children(){return(()=>{const i=()=>R()==="indeterminate";return(()=>{var u=Ee(),d=u.firstChild;return d.addEventListener("change",l=>te(l.currentTarget.checked)),he(l=>{z(()=>{l.indeterminate=i()})},d),E(l=>{var m=N("flex cursor-pointer items-center gap-3 px-3 py-2.5 text-sm font-medium transition-colors",R()==="checked"?"bg-accent text-accent-foreground":"text-foreground hover:bg-muted/50"),k=i()?"mixed":R()==="checked";return m!==l.e&&M(u,l.e=m),k!==l.t&&x(d,"aria-checked",l.t=k),l},{e:void 0,t:void 0}),E(()=>d.checked=R()==="checked"),u})()})()}}),null),c(a,s(Q,{get each(){return I()},children:i=>{const u=()=>C().has(i.id),d=()=>i.disabled||!u()&&X(w(),A()),l=`kai-tl-desc-${o}-${i.id}`;return(()=>{var m=Te(),k=m.firstChild,P=k.nextSibling,de=P.firstChild;return k.addEventListener("change",g=>ee(i.id,g.currentTarget.checked)),c(de,()=>i.label),c(P,s(b,{get when(){return i.description},get children(){var g=$e();return x(g,"id",l),c(g,()=>i.description),g}}),null),E(g=>{var O=N("flex items-start gap-3 px-3 py-2.5 text-sm transition-colors",d()?"cursor-not-allowed opacity-60":"cursor-pointer hover:bg-muted/50",u()&&!d()?"bg-accent font-medium text-accent-foreground":"text-foreground"),_=i.id,G=d(),H=d()?"true":void 0,J=i.description?l:void 0;return O!==g.e&&M(m,g.e=O),_!==g.t&&x(m,"data-task-id",g.t=_),G!==g.a&&(k.disabled=g.a=G),H!==g.o&&x(k,"aria-disabled",g.o=H),J!==g.i&&x(k,"aria-describedby",g.i=J),g},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E(()=>k.checked=u()),m})()}}),null),c(r,s(b,{get when(){return w().max!==void 0},get children(){var i=we(),u=i.firstChild,d=u.nextSibling;return d.nextSibling,c(i,()=>w().max,d),i}}),null),E(i=>{var u,d=e.heading??((u=e.data)==null?void 0:u.heading)??"Tasks",l=N("flex flex-col",e.class);return d!==i.e&&x(r,"aria-label",i.e=d),l!==i.t&&M(r,i.t=l),i},{e:void 0,t:void 0}),r}})}})}})}})}})}function Oe(t){return(()=>{var n=Re(),e=n.firstChild,h=e.firstChild,o=h.firstChild,y=o.nextSibling;return y.nextSibling,c(e,s(ye,{size:16,"aria-hidden":"true"}),h),c(h,()=>t.summary.count,y),c(h,()=>t.summary.total,null),c(n,s(b,{get when(){return t.summary.labels.length>0},get fallback(){return ze()},get children(){var S=Ae();return c(S,s(Q,{get each(){return t.summary.labels},children:T=>(()=>{var $=Le();return c($,T),$})()})),S}}),null),E(()=>x(n,"role",t.optimistic?"status":void 0)),n})()}se(["keydown"]),me("kai-tasks",{data:void 0,cardId:void 0,heading:void 0,resolution:void 0},(t,{element:n})=>s(Pe,{get data(){return t.data},get cardId(){return t.cardId??(n.id||"kai-tasks")},get heading(){return t.heading},get resolution(){return t.resolution},hostElement:n}));
@@ -0,0 +1 @@
1
+ import{q as r,c as a}from"./chunks/cn-Dogu6PbV.js";import{T as e}from"./chunks/text-shimmer-uh9V_KUh.js";r("kai-text-shimmer",{text:"",as:"span",duration:4,spread:20},t=>a(e,{get as(){return t.as},get duration(){return t.duration},get spread(){return t.spread},class:"text-body",get children(){return t.text}}));