From bc23782d0bd87b57f6854b51914eb99818c4f14a Mon Sep 17 00:00:00 2001
From: Ali Waseem
Date: Mon, 16 Mar 2026 14:39:56 -0600
Subject: [PATCH 001/169] fix: update project unpause to not show undefined
(#43820)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.
YES
## What kind of change does this PR introduce?
When un-pausing the dashboard, the project home page on platform shows
undefined rather than the default state of "URL not available"
## Ways to test
You can pause and then unpause a project to see if this works correctly
---
apps/studio/data/config/project-endpoint-query.ts | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/apps/studio/data/config/project-endpoint-query.ts b/apps/studio/data/config/project-endpoint-query.ts
index d1a7c1bd028..9311f7f5ff8 100644
--- a/apps/studio/data/config/project-endpoint-query.ts
+++ b/apps/studio/data/config/project-endpoint-query.ts
@@ -34,7 +34,8 @@ export const useProjectApiUrl = (
const protocol = settings?.app_config?.protocol ?? 'https'
const endpoint = settings?.app_config?.endpoint
- const hostEndpoint = isSuccessProjectSettings ? `${protocol}://${endpoint}` : undefined
+ const hostEndpoint =
+ isSuccessProjectSettings && endpoint ? `${protocol}://${endpoint}` : undefined
const resolvedEndpoint = isCustomDomainsActive ? customEndpoint : hostEndpoint
const storageEndpoint = settings?.app_config?.storage_endpoint
? `${IS_PLATFORM ? 'https' : protocol}://${settings?.app_config?.storage_endpoint}`
From db14762aa60246da77d05b23667e6c4fd3d58a2c Mon Sep 17 00:00:00 2001
From: Gildas Garcia <1122076+djhi@users.noreply.github.com>
Date: Mon, 16 Mar 2026 22:14:44 +0100
Subject: [PATCH 002/169] feat: Add table and column menus in schema visualiser
(#43693)
## Problem
- The schema visualiser lacks editing capabilities which leads to a lot
of navigation (ediing tables, columns)
- ReactFlow prevents users from selecting table and column names (to
copy them). Diasbling drag and pan on those texts would make moving
items cumbersome
- Long table and column names are hidden and even hide other elements
## Solution
- Add menus for both tables and columns
- Truncate long names with ellipsis and add a tooltip
- Hide menus when exporting to png/svg
[Screen Recording 2026-03-12 at
10.10.08.webm](https://github.com/user-attachments/assets/b2780266-e874-41d1-ac82-7c2c4ba5abf2)
---
.../Database/Schemas/ColumnEditionContext.tsx | 22 ---
.../Database/Schemas/SchemaGraph.tsx | 29 ++-
.../Database/Schemas/SchemaGraphContext.tsx | 24 +++
.../Database/Schemas/SchemaTableNode.tsx | 182 +++++++++++++-----
.../TableEditor/TableEditor.tsx | 8 +-
e2e/studio/features/database.spec.ts | 94 +++++++--
6 files changed, 268 insertions(+), 91 deletions(-)
delete mode 100644 apps/studio/components/interfaces/Database/Schemas/ColumnEditionContext.tsx
create mode 100644 apps/studio/components/interfaces/Database/Schemas/SchemaGraphContext.tsx
diff --git a/apps/studio/components/interfaces/Database/Schemas/ColumnEditionContext.tsx b/apps/studio/components/interfaces/Database/Schemas/ColumnEditionContext.tsx
deleted file mode 100644
index 447e018bfcd..00000000000
--- a/apps/studio/components/interfaces/Database/Schemas/ColumnEditionContext.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import { createContext, useContext, type ReactNode } from 'react'
-
-export type ColumnEditionContextType = {
- onEditColumn: (tableId: number, columnId: string) => void
-}
-
-export const ColumnEditionContext = createContext(null)
-
-export const ColumnEditionContextProvider = ({
- children,
- value,
-}: {
- children: ReactNode
- value: ColumnEditionContextType
-}) => {children}
-
-export const useColumnEditionContext = () => {
- const context = useContext(ColumnEditionContext)
- if (!context)
- throw new Error('useColumnEditionContext must be used inside a ')
- return context
-}
diff --git a/apps/studio/components/interfaces/Database/Schemas/SchemaGraph.tsx b/apps/studio/components/interfaces/Database/Schemas/SchemaGraph.tsx
index 2f3d3ae9113..16bb938e281 100644
--- a/apps/studio/components/interfaces/Database/Schemas/SchemaGraph.tsx
+++ b/apps/studio/components/interfaces/Database/Schemas/SchemaGraph.tsx
@@ -34,7 +34,7 @@ import {
import { Admonition } from 'ui-patterns/admonition'
import { SidePanelEditor } from '../../TableGridEditor/SidePanelEditor/SidePanelEditor'
-import { ColumnEditionContextProvider, ColumnEditionContextType } from './ColumnEditionContext'
+import { SchemaGraphContextProvider, SchemaGraphContextType } from './SchemaGraphContext'
import { SchemaGraphLegend } from './SchemaGraphLegend'
import { getGraphDataFromTables, getLayoutedElementsViaDagre } from './Schemas.utils'
import { TableNode } from './SchemaTableNode'
@@ -210,10 +210,20 @@ export const SchemaGraph = () => {
}
})
}
- }, [isSuccessTables, isSuccessSchemas, tables, resolvedTheme])
+ }, [
+ isSuccessTables,
+ isSuccessSchemas,
+ tables,
+ reactFlowInstance,
+ ref,
+ resolvedTheme,
+ schemas,
+ selectedSchema,
+ ])
- const columnEditionContext = useMemo(
+ const schemaGraphPanelEditorContext = useMemo(
() => ({
+ isDownloading,
onEditColumn: (tableId, columnId) => {
const table = tables.find((table) => table.id === tableId)
if (!table || table.columns == null) return
@@ -224,8 +234,15 @@ export const SchemaGraph = () => {
setSelectedTable(table)
snap.onEditColumn(column)
},
+ onEditTable: (tableId) => {
+ const table = tables.find((table) => table.id === tableId)
+ if (!table || table.columns == null) return
+
+ setSelectedTable(table)
+ snap.onEditTable()
+ },
}),
- [tables, snap]
+ [tables, snap, isDownloading]
)
return (
@@ -349,7 +366,7 @@ export const SchemaGraph = () => {
) : (
-
+
{
-
+
)}
>
)}
diff --git a/apps/studio/components/interfaces/Database/Schemas/SchemaGraphContext.tsx b/apps/studio/components/interfaces/Database/Schemas/SchemaGraphContext.tsx
new file mode 100644
index 00000000000..514168908b8
--- /dev/null
+++ b/apps/studio/components/interfaces/Database/Schemas/SchemaGraphContext.tsx
@@ -0,0 +1,24 @@
+import { createContext, useContext, type ReactNode } from 'react'
+
+export type SchemaGraphContextType = {
+ isDownloading: boolean
+ onEditColumn: (tableId: number, columnId: string) => void
+ onEditTable: (tableId: number) => void
+}
+
+export const SchemaGraphContext = createContext(null)
+
+export const SchemaGraphContextProvider = ({
+ children,
+ value,
+}: {
+ children: ReactNode
+ value: SchemaGraphContextType
+}) => {children}
+
+export const useSchemaGraphContext = () => {
+ const context = useContext(SchemaGraphContext)
+ if (!context)
+ throw new Error('useSchemaGraphContext must be used inside a ')
+ return context
+}
diff --git a/apps/studio/components/interfaces/Database/Schemas/SchemaTableNode.tsx b/apps/studio/components/interfaces/Database/Schemas/SchemaTableNode.tsx
index 769117f37f3..a771bb5829e 100644
--- a/apps/studio/components/interfaces/Database/Schemas/SchemaTableNode.tsx
+++ b/apps/studio/components/interfaces/Database/Schemas/SchemaTableNode.tsx
@@ -1,19 +1,35 @@
+import { PermissionAction } from '@supabase/shared-types/out/constants'
import { buildTableEditorUrl } from 'components/grid/SupabaseGrid.utils'
+import { TableEditor } from 'icons'
import {
+ Copy,
DiamondIcon,
Edit,
- ExternalLink,
Fingerprint,
Hash,
InfoIcon,
Key,
+ MoreVertical,
Table2,
} from 'lucide-react'
-import Link from 'next/link'
+import { useRouter } from 'next/router'
import { Handle, NodeProps } from 'reactflow'
-import { Button, cn, Tooltip, TooltipContent, TooltipTrigger } from 'ui'
+import {
+ Button,
+ cn,
+ copyToClipboard,
+ DropdownMenu,
+ DropdownMenuContent,
+ DropdownMenuItem,
+ DropdownMenuTrigger,
+ Tooltip,
+ TooltipContent,
+ TooltipTrigger,
+} from 'ui'
-import { useColumnEditionContext } from './ColumnEditionContext'
+import { useSchemaGraphContext } from './SchemaGraphContext'
+import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions'
+import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject'
// ReactFlow is scaling everything by the factor of 2
export const TABLE_NODE_WIDTH = 320
@@ -46,8 +62,13 @@ export const TableNode = ({
// Important styles is a nasty hack to use Handles (required for edges calculations), but do not show them in the UI.
// ref: https://github.com/wbkd/react-flow/discussions/2698
const hiddenNodeConnector = '!h-px !w-px !min-w-0 !min-h-0 !cursor-grab !border-0 !opacity-0'
- const columnEditionContext = useColumnEditionContext()
-
+ const schemaGraphContext = useSchemaGraphContext()
+ const { data: project } = useSelectedProjectQuery()
+ const { can: canUpdateColumns } = useAsyncCheckPermissions(
+ PermissionAction.TENANT_SQL_ADMIN_WRITE,
+ 'columns'
+ )
+ const router = useRouter()
const itemHeight = 'h-[22px]'
return (
@@ -71,38 +92,76 @@ export const TableNode = ({
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/studio/components/interfaces/Connect/McpTabContent.tsx b/apps/studio/components/interfaces/Connect/McpTabContent.tsx
index b41b54e03c2..f5b0fdd28e1 100644
--- a/apps/studio/components/interfaces/Connect/McpTabContent.tsx
+++ b/apps/studio/components/interfaces/Connect/McpTabContent.tsx
@@ -1,6 +1,5 @@
import { IS_PLATFORM, useParams } from 'common'
import Panel from 'components/ui/Panel'
-import { BASE_PATH } from 'lib/constants'
import { useTrack } from 'lib/telemetry/track'
import { useTheme } from 'next-themes'
import { useMemo, useState } from 'react'
@@ -64,7 +63,6 @@ const McpTabContentInnerLoaded = ({
return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/studio/public/img/mcp-clients/claude-icon.svg b/apps/studio/public/img/mcp-clients/claude-icon.svg
deleted file mode 100644
index 7b9c0252ed7..00000000000
--- a/apps/studio/public/img/mcp-clients/claude-icon.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/apps/studio/public/img/mcp-clients/cursor-icon.svg b/apps/studio/public/img/mcp-clients/cursor-icon.svg
deleted file mode 100644
index 48f85eb4d5a..00000000000
--- a/apps/studio/public/img/mcp-clients/cursor-icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/apps/studio/public/img/mcp-clients/factory-icon-dark.svg b/apps/studio/public/img/mcp-clients/factory-icon-dark.svg
deleted file mode 100644
index 16b99b68b64..00000000000
--- a/apps/studio/public/img/mcp-clients/factory-icon-dark.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
\ No newline at end of file
diff --git a/apps/studio/public/img/mcp-clients/factory-icon.svg b/apps/studio/public/img/mcp-clients/factory-icon.svg
deleted file mode 100644
index 445aa4518c9..00000000000
--- a/apps/studio/public/img/mcp-clients/factory-icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/apps/studio/public/img/mcp-clients/gemini-cli-icon.svg b/apps/studio/public/img/mcp-clients/gemini-cli-icon.svg
deleted file mode 100644
index 7e457a00a77..00000000000
--- a/apps/studio/public/img/mcp-clients/gemini-cli-icon.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/studio/public/img/mcp-clients/goose-icon-dark.svg b/apps/studio/public/img/mcp-clients/goose-icon-dark.svg
deleted file mode 100644
index e37b75328ed..00000000000
--- a/apps/studio/public/img/mcp-clients/goose-icon-dark.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/apps/studio/public/img/mcp-clients/goose-icon.svg b/apps/studio/public/img/mcp-clients/goose-icon.svg
deleted file mode 100644
index 1808de11575..00000000000
--- a/apps/studio/public/img/mcp-clients/goose-icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/apps/studio/public/img/mcp-clients/kiro-icon.svg b/apps/studio/public/img/mcp-clients/kiro-icon.svg
deleted file mode 100644
index ef4abd2d85d..00000000000
--- a/apps/studio/public/img/mcp-clients/kiro-icon.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/studio/public/img/mcp-clients/openai-icon-dark.svg b/apps/studio/public/img/mcp-clients/openai-icon-dark.svg
deleted file mode 100644
index 73c2f3fc76d..00000000000
--- a/apps/studio/public/img/mcp-clients/openai-icon-dark.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/apps/studio/public/img/mcp-clients/openai-icon.svg b/apps/studio/public/img/mcp-clients/openai-icon.svg
deleted file mode 100644
index 316440a338d..00000000000
--- a/apps/studio/public/img/mcp-clients/openai-icon.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/apps/studio/public/img/mcp-clients/opencode-icon-dark.svg b/apps/studio/public/img/mcp-clients/opencode-icon-dark.svg
deleted file mode 100644
index b79c7332e20..00000000000
--- a/apps/studio/public/img/mcp-clients/opencode-icon-dark.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/apps/studio/public/img/mcp-clients/opencode-icon.svg b/apps/studio/public/img/mcp-clients/opencode-icon.svg
deleted file mode 100644
index b79140a5070..00000000000
--- a/apps/studio/public/img/mcp-clients/opencode-icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/apps/studio/public/img/mcp-clients/vscode-icon.svg b/apps/studio/public/img/mcp-clients/vscode-icon.svg
deleted file mode 100644
index c453e633f34..00000000000
--- a/apps/studio/public/img/mcp-clients/vscode-icon.svg
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/studio/public/img/mcp-clients/windsurf-icon-dark.svg b/apps/studio/public/img/mcp-clients/windsurf-icon-dark.svg
deleted file mode 100644
index 2e4e4e4921d..00000000000
--- a/apps/studio/public/img/mcp-clients/windsurf-icon-dark.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/apps/studio/public/img/mcp-clients/windsurf-icon.svg b/apps/studio/public/img/mcp-clients/windsurf-icon.svg
deleted file mode 100644
index 386f8c035dc..00000000000
--- a/apps/studio/public/img/mcp-clients/windsurf-icon.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/packages/ui-patterns/src/McpUrlBuilder/McpConfigPanel.tsx b/packages/ui-patterns/src/McpUrlBuilder/McpConfigPanel.tsx
index 7ae5e4767aa..ed0c2193ba9 100644
--- a/packages/ui-patterns/src/McpUrlBuilder/McpConfigPanel.tsx
+++ b/packages/ui-patterns/src/McpUrlBuilder/McpConfigPanel.tsx
@@ -12,7 +12,6 @@ import type { McpClient, McpOnCopyCallback } from './types'
import { getMcpUrl } from './utils/getMcpUrl'
export interface McpConfigPanelProps {
- basePath: string
baseUrl?: string
projectRef?: string
initialSelectedClient?: McpClient
@@ -26,7 +25,6 @@ export interface McpConfigPanelProps {
}
export function McpConfigPanel({
- basePath,
projectRef,
initialSelectedClient,
onClientSelect,
@@ -109,7 +107,6 @@ export function McpConfigPanel({
clients={MCP_CLIENTS}
selectedClient={selectedClient}
onClientChange={handleClientChange}
- basePath={basePath}
theme={theme}
/>
@@ -124,7 +121,6 @@ export function McpConfigPanel({
diff --git a/apps/docs/public/img/mcp-clients/claude-icon.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/claude-icon.svg
similarity index 100%
rename from apps/docs/public/img/mcp-clients/claude-icon.svg
rename to packages/ui-patterns/src/McpUrlBuilder/assets/claude-icon.svg
diff --git a/apps/docs/public/img/mcp-clients/cursor-icon.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/cursor-icon.svg
similarity index 100%
rename from apps/docs/public/img/mcp-clients/cursor-icon.svg
rename to packages/ui-patterns/src/McpUrlBuilder/assets/cursor-icon.svg
diff --git a/apps/docs/public/img/mcp-clients/factory-icon-dark.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/factory-icon-dark.svg
similarity index 100%
rename from apps/docs/public/img/mcp-clients/factory-icon-dark.svg
rename to packages/ui-patterns/src/McpUrlBuilder/assets/factory-icon-dark.svg
diff --git a/apps/docs/public/img/mcp-clients/factory-icon.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/factory-icon.svg
similarity index 100%
rename from apps/docs/public/img/mcp-clients/factory-icon.svg
rename to packages/ui-patterns/src/McpUrlBuilder/assets/factory-icon.svg
diff --git a/apps/docs/public/img/mcp-clients/gemini-cli-icon.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/gemini-cli-icon.svg
similarity index 100%
rename from apps/docs/public/img/mcp-clients/gemini-cli-icon.svg
rename to packages/ui-patterns/src/McpUrlBuilder/assets/gemini-cli-icon.svg
diff --git a/apps/docs/public/img/mcp-clients/goose-icon-dark.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/goose-icon-dark.svg
similarity index 100%
rename from apps/docs/public/img/mcp-clients/goose-icon-dark.svg
rename to packages/ui-patterns/src/McpUrlBuilder/assets/goose-icon-dark.svg
diff --git a/apps/docs/public/img/mcp-clients/goose-icon.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/goose-icon.svg
similarity index 100%
rename from apps/docs/public/img/mcp-clients/goose-icon.svg
rename to packages/ui-patterns/src/McpUrlBuilder/assets/goose-icon.svg
diff --git a/apps/docs/public/img/mcp-clients/kiro-icon.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/kiro-icon.svg
similarity index 100%
rename from apps/docs/public/img/mcp-clients/kiro-icon.svg
rename to packages/ui-patterns/src/McpUrlBuilder/assets/kiro-icon.svg
diff --git a/apps/docs/public/img/mcp-clients/openai-icon-dark.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/openai-icon-dark.svg
similarity index 100%
rename from apps/docs/public/img/mcp-clients/openai-icon-dark.svg
rename to packages/ui-patterns/src/McpUrlBuilder/assets/openai-icon-dark.svg
diff --git a/apps/docs/public/img/mcp-clients/openai-icon.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/openai-icon.svg
similarity index 100%
rename from apps/docs/public/img/mcp-clients/openai-icon.svg
rename to packages/ui-patterns/src/McpUrlBuilder/assets/openai-icon.svg
diff --git a/apps/docs/public/img/mcp-clients/opencode-icon-dark.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/opencode-icon-dark.svg
similarity index 100%
rename from apps/docs/public/img/mcp-clients/opencode-icon-dark.svg
rename to packages/ui-patterns/src/McpUrlBuilder/assets/opencode-icon-dark.svg
diff --git a/apps/docs/public/img/mcp-clients/opencode-icon.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/opencode-icon.svg
similarity index 100%
rename from apps/docs/public/img/mcp-clients/opencode-icon.svg
rename to packages/ui-patterns/src/McpUrlBuilder/assets/opencode-icon.svg
diff --git a/apps/docs/public/img/mcp-clients/vscode-icon.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/vscode-icon.svg
similarity index 100%
rename from apps/docs/public/img/mcp-clients/vscode-icon.svg
rename to packages/ui-patterns/src/McpUrlBuilder/assets/vscode-icon.svg
diff --git a/apps/docs/public/img/mcp-clients/windsurf-icon-dark.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/windsurf-icon-dark.svg
similarity index 100%
rename from apps/docs/public/img/mcp-clients/windsurf-icon-dark.svg
rename to packages/ui-patterns/src/McpUrlBuilder/assets/windsurf-icon-dark.svg
diff --git a/apps/docs/public/img/mcp-clients/windsurf-icon.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/windsurf-icon.svg
similarity index 100%
rename from apps/docs/public/img/mcp-clients/windsurf-icon.svg
rename to packages/ui-patterns/src/McpUrlBuilder/assets/windsurf-icon.svg
diff --git a/packages/ui-patterns/src/McpUrlBuilder/components/ClientSelectDropdown.tsx b/packages/ui-patterns/src/McpUrlBuilder/components/ClientSelectDropdown.tsx
index e4978036472..f11e0beaff1 100644
--- a/packages/ui-patterns/src/McpUrlBuilder/components/ClientSelectDropdown.tsx
+++ b/packages/ui-patterns/src/McpUrlBuilder/components/ClientSelectDropdown.tsx
@@ -20,7 +20,6 @@ import type { McpClient } from '../types'
import { ConnectionIcon } from './ConnectionIcon'
interface ClientSelectDropdownProps {
- basePath: string
theme?: 'light' | 'dark'
label?: string
clients: McpClient[]
@@ -29,7 +28,6 @@ interface ClientSelectDropdownProps {
}
export const ClientSelectDropdown = ({
- basePath,
theme = 'light',
label = 'Client',
clients,
@@ -64,8 +62,6 @@ export const ClientSelectDropdown = ({