Files
shadcn-ui/apps/v4/registry/index.ts

71 lines
1.7 KiB
TypeScript

import { registryItemSchema, type Registry } from "shadcn/schema"
import { z } from "zod"
import { blocks } from "@/registry/registry-blocks"
import { charts } from "@/registry/registry-charts"
import { examples } from "@/registry/registry-examples"
import { hooks } from "@/registry/registry-hooks"
import { internal } from "@/registry/registry-internal"
import { lib } from "@/registry/registry-lib"
import { themes } from "@/registry/registry-themes"
import { ui } from "@/registry/registry-ui"
const DEPRECATED_ITEMS = [
"toast",
"toast-demo",
"toast-destructive",
"toast-simple",
"toast-with-action",
"toast-with-title",
]
// Shared between index and style for backward compatibility.
const NEW_YORK_V4_STYLE = {
type: "registry:style",
dependencies: ["class-variance-authority", "lucide-react"],
devDependencies: ["tw-animate-css"],
registryDependencies: ["utils"],
cssVars: {},
files: [],
}
export const registry = {
name: "shadcn/ui",
homepage: "https://ui.shadcn.com",
items: z.array(registryItemSchema).parse(
[
{
name: "index",
...NEW_YORK_V4_STYLE,
},
{
name: "style",
...NEW_YORK_V4_STYLE,
},
...ui,
...blocks,
...charts,
...lib,
...hooks,
...themes,
...examples,
...internal,
]
.filter((item) => {
return !DEPRECATED_ITEMS.includes(item.name)
})
.map((item) => {
// Temporary fix for dashboard-01.
if (item.name === "dashboard-01") {
item.dependencies?.push("@tabler/icons-react")
}
if (item.name === "accordion" && "tailwind" in item) {
delete item.tailwind
}
return item
})
),
} satisfies Registry