shadcn 3.6.2 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/registry/schema.ts"],"names":["registryConfigItemSchema","z","s","registryConfigSchema","key","rawConfigSchema","configSchema","workspaceConfigSchema","registryItemTypeSchema","registryItemFileSchema","registryItemTailwindSchema","registryItemCssVarsSchema","cssValueSchema","registryItemCssSchema","registryItemEnvVarsSchema","registryItemFontSchema","registryItemCommonSchema","registryItemSchema","registrySchema","registryIndexSchema","stylesSchema","iconsSchema","registryBaseColorSchema","registryResolvedItemsTreeSchema","searchResultItemSchema","searchResultsSchema","registriesIndexSchema","presetSchema","configJsonSchema"],"mappings":"2BAKO,IAAMA,CAAAA,CAA2BC,GAAAA,CAAE,KAAA,CAAM,CAE9CA,GAAAA,CAAE,MAAA,EAAO,CAAE,MAAA,CAAQC,CAAAA,EAAMA,CAAAA,CAAE,QAAA,CAAS,QAAQ,CAAA,CAAG,CAC7C,OAAA,CAAS,8CACX,CAAC,CAAA,CAEDD,GAAAA,CAAE,MAAA,CAAO,CACP,GAAA,CAAKA,GAAAA,CAAE,MAAA,EAAO,CAAE,MAAA,CAAQC,CAAAA,EAAMA,CAAAA,CAAE,QAAA,CAAS,QAAQ,CAAA,CAAG,CAClD,OAAA,CAAS,8CACX,CAAC,CAAA,CACD,MAAA,CAAQD,GAAAA,CAAE,MAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAAGA,GAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAClD,OAAA,CAASA,GAAAA,CAAE,MAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAAGA,GAAAA,CAAE,MAAA,EAAQ,EAAE,QAAA,EAC5C,CAAC,CACH,CAAC,CAAA,CAEYE,CAAAA,CAAuBF,GAAAA,CAAE,MAAA,CACpCA,GAAAA,CAAE,MAAA,EAAO,CAAE,MAAA,CAAQG,CAAAA,EAAQA,CAAAA,CAAI,UAAA,CAAW,GAAG,CAAA,CAAG,CAC9C,OAAA,CAAS,qDACX,CAAC,CAAA,CACDJ,CACF,CAAA,CAEaK,CAAAA,CAAkBJ,GAAAA,CAC5B,MAAA,CAAO,CACN,OAAA,CAASA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS,CAC7B,KAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAChB,GAAA,CAAKA,GAAAA,CAAE,MAAA,CAAO,OAAA,EAAQ,CAAE,OAAA,CAAQ,KAAK,CAAA,CACrC,GAAA,CAAKA,GAAAA,CAAE,MAAA,CAAO,OAAA,EAAQ,CAAE,OAAA,CAAQ,IAAI,CAAA,CACpC,QAAA,CAAUA,GAAAA,CAAE,MAAA,CAAO,CACjB,MAAA,CAAQA,GAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAC5B,GAAA,CAAKA,GAAAA,CAAE,MAAA,EAAO,CACd,SAAA,CAAWA,GAAAA,CAAE,MAAA,EAAO,CACpB,YAAA,CAAcA,GAAAA,CAAE,OAAA,EAAQ,CAAE,OAAA,CAAQ,IAAI,CAAA,CACtC,MAAA,CAAQA,GAAAA,CAAE,MAAA,EAAO,CAAE,OAAA,CAAQ,EAAE,CAAA,CAAE,QAAA,EACjC,CAAC,CAAA,CACD,WAAA,CAAaA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS,CACjC,SAAA,CAAWA,GAAAA,CAAE,IAAA,CAAK,CAAC,SAAA,CAAW,UAAU,CAAC,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,CAAE,QAAA,EAAS,CACvE,UAAA,CAAYA,GAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,CAAU,MAAM,CAAC,CAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA,CAAE,QAAA,EAAS,CAClE,OAAA,CAASA,GAAAA,CAAE,OAAO,CAChB,UAAA,CAAYA,GAAAA,CAAE,MAAA,EAAO,CACrB,KAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAChB,EAAA,CAAIA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS,CACxB,GAAA,CAAKA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS,CACzB,KAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EACpB,CAAC,CAAA,CACD,UAAA,CAAYE,CAAAA,CAAqB,QAAA,EACnC,CAAC,CAAA,CACA,MAAA,EAAO,CAEGG,CAAAA,CAAeD,CAAAA,CAAgB,MAAA,CAAO,CACjD,aAAA,CAAeJ,GAAAA,CAAE,MAAA,CAAO,CACtB,GAAA,CAAKA,GAAAA,CAAE,MAAA,EAAO,CACd,cAAA,CAAgBA,GAAAA,CAAE,MAAA,EAAO,CACzB,WAAA,CAAaA,GAAAA,CAAE,MAAA,EAAO,CACtB,KAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAChB,UAAA,CAAYA,IAAE,MAAA,EAAO,CACrB,GAAA,CAAKA,GAAAA,CAAE,MAAA,EAAO,CACd,KAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAChB,EAAA,CAAIA,GAAAA,CAAE,MAAA,EACR,CAAC,CACH,CAAC,CAAA,CAIYM,CAAAA,CAAwBN,GAAAA,CAAE,MAAA,CAAOK,CAAY,CAAA,CAE7CE,CAAAA,CAAyBP,GAAAA,CAAE,IAAA,CAAK,CAC3C,cAAA,CACA,gBAAA,CACA,oBAAA,CACA,aAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,gBAAA,CACA,gBAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CAGA,kBAAA,CACA,mBACF,CAAC,CAAA,CAEYQ,CAAAA,CAAyBR,GAAAA,CAAE,kBAAA,CAAmB,MAAA,CAAQ,CAEjEA,GAAAA,CAAE,MAAA,CAAO,CACP,IAAA,CAAMA,GAAAA,CAAE,MAAA,EAAO,CACf,OAAA,CAASA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS,CAC7B,IAAA,CAAMA,IAAE,IAAA,CAAK,CAAC,eAAA,CAAiB,eAAe,CAAC,CAAA,CAC/C,MAAA,CAAQA,GAAAA,CAAE,MAAA,EACZ,CAAC,CAAA,CACDA,GAAAA,CAAE,MAAA,CAAO,CACP,IAAA,CAAMA,GAAAA,CAAE,MAAA,EAAO,CACf,OAAA,CAASA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS,CAC7B,IAAA,CAAMO,CAAAA,CAAuB,OAAA,CAAQ,CAAC,eAAA,CAAiB,eAAe,CAAC,CAAA,CACvE,MAAA,CAAQP,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EACrB,CAAC,CACH,CAAC,CAAA,CAEYS,CAAAA,CAA6BT,GAAAA,CAAE,MAAA,CAAO,CACjD,MAAA,CAAQA,GAAAA,CACL,MAAA,CAAO,CACN,OAAA,CAASA,GAAAA,CAAE,KAAA,CAAMA,GAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CACtC,KAAA,CAAOA,GAAAA,CAAE,OAAOA,GAAAA,CAAE,MAAA,EAAO,CAAGA,GAAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS,CAC9C,OAAA,CAASA,GAAAA,CAAE,KAAA,CAAMA,GAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAC/B,CAAC,CAAA,CACA,QAAA,EACL,CAAC,CAAA,CAEYU,CAAAA,CAA4BV,GAAAA,CAAE,MAAA,CAAO,CAChD,KAAA,CAAOA,GAAAA,CAAE,MAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAAGA,GAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CACjD,KAAA,CAAOA,GAAAA,CAAE,MAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAAGA,GAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CACjD,IAAA,CAAMA,GAAAA,CAAE,MAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAAGA,GAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,UACzC,CAAC,CAAA,CAGKW,CAAAA,CAAiCX,GAAAA,CAAE,IAAA,CAAK,IAC5CA,GAAAA,CAAE,KAAA,CAAM,CACNA,GAAAA,CAAE,MAAA,EAAO,CACTA,GAAAA,CAAE,KAAA,CAAMA,GAAAA,CAAE,KAAA,CAAM,CAACA,GAAAA,CAAE,MAAA,EAAO,CAAGA,GAAAA,CAAE,MAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAAGA,GAAAA,CAAE,MAAA,EAAQ,CAAC,CAAC,CAAC,CAAA,CAC/DA,GAAAA,CAAE,MAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAAGW,CAAc,CACrC,CAAC,CACH,CAAA,CAEaC,CAAAA,CAAwBZ,GAAAA,CAAE,MAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAAGW,CAAc,CAAA,CAE3DE,CAAAA,CAA4Bb,GAAAA,CAAE,MAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAAGA,GAAAA,CAAE,MAAA,EAAQ,CAAA,CAG3Dc,CAAAA,CAAyBd,IAAE,MAAA,CAAO,CAC7C,MAAA,CAAQA,GAAAA,CAAE,MAAA,EAAO,CACjB,QAAA,CAAUA,GAAAA,CAAE,OAAA,CAAQ,QAAQ,CAAA,CAC5B,MAAA,CAAQA,GAAAA,CAAE,MAAA,EAAO,CACjB,QAAA,CAAUA,GAAAA,CAAE,MAAA,EAAO,CACnB,MAAA,CAAQA,GAAAA,CAAE,KAAA,CAAMA,GAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CACrC,OAAA,CAASA,GAAAA,CAAE,KAAA,CAAMA,GAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAC/B,CAAC,CAAA,CAGYe,CAAAA,CAA2Bf,GAAAA,CAAE,MAAA,CAAO,CAC/C,OAAA,CAASA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS,CAC7B,OAAA,CAASA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS,CAC7B,IAAA,CAAMA,GAAAA,CAAE,MAAA,EAAO,CACf,KAAA,CAAOA,GAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAC3B,MAAA,CAAQA,GAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CACnC,WAAA,CAAaA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS,CACjC,YAAA,CAAcA,GAAAA,CAAE,KAAA,CAAMA,GAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAC3C,eAAA,CAAiBA,GAAAA,CAAE,KAAA,CAAMA,GAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAC9C,oBAAA,CAAsBA,GAAAA,CAAE,KAAA,CAAMA,GAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CACnD,KAAA,CAAOA,GAAAA,CAAE,KAAA,CAAMQ,CAAsB,CAAA,CAAE,QAAA,EAAS,CAChD,QAAA,CAAUC,CAAAA,CAA2B,QAAA,EAAS,CAC9C,OAAA,CAASC,CAAAA,CAA0B,QAAA,EAAS,CAC5C,GAAA,CAAKE,CAAAA,CAAsB,QAAA,GAC3B,OAAA,CAASC,CAAAA,CAA0B,QAAA,EAAS,CAC5C,IAAA,CAAMb,GAAAA,CAAE,MAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAAGA,GAAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS,CAC7C,IAAA,CAAMA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS,CAC1B,UAAA,CAAYA,GAAAA,CAAE,KAAA,CAAMA,GAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAClC,CAAC,CAAA,CAGYgB,CAAAA,CAAqBhB,GAAAA,CAAE,kBAAA,CAAmB,MAAA,CAAQ,CAC7De,CAAAA,CAAyB,MAAA,CAAO,CAC9B,IAAA,CAAMf,GAAAA,CAAE,OAAA,CAAQ,eAAe,CAAA,CAC/B,MAAA,CAAQI,CAAAA,CAAgB,WAAA,EAAY,CAAE,QAAA,EACxC,CAAC,CAAA,CACDW,CAAAA,CAAyB,MAAA,CAAO,CAC9B,IAAA,CAAMf,GAAAA,CAAE,OAAA,CAAQ,eAAe,CAAA,CAC/B,KAAMc,CACR,CAAC,CAAA,CACDC,CAAAA,CAAyB,MAAA,CAAO,CAC9B,IAAA,CAAMR,CAAAA,CAAuB,OAAA,CAAQ,CAAC,eAAA,CAAiB,eAAe,CAAC,CACzE,CAAC,CACH,CAAC,CAAA,CAUYU,CAAAA,CAAiBjB,GAAAA,CAAE,MAAA,CAAO,CACrC,IAAA,CAAMA,GAAAA,CAAE,MAAA,EAAO,CACf,QAAA,CAAUA,GAAAA,CAAE,MAAA,EAAO,CACnB,KAAA,CAAOA,GAAAA,CAAE,KAAA,CAAMgB,CAAkB,CACnC,CAAC,CAAA,CAIYE,CAAAA,CAAsBlB,GAAAA,CAAE,KAAA,CAAMgB,CAAkB,CAAA,CAEhDG,CAAAA,CAAenB,GAAAA,CAAE,KAAA,CAC5BA,GAAAA,CAAE,MAAA,CAAO,CACP,IAAA,CAAMA,GAAAA,CAAE,MAAA,EAAO,CACf,KAAA,CAAOA,GAAAA,CAAE,MAAA,EACX,CAAC,CACH,CAAA,CAEaoB,CAAAA,CAAcpB,GAAAA,CAAE,MAAA,CAC3BA,IAAE,MAAA,EAAO,CACTA,GAAAA,CAAE,MAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAAGA,GAAAA,CAAE,MAAA,EAAQ,CACjC,CAAA,CAEaqB,CAAAA,CAA0BrB,GAAAA,CAAE,MAAA,CAAO,CAC9C,YAAA,CAAcA,GAAAA,CAAE,MAAA,CAAO,CACrB,KAAA,CAAOA,GAAAA,CAAE,MAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAAGA,GAAAA,CAAE,MAAA,EAAQ,CAAA,CACtC,IAAA,CAAMA,GAAAA,CAAE,MAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAAGA,GAAAA,CAAE,MAAA,EAAQ,CACvC,CAAC,CAAA,CACD,OAAA,CAASU,CAAAA,CACT,SAAA,CAAWA,CAAAA,CAA0B,QAAA,EAAS,CAC9C,oBAAA,CAAsBV,GAAAA,CAAE,MAAA,EAAO,CAC/B,eAAA,CAAiBA,GAAAA,CAAE,MAAA,EACrB,CAAC,CAAA,CAEYsB,CAAAA,CAAkCP,CAAAA,CAC5C,IAAA,CAAK,CACJ,aAAc,IAAA,CACd,eAAA,CAAiB,IAAA,CACjB,KAAA,CAAO,IAAA,CACP,QAAA,CAAU,IAAA,CACV,OAAA,CAAS,IAAA,CACT,GAAA,CAAK,IAAA,CACL,OAAA,CAAS,IAAA,CACT,IAAA,CAAM,IACR,CAAC,CAAA,CACA,MAAA,CAAO,CACN,KAAA,CAAOf,GAAAA,CACJ,KAAA,CACCe,CAAAA,CAAyB,MAAA,CAAO,CAC9B,IAAA,CAAMf,GAAAA,CAAE,OAAA,CAAQ,eAAe,CAAA,CAC/B,IAAA,CAAMc,CACR,CAAC,CACH,CAAA,CACC,QAAA,EACL,CAAC,CAAA,CAEUS,CAAAA,CAAyBvB,GAAAA,CAAE,MAAA,CAAO,CAC7C,IAAA,CAAMA,GAAAA,CAAE,MAAA,EAAO,CACf,IAAA,CAAMA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS,CAC1B,WAAA,CAAaA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS,CACjC,QAAA,CAAUA,GAAAA,CAAE,MAAA,GACZ,kBAAA,CAAoBA,GAAAA,CAAE,MAAA,EACxB,CAAC,CAAA,CAEYwB,CAAAA,CAAsBxB,GAAAA,CAAE,MAAA,CAAO,CAC1C,UAAA,CAAYA,GAAAA,CAAE,MAAA,CAAO,CACnB,KAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAChB,MAAA,CAAQA,GAAAA,CAAE,MAAA,EAAO,CACjB,KAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAChB,OAAA,CAASA,GAAAA,CAAE,OAAA,EACb,CAAC,CAAA,CACD,KAAA,CAAOA,GAAAA,CAAE,KAAA,CAAMuB,CAAsB,CACvC,CAAC,CAAA,CAEYE,CAAAA,CAAwBzB,GAAAA,CAAE,MAAA,CACrCA,GAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,CAAM,8BAA8B,CAAA,CAC/CA,GAAAA,CAAE,MAAA,EACJ,CAAA,CAEa0B,CAAAA,CAAe1B,GAAAA,CAAE,MAAA,CAAO,CACnC,IAAA,CAAMA,GAAAA,CAAE,MAAA,EAAO,CACf,KAAA,CAAOA,GAAAA,CAAE,QAAO,CAChB,WAAA,CAAaA,GAAAA,CAAE,MAAA,EAAO,CACtB,IAAA,CAAMA,GAAAA,CAAE,MAAA,EAAO,CACf,KAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAChB,SAAA,CAAWA,GAAAA,CAAE,MAAA,EAAO,CACpB,KAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAChB,WAAA,CAAaA,GAAAA,CAAE,MAAA,EAAO,CACtB,IAAA,CAAMA,GAAAA,CAAE,MAAA,EAAO,CACf,UAAA,CAAYA,GAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,CAAU,MAAM,CAAC,CAAA,CACrC,SAAA,CAAWA,GAAAA,CAAE,IAAA,CAAK,CAAC,SAAA,CAAW,UAAU,CAAC,CAAA,CACzC,MAAA,CAAQA,GAAAA,CAAE,MAAA,EACZ,CAAC,CAAA,CAIY2B,CAAAA,CAAmB3B,GAAAA,CAAE,MAAA,CAAO,CACvC,OAAA,CAASA,GAAAA,CAAE,KAAA,CAAM0B,CAAY,CAC/B,CAAC","file":"chunk-WKG3W635.js","sourcesContent":["import { z } from \"zod\"\n\n// Note: if you edit the schema here, you must also edit the schema in the\n// apps/v4/public/schema/registry-item.json file.\n\nexport const registryConfigItemSchema = z.union([\n // Simple string format: \"https://example.com/{name}.json\"\n z.string().refine((s) => s.includes(\"{name}\"), {\n message: \"Registry URL must include {name} placeholder\",\n }),\n // Advanced object format with auth options\n z.object({\n url: z.string().refine((s) => s.includes(\"{name}\"), {\n message: \"Registry URL must include {name} placeholder\",\n }),\n params: z.record(z.string(), z.string()).optional(),\n headers: z.record(z.string(), z.string()).optional(),\n }),\n])\n\nexport const registryConfigSchema = z.record(\n z.string().refine((key) => key.startsWith(\"@\"), {\n message: \"Registry names must start with @ (e.g., @v0, @acme)\",\n }),\n registryConfigItemSchema\n)\n\nexport const rawConfigSchema = z\n .object({\n $schema: z.string().optional(),\n style: z.string(),\n rsc: z.coerce.boolean().default(false),\n tsx: z.coerce.boolean().default(true),\n tailwind: z.object({\n config: z.string().optional(),\n css: z.string(),\n baseColor: z.string(),\n cssVariables: z.boolean().default(true),\n prefix: z.string().default(\"\").optional(),\n }),\n iconLibrary: z.string().optional(),\n menuColor: z.enum([\"default\", \"inverted\"]).default(\"default\").optional(),\n menuAccent: z.enum([\"subtle\", \"bold\"]).default(\"subtle\").optional(),\n aliases: z.object({\n components: z.string(),\n utils: z.string(),\n ui: z.string().optional(),\n lib: z.string().optional(),\n hooks: z.string().optional(),\n }),\n registries: registryConfigSchema.optional(),\n })\n .strict()\n\nexport const configSchema = rawConfigSchema.extend({\n resolvedPaths: z.object({\n cwd: z.string(),\n tailwindConfig: z.string(),\n tailwindCss: z.string(),\n utils: z.string(),\n components: z.string(),\n lib: z.string(),\n hooks: z.string(),\n ui: z.string(),\n }),\n})\n\n// TODO: type the key.\n// Okay for now since I don't want a breaking change.\nexport const workspaceConfigSchema = z.record(configSchema)\n\nexport const registryItemTypeSchema = z.enum([\n \"registry:lib\",\n \"registry:block\",\n \"registry:component\",\n \"registry:ui\",\n \"registry:hook\",\n \"registry:page\",\n \"registry:file\",\n \"registry:theme\",\n \"registry:style\",\n \"registry:item\",\n \"registry:base\",\n \"registry:font\",\n\n // Internal use only.\n \"registry:example\",\n \"registry:internal\",\n])\n\nexport const registryItemFileSchema = z.discriminatedUnion(\"type\", [\n // Target is required for registry:file and registry:page\n z.object({\n path: z.string(),\n content: z.string().optional(),\n type: z.enum([\"registry:file\", \"registry:page\"]),\n target: z.string(),\n }),\n z.object({\n path: z.string(),\n content: z.string().optional(),\n type: registryItemTypeSchema.exclude([\"registry:file\", \"registry:page\"]),\n target: z.string().optional(),\n }),\n])\n\nexport const registryItemTailwindSchema = z.object({\n config: z\n .object({\n content: z.array(z.string()).optional(),\n theme: z.record(z.string(), z.any()).optional(),\n plugins: z.array(z.string()).optional(),\n })\n .optional(),\n})\n\nexport const registryItemCssVarsSchema = z.object({\n theme: z.record(z.string(), z.string()).optional(),\n light: z.record(z.string(), z.string()).optional(),\n dark: z.record(z.string(), z.string()).optional(),\n})\n\n// Recursive type for CSS properties that supports empty objects at any level.\nconst cssValueSchema: z.ZodType<any> = z.lazy(() =>\n z.union([\n z.string(),\n z.array(z.union([z.string(), z.record(z.string(), z.string())])),\n z.record(z.string(), cssValueSchema),\n ])\n)\n\nexport const registryItemCssSchema = z.record(z.string(), cssValueSchema)\n\nexport const registryItemEnvVarsSchema = z.record(z.string(), z.string())\n\n// Font metadata schema for registry:font items.\nexport const registryItemFontSchema = z.object({\n family: z.string(),\n provider: z.literal(\"google\"),\n import: z.string(),\n variable: z.string(),\n weight: z.array(z.string()).optional(),\n subsets: z.array(z.string()).optional(),\n})\n\n// Common fields shared by all registry items.\nexport const registryItemCommonSchema = z.object({\n $schema: z.string().optional(),\n extends: z.string().optional(),\n name: z.string(),\n title: z.string().optional(),\n author: z.string().min(2).optional(),\n description: z.string().optional(),\n dependencies: z.array(z.string()).optional(),\n devDependencies: z.array(z.string()).optional(),\n registryDependencies: z.array(z.string()).optional(),\n files: z.array(registryItemFileSchema).optional(),\n tailwind: registryItemTailwindSchema.optional(),\n cssVars: registryItemCssVarsSchema.optional(),\n css: registryItemCssSchema.optional(),\n envVars: registryItemEnvVarsSchema.optional(),\n meta: z.record(z.string(), z.any()).optional(),\n docs: z.string().optional(),\n categories: z.array(z.string()).optional(),\n})\n\n// registry:base has a config field, registry:font has a font field.\nexport const registryItemSchema = z.discriminatedUnion(\"type\", [\n registryItemCommonSchema.extend({\n type: z.literal(\"registry:base\"),\n config: rawConfigSchema.deepPartial().optional(),\n }),\n registryItemCommonSchema.extend({\n type: z.literal(\"registry:font\"),\n font: registryItemFontSchema,\n }),\n registryItemCommonSchema.extend({\n type: registryItemTypeSchema.exclude([\"registry:base\", \"registry:font\"]),\n }),\n])\n\nexport type RegistryItem = z.infer<typeof registryItemSchema>\n\n// Helper type for registry:base items specifically.\nexport type RegistryBaseItem = Extract<RegistryItem, { type: \"registry:base\" }>\n\n// Helper type for registry:font items specifically.\nexport type RegistryFontItem = Extract<RegistryItem, { type: \"registry:font\" }>\n\nexport const registrySchema = z.object({\n name: z.string(),\n homepage: z.string(),\n items: z.array(registryItemSchema),\n})\n\nexport type Registry = z.infer<typeof registrySchema>\n\nexport const registryIndexSchema = z.array(registryItemSchema)\n\nexport const stylesSchema = z.array(\n z.object({\n name: z.string(),\n label: z.string(),\n })\n)\n\nexport const iconsSchema = z.record(\n z.string(),\n z.record(z.string(), z.string())\n)\n\nexport const registryBaseColorSchema = z.object({\n inlineColors: z.object({\n light: z.record(z.string(), z.string()),\n dark: z.record(z.string(), z.string()),\n }),\n cssVars: registryItemCssVarsSchema,\n cssVarsV4: registryItemCssVarsSchema.optional(),\n inlineColorsTemplate: z.string(),\n cssVarsTemplate: z.string(),\n})\n\nexport const registryResolvedItemsTreeSchema = registryItemCommonSchema\n .pick({\n dependencies: true,\n devDependencies: true,\n files: true,\n tailwind: true,\n cssVars: true,\n css: true,\n envVars: true,\n docs: true,\n })\n .extend({\n fonts: z\n .array(\n registryItemCommonSchema.extend({\n type: z.literal(\"registry:font\"),\n font: registryItemFontSchema,\n })\n )\n .optional(),\n })\n\nexport const searchResultItemSchema = z.object({\n name: z.string(),\n type: z.string().optional(),\n description: z.string().optional(),\n registry: z.string(),\n addCommandArgument: z.string(),\n})\n\nexport const searchResultsSchema = z.object({\n pagination: z.object({\n total: z.number(),\n offset: z.number(),\n limit: z.number(),\n hasMore: z.boolean(),\n }),\n items: z.array(searchResultItemSchema),\n})\n\nexport const registriesIndexSchema = z.record(\n z.string().regex(/^@[a-zA-Z0-9][a-zA-Z0-9-_]*$/),\n z.string()\n)\n\nexport const presetSchema = z.object({\n name: z.string(),\n title: z.string(),\n description: z.string(),\n base: z.string(),\n style: z.string(),\n baseColor: z.string(),\n theme: z.string(),\n iconLibrary: z.string(),\n font: z.string(),\n menuAccent: z.enum([\"subtle\", \"bold\"]),\n menuColor: z.enum([\"default\", \"inverted\"]),\n radius: z.string(),\n})\n\nexport type Preset = z.infer<typeof presetSchema>\n\nexport const configJsonSchema = z.object({\n presets: z.array(presetSchema),\n})\n\nexport type ConfigJson = z.infer<typeof configJsonSchema>\n"]}