@kitn.ai/ui 0.15.0 → 0.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/kitn-chat.es.js +1 -1
- package/package.json +6 -1
- package/src/elements/compiled.css +1 -1
- package/src/components/artifact.stories.tsx +0 -138
- package/src/components/attachments.stories.tsx +0 -303
- package/src/components/attachments.test.tsx +0 -64
- package/src/components/chain-of-thought.stories.tsx +0 -211
- package/src/components/chat-container.stories.tsx +0 -187
- package/src/components/chat-thread.test.tsx +0 -58
- package/src/components/checkpoint.stories.tsx +0 -102
- package/src/components/code-block.stories.tsx +0 -150
- package/src/components/confirm-card.stories.tsx +0 -74
- package/src/components/context.stories.tsx +0 -229
- package/src/components/context.test.tsx +0 -133
- package/src/components/conversation-item.stories.tsx +0 -125
- package/src/components/conversation-list.stories.tsx +0 -133
- package/src/components/default-input.test.tsx +0 -111
- package/src/components/empty.stories.tsx +0 -434
- package/src/components/feedback-bar.stories.tsx +0 -138
- package/src/components/feedback-bar.test.tsx +0 -103
- package/src/components/file-tree.stories.tsx +0 -73
- package/src/components/file-upload.stories.tsx +0 -156
- package/src/components/image.stories.tsx +0 -89
- package/src/components/loader.stories.tsx +0 -181
- package/src/components/markdown.stories.tsx +0 -180
- package/src/components/message-action-bar.test.tsx +0 -128
- package/src/components/message-narrow.stories.tsx +0 -329
- package/src/components/message-skills.stories.tsx +0 -211
- package/src/components/message.stories.tsx +0 -281
- package/src/components/model-switcher.stories.tsx +0 -123
- package/src/components/model-switcher.test.tsx +0 -65
- package/src/components/prompt-input.stories.tsx +0 -222
- package/src/components/prompt-suggestion.stories.tsx +0 -142
- package/src/components/reasoning.stories.tsx +0 -140
- package/src/components/resizable.test.tsx +0 -226
- package/src/components/scroll-button.stories.tsx +0 -100
- package/src/components/slash-command.stories.tsx +0 -163
- package/src/components/source-list.test.tsx +0 -152
- package/src/components/source.stories.tsx +0 -124
- package/src/components/tasks-card.stories.tsx +0 -78
- package/src/components/text-shimmer.stories.tsx +0 -87
- package/src/components/thinking-bar.stories.tsx +0 -87
- package/src/components/tool.stories.tsx +0 -153
- package/src/components/voice-input.stories.tsx +0 -83
- package/src/elements/artifact.stories.tsx +0 -506
- package/src/elements/attachments.stories.tsx +0 -190
- package/src/elements/card.stories.tsx +0 -113
- package/src/elements/cards.stories.tsx +0 -59
- package/src/elements/catalog.stories.tsx +0 -491
- package/src/elements/chain-of-thought.declarative.test.tsx +0 -153
- package/src/elements/chain-of-thought.stories.tsx +0 -113
- package/src/elements/chat-scope-picker.stories.tsx +0 -73
- package/src/elements/chat-workspace.stories.tsx +0 -288
- package/src/elements/chat.stories.tsx +0 -151
- package/src/elements/checkpoint.stories.tsx +0 -72
- package/src/elements/choice.stories.tsx +0 -240
- package/src/elements/code-block.stories.tsx +0 -83
- package/src/elements/composed-shell.stories.tsx +0 -316
- package/src/elements/confirm-card.stories.tsx +0 -227
- package/src/elements/context-meter.stories.tsx +0 -151
- package/src/elements/conversation-list.declarative.test.tsx +0 -137
- package/src/elements/conversation-list.stories.tsx +0 -243
- package/src/elements/embed.stories.tsx +0 -213
- package/src/elements/empty.stories.tsx +0 -111
- package/src/elements/feedback-bar.stories.tsx +0 -114
- package/src/elements/file-tree.stories.tsx +0 -134
- package/src/elements/file-upload.stories.tsx +0 -82
- package/src/elements/form.stories.tsx +0 -248
- package/src/elements/image.stories.tsx +0 -71
- package/src/elements/link-preview.stories.tsx +0 -209
- package/src/elements/loader.stories.tsx +0 -88
- package/src/elements/markdown.stories.tsx +0 -76
- package/src/elements/message-skills.declarative.test.tsx +0 -104
- package/src/elements/message-skills.stories.tsx +0 -114
- package/src/elements/message.stories.tsx +0 -218
- package/src/elements/model-switcher.declarative.test.tsx +0 -130
- package/src/elements/model-switcher.stories.tsx +0 -198
- package/src/elements/popover.stories.tsx +0 -80
- package/src/elements/prompt-input-slash-command.test.tsx +0 -128
- package/src/elements/prompt-input-stoppable.test.tsx +0 -88
- package/src/elements/prompt-input-toolbar-actions.test.tsx +0 -120
- package/src/elements/prompt-input.stories.tsx +0 -331
- package/src/elements/prompt-suggestions.declarative.test.tsx +0 -164
- package/src/elements/prompt-suggestions.stories.tsx +0 -213
- package/src/elements/reasoning.stories.tsx +0 -77
- package/src/elements/remote.stories.tsx +0 -314
- package/src/elements/resizable.stories.tsx +0 -426
- package/src/elements/response-stream.stories.tsx +0 -79
- package/src/elements/scroll-button.stories.tsx +0 -202
- package/src/elements/scroll-button.test.tsx +0 -148
- package/src/elements/source-list.stories.tsx +0 -143
- package/src/elements/source.stories.tsx +0 -88
- package/src/elements/switch.stories.tsx +0 -56
- package/src/elements/tasks.stories.tsx +0 -237
- package/src/elements/text-shimmer.stories.tsx +0 -64
- package/src/elements/thinking-bar.stories.tsx +0 -72
- package/src/elements/tool.stories.tsx +0 -89
- package/src/elements/voice-input.stories.tsx +0 -88
- package/src/primitives/controllable.test.ts +0 -47
- package/src/stories/chat-panel-layout.stories.tsx +0 -145
- package/src/stories/chat-scene.tsx +0 -571
- package/src/stories/checkpoint-restore.stories.tsx +0 -256
- package/src/stories/context-usage.stories.tsx +0 -212
- package/src/stories/conversation-with-reasoning.stories.tsx +0 -182
- package/src/stories/conversation-with-sources.stories.tsx +0 -471
- package/src/stories/docs/Accessibility.mdx +0 -119
- package/src/stories/docs/ChildElements.mdx +0 -269
- package/src/stories/docs/ForAIAgents.mdx +0 -162
- package/src/stories/docs/GettingStarted.mdx +0 -65
- package/src/stories/docs/Installation.mdx +0 -83
- package/src/stories/docs/Introduction.mdx +0 -50
- package/src/stories/docs/SolidJsAdvanced.mdx +0 -17
- package/src/stories/docs/Theming.mdx +0 -85
- package/src/stories/docs/element-controls.ts +0 -121
- package/src/stories/docs/frameworks/Angular.mdx +0 -245
- package/src/stories/docs/frameworks/Html.mdx +0 -227
- package/src/stories/docs/frameworks/Overview.mdx +0 -47
- package/src/stories/docs/frameworks/React.mdx +0 -227
- package/src/stories/docs/frameworks/Solid.mdx +0 -173
- package/src/stories/docs/frameworks/Svelte.mdx +0 -194
- package/src/stories/docs/frameworks/Vue.mdx +0 -238
- package/src/stories/docs/generative-ui-overview.mdx +0 -186
- package/src/stories/docs/recipes/SpeechToText.mdx +0 -7
- package/src/stories/docs/recipes/Streaming.mdx +0 -68
- package/src/stories/docs/recipes/TextToSpeech.mdx +0 -35
- package/src/stories/docs/theme-editor/canvas.tsx +0 -32
- package/src/stories/docs/theme-editor/inspector.tsx +0 -66
- package/src/stories/docs/theme-editor/presets.test.ts +0 -32
- package/src/stories/docs/theme-editor/presets.ts +0 -64
- package/src/stories/docs/theme-editor/theme-css.test.ts +0 -19
- package/src/stories/docs/theme-editor/theme-css.ts +0 -15
- package/src/stories/docs/theme-editor/theme-editor.tsx +0 -146
- package/src/stories/docs/theme-tokens.tsx +0 -174
- package/src/stories/examples/ChoosingComponents.mdx +0 -106
- package/src/stories/examples/sample-data.ts +0 -79
- package/src/stories/examples/usage/checkpoint-restore.ts +0 -156
- package/src/stories/examples/usage/context-usage.ts +0 -591
- package/src/stories/examples/usage/conversation-with-reasoning.ts +0 -224
- package/src/stories/examples/usage/conversation-with-sources.ts +0 -589
- package/src/stories/examples/usage/empty-state.ts +0 -144
- package/src/stories/examples/usage/full-chat-app.ts +0 -277
- package/src/stories/examples/usage/index.ts +0 -63
- package/src/stories/examples/usage/message-actions.ts +0 -704
- package/src/stories/examples/usage/pattern-centered-conversation.ts +0 -446
- package/src/stories/examples/usage/pattern-chat-panel-layout.ts +0 -442
- package/src/stories/examples/usage/pattern-docked-widget.ts +0 -479
- package/src/stories/examples/usage/prompt-input-variants.ts +0 -1356
- package/src/stories/examples/usage/streaming-response.ts +0 -687
- package/src/stories/examples/usage/types.ts +0 -33
- package/src/stories/full-chat.stories.tsx +0 -18
- package/src/stories/message-actions.stories.tsx +0 -230
- package/src/stories/pattern-centered-conversation.stories.tsx +0 -93
- package/src/stories/pattern-docked-widget.stories.tsx +0 -93
- package/src/stories/pattern-empty-state.stories.tsx +0 -76
- package/src/stories/prompt-input-variants.stories.tsx +0 -456
- package/src/stories/streaming-response.stories.tsx +0 -438
- package/src/stories/theme-editor.stories.tsx +0 -16
- package/src/stories/token-reference.stories.tsx +0 -18
- package/src/stories/typography.stories.tsx +0 -78
- package/src/ui/avatar.stories.tsx +0 -103
- package/src/ui/badge.stories.tsx +0 -86
- package/src/ui/button.stories.tsx +0 -145
- package/src/ui/collapsible.stories.tsx +0 -69
- package/src/ui/dropdown.stories.tsx +0 -59
- package/src/ui/hover-card.stories.tsx +0 -77
- package/src/ui/hover-card.test.tsx +0 -30
- package/src/ui/overlay.stories.tsx +0 -115
- package/src/ui/popover.stories.tsx +0 -81
- package/src/ui/popover.test.tsx +0 -99
- package/src/ui/resizable.stories.tsx +0 -236
- package/src/ui/scroll-area.stories.tsx +0 -50
- package/src/ui/separator.stories.tsx +0 -81
- package/src/ui/skeleton.stories.tsx +0 -337
- package/src/ui/switch.stories.tsx +0 -51
- package/src/ui/switch.test.tsx +0 -59
- package/src/ui/textarea.stories.tsx +0 -76
- package/src/ui/tooltip.stories.tsx +0 -74
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from 'storybook-solidjs-vite';
|
|
2
|
-
import { createSignal } from 'solid-js';
|
|
3
|
-
import { Message, MessageAvatar, MessageContent, MessageActions } from '../components/message';
|
|
4
|
-
import { ChatContainer } from '../components/chat-container';
|
|
5
|
-
import { ChatConfig } from '../primitives/chat-config';
|
|
6
|
-
import { PromptInput, PromptInputTextarea, PromptInputActions } from '../components/prompt-input';
|
|
7
|
-
import { Button } from '../ui/button';
|
|
8
|
-
import { ScrollButton } from '../components/scroll-button';
|
|
9
|
-
import { Copy, ArrowUp } from 'lucide-solid';
|
|
10
|
-
|
|
11
|
-
const meta: Meta = {
|
|
12
|
-
title: 'Patterns/Chat Panel Layout',
|
|
13
|
-
parameters: { layout: 'centered' },
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export default meta;
|
|
17
|
-
type Story = StoryObj;
|
|
18
|
-
|
|
19
|
-
const assistantMsg1 = `The document is a transcript of a YouTube video by Cole Medin, where he discusses building a self-evolving memory system for coding agents using Large Language Models (LLMs), inspired by Andre Karpathy's ideas on LLM knowledge bases.`;
|
|
20
|
-
|
|
21
|
-
const assistantMsg2 = `Short answer: **it has to be a separate browser window** (or tab/iframe), not just a normal component in your application.
|
|
22
|
-
|
|
23
|
-
Here's why:
|
|
24
|
-
|
|
25
|
-
- The OAuth flow requires redirecting to the provider's login page
|
|
26
|
-
- The callback URL needs to be a real URL the browser can navigate to
|
|
27
|
-
- Security policies prevent embedding auth pages in iframes`;
|
|
28
|
-
|
|
29
|
-
const userMsg1 = 'What is this video about?';
|
|
30
|
-
const userMsg2 = 'And from what I understand, does that need to be another browser window pop-up that happens, or can I just have a component that does that in my application?';
|
|
31
|
-
|
|
32
|
-
function CopyButton(props: { text: string }) {
|
|
33
|
-
return (
|
|
34
|
-
<button aria-label="Copy message" onClick={() => navigator.clipboard.writeText(props.text)}>
|
|
35
|
-
<Copy size={14} />
|
|
36
|
-
</button>
|
|
37
|
-
);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Reference layout — uses variant props, no custom class overrides.
|
|
42
|
-
*/
|
|
43
|
-
export const ChatGPTStyle: Story = {
|
|
44
|
-
render: () => {
|
|
45
|
-
const [input, setInput] = createSignal('');
|
|
46
|
-
return (
|
|
47
|
-
<ChatConfig proseSize="base">
|
|
48
|
-
<div
|
|
49
|
-
style={{ width: '420px', height: '700px' }}
|
|
50
|
-
class="flex flex-col overflow-hidden rounded-lg bg-card"
|
|
51
|
-
>
|
|
52
|
-
{/* Header */}
|
|
53
|
-
<div class="px-3 py-2.5 bg-muted/30 text-sm font-semibold text-foreground flex-shrink-0 flex items-center justify-between">
|
|
54
|
-
<span>Chat Panel</span>
|
|
55
|
-
<span class="text-xs text-muted-foreground">GPT-4o Mini</span>
|
|
56
|
-
</div>
|
|
57
|
-
|
|
58
|
-
{/* Messages */}
|
|
59
|
-
<ChatContainer class="flex-1 min-w-0 px-4 py-3 space-y-4">
|
|
60
|
-
{/* Assistant message 1 — with avatar */}
|
|
61
|
-
<Message>
|
|
62
|
-
<MessageAvatar src="" alt="AI" fallback="AI" />
|
|
63
|
-
<div class="flex w-full flex-col min-w-0">
|
|
64
|
-
<MessageContent markdown class="bg-transparent p-0 pt-1.5">
|
|
65
|
-
{assistantMsg1}
|
|
66
|
-
</MessageContent>
|
|
67
|
-
<MessageActions>
|
|
68
|
-
<CopyButton text={assistantMsg1} />
|
|
69
|
-
</MessageActions>
|
|
70
|
-
</div>
|
|
71
|
-
</Message>
|
|
72
|
-
|
|
73
|
-
{/* User message 1 */}
|
|
74
|
-
<Message class="group flex-col items-end">
|
|
75
|
-
<MessageContent class="bg-muted text-primary max-w-[85%] rounded-xl px-4 py-2 mr-1">
|
|
76
|
-
{userMsg1}
|
|
77
|
-
</MessageContent>
|
|
78
|
-
<MessageActions class="opacity-0 group-hover:opacity-100 transition-opacity duration-150">
|
|
79
|
-
<CopyButton text={userMsg1} />
|
|
80
|
-
</MessageActions>
|
|
81
|
-
</Message>
|
|
82
|
-
|
|
83
|
-
{/* Assistant message 2 — with avatar, markdown */}
|
|
84
|
-
<Message>
|
|
85
|
-
<MessageAvatar src="" alt="AI" fallback="AI" />
|
|
86
|
-
<div class="flex w-full flex-col min-w-0">
|
|
87
|
-
<MessageContent markdown class="bg-transparent p-0 pt-1.5">
|
|
88
|
-
{assistantMsg2}
|
|
89
|
-
</MessageContent>
|
|
90
|
-
<MessageActions>
|
|
91
|
-
<CopyButton text={assistantMsg2} />
|
|
92
|
-
</MessageActions>
|
|
93
|
-
</div>
|
|
94
|
-
</Message>
|
|
95
|
-
|
|
96
|
-
{/* User message 2 — longer */}
|
|
97
|
-
<Message class="group flex-col items-end">
|
|
98
|
-
<MessageContent class="bg-muted text-primary max-w-[85%] rounded-xl px-4 py-2 mr-1">
|
|
99
|
-
{userMsg2}
|
|
100
|
-
</MessageContent>
|
|
101
|
-
<MessageActions class="opacity-0 group-hover:opacity-100 transition-opacity duration-150">
|
|
102
|
-
<CopyButton text={userMsg2} />
|
|
103
|
-
</MessageActions>
|
|
104
|
-
</Message>
|
|
105
|
-
|
|
106
|
-
{/* Assistant message 3 — with avatar, short */}
|
|
107
|
-
<Message>
|
|
108
|
-
<MessageAvatar src="" alt="AI" fallback="AI" />
|
|
109
|
-
<div class="flex w-full flex-col min-w-0">
|
|
110
|
-
<MessageContent markdown class="bg-transparent p-0 pt-1.5">
|
|
111
|
-
Got it — let me know if you have more questions!
|
|
112
|
-
</MessageContent>
|
|
113
|
-
<MessageActions>
|
|
114
|
-
<CopyButton text="Got it — let me know if you have more questions!" />
|
|
115
|
-
</MessageActions>
|
|
116
|
-
</div>
|
|
117
|
-
</Message>
|
|
118
|
-
<ScrollButton />
|
|
119
|
-
</ChatContainer>
|
|
120
|
-
|
|
121
|
-
{/* Input */}
|
|
122
|
-
<div class="px-3 pb-3 pt-1 flex-shrink-0">
|
|
123
|
-
<PromptInput
|
|
124
|
-
value={input()}
|
|
125
|
-
onValueChange={setInput}
|
|
126
|
-
onSubmit={() => setInput('')}
|
|
127
|
-
>
|
|
128
|
-
<PromptInputTextarea placeholder="Ask about this page..." class="min-h-[44px] pt-3 pl-4" />
|
|
129
|
-
<PromptInputActions class="mt-2 flex w-full items-center justify-end gap-2 px-3 pb-3">
|
|
130
|
-
<Button
|
|
131
|
-
size="icon-sm"
|
|
132
|
-
class="rounded-full"
|
|
133
|
-
aria-label="Send message"
|
|
134
|
-
disabled={!input().trim()}
|
|
135
|
-
>
|
|
136
|
-
<ArrowUp class="size-4" />
|
|
137
|
-
</Button>
|
|
138
|
-
</PromptInputActions>
|
|
139
|
-
</PromptInput>
|
|
140
|
-
</div>
|
|
141
|
-
</div>
|
|
142
|
-
</ChatConfig>
|
|
143
|
-
);
|
|
144
|
-
},
|
|
145
|
-
};
|