mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-06-29 07:34:11 +00:00
* feat: add phosphor icons to base ui * feat_ add phosphor to blocks * feat: add phosphor to radix blocks * feat: add phosphor to radix ui * feat: add phosphor to radix example * feat: add missing phosphor icons * fix: rename broken icons * chore: format files * fix: add missing phosphor icons * chore: build registry --------- Co-authored-by: shadcn <m@shadcn.com>
354 lines
11 KiB
TypeScript
354 lines
11 KiB
TypeScript
import {
|
|
Example,
|
|
ExampleWrapper,
|
|
} from "@/registry/bases/base/components/example"
|
|
import { Button } from "@/registry/bases/base/ui/button"
|
|
import {
|
|
DropdownMenu,
|
|
DropdownMenuContent,
|
|
DropdownMenuItem,
|
|
DropdownMenuSeparator,
|
|
DropdownMenuTrigger,
|
|
} from "@/registry/bases/base/ui/dropdown-menu"
|
|
import { Input } from "@/registry/bases/base/ui/input"
|
|
import {
|
|
Tabs,
|
|
TabsContent,
|
|
TabsList,
|
|
TabsTrigger,
|
|
} from "@/registry/bases/base/ui/tabs"
|
|
import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
|
|
|
|
export default function TabsExample() {
|
|
return (
|
|
<ExampleWrapper>
|
|
<TabsBasic />
|
|
<TabsLine />
|
|
<TabsVariantsComparison />
|
|
<TabsDisabled />
|
|
<TabsWithIcons />
|
|
<TabsIconOnly />
|
|
<TabsMultiple />
|
|
<TabsWithContent />
|
|
<TabsLineWithContent />
|
|
<TabsLineDisabled />
|
|
<TabsWithDropdown />
|
|
<TabsVertical />
|
|
<TabsWithInputAndButton />
|
|
</ExampleWrapper>
|
|
)
|
|
}
|
|
|
|
function TabsBasic() {
|
|
return (
|
|
<Example title="Basic">
|
|
<Tabs defaultValue="home">
|
|
<TabsList>
|
|
<TabsTrigger value="home">Home</TabsTrigger>
|
|
<TabsTrigger value="settings">Settings</TabsTrigger>
|
|
</TabsList>
|
|
</Tabs>
|
|
</Example>
|
|
)
|
|
}
|
|
|
|
function TabsLine() {
|
|
return (
|
|
<Example title="Line">
|
|
<Tabs defaultValue="overview">
|
|
<TabsList variant="line">
|
|
<TabsTrigger value="overview">Overview</TabsTrigger>
|
|
<TabsTrigger value="analytics">Analytics</TabsTrigger>
|
|
<TabsTrigger value="reports">Reports</TabsTrigger>
|
|
</TabsList>
|
|
</Tabs>
|
|
</Example>
|
|
)
|
|
}
|
|
|
|
function TabsVariantsComparison() {
|
|
return (
|
|
<Example title="Variants Alignment">
|
|
<div className="flex gap-4">
|
|
<Tabs defaultValue="overview">
|
|
<TabsList>
|
|
<TabsTrigger value="overview">Overview</TabsTrigger>
|
|
<TabsTrigger value="analytics">Analytics</TabsTrigger>
|
|
</TabsList>
|
|
</Tabs>
|
|
<Tabs defaultValue="overview">
|
|
<TabsList variant="line">
|
|
<TabsTrigger value="overview">Overview</TabsTrigger>
|
|
<TabsTrigger value="analytics">Analytics</TabsTrigger>
|
|
</TabsList>
|
|
</Tabs>
|
|
</div>
|
|
</Example>
|
|
)
|
|
}
|
|
|
|
function TabsDisabled() {
|
|
return (
|
|
<Example title="Disabled">
|
|
<Tabs defaultValue="home">
|
|
<TabsList>
|
|
<TabsTrigger value="home">Home</TabsTrigger>
|
|
<TabsTrigger value="settings" disabled>
|
|
Disabled
|
|
</TabsTrigger>
|
|
</TabsList>
|
|
</Tabs>
|
|
</Example>
|
|
)
|
|
}
|
|
|
|
function TabsWithIcons() {
|
|
return (
|
|
<Example title="With Icons">
|
|
<Tabs defaultValue="preview">
|
|
<TabsList>
|
|
<TabsTrigger value="preview">
|
|
<IconPlaceholder
|
|
lucide="AppWindowIcon"
|
|
tabler="IconAppWindow"
|
|
hugeicons="CursorInWindowIcon"
|
|
phosphor="AppWindowIcon"
|
|
/>
|
|
Preview
|
|
</TabsTrigger>
|
|
<TabsTrigger value="code">
|
|
<IconPlaceholder
|
|
lucide="CodeIcon"
|
|
tabler="IconCode"
|
|
hugeicons="CodeIcon"
|
|
phosphor="CodeIcon"
|
|
/>
|
|
Code
|
|
</TabsTrigger>
|
|
</TabsList>
|
|
</Tabs>
|
|
</Example>
|
|
)
|
|
}
|
|
|
|
function TabsIconOnly() {
|
|
return (
|
|
<Example title="Icon Only">
|
|
<Tabs defaultValue="home">
|
|
<TabsList>
|
|
<TabsTrigger value="home">
|
|
<IconPlaceholder
|
|
lucide="HomeIcon"
|
|
tabler="IconHome"
|
|
hugeicons="HomeIcon"
|
|
phosphor="HouseIcon"
|
|
/>
|
|
</TabsTrigger>
|
|
<TabsTrigger value="search">
|
|
<IconPlaceholder
|
|
lucide="SearchIcon"
|
|
tabler="IconSearch"
|
|
hugeicons="SearchIcon"
|
|
phosphor="MagnifyingGlassIcon"
|
|
/>
|
|
</TabsTrigger>
|
|
<TabsTrigger value="settings">
|
|
<IconPlaceholder
|
|
lucide="SettingsIcon"
|
|
tabler="IconSettings"
|
|
hugeicons="SettingsIcon"
|
|
phosphor="GearIcon"
|
|
/>
|
|
</TabsTrigger>
|
|
</TabsList>
|
|
</Tabs>
|
|
</Example>
|
|
)
|
|
}
|
|
|
|
function TabsMultiple() {
|
|
return (
|
|
<Example title="Multiple">
|
|
<Tabs defaultValue="overview">
|
|
<TabsList>
|
|
<TabsTrigger value="overview">Overview</TabsTrigger>
|
|
<TabsTrigger value="analytics">Analytics</TabsTrigger>
|
|
<TabsTrigger value="reports">Reports</TabsTrigger>
|
|
<TabsTrigger value="settings">Settings</TabsTrigger>
|
|
</TabsList>
|
|
</Tabs>
|
|
</Example>
|
|
)
|
|
}
|
|
|
|
function TabsWithContent() {
|
|
return (
|
|
<Example title="With Content">
|
|
<Tabs defaultValue="account">
|
|
<TabsList>
|
|
<TabsTrigger value="account">Account</TabsTrigger>
|
|
<TabsTrigger value="password">Password</TabsTrigger>
|
|
<TabsTrigger value="notifications">Notifications</TabsTrigger>
|
|
</TabsList>
|
|
<div className="style-nova:p-4 style-vega:p-6 style-maia:p-6 style-mira:p-4 style-lyra:p-4 style-nova:rounded-lg style-vega:rounded-lg style-maia:rounded-xl style-mira:rounded-md style-lyra:rounded-none border">
|
|
<TabsContent value="account">
|
|
Manage your account preferences and profile information.
|
|
</TabsContent>
|
|
<TabsContent value="password">
|
|
Update your password to keep your account secure.
|
|
</TabsContent>
|
|
<TabsContent value="notifications">
|
|
Configure how you receive notifications and alerts.
|
|
</TabsContent>
|
|
</div>
|
|
</Tabs>
|
|
</Example>
|
|
)
|
|
}
|
|
|
|
function TabsLineWithContent() {
|
|
return (
|
|
<Example title="Line With Content">
|
|
<Tabs defaultValue="account">
|
|
<TabsList variant="line">
|
|
<TabsTrigger value="account">Account</TabsTrigger>
|
|
<TabsTrigger value="password">Password</TabsTrigger>
|
|
<TabsTrigger value="notifications">Notifications</TabsTrigger>
|
|
</TabsList>
|
|
<div className="style-nova:p-4 style-vega:p-6 style-maia:p-6 style-mira:p-4 style-lyra:p-4 style-nova:rounded-lg style-vega:rounded-lg style-maia:rounded-xl style-mira:rounded-md style-lyra:rounded-none border">
|
|
<TabsContent value="account">
|
|
Manage your account preferences and profile information.
|
|
</TabsContent>
|
|
<TabsContent value="password">
|
|
Update your password to keep your account secure.
|
|
</TabsContent>
|
|
<TabsContent value="notifications">
|
|
Configure how you receive notifications and alerts.
|
|
</TabsContent>
|
|
</div>
|
|
</Tabs>
|
|
</Example>
|
|
)
|
|
}
|
|
|
|
function TabsLineDisabled() {
|
|
return (
|
|
<Example title="Line Disabled">
|
|
<Tabs defaultValue="overview">
|
|
<TabsList variant="line">
|
|
<TabsTrigger value="overview">Overview</TabsTrigger>
|
|
<TabsTrigger value="analytics">Analytics</TabsTrigger>
|
|
<TabsTrigger value="reports" disabled>
|
|
Reports
|
|
</TabsTrigger>
|
|
</TabsList>
|
|
</Tabs>
|
|
</Example>
|
|
)
|
|
}
|
|
|
|
function TabsWithDropdown() {
|
|
return (
|
|
<Example title="With Dropdown">
|
|
<Tabs defaultValue="overview">
|
|
<div className="flex items-center justify-between">
|
|
<TabsList>
|
|
<TabsTrigger value="overview">Overview</TabsTrigger>
|
|
<TabsTrigger value="analytics">Analytics</TabsTrigger>
|
|
<TabsTrigger value="reports">Reports</TabsTrigger>
|
|
</TabsList>
|
|
<DropdownMenu>
|
|
<DropdownMenuTrigger
|
|
render={<Button variant="ghost" size="icon" className="size-8" />}
|
|
>
|
|
<IconPlaceholder
|
|
lucide="MoreHorizontalIcon"
|
|
tabler="IconDots"
|
|
hugeicons="MoreHorizontalCircle01Icon"
|
|
phosphor="DotsThreeOutlineIcon"
|
|
/>
|
|
<span className="sr-only">More options</span>
|
|
</DropdownMenuTrigger>
|
|
<DropdownMenuContent align="end">
|
|
<DropdownMenuItem>Settings</DropdownMenuItem>
|
|
<DropdownMenuItem>Export</DropdownMenuItem>
|
|
<DropdownMenuSeparator />
|
|
<DropdownMenuItem>Archive</DropdownMenuItem>
|
|
</DropdownMenuContent>
|
|
</DropdownMenu>
|
|
</div>
|
|
|
|
<div className="style-nova:p-4 style-vega:p-6 style-maia:p-6 style-mira:p-4 style-lyra:p-4 style-nova:rounded-lg style-vega:rounded-lg style-maia:rounded-xl style-mira:rounded-md style-lyra:rounded-none border">
|
|
<TabsContent value="overview">
|
|
View your dashboard metrics and key performance indicators.
|
|
</TabsContent>
|
|
<TabsContent value="analytics">
|
|
Detailed analytics and insights about your data.
|
|
</TabsContent>
|
|
<TabsContent value="reports">
|
|
Generate and view custom reports.
|
|
</TabsContent>
|
|
</div>
|
|
</Tabs>
|
|
</Example>
|
|
)
|
|
}
|
|
|
|
function TabsVertical() {
|
|
return (
|
|
<Example title="Vertical">
|
|
<Tabs defaultValue="account" orientation="vertical">
|
|
<TabsList>
|
|
<TabsTrigger value="account">Account</TabsTrigger>
|
|
<TabsTrigger value="password">Password</TabsTrigger>
|
|
<TabsTrigger value="notifications">Notifications</TabsTrigger>
|
|
</TabsList>
|
|
<div className="style-nova:p-4 style-vega:p-6 style-maia:p-6 style-mira:p-4 style-lyra:p-4 style-nova:rounded-lg style-vega:rounded-lg style-maia:rounded-xl style-mira:rounded-md style-lyra:rounded-none border">
|
|
<TabsContent value="account">
|
|
Manage your account preferences and profile information.
|
|
</TabsContent>
|
|
<TabsContent value="password">
|
|
Update your password to keep your account secure. Use a strong
|
|
password with a mix of letters, numbers, and symbols.
|
|
</TabsContent>
|
|
<TabsContent value="notifications">
|
|
Configure how you receive notifications and alerts. Choose which
|
|
types of notifications you want to receive and how you want to
|
|
receive them.
|
|
</TabsContent>
|
|
</div>
|
|
</Tabs>
|
|
</Example>
|
|
)
|
|
}
|
|
|
|
function TabsWithInputAndButton() {
|
|
return (
|
|
<Example title="With Input and Button" containerClassName="col-span-full">
|
|
<Tabs defaultValue="overview" className="mx-auto w-full max-w-lg">
|
|
<div className="flex items-center gap-4">
|
|
<TabsList>
|
|
<TabsTrigger value="overview">Overview</TabsTrigger>
|
|
<TabsTrigger value="analytics">Analytics</TabsTrigger>
|
|
</TabsList>
|
|
<div className="ml-auto flex items-center gap-2">
|
|
<Input placeholder="Search..." className="w-44" />
|
|
<Button>Action</Button>
|
|
</div>
|
|
</div>
|
|
<div className="style-nova:p-4 style-vega:p-6 style-maia:p-6 style-mira:p-4 style-lyra:p-4 style-nova:rounded-lg style-vega:rounded-lg style-maia:rounded-xl style-mira:rounded-md style-lyra:rounded-none border">
|
|
<TabsContent value="overview">
|
|
View your dashboard metrics and key performance indicators.
|
|
</TabsContent>
|
|
<TabsContent value="analytics">
|
|
Detailed analytics and insights about your data.
|
|
</TabsContent>
|
|
<TabsContent value="reports">
|
|
Generate and view custom reports.
|
|
</TabsContent>
|
|
</div>
|
|
</Tabs>
|
|
</Example>
|
|
)
|
|
}
|