Files
shadcn-ui/apps/v4/components/site-header.tsx
2026-03-03 21:48:46 +04:00

72 lines
2.6 KiB
TypeScript

import Link from "next/link"
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 blocks from "@/registry/__blocks__.json"
import { Button } from "@/registry/new-york-v4/ui/button"
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>
</div>
</div>
</header>
)
}