@create-ui/cli 0.6.0 → 0.6.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.
Files changed (71) hide show
  1. package/dist/chunk-KFQXWKJJ.js +19 -0
  2. package/dist/chunk-KFQXWKJJ.js.map +1 -0
  3. package/dist/{chunk-2ELKDGGM.js → chunk-OGAWGP7T.js} +3 -3
  4. package/dist/{chunk-2ELKDGGM.js.map → chunk-OGAWGP7T.js.map} +1 -1
  5. package/dist/chunk-OITQ46YK.js +99 -0
  6. package/dist/chunk-OITQ46YK.js.map +1 -0
  7. package/dist/index.js +16 -16
  8. package/dist/index.js.map +1 -1
  9. package/dist/mcp/index.js +1 -1
  10. package/dist/registry/index.d.ts +3 -1
  11. package/dist/registry/index.js +1 -1
  12. package/dist/skills/createui/SKILL.md +81 -52
  13. package/dist/skills/createui/cli.md +1 -1
  14. package/dist/skills/createui/customization.md +14 -12
  15. package/dist/skills/createui/evals/evals.json +77 -0
  16. package/dist/skills/createui/mcp.md +12 -26
  17. package/dist/skills/createui/rules/a11y.md +148 -0
  18. package/dist/skills/createui/rules/composition.md +64 -26
  19. package/dist/skills/createui/rules/forms.md +2 -2
  20. package/dist/skills/createui/rules/icons.md +1 -1
  21. package/dist/skills/createui/rules/styling.md +2 -2
  22. package/dist/utils/index.js +1 -1
  23. package/dist/utils/index.js.map +1 -1
  24. package/package.json +1 -1
  25. package/dist/chunk-643QI2I2.js +0 -102
  26. package/dist/chunk-643QI2I2.js.map +0 -1
  27. package/dist/chunk-KQTXDVKV.js +0 -19
  28. package/dist/chunk-KQTXDVKV.js.map +0 -1
  29. package/dist/skills/createui/reference/accordion.md +0 -127
  30. package/dist/skills/createui/reference/app-store-badge.md +0 -88
  31. package/dist/skills/createui/reference/aspect-ratio.md +0 -52
  32. package/dist/skills/createui/reference/avatar.md +0 -230
  33. package/dist/skills/createui/reference/badge.md +0 -110
  34. package/dist/skills/createui/reference/breadcrumb.md +0 -153
  35. package/dist/skills/createui/reference/button-group.md +0 -116
  36. package/dist/skills/createui/reference/button.md +0 -104
  37. package/dist/skills/createui/reference/checkbox-group.md +0 -118
  38. package/dist/skills/createui/reference/checkbox.md +0 -79
  39. package/dist/skills/createui/reference/chip.md +0 -115
  40. package/dist/skills/createui/reference/close-button.md +0 -83
  41. package/dist/skills/createui/reference/country-flag.md +0 -109
  42. package/dist/skills/createui/reference/credit-card-input.md +0 -76
  43. package/dist/skills/createui/reference/date-input.md +0 -71
  44. package/dist/skills/createui/reference/dropdown-menu.md +0 -164
  45. package/dist/skills/createui/reference/field.md +0 -186
  46. package/dist/skills/createui/reference/info-tooltip.md +0 -110
  47. package/dist/skills/createui/reference/inline-alert.md +0 -146
  48. package/dist/skills/createui/reference/input-group.md +0 -171
  49. package/dist/skills/createui/reference/input-otp.md +0 -130
  50. package/dist/skills/createui/reference/input-stepper.md +0 -120
  51. package/dist/skills/createui/reference/input.md +0 -118
  52. package/dist/skills/createui/reference/label.md +0 -121
  53. package/dist/skills/createui/reference/pagination.md +0 -157
  54. package/dist/skills/createui/reference/phone-input.md +0 -77
  55. package/dist/skills/createui/reference/progress.md +0 -158
  56. package/dist/skills/createui/reference/radio-group.md +0 -133
  57. package/dist/skills/createui/reference/radio.md +0 -79
  58. package/dist/skills/createui/reference/scroll-area.md +0 -212
  59. package/dist/skills/createui/reference/segmented-control.md +0 -146
  60. package/dist/skills/createui/reference/select.md +0 -204
  61. package/dist/skills/createui/reference/separator.md +0 -99
  62. package/dist/skills/createui/reference/social-login-button.md +0 -130
  63. package/dist/skills/createui/reference/spinner.md +0 -68
  64. package/dist/skills/createui/reference/status-badge.md +0 -89
  65. package/dist/skills/createui/reference/switch-group.md +0 -122
  66. package/dist/skills/createui/reference/switch.md +0 -75
  67. package/dist/skills/createui/reference/tab-menu.md +0 -165
  68. package/dist/skills/createui/reference/text-link.md +0 -84
  69. package/dist/skills/createui/reference/textarea.md +0 -50
  70. package/dist/skills/createui/reference/toast.md +0 -162
  71. package/dist/skills/createui/reference/tooltip.md +0 -63
@@ -0,0 +1,19 @@
1
+ import {m,l,d,b,a,c,n,s,o,q as q$1,r,w as w$1,e}from'./chunk-Y7WZRQWW.js';import {z as z$1}from'zod';import pe,{existsSync,statSync,promises}from'fs';import Ct,{tmpdir,homedir}from'os';import*as h from'path';import h__default,{basename}from'path';import*as z from'fs/promises';import {green,cyan,yellow,red}from'kleur/colors';import {loadConfig,createMatchPath}from'tsconfig-paths';import {cosmiconfig}from'cosmiconfig';import de from'fast-glob';import ge from'fs-extra';import Zt from'ora';import {Project,SyntaxKind,ScriptKind}from'ts-morph';import {transformFromAstSync}from'@babel/core';import {parse}from'@babel/parser';import rr from'@babel/plugin-transform-typescript';import*as we from'recast';import gr from'prompts';import {HttpsProxyAgent}from'https-proxy-agent';import ht from'node-fetch';import Q from'deepmerge';import {createHash}from'crypto';var U={NOT_FOUND:"NOT_FOUND",UNAUTHORIZED:"UNAUTHORIZED",FORBIDDEN:"FORBIDDEN",FETCH_ERROR:"FETCH_ERROR",LOCAL_FILE_ERROR:"LOCAL_FILE_ERROR",PARSE_ERROR:"PARSE_ERROR",UNKNOWN_ERROR:"UNKNOWN_ERROR"},O=class extends Error{code;statusCode;context;suggestion;timestamp;cause;constructor(t,r={}){super(t),this.name="RegistryError",this.code=r.code||U.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}}},oe=class extends O{constructor(r,s){let n=`The item at ${r} was not found. It may not exist at the registry.`;super(n,{code:U.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";}},ae=class extends O{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:U.UNAUTHORIZED,statusCode:401,cause:s,context:{url:r},suggestion:"If this is a pro component, run `createui login` to authenticate."});this.url=r;this.name="RegistryUnauthorizedError";}},ce=class extends O{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:U.FORBIDDEN,statusCode:403,cause:s,context:{url:r},suggestion:"Pro components require a developer seat. See https://createui.co/pricing"});this.url=r;this.name="RegistryForbiddenError";}},le=class extends O{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:U.FETCH_ERROR,statusCode:s,cause:i,context:{url:r,responseBody:n},suggestion:p});this.url=r;this.responseBody=n;this.name="RegistryFetchError";}},te=class extends O{constructor(r,s){super(`Failed to read local registry file: ${r}`,{code:U.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";}},$=class extends O{constructor(r,s){let n=`Failed to parse registry item: ${r}`;s instanceof z$1.ZodError&&(n=`Failed to parse registry item: ${r}
2
+ ${s.errors.map(i=>` - ${i.path.join(".")}: ${i.message}`).join(`
3
+ `)}`);super(n,{code:U.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://createui.co/schema/registry-item.json."});this.item=r;this.parseError=s,this.name="RegistryParseError";}parseError};var B=process.env.REGISTRY_URL??"https://createui.co/r",St=[{name:"indigo",label:"Indigo"},{name:"lime",label:"Lime"},{name:"green",label:"Green"},{name:"red",label:"Red"},{name:"orange",label:"Orange"},{name:"yellow",label:"Yellow"},{name:"cyan",label:"Cyan"},{name:"blue",label:"Blue"}],It=St,Pt=[{name:"gray",label:"Gray"},{name:"slate",label:"Slate"},{name:"zinc",label:"Zinc"},{name:"base",label:"Base"},{name:"stone",label:"Stone"}];It.map(e=>e.name);var Zr=Pt.map(e=>e.name),Xr="gray",fe=[{name:"v1",label:"Default (Geist + JetBrains Mono)"}],Qr=fe.map(e=>e.name),es="v1";var ts=[];function Ge(){return process.env.CREATEUI_AUTH_FILE??h__default.join(Ct.homedir(),".createui","auth.json")}function J(e=B){try{return new URL(e).origin}catch{return}}var qe=false;function as(e){qe=e;}var H;function Pe(){if(H!==void 0)return H;try{let e=JSON.parse(pe.readFileSync(Ge(),"utf8"));H=e?.version===1&&typeof e.tokens=="object"?e:null;}catch{H=null;}return H}function Ye(e){let t=Ge();pe.mkdirSync(h__default.dirname(t),{recursive:true,mode:448}),pe.writeFileSync(t,JSON.stringify(e,null,2)+`
4
+ `,{mode:384});try{pe.chmodSync(t,384);}catch{}H=e;}function Ze(e=J()){if(qe)return;let t=process.env.CREATEUI_TOKEN;if(t)return t;if(e)return Pe()?.tokens[e]?.token}function cs(e,t=J()){if(!t)throw new Error("Cannot determine the registry origin to save the token.");let r=Pe()??{version:1,tokens:{}};r.tokens[t]={token:e,createdAt:new Date().toISOString()},Ye(r);}function ls(e=J()){let t=Pe();return !e||!t?.tokens[e]?false:(delete t.tokens[e],Ye(t),true)}var C={"next-app":{name:"next-app",label:"Next.js",links:{installation:"https://createui.co/docs/installation",tailwind:"https://tailwindcss.com/docs/guides/nextjs"}},"next-pages":{name:"next-pages",label:"Next.js",links:{installation:"https://createui.co/docs/installation",tailwind:"https://tailwindcss.com/docs/guides/nextjs"}},remix:{name:"remix",label:"Remix",links:{installation:"https://createui.co/docs/installation",tailwind:"https://tailwindcss.com/docs/guides/remix"}},"react-router":{name:"react-router",label:"React Router",links:{installation:"https://createui.co/docs/installation",tailwind:"https://tailwindcss.com/docs/installation/framework-guides/react-router"}},vite:{name:"vite",label:"Vite",links:{installation:"https://createui.co/docs/installation",tailwind:"https://tailwindcss.com/docs/guides/vite"}},astro:{name:"astro",label:"Astro",links:{installation:"https://createui.co/docs/installation",tailwind:"https://tailwindcss.com/docs/guides/astro"}},laravel:{name:"laravel",label:"Laravel",links:{installation:"https://createui.co/docs/installation",tailwind:"https://tailwindcss.com/docs/guides/laravel"}},"tanstack-start":{name:"tanstack-start",label:"TanStack Start",links:{installation:"https://createui.co/docs/installation",tailwind:"https://tailwindcss.com/docs/installation/using-postcss"}},gatsby:{name:"gatsby",label:"Gatsby",links:{installation:"https://createui.co/docs/installation",tailwind:"https://tailwindcss.com/docs/guides/gatsby"}},expo:{name:"expo",label:"Expo",links:{installation:"https://createui.co/docs/installation",tailwind:"https://www.nativewind.dev/docs/getting-started/installation"}},manual:{name:"manual",label:"Manual",links:{installation:"https://createui.co/docs/installation",tailwind:"https://tailwindcss.com/docs/installation"}}};var k={error:red,warn:yellow,info:cyan,success:green};async function T(e,t){return createMatchPath(t.absoluteBaseUrl,t.paths)(e,void 0,()=>true,[".ts",".tsx",".jsx",".js",".css"])}var bs="@/components",Ss="@/lib/utils",Is="app/globals.css",Ps="tailwind.config.js";var Dt=cosmiconfig("components",{searchPlaces:["components.json"]});async function me(e){let t=await _t(e);return t?(t.iconLibrary||(t.iconLibrary="createui"),await Ce(e,t)):null}async function Ce(e,t){let r=await loadConfig(e);if(r.resultType==="failed")throw new Error(`Failed to load ${t.tsx?"tsconfig":"jsconfig"}.json. ${r.message??""}`.trim());return b.parse({...t,resolvedPaths:{cwd:e,tailwindConfig:t.tailwind.config?h__default.resolve(e,t.tailwind.config):"",tailwindCss:h__default.resolve(e,t.tailwind.css),utils:await T(t.aliases.utils,r),components:await T(t.aliases.components,r),ui:t.aliases.ui?await T(t.aliases.ui,r):h__default.resolve(await T(t.aliases.components,r)??e,"ui"),lib:t.aliases.lib?await T(t.aliases.lib,r):h__default.resolve(await T(t.aliases.utils,r)??e,".."),hooks:t.aliases.hooks?await T(t.aliases.hooks,r):h__default.resolve(await T(t.aliases.components,r)??e,"..","hooks")}})}async function _t(e){try{let t=await Dt.search(e);return t?a.parse(t.config):null}catch{let r=`${e}/components.json`;throw new Error(`Invalid configuration found in ${k.info(r)}.`)}}async function Cs(e){let t={};for(let s of Object.keys(e.aliases)){if(!zt(s,e))continue;let n=e.resolvedPaths[s],i=await Lt(e.resolvedPaths.cwd,n);if(!i){t[s]=e;continue}t[s]=await me(i);}let r=c.safeParse(t);return r.success?r.data:null}async function Lt(e,t){let r=Wt(e,t),s=h__default.relative(r,t),i=(await de.glob("**/package.json",{cwd:r,deep:3,ignore:["**/node_modules/**","**/dist/**","**/build/**","**/public/**"]})).map(o=>h__default.dirname(o)).find(o=>s.startsWith(o));return i?h__default.join(r,i):null}function zt(e,t){return Object.keys(t.resolvedPaths).filter(r=>r!=="utils").includes(e)}function Wt(e,t){let r=e.split(h__default.sep),s=t.split(h__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(h__default.sep)}function Xe(e){let t={resolvedPaths:{cwd:process.cwd(),tailwindConfig:"",tailwindCss:"",utils:"",components:"",ui:"",lib:"",hooks:""},tailwind:{config:"",css:"",baseColor:"",cssVariables:false},rsc:false,tsx:true,aliases:{components:"",utils:""}};return e?{...t,...e,resolvedPaths:{...t.resolvedPaths,...e.resolvedPaths||{}},tailwind:{...t.tailwind,...e.tailwind||{}},aliases:{...t.aliases,...e.aliases||{}}}:t}function ke(e="",t=true){let r=h__default.join(e,"package.json");return ge.readJSONSync(r,{throws:t})}var he=["**/node_modules/**",".next","public","dist","build"];z$1.object({compilerOptions:z$1.object({paths:z$1.record(z$1.string().or(z$1.array(z$1.string())))})});async function q(e){let[t,r,s,n,i,o,a,p]=await Promise.all([de.glob("**/{next,vite,astro,app}.config.*|gatsby-config.*|composer.json|react-router.config.*",{cwd:e,deep:3,ignore:he}),ge.pathExists(h__default.resolve(e,"src")),qt(e),Jt(e),Ht(e),Bt(e),Gt(e),ke(e,false)]),l=await ge.pathExists(h__default.resolve(e,`${r?"src/":""}app`)),c={framework:C.manual,isSrcDir:r,isRSC:false,isTsx:s,tailwindConfigFile:n,tailwindCssFile:i,tailwindVersion:o,frameworkVersion:null,aliasPrefix:a};if(t.find(m=>m.startsWith("next.config."))?.length)return c.framework=l?C["next-app"]:C["next-pages"],c.isRSC=l,c.frameworkVersion=await Mt(c.framework,p),c;if(t.find(m=>m.startsWith("astro.config."))?.length)return c.framework=C.astro,c;if(t.find(m=>m.startsWith("gatsby-config."))?.length)return c.framework=C.gatsby,c;if(t.find(m=>m.startsWith("composer.json"))?.length)return c.framework=C.laravel,c;if(Object.keys(p?.dependencies??{}).find(m=>m.startsWith("@remix-run/")))return c.framework=C.remix,c;if([...Object.keys(p?.dependencies??{}),...Object.keys(p?.devDependencies??{})].find(m=>m.startsWith("@tanstack/react-start")))return c.framework=C["tanstack-start"],c;if(t.find(m=>m.startsWith("react-router.config."))?.length)return c.framework=C["react-router"],c;if(t.find(m=>m.startsWith("vite.config."))?.length)return c.framework=C.vite,c;let d=t.find(m=>m.startsWith("app.config"));return d?.length&&(await ge.readFile(h__default.resolve(e,d),"utf8")).includes("defineConfig")?(c.framework=C.vite,c):(p?.dependencies?.expo&&(c.framework=C.expo),c)}async function Mt(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 Bt(e){let[t,r]=await Promise.all([ke(e,false),me(e)]);return r?.tailwind?.config===""?"v4":!t?.dependencies?.tailwindcss&&!t?.devDependencies?.tailwindcss?null:"v4"}async function Ht(e){let t=await de.glob(["**/*.css","**/*.scss"],{cwd:e,deep:5,ignore:he});if(!t.length)return null;for(let r of t){let s=await ge.readFile(h__default.resolve(e,r),"utf8");if(s.includes('@import "tailwindcss"')||s.includes("@import 'tailwindcss'"))return r}return null}async function Jt(e){let t=await de.glob("tailwind.config.*",{cwd:e,deep:3,ignore:he});return t.length?t[0]:null}async function Gt(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 qt(e){return (await de.glob("tsconfig.*",{cwd:e,deep:1,ignore:he})).length>0}async function Ks(e,t=null){let[r,s]=await Promise.all([me(e),t?Promise.resolve(t):q(e)]);if(r)return r;if(!s||!s.tailwindCssFile)return null;let n={$schema:"https://createui.co/schema.json",rsc:s.isRSC,tsx:s.isTsx,tailwind:{config:s.tailwindConfigFile??"",baseColor:"zinc",css:s.tailwindCssFile,cssVariables:true,prefix:""},iconLibrary:"createui",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 Ce(e,n)}function Qe(e,t,r={}){let{ignoreImports:s=false}=r,n=e.replace(/\r\n/g,`
5
+ `).trim(),i=t.replace(/\r\n/g,`
6
+ `).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=c=>c.replace(o,(d,m,u,y)=>{if(u.startsWith("."))return `${m}${u}${y}`;let g=u.split("/"),v=g[g.length-1];return `${m}@normalized/${v}${y}`}),p=a(n),l=a(i);return p===l}function V(e){let t=h__default.basename(e);return /^\.env(\.|$)/.test(t)}function tt(e){let t=[".env.local",".env",".env.development.local",".env.development"];for(let r of t){let s=h__default.join(e,r);if(existsSync(s))return s}return null}function Y(e){let t=e.split(`
7
+ `),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 rt(e,t){let r=Y(e),s=Y(t),n=[];for(let i of Object.keys(s))i in r||n.push(i);return n}function st(e,t){let r=Y(e),s=Y(t),n=e.trimEnd();n&&!n.endsWith(`
8
+ `)&&(n+=`
9
+ `);let i=[];for(let[o,a]of Object.entries(s))o in r||i.push(`${o}=${a}`);return i.length>0?(n&&(n+=`
10
+ `),n+=i.join(`
11
+ `),n+`
12
+ `):n&&!n.endsWith(`
13
+ `)?n+`
14
+ `:n}var w={error(...e){console.log(k.error(e.join(" ")));},warn(...e){console.log(k.warn(e.join(" ")));},info(...e){console.log(k.info(e.join(" ")));},success(...e){console.log(k.success(e.join(" ")));},log(...e){console.log(e.join(" "));},break(){console.log("");}};function re(e,t){return Zt({text:e,isSilent:t?.silent})}var ye=async({sourceFile:e})=>e;var xe=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=Qt(o.getLiteralValue(),t,r);if(o.setLiteralValue(a),i===a||a==="@/lib/utils"){if(!o.getFirstAncestorByKind(SyntaxKind.ImportDeclaration)?.getNamedImports().some(c=>c.getName()==="cn")||!t.aliases.utils)continue;o.setLiteralValue(i===a?a.replace(i,t.aliases.utils):t.aliases.utils);}}return e};function Qt(e,t,r=false){if(!e.startsWith("@/")&&!r)return e;if(r&&e.startsWith("@/")&&(e=e.replace(/^@\//,"@/registry/_/")),!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 sr={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"]},nt=async({sourceFile:e,config:t})=>{let r=e.getFullText();if(t.tsx)return r;let s=we.parse(r,{parser:{parse:i=>parse(i,sr)}}),n=transformFromAstSync(s,r,{cloneInputAst:false,code:false,ast:true,plugins:[rr],configFile:false});if(!n||!n.ast)throw new Error("Failed to transform JSX");return we.print(n.ast).code};var ir=/^["']use client["']$/g,ve=async({sourceFile:e,config:t})=>{if(t.rsc)return e;let r=e.getFirstChildByKind(SyntaxKind.ExpressionStatement);return r&&ir.test(r.getText())&&r.remove(),e};var Re=async({sourceFile:e,config:t})=>(t.tailwind?.prefix&&(e.getDescendantsOfKind(SyntaxKind.CallExpression).filter(r=>r.getExpression().getText()==="cva").forEach(r=>{if(r.getArguments()[0]?.isKind(SyntaxKind.StringLiteral)){let s=r.getArguments()[0];s&&s.replaceWithText(`"${_(s.getText()?.replace(/"|'/g,""),t.tailwind.prefix)}"`);}r.getArguments()[1]?.isKind(SyntaxKind.ObjectLiteralExpression)&&r.getArguments()[1]?.getDescendantsOfKind(SyntaxKind.PropertyAssignment).find(s=>s.getName()==="variants")?.getDescendantsOfKind(SyntaxKind.PropertyAssignment).forEach(s=>{s.getDescendantsOfKind(SyntaxKind.PropertyAssignment).forEach(n=>{let i=n.getInitializerIfKind(SyntaxKind.StringLiteral);i&&i?.replaceWithText(`"${_(i.getText()?.replace(/"|'/g,""),t.tailwind.prefix)}"`);});});}),e.getDescendantsOfKind(SyntaxKind.JsxAttribute).forEach(r=>{if(r.getNameNode().getText()==="className"){if(r.getInitializer()?.isKind(SyntaxKind.StringLiteral)){let s=r.getInitializer();s&&s.replaceWithText(`"${_(s.getText()?.replace(/"|'/g,""),t.tailwind.prefix)}"`);}if(r.getInitializer()?.isKind(SyntaxKind.JsxExpression)){let s=r.getInitializer()?.getDescendantsOfKind(SyntaxKind.CallExpression).find(n=>n.getExpression().getText()==="cn");s&&s.getArguments().forEach(n=>{(n.isKind(SyntaxKind.ConditionalExpression)||n.isKind(SyntaxKind.BinaryExpression))&&n.getChildrenOfKind(SyntaxKind.StringLiteral).forEach(i=>{i.replaceWithText(`"${_(i.getText()?.replace(/"|'/g,""),t.tailwind.prefix)}"`);}),n.isKind(SyntaxKind.StringLiteral)&&n.replaceWithText(`"${_(n.getText()?.replace(/"|'/g,""),t.tailwind.prefix)}"`);});}}r.getNameNode().getText()==="classNames"&&r.getInitializer()?.isKind(SyntaxKind.JsxExpression)&&r.getDescendantsOfKind(SyntaxKind.PropertyAssignment).forEach(s=>{if(s.getInitializer()?.isKind(SyntaxKind.CallExpression)){let n=s.getInitializerIfKind(SyntaxKind.CallExpression);n&&n.getArguments().forEach(i=>{i.isKind(SyntaxKind.ConditionalExpression)&&i.getChildrenOfKind(SyntaxKind.StringLiteral).forEach(o=>{o.replaceWithText(`"${_(o.getText()?.replace(/"|'/g,""),t.tailwind.prefix)}"`);}),i.isKind(SyntaxKind.StringLiteral)&&i.replaceWithText(`"${_(i.getText()?.replace(/"|'/g,""),t.tailwind.prefix)}"`);});}if(s.getInitializer()?.isKind(SyntaxKind.StringLiteral)&&s.getNameNode().getText()!=="variant"){let n=s.getInitializer();n&&n.replaceWithText(`"${_(n.getText()?.replace(/"|'/g,""),t.tailwind.prefix)}"`);}});})),e);function _(e,t=""){return e.split(" ").map(r=>r.indexOf(`${t}:`)===0?r:`${t}:${r.trim()}`).join(" ")}var fr=new Project({compilerOptions:{}});async function pr(e){let t=await promises.mkdtemp(h__default.join(tmpdir(),"createui-"));return h__default.join(t,e)}async function ot(e,t=[xe,ve,ye,Re]){let r=await pr(e.filename),s=fr.createSourceFile(r,e.raw,{scriptKind:ScriptKind.TSX});for(let n of t)await n({sourceFile:s,...e});return e.transformJsx?await nt({sourceFile:s,...e}):s.getText()}var at=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 Kn(e,t,r){if(!e?.length)return {filesCreated:[],filesUpdated:[],filesSkipped:[]};r={overwrite:false,force:false,silent:false,isRemote:false,isWorkspace:false,...r};let s=re("Updating files.",{silent:r.silent})?.start(),n=await q(t.resolvedPaths.cwd),i=[],o=[],a=[],p=[],l=null;for(let u=0;u<e.length;u++){let y=e[u];if(!y.content)continue;let g=Te(y,t,{isSrcDir:n?.isSrcDir,framework:n?.framework.name,commonRoot:je(e.map(b=>b.path),y.path),path:r.path,fileIndex:u});if(!g)continue;let v=basename(y.path),S=h__default.dirname(g);if(t.tsx||(g=g.replace(/\.tsx?$/,b=>b===".tsx"?".jsx":".js")),V(g)&&!existsSync(g)){let b=tt(S);b&&(g=b);}let f=existsSync(g);if(f&&statSync(g).isDirectory())throw new Error(`Cannot write to ${g}: path exists and is a directory. Please provide a file path instead.`);let x=y.type==="registry:file"||y.type==="registry:item",E=V(g)||x?y.content:await ot({filename:y.path,raw:y.content,config:t,transformJsx:!t.tsx,isRemote:r.isRemote},[xe,ve,ye,Re,...ct(g,n,t)?[at]:[]]);if(f&&!V(g)){let b=await promises.readFile(g,"utf-8");if(Qe(b,E,{ignoreImports:r.isWorkspace})){a.push(h__default.relative(t.resolvedPaths.cwd,g));continue}}if(f&&!r.overwrite&&!V(g)){s.stop(),r.rootSpinner&&r.rootSpinner.stop();let{overwrite:b}=await gr({type:"confirm",name:"overwrite",message:`The file ${k.info(v)} already exists. Would you like to overwrite?`,initial:false});if(!b){a.push(h__default.relative(t.resolvedPaths.cwd,g)),r.rootSpinner&&r.rootSpinner.start();continue}s?.start(),r.rootSpinner&&r.rootSpinner.start();}if(ct(g,n,t)&&(g=g.replace(/middleware\.(ts|js)$/,"proxy.$1")),existsSync(S)||await promises.mkdir(S,{recursive:true}),V(g)&&f){let b=await promises.readFile(g,"utf-8"),P=st(b,E);if(p=rt(b,E),l=h__default.relative(t.resolvedPaths.cwd,g),!p.length){a.push(h__default.relative(t.resolvedPaths.cwd,g));continue}await promises.writeFile(g,P,"utf-8"),o.push(h__default.relative(t.resolvedPaths.cwd,g));continue}await promises.writeFile(g,E,"utf-8"),f?o.push(h__default.relative(t.resolvedPaths.cwd,g)):(i.push(h__default.relative(t.resolvedPaths.cwd,g)),V(g)&&(p=Object.keys(Y(E)),l=h__default.relative(t.resolvedPaths.cwd,g)));}let c=[...i,...o,...a],d=await Rr(c,t);if(o.push(...d),o=o.filter(u=>!i.includes(u)),!(i.length||o.length)&&!a.length&&s?.info("No files updated."),i=Array.from(new Set(i)),o=Array.from(new Set(o)),a=Array.from(new Set(a)),i.length){if(s?.succeed(`Created ${i.length} ${i.length===1?"file":"files"}:`),!r.silent)for(let u of i)w.log(` - ${u}`);}else s?.stop();if(o.length&&(re(`Updated ${o.length} ${o.length===1?"file":"files"}:`,{silent:r.silent})?.info(),!r.silent))for(let u of o)w.log(` - ${u}`);if(a.length&&(re(`Skipped ${a.length} ${o.length===1?"file":"files"}: (files might be identical, use --overwrite to overwrite)`,{silent:r.silent})?.info(),!r.silent))for(let u of a)w.log(` - ${u}`);if(p.length&&l&&(re(`Added the following variables to ${k.info(l)}:`)?.info(),!r.silent))for(let u of p)w.log(` ${k.success("+")} ${u}`);return r.silent||w.break(),{filesCreated:i,filesUpdated:o,filesSkipped:a}}function Te(e,t,r){if(r.path){let i=h__default.isAbsolute(r.path)?r.path:h__default.join(t.resolvedPaths.cwd,r.path);if(/\.[^/\\]+$/.test(i)){if(r.fileIndex===0)return i}else {let a=h__default.basename(e.path);return h__default.join(i,a)}}if(e.target){if(e.target.startsWith("~/"))return h__default.join(t.resolvedPaths.cwd,e.target.replace("~/",""));let i=e.target;return e.type==="registry:page"&&(i=vr(i,r.framework),!i)?"":r.isSrcDir?h__default.join(t.resolvedPaths.cwd,"src",i.replace("src/","")):h__default.join(t.resolvedPaths.cwd,i.replace("src/",""))}let s=xr(e,t),n=wr(e.path,s);return h__default.join(s,n)}function xr(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 je(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(l=>l!==s&&l.startsWith(a+"/")))return "/"+a}return "/"+n}function wr(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 vr(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 Rr(e,t){let r=new Project({compilerOptions:{}}),s=await q(t.resolvedPaths.cwd),n=loadConfig(t.resolvedPaths.cwd),i=[];if(!s||n.resultType==="failed")return [];for(let o of e){let a=h__default.resolve(t.resolvedPaths.cwd,o);if(!existsSync(a))continue;let p=await promises.readFile(a,"utf-8"),l=await promises.mkdtemp(h__default.join(tmpdir(),"createui-")),c=r.createSourceFile(h__default.join(l,basename(a)),p,{scriptKind:ScriptKind.TSX});if(![".tsx",".ts",".jsx",".js"].includes(c.getExtension()))continue;let d=c.getImportDeclarations();for(let m of d){let u=m.getModuleSpecifierValue();if(s?.aliasPrefix&&!u.startsWith(`${s.aliasPrefix}/`))continue;let y=await T(u,n);if(!y)continue;let g=Er(y,e,t);if(!g)continue;let v=br(g,t,s);!v||v===u||(m.setModuleSpecifier(v),await promises.writeFile(a,c.getFullText(),"utf-8"),i.push(o));}}return i}function Er(e,t,r,s=[".tsx",".ts",".js",".jsx",".css"]){let n=h__default.normalize(r.resolvedPaths.cwd),i=t.map(v=>v.split(h__default.sep).join(h__default.posix.sep)),o=new Set(i),a=h__default.extname(e),p=a!=="",l=p?e.slice(0,-a.length):e,d=h__default.relative(n,l).split(h__default.sep).join(h__default.posix.sep),m=p?[a]:s,u=new Set;for(let v of m){let S=l+v,f=h__default.posix.normalize(h__default.relative(n,S));(o.has(f)||existsSync(S))&&u.add(f);let x=h__default.join(l,`index${v}`),E=h__default.posix.normalize(h__default.relative(n,x));(o.has(E)||existsSync(x))&&u.add(E);}let y=h__default.basename(l);for(let v of i)m.some(S=>v.endsWith(`/${y}${S}`))&&u.add(v);return u.size===0?null:Array.from(u).sort((v,S)=>{let f=h__default.posix.extname(v),x=h__default.posix.extname(S),E=m.indexOf(f)-m.indexOf(x);if(E!==0)return E;let b=d&&v.startsWith(d)?-1:1,P=d&&S.startsWith(d)?-1:1;return b-P})[0]}function br(e,t,r){let s=h__default.normalize(h__default.join(t.resolvedPaths.cwd,e)),n=Object.entries(t.resolvedPaths).filter(([,y])=>y&&s.startsWith(h__default.normalize(y+h__default.sep))).sort((y,g)=>g[1].length-y[1].length);if(n.length===0)return null;let[i,o]=n[0],a=h__default.relative(o,s);a=a.split(h__default.sep).join("/");let p=h__default.posix.extname(a),c=[".ts",".tsx",".js",".jsx"].includes(p)?"":p,d=a.slice(0,a.length-p.length);d.endsWith("/index")&&(d=d.slice(0,-6));let m=i==="cwd"?r.aliasPrefix:t.aliases[i];if(!m)return null;let u=d===""?"":`/${d}`;return u=u.replace("/src",""),`${m}${u}${c}`}function ct(e,t,r){let s=e===h__default.join(r.resolvedPaths.cwd,"middleware.ts")||e===h__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 pt=[".tsx",".ts",".jsx",".js",".css"],mt=["lib/utils.ts"],kr=[/^(react|react-dom|next)(\/.*)?$/,/^(node|jsr|npm):.*$/],Tr=new Project({compilerOptions:{}});function jr(e){if(kr.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 Fr(e,t,r,s=new Set){let n=h.resolve(t.resolvedPaths.cwd,e),i=h.relative(t.resolvedPaths.cwd,n);if(mt.includes(i))return {dependencies:[],files:[]};let o=h.extname(e);if(!pt.includes(o))return {dependencies:[],files:[]};if(s.has(i))return {dependencies:[],files:[]};if(s.add(i),!(await z.stat(n)).isFile())return {dependencies:[],files:[]};let p=await z.readFile(n,"utf-8"),l=await Nr(h.basename(n)),c=Tr.createSourceFile(l,p,{scriptKind:ScriptKind.TSX}),d=await loadConfig(t.resolvedPaths.cwd);if(d.resultType==="failed")return {dependencies:[],files:[]};let m=[],u=new Set,y=ut(e),g={path:i,type:y,target:""};m.push(g);let v=c.getImportDeclarations();for(let f of v){let x=f.getModuleSpecifierValue(),E=x.startsWith(".");if(!x.startsWith(`${r.aliasPrefix}/`)&&!E){let N=jr(x);N&&u.add(N);continue}let P=await T(x,d);if(E&&(P=h.resolve(h.dirname(n),x)),!P)continue;if(!h.extname(P))for(let N of pt){let De=`${P}${N}`;try{await z.access(De),P=De;break}catch{continue}}let M=h.relative(t.resolvedPaths.cwd,P);if(s.has(M)||mt.includes(M))continue;let ee=ut(x),Ae={path:M,type:ee,target:""};(ee==="registry:page"||ee==="registry:file")&&(Ae.target=x),m.push(Ae);let ne=await Fr(M,t,r,s);if(ne.files)for(let N of ne.files)s.has(N.path)||(s.add(N.path),m.push(N));ne.dependencies&&ne.dependencies.forEach(N=>u.add(N));}let S=Array.from(new Map(m.map(f=>[f.path,f])).values());return {dependencies:Array.from(u),files:S}}async function Nr(e){let t=await z.mkdtemp(h.join(tmpdir(),"createui-"));return h.join(t,e)}function ut(e){return e.includes("/ui/")?"registry:ui":e.includes("/lib/")?"registry:lib":e.includes("/hooks/")?"registry:hook":(e.includes("/components/"),"registry:component")}function F(e){try{return new URL(e),!0}catch{return false}}function Ee(e){return e.endsWith(".json")&&!F(e)}function ri(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 gt(e$1,t){if(!Or(t))return z$1.array(e).parse(e$1.flat().filter(Boolean));let r=await q(t.resolvedPaths.cwd),s=new Map,n=z$1.array(e).parse(e$1.flat().filter(Boolean));return n.forEach(i=>{let o=Te(i,t,{isSrcDir:r?.isSrcDir,framework:r?.framework.name,commonRoot:je(n.map(a=>a.path),i.path)});o&&s.set(o,i);}),Array.from(s.values())}function Or(e){return !!(e?.resolvedPaths?.cwd&&(e?.resolvedPaths?.ui||e?.resolvedPaths?.lib||e?.resolvedPaths?.components||e?.resolvedPaths?.hooks))}function X(e){return F(e)?e:`${B}/${e}`}var yt=process.env.https_proxy?new HttpsProxyAgent(process.env.https_proxy):void 0,Fe=new Map;function xt(e){let t=Ze();if(t){try{if(new URL(e).origin!==J())return}catch{return}return {Authorization:`Bearer ${t}`}}}async function A(e,t={}){t={useCache:true,...t};try{return await Promise.all(e.map(async s=>{let n=X(s);if(t.useCache&&Fe.has(n))return Fe.get(n);let i=(async()=>{let o=await ht(n,{agent:yt,headers:xt(n)});if(!o.ok){let a;if(o.headers.get("content-type")?.includes("application/json")){let p=await o.json(),l=z$1.object({detail:z$1.string().optional(),title:z$1.string().optional(),message:z$1.string().optional(),error:z$1.string().optional()}).safeParse(p);l.success&&(a=l.data.detail||l.data.message,l.data.error&&(a=`[${l.data.error}] ${a}`));}throw o.status===401?new ae(n,a):o.status===404?new oe(n,a):o.status===403?new ce(n,a):new le(n,o.status,a)}return o.json()})();return t.useCache&&Fe.set(n,i),i}))}catch(r){throw r}}async function yi(e){let t=J();if(!t)throw new Error("Cannot determine the registry origin to fetch reference.");let r=`${t}/api/reference?q=${encodeURIComponent(e)}`,s=await ht(r,{agent:yt,headers:xt(r)}),n=await s.text();if(!s.ok){try{let i=z$1.object({message:z$1.string().optional()}).safeParse(JSON.parse(n));if(i.success&&i.data.message)return i.data.message}catch{}return n||`Reference request failed (${s.status}).`}return n}async function wt(e){try{let t=e;e.startsWith("~/")&&(t=h__default.join(homedir(),e.slice(2)));let r=h__default.resolve(t),s=await promises.readFile(r,"utf8"),n$1=JSON.parse(s);try{return n.parse(n$1)}catch(i){throw new $(e,i)}}catch(t){throw t instanceof Error&&(t.message.includes("ENOENT")||t.message.includes("no such file"))?new te(e,t):t instanceof $?t:new te(e,t)}}function vt(e){let t=Xe();return e?b.parse(Q(t,e)):t}async function se(e,t={}){return await Promise.all(e.map(async s=>{if(Ee(s))return wt(s);if(F(s)){let[o]=await A([s],t);try{return n.parse(o)}catch(a){throw new $(s,a)}}let n$1=`${s}.json`,[i]=await A([n$1],t);try{return n.parse(i)}catch(o){throw new $(s,o)}}))}m.extend({type:d,_source:z$1.string().optional(),fontVariant:l.optional(),config:z$1.any().optional()}).passthrough();async function Et(e,t,r={}){r={useCache:true,...r};let s$1=[],n$1=[],i=[],o=Array.from(new Set(e)),a=await se(o,r),p=new Map;for(let f=0;f<a.length;f++)a[f]&&p.set(o[f],a[f]);for(let[f,x]of Array.from(p.entries())){let E={...x,_source:f};if(s$1.push(E),x.registryDependencies){let{items:b,registryNames:P}=await be(x.registryDependencies,t,r,new Set(o));n$1.push(...b),i.push(...P);}}if(s$1.push(...n$1),i.length>0){let f=Array.from(new Set(i)),x=await Oe();if(!x&&s$1.length===0)return null;if(x){f.includes("index")&&f.unshift("index");let E=[];for(let M of f){let ee=await zr(M,t,r);E.push(...ee);}let b=Array.from(new Set(E)),P=await A(b,r),$e=z$1.array(n).parse(P);s$1.push(...$e);}}if(!s$1.length)return null;let l=new Map;s$1.forEach(f=>{let x=f._source||f.name;l.set(f,x);}),s$1=Ur(s$1,l),s$1.sort((f,x)=>f.type==="registry:theme"&&x.type!=="registry:theme"?-1:f.type!=="registry:theme"&&x.type==="registry:theme"?1:0);let c={};s$1.forEach(f=>{c=Q(c,f.tailwind??{});});let d={};s$1.forEach(f=>{d=Q(d,f.cssVars??{});});let m={};s$1.forEach(f=>{m=Q(m,f.css??{});});let u="";s$1.forEach(f=>{f.docs&&(u+=`${f.docs}
15
+ `);});let y={};s$1.forEach(f=>{y=Q(y,f.envVars??{});});let g=await gt(s$1.map(f=>f.files??[]),t),v=[];for(let f of s$1)if(f.type==="registry:font-variant"&&f.fontVariant)for(let x of ["display","body","numeric"]){let E=f.fontVariant[x];E&&v.push({name:`${f.name}-${x}`,type:"registry:font",role:x,font:E});}let S=s.parse({dependencies:Q.all(s$1.map(f=>f.dependencies??[])),devDependencies:Q.all(s$1.map(f=>f.devDependencies??[])),files:g,tailwind:c,cssVars:d,css:m,docs:u,fonts:v.length>0?v:void 0});return Object.keys(y).length>0&&(S.envVars=y),S}async function be(e,t,r={},s=new Set){let n=[],i=[];for(let o of e)if(!s.has(o))if(s.add(o),F(o)||Ee(o)){let[a]=await se([o],r);if(a&&(n.push(a),a.registryDependencies)){let p=await be(a.registryDependencies,t,r,s);n.push(...p.items),i.push(...p.registryNames);}}else {i.push(o);try{let[a]=await se([o],r);if(a&&a.registryDependencies){let p=await be(a.registryDependencies,t,r,s);n.push(...p.items),i.push(...p.registryNames);}}catch{}}return {items:n,registryNames:i}}async function zr(e,t,r={}){if(F(e))return [e];let{registryNames:s}=await be([e],t,r,new Set),n=s.map(i=>X(F(i)?i:`${i}.json`));return Array.from(new Set(n))}function W(e,t){let r=t||e.name,s=createHash("sha256").update(r).digest("hex").substring(0,8);return `${e.name}::${s}`}function Wr(e){if(F(e)){let r=new URL(e).pathname,s=r.match(/\/([^/]+)\.json$/),n=s?s[1]:h__default.basename(r,".json");return {name:n,hash:W({name:n},e)}}if(Ee(e)){let t=e.match(/\/([^/]+)\.json$/),r=t?t[1]:h__default.basename(e,".json");return {name:r,hash:W({name:r},e)}}return {name:e,hash:W({name:e},e)}}function Ur(e,t){let r=new Map,s=new Map,n=new Map,i=new Map;e.forEach(l=>{let c=t.get(l)||l.name,d=W(l,c);r.set(d,l),s.set(d,l),n.set(d,0),i.set(d,[]);});let o=new Map;e.forEach(l=>{let c=t.get(l)||l.name,d=W(l,c);o.has(l.name)||o.set(l.name,[]),o.get(l.name).push(d),c!==l.name&&(o.has(c)||o.set(c,[]),o.get(c).push(d));}),e.forEach(l=>{let c=t.get(l)||l.name,d=W(l,c);l.registryDependencies&&l.registryDependencies.forEach(m=>{let u,y=o.get(m)||[];if(y.length===1)u=y[0];else if(y.length>1)u=y[0];else {let{name:g}=Wr(m),v=o.get(g)||[];v.length>0&&(u=v[0]);}u&&r.has(u)&&(i.get(u).push(d),n.set(d,n.get(d)+1));});});let a=[],p=[];for(n.forEach((l,c)=>{l===0&&a.push(c);});a.length>0;){let l=a.shift(),c=r.get(l);p.push(c),i.get(l).forEach(d=>{let m=n.get(d)-1;n.set(d,m),m===0&&a.push(d);});}if(p.length!==e.length){console.warn("Circular dependency detected in registry items");let l=new Set(p.map(c=>{let d=t.get(c)||c.name;return W(c,d)}));e.forEach(c=>{let d=t.get(c)||c.name,m=W(c,d);l.has(m)||p.push(c);});}return p}function Se(e){if(w.break(),w.error("Something went wrong. Please check the error below for more details."),w.error("If the problem persists, please open an issue on GitHub."),w.error(""),typeof e=="string"&&(w.error(e),w.break(),process.exit(1)),e instanceof O&&(e.message&&(w.error(e.cause?"Error:":"Message:"),w.error(e.message)),e.cause&&(w.error(`
16
+ Message:`),w.error(e.cause)),e.suggestion&&(w.error(`
17
+ Suggestion:`),w.error(e.suggestion)),w.break(),process.exit(1)),e instanceof z$1.ZodError){w.error("Validation failed:");for(let[t,r]of Object.entries(e.flatten().fieldErrors))w.error(`- ${k.info(t)}: ${r}`);w.break(),process.exit(1);}e instanceof Error&&(w.error(e.message),w.break(),process.exit(1)),w.break(),process.exit(1);}async function Mr(e,t){let{useCache:r}=t||{},s=F(e)?e:X("registry.json"),[n]=await A([s],{useCache:r});try{return o.parse(n)}catch(i){throw new $(e,i)}}async function to(e,t){let{useCache:r=false}=t||{};return se(e,{useCache:r})}async function ro(e,t){let{config:r,useCache:s=false}=t||{};return Et(e,vt(r),{useCache:s})}async function Oe(){try{return (await Mr("registry.json")).items}catch(e){w.error(`
18
+ `),Se(e);}}async function so(){try{let[e]=await A(["styles/index.json"]);return q$1.parse(e)}catch{return []}}async function no(){try{let[e]=await A(["icons/index.json"]);return r.parse(e)}catch(e){return Se(e),{}}}async function Br(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 Br(e,n.registryDependencies);r.push(...i);}}return r.filter((s,n,i)=>i.findIndex(o=>o.name===s.name)===n)}async function io(e,t){try{let r=t.map(n=>`${n.name}.json`);return (await A(r)).map(n$1=>n.parse(n$1))}catch(r){return Se(r),[]}}async function oo(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?h__default.join(e.resolvedPaths[s],n):null}async function Hr(e){e={useCache:true,...e};let t=`${B}/config.json`,[r]=await A([t],{useCache:e.useCache});return w$1.parse(r).presets}async function ao(e,t){return (await Hr(t)).find(s=>s.name.toLowerCase()===e.toLowerCase())??null}function Jr(e){return (e.split(",")[0]?.trim().replace(/^['"]|['"]$/g,"")??e).replace(/\s*variable$/i,"").trim()}async function co(){try{let e=await Oe()??[],t=[];for(let r of e){if(r.type!=="registry:font-variant"||!r.fontVariant)continue;let s=Array.from(new Set([r.fontVariant.display?.family,r.fontVariant.numeric?.family].filter(i=>!!i).map(Jr))),n=r.title??r.name;t.push({name:r.name.replace(/^font-variant-/,""),label:s.length?`${n} (${s.join(" + ")})`:n});}return t.length?t:[...fe]}catch{return [...fe]}}export{Br as $,ot as A,Kn as B,Fr as C,F as D,ri as E,vt as F,O as G,oe as H,ae as I,ce as J,le as K,te as L,$ as M,J as N,as as O,cs as P,ls as Q,A as R,yi as S,Et as T,Se as U,Mr as V,to as W,ro as X,Oe as Y,so as Z,no as _,k as a,io as aa,bs as b,oo as ba,Ss as c,Hr as ca,Is as d,ao as da,Ps as e,co as ea,me as f,Ce as g,Cs as h,Lt as i,Wt as j,Xe as k,ke as l,q as m,Ks as n,w as o,re as p,St as q,Pt as r,Zr as s,Xr as t,Qr as u,es as v,ts as w,tt as x,rt as y,st as z};//# sourceMappingURL=chunk-KFQXWKJJ.js.map
19
+ //# sourceMappingURL=chunk-KFQXWKJJ.js.map