@kitn.ai/ui
Version:
Framework-agnostic, Shadow-DOM web components for building AI chat interfaces — works in React, Vue, Angular, Svelte, or plain HTML. Authored in SolidJS.
2 lines (1 loc) • 2.48 kB
JavaScript
import{f as u,g as d,o as h,h as m,c as v,p}from"./chunks/define-CNSKFZCd.js";import{r as k,C as b}from"./chunks/slots-DkZ-Cmha.js";import{C as S}from"./chunks/chat-thread-Dz2qbzvI.js";u("kai-chat",{messages:[],value:void 0,placeholder:"Send a message...",loading:!1,suggestions:void 0,suggestionMode:"submit",persistSuggestions:!1,proseSize:"sm",codeTheme:"github-dark-dimmed",codeHighlight:!0,chatTitle:void 0,models:void 0,currentModel:void 0,context:void 0,scrollButton:!0,search:!1,voice:!1,triggers:void 0,kindIcons:void 0,actionsReveal:"always"},(t,{dispatch:o,flag:s,element:i,expose:g})=>{const[l,c]=d({}),n=e=>l()[e]===!0;h(()=>{const e=()=>c(k(i,b));e();const a=new MutationObserver(e);a.observe(i,{childList:!0}),p(()=>a.disconnect())}),m(()=>{i.toggleAttribute("loading",s("loading"))});let r;return g({focus:e=>r?.focus(e),blur:()=>{var e,a;return(a=(e=i.shadowRoot)==null?void 0:e.activeElement)==null?void 0:a.blur()},clear:()=>r?.clear(),send:()=>r?.send(),scrollToBottom:e=>r?.scrollToBottom(e)}),v(S,{get messages(){return t.messages},get value(){return t.value},get placeholder(){return t.placeholder},get loading(){return s("loading")},get suggestions(){return t.suggestions},get suggestionMode(){return t.suggestionMode},get persistSuggestions(){return s("persistSuggestions")},get proseSize(){return t.proseSize},get codeTheme(){return t.codeTheme},get codeHighlight(){return s("codeHighlight")},get chatTitle(){return t.chatTitle},get models(){return t.models},get currentModel(){return t.currentModel},get context(){return t.context},get scrollButton(){return t.scrollButton!==!1},get search(){return s("search")},get voice(){return s("voice")},get triggers(){return t.triggers},get kindIcons(){return t.kindIcons},get actionsReveal(){return t.actionsReveal},onValueChange:e=>o("kai-value-change",{value:e}),onSubmit:e=>o("kai-submit",e),onAttachmentsChange:e=>o("kai-attachments-change",{attachments:e}),onSuggestionClick:e=>o("kai-suggestion-click",{value:e}),onModelChange:e=>o("kai-model-change",{modelId:e}),onMessageAction:e=>o("kai-message-action",e),onSearch:()=>o("kai-search",{}),onVoice:()=>o("kai-voice",{}),controllerRef:e=>r=e,get headerStart(){return n("header-start")},get headerEnd(){return n("header-end")},get headerFull(){return n("header")},get sidebar(){return n("sidebar")},get empty(){return n("empty")},get composer(){return n("composer")},get composerActions(){return n("composer-actions")},get footer(){return n("footer")}})});