@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.23 kB
JavaScript
import{g as m,u as k,i as z,c as R,a as C,d as D,z as p,b as S,S as j,t as c,e as A,f as B,q as _}from"./chunks/define-CNSKFZCd.js";import{c as E}from"./chunks/cn-CU7UAWzk.js";import{c as F,u as G,a as H}from"./chunks/overlay-B1-MBI6h.js";import{w as I}from"./chunks/disclosure-BcBs--Jf.js";var J=c("<span style=display:inline-flex>"),K=c("<div role=dialog style=position:fixed>");function N(a){var r;const[i,v]=m(a.defaultOpen??!1),[n,o]=m(),[g,q]=m(),f=()=>a.open!==void 0,d=()=>f()?!!a.open:i(),l=e=>{var t;f()||v(e),(t=a.onOpenChange)==null||t.call(a,e)};(r=a.controllerRef)==null||r.call(a,{open:d,setOpen:l});const s=F(d),u=G(n,g,{placement:a.placement??"bottom-start",gutter:a.gutter??6,onDisconnect:()=>l(!1)});return H({enabled:d,onDismiss:()=>l(!1),refs:()=>{var e;return[n(),g(),(e=a.boundary)==null?void 0:e.call(a)]}}),[(()=>{var e=J();return e.$$click=()=>{a.disabled||l(!d())},k(o,e),z(e,()=>a.trigger),e})(),R(j,{get when(){return s.present()},get children(){var e=K();return k(t=>{q(t),s.setRef(t)},e),z(e,()=>a.children),C(t=>{var b=s.state()==="open"?"":void 0,h=s.state()==="closed"?"":void 0,x=`${u.pos().x}px`,y=`${u.pos().y}px`,O=u.hidden()?"hidden":"visible",$=u.hidden()?"none":void 0,w=E("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",a.class);return b!==t.e&&D(e,"data-expanded",t.e=b),h!==t.t&&D(e,"data-closed",t.t=h),x!==t.a&&p(e,"left",t.a=x),y!==t.o&&p(e,"top",t.o=y),O!==t.i&&p(e,"visibility",t.i=O),$!==t.n&&p(e,"pointer-events",t.n=$),w!==t.s&&S(e,t.s=w),t},{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=c("<slot>"),T=c("<slot name=trigger>");B("kai-popover",{placement:"bottom-start",gutter:6,open:void 0,defaultOpen:void 0,disabled:void 0},(a,r)=>{const{flag:i,element:v}=r;let n;return I(r,()=>n,()=>a.open),R(N,{get trigger(){return(()=>{var o=T();return o._$owner=_(),o})()},get placement(){return a.placement},get gutter(){return a.gutter},get defaultOpen(){return i("defaultOpen")},get disabled(){return i("disabled")},controllerRef:o=>n=o,boundary:()=>v,get children(){var o=P();return o._$owner=_(),o}})});