import { registryItemSchema, type Registry } from "shadcn/schema" import { z } from "zod" import { themes } from "../_legacy-themes" import { blocks } from "./blocks/_registry" import { charts } from "./charts/_registry" import { examples } from "./examples/_registry" import { hooks } from "./hooks/_registry" import { internal } from "./internal/_registry" import { lib } from "./lib/_registry" import { ui } from "./ui/_registry" 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", "cn", "lucide-react", "radix-ui"], devDependencies: ["tw-animate-css", "shadcn"], registryDependencies: ["utils"], css: { '@import "tw-animate-css"': {}, '@import "shadcn/tailwind.css"': {}, "@layer base": { "*": { "@apply border-border outline-ring/50": {}, }, body: { "@apply bg-background text-foreground": {}, }, }, }, 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) }) ), } satisfies Registry