@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.71 kB
JavaScript
import{s as C,r as T,i as n,c as o,d as h,S as u,a as x,b as m,t as a,k as F,m as S}from"./define-CNSKFZCd.js";import{c as s}from"./cn-CU7UAWzk.js";var A=a("<input>"),D=a('<label part=label class="text-sm font-medium text-foreground">'),w=a('<span class="flex shrink-0 items-center text-muted-foreground">'),E=a("<div part=field>"),L=a("<p part=hint>"),N=a('<div class="flex w-full flex-col gap-1.5">');const k="w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-50 disabled:pointer-events-none",O="flex w-full items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm focus-within:outline-none focus-within:ring-2 focus-within:ring-ring",R="min-w-0 flex-1 bg-transparent text-sm text-foreground placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed",y="px-2.5 py-1",I="border-destructive dark:border-red-400/70",_="[&::-webkit-search-cancel-button]:appearance-none [&::-webkit-search-decoration]:appearance-none [&::-webkit-search-cancel-button]:hidden";function $(V){const[e,z]=C(V,["class","label","hint","error","size","invalid","leading","trailing","onValueInput","onValueChange","onBlur","id","disabled"]),c=e.id??T(),p=`${c}-hint`,g=()=>!!e.invalid||!!e.error,b=()=>!!e.error||!!e.hint,B=()=>e.leading!=null||e.trailing!=null,f=(l,r)=>(()=>{var t=A();return F(t,S(z,{id:c,part:r,get disabled(){return e.disabled},get"aria-invalid"(){return g()?"true":void 0},get"aria-describedby"(){return b()?p:void 0},get class(){return s(_,l)},onInput:d=>{var i;return(i=e.onValueInput)==null?void 0:i.call(e,d.currentTarget.value)},onBlur:d=>{var i;const v=e.onBlur;typeof v=="function"&&v(d),(i=e.onValueChange)==null||i.call(e,d.currentTarget.value)}}),!1,!1),t})();return(()=>{var l=N();return n(l,o(u,{get when(){return e.label},get children(){var r=D();return h(r,"for",c),n(r,()=>e.label),r}}),null),n(l,o(u,{get when(){return B()},get fallback(){return f(s(k,e.size==="sm"&&y,g()&&I,e.class),"field input")},get children(){var r=E();return n(r,o(u,{get when(){return e.leading},get children(){var t=w();return n(t,()=>e.leading),t}}),null),n(r,()=>f(R,"input"),null),n(r,o(u,{get when(){return e.trailing},get children(){var t=w();return n(t,()=>e.trailing),t}}),null),x(()=>m(r,s(O,e.size==="sm"&&y,g()&&I,e.disabled&&"opacity-50 pointer-events-none",e.class))),r}}),null),n(l,o(u,{get when(){return b()},get children(){var r=L();return h(r,"id",p),n(r,()=>e.error??e.hint),x(()=>m(r,s("text-xs",e.error?"text-destructive":"text-muted-foreground"))),r}}),null),l})()}export{k as F,$ as I};