From d9e6041a757af83210e9430aa620718a4f6ccb88 Mon Sep 17 00:00:00 2001
From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com>
Date: Thu, 18 Jun 2026 09:08:50 +0100
Subject: [PATCH] set z-index on config dropdowns so they render above the
modal (#6674)
---
.gitleaksignore | 3 +++
.../configSections/AdminConnectionsSection.tsx | 12 +++++++++---
.../configSections/AdminDatabaseSection.tsx | 4 ++++
.../configSections/AdminEndpointsSection.tsx | 11 +++++++++--
.../configSections/AdminGeneralSection.tsx | 12 +++++++++---
.../config/configSections/AdminMcpSection.tsx | 5 +++++
.../configSections/AdminSecuritySection.tsx | 16 +++++++++++++---
7 files changed, 52 insertions(+), 11 deletions(-)
diff --git a/.gitleaksignore b/.gitleaksignore
index f363dd1148..cf676687ec 100644
--- a/.gitleaksignore
+++ b/.gitleaksignore
@@ -12,3 +12,6 @@ app/proprietary/src/test/java/stirling/software/proprietary/mcp/security/McpApiK
testing/compose/docker-compose-keycloak-mcp.yml:generic-api-key:25
testing/compose/validate-mcp-apikey.sh:curl-auth-header:73
testing/compose/validate-mcp-test.sh:curl-auth-header:92
+
+# Truncated placeholder API key in portal docs example (sk_live_8f2c...e10) - not a real secret.
+frontend/portal/src/components/docs/GettingStartedSection.tsx:generic-api-key:31
diff --git a/frontend/editor/src/proprietary/components/shared/config/configSections/AdminConnectionsSection.tsx b/frontend/editor/src/proprietary/components/shared/config/configSections/AdminConnectionsSection.tsx
index 168ae6ca6d..2ad95525a1 100644
--- a/frontend/editor/src/proprietary/components/shared/config/configSections/AdminConnectionsSection.tsx
+++ b/frontend/editor/src/proprietary/components/shared/config/configSections/AdminConnectionsSection.tsx
@@ -22,7 +22,7 @@ import { useAdminSettings } from "@app/hooks/useAdminSettings";
import { useSettingsDirty } from "@app/hooks/useSettingsDirty";
import PendingBadge from "@app/components/shared/config/PendingBadge";
import { SettingsStickyFooter } from "@app/components/shared/config/SettingsStickyFooter";
-import { Z_INDEX_CONFIG_MODAL } from "@app/styles/zIndex";
+import { Z_INDEX_OVER_CONFIG_MODAL } from "@app/styles/zIndex";
import ProviderCard from "@app/components/shared/config/configSections/ProviderCard";
import {
Provider,
@@ -815,7 +815,10 @@ export default function AdminConnectionsSection() {
]}
disabled={!loginEnabled}
style={{ width: "250px" }}
- comboboxProps={{ zIndex: Z_INDEX_CONFIG_MODAL }}
+ comboboxProps={{
+ withinPortal: true,
+ zIndex: Z_INDEX_OVER_CONFIG_MODAL,
+ }}
/>
diff --git a/frontend/editor/src/proprietary/components/shared/config/configSections/AdminEndpointsSection.tsx b/frontend/editor/src/proprietary/components/shared/config/configSections/AdminEndpointsSection.tsx
index 887ff85b74..05fb7e11d4 100644
--- a/frontend/editor/src/proprietary/components/shared/config/configSections/AdminEndpointsSection.tsx
+++ b/frontend/editor/src/proprietary/components/shared/config/configSections/AdminEndpointsSection.tsx
@@ -18,6 +18,7 @@ import PendingBadge from "@app/components/shared/config/PendingBadge";
import { SettingsStickyFooter } from "@app/components/shared/config/SettingsStickyFooter";
import { useLoginRequired } from "@app/hooks/useLoginRequired";
import LoginRequiredBanner from "@app/components/shared/config/LoginRequiredBanner";
+import { Z_INDEX_OVER_CONFIG_MODAL } from "@app/styles/zIndex";
interface UISettingsData {
defaultHideUnavailableTools?: boolean;
@@ -300,7 +301,10 @@ export default function AdminEndpointsSection() {
"admin.settings.endpoints.toRemove.placeholder",
"Select endpoints to disable",
)}
- comboboxProps={{ zIndex: 1400 }}
+ comboboxProps={{
+ withinPortal: true,
+ zIndex: Z_INDEX_OVER_CONFIG_MODAL,
+ }}
disabled={!loginEnabled}
/>
@@ -337,7 +341,10 @@ export default function AdminEndpointsSection() {
"admin.settings.endpoints.groupsToRemove.placeholder",
"Select groups to disable",
)}
- comboboxProps={{ zIndex: 1400 }}
+ comboboxProps={{
+ withinPortal: true,
+ zIndex: Z_INDEX_OVER_CONFIG_MODAL,
+ }}
disabled={!loginEnabled}
/>
diff --git a/frontend/editor/src/proprietary/components/shared/config/configSections/AdminGeneralSection.tsx b/frontend/editor/src/proprietary/components/shared/config/configSections/AdminGeneralSection.tsx
index ebfb7ed6ab..aaf73ec281 100644
--- a/frontend/editor/src/proprietary/components/shared/config/configSections/AdminGeneralSection.tsx
+++ b/frontend/editor/src/proprietary/components/shared/config/configSections/AdminGeneralSection.tsx
@@ -32,7 +32,7 @@ import {
toUnderscoreFormat,
toUnderscoreLanguages,
} from "@app/i18n";
-import { Z_INDEX_CONFIG_MODAL } from "@app/styles/zIndex";
+import { Z_INDEX_OVER_CONFIG_MODAL } from "@app/styles/zIndex";
interface GeneralSettingsData {
ui: {
@@ -591,7 +591,10 @@ export default function AdminGeneralSection() {
"admin.settings.general.languages.placeholder",
"Select languages",
)}
- comboboxProps={{ zIndex: Z_INDEX_CONFIG_MODAL }}
+ comboboxProps={{
+ withinPortal: true,
+ zIndex: Z_INDEX_OVER_CONFIG_MODAL,
+ }}
disabled={!loginEnabled}
/>
@@ -626,7 +629,10 @@ export default function AdminGeneralSection() {
searchable
clearable
placeholder="en_US"
- comboboxProps={{ zIndex: Z_INDEX_CONFIG_MODAL }}
+ comboboxProps={{
+ withinPortal: true,
+ zIndex: Z_INDEX_OVER_CONFIG_MODAL,
+ }}
disabled={!loginEnabled}
/>
diff --git a/frontend/editor/src/proprietary/components/shared/config/configSections/AdminMcpSection.tsx b/frontend/editor/src/proprietary/components/shared/config/configSections/AdminMcpSection.tsx
index d3407f8a0e..64976c296a 100644
--- a/frontend/editor/src/proprietary/components/shared/config/configSections/AdminMcpSection.tsx
+++ b/frontend/editor/src/proprietary/components/shared/config/configSections/AdminMcpSection.tsx
@@ -24,6 +24,7 @@ import PendingBadge from "@app/components/shared/config/PendingBadge";
import { SettingsStickyFooter } from "@app/components/shared/config/SettingsStickyFooter";
import apiClient from "@app/services/apiClient";
import { useLoginRequired } from "@app/hooks/useLoginRequired";
+import { Z_INDEX_OVER_CONFIG_MODAL } from "@app/styles/zIndex";
interface McpAuthData {
mode?: string;
@@ -211,6 +212,10 @@ export default function AdminMcpSection() {
value={authMode}
onChange={(v) => setAuth({ mode: v || "oauth" })}
allowDeselect={false}
+ comboboxProps={{
+ withinPortal: true,
+ zIndex: Z_INDEX_OVER_CONFIG_MODAL,
+ }}
disabled={!settings.enabled}
/>
diff --git a/frontend/editor/src/proprietary/components/shared/config/configSections/AdminSecuritySection.tsx b/frontend/editor/src/proprietary/components/shared/config/configSections/AdminSecuritySection.tsx
index 02d1f27018..a993c3156e 100644
--- a/frontend/editor/src/proprietary/components/shared/config/configSections/AdminSecuritySection.tsx
+++ b/frontend/editor/src/proprietary/components/shared/config/configSections/AdminSecuritySection.tsx
@@ -26,6 +26,7 @@ import { SettingsStickyFooter } from "@app/components/shared/config/SettingsStic
import apiClient from "@app/services/apiClient";
import { useLoginRequired } from "@app/hooks/useLoginRequired";
import LoginRequiredBanner from "@app/components/shared/config/LoginRequiredBanner";
+import { Z_INDEX_OVER_CONFIG_MODAL } from "@app/styles/zIndex";
interface SecuritySettingsData {
enableLogin?: boolean;
@@ -364,7 +365,10 @@ export default function AdminSecuritySection() {
),
},
]}
- comboboxProps={{ zIndex: 1400 }}
+ comboboxProps={{
+ withinPortal: true,
+ zIndex: Z_INDEX_OVER_CONFIG_MODAL,
+ }}
disabled={!loginEnabled}
/>
{isFieldPending("loginMethod") && (
@@ -480,7 +484,10 @@ export default function AdminSecuritySection() {
),
},
]}
- comboboxProps={{ zIndex: 1400 }}
+ comboboxProps={{
+ withinPortal: true,
+ zIndex: Z_INDEX_OVER_CONFIG_MODAL,
+ }}
disabled={!loginEnabled}
/>
@@ -1191,7 +1198,10 @@ export default function AdminSecuritySection() {
),
},
]}
- comboboxProps={{ zIndex: 1400 }}
+ comboboxProps={{
+ withinPortal: true,
+ zIndex: Z_INDEX_OVER_CONFIG_MODAL,
+ }}
disabled={!loginEnabled}
/>