ab6120cde5
* wip: server_tools * feat: Integrate with `/tools` endpoint * feat: Builtin + MCP + JSON Schema Tools WIP * refactor * displayName -> display_name * snake_case everywhere * rm redundant field * feat: Improvements * chore: update webui build output * refactor: Updates after server updates * chore: update webui build output * change arg to --tools all * feat: UI improvements * chore: update webui build output * add readme mention * llama-gen-docs * chore: update webui build output * chore: update webui build output * chore: update webui build output * feat: Reorganize settings sections * feat: Separate dialogs for MCP Servers Settings and Import/Export * feat: WIP * feat: WIP * feat: WIP * feat: WIP * feat: WIP * feat: WIP * WIP on allozaur/20677-webui-server-tools * feat: UI improvements * chore: Update package lock * chore: Run `npm audit fix` * feat: UI WIP * feat: UI * refactor: Desktop Icon Strip DRY * feat: Cleaner rendering and transition for ChatScreen * feat: UI improvements * feat: UI improvement * feat: Remove MCP Server "enable" switch from Tools submenu * chore: Run `npm audit fix` * feat: WIP * feat: Logic improvements * refactor: Cleanup * refactor: DRY * test: Fix Chat Sidebar UI Tests * chore: Update package lock * refactor: Cleanup * feat: Chat Message Action Card with Continue and Permission flow implementations * feat: Add agentic steering messages, draft messages and improve chat UX * fix: Search results UI * test: Fix unit test * feat: UI/UX improvements * refactor: Simplify `useToolsPanel` access in components * feat: Implement Processing Info Context API * feat: Implement 'Go back to chat' functionality for settings * feat: Enhance MCP Server management in Chat Form Attachments * style: Minor UI and branding adjustments * chore: Update webui static build output * chore: Formatting, linting & type checks * feat: Draft messages logic * feat: UI improvements * feat: Steering Messages improvements * refactor: Cleanup * refactor: Cleanup * feat: Improve UI * refactor: Settings navigation hook * refactor: DRY code * refactor: DRY ChatMessageUser UI components * refactor: Desktop Icon Strip DRY * refactor: Tools & permissions * fix: Navigation condition * refactor: Cleanup * refactor: Cleanup * refactor: Cleanup * fix: preserve reasoning_content in agentic flow * refactor: Storybook cleanup * refactor: isInViewport util function * refactor: Rename globally `onClick` to `onclick` * chore: `npm audit fix` * refactor: Action Icon usage * refactor: Naming * refactor: JS in `class` directive * refactor: Chat components cleanup WIP * refactor: Components structure * refactor: Cleanup WIP * feat: New ChatAttachmentsPreview component * feat: UI improvements * feat: UI improvements * refactor: Cleanup * refactor: ChatAttachmentsPreview UI/UX * refactor: Remove dead code * refactor: Cleanup * fix: Model Name aliases displaying * feat: Shortcut improvements * refactor: Chat Message * feat: Move Import/Export to settings * refactor: Cleanup * refactor: Cleanup * refactor: Cleanup * refactor: Cleanup --------- Co-authored-by: Xuan Son Nguyen <son@huggingface.co>
80 lines
2.3 KiB
TypeScript
80 lines
2.3 KiB
TypeScript
/**
|
|
*
|
|
* CONTENT RENDERING
|
|
*
|
|
* Components for rendering rich content: markdown, code, and previews.
|
|
*
|
|
*/
|
|
|
|
/**
|
|
* **MarkdownContent** - Rich markdown renderer
|
|
*
|
|
* Renders markdown content with syntax highlighting, LaTeX math,
|
|
* tables, links, and code blocks. Optimized for streaming with
|
|
* incremental block-based rendering.
|
|
*
|
|
* **Features:**
|
|
* - GFM (GitHub Flavored Markdown): tables, task lists, strikethrough
|
|
* - LaTeX math via KaTeX (`$inline$` and `$$block$$`)
|
|
* - Syntax highlighting (highlight.js) with language detection
|
|
* - Code copy buttons with click feedback
|
|
* - External links open in new tab with security attrs
|
|
* - Image attachment resolution from message extras
|
|
* - Dark/light theme support (auto-switching)
|
|
* - Streaming-optimized incremental rendering
|
|
* - Code preview dialog for large blocks
|
|
*
|
|
* @example
|
|
* ```svelte
|
|
* <MarkdownContent content={message.content} attachments={message.extra} />
|
|
* ```
|
|
*/
|
|
export { default as MarkdownContent } from './MarkdownContent/MarkdownContent.svelte';
|
|
|
|
/**
|
|
* **SyntaxHighlightedCode** - Code syntax highlighting
|
|
*
|
|
* Renders code with syntax highlighting using highlight.js.
|
|
* Supports theme switching and scrollable containers.
|
|
*
|
|
* **Features:**
|
|
* - Auto language detection with fallback
|
|
* - Dark/light theme auto-switching
|
|
* - Scrollable container with configurable max dimensions
|
|
* - Monospace font styling
|
|
* - Preserves whitespace and formatting
|
|
*
|
|
* @example
|
|
* ```svelte
|
|
* <SyntaxHighlightedCode code={jsonString} language="json" />
|
|
* ```
|
|
*/
|
|
export { default as SyntaxHighlightedCode } from './SyntaxHighlightedCode.svelte';
|
|
|
|
/**
|
|
* **CollapsibleContentBlock** - Expandable content card
|
|
*
|
|
* Reusable collapsible card with header, icon, and auto-scroll.
|
|
* Used for tool calls and reasoning blocks in chat messages.
|
|
*
|
|
* **Features:**
|
|
* - Collapsible content with smooth animation
|
|
* - Custom icon and title display
|
|
* - Optional subtitle/status text
|
|
* - Auto-scroll during streaming (pauses on user scroll)
|
|
* - Configurable max height with overflow scroll
|
|
*
|
|
* @example
|
|
* ```svelte
|
|
* <CollapsibleContentBlock
|
|
* bind:open
|
|
* icon={BrainIcon}
|
|
* title="Thinking..."
|
|
* isStreaming
|
|
* >
|
|
* {reasoningContent}
|
|
* </CollapsibleContentBlock>
|
|
* ```
|
|
*/
|
|
export { default as CollapsibleContentBlock } from './CollapsibleContentBlock.svelte';
|