Files
zeekay 05fc512820 feat: sync upstream shadcn/ui — [email protected], v4 app, font system, chart improvements
Upstream sync from shadcn-ui/ui (1686 commits since last merge base).

Key changes:
- packages/shadcn upgraded to 4.1.0 (CLI font transformers, scaffold from github, chart colors)
- apps/v4 replaces apps/www as the primary docs/registry app
- Font system: 25+ heading font registries, font markers utility, @supports override
- Chart improvements: recharts v3 compat, radial chart fixes
- templates/ updated with monorepo variants (astro, vite, react-router, start)
- skills/shadcn AI skill definitions added
- deprecated/ removed (auth, auth-firebase, cli, www)

Preserved Hanzo-only paths: app/, pkg/, demo/, docs/, template/next/
2026-03-24 19:04:31 -07:00

66 lines
1.6 KiB
TypeScript

"use client"
import { Fragment } from "react"
import Link from "next/link"
import { usePathname } from "next/navigation"
import { useBreadcrumb } from "fumadocs-core/breadcrumb"
import type { Root } from "fumadocs-core/page-tree"
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
} from "@/registry/new-york-v4/ui/breadcrumb"
export function DocsBreadcrumb({
tree,
className,
}: {
tree: Root
className?: string
}) {
const pathname = usePathname()
const items = useBreadcrumb(pathname, tree)
if (items.length === 0) return null
return (
<Breadcrumb className={className}>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink asChild>
<Link href="/docs" className="hover:text-accent-foreground">
Docs
</Link>
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
{items.map((item, i) => (
<Fragment key={i}>
{i !== 0 && <BreadcrumbSeparator />}
{item.url ? (
<BreadcrumbItem>
<BreadcrumbLink asChild>
<Link
href={item.url}
className="truncate hover:text-accent-foreground"
>
{item.name}
</Link>
</BreadcrumbLink>
</BreadcrumbItem>
) : (
<BreadcrumbItem>
<BreadcrumbPage>{item.name}</BreadcrumbPage>
</BreadcrumbItem>
)}
</Fragment>
))}
</BreadcrumbList>
</Breadcrumb>
)
}