diff --git a/static/js/modelPicker.js b/static/js/modelPicker.js index a7b1ac64ce..e286f0bdee 100644 --- a/static/js/modelPicker.js +++ b/static/js/modelPicker.js @@ -5,6 +5,7 @@ import { providerLogo } from './providers.js'; import uiModule from './ui.js'; import settingsModule from './settings.js'; import { sortModelObjects } from './modelSort.js'; +import { topPortalZ } from './toolWindowZOrder.js'; const API_BASE = window.location.origin; @@ -182,6 +183,24 @@ function _initModelPickerDropdown() { const refreshBtn = document.getElementById('model-picker-refresh-btn'); if (!wrap || !btn || !menu || !search || !listEl) return; + function _liftInputBar() { + wrap.style.setProperty('z-index', String(topPortalZ()), 'important'); + const bar = document.querySelector('.chat-input-bar'); + if (bar) { + bar.style.setProperty('position', 'relative', 'important'); + bar.style.setProperty('z-index', String(topPortalZ()), 'important'); + } + } + + function _restoreInputBar() { + wrap.style.removeProperty('z-index'); + const bar = document.querySelector('.chat-input-bar'); + if (bar) { + bar.style.removeProperty('position'); + bar.style.removeProperty('z-index'); + } + } + function _close() { if (menu.classList.contains('hidden')) return; // Restore scroll button @@ -193,6 +212,7 @@ function _initModelPickerDropdown() { menu.classList.remove('closing'); menu.classList.add('hidden'); search.value = ''; + _restoreInputBar(); }, { once: true }); // Fallback if animationend doesn't fire setTimeout(() => { @@ -200,6 +220,7 @@ function _initModelPickerDropdown() { menu.classList.remove('closing'); menu.classList.add('hidden'); search.value = ''; + _restoreInputBar(); } }, 200); } @@ -655,6 +676,7 @@ function _initModelPickerDropdown() { if (menu.classList.contains('hidden') || menu.classList.contains('closing')) { // Force-clear any in-progress close animation menu.classList.remove('closing', 'hidden'); + _liftInputBar(); _populate(''); if (window.modelsModule && window.modelsModule.refreshModels) { window.modelsModule.refreshModels().then(() => {