diff --git a/apps/design-system/__registry__/default/block/chart-bar-interactive.tsx b/apps/design-system/__registry__/default/block/chart-bar-interactive.tsx index 655787cda64..fca68de5bc7 100644 --- a/apps/design-system/__registry__/default/block/chart-bar-interactive.tsx +++ b/apps/design-system/__registry__/default/block/chart-bar-interactive.tsx @@ -146,7 +146,7 @@ export default function Component() { {['desktop', 'mobile'].map((key) => { const chart = key as keyof typeof chartConfig return ( - @@ -263,7 +269,12 @@ function TemplatesPage({ onNavigateToSmtp }: { onNavigateToSmtp: () => void }) { )} /> - 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 4377bee9ec1..a3b250d71e0 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 @@ -261,6 +261,7 @@ export default function PageLayoutEdgeFunction() { {pages.map((page) => ( @@ -251,7 +254,10 @@ function DataSources({ schema }: { schema: any }) { {schema[dataSource].block.attributes[attribute].type ?? ( - diff --git a/apps/docs/features/directives/CodeSample.client.tsx b/apps/docs/features/directives/CodeSample.client.tsx index ea206c1a492..61542c0ff6a 100644 --- a/apps/docs/features/directives/CodeSample.client.tsx +++ b/apps/docs/features/directives/CodeSample.client.tsx @@ -2,7 +2,6 @@ import Link from 'next/link' import { useState, type PropsWithChildren } from 'react' - import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from 'ui' import { Admonition } from 'ui-patterns/admonition' @@ -42,7 +41,10 @@ function MultipleSources({ children, sources }: PropsWithChildren<{ sources: (st {children} - diff --git a/apps/docs/features/docs/Reference.navigation.client.tsx b/apps/docs/features/docs/Reference.navigation.client.tsx index e6308f3fcd6..4ddf294fd20 100644 --- a/apps/docs/features/docs/Reference.navigation.client.tsx +++ b/apps/docs/features/docs/Reference.navigation.client.tsx @@ -331,6 +331,7 @@ function CompoundRefLink({ } + actions={} /> ) @@ -87,7 +87,9 @@ describe('IntegrationOverviewTab', () => { }) it('disables actions when extensions are uninstalled and hideRequiredExtensionsSection is false', () => { - customRender(Enable integration} />) + customRender( + Enable integration} /> + ) const actionsArea = screen.getByText('Enable integration').closest('[aria-disabled]') expect(actionsArea).toHaveAttribute('aria-disabled', 'true') diff --git a/apps/studio/components/interfaces/LocalDropdown.test.tsx b/apps/studio/components/interfaces/LocalDropdown.test.tsx index f34fa0c2b7f..5afef5f725f 100644 --- a/apps/studio/components/interfaces/LocalDropdown.test.tsx +++ b/apps/studio/components/interfaces/LocalDropdown.test.tsx @@ -70,7 +70,9 @@ vi.mock('ui', async () => { children, ...props }: React.ButtonHTMLAttributes & { children?: ReactNode }) => ( - + ), cn: (...classes: Array) => classes.filter(Boolean).join(' '), DropdownMenu: ({ children }: { children: ReactNode }) =>
{children}
, @@ -92,6 +94,7 @@ vi.mock('ui', async () => {
{children}
) : ( , + }) => ( + + ), Tooltip: ({ children }: { children: ReactNode }) =>
{children}
, TooltipContent: ({ children }: { children: ReactNode }) =>
{children}
, TooltipTrigger: ({ children }: { children: ReactNode }) =>
{children}
, diff --git a/apps/studio/components/interfaces/Platform/Webhooks/PlatformWebhooksEndpointDetails.test.tsx b/apps/studio/components/interfaces/Platform/Webhooks/PlatformWebhooksEndpointDetails.test.tsx index 579f7c8c796..4f1a0327051 100644 --- a/apps/studio/components/interfaces/Platform/Webhooks/PlatformWebhooksEndpointDetails.test.tsx +++ b/apps/studio/components/interfaces/Platform/Webhooks/PlatformWebhooksEndpointDetails.test.tsx @@ -27,7 +27,7 @@ vi.mock('@/components/ui/ButtonTooltip', () => ({ type: _type, ...props }: any) => ( - diff --git a/apps/studio/components/interfaces/Settings/General/Project.test.tsx b/apps/studio/components/interfaces/Settings/General/Project.test.tsx index 82d5cce7184..f5d6803b62d 100644 --- a/apps/studio/components/interfaces/Settings/General/Project.test.tsx +++ b/apps/studio/components/interfaces/Settings/General/Project.test.tsx @@ -27,7 +27,14 @@ vi.mock('ui', () => ({ children: ReactNode asChild?: boolean type?: string - }) => (asChild ? <>{children} : ), + }) => + asChild ? ( + <>{children} + ) : ( + + ), Card: ({ children }: { children: ReactNode }) =>
{children}
, CardContent: ({ children }: { children: ReactNode }) =>
{children}
, })) diff --git a/apps/studio/components/interfaces/Storage/__tests__/DeleteBucketModal.test.tsx b/apps/studio/components/interfaces/Storage/__tests__/DeleteBucketModal.test.tsx index b0fbecf5235..bfb0e7201cf 100644 --- a/apps/studio/components/interfaces/Storage/__tests__/DeleteBucketModal.test.tsx +++ b/apps/studio/components/interfaces/Storage/__tests__/DeleteBucketModal.test.tsx @@ -29,7 +29,9 @@ const Page = ({ onClose }: { onClose: () => void }) => { const [open, setOpen] = useState(false) return ( - + void }) => { const [open, setOpen] = useState(false) return ( - + void }) => { const [open, setOpen] = useState(false) return ( - + null, })) vi.mock('@/components/ui/ButtonTooltip', () => ({ - ButtonTooltip: ({ children, ...props }: any) => , + ButtonTooltip: ({ children, ...props }: any) => ( + + ), })) vi.mock('@/components/ui/PartnerIcon', () => ({ default: () =>
, diff --git a/apps/studio/components/ui/AIAssistantPanel/EdgeFunctionRenderer.test.tsx b/apps/studio/components/ui/AIAssistantPanel/EdgeFunctionRenderer.test.tsx index b4246956938..0d22406570b 100644 --- a/apps/studio/components/ui/AIAssistantPanel/EdgeFunctionRenderer.test.tsx +++ b/apps/studio/components/ui/AIAssistantPanel/EdgeFunctionRenderer.test.tsx @@ -58,8 +58,12 @@ vi.mock('../EdgeFunctionBlock/EdgeFunctionBlock', () => ({ {showReplaceWarning && (

An edge function with this name already exists.

- - + +
)}
@@ -73,7 +77,11 @@ vi.mock('./ConfirmFooter', () => ({ }: { confirmLabel?: string onConfirm?: () => void - }) => , + }) => ( + + ), })) describe('EdgeFunctionRenderer', () => { diff --git a/apps/studio/components/ui/Shortcut.test.tsx b/apps/studio/components/ui/Shortcut.test.tsx index b0b90d101ec..86634594251 100644 --- a/apps/studio/components/ui/Shortcut.test.tsx +++ b/apps/studio/components/ui/Shortcut.test.tsx @@ -28,7 +28,7 @@ describe('Shortcut', () => { it('renders the wrapped child', () => { render( {}}> - + ) expect(screen.getByRole('button', { name: 'Open' })).toBeInTheDocument() @@ -37,7 +37,7 @@ describe('Shortcut', () => { it('wraps the child in ShortcutTooltip', () => { render( {}}> - + ) const tooltip = screen.getByTestId('shortcut-tooltip') @@ -50,7 +50,7 @@ describe('Shortcut', () => { const handler = vi.fn() render( - + ) expect(mockUseShortcut).toHaveBeenCalledWith(SHORTCUT_IDS.ACTION_BAR_SAVE, handler, undefined) @@ -61,7 +61,7 @@ describe('Shortcut', () => { const options = { enabled: true, registerInCommandMenu: true } render( - + ) expect(mockUseShortcut).toHaveBeenCalledWith(SHORTCUT_IDS.ACTION_BAR_SAVE, handler, options) @@ -75,7 +75,7 @@ describe('Shortcut', () => { onTrigger={handler} options={{ enabled: false }} > - + ) expect(mockUseShortcut).toHaveBeenLastCalledWith(SHORTCUT_IDS.ACTION_BAR_SAVE, handler, { @@ -84,7 +84,7 @@ describe('Shortcut', () => { rerender( - + ) expect(mockUseShortcut).toHaveBeenLastCalledWith(SHORTCUT_IDS.ACTION_BAR_SAVE, handler, { @@ -96,14 +96,14 @@ describe('Shortcut', () => { const handler = vi.fn() const { rerender } = render( - + ) expect(mockUseShortcut).toHaveBeenLastCalledWith(SHORTCUT_IDS.NAV_HOME, handler, undefined) rerender( - + ) expect(mockUseShortcut).toHaveBeenLastCalledWith( @@ -118,7 +118,7 @@ describe('Shortcut', () => { it('forwards shortcutId to ShortcutTooltip', () => { render( {}}> - + ) expect(mockShortcutTooltip).toHaveBeenCalled() @@ -135,7 +135,7 @@ describe('Shortcut', () => { sideOffset={8} delayDuration={100} > - + ) const props = mockShortcutTooltip.mock.calls.at(-1)![0] @@ -148,7 +148,7 @@ describe('Shortcut', () => { it('forwards label override to ShortcutTooltip', () => { render( {}} label="Go home"> - + ) expect(mockShortcutTooltip.mock.calls.at(-1)![0].label).toBe('Go home') @@ -157,7 +157,7 @@ describe('Shortcut', () => { it('omits undefined positioning props rather than fabricating them', () => { render( {}}> - + ) const props = mockShortcutTooltip.mock.calls.at(-1)![0] @@ -175,7 +175,9 @@ describe('Shortcut', () => { const onTrigger = vi.fn() render( - + ) @@ -188,7 +190,7 @@ describe('Shortcut', () => { const onTrigger = vi.fn() render( - + ) expect(onTrigger).not.toHaveBeenCalled() diff --git a/apps/studio/scripts/ratchet-rules.json b/apps/studio/scripts/ratchet-rules.json index 80826ac1e4a..4f34402cd78 100644 --- a/apps/studio/scripts/ratchet-rules.json +++ b/apps/studio/scripts/ratchet-rules.json @@ -19,7 +19,6 @@ "jsx-a11y/anchor-is-valid", "jsx-a11y/heading-has-content", "jsx-a11y/no-distracting-elements", - "supabase/require-explicit-tabindex", "valtio/state-snapshot-rule", "react-hook-form/no-use-watch" ] diff --git a/apps/studio/tests/components/SQLEditor/SQLEditor.test.tsx b/apps/studio/tests/components/SQLEditor/SQLEditor.test.tsx index 9d6718f24ca..7d828dbf9f2 100644 --- a/apps/studio/tests/components/SQLEditor/SQLEditor.test.tsx +++ b/apps/studio/tests/components/SQLEditor/SQLEditor.test.tsx @@ -92,10 +92,11 @@ vi.mock('@/components/interfaces/SQLEditor/MonacoEditor', async () => { return (
{props.placeholder}
- - -
@@ -150,13 +151,14 @@ vi.mock('@/components/interfaces/SQLEditor/UtilityPanel/UtilityActions', () => ( UtilityActions: (props: any) => (
- {String(props.isExecuting)} @@ -168,7 +170,7 @@ vi.mock('@/components/interfaces/SQLEditor/UtilityPanel/UtilityPanel', () => ({ UtilityPanel: (props: any) => (
{props.activeTab} -
@@ -179,13 +181,13 @@ vi.mock('@/components/interfaces/SQLEditor/RunQueryWarningModal', () => ({ RunQueryWarningModal: (props: any) => props.visible ? (
- - -
diff --git a/apps/www/app/(home)/_components/DashboardFeaturesSection.tsx b/apps/www/app/(home)/_components/DashboardFeaturesSection.tsx index 7b2a51afa46..dca41fefd6f 100644 --- a/apps/www/app/(home)/_components/DashboardFeaturesSection.tsx +++ b/apps/www/app/(home)/_components/DashboardFeaturesSection.tsx @@ -35,6 +35,7 @@ export function DashboardFeaturesSection({
{tabs.map((tab, index) => ( - diff --git a/apps/www/app/(products)/edge-functions/_components/IntegratesSectionClient.tsx b/apps/www/app/(products)/edge-functions/_components/IntegratesSectionClient.tsx index 5a396516ebb..0587801d4a3 100644 --- a/apps/www/app/(products)/edge-functions/_components/IntegratesSectionClient.tsx +++ b/apps/www/app/(products)/edge-functions/_components/IntegratesSectionClient.tsx @@ -118,6 +118,7 @@ export function IntegratesSectionClient({ useCases }: { useCases: UseCase[] }) { const Icon = ICONS[useCase.icon] return ( + ) - return url ? {renderButton()} : renderButton() + if (url) { + return ( + + {content} + + ) + } + + return ( + + ) } export default Button diff --git a/apps/www/components/Changelog/ChangelogDetailSidebar.tsx b/apps/www/components/Changelog/ChangelogDetailSidebar.tsx index ede23625748..ad5cd2d56a7 100644 --- a/apps/www/components/Changelog/ChangelogDetailSidebar.tsx +++ b/apps/www/components/Changelog/ChangelogDetailSidebar.tsx @@ -57,6 +57,7 @@ export function ChangelogDetailSidebar({ slug, url, labels, className }: Props) View discussion on GitHub {' '} / + > +
+ +
+
+ {props.title} +

{props.description}

) diff --git a/apps/www/components/LaunchWeek/X/Album/Player.tsx b/apps/www/components/LaunchWeek/X/Album/Player.tsx index a3b4f0910d7..954774e6fc1 100644 --- a/apps/www/components/LaunchWeek/X/Album/Player.tsx +++ b/apps/www/components/LaunchWeek/X/Album/Player.tsx @@ -34,6 +34,7 @@ const Player = () => {