@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.77 kB
JavaScript
import{f,c as r,q as c,i as v,S as s,n as b,t as a}from"./chunks/define-CNSKFZCd.js";import{B as m}from"./chunks/button-DBDZebGr.js";import{r as d}from"./chunks/icon-CAyRqVrg.js";var k=a("<style>:host{display:inline-flex}:host([full]){display:block}"),p=a("<slot name=icon>"),y=a("<slot>");f("kai-button",{variant:"default",size:"md",icon:void 0,iconTrailing:void 0,label:void 0,disabled:!1,full:!1,align:"center",type:"button"},(n,{dispatch:g,flag:o,element:t,expose:h})=>{const l=()=>n.size==="icon"||n.size==="icon-sm";return h({focus:e=>{var i,u;return(u=(i=t.shadowRoot)==null?void 0:i.querySelector("button"))==null?void 0:u.focus(e)},blur:()=>{var e,i;return(i=(e=t.shadowRoot)==null?void 0:e.querySelector("button"))==null?void 0:i.blur()},click:()=>{var e,i;return(i=(e=t.shadowRoot)==null?void 0:e.querySelector("button"))==null?void 0:i.click()}}),[k(),r(m,{part:"button",get variant(){return n.variant??"default"},get size(){return n.size??"md"},get align(){return n.align??"center"},get full(){return o("full")||!l()},get type(){return n.type??"button"},get disabled(){return o("disabled")},get"aria-label"(){return n.label},onClick:()=>g("kai-click"),get children(){return[(()=>{var e=p();return e._$owner=c(),v(e,r(s,{get when(){return n.icon},get children(){return d(n.icon,{class:"size-4 shrink-0",imgClass:"size-4 shrink-0",spanClass:"inline-flex size-4 shrink-0 items-center justify-center",ariaHidden:!0})}})),e})(),r(s,{get when(){return!l()},get children(){var e=y();return e._$owner=c(),e}}),r(s,{get when(){return b(()=>!!n.iconTrailing)()&&!l()},get children(){return d(n.iconTrailing,{class:"size-4 shrink-0 opacity-60",imgClass:"size-4 shrink-0",spanClass:"inline-flex size-4 shrink-0 items-center justify-center",ariaHidden:!0})}})]}})]});