From b333b06772c89d96aacb5490d6a219fba7c09cc6 Mon Sep 17 00:00:00 2001 From: Mitja Felicijan Date: Thu, 12 Feb 2026 20:57:17 +0100 Subject: Engage! --- .../lib/components/app/misc/ActionButton.svelte | 47 ++ .../lib/components/app/misc/ActionDropdown.svelte | 86 ++ .../components/app/misc/BadgeChatStatistic.svelte | 44 ++ .../src/lib/components/app/misc/BadgeInfo.svelte | 27 + .../lib/components/app/misc/BadgeModality.svelte | 39 + .../components/app/misc/CodePreviewDialog.svelte | 93 +++ .../app/misc/ConversationSelection.svelte | 205 +++++ .../components/app/misc/CopyToClipboardIcon.svelte | 18 + .../app/misc/KeyboardShortcutInfo.svelte | 31 + .../lib/components/app/misc/MarkdownContent.svelte | 870 +++++++++++++++++++++ .../lib/components/app/misc/RemoveButton.svelte | 26 + .../src/lib/components/app/misc/SearchInput.svelte | 73 ++ .../app/misc/SyntaxHighlightedCode.svelte | 97 +++ 13 files changed, 1656 insertions(+) create mode 100644 llama.cpp/tools/server/webui/src/lib/components/app/misc/ActionButton.svelte create mode 100644 llama.cpp/tools/server/webui/src/lib/components/app/misc/ActionDropdown.svelte create mode 100644 llama.cpp/tools/server/webui/src/lib/components/app/misc/BadgeChatStatistic.svelte create mode 100644 llama.cpp/tools/server/webui/src/lib/components/app/misc/BadgeInfo.svelte create mode 100644 llama.cpp/tools/server/webui/src/lib/components/app/misc/BadgeModality.svelte create mode 100644 llama.cpp/tools/server/webui/src/lib/components/app/misc/CodePreviewDialog.svelte create mode 100644 llama.cpp/tools/server/webui/src/lib/components/app/misc/ConversationSelection.svelte create mode 100644 llama.cpp/tools/server/webui/src/lib/components/app/misc/CopyToClipboardIcon.svelte create mode 100644 llama.cpp/tools/server/webui/src/lib/components/app/misc/KeyboardShortcutInfo.svelte create mode 100644 llama.cpp/tools/server/webui/src/lib/components/app/misc/MarkdownContent.svelte create mode 100644 llama.cpp/tools/server/webui/src/lib/components/app/misc/RemoveButton.svelte create mode 100644 llama.cpp/tools/server/webui/src/lib/components/app/misc/SearchInput.svelte create mode 100644 llama.cpp/tools/server/webui/src/lib/components/app/misc/SyntaxHighlightedCode.svelte (limited to 'llama.cpp/tools/server/webui/src/lib/components/app/misc') diff --git a/llama.cpp/tools/server/webui/src/lib/components/app/misc/ActionButton.svelte b/llama.cpp/tools/server/webui/src/lib/components/app/misc/ActionButton.svelte new file mode 100644 index 0000000..411a8b6 --- /dev/null +++ b/llama.cpp/tools/server/webui/src/lib/components/app/misc/ActionButton.svelte @@ -0,0 +1,47 @@ + + + + + + + + +

{tooltip}

+
+
diff --git a/llama.cpp/tools/server/webui/src/lib/components/app/misc/ActionDropdown.svelte b/llama.cpp/tools/server/webui/src/lib/components/app/misc/ActionDropdown.svelte new file mode 100644 index 0000000..83d856d --- /dev/null +++ b/llama.cpp/tools/server/webui/src/lib/components/app/misc/ActionDropdown.svelte @@ -0,0 +1,86 @@ + + + + e.stopPropagation()} + > + {#if triggerTooltip} + + + {@render iconComponent(triggerIcon, 'h-3 w-3')} + {triggerTooltip} + + +

{triggerTooltip}

+
+
+ {:else} + {@render iconComponent(triggerIcon, 'h-3 w-3')} + {/if} +
+ + + {#each actions as action, index (action.label)} + {#if action.separator && index > 0} + + {/if} + + +
+ {@render iconComponent( + action.icon, + `h-4 w-4 ${action.variant === 'destructive' ? 'text-destructive' : ''}` + )} + {action.label} +
+ + {#if action.shortcut} + + {/if} +
+ {/each} +
+
+ +{#snippet iconComponent(IconComponent: Component, className: string)} + +{/snippet} diff --git a/llama.cpp/tools/server/webui/src/lib/components/app/misc/BadgeChatStatistic.svelte b/llama.cpp/tools/server/webui/src/lib/components/app/misc/BadgeChatStatistic.svelte new file mode 100644 index 0000000..a2b28d2 --- /dev/null +++ b/llama.cpp/tools/server/webui/src/lib/components/app/misc/BadgeChatStatistic.svelte @@ -0,0 +1,44 @@ + + +{#if tooltipLabel} + + + + {#snippet icon()} + + {/snippet} + + {value} + + + +

{tooltipLabel}

+
+
+{:else} + + {#snippet icon()} + + {/snippet} + + {value} + +{/if} diff --git a/llama.cpp/tools/server/webui/src/lib/components/app/misc/BadgeInfo.svelte b/llama.cpp/tools/server/webui/src/lib/components/app/misc/BadgeInfo.svelte new file mode 100644 index 0000000..c70af6f --- /dev/null +++ b/llama.cpp/tools/server/webui/src/lib/components/app/misc/BadgeInfo.svelte @@ -0,0 +1,27 @@ + + + diff --git a/llama.cpp/tools/server/webui/src/lib/components/app/misc/BadgeModality.svelte b/llama.cpp/tools/server/webui/src/lib/components/app/misc/BadgeModality.svelte new file mode 100644 index 0000000..a0d5e86 --- /dev/null +++ b/llama.cpp/tools/server/webui/src/lib/components/app/misc/BadgeModality.svelte @@ -0,0 +1,39 @@ + + +{#each displayableModalities as modality, index (index)} + {@const IconComponent = MODALITY_ICONS[modality]} + {@const label = MODALITY_LABELS[modality]} + + + {#if IconComponent} + + {/if} + + {label} + +{/each} diff --git a/llama.cpp/tools/server/webui/src/lib/components/app/misc/CodePreviewDialog.svelte b/llama.cpp/tools/server/webui/src/lib/components/app/misc/CodePreviewDialog.svelte new file mode 100644 index 0000000..702519f --- /dev/null +++ b/llama.cpp/tools/server/webui/src/lib/components/app/misc/CodePreviewDialog.svelte @@ -0,0 +1,93 @@ + + + + + + + + + + + + Close preview + + + + + + diff --git a/llama.cpp/tools/server/webui/src/lib/components/app/misc/ConversationSelection.svelte b/llama.cpp/tools/server/webui/src/lib/components/app/misc/ConversationSelection.svelte new file mode 100644 index 0000000..e2095e0 --- /dev/null +++ b/llama.cpp/tools/server/webui/src/lib/components/app/misc/ConversationSelection.svelte @@ -0,0 +1,205 @@ + + +
+
+ + + + + {#if searchQuery} + + {/if} +
+ +
+ + {selectedIds.size} of {conversations.length} selected + {#if searchQuery} + ({filteredConversations.length} shown) + {/if} + +
+ +
+ + + + + + + + + + + + + {#if filteredConversations.length === 0} + + + + {:else} + {#each filteredConversations as conv (conv.id)} + toggleConversation(conv.id, e.shiftKey)} + > + + + + + + + {/each} + {/if} + +
+ + Conversation NameMessages
+ {#if searchQuery} + No conversations found matching "{searchQuery}" + {:else} + No conversations available + {/if} +
+ { + e.preventDefault(); + e.stopPropagation(); + toggleConversation(conv.id, e.shiftKey); + }} + /> + +
+ {conv.name || 'Untitled conversation'} +
+
+ {messageCountMap.get(conv.id) ?? 0} +
+
+
+ +
+ + + +
+
diff --git a/llama.cpp/tools/server/webui/src/lib/components/app/misc/CopyToClipboardIcon.svelte b/llama.cpp/tools/server/webui/src/lib/components/app/misc/CopyToClipboardIcon.svelte new file mode 100644 index 0000000..bf6cd4f --- /dev/null +++ b/llama.cpp/tools/server/webui/src/lib/components/app/misc/CopyToClipboardIcon.svelte @@ -0,0 +1,18 @@ + + + canCopy && copyToClipboard(text)} +/> diff --git a/llama.cpp/tools/server/webui/src/lib/components/app/misc/KeyboardShortcutInfo.svelte b/llama.cpp/tools/server/webui/src/lib/components/app/misc/KeyboardShortcutInfo.svelte new file mode 100644 index 0000000..5b7522f --- /dev/null +++ b/llama.cpp/tools/server/webui/src/lib/components/app/misc/KeyboardShortcutInfo.svelte @@ -0,0 +1,31 @@ + + + + {#each keys as key, index (index)} + {#if key === 'shift'} + + {:else if key === 'cmd'} + + {:else} + {key.toUpperCase()} + {/if} + + {#if index < keys.length - 1} + + {/if} + {/each} + diff --git a/llama.cpp/tools/server/webui/src/lib/components/app/misc/MarkdownContent.svelte b/llama.cpp/tools/server/webui/src/lib/components/app/misc/MarkdownContent.svelte new file mode 100644 index 0000000..cb3ae17 --- /dev/null +++ b/llama.cpp/tools/server/webui/src/lib/components/app/misc/MarkdownContent.svelte @@ -0,0 +1,870 @@ + + +
+ {#each renderedBlocks as block (block.id)} +
+ + {@html block.html} +
+ {/each} + + {#if unstableBlockHtml} +
+ + {@html unstableBlockHtml} +
+ {/if} +
+ + + + diff --git a/llama.cpp/tools/server/webui/src/lib/components/app/misc/RemoveButton.svelte b/llama.cpp/tools/server/webui/src/lib/components/app/misc/RemoveButton.svelte new file mode 100644 index 0000000..1736855 --- /dev/null +++ b/llama.cpp/tools/server/webui/src/lib/components/app/misc/RemoveButton.svelte @@ -0,0 +1,26 @@ + + + diff --git a/llama.cpp/tools/server/webui/src/lib/components/app/misc/SearchInput.svelte b/llama.cpp/tools/server/webui/src/lib/components/app/misc/SearchInput.svelte new file mode 100644 index 0000000..15cd6ab --- /dev/null +++ b/llama.cpp/tools/server/webui/src/lib/components/app/misc/SearchInput.svelte @@ -0,0 +1,73 @@ + + +
+ + + + + {#if showClearButton} + + {/if} +
diff --git a/llama.cpp/tools/server/webui/src/lib/components/app/misc/SyntaxHighlightedCode.svelte b/llama.cpp/tools/server/webui/src/lib/components/app/misc/SyntaxHighlightedCode.svelte new file mode 100644 index 0000000..bc42f9d --- /dev/null +++ b/llama.cpp/tools/server/webui/src/lib/components/app/misc/SyntaxHighlightedCode.svelte @@ -0,0 +1,97 @@ + + +
+ +
{@html highlightedHtml}
+
+ + -- cgit v1.2.3