mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-07-08 14:35:09 +00:00
194 lines
4.0 KiB
TypeScript
194 lines
4.0 KiB
TypeScript
"use client"
|
|
|
|
import {
|
|
Collapsible,
|
|
CollapsibleContent,
|
|
CollapsibleTrigger,
|
|
} from "@/examples/base/ui/collapsible"
|
|
import {
|
|
Sidebar,
|
|
SidebarContent,
|
|
SidebarGroup,
|
|
SidebarGroupContent,
|
|
SidebarMenu,
|
|
SidebarMenuButton,
|
|
SidebarMenuItem,
|
|
SidebarMenuSub,
|
|
SidebarMenuSubButton,
|
|
SidebarMenuSubItem,
|
|
SidebarProvider,
|
|
} from "@/examples/base/ui/sidebar"
|
|
import { ChevronRightIcon } from "lucide-react"
|
|
|
|
const items = [
|
|
{
|
|
title: "Getting Started",
|
|
url: "#",
|
|
items: [
|
|
{
|
|
title: "Installation",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Project Structure",
|
|
url: "#",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: "Build Your Application",
|
|
url: "#",
|
|
items: [
|
|
{
|
|
title: "Routing",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Data Fetching",
|
|
url: "#",
|
|
isActive: true,
|
|
},
|
|
{
|
|
title: "Rendering",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Caching",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Styling",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Optimizing",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Configuring",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Testing",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Authentication",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Deploying",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Upgrading",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Examples",
|
|
url: "#",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: "API Reference",
|
|
url: "#",
|
|
items: [
|
|
{
|
|
title: "Components",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "File Conventions",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Functions",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "next.config.js Options",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "CLI",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Edge Runtime",
|
|
url: "#",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: "Architecture",
|
|
url: "#",
|
|
items: [
|
|
{
|
|
title: "Accessibility",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Fast Refresh",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Next.js Compiler",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Supported Browsers",
|
|
url: "#",
|
|
},
|
|
{
|
|
title: "Turbopack",
|
|
url: "#",
|
|
},
|
|
],
|
|
},
|
|
]
|
|
|
|
export default function AppSidebar() {
|
|
return (
|
|
<SidebarProvider>
|
|
<Sidebar>
|
|
<SidebarContent>
|
|
<SidebarGroup>
|
|
<SidebarGroupContent>
|
|
<SidebarMenu>
|
|
{items.map((item, index) => (
|
|
<Collapsible
|
|
key={index}
|
|
className="group/collapsible"
|
|
defaultOpen={index === 0}
|
|
>
|
|
<SidebarMenuItem>
|
|
<CollapsibleTrigger render={<SidebarMenuButton />}>
|
|
<span>{item.title}</span>
|
|
<ChevronRightIcon className="ml-auto transition-transform group-data-[state=open]/collapsible:rotate-90" />
|
|
</CollapsibleTrigger>
|
|
<CollapsibleContent>
|
|
<SidebarMenuSub>
|
|
{item.items.map((subItem, subIndex) => (
|
|
<SidebarMenuSubItem key={subIndex}>
|
|
<SidebarMenuSubButton
|
|
render={<a href={subItem.url} />}
|
|
>
|
|
<span>{subItem.title}</span>
|
|
</SidebarMenuSubButton>
|
|
</SidebarMenuSubItem>
|
|
))}
|
|
</SidebarMenuSub>
|
|
</CollapsibleContent>
|
|
</SidebarMenuItem>
|
|
</Collapsible>
|
|
))}
|
|
</SidebarMenu>
|
|
</SidebarGroupContent>
|
|
</SidebarGroup>
|
|
</SidebarContent>
|
|
</Sidebar>
|
|
</SidebarProvider>
|
|
)
|
|
}
|