From f58fc753e3c26079d804b96ee3c7c52cfec68e6d Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 28 Sep 2025 22:15:47 -0500 Subject: [PATCH] feat/enh: embed citation --- src/lib/components/chat/Chat.svelte | 4 +- src/lib/components/chat/ChatControls.svelte | 23 +++++++--- .../chat/ChatControls/Embeds.svelte | 42 +++++++++++++++++++ .../components/chat/Messages/Citations.svelte | 21 +++++++++- .../chat/Messages/ContentRenderer.svelte | 2 + src/lib/components/chat/Overview.svelte | 2 +- .../components/common/FullHeightIframe.svelte | 6 ++- src/lib/components/layout/Navbar/Menu.svelte | 6 ++- src/lib/stores/index.ts | 2 + 9 files changed, 96 insertions(+), 12 deletions(-) create mode 100644 src/lib/components/chat/ChatControls/Embeds.svelte diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index d059be3f8e..8b45ee6b22 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -38,7 +38,8 @@ toolServers, functions, selectedFolder, - pinnedChats + pinnedChats, + showEmbeds } from '$lib/stores'; import { convertMessagesToHistory, @@ -564,6 +565,7 @@ showCallOverlay.set(false); showOverview.set(false); showArtifacts.set(false); + showEmbeds.set(false); } }); diff --git a/src/lib/components/chat/ChatControls.svelte b/src/lib/components/chat/ChatControls.svelte index a0138afcda..d4ed1eb36a 100644 --- a/src/lib/components/chat/ChatControls.svelte +++ b/src/lib/components/chat/ChatControls.svelte @@ -4,7 +4,14 @@ import { Pane, PaneResizer } from 'paneforge'; import { onDestroy, onMount, tick } from 'svelte'; - import { mobile, showControls, showCallOverlay, showOverview, showArtifacts } from '$lib/stores'; + import { + mobile, + showControls, + showCallOverlay, + showOverview, + showArtifacts, + showEmbeds + } from '$lib/stores'; import Modal from '../common/Modal.svelte'; import Controls from './Controls/Controls.svelte'; @@ -13,6 +20,7 @@ import Overview from './Overview.svelte'; import EllipsisVertical from '../icons/EllipsisVertical.svelte'; import Artifacts from './Artifacts.svelte'; + import Embeds from './ChatControls/Embeds.svelte'; export let history; export let models = []; @@ -134,6 +142,7 @@ showControls.set(false); showOverview.set(false); showArtifacts.set(false); + showEmbeds.set(false); if ($showCallOverlay) { showCallOverlay.set(false); @@ -155,9 +164,9 @@ }} >
{#if $showCallOverlay}
+ {:else if $showEmbeds} + {:else if $showArtifacts} {:else if $showOverview} @@ -241,9 +252,9 @@ {#if $showControls}
{#if $showCallOverlay} @@ -260,6 +271,8 @@ }} />
+ {:else if $showEmbeds} + {:else if $showArtifacts} {:else if $showOverview} diff --git a/src/lib/components/chat/ChatControls/Embeds.svelte b/src/lib/components/chat/ChatControls/Embeds.svelte new file mode 100644 index 0000000000..202e0cbbc4 --- /dev/null +++ b/src/lib/components/chat/ChatControls/Embeds.svelte @@ -0,0 +1,42 @@ + + +{#if $embed} +
+
+
+
+ {$embed?.title ?? 'Embedded Content'} +
+
+ + +
+ +
+ {#if overlay} +
+ {/if} + + +
+
+{/if} diff --git a/src/lib/components/chat/Messages/Citations.svelte b/src/lib/components/chat/Messages/Citations.svelte index 6ffdf4362d..38d5a3a4b4 100644 --- a/src/lib/components/chat/Messages/Citations.svelte +++ b/src/lib/components/chat/Messages/Citations.svelte @@ -1,6 +1,7 @@
-
+