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) 2.66 kB
import{s as C,c as r,m as I,n as y,F as m,g as k,i as d,S as h,a as p,d as M,b as O,t as a,e as R}from"./define-CNSKFZCd.js";import{c as f}from"./cn-CU7UAWzk.js";import{c as S,D as $,a as j,b as z}from"./dropdown-wgs8xCJZ.js";import{B}from"./button-DBDZebGr.js";var D=a('<svg width=12 height=12 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><polyline points="6 9 12 15 18 9">'),F=a('<span class="text-caption text-muted-foreground">'),q=a('<div class="flex flex-col"><span>'),E=a("<div class=pl-2>"),P=a('<div><button type=button class="flex w-full items-center justify-between rounded-md px-2 py-1.5 text-body outline-none transition-colors hover:bg-muted focus:bg-muted">');const x=o=>(()=>{var e=D();return p(()=>M(e,"class",o.class)),e})();function b(o){const e=()=>o.model.description??o.model.provider;return r(z,{onSelect:()=>o.onModelChange(o.model.id),get children(){var s=q(),u=s.firstChild;return d(u,()=>o.model.name),d(s,r(h,{get when(){return e()},get children(){var c=F();return d(c,e),c}}),null),p(()=>O(u,f("text-body",o.model.id===o.currentModelId&&"font-medium text-foreground"))),s}})}function _(o){const[e]=C(o,["models","currentModelId","onModelChange","class","defaultOpen","disabled","controllerRef"]),s=()=>e.models.find(t=>t.id===e.currentModelId),u=()=>e.models.filter(t=>!t.group),c=()=>{const t=[],n=new Map;for(const l of e.models)l.group&&(n.has(l.group)||(n.set(l.group,[]),t.push(l.group)),n.get(l.group).push(l));return t.map(l=>({name:l,models:n.get(l)}))};return r(h,{get when(){return e.models.length>1},get children(){return r(S,{get defaultOpen(){return e.defaultOpen},get disabled(){return e.disabled},get controllerRef(){return e.controllerRef},get children(){return[r($,{as:t=>r(B,I({variant:"ghost",size:"sm",get class(){return f("gap-1 text-meta text-muted-foreground",e.class)}},t,{get children(){return[y(()=>{var n;return((n=s())==null?void 0:n.name)??e.currentModelId}),r(x,{})]}}))}),r(j,{get children(){return[r(m,{get each(){return u()},children:t=>r(b,{model:t,get currentModelId(){return e.currentModelId},get onModelChange(){return e.onModelChange}})}),r(m,{get each(){return c()},children:t=>{const[n,l]=k(!1);return(()=>{var g=P(),i=g.firstChild;return i.$$click=()=>l(!n()),d(i,()=>t.name,null),d(i,r(x,{get class(){return f("transition-transform",n()&&"rotate-180")}}),null),d(g,r(h,{get when(){return n()},get children(){var v=E();return d(v,r(m,{get each(){return t.models},children:w=>r(b,{model:w,get currentModelId(){return e.currentModelId},get onModelChange(){return e.onModelChange}})})),v}}),null),p(()=>M(i,"aria-expanded",n())),g})()}})]}})]}})}})}R(["click"]);export{_ as M};