site-header.tsx — ui Source File
Architecture documentation for site-header.tsx, a tsx file in the ui codebase. 11 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 685d099e_bacd_b5a9_38ac_ebaf1ef4b497["site-header.tsx"] 1d141819_425e_b5fd_4c8e_32f7c6a42cf2["react"] 685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> 1d141819_425e_b5fd_4c8e_32f7c6a42cf2 f5b0b1d9_de2f_9c31_0bcd_4adbd07581cb["navigation"] 685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> f5b0b1d9_de2f_9c31_0bcd_4adbd07581cb d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3["lucide-react"] 685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3 67800f29_74f5_e4fd_f69d_c0bb44ef1ca5["theme-selector"] 685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> 67800f29_74f5_e4fd_f69d_c0bb44ef1ca5 23fe93ac_eac7_8273_5f2f_33f470cb0e56["search-form"] 685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> 23fe93ac_eac7_8273_5f2f_33f470cb0e56 ae3635e3_d1ef_d848_ce80_aa7c696f0ec1["breadcrumb"] 685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> ae3635e3_d1ef_d848_ce80_aa7c696f0ec1 57e86e45_ac6e_7278_be08_9092724e8401["button"] 685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> 57e86e45_ac6e_7278_be08_9092724e8401 b2c60dee_4ede_8485_a6b4_91c999cdc69f["separator"] 685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> b2c60dee_4ede_8485_a6b4_91c999cdc69f 12632a83_ef01_5f03_4110_ed33d49893b7["sidebar"] 685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> 12632a83_ef01_5f03_4110_ed33d49893b7 d2396a99_c59f_0947_b814_5b0473e8456a["mode-toggle"] 685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> d2396a99_c59f_0947_b814_5b0473e8456a 5550df98_d33a_8859_19fd_a1c9abbbcab9["nav-user"] 685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> 5550df98_d33a_8859_19fd_a1c9abbbcab9 style 685d099e_bacd_b5a9_38ac_ebaf1ef4b497 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
"use client"
import { Fragment, useMemo } from "react"
import { usePathname } from "next/navigation"
import { SidebarIcon } from "lucide-react"
import { ThemeSelector } from "@/components/theme-selector"
import { SearchForm } from "@/registry/new-york-v4/blocks/sidebar-16/components/search-form"
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
} from "@/registry/new-york-v4/ui/breadcrumb"
import { Button } from "@/registry/new-york-v4/ui/button"
import { Separator } from "@/registry/new-york-v4/ui/separator"
import { useSidebar } from "@/registry/new-york-v4/ui/sidebar"
import { ModeToggle } from "@/app/(examples)/dashboard-03/components/mode-toggle"
import { NavUser } from "@/app/(examples)/dashboard-03/components/nav-user"
export function SiteHeader() {
const { toggleSidebar } = useSidebar()
const pathname = usePathname()
// Faux breadcrumbs for demo.
const breadcrumbs = useMemo(() => {
return pathname
.split("/")
.filter((path) => path !== "")
.map((path, index, array) => ({
label: path,
href: `/${array.slice(0, index + 1).join("/")}`,
}))
}, [pathname])
return (
<header
data-slot="site-header"
className="bg-background sticky top-0 z-50 flex w-full items-center border-b"
>
<div className="flex h-(--header-height) w-full items-center gap-2 px-2 pr-4">
<Button
variant="ghost"
size="sm"
onClick={toggleSidebar}
className="gap-2.5 has-[>svg]:px-2"
>
<SidebarIcon />
<span className="truncate font-medium">Acme Inc</span>
</Button>
<Separator
orientation="vertical"
className="mr-2 data-[orientation=vertical]:h-4"
/>
<Breadcrumb className="hidden sm:block">
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/" className="capitalize">
Home
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
{breadcrumbs.map((breadcrumb, index) =>
index === breadcrumbs.length - 1 ? (
<BreadcrumbItem key={index}>
<BreadcrumbPage className="capitalize">
{breadcrumb.label}
</BreadcrumbPage>
</BreadcrumbItem>
) : (
<Fragment key={index}>
<BreadcrumbItem>
<BreadcrumbLink
href={breadcrumb.href}
className="capitalize"
>
{breadcrumb.label}
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
</Fragment>
)
)}
</BreadcrumbList>
</Breadcrumb>
<div className="ml-auto flex items-center gap-2">
<SearchForm className="w-fullsm:w-auto" />
<ThemeSelector />
<ModeToggle />
<NavUser
user={{
name: "shadcn",
email: "m@example.com",
avatar: "/avatars/shadcn.jpg",
}}
/>
</div>
</div>
</header>
)
}
Domain
Subdomains
Functions
Dependencies
- breadcrumb
- button
- lucide-react
- mode-toggle
- nav-user
- navigation
- react
- search-form
- separator
- sidebar
- theme-selector
Source
Frequently Asked Questions
What does site-header.tsx do?
site-header.tsx is a source file in the ui codebase, written in tsx. It belongs to the DocumentationAtlas domain, SearchAPI subdomain.
What functions are defined in site-header.tsx?
site-header.tsx defines 1 function(s): SiteHeader.
What does site-header.tsx depend on?
site-header.tsx imports 11 module(s): breadcrumb, button, lucide-react, mode-toggle, nav-user, navigation, react, search-form, and 3 more.
Where is site-header.tsx in the architecture?
site-header.tsx is located at apps/v4/app/(examples)/dashboard-03/components/site-header.tsx (domain: DocumentationAtlas, subdomain: SearchAPI, directory: apps/v4/app/(examples)/dashboard-03/components).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free