Files
shadcn-ui/apps/v4/registry/fonts.ts
shadcn 687f09817b feat: chartColor and fontHeading (#10115)
* feat: chart color

* fix

* fix

* fix: chart color

* chore: changeset

* chore: restore directory registry formatting

* feat: add fontHeading

* feat: rebuild registry

* fix: v0

* refactor

* fix

* fix

* fix

* fix

* fix

* fix: refactor preset handling

* fix

* fix

* fix
2026-03-19 23:35:01 +04: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[]