From 82d7d347c42d697f71835e0733dbba3d360d7da4 Mon Sep 17 00:00:00 2001 From: Charis <26616127+charislam@users.noreply.github.com> Date: Fri, 11 Sep 2026 02:02:28 -0400 Subject: [PATCH 01/28] fix(studio): eliminate per-row query duplication on org team page (#50238) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary * Fixes extreme slowness (browser-crashing on filter) on `/org/[slug]/team` for orgs with 200+ members. * Root cause: `MemberRow`/`MemberActions` each independently subscribed to org-wide React Query data (roles, projects, permissions, feature flags) and rendered a hidden `UpdateRolesPanel` per row. Filtering caused hundreds of duplicate query observers to mount/unmount on every keystroke, each scheduling its own stale-timeout bookkeeping and blocking the main thread for multiple seconds. * Hoisted all org-wide data fetching (`useOrganizationRolesV2Query`, `useOrgProjectsInfiniteQuery`, `usePermissionsQuery`, `useSelectedOrganizationQuery`, `useIsFeatureEnabled`) to `MembersView` and passed the results down as props. * Replaced the per-row `useAsyncCheckPermissions` hook calls in `MemberActions` with the underlying pure `doPermissionsCheck` function memoized locally, removing their internal query subscriptions. * Simplified `useGetRolesManagementPermissions` to stop calling a query-fetching fallback hook that was unreachable given all current call sites already pass `permissions`/`orgSlug` directly. * Replaced 200 hidden per-row `UpdateRolesPanel` instances with a single shared instance owned by `MembersView`, opened via an `onManageAccess` callback. * Cached the regex built by `doPermissionsCheck`'s `toRegexpString` instead of rebuilding it on every permission check. Diagnosed from two Chrome performance traces of the team page while typing in the filter box (multi-second main-thread blocking tasks traced to React Query `QueryObserver` mount/unmount storms). ## Test plan - [X] `tsc --noEmit` clean (only one pre-existing, unrelated error in `packages/ui-patterns`) - [X] `eslint` clean on all changed files (only pre-existing warnings) - [X] `vitest run tests/components/Organization/TeamSettings` — 51 tests pass - [X] Manually verify filtering is smooth on an org with 200+ members ## Summary by CodeRabbit * **New Features** * Team Settings provides centralized member access and role management. * Members can update roles through the access-management panel. * **Improvements** * Permission checks now more accurately handle organization and project scopes, including wildcard patterns. * Member search is debounced for smoother filtering while typing. * Access-management actions use current organization members, roles, permissions, and feature settings. --------- Co-authored-by: Joshen Lim --- .../TeamSettings/MemberActions.tsx | 86 +++++++++------- .../Organization/TeamSettings/MemberRow.tsx | 48 ++++++--- .../Organization/TeamSettings/MembersView.tsx | 68 ++++++++++++- .../TeamSettings/TeamSettings.tsx | 9 +- .../TeamSettings/TeamSettings.utils.ts | 16 +-- .../hooks/misc/useCheckPermissions.test.ts | 99 +++++++++++++++++++ apps/studio/hooks/misc/useCheckPermissions.ts | 26 +++-- 7 files changed, 276 insertions(+), 76 deletions(-) create mode 100644 apps/studio/hooks/misc/useCheckPermissions.test.ts diff --git a/apps/studio/components/interfaces/Organization/TeamSettings/MemberActions.tsx b/apps/studio/components/interfaces/Organization/TeamSettings/MemberActions.tsx index 7371cded9cb..1e8c61f6168 100644 --- a/apps/studio/components/interfaces/Organization/TeamSettings/MemberActions.tsx +++ b/apps/studio/components/interfaces/Organization/TeamSettings/MemberActions.tsx @@ -1,7 +1,7 @@ import { PermissionAction } from '@supabase/shared-types/out/constants' -import { useParams } from 'common' +import { useIsLoggedIn, useParams } from 'common' import { MoreVertical, Redo2, Trash } from 'lucide-react' -import { useState } from 'react' +import { useMemo, useState } from 'react' import { toast } from 'sonner' import { Button, @@ -14,38 +14,42 @@ import ConfirmationModal from 'ui-patterns/Dialogs/ConfirmationModal' import { LeaveTeamButton } from './LeaveTeamButton' import { useGetRolesManagementPermissions } from './TeamSettings.utils' -import { UpdateRolesPanel } from './UpdateRolesPanel/UpdateRolesPanel' import { ButtonTooltip } from '@/components/ui/ButtonTooltip' import { DropdownMenuItemTooltip } from '@/components/ui/DropdownMenuItemTooltip' import { useOrganizationCreateInvitationMutation } from '@/data/organization-members/organization-invitation-create-mutation' import { useOrganizationDeleteInvitationMutation } from '@/data/organization-members/organization-invitation-delete-mutation' -import { useOrganizationRolesV2Query } from '@/data/organization-members/organization-roles-query' +import type { OrganizationRolesResponse } from '@/data/organization-members/organization-roles-query' import { useOrganizationMemberDeleteMutation } from '@/data/organizations/organization-member-delete-mutation' -import { - useOrganizationMembersQuery, - type OrganizationMember, -} from '@/data/organizations/organization-members-query' -import { usePermissionsQuery } from '@/data/permissions/permissions-query' -import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions' -import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled' -import { useSelectedOrganizationQuery } from '@/hooks/misc/useSelectedOrganization' +import type { OrganizationMember } from '@/data/organizations/organization-members-query' +import type { OrganizationBase } from '@/data/organizations/organizations-query' +import { doPermissionsCheck } from '@/hooks/misc/useCheckPermissions' +import { IS_PLATFORM } from '@/lib/constants' import { useProfile } from '@/lib/profile' +import type { Permission } from '@/types' interface MemberActionsProps { member: OrganizationMember + members: OrganizationMember[] + allRoles: OrganizationRolesResponse | undefined + permissions: Permission[] | undefined + selectedOrganization: OrganizationBase | undefined + organizationMembersDeletionEnabled: boolean + onManageAccess: (member: OrganizationMember) => void } -export const MemberActions = ({ member }: MemberActionsProps) => { +export const MemberActions = ({ + member, + members, + allRoles, + permissions, + selectedOrganization, + organizationMembersDeletionEnabled, + onManageAccess, +}: MemberActionsProps) => { const { slug } = useParams() const { profile } = useProfile() - const [showAccessModal, setShowAccessModal] = useState(false) + const isLoggedIn = useIsLoggedIn() const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false) - const organizationMembersDeletionEnabled = useIsFeatureEnabled('organization_members:delete') - - const { data: selectedOrganization } = useSelectedOrganizationQuery() - const { data: permissions } = usePermissionsQuery() - const { data: allRoles } = useOrganizationRolesV2Query({ slug }) - const { data: members } = useOrganizationMembersQuery({ slug }) const memberIsUser = member.gotrue_id == profile?.gotrue_id const orgScopedRoles = allRoles?.org_scoped_roles ?? [] @@ -66,18 +70,32 @@ export const MemberActions = ({ member }: MemberActionsProps) => { const roleId = member.role_ids?.[0] ?? -1 const canRemoveMember = member.role_ids.every((id) => rolesRemovable.includes(id)) - const { can: canCreateUserInvites } = useAsyncCheckPermissions( - PermissionAction.CREATE, - 'user_invites', - { resource: { role_id: roleId } } - ) + const canCreateUserInvites = useMemo(() => { + if (!IS_PLATFORM) return true + if (!isLoggedIn) return false + if (!permissions) return false + return doPermissionsCheck( + permissions, + PermissionAction.CREATE, + 'user_invites', + { resource: { role_id: roleId } }, + selectedOrganization?.slug + ) + }, [isLoggedIn, permissions, roleId, selectedOrganization?.slug]) const canResendInvite = canCreateUserInvites && hasOrgRole - const { can: canDeleteUserInvites } = useAsyncCheckPermissions( - PermissionAction.DELETE, - 'user_invites', - { resource: { role_id: roleId } } - ) + const canDeleteUserInvites = useMemo(() => { + if (!IS_PLATFORM) return true + if (!isLoggedIn) return false + if (!permissions) return false + return doPermissionsCheck( + permissions, + PermissionAction.DELETE, + 'user_invites', + { resource: { role_id: roleId } }, + selectedOrganization?.slug + ) + }, [isLoggedIn, permissions, roleId, selectedOrganization?.slug]) const canRevokeInvite = canDeleteUserInvites && hasOrgRole const { mutate: deleteOrganizationMember, isPending: isDeletingMember } = @@ -165,7 +183,7 @@ export const MemberActions = ({ member }: MemberActionsProps) => { setShowAccessModal(true)} + onClick={() => onManageAccess(member)} tooltip={{ content: { side: 'bottom', @@ -291,12 +309,6 @@ export const MemberActions = ({ member }: MemberActionsProps) => { {selectedOrganization?.name}?

- - setShowAccessModal(false)} - /> ) } diff --git a/apps/studio/components/interfaces/Organization/TeamSettings/MemberRow.tsx b/apps/studio/components/interfaces/Organization/TeamSettings/MemberRow.tsx index eab49d5d7a6..ead944a213a 100644 --- a/apps/studio/components/interfaces/Organization/TeamSettings/MemberRow.tsx +++ b/apps/studio/components/interfaces/Organization/TeamSettings/MemberRow.tsx @@ -1,7 +1,5 @@ -import { useParams } from 'common' import { ArrowRight, Check, ChevronRight, User, X } from 'lucide-react' import Link from 'next/link' -import { useMemo } from 'react' import { Badge, cn, @@ -18,34 +16,44 @@ import { isInviteExpired } from '../Organization.utils' import { MemberActions } from './MemberActions' import PartnerIcon from '@/components/ui/PartnerIcon' import { ProfileImage } from '@/components/ui/ProfileImage' -import { useOrganizationRolesV2Query } from '@/data/organization-members/organization-roles-query' +import { OrganizationRolesResponse } from '@/data/organization-members/organization-roles-query' import { OrganizationMember } from '@/data/organizations/organization-members-query' -import { useOrgProjectsInfiniteQuery } from '@/data/projects/org-projects-infinite-query' -import { useSelectedOrganizationQuery } from '@/hooks/misc/useSelectedOrganization' +import { OrganizationBase } from '@/data/organizations/organizations-query' +import { OrgProject } from '@/data/projects/org-projects-infinite-query' import { useProfile } from '@/lib/profile' +import type { Permission } from '@/types' interface MemberRowProps { member: OrganizationMember + members: OrganizationMember[] + roles: OrganizationRolesResponse | undefined + isLoadingRoles: boolean + orgProjects: OrgProject[] + permissions: Permission[] | undefined + selectedOrganization: OrganizationBase | undefined + organizationMembersDeletionEnabled: boolean + onManageAccess: (member: OrganizationMember) => void } const MEMBER_ORIGIN_TO_MANAGED_BY = { vercel: 'vercel-marketplace', } as const -export const MemberRow = ({ member }: MemberRowProps) => { - const { slug } = useParams() +export const MemberRow = ({ + member, + members, + roles, + isLoadingRoles, + orgProjects, + permissions, + selectedOrganization, + organizationMembersDeletionEnabled, + onManageAccess, +}: MemberRowProps) => { const { profile } = useProfile() - const { data: selectedOrganization } = useSelectedOrganizationQuery() - const { data: roles, isPending: isLoadingRoles } = useOrganizationRolesV2Query({ - slug: selectedOrganization?.slug, - }) const hasProjectScopedRoles = (roles?.project_scoped_roles ?? []).length > 0 - const { data: projectsData } = useOrgProjectsInfiniteQuery({ slug }) - const orgProjects = - useMemo(() => projectsData?.pages.flatMap((page) => page.projects), [projectsData?.pages]) || [] - const isInvitedUser = Boolean(member.invited_id) // Use generic avatar for all team members instead of attempting to fetch from GitHub @@ -188,7 +196,15 @@ export const MemberRow = ({ member }: MemberRowProps) => { - + ) diff --git a/apps/studio/components/interfaces/Organization/TeamSettings/MembersView.tsx b/apps/studio/components/interfaces/Organization/TeamSettings/MembersView.tsx index 867e13c2e27..47a347a9057 100644 --- a/apps/studio/components/interfaces/Organization/TeamSettings/MembersView.tsx +++ b/apps/studio/components/interfaces/Organization/TeamSettings/MembersView.tsx @@ -1,7 +1,7 @@ import { useParams } from 'common' import { partition } from 'lodash' import { AlertCircle } from 'lucide-react' -import { useMemo } from 'react' +import { useMemo, useState } from 'react' import { Card, Loading, @@ -17,9 +17,17 @@ import { Admonition } from 'ui-patterns/Admonition' import { GenericSkeletonLoader } from 'ui-patterns/ShimmeringLoader' import { MemberRow } from './MemberRow' +import { UpdateRolesPanel } from './UpdateRolesPanel/UpdateRolesPanel' import { AlertError } from '@/components/ui/AlertError' import { useOrganizationRolesV2Query } from '@/data/organization-members/organization-roles-query' -import { useOrganizationMembersQuery } from '@/data/organizations/organization-members-query' +import { + useOrganizationMembersQuery, + type OrganizationMember, +} from '@/data/organizations/organization-members-query' +import { usePermissionsQuery } from '@/data/permissions/permissions-query' +import { useOrgProjectsInfiniteQuery } from '@/data/projects/org-projects-infinite-query' +import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled' +import { useSelectedOrganizationQuery } from '@/hooks/misc/useSelectedOrganization' import { useProfile } from '@/lib/profile' export interface MembersViewProps { @@ -40,12 +48,23 @@ const MembersView = ({ searchString }: MembersViewProps) => { const { data: roles, error: rolesError, + isPending: isLoadingRoles, isSuccess: isSuccessRoles, isError: isErrorRoles, } = useOrganizationRolesV2Query({ slug, }) + const { data: selectedOrganization } = useSelectedOrganizationQuery() + const { data: permissions } = usePermissionsQuery() + const organizationMembersDeletionEnabled = useIsFeatureEnabled('organization_members:delete') + + const { data: projectsData } = useOrgProjectsInfiniteQuery({ slug }) + const orgProjects = useMemo( + () => projectsData?.pages.flatMap((page) => page.projects) ?? [], + [projectsData?.pages] + ) + const filteredMembers = useMemo(() => { return !searchString ? members @@ -67,6 +86,13 @@ const MembersView = ({ searchString }: MembersViewProps) => { (m) => m.gotrue_id === profile?.gotrue_id ) + const [memberForRoleUpdate, setMemberForRoleUpdate] = useState() + const [showRoleUpdatePanel, setShowRoleUpdatePanel] = useState(false) + const handleManageAccess = (member: OrganizationMember) => { + setMemberForRoleUpdate(member) + setShowRoleUpdatePanel(true) + } + const userMember = members.find((m) => m.gotrue_id === profile?.gotrue_id) const orgScopedRoleIds = (roles?.org_scoped_roles ?? []).map((r) => r.id) const isOrgScopedRole = orgScopedRoleIds.includes(userMember?.role_ids?.[0] ?? -1) @@ -122,9 +148,35 @@ const MembersView = ({ searchString }: MembersViewProps) => { , ] : []), - ...(!!user ? [] : []), + ...(!!user + ? [ + , + ] + : []), ...sortedMembers.map((member) => ( - + )), ...(searchString.length > 0 && filteredMembers.length === 0 ? [ @@ -156,6 +208,14 @@ const MembersView = ({ searchString }: MembersViewProps) => { )} + + {memberForRoleUpdate && ( + setShowRoleUpdatePanel(false)} + /> + )} ) } diff --git a/apps/studio/components/interfaces/Organization/TeamSettings/TeamSettings.tsx b/apps/studio/components/interfaces/Organization/TeamSettings/TeamSettings.tsx index afa81dc1426..3d3eebce77c 100644 --- a/apps/studio/components/interfaces/Organization/TeamSettings/TeamSettings.tsx +++ b/apps/studio/components/interfaces/Organization/TeamSettings/TeamSettings.tsx @@ -1,3 +1,4 @@ +import { useDebounce } from '@uidotdev/usehooks' import { useParams } from 'common' import { Search } from 'lucide-react' import { useState } from 'react' @@ -24,6 +25,8 @@ export const TeamSettings = () => { const { slug } = useParams() const [searchString, setSearchString] = useState('') + const debouncedSearch = useDebounce(searchString, 500) + const { data: roles } = useOrganizationRolesV2Query({ slug }) const hasProjectScopedRoles = (roles?.project_scoped_roles ?? []).length > 0 @@ -42,7 +45,7 @@ export const TeamSettings = () => { autoComplete="off" icon={} value={searchString} - onChange={(e: any) => setSearchString(e.target.value)} + onChange={(e) => setSearchString(e.target.value)} name="email" id="email" placeholder="Filter members" @@ -62,7 +65,9 @@ export const TeamSettings = () => { )} - + diff --git a/apps/studio/components/interfaces/Organization/TeamSettings/TeamSettings.utils.ts b/apps/studio/components/interfaces/Organization/TeamSettings/TeamSettings.utils.ts index 74b1702e286..343d5285316 100644 --- a/apps/studio/components/interfaces/Organization/TeamSettings/TeamSettings.utils.ts +++ b/apps/studio/components/interfaces/Organization/TeamSettings/TeamSettings.utils.ts @@ -1,7 +1,7 @@ import { PermissionAction } from '@supabase/shared-types/out/constants' import type { OrganizationMember } from '@/data/organizations/organization-members-query' -import { doPermissionsCheck, useGetPermissions } from '@/hooks/misc/useCheckPermissions' +import { doPermissionsCheck } from '@/hooks/misc/useCheckPermissions' import type { Permission, Role } from '@/types' export const useGetRolesManagementPermissions = ( @@ -9,36 +9,30 @@ export const useGetRolesManagementPermissions = ( roles?: Role[], permissions?: Permission[] ): { rolesAddable: Number[]; rolesRemovable: Number[] } => { - const { permissions: allPermissions, organizationSlug } = useGetPermissions( - permissions, - orgSlug, - permissions !== undefined && orgSlug !== undefined - ) - const rolesAddable: Number[] = [] const rolesRemovable: Number[] = [] if (!roles || !orgSlug) return { rolesAddable, rolesRemovable } roles.forEach((role: Role) => { const canAdd = doPermissionsCheck( - allPermissions, + permissions, PermissionAction.CREATE, 'auth.subject_roles', { resource: { role_id: role.id }, }, - organizationSlug + orgSlug ) if (canAdd) rolesAddable.push(role.id) const canRemove = doPermissionsCheck( - allPermissions, + permissions, PermissionAction.DELETE, 'auth.subject_roles', { resource: { role_id: role.id }, }, - organizationSlug + orgSlug ) if (canRemove) rolesRemovable.push(role.id) }) diff --git a/apps/studio/hooks/misc/useCheckPermissions.test.ts b/apps/studio/hooks/misc/useCheckPermissions.test.ts new file mode 100644 index 00000000000..3ac0de113b4 --- /dev/null +++ b/apps/studio/hooks/misc/useCheckPermissions.test.ts @@ -0,0 +1,99 @@ +import { describe, expect, it } from 'vitest' + +import { doPermissionsCheck } from './useCheckPermissions' +import type { Permission } from '@/types' + +function permission(overrides: Partial): Permission { + return { + actions: ['read'] as any, + condition: null as unknown as Permission['condition'], + organization_slug: 'org-slug', + resources: ['tables'], + restrictive: false, + project_refs: null, + ...overrides, + } +} + +describe('doPermissionsCheck', () => { + it('returns false when permissions are missing', () => { + expect(doPermissionsCheck(undefined, 'read', 'tables', undefined, 'org-slug')).toBe(false) + }) + + it('matches a literal action and resource', () => { + const permissions = [permission({ actions: ['read'] as any, resources: ['tables'] })] + expect(doPermissionsCheck(permissions, 'read', 'tables', undefined, 'org-slug')).toBe(true) + expect(doPermissionsCheck(permissions, 'read', 'columns', undefined, 'org-slug')).toBe(false) + }) + + it('treats every "." in a resource as literal, not "any character"', () => { + // Regression for the incomplete-escaping bug: only the first "." used to get escaped, + // so a resource with two dots would let any single character stand in for the second one. + const permissions = [permission({ resources: ['queue_job.projects.update_jwt'] })] + expect( + doPermissionsCheck( + permissions, + 'read', + 'queue_job.projects.update_jwt', + undefined, + 'org-slug' + ) + ).toBe(true) + expect( + doPermissionsCheck( + permissions, + 'read', + 'queue_jobXprojectsXupdate_jwt', + undefined, + 'org-slug' + ) + ).toBe(false) + }) + + it('expands every "%" wildcard in a resource, not just the first one', () => { + const permissions = [permission({ resources: ['queue_job.%.%'] })] + expect( + doPermissionsCheck(permissions, 'read', 'queue_job.restore.prepare', undefined, 'org-slug') + ).toBe(true) + expect( + doPermissionsCheck( + permissions, + 'read', + 'queue_job.walg.prepare_restore', + undefined, + 'org-slug' + ) + ).toBe(true) + }) + + it('treats a literal backslash in a resource as a literal character, not a regex escape', () => { + const permissions = [permission({ resources: ['a\\d'] })] + // If the backslash weren't escaped, "\d" would be interpreted as the regex digit class + // and incorrectly match "a1". + expect(doPermissionsCheck(permissions, 'read', 'a1', undefined, 'org-slug')).toBe(false) + expect(doPermissionsCheck(permissions, 'read', 'a\\d', undefined, 'org-slug')).toBe(true) + }) + + it('denies when a restrictive permission matches, even if a non-restrictive one also matches', () => { + const permissions = [ + permission({ restrictive: false, resources: ['tables'] }), + permission({ restrictive: true, resources: ['tables'] }), + ] + expect(doPermissionsCheck(permissions, 'read', 'tables', undefined, 'org-slug')).toBe(false) + }) + + it('only matches permissions for the given organization', () => { + const permissions = [permission({ organization_slug: 'other-org' })] + expect(doPermissionsCheck(permissions, 'read', 'tables', undefined, 'org-slug')).toBe(false) + }) + + it('prefers a project-scoped permission over an org-level one when a projectRef is given', () => { + const permissions = [ + permission({ resources: ['tables'], project_refs: [] }), + permission({ resources: ['tables'], project_refs: ['project-ref'], restrictive: true }), + ] + expect( + doPermissionsCheck(permissions, 'read', 'tables', undefined, 'org-slug', 'project-ref') + ).toBe(false) + }) +}) diff --git a/apps/studio/hooks/misc/useCheckPermissions.ts b/apps/studio/hooks/misc/useCheckPermissions.ts index 68868edae3c..f7ed7aa5936 100644 --- a/apps/studio/hooks/misc/useCheckPermissions.ts +++ b/apps/studio/hooks/misc/useCheckPermissions.ts @@ -8,8 +8,18 @@ import { usePermissionsQuery } from '@/data/permissions/permissions-query' import { IS_PLATFORM } from '@/lib/constants' import type { Permission } from '@/types' -const toRegexpString = (actionOrResource: string) => - `^${actionOrResource.replace('.', '\\.').replace('%', '.*')}$` +const escapeRegExp = (value: string) => value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + +const regexpCache = new Map() +const getActionResourceRegexp = (actionOrResource: string) => { + let regexp = regexpCache.get(actionOrResource) + if (!regexp) { + const pattern = actionOrResource.split('%').map(escapeRegExp).join('.*') + regexp = new RegExp(`^${pattern}$`) + regexpCache.set(actionOrResource, regexp) + } + return regexp +} function doPermissionConditionCheck(permissions: Permission[], data?: object) { const isRestricted = permissions @@ -44,8 +54,10 @@ export function doPermissionsCheck( const projectPermissions = permissions.filter( (permission) => permission.organization_slug === organizationSlug && - permission.actions.some((act) => (action ? action.match(toRegexpString(act)) : null)) && - permission.resources.some((res) => resource.match(toRegexpString(res))) && + permission.actions.some((act) => + action ? getActionResourceRegexp(act).test(action) : null + ) && + permission.resources.some((res) => getActionResourceRegexp(res).test(resource)) && permission.project_refs?.includes(projectRef) ) if (projectPermissions.length > 0) { @@ -59,8 +71,10 @@ export function doPermissionsCheck( .filter( (permission) => permission.organization_slug === organizationSlug && - permission.actions.some((act) => (action ? action.match(toRegexpString(act)) : null)) && - permission.resources.some((res) => resource.match(toRegexpString(res))) + permission.actions.some((act) => + action ? getActionResourceRegexp(act).test(action) : null + ) && + permission.resources.some((res) => getActionResourceRegexp(res).test(resource)) ) return doPermissionConditionCheck(orgPermissions, { resource_name: resource, ...data }) } From 476d4a58517338e15c47dbc7c78b0cf85c89083c Mon Sep 17 00:00:00 2001 From: Danny White <3104761+dnywh@users.noreply.github.com> Date: Fri, 11 Sep 2026 17:05:26 +1000 Subject: [PATCH 02/28] refactor(ui): drop redundant Button variant="default" props (#50161) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## What kind of change does this PR introduce? Mechanical cleanup on top of the Button default-variant change (#50160). ## What is the current behavior? Many callsites still pass `variant="default"` even though that is now the component default. ## What is the new behavior? Removes redundant static `variant="default"` from legacy `Button` and `ButtonTooltip` callsites. Keeps explicit defaults where they document the API: - `button-default.tsx` and `button-sizes.tsx` demos - `DocsButton`, which pins neutral styling at the wrapper boundary ## To test Studio: - [Auth → Rate Limits](https://studio-staging-2s957kwc4-supabase.vercel.app/dashboard/project/_/auth/rate-limits): dirty the form so Cancel appears; Cancel stays neutral, Save stays green - [Project Settings → API Keys](https://studio-staging-2s957kwc4-supabase.vercel.app/dashboard/project/_/settings/api-keys): `DocsButton` in the header actions stays neutral Design system: - [Design system → Button](https://design-system-git-dnywh-dc924ac1-supabase.vercel.app/design-system/docs/components/button): `button-default` / `button-sizes` still show explicit default styling; Primary (green) is restricted to the Primary section (and `asChild`) WWW: - [www → Brand assets](https://zone-www-dot-com-git-dnywh-dc924ac1-supabase.vercel.app/brand-assets): Download logo kit / Download button kit stay neutral --- .../components/component-preview.tsx | 1 - .../example/admonition-button-split.tsx | 2 -- .../default/example/admonition-button.tsx | 2 +- .../default/example/admonition-demo.tsx | 2 +- .../default/example/admonition-responsive.tsx | 2 +- .../default/example/button-split-dropdown.tsx | 2 -- .../default/example/calendar-form.tsx | 1 - .../default/example/combobox-popover.tsx | 1 - .../default/example/combobox-responsive.tsx | 1 - .../example/confirmation-modal-demo.tsx | 4 +--- .../example/connect-interstitial-shared.tsx | 2 +- .../default/example/copy-confirmations.tsx | 8 ++----- .../default/example/data-table-demo.tsx | 12 +++------- .../default/example/dialog-centered-off.tsx | 2 +- .../default/example/dialog-close-button.tsx | 6 ++--- .../registry/default/example/dialog-demo.tsx | 2 +- .../registry/default/example/drawer-demo.tsx | 4 +--- .../example/empty-state-missing-route.tsx | 2 +- .../empty-state-presentational-buttons.tsx | 2 +- .../registry/default/example/field-demo.tsx | 4 +--- .../default/example/field-responsive.tsx | 4 +--- .../default/example/filter-bar-demo.tsx | 4 +--- .../example/form-patterns-pagelayout.tsx | 14 ++--------- .../example/form-patterns-sidepanel.tsx | 8 +------ .../default/example/inner-side-menu-empty.tsx | 12 ++-------- .../example/keyboard-shortcut-demo.tsx | 5 +--- .../example/keyboard-shortcut-inline.tsx | 5 +--- .../example/multi-select-badge-limit.tsx | 9 ++----- .../default/example/page-header-demo.tsx | 4 +--- .../example/page-layout-auth-emails.tsx | 12 +++------- .../default/example/page-layout-detail.tsx | 12 +++------- .../example/page-layout-edge-function.tsx | 8 +++---- .../example/page-layout-full-width.tsx | 4 +--- .../example/page-layout-logs-content.tsx | 8 ++----- .../default/example/page-layout-settings.tsx | 8 ++----- .../default/example/page-section-demo.tsx | 4 +--- .../example/page-section-with-aside.tsx | 4 +--- .../example/sheet-confirm-on-close-demo.tsx | 8 ++----- .../registry/default/example/sonner-demo.tsx | 1 - .../registry/default/example/sonner-types.tsx | 23 ++++-------------- .../default/example/sonner-upload.tsx | 1 - .../default/example/table-actions.tsx | 3 +-- .../default/example/table-cross-link.tsx | 3 +-- .../example/table-row-link-actions.tsx | 1 - apps/docs/app/not-found.tsx | 2 +- .../components/Feedback/FeedbackModal.tsx | 2 +- .../NavigationMenu/GlobalMobileMenu.tsx | 2 +- apps/docs/features/ui/McpConfigPanel.tsx | 4 +--- apps/learn/components/next-up.tsx | 1 - apps/lite-studio/app/routes/projects.$ref.tsx | 6 ++--- .../grid/components/editor/DateTimeEditor.tsx | 11 ++------- .../grid/components/editor/TextEditor.tsx | 2 -- .../editor/TruncatedWarningOverlay.tsx | 2 +- .../formatter/ForeignKeyFormatter.tsx | 1 - .../formatter/ReferenceRecordPeek.tsx | 2 +- .../components/grid/components/grid/Grid.tsx | 13 ++-------- .../grid/components/grid/GridError.tsx | 8 ++----- .../grid/components/header/ExportDialog.tsx | 4 +--- .../grid/components/header/Header.tsx | 15 ++---------- .../header/filter/FilterPopoverNew.tsx | 4 +--- .../header/filter/FilterPopoverPrimitive.tsx | 1 - .../APIKeys/CreatePublishableAPIKeyDialog.tsx | 2 +- .../APIKeys/CreateSecretAPIKeyDialog.tsx | 2 +- .../Account/AccessTokens/AccessTokenList.tsx | 7 +----- .../AccessTokens/Classic/NewTokenDialog.tsx | 3 +-- .../AccessTokens/MigrationAdmonition.tsx | 2 +- .../Scoped/Form/NewScopedTokenForm.tsx | 4 ++-- .../interfaces/Account/AuditLogs.tsx | 3 +-- .../Preferences/AccountConnections.tsx | 2 +- .../Account/Preferences/AccountIdentities.tsx | 3 +-- .../Account/Preferences/AddPasswordRow.tsx | 7 ++---- .../Preferences/ChangeEmailAddress.tsx | 2 +- .../Preferences/ProfileInformation.tsx | 6 +---- .../interfaces/Account/TOTPFactors/index.tsx | 8 ++----- .../interfaces/Advisors/AdvisorRuleItem.tsx | 2 -- .../interfaces/Advisors/CreateRuleSheet.tsx | 2 +- .../interfaces/Advisors/DisableRuleModal.tsx | 4 ++-- .../interfaces/Advisors/EnableRuleModal.tsx | 4 ++-- .../ApiAuthorization.Error.tsx | 2 +- .../ApiAuthorization.Form.tsx | 2 +- .../ApiAuthorization.Invalid.tsx | 2 +- .../FeaturePreview/FeaturePreviewModal.tsx | 9 +++---- .../interfaces/Auth/AuditLogsForm.tsx | 6 +---- .../Auth/AuthProvidersForm/AuthAlert.tsx | 2 +- .../Auth/AuthProvidersForm/FormField.tsx | 2 +- .../Auth/AuthProvidersForm/ProviderForm.tsx | 1 - .../Auth/AuthProvidersForm/index.tsx | 2 +- .../interfaces/Auth/BasicAuthSettingsForm.tsx | 13 ++-------- .../CreateOrUpdateCustomProviderSheet.tsx | 4 +--- .../CustomAuthProvidersList.tsx | 10 ++------ ...stomEmailTemplateRestrictionAdmonition.tsx | 2 -- .../Auth/EmailTemplates/EmailTemplates.tsx | 6 ++--- .../EmailTemplates/ResetTemplateDialog.tsx | 2 +- .../SendEmailHookActiveAdmonition.tsx | 2 +- .../Auth/EmailTemplates/TemplateEditor.tsx | 1 - .../interfaces/Auth/Hooks/CreateHookSheet.tsx | 3 +-- .../interfaces/Auth/Hooks/HookCard.tsx | 1 - .../MfaAuthSettingsForm.tsx | 12 +++------- .../OAuthApps/CreateOrUpdateOAuthAppSheet.tsx | 5 +--- .../Auth/OAuthApps/OAuthAppsList.tsx | 12 +++------- .../OAuthApps/OAuthServerSettingsForm.tsx | 2 +- .../Auth/Overview/OverviewLearnMore.tsx | 2 -- .../Auth/Passkeys/PasskeysSettingsForm.tsx | 1 - .../Auth/PerformanceSettingsForm.tsx | 8 ++----- .../ProtectionAuthSettingsForm.tsx | 8 ++----- .../interfaces/Auth/RateLimits/RateLimits.tsx | 20 +++++++--------- .../Auth/RedirectUrls/RedirectUrlList.tsx | 5 +--- .../SessionsAuthSettingsForm.tsx | 12 +++------- .../interfaces/Auth/SiteUrl/SiteUrl.tsx | 6 +---- .../interfaces/Auth/SmtpForm/SmtpForm.tsx | 1 - .../ThirdPartyAuthForm/CreateAuth0Dialog.tsx | 4 +--- .../CreateAwsCognitoAuthDialog.tsx | 3 +-- .../CreateClerkAuthDialog.tsx | 2 +- .../CreateFirebaseAuthDialog.tsx | 2 +- .../ThirdPartyAuthForm/CreateWorkOSDialog.tsx | 2 +- .../interfaces/Auth/Users/BanUserModal.tsx | 2 +- .../interfaces/Auth/Users/InviteUserModal.tsx | 4 +--- .../interfaces/Auth/Users/SortDropdown.tsx | 5 +--- .../interfaces/Auth/Users/UserLogs.tsx | 3 +-- .../interfaces/Auth/Users/UserOverview.tsx | 2 +- .../interfaces/Auth/Users/UsersV2.tsx | 5 +--- .../Billing/Payment/AddPaymentMethodForm.tsx | 9 +------ .../NewPaymentMethodElement.tsx | 1 - .../Payment/PaymentMethods/PaymentMethods.tsx | 4 +--- .../StripePaymentConnection.tsx | 2 +- .../BranchManagement/BranchPanels.tsx | 1 - .../BranchManagement/ConnectToGitHub.tsx | 2 +- .../BranchManagement/CreateBranchModal.tsx | 6 +---- .../BranchManagement/DatabaseDiffPanel.tsx | 1 - .../BranchManagement/EditBranchModal.tsx | 2 +- .../BranchManagement/OutOfDateNotice.tsx | 2 -- .../BranchManagement/ReviewWithAI.tsx | 1 - .../BranchManagement/WorkflowLogs.tsx | 1 - .../interfaces/Branching/MergeRequest.tsx | 7 +----- .../ComputeInstanceDetail.tsx | 2 +- .../ComputeInstanceLogsTab.tsx | 7 +----- .../interfaces/Compute/ComputeList.tsx | 4 +--- .../Compute/DeployComputeInstanceDialog.tsx | 4 +--- .../ConfigDrift/ConfigurationDriftPage.tsx | 3 +-- .../ConnectSheet/ConnectStepsSection.tsx | 4 ++-- .../ConnectSheet/CopyPromptAdmonition.tsx | 1 - .../WarehouseConnectionDetails.tsx | 9 +------ .../WarehouseModePanel/WarehouseModePanel.tsx | 6 +---- .../WarehouseSchemaTablePicker.tsx | 2 +- .../content/server/common/SecretRow.tsx | 1 - .../direct-connection/IPv4StatusPanel.tsx | 3 +-- .../Database/Backups/BackupItem.tsx | 2 -- .../Database/Backups/PITR/PITRForm.tsx | 1 - .../Database/Backups/PITR/PITRNotice.tsx | 1 - .../Database/Backups/PITR/PITRSelection.tsx | 2 +- .../CreateEnumeratedTypeSidePanel.tsx | 15 +++--------- .../EditEnumeratedTypeSidePanel.tsx | 10 ++------ .../EnumeratedTypeValueRow.tsx | 1 - .../EnumeratedTypes/EnumeratedTypes.tsx | 1 - .../Extensions/EnableExtensionModal.tsx | 2 +- .../Database/Extensions/ExtensionRow.tsx | 4 ++-- .../Functions/CreateFunction/index.tsx | 4 +--- .../Functions/FunctionsList/FunctionList.tsx | 2 -- .../Functions/FunctionsList/FunctionsList.tsx | 1 - .../Database/Hooks/EditHookPanel.tsx | 8 +------ .../Database/Hooks/HooksList/HookList.tsx | 2 -- .../Database/Indexes/CreateIndexSidePanel.tsx | 5 +--- .../interfaces/Database/Indexes/Indexes.tsx | 2 +- .../Database/Migrations/Migrations.tsx | 11 +++------ .../interfaces/Database/Policies/Policies.tsx | 2 +- .../PolicyEditorPanel/PolicyDetailsV2.tsx | 1 - .../Policies/PolicyEditorPanel/index.tsx | 6 +---- .../Policies/PolicyTableRow/PolicyRow.tsx | 1 - .../PolicyTableRow/PolicyTableRowHeader.tsx | 3 --- .../Database/Privileges/PrivilegesHead.tsx | 7 +----- .../Database/ProtectedSchemaWarning.tsx | 6 ++--- .../Publications/PublicationsList.tsx | 6 +---- .../AnalyticsBucket/Fields.tsx | 2 -- .../DestinationForm/BigQuery/Fields.tsx | 1 - .../DestinationForm/ClickHouse/Fields.tsx | 1 - .../DestinationForm/DuckLake/Fields.tsx | 4 ---- .../DestinationForm/NewPublicationPanel.tsx | 2 +- .../DestinationForm/PipelineCostDialog.tsx | 2 +- .../DestinationForm/Snowflake/Fields.tsx | 1 - .../DestinationForm/index.tsx | 2 +- .../ReadReplicasMovedCallout.tsx | 2 +- .../Database/Replication/DestinationRow.tsx | 2 +- .../Database/Replication/Destinations.tsx | 10 ++------ .../Replication/EnablePipelinesCallout.tsx | 2 +- .../Replication/ErrorDetailsDialog.tsx | 2 +- .../ReplicationPipelineStatus.tsx | 4 +--- .../TableReplicationRow.tsx | 1 - .../Database/Replication/RowMenu.tsx | 2 +- .../RestoreToNewProject.tsx | 2 +- .../interfaces/Database/Roles/RoleRow.tsx | 3 +-- .../Database/Schemas/FindTableSelector.tsx | 2 -- .../Database/Schemas/SchemaGraph.tsx | 7 ++---- .../interfaces/Database/Tables/ColumnList.tsx | 3 --- .../interfaces/Database/Tables/TableList.tsx | 4 +--- .../Database/Triggers/ChooseFunctionForm.tsx | 2 +- .../EventTriggersList/EventTriggerList.tsx | 8 +------ .../EventTriggersList/EventTriggersList.tsx | 1 - .../Database/Triggers/TriggerSheet.tsx | 12 ++-------- .../TriggersList/CreateTriggerButtons.tsx | 1 - .../Triggers/TriggersList/TriggerList.tsx | 2 -- .../DiskManagementForm.sections.tsx | 2 -- .../DiskManagement/DiskManagementForm.tsx | 7 +----- .../DiskManagementPanelForm.tsx | 2 +- .../DiskManagementReviewAndSubmitDialog.tsx | 2 +- .../DiskManagement/fields/DiskSizeField.tsx | 1 - .../DiskManagement/fields/IOPSField.tsx | 1 - .../interfaces/Docs/Description.tsx | 1 - .../interfaces/Docs/GeneratingTypes.tsx | 1 - .../interfaces/Docs/LangSelector.tsx | 2 +- .../Docs/PublicSchemaNotEnabledAlert.tsx | 2 +- .../EdgeFunctionsSortDropdown.tsx | 1 - .../ErrorHandling/TroubleshootingSections.tsx | 3 +-- .../ExplainVisualizer.Header.tsx | 1 - .../interfaces/Explorer/ExplorerChatTab.tsx | 4 +--- .../Explorer/ExplorerNotebookTab.tsx | 8 ++----- .../Explorer/QueryEditor/QueryResultError.tsx | 1 - .../Explorer/QueryEditor/QueryRunButton.tsx | 2 -- .../interfaces/Explorer/QueryEditor/index.tsx | 2 +- .../EdgeFunctionDetails.tsx | 5 +--- .../EdgeFunctionRecentErrors.tsx | 1 - .../EdgeFunctionRecentInvocations.tsx | 1 - .../EdgeFunctionSecrets/AddNewSecretForm.tsx | 5 +--- .../EdgeFunctionSecret.tsx | 7 +----- .../EdgeFunctionSecrets/EditSecretSheet.tsx | 2 +- .../Functions/FunctionsEmptyState.tsx | 3 --- .../Functions/TerminalInstructions.tsx | 6 ++--- .../interfaces/Home/ClientLibrary.tsx | 6 ++--- .../Home/ProjectList/EmptyStates.tsx | 2 +- .../Home/ProjectList/ProjectTableRow.tsx | 1 - .../CreateCronJobSheet/CreateCronJobSheet.tsx | 9 +------ .../CronJobs/CronJobTableCell.tsx | 4 +--- .../CronJobs/CronJobsTab.CleanupNotice.tsx | 11 +++------ .../CronJobsTab.EnableCleanupButton.tsx | 4 ++-- .../CronJobs/CronJobsTab.Header.tsx | 2 +- .../CronJobs/EdgeFunctionSection.tsx | 3 +-- .../Integrations/DataApi/DocsMobileNav.tsx | 2 +- .../GraphQL/IntrospectionDisabledNotice.tsx | 6 ++--- .../GraphQL/IntrospectionEnabledNotice.tsx | 2 +- .../ConnectedResourceGroupSection.tsx | 5 ++-- .../InstallIntegrationSheet.tsx | 4 +--- .../InstallationSettings.tsx | 1 - .../Marketplace/MarketplaceFilterBar.tsx | 6 ++--- .../Marketplace/MarketplaceIndex.tsx | 4 +--- .../CreateQueueSheet/CreateQueueSheet.tsx | 8 +------ .../CreateQueueSheet/PgPartmanCallout.tsx | 7 +----- .../Integrations/Queues/OverviewTab.tsx | 2 +- .../Integrations/Queues/QueueTab.tsx | 4 ---- .../Integrations/Queues/QueuesSettings.tsx | 7 +----- .../Integrations/Queues/QueuesTab.tsx | 7 +----- .../Queues/SingleQueue/QueueSettings.tsx | 2 +- .../Queues/SingleQueue/SendMessageModal.tsx | 2 +- .../Vault/Secrets/AddNewSecretModal.tsx | 2 +- .../Vault/Secrets/EditSecretModal.tsx | 2 -- .../Vault/Secrets/SecretsManagement.tsx | 7 +----- .../Vercel/VercelIntegrationInterstitial.tsx | 2 +- .../VercelGithub/IntegrationConnection.tsx | 3 +-- .../VercelGithub/IntegrationPanels.tsx | 7 +++--- .../VercelGithub/ProjectLinkerComponents.tsx | 2 -- .../Integrations/Wrappers/ColumnType.tsx | 2 +- .../Wrappers/CreateIcebergWrapperSheet.tsx | 1 - .../Wrappers/CreateWrapperSheet.tsx | 5 +--- .../Wrappers/EditWrapperSheet.tsx | 12 ++-------- .../Integrations/Wrappers/OverviewTab.tsx | 3 +-- .../Integrations/Wrappers/WrapperRow.tsx | 2 -- .../Wrappers/WrapperTableEditor.tsx | 7 +----- .../StripeSyncEngine/InstallationError.tsx | 14 ++--------- .../StripeSyncEngine/IntegrationActions.tsx | 3 +-- .../StripeSyncEngine/OverviewTab.tsx | 5 ++-- .../StripeSyncSettingsPage.tsx | 2 +- .../rotate-key-dialog.tsx | 2 -- .../interfaces/JwtSecrets/jwt-settings.tsx | 6 ++--- .../interfaces/Linter/Linter.utils.tsx | 2 +- .../interfaces/Linter/LinterFilters.tsx | 1 - .../interfaces/Linter/LinterPageFooter.tsx | 1 - .../components/interfaces/LocalDropdown.tsx | 1 - .../interfaces/LogDrains/LogDrainsEmpty.tsx | 2 +- .../DatabaseConnections/Activity.tsx | 2 +- .../Organization/AuditLogs/AuditLogs.tsx | 3 +-- .../BillingCustomerData.tsx | 6 +---- .../BillingCustomerDataForm.tsx | 1 - .../CostControl/CostControl.tsx | 1 - .../CostControl/SpendCapSidePanel.tsx | 4 ++-- .../BillingSettings/CreditCodeRedemption.tsx | 3 +-- .../BillingSettings/CreditTopUp.tsx | 1 - .../BillingSettings/Restriction.tsx | 24 +++++++++---------- .../Subscription/EnterpriseCard.tsx | 2 -- .../Subscription/ExitSurveyModal.tsx | 4 +--- .../Subscription/PaymentMethodSelection.tsx | 1 - .../BillingSettings/Subscription/PlanCard.tsx | 2 +- .../Subscription/PlanUpdatePanelShell.tsx | 4 ++-- .../Subscription/Subscription.tsx | 3 +-- .../Subscription/UpgradeModal.tsx | 2 +- .../AwsMarketplaceOnboarding.tsx | 6 ++--- .../Organization/Documents/CustomDocument.tsx | 2 +- .../interfaces/Organization/Documents/DPA.tsx | 2 +- .../Organization/Documents/HIPAA.tsx | 2 +- .../Organization/Documents/ISO27001.tsx | 7 +----- .../Organization/Documents/SOC2.tsx | 7 +----- .../Documents/SecurityQuestionnaire.tsx | 9 ++----- .../interfaces/Organization/Documents/TIA.tsx | 2 +- .../InvoicesSettings/InvoicesSettings.tsx | 2 -- .../Organization/NewOrg/NewOrgForm.tsx | 1 - .../OAuthApps/AuthorizedAppRow.tsx | 7 +----- .../Organization/OAuthApps/OAuthAppRow.tsx | 2 +- .../OAuthApps/OAuthSecrets/OAuthSecrets.tsx | 1 - .../OAuthApps/OAuthSecrets/SecretRow.tsx | 1 - .../OAuthApps/PublishAppSidePanel/Scopes.tsx | 2 +- .../OAuthApps/PublishAppSidePanel/index.tsx | 10 +++----- .../Apps/AppsList/AppsListTable.tsx | 2 +- .../Apps/CreateAppSheet/CreateAppSheet.tsx | 12 ++-------- .../interfaces/Organization/SSO/SSOConfig.tsx | 6 +---- .../Organization/SSO/SSODomains.tsx | 2 -- .../Organization/SSO/SSOMetadata.tsx | 1 - .../Organization/SecuritySettings.tsx | 3 +-- .../TeamSettings/InviteMemberButton.tsx | 4 +--- .../TeamSettings/LeaveTeamButton.tsx | 1 - .../TeamSettings/MemberActions.tsx | 1 - .../UpdateRolesPanel/UpdateRolesPanel.tsx | 8 ++----- .../interfaces/Organization/Usage/Usage.tsx | 1 - .../Usage/UsageSection/DatabaseSizeUsage.tsx | 2 +- .../Usage/UsageSection/DiskUsage.tsx | 2 +- .../OrganizationInvite/OrganizationInvite.tsx | 6 ++--- .../OrganizationInviteError.tsx | 2 +- .../PlatformWebhooksDeliveryDetailsSheet.tsx | 6 +---- .../PlatformWebhooksEndpointDetails.tsx | 4 ---- .../Webhooks/PlatformWebhooksEndpointList.tsx | 10 ++------ .../PlatformWebhooksEndpointSheet.tsx | 4 +--- .../Webhooks/PlatformWebhooksPage.tsx | 3 +-- .../Project/ResumeProjectButton.tsx | 6 +---- .../ProjectAPIDocs/Content/Entities.tsx | 1 - .../ProjectAPIDocs/Content/Introduction.tsx | 2 -- .../ProjectAPIDocs/LanguageSelector.tsx | 1 - .../ProjectAPIDocs/ProjectAPIDocs.tsx | 2 +- .../ProjectAPIDocs/SecondLevelNav.Layout.tsx | 1 - .../ProjectCreation/ProjectCreationFooter.tsx | 1 - .../ProjectCreation/ProjectCreationForm.tsx | 2 +- .../interfaces/ProjectHome/AdvisorSection.tsx | 2 +- .../ProjectHome/CustomReportSection.tsx | 13 ++-------- .../ProjectHome/ProjectConnectionPopover.tsx | 2 -- .../QueryInsightsDetailSheet.tsx | 1 - .../QueryInsightsTable/QueryInsightsTable.tsx | 1 - .../hooks/useQueryInsightsTableColumns.tsx | 3 --- .../IndexAdvisorDisabledState.tsx | 3 +-- .../QueryPerformance/QueryDetail.tsx | 1 - .../QueryPerformance/QueryPerformanceGrid.tsx | 5 +--- .../QueryPerformance/SqlMonacoBlock.tsx | 1 - .../WithStatements/WithStatements.tsx | 8 +------ .../QuerySources/LogsCustomRangeDialog.tsx | 4 +--- .../Inspector/ChooseChannelPopover.tsx | 3 +-- .../Realtime/Inspector/EmptyRealtime.tsx | 10 +++----- .../Realtime/Inspector/MessagesTable.tsx | 20 ++++------------ .../RealtimeFilterPopover/TableSelector.tsx | 2 +- .../Inspector/RealtimeFilterPopover/index.tsx | 4 +--- .../Realtime/Inspector/SendMessageModal.tsx | 4 +--- .../interfaces/Realtime/RealtimeSettings.tsx | 6 ++--- .../interfaces/Reports/CreateReportModal.tsx | 2 +- .../interfaces/Reports/ReportFilterBar.tsx | 8 +------ .../interfaces/Reports/ReportWidget.tsx | 5 ---- .../components/interfaces/Reports/Reports.tsx | 14 +++-------- .../interfaces/Reports/UpdateModal.tsx | 2 +- .../RoleImpersonationPopover.tsx | 1 - .../UserImpersonationSelector.tsx | 1 - .../SQLEditor/DownloadSnippetModal.tsx | 4 ++-- .../interfaces/SQLEditor/MoveQueryModal.tsx | 7 +----- .../interfaces/SQLEditor/RenameQueryModal.tsx | 3 +-- .../SQLEditor/UtilityPanel/ChartConfig.tsx | 2 +- .../QuerySourceMenu/QuerySourceMenu.tsx | 1 - .../SQLEditor/UtilityPanel/SaveButton.tsx | 1 - .../SQLEditor/UtilityPanel/UtilityActions.tsx | 6 +---- .../UtilityPanel/UtilityTabResults.tsx | 1 - .../Settings/API/ExposedFunctionSelector.tsx | 1 - .../Settings/API/ExposedSchemaSelector.tsx | 1 - .../Settings/API/ExposedTableSelector.tsx | 1 - .../Settings/API/PostgrestConfig.tsx | 2 +- .../interfaces/Settings/Addons/Addons.tsx | 4 ++-- .../Settings/Addons/PITRSidePanel.tsx | 2 +- .../Settings/Database/BannedIPs.tsx | 1 - .../Settings/Database/ConnectionLogging.tsx | 1 - .../ConnectionPooling/ConnectionPooling.tsx | 2 +- .../Database/DatabaseReadOnlyAlert.tsx | 6 ++--- .../ResetDbPasswordDialog.tsx | 6 +---- .../Database/DiskSizeConfiguration.tsx | 9 ++----- .../Database/DiskSizeConfigurationModal.tsx | 10 ++++---- .../JitDbAccessConfiguration.tsx | 8 +++---- .../JitDbAccessRuleSheet.tsx | 2 +- .../JitDbAccessRulesTable.tsx | 8 +------ .../AddRestrictionModal.tsx | 2 +- .../NetworkRestrictions.tsx | 3 --- .../Settings/Database/PoolingModesModal.tsx | 2 +- .../Settings/Database/SSLConfiguration.tsx | 3 +-- .../CustomDomainActivate.tsx | 7 +----- .../CustomDomainConfig/CustomDomainVerify.tsx | 7 +----- .../CustomDomainsConfigureHostname.tsx | 6 +---- .../Settings/General/DashboardPreferences.tsx | 8 ++----- .../interfaces/Settings/General/General.tsx | 1 - .../Infrastructure/PauseProjectButton.tsx | 1 - .../Infrastructure/ProjectUpgradeAlert.tsx | 10 +++----- .../Infrastructure/RestartServerButton.tsx | 3 --- .../interfaces/Settings/General/Project.tsx | 2 +- .../Settings/General/ProjectAccessSection.tsx | 2 +- .../TransferProjectButton.tsx | 5 +--- .../InstanceConfiguration.tsx | 2 -- .../InfrastructureConfiguration/MapView.tsx | 1 - .../ReadReplicaEligibilityWarnings.tsx | 7 ++---- .../ReadReplicaPricingDialog.tsx | 10 ++------ .../ReadReplicas/ReadReplicaForm/index.tsx | 2 +- .../ReadReplicas/ReadReplicaRow.tsx | 9 ++----- .../ReadReplicas/ReadReplicasSection.tsx | 7 +----- .../Infrastructure/UpgradeWarnings.tsx | 6 ++--- .../AWSPrivateLinkAttentionAdmonition.tsx | 2 +- .../AWSPrivateLink/AWSPrivateLinkForm.tsx | 3 +-- .../AWSPrivateLink/AWSPrivateLinkSection.tsx | 2 +- .../GitHubIntegrationConnectionForm.tsx | 1 - .../GitHubRepositoryField.tsx | 2 -- .../GithubIntegration/GithubSection.tsx | 3 +-- .../Logs/LegacyLogsRewriteAdmonition.tsx | 6 ++--- .../interfaces/Settings/Logs/LogTable.tsx | 7 +----- .../Settings/Logs/Logs.DatePickers.tsx | 3 +-- .../Logs/Logs.UpdateSavedQueryModal.tsx | 2 +- .../Settings/Logs/LogsFilterPopover.tsx | 2 +- .../Settings/Logs/LogsPreviewer.tsx | 1 - .../Settings/Logs/LogsQueryPanel.tsx | 9 ++----- .../Settings/Logs/MultiSelectActionBar.tsx | 1 - .../Settings/Logs/PreviewFilterPanel.tsx | 6 ++--- .../Settings/Logs/UpgradePrompt.tsx | 4 +--- .../interfaces/SignIn/ResetPasswordForm.tsx | 2 -- .../interfaces/SignIn/SessionTimeoutModal.tsx | 2 +- .../interfaces/SignIn/SignInForm.tsx | 1 - .../interfaces/SignIn/SignInMfaForm.tsx | 4 ++-- .../interfaces/SignIn/SignInWithCustom.tsx | 2 +- .../interfaces/SignIn/SignUpForm.tsx | 1 - .../AnalyticsBucketDetails/BucketCallouts.tsx | 6 ++--- .../AnalyticsBucketDetails/CopyEnvButton.tsx | 2 +- .../CreateTable/CreateTableInstructions.tsx | 1 - .../CreateTable/CreateTableSheet.tsx | 2 -- .../DecryptedReadOnlyInput.tsx | 8 +------ .../InitializeForeignSchemaDialog.tsx | 4 ++-- .../NamespaceWithTables/InsertDataDialog.tsx | 4 ++-- .../NamespaceWithTables/TableRowComponent.tsx | 5 ++-- .../NamespaceWithTables/index.tsx | 2 +- .../UpdateCatalogTokenDialog.tsx | 6 ++--- .../UpdateForeignSchemaDialog.tsx | 4 ++-- .../CreateAnalyticsBucketForm.tsx | 2 +- .../BucketsPickerDialog/BucketsPicker.tsx | 2 +- .../interfaces/Storage/CreateBucketModal.tsx | 2 +- .../interfaces/Storage/EditBucketModal.tsx | 2 +- .../interfaces/Storage/EmptyBucketModal.tsx | 2 +- .../interfaces/Storage/FilesBuckets/index.tsx | 3 +-- .../Storage/ImportForeignSchemaDialog.tsx | 2 +- .../Storage/PublicBucketWarning.tsx | 2 +- .../Storage/StorageBucketsError.tsx | 2 +- .../StorageExplorer/CustomExpiryModal.tsx | 4 +--- .../StorageExplorer/FileExplorerHeader.tsx | 4 +--- .../FileExplorerHeaderSelection.tsx | 3 --- .../StorageExplorer/MoveItemsModal.tsx | 4 +--- .../Storage/StorageExplorer/PreviewPane.tsx | 1 - .../PolicyEditor/PolicyEditorFooter.tsx | 6 +---- .../PolicyEditorModalTitle.tsx | 2 +- .../Storage/StoragePolicies/PolicyReview.tsx | 4 +--- .../StoragePolicies/PolicySelection.tsx | 6 ++--- .../StoragePolicies/StoragePoliciesEditor.tsx | 4 +--- .../StoragePolicies/StoragePoliciesReview.tsx | 4 +--- .../StorageSettings/CreateCredentialModal.tsx | 1 - .../Storage/StorageSettings/S3Connection.tsx | 5 ++-- .../StorageSettings/StorageSettings.tsx | 1 - .../CreateVectorBucketDialog.tsx | 2 +- .../VectorBuckets/CreateVectorTableSheet.tsx | 4 ++-- .../InitializeForeignSchemaDialog.tsx | 4 ++-- .../VectorBucketCallouts.tsx | 6 ++--- .../VectorBucketTableExamplesSheet.tsx | 15 +++--------- .../VectorBucketDetails/index.tsx | 1 - .../interfaces/Support/AIAssistantOption.tsx | 3 +-- .../interfaces/Support/ClientLibraryInfo.tsx | 8 ++----- .../Support/IPV4SuggestionAlert.tsx | 2 +- .../interfaces/Support/IncidentAdmonition.tsx | 2 +- .../Support/LinkSupportTicketPage.tsx | 2 +- .../interfaces/Support/ProjectAndPlanInfo.tsx | 3 +-- .../components/interfaces/Support/Success.tsx | 12 +++------- .../interfaces/Support/SupportFormPage.tsx | 3 +-- .../interfaces/Support/SupportSidebarForm.tsx | 1 - .../DeleteConfirmationDialogs.tsx | 6 ++--- .../ExposedMaterializedViewDialog.tsx | 2 +- .../TableGridEditor/GridHeaderActions.tsx | 7 ++---- .../TableGridEditor/RealtimeToggleDialog.tsx | 2 +- .../SecurityDefinerViewPopover.tsx | 2 +- .../SidePanelEditor/ActionBar.tsx | 7 +----- .../ColumnEditor/ColumnEditor.tsx | 4 ++-- .../ColumnEditor/ColumnForeignKey.tsx | 2 +- .../ColumnEditor/ColumnType.tsx | 2 +- .../ForeignKeySelector/ForeignKeySelector.tsx | 5 +--- .../OperationQueueSidePanel.tsx | 7 +----- .../ForeignRowSelector/ForeignRowSelector.tsx | 1 - .../RowEditor/JsonEditor/index.tsx | 3 +-- .../SidePanelEditor/RowEditor/TextEditor.tsx | 2 +- .../SidePanelEditor/SchemaEditor.tsx | 1 - .../SpreadsheetImport.utils.tsx | 2 +- .../TableEditor/ApiAccessToggle.tsx | 2 +- .../SidePanelEditor/TableEditor/Column.tsx | 2 +- .../TableEditor/ColumnManagement.tsx | 9 +++---- .../ForeignKeysManagement/ForeignKeyRow.tsx | 13 +++------- .../ForeignKeysManagement.tsx | 4 +--- .../TableGridEditor/TableDefinition.tsx | 2 +- .../TableGridEditor/TableGridEditor.tsx | 15 ++---------- .../UnifiedLogs/RowSelectionHeader.tsx | 1 - .../UnifiedLogs/ServiceFlowPanel.tsx | 1 - .../UnifiedLogs/UnifiedLogsBanner.tsx | 7 +----- .../components/DownloadLogsButton.tsx | 7 +----- .../UnifiedLogs/components/LogsListPanel.tsx | 1 - .../components/interfaces/UserDropdown.tsx | 1 - .../AdvisorsLayout/AdvisorsSidebarMenu.tsx | 2 +- .../BranchDropdownCommandContent.tsx | 1 - .../BranchingPITRNotice.tsx | 3 +-- .../OrganizationDropdownCommandContent.tsx | 8 +------ .../layouts/AppLayout/ProjectDropdown.tsx | 8 +------ .../EdgeFunctionDetailsLayout.tsx | 6 ++--- .../layouts/LogsLayout/LogsSidebarMenuV2.tsx | 5 ++-- .../LayoutHeader/AdminStudioButton.tsx | 1 - .../FeedbackDropdown/FeedbackDropdown.tsx | 6 ++--- .../FeedbackDropdown/FeedbackWidget.tsx | 7 +++--- .../LayoutHeader/LocalVersionPopover.tsx | 4 ++-- .../LayoutHeader/MergeRequestButton.tsx | 1 - .../NavigationBar/MobileNavigationBar.tsx | 1 - .../ObservabilityLayout/ObservabilityMenu.tsx | 2 -- .../components/layouts/OrganizationLayout.tsx | 2 +- .../layouts/ProjectLayout/BuildingState.tsx | 2 +- .../layouts/ProjectLayout/ConnectingState.tsx | 4 ++-- .../LogicalBackupCliInstructions.tsx | 1 - .../ProjectLayout/PauseFailedState.tsx | 5 ++-- .../PausedState/DownloadBackupsSection.tsx | 2 +- .../PausedState/ProjectPausedState.tsx | 2 +- .../layouts/ProjectLayout/PausingState.tsx | 2 +- .../ProjectLayout/RestoreFailedState.tsx | 5 ++-- .../layouts/ProjectLayout/RestoringState.tsx | 3 +-- .../layouts/ProjectLayout/UnhealthyState.tsx | 1 - .../ProjectLayout/UpgradingState/index.tsx | 2 +- .../layouts/SQLEditorLayout/SQLEditorMenu.tsx | 3 +-- .../TableEditorLayout/TableEditorMenu.tsx | 2 -- .../TableMenuFilterEmptyState.tsx | 2 +- .../studio/components/layouts/Tabs/NewTab.tsx | 6 +---- .../to-be-cleaned/ProductEmptyState.tsx | 2 +- .../AIAssistantMetadataWarning.tsx | 2 +- .../ui/AIAssistantPanel/AIOptInModal.tsx | 2 +- .../ui/AIAssistantPanel/AssistantChat.tsx | 15 ++---------- .../DeleteMessageConfirmModal.tsx | 4 +--- .../ui/AIAssistantPanel/MessageMarkdown.tsx | 4 +--- .../ui/AIAssistantPanel/ModelSelector.tsx | 1 - .../NotebookProposalRenderer.tsx | 4 ++-- .../SupportAssistantSuccessCardContent.tsx | 7 +----- .../elements/Conversation.tsx | 1 - .../ui/AdvisorPanel/AdvisorSignalDetail.tsx | 8 ++----- .../ui/AdvisorPanel/NotificationDetail.tsx | 10 ++------ apps/studio/components/ui/AlertError.tsx | 2 +- apps/studio/components/ui/AlphaNotice.tsx | 7 +----- .../components/ui/AutoEnableRLSNotice.tsx | 5 ++-- .../ui/BannerStack/Banners/BannerExplorer.tsx | 1 - .../Banners/BannerLogsAllDeprecation.tsx | 2 +- .../BannerStack/Banners/BannerSelect2026.tsx | 1 - .../BannerStack/Banners/BannerTOSUpdate.tsx | 10 ++------ .../BannerTableEditorQueueOperations.tsx | 2 +- .../components/ui/Charts/ChartHeader.tsx | 2 -- .../components/ui/Charts/ReportSettings.tsx | 1 - .../components/ui/ComputeBadgeWrapper.tsx | 1 - .../ui/DataGridResults/ResultCell.tsx | 1 - .../ui/DataTable/DataTableInfinite.tsx | 1 - .../ui/DataTable/DataTableResetButton.tsx | 2 +- .../ui/DataTable/DataTableViewOptions.tsx | 1 - .../components/ui/DataTable/FilterSideBar.tsx | 2 +- .../components/ui/DataTable/RefreshButton.tsx | 2 -- .../studio/components/ui/DatabaseSelector.tsx | 1 - .../studio/components/ui/DatePicker/index.tsx | 6 +---- apps/studio/components/ui/DateRangePicker.tsx | 2 +- .../components/ui/EditorPanel/EditorPanel.tsx | 10 +------- .../ui/EditorPanel/SaveSnippetDialog.tsx | 5 +--- .../ClientSideExceptionHandler.tsx | 2 +- .../ui/ErrorBoundary/ErrorBoundary.tsx | 4 ++-- .../InsertBeforeRemoveChildErrorHandler.tsx | 2 +- .../ui/FileExplorerAndEditor/index.tsx | 2 +- apps/studio/components/ui/FilterPopover.tsx | 1 - .../components/ui/Forms/FormActions.tsx | 2 +- apps/studio/components/ui/HighQueryCost.tsx | 10 +++----- apps/studio/components/ui/InformationBox.tsx | 2 +- .../ui/Logs/ChartIntervalDropdown.tsx | 2 +- .../components/ui/Logs/LogsExplorerHeader.tsx | 7 +----- apps/studio/components/ui/NoSearchResults.tsx | 6 +---- .../ui/OrganizationProjectSelector.tsx | 1 - apps/studio/components/ui/Panel.tsx | 2 +- .../components/ui/PartnerManagedResource.tsx | 2 +- .../ProjectSettings/ToggleLegacyApiKeys.tsx | 1 - .../ui/ProjectUpgradeFailedBanner.tsx | 2 +- .../components/ui/QueryBlock/QueryBlock.tsx | 2 +- .../ui/RequestUpgradeToBillingOwners.tsx | 2 +- .../ResourceExhaustionWarningBanner.tsx | 12 +++------- apps/studio/components/ui/SchemaSelector.tsx | 5 ++-- apps/studio/components/ui/SortDropdown.tsx | 5 +--- .../components/ui/SteppedFlow/SteppedFlow.tsx | 8 +------ .../studio/components/ui/UnknownInterface.tsx | 2 +- apps/studio/components/ui/org-selector.tsx | 3 +-- apps/studio/pages/account/tokens.tsx | 4 ++-- apps/studio/pages/cli/login.tsx | 4 ++-- .../[slug]/deploy-button/new-project.tsx | 2 +- apps/studio/pages/org/[slug]/index.tsx | 2 +- .../pages/partners/stripe/projects/login.tsx | 4 ++-- .../[ref]/auth/templates/[templateId].tsx | 6 ++--- .../pages/project/[ref]/compute/index.tsx | 1 - .../[ref]/database/column-privileges.tsx | 2 +- .../pages/project/[ref]/database/indexes.tsx | 2 +- .../pages/project/[ref]/functions/index.tsx | 9 ++----- .../pages/project/[ref]/functions/new.tsx | 8 +------ .../project/[ref]/logs/explorer/index.tsx | 2 +- .../project/[ref]/logs/explorer/recent.tsx | 2 +- .../project/[ref]/logs/explorer/templates.tsx | 1 - apps/studio/pages/project/[ref]/merge.tsx | 2 -- .../project/[ref]/observability/auth.tsx | 1 - .../project/[ref]/observability/database.tsx | 6 ++--- .../[ref]/observability/edge-functions.tsx | 1 - .../project/[ref]/observability/postgrest.tsx | 1 - .../project/[ref]/observability/realtime.tsx | 1 - .../project/[ref]/observability/storage.tsx | 1 - .../infrastructure/replica/[replicaId].tsx | 4 +--- apps/studio/pages/project/[ref]/sql/[id].tsx | 8 +------ apps/studio/state/storage-explorer.tsx | 7 +----- .../accenture-reinvention-2026/contest.tsx | 4 ++-- .../contest-thank-you.tsx | 2 +- .../ai-engineer-europe-2026/contest.tsx | 4 ++-- apps/www/_go/events/dash-2026/contest.tsx | 4 ++-- .../dash-2026/exec-dinner-thank-you.tsx | 2 +- .../mcp-dev-nyc-2026/contest-thank-you.tsx | 2 +- .../_go/events/mcp-dev-nyc-2026/contest.tsx | 4 ++-- .../pgconf-dev-2026/contest-thank-you.tsx | 2 +- .../_go/events/pgconf-dev-2026/contest.tsx | 4 ++-- .../contest-thank-you.tsx | 2 +- .../events/postgres-summit-2026/contest.tsx | 4 ++-- .../contest-thank-you.tsx | 2 +- .../events/postgresconf-sjc-2026/contest.tsx | 4 ++-- .../select-2026/partner-day-thank-you.tsx | 2 +- .../select-2026/vip-dinner-thank-you.tsx | 2 +- .../select-2026/vip-experience-thank-you.tsx | 2 +- .../_go/events/startup-grind-2026/contest.tsx | 2 +- .../exec-dinner-thank-you.tsx | 2 +- apps/www/_go/events/sxsw-2026/contest.tsx | 2 +- .../contest-thank-you.tsx | 2 +- .../vercel-ship-sydney-2026/contest.tsx | 2 +- apps/www/_go/thank-you/example-thank-you.tsx | 2 +- .../agency-webinar-mar2026-thankyou.tsx | 2 +- .../_go/webinar/bolt-webinar-thank-you.tsx | 2 +- .../figma-webinar-may2026-thankyou.tsx | 2 +- .../www/app/(home)/_components/CTASection.tsx | 2 +- .../(home)/_components/CommunitySectionV2.tsx | 2 +- apps/www/app/(home)/_components/Hero.tsx | 2 +- .../(home)/_components/OpenSourceSection.tsx | 1 - .../app/(products)/auth/_components/Hero.tsx | 2 +- .../auth/_components/HighlightsSection.tsx | 2 +- .../(products)/database/_components/Hero.tsx | 2 +- .../_components/HighlightsSection.tsx | 2 +- .../edge-functions/_components/CTASection.tsx | 2 +- .../edge-functions/_components/Hero.tsx | 2 +- .../(products)/realtime/_components/Hero.tsx | 2 +- .../_components/BucketTypesSection.tsx | 2 +- .../(products)/storage/_components/Hero.tsx | 2 +- .../partners/catalog/IntegrationsContent.tsx | 2 +- apps/www/app/pricing/PricingContent.tsx | 7 +----- .../StateOfStartups2026Content.tsx | 2 +- .../components/SurveyChart.tsx | 7 +----- apps/www/components/Blog/BlogFilters.tsx | 1 - .../components/BuiltWithSupabase/index.tsx | 3 +-- apps/www/components/CTABanner/index.tsx | 2 +- apps/www/components/CTASection.tsx | 2 +- .../Changelog/ChangelogLlmMarkdownButton.tsx | 2 -- .../www/components/Contribute/RepliesList.tsx | 7 +----- .../Contribute/UnansweredThreadsTable.tsx | 3 +-- .../www/components/Contribute/UserProfile.tsx | 8 +++---- apps/www/components/CustomerStories/index.tsx | 2 +- apps/www/components/Events/EventsFilters.tsx | 7 +----- .../components/Examples/ExamplesCarousel.tsx | 2 +- .../LaunchWeek/11/Releases/PrizeActions.tsx | 2 +- .../LaunchWeek/12/Releases/PrizeActions.tsx | 2 +- .../LaunchWeek/13/Releases/PrizeActions.tsx | 2 +- .../components/LaunchWeek/5/ScheduleInfo.tsx | 4 ++-- apps/www/components/Nav/MobileMenu.tsx | 2 +- apps/www/components/Nav/index.tsx | 2 +- apps/www/components/Pricing/PricingAddons.tsx | 7 +----- .../Pricing/PricingComputeSection.tsx | 2 +- .../components/Pricing/PricingDiskSection.tsx | 9 +++---- apps/www/components/Pricing/UpgradePlan.tsx | 1 - apps/www/components/Sections/APISection.tsx | 2 +- .../components/Sections/FeaturesSection.tsx | 2 +- .../components/Sections/FunctionsUsecases.tsx | 2 +- .../components/Sections/GithubExamples.tsx | 4 ++-- .../components/Sections/ParagraphSection.tsx | 2 +- .../www/components/Sections/ProductHeader.tsx | 2 +- .../Sections/ProductHeaderCentered.tsx | 4 ++-- .../Sections/ProductModulesHeader.tsx | 4 ++-- apps/www/components/Sections/ProductsCta2.tsx | 2 +- .../components/Sections/TimedTabsSection.tsx | 2 +- .../components/Sections/UseCasesSection.tsx | 4 ++-- apps/www/components/Solutions/CtaSection.tsx | 2 +- .../Solutions/TwoColumnsSection.tsx | 1 - .../Solutions/WhatItTakesSection.tsx | 7 +----- apps/www/components/Supasquad/CtaSection.tsx | 2 +- .../components/SurveyResults/SurveyChart.tsx | 8 +------ apps/www/data/home/content.tsx | 2 +- apps/www/data/solutions/beginners.tsx | 4 ++-- apps/www/pages/assistant.tsx | 3 +-- apps/www/pages/aws-reinvent-2025.tsx | 3 +-- apps/www/pages/brand-assets.tsx | 17 ++++++------- apps/www/pages/changelog.tsx | 2 -- apps/www/pages/customers/[slug].tsx | 2 +- apps/www/pages/features/[slug].tsx | 4 ++-- .../customer-resources/subprocessor-list.tsx | 2 +- apps/www/pages/state-of-startups-2025.tsx | 3 +-- packages/dev-tools/DevToolbar.tsx | 1 - packages/dev-tools/DevToolbarTrigger.tsx | 1 - .../ui-patterns/src/Banners/LW15Banner.tsx | 2 +- packages/ui-patterns/src/Chart/index.tsx | 1 - .../ui-patterns/src/CodeBlock/CodeBlock.tsx | 1 - .../prepackaged/DocsAi/DocsAiPage.tsx | 2 +- .../prepackaged/DocsSearch/DocsSearchPage.tsx | 4 ++-- .../ui-patterns/src/ConsentToast/index.tsx | 7 +----- .../src/Dialogs/ConfirmationModal.tsx | 1 - .../src/Dialogs/TextConfirmModal.tsx | 9 +------ .../components/ClientSelectDropdown.tsx | 1 - .../ui-patterns/src/PromoToast/PromoToast.tsx | 4 +--- packages/ui-patterns/src/Row/index.tsx | 2 -- .../src/SimpleCodeBlock/SimpleCodeBlock.tsx | 2 +- .../src/SkipToContent/SkipToContent.tsx | 2 +- packages/ui-patterns/src/form/FormLayout2.tsx | 2 +- .../KeyValueFieldArray/KeyValueFieldArray.tsx | 3 --- 727 files changed, 759 insertions(+), 1988 deletions(-) diff --git a/apps/design-system/components/component-preview.tsx b/apps/design-system/components/component-preview.tsx index 04a5fc30ee1..4e4913d29bc 100644 --- a/apps/design-system/components/component-preview.tsx +++ b/apps/design-system/components/component-preview.tsx @@ -125,7 +125,6 @@ export function ComponentPreview({ } + actions={} /> OAuth Server Settings} + actions={} /> ) } diff --git a/apps/design-system/registry/default/example/admonition-responsive.tsx b/apps/design-system/registry/default/example/admonition-responsive.tsx index 32d796acdb9..2e488553f54 100644 --- a/apps/design-system/registry/default/example/admonition-responsive.tsx +++ b/apps/design-system/registry/default/example/admonition-responsive.tsx @@ -8,7 +8,7 @@ export default function AdmonitionDemo() { layout="responsive" title="Disk management has moved" description="Disk management is now handled alongside Project Compute on the Compute and Disk page." - actions={} + actions={} /> ) } diff --git a/apps/design-system/registry/default/example/button-split-dropdown.tsx b/apps/design-system/registry/default/example/button-split-dropdown.tsx index 54a1c621c72..3bb12f03265 100644 --- a/apps/design-system/registry/default/example/button-split-dropdown.tsx +++ b/apps/design-system/registry/default/example/button-split-dropdown.tsx @@ -13,7 +13,6 @@ export default function ButtonSplitDropdownDemo() {
+ } className="px-2" aria-label="Sign out" /> + return
- + @@ -40,9 +38,7 @@ export default function CopyConfirmations() {
- + diff --git a/apps/design-system/registry/default/example/data-table-demo.tsx b/apps/design-system/registry/default/example/data-table-demo.tsx index a2eaa1b817d..5a63833a529 100644 --- a/apps/design-system/registry/default/example/data-table-demo.tsx +++ b/apps/design-system/registry/default/example/data-table-demo.tsx @@ -139,7 +139,7 @@ export const columns: ColumnDef[] = [ return ( - @@ -303,19 +303,13 @@ export default function DataTableDemo() {
-
diff --git a/apps/design-system/registry/default/example/dialog-centered-off.tsx b/apps/design-system/registry/default/example/dialog-centered-off.tsx index efaa47eea70..791841651a8 100644 --- a/apps/design-system/registry/default/example/dialog-centered-off.tsx +++ b/apps/design-system/registry/default/example/dialog-centered-off.tsx @@ -17,7 +17,7 @@ export default function DialogDemo() { return ( - + diff --git a/apps/design-system/registry/default/example/dialog-close-button.tsx b/apps/design-system/registry/default/example/dialog-close-button.tsx index da8b2ab7e78..b61cdafab48 100644 --- a/apps/design-system/registry/default/example/dialog-close-button.tsx +++ b/apps/design-system/registry/default/example/dialog-close-button.tsx @@ -19,7 +19,7 @@ export default function DialogCloseButton() { return ( - + @@ -43,9 +43,7 @@ export default function DialogCloseButton() { - + diff --git a/apps/design-system/registry/default/example/dialog-demo.tsx b/apps/design-system/registry/default/example/dialog-demo.tsx index 9a06b6661fb..eddf38c08b7 100644 --- a/apps/design-system/registry/default/example/dialog-demo.tsx +++ b/apps/design-system/registry/default/example/dialog-demo.tsx @@ -17,7 +17,7 @@ export default function DialogDemo() { return ( - + diff --git a/apps/design-system/registry/default/example/drawer-demo.tsx b/apps/design-system/registry/default/example/drawer-demo.tsx index 86cb0d8696b..f68c58951d4 100644 --- a/apps/design-system/registry/default/example/drawer-demo.tsx +++ b/apps/design-system/registry/default/example/drawer-demo.tsx @@ -67,9 +67,7 @@ export default function DrawerDemo() { return ( - +
diff --git a/apps/design-system/registry/default/example/empty-state-missing-route.tsx b/apps/design-system/registry/default/example/empty-state-missing-route.tsx index 179294876f9..78e030c09b0 100644 --- a/apps/design-system/registry/default/example/empty-state-missing-route.tsx +++ b/apps/design-system/registry/default/example/empty-state-missing-route.tsx @@ -13,7 +13,7 @@ export default function EmptyStateMissingRoute() { title="Unable to find bucket" description={`${bucketId ? `The bucket “${bucketId}”` : 'This bucket'} doesn’t seem to exist.`} > - diff --git a/apps/design-system/registry/default/example/field-demo.tsx b/apps/design-system/registry/default/example/field-demo.tsx index b14770153c8..37aefcd23db 100644 --- a/apps/design-system/registry/default/example/field-demo.tsx +++ b/apps/design-system/registry/default/example/field-demo.tsx @@ -116,9 +116,7 @@ export default function FieldDemo() { - + diff --git a/apps/design-system/registry/default/example/field-responsive.tsx b/apps/design-system/registry/default/example/field-responsive.tsx index 82eee0cb3b2..4b4b3c2a439 100644 --- a/apps/design-system/registry/default/example/field-responsive.tsx +++ b/apps/design-system/registry/default/example/field-responsive.tsx @@ -48,9 +48,7 @@ export default function FieldResponsive() { - + diff --git a/apps/design-system/registry/default/example/filter-bar-demo.tsx b/apps/design-system/registry/default/example/filter-bar-demo.tsx index 4bc48b1bfec..456f71a7945 100644 --- a/apps/design-system/registry/default/example/filter-bar-demo.tsx +++ b/apps/design-system/registry/default/example/filter-bar-demo.tsx @@ -25,9 +25,7 @@ function CustomDatePicker({ onChange, onCancel, search }: CustomOptionProps) { className="w-full" />
- +
{logoUrl && ( - +
- {form.formState.isDirty && ( - - )} + {form.formState.isDirty && } diff --git a/apps/design-system/registry/default/example/form-patterns-sidepanel.tsx b/apps/design-system/registry/default/example/form-patterns-sidepanel.tsx index 090dce8da98..bcdd5452b22 100644 --- a/apps/design-system/registry/default/example/form-patterns-sidepanel.tsx +++ b/apps/design-system/registry/default/example/form-patterns-sidepanel.tsx @@ -338,7 +338,6 @@ export default function FormPatternsSidePanel() { {logoUrl && ( - +
@@ -788,7 +783,6 @@ export default function FormPatternsSidePanel() { - } + actions={} /> @@ -61,11 +57,7 @@ export default function InnerSideMenuEmpty() { /> } - actions={ - - } + actions={} /> diff --git a/apps/design-system/registry/default/example/keyboard-shortcut-demo.tsx b/apps/design-system/registry/default/example/keyboard-shortcut-demo.tsx index 022667bee56..27b6763968d 100644 --- a/apps/design-system/registry/default/example/keyboard-shortcut-demo.tsx +++ b/apps/design-system/registry/default/example/keyboard-shortcut-demo.tsx @@ -11,10 +11,7 @@ export default function KeyboardShortcutDemo() {
-
diff --git a/apps/design-system/registry/default/example/keyboard-shortcut-inline.tsx b/apps/design-system/registry/default/example/keyboard-shortcut-inline.tsx index 22713eafc1e..e105df21cda 100644 --- a/apps/design-system/registry/default/example/keyboard-shortcut-inline.tsx +++ b/apps/design-system/registry/default/example/keyboard-shortcut-inline.tsx @@ -5,10 +5,7 @@ export default function KeyboardShortcutInline() {
-
diff --git a/apps/design-system/registry/default/example/multi-select-badge-limit.tsx b/apps/design-system/registry/default/example/multi-select-badge-limit.tsx index 9ae4e0d6070..41110e14a05 100644 --- a/apps/design-system/registry/default/example/multi-select-badge-limit.tsx +++ b/apps/design-system/registry/default/example/multi-select-badge-limit.tsx @@ -16,18 +16,13 @@ export default function MultiSelectDemo() { return (
- Limit: {limit} -
diff --git a/apps/design-system/registry/default/example/page-header-demo.tsx b/apps/design-system/registry/default/example/page-header-demo.tsx index 87fc94bcbb8..ccbd20a1d51 100644 --- a/apps/design-system/registry/default/example/page-header-demo.tsx +++ b/apps/design-system/registry/default/example/page-header-demo.tsx @@ -27,9 +27,7 @@ export default function PageHeaderDemo() { - + diff --git a/apps/design-system/registry/default/example/page-layout-auth-emails.tsx b/apps/design-system/registry/default/example/page-layout-auth-emails.tsx index 85109da874d..80edcdca5ba 100644 --- a/apps/design-system/registry/default/example/page-layout-auth-emails.tsx +++ b/apps/design-system/registry/default/example/page-layout-auth-emails.tsx @@ -197,7 +197,7 @@ function TemplatesPage({ onNavigateToSmtp }: { onNavigateToSmtp: () => void }) { layout="horizontal" className="mb-4" actions={ - } @@ -283,9 +283,7 @@ function TemplatesPage({ onNavigateToSmtp }: { onNavigateToSmtp: () => void }) { })} {notificationsForm.formState.isDirty && ( - + )} - )} + {form.formState.isDirty && } diff --git a/apps/design-system/registry/default/example/page-layout-detail.tsx b/apps/design-system/registry/default/example/page-layout-detail.tsx index da13e6047dc..3042126a162 100644 --- a/apps/design-system/registry/default/example/page-layout-detail.tsx +++ b/apps/design-system/registry/default/example/page-layout-detail.tsx @@ -82,9 +82,7 @@ export default function PageLayoutDetail() {

March 15, 2024

- +
@@ -114,9 +112,7 @@ export default function PageLayoutDetail() {

$234.50

- +
@@ -146,9 +142,7 @@ export default function PageLayoutDetail() {

12/2025

- +
diff --git a/apps/design-system/registry/default/example/page-layout-edge-function.tsx b/apps/design-system/registry/default/example/page-layout-edge-function.tsx index a3b250d71e0..8531092c35e 100644 --- a/apps/design-system/registry/default/example/page-layout-edge-function.tsx +++ b/apps/design-system/registry/default/example/page-layout-edge-function.tsx @@ -234,9 +234,7 @@ export default function PageLayoutEdgeFunction() { - + @@ -426,7 +424,7 @@ function OverviewPage() { Errors since last deploy - @@ -704,7 +702,7 @@ function CodePage() {

Files

- diff --git a/apps/design-system/registry/default/example/page-layout-full-width.tsx b/apps/design-system/registry/default/example/page-layout-full-width.tsx index bc917a05cea..5ef64401c62 100644 --- a/apps/design-system/registry/default/example/page-layout-full-width.tsx +++ b/apps/design-system/registry/default/example/page-layout-full-width.tsx @@ -20,9 +20,7 @@ export default function PageLayoutFullWidth() { - + } > diff --git a/apps/design-system/registry/default/example/page-layout-logs-content.tsx b/apps/design-system/registry/default/example/page-layout-logs-content.tsx index 8879095879c..d842f6ef8fe 100644 --- a/apps/design-system/registry/default/example/page-layout-logs-content.tsx +++ b/apps/design-system/registry/default/example/page-layout-logs-content.tsx @@ -118,12 +118,8 @@ export function PageLayoutLogsContent() { />
- - + +
diff --git a/apps/design-system/registry/default/example/page-layout-settings.tsx b/apps/design-system/registry/default/example/page-layout-settings.tsx index 85fb5a8d518..fe44d53ea7c 100644 --- a/apps/design-system/registry/default/example/page-layout-settings.tsx +++ b/apps/design-system/registry/default/example/page-layout-settings.tsx @@ -161,9 +161,7 @@ export default function PageLayoutSettings() { {refreshTokenForm.formState.isDirty && ( - + )} + )} + diff --git a/apps/design-system/registry/default/example/page-section-with-aside.tsx b/apps/design-system/registry/default/example/page-section-with-aside.tsx index bd6ae3f60e7..e0d91236bb4 100644 --- a/apps/design-system/registry/default/example/page-section-with-aside.tsx +++ b/apps/design-system/registry/default/example/page-section-with-aside.tsx @@ -21,9 +21,7 @@ export default function PageSectionWithAside() { - + diff --git a/apps/design-system/registry/default/example/sheet-confirm-on-close-demo.tsx b/apps/design-system/registry/default/example/sheet-confirm-on-close-demo.tsx index 02992722d69..63d5a00a564 100644 --- a/apps/design-system/registry/default/example/sheet-confirm-on-close-demo.tsx +++ b/apps/design-system/registry/default/example/sheet-confirm-on-close-demo.tsx @@ -168,9 +168,7 @@ export default function SheetConfirmOnCloseDemo() { return ( <> - + @@ -210,9 +208,7 @@ export default function SheetConfirmOnCloseDemo() { - + diff --git a/apps/design-system/registry/default/example/sonner-demo.tsx b/apps/design-system/registry/default/example/sonner-demo.tsx index 60df9fe7902..80fb5316663 100644 --- a/apps/design-system/registry/default/example/sonner-demo.tsx +++ b/apps/design-system/registry/default/example/sonner-demo.tsx @@ -4,7 +4,6 @@ import { Button } from 'ui' export default function SonnerDemo() { return ( + - - + - + + ) } diff --git a/apps/design-system/registry/default/example/sonner-upload.tsx b/apps/design-system/registry/default/example/sonner-upload.tsx index 6ccffee9a3b..8999fb811d2 100644 --- a/apps/design-system/registry/default/example/sonner-upload.tsx +++ b/apps/design-system/registry/default/example/sonner-upload.tsx @@ -60,7 +60,6 @@ export default function SonnerUpload() { return (
) : ( <> - - - + + - +
diff --git a/apps/studio/components/grid/components/editor/DateTimeEditor.tsx b/apps/studio/components/grid/components/editor/DateTimeEditor.tsx index ba286d13537..db04d1bda00 100644 --- a/apps/studio/components/grid/components/editor/DateTimeEditor.tsx +++ b/apps/studio/components/grid/components/editor/DateTimeEditor.tsx @@ -144,11 +144,7 @@ function BaseEditor({
{isNullable ? ( <> - @@ -157,7 +153,6 @@ function BaseEditor({ + )}
diff --git a/apps/studio/components/grid/components/editor/TextEditor.tsx b/apps/studio/components/grid/components/editor/TextEditor.tsx index c96c96dcf64..e89d59de7c2 100644 --- a/apps/studio/components/grid/components/editor/TextEditor.tsx +++ b/apps/studio/components/grid/components/editor/TextEditor.tsx @@ -178,7 +178,6 @@ export const TextEditor = ({ diff --git a/apps/studio/components/grid/components/formatter/ForeignKeyFormatter.tsx b/apps/studio/components/grid/components/formatter/ForeignKeyFormatter.tsx index 11c1c61a308..13fc85c673e 100644 --- a/apps/studio/components/grid/components/formatter/ForeignKeyFormatter.tsx +++ b/apps/studio/components/grid/components/formatter/ForeignKeyFormatter.tsx @@ -84,7 +84,6 @@ export const ForeignKeyFormatter = (props: Props) => { } diff --git a/apps/studio/components/grid/components/formatter/ReferenceRecordPeek.tsx b/apps/studio/components/grid/components/formatter/ReferenceRecordPeek.tsx index f72d3ce51b5..4d0d9674416 100644 --- a/apps/studio/components/grid/components/formatter/ReferenceRecordPeek.tsx +++ b/apps/studio/components/grid/components/formatter/ReferenceRecordPeek.tsx @@ -164,7 +164,7 @@ export const ReferenceRecordPeek = ({ table, column, value }: ReferenceRecordPee id={String(table.id)} filters={[{ column, operator: '=', value: String(value) }]} > - + diff --git a/apps/studio/components/grid/components/grid/Grid.tsx b/apps/studio/components/grid/components/grid/Grid.tsx index 37253f80afd..a5118a712b7 100644 --- a/apps/studio/components/grid/components/grid/Grid.tsx +++ b/apps/studio/components/grid/components/grid/Grid.tsx @@ -300,11 +300,7 @@ export const Grid = memo(

This page does not have any data

-
@@ -327,7 +323,6 @@ export const Grid = memo( ) : canImportData ? (
diff --git a/apps/studio/components/grid/components/grid/GridError.tsx b/apps/studio/components/grid/components/grid/GridError.tsx index 3af62b209bb..44612826a8f 100644 --- a/apps/studio/components/grid/components/grid/GridError.tsx +++ b/apps/studio/components/grid/components/grid/GridError.tsx @@ -134,9 +134,7 @@ const FilterError = ({ removeAllFilters }: { removeAllFilters: () => void }) => One or more of your filters may have a value or operator that doesn't match the column's data type. Try updating or removing the filter.

- + ) } @@ -167,9 +165,7 @@ const InvalidOrderingOperatorError = ({ error }: { error: ResponseError }) => { Error: {error.message}

- + ) } diff --git a/apps/studio/components/grid/components/header/ExportDialog.tsx b/apps/studio/components/grid/components/header/ExportDialog.tsx index 3f881e5fa2d..c4bdb275962 100644 --- a/apps/studio/components/grid/components/header/ExportDialog.tsx +++ b/apps/studio/components/grid/components/header/ExportDialog.tsx @@ -148,9 +148,7 @@ pg_dump -h ${db_host} -p ${db_port} -d ${db_name} -U ${db_user} --table="${table )} - +
diff --git a/apps/studio/components/grid/components/header/Header.tsx b/apps/studio/components/grid/components/header/Header.tsx index 88e4e0ff15b..d927ec09ce7 100644 --- a/apps/studio/components/grid/components/header/Header.tsx +++ b/apps/studio/components/grid/components/header/Header.tsx @@ -351,12 +351,7 @@ const RowHeader = ({ rows: visibleRows, tableQueriesEnabled = true }: RowHeaderP {!snap.allRowsSelected ? ( - @@ -369,7 +364,6 @@ const RowHeader = ({ rows: visibleRows, tableQueriesEnabled = true }: RowHeaderP ) : ( - diff --git a/apps/studio/components/grid/components/header/filter/FilterPopoverNew.tsx b/apps/studio/components/grid/components/header/filter/FilterPopoverNew.tsx index dc8a5e96c39..ac9a2f1f244 100644 --- a/apps/studio/components/grid/components/header/filter/FilterPopoverNew.tsx +++ b/apps/studio/components/grid/components/header/filter/FilterPopoverNew.tsx @@ -77,9 +77,7 @@ function DatePickerOption({ onChange, onCancel, search }: CustomOptionProps) { className="w-full" />
- + diff --git a/apps/studio/components/grid/components/header/filter/FilterPopoverPrimitive.tsx b/apps/studio/components/grid/components/header/filter/FilterPopoverPrimitive.tsx index d0b5f646f43..bcea5f7c105 100644 --- a/apps/studio/components/grid/components/header/filter/FilterPopoverPrimitive.tsx +++ b/apps/studio/components/grid/components/header/filter/FilterPopoverPrimitive.tsx @@ -115,7 +115,6 @@ export const FilterPopoverPrimitive = ({ diff --git a/apps/studio/components/interfaces/APIKeys/CreateSecretAPIKeyDialog.tsx b/apps/studio/components/interfaces/APIKeys/CreateSecretAPIKeyDialog.tsx index 6c2d48a1a45..57a57d64f8f 100644 --- a/apps/studio/components/interfaces/APIKeys/CreateSecretAPIKeyDialog.tsx +++ b/apps/studio/components/interfaces/APIKeys/CreateSecretAPIKeyDialog.tsx @@ -92,7 +92,7 @@ export const CreateSecretAPIKeyDialog = () => { side="bottom" tooltipOpen={visible === 'secret' ? false : undefined} > - diff --git a/apps/studio/components/interfaces/Account/AccessTokens/AccessTokenList.tsx b/apps/studio/components/interfaces/Account/AccessTokens/AccessTokenList.tsx index b95ba903350..5e0e91c9a4e 100644 --- a/apps/studio/components/interfaces/Account/AccessTokens/AccessTokenList.tsx +++ b/apps/studio/components/interfaces/Account/AccessTokens/AccessTokenList.tsx @@ -150,12 +150,7 @@ export const AccessTokenList = ({
- )} - + {step === 'form' && isClassicMode && (
+ ) diff --git a/apps/studio/components/interfaces/Account/Preferences/AccountConnections.tsx b/apps/studio/components/interfaces/Account/Preferences/AccountConnections.tsx index 8d4a578b9a4..5e4ab17529a 100644 --- a/apps/studio/components/interfaces/Account/Preferences/AccountConnections.tsx +++ b/apps/studio/components/interfaces/Account/Preferences/AccountConnections.tsx @@ -111,7 +111,7 @@ export const AccountConnections = () => { {isConnected ? ( - diff --git a/apps/studio/components/interfaces/Account/Preferences/AccountIdentities.tsx b/apps/studio/components/interfaces/Account/Preferences/AccountIdentities.tsx index 9e74deca4fd..10ea57dd5c7 100644 --- a/apps/studio/components/interfaces/Account/Preferences/AccountIdentities.tsx +++ b/apps/studio/components/interfaces/Account/Preferences/AccountIdentities.tsx @@ -182,7 +182,7 @@ export const AccountIdentities = () => {
{provider === 'email' && ( - )} @@ -225,7 +225,6 @@ export const AccountIdentities = () => {
+ @@ -121,7 +119,6 @@ const AddPasswordForm = ({ email, onClose }: { email: string; onClose: () => voi - )} + {form.formState.isDirty && } } @@ -90,11 +90,7 @@ export const TOTPFactors = () => { Added on {dayjs(factor.created_at).format(DATETIME_FORMAT)}

- diff --git a/apps/studio/components/interfaces/Advisors/AdvisorRuleItem.tsx b/apps/studio/components/interfaces/Advisors/AdvisorRuleItem.tsx index 06341d945d4..65da814b118 100644 --- a/apps/studio/components/interfaces/Advisors/AdvisorRuleItem.tsx +++ b/apps/studio/components/interfaces/Advisors/AdvisorRuleItem.tsx @@ -123,7 +123,6 @@ export const AdvisorRuleItem = ({ lint }: AdvisorRuleItemProps) => {
+ @@ -77,7 +77,7 @@ export const DisableRuleModal = ({ lint }: DisableRuleModalProps) => {

- + @@ -56,7 +56,7 @@ export const EnableRuleModal = ({ lint, rule }: EnableRuleModalProps) => {

-
diff --git a/apps/studio/components/interfaces/ApiAuthorization/ApiAuthorization.Form.tsx b/apps/studio/components/interfaces/ApiAuthorization/ApiAuthorization.Form.tsx index faa3b358aaa..83bb084ac5b 100644 --- a/apps/studio/components/interfaces/ApiAuthorization/ApiAuthorization.Form.tsx +++ b/apps/studio/components/interfaces/ApiAuthorization/ApiAuthorization.Form.tsx @@ -219,7 +219,7 @@ function OrganizationsEmptyState({ authId }: OrganizationsEmptyStateProps): Reac title="No organizations found" description="Create an organization before authorizing this request." actions={[ - , ]} diff --git a/apps/studio/components/interfaces/ApiAuthorization/ApiAuthorization.Invalid.tsx b/apps/studio/components/interfaces/ApiAuthorization/ApiAuthorization.Invalid.tsx index 5759641e559..802f57d1f97 100644 --- a/apps/studio/components/interfaces/ApiAuthorization/ApiAuthorization.Invalid.tsx +++ b/apps/studio/components/interfaces/ApiAuthorization/ApiAuthorization.Invalid.tsx @@ -28,7 +28,7 @@ export function ApiAuthorizationInvalidScreen({ isPlural ? 's' : '' }: ${missingParameters.join(', ')}.`} /> - diff --git a/apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewModal.tsx b/apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewModal.tsx index 21ed56045ee..f28d68d1a8b 100644 --- a/apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewModal.tsx +++ b/apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewModal.tsx @@ -217,7 +217,7 @@ export const FeaturePreviewModal = () => {

{selectedFeature?.name}

{selectedFeature?.discussionsUrl !== undefined && ( - + {hasRoute @@ -275,7 +272,7 @@ export const FeaturePreviewModal = () => { Have an idea for the dashboard? Let us know via GitHub Discussions!

- - )} + {isDirty && } diff --git a/apps/studio/components/interfaces/Auth/AuthProvidersForm/FormField.tsx b/apps/studio/components/interfaces/Auth/AuthProvidersForm/FormField.tsx index 8f480f2d05d..21068fbb666 100644 --- a/apps/studio/components/interfaces/Auth/AuthProvidersForm/FormField.tsx +++ b/apps/studio/components/interfaces/Auth/AuthProvidersForm/FormField.tsx @@ -291,7 +291,7 @@ const FormField = ({ {description ? : null} {properties.link && ( - - )} + {isDirty && } + diff --git a/apps/studio/components/interfaces/Auth/CustomAuthProviders/CustomAuthProvidersList.tsx b/apps/studio/components/interfaces/Auth/CustomAuthProviders/CustomAuthProvidersList.tsx index ade0cd694ac..b0c99c06408 100644 --- a/apps/studio/components/interfaces/Auth/CustomAuthProviders/CustomAuthProvidersList.tsx +++ b/apps/studio/components/interfaces/Auth/CustomAuthProviders/CustomAuthProvidersList.tsx @@ -340,13 +340,7 @@ export const CustomAuthProvidersList = () => { onSaveFilters={setFilteredEnabledStatuses} /> {hasActiveFilters && ( - } @@ -276,9 +276,7 @@ export const EmailTemplates = () => { )} {notificationsForm.formState.isDirty && ( - + )} diff --git a/apps/studio/components/interfaces/Auth/EmailTemplates/SendEmailHookActiveAdmonition.tsx b/apps/studio/components/interfaces/Auth/EmailTemplates/SendEmailHookActiveAdmonition.tsx index 4f733d0fe59..a111f17c07f 100644 --- a/apps/studio/components/interfaces/Auth/EmailTemplates/SendEmailHookActiveAdmonition.tsx +++ b/apps/studio/components/interfaces/Auth/EmailTemplates/SendEmailHookActiveAdmonition.tsx @@ -29,7 +29,7 @@ export const SendEmailHookActiveAdmonition = () => { } actions={ - } diff --git a/apps/studio/components/interfaces/Auth/EmailTemplates/TemplateEditor.tsx b/apps/studio/components/interfaces/Auth/EmailTemplates/TemplateEditor.tsx index a8a2da6979f..ab117cd05ba 100644 --- a/apps/studio/components/interfaces/Auth/EmailTemplates/TemplateEditor.tsx +++ b/apps/studio/components/interfaces/Auth/EmailTemplates/TemplateEditor.tsx @@ -451,7 +451,6 @@ export const TemplateEditor = ({ template, isReadOnly = false }: TemplateEditorP
{hasChanges && (
)} - + )} + )} + )} } @@ -287,13 +287,7 @@ export const OAuthAppsList = () => { onSaveFilters={setFilteredClientTypes} /> {hasActiveFilters && ( - + )} + )} + @@ -293,11 +293,7 @@ export const ProtectionAuthSettingsForm = () => { - {isDirty && ( - - )} + {isDirty && } - + )} + )} + { {userSessionsForm.formState.isDirty && ( - + )} + )} + )} - )} + {isDirty && } + diff --git a/apps/studio/components/interfaces/Auth/Users/UserLogs.tsx b/apps/studio/components/interfaces/Auth/Users/UserLogs.tsx index 574f355de8e..fcfeba45cd8 100644 --- a/apps/studio/components/interfaces/Auth/Users/UserLogs.tsx +++ b/apps/studio/components/interfaces/Auth/Users/UserLogs.tsx @@ -63,7 +63,7 @@ export const UserLogs = ({ user }: UserLogsProps) => {

- @@ -584,11 +583,10 @@ export const UsersV2 = () => {
{selectedUsers.size > 0 ? (
- } className="px-1.5" onClick={() => setSelectedUsers(new Set([]))} @@ -757,7 +755,6 @@ export const UsersV2 = () => { } - variant="default" className="w-7" loading={isRefetching && !isFetchingNextPage} onClick={handleRefresh} diff --git a/apps/studio/components/interfaces/Billing/Payment/AddPaymentMethodForm.tsx b/apps/studio/components/interfaces/Billing/Payment/AddPaymentMethodForm.tsx index f859194cca2..d992bdb5868 100644 --- a/apps/studio/components/interfaces/Billing/Payment/AddPaymentMethodForm.tsx +++ b/apps/studio/components/interfaces/Billing/Payment/AddPaymentMethodForm.tsx @@ -235,14 +235,7 @@ const AddPaymentMethodForm = ({ onCancel, onConfirm }: AddPaymentMethodFormProps
- ) : ( -
- diff --git a/apps/studio/components/interfaces/BranchManagement/CreateBranchModal.tsx b/apps/studio/components/interfaces/BranchManagement/CreateBranchModal.tsx index d282a1e5eeb..8c437d60bef 100644 --- a/apps/studio/components/interfaces/BranchManagement/CreateBranchModal.tsx +++ b/apps/studio/components/interfaces/BranchManagement/CreateBranchModal.tsx @@ -611,11 +611,7 @@ export const CreateBranchModal = () => { - diff --git a/apps/studio/components/interfaces/Compute/ComputeInstanceDetail/ComputeInstanceLogsTab.tsx b/apps/studio/components/interfaces/Compute/ComputeInstanceDetail/ComputeInstanceLogsTab.tsx index 6698f9a2a87..1e97ee1b8c0 100644 --- a/apps/studio/components/interfaces/Compute/ComputeInstanceDetail/ComputeInstanceLogsTab.tsx +++ b/apps/studio/components/interfaces/Compute/ComputeInstanceDetail/ComputeInstanceLogsTab.tsx @@ -89,12 +89,7 @@ export const ComputeInstanceLogsTab = ({ instanceName, stream }: ComputeInstance - diff --git a/apps/studio/components/interfaces/Compute/ComputeList.tsx b/apps/studio/components/interfaces/Compute/ComputeList.tsx index a6b9b2f86c3..a30978575ac 100644 --- a/apps/studio/components/interfaces/Compute/ComputeList.tsx +++ b/apps/studio/components/interfaces/Compute/ComputeList.tsx @@ -136,7 +136,7 @@ export const ComputeList = ({
- +
diff --git a/apps/studio/components/interfaces/ConfigDrift/ConfigurationDriftPage.tsx b/apps/studio/components/interfaces/ConfigDrift/ConfigurationDriftPage.tsx index 435a18cdfb5..88d111ef4a0 100644 --- a/apps/studio/components/interfaces/ConfigDrift/ConfigurationDriftPage.tsx +++ b/apps/studio/components/interfaces/ConfigDrift/ConfigurationDriftPage.tsx @@ -148,7 +148,6 @@ function ConfigurationDriftItem({ row }: { row: ConfigurationDriftRow }) { } diff --git a/apps/studio/components/interfaces/ConnectSheet/ConnectStepsSection.tsx b/apps/studio/components/interfaces/ConnectSheet/ConnectStepsSection.tsx index 3ebdce75e04..c1dfb5acc5f 100644 --- a/apps/studio/components/interfaces/ConnectSheet/ConnectStepsSection.tsx +++ b/apps/studio/components/interfaces/ConnectSheet/ConnectStepsSection.tsx @@ -274,7 +274,7 @@ export function ConnectStepsSection({ steps, state, projectKeys }: ConnectStepsS title="Database access requires the Data API" description="Client library database queries will not work until the Data API is enabled." actions={[ - , ]} @@ -295,7 +295,7 @@ export function ConnectStepsSection({ steps, state, projectKeys }: ConnectStepsS } actions={ - } diff --git a/apps/studio/components/interfaces/ConnectSheet/CopyPromptAdmonition.tsx b/apps/studio/components/interfaces/ConnectSheet/CopyPromptAdmonition.tsx index 4a522e3b6f1..e29ea2f0c23 100644 --- a/apps/studio/components/interfaces/ConnectSheet/CopyPromptAdmonition.tsx +++ b/apps/studio/components/interfaces/ConnectSheet/CopyPromptAdmonition.tsx @@ -136,7 +136,6 @@ export function CopyPromptButton({ stepsContainerRef, customPrompt }: CopyPrompt return ( : } onClick={() => { const textToCopy = customPrompt ?? buildConnectPrompt(stepsContainerRef.current) diff --git a/apps/studio/components/interfaces/ConnectSheet/WarehouseModePanel/WarehouseConnectionDetails.tsx b/apps/studio/components/interfaces/ConnectSheet/WarehouseModePanel/WarehouseConnectionDetails.tsx index b17e2ecddb3..3c5e756ff88 100644 --- a/apps/studio/components/interfaces/ConnectSheet/WarehouseModePanel/WarehouseConnectionDetails.tsx +++ b/apps/studio/components/interfaces/ConnectSheet/WarehouseModePanel/WarehouseConnectionDetails.tsx @@ -143,13 +143,7 @@ export const WarehouseConnectionDetails = ({ onEditTables }: WarehouseConnection Same password as your primary database. - @@ -193,7 +187,6 @@ export const WarehouseConnectionDetails = ({ onEditTables }: WarehouseConnection Enable catalog access to attach this project's Warehouse directly from DuckDB.

) : undefined diff --git a/apps/studio/components/interfaces/ConnectSheet/WarehouseModePanel/WarehouseSchemaTablePicker.tsx b/apps/studio/components/interfaces/ConnectSheet/WarehouseModePanel/WarehouseSchemaTablePicker.tsx index 38bbafab68d..1b0fc5d2fb5 100644 --- a/apps/studio/components/interfaces/ConnectSheet/WarehouseModePanel/WarehouseSchemaTablePicker.tsx +++ b/apps/studio/components/interfaces/ConnectSheet/WarehouseModePanel/WarehouseSchemaTablePicker.tsx @@ -244,7 +244,7 @@ export const WarehouseSchemaTablePicker = ({
{isEditing && ( - )} diff --git a/apps/studio/components/interfaces/ConnectSheet/content/server/common/SecretRow.tsx b/apps/studio/components/interfaces/ConnectSheet/content/server/common/SecretRow.tsx index 62101a6f9a7..a2f36cf34cb 100644 --- a/apps/studio/components/interfaces/ConnectSheet/content/server/common/SecretRow.tsx +++ b/apps/studio/components/interfaces/ConnectSheet/content/server/common/SecretRow.tsx @@ -39,7 +39,6 @@ export function SecretEnvRow({ secret }: SecretEnvRowProps) {
diff --git a/apps/studio/components/interfaces/Database/EnumeratedTypes/CreateEnumeratedTypeSidePanel.tsx b/apps/studio/components/interfaces/Database/EnumeratedTypes/CreateEnumeratedTypeSidePanel.tsx index 12dfd152aad..c68bdb20ef1 100644 --- a/apps/studio/components/interfaces/Database/EnumeratedTypes/CreateEnumeratedTypeSidePanel.tsx +++ b/apps/studio/components/interfaces/Database/EnumeratedTypes/CreateEnumeratedTypeSidePanel.tsx @@ -191,12 +191,7 @@ const CreateEnumeratedTypeSidePanel = ({ You will need to delete and recreate the enumerated type with the updated values instead.

- - diff --git a/apps/studio/components/interfaces/Database/EnumeratedTypes/EditEnumeratedTypeSidePanel.tsx b/apps/studio/components/interfaces/Database/EnumeratedTypes/EditEnumeratedTypeSidePanel.tsx index a77c22ddb72..dfb3f2a0843 100644 --- a/apps/studio/components/interfaces/Database/EnumeratedTypes/EditEnumeratedTypeSidePanel.tsx +++ b/apps/studio/components/interfaces/Database/EnumeratedTypes/EditEnumeratedTypeSidePanel.tsx @@ -226,12 +226,7 @@ const EditEnumeratedTypeSidePanel = ({ You will need to delete and recreate the enumerated type with the updated values instead.

- - diff --git a/apps/studio/components/interfaces/Database/EnumeratedTypes/EnumeratedTypeValueRow.tsx b/apps/studio/components/interfaces/Database/EnumeratedTypes/EnumeratedTypeValueRow.tsx index ab4f843df76..f4a5dbdead1 100644 --- a/apps/studio/components/interfaces/Database/EnumeratedTypes/EnumeratedTypeValueRow.tsx +++ b/apps/studio/components/interfaces/Database/EnumeratedTypes/EnumeratedTypeValueRow.tsx @@ -72,7 +72,6 @@ const EnumeratedTypeValueRow = ({
)} {docsUrl !== undefined && ( - {!isSchemaLocked && ( diff --git a/apps/studio/components/interfaces/Database/Migrations/Migrations.tsx b/apps/studio/components/interfaces/Database/Migrations/Migrations.tsx index 7c29d537f9d..528ea2b7484 100644 --- a/apps/studio/components/interfaces/Database/Migrations/Migrations.tsx +++ b/apps/studio/components/interfaces/Database/Migrations/Migrations.tsx @@ -91,7 +91,7 @@ export const Migrations = () => { } > - @@ -212,9 +209,7 @@ export const Migrations = () => { onCancel={() => setSelectedMigration(undefined)} customFooter={
- +
} > diff --git a/apps/studio/components/interfaces/Database/Policies/Policies.tsx b/apps/studio/components/interfaces/Database/Policies/Policies.tsx index e260bd4382e..d948d4254d5 100644 --- a/apps/studio/components/interfaces/Database/Policies/Policies.tsx +++ b/apps/studio/components/interfaces/Database/Policies/Policies.tsx @@ -142,7 +142,7 @@ export const Policies = ({ RLS Policies control per-user access to table rows. Create a table in this schema first before creating a policy.

- diff --git a/apps/studio/components/interfaces/Database/Policies/PolicyEditorPanel/PolicyDetailsV2.tsx b/apps/studio/components/interfaces/Database/Policies/PolicyEditorPanel/PolicyDetailsV2.tsx index a590b3ad327..892522ff53d 100644 --- a/apps/studio/components/interfaces/Database/Policies/PolicyEditorPanel/PolicyDetailsV2.tsx +++ b/apps/studio/components/interfaces/Database/Policies/PolicyEditorPanel/PolicyDetailsV2.tsx @@ -157,7 +157,6 @@ export const PolicyDetailsV2 = ({ diff --git a/apps/studio/components/interfaces/Database/Policies/PolicyTableRow/PolicyRow.tsx b/apps/studio/components/interfaces/Database/Policies/PolicyTableRow/PolicyRow.tsx index f9b6338a511..c6018920cb8 100644 --- a/apps/studio/components/interfaces/Database/Policies/PolicyTableRow/PolicyRow.tsx +++ b/apps/studio/components/interfaces/Database/Policies/PolicyTableRow/PolicyRow.tsx @@ -125,7 +125,6 @@ export const PolicyRow = ({ + @@ -100,7 +98,7 @@ export const ProtectedSchemaWarning = ({ showLearnMoreDialog && ( - diff --git a/apps/studio/components/interfaces/Database/Publications/PublicationsList.tsx b/apps/studio/components/interfaces/Database/Publications/PublicationsList.tsx index 56e36575c72..d77d1170a75 100644 --- a/apps/studio/components/interfaces/Database/Publications/PublicationsList.tsx +++ b/apps/studio/components/interfaces/Database/Publications/PublicationsList.tsx @@ -218,11 +218,7 @@ export const PublicationsList = () => { ))}
- { )} - {hasAccess ? ( diff --git a/apps/studio/components/interfaces/Database/Replication/ErrorDetailsDialog.tsx b/apps/studio/components/interfaces/Database/Replication/ErrorDetailsDialog.tsx index c27dc77afd2..22f6f7a2782 100644 --- a/apps/studio/components/interfaces/Database/Replication/ErrorDetailsDialog.tsx +++ b/apps/studio/components/interfaces/Database/Replication/ErrorDetailsDialog.tsx @@ -60,7 +60,7 @@ export const ErrorDetailsDialog = ({ - + diff --git a/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus/ReplicationPipelineStatus.tsx b/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus/ReplicationPipelineStatus.tsx index 8d1b9ed8111..623e4abb98f 100644 --- a/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus/ReplicationPipelineStatus.tsx +++ b/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus/ReplicationPipelineStatus.tsx @@ -290,7 +290,7 @@ export const ReplicationPipelineStatus = () => { )} - @@ -418,7 +418,6 @@ export const ReplicationPipelineStatus = () => {
{!disabled && (
- + @@ -561,7 +559,7 @@ export const SchemaGraph = () => { } > {canAddTables && ( - )} @@ -607,7 +605,6 @@ export const SchemaGraph = () => { {hasNextPage && ( } diff --git a/apps/studio/components/interfaces/Database/Triggers/EventTriggersList/EventTriggerList.tsx b/apps/studio/components/interfaces/Database/Triggers/EventTriggersList/EventTriggerList.tsx index 6e8b1934254..9c74ec6f765 100644 --- a/apps/studio/components/interfaces/Database/Triggers/EventTriggersList/EventTriggerList.tsx +++ b/apps/studio/components/interfaces/Database/Triggers/EventTriggersList/EventTriggerList.tsx @@ -166,12 +166,7 @@ export const EventTriggerList = ({ {canEditTrigger ? ( -
-
@@ -475,12 +472,7 @@ export const TriggerSheet = ({ - + } diff --git a/apps/studio/components/interfaces/DiskManagement/DiskManagementReviewAndSubmitDialog/DiskManagementReviewAndSubmitDialog.tsx b/apps/studio/components/interfaces/DiskManagement/DiskManagementReviewAndSubmitDialog/DiskManagementReviewAndSubmitDialog.tsx index 86f302a3961..9504d551dae 100644 --- a/apps/studio/components/interfaces/DiskManagement/DiskManagementReviewAndSubmitDialog/DiskManagementReviewAndSubmitDialog.tsx +++ b/apps/studio/components/interfaces/DiskManagement/DiskManagementReviewAndSubmitDialog/DiskManagementReviewAndSubmitDialog.tsx @@ -283,7 +283,7 @@ export const DiskManagementReviewAndSubmitDialog = ({ )} - @@ -109,7 +109,6 @@ export function TroubleshootingGuideSection({ {description &&

{description}

} + ) } diff --git a/apps/studio/components/interfaces/Explorer/ExplorerNotebookTab.tsx b/apps/studio/components/interfaces/Explorer/ExplorerNotebookTab.tsx index dc715017a9f..1437c43c45c 100644 --- a/apps/studio/components/interfaces/Explorer/ExplorerNotebookTab.tsx +++ b/apps/studio/components/interfaces/Explorer/ExplorerNotebookTab.tsx @@ -473,12 +473,8 @@ export const ExplorerNotebookTab = () => { contentClassName="[&>h3]:text-sm [&>p]:text-xs" >
- - + +
)} diff --git a/apps/studio/components/interfaces/Explorer/QueryEditor/QueryResultError.tsx b/apps/studio/components/interfaces/Explorer/QueryEditor/QueryResultError.tsx index ed45c4d2466..0ce4fc3af25 100644 --- a/apps/studio/components/interfaces/Explorer/QueryEditor/QueryResultError.tsx +++ b/apps/studio/components/interfaces/Explorer/QueryEditor/QueryResultError.tsx @@ -159,7 +159,6 @@ export const QueryResultError = ({ {readReplicaError && ( + )} + diff --git a/apps/studio/components/interfaces/Functions/EdgeFunctionSecrets/EdgeFunctionSecret.tsx b/apps/studio/components/interfaces/Functions/EdgeFunctionSecrets/EdgeFunctionSecret.tsx index 8dd395def72..a6876c129ad 100644 --- a/apps/studio/components/interfaces/Functions/EdgeFunctionSecrets/EdgeFunctionSecret.tsx +++ b/apps/studio/components/interfaces/Functions/EdgeFunctionSecrets/EdgeFunctionSecret.tsx @@ -68,12 +68,7 @@ const EdgeFunctionSecret = ({ secret, onSelectEdit, onSelectDelete }: EdgeFuncti
-
- + ) : (
@@ -129,7 +127,7 @@ export const TerminalInstructions = forwardRef<
- + )} {gitUrl && ( - diff --git a/apps/studio/components/interfaces/Home/ProjectList/EmptyStates.tsx b/apps/studio/components/interfaces/Home/ProjectList/EmptyStates.tsx index 7290e60e85e..50415b06234 100644 --- a/apps/studio/components/interfaces/Home/ProjectList/EmptyStates.tsx +++ b/apps/studio/components/interfaces/Home/ProjectList/EmptyStates.tsx @@ -84,7 +84,7 @@ export const NoProjectsState = ({ slug }: { slug: string }) => { description="Launch a complete backend built on Postgres." > {projectCreationEnabled && ( - )} diff --git a/apps/studio/components/interfaces/Home/ProjectList/ProjectTableRow.tsx b/apps/studio/components/interfaces/Home/ProjectList/ProjectTableRow.tsx index 967a4a252fb..42292b182c5 100644 --- a/apps/studio/components/interfaces/Home/ProjectList/ProjectTableRow.tsx +++ b/apps/studio/components/interfaces/Home/ProjectList/ProjectTableRow.tsx @@ -181,7 +181,6 @@ export const ProjectTableRow = ({
- + + - @@ -188,7 +184,6 @@ const CronJobRunDetailsOverflowDialog = ({ diff --git a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobsTab.EnableCleanupButton.tsx b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobsTab.EnableCleanupButton.tsx index 5951bdad8ee..a223af73fae 100644 --- a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobsTab.EnableCleanupButton.tsx +++ b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobsTab.EnableCleanupButton.tsx @@ -85,7 +85,7 @@ export const EnableCleanupButton = ({ onScheduled }: EnableCleanupButtonProps) = }} > - + @@ -131,7 +131,7 @@ export const EnableCleanupButton = ({ onScheduled }: EnableCleanupButtonProps) = /> - ) : ( @@ -128,7 +128,6 @@ export const EdgeFunctionSection = ({ form }: HTTPRequestFieldsProps) => { diff --git a/apps/studio/components/interfaces/Integrations/GraphQL/IntrospectionDisabledNotice.tsx b/apps/studio/components/interfaces/Integrations/GraphQL/IntrospectionDisabledNotice.tsx index 224f4cdb711..9cb5b101ab5 100644 --- a/apps/studio/components/interfaces/Integrations/GraphQL/IntrospectionDisabledNotice.tsx +++ b/apps/studio/components/interfaces/Integrations/GraphQL/IntrospectionDisabledNotice.tsx @@ -45,7 +45,7 @@ export const IntrospectionDisabledNotice = ({ GraphQL introspection is disabled — docs explorer and autocomplete are unavailable.
- +
diff --git a/apps/studio/components/interfaces/Integrations/Integration/ConnectedResourceGroupSection.tsx b/apps/studio/components/interfaces/Integrations/Integration/ConnectedResourceGroupSection.tsx index 48047caf069..e629b9fad88 100644 --- a/apps/studio/components/interfaces/Integrations/Integration/ConnectedResourceGroupSection.tsx +++ b/apps/studio/components/interfaces/Integrations/Integration/ConnectedResourceGroupSection.tsx @@ -46,7 +46,7 @@ export const ResourceGroupSection = ({ {group.missing ? ( group.manageAction && (
-
@@ -69,12 +69,11 @@ export const ResourceGroupSection = ({
{group.manageAction && ( - )} + @@ -136,7 +136,7 @@ export const MarketplaceFilterBar = ({ - @@ -170,7 +170,7 @@ export const MarketplaceFilterBar = ({ - diff --git a/apps/studio/components/interfaces/Integrations/Marketplace/MarketplaceIndex.tsx b/apps/studio/components/interfaces/Integrations/Marketplace/MarketplaceIndex.tsx index eb08824ef1c..fee5fc9bae6 100644 --- a/apps/studio/components/interfaces/Integrations/Marketplace/MarketplaceIndex.tsx +++ b/apps/studio/components/interfaces/Integrations/Marketplace/MarketplaceIndex.tsx @@ -281,9 +281,7 @@ export const MarketplaceIndex = () => { {filtered.length === 0 && ( - + )} diff --git a/apps/studio/components/interfaces/Integrations/Queues/CreateQueueSheet/CreateQueueSheet.tsx b/apps/studio/components/interfaces/Integrations/Queues/CreateQueueSheet/CreateQueueSheet.tsx index e1178e09639..36f7ee807ee 100644 --- a/apps/studio/components/interfaces/Integrations/Queues/CreateQueueSheet/CreateQueueSheet.tsx +++ b/apps/studio/components/interfaces/Integrations/Queues/CreateQueueSheet/CreateQueueSheet.tsx @@ -133,13 +133,7 @@ export const CreateQueueSheet = ({ visible, onClose }: CreateQueueSheetProps) =>
- diff --git a/apps/studio/components/interfaces/Integrations/Queues/OverviewTab.tsx b/apps/studio/components/interfaces/Integrations/Queues/OverviewTab.tsx index 27aa2fef5b2..f476d50317a 100644 --- a/apps/studio/components/interfaces/Integrations/Queues/OverviewTab.tsx +++ b/apps/studio/components/interfaces/Integrations/Queues/OverviewTab.tsx @@ -36,7 +36,7 @@ const QueuesContent = () => {

{isQueuesInstalled && ( - )} diff --git a/apps/studio/components/interfaces/Integrations/Queues/QueueTab.tsx b/apps/studio/components/interfaces/Integrations/Queues/QueueTab.tsx index eb86f3453ca..1df2b5482ff 100644 --- a/apps/studio/components/interfaces/Integrations/Queues/QueueTab.tsx +++ b/apps/studio/components/interfaces/Integrations/Queues/QueueTab.tsx @@ -138,7 +138,6 @@ export const QueueTab = () => { {queuePolicies.length === 0 ? ( } tooltip={{ @@ -159,7 +158,6 @@ export const QueueTab = () => { ) : ( diff --git a/apps/studio/components/interfaces/Integrations/Vercel/VercelIntegrationInterstitial.tsx b/apps/studio/components/interfaces/Integrations/Vercel/VercelIntegrationInterstitial.tsx index 6b57a41255b..c45394b5428 100644 --- a/apps/studio/components/interfaces/Integrations/Vercel/VercelIntegrationInterstitial.tsx +++ b/apps/studio/components/interfaces/Integrations/Vercel/VercelIntegrationInterstitial.tsx @@ -89,7 +89,7 @@ export function VercelIntegrationInterstitialErrorState({ } /> - diff --git a/apps/studio/components/interfaces/Integrations/VercelGithub/IntegrationConnection.tsx b/apps/studio/components/interfaces/Integrations/VercelGithub/IntegrationConnection.tsx index 1701fa0247c..251ca03bfc2 100644 --- a/apps/studio/components/interfaces/Integrations/VercelGithub/IntegrationConnection.tsx +++ b/apps/studio/components/interfaces/Integrations/VercelGithub/IntegrationConnection.tsx @@ -80,7 +80,6 @@ export const IntegrationConnectionItem = forwardRef} - variant="default" tooltip={{ content: { side: 'bottom', @@ -97,7 +96,7 @@ export const IntegrationConnectionItem = forwardRef - diff --git a/apps/studio/components/interfaces/Integrations/VercelGithub/IntegrationPanels.tsx b/apps/studio/components/interfaces/Integrations/VercelGithub/IntegrationPanels.tsx index 79adf607456..25c218a2134 100644 --- a/apps/studio/components/interfaces/Integrations/VercelGithub/IntegrationPanels.tsx +++ b/apps/studio/components/interfaces/Integrations/VercelGithub/IntegrationPanels.tsx @@ -118,7 +118,7 @@ export const IntegrationInstallation = forwardRef - + ) } @@ -315,7 +315,7 @@ export const EmptyIntegrationConnection = forwardRef< )} > {href && !disabled ? ( - @@ -506,7 +504,6 @@ export const CreateWrapperSheet = ({ @@ -315,13 +313,7 @@ export const EditWrapperSheet = ({ - {errors.columns != null && errors.columns.message != null && ( diff --git a/apps/studio/components/interfaces/Integrations/templates/StripeSyncEngine/InstallationError.tsx b/apps/studio/components/interfaces/Integrations/templates/StripeSyncEngine/InstallationError.tsx index 9bd3dfc2f56..5f0bb202a2f 100644 --- a/apps/studio/components/interfaces/Integrations/templates/StripeSyncEngine/InstallationError.tsx +++ b/apps/studio/components/interfaces/Integrations/templates/StripeSyncEngine/InstallationError.tsx @@ -30,12 +30,7 @@ export const InstallationError = ({ error={errorMessage ? { message: errorMessage } : undefined} description="There was an error during the uninstallation of the Stripe Sync Engine, please try again. If the problem persists, contact support." additionalActions={ - } @@ -58,12 +53,7 @@ export const InstallationError = ({ : 'There was an error during the installation of the Stripe Sync Engine, please try reinstalling the integration. If the problem persists, contact support.' } additionalActions={ - } diff --git a/apps/studio/components/interfaces/Integrations/templates/StripeSyncEngine/IntegrationActions.tsx b/apps/studio/components/interfaces/Integrations/templates/StripeSyncEngine/IntegrationActions.tsx index 1fffa3a3dd4..c0d4381bb5e 100644 --- a/apps/studio/components/interfaces/Integrations/templates/StripeSyncEngine/IntegrationActions.tsx +++ b/apps/studio/components/interfaces/Integrations/templates/StripeSyncEngine/IntegrationActions.tsx @@ -55,7 +55,6 @@ export const IntegrationInstalledActions = ({ )} setShowUninstallModal(true)} disabled={disabled} loading={uninstalling} @@ -123,7 +122,7 @@ export const IntegrationNotInstalledActions = ({ )} {installError && ( - )} diff --git a/apps/studio/components/interfaces/Integrations/templates/StripeSyncEngine/OverviewTab.tsx b/apps/studio/components/interfaces/Integrations/templates/StripeSyncEngine/OverviewTab.tsx index 96180bb54b6..287fc7f0ed3 100644 --- a/apps/studio/components/interfaces/Integrations/templates/StripeSyncEngine/OverviewTab.tsx +++ b/apps/studio/components/interfaces/Integrations/templates/StripeSyncEngine/OverviewTab.tsx @@ -303,7 +303,7 @@ const StripeSyncContent = ({ hideInstallCTA = false }: { hideInstallCTA?: boolea />
- -
- diff --git a/apps/studio/components/interfaces/JwtSecrets/jwt-secret-keys-table/rotate-key-dialog.tsx b/apps/studio/components/interfaces/JwtSecrets/jwt-secret-keys-table/rotate-key-dialog.tsx index 740d6a60657..001c7c84bee 100644 --- a/apps/studio/components/interfaces/JwtSecrets/jwt-secret-keys-table/rotate-key-dialog.tsx +++ b/apps/studio/components/interfaces/JwtSecrets/jwt-secret-keys-table/rotate-key-dialog.tsx @@ -152,7 +152,6 @@ export function RotateKeyDialog({ All of my application's components have picked up the standby key.

} className="px-1.5 py-2 mt-0.5" tooltip={{ @@ -188,7 +187,6 @@ export function RotateKeyDialog({ To invalidate non-expired JWTs I need to explicitly revoke the currently used key.

} className="px-1.5 py-2 mt-0.5" tooltip={{ diff --git a/apps/studio/components/interfaces/JwtSecrets/jwt-settings.tsx b/apps/studio/components/interfaces/JwtSecrets/jwt-settings.tsx index 6184fcaffcd..60470876c17 100644 --- a/apps/studio/components/interfaces/JwtSecrets/jwt-settings.tsx +++ b/apps/studio/components/interfaces/JwtSecrets/jwt-settings.tsx @@ -196,7 +196,7 @@ export const JWTSettings = () => {

)} - @@ -364,7 +364,7 @@ export const JWTSettings = () => {
{disableLegacyJwtSecretRotation ? ( -

{item.description}

- diff --git a/apps/studio/components/interfaces/Organization/AuditLogs/AuditLogs.tsx b/apps/studio/components/interfaces/Organization/AuditLogs/AuditLogs.tsx index 04af2231f0f..858c8a1aabc 100644 --- a/apps/studio/components/interfaces/Organization/AuditLogs/AuditLogs.tsx +++ b/apps/studio/components/interfaces/Organization/AuditLogs/AuditLogs.tsx @@ -241,7 +241,6 @@ export const AuditLogs = () => { )} + ) diff --git a/apps/studio/components/interfaces/Organization/BillingSettings/BillingCustomerData/BillingCustomerData.tsx b/apps/studio/components/interfaces/Organization/BillingSettings/BillingCustomerData/BillingCustomerData.tsx index 8484dccb449..1a864b02555 100644 --- a/apps/studio/components/interfaces/Organization/BillingSettings/BillingCustomerData/BillingCustomerData.tsx +++ b/apps/studio/components/interfaces/Organization/BillingSettings/BillingCustomerData/BillingCustomerData.tsx @@ -239,11 +239,7 @@ export const BillingCustomerData = () => { )}
- } diff --git a/apps/studio/components/interfaces/Organization/BillingSettings/CreditCodeRedemption.tsx b/apps/studio/components/interfaces/Organization/BillingSettings/CreditCodeRedemption.tsx index cb95d666dec..745255c2207 100644 --- a/apps/studio/components/interfaces/Organization/BillingSettings/CreditCodeRedemption.tsx +++ b/apps/studio/components/interfaces/Organization/BillingSettings/CreditCodeRedemption.tsx @@ -155,7 +155,6 @@ export const CreditCodeRedemption = ({ {!modalVisible && ( + )} diff --git a/apps/studio/components/interfaces/Organization/BillingSettings/CreditTopUp.tsx b/apps/studio/components/interfaces/Organization/BillingSettings/CreditTopUp.tsx index d92d9651af2..8481e00fae7 100644 --- a/apps/studio/components/interfaces/Organization/BillingSettings/CreditTopUp.tsx +++ b/apps/studio/components/interfaces/Organization/BillingSettings/CreditTopUp.tsx @@ -259,7 +259,6 @@ export const CreditTopUp = ({ slug }: { slug: string | undefined }) => { onTopUpDialogVisibilityChange(open)}> { : 'Please disable spend cap to ensure that your projects remain available.'}

- {!isUsagePage && ( - )} -
@@ -110,7 +110,7 @@ export const Restriction = () => { 402 status code.

- {!isUsagePage && ( - )} - {!isUsagePage && ( - )} - {!isUsagePage && ( - )} - + ) : !canUpdateSubscription && diff --git a/apps/studio/components/interfaces/Organization/BillingSettings/Subscription/PlanUpdatePanelShell.tsx b/apps/studio/components/interfaces/Organization/BillingSettings/Subscription/PlanUpdatePanelShell.tsx index a7324843807..eef5b0ee34c 100644 --- a/apps/studio/components/interfaces/Organization/BillingSettings/Subscription/PlanUpdatePanelShell.tsx +++ b/apps/studio/components/interfaces/Organization/BillingSettings/Subscription/PlanUpdatePanelShell.tsx @@ -27,7 +27,7 @@ export function PlanUpdateSheetShell({ header={

Change subscription plan for {organizationName}

- -
@@ -204,7 +204,7 @@ export const AwsMarketplaceOnboardingScreen = ({ buyerId }: { buyerId?: string } } /> -
@@ -219,7 +219,7 @@ export const AwsMarketplaceOnboardingScreen = ({ buyerId }: { buyerId?: string }
-
diff --git a/apps/studio/components/interfaces/Organization/Documents/CustomDocument.tsx b/apps/studio/components/interfaces/Organization/Documents/CustomDocument.tsx index f76881a297b..0d2fce1c7da 100644 --- a/apps/studio/components/interfaces/Organization/Documents/CustomDocument.tsx +++ b/apps/studio/components/interfaces/Organization/Documents/CustomDocument.tsx @@ -25,7 +25,7 @@ export const CustomDocument = ({ doc }: CustomDocumentProps) => {
-
) : (
-
diff --git a/apps/studio/components/interfaces/Organization/Documents/SOC2.tsx b/apps/studio/components/interfaces/Organization/Documents/SOC2.tsx index ca7c554ffb1..523b5004261 100644 --- a/apps/studio/components/interfaces/Organization/Documents/SOC2.tsx +++ b/apps/studio/components/interfaces/Organization/Documents/SOC2.tsx @@ -79,12 +79,7 @@ export const SOC2 = () => {
) : (
-
diff --git a/apps/studio/components/interfaces/Organization/Documents/SecurityQuestionnaire.tsx b/apps/studio/components/interfaces/Organization/Documents/SecurityQuestionnaire.tsx index 88a6930fa21..96a0ab7ac2f 100644 --- a/apps/studio/components/interfaces/Organization/Documents/SecurityQuestionnaire.tsx +++ b/apps/studio/components/interfaces/Organization/Documents/SecurityQuestionnaire.tsx @@ -68,7 +68,7 @@ export const SecurityQuestionnaire = () => { ) : !hasAccessToQuestionnaire ? (
-
) : (
-
diff --git a/apps/studio/components/interfaces/Organization/Documents/TIA.tsx b/apps/studio/components/interfaces/Organization/Documents/TIA.tsx index c9a63b85e14..48354dd3680 100644 --- a/apps/studio/components/interfaces/Organization/Documents/TIA.tsx +++ b/apps/studio/components/interfaces/Organization/Documents/TIA.tsx @@ -24,7 +24,7 @@ export const TIA = () => {
-
} disabled={!appId || !canManageSecrets || isLast} diff --git a/apps/studio/components/interfaces/Organization/OAuthApps/PublishAppSidePanel/Scopes.tsx b/apps/studio/components/interfaces/Organization/OAuthApps/PublishAppSidePanel/Scopes.tsx index 844aaf421ee..69c14946c9d 100644 --- a/apps/studio/components/interfaces/Organization/OAuthApps/PublishAppSidePanel/Scopes.tsx +++ b/apps/studio/components/interfaces/Organization/OAuthApps/PublishAppSidePanel/Scopes.tsx @@ -76,7 +76,7 @@ const Scope = ({
- diff --git a/apps/studio/components/interfaces/Organization/OAuthApps/PublishAppSidePanel/index.tsx b/apps/studio/components/interfaces/Organization/OAuthApps/PublishAppSidePanel/index.tsx index b71e7d95556..d3210a835aa 100644 --- a/apps/studio/components/interfaces/Organization/OAuthApps/PublishAppSidePanel/index.tsx +++ b/apps/studio/components/interfaces/Organization/OAuthApps/PublishAppSidePanel/index.tsx @@ -274,7 +274,7 @@ export const PublishAppSidePanel = ({
- @@ -337,10 +337,7 @@ export const PublishAppSidePanel = ({ All URLs must use HTTPS, except for localhost

- @@ -414,14 +411,13 @@ export const PublishAppSidePanel = ({
- - @@ -316,7 +310,6 @@ export function CreateAppSheet({ visible, onClose, onCreated }: CreateAppSheetPr

Private key

{keyRevealed ? ( diff --git a/apps/studio/components/interfaces/Organization/SSO/SSOConfig.tsx b/apps/studio/components/interfaces/Organization/SSO/SSOConfig.tsx index 66a3f88a5e2..f14e64e22b9 100644 --- a/apps/studio/components/interfaces/Organization/SSO/SSOConfig.tsx +++ b/apps/studio/components/interfaces/Organization/SSO/SSOConfig.tsx @@ -381,11 +381,7 @@ export const SSOConfig = () => {
{form.formState.isDirty && ( - )} diff --git a/apps/studio/components/interfaces/Organization/SSO/SSODomains.tsx b/apps/studio/components/interfaces/Organization/SSO/SSODomains.tsx index 8f4c63e0920..69de97802e2 100644 --- a/apps/studio/components/interfaces/Organization/SSO/SSODomains.tsx +++ b/apps/studio/components/interfaces/Organization/SSO/SSODomains.tsx @@ -51,7 +51,6 @@ export const SSODomains = ({ form }: { form: ReturnType } @@ -176,7 +176,6 @@ export const SecuritySettings = () => { {form.formState.isDirty && ( + form.handleSubmit(onInviteMember)()} diff --git a/apps/studio/components/interfaces/Organization/TeamSettings/LeaveTeamButton.tsx b/apps/studio/components/interfaces/Organization/TeamSettings/LeaveTeamButton.tsx index 336b89a4ddc..c548c4a83ae 100644 --- a/apps/studio/components/interfaces/Organization/TeamSettings/LeaveTeamButton.tsx +++ b/apps/studio/components/interfaces/Organization/TeamSettings/LeaveTeamButton.tsx @@ -71,7 +71,6 @@ export const LeaveTeamButton = () => { return ( <> setIsLeaveTeamModalOpen(true)} tooltip={{ diff --git a/apps/studio/components/interfaces/Organization/TeamSettings/MemberActions.tsx b/apps/studio/components/interfaces/Organization/TeamSettings/MemberActions.tsx index 1e8c61f6168..a0daaeaa227 100644 --- a/apps/studio/components/interfaces/Organization/TeamSettings/MemberActions.tsx +++ b/apps/studio/components/interfaces/Organization/TeamSettings/MemberActions.tsx @@ -181,7 +181,6 @@ export const MemberActions = ({ <>
onManageAccess(member)} tooltip={{ diff --git a/apps/studio/components/interfaces/Organization/TeamSettings/UpdateRolesPanel/UpdateRolesPanel.tsx b/apps/studio/components/interfaces/Organization/TeamSettings/UpdateRolesPanel/UpdateRolesPanel.tsx index b7890076ab2..698c9faed2f 100644 --- a/apps/studio/components/interfaces/Organization/TeamSettings/UpdateRolesPanel/UpdateRolesPanel.tsx +++ b/apps/studio/components/interfaces/Organization/TeamSettings/UpdateRolesPanel/UpdateRolesPanel.tsx @@ -345,11 +345,7 @@ export const UpdateRolesPanel = ({ visible, member, onClose }: UpdateRolesPanelP setOpen={setShowProjectDropdown} modal={true} onSelect={onSelectProject} - renderTrigger={() => ( - - )} + renderTrigger={() => } renderRow={(project) => { const hasRoleAssigned = projectsRoleConfiguration.some( (p) => p.ref === project.ref @@ -369,7 +365,7 @@ export const UpdateRolesPanel = ({ visible, member, onClose }: UpdateRolesPanelP -
-
diff --git a/apps/studio/components/interfaces/OrganizationInvite/OrganizationInvite.tsx b/apps/studio/components/interfaces/OrganizationInvite/OrganizationInvite.tsx index e6913c05820..f3877d233fc 100644 --- a/apps/studio/components/interfaces/OrganizationInvite/OrganizationInvite.tsx +++ b/apps/studio/components/interfaces/OrganizationInvite/OrganizationInvite.tsx @@ -116,7 +116,7 @@ export const OrganizationInvite = () => { Sign in {isSignUpEnabled && ( - )} @@ -151,7 +151,7 @@ export const OrganizationInvite = () => { type="warning" description="This invite has already been accepted or declined." /> -
@@ -161,7 +161,7 @@ export const OrganizationInvite = () => { if (mfaRequiredError) { return withLayout(
-
diff --git a/apps/studio/components/interfaces/OrganizationInvite/OrganizationInviteError.tsx b/apps/studio/components/interfaces/OrganizationInvite/OrganizationInviteError.tsx index f4d747fb56e..fe01c58f931 100644 --- a/apps/studio/components/interfaces/OrganizationInvite/OrganizationInviteError.tsx +++ b/apps/studio/components/interfaces/OrganizationInvite/OrganizationInviteError.tsx @@ -64,7 +64,7 @@ export const OrganizationInviteError = ({ ) } /> - diff --git a/apps/studio/components/interfaces/Platform/Webhooks/PlatformWebhooksDeliveryDetailsSheet.tsx b/apps/studio/components/interfaces/Platform/Webhooks/PlatformWebhooksDeliveryDetailsSheet.tsx index 2b5657945ff..d121e0031b0 100644 --- a/apps/studio/components/interfaces/Platform/Webhooks/PlatformWebhooksDeliveryDetailsSheet.tsx +++ b/apps/studio/components/interfaces/Platform/Webhooks/PlatformWebhooksDeliveryDetailsSheet.tsx @@ -219,11 +219,7 @@ export const PlatformWebhooksDeliveryDetailsSheet = ({ id={SHORTCUT_IDS.PLATFORM_WEBHOOKS_RETRY_DELIVERY} onTrigger={() => onRetryDelivery(retryableDelivery.id)} > - diff --git a/apps/studio/components/interfaces/Platform/Webhooks/PlatformWebhooksEndpointDetails.tsx b/apps/studio/components/interfaces/Platform/Webhooks/PlatformWebhooksEndpointDetails.tsx index b7d67fd8641..720b21eb601 100644 --- a/apps/studio/components/interfaces/Platform/Webhooks/PlatformWebhooksEndpointDetails.tsx +++ b/apps/studio/components/interfaces/Platform/Webhooks/PlatformWebhooksEndpointDetails.tsx @@ -123,7 +123,6 @@ const DELIVERY_COLUMNS: ColumnDef[] = [
{row.original.status !== 'success' ? ( } @@ -137,7 +136,6 @@ const DELIVERY_COLUMNS: ColumnDef[] = [ /> ) : ( + ) : ( @@ -215,11 +213,7 @@ export const PlatformWebhooksEndpointList = ({ > - + diff --git a/apps/studio/components/interfaces/ProjectAPIDocs/Content/Entities.tsx b/apps/studio/components/interfaces/ProjectAPIDocs/Content/Entities.tsx index a24e807f28b..cdb62a17f6f 100644 --- a/apps/studio/components/interfaces/ProjectAPIDocs/Content/Entities.tsx +++ b/apps/studio/components/interfaces/ProjectAPIDocs/Content/Entities.tsx @@ -45,7 +45,6 @@ export const Entities = ({ language }: ContentProps) => {
)} diff --git a/apps/studio/components/interfaces/ProjectAPIDocs/SecondLevelNav.Layout.tsx b/apps/studio/components/interfaces/ProjectAPIDocs/SecondLevelNav.Layout.tsx index 8de14c0e22e..5cb6f023569 100644 --- a/apps/studio/components/interfaces/ProjectAPIDocs/SecondLevelNav.Layout.tsx +++ b/apps/studio/components/interfaces/ProjectAPIDocs/SecondLevelNav.Layout.tsx @@ -116,7 +116,6 @@ const ResourcePicker = ({ category, resource, renderResourceList }: ResourcePick
diff --git a/apps/studio/components/interfaces/ProjectHome/AdvisorSection.tsx b/apps/studio/components/interfaces/ProjectHome/AdvisorSection.tsx index 9b9b99ee0c8..7563c64a2f4 100644 --- a/apps/studio/components/interfaces/ProjectHome/AdvisorSection.tsx +++ b/apps/studio/components/interfaces/ProjectHome/AdvisorSection.tsx @@ -123,7 +123,7 @@ export const AdvisorSection = ({ showEmptyState = false }: { showEmptyState?: bo ) : (
{titleContent} -
diff --git a/apps/studio/components/interfaces/ProjectHome/CustomReportSection.tsx b/apps/studio/components/interfaces/ProjectHome/CustomReportSection.tsx index b2df6f9c8a5..97c81ceebf2 100644 --- a/apps/studio/components/interfaces/ProjectHome/CustomReportSection.tsx +++ b/apps/studio/components/interfaces/ProjectHome/CustomReportSection.tsx @@ -375,7 +375,6 @@ export function CustomReportSection() {
{layout.length > 0 && ( } className="w-7" disabled={isRefreshing} @@ -387,11 +386,7 @@ export function CustomReportSection() { }> - Add block - - } + trigger={} side="bottom" align="end" autoFocus @@ -418,11 +413,7 @@ export function CustomReportSection() { }> - Add your first block - - } + trigger={} side="bottom" align="center" autoFocus diff --git a/apps/studio/components/interfaces/ProjectHome/ProjectConnectionPopover.tsx b/apps/studio/components/interfaces/ProjectHome/ProjectConnectionPopover.tsx index a138e583d95..c0b31d5b310 100644 --- a/apps/studio/components/interfaces/ProjectHome/ProjectConnectionPopover.tsx +++ b/apps/studio/components/interfaces/ProjectHome/ProjectConnectionPopover.tsx @@ -182,7 +182,6 @@ export const ProjectConnectionPopover = ({ projectRef }: ProjectConnectionPopove ) : ( +
)} diff --git a/apps/studio/components/interfaces/QueryPerformance/SqlMonacoBlock.tsx b/apps/studio/components/interfaces/QueryPerformance/SqlMonacoBlock.tsx index c53a0a72b15..952213ee6dd 100644 --- a/apps/studio/components/interfaces/QueryPerformance/SqlMonacoBlock.tsx +++ b/apps/studio/components/interfaces/QueryPerformance/SqlMonacoBlock.tsx @@ -38,7 +38,6 @@ export const SqlMonacoBlock = ({ value, wrapperClassName }: SqlMonacoBlockProps)
diff --git a/apps/studio/components/interfaces/QuerySources/LogsCustomRangeDialog.tsx b/apps/studio/components/interfaces/QuerySources/LogsCustomRangeDialog.tsx index ed1e00dd201..e9cfa4eb8d7 100644 --- a/apps/studio/components/interfaces/QuerySources/LogsCustomRangeDialog.tsx +++ b/apps/studio/components/interfaces/QuerySources/LogsCustomRangeDialog.tsx @@ -45,9 +45,7 @@ export const LogsCustomRangeDialog = ({ />
- + diff --git a/apps/studio/components/interfaces/Realtime/Inspector/ChooseChannelPopover.tsx b/apps/studio/components/interfaces/Realtime/Inspector/ChooseChannelPopover.tsx index 69403335734..7938119109a 100644 --- a/apps/studio/components/interfaces/Realtime/Inspector/ChooseChannelPopover.tsx +++ b/apps/studio/components/interfaces/Realtime/Inspector/ChooseChannelPopover.tsx @@ -97,7 +97,7 @@ export const ChooseChannelPopover = ({ const channelPopoverTrigger = ( - @@ -56,7 +52,7 @@ export const EmptyRealtime = ({ projectRef }: { projectRef: string }) => {

Send messages to a channel from your client application or database via triggers.

- @@ -75,7 +71,7 @@ export const EmptyRealtime = ({ projectRef }: { projectRef: string }) => {

Set up Row Level Security policies to control who can see messages within a channel

- diff --git a/apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx b/apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx index 872c19f36b1..555a8dc749f 100644 --- a/apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx +++ b/apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx @@ -41,11 +41,7 @@ const NoResultAlert = ({ 'service_api_keys' ) - const broadcastButton = ( - - ) + const broadcastButton = return (
@@ -90,9 +86,7 @@ const NoResultAlert = ({

- + @@ -106,9 +100,7 @@ const NoResultAlert = ({

Tables must have realtime enabled

- +
@@ -183,11 +175,7 @@ const MessagesTable = ({
- diff --git a/apps/studio/components/interfaces/Realtime/Inspector/RealtimeFilterPopover/TableSelector.tsx b/apps/studio/components/interfaces/Realtime/Inspector/RealtimeFilterPopover/TableSelector.tsx index 9d78b51d1c4..4f4163cb860 100644 --- a/apps/studio/components/interfaces/Realtime/Inspector/RealtimeFilterPopover/TableSelector.tsx +++ b/apps/studio/components/interfaces/Realtime/Inspector/RealtimeFilterPopover/TableSelector.tsx @@ -117,7 +117,7 @@ const TableSelector = ({ Error: {(error as any)?.message} - diff --git a/apps/studio/components/interfaces/Realtime/Inspector/RealtimeFilterPopover/index.tsx b/apps/studio/components/interfaces/Realtime/Inspector/RealtimeFilterPopover/index.tsx index 99f3cf5d012..d7cae509e7b 100644 --- a/apps/studio/components/interfaces/Realtime/Inspector/RealtimeFilterPopover/index.tsx +++ b/apps/studio/components/interfaces/Realtime/Inspector/RealtimeFilterPopover/index.tsx @@ -252,9 +252,7 @@ export const RealtimeFilterPopover = ({ )}
- + diff --git a/apps/studio/components/interfaces/Realtime/Inspector/SendMessageModal.tsx b/apps/studio/components/interfaces/Realtime/Inspector/SendMessageModal.tsx index 24d0b79b232..f6b0b614114 100644 --- a/apps/studio/components/interfaces/Realtime/Inspector/SendMessageModal.tsx +++ b/apps/studio/components/interfaces/Realtime/Inspector/SendMessageModal.tsx @@ -76,9 +76,7 @@ export const SendMessageModal = ({
- + + )}
diff --git a/apps/studio/components/interfaces/Reports/ReportWidget.tsx b/apps/studio/components/interfaces/Reports/ReportWidget.tsx index ace762e6825..bc70c63998d 100644 --- a/apps/studio/components/interfaces/Reports/ReportWidget.tsx +++ b/apps/studio/components/interfaces/Reports/ReportWidget.tsx @@ -60,18 +60,14 @@ const ReportWidget = (props: ReportWidgetProps) => { @@ -448,7 +443,6 @@ const Reports = () => { ) : ( } tooltip={{ content: { @@ -478,9 +472,7 @@ const Reports = () => { {canUpdateReport ? ( - + diff --git a/apps/studio/components/interfaces/Reports/UpdateModal.tsx b/apps/studio/components/interfaces/Reports/UpdateModal.tsx index aa0a6ffe537..8a246206a20 100644 --- a/apps/studio/components/interfaces/Reports/UpdateModal.tsx +++ b/apps/studio/components/interfaces/Reports/UpdateModal.tsx @@ -130,7 +130,7 @@ export const UpdateCustomReportModal = ({ /> - )} - diff --git a/apps/studio/components/interfaces/SQLEditor/UtilityPanel/QuerySourceMenu/QuerySourceMenu.tsx b/apps/studio/components/interfaces/SQLEditor/UtilityPanel/QuerySourceMenu/QuerySourceMenu.tsx index 2725c004c3a..2a812e30030 100644 --- a/apps/studio/components/interfaces/SQLEditor/UtilityPanel/QuerySourceMenu/QuerySourceMenu.tsx +++ b/apps/studio/components/interfaces/SQLEditor/UtilityPanel/QuerySourceMenu/QuerySourceMenu.tsx @@ -105,7 +105,6 @@ export const QuerySourceMenu = ({ id, runSource, canCreateLogsSnippet }: QuerySo diff --git a/apps/studio/components/interfaces/SQLEditor/UtilityPanel/UtilityTabResults.tsx b/apps/studio/components/interfaces/SQLEditor/UtilityPanel/UtilityTabResults.tsx index e2ebd2b4263..077c86eaa5d 100644 --- a/apps/studio/components/interfaces/SQLEditor/UtilityPanel/UtilityTabResults.tsx +++ b/apps/studio/components/interfaces/SQLEditor/UtilityPanel/UtilityTabResults.tsx @@ -136,7 +136,6 @@ export const UtilityTabResults = forwardRef { state.setSelectedDatabaseId(ref) sessionSnap.resetResult(id) diff --git a/apps/studio/components/interfaces/Settings/API/ExposedFunctionSelector.tsx b/apps/studio/components/interfaces/Settings/API/ExposedFunctionSelector.tsx index c49fb50c343..4da0bb22374 100644 --- a/apps/studio/components/interfaces/Settings/API/ExposedFunctionSelector.tsx +++ b/apps/studio/components/interfaces/Settings/API/ExposedFunctionSelector.tsx @@ -101,7 +101,6 @@ export const ExposedFunctionSelector = ({ diff --git a/apps/studio/components/interfaces/Settings/Addons/Addons.tsx b/apps/studio/components/interfaces/Settings/Addons/Addons.tsx index 751d3fdbafe..f95b5a80f7e 100644 --- a/apps/studio/components/interfaces/Settings/Addons/Addons.tsx +++ b/apps/studio/components/interfaces/Settings/Addons/Addons.tsx @@ -160,7 +160,7 @@ export const Addons = () => { Contact support for further assistance.
-
@@ -174,7 +174,7 @@ export const Addons = () => {

Reach out to us via support if you're interested

- diff --git a/apps/studio/components/interfaces/Settings/Database/BannedIPs.tsx b/apps/studio/components/interfaces/Settings/Database/BannedIPs.tsx index 0a2b5927bf6..1a8fd206b02 100644 --- a/apps/studio/components/interfaces/Settings/Database/BannedIPs.tsx +++ b/apps/studio/components/interfaces/Settings/Database/BannedIPs.tsx @@ -130,7 +130,6 @@ export const BannedIPs = () => { {ip === userIPAddress && Your IP address} openConfirmationModal(ip)} tooltip={{ diff --git a/apps/studio/components/interfaces/Settings/Database/ConnectionLogging.tsx b/apps/studio/components/interfaces/Settings/Database/ConnectionLogging.tsx index 5290347e0ad..3c77206ea2d 100644 --- a/apps/studio/components/interfaces/Settings/Database/ConnectionLogging.tsx +++ b/apps/studio/components/interfaces/Settings/Database/ConnectionLogging.tsx @@ -131,7 +131,6 @@ export const ConnectionLogging = () => { - +
+ ) : unavailableReason === 'ssl_enforcement_required' && ref ? ( @@ -402,12 +402,10 @@ export const JitDbAccessConfiguration = () => { isSubmitting={isEnablingSSLEnforcement} onConfirm={handleEnableSSLEnforcement} > - + ) : ( - @@ -173,7 +168,6 @@ export function JitDbAccessRulesTable({ + diff --git a/apps/studio/components/interfaces/Settings/Database/SSLConfiguration.tsx b/apps/studio/components/interfaces/Settings/Database/SSLConfiguration.tsx index 7790f871e3d..0714bfee41c 100644 --- a/apps/studio/components/interfaces/Settings/Database/SSLConfiguration.tsx +++ b/apps/studio/components/interfaces/Settings/Database/SSLConfiguration.tsx @@ -222,7 +222,6 @@ export const SSLConfiguration = () => { {!hasSSLCertificate ? ( } tooltip={{ content: { @@ -234,7 +233,7 @@ export const SSLConfiguration = () => { Download certificate ) : ( - )} diff --git a/apps/studio/components/interfaces/Settings/General/CustomDomainConfig/CustomDomainActivate.tsx b/apps/studio/components/interfaces/Settings/General/CustomDomainConfig/CustomDomainActivate.tsx index 40b694516a2..33fd389bb5e 100644 --- a/apps/studio/components/interfaces/Settings/General/CustomDomainConfig/CustomDomainActivate.tsx +++ b/apps/studio/components/interfaces/Settings/General/CustomDomainConfig/CustomDomainActivate.tsx @@ -95,12 +95,7 @@ export const CustomDomainActivate = ({ projectRef, customDomain }: CustomDomainA
- )} diff --git a/apps/studio/components/interfaces/Settings/General/DashboardPreferences.tsx b/apps/studio/components/interfaces/Settings/General/DashboardPreferences.tsx index ffcacaf06a8..30d2926360f 100644 --- a/apps/studio/components/interfaces/Settings/General/DashboardPreferences.tsx +++ b/apps/studio/components/interfaces/Settings/General/DashboardPreferences.tsx @@ -147,11 +147,7 @@ export const DashboardPreferences = () => { {form.formState.isDirty && ( - )} @@ -197,7 +193,7 @@ const DashboardQueriesDialog = () => { - + diff --git a/apps/studio/components/interfaces/Settings/General/General.tsx b/apps/studio/components/interfaces/Settings/General/General.tsx index 7bcba9057d3..734df08c711 100644 --- a/apps/studio/components/interfaces/Settings/General/General.tsx +++ b/apps/studio/components/interfaces/Settings/General/General.tsx @@ -240,7 +240,6 @@ export const General = () => { {form.formState.isDirty && (
-
- ) : ( diff --git a/apps/studio/components/interfaces/Settings/General/ProjectAccessSection.tsx b/apps/studio/components/interfaces/Settings/General/ProjectAccessSection.tsx index 9a0085353d7..1c0a3c43811 100644 --- a/apps/studio/components/interfaces/Settings/General/ProjectAccessSection.tsx +++ b/apps/studio/components/interfaces/Settings/General/ProjectAccessSection.tsx @@ -131,7 +131,7 @@ export const ProjectAccessSection = () => {

{projectAccessDescription}

{!!organization?.slug && ( - + @@ -139,7 +139,7 @@ export const ReadReplicaEligibilityWarnings = ({ title="Read replicas can only be deployed with projects on Postgres version 15 and above" >

If you'd like to use read replicas, please contact us via support.

- ) : ( - diff --git a/apps/studio/components/interfaces/Settings/Infrastructure/ReadReplicas/ReadReplicaForm/index.tsx b/apps/studio/components/interfaces/Settings/Infrastructure/ReadReplicas/ReadReplicaForm/index.tsx index 0cf2587a2ff..481d5565018 100644 --- a/apps/studio/components/interfaces/Settings/Infrastructure/ReadReplicas/ReadReplicaForm/index.tsx +++ b/apps/studio/components/interfaces/Settings/Infrastructure/ReadReplicas/ReadReplicaForm/index.tsx @@ -140,7 +140,7 @@ export const ReadReplicaForm = ({ )} - - )} diff --git a/apps/studio/components/interfaces/Settings/Infrastructure/UpgradeWarnings.tsx b/apps/studio/components/interfaces/Settings/Infrastructure/UpgradeWarnings.tsx index 7ebf1c69721..5e38f99ed15 100644 --- a/apps/studio/components/interfaces/Settings/Infrastructure/UpgradeWarnings.tsx +++ b/apps/studio/components/interfaces/Settings/Infrastructure/UpgradeWarnings.tsx @@ -20,7 +20,7 @@ export const ReadReplicasWarning = ({ latestPgVersion }: { latestPgVersion: stri title="A newer version of Postgres is available" description={`You will need to remove all read replicas prior to upgrading your Postgres version to the latest available (${latestPgVersion}).`} actions={ - } @@ -124,7 +124,7 @@ const ValidationErrorItem = ({ error }: { error: ProjectUpgradeEligibilityValida

{description}

{manageLink && ( - )} @@ -209,7 +209,7 @@ export const ValidationWarningsAdmonition = ({ title={getWarningTitle(warning)} description={getWarningDescription(warning)} > - - @@ -263,7 +263,6 @@ export const AWSPrivateLinkForm = ({ <> diff --git a/apps/studio/components/interfaces/Settings/Integrations/GithubIntegration/GitHubIntegrationConnectionForm.tsx b/apps/studio/components/interfaces/Settings/Integrations/GithubIntegration/GitHubIntegrationConnectionForm.tsx index 6de70c98b15..a9d0c4a28a0 100644 --- a/apps/studio/components/interfaces/Settings/Integrations/GithubIntegration/GitHubIntegrationConnectionForm.tsx +++ b/apps/studio/components/interfaces/Settings/Integrations/GithubIntegration/GitHubIntegrationConnectionForm.tsx @@ -646,7 +646,6 @@ export const GitHubIntegrationConnectionForm = ({
{githubSettingsForm.formState.isDirty && ( )} diff --git a/apps/studio/components/interfaces/Settings/Logs/LegacyLogsRewriteAdmonition.tsx b/apps/studio/components/interfaces/Settings/Logs/LegacyLogsRewriteAdmonition.tsx index 581c0b02334..f2a70282c1e 100644 --- a/apps/studio/components/interfaces/Settings/Logs/LegacyLogsRewriteAdmonition.tsx +++ b/apps/studio/components/interfaces/Settings/Logs/LegacyLogsRewriteAdmonition.tsx @@ -38,7 +38,7 @@ export const LegacyLogsRewriteAdmonition = ({ description={state.message} actions={
- } @@ -81,7 +81,7 @@ export const LegacyLogsRewriteAdmonition = ({ description="This query needs to be adjusted to ClickHouse SQL, which the Assistant can do for you." actions={
- {/* Disabled mid-rewrite so the offer can't be dismissed out from under diff --git a/apps/studio/components/interfaces/Settings/Logs/LogTable.tsx b/apps/studio/components/interfaces/Settings/Logs/LogTable.tsx index fe73a36671f..4a23d3783b1 100644 --- a/apps/studio/components/interfaces/Settings/Logs/LogTable.tsx +++ b/apps/studio/components/interfaces/Settings/Logs/LogTable.tsx @@ -486,11 +486,7 @@ export const LogTable = ({ {showHistogramToggle && (
-
@@ -499,7 +495,6 @@ export const LogTable = ({
{IS_PLATFORM && ( - + - + {templates @@ -284,7 +280,6 @@ export const LogsQueryPanel = ({ @@ -300,7 +298,7 @@ const PreviewFilterPanel = ({ />
) : ( - )} diff --git a/apps/studio/components/interfaces/Settings/Logs/UpgradePrompt.tsx b/apps/studio/components/interfaces/Settings/Logs/UpgradePrompt.tsx index b935c819738..12834cb5ef6 100644 --- a/apps/studio/components/interfaces/Settings/Logs/UpgradePrompt.tsx +++ b/apps/studio/components/interfaces/Settings/Logs/UpgradePrompt.tsx @@ -85,9 +85,7 @@ const UpgradePrompt: React.FC = ({
- +

diff --git a/apps/studio/components/interfaces/SignIn/SignInForm.tsx b/apps/studio/components/interfaces/SignIn/SignInForm.tsx index e602bf4db9a..ac85aefc03f 100644 --- a/apps/studio/components/interfaces/SignIn/SignInForm.tsx +++ b/apps/studio/components/interfaces/SignIn/SignInForm.tsx @@ -184,7 +184,6 @@ export const SignInForm = () => { /> - diff --git a/apps/studio/components/interfaces/SignIn/SignInWithCustom.tsx b/apps/studio/components/interfaces/SignIn/SignInWithCustom.tsx index 044ecaeb08c..820a93fb9ec 100644 --- a/apps/studio/components/interfaces/SignIn/SignInWithCustom.tsx +++ b/apps/studio/components/interfaces/SignIn/SignInWithCustom.tsx @@ -50,7 +50,7 @@ export const SignInWithCustom = ({ providerName }: SignInWithCustomProps) => { } return ( - ) diff --git a/apps/studio/components/interfaces/SignIn/SignUpForm.tsx b/apps/studio/components/interfaces/SignIn/SignUpForm.tsx index 85612d22649..9b9ae4cfcb7 100644 --- a/apps/studio/components/interfaces/SignIn/SignUpForm.tsx +++ b/apps/studio/components/interfaces/SignIn/SignUpForm.tsx @@ -190,7 +190,6 @@ export const SignUpForm = ({ onSuccess }: { onSuccess?: () => void }) => { /> diff --git a/apps/studio/components/interfaces/Storage/AnalyticsBuckets/AnalyticsBucketDetails/CopyEnvButton.tsx b/apps/studio/components/interfaces/Storage/AnalyticsBuckets/AnalyticsBucketDetails/CopyEnvButton.tsx index d2744e30b40..949d5bd483f 100644 --- a/apps/studio/components/interfaces/Storage/AnalyticsBuckets/AnalyticsBucketDetails/CopyEnvButton.tsx +++ b/apps/studio/components/interfaces/Storage/AnalyticsBuckets/AnalyticsBucketDetails/CopyEnvButton.tsx @@ -39,7 +39,7 @@ export const CopyEnvButton = ({ }, [serverOptions, values]) return ( - ) diff --git a/apps/studio/components/interfaces/Storage/AnalyticsBuckets/AnalyticsBucketDetails/CreateTable/CreateTableInstructions.tsx b/apps/studio/components/interfaces/Storage/AnalyticsBuckets/AnalyticsBucketDetails/CreateTable/CreateTableInstructions.tsx index 274b606bd97..cc8c3d86eb3 100644 --- a/apps/studio/components/interfaces/Storage/AnalyticsBuckets/AnalyticsBucketDetails/CreateTable/CreateTableInstructions.tsx +++ b/apps/studio/components/interfaces/Storage/AnalyticsBuckets/AnalyticsBucketDetails/CreateTable/CreateTableInstructions.tsx @@ -208,7 +208,6 @@ export const CreateTableInstructions = ({ }} /> setShowKeys(!showKeys)} diff --git a/apps/studio/components/interfaces/Storage/AnalyticsBuckets/AnalyticsBucketDetails/CreateTable/CreateTableSheet.tsx b/apps/studio/components/interfaces/Storage/AnalyticsBuckets/AnalyticsBucketDetails/CreateTable/CreateTableSheet.tsx index 5514f0d3924..a2d72ca0260 100644 --- a/apps/studio/components/interfaces/Storage/AnalyticsBuckets/AnalyticsBucketDetails/CreateTable/CreateTableSheet.tsx +++ b/apps/studio/components/interfaces/Storage/AnalyticsBuckets/AnalyticsBucketDetails/CreateTable/CreateTableSheet.tsx @@ -223,7 +223,6 @@ export const CreateTableSheet = ({ open, onOpenChange }: CreateTableSheetProps)

Columns

) : (
+
@@ -118,7 +118,7 @@ export const InitializeForeignSchemaDialog = ({ namespace }: { namespace: string
- + @@ -76,7 +76,7 @@ values ( - + @@ -130,7 +128,7 @@ export const UpdateCatalogTokenDialog = ({ vaultTokenId }: { vaultTokenId?: stri - + @@ -155,7 +155,7 @@ export const UpdateForeignSchemaDialog = ({
- diff --git a/apps/studio/components/interfaces/Storage/CreateBucketModal.tsx b/apps/studio/components/interfaces/Storage/CreateBucketModal.tsx index 19632128c74..fd16c6897fc 100644 --- a/apps/studio/components/interfaces/Storage/CreateBucketModal.tsx +++ b/apps/studio/components/interfaces/Storage/CreateBucketModal.tsx @@ -372,7 +372,7 @@ export const CreateBucketModal = ({ open, onOpenChange }: CreateBucketModalProps - @@ -167,7 +167,6 @@ export const FilesBuckets = () => { side="bottom" > + + diff --git a/apps/studio/components/interfaces/Storage/StorageExplorer/FileExplorerHeaderSelection.tsx b/apps/studio/components/interfaces/Storage/StorageExplorer/FileExplorerHeaderSelection.tsx index d715fcaa178..6f985065298 100644 --- a/apps/studio/components/interfaces/Storage/StorageExplorer/FileExplorerHeaderSelection.tsx +++ b/apps/studio/components/interfaces/Storage/StorageExplorer/FileExplorerHeaderSelection.tsx @@ -32,7 +32,6 @@ export const FileExplorerHeaderSelection = () => {
+ diff --git a/apps/studio/components/interfaces/Storage/StorageExplorer/PreviewPane.tsx b/apps/studio/components/interfaces/Storage/StorageExplorer/PreviewPane.tsx index 169ac370453..acab8371de5 100644 --- a/apps/studio/components/interfaces/Storage/StorageExplorer/PreviewPane.tsx +++ b/apps/studio/components/interfaces/Storage/StorageExplorer/PreviewPane.tsx @@ -187,7 +187,6 @@ export const PreviewPane = () => { {/* Actions */}
- )} + {showTemplates && } diff --git a/apps/studio/components/interfaces/Storage/StoragePolicies/PolicyEditorModal/PolicyEditorModalTitle.tsx b/apps/studio/components/interfaces/Storage/StoragePolicies/PolicyEditorModal/PolicyEditorModalTitle.tsx index 044a4acaffd..4bca40f1706 100644 --- a/apps/studio/components/interfaces/Storage/StoragePolicies/PolicyEditorModal/PolicyEditorModalTitle.tsx +++ b/apps/studio/components/interfaces/Storage/StoragePolicies/PolicyEditorModal/PolicyEditorModalTitle.tsx @@ -56,7 +56,7 @@ export const PolicyEditorModalTitle = ({
{showAssistantPreview && view === POLICY_MODAL_VIEWS.EDITOR && ( - )} diff --git a/apps/studio/components/interfaces/Storage/StoragePolicies/PolicyReview.tsx b/apps/studio/components/interfaces/Storage/StoragePolicies/PolicyReview.tsx index a22c7c18ab2..4b9915d0d6c 100644 --- a/apps/studio/components/interfaces/Storage/StoragePolicies/PolicyReview.tsx +++ b/apps/studio/components/interfaces/Storage/StoragePolicies/PolicyReview.tsx @@ -59,9 +59,7 @@ export const PolicyReview = ({
- + - + + diff --git a/apps/studio/components/interfaces/Storage/StoragePolicies/StoragePoliciesReview.tsx b/apps/studio/components/interfaces/Storage/StoragePolicies/StoragePoliciesReview.tsx index d4b687a3c5b..b1ab18a59f4 100644 --- a/apps/studio/components/interfaces/Storage/StoragePolicies/StoragePoliciesReview.tsx +++ b/apps/studio/components/interfaces/Storage/StoragePolicies/StoragePoliciesReview.tsx @@ -62,9 +62,7 @@ export const StoragePoliciesReview = ({ - + {policyStatements.length > 0 && (
@@ -287,7 +286,7 @@ export const S3Connection = () => { To fetch your S3 access keys, you need to restore your project. - diff --git a/apps/studio/components/interfaces/Storage/StorageSettings/StorageSettings.tsx b/apps/studio/components/interfaces/Storage/StorageSettings/StorageSettings.tsx index 03143378f10..4f361ba954e 100644 --- a/apps/studio/components/interfaces/Storage/StorageSettings/StorageSettings.tsx +++ b/apps/studio/components/interfaces/Storage/StorageSettings/StorageSettings.tsx @@ -424,7 +424,6 @@ export const StorageSettings = () => { {form.formState.isDirty && (
-
@@ -392,7 +392,7 @@ export const CreateVectorTableSheet = ({ bucketName }: CreateVectorTableSheetPro - +
@@ -168,7 +168,7 @@ export const InitializeForeignSchemaDialog = () => {
- diff --git a/apps/studio/components/interfaces/Storage/VectorBuckets/VectorBucketDetails/VectorBucketTableExamplesSheet.tsx b/apps/studio/components/interfaces/Storage/VectorBuckets/VectorBucketDetails/VectorBucketTableExamplesSheet.tsx index 171d331a4c7..a748789c3ae 100644 --- a/apps/studio/components/interfaces/Storage/VectorBuckets/VectorBucketDetails/VectorBucketTableExamplesSheet.tsx +++ b/apps/studio/components/interfaces/Storage/VectorBuckets/VectorBucketDetails/VectorBucketTableExamplesSheet.tsx @@ -58,7 +58,7 @@ export const VectorBucketTableExamplesSheet = ({ index }: VectorBucketTableExamp {/* Move into overflow menu after vectors added */} - @@ -219,7 +219,6 @@ const result = await index.putVectors({ Language - } + actions={} /> ) : ( <> @@ -284,11 +279,7 @@ const result = await index.putVectors({ value={sqlCode} />
- ) : ( - diff --git a/apps/studio/components/interfaces/Support/ClientLibraryInfo.tsx b/apps/studio/components/interfaces/Support/ClientLibraryInfo.tsx index e60259a8f7f..f006b8eafdc 100644 --- a/apps/studio/components/interfaces/Support/ClientLibraryInfo.tsx +++ b/apps/studio/components/interfaces/Support/ClientLibraryInfo.tsx @@ -100,11 +100,7 @@ const LibrarySuggestions = ({ library }: LibrarySuggestionsProps) => {

-
-
-
diff --git a/apps/studio/components/interfaces/Support/ProjectAndPlanInfo.tsx b/apps/studio/components/interfaces/Support/ProjectAndPlanInfo.tsx index 2796dbdb965..f38379ae4f1 100644 --- a/apps/studio/components/interfaces/Support/ProjectAndPlanInfo.tsx +++ b/apps/studio/components/interfaces/Support/ProjectAndPlanInfo.tsx @@ -83,7 +83,6 @@ function ProjectSelector({ form, orgSlug, projectRef }: ProjectSelectorProps) { return ( - + ) : ( - ) @@ -62,11 +60,7 @@ export const Success = ({
{finishAction} -
-
diff --git a/apps/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx b/apps/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx index 03662e9e1a1..678403d35d7 100644 --- a/apps/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx +++ b/apps/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx @@ -209,7 +209,6 @@ export const GridHeaderActions = ({ table, isRefetching }: GridHeaderActionsProp {policies.length < 1 && !isSchemaLocked ? ( } tooltip={{ @@ -275,7 +274,6 @@ export const GridHeaderActions = ({ table, isRefetching }: GridHeaderActionsProp

{!isSchemaLocked && (
- )} - diff --git a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnEditor.tsx b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnEditor.tsx index e3a8977fcfe..fe019b312f3 100644 --- a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnEditor.tsx +++ b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnEditor.tsx @@ -300,7 +300,7 @@ export const ColumnEditor = ({ className="lg:col-span-4!" description={
- -
diff --git a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnType.tsx b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnType.tsx index 6047f1f7224..db8a45a3872 100644 --- a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnType.tsx +++ b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnType.tsx @@ -314,7 +314,7 @@ const ColumnType = ({ specific use case.

-
- + {errors.columns &&

{errors.columns}

} {hasTypeErrors && ( diff --git a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/OperationQueueSidePanel/OperationQueueSidePanel.tsx b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/OperationQueueSidePanel/OperationQueueSidePanel.tsx index c9ea968a0c6..3b460bf2bbb 100644 --- a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/OperationQueueSidePanel/OperationQueueSidePanel.tsx +++ b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/OperationQueueSidePanel/OperationQueueSidePanel.tsx @@ -53,18 +53,13 @@ export const OperationQueueSidePanel = () => {
-
diff --git a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/TextEditor.tsx b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/TextEditor.tsx index e1e8de2c8c5..f99fe19e0be 100644 --- a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/TextEditor.tsx +++ b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/TextEditor.tsx @@ -183,7 +183,7 @@ export const TextEditor = ({ performance issues

-
diff --git a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/SchemaEditor.tsx b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/SchemaEditor.tsx index 6f01b870940..73694482b95 100644 --- a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/SchemaEditor.tsx +++ b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/SchemaEditor.tsx @@ -97,7 +97,6 @@ export const SchemaEditor = ({ visible, onSuccess, closePanel }: SchemaEditorPro diff --git a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ColumnManagement.tsx b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ColumnManagement.tsx index 0354611ea99..6576b692ba0 100644 --- a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ColumnManagement.tsx +++ b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ColumnManagement.tsx @@ -157,7 +157,7 @@ export const ColumnManagement = ({ )}
diff --git a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ForeignKeysManagement/ForeignKeyRow.tsx b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ForeignKeysManagement/ForeignKeyRow.tsx index 613dd94643b..683c4ab9e37 100644 --- a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ForeignKeysManagement/ForeignKeyRow.tsx +++ b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ForeignKeysManagement/ForeignKeyRow.tsx @@ -60,7 +60,6 @@ export const ForeignKeyRow = ({

+ {foreignKey.toRemove ? ( - + ) : ( - + )}
)} diff --git a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ForeignKeysManagement/ForeignKeysManagement.tsx b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ForeignKeysManagement/ForeignKeysManagement.tsx index 504bae7822a..f3931ebe6c2 100644 --- a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ForeignKeysManagement/ForeignKeysManagement.tsx +++ b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ForeignKeysManagement/ForeignKeysManagement.tsx @@ -114,9 +114,7 @@ export const ForeignKeysManagement = ({ })}
- +
)} diff --git a/apps/studio/components/interfaces/TableGridEditor/TableDefinition.tsx b/apps/studio/components/interfaces/TableGridEditor/TableDefinition.tsx index 5044db1a0a2..b7554e4cff1 100644 --- a/apps/studio/components/interfaces/TableGridEditor/TableDefinition.tsx +++ b/apps/studio/components/interfaces/TableGridEditor/TableDefinition.tsx @@ -66,7 +66,7 @@ export const TableDefinition = ({ entity }: TableDefinitionProps) => { return ( <>
- ) : openTabs.length > 0 ? ( - ) : ( - )} diff --git a/apps/studio/components/interfaces/UnifiedLogs/RowSelectionHeader.tsx b/apps/studio/components/interfaces/UnifiedLogs/RowSelectionHeader.tsx index eecc53dd4ee..88e4a710b0b 100644 --- a/apps/studio/components/interfaces/UnifiedLogs/RowSelectionHeader.tsx +++ b/apps/studio/components/interfaces/UnifiedLogs/RowSelectionHeader.tsx @@ -85,7 +85,6 @@ export const RowSelectionHeader = () => { } className="w-7" diff --git a/apps/studio/components/interfaces/UnifiedLogs/ServiceFlowPanel.tsx b/apps/studio/components/interfaces/UnifiedLogs/ServiceFlowPanel.tsx index 1f982d76e35..0ef5ac59ef6 100644 --- a/apps/studio/components/interfaces/UnifiedLogs/ServiceFlowPanel.tsx +++ b/apps/studio/components/interfaces/UnifiedLogs/ServiceFlowPanel.tsx @@ -248,7 +248,6 @@ export function ServiceFlowPanel({
) : ( <> - + } onClick={() => selectFeaturePreview('supabase-ui-preview-unified-logs')} diff --git a/apps/studio/components/interfaces/UnifiedLogs/components/DownloadLogsButton.tsx b/apps/studio/components/interfaces/UnifiedLogs/components/DownloadLogsButton.tsx index 54a8e4f0997..b9381704532 100644 --- a/apps/studio/components/interfaces/UnifiedLogs/components/DownloadLogsButton.tsx +++ b/apps/studio/components/interfaces/UnifiedLogs/components/DownloadLogsButton.tsx @@ -104,7 +104,6 @@ export const DownloadLogsButton = ({ searchParameters }: DownloadLogsButtonProps
} diff --git a/apps/studio/components/layouts/AppLayout/BranchDropdownCommandContent.tsx b/apps/studio/components/layouts/AppLayout/BranchDropdownCommandContent.tsx index 7fdd5b299ed..ac0d6d4397c 100644 --- a/apps/studio/components/layouts/AppLayout/BranchDropdownCommandContent.tsx +++ b/apps/studio/components/layouts/AppLayout/BranchDropdownCommandContent.tsx @@ -82,7 +82,6 @@ export function BranchDropdownCommandContent({
{organizationCreationEnabled && ( - + @@ -325,7 +323,7 @@ const EdgeFunctionDetailsLayout = ({ shortcutId={SHORTCUT_IDS.FUNCTION_DETAIL_OPEN_TEST} side="bottom" > - diff --git a/apps/studio/components/layouts/LogsLayout/LogsSidebarMenuV2.tsx b/apps/studio/components/layouts/LogsLayout/LogsSidebarMenuV2.tsx index 56608b50c2b..f162423c0be 100644 --- a/apps/studio/components/layouts/LogsLayout/LogsSidebarMenuV2.tsx +++ b/apps/studio/components/layouts/LogsLayout/LogsSidebarMenuV2.tsx @@ -233,7 +233,6 @@ export function LogsSidebarMenuV2() { } className="w-[26px]" tooltip={{ content: { text: 'New query', side: 'bottom' } }} @@ -301,7 +300,7 @@ export function LogsSidebarMenuV2() { IS_PLATFORM ? 'Create and save your queries to use them in the explorer' : undefined } actions={ - } @@ -328,7 +327,7 @@ export function LogsSidebarMenuV2() {
} actions={ - } diff --git a/apps/studio/components/layouts/Navigation/LayoutHeader/AdminStudioButton.tsx b/apps/studio/components/layouts/Navigation/LayoutHeader/AdminStudioButton.tsx index 70069950c82..c894e5c29e4 100644 --- a/apps/studio/components/layouts/Navigation/LayoutHeader/AdminStudioButton.tsx +++ b/apps/studio/components/layouts/Navigation/LayoutHeader/AdminStudioButton.tsx @@ -16,7 +16,6 @@ export const AdminStudioButton = () => { return ( } tooltip={{ diff --git a/apps/studio/components/layouts/Navigation/LayoutHeader/FeedbackDropdown/FeedbackDropdown.tsx b/apps/studio/components/layouts/Navigation/LayoutHeader/FeedbackDropdown/FeedbackDropdown.tsx index 96f4df3b314..e9d9e3f0e84 100644 --- a/apps/studio/components/layouts/Navigation/LayoutHeader/FeedbackDropdown/FeedbackDropdown.tsx +++ b/apps/studio/components/layouts/Navigation/LayoutHeader/FeedbackDropdown/FeedbackDropdown.tsx @@ -65,7 +65,7 @@ export const FeedbackDropdown = ({ className }: { className?: string }) => {
What would you like to share?
- -
diff --git a/apps/studio/components/layouts/Navigation/LayoutHeader/FeedbackDropdown/FeedbackWidget.tsx b/apps/studio/components/layouts/Navigation/LayoutHeader/FeedbackDropdown/FeedbackWidget.tsx index 90ed45d204b..2b423b72b5b 100644 --- a/apps/studio/components/layouts/Navigation/LayoutHeader/FeedbackDropdown/FeedbackWidget.tsx +++ b/apps/studio/components/layouts/Navigation/LayoutHeader/FeedbackDropdown/FeedbackWidget.tsx @@ -180,10 +180,10 @@ export const FeedbackWidget = ({ onClose, onSwitchToIssueOptions }: FeedbackWidg
- -
@@ -237,7 +237,7 @@ export const FeedbackWidget = ({ onClose, onSwitchToIssueOptions }: FeedbackWidg
-
@@ -271,7 +271,6 @@ export const FeedbackWidget = ({ onClose, onSwitchToIssueOptions }: FeedbackWidg + @@ -174,7 +174,7 @@ export const LocalVersionPopover = () => { -
{selectedRedirectQuery?.data?.url && ( - diff --git a/apps/studio/components/layouts/ProjectLayout/ConnectingState.tsx b/apps/studio/components/layouts/ProjectLayout/ConnectingState.tsx index 5ae9884d3d9..a76cc86545d 100644 --- a/apps/studio/components/layouts/ProjectLayout/ConnectingState.tsx +++ b/apps/studio/components/layouts/ProjectLayout/ConnectingState.tsx @@ -89,10 +89,10 @@ const ConnectingState = ({ project }: ConnectingStateProps) => {
- -
- } disabled={isLoadingBackups} loading={isDownloading || isLoadingBackups} @@ -119,7 +118,7 @@ export const PauseFailedState = () => { -
- diff --git a/apps/studio/components/layouts/ProjectLayout/PausedState/ProjectPausedState.tsx b/apps/studio/components/layouts/ProjectLayout/PausedState/ProjectPausedState.tsx index cda99e5774f..1e0dceb7e0e 100644 --- a/apps/studio/components/layouts/ProjectLayout/PausedState/ProjectPausedState.tsx +++ b/apps/studio/components/layouts/ProjectLayout/PausedState/ProjectPausedState.tsx @@ -143,7 +143,7 @@ export const ProjectPausedState = ({ product }: ProjectPausedStateProps) => { {isFreePlan ? ( ) : ( - )} diff --git a/apps/studio/components/layouts/ProjectLayout/PausingState.tsx b/apps/studio/components/layouts/ProjectLayout/PausingState.tsx index d349a7dce7f..48e5e332191 100644 --- a/apps/studio/components/layouts/ProjectLayout/PausingState.tsx +++ b/apps/studio/components/layouts/ProjectLayout/PausingState.tsx @@ -106,7 +106,7 @@ export const PausingState = ({ project }: PausingStateProps) => {

{isTakingLongerThanExpected && (
-
- } disabled={isLoadingBackups} loading={isDownloading || isLoadingBackups} @@ -121,7 +120,7 @@ export const RestoreFailedState = () => { -
} loading={isDownloading} disabled={logicalBackups.length === 0} diff --git a/apps/studio/components/layouts/ProjectLayout/UnhealthyState.tsx b/apps/studio/components/layouts/ProjectLayout/UnhealthyState.tsx index 8d4c453309a..8372fd67c9d 100644 --- a/apps/studio/components/layouts/ProjectLayout/UnhealthyState.tsx +++ b/apps/studio/components/layouts/ProjectLayout/UnhealthyState.tsx @@ -66,7 +66,6 @@ export const UnhealthyState = () => {
-
-
diff --git a/apps/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx b/apps/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx index 7dcf8969319..be3a545b185 100644 --- a/apps/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx +++ b/apps/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx @@ -195,7 +195,6 @@ export const TableEditorMenu = () => { disabled={!canCreateTables} size="tiny" icon={} - variant="default" className="justify-start" onClick={() => snap.onAddTable()} tooltip={{ @@ -278,7 +277,6 @@ export const TableEditorMenu = () => {
diff --git a/apps/studio/components/layouts/Tabs/NewTab.tsx b/apps/studio/components/layouts/Tabs/NewTab.tsx index 834c40f0e2b..99834b94e32 100644 --- a/apps/studio/components/layouts/Tabs/NewTab.tsx +++ b/apps/studio/components/layouts/Tabs/NewTab.tsx @@ -49,11 +49,7 @@ export function NewTab() { Currently impersonating as - diff --git a/apps/studio/components/to-be-cleaned/ProductEmptyState.tsx b/apps/studio/components/to-be-cleaned/ProductEmptyState.tsx index bbf66438bc5..f9339986b89 100644 --- a/apps/studio/components/to-be-cleaned/ProductEmptyState.tsx +++ b/apps/studio/components/to-be-cleaned/ProductEmptyState.tsx @@ -64,7 +64,7 @@ const ProductEmptyState = ({
) : null} {infoButtonUrl && infoButtonLabel ? ( - )} diff --git a/apps/studio/components/ui/AIAssistantPanel/AIOptInModal.tsx b/apps/studio/components/ui/AIAssistantPanel/AIOptInModal.tsx index 489870732e8..d1cf07b466a 100644 --- a/apps/studio/components/ui/AIAssistantPanel/AIOptInModal.tsx +++ b/apps/studio/components/ui/AIAssistantPanel/AIOptInModal.tsx @@ -69,7 +69,7 @@ export const AIOptInModal = ({ visible, onCancel }: AIOptInModalProps) => {

)}
- ) : ( <> - - + diff --git a/apps/studio/components/ui/AIAssistantPanel/MessageMarkdown.tsx b/apps/studio/components/ui/AIAssistantPanel/MessageMarkdown.tsx index 745fe9fdfc9..70f452668a2 100644 --- a/apps/studio/components/ui/AIAssistantPanel/MessageMarkdown.tsx +++ b/apps/studio/components/ui/AIAssistantPanel/MessageMarkdown.tsx @@ -97,9 +97,7 @@ export const Hyperlink = memo(({ href, children }: { href?: string; children?: R - +
- ))} -
diff --git a/apps/studio/components/ui/AdvisorPanel/NotificationDetail.tsx b/apps/studio/components/ui/AdvisorPanel/NotificationDetail.tsx index 8952da6e26f..41bd0323745 100644 --- a/apps/studio/components/ui/AdvisorPanel/NotificationDetail.tsx +++ b/apps/studio/components/ui/AdvisorPanel/NotificationDetail.tsx @@ -79,7 +79,7 @@ export const NotificationDetail = ({ notification, onUpdateStatus }: Notificatio ? action.url.replace('[slug]', organization?.slug ?? data.org_slug ?? '_') : action.url return ( - ) @@ -101,7 +97,6 @@ export const NotificationDetail = ({ notification, onUpdateStatus }: Notificatio })} {notification.status === 'archived' ? ( ) : ( + )} @@ -156,7 +155,7 @@ const CreateEnsureRLSTriggerDialog = ({ iconOnly }: { iconOnly?: boolean }) => { - {
- + @@ -112,11 +110,7 @@ const UpdatedTermsOfServiceDialog = () => { - diff --git a/apps/studio/components/ui/BannerStack/Banners/BannerTableEditorQueueOperations.tsx b/apps/studio/components/ui/BannerStack/Banners/BannerTableEditorQueueOperations.tsx index ce687336672..1aa4468144e 100644 --- a/apps/studio/components/ui/BannerStack/Banners/BannerTableEditorQueueOperations.tsx +++ b/apps/studio/components/ui/BannerStack/Banners/BannerTableEditorQueueOperations.tsx @@ -61,7 +61,7 @@ export const BannerTableEditorQueueOperations = () => { Batch multiple row edits and review them before saving to your database

- diff --git a/apps/studio/components/ui/DataTable/DataTableViewOptions.tsx b/apps/studio/components/ui/DataTable/DataTableViewOptions.tsx index cd20a57a1ea..ab2bb95b202 100644 --- a/apps/studio/components/ui/DataTable/DataTableViewOptions.tsx +++ b/apps/studio/components/ui/DataTable/DataTableViewOptions.tsx @@ -38,7 +38,6 @@ export function DataTableViewOptions() { } actions={ - } diff --git a/apps/studio/components/ui/DataTable/RefreshButton.tsx b/apps/studio/components/ui/DataTable/RefreshButton.tsx index 17632181c50..4f9e09b8087 100644 --- a/apps/studio/components/ui/DataTable/RefreshButton.tsx +++ b/apps/studio/components/ui/DataTable/RefreshButton.tsx @@ -33,7 +33,6 @@ export const RefreshButton = ({ isLoading, onRefresh, shortcutId }: RefreshButto > - )} + {!hideClear && } diff --git a/apps/studio/components/ui/DateRangePicker.tsx b/apps/studio/components/ui/DateRangePicker.tsx index 3ed8f71000b..8d7931ca8aa 100644 --- a/apps/studio/components/ui/DateRangePicker.tsx +++ b/apps/studio/components/ui/DateRangePicker.tsx @@ -227,7 +227,7 @@ export const DateRangePicker = ({ return ( - diff --git a/apps/studio/components/ui/EditorPanel/EditorPanel.tsx b/apps/studio/components/ui/EditorPanel/EditorPanel.tsx index 65314d8200e..0aa1a7f94ea 100644 --- a/apps/studio/components/ui/EditorPanel/EditorPanel.tsx +++ b/apps/studio/components/ui/EditorPanel/EditorPanel.tsx @@ -403,7 +403,6 @@ export const EditorPanel = () => { @@ -624,7 +618,6 @@ export const EditorPanel = () => { )} + diff --git a/apps/studio/components/ui/ErrorBoundary/ClientSideExceptionHandler.tsx b/apps/studio/components/ui/ErrorBoundary/ClientSideExceptionHandler.tsx index 1b4534fa392..314c79f6075 100644 --- a/apps/studio/components/ui/ErrorBoundary/ClientSideExceptionHandler.tsx +++ b/apps/studio/components/ui/ErrorBoundary/ClientSideExceptionHandler.tsx @@ -80,7 +80,7 @@ export const ClientSideExceptionHandler = ({
- {actions?.map((action, index) => ( - ))} diff --git a/apps/studio/components/ui/ErrorBoundary/InsertBeforeRemoveChildErrorHandler.tsx b/apps/studio/components/ui/ErrorBoundary/InsertBeforeRemoveChildErrorHandler.tsx index 21c0b0adf50..e960c0b6c7b 100644 --- a/apps/studio/components/ui/ErrorBoundary/InsertBeforeRemoveChildErrorHandler.tsx +++ b/apps/studio/components/ui/ErrorBoundary/InsertBeforeRemoveChildErrorHandler.tsx @@ -54,7 +54,7 @@ export const InsertBeforeRemoveChildErrorHandler = ({
- )} diff --git a/apps/studio/components/ui/FilterPopover.tsx b/apps/studio/components/ui/FilterPopover.tsx index e79b916ed43..1ec5d6dbc4f 100644 --- a/apps/studio/components/ui/FilterPopover.tsx +++ b/apps/studio/components/ui/FilterPopover.tsx @@ -271,7 +271,6 @@ export const FilterPopover = >({
+ @@ -134,7 +132,7 @@ const LoadDataWarningDialog = ({ return ( - + event.preventDefault()}> @@ -167,9 +165,7 @@ const LoadDataWarningDialog = ({ - + diff --git a/apps/studio/components/ui/Logs/LogsExplorerHeader.tsx b/apps/studio/components/ui/Logs/LogsExplorerHeader.tsx index 26e7b376dc1..8da6e6538a5 100644 --- a/apps/studio/components/ui/Logs/LogsExplorerHeader.tsx +++ b/apps/studio/components/ui/Logs/LogsExplorerHeader.tsx @@ -83,11 +83,7 @@ const LogsExplorerHeader = ({ subtitle }: LogsExplorerHeaderProps) => { onCancel={() => setShowReference(false)} hideFooter triggerElement={ - } @@ -128,7 +124,6 @@ const LogsExplorerHeader = ({ subtitle }: LogsExplorerHeaderProps) => {
- {onResetFilter !== undefined && ( - - )} + {onResetFilter !== undefined && }
) } diff --git a/apps/studio/components/ui/OrganizationProjectSelector.tsx b/apps/studio/components/ui/OrganizationProjectSelector.tsx index fb3028e4d2e..d834de38e34 100644 --- a/apps/studio/components/ui/OrganizationProjectSelector.tsx +++ b/apps/studio/components/ui/OrganizationProjectSelector.tsx @@ -276,7 +276,6 @@ export const OrganizationProjectSelector = ({ ) : ( )} diff --git a/apps/studio/components/ui/RequestUpgradeToBillingOwners.tsx b/apps/studio/components/ui/RequestUpgradeToBillingOwners.tsx index 51fd2776169..04f093858cf 100644 --- a/apps/studio/components/ui/RequestUpgradeToBillingOwners.tsx +++ b/apps/studio/components/ui/RequestUpgradeToBillingOwners.tsx @@ -236,7 +236,7 @@ export const RequestUpgradeToBillingOwners = ({ -
@@ -247,15 +243,13 @@ export const ResourceExhaustionWarningBanner = () => {
) : learnMoreUrl !== undefined ? ( - ) : aiPrompt !== undefined ? ( - + ) : null} {correctionUrl !== undefined && ( - diff --git a/apps/studio/components/ui/SortDropdown.tsx b/apps/studio/components/ui/SortDropdown.tsx index 6c202d62045..0e8f2d098bc 100644 --- a/apps/studio/components/ui/SortDropdown.tsx +++ b/apps/studio/components/ui/SortDropdown.tsx @@ -29,10 +29,7 @@ export const SortDropdown = ({ options, value, setValue }: SortDropdownProps) => return ( - diff --git a/apps/studio/components/ui/SteppedFlow/SteppedFlow.tsx b/apps/studio/components/ui/SteppedFlow/SteppedFlow.tsx index 0d149df260c..961ec6491e6 100644 --- a/apps/studio/components/ui/SteppedFlow/SteppedFlow.tsx +++ b/apps/studio/components/ui/SteppedFlow/SteppedFlow.tsx @@ -115,7 +115,6 @@ export const SteppedFlow = ({ {currentIndex > 0 ? ( ) : null} {currentIndex === 0 && showCancel ? ( - ) : null} diff --git a/apps/studio/components/ui/UnknownInterface.tsx b/apps/studio/components/ui/UnknownInterface.tsx index 92b565f0ab2..747053bb0df 100644 --- a/apps/studio/components/ui/UnknownInterface.tsx +++ b/apps/studio/components/ui/UnknownInterface.tsx @@ -17,7 +17,7 @@ export const UnknownInterface = ({ title="Looking for something?" description="We couldn't find the page that you're looking for" > - diff --git a/apps/studio/components/ui/org-selector.tsx b/apps/studio/components/ui/org-selector.tsx index 1faff645c14..0edf5f1e5f5 100644 --- a/apps/studio/components/ui/org-selector.tsx +++ b/apps/studio/components/ui/org-selector.tsx @@ -158,7 +158,6 @@ export function OrganizationSelector({ setSearch('') setShowAll(true) }} - variant="default" > Show all organizations @@ -172,7 +171,7 @@ export function OrganizationSelector({ Need a new organization? - diff --git a/apps/studio/pages/account/tokens.tsx b/apps/studio/pages/account/tokens.tsx index b8ad06552c4..d3d0de033cc 100644 --- a/apps/studio/pages/account/tokens.tsx +++ b/apps/studio/pages/account/tokens.tsx @@ -46,12 +46,12 @@ const UserAccessTokens: NextPageWithLayout = () => { placeholder="Filter tokens" />
- -
@@ -234,7 +234,7 @@ export const CliLoginScreen = ({ } /> - diff --git a/apps/studio/pages/integrations/vercel/[slug]/deploy-button/new-project.tsx b/apps/studio/pages/integrations/vercel/[slug]/deploy-button/new-project.tsx index a01393288f3..cd98391a631 100644 --- a/apps/studio/pages/integrations/vercel/[slug]/deploy-button/new-project.tsx +++ b/apps/studio/pages/integrations/vercel/[slug]/deploy-button/new-project.tsx @@ -215,7 +215,7 @@ export function VercelConnectionError({ />
- } diff --git a/apps/studio/pages/partners/stripe/projects/login.tsx b/apps/studio/pages/partners/stripe/projects/login.tsx index 37ae262f3d4..509ed6540a9 100644 --- a/apps/studio/pages/partners/stripe/projects/login.tsx +++ b/apps/studio/pages/partners/stripe/projects/login.tsx @@ -138,7 +138,7 @@ export const StripeProjectsLoginPage: NextPageWithLayout = () => { } /> -
@@ -215,7 +215,7 @@ export const StripeProjectsLoginPage: NextPageWithLayout = () => { title="Unable to load authorization" description={error?.message} /> - diff --git a/apps/studio/pages/project/[ref]/auth/templates/[templateId].tsx b/apps/studio/pages/project/[ref]/auth/templates/[templateId].tsx index 4f5254f12f8..d8195556aa9 100644 --- a/apps/studio/pages/project/[ref]/auth/templates/[templateId].tsx +++ b/apps/studio/pages/project/[ref]/auth/templates/[templateId].tsx @@ -181,7 +181,7 @@ const RedirectToTemplates = () => { title="Unable to find template" description={`${templateId ? `The template "${templateId}"` : 'This template'} doesn’t seem to exist.`} > - @@ -260,9 +260,7 @@ const RedirectToTemplates = () => { {templateForm.formState.isDirty && ( - + )} diff --git a/apps/studio/pages/project/[ref]/database/indexes.tsx b/apps/studio/pages/project/[ref]/database/indexes.tsx index fac07b3af62..a1b80fed4fa 100644 --- a/apps/studio/pages/project/[ref]/database/indexes.tsx +++ b/apps/studio/pages/project/[ref]/database/indexes.tsx @@ -34,7 +34,7 @@ const IndexesPage: NextPageWithLayout = () => { className="no-underline" href={`${DOCS_URL}/guides/database/query-optimization`} /> - @@ -244,7 +239,7 @@ export const EdgeFunctionsIndexPageWrapper = ({ children }: PropsWithChildren) = - diff --git a/apps/studio/pages/project/[ref]/logs/explorer/index.tsx b/apps/studio/pages/project/[ref]/logs/explorer/index.tsx index 03f5e54e6cd..f74291b0d8c 100644 --- a/apps/studio/pages/project/[ref]/logs/explorer/index.tsx +++ b/apps/studio/pages/project/[ref]/logs/explorer/index.tsx @@ -517,7 +517,7 @@ export const LogsExplorerPage: NextPageWithLayout = () => { Review the ClickHouse SQL rewrite before accepting it
- diff --git a/apps/studio/pages/project/[ref]/logs/explorer/templates.tsx b/apps/studio/pages/project/[ref]/logs/explorer/templates.tsx index d5af19ee7cd..7a960b9f3f4 100644 --- a/apps/studio/pages/project/[ref]/logs/explorer/templates.tsx +++ b/apps/studio/pages/project/[ref]/logs/explorer/templates.tsx @@ -81,7 +81,6 @@ const Template = ({ projectRef, template }: { projectRef?: string; template: Log ) : hasCurrentWorkflowCompleted ? ( ) : ( setshowIncreaseDiskSizeModal(true)} tooltip={{ @@ -467,7 +465,7 @@ const renderDatabaseSizeAdditionalInfo = () => { is used when installing extensions, even if those extensions are inactive.

- , ) : ( - )} diff --git a/apps/studio/state/storage-explorer.tsx b/apps/studio/state/storage-explorer.tsx index a2c7b089308..5247b77b846 100644 --- a/apps/studio/state/storage-explorer.tsx +++ b/apps/studio/state/storage-explorer.tsx @@ -1788,12 +1788,7 @@ function createStorageExplorerState({ progressPrefix={`${remainingTime && !isNaN(remainingTime) && isFinite(remainingTime) && remainingTime !== 0 ? `${formatTime(remainingTime)} remaining – ` : ''}`} action={ toastId && ( - ) diff --git a/apps/www/_go/events/accenture-reinvention-2026/contest.tsx b/apps/www/_go/events/accenture-reinvention-2026/contest.tsx index 72cb63100b0..a0c3b136a0a 100644 --- a/apps/www/_go/events/accenture-reinvention-2026/contest.tsx +++ b/apps/www/_go/events/accenture-reinvention-2026/contest.tsx @@ -79,7 +79,7 @@ const page: GoPageInput = { Learn about Supabase AI Tools -

diff --git a/apps/www/_go/events/ai-engineer-europe-2026/contest-thank-you.tsx b/apps/www/_go/events/ai-engineer-europe-2026/contest-thank-you.tsx index 807fd1e1dbf..80b4e3df8be 100644 --- a/apps/www/_go/events/ai-engineer-europe-2026/contest-thank-you.tsx +++ b/apps/www/_go/events/ai-engineer-europe-2026/contest-thank-you.tsx @@ -21,7 +21,7 @@ const page: GoPageInput = { description: "If you haven't already, create your account and start building.", children: (

-
-

diff --git a/apps/www/_go/events/dash-2026/contest.tsx b/apps/www/_go/events/dash-2026/contest.tsx index a0a96eb2925..aded5437805 100644 --- a/apps/www/_go/events/dash-2026/contest.tsx +++ b/apps/www/_go/events/dash-2026/contest.tsx @@ -57,7 +57,7 @@ const page: GoPageInput = {

Supabase

-

diff --git a/apps/www/_go/events/dash-2026/exec-dinner-thank-you.tsx b/apps/www/_go/events/dash-2026/exec-dinner-thank-you.tsx index a829c6a4294..fa43f3f1de1 100644 --- a/apps/www/_go/events/dash-2026/exec-dinner-thank-you.tsx +++ b/apps/www/_go/events/dash-2026/exec-dinner-thank-you.tsx @@ -22,7 +22,7 @@ const page: GoPageInput = { description: 'Learn more about what we are building at Supabase.', children: (

-
diff --git a/apps/www/_go/events/mcp-dev-nyc-2026/contest-thank-you.tsx b/apps/www/_go/events/mcp-dev-nyc-2026/contest-thank-you.tsx index e787eb8264d..3ae184c25b9 100644 --- a/apps/www/_go/events/mcp-dev-nyc-2026/contest-thank-you.tsx +++ b/apps/www/_go/events/mcp-dev-nyc-2026/contest-thank-you.tsx @@ -21,7 +21,7 @@ const page: GoPageInput = { description: "If you haven't already, create your account and start building.", children: (
-
-

diff --git a/apps/www/_go/events/pgconf-dev-2026/contest-thank-you.tsx b/apps/www/_go/events/pgconf-dev-2026/contest-thank-you.tsx index 34704fc957d..f5354497172 100644 --- a/apps/www/_go/events/pgconf-dev-2026/contest-thank-you.tsx +++ b/apps/www/_go/events/pgconf-dev-2026/contest-thank-you.tsx @@ -21,7 +21,7 @@ const page: GoPageInput = { description: "If you haven't already, create your account and start building.", children: (

-
-

diff --git a/apps/www/_go/events/postgres-summit-2026/contest-thank-you.tsx b/apps/www/_go/events/postgres-summit-2026/contest-thank-you.tsx index f4493cc57e6..c1d81ff7309 100644 --- a/apps/www/_go/events/postgres-summit-2026/contest-thank-you.tsx +++ b/apps/www/_go/events/postgres-summit-2026/contest-thank-you.tsx @@ -21,7 +21,7 @@ const page: GoPageInput = { description: "If you haven't already, create your account and start building.", children: (

-
-

diff --git a/apps/www/_go/events/postgresconf-sjc-2026/contest-thank-you.tsx b/apps/www/_go/events/postgresconf-sjc-2026/contest-thank-you.tsx index 70be9d30c48..632e1b99976 100644 --- a/apps/www/_go/events/postgresconf-sjc-2026/contest-thank-you.tsx +++ b/apps/www/_go/events/postgresconf-sjc-2026/contest-thank-you.tsx @@ -22,7 +22,7 @@ const page: GoPageInput = { description: "If you haven't already, create your account and start building.", children: (

- -

diff --git a/apps/www/_go/events/select-2026/partner-day-thank-you.tsx b/apps/www/_go/events/select-2026/partner-day-thank-you.tsx index 17e4e658ebe..eab5a91ecae 100644 --- a/apps/www/_go/events/select-2026/partner-day-thank-you.tsx +++ b/apps/www/_go/events/select-2026/partner-day-thank-you.tsx @@ -22,7 +22,7 @@ const page: GoPageInput = { description: 'Learn more about what we are building at Supabase.', children: (

-
diff --git a/apps/www/_go/events/select-2026/vip-dinner-thank-you.tsx b/apps/www/_go/events/select-2026/vip-dinner-thank-you.tsx index 5413edb9444..2f29e152b27 100644 --- a/apps/www/_go/events/select-2026/vip-dinner-thank-you.tsx +++ b/apps/www/_go/events/select-2026/vip-dinner-thank-you.tsx @@ -22,7 +22,7 @@ const page: GoPageInput = { description: 'Learn more about what we are building at Supabase.', children: (
-
diff --git a/apps/www/_go/events/select-2026/vip-experience-thank-you.tsx b/apps/www/_go/events/select-2026/vip-experience-thank-you.tsx index 805c214082c..d0145dd5733 100644 --- a/apps/www/_go/events/select-2026/vip-experience-thank-you.tsx +++ b/apps/www/_go/events/select-2026/vip-experience-thank-you.tsx @@ -22,7 +22,7 @@ const page: GoPageInput = { description: 'Learn more about what we are building at Supabase.', children: (
-
diff --git a/apps/www/_go/events/startup-grind-2026/contest.tsx b/apps/www/_go/events/startup-grind-2026/contest.tsx index 295f37f9464..01c3afabc31 100644 --- a/apps/www/_go/events/startup-grind-2026/contest.tsx +++ b/apps/www/_go/events/startup-grind-2026/contest.tsx @@ -44,7 +44,7 @@ const page: GoPageInput = {
  • Load data into a Supabase database
  • Complete these steps by Monday, May 11, 2026 at 12:00 PM PST
  • -

    diff --git a/apps/www/_go/events/stripe-sessions-2026/exec-dinner-thank-you.tsx b/apps/www/_go/events/stripe-sessions-2026/exec-dinner-thank-you.tsx index 9696f8a9714..530ddd79d9b 100644 --- a/apps/www/_go/events/stripe-sessions-2026/exec-dinner-thank-you.tsx +++ b/apps/www/_go/events/stripe-sessions-2026/exec-dinner-thank-you.tsx @@ -22,7 +22,7 @@ const page: GoPageInput = { description: 'Learn more about what we are building at Supabase.', children: (

    -
    diff --git a/apps/www/_go/events/sxsw-2026/contest.tsx b/apps/www/_go/events/sxsw-2026/contest.tsx index 93f703e2e6b..4d18e0f0f29 100644 --- a/apps/www/_go/events/sxsw-2026/contest.tsx +++ b/apps/www/_go/events/sxsw-2026/contest.tsx @@ -45,7 +45,7 @@ const page: GoPageInput = {
  • Complete these steps by Monday, March 30, 2026 at 12:00 PM PST
  • -

    diff --git a/apps/www/_go/thank-you/example-thank-you.tsx b/apps/www/_go/thank-you/example-thank-you.tsx index 58df5e564b6..80641077db9 100644 --- a/apps/www/_go/thank-you/example-thank-you.tsx +++ b/apps/www/_go/thank-you/example-thank-you.tsx @@ -21,7 +21,7 @@ const page: GoPageInput = { 'Explore our documentation and tutorials to get started with Supabase right away.', children: (

    - - -
    diff --git a/apps/www/app/(products)/auth/_components/HighlightsSection.tsx b/apps/www/app/(products)/auth/_components/HighlightsSection.tsx index 78e062e23f0..4e379c3d424 100644 --- a/apps/www/app/(products)/auth/_components/HighlightsSection.tsx +++ b/apps/www/app/(products)/auth/_components/HighlightsSection.tsx @@ -64,7 +64,7 @@ export function HighlightsSection() {
    -
    diff --git a/apps/www/app/(products)/database/_components/Hero.tsx b/apps/www/app/(products)/database/_components/Hero.tsx index 778c147e7f9..0854c325efa 100644 --- a/apps/www/app/(products)/database/_components/Hero.tsx +++ b/apps/www/app/(products)/database/_components/Hero.tsx @@ -20,7 +20,7 @@ export function Hero() {
    -
    diff --git a/apps/www/app/(products)/database/_components/HighlightsSection.tsx b/apps/www/app/(products)/database/_components/HighlightsSection.tsx index a64273bd9ad..481acf1c5d2 100644 --- a/apps/www/app/(products)/database/_components/HighlightsSection.tsx +++ b/apps/www/app/(products)/database/_components/HighlightsSection.tsx @@ -74,7 +74,7 @@ export function HighlightsSection() {
    -
    diff --git a/apps/www/app/(products)/edge-functions/_components/CTASection.tsx b/apps/www/app/(products)/edge-functions/_components/CTASection.tsx index af5f4df924a..c1b921f5f39 100644 --- a/apps/www/app/(products)/edge-functions/_components/CTASection.tsx +++ b/apps/www/app/(products)/edge-functions/_components/CTASection.tsx @@ -83,7 +83,7 @@ export function CTASection() {
    -
    diff --git a/apps/www/app/(products)/edge-functions/_components/Hero.tsx b/apps/www/app/(products)/edge-functions/_components/Hero.tsx index a5973d1d731..57665fcfc2e 100644 --- a/apps/www/app/(products)/edge-functions/_components/Hero.tsx +++ b/apps/www/app/(products)/edge-functions/_components/Hero.tsx @@ -21,7 +21,7 @@ export function Hero() {
    -
    diff --git a/apps/www/app/(products)/realtime/_components/Hero.tsx b/apps/www/app/(products)/realtime/_components/Hero.tsx index 121d517500b..7dd04c79cd3 100644 --- a/apps/www/app/(products)/realtime/_components/Hero.tsx +++ b/apps/www/app/(products)/realtime/_components/Hero.tsx @@ -20,7 +20,7 @@ export function Hero() {
    -
    diff --git a/apps/www/app/(products)/storage/_components/BucketTypesSection.tsx b/apps/www/app/(products)/storage/_components/BucketTypesSection.tsx index 5587e5e30f1..24ee0e94747 100644 --- a/apps/www/app/(products)/storage/_components/BucketTypesSection.tsx +++ b/apps/www/app/(products)/storage/_components/BucketTypesSection.tsx @@ -64,7 +64,7 @@ export function BucketTypesSection() {
    -
    diff --git a/apps/www/app/(products)/storage/_components/Hero.tsx b/apps/www/app/(products)/storage/_components/Hero.tsx index d6147591b13..4e6d340841e 100644 --- a/apps/www/app/(products)/storage/_components/Hero.tsx +++ b/apps/www/app/(products)/storage/_components/Hero.tsx @@ -20,7 +20,7 @@ export function Hero() {
    -
    diff --git a/apps/www/app/partners/catalog/IntegrationsContent.tsx b/apps/www/app/partners/catalog/IntegrationsContent.tsx index 6b4b18cb67e..f5779132da5 100644 --- a/apps/www/app/partners/catalog/IntegrationsContent.tsx +++ b/apps/www/app/partners/catalog/IntegrationsContent.tsx @@ -237,7 +237,7 @@ export default function IntegrationsContent({ {/* Mobile-only: opens bottom sheet with filters */} -
    - - diff --git a/apps/www/components/Blog/BlogFilters.tsx b/apps/www/components/Blog/BlogFilters.tsx index 0941f3e0486..c330e5cbc7b 100644 --- a/apps/www/components/Blog/BlogFilters.tsx +++ b/apps/www/components/Blog/BlogFilters.tsx @@ -193,7 +193,6 @@ function BlogFilters({ view, setView, onFilterChange, onSearch }: Props) { - - - diff --git a/apps/www/components/Events/EventsFilters.tsx b/apps/www/components/Events/EventsFilters.tsx index 9f4a368f7bc..fb852432e89 100644 --- a/apps/www/components/Events/EventsFilters.tsx +++ b/apps/www/components/Events/EventsFilters.tsx @@ -237,12 +237,7 @@ function EventFilters({ allEvents, setEvents, categories, onDemandEvents }: Prop animate={{ opacity: 1 }} exit={{ opacity: 0, transition: { duration: 0.05 } }} > - diff --git a/apps/www/components/Examples/ExamplesCarousel.tsx b/apps/www/components/Examples/ExamplesCarousel.tsx index 4ded7ff0d56..187d082df20 100644 --- a/apps/www/components/Examples/ExamplesCarousel.tsx +++ b/apps/www/components/Examples/ExamplesCarousel.tsx @@ -31,7 +31,7 @@ const ExamplesCarousel = ({

    {title}

    {cta && ( - )} diff --git a/apps/www/components/LaunchWeek/11/Releases/PrizeActions.tsx b/apps/www/components/LaunchWeek/11/Releases/PrizeActions.tsx index c14a785daa3..a51de086f38 100644 --- a/apps/www/components/LaunchWeek/11/Releases/PrizeActions.tsx +++ b/apps/www/components/LaunchWeek/11/Releases/PrizeActions.tsx @@ -7,7 +7,7 @@ export default function PrizeActions() { -
    diff --git a/apps/www/components/LaunchWeek/12/Releases/PrizeActions.tsx b/apps/www/components/LaunchWeek/12/Releases/PrizeActions.tsx index c14a785daa3..a51de086f38 100644 --- a/apps/www/components/LaunchWeek/12/Releases/PrizeActions.tsx +++ b/apps/www/components/LaunchWeek/12/Releases/PrizeActions.tsx @@ -7,7 +7,7 @@ export default function PrizeActions() { - diff --git a/apps/www/components/LaunchWeek/13/Releases/PrizeActions.tsx b/apps/www/components/LaunchWeek/13/Releases/PrizeActions.tsx index c14a785daa3..a51de086f38 100644 --- a/apps/www/components/LaunchWeek/13/Releases/PrizeActions.tsx +++ b/apps/www/components/LaunchWeek/13/Releases/PrizeActions.tsx @@ -7,7 +7,7 @@ export default function PrizeActions() { - diff --git a/apps/www/components/LaunchWeek/5/ScheduleInfo.tsx b/apps/www/components/LaunchWeek/5/ScheduleInfo.tsx index abaa3149ea0..163f1c6d6a8 100644 --- a/apps/www/components/LaunchWeek/5/ScheduleInfo.tsx +++ b/apps/www/components/LaunchWeek/5/ScheduleInfo.tsx @@ -1,5 +1,5 @@ -import { Button } from 'ui' import Link from 'next/link' +import { Button } from 'ui' export function ScheduleInfo() { return ( @@ -22,7 +22,7 @@ export function ScheduleInfo() {

    -
    diff --git a/apps/www/components/Nav/MobileMenu.tsx b/apps/www/components/Nav/MobileMenu.tsx index a5c2c842a70..6350a133a51 100644 --- a/apps/www/components/Nav/MobileMenu.tsx +++ b/apps/www/components/Nav/MobileMenu.tsx @@ -275,7 +275,7 @@ export const MobileMenu = ({ open, setOpen, menu }: Props) => { }) } > -
    )} diff --git a/apps/www/components/Sections/FunctionsUsecases.tsx b/apps/www/components/Sections/FunctionsUsecases.tsx index 57e48e518ae..ae03290e84b 100644 --- a/apps/www/components/Sections/FunctionsUsecases.tsx +++ b/apps/www/components/Sections/FunctionsUsecases.tsx @@ -80,7 +80,7 @@ function FunctionsUsecases(props: Props) { ) })} {props.documentation_link && ( - - )} diff --git a/apps/www/components/Sections/ProductHeader.tsx b/apps/www/components/Sections/ProductHeader.tsx index 32618266e48..9ccce0c8b6e 100644 --- a/apps/www/components/Sections/ProductHeader.tsx +++ b/apps/www/components/Sections/ProductHeader.tsx @@ -67,7 +67,7 @@ const ProductHeader = (props: Types) => { {props.documentation_url && ( - )} {props.video && ( - )} {props.secondaryCta && ( - )} {props.video && ( - )} {props.secondaryCta && ( - diff --git a/apps/www/components/Sections/TimedTabsSection.tsx b/apps/www/components/Sections/TimedTabsSection.tsx index 919fadc95c2..3c8d17eac58 100644 --- a/apps/www/components/Sections/TimedTabsSection.tsx +++ b/apps/www/components/Sections/TimedTabsSection.tsx @@ -139,7 +139,7 @@ const TimedTabsSection = ({

    {paragraph}

    {cta && ( - )} diff --git a/apps/www/components/Sections/UseCasesSection.tsx b/apps/www/components/Sections/UseCasesSection.tsx index 1b1571e2250..1bf2ca9b202 100644 --- a/apps/www/components/Sections/UseCasesSection.tsx +++ b/apps/www/components/Sections/UseCasesSection.tsx @@ -82,11 +82,11 @@ const UseCase = ({ {useCase.cta && (useCase.cta.isDisabled ? ( - ) : ( - {secondaryCta && ( - )} diff --git a/apps/www/components/Solutions/TwoColumnsSection.tsx b/apps/www/components/Solutions/TwoColumnsSection.tsx index 5986cb24d36..8daa0f23ab2 100644 --- a/apps/www/components/Solutions/TwoColumnsSection.tsx +++ b/apps/www/components/Solutions/TwoColumnsSection.tsx @@ -54,7 +54,6 @@ const CodeSnippet = ({ prompt }: { prompt: AIPrompt }) => { diff --git a/apps/www/components/Supasquad/CtaSection.tsx b/apps/www/components/Supasquad/CtaSection.tsx index fcf586d0959..65bdd6a847a 100644 --- a/apps/www/components/Supasquad/CtaSection.tsx +++ b/apps/www/components/Supasquad/CtaSection.tsx @@ -42,7 +42,7 @@ const CtaSection = ({ id, title, subtitle, primaryCta, secondaryCta, className } {secondaryCta && ( - )} diff --git a/apps/www/components/SurveyResults/SurveyChart.tsx b/apps/www/components/SurveyResults/SurveyChart.tsx index 8dc7e236468..ed831b50a1f 100644 --- a/apps/www/components/SurveyResults/SurveyChart.tsx +++ b/apps/www/components/SurveyResults/SurveyChart.tsx @@ -475,12 +475,7 @@ export function SurveyChart({ !dataError && chartData.length > 3 && (
    -
    @@ -529,7 +524,6 @@ function SurveyFilter({ )} - @@ -110,7 +107,7 @@ const Index = () => { action={`https://obuldanrptloktxcffvn.supabase.co/storage/v1/object/public/supabase-brand-assets/connect-supabase/connect-supabase.zip`} className="mt-3" > - diff --git a/apps/www/pages/changelog.tsx b/apps/www/pages/changelog.tsx index d91c86e625d..d1a7d23fbeb 100644 --- a/apps/www/pages/changelog.tsx +++ b/apps/www/pages/changelog.tsx @@ -261,7 +261,6 @@ function ChangelogIndex({ featured, restIndex, allIndex }: PageProps) {
    )} {feature.blogUrl && ( - )} diff --git a/apps/www/pages/legal/customer-resources/subprocessor-list.tsx b/apps/www/pages/legal/customer-resources/subprocessor-list.tsx index 71ef1c89ed8..473057652b3 100644 --- a/apps/www/pages/legal/customer-resources/subprocessor-list.tsx +++ b/apps/www/pages/legal/customer-resources/subprocessor-list.tsx @@ -45,7 +45,7 @@ export default function SubprocessorListPage() {
    - -
    diff --git a/packages/ui-patterns/src/Chart/index.tsx b/packages/ui-patterns/src/Chart/index.tsx index cbc4dff4bc2..6ede284c26c 100644 --- a/packages/ui-patterns/src/Chart/index.tsx +++ b/packages/ui-patterns/src/Chart/index.tsx @@ -189,7 +189,6 @@ const ChartActions = React.forwardRef(
    diff --git a/packages/ui-patterns/src/CommandMenu/prepackaged/DocsSearch/DocsSearchPage.tsx b/packages/ui-patterns/src/CommandMenu/prepackaged/DocsSearch/DocsSearchPage.tsx index 378b2fedbdc..fa764fddff8 100644 --- a/packages/ui-patterns/src/CommandMenu/prepackaged/DocsSearch/DocsSearchPage.tsx +++ b/packages/ui-patterns/src/CommandMenu/prepackaged/DocsSearch/DocsSearchPage.tsx @@ -301,7 +301,7 @@ const DocsSearchPage = () => {

    No results found.

    -
    @@ -313,7 +313,7 @@ const DocsSearchPage = () => { Sorry, looks like we're having some issues with search!

    Please try again in a bit.

    -
    diff --git a/packages/ui-patterns/src/ConsentToast/index.tsx b/packages/ui-patterns/src/ConsentToast/index.tsx index 1f2af86f9ac..57588d7aafe 100644 --- a/packages/ui-patterns/src/ConsentToast/index.tsx +++ b/packages/ui-patterns/src/ConsentToast/index.tsx @@ -45,12 +45,7 @@ export const ConsentToast = ({ onAccept = noop, onOptOut = noop }: ConsentToastP
    - )} diff --git a/packages/ui-patterns/src/McpUrlBuilder/components/ClientSelectDropdown.tsx b/packages/ui-patterns/src/McpUrlBuilder/components/ClientSelectDropdown.tsx index e1f7dccf2e2..4fef2f2a76b 100644 --- a/packages/ui-patterns/src/McpUrlBuilder/components/ClientSelectDropdown.tsx +++ b/packages/ui-patterns/src/McpUrlBuilder/components/ClientSelectDropdown.tsx @@ -84,7 +84,6 @@ export const ClientSelectDropdown = ({ - +
    ) diff --git a/packages/ui-patterns/src/Row/index.tsx b/packages/ui-patterns/src/Row/index.tsx index 478991d3fed..7069d9302d0 100644 --- a/packages/ui-patterns/src/Row/index.tsx +++ b/packages/ui-patterns/src/Row/index.tsx @@ -147,7 +147,6 @@ export const Row = forwardRef(function Row(
    {showArrows && canScrollLeft && (
    diff --git a/packages/ui-patterns/src/SkipToContent/SkipToContent.tsx b/packages/ui-patterns/src/SkipToContent/SkipToContent.tsx index c07d20eb2a6..654f9cb1ce7 100644 --- a/packages/ui-patterns/src/SkipToContent/SkipToContent.tsx +++ b/packages/ui-patterns/src/SkipToContent/SkipToContent.tsx @@ -26,7 +26,7 @@ function SkipToContent({ href, children = 'Skip to content', className }: SkipTo className )} > - diff --git a/packages/ui-patterns/src/form/FormLayout2.tsx b/packages/ui-patterns/src/form/FormLayout2.tsx index a8bbc05605f..1856fbce614 100644 --- a/packages/ui-patterns/src/form/FormLayout2.tsx +++ b/packages/ui-patterns/src/form/FormLayout2.tsx @@ -419,7 +419,7 @@ export const Page = () => { /> - + diff --git a/packages/ui-patterns/src/form/KeyValueFieldArray/KeyValueFieldArray.tsx b/packages/ui-patterns/src/form/KeyValueFieldArray/KeyValueFieldArray.tsx index 98f5493efd7..12e6f949b8b 100644 --- a/packages/ui-patterns/src/form/KeyValueFieldArray/KeyValueFieldArray.tsx +++ b/packages/ui-patterns/src/form/KeyValueFieldArray/KeyValueFieldArray.tsx @@ -165,7 +165,6 @@ export const KeyValueFieldArray = < />