Context Window Management: - Add ContextFullModal with recovery options (summarize, new chat, dismiss) - Show toast notifications at 85% and 95% context thresholds - Block sending when context exceeds 100% until user takes action Conversation Summarization: - Add isSummarized/isSummary flags to Message type - Implement markAsSummarized() and insertSummaryMessage() in ChatState - Add messagesForContext derived state (excludes summarized, includes summaries) - Complete handleSummarize flow with LLM summary generation - Add amber-styled summary message UI with archive icon Auto-scroll Fixes: - Fix Svelte 5 reactivity issues by using plain variables instead of $state - Add continuous scroll during streaming via streamBuffer tracking - Properly handle user scroll override (re-enable at bottom) Drag & Drop Improvements: - Add full-screen drag overlay with document-level event listeners - Use dragCounter pattern for reliable nested element detection - Add hideDropZone prop to FileUpload/ImageUpload components Additional Features: - Add SystemPromptSelector for per-conversation prompts - Add SearchModal for full-text message search - Add ShortcutsModal for keyboard shortcuts help - Add theme toggle to TopNav 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
/**
|
|
* Chat components for Ollama Web UI
|
|
*
|
|
* This module exports all chat-related components for building
|
|
* the conversational interface.
|
|
*/
|
|
|
|
// Main container
|
|
export { default as ChatWindow } from './ChatWindow.svelte';
|
|
|
|
// Message display
|
|
export { default as MessageList } from './MessageList.svelte';
|
|
export { default as MessageItem } from './MessageItem.svelte';
|
|
export { default as MessageContent } from './MessageContent.svelte';
|
|
export { default as MessageActions } from './MessageActions.svelte';
|
|
|
|
// Branch navigation
|
|
export { default as BranchNavigator } from './BranchNavigator.svelte';
|
|
|
|
// Input
|
|
export { default as ChatInput } from './ChatInput.svelte';
|
|
|
|
// Image handling (for vision models)
|
|
export { default as ImageUpload } from './ImageUpload.svelte';
|
|
export { default as ImagePreview } from './ImagePreview.svelte';
|
|
|
|
// Code display
|
|
export { default as CodeBlock } from './CodeBlock.svelte';
|
|
|
|
// Indicators and states
|
|
export { default as StreamingIndicator } from './StreamingIndicator.svelte';
|
|
export { default as EmptyState } from './EmptyState.svelte';
|
|
|
|
// Context management
|
|
export { default as ContextUsageBar } from './ContextUsageBar.svelte';
|
|
export { default as ContextFullModal } from './ContextFullModal.svelte';
|
|
export { default as SummaryBanner } from './SummaryBanner.svelte';
|
|
|
|
// Prompt selection
|
|
export { default as SystemPromptSelector } from './SystemPromptSelector.svelte';
|