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) 1.83 kB
import{s as f,k as h,m as g,i as o,c as s,F as w,S as u,a as x,b,t as c}from"./define-CNSKFZCd.js";import{c as i}from"./cn-CU7UAWzk.js";var k=c("<kbd>"),v=c("<span part=separator aria-hidden=true class=text-muted-foreground>"),y=c("<span part=key>");function C(){var r;if(typeof navigator>"u")return!1;const e=navigator,t=((r=e.userAgentData)==null?void 0:r.platform)??e.platform??"";return/mac/i.test(t)}function z(r){return r==="mac"?"mac":r==="other"?"other":C()?"mac":"other"}function S(r,e){const t=r.trim();switch(t.toLowerCase()){case"mod":return e?"\u2318":"Ctrl";case"cmd":case"command":case"meta":return"\u2318";case"ctrl":case"control":return"Ctrl";case"shift":return"\u21E7";case"alt":case"opt":case"option":return"\u2325";case"arrowup":return"\u2191";case"arrowdown":return"\u2193";case"arrowleft":return"\u2190";case"arrowright":return"\u2192";case"enter":case"return":return"\u23CE";case"esc":case"escape":return"Esc";case"space":return"Space";default:return t.toUpperCase()}}const j={sm:"h-5 min-w-5 px-1 text-[11px]",md:"h-6 min-w-6 px-1.5 text-xs"};function A(r){const[e,t]=f(r,["keys","platform","size","class","children"]),l=()=>z(e.platform??"other")==="mac",m=()=>(e.keys??"").split("+").map(a=>a.trim()).filter(Boolean);return(()=>{var a=k();return h(a,g(t,{get class(){return i("inline-flex items-center gap-0.5 align-middle font-sans",e.class)}}),!1,!0),o(a,s(u,{get when(){return e.keys!=null},get fallback(){return e.children},get children(){return s(w,{get each(){return m()},children:(d,p)=>[s(u,{get when(){return p()>0},get children(){return v()}}),(()=>{var n=y();return o(n,()=>S(d,l())),x(()=>b(n,i("inline-flex items-center justify-center rounded border border-border bg-muted font-medium leading-none tabular-nums text-muted-foreground",j[e.size??"md"]))),n})()]})}})),a})()}export{A as K};