UI Components
@kaira/chat-ui contains composable primitives, not a monolithic chat shell.
MessageRenderer
Renders a single message using a RendererRegistry.
export interface DynamicMessageRendererProps extends MessageRendererProps {
readonly registry: RendererRegistry;
readonly fallback?: ComponentType<{ readonly message: Message }>;
}Use when you need polymorphic rendering by message.type.
MessageInput
Generic text input with Enter-to-send behavior.
export interface MessageInputProps {
readonly disabled?: boolean;
readonly placeholder?: string;
readonly onSend: (text: string) => Promise<void> | void;
}ThinkingIndicator
Lightweight component for streaming/typing feedback.
<ThinkingIndicator />Typical Composition
<MessageRenderer message={message} conversation={conversation} registry={registry} />
<ThinkingIndicator />
<MessageInput onSend={handleSend} />