mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-06-28 07:04:20 +00:00
86 lines
3.3 KiB
TypeScript
86 lines
3.3 KiB
TypeScript
import Link from "next/link"
|
|
import { Button } from "@/examples/radix/ui/button"
|
|
import { PlusSignIcon } from "@hugeicons/core-free-icons"
|
|
import { HugeiconsIcon } from "@hugeicons/react"
|
|
|
|
import { getColors } from "@/lib/colors"
|
|
import { siteConfig } from "@/lib/config"
|
|
import { source } from "@/lib/source"
|
|
import { CommandMenu } from "@/components/command-menu"
|
|
import { GitHubLink } from "@/components/github-link"
|
|
import { Icons } from "@/components/icons"
|
|
import { MainNav } from "@/components/main-nav"
|
|
import { MobileNav } from "@/components/mobile-nav"
|
|
import { ModeSwitcher } from "@/components/mode-switcher"
|
|
import { SiteConfig } from "@/components/site-config"
|
|
import { Separator } from "@/registry/new-york-v4/ui/separator"
|
|
import { ProjectForm } from "@/app/(create)/components/project-form"
|
|
import { V0Button } from "@/app/(create)/components/v0-button"
|
|
|
|
export function SiteHeader() {
|
|
const colors = getColors()
|
|
const pageTree = source.pageTree
|
|
|
|
return (
|
|
<header className="sticky top-0 z-50 w-full bg-background">
|
|
<div className="container-wrapper px-6 3xl:fixed:px-0">
|
|
<div className="flex h-(--header-height) items-center **:data-[slot=separator]:h-4! 3xl:fixed:container">
|
|
<MobileNav
|
|
tree={pageTree}
|
|
items={siteConfig.navItems}
|
|
className="flex lg:hidden"
|
|
/>
|
|
<Button
|
|
asChild
|
|
variant="ghost"
|
|
size="icon"
|
|
className="hidden size-8 lg:flex"
|
|
>
|
|
<Link href="/">
|
|
<Icons.logo className="size-5" />
|
|
<span className="sr-only">{siteConfig.name}</span>
|
|
</Link>
|
|
</Button>
|
|
<MainNav items={siteConfig.navItems} className="hidden lg:flex" />
|
|
<div className="ml-auto flex items-center gap-2 md:flex-1 md:justify-end">
|
|
<div className="hidden w-full flex-1 md:flex md:w-auto md:flex-none">
|
|
<CommandMenu
|
|
tree={pageTree}
|
|
colors={colors}
|
|
navItems={siteConfig.navItems}
|
|
/>
|
|
</div>
|
|
<Separator
|
|
orientation="vertical"
|
|
className="ml-2 hidden lg:block"
|
|
/>
|
|
<GitHubLink />
|
|
<Separator orientation="vertical" className="hidden 3xl:flex" />
|
|
<SiteConfig className="hidden 3xl:flex" />
|
|
<Separator orientation="vertical" />
|
|
<ModeSwitcher />
|
|
<div className="hidden items-center gap-2 group-has-data-[slot=designer]/layout:md:flex">
|
|
<Separator orientation="vertical" />
|
|
<V0Button />
|
|
<ProjectForm />
|
|
</div>
|
|
<div className="hidden items-center gap-2 group-has-data-[slot=designer]/layout:flex group-has-data-[slot=designer]/layout:md:hidden">
|
|
<Separator orientation="vertical" />
|
|
<V0Button />
|
|
</div>
|
|
<div className="flex items-center gap-2 group-has-data-[slot=designer]/layout:hidden">
|
|
<Separator orientation="vertical" />
|
|
<Button asChild size="sm" className="h-[31px] rounded-lg">
|
|
<Link href="/create">
|
|
<HugeiconsIcon icon={PlusSignIcon} />
|
|
New
|
|
</Link>
|
|
</Button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
)
|
|
}
|