summaryrefslogtreecommitdiff
path: root/llama.cpp/tools/server/webui/src/lib/components/app/misc/BadgeChatStatistic.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'llama.cpp/tools/server/webui/src/lib/components/app/misc/BadgeChatStatistic.svelte')
-rw-r--r--llama.cpp/tools/server/webui/src/lib/components/app/misc/BadgeChatStatistic.svelte44
1 files changed, 44 insertions, 0 deletions
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 @@
+<script lang="ts">
+ import { BadgeInfo } from '$lib/components/app';
+ import * as Tooltip from '$lib/components/ui/tooltip';
+ import { copyToClipboard } from '$lib/utils';
+ import type { Component } from 'svelte';
+
+ interface Props {
+ class?: string;
+ icon: Component;
+ value: string | number;
+ tooltipLabel?: string;
+ }
+
+ let { class: className = '', icon: Icon, value, tooltipLabel }: Props = $props();
+
+ function handleClick() {
+ void copyToClipboard(String(value));
+ }
+</script>
+
+{#if tooltipLabel}
+ <Tooltip.Root>
+ <Tooltip.Trigger>
+ <BadgeInfo class={className} onclick={handleClick}>
+ {#snippet icon()}
+ <Icon class="h-3 w-3" />
+ {/snippet}
+
+ {value}
+ </BadgeInfo>
+ </Tooltip.Trigger>
+ <Tooltip.Content>
+ <p>{tooltipLabel}</p>
+ </Tooltip.Content>
+ </Tooltip.Root>
+{:else}
+ <BadgeInfo class={className} onclick={handleClick}>
+ {#snippet icon()}
+ <Icon class="h-3 w-3" />
+ {/snippet}
+
+ {value}
+ </BadgeInfo>
+{/if}