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

35 lines
1.1 KiB
TypeScript

import { type RegistryItem } from "shadcn/schema"
import { FONT_DEFINITIONS, type FontDefinition } from "@/lib/font-definitions"
function createFontItem(definition: FontDefinition, role: "body" | "heading") {
return {
name:
role === "body"
? `font-${definition.name}`
: `font-heading-${definition.name}`,
title: role === "body" ? definition.title : `${definition.title} (Heading)`,
type: "registry:font",
font: {
family: definition.family,
provider: definition.provider,
variable:
role === "body" ? definition.registryVariable : "--font-heading",
...(definition.weight ? { weight: [...definition.weight] } : {}),
subsets: [...definition.subsets],
import: definition.import,
dependency: definition.dependency,
},
} satisfies RegistryItem
}
export const bodyFonts = FONT_DEFINITIONS.map((definition) =>
createFontItem(definition, "body")
) satisfies RegistryItem[]
export const headingFonts = FONT_DEFINITIONS.map((definition) =>
createFontItem(definition, "heading")
) satisfies RegistryItem[]
export const fonts = [...bodyFonts, ...headingFonts] satisfies RegistryItem[]