@kitn.ai/ui 0.18.1 → 0.19.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 (203) hide show
  1. package/dist/components/thread.d.ts +54 -0
  2. package/dist/custom-elements.json +195 -0
  3. package/dist/elements/agent-card.js +1 -1
  4. package/dist/elements/artifact.js +1 -1
  5. package/dist/elements/attachments.js +1 -1
  6. package/dist/elements/autoloader.js +1 -1
  7. package/dist/elements/avatar.js +1 -1
  8. package/dist/elements/badge.js +1 -1
  9. package/dist/elements/button.js +1 -1
  10. package/dist/elements/card.js +1 -1
  11. package/dist/elements/cards.js +1 -1
  12. package/dist/elements/chain-of-thought.js +1 -1
  13. package/dist/elements/chat-scope-picker.js +1 -1
  14. package/dist/elements/chat-workspace.js +1 -1
  15. package/dist/elements/chat.js +1 -1
  16. package/dist/elements/checkpoint.js +1 -1
  17. package/dist/elements/choice.js +1 -1
  18. package/dist/elements/chunks/{Icon-C2LTALdM.js → Icon-11SRdjJ4.js} +1 -1
  19. package/dist/elements/chunks/action-icons-CtRg17uX.js +1 -0
  20. package/dist/elements/chunks/arrow-left-CifsGq8x.js +1 -0
  21. package/dist/elements/chunks/{attachments-DLJcWCDV.js → attachments-CBqQRh60.js} +1 -1
  22. package/dist/elements/chunks/{badge-BTNZTODL.js → badge-CxklEXQm.js} +1 -1
  23. package/dist/elements/chunks/{button-DBDZebGr.js → button-BD7lUvVB.js} +1 -1
  24. package/dist/elements/chunks/{card-YfCyI4fH.js → card-B-PRGXdj.js} +1 -1
  25. package/dist/elements/chunks/chat-thread-DIZbRIKG.js +1 -0
  26. package/dist/elements/chunks/check-CUKS495w.js +1 -0
  27. package/dist/elements/chunks/chevron-down-AELmYT1j.js +1 -0
  28. package/dist/elements/chunks/chevron-right-C8g26oKh.js +1 -0
  29. package/dist/elements/chunks/circle-DGcI8Cft.js +1 -0
  30. package/dist/elements/chunks/circle-check-DuU0IcBQ.js +1 -0
  31. package/dist/elements/chunks/{circle-x-pDtzlghQ.js → circle-x-mtjCO_Ok.js} +1 -1
  32. package/dist/elements/chunks/{code-block-DZ6mz6vs.js → code-block-BeWVttmU.js} +1 -1
  33. package/dist/elements/chunks/{collapsible-CWUAShMC.js → collapsible-DGjADCN6.js} +1 -1
  34. package/dist/elements/chunks/{composer-BZyPU6gD.js → composer-CavJww3d.js} +7 -3
  35. package/dist/elements/chunks/{context-Cx6eQA_G.js → context-CnlsNJSJ.js} +1 -1
  36. package/dist/elements/chunks/{conversation-list-C4xTQSpT.js → conversation-list-5O_KdI_I.js} +1 -1
  37. package/dist/elements/chunks/{default-input-BZcwyKcP.js → default-input-CB46cJJ1.js} +1 -1
  38. package/dist/elements/chunks/{define-CNSKFZCd.js → define-DfTe4zwZ.js} +1 -1
  39. package/dist/elements/chunks/{disclosure-BcBs--Jf.js → disclosure-BtFK3a-M.js} +1 -1
  40. package/dist/elements/chunks/{download-BDQwcFav.js → download-qJv1dS3M.js} +1 -1
  41. package/dist/elements/chunks/{dropdown-wgs8xCJZ.js → dropdown-UhtAueYR.js} +1 -1
  42. package/dist/elements/chunks/{ellipsis-CUiEJ6R1.js → ellipsis-B1sOOqiJ.js} +1 -1
  43. package/dist/elements/chunks/{external-link-DJUmC7g2.js → external-link-DToP_VKE.js} +1 -1
  44. package/dist/elements/chunks/{file-text-DOYfYvrh.js → file-text-BwUs_Pj4.js} +1 -1
  45. package/dist/elements/chunks/{file-tree-DQzNQrbr.js → file-tree-C6RhmSnX.js} +1 -1
  46. package/dist/elements/chunks/{folder-DBDUBANz.js → folder-H_Xp0GYP.js} +1 -1
  47. package/dist/elements/chunks/hover-card-Dn3yrk1l.js +1 -0
  48. package/dist/elements/chunks/icon-BrxJQXzC.js +1 -0
  49. package/dist/elements/chunks/{info-DBQl-m6e.js → info-11eT2q5H.js} +1 -1
  50. package/dist/elements/chunks/{input-DZD67EvW.js → input-B9oZKDfb.js} +1 -1
  51. package/dist/elements/chunks/{kbd-DbyVrlnU.js → kbd-D2fx3rWh.js} +1 -1
  52. package/dist/elements/chunks/{link-vko7AttA.js → link-B-RNYWNw.js} +1 -1
  53. package/dist/elements/chunks/{loader-Cg6rO8tQ.js → loader-BJh_aRlp.js} +1 -1
  54. package/dist/elements/chunks/{markdown-n3Xbj3PR.js → markdown-BIpjrDFv.js} +1 -1
  55. package/dist/elements/chunks/{message-CgKytiSB.js → message-CPfqj8Gi.js} +1 -1
  56. package/dist/elements/chunks/{message-feedback-Ds3-US0e.js → message-feedback-8uj0aVYh.js} +1 -1
  57. package/dist/elements/chunks/message-square-CCSQ4M9g.js +1 -0
  58. package/dist/elements/chunks/{minimize-2-3kCdE0q3.js → minimize-2-C9qkiTJg.js} +1 -1
  59. package/dist/elements/chunks/{model-switcher-BMtXGwLU.js → model-switcher-DRrMcRXH.js} +1 -1
  60. package/dist/elements/chunks/{overlay-B1-MBI6h.js → overlay-C8_FUL8q.js} +1 -1
  61. package/dist/elements/chunks/{paperclip-DDEfmkHc.js → paperclip-MA9hxLhW.js} +1 -1
  62. package/dist/elements/chunks/{progress-bar-Dwbiyv3s.js → progress-bar-y5G6HDjg.js} +1 -1
  63. package/dist/elements/chunks/{prompt-suggestion-9lvgFcEa.js → prompt-suggestion-LalWvCJy.js} +1 -1
  64. package/dist/elements/chunks/reasoning-CW3SDdb4.js +1 -0
  65. package/dist/elements/chunks/resizable-xhYF5lCQ.js +1 -0
  66. package/dist/elements/chunks/{rotate-cw-jpisOdOV.js → rotate-cw-2ndEXjgS.js} +1 -1
  67. package/dist/elements/chunks/{scroll-area-g5Ze3K6f.js → scroll-area-BzOPDXrZ.js} +1 -1
  68. package/dist/elements/chunks/scroll-button-B1x4cYqM.js +1 -0
  69. package/dist/elements/chunks/{separator-Bmjc5XyX.js → separator-CPvL5Xdl.js} +1 -1
  70. package/dist/elements/chunks/{settings-group-9imY3kRA.js → settings-group-BiIym17O.js} +1 -1
  71. package/dist/elements/chunks/{settings-Cz1bMJP9.js → settings-hmzIuNXD.js} +1 -1
  72. package/dist/elements/chunks/{share-BdenF0wQ.js → share-BbziTAzn.js} +1 -1
  73. package/dist/elements/chunks/skeleton-Bxhs1thL.js +1 -0
  74. package/dist/elements/chunks/{slots-DkZ-Cmha.js → slots--V19HwUb.js} +1 -1
  75. package/dist/elements/chunks/{star-DY6z1UUH.js → star-BHL3Va5p.js} +1 -1
  76. package/dist/elements/chunks/{store-th4VyJXM.js → store-tpnnWlxY.js} +1 -1
  77. package/dist/elements/chunks/{text-shimmer-CEi-tlXr.js → text-shimmer-1DCKivKx.js} +1 -1
  78. package/dist/elements/chunks/textarea-Czaowo9F.js +1 -0
  79. package/dist/elements/chunks/{thumbs-up-BR33KLfA.js → thumbs-up-CdLqA13R.js} +1 -1
  80. package/dist/elements/chunks/{toast-store-BEMda0fv.js → toast-store-BvBquUFA.js} +1 -1
  81. package/dist/elements/chunks/{tool-TMued3WO.js → tool-4P_ne8Go.js} +1 -1
  82. package/dist/elements/chunks/{tooltip-Cft_Rxiw.js → tooltip-CBeFqJKk.js} +1 -1
  83. package/dist/elements/chunks/{triangle-alert-B07fX3Q8.js → triangle-alert-BllqxXq8.js} +1 -1
  84. package/dist/elements/chunks/{use-card-resolution-M36zVciB.js → use-card-resolution-73xiddIW.js} +1 -1
  85. package/dist/elements/chunks/{video-MKp3LmNT.js → video-O9rA6k7S.js} +1 -1
  86. package/dist/elements/chunks/x-DeS3rQhx.js +1 -0
  87. package/dist/elements/coachmark.js +1 -1
  88. package/dist/elements/code-block.js +1 -1
  89. package/dist/elements/command.js +1 -1
  90. package/dist/elements/compare.js +1 -1
  91. package/dist/elements/composer.js +1 -1
  92. package/dist/elements/confirm-card.js +1 -1
  93. package/dist/elements/context-meter.js +1 -1
  94. package/dist/elements/conversation-list.js +1 -1
  95. package/dist/elements/dialog.js +1 -1
  96. package/dist/elements/editable-label.js +1 -1
  97. package/dist/elements/embed.js +1 -1
  98. package/dist/elements/empty.js +1 -1
  99. package/dist/elements/feedback-bar.js +1 -1
  100. package/dist/elements/file-tree.js +1 -1
  101. package/dist/elements/file-upload.js +1 -1
  102. package/dist/elements/form.js +1 -1
  103. package/dist/elements/hover-card.js +1 -1
  104. package/dist/elements/icon.js +1 -1
  105. package/dist/elements/image.js +1 -1
  106. package/dist/elements/input.js +1 -1
  107. package/dist/elements/kbd.js +1 -1
  108. package/dist/elements/link-preview.js +1 -1
  109. package/dist/elements/loader.js +1 -1
  110. package/dist/elements/markdown.js +1 -1
  111. package/dist/elements/menu.js +1 -1
  112. package/dist/elements/message-skills.js +1 -1
  113. package/dist/elements/message.js +1 -1
  114. package/dist/elements/model-switcher.js +1 -1
  115. package/dist/elements/nav.js +1 -1
  116. package/dist/elements/notice.js +1 -1
  117. package/dist/elements/pane-group.js +1 -1
  118. package/dist/elements/pane.js +1 -1
  119. package/dist/elements/popover.js +1 -1
  120. package/dist/elements/progress-bar.js +1 -1
  121. package/dist/elements/prompt-dock.js +1 -1
  122. package/dist/elements/prompt-input.js +1 -1
  123. package/dist/elements/prompt-suggestions.js +1 -1
  124. package/dist/elements/reasoning.js +1 -1
  125. package/dist/elements/remote.js +1 -1
  126. package/dist/elements/resizable.js +1 -1
  127. package/dist/elements/response-stream.js +1 -1
  128. package/dist/elements/screen.js +1 -1
  129. package/dist/elements/scroll-area.js +1 -1
  130. package/dist/elements/scroll-button.js +1 -1
  131. package/dist/elements/search.js +1 -1
  132. package/dist/elements/segmented.js +1 -1
  133. package/dist/elements/separator.js +1 -1
  134. package/dist/elements/setting-item.js +1 -1
  135. package/dist/elements/settings-group.js +1 -1
  136. package/dist/elements/skeleton.js +1 -1
  137. package/dist/elements/slots.d.ts +3 -0
  138. package/dist/elements/source.js +1 -1
  139. package/dist/elements/status.js +1 -1
  140. package/dist/elements/switch.js +1 -1
  141. package/dist/elements/tabs.js +1 -1
  142. package/dist/elements/tasks.js +1 -1
  143. package/dist/elements/text-shimmer.js +1 -1
  144. package/dist/elements/thinking-bar.js +1 -1
  145. package/dist/elements/thread.d.ts +1 -0
  146. package/dist/elements/thread.js +1 -0
  147. package/dist/elements/toast.js +1 -1
  148. package/dist/elements/tool.js +1 -1
  149. package/dist/elements/tooltip.js +1 -1
  150. package/dist/elements/voice-input.js +1 -1
  151. package/dist/elements/voice-output.js +1 -1
  152. package/dist/elements.d.ts +24 -0
  153. package/dist/index.js +3393 -3311
  154. package/dist/kai.es.js +1 -1
  155. package/dist/llms/llms-full.txt +34 -4
  156. package/dist/llms/llms.txt +3 -3
  157. package/dist/react/index.d.ts +64 -0
  158. package/dist/react/use-voice-input.d.ts +15 -0
  159. package/dist/react.js +263 -240
  160. package/dist/register-impl-CaaHJcea.js +145 -0
  161. package/dist/ui/resizable.d.ts +9 -3
  162. package/frameworks/react/index.tsx +32 -1
  163. package/frameworks/react/use-voice-input.tsx +59 -0
  164. package/llms-full.txt +34 -4
  165. package/llms.txt +3 -3
  166. package/package.json +27 -5
  167. package/src/components/component-meta.json +30 -28
  168. package/src/components/composer.tsx +5 -0
  169. package/src/components/thread.tsx +177 -0
  170. package/src/elements/chat-workspace.tsx +1 -1
  171. package/src/elements/compiled.css +1 -1
  172. package/src/elements/element-manifest.json +4 -0
  173. package/src/elements/element-meta.json +117 -0
  174. package/src/elements/element-types.d.ts +24 -0
  175. package/src/elements/icon-names.json +2 -0
  176. package/src/elements/menu.tsx +7 -4
  177. package/src/elements/register-impl.ts +2 -0
  178. package/src/elements/resizable.tsx +78 -2
  179. package/src/elements/search.tsx +1 -1
  180. package/src/elements/slots.ts +7 -0
  181. package/src/elements/thread.tsx +105 -0
  182. package/src/ui/action-icons.ts +2 -1
  183. package/src/ui/command.tsx +5 -1
  184. package/src/ui/icon.tsx +4 -0
  185. package/src/ui/overlay.tsx +8 -1
  186. package/src/ui/resizable.tsx +47 -9
  187. package/dist/elements/chunks/action-icons-Dtl8Ox5D.js +0 -1
  188. package/dist/elements/chunks/arrow-left-GbBceGBE.js +0 -1
  189. package/dist/elements/chunks/chat-thread-Dz2qbzvI.js +0 -1
  190. package/dist/elements/chunks/check-fhmRksq_.js +0 -1
  191. package/dist/elements/chunks/chevron-down-DcRg1aRU.js +0 -1
  192. package/dist/elements/chunks/chevron-right-ChzBcNJ-.js +0 -1
  193. package/dist/elements/chunks/circle-B4fTe9v6.js +0 -1
  194. package/dist/elements/chunks/circle-check-CJV-3Rem.js +0 -1
  195. package/dist/elements/chunks/hover-card-BQGdGAQ3.js +0 -1
  196. package/dist/elements/chunks/icon-CAyRqVrg.js +0 -1
  197. package/dist/elements/chunks/message-square-MmRkvc-M.js +0 -1
  198. package/dist/elements/chunks/reasoning-DzHWsdAJ.js +0 -1
  199. package/dist/elements/chunks/resizable-Bq_eHxUm.js +0 -1
  200. package/dist/elements/chunks/skeleton-Pjc5jiaY.js +0 -1
  201. package/dist/elements/chunks/textarea-CboigarR.js +0 -1
  202. package/dist/elements/chunks/x-Ckwicf6g.js +0 -1
  203. package/dist/register-impl-cKscku5m.js +0 -141
package/dist/kai.es.js CHANGED
@@ -1 +1 @@
1
- const Sn={bash:()=>import("./bash-InADTalH.js"),javascript:()=>import("./javascript-C25yR2R2.js"),typescript:()=>import("./typescript-RycA9KXf.js"),tsx:()=>import("./tsx-B8rCNbgL.js"),html:()=>import("./html-CPZ3oZQ7.js"),css:()=>import("./css-M7EaDHN_.js"),json:()=>import("./json-DxJze_jm.js"),vue:()=>import("./vue-BmIZj4XD.js"),svelte:()=>import("./svelte--5p79yCD.js")},On={"github-dark-dimmed":()=>import("./github-dark-dimmed-DUshB20C.js"),"github-light":()=>import("./github-light-JYsPkUQd.js")},xn={js:"javascript",ts:"typescript",jsx:"tsx",sh:"bash",shell:"bash"},Nt="github-dark-dimmed";let Ot=!0,xt={...Sn},At={...On},kt={...xn},jt=null;const zt=new Set,Ft=new Set;function An(){return jt||(jt=(async()=>{const[{createHighlighterCore:t},{createJavaScriptRegexEngine:n}]=await Promise.all([import("./core-C8fzo39E.js"),import("./engine-javascript-C1x7zo1_.js")]);return t({themes:[],langs:[],engine:n()})})()),jt}function Rt(t){return kt[t]??t}async function kn(t,n){const e=Rt(n);if(zt.has(e))return!0;const r=xt[e];return r?(await t.loadLanguage(r()),zt.add(e),!0):!1}async function Kt(t,n){if(Ft.has(n))return!0;const e=At[n];return e?(await t.loadTheme(e()),Ft.add(n),!0):!1}function jn(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function ct(t){return`<pre><code>${jn(t)}</code></pre>`}async function Pn(t,n,e){if(!Ot||!t)return ct(t);try{const r=await An();if(!await kn(r,n))return ct(t);const o=await Kt(r,e)?e:await Kt(r,Nt)?Nt:null;return o?r.codeToHtml(t,{lang:Rt(n),theme:o}):ct(t)}catch{return ct(t)}}function _n(t){t.enabled!==void 0&&(Ot=t.enabled),t.languages&&(xt={...xt,...t.languages}),t.themes&&(At={...At,...t.themes}),t.aliases&&(kt={...kt,...t.aliases})}function qn(){return Ot}const p={context:void 0,registry:void 0,effects:void 0,done:!1,getContextId(){return Lt(this.context.count)},getNextContextId(){return Lt(this.context.count++)}};function Lt(t){const n=String(t),e=n.length-1;return p.context.id+(e?String.fromCharCode(96+e):"")+n}function Pt(t){p.context=t}function Cn(){return{...p.context,id:p.getNextContextId(),count:0}}const Se=!1,Mn=(t,n)=>t===n,V=Symbol("solid-proxy"),Jt=typeof Proxy=="function",X=Symbol("solid-track"),Oe=Symbol("solid-dev-component"),at={equals:Mn};let Y=null,Ut=en;const P=1,Z=2,Wt={owned:null,cleanups:null,context:null,owner:null},_t={};var f=null;let l=null,J=null,U=null,h=null,b=null,O=null,ft=0;function F(t,n){const e=h,r=f,o=t.length===0,s=n===void 0?r:n,i=o?Wt:{owned:null,cleanups:null,context:s?s.context:null,owner:s},u=o?t:()=>t(()=>m(()=>z(i)));f=i,h=null;try{return k(u,!0)}finally{h=e,f=r}}function E(t,n){n=n?Object.assign({},at,n):at;const e={value:t,observers:null,observerSlots:null,comparator:n.equals||void 0},r=o=>(typeof o=="function"&&(l&&l.running&&l.sources.has(e)?o=o(e.tValue):o=o(e.value)),tn(e,o));return[Zt.bind(e),r]}function Bt(t,n,e){const r=et(t,n,!0,P);J&&l&&l.running?b.push(r):W(r)}function Gt(t,n,e){const r=et(t,n,!1,P);J&&l&&l.running?b.push(r):W(r)}function Qt(t,n,e){Ut=Kn;const r=et(t,n,!1,P),o=nt&&Ct(nt);o&&(r.suspense=o),(!e||!e.render)&&(r.user=!0),O?O.push(r):W(r)}function A(t,n,e){e=e?Object.assign({},at,e):at;const r=et(t,n,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=e.equals||void 0,J&&l&&l.running?(r.tState=P,b.push(r)):W(r),Zt.bind(r)}function Vn(t){return t&&typeof t=="object"&&"then"in t}function En(t,n,e){let r,o,s;typeof n=="function"?(r=t,o=n,s=e||{}):(r=!0,o=t,s=n||{});let i=null,u=_t,c=null,d=!1,g=!1,a="initialValue"in s,w=typeof r=="function"&&A(r);const S=new Set,[_,D]=(s.storage||E)(s.initialValue),[N,L]=E(void 0),[q,C]=E(void 0,{equals:!1}),[M,T]=E(a?"ready":"unresolved");p.context&&(c=p.getNextContextId(),s.ssrLoadFrom==="initial"?u=s.initialValue:p.load&&p.has(c)&&(u=p.load(c)));function H(y,v,$,x){return i===y&&(i=null,x!==void 0&&(a=!0),(y===u||v===u)&&s.onHydrated&&queueMicrotask(()=>s.onHydrated(x,{value:v})),u=_t,l&&y&&d?(l.promises.delete(y),d=!1,k(()=>{l.running=!0,Tt(v,$)},!1)):Tt(v,$)),v}function Tt(y,v){k(()=>{v===void 0&&D(()=>y),T(v!==void 0?"errored":a?"ready":"unresolved"),L(v);for(const $ of S.keys())$.decrement();S.clear()},!1)}function mt(){const y=nt&&Ct(nt),v=_(),$=N();if($!==void 0&&!i)throw $;return h&&!h.user&&y&&Bt(()=>{q(),i&&(y.resolved&&l&&d?l.promises.add(i):S.has(y)||(y.increment(),S.add(y)))}),v}function St(y=!0){if(y!==!1&&g)return;g=!1;const v=w?w():r;if(d=l&&l.running,v==null||v===!1){H(i,m(_));return}l&&i&&l.promises.delete(i);let $;const x=u!==_t?u:m(()=>{try{return o(v,{value:_(),refetching:y})}catch(Q){$=Q}});if($!==void 0){H(i,void 0,gt($),v);return}else if(!Vn(x))return H(i,x,void 0,v),x;return i=x,"v"in x?(x.s===1?H(i,x.v,void 0,v):H(i,void 0,gt(x.v),v),x):(g=!0,queueMicrotask(()=>g=!1),k(()=>{T(a?"refreshing":"pending"),C()},!1),x.then(Q=>H(x,Q,void 0,v),Q=>H(x,void 0,gt(Q),v)))}Object.defineProperties(mt,{state:{get:()=>M()},error:{get:()=>N()},loading:{get(){const y=M();return y==="pending"||y==="refreshing"}},latest:{get(){if(!a)return mt();const y=N();if(y&&!i)throw y;return _()}}});let Ht=f;return w?Bt(()=>(Ht=f,St(!1))):St(!1),[mt,{refetch:y=>Xt(Ht,()=>St(y)),mutate:D}]}function $n(t){return k(t,!1)}function m(t){if(!U&&h===null)return t();const n=h;h=null;try{return U?U.untrack(t):t()}finally{h=n}}function Dn(t,n,e){const r=Array.isArray(t);let o,s=e&&e.defer;return i=>{let u;if(r){u=Array(t.length);for(let d=0;d<t.length;d++)u[d]=t[d]()}else u=t();if(s)return s=!1,i;const c=m(()=>n(u,o,i));return o=u,c}}function In(t){Qt(()=>m(t))}function tt(t){return f===null||(f.cleanups===null?f.cleanups=[t]:f.cleanups.push(t)),t}function Tn(t,n){Y||(Y=Symbol("error")),f=et(void 0,void 0,!0),f.context={...f.context,[Y]:[n]},l&&l.running&&l.sources.add(f);try{return t()}catch(e){ot(e)}finally{f=f.owner}}function qt(){return h}function Hn(){return f}function Xt(t,n){const e=f,r=h;f=t,h=null;try{return k(n,!0)}catch(o){ot(o)}finally{f=e,h=r}}function Nn(t){if(l&&l.running)return t(),l.done;const n=h,e=f;return Promise.resolve().then(()=>{h=n,f=e;let r;return(J||nt)&&(r=l||(l={sources:new Set,effects:[],promises:new Set,disposed:new Set,queue:new Set,running:!0}),r.done||(r.done=new Promise(o=>r.resolve=o)),r.running=!0),k(t,!1),h=f=null,r?r.done:void 0})}const[xe,Yt]=E(!1);function zn(t,n){const e=Symbol("context");return{id:e,Provider:Ln(e),defaultValue:t}}function Ct(t){let n;return f&&f.context&&(n=f.context[t.id])!==void 0?n:t.defaultValue}function Mt(t){const n=A(t),e=A(()=>Vt(n()));return e.toArray=()=>{const r=e();return Array.isArray(r)?r:r!=null?[r]:[]},e}let nt;function Zt(){const t=l&&l.running;if(this.sources&&(t?this.tState:this.state))if((t?this.tState:this.state)===P)W(this);else{const n=b;b=null,k(()=>dt(this),!1),b=n}if(h){const n=this.observers;if(!n||n[n.length-1]!==h){const e=n?n.length:0;h.sources?(h.sources.push(this),h.sourceSlots.push(e)):(h.sources=[this],h.sourceSlots=[e]),n?(n.push(h),this.observerSlots.push(h.sources.length-1)):(this.observers=[h],this.observerSlots=[h.sources.length-1])}}return t&&l.sources.has(this)?this.tValue:this.value}function tn(t,n,e){let r=l&&l.running&&l.sources.has(t)?t.tValue:t.value;if(!t.comparator||!t.comparator(r,n)){if(l){const o=l.running;(o||!e&&l.sources.has(t))&&(l.sources.add(t),t.tValue=n),o||(t.value=n)}else t.value=n;t.observers&&t.observers.length&&k(()=>{for(let o=0;o<t.observers.length;o+=1){const s=t.observers[o],i=l&&l.running;i&&l.disposed.has(s)||((i?!s.tState:!s.state)&&(s.pure?b.push(s):O.push(s),s.observers&&rn(s)),i?s.tState=P:s.state=P)}if(b.length>1e6)throw b=[],new Error},!1)}return n}function W(t){if(!t.fn)return;z(t);const n=ft;nn(t,l&&l.running&&l.sources.has(t)?t.tValue:t.value,n),l&&!l.running&&l.sources.has(t)&&queueMicrotask(()=>{k(()=>{l&&(l.running=!0),h=f=t,nn(t,t.tValue,n),h=f=null},!1)})}function nn(t,n,e){let r;const o=f,s=h;h=f=t;try{r=t.fn(n)}catch(i){return t.pure&&(l&&l.running?(t.tState=P,t.tOwned&&t.tOwned.forEach(z),t.tOwned=void 0):(t.state=P,t.owned&&t.owned.forEach(z),t.owned=null)),t.updatedAt=e+1,ot(i)}finally{h=s,f=o}(!t.updatedAt||t.updatedAt<=e)&&(t.updatedAt!=null&&"observers"in t?tn(t,r,!0):l&&l.running&&t.pure?(l.sources.has(t)||(t.value=r),l.sources.add(t),t.tValue=r):t.value=r,t.updatedAt=e)}function et(t,n,e,r=P,o){const s={fn:t,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:n,owner:f,context:f?f.context:null,pure:e};if(l&&l.running&&(s.state=0,s.tState=r),f===null||f!==Wt&&(l&&l.running&&f.pure?f.tOwned?f.tOwned.push(s):f.tOwned=[s]:f.owned?f.owned.push(s):f.owned=[s]),U&&s.fn){const i=s.fn,[u,c]=E(void 0,{equals:!1}),d=U.factory(i,c);tt(()=>d.dispose());let g;const a=()=>Nn(c).then(()=>{g&&(g.dispose(),g=void 0)});s.fn=w=>(u(),l&&l.running?(g||(g=U.factory(i,a)),g.track(w)):d.track(w))}return s}function rt(t){const n=l&&l.running;if((n?t.tState:t.state)===0)return;if((n?t.tState:t.state)===Z)return dt(t);if(t.suspense&&m(t.suspense.inFallback))return t.suspense.effects.push(t);const e=[t];for(;(t=t.owner)&&(!t.updatedAt||t.updatedAt<ft);){if(n&&l.disposed.has(t))return;(n?t.tState:t.state)&&e.push(t)}for(let r=e.length-1;r>=0;r--){if(t=e[r],n){let o=t,s=e[r+1];for(;(o=o.owner)&&o!==s;)if(l.disposed.has(o))return}if((n?t.tState:t.state)===P)W(t);else if((n?t.tState:t.state)===Z){const o=b;b=null,k(()=>dt(t,e[0]),!1),b=o}}}function k(t,n){if(b)return t();let e=!1;n||(b=[]),O?e=!0:O=[],ft++;try{const r=t();return Fn(e),r}catch(r){e||(O=null),b=null,ot(r)}}function Fn(t){if(b&&(J&&l&&l.running?Rn(b):en(b),b=null),t)return;let n;if(l){if(!l.promises.size&&!l.queue.size){const r=l.sources,o=l.disposed;O.push.apply(O,l.effects),n=l.resolve;for(const s of O)"tState"in s&&(s.state=s.tState),delete s.tState;l=null,k(()=>{for(const s of o)z(s);for(const s of r){if(s.value=s.tValue,s.owned)for(let i=0,u=s.owned.length;i<u;i++)z(s.owned[i]);s.tOwned&&(s.owned=s.tOwned),delete s.tValue,delete s.tOwned,s.tState=0}Yt(!1)},!1)}else if(l.running){l.running=!1,l.effects.push.apply(l.effects,O),O=null,Yt(!0);return}}const e=O;O=null,e.length&&k(()=>Ut(e),!1),n&&n()}function en(t){for(let n=0;n<t.length;n++)rt(t[n])}function Rn(t){for(let n=0;n<t.length;n++){const e=t[n],r=l.queue;r.has(e)||(r.add(e),J(()=>{r.delete(e),k(()=>{l.running=!0,rt(e)},!1),l&&(l.running=!1)}))}}function Kn(t){let n,e=0;for(n=0;n<t.length;n++){const r=t[n];r.user?t[e++]=r:rt(r)}if(p.context){if(p.count){p.effects||(p.effects=[]),p.effects.push(...t.slice(0,e));return}Pt()}for(p.effects&&(p.done||!p.count)&&(t=[...p.effects,...t],e+=p.effects.length,delete p.effects),n=0;n<e;n++)rt(t[n])}function dt(t,n){const e=l&&l.running;e?t.tState=0:t.state=0;for(let r=0;r<t.sources.length;r+=1){const o=t.sources[r];if(o.sources){const s=e?o.tState:o.state;s===P?o!==n&&(!o.updatedAt||o.updatedAt<ft)&&rt(o):s===Z&&dt(o,n)}}}function rn(t){const n=l&&l.running;for(let e=0;e<t.observers.length;e+=1){const r=t.observers[e];(n?!r.tState:!r.state)&&(n?r.tState=Z:r.state=Z,r.pure?b.push(r):O.push(r),r.observers&&rn(r))}}function z(t){let n;if(t.sources)for(;t.sources.length;){const e=t.sources.pop(),r=t.sourceSlots.pop(),o=e.observers;if(o&&o.length){const s=o.pop(),i=e.observerSlots.pop();r<o.length&&(s.sourceSlots[i]=r,o[r]=s,e.observerSlots[r]=i)}}if(t.tOwned){for(n=t.tOwned.length-1;n>=0;n--)z(t.tOwned[n]);delete t.tOwned}if(l&&l.running&&t.pure)on(t,!0);else if(t.owned){for(n=t.owned.length-1;n>=0;n--)z(t.owned[n]);t.owned=null}if(t.cleanups){for(n=t.cleanups.length-1;n>=0;n--)t.cleanups[n]();t.cleanups=null}l&&l.running?t.tState=0:t.state=0}function on(t,n){if(n||(t.tState=0,l.disposed.add(t)),t.owned)for(let e=0;e<t.owned.length;e++)on(t.owned[e])}function gt(t){return t instanceof Error?t:new Error(typeof t=="string"?t:"Unknown error",{cause:t})}function sn(t,n,e){try{for(const r of n)r(t)}catch(r){ot(r,e&&e.owner||null)}}function ot(t,n=f){const e=Y&&n&&n.context&&n.context[Y],r=gt(t);if(!e)throw r;O?O.push({fn(){sn(r,e,n)},state:P}):sn(r,e,n)}function Vt(t){if(typeof t=="function"&&!t.length)return Vt(t());if(Array.isArray(t)){const n=[];for(let e=0;e<t.length;e++){const r=Vt(t[e]);if(Array.isArray(r))if(r.length<32768)n.push.apply(n,r);else for(let o=0;o<r.length;o++)n.push(r[o]);else n.push(r)}return n}return t}function Ln(t,n){return function(e){let r;return Gt(()=>r=m(()=>(f.context={...f.context,[t]:e.value},Mt(()=>e.children))),void 0),r}}const Et=Symbol("fallback");function ht(t){for(let n=0;n<t.length;n++)t[n]()}function Jn(t,n,e={}){let r=[],o=[],s=[],i=0,u=n.length>1?[]:null;return tt(()=>ht(s)),()=>{let c=t()||[],d=c.length,g,a;return c[X],m(()=>{let S,_,D,N,L,q,C,M,T;if(d===0)i!==0&&(ht(s),s=[],r=[],o=[],i=0,u&&(u=[])),e.fallback&&(r=[Et],o[0]=F(H=>(s[0]=H,e.fallback())),i=1);else if(i===0){for(o=new Array(d),a=0;a<d;a++)r[a]=c[a],o[a]=F(w);i=d}else{for(D=new Array(d),N=new Array(d),u&&(L=new Array(d)),q=0,C=Math.min(i,d);q<C&&r[q]===c[q];q++);for(C=i-1,M=d-1;C>=q&&M>=q&&r[C]===c[M];C--,M--)D[M]=o[C],N[M]=s[C],u&&(L[M]=u[C]);for(S=new Map,_=new Array(M+1),a=M;a>=q;a--)T=c[a],g=S.get(T),_[a]=g===void 0?-1:g,S.set(T,a);for(g=q;g<=C;g++)T=r[g],a=S.get(T),a!==void 0&&a!==-1?(D[a]=o[g],N[a]=s[g],u&&(L[a]=u[g]),a=_[a],S.set(T,a)):s[g]();for(a=q;a<d;a++)a in D?(o[a]=D[a],s[a]=N[a],u&&(u[a]=L[a],u[a](a))):o[a]=F(w);o=o.slice(0,i=d),r=c.slice(0)}return o});function w(S){if(s[a]=S,u){const[_,D]=E(a);return u[a]=D,n(c[a],_)}return n(c[a])}}}function Un(t,n,e={}){let r=[],o=[],s=[],i=[],u=0,c;return tt(()=>ht(s)),()=>{const d=t()||[],g=d.length;return d[X],m(()=>{if(g===0)return u!==0&&(ht(s),s=[],r=[],o=[],u=0,i=[]),e.fallback&&(r=[Et],o[0]=F(w=>(s[0]=w,e.fallback())),u=1),o;for(r[0]===Et&&(s[0](),s=[],r=[],o=[],u=0),c=0;c<g;c++)c<r.length&&r[c]!==d[c]?i[c](()=>d[c]):c>=r.length&&(o[c]=F(a));for(;c<r.length;c++)s[c]();return u=i.length=s.length=g,r=d.slice(0),o=o.slice(0,u)});function a(w){s[c]=w;const[S,_]=E(d[c]);return i[c]=_,n(S,c)}}}let un=!1;function Wn(){un=!0}function Bn(t,n){if(un&&p.context){const e=p.context;Pt(Cn());const r=m(()=>t(n||{}));return Pt(e),r}return m(()=>t(n||{}))}function pt(){return!0}const $t={get(t,n,e){return n===V?e:t.get(n)},has(t,n){return n===V?!0:t.has(n)},set:pt,deleteProperty:pt,getOwnPropertyDescriptor(t,n){return{configurable:!0,enumerable:!0,get(){return t.get(n)},set:pt,deleteProperty:pt}},ownKeys(t){return t.keys()}};function Dt(t){return(t=typeof t=="function"?t():t)?t:{}}function Gn(){for(let t=0,n=this.length;t<n;++t){const e=this[t]();if(e!==void 0)return e}}function Qn(...t){let n=!1;for(let i=0;i<t.length;i++){const u=t[i];n=n||!!u&&V in u,t[i]=typeof u=="function"?(n=!0,A(u)):u}if(Jt&&n)return new Proxy({get(i){for(let u=t.length-1;u>=0;u--){const c=Dt(t[u])[i];if(c!==void 0)return c}},has(i){for(let u=t.length-1;u>=0;u--)if(i in Dt(t[u]))return!0;return!1},keys(){const i=[];for(let u=0;u<t.length;u++)i.push(...Object.keys(Dt(t[u])));return[...new Set(i)]}},$t);const e={},r=Object.create(null);for(let i=t.length-1;i>=0;i--){const u=t[i];if(!u)continue;const c=Object.getOwnPropertyNames(u);for(let d=c.length-1;d>=0;d--){const g=c[d];if(g==="__proto__"||g==="constructor")continue;const a=Object.getOwnPropertyDescriptor(u,g);if(!r[g])r[g]=a.get?{enumerable:!0,configurable:!0,get:Gn.bind(e[g]=[a.get.bind(u)])}:a.value!==void 0?a:void 0;else{const w=e[g];w&&(a.get?w.push(a.get.bind(u)):a.value!==void 0&&w.push(()=>a.value))}}}const o={},s=Object.keys(r);for(let i=s.length-1;i>=0;i--){const u=s[i],c=r[u];c&&c.get?Object.defineProperty(o,u,c):o[u]=c?c.value:void 0}return o}function Xn(t,...n){const e=n.length;if(Jt&&V in t){const o=e>1?n.flat():n[0],s=n.map(i=>new Proxy({get(u){return i.includes(u)?t[u]:void 0},has(u){return i.includes(u)&&u in t},keys(){return i.filter(u=>u in t)}},$t));return s.push(new Proxy({get(i){return o.includes(i)?void 0:t[i]},has(i){return o.includes(i)?!1:i in t},keys(){return Object.keys(t).filter(i=>!o.includes(i))}},$t)),s}const r=[];for(let o=0;o<=e;o++)r[o]={};for(const o of Object.getOwnPropertyNames(t)){let s=e;for(let u=0;u<n.length;u++)if(n[u].includes(o)){s=u;break}const i=Object.getOwnPropertyDescriptor(t,o);!i.get&&!i.set&&i.enumerable&&i.writable&&i.configurable?r[s][o]=i.value:Object.defineProperty(r[s],o,i)}return r}let Yn=0;function Zn(){return p.context?p.getNextContextId():`cl-${Yn++}`}const ln=t=>`Stale read from <${t}>.`;function te(t){const n="fallback"in t&&{fallback:()=>t.fallback};return A(Jn(()=>t.each,t.children,n||void 0))}function ne(t){const n="fallback"in t&&{fallback:()=>t.fallback};return A(Un(()=>t.each,t.children,n||void 0))}function ee(t){const n=t.keyed,e=A(()=>t.when,void 0,void 0),r=n?e:A(e,void 0,{equals:(o,s)=>!o==!s});return A(()=>{const o=r();if(o){const s=t.children;return typeof s=="function"&&s.length>0?m(()=>s(n?o:()=>{if(!m(r))throw ln("Show");return e()})):s}return t.fallback},void 0,void 0)}function re(t){const n=Mt(()=>t.children),e=A(()=>{const r=n(),o=Array.isArray(r)?r:[r];let s=()=>{};for(let i=0;i<o.length;i++){const u=i,c=o[i],d=s,g=A(()=>d()?void 0:c.when,void 0,void 0),a=c.keyed?g:A(g,void 0,{equals:(w,S)=>!w==!S});s=()=>d()||(a()?[u,g,c]:void 0)}return s});return A(()=>{const r=e()();if(!r)return t.fallback;const[o,s,i]=r,u=i.children;return typeof u=="function"&&u.length>0?m(()=>u(i.keyed?s():()=>{var c;if(((c=m(e)())==null?void 0:c[0])!==o)throw ln("Match");return s()})):u},void 0,void 0)}function oe(t){return t}let yt;function se(t){let n;p.context&&p.load&&(n=p.load(p.getContextId()));const[e,r]=E(n,void 0);return yt||(yt=new Set),yt.add(r),tt(()=>yt.delete(r)),A(()=>{let o;if(o=e()){const s=t.fallback;return typeof s=="function"&&s.length?m(()=>s(o,()=>r())):s}return Tn(()=>t.children,r)},void 0,void 0)}const vt=Symbol("store-raw"),R=Symbol("store-node"),I=Symbol("store-has"),cn=Symbol("store-self");function an(t){let n=t[V];if(!n&&(Object.defineProperty(t,V,{value:n=new Proxy(t,le)}),!Array.isArray(t))){const e=Object.keys(t),r=Object.getOwnPropertyDescriptors(t),o=Object.getPrototypeOf(t),s=o!==null&&t!==null&&typeof t=="object"&&!Array.isArray(t)&&o!==Object.prototype;if(s){const i=Object.getOwnPropertyDescriptors(o);e.push(...Object.keys(i)),Object.assign(r,i)}for(let i=0,u=e.length;i<u;i++){const c=e[i];s&&c==="constructor"||r[c].get&&Object.defineProperty(t,c,{configurable:!0,enumerable:r[c].enumerable,get:r[c].get.bind(n)})}}return n}function B(t){let n;return t!=null&&typeof t=="object"&&(t[V]||!(n=Object.getPrototypeOf(t))||n===Object.prototype||Array.isArray(t))}function K(t,n=new Set){let e,r,o,s;if(e=t!=null&&t[vt])return e;if(!B(t)||n.has(t))return t;if(Array.isArray(t)){Object.isFrozen(t)?t=t.slice(0):n.add(t);for(let i=0,u=t.length;i<u;i++)o=t[i],(r=K(o,n))!==o&&(t[i]=r)}else{Object.isFrozen(t)?t=Object.assign({},t):n.add(t);const i=Object.keys(t),u=Object.getOwnPropertyDescriptors(t);for(let c=0,d=i.length;c<d;c++)s=i[c],!u[s].get&&(o=t[s],(r=K(o,n))!==o&&(t[s]=r))}return t}function bt(t,n){let e=t[n];return e||Object.defineProperty(t,n,{value:e=Object.create(null)}),e}function st(t,n,e){if(t[n])return t[n];const[r,o]=E(e,{equals:!1,internal:!0});return r.$=o,t[n]=r}function ie(t,n){const e=Reflect.getOwnPropertyDescriptor(t,n);return!e||e.get||!e.configurable||n===V||n===R||(delete e.value,delete e.writable,e.get=()=>t[V][n]),e}function fn(t){qt()&&st(bt(t,R),cn)()}function ue(t){return fn(t),Reflect.ownKeys(t)}const le={get(t,n,e){if(n===vt)return t;if(n===V)return e;if(n===X)return fn(t),e;const r=bt(t,R),o=r[n];let s=o?o():t[n];if(n===R||n===I||n==="__proto__")return s;if(!o){const i=Object.getOwnPropertyDescriptor(t,n);qt()&&(typeof s!="function"||t.hasOwnProperty(n))&&!(i&&i.get)&&(s=st(r,n,s)())}return B(s)?an(s):s},has(t,n){return n===vt||n===V||n===X||n===R||n===I||n==="__proto__"?!0:(qt()&&st(bt(t,I),n)(),n in t)},set(){return!0},deleteProperty(){return!0},ownKeys:ue,getOwnPropertyDescriptor:ie};function G(t,n,e,r=!1){if(n==="__proto__"||!r&&t[n]===e)return;const o=t[n],s=t.length;e===void 0?(delete t[n],t[I]&&t[I][n]&&o!==void 0&&t[I][n].$()):(t[n]=e,t[I]&&t[I][n]&&o===void 0&&t[I][n].$());let i=bt(t,R),u;if((u=st(i,n,o))&&u.$(()=>e),Array.isArray(t)&&t.length!==s){for(let c=t.length;c<s;c++)(u=i[c])&&u.$();(u=st(i,"length",s))&&u.$(t.length)}(u=i[cn])&&u.$()}function dn(t,n){const e=Object.keys(n);for(let r=0;r<e.length;r+=1){const o=e[r];gn(o)||G(t,o,n[o])}}function gn(t){return t==="__proto__"||t==="constructor"||t==="prototype"}function ce(t,n){if(typeof n=="function"&&(n=n(t)),n=K(n),Array.isArray(n)){if(t===n)return;let e=0,r=n.length;for(;e<r;e++){const o=n[e];t[e]!==o&&G(t,e,o)}G(t,"length",r)}else dn(t,n)}function it(t,n,e=[]){let r,o=t;if(n.length>1){r=n.shift();const i=typeof r,u=Array.isArray(t);if(i==="string"&&(r==="__proto__"||n.length>1&&gn(r)))return;if(Array.isArray(r)){for(let c=0;c<r.length;c++)it(t,[r[c]].concat(n),e);return}else if(u&&i==="function"){for(let c=0;c<t.length;c++)r(t[c],c)&&it(t,[c].concat(n),e);return}else if(u&&i==="object"){const{from:c=0,to:d=t.length-1,by:g=1}=r;for(let a=c;a<=d;a+=g)it(t,[a].concat(n),e);return}else if(n.length>1){it(t[r],n,[r].concat(e));return}o=t[r],e=[r].concat(e)}let s=n[0];typeof s=="function"&&(s=s(o,e),s===o)||r===void 0&&s==null||(s=K(s),r===void 0||B(o)&&B(s)&&!Array.isArray(s)?dn(o,s):G(t,r,s))}function hn(...[t,n]){const e=K(t||{}),r=Array.isArray(e),o=an(e);function s(...i){$n(()=>{r&&i.length===1?ce(e,i[0]):it(e,i)})}return[o,s]}const Ae=Symbol("store-root"),wt=new WeakMap,pn={get(t,n){if(n===vt)return t;const e=t[n];if(n===V||n===X||n===R||n===I||n==="__proto__")return e;let r;return B(e)?wt.get(e)||(wt.set(e,r=new Proxy(e,pn)),r):e},set(t,n,e){return G(t,n,K(e)),!0},deleteProperty(t,n){return G(t,n,void 0,!0),!0}};function yn(t){return n=>{if(B(n)){let e;(e=wt.get(n))||wt.set(n,e=new Proxy(n,pn)),t(e)}return n}}let j={};function vn(t){j.stack&&t.setAttribute("stack",j.stack),j.position&&t.setAttribute("position",j.position),j.max!==void 0&&t.setAttribute("max",String(j.max)),j.appearance&&t.setAttribute("appearance",j.appearance),j.inverse!==void 0&&(j.inverse?t.setAttribute("inverse",""):t.removeAttribute("inverse"))}function ae(t){j={...j,...t},!(typeof document>"u")&&document.querySelectorAll("kai-toast-region").forEach(n=>vn(n))}const fe=5e3,de=7e3,{toasts:It,setToasts:ut,mounted:ke,setMounted:ge}=F(()=>{const[t,n]=hn([]),[e,r]=E(!1);return{toasts:t,setToasts:n,mounted:e,setMounted:r}});let bn=0;function he(){return bn+=1,`toast-${bn}`}function pe(t){const n=t.duration??fe;return n===0?0:t.action?Math.max(n,de):n}const wn=new Map;function ye(t=null){if(typeof document>"u")return;const n=wn.get(t);if(n&&n.isConnected)return n;const e=document.createElement("kai-toast-region");return document.body.appendChild(e),e.toasts=It,t&&(e.target=t),vn(e),wn.set(t,e),ge(!0),e}function ve(t){const n=It.findIndex(e=>e.id===t.id);n>=0?ut(n,t):ut(yn(e=>{e.push(t)}))}function mn(t){ut(n=>n.filter(e=>e.id!==t))}function be(t){return{id:t,dismiss:()=>mn(t),update:n=>{const e=It.findIndex(r=>r.id===t);e>=0&&ut(e,r=>({...r,...n}))}}}function lt(t,n,e){ye(n?.target??null);const r=n?.id??he(),o={id:r,message:t,variant:n?.variant??e,appearance:n?.appearance??j.appearance??"pill",inverse:n?.inverse??j.inverse??!1,description:n?.description,action:n?.action,duration:n?.duration,dismissible:n?.dismissible,target:n?.target};return ve(o),be(r)}const we=Object.assign((t,n)=>lt(t,n,"neutral"),{success:(t,n)=>lt(t,n,"success"),warning:(t,n)=>lt(t,n,"warning"),error:(t,n)=>lt(t,n,"error"),info:(t,n)=>lt(t,n,"info"),dismiss:mn,clear:()=>ut([])}),me=typeof window<"u"&&typeof customElements<"u"?import("./register-impl-cKscku5m.js"):Promise.resolve();export{K as A,se as E,te as F,ne as I,oe as M,ee as S,F as a,Gt as b,A as c,_n as configureCodeHighlighting,ae as configureToasts,Qt as d,Wn as e,me as elementsReady,E as f,Hn as g,Xn as h,zn as i,qn as isCodeHighlightingEnabled,Bn as j,Ct as k,Zn as l,Qn as m,In as n,tt as o,Dn as p,En as q,Xt as r,p as s,Pn as t,we as toast,m as u,re as v,Mt as w,pe as x,hn as y,yn as z};
1
+ const Sn={bash:()=>import("./bash-InADTalH.js"),javascript:()=>import("./javascript-C25yR2R2.js"),typescript:()=>import("./typescript-RycA9KXf.js"),tsx:()=>import("./tsx-B8rCNbgL.js"),html:()=>import("./html-CPZ3oZQ7.js"),css:()=>import("./css-M7EaDHN_.js"),json:()=>import("./json-DxJze_jm.js"),vue:()=>import("./vue-BmIZj4XD.js"),svelte:()=>import("./svelte--5p79yCD.js")},On={"github-dark-dimmed":()=>import("./github-dark-dimmed-DUshB20C.js"),"github-light":()=>import("./github-light-JYsPkUQd.js")},xn={js:"javascript",ts:"typescript",jsx:"tsx",sh:"bash",shell:"bash"},Nt="github-dark-dimmed";let Ot=!0,xt={...Sn},At={...On},kt={...xn},jt=null;const zt=new Set,Ft=new Set;function An(){return jt||(jt=(async()=>{const[{createHighlighterCore:t},{createJavaScriptRegexEngine:n}]=await Promise.all([import("./core-C8fzo39E.js"),import("./engine-javascript-C1x7zo1_.js")]);return t({themes:[],langs:[],engine:n()})})()),jt}function Rt(t){return kt[t]??t}async function kn(t,n){const e=Rt(n);if(zt.has(e))return!0;const r=xt[e];return r?(await t.loadLanguage(r()),zt.add(e),!0):!1}async function Kt(t,n){if(Ft.has(n))return!0;const e=At[n];return e?(await t.loadTheme(e()),Ft.add(n),!0):!1}function jn(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function ct(t){return`<pre><code>${jn(t)}</code></pre>`}async function Pn(t,n,e){if(!Ot||!t)return ct(t);try{const r=await An();if(!await kn(r,n))return ct(t);const o=await Kt(r,e)?e:await Kt(r,Nt)?Nt:null;return o?r.codeToHtml(t,{lang:Rt(n),theme:o}):ct(t)}catch{return ct(t)}}function _n(t){t.enabled!==void 0&&(Ot=t.enabled),t.languages&&(xt={...xt,...t.languages}),t.themes&&(At={...At,...t.themes}),t.aliases&&(kt={...kt,...t.aliases})}function qn(){return Ot}const p={context:void 0,registry:void 0,effects:void 0,done:!1,getContextId(){return Lt(this.context.count)},getNextContextId(){return Lt(this.context.count++)}};function Lt(t){const n=String(t),e=n.length-1;return p.context.id+(e?String.fromCharCode(96+e):"")+n}function Pt(t){p.context=t}function Cn(){return{...p.context,id:p.getNextContextId(),count:0}}const Se=!1,Mn=(t,n)=>t===n,V=Symbol("solid-proxy"),Jt=typeof Proxy=="function",X=Symbol("solid-track"),Oe=Symbol("solid-dev-component"),at={equals:Mn};let Y=null,Ut=en;const P=1,Z=2,Wt={owned:null,cleanups:null,context:null,owner:null},_t={};var f=null;let l=null,J=null,U=null,h=null,b=null,O=null,ft=0;function F(t,n){const e=h,r=f,o=t.length===0,s=n===void 0?r:n,i=o?Wt:{owned:null,cleanups:null,context:s?s.context:null,owner:s},u=o?t:()=>t(()=>m(()=>z(i)));f=i,h=null;try{return k(u,!0)}finally{h=e,f=r}}function E(t,n){n=n?Object.assign({},at,n):at;const e={value:t,observers:null,observerSlots:null,comparator:n.equals||void 0},r=o=>(typeof o=="function"&&(l&&l.running&&l.sources.has(e)?o=o(e.tValue):o=o(e.value)),tn(e,o));return[Zt.bind(e),r]}function Bt(t,n,e){const r=et(t,n,!0,P);J&&l&&l.running?b.push(r):W(r)}function Gt(t,n,e){const r=et(t,n,!1,P);J&&l&&l.running?b.push(r):W(r)}function Qt(t,n,e){Ut=Kn;const r=et(t,n,!1,P),o=nt&&Ct(nt);o&&(r.suspense=o),(!e||!e.render)&&(r.user=!0),O?O.push(r):W(r)}function A(t,n,e){e=e?Object.assign({},at,e):at;const r=et(t,n,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=e.equals||void 0,J&&l&&l.running?(r.tState=P,b.push(r)):W(r),Zt.bind(r)}function Vn(t){return t&&typeof t=="object"&&"then"in t}function En(t,n,e){let r,o,s;typeof n=="function"?(r=t,o=n,s=e||{}):(r=!0,o=t,s=n||{});let i=null,u=_t,c=null,d=!1,g=!1,a="initialValue"in s,w=typeof r=="function"&&A(r);const S=new Set,[_,D]=(s.storage||E)(s.initialValue),[N,L]=E(void 0),[q,C]=E(void 0,{equals:!1}),[M,T]=E(a?"ready":"unresolved");p.context&&(c=p.getNextContextId(),s.ssrLoadFrom==="initial"?u=s.initialValue:p.load&&p.has(c)&&(u=p.load(c)));function H(y,v,$,x){return i===y&&(i=null,x!==void 0&&(a=!0),(y===u||v===u)&&s.onHydrated&&queueMicrotask(()=>s.onHydrated(x,{value:v})),u=_t,l&&y&&d?(l.promises.delete(y),d=!1,k(()=>{l.running=!0,Tt(v,$)},!1)):Tt(v,$)),v}function Tt(y,v){k(()=>{v===void 0&&D(()=>y),T(v!==void 0?"errored":a?"ready":"unresolved"),L(v);for(const $ of S.keys())$.decrement();S.clear()},!1)}function mt(){const y=nt&&Ct(nt),v=_(),$=N();if($!==void 0&&!i)throw $;return h&&!h.user&&y&&Bt(()=>{q(),i&&(y.resolved&&l&&d?l.promises.add(i):S.has(y)||(y.increment(),S.add(y)))}),v}function St(y=!0){if(y!==!1&&g)return;g=!1;const v=w?w():r;if(d=l&&l.running,v==null||v===!1){H(i,m(_));return}l&&i&&l.promises.delete(i);let $;const x=u!==_t?u:m(()=>{try{return o(v,{value:_(),refetching:y})}catch(Q){$=Q}});if($!==void 0){H(i,void 0,gt($),v);return}else if(!Vn(x))return H(i,x,void 0,v),x;return i=x,"v"in x?(x.s===1?H(i,x.v,void 0,v):H(i,void 0,gt(x.v),v),x):(g=!0,queueMicrotask(()=>g=!1),k(()=>{T(a?"refreshing":"pending"),C()},!1),x.then(Q=>H(x,Q,void 0,v),Q=>H(x,void 0,gt(Q),v)))}Object.defineProperties(mt,{state:{get:()=>M()},error:{get:()=>N()},loading:{get(){const y=M();return y==="pending"||y==="refreshing"}},latest:{get(){if(!a)return mt();const y=N();if(y&&!i)throw y;return _()}}});let Ht=f;return w?Bt(()=>(Ht=f,St(!1))):St(!1),[mt,{refetch:y=>Xt(Ht,()=>St(y)),mutate:D}]}function $n(t){return k(t,!1)}function m(t){if(!U&&h===null)return t();const n=h;h=null;try{return U?U.untrack(t):t()}finally{h=n}}function Dn(t,n,e){const r=Array.isArray(t);let o,s=e&&e.defer;return i=>{let u;if(r){u=Array(t.length);for(let d=0;d<t.length;d++)u[d]=t[d]()}else u=t();if(s)return s=!1,i;const c=m(()=>n(u,o,i));return o=u,c}}function In(t){Qt(()=>m(t))}function tt(t){return f===null||(f.cleanups===null?f.cleanups=[t]:f.cleanups.push(t)),t}function Tn(t,n){Y||(Y=Symbol("error")),f=et(void 0,void 0,!0),f.context={...f.context,[Y]:[n]},l&&l.running&&l.sources.add(f);try{return t()}catch(e){ot(e)}finally{f=f.owner}}function qt(){return h}function Hn(){return f}function Xt(t,n){const e=f,r=h;f=t,h=null;try{return k(n,!0)}catch(o){ot(o)}finally{f=e,h=r}}function Nn(t){if(l&&l.running)return t(),l.done;const n=h,e=f;return Promise.resolve().then(()=>{h=n,f=e;let r;return(J||nt)&&(r=l||(l={sources:new Set,effects:[],promises:new Set,disposed:new Set,queue:new Set,running:!0}),r.done||(r.done=new Promise(o=>r.resolve=o)),r.running=!0),k(t,!1),h=f=null,r?r.done:void 0})}const[xe,Yt]=E(!1);function zn(t,n){const e=Symbol("context");return{id:e,Provider:Ln(e),defaultValue:t}}function Ct(t){let n;return f&&f.context&&(n=f.context[t.id])!==void 0?n:t.defaultValue}function Mt(t){const n=A(t),e=A(()=>Vt(n()));return e.toArray=()=>{const r=e();return Array.isArray(r)?r:r!=null?[r]:[]},e}let nt;function Zt(){const t=l&&l.running;if(this.sources&&(t?this.tState:this.state))if((t?this.tState:this.state)===P)W(this);else{const n=b;b=null,k(()=>dt(this),!1),b=n}if(h){const n=this.observers;if(!n||n[n.length-1]!==h){const e=n?n.length:0;h.sources?(h.sources.push(this),h.sourceSlots.push(e)):(h.sources=[this],h.sourceSlots=[e]),n?(n.push(h),this.observerSlots.push(h.sources.length-1)):(this.observers=[h],this.observerSlots=[h.sources.length-1])}}return t&&l.sources.has(this)?this.tValue:this.value}function tn(t,n,e){let r=l&&l.running&&l.sources.has(t)?t.tValue:t.value;if(!t.comparator||!t.comparator(r,n)){if(l){const o=l.running;(o||!e&&l.sources.has(t))&&(l.sources.add(t),t.tValue=n),o||(t.value=n)}else t.value=n;t.observers&&t.observers.length&&k(()=>{for(let o=0;o<t.observers.length;o+=1){const s=t.observers[o],i=l&&l.running;i&&l.disposed.has(s)||((i?!s.tState:!s.state)&&(s.pure?b.push(s):O.push(s),s.observers&&rn(s)),i?s.tState=P:s.state=P)}if(b.length>1e6)throw b=[],new Error},!1)}return n}function W(t){if(!t.fn)return;z(t);const n=ft;nn(t,l&&l.running&&l.sources.has(t)?t.tValue:t.value,n),l&&!l.running&&l.sources.has(t)&&queueMicrotask(()=>{k(()=>{l&&(l.running=!0),h=f=t,nn(t,t.tValue,n),h=f=null},!1)})}function nn(t,n,e){let r;const o=f,s=h;h=f=t;try{r=t.fn(n)}catch(i){return t.pure&&(l&&l.running?(t.tState=P,t.tOwned&&t.tOwned.forEach(z),t.tOwned=void 0):(t.state=P,t.owned&&t.owned.forEach(z),t.owned=null)),t.updatedAt=e+1,ot(i)}finally{h=s,f=o}(!t.updatedAt||t.updatedAt<=e)&&(t.updatedAt!=null&&"observers"in t?tn(t,r,!0):l&&l.running&&t.pure?(l.sources.has(t)||(t.value=r),l.sources.add(t),t.tValue=r):t.value=r,t.updatedAt=e)}function et(t,n,e,r=P,o){const s={fn:t,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:n,owner:f,context:f?f.context:null,pure:e};if(l&&l.running&&(s.state=0,s.tState=r),f===null||f!==Wt&&(l&&l.running&&f.pure?f.tOwned?f.tOwned.push(s):f.tOwned=[s]:f.owned?f.owned.push(s):f.owned=[s]),U&&s.fn){const i=s.fn,[u,c]=E(void 0,{equals:!1}),d=U.factory(i,c);tt(()=>d.dispose());let g;const a=()=>Nn(c).then(()=>{g&&(g.dispose(),g=void 0)});s.fn=w=>(u(),l&&l.running?(g||(g=U.factory(i,a)),g.track(w)):d.track(w))}return s}function rt(t){const n=l&&l.running;if((n?t.tState:t.state)===0)return;if((n?t.tState:t.state)===Z)return dt(t);if(t.suspense&&m(t.suspense.inFallback))return t.suspense.effects.push(t);const e=[t];for(;(t=t.owner)&&(!t.updatedAt||t.updatedAt<ft);){if(n&&l.disposed.has(t))return;(n?t.tState:t.state)&&e.push(t)}for(let r=e.length-1;r>=0;r--){if(t=e[r],n){let o=t,s=e[r+1];for(;(o=o.owner)&&o!==s;)if(l.disposed.has(o))return}if((n?t.tState:t.state)===P)W(t);else if((n?t.tState:t.state)===Z){const o=b;b=null,k(()=>dt(t,e[0]),!1),b=o}}}function k(t,n){if(b)return t();let e=!1;n||(b=[]),O?e=!0:O=[],ft++;try{const r=t();return Fn(e),r}catch(r){e||(O=null),b=null,ot(r)}}function Fn(t){if(b&&(J&&l&&l.running?Rn(b):en(b),b=null),t)return;let n;if(l){if(!l.promises.size&&!l.queue.size){const r=l.sources,o=l.disposed;O.push.apply(O,l.effects),n=l.resolve;for(const s of O)"tState"in s&&(s.state=s.tState),delete s.tState;l=null,k(()=>{for(const s of o)z(s);for(const s of r){if(s.value=s.tValue,s.owned)for(let i=0,u=s.owned.length;i<u;i++)z(s.owned[i]);s.tOwned&&(s.owned=s.tOwned),delete s.tValue,delete s.tOwned,s.tState=0}Yt(!1)},!1)}else if(l.running){l.running=!1,l.effects.push.apply(l.effects,O),O=null,Yt(!0);return}}const e=O;O=null,e.length&&k(()=>Ut(e),!1),n&&n()}function en(t){for(let n=0;n<t.length;n++)rt(t[n])}function Rn(t){for(let n=0;n<t.length;n++){const e=t[n],r=l.queue;r.has(e)||(r.add(e),J(()=>{r.delete(e),k(()=>{l.running=!0,rt(e)},!1),l&&(l.running=!1)}))}}function Kn(t){let n,e=0;for(n=0;n<t.length;n++){const r=t[n];r.user?t[e++]=r:rt(r)}if(p.context){if(p.count){p.effects||(p.effects=[]),p.effects.push(...t.slice(0,e));return}Pt()}for(p.effects&&(p.done||!p.count)&&(t=[...p.effects,...t],e+=p.effects.length,delete p.effects),n=0;n<e;n++)rt(t[n])}function dt(t,n){const e=l&&l.running;e?t.tState=0:t.state=0;for(let r=0;r<t.sources.length;r+=1){const o=t.sources[r];if(o.sources){const s=e?o.tState:o.state;s===P?o!==n&&(!o.updatedAt||o.updatedAt<ft)&&rt(o):s===Z&&dt(o,n)}}}function rn(t){const n=l&&l.running;for(let e=0;e<t.observers.length;e+=1){const r=t.observers[e];(n?!r.tState:!r.state)&&(n?r.tState=Z:r.state=Z,r.pure?b.push(r):O.push(r),r.observers&&rn(r))}}function z(t){let n;if(t.sources)for(;t.sources.length;){const e=t.sources.pop(),r=t.sourceSlots.pop(),o=e.observers;if(o&&o.length){const s=o.pop(),i=e.observerSlots.pop();r<o.length&&(s.sourceSlots[i]=r,o[r]=s,e.observerSlots[r]=i)}}if(t.tOwned){for(n=t.tOwned.length-1;n>=0;n--)z(t.tOwned[n]);delete t.tOwned}if(l&&l.running&&t.pure)on(t,!0);else if(t.owned){for(n=t.owned.length-1;n>=0;n--)z(t.owned[n]);t.owned=null}if(t.cleanups){for(n=t.cleanups.length-1;n>=0;n--)t.cleanups[n]();t.cleanups=null}l&&l.running?t.tState=0:t.state=0}function on(t,n){if(n||(t.tState=0,l.disposed.add(t)),t.owned)for(let e=0;e<t.owned.length;e++)on(t.owned[e])}function gt(t){return t instanceof Error?t:new Error(typeof t=="string"?t:"Unknown error",{cause:t})}function sn(t,n,e){try{for(const r of n)r(t)}catch(r){ot(r,e&&e.owner||null)}}function ot(t,n=f){const e=Y&&n&&n.context&&n.context[Y],r=gt(t);if(!e)throw r;O?O.push({fn(){sn(r,e,n)},state:P}):sn(r,e,n)}function Vt(t){if(typeof t=="function"&&!t.length)return Vt(t());if(Array.isArray(t)){const n=[];for(let e=0;e<t.length;e++){const r=Vt(t[e]);if(Array.isArray(r))if(r.length<32768)n.push.apply(n,r);else for(let o=0;o<r.length;o++)n.push(r[o]);else n.push(r)}return n}return t}function Ln(t,n){return function(e){let r;return Gt(()=>r=m(()=>(f.context={...f.context,[t]:e.value},Mt(()=>e.children))),void 0),r}}const Et=Symbol("fallback");function ht(t){for(let n=0;n<t.length;n++)t[n]()}function Jn(t,n,e={}){let r=[],o=[],s=[],i=0,u=n.length>1?[]:null;return tt(()=>ht(s)),()=>{let c=t()||[],d=c.length,g,a;return c[X],m(()=>{let S,_,D,N,L,q,C,M,T;if(d===0)i!==0&&(ht(s),s=[],r=[],o=[],i=0,u&&(u=[])),e.fallback&&(r=[Et],o[0]=F(H=>(s[0]=H,e.fallback())),i=1);else if(i===0){for(o=new Array(d),a=0;a<d;a++)r[a]=c[a],o[a]=F(w);i=d}else{for(D=new Array(d),N=new Array(d),u&&(L=new Array(d)),q=0,C=Math.min(i,d);q<C&&r[q]===c[q];q++);for(C=i-1,M=d-1;C>=q&&M>=q&&r[C]===c[M];C--,M--)D[M]=o[C],N[M]=s[C],u&&(L[M]=u[C]);for(S=new Map,_=new Array(M+1),a=M;a>=q;a--)T=c[a],g=S.get(T),_[a]=g===void 0?-1:g,S.set(T,a);for(g=q;g<=C;g++)T=r[g],a=S.get(T),a!==void 0&&a!==-1?(D[a]=o[g],N[a]=s[g],u&&(L[a]=u[g]),a=_[a],S.set(T,a)):s[g]();for(a=q;a<d;a++)a in D?(o[a]=D[a],s[a]=N[a],u&&(u[a]=L[a],u[a](a))):o[a]=F(w);o=o.slice(0,i=d),r=c.slice(0)}return o});function w(S){if(s[a]=S,u){const[_,D]=E(a);return u[a]=D,n(c[a],_)}return n(c[a])}}}function Un(t,n,e={}){let r=[],o=[],s=[],i=[],u=0,c;return tt(()=>ht(s)),()=>{const d=t()||[],g=d.length;return d[X],m(()=>{if(g===0)return u!==0&&(ht(s),s=[],r=[],o=[],u=0,i=[]),e.fallback&&(r=[Et],o[0]=F(w=>(s[0]=w,e.fallback())),u=1),o;for(r[0]===Et&&(s[0](),s=[],r=[],o=[],u=0),c=0;c<g;c++)c<r.length&&r[c]!==d[c]?i[c](()=>d[c]):c>=r.length&&(o[c]=F(a));for(;c<r.length;c++)s[c]();return u=i.length=s.length=g,r=d.slice(0),o=o.slice(0,u)});function a(w){s[c]=w;const[S,_]=E(d[c]);return i[c]=_,n(S,c)}}}let un=!1;function Wn(){un=!0}function Bn(t,n){if(un&&p.context){const e=p.context;Pt(Cn());const r=m(()=>t(n||{}));return Pt(e),r}return m(()=>t(n||{}))}function pt(){return!0}const $t={get(t,n,e){return n===V?e:t.get(n)},has(t,n){return n===V?!0:t.has(n)},set:pt,deleteProperty:pt,getOwnPropertyDescriptor(t,n){return{configurable:!0,enumerable:!0,get(){return t.get(n)},set:pt,deleteProperty:pt}},ownKeys(t){return t.keys()}};function Dt(t){return(t=typeof t=="function"?t():t)?t:{}}function Gn(){for(let t=0,n=this.length;t<n;++t){const e=this[t]();if(e!==void 0)return e}}function Qn(...t){let n=!1;for(let i=0;i<t.length;i++){const u=t[i];n=n||!!u&&V in u,t[i]=typeof u=="function"?(n=!0,A(u)):u}if(Jt&&n)return new Proxy({get(i){for(let u=t.length-1;u>=0;u--){const c=Dt(t[u])[i];if(c!==void 0)return c}},has(i){for(let u=t.length-1;u>=0;u--)if(i in Dt(t[u]))return!0;return!1},keys(){const i=[];for(let u=0;u<t.length;u++)i.push(...Object.keys(Dt(t[u])));return[...new Set(i)]}},$t);const e={},r=Object.create(null);for(let i=t.length-1;i>=0;i--){const u=t[i];if(!u)continue;const c=Object.getOwnPropertyNames(u);for(let d=c.length-1;d>=0;d--){const g=c[d];if(g==="__proto__"||g==="constructor")continue;const a=Object.getOwnPropertyDescriptor(u,g);if(!r[g])r[g]=a.get?{enumerable:!0,configurable:!0,get:Gn.bind(e[g]=[a.get.bind(u)])}:a.value!==void 0?a:void 0;else{const w=e[g];w&&(a.get?w.push(a.get.bind(u)):a.value!==void 0&&w.push(()=>a.value))}}}const o={},s=Object.keys(r);for(let i=s.length-1;i>=0;i--){const u=s[i],c=r[u];c&&c.get?Object.defineProperty(o,u,c):o[u]=c?c.value:void 0}return o}function Xn(t,...n){const e=n.length;if(Jt&&V in t){const o=e>1?n.flat():n[0],s=n.map(i=>new Proxy({get(u){return i.includes(u)?t[u]:void 0},has(u){return i.includes(u)&&u in t},keys(){return i.filter(u=>u in t)}},$t));return s.push(new Proxy({get(i){return o.includes(i)?void 0:t[i]},has(i){return o.includes(i)?!1:i in t},keys(){return Object.keys(t).filter(i=>!o.includes(i))}},$t)),s}const r=[];for(let o=0;o<=e;o++)r[o]={};for(const o of Object.getOwnPropertyNames(t)){let s=e;for(let u=0;u<n.length;u++)if(n[u].includes(o)){s=u;break}const i=Object.getOwnPropertyDescriptor(t,o);!i.get&&!i.set&&i.enumerable&&i.writable&&i.configurable?r[s][o]=i.value:Object.defineProperty(r[s],o,i)}return r}let Yn=0;function Zn(){return p.context?p.getNextContextId():`cl-${Yn++}`}const ln=t=>`Stale read from <${t}>.`;function te(t){const n="fallback"in t&&{fallback:()=>t.fallback};return A(Jn(()=>t.each,t.children,n||void 0))}function ne(t){const n="fallback"in t&&{fallback:()=>t.fallback};return A(Un(()=>t.each,t.children,n||void 0))}function ee(t){const n=t.keyed,e=A(()=>t.when,void 0,void 0),r=n?e:A(e,void 0,{equals:(o,s)=>!o==!s});return A(()=>{const o=r();if(o){const s=t.children;return typeof s=="function"&&s.length>0?m(()=>s(n?o:()=>{if(!m(r))throw ln("Show");return e()})):s}return t.fallback},void 0,void 0)}function re(t){const n=Mt(()=>t.children),e=A(()=>{const r=n(),o=Array.isArray(r)?r:[r];let s=()=>{};for(let i=0;i<o.length;i++){const u=i,c=o[i],d=s,g=A(()=>d()?void 0:c.when,void 0,void 0),a=c.keyed?g:A(g,void 0,{equals:(w,S)=>!w==!S});s=()=>d()||(a()?[u,g,c]:void 0)}return s});return A(()=>{const r=e()();if(!r)return t.fallback;const[o,s,i]=r,u=i.children;return typeof u=="function"&&u.length>0?m(()=>u(i.keyed?s():()=>{var c;if(((c=m(e)())==null?void 0:c[0])!==o)throw ln("Match");return s()})):u},void 0,void 0)}function oe(t){return t}let yt;function se(t){let n;p.context&&p.load&&(n=p.load(p.getContextId()));const[e,r]=E(n,void 0);return yt||(yt=new Set),yt.add(r),tt(()=>yt.delete(r)),A(()=>{let o;if(o=e()){const s=t.fallback;return typeof s=="function"&&s.length?m(()=>s(o,()=>r())):s}return Tn(()=>t.children,r)},void 0,void 0)}const vt=Symbol("store-raw"),R=Symbol("store-node"),I=Symbol("store-has"),cn=Symbol("store-self");function an(t){let n=t[V];if(!n&&(Object.defineProperty(t,V,{value:n=new Proxy(t,le)}),!Array.isArray(t))){const e=Object.keys(t),r=Object.getOwnPropertyDescriptors(t),o=Object.getPrototypeOf(t),s=o!==null&&t!==null&&typeof t=="object"&&!Array.isArray(t)&&o!==Object.prototype;if(s){const i=Object.getOwnPropertyDescriptors(o);e.push(...Object.keys(i)),Object.assign(r,i)}for(let i=0,u=e.length;i<u;i++){const c=e[i];s&&c==="constructor"||r[c].get&&Object.defineProperty(t,c,{configurable:!0,enumerable:r[c].enumerable,get:r[c].get.bind(n)})}}return n}function B(t){let n;return t!=null&&typeof t=="object"&&(t[V]||!(n=Object.getPrototypeOf(t))||n===Object.prototype||Array.isArray(t))}function K(t,n=new Set){let e,r,o,s;if(e=t!=null&&t[vt])return e;if(!B(t)||n.has(t))return t;if(Array.isArray(t)){Object.isFrozen(t)?t=t.slice(0):n.add(t);for(let i=0,u=t.length;i<u;i++)o=t[i],(r=K(o,n))!==o&&(t[i]=r)}else{Object.isFrozen(t)?t=Object.assign({},t):n.add(t);const i=Object.keys(t),u=Object.getOwnPropertyDescriptors(t);for(let c=0,d=i.length;c<d;c++)s=i[c],!u[s].get&&(o=t[s],(r=K(o,n))!==o&&(t[s]=r))}return t}function bt(t,n){let e=t[n];return e||Object.defineProperty(t,n,{value:e=Object.create(null)}),e}function st(t,n,e){if(t[n])return t[n];const[r,o]=E(e,{equals:!1,internal:!0});return r.$=o,t[n]=r}function ie(t,n){const e=Reflect.getOwnPropertyDescriptor(t,n);return!e||e.get||!e.configurable||n===V||n===R||(delete e.value,delete e.writable,e.get=()=>t[V][n]),e}function fn(t){qt()&&st(bt(t,R),cn)()}function ue(t){return fn(t),Reflect.ownKeys(t)}const le={get(t,n,e){if(n===vt)return t;if(n===V)return e;if(n===X)return fn(t),e;const r=bt(t,R),o=r[n];let s=o?o():t[n];if(n===R||n===I||n==="__proto__")return s;if(!o){const i=Object.getOwnPropertyDescriptor(t,n);qt()&&(typeof s!="function"||t.hasOwnProperty(n))&&!(i&&i.get)&&(s=st(r,n,s)())}return B(s)?an(s):s},has(t,n){return n===vt||n===V||n===X||n===R||n===I||n==="__proto__"?!0:(qt()&&st(bt(t,I),n)(),n in t)},set(){return!0},deleteProperty(){return!0},ownKeys:ue,getOwnPropertyDescriptor:ie};function G(t,n,e,r=!1){if(n==="__proto__"||!r&&t[n]===e)return;const o=t[n],s=t.length;e===void 0?(delete t[n],t[I]&&t[I][n]&&o!==void 0&&t[I][n].$()):(t[n]=e,t[I]&&t[I][n]&&o===void 0&&t[I][n].$());let i=bt(t,R),u;if((u=st(i,n,o))&&u.$(()=>e),Array.isArray(t)&&t.length!==s){for(let c=t.length;c<s;c++)(u=i[c])&&u.$();(u=st(i,"length",s))&&u.$(t.length)}(u=i[cn])&&u.$()}function dn(t,n){const e=Object.keys(n);for(let r=0;r<e.length;r+=1){const o=e[r];gn(o)||G(t,o,n[o])}}function gn(t){return t==="__proto__"||t==="constructor"||t==="prototype"}function ce(t,n){if(typeof n=="function"&&(n=n(t)),n=K(n),Array.isArray(n)){if(t===n)return;let e=0,r=n.length;for(;e<r;e++){const o=n[e];t[e]!==o&&G(t,e,o)}G(t,"length",r)}else dn(t,n)}function it(t,n,e=[]){let r,o=t;if(n.length>1){r=n.shift();const i=typeof r,u=Array.isArray(t);if(i==="string"&&(r==="__proto__"||n.length>1&&gn(r)))return;if(Array.isArray(r)){for(let c=0;c<r.length;c++)it(t,[r[c]].concat(n),e);return}else if(u&&i==="function"){for(let c=0;c<t.length;c++)r(t[c],c)&&it(t,[c].concat(n),e);return}else if(u&&i==="object"){const{from:c=0,to:d=t.length-1,by:g=1}=r;for(let a=c;a<=d;a+=g)it(t,[a].concat(n),e);return}else if(n.length>1){it(t[r],n,[r].concat(e));return}o=t[r],e=[r].concat(e)}let s=n[0];typeof s=="function"&&(s=s(o,e),s===o)||r===void 0&&s==null||(s=K(s),r===void 0||B(o)&&B(s)&&!Array.isArray(s)?dn(o,s):G(t,r,s))}function hn(...[t,n]){const e=K(t||{}),r=Array.isArray(e),o=an(e);function s(...i){$n(()=>{r&&i.length===1?ce(e,i[0]):it(e,i)})}return[o,s]}const Ae=Symbol("store-root"),wt=new WeakMap,pn={get(t,n){if(n===vt)return t;const e=t[n];if(n===V||n===X||n===R||n===I||n==="__proto__")return e;let r;return B(e)?wt.get(e)||(wt.set(e,r=new Proxy(e,pn)),r):e},set(t,n,e){return G(t,n,K(e)),!0},deleteProperty(t,n){return G(t,n,void 0,!0),!0}};function yn(t){return n=>{if(B(n)){let e;(e=wt.get(n))||wt.set(n,e=new Proxy(n,pn)),t(e)}return n}}let j={};function vn(t){j.stack&&t.setAttribute("stack",j.stack),j.position&&t.setAttribute("position",j.position),j.max!==void 0&&t.setAttribute("max",String(j.max)),j.appearance&&t.setAttribute("appearance",j.appearance),j.inverse!==void 0&&(j.inverse?t.setAttribute("inverse",""):t.removeAttribute("inverse"))}function ae(t){j={...j,...t},!(typeof document>"u")&&document.querySelectorAll("kai-toast-region").forEach(n=>vn(n))}const fe=5e3,de=7e3,{toasts:It,setToasts:ut,mounted:ke,setMounted:ge}=F(()=>{const[t,n]=hn([]),[e,r]=E(!1);return{toasts:t,setToasts:n,mounted:e,setMounted:r}});let bn=0;function he(){return bn+=1,`toast-${bn}`}function pe(t){const n=t.duration??fe;return n===0?0:t.action?Math.max(n,de):n}const wn=new Map;function ye(t=null){if(typeof document>"u")return;const n=wn.get(t);if(n&&n.isConnected)return n;const e=document.createElement("kai-toast-region");return document.body.appendChild(e),e.toasts=It,t&&(e.target=t),vn(e),wn.set(t,e),ge(!0),e}function ve(t){const n=It.findIndex(e=>e.id===t.id);n>=0?ut(n,t):ut(yn(e=>{e.push(t)}))}function mn(t){ut(n=>n.filter(e=>e.id!==t))}function be(t){return{id:t,dismiss:()=>mn(t),update:n=>{const e=It.findIndex(r=>r.id===t);e>=0&&ut(e,r=>({...r,...n}))}}}function lt(t,n,e){ye(n?.target??null);const r=n?.id??he(),o={id:r,message:t,variant:n?.variant??e,appearance:n?.appearance??j.appearance??"pill",inverse:n?.inverse??j.inverse??!1,description:n?.description,action:n?.action,duration:n?.duration,dismissible:n?.dismissible,target:n?.target};return ve(o),be(r)}const we=Object.assign((t,n)=>lt(t,n,"neutral"),{success:(t,n)=>lt(t,n,"success"),warning:(t,n)=>lt(t,n,"warning"),error:(t,n)=>lt(t,n,"error"),info:(t,n)=>lt(t,n,"info"),dismiss:mn,clear:()=>ut([])}),me=typeof window<"u"&&typeof customElements<"u"?import("./register-impl-CaaHJcea.js"):Promise.resolve();export{K as A,se as E,te as F,ne as I,oe as M,ee as S,F as a,Gt as b,A as c,_n as configureCodeHighlighting,ae as configureToasts,Qt as d,Wn as e,me as elementsReady,E as f,Hn as g,Xn as h,zn as i,qn as isCodeHighlightingEnabled,Bn as j,Ct as k,Zn as l,Qn as m,In as n,tt as o,Dn as p,En as q,Xt as r,p as s,Pn as t,we as toast,m as u,re as v,Mt as w,pe as x,hn as y,yn as z};
@@ -3,7 +3,7 @@
3
3
 
4
4
  # @kitn.ai/ui
5
5
 
6
- > Framework-agnostic, Shadow-DOM web components for building AI chat interfaces — works in React, Vue, Angular, Svelte, or plain HTML. 78 custom elements, every one prefixed `kai-` (e.g. `<kai-chat>`, `<kai-artifact>`): streaming responses, markdown + code rendering, reasoning/tool panels, attachments, conversation sidebar, voice input. Zero framework dependency for consumers; the SolidJS runtime it is authored in is bundled in, so the host needs nothing.
6
+ > Framework-agnostic, Shadow-DOM web components for building AI chat interfaces — works in React, Vue, Angular, Svelte, or plain HTML. 79 custom elements, every one prefixed `kai-` (e.g. `<kai-chat>`, `<kai-artifact>`): streaming responses, markdown + code rendering, reasoning/tool panels, attachments, conversation sidebar, voice input. Zero framework dependency for consumers; the SolidJS runtime it is authored in is bundled in, so the host needs nothing.
7
7
 
8
8
  ## Install
9
9
 
@@ -37,7 +37,7 @@ Drop an element into any framework (React, Vue, plain HTML). Data in via JS prop
37
37
  - `<kai-prompt-input>` — standalone composer with send button.
38
38
 
39
39
  **Layer 2 — composable primitives** (`import { … } from '@kitn.ai/ui'`):
40
- All 78 elements are also exported individually. Use them for custom layouts or features `<kai-chat>` does not expose (ChainOfThought, FeedbackBar, ThinkingBar, VoiceInput, …). Your bundler tree-shakes the rest.
40
+ All 79 elements are also exported individually. Use them for custom layouts or features `<kai-chat>` does not expose (ChainOfThought, FeedbackBar, ThinkingBar, VoiceInput, …). Your bundler tree-shakes the rest.
41
41
 
42
42
  ## Key rules for the web components
43
43
 
@@ -99,7 +99,7 @@ For Tailwind builds: `@import "@kitn.ai/ui/theme.css"` in your CSS.
99
99
 
100
100
  ## Docs
101
101
 
102
- - Full element reference (all 78 elements, every prop/event): ./llms-full.txt — https://kitn.dev/llms-full.txt
102
+ - Full element reference (all 79 elements, every prop/event): ./llms-full.txt — https://kitn.dev/llms-full.txt
103
103
  - Machine-readable Custom Elements Manifest: https://unpkg.com/@kitn.ai/ui/dist/custom-elements.json
104
104
  - Working examples: https://github.com/kitn-ai/ui/tree/main/examples
105
105
  - Storybook: https://storybook.kitn.dev
@@ -173,7 +173,7 @@ The same rule applies to every array/object property (`models`, `context`, `sugg
173
173
 
174
174
  ---
175
175
 
176
- ## Element reference (78 elements, generated from custom-elements.json)
176
+ ## Element reference (79 elements, generated from custom-elements.json)
177
177
 
178
178
  Every element also accepts the `theme` attribute. Array/object properties are marked with a `—` attribute: they must be set as JS properties.
179
179
 
@@ -1487,6 +1487,7 @@ _No events._
1487
1487
  |---|---|---|---|
1488
1488
  | `orientation` | `orientation` | `undefined \| "vertical" \| "horizontal"` | Layout axis: `horizontal` (row, default) or `vertical` (column). |
1489
1489
  | `maximizedIndex` | — | `undefined \| null \| number` | Which item index is maximized (null = none). Declarative source of truth. |
1490
+ | `handle` | `handle` | `undefined \| "none" \| "line" \| "grip"` | Divider affordance drawn inside each draggable handle's 8px grab zone: - `line` (default) — a 1px hairline, transparent at rest, tinting on hover/drag. - `grip` — a dotted grip handle. - `none` — no visible divider, just the invisible hit-area. The full grab zone and keyboard/ARIA behavior are identical for all three. |
1490
1491
 
1491
1492
  **Events** (non-bubbling `CustomEvent`s — listen directly on the element):
1492
1493
 
@@ -1963,6 +1964,35 @@ _No events._
1963
1964
 
1964
1965
  ---
1965
1966
 
1967
+ ### `kai-thread` / `Thread`
1968
+
1969
+ **Properties** (every element also accepts `theme="light|dark|auto"`; only scalar props work as HTML attributes):
1970
+
1971
+ | Property | Attribute | Type | Description |
1972
+ |---|---|---|---|
1973
+ | `messages` | — | `undefined \| { id: string; role: "user" \| "assistant"; content: string; reasoning?: undefined \| { text: string; label?: undefined \| string }; tools?: undefined \| { type: string; state: "input-streaming" \| "input-available" \| "output-available" \| "output-error"; input?: undefined \| Record<string, unknown>; output?: undefined \| Record<string, unknown>; toolCallId?: undefined \| string; errorText?: undefined \| string }[]; attachments?: undefined \| { id: string; type: "file" \| "source-document"; filename?: undefined \| string; mediaType?: undefined \| string; url?: undefined \| string; title?: undefined \| string }[]; actions?: undefined \| ("copy" \| "like" \| "dislike" \| "regenerate" \| "edit" \| { id: string; label: string; icon?: undefined \| string; tooltip?: undefined \| string })[]; avatar?: undefined \| { src?: undefined \| string; fallback?: undefined \| string; alt?: undefined \| string }; feedback?: undefined \| "like" \| "dislike" }[]` | The full message thread to render, newest last. Each entry carries its role, content, and optional reasoning/tools/attachments/actions/avatar. Set as a JS property (`el.messages = [...]`); a NEW array reference per streaming chunk re-renders (mutating in place does not). |
1974
+ | `loading` | `loading` | `undefined \| false \| true` | Show a typing indicator on the pending assistant turn — set while awaiting the assistant's reply. |
1975
+ | `proseSize` | `prose-size` | `undefined \| "sm" \| "lg" \| "xs" \| "base"` | Body/prose font scale for rendered markdown (`'xs' \| 'sm' \| 'base' \| 'lg'`). Defaults to `'sm'`. |
1976
+ | `codeTheme` | `code-theme` | `undefined \| string` | Shiki theme name for syntax-highlighted code blocks (e.g. `'github-dark-dimmed'`). |
1977
+ | `codeHighlight` | `code-highlight` | `undefined \| false \| true` | Enable Shiki syntax highlighting in code blocks. Turn off to render plain `<pre>` blocks (lighter, no highlighter load). Default true. |
1978
+ | `actionsReveal` | `actions-reveal` | `undefined \| "always" \| "hover"` | Whether each message's action bar is always visible (`'always'`, default) or only revealed on hover of that message row (`'hover'`). |
1979
+ | `scrollButton` | `scroll-button` | `undefined \| false \| true` | Show the scroll-to-bottom button inside the scroll area. Default true. |
1980
+ | `class` | `class` | `undefined \| string` | Extra classes applied to the thread's inner root. |
1981
+
1982
+ **Events** (non-bubbling `CustomEvent`s — listen directly on the element):
1983
+
1984
+ | Event | `detail` type | Description |
1985
+ |---|---|---|
1986
+ | `kai-message-action` | `CustomEvent<{ messageId: string; action: string; state?: undefined \| "on" \| "off" }>` | A message's action button was clicked. `action` is the built-in name (`copy` / `like` / `dislike` / `regenerate` / `edit`) or a custom id. `state` is present only for the toggleable feedback votes: `'on'` when a like/dislike is set, `'off'` when re-tapped to clear. |
1987
+
1988
+ **Slots** (project your own markup via `slot="name"` on a light-DOM child):
1989
+
1990
+ | Slot | Mode | Description |
1991
+ |---|---|---|
1992
+ | `empty` | replace | Custom zero-state rendered in the message area while the thread is empty; replaces the built-in default. |
1993
+
1994
+ ---
1995
+
1966
1996
  ### `kai-toast-region` / `ToastRegion`
1967
1997
 
1968
1998
  **Properties** (every element also accepts `theme="light|dark|auto"`; only scalar props work as HTML attributes):
@@ -1,7 +1,7 @@
1
1
  <!-- AUTO-GENERATED by scripts/gen-llms.mjs — do not edit by hand. Run `npm run build`. -->
2
2
  # @kitn.ai/ui
3
3
 
4
- > Framework-agnostic, Shadow-DOM web components for building AI chat interfaces — works in React, Vue, Angular, Svelte, or plain HTML. 78 custom elements, every one prefixed `kai-` (e.g. `<kai-chat>`, `<kai-artifact>`): streaming responses, markdown + code rendering, reasoning/tool panels, attachments, conversation sidebar, voice input. Zero framework dependency for consumers; the SolidJS runtime it is authored in is bundled in, so the host needs nothing.
4
+ > Framework-agnostic, Shadow-DOM web components for building AI chat interfaces — works in React, Vue, Angular, Svelte, or plain HTML. 79 custom elements, every one prefixed `kai-` (e.g. `<kai-chat>`, `<kai-artifact>`): streaming responses, markdown + code rendering, reasoning/tool panels, attachments, conversation sidebar, voice input. Zero framework dependency for consumers; the SolidJS runtime it is authored in is bundled in, so the host needs nothing.
5
5
 
6
6
  ## Install
7
7
 
@@ -35,7 +35,7 @@ Drop an element into any framework (React, Vue, plain HTML). Data in via JS prop
35
35
  - `<kai-prompt-input>` — standalone composer with send button.
36
36
 
37
37
  **Layer 2 — composable primitives** (`import { … } from '@kitn.ai/ui'`):
38
- All 78 elements are also exported individually. Use them for custom layouts or features `<kai-chat>` does not expose (ChainOfThought, FeedbackBar, ThinkingBar, VoiceInput, …). Your bundler tree-shakes the rest.
38
+ All 79 elements are also exported individually. Use them for custom layouts or features `<kai-chat>` does not expose (ChainOfThought, FeedbackBar, ThinkingBar, VoiceInput, …). Your bundler tree-shakes the rest.
39
39
 
40
40
  ## Key rules for the web components
41
41
 
@@ -97,7 +97,7 @@ For Tailwind builds: `@import "@kitn.ai/ui/theme.css"` in your CSS.
97
97
 
98
98
  ## Docs
99
99
 
100
- - Full element reference (all 78 elements, every prop/event): ./llms-full.txt — https://kitn.dev/llms-full.txt
100
+ - Full element reference (all 79 elements, every prop/event): ./llms-full.txt — https://kitn.dev/llms-full.txt
101
101
  - Machine-readable Custom Elements Manifest: https://unpkg.com/@kitn.ai/ui/dist/custom-elements.json
102
102
  - Working examples: https://github.com/kitn-ai/ui/tree/main/examples
103
103
  - Storybook: https://storybook.kitn.dev
@@ -2,6 +2,7 @@ import { registerAll, WebComponentProps } from './runtime';
2
2
  export { registerAll };
3
3
  export { useKaiChat } from './use-kai-chat';
4
4
  export type { UseKaiChatOptions, KaiChatController, ChatMessage } from './use-kai-chat';
5
+ export { useVoiceInput } from './use-voice-input';
5
6
  export interface AgentCardProps extends WebComponentProps {
6
7
  /** The agent's name — the primary label. Attribute: `name`. */
7
8
  name?: string;
@@ -1536,6 +1537,8 @@ export interface ResizableProps extends WebComponentProps {
1536
1537
  orientation?: "vertical" | "horizontal";
1537
1538
  /** Which item index is maximized (null = none). Declarative source of truth. */
1538
1539
  maximizedIndex?: null | number;
1540
+ /** Divider affordance drawn inside each draggable handle's 8px grab zone: - `line` (default) — a 1px hairline, transparent at rest, tinting on hover/drag. - `grip` — a dotted grip handle. - `none` — no visible divider, just the invisible hit-area. The full grab zone and keyboard/ARIA behavior are identical for all three. */
1541
+ handle?: "none" | "line" | "grip";
1539
1542
  /** Fired on drag-end / keyboard resize / visibility change. `detail.sizes` = panel sizes in percent. */
1540
1543
  onChange?: (event: CustomEvent<{
1541
1544
  sizes: number[];
@@ -1875,6 +1878,67 @@ export interface ThinkingBarProps extends WebComponentProps {
1875
1878
  onStop?: (event: CustomEvent) => void;
1876
1879
  }
1877
1880
  export declare const ThinkingBar: import('react').ForwardRefExoticComponent<ThinkingBarProps & import('react').RefAttributes<HTMLElement>>;
1881
+ export interface ThreadProps extends WebComponentProps {
1882
+ /** The full message thread to render, newest last. Each entry carries its role, content, and optional reasoning/tools/attachments/actions/avatar. Set as a JS property (`el.messages = [...]`); a NEW array reference per streaming chunk re-renders (mutating in place does not). */
1883
+ messages?: {
1884
+ id: string;
1885
+ role: "user" | "assistant";
1886
+ content: string;
1887
+ reasoning?: {
1888
+ text: string;
1889
+ label?: string;
1890
+ };
1891
+ tools?: {
1892
+ type: string;
1893
+ state: "input-streaming" | "input-available" | "output-available" | "output-error";
1894
+ input?: Record<string, unknown>;
1895
+ output?: Record<string, unknown>;
1896
+ toolCallId?: string;
1897
+ errorText?: string;
1898
+ }[];
1899
+ attachments?: {
1900
+ id: string;
1901
+ type: "file" | "source-document";
1902
+ filename?: string;
1903
+ mediaType?: string;
1904
+ url?: string;
1905
+ title?: string;
1906
+ }[];
1907
+ actions?: ("copy" | "like" | "dislike" | "regenerate" | "edit" | {
1908
+ id: string;
1909
+ label: string;
1910
+ icon?: string;
1911
+ tooltip?: string;
1912
+ })[];
1913
+ avatar?: {
1914
+ src?: string;
1915
+ fallback?: string;
1916
+ alt?: string;
1917
+ };
1918
+ feedback?: "like" | "dislike";
1919
+ }[];
1920
+ /** Show a typing indicator on the pending assistant turn — set while awaiting the assistant's reply. */
1921
+ loading?: boolean;
1922
+ /** Body/prose font scale for rendered markdown (`'xs' | 'sm' | 'base' | 'lg'`). Defaults to `'sm'`. */
1923
+ proseSize?: "sm" | "lg" | "xs" | "base";
1924
+ /** Shiki theme name for syntax-highlighted code blocks (e.g. `'github-dark-dimmed'`). */
1925
+ codeTheme?: string;
1926
+ /** Enable Shiki syntax highlighting in code blocks. Turn off to render plain `<pre>` blocks (lighter, no highlighter load). Default true. */
1927
+ codeHighlight?: boolean;
1928
+ /** Whether each message's action bar is always visible (`'always'`, default) or only revealed on hover of that message row (`'hover'`). */
1929
+ actionsReveal?: "always" | "hover";
1930
+ /** Show the scroll-to-bottom button inside the scroll area. Default true. */
1931
+ scrollButton?: boolean;
1932
+ /** Extra classes applied to the thread's inner root. */
1933
+ class?: string;
1934
+ /** A message's action button was clicked. `action` is the built-in name (`copy` / `like` / `dislike` / `regenerate` / `edit`) or a custom id. `state` is present only for the toggleable feedback votes: `'on'` when a like/dislike is set, `'off'` when re-tapped to clear. */
1935
+ onMessageAction?: (event: CustomEvent<{
1936
+ messageId: string;
1937
+ action: string;
1938
+ state?: undefined | "on" | "off";
1939
+ }>) => void;
1940
+ }
1941
+ export declare const Thread: import('react').ForwardRefExoticComponent<ThreadProps & import('react').RefAttributes<HTMLElement>>;
1878
1942
  export interface ToastRegionProps extends WebComponentProps {
1879
1943
  /** The toasts to render. Newest is shown on top. Set as a JS property (array); pass a new array reference to update. */
1880
1944
  toasts: {
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Web Speech mic → one-shot transcript. Chromium-only (`webkitSpeechRecognition`);
3
+ * `supported` is false elsewhere so the caller can degrade gracefully. This hook is
4
+ * deliberately ONLY about speech recognition: it hands the raw transcript to
5
+ * `onTranscript` and lets the caller decide what to do with it (e.g. a composer mic
6
+ * button appends it to the live text). No composer or DOM knowledge.
7
+ *
8
+ * @param onTranscript called with the final recognized transcript.
9
+ * @returns `supported` (Chromium-only availability) and a referentially stable,
10
+ * one-shot `start` (a no-op when unsupported).
11
+ */
12
+ export declare function useVoiceInput(onTranscript: (transcript: string) => void): {
13
+ supported: boolean;
14
+ start: () => void;
15
+ };