shadcn 3.7.0 → 3.8.1
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.
- package/dist/chunk-BZ3ASCNT.js +2 -0
- package/dist/chunk-BZ3ASCNT.js.map +1 -0
- package/dist/chunk-F67Q5GTR.js +34 -0
- package/dist/chunk-F67Q5GTR.js.map +1 -0
- package/dist/{chunk-UCSFOLMK.js → chunk-UOTHKX3D.js} +7 -7
- package/dist/{chunk-UCSFOLMK.js.map → chunk-UOTHKX3D.js.map} +1 -1
- package/dist/chunk-VSDIRB3U.js +3 -0
- package/dist/chunk-VSDIRB3U.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +45 -44
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.js +1 -1
- package/dist/registry/index.js +1 -1
- package/dist/schema/index.d.ts +34 -0
- package/dist/schema/index.js +1 -1
- package/dist/utils/index.d.ts +3 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-H6P2RJ54.js +0 -2
- package/dist/chunk-H6P2RJ54.js.map +0 -1
- package/dist/chunk-LEKGDBSB.js +0 -34
- package/dist/chunk-LEKGDBSB.js.map +0 -1
- package/dist/chunk-WBIIXVVG.js +0 -3
- package/dist/chunk-WBIIXVVG.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {z as z$1}from'zod';var c=z$1.union([z$1.string().refine(e=>e.includes("{name}"),{message:"Registry URL must include {name} placeholder"}),z$1.object({url:z$1.string().refine(e=>e.includes("{name}"),{message:"Registry URL must include {name} placeholder"}),params:z$1.record(z$1.string(),z$1.string()).optional(),headers:z$1.record(z$1.string(),z$1.string()).optional()})]),l=z$1.record(z$1.string().refine(e=>e.startsWith("@"),{message:"Registry names must start with @ (e.g., @v0, @acme)"}),c),n=z$1.object({$schema:z$1.string().optional(),style:z$1.string(),rsc:z$1.coerce.boolean().default(false),tsx:z$1.coerce.boolean().default(true),tailwind:z$1.object({config:z$1.string().optional(),css:z$1.string(),baseColor:z$1.string(),cssVariables:z$1.boolean().default(true),prefix:z$1.string().default("").optional()}),iconLibrary:z$1.string().optional(),rtl:z$1.coerce.boolean().default(false).optional(),menuColor:z$1.enum(["default","inverted"]).default("default").optional(),menuAccent:z$1.enum(["subtle","bold"]).default("subtle").optional(),aliases:z$1.object({components:z$1.string(),utils:z$1.string(),ui:z$1.string().optional(),lib:z$1.string().optional(),hooks:z$1.string().optional()}),registries:l.optional()}).strict(),p=n.extend({resolvedPaths:z$1.object({cwd:z$1.string(),tailwindConfig:z$1.string(),tailwindCss:z$1.string(),utils:z$1.string(),components:z$1.string(),lib:z$1.string(),hooks:z$1.string(),ui:z$1.string()})}),x=z$1.record(p),s=z$1.enum(["registry:lib","registry:block","registry:component","registry:ui","registry:hook","registry:page","registry:file","registry:theme","registry:style","registry:item","registry:base","registry:font","registry:example","registry:internal"]),m=z$1.discriminatedUnion("type",[z$1.object({path:z$1.string(),content:z$1.string().optional(),type:z$1.enum(["registry:file","registry:page"]),target:z$1.string()}),z$1.object({path:z$1.string(),content:z$1.string().optional(),type:s.exclude(["registry:file","registry:page"]),target:z$1.string().optional()})]),y=z$1.object({config:z$1.object({content:z$1.array(z$1.string()).optional(),theme:z$1.record(z$1.string(),z$1.any()).optional(),plugins:z$1.array(z$1.string()).optional()}).optional()}),i=z$1.object({theme:z$1.record(z$1.string(),z$1.string()).optional(),light:z$1.record(z$1.string(),z$1.string()).optional(),dark:z$1.record(z$1.string(),z$1.string()).optional()}),o=z$1.lazy(()=>z$1.union([z$1.string(),z$1.array(z$1.union([z$1.string(),z$1.record(z$1.string(),z$1.string())])),z$1.record(z$1.string(),o)])),d=z$1.record(z$1.string(),o),u=z$1.record(z$1.string(),z$1.string()),a=z$1.object({family:z$1.string(),provider:z$1.literal("google"),import:z$1.string(),variable:z$1.string(),weight:z$1.array(z$1.string()).optional(),subsets:z$1.array(z$1.string()).optional()}),r=z$1.object({$schema:z$1.string().optional(),extends:z$1.string().optional(),name:z$1.string(),title:z$1.string().optional(),author:z$1.string().min(2).optional(),description:z$1.string().optional(),dependencies:z$1.array(z$1.string()).optional(),devDependencies:z$1.array(z$1.string()).optional(),registryDependencies:z$1.array(z$1.string()).optional(),files:z$1.array(m).optional(),tailwind:y.optional(),cssVars:i.optional(),css:d.optional(),envVars:u.optional(),meta:z$1.record(z$1.string(),z$1.any()).optional(),docs:z$1.string().optional(),categories:z$1.array(z$1.string()).optional()}),g=z$1.discriminatedUnion("type",[r.extend({type:z$1.literal("registry:base"),config:n.deepPartial().optional()}),r.extend({type:z$1.literal("registry:font"),font:a}),r.extend({type:s.exclude(["registry:base","registry:font"])})]),S=z$1.object({name:z$1.string(),homepage:z$1.string(),items:z$1.array(g)}),j=z$1.array(g),I=z$1.array(z$1.object({name:z$1.string(),label:z$1.string()})),C=z$1.record(z$1.string(),z$1.record(z$1.string(),z$1.string())),R=z$1.object({inlineColors:z$1.object({light:z$1.record(z$1.string(),z$1.string()),dark:z$1.record(z$1.string(),z$1.string())}),cssVars:i,cssVarsV4:i.optional(),inlineColorsTemplate:z$1.string(),cssVarsTemplate:z$1.string()}),v=r.pick({dependencies:true,devDependencies:true,files:true,tailwind:true,cssVars:true,css:true,envVars:true,docs:true}).extend({fonts:z$1.array(r.extend({type:z$1.literal("registry:font"),font:a})).optional()}),f=z$1.object({name:z$1.string(),type:z$1.string().optional(),description:z$1.string().optional(),registry:z$1.string(),addCommandArgument:z$1.string()}),V=z$1.object({pagination:z$1.object({total:z$1.number(),offset:z$1.number(),limit:z$1.number(),hasMore:z$1.boolean()}),items:z$1.array(f)}),w=z$1.record(z$1.string().regex(/^@[a-zA-Z0-9][a-zA-Z0-9-_]*$/),z$1.string()),z=z$1.array(z$1.object({name:z$1.string(),homepage:z$1.string().optional(),url:z$1.string(),description:z$1.string().optional()})),h=z$1.object({name:z$1.string(),title:z$1.string(),description:z$1.string(),base:z$1.string(),style:z$1.string(),baseColor:z$1.string(),theme:z$1.string(),iconLibrary:z$1.string(),font:z$1.string(),rtl:z$1.coerce.boolean().default(false),menuAccent:z$1.enum(["subtle","bold"]),menuColor:z$1.enum(["default","inverted"]),radius:z$1.string()}),k=z$1.object({presets:z$1.array(h)});export{c as a,l as b,n as c,p as d,x as e,s as f,m as g,y as h,i,d as j,u as k,a as l,r as m,g as n,S as o,j as p,I as q,C as r,R as s,v as t,f as u,V as v,w,z as x,h as y,k as z};//# sourceMappingURL=chunk-BZ3ASCNT.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-BZ3ASCNT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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","registriesSchema","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,CAAA,CAAE,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,QAAO,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,EAAO,CAAE,QAAA,GACnB,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,IAAKA,GAAAA,CAAE,MAAA,CAAO,OAAA,EAAQ,CAAE,OAAA,CAAQ,KAAK,CAAA,CAAE,QAAA,EAAS,CAChD,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,EAAE,QAAA,EAAS,CAClE,OAAA,CAASA,GAAAA,CAAE,MAAA,CAAO,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,GACT,UAAA,CAAYA,GAAAA,CAAE,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,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,GAAAA,CAAE,KAAK,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,OAAQP,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,MAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAAGA,IAAE,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,QAAA,EACzC,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,GAAAA,CAAE,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,EAAO,CAAE,QAAA,EAAS,CAC3B,MAAA,CAAQA,GAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CACnC,WAAA,CAAaA,IAAE,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,IAAE,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,EAAS,CACpC,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,GACpC,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,aAAY,CAAE,QAAA,EACxC,CAAC,CAAA,CACDW,CAAAA,CAAyB,MAAA,CAAO,CAC9B,IAAA,CAAMf,GAAAA,CAAE,OAAA,CAAQ,eAAe,CAAA,CAC/B,IAAA,CAAMc,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,EAAiBjB,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,GACR,KAAA,CAAOA,GAAAA,CAAE,MAAA,EACX,CAAC,CACH,CAAA,CAEaoB,CAAAA,CAAcpB,GAAAA,CAAE,MAAA,CAC3BA,GAAAA,CAAE,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,IAAE,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,QACrB,CAAC,CAAA,CAEYsB,CAAAA,CAAkCP,CAAAA,CAC5C,IAAA,CAAK,CACJ,YAAA,CAAc,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,UAAS,CACjC,QAAA,CAAUA,GAAAA,CAAE,MAAA,EAAO,CACnB,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,IAAE,OAAA,EACb,CAAC,CAAA,CACD,KAAA,CAAOA,GAAAA,CAAE,KAAA,CAAMuB,CAAsB,CACvC,CAAC,CAAA,CAGYE,CAAAA,CAAwBzB,GAAAA,CAAE,MAAA,CACrCA,GAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,CAAM,8BAA8B,CAAA,CAC/CA,GAAAA,CAAE,MAAA,EACJ,CAAA,CAGa0B,CAAAA,CAAmB1B,GAAAA,CAAE,KAAA,CAChCA,GAAAA,CAAE,MAAA,CAAO,CACP,IAAA,CAAMA,GAAAA,CAAE,QAAO,CACf,QAAA,CAAUA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS,CAC9B,GAAA,CAAKA,GAAAA,CAAE,MAAA,EAAO,CACd,WAAA,CAAaA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAC1B,CAAC,CACH,CAAA,CAEa2B,CAAAA,CAAe3B,GAAAA,CAAE,MAAA,CAAO,CACnC,IAAA,CAAMA,GAAAA,CAAE,MAAA,EAAO,CACf,KAAA,CAAOA,GAAAA,CAAE,MAAA,EAAO,CAChB,YAAaA,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,GAAA,CAAKA,GAAAA,CAAE,MAAA,CAAO,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA,CACrC,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,CAIY4B,CAAAA,CAAmB5B,GAAAA,CAAE,MAAA,CAAO,CACvC,OAAA,CAASA,GAAAA,CAAE,KAAA,CAAM2B,CAAY,CAC/B,CAAC","file":"chunk-BZ3ASCNT.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 rtl: z.coerce.boolean().default(false).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\n// Legacy schema for getRegistriesIndex() backward compatibility.\nexport const registriesIndexSchema = z.record(\n z.string().regex(/^@[a-zA-Z0-9][a-zA-Z0-9-_]*$/),\n z.string()\n)\n\n// New schema for getRegistries().\nexport const registriesSchema = z.array(\n z.object({\n name: z.string(),\n homepage: z.string().optional(),\n url: z.string(),\n description: z.string().optional(),\n })\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 rtl: z.coerce.boolean().default(false),\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"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import {m,l,f,d as d$1,c as c$1,e,n,t,o,b as b$1,p,q as q$1,r,s,x,z as z$1,v,g}from'./chunk-BZ3ASCNT.js';import {a,d,c,b,f as f$1}from'./chunk-VSDIRB3U.js';import*as y from'path';import y__default,{basename}from'path';import {z}from'zod';import*as H from'fs/promises';import {tmpdir,homedir}from'os';import {green,cyan,yellow,red}from'kleur/colors';import {loadConfig,createMatchPath}from'tsconfig-paths';import {cosmiconfig}from'cosmiconfig';import ze from'fast-glob';import Ke from'fs-extra';import {existsSync,statSync,promises}from'fs';import _r from'ora';import {Project,SyntaxKind,ScriptKind,QuoteKind}from'ts-morph';import {transformFromAstSync}from'@babel/core';import {parse}from'@babel/parser';import Br from'@babel/plugin-transform-typescript';import*as Ue from'recast';import os from'prompts';import me from'deepmerge';import {HttpsProxyAgent}from'https-proxy-agent';import Ks from'node-fetch';import {createHash}from'crypto';import Ws from'stringify-object';import pn from'fuzzysort';var se=process.env.REGISTRY_URL??"https://ui.shadcn.com/r",Oe="new-york-v4",At=[{name:"neutral",label:"Neutral"},{name:"gray",label:"Gray"},{name:"zinc",label:"Zinc"},{name:"stone",label:"Stone"},{name:"slate",label:"Slate"}],F={"@shadcn":`${se}/styles/{style}/{name}.json`};var hn=[{name:"toast",deprecatedBy:"sonner",message:"The toast component is deprecated. Use the sonner component instead."},{name:"toaster",deprecatedBy:"sonner",message:"The toaster component is deprecated. Use the sonner component instead."}];function de(e){return e.replace(/\${(\w+)}/g,(t,r)=>process.env[r]||"")}function ue(e){let t=[],r=/\${(\w+)}/g,s;for(;(s=r.exec(e))!==null;)t.push(s[1]);return t}var N={NOT_FOUND:"NOT_FOUND",UNAUTHORIZED:"UNAUTHORIZED",FORBIDDEN:"FORBIDDEN",FETCH_ERROR:"FETCH_ERROR",NOT_CONFIGURED:"NOT_CONFIGURED",INVALID_CONFIG:"INVALID_CONFIG",MISSING_ENV_VARS:"MISSING_ENV_VARS",LOCAL_FILE_ERROR:"LOCAL_FILE_ERROR",PARSE_ERROR:"PARSE_ERROR",VALIDATION_ERROR:"VALIDATION_ERROR",UNKNOWN_ERROR:"UNKNOWN_ERROR"},I=class extends Error{code;statusCode;context;suggestion;timestamp;cause;constructor(t,r={}){super(t),this.name="RegistryError",this.code=r.code||N.UNKNOWN_ERROR,this.statusCode=r.statusCode,this.cause=r.cause,this.context=r.context,this.suggestion=r.suggestion,this.timestamp=new Date,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);}toJSON(){return {name:this.name,message:this.message,code:this.code,statusCode:this.statusCode,context:this.context,suggestion:this.suggestion,timestamp:this.timestamp,stack:this.stack}}},Z=class extends I{constructor(r,s){let n=`The item at ${r} was not found. It may not exist at the registry.`;super(n,{code:N.NOT_FOUND,statusCode:404,cause:s,context:{url:r},suggestion:"Check if the item name is correct and the registry URL is accessible."});this.url=r;this.name="RegistryNotFoundError";}},he=class extends I{constructor(r,s){let n=`You are not authorized to access the item at ${r}. If this is a remote registry, you may need to authenticate.`;super(n,{code:N.UNAUTHORIZED,statusCode:401,cause:s,context:{url:r},suggestion:"Check your authentication credentials and environment variables."});this.url=r;this.name="RegistryUnauthorizedError";}},ye=class extends I{constructor(r,s){let n=`You are not authorized to access the item at ${r}. If this is a remote registry, you may need to authenticate.`;super(n,{code:N.FORBIDDEN,statusCode:403,cause:s,context:{url:r},suggestion:"Check your authentication credentials and environment variables."});this.url=r;this.name="RegistryForbiddenError";}},xe=class extends I{constructor(r,s,n,i){let o=s?`Failed to fetch from registry (${s}): ${r}`:`Failed to fetch from registry: ${r}`,a=typeof i=="string"&&i?`${o} - ${i}`:o,p="Check your network connection and try again.";s===404?p="The requested resource was not found. Check the URL or item name.":s===500?p="The registry server encountered an error. Try again later.":s&&s>=400&&s<500&&(p="There was a client error. Check your request parameters.");super(a,{code:N.FETCH_ERROR,statusCode:s,cause:i,context:{url:r,responseBody:n},suggestion:p});this.url=r;this.responseBody=n;this.name="RegistryFetchError";}},M=class extends I{constructor(r){let s=r?`Unknown registry "${r}". Make sure it is defined in components.json as follows:
|
|
2
|
+
{
|
|
3
|
+
"registries": {
|
|
4
|
+
"${r}": "[URL_TO_REGISTRY]"
|
|
5
|
+
}
|
|
6
|
+
}`:'Unknown registry. Make sure it is defined in components.json under "registries".';super(s,{code:N.NOT_CONFIGURED,context:{registryName:r},suggestion:"Add the registry configuration to your components.json file. Consult the registry documentation for the correct format."});this.registryName=r;this.name="RegistryNotConfiguredError";}},ne=class extends I{constructor(r,s){super(`Failed to read local registry file: ${r}`,{code:N.LOCAL_FILE_ERROR,cause:s,context:{filePath:r},suggestion:"Check if the file exists and you have read permissions."});this.filePath=r;this.name="RegistryLocalFileError";}},A=class extends I{constructor(r,s){let n=`Failed to parse registry item: ${r}`;s instanceof z.ZodError&&(n=`Failed to parse registry item: ${r}
|
|
7
|
+
${s.errors.map(i=>` - ${i.path.join(".")}: ${i.message}`).join(`
|
|
8
|
+
`)}`);super(n,{code:N.PARSE_ERROR,cause:s,context:{item:r},suggestion:"The registry item may be corrupted or have an invalid format. Please make sure it returns a valid JSON object. See https://ui.shadcn.com/schema/registry-item.json."});this.item=r;this.parseError=s,this.name="RegistryParseError";}parseError},we=class extends I{constructor(r,s){let n=`Registry "${r}" requires the following environment variables:
|
|
9
|
+
|
|
10
|
+
`+s.map(i=>` \u2022 ${i}`).join(`
|
|
11
|
+
`);super(n,{code:N.MISSING_ENV_VARS,context:{registryName:r,missingVars:s},suggestion:"Set the required environment variables to your .env or .env.local file."});this.registryName=r;this.missingVars=s;this.name="RegistryMissingEnvironmentVariablesError";}},Ee=class extends I{constructor(r){let s=`Invalid registry namespace: "${r}". Registry names must start with @ (e.g., @shadcn, @v0).`;super(s,{code:N.VALIDATION_ERROR,context:{name:r},suggestion:"Use a valid registry name starting with @ or provide a direct URL to the registry."});this.name=r;this.name="RegistryInvalidNamespaceError";}};var Fe=class extends I{constructor(r,s){let n=`Invalid components.json configuration in ${r}.`;s instanceof z.ZodError&&(n=`Invalid components.json configuration in ${r}:
|
|
12
|
+
${s.errors.map(i=>` - ${i.path.join(".")}: ${i.message}`).join(`
|
|
13
|
+
`)}`);super(n,{code:N.INVALID_CONFIG,cause:s,context:{cwd:r},suggestion:"Check your components.json file for syntax errors or invalid configuration. Run 'npx shadcn@latest init' to regenerate a valid configuration."});this.cwd=r;this.name="ConfigParseError";}},ve=class extends I{parseError;constructor(t){let r="Failed to parse registries index";if(t instanceof z.ZodError){let s=t.errors.filter(n=>n.path.length>0).map(n=>`"${n.path[0]}"`).filter((n,i,o)=>o.indexOf(n)===i);s.length>0?r=`Failed to parse registries index. Invalid registry namespace(s): ${s.join(", ")}
|
|
14
|
+
${t.errors.map(n=>` - ${n.path.join(".")}: ${n.message}`).join(`
|
|
15
|
+
`)}`:r=`Failed to parse registries index:
|
|
16
|
+
${t.errors.map(n=>` - ${n.path.join(".")}: ${n.message}`).join(`
|
|
17
|
+
`)}`;}super(r,{code:N.PARSE_ERROR,cause:t,context:{parseError:t},suggestion:"The registries index may be corrupted or have invalid registry namespace format. Registry names must start with @ (e.g., @shadcn, @example)."}),this.parseError=t,this.name="RegistriesIndexParseError";}};var xr=/^(@[a-zA-Z0-9](?:[a-zA-Z0-9-_]*[a-zA-Z0-9])?)\/(.+)$/;function ie(e){if(!e.startsWith("@"))return {registry:null,item:e};let t=e.match(xr);return t?{registry:t[1],item:t[2]}:{registry:null,item:e}}var $={"next-app":{name:"next-app",label:"Next.js",links:{installation:"https://ui.shadcn.com/docs/installation/next",tailwind:"https://tailwindcss.com/docs/guides/nextjs"}},"next-pages":{name:"next-pages",label:"Next.js",links:{installation:"https://ui.shadcn.com/docs/installation/next",tailwind:"https://tailwindcss.com/docs/guides/nextjs"}},remix:{name:"remix",label:"Remix",links:{installation:"https://ui.shadcn.com/docs/installation/remix",tailwind:"https://tailwindcss.com/docs/guides/remix"}},"react-router":{name:"react-router",label:"React Router",links:{installation:"https://ui.shadcn.com/docs/installation/react-router",tailwind:"https://tailwindcss.com/docs/installation/framework-guides/react-router"}},vite:{name:"vite",label:"Vite",links:{installation:"https://ui.shadcn.com/docs/installation/vite",tailwind:"https://tailwindcss.com/docs/guides/vite"}},astro:{name:"astro",label:"Astro",links:{installation:"https://ui.shadcn.com/docs/installation/astro",tailwind:"https://tailwindcss.com/docs/guides/astro"}},laravel:{name:"laravel",label:"Laravel",links:{installation:"https://ui.shadcn.com/docs/installation/laravel",tailwind:"https://tailwindcss.com/docs/guides/laravel"}},"tanstack-start":{name:"tanstack-start",label:"TanStack Start",links:{installation:"https://ui.shadcn.com/docs/installation/tanstack",tailwind:"https://tailwindcss.com/docs/installation/using-postcss"}},gatsby:{name:"gatsby",label:"Gatsby",links:{installation:"https://ui.shadcn.com/docs/installation/gatsby",tailwind:"https://tailwindcss.com/docs/guides/gatsby"}},expo:{name:"expo",label:"Expo",links:{installation:"https://ui.shadcn.com/docs/installation/expo",tailwind:"https://www.nativewind.dev/docs/getting-started/installation"}},manual:{name:"manual",label:"Manual",links:{installation:"https://ui.shadcn.com/docs/installation/manual",tailwind:"https://tailwindcss.com/docs/installation"}}};var P={error:red,warn:yellow,info:cyan,success:green};async function O(e,t){return createMatchPath(t.absoluteBaseUrl,t.paths)(e,void 0,()=>true,[".ts",".tsx",".jsx",".js",".css"])}var Ln="@/components",Dn="@/lib/utils",Kn="app/globals.css",zn="tailwind.config.js";var Ne=cosmiconfig("components",{searchPlaces:["components.json"]});async function Le(e){let t=await Tr(e);return t?(t.iconLibrary||(t.iconLibrary=t.style==="new-york"?"radix":"lucide"),await rt(e,t)):null}async function rt(e,t){t.registries={...F,...t.registries||{}};let r=await loadConfig(e);if(r.resultType==="failed")throw new Error(`Failed to load ${t.tsx?"tsconfig":"jsconfig"}.json. ${r.message??""}`.trim());return d$1.parse({...t,resolvedPaths:{cwd:e,tailwindConfig:t.tailwind.config?y__default.resolve(e,t.tailwind.config):"",tailwindCss:y__default.resolve(e,t.tailwind.css),utils:await O(t.aliases.utils,r),components:await O(t.aliases.components,r),ui:t.aliases.ui?await O(t.aliases.ui,r):y__default.resolve(await O(t.aliases.components,r)??e,"ui"),lib:t.aliases.lib?await O(t.aliases.lib,r):y__default.resolve(await O(t.aliases.utils,r)??e,".."),hooks:t.aliases.hooks?await O(t.aliases.hooks,r):y__default.resolve(await O(t.aliases.components,r)??e,"..","hooks")}})}async function Tr(e){try{let t=await Ne.search(e);if(!t)return null;let r=c$1.parse(t.config);if(r.registries){for(let s of Object.keys(r.registries))if(s in F)throw new Error(`"${s}" is a built-in registry and cannot be overridden.`)}return r}catch(t){let r=`${e}/components.json`;throw t instanceof Error&&t.message.includes("reserved registry")?t:new Error(`Invalid configuration found in ${P.info(r)}.`)}}async function _n(e$1){let t={};for(let s of Object.keys(e$1.aliases)){if(!jr(s,e$1))continue;let n=e$1.resolvedPaths[s],i=await Pr(e$1.resolvedPaths.cwd,n);if(!i){t[s]=e$1;continue}t[s]=await Le(i);}let r=e.safeParse(t);return r.success?r.data:null}async function Pr(e,t){let r=kr(e,t),s=y__default.relative(r,t),i=(await ze.glob("**/package.json",{cwd:r,deep:3,ignore:["**/node_modules/**","**/dist/**","**/build/**","**/public/**"]})).map(o=>y__default.dirname(o)).find(o=>s.startsWith(o));return i?y__default.join(r,i):null}function jr(e,t){return Object.keys(t.resolvedPaths).filter(r=>r!=="utils").includes(e)}function kr(e,t){let r=e.split(y__default.sep),s=t.split(y__default.sep),n=[];for(let i=0;i<Math.min(r.length,s.length)&&r[i]===s[i];i++)n.push(r[i]);return n.join(y__default.sep)}async function $t(e,t){return (await W(e))?.tailwindVersion==="v4"?"new-york-v4":t}function Ot(e){let t={resolvedPaths:{cwd:process.cwd(),tailwindConfig:"",tailwindCss:"",utils:"",components:"",ui:"",lib:"",hooks:""},style:"",tailwind:{config:"",css:"",baseColor:"",cssVariables:false},rsc:false,tsx:true,aliases:{components:"",utils:""},registries:{...F}};return e?{...t,...e,resolvedPaths:{...t.resolvedPaths,...e.resolvedPaths||{}},tailwind:{...t.tailwind,...e.tailwind||{}},aliases:{...t.aliases,...e.aliases||{}},registries:{...t.registries,...e.registries||{}}}:t}function st(e="",t=true){let r=y__default.join(e,"package.json");return Ke.readJSONSync(r,{throws:t})}var _e=["**/node_modules/**",".next","public","dist","build"];z.object({compilerOptions:z.object({paths:z.record(z.string().or(z.array(z.string())))})});async function W(e){let[t,r,s,n,i,o,a,p]=await Promise.all([ze.glob("**/{next,vite,astro,app}.config.*|gatsby-config.*|composer.json|react-router.config.*",{cwd:e,deep:3,ignore:_e}),Ke.pathExists(y__default.resolve(e,"src")),Kr(e),Lr(e),Nr(e),Ft(e),Dr(e),st(e,false)]),c=await Ke.pathExists(y__default.resolve(e,`${r?"src/":""}app`)),l={framework:$.manual,isSrcDir:r,isRSC:false,isTsx:s,tailwindConfigFile:n,tailwindCssFile:i,tailwindVersion:o,frameworkVersion:null,aliasPrefix:a};if(t.find(f=>f.startsWith("next.config."))?.length)return l.framework=c?$["next-app"]:$["next-pages"],l.isRSC=c,l.frameworkVersion=await Fr(l.framework,p),l;if(t.find(f=>f.startsWith("astro.config."))?.length)return l.framework=$.astro,l;if(t.find(f=>f.startsWith("gatsby-config."))?.length)return l.framework=$.gatsby,l;if(t.find(f=>f.startsWith("composer.json"))?.length)return l.framework=$.laravel,l;if(Object.keys(p?.dependencies??{}).find(f=>f.startsWith("@remix-run/")))return l.framework=$.remix,l;if([...Object.keys(p?.dependencies??{}),...Object.keys(p?.devDependencies??{})].find(f=>f.startsWith("@tanstack/react-start")))return l.framework=$["tanstack-start"],l;if(t.find(f=>f.startsWith("react-router.config."))?.length)return l.framework=$["react-router"],l;if(t.find(f=>f.startsWith("vite.config."))?.length)return l.framework=$.vite,l;let d=t.find(f=>f.startsWith("app.config"));return d?.length&&(await Ke.readFile(y__default.resolve(e,d),"utf8")).includes("defineConfig")?(l.framework=$.vite,l):(p?.dependencies?.expo&&(l.framework=$.expo),l)}async function Fr(e,t){if(!t||!["next-app","next-pages"].includes(e.name))return null;let r=t.dependencies?.next||t.devDependencies?.next;if(!r)return null;let s=r.match(/^[\^~]?(\d+\.\d+\.\d+)/);if(s)return s[1];let n=r.match(/(\d+\.\d+\.\d+)/);return n?n[1]:r}async function Ft(e){let[t,r]=await Promise.all([st(e,false),Le(e)]);return r?.tailwind?.config===""?"v4":!t?.dependencies?.tailwindcss&&!t?.devDependencies?.tailwindcss?null:/^(?:\^|~)?3(?:\.\d+)*(?:-.*)?$/.test(t?.dependencies?.tailwindcss||t?.devDependencies?.tailwindcss||"")?"v3":"v4"}async function Nr(e){let[t,r]=await Promise.all([ze.glob(["**/*.css","**/*.scss"],{cwd:e,deep:5,ignore:_e}),Ft(e)]);if(!t.length)return null;for(let n of t){let i=await Ke.readFile(y__default.resolve(e,n),"utf8");if(i.includes('@import "tailwindcss"')||i.includes("@import 'tailwindcss'")||i.includes("@tailwind base"))return n}return null}async function Lr(e){let t=await ze.glob("tailwind.config.*",{cwd:e,deep:3,ignore:_e});return t.length?t[0]:null}async function Dr(e){let t=await loadConfig(e);if(t?.resultType==="failed"||!Object.entries(t?.paths).length)return null;for(let[r,s]of Object.entries(t.paths))if(s.includes("./*")||s.includes("./src/*")||s.includes("./app/*")||s.includes("./resources/js/*"))return r.replace(/\/\*$/,"")??null;return Object.keys(t?.paths)?.[0].replace(/\/\*$/,"")??null}async function Kr(e){return (await ze.glob("tsconfig.*",{cwd:e,deep:1,ignore:_e})).length>0}async function ri(e,t=null){let[r,s]=await Promise.all([Le(e),t?Promise.resolve(t):W(e)]);if(r)return r;if(!s||!s.tailwindCssFile||s.tailwindVersion==="v3"&&!s.tailwindConfigFile)return null;let n={$schema:"https://ui.shadcn.com/schema.json",rsc:s.isRSC,tsx:s.isTsx,style:"new-york",tailwind:{config:s.tailwindConfigFile??"",baseColor:"zinc",css:s.tailwindCssFile,cssVariables:true,prefix:""},iconLibrary:"lucide",aliases:{components:`${s.aliasPrefix}/components`,ui:`${s.aliasPrefix}/components/ui`,hooks:`${s.aliasPrefix}/hooks`,lib:`${s.aliasPrefix}/lib`,utils:`${s.aliasPrefix}/lib/utils`}};return await rt(e,n)}async function Ve(e){if(!e.resolvedPaths?.cwd)return "v3";let t=await W(e.resolvedPaths.cwd);return t?.tailwindVersion?t.tailwindVersion:null}function Nt(e,t,r={}){let{ignoreImports:s=false}=r,n=e.replace(/\r\n/g,`
|
|
18
|
+
`).trim(),i=t.replace(/\r\n/g,`
|
|
19
|
+
`).trim();if(n===i)return true;if(!s)return false;let o=/^(import\s+(?:type\s+)?(?:\*\s+as\s+\w+|\{[^}]*\}|\w+)?(?:\s*,\s*(?:\{[^}]*\}|\w+))?\s+from\s+["'])([^"']+)(["'])/gm,a=l=>l.replace(o,(d,f,x,u)=>{if(x.startsWith("."))return `${f}${x}${u}`;let w=x.split("/"),m=w[w.length-1];return `${f}@normalized/${m}${u}`}),p=a(n),c=a(i);return p===c}function Q(e){let t=y__default.basename(e);return /^\.env(\.|$)/.test(t)}function Dt(e){let t=[".env.local",".env",".env.development.local",".env.development"];for(let r of t){let s=y__default.join(e,r);if(existsSync(s))return s}return null}function ae(e){let t=e.split(`
|
|
20
|
+
`),r={};for(let s of t){let n=s.trim();if(!n||n.startsWith("#"))continue;let i=n.indexOf("=");if(i===-1)continue;let o=n.substring(0,i).trim(),a=n.substring(i+1).trim();o&&(r[o]=a.replace(/^["']|["']$/g,""));}return r}function Kt(e,t){let r=ae(e),s=ae(t),n=[];for(let i of Object.keys(s))i in r||n.push(i);return n}function zt(e,t){let r=ae(e),s=ae(t),n=e.trimEnd();n&&!n.endsWith(`
|
|
21
|
+
`)&&(n+=`
|
|
22
|
+
`);let i=[];for(let[o,a]of Object.entries(s))o in r||i.push(`${o}=${a}`);return i.length>0?(n&&(n+=`
|
|
23
|
+
`),n+=i.join(`
|
|
24
|
+
`),n+`
|
|
25
|
+
`):n&&!n.endsWith(`
|
|
26
|
+
`)?n+`
|
|
27
|
+
`:n}var R={error(...e){console.log(P.error(e.join(" ")));},warn(...e){console.log(P.warn(e.join(" ")));},info(...e){console.log(P.info(e.join(" ")));},success(...e){console.log(P.success(e.join(" ")));},log(...e){console.log(e.join(" "));},break(){console.log("");}};function X(e,t){return _r({text:e,isSilent:t?.silent})}var We=async({sourceFile:e,config:t,isRemote:r})=>{let s=t.aliases?.utils,i=`${typeof s=="string"&&s.includes("/")?s.split("/")[0]:"@"}/lib/utils`;if(![".tsx",".ts",".jsx",".js"].includes(e.getExtension()))return e;for(let o of e.getImportStringLiterals()){let a=Wr(o.getLiteralValue(),t,r);if(o.setLiteralValue(a),i===a||a==="@/lib/utils"){if(!o.getFirstAncestorByKind(SyntaxKind.ImportDeclaration)?.getNamedImports().some(l=>l.getName()==="cn")||!t.aliases.utils)continue;o.setLiteralValue(i===a?a.replace(i,t.aliases.utils):t.aliases.utils);}}return e};function Wr(e,t,r=false){if(!e.startsWith("@/")&&!r)return e;if(r&&e.startsWith("@/")&&(e=e.replace(/^@\//,"@/registry/new-york/")),!e.startsWith("@/registry/")){let s=t.aliases.components.split("/")[0];return e.replace(/^@\//,`${s}/`)}return e.match(/^@\/registry\/(.+)\/ui/)?e.replace(/^@\/registry\/(.+)\/ui/,t.aliases.ui??`${t.aliases.components}/ui`):t.aliases.components&&e.match(/^@\/registry\/(.+)\/components/)?e.replace(/^@\/registry\/(.+)\/components/,t.aliases.components):t.aliases.lib&&e.match(/^@\/registry\/(.+)\/lib/)?e.replace(/^@\/registry\/(.+)\/lib/,t.aliases.lib):t.aliases.hooks&&e.match(/^@\/registry\/(.+)\/hooks/)?e.replace(/^@\/registry\/(.+)\/hooks/,t.aliases.hooks):e.replace(/^@\/registry\/[^/]+/,t.aliases.components)}var Jr={sourceType:"module",allowImportExportEverywhere:true,allowReturnOutsideFunction:true,startLine:1,tokens:true,plugins:["asyncGenerators","bigInt","classPrivateMethods","classPrivateProperties","classProperties","classStaticBlock","decimal","decorators-legacy","doExpressions","dynamicImport","exportDefaultFrom","exportNamespaceFrom","functionBind","functionSent","importAssertions","importMeta","nullishCoalescingOperator","numericSeparator","objectRestSpread","optionalCatchBinding","optionalChaining",["pipelineOperator",{proposal:"minimal"}],["recordAndTuple",{syntaxType:"hash"}],"throwExpressions","topLevelAwait","v8intrinsic","typescript","jsx"]},_t=async({sourceFile:e,config:t})=>{let r=e.getFullText();if(t.tsx)return r;let s=Ue.parse(r,{parser:{parse:i=>parse(i,Jr)}}),n=transformFromAstSync(s,r,{cloneInputAst:false,code:false,ast:true,plugins:[Br],configFile:false});if(!n||!n.ast)throw new Error("Failed to transform JSX");return Ue.print(n.ast).code};var Hr=/^["']use client["']$/g,Me=async({sourceFile:e,config:t})=>{if(t.rsc)return e;let r=e.getFirstChildByKind(SyntaxKind.ExpressionStatement);return r&&Hr.test(r.getText())&&r.remove(),e};var Vt=/\bcn-[a-z-]+\b/,qr=/\bcn-[a-z-]+\b/g;function Wt(e){return e.replace(qr,"").replace(/\s+/g," ").trim()}function Be(e){let t=e.getLiteralValue();if(!Vt.test(t))return;let r=Wt(t);r!==t&&e.setLiteralValue(r);}function nt(e){for(let t of e.getDescendantsOfKind(SyntaxKind.StringLiteral))Be(t);for(let t of e.getDescendantsOfKind(SyntaxKind.NoSubstitutionTemplateLiteral))Be(t);}function Yr(e){let t=[];for(let r of e.getDescendantsOfKind(SyntaxKind.JsxAttribute)){let s=r.getNameNode().getText();if(s!=="className"&&s!=="classNames")continue;let n=r.getInitializer();if(n?.isKind(SyntaxKind.StringLiteral)){let i=n.getLiteralValue();if(Vt.test(i)){let o=Wt(i);o===""?t.push(r):o!==i&&n.setLiteralValue(o);}}n?.isKind(SyntaxKind.JsxExpression)&&nt(n);}for(let r of t)r.remove();for(let r of e.getDescendantsOfKind(SyntaxKind.CallExpression))if(r.getExpression().getText()==="cva")for(let s of r.getArguments()){if(s.isKind(SyntaxKind.StringLiteral)){Be(s);continue}if(s.isKind(SyntaxKind.NoSubstitutionTemplateLiteral)){Be(s);continue}nt(s);}for(let r of e.getDescendantsOfKind(SyntaxKind.CallExpression))r.getExpression().getText()==="mergeProps"&&nt(r);}var Je=async({sourceFile:e})=>(Yr(e),e);var Ge=async({sourceFile:e,config:t})=>{if(!t.tailwind?.prefix)return e;let r=await Ve(t);return e.getDescendantsOfKind(SyntaxKind.CallExpression).filter(s=>s.getExpression().getText()==="cva").forEach(s=>{if(s.getArguments()[0]?.isKind(SyntaxKind.StringLiteral)){let n=s.getArguments()[0];n&&n.replaceWithText(`"${B(n.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}s.getArguments()[1]?.isKind(SyntaxKind.ObjectLiteralExpression)&&s.getArguments()[1]?.getDescendantsOfKind(SyntaxKind.PropertyAssignment).find(n=>n.getName()==="variants")?.getDescendantsOfKind(SyntaxKind.PropertyAssignment).forEach(n=>{n.getDescendantsOfKind(SyntaxKind.PropertyAssignment).forEach(i=>{let o=i.getInitializerIfKind(SyntaxKind.StringLiteral);o&&o?.replaceWithText(`"${B(o.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);});});}),e.getDescendantsOfKind(SyntaxKind.JsxAttribute).forEach(s=>{if(s.getNameNode().getText()==="className"){if(s.getInitializer()?.isKind(SyntaxKind.StringLiteral)){let n=s.getInitializer();n&&n.replaceWithText(`"${B(n.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}if(s.getInitializer()?.isKind(SyntaxKind.JsxExpression)){let n=s.getInitializer()?.getDescendantsOfKind(SyntaxKind.CallExpression).find(i=>i.getExpression().getText()==="cn");n&&n.getArguments().forEach(i=>{(i.isKind(SyntaxKind.ConditionalExpression)||i.isKind(SyntaxKind.BinaryExpression))&&i.getChildrenOfKind(SyntaxKind.StringLiteral).forEach(o=>{o.replaceWithText(`"${B(o.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}),i.isKind(SyntaxKind.StringLiteral)&&i.replaceWithText(`"${B(i.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);});}}s.getNameNode().getText()==="classNames"&&s.getInitializer()?.isKind(SyntaxKind.JsxExpression)&&s.getDescendantsOfKind(SyntaxKind.PropertyAssignment).forEach(n=>{if(n.getInitializer()?.isKind(SyntaxKind.CallExpression)){let i=n.getInitializerIfKind(SyntaxKind.CallExpression);i&&i.getArguments().forEach(o=>{o.isKind(SyntaxKind.ConditionalExpression)&&o.getChildrenOfKind(SyntaxKind.StringLiteral).forEach(a=>{a.replaceWithText(`"${B(a.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}),o.isKind(SyntaxKind.StringLiteral)&&o.replaceWithText(`"${B(o.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);});}if(n.getInitializer()?.isKind(SyntaxKind.StringLiteral)&&n.getNameNode().getText()!=="variant"){let i=n.getInitializer();i&&i.replaceWithText(`"${B(i.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}});}),e};function B(e,t="",r){return r==="v3"?e.split(" ").map(s=>{let[n,i,o]=b(s);return n?o?`${n}:${t}${i}/${o}`:`${n}:${t}${i}`:o?`${t}${i}/${o}`:`${t}${i}`}).join(" "):e.split(" ").map(s=>s.indexOf(`${t}:`)===0?s:`${t}:${s.trim()}`).join(" ")}var ts=new Project({compilerOptions:{}});async function rs(e){let t=await promises.mkdtemp(y__default.join(tmpdir(),"shadcn-"));return y__default.join(t,e)}async function Mt(e,t=[We,Me,a,Ge,d,c,Je]){let r=await rs(e.filename),s=ts.createSourceFile(r,e.raw,{scriptKind:ScriptKind.TSX});for(let n of t)await n({sourceFile:s,...e});return e.transformJsx?await _t({sourceFile:s,...e}):s.getText()}var ss=["a","span","div","Link","label","Label"],Bt=async({sourceFile:e,config:t})=>{if(!t.style?.startsWith("base-"))return e;let r=[],s=e.getDescendantsOfKind(SyntaxKind.JsxElement);for(let n of s){let i=n.getOpeningElement(),o=i.getAttribute("asChild");if(!o)continue;let a=i.getTagNameNode().getText(),c=n.getJsxChildren().find(u=>u.getKind()===SyntaxKind.JsxElement||u.getKind()===SyntaxKind.JsxSelfClosingElement);if(!c){o.remove();continue}let l,d,f;if(c.getKind()===SyntaxKind.JsxSelfClosingElement){let u=c.asKindOrThrow(SyntaxKind.JsxSelfClosingElement);l=u.getTagNameNode().getText(),d=u.getAttributes().map(w=>w.getText()).join(" "),f="";}else {let u=c.asKindOrThrow(SyntaxKind.JsxElement),w=u.getOpeningElement();l=w.getTagNameNode().getText(),d=w.getAttributes().map(m=>m.getText()).join(" "),f=u.getJsxChildren().map(m=>m.getText()).join("");}let x=ss.includes(l);r.push({parentElement:n,parentTagName:a,childTagName:l,childProps:d,childChildren:f,needsNativeButton:x});}for(let n of r.reverse()){let i=n.parentElement.getOpeningElement();n.parentElement.getClosingElement();let a=i.getAttributes().filter(f=>f.getKind()===SyntaxKind.JsxAttribute?f.asKindOrThrow(SyntaxKind.JsxAttribute).getNameNode().getText()!=="asChild":true).map(f=>f.getText()).join(" "),p=n.childProps?`{<${n.childTagName} ${n.childProps} />}`:`{<${n.childTagName} />}`,c=a?`${a} `:"";c+=`render=${p}`,n.needsNativeButton&&(c+=" nativeButton={false}");let l=n.childChildren.trim()?`${n.childChildren}`:"",d=`<${n.parentTagName} ${c}>${l}</${n.parentTagName}>`;n.parentElement.replaceWithText(d);}return e};var Jt=async({sourceFile:e})=>(e.getFunctions().forEach(t=>{t.getName()==="middleware"&&t.rename("proxy");}),e.getVariableDeclarations().forEach(t=>{t.getName()==="middleware"&&t.rename("proxy");}),e.getExportDeclarations().forEach(t=>{t.getNamedExports().forEach(s=>{s.getName()==="middleware"&&s.setName("proxy"),s.getAliasNode()?.getText()==="middleware"&&s.setAlias("proxy");});}),e);async function So(e,t,r){if(!e?.length)return {filesCreated:[],filesUpdated:[],filesSkipped:[]};r={overwrite:false,force:false,silent:false,isRemote:false,isWorkspace:false,...r};let s=X("Updating files.",{silent:r.silent})?.start(),[n,i]=await Promise.all([W(t.resolvedPaths.cwd),t.tailwind.baseColor?He(t.tailwind.baseColor):Promise.resolve(void 0)]),o=[],a$1=[],p=[],c$1=[],l=null;for(let u=0;u<e.length;u++){let w=e[u];if(!w.content)continue;let m=it(w,t,{isSrcDir:n?.isSrcDir,framework:n?.framework.name,commonRoot:ot(e.map(v=>v.path),w.path),path:r.path,fileIndex:u});if(!m)continue;let k=basename(w.path),g=y__default.dirname(m);if(t.tsx||(m=m.replace(/\.tsx?$/,v=>v===".tsx"?".jsx":".js")),Q(m)&&!existsSync(m)){let v=Dt(g);v&&(m=v);}let E=existsSync(m);if(E&&statSync(m).isDirectory())throw new Error(`Cannot write to ${m}: path exists and is a directory. Please provide a file path instead.`);let b=w.type==="registry:file"||w.type==="registry:item",S=Q(m)||b?w.content:await Mt({filename:w.path,raw:w.content,config:t,baseColor:i,transformJsx:!t.tsx,isRemote:r.isRemote},[We,Me,a,Ge,c,f$1,Bt,d,...Gt(m,n,t)?[Jt]:[],Je]);if(E&&!Q(m)){let v=await promises.readFile(m,"utf-8");if(Nt(v,S,{ignoreImports:r.isWorkspace})){p.push(y__default.relative(t.resolvedPaths.cwd,m));continue}}if(E&&!r.overwrite&&!Q(m)){s.stop(),r.rootSpinner&&r.rootSpinner.stop();let{overwrite:v}=await os({type:"confirm",name:"overwrite",message:`The file ${P.info(k)} already exists. Would you like to overwrite?`,initial:false});if(!v){p.push(y__default.relative(t.resolvedPaths.cwd,m)),r.rootSpinner&&r.rootSpinner.start();continue}s?.start(),r.rootSpinner&&r.rootSpinner.start();}if(Gt(m,n,t)&&(m=m.replace(/middleware\.(ts|js)$/,"proxy.$1")),existsSync(g)||await promises.mkdir(g,{recursive:true}),Q(m)&&E){let v=await promises.readFile(m,"utf-8"),Y=zt(v,S);if(c$1=Kt(v,S),l=y__default.relative(t.resolvedPaths.cwd,m),!c$1.length){p.push(y__default.relative(t.resolvedPaths.cwd,m));continue}await promises.writeFile(m,Y,"utf-8"),a$1.push(y__default.relative(t.resolvedPaths.cwd,m));continue}await promises.writeFile(m,S,"utf-8"),E?a$1.push(y__default.relative(t.resolvedPaths.cwd,m)):(o.push(y__default.relative(t.resolvedPaths.cwd,m)),Q(m)&&(c$1=Object.keys(ae(S)),l=y__default.relative(t.resolvedPaths.cwd,m)));}let d$1=[...o,...a$1,...p],f=await gs(d$1,t);if(a$1.push(...f),a$1=a$1.filter(u=>!o.includes(u)),!(o.length||a$1.length)&&!p.length&&s?.info("No files updated."),o=Array.from(new Set(o)),a$1=Array.from(new Set(a$1)),p=Array.from(new Set(p)),o.length){if(s?.succeed(`Created ${o.length} ${o.length===1?"file":"files"}:`),!r.silent)for(let u of o)R.log(` - ${u}`);}else s?.stop();if(a$1.length&&(X(`Updated ${a$1.length} ${a$1.length===1?"file":"files"}:`,{silent:r.silent})?.info(),!r.silent))for(let u of a$1)R.log(` - ${u}`);if(p.length&&(X(`Skipped ${p.length} ${a$1.length===1?"file":"files"}: (files might be identical, use --overwrite to overwrite)`,{silent:r.silent})?.info(),!r.silent))for(let u of p)R.log(` - ${u}`);if(c$1.length&&l&&(X(`Added the following variables to ${P.info(l)}:`)?.info(),!r.silent))for(let u of c$1)R.log(` ${P.success("+")} ${u}`);return r.silent||R.break(),{filesCreated:o,filesUpdated:a$1,filesSkipped:p}}function it(e,t,r){if(r.path){let i=y__default.isAbsolute(r.path)?r.path:y__default.join(t.resolvedPaths.cwd,r.path);if(/\.[^/\\]+$/.test(i)){if(r.fileIndex===0)return i}else {let a=y__default.basename(e.path);return y__default.join(i,a)}}if(e.target){if(e.target.startsWith("~/"))return y__default.join(t.resolvedPaths.cwd,e.target.replace("~/",""));let i=e.target;return e.type==="registry:page"&&(i=ms(i,r.framework),!i)?"":r.isSrcDir?y__default.join(t.resolvedPaths.cwd,"src",i.replace("src/","")):y__default.join(t.resolvedPaths.cwd,i.replace("src/",""))}let s=ps(e,t),n=fs(e.path,s);return y__default.join(s,n)}function ps(e,t){return e.type==="registry:ui"?t.resolvedPaths.ui:e.type==="registry:lib"?t.resolvedPaths.lib:e.type==="registry:block"||e.type==="registry:component"?t.resolvedPaths.components:e.type==="registry:hook"?t.resolvedPaths.hooks:t.resolvedPaths.components}function ot(e,t){let r=e.map(o=>o.replace(/^\//,"")),s=t.replace(/^\//,""),n=s.split("/").slice(0,-1).join("/");if(!n)return "";let i=n.split("/");for(let o=i.length;o>0;o--){let a=i.slice(0,o).join("/");if(r.some(c=>c!==s&&c.startsWith(a+"/")))return "/"+a}return "/"+n}function fs(e,t){let r=e.replace(/^\/|\/$/g,""),s=t.replace(/^\/|\/$/g,""),n=r.split("/"),i=s.split("/"),o=i[i.length-1],a=n.findIndex(p=>p===o);return a===-1?n[n.length-1]:n.slice(a+1).join("/")}function ms(e,t){if(!t)return "";if(t==="next-app")return e;if(t==="next-pages"){let r=e.replace(/^app\//,"pages/");return r=r.replace(/\/page(\.[jt]sx?)$/,"$1"),r}if(t==="react-router"){let r=e.replace(/^app\//,"app/routes/");return r=r.replace(/\/page(\.[jt]sx?)$/,"$1"),r}if(t==="laravel"){let r=e.replace(/^app\//,"resources/js/pages/");return r=r.replace(/\/page(\.[jt]sx?)$/,"$1"),r}return ""}async function gs(e,t){let r=new Project({compilerOptions:{}}),s=await W(t.resolvedPaths.cwd),n=loadConfig(t.resolvedPaths.cwd),i=[];if(!s||n.resultType==="failed")return [];for(let o of e){let a=y__default.resolve(t.resolvedPaths.cwd,o);if(!existsSync(a))continue;let p=await promises.readFile(a,"utf-8"),c=await promises.mkdtemp(y__default.join(tmpdir(),"shadcn-")),l=r.createSourceFile(y__default.join(c,basename(a)),p,{scriptKind:ScriptKind.TSX});if(![".tsx",".ts",".jsx",".js"].includes(l.getExtension()))continue;let d=l.getImportDeclarations();for(let f of d){let x=f.getModuleSpecifierValue();if(s?.aliasPrefix&&!x.startsWith(`${s.aliasPrefix}/`))continue;let u=await O(x,n);if(!u)continue;let w=ds(u,e,t);if(!w)continue;let m=us(w,t,s);!m||m===x||(f.setModuleSpecifier(m),await promises.writeFile(a,l.getFullText(),"utf-8"),i.push(o));}}return i}function ds(e,t,r,s=[".tsx",".ts",".js",".jsx",".css"]){let n=y__default.normalize(r.resolvedPaths.cwd),i=t.map(m=>m.split(y__default.sep).join(y__default.posix.sep)),o=new Set(i),a=y__default.extname(e),p=a!=="",c=p?e.slice(0,-a.length):e,d=y__default.relative(n,c).split(y__default.sep).join(y__default.posix.sep),f=p?[a]:s,x=new Set;for(let m of f){let k=c+m,g=y__default.posix.normalize(y__default.relative(n,k));(o.has(g)||existsSync(k))&&x.add(g);let E=y__default.join(c,`index${m}`),b=y__default.posix.normalize(y__default.relative(n,E));(o.has(b)||existsSync(E))&&x.add(b);}let u=y__default.basename(c);for(let m of i)f.some(k=>m.endsWith(`/${u}${k}`))&&x.add(m);return x.size===0?null:Array.from(x).sort((m,k)=>{let g=y__default.posix.extname(m),E=y__default.posix.extname(k),b=f.indexOf(g)-f.indexOf(E);if(b!==0)return b;let S=d&&m.startsWith(d)?-1:1,v=d&&k.startsWith(d)?-1:1;return S-v})[0]}function us(e,t,r){let s=y__default.normalize(y__default.join(t.resolvedPaths.cwd,e)),n=Object.entries(t.resolvedPaths).filter(([,u])=>u&&s.startsWith(y__default.normalize(u+y__default.sep))).sort((u,w)=>w[1].length-u[1].length);if(n.length===0)return null;let[i,o]=n[0],a=y__default.relative(o,s);a=a.split(y__default.sep).join("/");let p=y__default.posix.extname(a),l=[".ts",".tsx",".js",".jsx"].includes(p)?"":p,d=a.slice(0,a.length-p.length);d.endsWith("/index")&&(d=d.slice(0,-6));let f=i==="cwd"?r.aliasPrefix:t.aliases[i];if(!f)return null;let x=d===""?"":`/${d}`;return x=x.replace("/src",""),`${f}${x}${l}`}function Gt(e,t,r){let s=e===y__default.join(r.resolvedPaths.cwd,"middleware.ts")||e===y__default.join(r.resolvedPaths.cwd,"middleware.js"),n=t?.framework.name==="next-app"||t?.framework.name==="next-pages";if(!s||!n||!t?.frameworkVersion)return false;let i=parseInt(t.frameworkVersion.split(".")[0]);return !isNaN(i)&&i>=16}var Yt=[".tsx",".ts",".jsx",".js",".css"],Zt=["lib/utils.ts"],Es=[/^(react|react-dom|next)(\/.*)?$/,/^(node|jsr|npm):.*$/],vs=new Project({compilerOptions:{}});function Rs(e){if(Es.some(t=>t.test(e)))return null;if(!e.startsWith("@")&&e.includes("/")&&(e=e.split("/")[0]),e.startsWith("@")){let t=e.split("/");t.length>2&&(e=t.slice(0,2).join("/"));}return e}async function Cs(e,t,r,s=new Set){let n=y.resolve(t.resolvedPaths.cwd,e),i=y.relative(t.resolvedPaths.cwd,n);if(Zt.includes(i))return {dependencies:[],files:[]};let o=y.extname(e);if(!Yt.includes(o))return {dependencies:[],files:[]};if(s.has(i))return {dependencies:[],files:[]};if(s.add(i),!(await H.stat(n)).isFile())return {dependencies:[],files:[]};let p=await H.readFile(n,"utf-8"),c=await Ss(y.basename(n)),l=vs.createSourceFile(c,p,{scriptKind:ScriptKind.TSX}),d=await loadConfig(t.resolvedPaths.cwd);if(d.resultType==="failed")return {dependencies:[],files:[]};let f=[],x=new Set,u=Qt(e),w={path:i,type:u,target:""};f.push(w);let m=l.getImportDeclarations();for(let g of m){let E=g.getModuleSpecifierValue(),b=E.startsWith(".");if(!E.startsWith(`${r.aliasPrefix}/`)&&!b){let z=Rs(E);z&&x.add(z);continue}let v=await O(E,d);if(b&&(v=y.resolve(y.dirname(n),E)),!v)continue;if(!y.extname(v))for(let z of Yt){let dt=`${v}${z}`;try{await H.access(dt),v=dt;break}catch{continue}}let D=y.relative(t.resolvedPaths.cwd,v);if(s.has(D)||Zt.includes(D))continue;let _=Qt(E),Pe={path:D,type:_,target:""};(_==="registry:page"||_==="registry:file")&&(Pe.target=E),f.push(Pe);let re=await Cs(D,t,r,s);if(re.files)for(let z of re.files)s.has(z.path)||(s.add(z.path),f.push(z));re.dependencies&&re.dependencies.forEach(z=>x.add(z));}let k=Array.from(new Map(f.map(g=>[g.path,g])).values());return {dependencies:Array.from(x),files:k}}async function Ss(e){let t=await H.mkdtemp(y.join(tmpdir(),"shadcn-"));return y.join(t,e)}function Qt(e){return e.includes("/ui/")?"registry:ui":e.includes("/lib/")?"registry:lib":e.includes("/hooks/")?"registry:hook":(e.includes("/components/"),"registry:component")}function L(e){try{return new URL(e),!0}catch{return false}}function ce(e){return e.endsWith(".json")&&!L(e)}function Do(e){return !e||e.type!=="registry:item"&&e.type!=="registry:file"?false:(e.files??[]).every(r=>!!r.target&&(r.type==="registry:file"||r.type==="registry:item"))}async function Xt(e,t){if(!bs(t))return z.array(g).parse(e.flat().filter(Boolean));let r=await W(t.resolvedPaths.cwd),s=new Map,n=z.array(g).parse(e.flat().filter(Boolean));return n.forEach(i=>{let o=it(i,t,{isSrcDir:r?.isSrcDir,framework:r?.framework.name,commonRoot:ot(n.map(a=>a.path),i.path)});o&&s.set(o,i);}),Array.from(s.values())}function bs(e){return !!(e?.resolvedPaths?.cwd&&(e?.resolvedPaths?.ui||e?.resolvedPaths?.lib||e?.resolvedPaths?.components||e?.resolvedPaths?.hooks))}function Ts(e){return e.style?e.style==="new-york"&&e.tailwind?.config===""?Oe:e.style:Oe}function pe(e){let t=Ot({style:Oe,registries:F});return e?d$1.parse(me(t,{...e,style:Ts(e),registries:{...F,...e.registries}})):t}var qe={headers:{}};function Re(e){qe.headers={...qe.headers,...e};}function er(e){return qe.headers[e]||{}}function Ce(){qe.headers={};}function Ps(e){let t=new Set;return typeof e=="string"?ue(e).forEach(r=>t.add(r)):(ue(e.url).forEach(r=>t.add(r)),e.params&&Object.values(e.params).forEach(r=>{ue(r).forEach(s=>t.add(s));}),e.headers&&Object.values(e.headers).forEach(r=>{ue(r).forEach(s=>t.add(s));})),Array.from(t)}function tr(e,t){let s=Ps(t).filter(n=>!process.env[n]);if(s.length>0)throw new we(e,s)}function Qo(e,t){for(let r of e)fe(r,pe(t));Ce();}var rr="{name}",Ye="{style}",sr=/\${(\w+)}/g,nr="?",js="&";function ks(e){return e.startsWith("./")||e.startsWith("/")}function fe(e,t){let{registry:r,item:s}=ie(e);if(!r){if(L(e)||ce(e)||ks(e))return null;r="@shadcn";}let i={...F,...t?.registries}[r];if(!i)throw new M(r);return tr(r,i),{url:As(s,i,t),headers:$s(i)}}function As(e,t,r){if(typeof t=="string"){let n=t.replace(rr,e);return r?.style&&n.includes(Ye)&&(n=n.replace(Ye,r.style)),de(n)}let s=t.url.replace(rr,e);return r?.style&&s.includes(Ye)&&(s=s.replace(Ye,r.style)),s=de(s),t.params?Os(s,t.params):s}function $s(e){if(typeof e=="string"||!e.headers)return {};let t={};for(let[r,s]of Object.entries(e.headers)){let n=de(s);Fs(s,n)&&(t[r]=n);}return t}function Os(e,t){let r=new URLSearchParams;for(let[i,o]of Object.entries(t)){let a=de(o);a&&r.append(i,a);}let s=r.toString();if(!s)return e;let n=e.includes(nr)?js:nr;return `${e}${n}${s}`}function Fs(e,t){let r=t.trim();if(!r)return false;if(e.includes("${")&&e.match(sr)){let n=e.replace(sr,"").trim();return r!==n}return true}function Ze(e){if(L(e)){let t=new URL(e);return t.pathname.match(/\/chat\/b\//)&&!t.pathname.endsWith("/json")&&(t.pathname=`${t.pathname}/json`),t.toString()}return `${se}/${e}`}var zs=process.env.https_proxy?new HttpsProxyAgent(process.env.https_proxy):void 0,at=new Map;async function j(e,t={}){t={useCache:true,...t};try{return await Promise.all(e.map(async s=>{let n=Ze(s);if(t.useCache&&at.has(n))return at.get(n);let i=(async()=>{let o=er(n),a=await Ks(n,{agent:zs,headers:{...o}});if(!a.ok){let p;if(a.headers.get("content-type")?.includes("application/json")){let c=await a.json(),l=z.object({detail:z.string().optional(),title:z.string().optional(),message:z.string().optional(),error:z.string().optional()}).safeParse(c);l.success&&(p=l.data.detail||l.data.message,l.data.error&&(p=`[${l.data.error}] ${p}`));}throw a.status===401?new he(n,p):a.status===404?new Z(n,p):a.status===403?new ye(n,p):new xe(n,a.status,p)}return a.json()})();return t.useCache&&at.set(n,i),i}))}catch(r){throw r}}async function or(e){try{let t=e;e.startsWith("~/")&&(t=y__default.join(homedir(),e.slice(2)));let r=y__default.resolve(t),s=await promises.readFile(r,"utf8"),n$1=JSON.parse(s);try{return n.parse(n$1)}catch(i){throw new A(e,i)}}catch(t){throw t instanceof Error&&(t.message.includes("ENOENT")||t.message.includes("no such file"))?new ne(e,t):t instanceof A?t:new ne(e,t)}}async function ka(e,t,r){if(!e||(r={silent:false,tailwindVersion:"v3",...r},r.tailwindVersion==="v4"))return;let s=y__default.relative(t.resolvedPaths.cwd,t.resolvedPaths.tailwindConfig),n=X(`Updating ${P.info(s)}`,{silent:r.silent}).start(),i=await promises.readFile(t.resolvedPaths.tailwindConfig,"utf8"),o=await Bs(i,e,t);await promises.writeFile(t.resolvedPaths.tailwindConfig,o,"utf8"),n?.succeed();}async function Bs(e,t,r){let s=await lr(e,r),n=s.getDescendantsOfKind(SyntaxKind.ObjectLiteralExpression).find(o=>o.getProperties().some(a=>a.isKind(SyntaxKind.PropertyAssignment)&&a.getName()==="content"));if(!n)return e;let i=qs(n);return Js(n,{name:"darkMode",value:"class"},{quoteChar:i}),t.plugins?.forEach(o=>{Hs(n,o);}),t.theme&&await Gs(n,t.theme),s.getFullText()}function Js(e,t,{quoteChar:r}){let s=e.getProperty("darkMode");if(!s){let n={name:t.name,initializer:`[${r}${t.value}${r}]`};return t.name==="darkMode"?(e.insertPropertyAssignment(0,n),e):(e.addPropertyAssignment(n),e)}if(s.isKind(SyntaxKind.PropertyAssignment)){let n=s.getInitializer(),i=`${r}${t.value}${r}`;if(n?.isKind(SyntaxKind.StringLiteral)){let o=n.getText();return n.replaceWithText(`[${o}, ${i}]`),e}if(n?.isKind(SyntaxKind.ArrayLiteralExpression)){if(n.getElements().map(o=>o.getText()).includes(i))return e;n.addElement(i);}return e}return e}async function Gs(e,t){e.getProperty("theme")||e.addPropertyAssignment({name:"theme",initializer:"{}"}),ct(e);let s=(e.getPropertyOrThrow("theme")?.asKindOrThrow(SyntaxKind.PropertyAssignment)).getInitializer();if(s?.isKind(SyntaxKind.ObjectLiteralExpression)){let n=s.getText(),i=await Ys(n),o=me(i,t,{arrayMerge:(p,c)=>c}),a=Ws(o).replace(/\'\.\.\.(.*)\'/g,"...$1").replace(/\'\"/g,"'").replace(/\"\'/g,"'").replace(/\'\[/g,"[").replace(/\]\'/g,"]").replace(/\'\\\'/g,"'").replace(/\\\'/g,"'").replace(/\\\'\'/g,"'").replace(/\'\'/g,"'");s.replaceWithText(a);}pt(e);}function Hs(e,t){let r=e.getProperty("plugins");if(!r)return e.addPropertyAssignment({name:"plugins",initializer:`[${t}]`}),e;if(r.isKind(SyntaxKind.PropertyAssignment)){let s=r.getInitializer();if(s?.isKind(SyntaxKind.ArrayLiteralExpression)){if(s.getElements().map(n=>n.getText().replace(/["']/g,"")).includes(t.replace(/["']/g,"")))return e;s.addElement(t);}return e}return e}async function lr(e,t){let r=await promises.mkdtemp(y__default.join(tmpdir(),"shadcn-")),s=t?.resolvedPaths?.tailwindConfig||"tailwind.config.ts",n=y__default.join(r,`shadcn-${y__default.basename(s)}`);return new Project({compilerOptions:{}}).createSourceFile(n,e,{scriptKind:y__default.extname(s)===".ts"?ScriptKind.TS:ScriptKind.JS})}function qs(e){return e.getFirstDescendantByKind(SyntaxKind.StringLiteral)?.getQuoteKind()===QuoteKind.Single?"'":'"'}function ct(e){let t=e.getProperties();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.SpreadAssignment)){let n=s.asKindOrThrow(SyntaxKind.SpreadAssignment),i=n.getExpression().getText();e.insertPropertyAssignment(r,{name:`"___${i.replace(/^\.\.\./,"")}"`,initializer:`"...${i.replace(/^\.\.\./,"")}"`}),n.remove();}else if(s.isKind(SyntaxKind.PropertyAssignment)){let i=s.asKindOrThrow(SyntaxKind.PropertyAssignment).getInitializer();i&&i.isKind(SyntaxKind.ObjectLiteralExpression)?ct(i.asKindOrThrow(SyntaxKind.ObjectLiteralExpression)):i&&i.isKind(SyntaxKind.ArrayLiteralExpression)&&cr(i.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));}}}function cr(e){let t=e.getElements();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.ObjectLiteralExpression))ct(s.asKindOrThrow(SyntaxKind.ObjectLiteralExpression));else if(s.isKind(SyntaxKind.ArrayLiteralExpression))cr(s.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));else if(s.isKind(SyntaxKind.SpreadElement)){let n=s.getText();e.removeElement(r),e.insertElement(r,`"${n}"`);}}}function pt(e){let t=e.getProperties();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.PropertyAssignment)){let n=s,i=n.getInitializer();if(i&&i.isKind(SyntaxKind.StringLiteral)){let o=i.asKindOrThrow(SyntaxKind.StringLiteral).getLiteralValue();o.startsWith("...")&&(e.insertSpreadAssignment(r,{expression:o.slice(3)}),n.remove());}else i?.isKind(SyntaxKind.ObjectLiteralExpression)?pt(i):i&&i.isKind(SyntaxKind.ArrayLiteralExpression)&&pr(i.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));}}}function pr(e){let t=e.getElements();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.ObjectLiteralExpression))pt(s.asKindOrThrow(SyntaxKind.ObjectLiteralExpression));else if(s.isKind(SyntaxKind.ArrayLiteralExpression))pr(s.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));else if(s.isKind(SyntaxKind.StringLiteral)){let n=s.getText(),i=/(?:^['"])(\.\.\..*)(?:['"]$)/g;i.test(n)&&(e.removeElement(r),e.insertElement(r,n.replace(i,"$1")));}}}async function Ys(e){let r=(await lr(`const theme = ${e}`,null)).getStatements()[0];if(r?.getKind()===SyntaxKind.VariableStatement){let n=(r.getDeclarationList()?.getDeclarations()[0]).getInitializer();if(n?.isKind(SyntaxKind.ObjectLiteralExpression))return await Qe(n)}throw new Error("Invalid input: not an object literal")}function Qe(e){let t={};for(let r of e.getProperties())if(r.isKind(SyntaxKind.PropertyAssignment)){let s=r.getName().replace(/\'/g,"");r.getInitializer()?.isKind(SyntaxKind.ObjectLiteralExpression)?t[s]=Qe(r.getInitializer()):r.getInitializer()?.isKind(SyntaxKind.ArrayLiteralExpression)?t[s]=fr(r.getInitializer()):t[s]=ft(r.getInitializer());}return t}function fr(e){let t=[];for(let r of e.getElements())r.isKind(SyntaxKind.ObjectLiteralExpression)?t.push(Qe(r.asKindOrThrow(SyntaxKind.ObjectLiteralExpression))):r.isKind(SyntaxKind.ArrayLiteralExpression)?t.push(fr(r.asKindOrThrow(SyntaxKind.ArrayLiteralExpression))):t.push(ft(r));return t}function ft(e){switch(e.getKind()){case SyntaxKind.StringLiteral:return e.getText();case SyntaxKind.NumericLiteral:return Number(e.getText());case SyntaxKind.TrueKeyword:return true;case SyntaxKind.FalseKeyword:return false;case SyntaxKind.NullKeyword:return null;case SyntaxKind.ArrayLiteralExpression:return e.getElements().map(ft);case SyntaxKind.ObjectLiteralExpression:return Qe(e);default:return e.getText()}}function mr(e){let t={};for(let r of Object.keys(e)){let s=r.split("-"),n=s[0],i=s.slice(1).join("-");i===""?typeof t[n]=="object"?t[n].DEFAULT=`hsl(var(--${r}))`:t[n]=`hsl(var(--${r}))`:(typeof t[n]!="object"&&(t[n]={DEFAULT:`hsl(var(--${n}))`}),t[n][i]=`hsl(var(--${r}))`);}for(let[r,s]of Object.entries(t))typeof s=="object"&&s.DEFAULT===`hsl(var(--${r}))`&&!(r in e)&&delete s.DEFAULT;return t}function Ie(e,t){let r={},s=[...e];if(!t?.registries)return Re({}),s;for(let n=0;n<s.length;n++){let i=fe(s[n],t);i&&(s[n]=i.url,Object.keys(i.headers).length>0&&(r[i.url]=i.headers));}return Re(r),s}async function ee(e,t,r={}){return await Promise.all(e.map(async n$1=>{if(ce(n$1))return or(n$1);if(L(n$1)){let[a]=await j([n$1],r);try{return n.parse(a)}catch(p){throw new A(n$1,p)}}if(n$1.startsWith("@")&&t?.registries){let a=Ie([n$1],t),[p]=await j(a,r);try{return n.parse(p)}catch(c){throw new A(n$1,c)}}let i=`styles/${t?.style??"new-york-v4"}/${n$1}.json`,[o]=await j([i],r);try{return n.parse(o)}catch(a){throw new A(n$1,a)}}))}m.extend({type:f,_source:z.string().optional(),font:l.optional(),config:z.any().optional()}).passthrough();async function dr(e,t$1,r={}){r={useCache:true,...r};let s=[],n$1=[],i=[],o=Array.from(new Set(e)),a=await ee(o,t$1,r),p=new Map;for(let g=0;g<a.length;g++)a[g]&&p.set(o[g],a[g]);for(let[g,E]of Array.from(p.entries())){let b={...E,_source:g};if(s.push(b),E.registryDependencies){let S=E.registryDependencies;if(t$1?.registries)S=Ie(E.registryDependencies,t$1);else {let D=E.registryDependencies.filter(_=>_.startsWith("@"));if(D.length>0){let{registry:_}=ie(D[0]);throw new M(_)}}let{items:v,registryNames:Y}=await Te(S,t$1,r,new Set(o));n$1.push(...v),i.push(...Y);}}if(s.push(...n$1),i.length>0){let g=Array.from(new Set(i)),E=g.filter(S=>!S.startsWith("@")),b=g.filter(S=>S.startsWith("@"));if(b.length>0){let S=await ee(b,t$1,r);for(let v=0;v<S.length;v++){let D={...S[v],_source:b[v]};s.push(D);}}if(E.length>0){let S=await ur();if(!S&&s.length===0)return null;if(S){E.includes("index")&&E.unshift("index");let v=[];for(let Pe of E){let re=await Qs(Pe,t$1,r);v.push(...re);}let Y=Array.from(new Set(v)),D=await j(Y,r),_=z.array(n).parse(D);s.push(..._);}}}if(!s.length)return null;if((o.includes("index")||i.includes("index"))&&t$1.tailwind.baseColor){let g=await Xs(t$1.tailwind.baseColor,t$1);g&&s.unshift(g);}let c=new Map;s.forEach(g=>{let E=g._source||g.name;c.set(g,E);}),s=tn(s,c),s.sort((g,E)=>g.type==="registry:theme"&&E.type!=="registry:theme"?-1:g.type!=="registry:theme"&&E.type==="registry:theme"?1:0);let l={};s.forEach(g=>{l=me(l,g.tailwind??{});});let d={};s.forEach(g=>{d=me(d,g.cssVars??{});});let f={};s.forEach(g=>{f=me(f,g.css??{});});let x="";s.forEach(g=>{g.docs&&(x+=`${g.docs}
|
|
28
|
+
`);});let u={};s.forEach(g=>{u=me(u,g.envVars??{});});let w=await Xt(s.map(g=>g.files??[]),t$1),m=s.filter(g=>g.type==="registry:font"&&g.font).map(g=>({...g,type:"registry:font",font:g.font})),k=t.parse({dependencies:me.all(s.map(g=>g.dependencies??[])),devDependencies:me.all(s.map(g=>g.devDependencies??[])),files:w,tailwind:l,cssVars:d,css:f,docs:x,fonts:m.length>0?m:void 0});return Object.keys(u).length>0&&(k.envVars=u),k}async function Te(e,t,r={},s=new Set){let n=[],i=[];for(let o of e)if(!s.has(o)){if(s.add(o),L(o)||ce(o)){let[a]=await ee([o],t,r);if(a&&(n.push(a),a.registryDependencies)){let p=t?.registries?Ie(a.registryDependencies,t):a.registryDependencies,c=await Te(p,t,r,s);n.push(...c.items),i.push(...c.registryNames);}}else if(o.startsWith("@")&&t?.registries){let{registry:a}=ie(o);if(a&&!(a in t.registries))throw new M(a);let[p]=await ee([o],t,r);if(p&&(n.push(p),p.registryDependencies)){let c=t?.registries?Ie(p.registryDependencies,t):p.registryDependencies,l=await Te(c,t,r,s);n.push(...l.items),i.push(...l.registryNames);}}else if(i.push(o),t)try{let[a]=await ee([o],t,r);if(a&&a.registryDependencies){let p=t?.registries?Ie(a.registryDependencies,t):a.registryDependencies,c=await Te(p,t,r,s);n.push(...c.items),i.push(...c.registryNames);}}catch{}}return {items:n,registryNames:i}}async function Qs(e,t,r={}){if(L(e))return [e];let{registryNames:s}=await Te([e],t,r,new Set),n=t.resolvedPaths?.cwd?await $t(t.resolvedPaths.cwd,t.style):t.style,i=s.map(o=>Ze(L(o)?o:`styles/${n}/${o}.json`));return Array.from(new Set(i))}async function Xs(e,t){let[r,s]=await Promise.all([He(e),Ve(t)]);if(!r)return null;let n={name:e,type:"registry:theme",tailwind:{config:{theme:{extend:{borderRadius:{lg:"var(--radius)",md:"calc(var(--radius) - 2px)",sm:"calc(var(--radius) - 4px)"},colors:{}}}}},cssVars:{theme:{},light:{radius:"0.5rem"},dark:{}}};return t.tailwind.cssVariables&&(n.tailwind.config.theme.extend.colors={...n.tailwind.config.theme.extend.colors,...mr(r.cssVars.dark??{})},n.cssVars={theme:{...r.cssVars.theme,...n.cssVars.theme},light:{...r.cssVars.light,...n.cssVars.light},dark:{...r.cssVars.dark,...n.cssVars.dark}},s==="v4"&&r.cssVarsV4&&(n.cssVars={theme:{...r.cssVarsV4.theme,...n.cssVars.theme},light:{radius:"0.625rem",...r.cssVarsV4.light},dark:{...r.cssVarsV4.dark}})),n}function q(e,t){let r=t||e.name,s=createHash("sha256").update(r).digest("hex").substring(0,8);return `${e.name}::${s}`}function en(e){if(L(e)){let s=new URL(e).pathname,n=s.match(/\/([^/]+)\.json$/),i=n?n[1]:y__default.basename(s,".json");return {name:i,hash:q({name:i},e)}}if(ce(e)){let r=e.match(/\/([^/]+)\.json$/),s=r?r[1]:y__default.basename(e,".json");return {name:s,hash:q({name:s},e)}}let{item:t}=ie(e);return {name:t,hash:q({name:t},e)}}function tn(e,t){let r=new Map,s=new Map,n=new Map,i=new Map;e.forEach(c=>{let l=t.get(c)||c.name,d=q(c,l);r.set(d,c),s.set(d,c),n.set(d,0),i.set(d,[]);});let o=new Map;e.forEach(c=>{let l=t.get(c)||c.name,d=q(c,l);o.has(c.name)||o.set(c.name,[]),o.get(c.name).push(d),l!==c.name&&(o.has(l)||o.set(l,[]),o.get(l).push(d));}),e.forEach(c=>{let l=t.get(c)||c.name,d=q(c,l);c.registryDependencies&&c.registryDependencies.forEach(f=>{let x,u=o.get(f)||[];if(u.length===1)x=u[0];else if(u.length>1)x=u[0];else {let{name:w}=en(f),m=o.get(w)||[];m.length>0&&(x=m[0]);}x&&r.has(x)&&(i.get(x).push(d),n.set(d,n.get(d)+1));});});let a=[],p=[];for(n.forEach((c,l)=>{c===0&&a.push(l);});a.length>0;){let c=a.shift(),l=r.get(c);p.push(l),i.get(c).forEach(d=>{let f=n.get(d)-1;n.set(d,f),f===0&&a.push(d);});}if(p.length!==e.length){console.warn("Circular dependency detected in registry items");let c=new Set(p.map(l=>{let d=t.get(l)||l.name;return q(l,d)}));e.forEach(l=>{let d=t.get(l)||l.name,f=q(l,d);c.has(f)||p.push(l);});}return p}function ge(e){if(R.break(),R.error("Something went wrong. Please check the error below for more details."),R.error("If the problem persists, please open an issue on GitHub."),R.error(""),typeof e=="string"&&(R.error(e),R.break(),process.exit(1)),e instanceof I&&(e.message&&(R.error(e.cause?"Error:":"Message:"),R.error(e.message)),e.cause&&(R.error(`
|
|
29
|
+
Message:`),R.error(e.cause)),e.suggestion&&(R.error(`
|
|
30
|
+
Suggestion:`),R.error(e.suggestion)),R.break(),process.exit(1)),e instanceof z.ZodError){R.error("Validation failed:");for(let[t,r]of Object.entries(e.flatten().fieldErrors))R.error(`- ${P.info(t)}: ${r}`);R.break(),process.exit(1);}e instanceof Error&&(R.error(e.message),R.break(),process.exit(1)),R.break(),process.exit(1);}async function gt(e,t){let{config:r,useCache:s}=t||{};if(L(e)){let[a]=await j([e],{useCache:s});try{return o.parse(a)}catch(p){throw new A(e,p)}}if(!e.startsWith("@"))throw new Ee(e);let n=e;n.endsWith("/registry")||(n=`${n}/registry`);let i=fe(n,pe(r));if(!i?.url)throw new Z(n);i.headers&&Object.keys(i.headers).length>0&&Re({[i.url]:i.headers});let[o$1]=await j([i.url],{useCache:s});try{return o.parse(o$1)}catch(a){throw new A(n,a)}}async function nn(e,t){let{config:r,useCache:s=false}=t||{};return Ce(),ee(e,pe(r),{useCache:s})}async function on(e,t){let{config:r,useCache:s=false}=t||{};return Ce(),dr(e,pe(r),{useCache:s})}async function xl(e,t){let{useCache:r=true}=t||{};r||Ne.clearCaches();let s=await Ne.search(e);if(!s)return {registries:F};let n=z.object({registries:b$1.optional()}).safeParse(s.config);if(!n.success)throw new Fe(e,n.error);return {registries:{...F,...n.data.registries||{}}}}async function ur(){try{let[e]=await j(["index.json"]);return p.parse(e)}catch(e){R.error(`
|
|
31
|
+
`),ge(e);}}async function wl(){try{let[e]=await j(["styles/index.json"]);return q$1.parse(e)}catch(e){return R.error(`
|
|
32
|
+
`),ge(e),[]}}async function El(){try{let[e]=await j(["icons/index.json"]);return r.parse(e)}catch(e){return ge(e),{}}}async function vl(){return At}async function He(e){try{let[t]=await j([`colors/${e}.json`]);return s.parse(t)}catch(t){ge(t);}}async function an(e,t){let r=[];for(let s of t){let n=e.find(i=>i.name===s);if(n&&(r.push(n),n.registryDependencies)){let i=await an(e,n.registryDependencies);r.push(...i);}}return r.filter((s,n,i)=>i.findIndex(o=>o.name===s.name)===n)}async function Rl(e,t){try{let r=t.map(n=>`styles/${e}/${n.name}.json`);return (await j(r)).map(n$1=>n.parse(n$1))}catch(r){return ge(r),[]}}async function Cl(e,t,r){if(r)return r;if(t.type==="registry:ui")return e.resolvedPaths.ui??e.resolvedPaths.components;let[s,n]=t.type?.split(":")??[];return s in e.resolvedPaths?y__default.join(e.resolvedPaths[s],n):null}async function yr(e){e={useCache:true,...e};let t=`${se}/registries.json`,[r]=await j([t],{useCache:e.useCache});try{return x.parse(r)}catch(s){throw s instanceof z.ZodError?new ve(s):s}}async function ln(e){let t=await yr(e);return t?Object.fromEntries(t.map(r=>[r.name,r.url])):null}async function cn(e){e={useCache:true,...e};let t=`${se}/config.json`,[r]=await j([t],{useCache:e.useCache});return z$1.parse(r).presets}async function Sl(e,t){return (await cn(t)).find(s=>s.name.toLowerCase()===e.toLowerCase())??null}async function fn(e,t){let{query:r,limit:s,offset:n,config:i,useCache:o}=t||{},a=[];for(let f of e){let u=((await gt(f,{config:i,useCache:o})).items||[]).map(w=>({name:w.name,type:w.type,description:w.description,registry:f,addCommandArgument:un(w.name,f)}));a=a.concat(u);}r&&(a=gn(a,{query:r,limit:a.length,keys:["name","description"]}));let p=n||0,c=s||a.length,l=a.length,d={pagination:{total:l,offset:p,limit:c,hasMore:p+c<l},items:a.slice(p,p+c)};return v.parse(d)}var mn=z.object({name:z.string(),type:z.string().optional(),description:z.string().optional(),registry:z.string().optional(),addCommandArgument:z.string().optional()}).passthrough();function gn(e,t){t={limit:100,threshold:-1e4,...t};let s=pn.go(t.query,e,{keys:t.keys,threshold:t.threshold,limit:t.limit}).map(n=>n.obj);return z.array(mn).parse(s)}function dn(e){try{return new URL(e),!0}catch{return false}}function un(e,t){if(!dn(t))return `${t}/${e}`;let r=t.indexOf("://")+3,s=t.indexOf("/",r);if(s===-1){let f=t.indexOf("?",r);if(f!==-1){let x=t.substring(0,f),w=t.substring(f).replace(/\bregistry\b/g,e);return x+w}return t}let n=t.substring(0,s),i=t.substring(s),o=i.indexOf("?")!==-1?i.indexOf("?"):i.length,a=i.substring(0,o),p=i.substring(o),c=a.lastIndexOf("registry"),l=a;c!==-1&&(l=a.substring(0,c)+e+a.substring(c+8));let d=p.replace(/\bregistry\b/g,e);return n+l+d}
|
|
33
|
+
export{nn as $,M as A,ne as B,A as C,we as D,Ee as E,ve as F,ie as G,Dt as H,Kt as I,zt as J,Mt as K,So as L,Cs as M,L as N,Do as O,pe as P,Ce as Q,Qo as R,fe as S,j as T,ka as U,lr as V,qs as W,ee as X,dr as Y,ge as Z,gt as _,se as a,on as aa,At as b,xl as ba,F as c,ur as ca,hn as d,wl as da,P as e,El as ea,Ln as f,vl as fa,Dn as g,He as ga,Kn as h,an as ha,zn as i,Rl as ia,Le as j,Cl as ja,rt as k,yr as ka,_n as l,ln as la,Pr as m,cn as ma,kr as n,Sl as na,Ot as o,fn as oa,st as p,W as q,ri as r,Ve as s,R as t,X as u,I as v,Z as w,he as x,ye as y,xe as z};//# sourceMappingURL=chunk-F67Q5GTR.js.map
|
|
34
|
+
//# sourceMappingURL=chunk-F67Q5GTR.js.map
|