UNPKG

@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) 1.15 kB
import{f as m,g as v,o as g,c as b,p as f}from"./chunks/define-CNSKFZCd.js";import{M}from"./chunks/model-switcher-BMtXGwLU.js";import{w as h}from"./chunks/disclosure-BcBs--Jf.js";function s(e){var o;return{id:e.getAttribute("id")??"",name:((o=e.textContent)==null?void 0:o.trim())??"",provider:e.getAttribute("provider")??void 0,description:e.getAttribute("description")??void 0,group:e.getAttribute("group")??void 0}}m("kai-model-switcher",{models:[],currentModel:void 0,open:void 0,defaultOpen:void 0,disabled:void 0},(e,o)=>{const{dispatch:a,element:r,flag:d}=o;let i;h(o,()=>i,()=>e.open);const[u,c]=v([]);g(()=>{const t=()=>{const p=[...r.querySelectorAll("kai-model")];c(p.map(s))};t();const l=new MutationObserver(t);l.observe(r,{childList:!0,attributes:!0,subtree:!0}),f(()=>l.disconnect())});const n=()=>[...e.models??[],...u()];return b(M,{get models(){return n()},get currentModelId(){var t;return e.currentModel??((t=n()[0])==null?void 0:t.id)??""},onModelChange:t=>a("kai-model-change",{modelId:t}),get defaultOpen(){return d("defaultOpen")},get disabled(){return d("disabled")},controllerRef:t=>i=t})});export{s as parseKaiModelElement};