import { registryItemSchema, type Registry } from "shadcn/schema" import { z } from "zod" import { blocks } from "@/registry/registry-blocks" import { examples } from "@/registry/registry-examples" import { hooks } from "@/registry/registry-hooks" import { lib } from "@/registry/registry-lib" 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: "creative-tim/ui", homepage: "https://creative-tim.com/ui", items: z.array(registryItemSchema).parse( [ { name: "index", ...NEW_YORK_V4_STYLE, }, { name: "style", ...NEW_YORK_V4_STYLE, }, ...ui, ...blocks, ...lib, ...hooks, ...examples, ] .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