@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) • 3.55 kB
JavaScript
const p={"kai-conversations":"conversation-list","kai-prompt-input":"prompt-input","kai-chat":"chat","kai-workspace":"chat-workspace","kai-thinking-bar":"thinking-bar","kai-model-switcher":"model-switcher","kai-attachments":"attachments","kai-message":"message","kai-markdown":"markdown","kai-code-block":"code-block","kai-reasoning":"reasoning","kai-tool":"tool","kai-context":"context-meter","kai-feedback-bar":"feedback-bar","kai-scope-picker":"chat-scope-picker","kai-suggestions":"prompt-suggestions","kai-file-upload":"file-upload","kai-voice-input":"voice-input","kai-loader":"loader","kai-text-shimmer":"text-shimmer","kai-image":"image","kai-checkpoint":"checkpoint","kai-skills":"message-skills","kai-source":"source","kai-sources":"source","kai-response-stream":"response-stream","kai-empty":"empty","kai-status":"status","kai-nav":"nav","kai-progress-bar":"progress-bar","kai-coachmark":"coachmark","kai-tabs":"tabs","kai-voice-output":"voice-output","kai-screen":"screen","kai-chain-of-thought":"chain-of-thought","kai-resizable":"resizable","kai-resizable-item":"resizable","kai-file-tree":"file-tree","kai-artifact":"artifact","kai-scroll-button":"scroll-button","kai-popover":"popover","kai-switch":"switch","kai-button":"button","kai-avatar":"avatar","kai-badge":"badge","kai-tooltip":"tooltip","kai-notice":"notice","kai-icon":"icon","kai-separator":"separator","kai-scroll-area":"scroll-area","kai-hover-card":"hover-card","kai-skeleton":"skeleton","kai-toast-region":"toast","kai-card":"card","kai-form":"form","kai-link-preview":"link-preview","kai-embed":"embed","kai-confirm":"confirm-card","kai-tasks":"tasks","kai-choice":"choice","kai-cards":"cards","kai-compare":"compare","kai-composer":"composer","kai-menu":"menu","kai-command":"command","kai-prompt-dock":"prompt-dock","kai-segmented":"segmented","kai-settings-group":"settings-group","kai-setting-item":"setting-item","kai-pane":"pane","kai-pane-group":"pane-group","kai-agent-card":"agent-card","kai-dialog":"dialog","kai-input":"input","kai-search":"search","kai-kbd":"kbd","kai-editable-label":"editable-label"},g={tags:p},s=g.tags,n=new Set,h=import.meta.url.slice(0,import.meta.url.lastIndexOf("/")+1);let k=null;function b(a){k=a.endsWith("/")?a:a+"/"}async function f(a){if(customElements.get(a)||n.has(a))return;const e=s[a];if(e){n.add(a);try{await import(`${k??h}${e}.js`)}catch(t){n.delete(a),v(a,t)}}}let l=!1;function v(a,e){if(l)return;l=!0;const t=e?.message??String(e);console.warn(`[kai-autoloader] could not load "${a}" (${t}). The autoloader is a CDN / static-file tool \u2014 load it from a <script type="module" src=".../@kitn.ai/ui/dist/elements/autoloader.js">. It is NOT importable through a bundler. In a bundled app, register elements with per-element imports (import '@kitn.ai/ui/elements/<el>') or the register-all bundle (import '@kitn.ai/ui/elements'). To drive the autoloader from a bundler, host dist/elements/ and call setAutoloaderBasePath('<url>/') before use.`)}function d(a){var e,t,i;const r=new Set,o=(t=(e=a.tagName)==null?void 0:e.toLowerCase)==null?void 0:t.call(e);o&&o in s&&!customElements.get(o)&&r.add(o),(i=a.querySelectorAll)==null||i.call(a,":not(:defined)").forEach(u=>{const c=u.tagName.toLowerCase();c in s&&r.add(c)}),r.forEach(f)}function m(a=document){d(a),new MutationObserver(e=>{for(const t of e)for(const i of t.addedNodes)i.nodeType===1&&d(i)}).observe(document.documentElement,{childList:!0,subtree:!0})}typeof document<"u"&&queueMicrotask(()=>m());export{b as setAutoloaderBasePath,m as startAutoloader};