diff --git a/src/lib/components/chat/FileNav/FileEntryRow.svelte b/src/lib/components/chat/FileNav/FileEntryRow.svelte index eb217bcc9b..c260c6000a 100644 --- a/src/lib/components/chat/FileNav/FileEntryRow.svelte +++ b/src/lib/components/chat/FileNav/FileEntryRow.svelte @@ -1,9 +1,9 @@
- + {/each} {/if} - +
diff --git a/src/lib/components/chat/Messages/ResponseMessage/RegenerateMenu.svelte b/src/lib/components/chat/Messages/ResponseMessage/RegenerateMenu.svelte index 8b7fce6a27..81873bc122 100644 --- a/src/lib/components/chat/Messages/ResponseMessage/RegenerateMenu.svelte +++ b/src/lib/components/chat/Messages/ResponseMessage/RegenerateMenu.svelte @@ -1,6 +1,4 @@ - { if (state === false) { onClose(); } }} - typeahead={false} > - - - - - - - - {#if model?.preset || model?.info?.base_model_id ? model?.info?.user_id === $user?.id : $user?.role === 'admin'} - { - e.stopPropagation(); - e.preventDefault(); + + - goto( - model?.preset || model?.info?.base_model_id - ? `/workspace/models/edit?id=${encodeURIComponent(model?.id ?? '')}` - : `/admin/settings/models?id=${encodeURIComponent(model?.id ?? '')}` - ); - show = false; - }} - > - - -
{$i18n.t('Edit')}
-
- -
- {/if} - - { - e.stopPropagation(); - e.preventDefault(); - - pinModelHandler(model?.id); - show = false; - }} +
+
- {#if ($settings?.pinnedModels ?? []).includes(model?.id)} - - {:else} - + {#if model?.preset || model?.info?.base_model_id ? model?.info?.user_id === $user?.id : $user?.role === 'admin'} + + +
{/if} -
+
- - { - e.stopPropagation(); - e.preventDefault(); +
+ {#if ($settings?.pinnedModels ?? []).includes(model?.id)} + {$i18n.t('Hide from Sidebar')} + {:else} + {$i18n.t('Keep in Sidebar')} + {/if} +
+ - copyLinkHandler(); - show = false; - }} - > - - -
{$i18n.t('Copy Link')}
-
- - {#if $config?.features.enable_community_sharing} -
- - { e.stopPropagation(); e.preventDefault(); - window.open( - `https://openwebui.com/models?q=${encodeURIComponent(model?.id ?? '')}`, - '_blank' - ); + copyLinkHandler(); show = false; }} > - + -
{$i18n.t('Community Reviews')}
-
- {/if} - - +
{$i18n.t('Copy Link')}
+ + + {#if $config?.features.enable_community_sharing} +
+ + + {/if} +
+
+ diff --git a/src/lib/components/common/Dropdown.svelte b/src/lib/components/common/Dropdown.svelte index 6dbe801f28..810ee4c602 100644 --- a/src/lib/components/common/Dropdown.svelte +++ b/src/lib/components/common/Dropdown.svelte @@ -42,7 +42,6 @@ function trigger(node) { triggerEl = node.firstElementChild || node; function handleClick(e) { - e.stopPropagation(); e.preventDefault(); toggleOpen(); } @@ -147,16 +146,19 @@ - + {#if show} + +
diff --git a/src/lib/components/common/DropdownOptions.svelte b/src/lib/components/common/DropdownOptions.svelte index 521361f536..7d0659d57b 100644 --- a/src/lib/components/common/DropdownOptions.svelte +++ b/src/lib/components/common/DropdownOptions.svelte @@ -1,7 +1,7 @@ - - -
- {items.find((item) => item.value === value)?.label ?? placeholder} - -
-
+ +
+ {items.find((item) => item.value === value)?.label ?? placeholder} + +
- +
@@ -58,5 +56,5 @@ {/each}
- - +
+
diff --git a/src/lib/components/common/DropdownSub.svelte b/src/lib/components/common/DropdownSub.svelte index c1858e2e30..0b62c5b3de 100644 --- a/src/lib/components/common/DropdownSub.svelte +++ b/src/lib/components/common/DropdownSub.svelte @@ -22,6 +22,15 @@ contentEl.style.position = 'fixed'; contentEl.style.zIndex = '99999'; + // Inherit min-width from parent dropdown container + const parentContainer = triggerEl.closest('[class*="rounded"]')?.parentElement; + if (parentContainer) { + const parentWidth = parentContainer.offsetWidth; + if (parentWidth > 0) { + contentEl.style.minWidth = `${parentWidth}px`; + } + } + // Position to the right of the trigger const rightSpace = window.innerWidth - rect.right; const contentWidth = contentEl.offsetWidth || 200; diff --git a/src/lib/components/layout/Navbar/Menu.svelte b/src/lib/components/layout/Navbar/Menu.svelte index 81d724be26..2abc0b0a6e 100644 --- a/src/lib/components/layout/Navbar/Menu.svelte +++ b/src/lib/components/layout/Navbar/Menu.svelte @@ -1,6 +1,5 @@ - - - - + { + onChange(state); + }} +> + - - fade(e, { duration: 100 })} +
+
- - - +
+
+
diff --git a/src/lib/components/notes/Notes/NoteMenu.svelte b/src/lib/components/notes/Notes/NoteMenu.svelte index eb50f65d35..4d8dc0fc2b 100644 --- a/src/lib/components/notes/Notes/NoteMenu.svelte +++ b/src/lib/components/notes/Notes/NoteMenu.svelte @@ -1,14 +1,8 @@ - { onChange(state); }} > - - - + - - fade(e, { duration: 100 })} +
+
- - + - { - onDownload('md'); - }} - > -
{$i18n.t('Plain text (.md)')}
-
+ - { - onDownload('pdf'); - }} - > -
{$i18n.t('PDF document (.pdf)')}
-
- -
+ + {#if onCopyLink || onCopyToClipboard} - - + - {#if onCopyToClipboard} - { - onCopyToClipboard(); - }} - > - -
{$i18n.t('Copy to clipboard')}
-
- {/if} - -
+ {#if onCopyLink} + + {/if} + + {#if onCopyToClipboard} + + {/if} + {/if} - { onDelete(); }} >
{$i18n.t('Delete')}
-
- - - + +
+
+ diff --git a/src/lib/components/notes/RecordMenu.svelte b/src/lib/components/notes/RecordMenu.svelte index fc9566aede..1077e7e535 100644 --- a/src/lib/components/notes/RecordMenu.svelte +++ b/src/lib/components/notes/RecordMenu.svelte @@ -1,13 +1,9 @@ - { dispatch('change', state); }} > - - - + - - fade(e, { duration: 100 })} +
+
- - - +
+
+ diff --git a/src/lib/components/playground/Chat.svelte b/src/lib/components/playground/Chat.svelte index 4773d2ab3d..8860efa038 100644 --- a/src/lib/components/playground/Chat.svelte +++ b/src/lib/components/playground/Chat.svelte @@ -3,7 +3,6 @@ const { saveAs } = fileSaver; import { toast } from 'svelte-sonner'; - import { DropdownMenu } from 'bits-ui'; import { goto } from '$app/navigation'; import { onMount, tick, getContext } from 'svelte'; @@ -15,13 +14,13 @@ WEBUI_BASE_URL } from '$lib/constants'; import { WEBUI_NAME, config, user, models, settings } from '$lib/stores'; - import { flyAndScale } from '$lib/utils/transitions'; import { chatCompletion } from '$lib/apis/openai'; import { splitStream } from '$lib/utils'; import Collapsible from '../common/Collapsible.svelte'; import Dropdown from '../common/Dropdown.svelte'; + import DropdownSub from '../common/DropdownSub.svelte'; import Messages from '$lib/components/playground/Chat/Messages.svelte'; import ChevronUp from '../icons/ChevronUp.svelte'; @@ -362,26 +361,18 @@
- - - + + +
diff --git a/src/lib/components/workspace/Models/ModelMenu.svelte b/src/lib/components/workspace/Models/ModelMenu.svelte index d1893e71a0..f897a9483a 100644 --- a/src/lib/components/workspace/Models/ModelMenu.svelte +++ b/src/lib/components/workspace/Models/ModelMenu.svelte @@ -75,7 +75,7 @@ {#if writeAccess}