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.07 kB
import{s as c,g as O,r as I,c as y,k as p,m as u,i as v,n as h,a as R,N as E,b as N,t as g,v as P,w as j}from"./define-CNSKFZCd.js";import{c as C}from"./cn-CU7UAWzk.js";var q=g("<div>"),S=g("<button>"),T=g("<div><div>");const w=P(),m=()=>{const o=j(w);if(!o)throw new Error("Collapsible parts must be used within <Collapsible>");return o};function U(o){var n;const[e,l]=c(o,["open","defaultOpen","onOpenChange","disabled","controllerRef","children","class"]),[t,a]=O(e.defaultOpen??!1),s=()=>e.open!==void 0,r=()=>s()?!!e.open:t(),i=()=>!!e.disabled,f=d=>{var b;r()!==d&&(s()||a(d),(b=e.onOpenChange)==null||b.call(e,d))},k=()=>{i()||f(!r())};(n=e.controllerRef)==null||n.call(e,{open:r,setOpen:f});const x=I();return y(w.Provider,{value:{open:r,toggle:k,contentId:x,disabled:i},get children(){var d=q();return p(d,u({get class(){return e.class}},l,{get"data-expanded"(){return r()?"":void 0},get"data-closed"(){return r()?void 0:""},get"data-state"(){return r()?"open":"closed"}}),!1,!0),v(d,()=>e.children),d}})}function _(o){const n=m(),[e,l]=c(o,["children","class","as","onClick"]),t=()=>({type:"button","aria-expanded":n.open(),"aria-controls":n.contentId,disabled:n.disabled()||void 0,"data-expanded":n.open()?"":void 0,"data-closed":n.open()?void 0:"","data-state":n.open()?"open":"closed",onClick:a=>{n.disabled()||(typeof e.onClick=="function"&&e.onClick(a),n.toggle())},class:e.class,...l});return h(()=>h(()=>!!e.as)()?e.as(t()):(()=>{var a=S();return p(a,u(t),!1,!0),v(a,()=>e.children),a})())}function $(o){const n=m(),[e,l]=c(o,["children","class"]);return(()=>{var t=T(),a=t.firstChild;return p(t,u(l,{get id(){return n.contentId},get"data-expanded"(){return n.open()?"":void 0},get"data-closed"(){return n.open()?void 0:""},get class(){return C("grid transition-[grid-template-rows] duration-200 ease-out",n.open()?"grid-rows-[1fr]":"grid-rows-[0fr]")}}),!1,!0),v(a,()=>e.children),R(s=>{var r=!n.open(),i=C("overflow-hidden",e.class);return r!==s.e&&E(t,"inert",s.e=r),i!==s.t&&N(a,s.t=i),s},{e:void 0,t:void 0}),t})()}export{U as C,_ as a,$ as b};