@kitn.ai/chat
Version:
Framework-agnostic, Shadow-DOM web components for building AI chat interfaces — works in React, Vue, Angular, Svelte, or plain HTML. Authored in SolidJS.
564 lines (563 loc) • 46.7 kB
JSON
[
{
"tag": "kc-artifact",
"displayName": "Artifact",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-artifact></kc-artifact>\n<script type=\"module\">\n const el = document.querySelector('kc-artifact');\n el.files = /* … */;\n el.addEventListener('kc-file-select', (e) => console.log(e.detail));\n el.addEventListener('kc-maximize-change', (e) => console.log(e.detail));\n el.addEventListener('kc-navigate', (e) => console.log(e.detail));\n el.addEventListener('kc-tab-change', (e) => console.log(e.detail));\n</script>",
"react": "import { Artifact } from '@kitn.ai/chat/react';\n\n<Artifact\n files={files}\n onFileSelect={(e) => console.log(e.detail)}\n onMaximizeChange={(e) => console.log(e.detail)}\n onNavigate={(e) => console.log(e.detail)}\n onTabChange={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-artifact\n :files.prop=\"files\"\n @kc-file-select=\"onFileSelect\"\n @kc-maximize-change=\"onMaximizeChange\"\n @kc-navigate=\"onNavigate\"\n @kc-tab-change=\"onTabChange\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-artifact\n {files}\n on:kc-file-select={onFileSelect}\n on:kc-maximize-change={onMaximizeChange}\n on:kc-navigate={onNavigate}\n on:kc-tab-change={onTabChange}\n></kc-artifact>",
"angular": "<kc-artifact\n [files]=\"files\"\n (kc-file-select)=\"onFileSelect($event)\"\n (kc-maximize-change)=\"onMaximizeChange($event)\"\n (kc-navigate)=\"onNavigate($event)\"\n (kc-tab-change)=\"onTabChange($event)\"\n></kc-artifact>",
"solid": "import { Artifact } from '@kitn.ai/chat';\n\n<Artifact\n files={files}\n onFileSelect={(e) => console.log(e.detail)}\n onMaximizeChange={(e) => console.log(e.detail)}\n onNavigate={(e) => console.log(e.detail)}\n onTabChange={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-attachments",
"displayName": "Attachments",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-attachments></kc-attachments>\n<script type=\"module\">\n const el = document.querySelector('kc-attachments');\n el.items = /* … */;\n el.addEventListener('kc-remove', (e) => console.log(e.detail));\n</script>",
"react": "import { Attachments } from '@kitn.ai/chat/react';\n\n<Attachments\n items={items}\n onRemove={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-attachments\n :items.prop=\"items\"\n @kc-remove=\"onRemove\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-attachments\n {items}\n on:kc-remove={onRemove}\n></kc-attachments>",
"angular": "<kc-attachments\n [items]=\"items\"\n (kc-remove)=\"onRemove($event)\"\n></kc-attachments>",
"solid": "import { Attachments } from '@kitn.ai/chat';\n\n<Attachments\n items={items}\n onRemove={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-card",
"displayName": "Card",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-card></kc-card>",
"react": "import { Card } from '@kitn.ai/chat/react';\n\n<Card />",
"vue": "<kc-card />",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-card></kc-card>",
"angular": "<kc-card></kc-card>",
"solid": "import { Card } from '@kitn.ai/chat';\n\n<Card />"
}
},
{
"tag": "kc-cards",
"displayName": "Cards",
"hasSolid": false,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-cards></kc-cards>",
"react": "import { Cards } from '@kitn.ai/chat/react';\n\n<Cards />",
"vue": "<kc-cards />",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-cards></kc-cards>",
"angular": "<kc-cards></kc-cards>"
}
},
{
"tag": "kc-chain-of-thought",
"displayName": "ChainOfThought",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-chain-of-thought></kc-chain-of-thought>\n<script type=\"module\">\n const el = document.querySelector('kc-chain-of-thought');\n el.steps = /* … */;\n</script>",
"react": "import { ChainOfThought } from '@kitn.ai/chat/react';\n\n<ChainOfThought\n steps={steps}\n/>",
"vue": "<kc-chain-of-thought\n :steps.prop=\"steps\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-chain-of-thought\n {steps}\n></kc-chain-of-thought>",
"angular": "<kc-chain-of-thought\n [steps]=\"steps\"\n></kc-chain-of-thought>",
"solid": "import { ChainOfThought } from '@kitn.ai/chat';\n\n<ChainOfThought\n steps={steps}\n/>"
}
},
{
"tag": "kc-chat",
"displayName": "Chat",
"hasSolid": false,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-chat></kc-chat>\n<script type=\"module\">\n const el = document.querySelector('kc-chat');\n el.messages = /* … */;\n el.addEventListener('kc-message-action', (e) => console.log(e.detail));\n el.addEventListener('kc-model-change', (e) => console.log(e.detail));\n el.addEventListener('kc-search', (e) => console.log(e.detail));\n el.addEventListener('kc-slash-select', (e) => console.log(e.detail));\n el.addEventListener('kc-submit', (e) => console.log(e.detail));\n el.addEventListener('kc-suggestion-click', (e) => console.log(e.detail));\n el.addEventListener('kc-value-change', (e) => console.log(e.detail));\n el.addEventListener('kc-voice', (e) => console.log(e.detail));\n</script>",
"react": "import { Chat } from '@kitn.ai/chat/react';\n\n<Chat\n messages={messages}\n onMessageAction={(e) => console.log(e.detail)}\n onModelChange={(e) => console.log(e.detail)}\n onSearch={(e) => console.log(e.detail)}\n onSlashSelect={(e) => console.log(e.detail)}\n onSubmit={(e) => console.log(e.detail)}\n onSuggestionClick={(e) => console.log(e.detail)}\n onValueChange={(e) => console.log(e.detail)}\n onVoice={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-chat\n :messages.prop=\"messages\"\n @kc-message-action=\"onMessageAction\"\n @kc-model-change=\"onModelChange\"\n @kc-search=\"onSearch\"\n @kc-slash-select=\"onSlashSelect\"\n @kc-submit=\"onSubmit\"\n @kc-suggestion-click=\"onSuggestionClick\"\n @kc-value-change=\"onValueChange\"\n @kc-voice=\"onVoice\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-chat\n {messages}\n on:kc-message-action={onMessageAction}\n on:kc-model-change={onModelChange}\n on:kc-search={onSearch}\n on:kc-slash-select={onSlashSelect}\n on:kc-submit={onSubmit}\n on:kc-suggestion-click={onSuggestionClick}\n on:kc-value-change={onValueChange}\n on:kc-voice={onVoice}\n></kc-chat>",
"angular": "<kc-chat\n [messages]=\"messages\"\n (kc-message-action)=\"onMessageAction($event)\"\n (kc-model-change)=\"onModelChange($event)\"\n (kc-search)=\"onSearch($event)\"\n (kc-slash-select)=\"onSlashSelect($event)\"\n (kc-submit)=\"onSubmit($event)\"\n (kc-suggestion-click)=\"onSuggestionClick($event)\"\n (kc-value-change)=\"onValueChange($event)\"\n (kc-voice)=\"onVoice($event)\"\n></kc-chat>"
}
},
{
"tag": "kc-checkpoint",
"displayName": "Checkpoint",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-checkpoint></kc-checkpoint>\n<script type=\"module\">\n const el = document.querySelector('kc-checkpoint');\n el.addEventListener('kc-select', (e) => console.log(e.detail));\n</script>",
"react": "import { Checkpoint } from '@kitn.ai/chat/react';\n\n<Checkpoint\n onSelect={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-checkpoint\n @kc-select=\"onSelect\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-checkpoint\n on:kc-select={onSelect}\n></kc-checkpoint>",
"angular": "<kc-checkpoint\n (kc-select)=\"onSelect($event)\"\n></kc-checkpoint>",
"solid": "import { Checkpoint } from '@kitn.ai/chat';\n\n<Checkpoint\n onSelect={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-choice",
"displayName": "Choice",
"hasSolid": false,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-choice></kc-choice>",
"react": "import { Choice } from '@kitn.ai/chat/react';\n\n<Choice />",
"vue": "<kc-choice />",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-choice></kc-choice>",
"angular": "<kc-choice></kc-choice>"
}
},
{
"tag": "kc-code-block",
"displayName": "CodeBlock",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-code-block code=\"…\"></kc-code-block>",
"react": "import { CodeBlock } from '@kitn.ai/chat/react';\n\n<CodeBlock\n code={code}\n/>",
"vue": "<kc-code-block\n :code=\"code\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-code-block\n {code}\n></kc-code-block>",
"angular": "<kc-code-block\n [code]=\"code\"\n></kc-code-block>",
"solid": "import { CodeBlock } from '@kitn.ai/chat';\n\n<CodeBlock\n code={code}\n/>"
}
},
{
"tag": "kc-confirm",
"displayName": "Confirm",
"hasSolid": false,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-confirm></kc-confirm>",
"react": "import { Confirm } from '@kitn.ai/chat/react';\n\n<Confirm />",
"vue": "<kc-confirm />",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-confirm></kc-confirm>",
"angular": "<kc-confirm></kc-confirm>"
}
},
{
"tag": "kc-context",
"displayName": "Context",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-context></kc-context>\n<script type=\"module\">\n const el = document.querySelector('kc-context');\n el.addEventListener('kc-threshold-change', (e) => console.log(e.detail));\n</script>",
"react": "import { Context } from '@kitn.ai/chat/react';\n\n<Context\n onThresholdChange={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-context\n @kc-threshold-change=\"onThresholdChange\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-context\n on:kc-threshold-change={onThresholdChange}\n></kc-context>",
"angular": "<kc-context\n (kc-threshold-change)=\"onThresholdChange($event)\"\n></kc-context>",
"solid": "import { Context } from '@kitn.ai/chat';\n\n<Context\n onThresholdChange={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-conversations",
"displayName": "Conversations",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-conversations></kc-conversations>\n<script type=\"module\">\n const el = document.querySelector('kc-conversations');\n el.groups = /* … */;\n el.conversations = /* … */;\n el.addEventListener('kc-conversation-select', (e) => console.log(e.detail));\n el.addEventListener('kc-new-chat', (e) => console.log(e.detail));\n el.addEventListener('kc-toggle-sidebar', (e) => console.log(e.detail));\n</script>",
"react": "import { Conversations } from '@kitn.ai/chat/react';\n\n<Conversations\n groups={groups}\n conversations={conversations}\n onConversationSelect={(e) => console.log(e.detail)}\n onNewChat={(e) => console.log(e.detail)}\n onToggleSidebar={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-conversations\n :groups.prop=\"groups\"\n :conversations.prop=\"conversations\"\n @kc-conversation-select=\"onConversationSelect\"\n @kc-new-chat=\"onNewChat\"\n @kc-toggle-sidebar=\"onToggleSidebar\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-conversations\n {groups}\n {conversations}\n on:kc-conversation-select={onConversationSelect}\n on:kc-new-chat={onNewChat}\n on:kc-toggle-sidebar={onToggleSidebar}\n></kc-conversations>",
"angular": "<kc-conversations\n [groups]=\"groups\"\n [conversations]=\"conversations\"\n (kc-conversation-select)=\"onConversationSelect($event)\"\n (kc-new-chat)=\"onNewChat($event)\"\n (kc-toggle-sidebar)=\"onToggleSidebar($event)\"\n></kc-conversations>",
"solid": "import { ConversationList } from '@kitn.ai/chat';\n\n<ConversationList\n groups={groups}\n conversations={conversations}\n onConversationSelect={(e) => console.log(e.detail)}\n onNewChat={(e) => console.log(e.detail)}\n onToggleSidebar={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-embed",
"displayName": "Embed",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-embed></kc-embed>",
"react": "import { Embed } from '@kitn.ai/chat/react';\n\n<Embed />",
"vue": "<kc-embed />",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-embed></kc-embed>",
"angular": "<kc-embed></kc-embed>",
"solid": "import { Embed } from '@kitn.ai/chat';\n\n<Embed />"
}
},
{
"tag": "kc-empty",
"displayName": "Empty",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-empty></kc-empty>",
"react": "import { Empty } from '@kitn.ai/chat/react';\n\n<Empty />",
"vue": "<kc-empty />",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-empty></kc-empty>",
"angular": "<kc-empty></kc-empty>",
"solid": "import { Empty } from '@kitn.ai/chat';\n\n<Empty />"
}
},
{
"tag": "kc-feedback-bar",
"displayName": "FeedbackBar",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-feedback-bar></kc-feedback-bar>\n<script type=\"module\">\n const el = document.querySelector('kc-feedback-bar');\n el.addEventListener('kc-close', (e) => console.log(e.detail));\n el.addEventListener('kc-feedback', (e) => console.log(e.detail));\n el.addEventListener('kc-feedback-detail', (e) => console.log(e.detail));\n</script>",
"react": "import { FeedbackBar } from '@kitn.ai/chat/react';\n\n<FeedbackBar\n onClose={(e) => console.log(e.detail)}\n onFeedback={(e) => console.log(e.detail)}\n onFeedbackDetail={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-feedback-bar\n @kc-close=\"onClose\"\n @kc-feedback=\"onFeedback\"\n @kc-feedback-detail=\"onFeedbackDetail\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-feedback-bar\n on:kc-close={onClose}\n on:kc-feedback={onFeedback}\n on:kc-feedback-detail={onFeedbackDetail}\n></kc-feedback-bar>",
"angular": "<kc-feedback-bar\n (kc-close)=\"onClose($event)\"\n (kc-feedback)=\"onFeedback($event)\"\n (kc-feedback-detail)=\"onFeedbackDetail($event)\"\n></kc-feedback-bar>",
"solid": "import { FeedbackBar } from '@kitn.ai/chat';\n\n<FeedbackBar\n onClose={(e) => console.log(e.detail)}\n onFeedback={(e) => console.log(e.detail)}\n onFeedbackDetail={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-file-tree",
"displayName": "FileTree",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-file-tree></kc-file-tree>\n<script type=\"module\">\n const el = document.querySelector('kc-file-tree');\n el.files = /* … */;\n el.addEventListener('kc-select', (e) => console.log(e.detail));\n</script>",
"react": "import { FileTree } from '@kitn.ai/chat/react';\n\n<FileTree\n files={files}\n onSelect={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-file-tree\n :files.prop=\"files\"\n @kc-select=\"onSelect\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-file-tree\n {files}\n on:kc-select={onSelect}\n></kc-file-tree>",
"angular": "<kc-file-tree\n [files]=\"files\"\n (kc-select)=\"onSelect($event)\"\n></kc-file-tree>",
"solid": "import { FileTree } from '@kitn.ai/chat';\n\n<FileTree\n files={files}\n onSelect={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-file-upload",
"displayName": "FileUpload",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-file-upload></kc-file-upload>\n<script type=\"module\">\n const el = document.querySelector('kc-file-upload');\n el.addEventListener('kc-files-added', (e) => console.log(e.detail));\n</script>",
"react": "import { FileUpload } from '@kitn.ai/chat/react';\n\n<FileUpload\n onFilesAdded={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-file-upload\n @kc-files-added=\"onFilesAdded\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-file-upload\n on:kc-files-added={onFilesAdded}\n></kc-file-upload>",
"angular": "<kc-file-upload\n (kc-files-added)=\"onFilesAdded($event)\"\n></kc-file-upload>",
"solid": "import { FileUpload } from '@kitn.ai/chat';\n\n<FileUpload\n onFilesAdded={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-form",
"displayName": "Form",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-form></kc-form>",
"react": "import { Form } from '@kitn.ai/chat/react';\n\n<Form />",
"vue": "<kc-form />",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-form></kc-form>",
"angular": "<kc-form></kc-form>",
"solid": "import { Form } from '@kitn.ai/chat';\n\n<Form />"
}
},
{
"tag": "kc-image",
"displayName": "Image",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-image></kc-image>",
"react": "import { Image } from '@kitn.ai/chat/react';\n\n<Image />",
"vue": "<kc-image />",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-image></kc-image>",
"angular": "<kc-image></kc-image>",
"solid": "import { Image } from '@kitn.ai/chat';\n\n<Image />"
}
},
{
"tag": "kc-link-preview",
"displayName": "LinkPreview",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-link-preview></kc-link-preview>",
"react": "import { LinkPreview } from '@kitn.ai/chat/react';\n\n<LinkPreview />",
"vue": "<kc-link-preview />",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-link-preview></kc-link-preview>",
"angular": "<kc-link-preview></kc-link-preview>",
"solid": "import { LinkPreview } from '@kitn.ai/chat';\n\n<LinkPreview />"
}
},
{
"tag": "kc-loader",
"displayName": "Loader",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-loader></kc-loader>",
"react": "import { Loader } from '@kitn.ai/chat/react';\n\n<Loader />",
"vue": "<kc-loader />",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-loader></kc-loader>",
"angular": "<kc-loader></kc-loader>",
"solid": "import { Loader } from '@kitn.ai/chat';\n\n<Loader />"
}
},
{
"tag": "kc-markdown",
"displayName": "Markdown",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-markdown content=\"…\"></kc-markdown>",
"react": "import { Markdown } from '@kitn.ai/chat/react';\n\n<Markdown\n content={content}\n/>",
"vue": "<kc-markdown\n :content=\"content\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-markdown\n {content}\n></kc-markdown>",
"angular": "<kc-markdown\n [content]=\"content\"\n></kc-markdown>",
"solid": "import { Markdown } from '@kitn.ai/chat';\n\n<Markdown\n content={content}\n/>"
}
},
{
"tag": "kc-message",
"displayName": "Message",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-message></kc-message>\n<script type=\"module\">\n const el = document.querySelector('kc-message');\n el.addEventListener('kc-message-action', (e) => console.log(e.detail));\n</script>",
"react": "import { Message } from '@kitn.ai/chat/react';\n\n<Message\n onMessageAction={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-message\n @kc-message-action=\"onMessageAction\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-message\n on:kc-message-action={onMessageAction}\n></kc-message>",
"angular": "<kc-message\n (kc-message-action)=\"onMessageAction($event)\"\n></kc-message>",
"solid": "import { Message } from '@kitn.ai/chat';\n\n<Message\n onMessageAction={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-model-switcher",
"displayName": "ModelSwitcher",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-model-switcher></kc-model-switcher>\n<script type=\"module\">\n const el = document.querySelector('kc-model-switcher');\n el.models = /* … */;\n el.addEventListener('kc-model-change', (e) => console.log(e.detail));\n</script>",
"react": "import { ModelSwitcher } from '@kitn.ai/chat/react';\n\n<ModelSwitcher\n models={models}\n onModelChange={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-model-switcher\n :models.prop=\"models\"\n @kc-model-change=\"onModelChange\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-model-switcher\n {models}\n on:kc-model-change={onModelChange}\n></kc-model-switcher>",
"angular": "<kc-model-switcher\n [models]=\"models\"\n (kc-model-change)=\"onModelChange($event)\"\n></kc-model-switcher>",
"solid": "import { ModelSwitcher } from '@kitn.ai/chat';\n\n<ModelSwitcher\n models={models}\n onModelChange={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-popover",
"displayName": "Popover",
"hasSolid": false,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-popover></kc-popover>\n<script type=\"module\">\n const el = document.querySelector('kc-popover');\n el.addEventListener('kc-open-change', (e) => console.log(e.detail));\n</script>",
"react": "import { Popover } from '@kitn.ai/chat/react';\n\n<Popover\n onOpenChange={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-popover\n @kc-open-change=\"onOpenChange\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-popover\n on:kc-open-change={onOpenChange}\n></kc-popover>",
"angular": "<kc-popover\n (kc-open-change)=\"onOpenChange($event)\"\n></kc-popover>"
}
},
{
"tag": "kc-prompt-input",
"displayName": "PromptInput",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-prompt-input></kc-prompt-input>\n<script type=\"module\">\n const el = document.querySelector('kc-prompt-input');\n el.addEventListener('kc-search', (e) => console.log(e.detail));\n el.addEventListener('kc-slash-select', (e) => console.log(e.detail));\n el.addEventListener('kc-stop', (e) => console.log(e.detail));\n el.addEventListener('kc-submit', (e) => console.log(e.detail));\n el.addEventListener('kc-suggestion-click', (e) => console.log(e.detail));\n el.addEventListener('kc-toolbar-action', (e) => console.log(e.detail));\n el.addEventListener('kc-value-change', (e) => console.log(e.detail));\n el.addEventListener('kc-voice', (e) => console.log(e.detail));\n</script>",
"react": "import { PromptInput } from '@kitn.ai/chat/react';\n\n<PromptInput\n onSearch={(e) => console.log(e.detail)}\n onSlashSelect={(e) => console.log(e.detail)}\n onStop={(e) => console.log(e.detail)}\n onSubmit={(e) => console.log(e.detail)}\n onSuggestionClick={(e) => console.log(e.detail)}\n onToolbarAction={(e) => console.log(e.detail)}\n onValueChange={(e) => console.log(e.detail)}\n onVoice={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-prompt-input\n @kc-search=\"onSearch\"\n @kc-slash-select=\"onSlashSelect\"\n @kc-stop=\"onStop\"\n @kc-submit=\"onSubmit\"\n @kc-suggestion-click=\"onSuggestionClick\"\n @kc-toolbar-action=\"onToolbarAction\"\n @kc-value-change=\"onValueChange\"\n @kc-voice=\"onVoice\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-prompt-input\n on:kc-search={onSearch}\n on:kc-slash-select={onSlashSelect}\n on:kc-stop={onStop}\n on:kc-submit={onSubmit}\n on:kc-suggestion-click={onSuggestionClick}\n on:kc-toolbar-action={onToolbarAction}\n on:kc-value-change={onValueChange}\n on:kc-voice={onVoice}\n></kc-prompt-input>",
"angular": "<kc-prompt-input\n (kc-search)=\"onSearch($event)\"\n (kc-slash-select)=\"onSlashSelect($event)\"\n (kc-stop)=\"onStop($event)\"\n (kc-submit)=\"onSubmit($event)\"\n (kc-suggestion-click)=\"onSuggestionClick($event)\"\n (kc-toolbar-action)=\"onToolbarAction($event)\"\n (kc-value-change)=\"onValueChange($event)\"\n (kc-voice)=\"onVoice($event)\"\n></kc-prompt-input>",
"solid": "import { PromptInput } from '@kitn.ai/chat';\n\n<PromptInput\n onSearch={(e) => console.log(e.detail)}\n onSlashSelect={(e) => console.log(e.detail)}\n onStop={(e) => console.log(e.detail)}\n onSubmit={(e) => console.log(e.detail)}\n onSuggestionClick={(e) => console.log(e.detail)}\n onToolbarAction={(e) => console.log(e.detail)}\n onValueChange={(e) => console.log(e.detail)}\n onVoice={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-reasoning",
"displayName": "Reasoning",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-reasoning text=\"…\"></kc-reasoning>\n<script type=\"module\">\n const el = document.querySelector('kc-reasoning');\n el.addEventListener('kc-open-change', (e) => console.log(e.detail));\n</script>",
"react": "import { Reasoning } from '@kitn.ai/chat/react';\n\n<Reasoning\n text={text}\n onOpenChange={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-reasoning\n :text=\"text\"\n @kc-open-change=\"onOpenChange\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-reasoning\n {text}\n on:kc-open-change={onOpenChange}\n></kc-reasoning>",
"angular": "<kc-reasoning\n [text]=\"text\"\n (kc-open-change)=\"onOpenChange($event)\"\n></kc-reasoning>",
"solid": "import { Reasoning } from '@kitn.ai/chat';\n\n<Reasoning\n text={text}\n onOpenChange={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-remote",
"displayName": "Remote",
"hasSolid": false,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-remote></kc-remote>",
"react": "import { Remote } from '@kitn.ai/chat/react';\n\n<Remote />",
"vue": "<kc-remote />",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-remote></kc-remote>",
"angular": "<kc-remote></kc-remote>"
}
},
{
"tag": "kc-resizable",
"displayName": "Resizable",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-resizable></kc-resizable>\n<script type=\"module\">\n const el = document.querySelector('kc-resizable');\n el.addEventListener('kc-change', (e) => console.log(e.detail));\n el.addEventListener('kc-maximize-change', (e) => console.log(e.detail));\n</script>",
"react": "import { Resizable } from '@kitn.ai/chat/react';\n\n<Resizable\n onChange={(e) => console.log(e.detail)}\n onMaximizeChange={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-resizable\n @kc-change=\"onChange\"\n @kc-maximize-change=\"onMaximizeChange\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-resizable\n on:kc-change={onChange}\n on:kc-maximize-change={onMaximizeChange}\n></kc-resizable>",
"angular": "<kc-resizable\n (kc-change)=\"onChange($event)\"\n (kc-maximize-change)=\"onMaximizeChange($event)\"\n></kc-resizable>",
"solid": "import { Resizable } from '@kitn.ai/chat';\n\n<Resizable\n onChange={(e) => console.log(e.detail)}\n onMaximizeChange={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-resizable-item",
"displayName": "ResizableItem",
"hasSolid": false,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-resizable-item></kc-resizable-item>\n<script type=\"module\">\n const el = document.querySelector('kc-resizable-item');\n el.addEventListener('kc-change', (e) => console.log(e.detail));\n el.addEventListener('kc-maximize-change', (e) => console.log(e.detail));\n</script>",
"react": "import { ResizableItem } from '@kitn.ai/chat/react';\n\n<ResizableItem\n onChange={(e) => console.log(e.detail)}\n onMaximizeChange={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-resizable-item\n @kc-change=\"onChange\"\n @kc-maximize-change=\"onMaximizeChange\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-resizable-item\n on:kc-change={onChange}\n on:kc-maximize-change={onMaximizeChange}\n></kc-resizable-item>",
"angular": "<kc-resizable-item\n (kc-change)=\"onChange($event)\"\n (kc-maximize-change)=\"onMaximizeChange($event)\"\n></kc-resizable-item>"
}
},
{
"tag": "kc-response-stream",
"displayName": "ResponseStream",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-response-stream></kc-response-stream>\n<script type=\"module\">\n const el = document.querySelector('kc-response-stream');\n el.addEventListener('kc-complete', (e) => console.log(e.detail));\n</script>",
"react": "import { ResponseStream } from '@kitn.ai/chat/react';\n\n<ResponseStream\n onComplete={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-response-stream\n @kc-complete=\"onComplete\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-response-stream\n on:kc-complete={onComplete}\n></kc-response-stream>",
"angular": "<kc-response-stream\n (kc-complete)=\"onComplete($event)\"\n></kc-response-stream>",
"solid": "import { ResponseStream } from '@kitn.ai/chat';\n\n<ResponseStream\n onComplete={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-scope-picker",
"displayName": "ScopePicker",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-scope-picker></kc-scope-picker>\n<script type=\"module\">\n const el = document.querySelector('kc-scope-picker');\n el.availableAuthors = /* … */;\n el.availableTags = /* … */;\n el.addEventListener('kc-scope-change', (e) => console.log(e.detail));\n</script>",
"react": "import { ScopePicker } from '@kitn.ai/chat/react';\n\n<ScopePicker\n availableAuthors={availableAuthors}\n availableTags={availableTags}\n onScopeChange={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-scope-picker\n :availableAuthors.prop=\"availableAuthors\"\n :availableTags.prop=\"availableTags\"\n @kc-scope-change=\"onScopeChange\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-scope-picker\n {availableAuthors}\n {availableTags}\n on:kc-scope-change={onScopeChange}\n></kc-scope-picker>",
"angular": "<kc-scope-picker\n [availableAuthors]=\"availableAuthors\"\n [availableTags]=\"availableTags\"\n (kc-scope-change)=\"onScopeChange($event)\"\n></kc-scope-picker>",
"solid": "import { ChatScopePicker } from '@kitn.ai/chat';\n\n<ChatScopePicker\n availableAuthors={availableAuthors}\n availableTags={availableTags}\n onScopeChange={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-scroll-button",
"displayName": "ScrollButton",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-scroll-button></kc-scroll-button>\n<script type=\"module\">\n const el = document.querySelector('kc-scroll-button');\n el.addEventListener('kc-scroll', (e) => console.log(e.detail));\n</script>",
"react": "import { ScrollButton } from '@kitn.ai/chat/react';\n\n<ScrollButton\n onScroll={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-scroll-button\n @kc-scroll=\"onScroll\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-scroll-button\n on:kc-scroll={onScroll}\n></kc-scroll-button>",
"angular": "<kc-scroll-button\n (kc-scroll)=\"onScroll($event)\"\n></kc-scroll-button>",
"solid": "import { ScrollButton } from '@kitn.ai/chat';\n\n<ScrollButton\n onScroll={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-skills",
"displayName": "Skills",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-skills></kc-skills>\n<script type=\"module\">\n const el = document.querySelector('kc-skills');\n el.skills = /* … */;\n</script>",
"react": "import { Skills } from '@kitn.ai/chat/react';\n\n<Skills\n skills={skills}\n/>",
"vue": "<kc-skills\n :skills.prop=\"skills\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-skills\n {skills}\n></kc-skills>",
"angular": "<kc-skills\n [skills]=\"skills\"\n></kc-skills>",
"solid": "import { MessageSkills } from '@kitn.ai/chat';\n\n<MessageSkills\n skills={skills}\n/>"
}
},
{
"tag": "kc-source",
"displayName": "Source",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-source></kc-source>",
"react": "import { Source } from '@kitn.ai/chat/react';\n\n<Source />",
"vue": "<kc-source />",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-source></kc-source>",
"angular": "<kc-source></kc-source>",
"solid": "import { Source } from '@kitn.ai/chat';\n\n<Source />"
}
},
{
"tag": "kc-sources",
"displayName": "Sources",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-sources></kc-sources>\n<script type=\"module\">\n const el = document.querySelector('kc-sources');\n el.sources = /* … */;\n</script>",
"react": "import { Sources } from '@kitn.ai/chat/react';\n\n<Sources\n sources={sources}\n/>",
"vue": "<kc-sources\n :sources.prop=\"sources\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-sources\n {sources}\n></kc-sources>",
"angular": "<kc-sources\n [sources]=\"sources\"\n></kc-sources>",
"solid": "import { SourceList } from '@kitn.ai/chat';\n\n<SourceList\n sources={sources}\n/>"
}
},
{
"tag": "kc-suggestions",
"displayName": "Suggestions",
"hasSolid": false,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-suggestions></kc-suggestions>\n<script type=\"module\">\n const el = document.querySelector('kc-suggestions');\n el.suggestions = /* … */;\n el.addEventListener('kc-select', (e) => console.log(e.detail));\n</script>",
"react": "import { Suggestions } from '@kitn.ai/chat/react';\n\n<Suggestions\n suggestions={suggestions}\n onSelect={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-suggestions\n :suggestions.prop=\"suggestions\"\n @kc-select=\"onSelect\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-suggestions\n {suggestions}\n on:kc-select={onSelect}\n></kc-suggestions>",
"angular": "<kc-suggestions\n [suggestions]=\"suggestions\"\n (kc-select)=\"onSelect($event)\"\n></kc-suggestions>"
}
},
{
"tag": "kc-switch",
"displayName": "Switch",
"hasSolid": false,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-switch></kc-switch>\n<script type=\"module\">\n const el = document.querySelector('kc-switch');\n el.addEventListener('kc-change', (e) => console.log(e.detail));\n</script>",
"react": "import { Switch } from '@kitn.ai/chat/react';\n\n<Switch\n onChange={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-switch\n @kc-change=\"onChange\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-switch\n on:kc-change={onChange}\n></kc-switch>",
"angular": "<kc-switch\n (kc-change)=\"onChange($event)\"\n></kc-switch>"
}
},
{
"tag": "kc-tasks",
"displayName": "Tasks",
"hasSolid": false,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-tasks></kc-tasks>",
"react": "import { Tasks } from '@kitn.ai/chat/react';\n\n<Tasks />",
"vue": "<kc-tasks />",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-tasks></kc-tasks>",
"angular": "<kc-tasks></kc-tasks>"
}
},
{
"tag": "kc-text-shimmer",
"displayName": "TextShimmer",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-text-shimmer></kc-text-shimmer>",
"react": "import { TextShimmer } from '@kitn.ai/chat/react';\n\n<TextShimmer />",
"vue": "<kc-text-shimmer />",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-text-shimmer></kc-text-shimmer>",
"angular": "<kc-text-shimmer></kc-text-shimmer>",
"solid": "import { TextShimmer } from '@kitn.ai/chat';\n\n<TextShimmer />"
}
},
{
"tag": "kc-thinking-bar",
"displayName": "ThinkingBar",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-thinking-bar></kc-thinking-bar>\n<script type=\"module\">\n const el = document.querySelector('kc-thinking-bar');\n el.addEventListener('kc-stop', (e) => console.log(e.detail));\n</script>",
"react": "import { ThinkingBar } from '@kitn.ai/chat/react';\n\n<ThinkingBar\n onStop={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-thinking-bar\n @kc-stop=\"onStop\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-thinking-bar\n on:kc-stop={onStop}\n></kc-thinking-bar>",
"angular": "<kc-thinking-bar\n (kc-stop)=\"onStop($event)\"\n></kc-thinking-bar>",
"solid": "import { ThinkingBar } from '@kitn.ai/chat';\n\n<ThinkingBar\n onStop={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-tool",
"displayName": "Tool",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-tool></kc-tool>",
"react": "import { Tool } from '@kitn.ai/chat/react';\n\n<Tool />",
"vue": "<kc-tool />",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-tool></kc-tool>",
"angular": "<kc-tool></kc-tool>",
"solid": "import { Tool } from '@kitn.ai/chat';\n\n<Tool />"
}
},
{
"tag": "kc-voice-input",
"displayName": "VoiceInput",
"hasSolid": true,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-voice-input></kc-voice-input>\n<script type=\"module\">\n const el = document.querySelector('kc-voice-input');\n el.addEventListener('kc-audio-captured', (e) => console.log(e.detail));\n el.addEventListener('kc-transcription', (e) => console.log(e.detail));\n</script>",
"react": "import { VoiceInput } from '@kitn.ai/chat/react';\n\n<VoiceInput\n onAudioCaptured={(e) => console.log(e.detail)}\n onTranscription={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-voice-input\n @kc-audio-captured=\"onAudioCaptured\"\n @kc-transcription=\"onTranscription\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-voice-input\n on:kc-audio-captured={onAudioCaptured}\n on:kc-transcription={onTranscription}\n></kc-voice-input>",
"angular": "<kc-voice-input\n (kc-audio-captured)=\"onAudioCaptured($event)\"\n (kc-transcription)=\"onTranscription($event)\"\n></kc-voice-input>",
"solid": "import { VoiceInput } from '@kitn.ai/chat';\n\n<VoiceInput\n onAudioCaptured={(e) => console.log(e.detail)}\n onTranscription={(e) => console.log(e.detail)}\n/>"
}
},
{
"tag": "kc-workspace",
"displayName": "Workspace",
"hasSolid": false,
"snippets": {
"html": "<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@kitn.ai/chat/dist/kitn-chat.es.js\"></script>\n\n<kc-workspace></kc-workspace>\n<script type=\"module\">\n const el = document.querySelector('kc-workspace');\n el.groups = /* … */;\n el.conversations = /* … */;\n el.messages = /* … */;\n el.addEventListener('kc-conversation-select', (e) => console.log(e.detail));\n el.addEventListener('kc-message-action', (e) => console.log(e.detail));\n el.addEventListener('kc-model-change', (e) => console.log(e.detail));\n el.addEventListener('kc-new-chat', (e) => console.log(e.detail));\n el.addEventListener('kc-search', (e) => console.log(e.detail));\n el.addEventListener('kc-sidebar-toggle', (e) => console.log(e.detail));\n el.addEventListener('kc-slash-select', (e) => console.log(e.detail));\n el.addEventListener('kc-submit', (e) => console.log(e.detail));\n el.addEventListener('kc-suggestion-click', (e) => console.log(e.detail));\n el.addEventListener('kc-value-change', (e) => console.log(e.detail));\n el.addEventListener('kc-voice', (e) => console.log(e.detail));\n</script>",
"react": "import { Workspace } from '@kitn.ai/chat/react';\n\n<Workspace\n groups={groups}\n conversations={conversations}\n messages={messages}\n onConversationSelect={(e) => console.log(e.detail)}\n onMessageAction={(e) => console.log(e.detail)}\n onModelChange={(e) => console.log(e.detail)}\n onNewChat={(e) => console.log(e.detail)}\n onSearch={(e) => console.log(e.detail)}\n onSidebarToggle={(e) => console.log(e.detail)}\n onSlashSelect={(e) => console.log(e.detail)}\n onSubmit={(e) => console.log(e.detail)}\n onSuggestionClick={(e) => console.log(e.detail)}\n onValueChange={(e) => console.log(e.detail)}\n onVoice={(e) => console.log(e.detail)}\n/>",
"vue": "<kc-workspace\n :groups.prop=\"groups\"\n :conversations.prop=\"conversations\"\n :messages.prop=\"messages\"\n @kc-conversation-select=\"onConversationSelect\"\n @kc-message-action=\"onMessageAction\"\n @kc-model-change=\"onModelChange\"\n @kc-new-chat=\"onNewChat\"\n @kc-search=\"onSearch\"\n @kc-sidebar-toggle=\"onSidebarToggle\"\n @kc-slash-select=\"onSlashSelect\"\n @kc-submit=\"onSubmit\"\n @kc-suggestion-click=\"onSuggestionClick\"\n @kc-value-change=\"onValueChange\"\n @kc-voice=\"onVoice\"\n/>",
"svelte": "<script>\n import '@kitn.ai/chat/elements';\n</script>\n\n<kc-workspace\n {groups}\n {conversations}\n {messages}\n on:kc-conversation-select={onConversationSelect}\n on:kc-message-action={onMessageAction}\n on:kc-model-change={onModelChange}\n on:kc-new-chat={onNewChat}\n on:kc-search={onSearch}\n on:kc-sidebar-toggle={onSidebarToggle}\n on:kc-slash-select={onSlashSelect}\n on:kc-submit={onSubmit}\n on:kc-suggestion-click={onSuggestionClick}\n on:kc-value-change={onValueChange}\n on:kc-voice={onVoice}\n></kc-workspace>",
"angular": "<kc-workspace\n [groups]=\"groups\"\n [conversations]=\"conversations\"\n [messages]=\"messages\"\n (kc-conversation-select)=\"onConversationSelect($event)\"\n (kc-message-action)=\"onMessageAction($event)\"\n (kc-model-change)=\"onModelChange($event)\"\n (kc-new-chat)=\"onNewChat($event)\"\n (kc-search)=\"onSearch($event)\"\n (kc-sidebar-toggle)=\"onSidebarToggle($event)\"\n (kc-slash-select)=\"onSlashSelect($event)\"\n (kc-submit)=\"onSubmit($event)\"\n (kc-suggestion-click)=\"onSuggestionClick($event)\"\n (kc-value-change)=\"onValueChange($event)\"\n (kc-voice)=\"onVoice($event)\"\n></kc-workspace>"
}
}
]