Files
Danny White 476d4a5851 refactor(ui): drop redundant Button variant="default" props (#50161)
## 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
2026-09-11 17:05:26 +10:00

61 lines
1.9 KiB
TypeScript

import { Menu } from 'lucide-react'
import { useEffect, useState } from 'react'
import { Button, Sheet, SheetContent, SheetHeader, SheetTitle } from 'ui'
import type { ShowApiKey } from '../../Docs/Docs.types'
import { LangSelector } from '../../Docs/LangSelector'
import { DocsMenu } from '@/components/interfaces/Integrations/DataApi/DocsMenu'
import { ProductMenuGroup } from '@/components/ui/ProductMenu/ProductMenu.types'
interface DocsMobileNavProps {
activePage: string
menu: Array<ProductMenuGroup>
selectedLang: 'js' | 'bash'
selectedApiKey: ShowApiKey
setSelectedLang: (lang: 'js' | 'bash') => void
setSelectedApiKey: (key: ShowApiKey) => void
}
export const DocsMobileNav = ({
activePage,
menu,
selectedLang,
selectedApiKey,
setSelectedLang,
setSelectedApiKey,
}: DocsMobileNavProps) => {
const [open, setOpen] = useState(false)
// Close mobile nav when the active page changes
useEffect(() => {
setOpen(false)
}, [activePage])
return (
<>
<div className="sticky top-0 z-10 flex lg:hidden items-center border-b bg-surface-100 px-4 py-3">
<Button icon={<Menu size={16} />} onClick={() => setOpen(true)}>
Menu
</Button>
</div>
<Sheet open={open} onOpenChange={setOpen}>
<SheetContent side="left" size="content" className="w-72 overflow-y-auto">
<SheetHeader className="border-b-0">
<SheetTitle>Data API Docs</SheetTitle>
</SheetHeader>
<div className="flex flex-col gap-y-6 px-5 pb-6">
<LangSelector
selectedLang={selectedLang}
selectedApiKey={selectedApiKey}
setSelectedLang={setSelectedLang}
setSelectedApiKey={setSelectedApiKey}
/>
<DocsMenu activePage={activePage} menu={menu} />
</div>
</SheetContent>
</Sheet>
</>
)
}