305 lines
5.3 KiB
TypeScript
305 lines
5.3 KiB
TypeScript
|
|
import {
|
||
|
|
AudioWaveform,
|
||
|
|
BookOpen,
|
||
|
|
Bot,
|
||
|
|
Command,
|
||
|
|
Frame,
|
||
|
|
GalleryVerticalEnd,
|
||
|
|
MapIcon,
|
||
|
|
PieChart,
|
||
|
|
Settings2,
|
||
|
|
SquareTerminal,
|
||
|
|
} from "lucide-react";
|
||
|
|
|
||
|
|
import {
|
||
|
|
BarChartIcon,
|
||
|
|
CameraIcon,
|
||
|
|
ClipboardListIcon,
|
||
|
|
DatabaseIcon,
|
||
|
|
FileCodeIcon,
|
||
|
|
FileIcon,
|
||
|
|
FileTextIcon,
|
||
|
|
FolderIcon,
|
||
|
|
HelpCircleIcon,
|
||
|
|
LayoutDashboardIcon,
|
||
|
|
ListIcon,
|
||
|
|
SearchIcon,
|
||
|
|
SettingsIcon,
|
||
|
|
UsersIcon,
|
||
|
|
} from "lucide-react";
|
||
|
|
import * as React from "react";
|
||
|
|
|
||
|
|
import { Sidebar, SidebarContent, SidebarFooter, SidebarHeader } from "@repo/shadcn-ui/components";
|
||
|
|
import { NavDocuments } from "./nav-documents.tsx";
|
||
|
|
import { NavMain } from "./nav-main.tsx";
|
||
|
|
import { NavProjects } from "./nav-projects.tsx";
|
||
|
|
import { NavSecondary } from "./nav-secondary.tsx";
|
||
|
|
import { NavUser } from "./nav-user.tsx";
|
||
|
|
import { TeamSwitcher } from "./team-switcher.tsx";
|
||
|
|
|
||
|
|
const data = {
|
||
|
|
user: {
|
||
|
|
name: "shadcn",
|
||
|
|
email: "m@example.com",
|
||
|
|
avatar: "/avatars/shadcn.jpg",
|
||
|
|
},
|
||
|
|
navMain: [
|
||
|
|
{
|
||
|
|
title: "Dashboard",
|
||
|
|
url: "#",
|
||
|
|
icon: LayoutDashboardIcon,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Lifecycle",
|
||
|
|
url: "#",
|
||
|
|
icon: ListIcon,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Analytics",
|
||
|
|
url: "#",
|
||
|
|
icon: BarChartIcon,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Projects",
|
||
|
|
url: "#",
|
||
|
|
icon: FolderIcon,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Team",
|
||
|
|
url: "#",
|
||
|
|
icon: UsersIcon,
|
||
|
|
},
|
||
|
|
],
|
||
|
|
navClouds: [
|
||
|
|
{
|
||
|
|
title: "Capture",
|
||
|
|
icon: CameraIcon,
|
||
|
|
isActive: true,
|
||
|
|
url: "#",
|
||
|
|
items: [
|
||
|
|
{
|
||
|
|
title: "Active Proposals",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Archived",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Proposal",
|
||
|
|
icon: FileTextIcon,
|
||
|
|
url: "#",
|
||
|
|
items: [
|
||
|
|
{
|
||
|
|
title: "Active Proposals",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Archived",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Prompts",
|
||
|
|
icon: FileCodeIcon,
|
||
|
|
url: "#",
|
||
|
|
items: [
|
||
|
|
{
|
||
|
|
title: "Active Proposals",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Archived",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
],
|
||
|
|
navSecondary: [
|
||
|
|
{
|
||
|
|
title: "Settings",
|
||
|
|
url: "#",
|
||
|
|
icon: SettingsIcon,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Get Help",
|
||
|
|
url: "#",
|
||
|
|
icon: HelpCircleIcon,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Search",
|
||
|
|
url: "#",
|
||
|
|
icon: SearchIcon,
|
||
|
|
},
|
||
|
|
],
|
||
|
|
documents: [
|
||
|
|
{
|
||
|
|
name: "Data Library",
|
||
|
|
url: "#",
|
||
|
|
icon: DatabaseIcon,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "Reports",
|
||
|
|
url: "#",
|
||
|
|
icon: ClipboardListIcon,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "Word Assistant",
|
||
|
|
url: "#",
|
||
|
|
icon: FileIcon,
|
||
|
|
},
|
||
|
|
],
|
||
|
|
};
|
||
|
|
|
||
|
|
// This is sample data.
|
||
|
|
const data2 = {
|
||
|
|
user: {
|
||
|
|
name: "shadcn",
|
||
|
|
email: "m@example.com",
|
||
|
|
avatar: "/avatars/shadcn.jpg",
|
||
|
|
},
|
||
|
|
teams: [
|
||
|
|
{
|
||
|
|
name: "Acme Inc",
|
||
|
|
logo: GalleryVerticalEnd,
|
||
|
|
plan: "Enterprise",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "Acme Corp.",
|
||
|
|
logo: AudioWaveform,
|
||
|
|
plan: "Startup",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "Evil Corp.",
|
||
|
|
logo: Command,
|
||
|
|
plan: "Free",
|
||
|
|
},
|
||
|
|
],
|
||
|
|
navMain: [
|
||
|
|
{
|
||
|
|
title: "Playground",
|
||
|
|
url: "#",
|
||
|
|
icon: SquareTerminal,
|
||
|
|
isActive: true,
|
||
|
|
items: [
|
||
|
|
{
|
||
|
|
title: "History",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Starred",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Settings",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Models",
|
||
|
|
url: "#",
|
||
|
|
icon: Bot,
|
||
|
|
items: [
|
||
|
|
{
|
||
|
|
title: "Genesis",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Explorer",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Quantum",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Documentation",
|
||
|
|
url: "#",
|
||
|
|
icon: BookOpen,
|
||
|
|
items: [
|
||
|
|
{
|
||
|
|
title: "Introduction",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Get Started",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Tutorials",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Changelog",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Settings",
|
||
|
|
url: "#",
|
||
|
|
icon: Settings2,
|
||
|
|
items: [
|
||
|
|
{
|
||
|
|
title: "General",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Team",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Billing",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "Limits",
|
||
|
|
url: "#",
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
],
|
||
|
|
projects: [
|
||
|
|
{
|
||
|
|
name: "Design Engineering",
|
||
|
|
url: "#",
|
||
|
|
icon: Frame,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "Sales & Marketing",
|
||
|
|
url: "#",
|
||
|
|
icon: PieChart,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "Travel",
|
||
|
|
url: "#",
|
||
|
|
icon: MapIcon,
|
||
|
|
},
|
||
|
|
],
|
||
|
|
};
|
||
|
|
|
||
|
|
export function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {
|
||
|
|
return (
|
||
|
|
<Sidebar collapsible='icon' {...props}>
|
||
|
|
<SidebarHeader>
|
||
|
|
<TeamSwitcher teams={data2.teams} />
|
||
|
|
</SidebarHeader>
|
||
|
|
<SidebarContent>
|
||
|
|
<NavMain items={data2.navMain} />
|
||
|
|
<NavProjects projects={data2.projects} />
|
||
|
|
<NavDocuments items={data.documents} />
|
||
|
|
<NavSecondary items={data.navSecondary} className='mt-auto' />
|
||
|
|
</SidebarContent>
|
||
|
|
<SidebarFooter>
|
||
|
|
<NavUser user={data.user} />
|
||
|
|
</SidebarFooter>
|
||
|
|
</Sidebar>
|
||
|
|
);
|
||
|
|
}
|