@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.76 kB
JavaScript
import{s as m,k as c,m as o,i as g,x as C,H as T,c as L,S as z,t as l}from"./define-CNSKFZCd.js";import{c as h}from"./cn-CU7UAWzk.js";const E={bash:()=>import("./bash-InADTalH.js"),javascript:()=>import("./javascript-C25yR2R2.js"),typescript:()=>import("./typescript-RycA9KXf.js"),tsx:()=>import("./tsx-B8rCNbgL.js"),html:()=>import("./html-CPZ3oZQ7.js"),css:()=>import("./css-M7EaDHN_.js"),json:()=>import("./json-DxJze_jm.js"),vue:()=>import("./vue-BmIZj4XD.js"),svelte:()=>import("./svelte--5p79yCD.js")},M={"github-dark-dimmed":()=>import("./github-dark-dimmed-DUshB20C.js"),"github-light":()=>import("./github-light-JYsPkUQd.js")},P={js:"javascript",ts:"typescript",jsx:"tsx",sh:"bash",shell:"bash"},f="github-dark-dimmed";let R={...E},$={...M},A={...P},u=null;const x=new Set,b=new Set;function B(){return u||(u=(async()=>{const[{createHighlighterCore:t},{createJavaScriptRegexEngine:e}]=await Promise.all([import("./core-AYMC6_lb.js"),import("./engine-javascript-vq0WuIJl.js")]);return t({themes:[],langs:[],engine:e()})})()),u}function v(t){return A[t]??t}async function D(t,e){const a=v(e);if(x.has(a))return!0;const r=R[a];return r?(await t.loadLanguage(r()),x.add(a),!0):!1}async function w(t,e){if(b.has(e))return!0;const a=$[e];return a?(await t.loadTheme(a()),b.add(e),!0):!1}function F(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function i(t){return`<pre><code>${F(t)}</code></pre>`}async function G(t,e,a){if(!t)return i(t);try{const r=await B();if(!await D(r,e))return i(t);const s=await w(r,a)?a:await w(r,f)?f:null;return s?r.codeToHtml(t,{lang:v(e),theme:s}):i(t)}catch{return i(t)}}var J=l("<div>"),K=l("<div tabindex=0>"),N=l("<div tabindex=0><pre><code>");function O(t){const[e,a]=m(t,["children","class"]);return(()=>{var r=J();return c(r,o({get class(){return h("not-prose flex w-full flex-col overflow-clip border","border-border bg-card text-card-foreground","rounded-[var(--kai-code-radius,0.75rem)]",e.class)}},a),!1,!0),g(r,()=>e.children),r})()}function U(t){const[e,a]=m(t,["code","language","theme","class"]),r=C(),s=()=>e.language??"tsx",y=()=>e.theme??r.codeTheme(),j=()=>r.codeHighlight(),[d]=T(()=>j()?{code:e.code,lang:s(),theme:y()}:null,n=>G(n.code,n.lang,n.theme)),k=()=>{switch(r.proseSize()){case"xs":return"text-[11px]";case"sm":return"text-[13px]";case"base":return"text-sm";case"lg":return"text-base"}},p=()=>h("w-full overflow-x-auto [&>pre]:px-4 [&>pre]:py-4",k(),e.class);return L(z,{get when(){return d()},get fallback(){return(()=>{var n=N(),H=n.firstChild,S=H.firstChild;return c(n,o({get class(){return p()}},a),!1,!0),g(S,()=>e.code),n})()},get children(){var n=K();return c(n,o({get class(){return p()},get innerHTML(){return d()}},a),!1,!1),n}})}export{O as C,U as a};