@razorwind/core 0.0.42 → 0.0.44

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 (32) hide show
  1. package/dist/{config-D-Sj9dwx.d.mts → config-BHFlKT4O.d.mts} +6 -3
  2. package/dist/config-BHFlKT4O.d.mts.map +1 -0
  3. package/dist/{config-CVFAzcDD.d.cts → config-WQlRP5z1.d.cts} +6 -3
  4. package/dist/config-WQlRP5z1.d.cts.map +1 -0
  5. package/dist/{index-CncKAvto.d.mts → index-DrVESYnz.d.mts} +2 -2
  6. package/dist/{index-CncKAvto.d.mts.map → index-DrVESYnz.d.mts.map} +1 -1
  7. package/dist/{index-DYuvYODg.d.cts → index-xilGn3pb.d.cts} +2 -2
  8. package/dist/{index-DYuvYODg.d.cts.map → index-xilGn3pb.d.cts.map} +1 -1
  9. package/dist/index.cjs +1 -1
  10. package/dist/index.d.cts +3 -3
  11. package/dist/index.d.mts +3 -3
  12. package/dist/index.mjs +1 -1
  13. package/dist/lib/tokens/index.cjs +1 -1
  14. package/dist/lib/tokens/index.d.cts +1 -1
  15. package/dist/lib/tokens/index.d.mts +1 -1
  16. package/dist/lib/tokens/index.mjs +1 -1
  17. package/dist/{plugin-BTLvkhiO.d.mts → plugin-D1VhJmEE.d.mts} +2 -2
  18. package/dist/plugin-D1VhJmEE.d.mts.map +1 -0
  19. package/dist/{plugin-DNuqVQH8.d.cts → plugin-DwTqehw6.d.cts} +2 -2
  20. package/dist/{plugin-DNuqVQH8.d.cts.map → plugin-DwTqehw6.d.cts.map} +1 -1
  21. package/dist/plugin.d.cts +2 -2
  22. package/dist/plugin.d.mts +2 -2
  23. package/dist/tokens-B1I6HQim.mjs +2 -0
  24. package/dist/tokens-B1I6HQim.mjs.map +1 -0
  25. package/dist/tokens-DZOlhVxy.cjs +1 -0
  26. package/package.json +3 -3
  27. package/dist/config-CVFAzcDD.d.cts.map +0 -1
  28. package/dist/config-D-Sj9dwx.d.mts.map +0 -1
  29. package/dist/plugin-BTLvkhiO.d.mts.map +0 -1
  30. package/dist/tokens-DRWdgXcQ.cjs +0 -1
  31. package/dist/tokens-N1_aQFQ9.mjs +0 -2
  32. package/dist/tokens-N1_aQFQ9.mjs.map +0 -1
@@ -88,7 +88,7 @@ interface Options {
88
88
  /**
89
89
  * The directory or file containing a Razorwind configuration file.
90
90
  *
91
- * @reamarks
91
+ * @remarks
92
92
  * If not provided, the application will look for a configuration file in the following order:
93
93
  * - `razorwind.config.ts`
94
94
  * - `razorwind.config.js`
@@ -114,7 +114,10 @@ interface Options {
114
114
  */
115
115
  iconsPath?: string | string[];
116
116
  /**
117
- * The directory(ies) or file(s) containing the tokens.
117
+ * Token source path(s): file, directory, Style Dictionary config, or glob.
118
+ *
119
+ * Directories are expanded to `**\/*.{json,yaml,...}`. Globs (e.g.
120
+ * `src/tokens/**\/*.json`) are passed through to Style Dictionary as-is.
118
121
  *
119
122
  * @see https://styledictionary.com/info/tokens/
120
123
  *
@@ -201,4 +204,4 @@ type Config = RequiredKeys<UserConfig, "componentsPath" | "iconsPath" | "plugins
201
204
  };
202
205
  //#endregion
203
206
  export { UserConfigFn as a, UserConfigParams as c, TokensPreprocessor as d, UserConfigExport as i, Plugin as l, Options as n, UserConfigFnObject as o, UserConfig as r, UserConfigFnPromise as s, Config as t, TokensParser as u };
204
- //# sourceMappingURL=config-D-Sj9dwx.d.mts.map
207
+ //# sourceMappingURL=config-BHFlKT4O.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-BHFlKT4O.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":""}
@@ -88,7 +88,7 @@ interface Options {
88
88
  /**
89
89
  * The directory or file containing a Razorwind configuration file.
90
90
  *
91
- * @reamarks
91
+ * @remarks
92
92
  * If not provided, the application will look for a configuration file in the following order:
93
93
  * - `razorwind.config.ts`
94
94
  * - `razorwind.config.js`
@@ -114,7 +114,10 @@ interface Options {
114
114
  */
115
115
  iconsPath?: string | string[];
116
116
  /**
117
- * The directory(ies) or file(s) containing the tokens.
117
+ * Token source path(s): file, directory, Style Dictionary config, or glob.
118
+ *
119
+ * Directories are expanded to `**\/*.{json,yaml,...}`. Globs (e.g.
120
+ * `src/tokens/**\/*.json`) are passed through to Style Dictionary as-is.
118
121
  *
119
122
  * @see https://styledictionary.com/info/tokens/
120
123
  *
@@ -201,4 +204,4 @@ type Config = RequiredKeys<UserConfig, "componentsPath" | "iconsPath" | "plugins
201
204
  };
202
205
  //#endregion
203
206
  export { UserConfigFn as a, UserConfigParams as c, TokensPreprocessor as d, UserConfigExport as i, Plugin as l, Options as n, UserConfigFnObject as o, UserConfig as r, UserConfigFnPromise as s, Config as t, TokensParser as u };
204
- //# sourceMappingURL=config-CVFAzcDD.d.cts.map
207
+ //# sourceMappingURL=config-WQlRP5z1.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-WQlRP5z1.d.cts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":";;;;;;;;;;;;;;;UAgCiB;EACf;EACA,SAAS;EACT,SAAS,qBAAqB;;;;;;;;;KAUpB;EAEN;EACA,eAAe,YAAY,uBAAuB;MAElD,YAAY,uBAAuB;;;;;;;;;UAUxB;;;;;;;EAOf;;;;;;EAOA,UAAU;;;;;;EAOV,gBAAgB;;;;;;;;EAShB,WAAW,MAAM,QAAQ,QAAQ,WAAW,aAAa;;;;;;;;EASzD,YACE,MAAM,QACN,QAAQ,WACL,aAAa,eAAe;;;;;;;;EASjC,YAAY,MAAM,QAAQ,QAAQ,WAAW;;;;UCtF9B;;;;;;;;;;;;;;;;;;EAkBf;;;;EAKA;;;;;;EAOA;;;;;;;;;;;EAYA;;;;;;EAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCA;;UAGe,mBAAmB;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA,SAAS,SAAS,eAAe;EACjC,aAAa;EACb,QAAQ;EACR,UAAU;;UAGK;EACf;EACA;;KAGU,sBAAsB,QAAQ,eAAe;KAC7C,uBACV,QAAQ,qBACL,QAAQ,aAAa;KACd,gBACV,QAAQ,qBACL,aAAa,eAAe,QAAQ,aAAa;KAC1C,mBACR,aACA,eACA,QAAQ,aAAa,gBACrB,qBACA,sBACA;KAEQ,SAAS,aACnB;EAGA;EACA,UAAU;IACR"}
@@ -1,6 +1,6 @@
1
1
  import { t as Schema } from "./schema-CsbyELyn.mjs";
2
2
  import "./index-DM8vit-J.mjs";
3
- import { l as Plugin, t as Config } from "./config-D-Sj9dwx.mjs";
3
+ import { l as Plugin, t as Config } from "./config-BHFlKT4O.mjs";
4
4
  import { ExecutionContext } from "@power-plant/core";
5
5
  import { Tokens } from "@power-plant/dtcg-schema";
6
6
  import { Hooks, Parser, PreprocessedTokens } from "style-dictionary/types";
@@ -184,4 +184,4 @@ declare function registerRazorwindHooks(plugins?: Plugin[], target?: StyleDictio
184
184
  declare const registerRazorwindParsers: typeof registerRazorwindHooks;
185
185
  //#endregion
186
186
  export { TYPE_PATH_HINTS as A, parseCssCustomProperties as C, TOKEN_DIRECTORY_GLOB as D, THEME_BASENAME_PATTERN as E, TOKEN_FILE_EXTENSIONS as O, normalizeTokenTree as S, RazorwindParserName as T, themeKeyFromPath as _, getRazorwindParserHooks as a, inferValue as b, registerRazorwindHooks as c, LoadedTokens as d, loadTokens as f, resolveTokensSource as g, ResolvedTokensSource as h, getExtractionHooks as i, TOKEN_PARSER_NAMES as k, registerRazorwindParsers as l, ResolveTokensPathOptions as m, RAZORWIND_INFER_PREPROCESSOR as n, getRazorwindPreprocessorHooks as o, loadTokensOrThrow as p, StyleDictionaryRegisterTarget as r, razorwindInferPreprocessor as s, ExtractionHooks as t, LoadTokensOptions as u, InferredTokenType as v, DEFAULT_TOKEN_PATH_CANDIDATES as w, nestFlatTokens as x, inferTypeFromPath as y };
187
- //# sourceMappingURL=index-CncKAvto.d.mts.map
187
+ //# sourceMappingURL=index-DrVESYnz.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-CncKAvto.d.mts","names":[],"sources":["../src/lib/tokens/constants.ts","../src/lib/tokens/css.ts","../src/lib/tokens/infer.ts","../src/lib/tokens/resolve-path.ts","../src/lib/tokens/load.ts","../src/lib/tokens/parsers.ts"],"mappings":""}
1
+ {"version":3,"file":"index-DrVESYnz.d.mts","names":[],"sources":["../src/lib/tokens/constants.ts","../src/lib/tokens/css.ts","../src/lib/tokens/infer.ts","../src/lib/tokens/resolve-path.ts","../src/lib/tokens/load.ts","../src/lib/tokens/parsers.ts"],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  import { t as Schema } from "./schema-CsbyELyn.cjs";
2
2
  import "./index-BjSOzDOH.cjs";
3
- import { l as Plugin, t as Config } from "./config-CVFAzcDD.cjs";
3
+ import { l as Plugin, t as Config } from "./config-WQlRP5z1.cjs";
4
4
  import { Tokens } from "@power-plant/dtcg-schema";
5
5
  import { ExecutionContext } from "@power-plant/core";
6
6
  import { Hooks, Parser, PreprocessedTokens } from "style-dictionary/types";
@@ -184,4 +184,4 @@ declare function registerRazorwindHooks(plugins?: Plugin[], target?: StyleDictio
184
184
  declare const registerRazorwindParsers: typeof registerRazorwindHooks;
185
185
  //#endregion
186
186
  export { TYPE_PATH_HINTS as A, parseCssCustomProperties as C, TOKEN_DIRECTORY_GLOB as D, THEME_BASENAME_PATTERN as E, TOKEN_FILE_EXTENSIONS as O, normalizeTokenTree as S, RazorwindParserName as T, themeKeyFromPath as _, getRazorwindParserHooks as a, inferValue as b, registerRazorwindHooks as c, LoadedTokens as d, loadTokens as f, resolveTokensSource as g, ResolvedTokensSource as h, getExtractionHooks as i, TOKEN_PARSER_NAMES as k, registerRazorwindParsers as l, ResolveTokensPathOptions as m, RAZORWIND_INFER_PREPROCESSOR as n, getRazorwindPreprocessorHooks as o, loadTokensOrThrow as p, StyleDictionaryRegisterTarget as r, razorwindInferPreprocessor as s, ExtractionHooks as t, LoadTokensOptions as u, InferredTokenType as v, DEFAULT_TOKEN_PATH_CANDIDATES as w, nestFlatTokens as x, inferTypeFromPath as y };
187
- //# sourceMappingURL=index-DYuvYODg.d.cts.map
187
+ //# sourceMappingURL=index-xilGn3pb.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-DYuvYODg.d.cts","names":[],"sources":["../src/lib/tokens/constants.ts","../src/lib/tokens/css.ts","../src/lib/tokens/infer.ts","../src/lib/tokens/resolve-path.ts","../src/lib/tokens/load.ts","../src/lib/tokens/parsers.ts"],"mappings":";;;;;;;;cAmBa;KAOD,8BAA8B;;cAG7B;;;;;cAsBA;;cAyBA;;cAGA,wBAAsB;;cAItB,iBAAiB;;;;;;;iBCvDd,yBACd,mBACC;;;KCgCS;;;;iBAmEI,kBACd,iBACC;;;;iBAiBa,WACd,cACA;EACG;EAAgB,OAAO;;;;;iBAsPZ,mBACd,gBACA;;;;;;;;iBA2Cc,eACd,MAAM,0BACL;;;UC9Zc;;;;EAIf;;;;EAKA;;;;EAKA,gBAAgB;;UAGD;;;;;;;EAOf;;;;EAKA;;;;EAKA;;;;;;;;;iBAyFc,oBACd,SAAS,2BACR;;;;iBAqFa,iBAAiB;;;UCtLhB,0BAA0B;;;;;;EAMzC;;KAGU,eAAe,SAAS,eAAe;;;;;;;;;iBA0I7B,WACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;iBAsCW,kBACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;cCpNE;;UAGI;EACf,kBAAkB,QAAQ;EAC1B,wBAAwB;IACtB;IACA,cAAc,YAAY;;;;UAKb;EACf,SAAS,YAAY;EACrB,eAAe,YAAY;EAC3B;EACA;;;iBAwEc,2BAA2B,YAAY;;;;;iBAavC,2BACd,YAAY,qBACX;;iBAKa,iCAAiC,YAC/C;;;;;;;iBAac,mBAAmB,UAAS,WAAgB;;;;;;;;;;;;;;iBA0D5C,uBACd,UAAS,UACT,SAAQ,gCACP;;;;cAqBU,iCAAwB"}
1
+ {"version":3,"file":"index-xilGn3pb.d.cts","names":[],"sources":["../src/lib/tokens/constants.ts","../src/lib/tokens/css.ts","../src/lib/tokens/infer.ts","../src/lib/tokens/resolve-path.ts","../src/lib/tokens/load.ts","../src/lib/tokens/parsers.ts"],"mappings":";;;;;;;;cAmBa;KAOD,8BAA8B;;cAG7B;;;;;cAsBA;;cAyBA;;cAGA,wBAAsB;;cAItB,iBAAiB;;;;;;;iBCvDd,yBACd,mBACC;;;KCgCS;;;;iBAmEI,kBACd,iBACC;;;;iBAiBa,WACd,cACA;EACG;EAAgB,OAAO;;;;;iBAsPZ,mBACd,gBACA;;;;;;;;iBA2Cc,eACd,MAAM,0BACL;;;UC9Zc;;;;EAIf;;;;EAKA;;;;EAKA,gBAAgB;;UAGD;;;;;;;EAOf;;;;EAKA;;;;EAKA;;;;;;;;;iBAyHc,oBACd,SAAS,2BACR;;;;iBAqFa,iBAAiB;;;UCtNhB,0BAA0B;;;;;;EAMzC;;KAGU,eAAe,SAAS,eAAe;;;;;;;;;iBA0I7B,WACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;iBAsCW,kBACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;cCpNE;;UAGI;EACf,kBAAkB,QAAQ;EAC1B,wBAAwB;IACtB;IACA,cAAc,YAAY;;;;UAKb;EACf,SAAS,YAAY;EACrB,eAAe,YAAY;EAC3B;EACA;;;iBAwEc,2BAA2B,YAAY;;;;;iBAavC,2BACd,YAAY,qBACX;;iBAKa,iCAAiC,YAC/C;;;;;;;iBAac,mBAAmB,UAAS,WAAgB;;;;;;;;;;;;;;iBA0D5C,uBACd,UAAS,UACT,SAAQ,gCACP;;;;cAqBU,iCAAwB"}
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./schema-93daQRSN.cjs"),n=require("./tokens-DRWdgXcQ.cjs"),r=require("./plugin.cjs");let i=require("@power-plant/core"),a=require("@stryke/type-checks/is-empty-object"),o=require("defu"),s=require("@stryke/fs/exists"),c=require("@stryke/fs/is-file"),l=require("@stryke/fs/json"),u=require("@stryke/fs/list-files"),d=require("@stryke/path/append"),f=require("@stryke/path/file-path-fns"),p=require("@stryke/path/join"),m=require("@stryke/string-format/title-case"),h=require("@stryke/type-checks/is-set-object"),g=require("@stryke/type-checks/is-set-string"),_=require("node:fs/promises"),v=require("node:path"),ee=require("@stryke/env/get-env-paths"),y=require("@stryke/path/find"),b=require("@stryke/path/replace"),te=require("@stryke/type-checks/is-function"),x=require("c12"),ne=require("jiti"),S=require("node:fs"),C=require("node:os");C=e.t(C,1);var re=`0.0.41`;function w(e){return!!((0,g.isSetString)(e)||(0,h.isSetObject)(e)&&`url`in e&&(0,g.isSetString)(e.url))}function T(e){if((0,g.isSetString)(e))return e;if((0,h.isSetObject)(e)&&`url`in e&&(0,g.isSetString)(e.url))return e.url}const E=t.o.partial(),D=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),O=(0,o.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function k(e,t){return(0,v.isAbsolute)(t)?t:(0,v.resolve)(e,t)}function ie(e){return Array.isArray(e)?e.filter(g.isSetString):(0,g.isSetString)(e)?[e]:[]}function A(e){let t=e.toLowerCase();if(D.has(t))return t}function ae(e){let t=(0,f.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&D.has(t))}function j(e){if(!e)return;let n=t.a.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){let e=t.a.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function M(e){if(!e)return;let n=t.s.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){if((0,g.isSetString)(n)){let e=(0,f.findFileName)(n,{withExtension:!1})||n,i=t.s.safeParse({name:e,path:n});i.success&&r.push(i.data);continue}let e=t.s.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function N(e){if(!(0,h.isSetObject)(e))return;let{files:t,usage:n,...r}=e,i=E.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function P(e){return(0,h.isSetObject)(e)&&`path`in e}async function oe(e){let t=(0,p.joinPaths)(e,`package.json`);if(!(0,s.existsSync)(t))return;let n;try{n=await(0,l.readJsonFile)(t)}catch{return}let r={};(0,g.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,g.isSetString)(n.description)&&(r.description=n.description),(0,g.isSetString)(n.version)&&(r.version=n.version),(0,g.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=T(n.repository);if(i&&(r.repository=i),(0,h.isSetObject)(n.dependencies)&&(r.dependencies=n.dependencies),(0,h.isSetObject)(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(g.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,c,u;P(a)?c=j(a):(0,h.isSetObject)(a)&&(o=N(a),`files`in a&&(c=j(a.files)),`usage`in a&&(u=M(a.usage)));let d=O(o??{},r);return c?.length&&(d.files=c),u?.length&&(d.usage=u),Object.keys(d).length>0?d:void 0}async function se(e){let t=(0,p.joinPaths)(e,`component.json`);if(!(0,s.existsSync)(t))return;let n;try{n=await(0,l.readJsonFile)(t)}catch{return}if(P(n)||Array.isArray(n)){let e=j(n);if(e)return{files:e}}if(!(0,h.isSetObject)(n))return;let r=N(n)??{},i=`files`in n?j(n.files):void 0,a=`usage`in n?M(n.usage):void 0;return i?.length&&(r.files=i),a?.length&&(r.usage=a),Object.keys(r).length>0?r:void 0}async function ce(e){try{return(await(0,_.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&ae(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function le(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,d.appendPath)(t.path,e),r=(0,f.findFileExtensionSafe)(t.path)??``,i=t.language??A(r),a=t.name||(0,f.findFileName)(t.path,{withExtension:!1})||t.path,o=t.content===void 0?(0,s.existsSync)(n)?await(0,_.readFile)(n,`utf8`):void 0:t.content;return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=(0,p.joinPaths)(e,`usage`);if(!(0,s.existsSync)(n)||!(0,c.isDirectory)(n))return;let r=await ce(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=(0,p.joinPaths)(n,e),r=A((0,f.findFileExtensionSafe)(e)??``),i=(0,f.findFileName)(e,{withExtension:!1})||e;return{name:i,title:(0,m.titleCase)(i),path:t,content:await(0,_.readFile)(t,`utf8`),...r?{language:r}:{}}}))}async function ue(e,t){let n=t??(await(0,u.listFiles)(e)).filter(e=>(0,f.findFileName)(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test((0,f.findFileExtensionSafe)(t))?`component`:`file`,path:t,content:await(0,_.readFile)((0,d.appendPath)(t,e),`utf8`)}:{type:/[tj]sx$/.test((0,f.findFileExtensionSafe)(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await(0,_.readFile)((0,d.appendPath)(t.path,e),`utf8`):void 0,path:(0,d.appendPath)(t.path,e)}))}async function de(e){let n=await oe(e),r=await se(e);if(!n&&!r)return;let i=O(r??{},n??{}),a=(0,g.isSetString)(i.name)?i.name:(0,f.findFolderName)(e),o=(0,g.isSetString)(i.title)?i.title:(0,m.titleCase)(a),s=t.o.safeParse({...i,name:a,title:o});if(!s.success)return;let c=await le(e,s.data.usage);return{...s.data,files:await ue(e,s.data.files),...c?.length?{usage:c}:{}}}async function F(e){let t={},n=ie(e.options.componentsPath);for(let r of n){let n=k(e.cwd,r);if(!(!(0,s.existsSync)(n)||!(0,c.isDirectory)(n)))try{let e=await(0,_.readdir)(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await de((0,p.joinPaths)(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const fe=t.r.partial(),I=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),L=(0,o.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function pe(e,t){return(0,v.isAbsolute)(t)?t:(0,v.resolve)(e,t)}function me(e){return Array.isArray(e)?e.filter(g.isSetString):(0,g.isSetString)(e)?[e]:[]}function R(e){let t=e.toLowerCase();if(I.has(t))return t}function z(e){let t=(0,f.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&I.has(t))}function he(e){return n.v.test(e)}async function B(e){try{return(await(0,_.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&z(e.name)).map(e=>e.name)}catch{return[]}}function V(e){if(!e)return;let n=t.n.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){let e=t.n.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function H(e){if(!(0,h.isSetObject)(e))return;let t=fe.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function U(e){return(0,h.isSetObject)(e)&&`path`in e}async function W(e,t,n){let r=(0,d.appendPath)(e,t),i=R((0,f.findFileExtensionSafe)(e)??``)??`file`,a=i===`svg`?await(0,_.readFile)(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function ge(e){let t=(0,p.joinPaths)(e,`package.json`);if(!(0,s.existsSync)(t))return;let n;try{n=await(0,l.readJsonFile)(t)}catch{return}let r={};(0,g.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,g.isSetString)(n.description)&&(r.description=n.description),(0,g.isSetString)(n.version)&&(r.version=n.version),(0,g.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=T(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(g.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,c;U(a)?c=V(a):(0,h.isSetObject)(a)&&(o=H(a),`files`in a&&(c=V(a.files)));let u=L(o??{},r);return c?.length&&(u.files=c),Object.keys(u).length>0?u:void 0}async function _e(e){let t=(0,p.joinPaths)(e,`icon.json`);if(!(0,s.existsSync)(t))return;let n;try{n=await(0,l.readJsonFile)(t)}catch{return}if(U(n)||Array.isArray(n)){let e=V(n);if(e)return{files:e}}return H(n)}async function ve(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,d.appendPath)(t.path,e),r=(0,f.findFileExtensionSafe)(t.path)??``,i=t.type??R(r)??`file`,a=t.content===void 0?i===`svg`?await(0,_.readFile)(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await B(e);return Promise.all(n.map(t=>W(t,e)))}async function ye(e){let n=await ge(e),r=await _e(e),i=await B(e);if(!n&&!r&&i.length===0)return;let a=L(r??{},n??{}),o=(0,g.isSetString)(a.name)?a.name:(0,f.findFolderName)(e),s=(0,g.isSetString)(a.title)?a.title:(0,m.titleCase)(o),c=t.r.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await ve(e,c.data.files)}}function G(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:(0,m.titleCase)(t),files:[n]};return}let i=[...r.files??[]],a=i.findIndex(e=>e.path===n.path&&e.theme===n.theme);a>=0?i[a]=n:i.push(n),e[t]={...r,files:i}}async function be(e,t,n){let r=await B(e);for(let i of r){let r=(0,f.findFileName)(i,{withExtension:!1});r&&G(n,r,await W(i,e,t))}}async function K(e){let t={},n=me(e.options.iconsPath);for(let r of n){let n=pe(e.cwd,r);if(!(!(0,s.existsSync)(n)||!(0,c.isDirectory)(n)))try{let e=await(0,_.readdir)(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=(0,p.joinPaths)(n,r.name);if(r.isDirectory()){if(he(r.name)){await be(e,r.name,t);continue}let n=await ye(e);if(n){let e=t[n.name];t[n.name]=e?L(n,e):n}continue}if(r.isFile()&&z(r.name)){let e=(0,f.findFileName)(r.name,{withExtension:!1});if(!e)continue;G(t,e,await W(r.name,n))}}}catch{continue}}return t}function q(e,t){let n=e[t];return(0,g.isSetString)(n)?n:void 0}function J(e){let t={};(0,g.isSetString)(e.name)&&(t.name=e.name),(0,g.isSetString)(e.description)&&(t.description=e.description),(0,g.isSetString)(e.homepage)&&(t.homepage=e.homepage);let n=T(e.repository);n&&(t.repository=n),(0,g.isSetString)(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if((0,h.isSetObject)(r)){let t=r,n=q(t,`title`),a=q(t,`name`),o=q(t,`description`),s=q(t,`homepage`),c=q(t,`logo`),l=T(t.repository);a?i.name=a:(0,g.isSetString)(e.name)&&(i.name=e.name),n?i.title=n:(0,g.isSetString)(i.name)&&(i.title=(0,m.titleCase)(i.name)),o?i.description=o:(0,g.isSetString)(e.description)&&(i.description=e.description),s?i.homepage=s:w(e.homepage)?i.homepage=T(e.homepage):w(e.author)?i.homepage=T(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&w(e.maintainers[0])?i.homepage=T(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&w(e.contributors[0])?i.homepage=T(e.contributors[0]):w(e.bugs)&&(i.homepage=T(e.bugs)),c&&(i.logo=c),l?i.repository=l:w(e.repository)&&(i.repository=T(e.repository))}return(0,o.defu)(i,t)}function Y(e){let t={};return(0,g.isSetString)(e.name)&&(t.name=e.name),(0,g.isSetString)(e.title)&&(t.title=e.title),(0,g.isSetString)(e.description)&&(t.description=e.description),(0,g.isSetString)(e.repository)&&(t.repository=e.repository),(0,g.isSetString)(e.homepage)&&(t.homepage=e.homepage),(0,g.isSetString)(e.logo)&&(t.logo=e.logo),t}async function X(e){let t=(0,p.joinPaths)(e,`package.json`);if(!(0,s.existsSync)(t))return{};let n;try{n=await(0,l.readJsonFile)(t)}catch{return{}}return J(n)}async function Z(e,t){let n=await X(e),r=Y(t);return(0,o.defu)(r,n)}const Q=C.default.homedir();async function $(e,t){let n=t.configFile&&(0,S.existsSync)((0,b.replacePath)(t.configFile,e))?(0,b.replacePath)(t.configFile,e):t.configFile&&(0,S.existsSync)(t.configFile)?t.configFile:(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.ts`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.ts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.js`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.js`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.mts`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.mts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.mjs`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.mjs`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.cjs`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.cjs`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.cts`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.cts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.json`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.json`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.yaml`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.yaml`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.yml`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.yml`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.ts`))?(0,p.joinPaths)(e,`razorwind.config.ts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.js`))?(0,p.joinPaths)(e,`razorwind.config.js`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.mts`))?(0,p.joinPaths)(e,`razorwind.config.mts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.mjs`))?(0,p.joinPaths)(e,`razorwind.config.mjs`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.cjs`))?(0,p.joinPaths)(e,`razorwind.config.cjs`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.cts`))?(0,p.joinPaths)(e,`razorwind.config.cts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.json`))?(0,p.joinPaths)(e,`razorwind.config.json`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.yaml`))?(0,p.joinPaths)(e,`razorwind.config.yaml`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.yml`))?(0,p.joinPaths)(e,`razorwind.config.yml`):void 0,r=(0,ee.getEnvPaths)({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=(0,ne.createJiti)(e,i),s={};if(n){let r=await a.import(n,{default:!0});if(r){let i={};(0,te.isFunction)(r)?i=await Promise.resolve(r({cwd:e,mode:t.mode??`development`})):((0,h.isSetObject)(r)||Array.isArray(r))&&(i=r),((0,h.isSetObject)(i)||Array.isArray(i))&&(s={...i,configFile:n})}}let[c,l,u]=await Promise.all([(0,x.loadConfig)({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),(0,x.loadConfig)({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),(0,x.loadConfig)({cwd:Q,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),d=(0,o.defu)({cwd:e,envPaths:{...r,home:Q}},t,s,(0,h.isSetObject)(c?.config)?{...c.config}:{},(0,h.isSetObject)(l?.config)?{...l.config}:{},(0,h.isSetObject)(u?.config)?{...u.config}:{},{componentsPath:e,iconsPath:(0,p.joinPaths)(e,`assets/icons`),plugins:[]});if(Array.isArray(d.componentsPath)){let t=d.componentsPath.filter(g.isSetString).map(e=>(0,y.findFilePath)(e));d.componentsPath=t.length>0?t:e}else d.componentsPath=(0,g.isSetString)(d.componentsPath)?(0,y.findFilePath)(d.componentsPath):e;if(Array.isArray(d.iconsPath)){let t=d.iconsPath.filter(g.isSetString).map(e=>(0,y.findFilePath)(e));d.iconsPath=t.length>0?t:(0,p.joinPaths)(e,`assets/icons`)}else d.iconsPath=(0,g.isSetString)(d.iconsPath)?(0,y.findFilePath)(d.iconsPath):(0,p.joinPaths)(e,`assets/icons`);return Array.isArray(d.plugins)||(d.plugins=[]),d}function xe(e){return e}const Se=(0,i.defineGenerator)({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, and icons.`,version:re,tags:[`razorwind`,`dtcg`]},schema:(0,i.defineSchema)({schema:t.t}),input:async e=>{let t=(0,i.useExecution)();if(t.options=await $(t.cwd,e),t.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);let r=t.options.tokens;(!r||(0,a.isEmptyObject)(r))&&(r=await n.t(t));let s={...await Z(t.cwd,t.options),tokens:r??{},components:(0,o.defu)(t.options.components??{},await F(t)??{}),icons:(0,o.defu)(t.options.icons??{},await K(t)??{})};for(let e of t.options.plugins.filter(e=>e.extract))s=await e.extract(s,t.options);if(!s.tokens||(0,a.isEmptyObject)(s.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let e of t.options.plugins.filter(e=>e.validate))await e.validate(s,t.options);return s},generator:async e=>{let t=(0,i.useExecution)(),n={};for(let r of t.options.plugins.filter(e=>e.generate)){let i=await r.generate(e,t.options);n=(0,o.defu)(i,n)}return n}});exports.DEFAULT_TOKEN_PATH_CANDIDATES=n._,exports.RAZORWIND_INFER_PREPROCESSOR=n.a,exports.THEME_BASENAME_PATTERN=n.v,exports.TOKEN_DIRECTORY_GLOB=n.y,exports.TOKEN_FILE_EXTENSIONS=n.b,exports.TYPE_PATH_HINTS=n.S,exports.WINDIE_PARSERS=n.x,exports.razorwindParsers=n.x,exports.defineConfig=xe,exports.definePlugin=r.definePlugin,exports.generator=Se,exports.getExtractionHooks=n.o,exports.getRazorwindParserHooks=n.s,exports.getRazorwindPreprocessorHooks=n.c,exports.inferTypeFromPath=n.p,exports.inferValue=n.m,exports.loadComponents=F,exports.loadIcons=K,exports.loadSchemaMetaFromPackageJson=X,exports.loadTokens=n.t,exports.loadTokensOrThrow=n.n,exports.nestFlatTokens=n.h,exports.normalizeRepository=T,exports.normalizeTokenTree=n.g,exports.parseCssCustomProperties=n.f,exports.razorwindInferPreprocessor=n.l,exports.registerRazorwindHooks=n.u,exports.registerRazorwindParsers=n.d,exports.resolveConfig=$,exports.resolveSchemaMeta=Z,exports.resolveTokensSource=n.r,exports.schemaMetaFromConfig=Y,exports.schemaMetaFromPackageJson=J,exports.themeKeyFromPath=n.i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./schema-93daQRSN.cjs"),n=require("./tokens-DZOlhVxy.cjs"),r=require("./plugin.cjs");let i=require("@power-plant/core"),a=require("@stryke/type-checks/is-empty-object"),o=require("defu"),s=require("@stryke/fs/exists"),c=require("@stryke/fs/is-file"),l=require("@stryke/fs/json"),u=require("@stryke/fs/list-files"),d=require("@stryke/path/append"),f=require("@stryke/path/file-path-fns"),p=require("@stryke/path/join"),m=require("@stryke/string-format/title-case"),h=require("@stryke/type-checks/is-set-object"),g=require("@stryke/type-checks/is-set-string"),_=require("node:fs/promises"),v=require("node:path"),ee=require("@stryke/env/get-env-paths"),y=require("@stryke/path/find"),b=require("@stryke/path/replace"),te=require("@stryke/type-checks/is-function"),x=require("c12"),ne=require("jiti"),S=require("node:fs"),C=require("node:os");C=e.t(C,1);var re=`0.0.44`;function w(e){return!!((0,g.isSetString)(e)||(0,h.isSetObject)(e)&&`url`in e&&(0,g.isSetString)(e.url))}function T(e){if((0,g.isSetString)(e))return e;if((0,h.isSetObject)(e)&&`url`in e&&(0,g.isSetString)(e.url))return e.url}const E=t.o.partial(),D=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),O=(0,o.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function k(e,t){return(0,v.isAbsolute)(t)?t:(0,v.resolve)(e,t)}function ie(e){return Array.isArray(e)?e.filter(g.isSetString):(0,g.isSetString)(e)?[e]:[]}function A(e){let t=e.toLowerCase();if(D.has(t))return t}function ae(e){let t=(0,f.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&D.has(t))}function j(e){if(!e)return;let n=t.a.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){let e=t.a.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function M(e){if(!e)return;let n=t.s.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){if((0,g.isSetString)(n)){let e=(0,f.findFileName)(n,{withExtension:!1})||n,i=t.s.safeParse({name:e,path:n});i.success&&r.push(i.data);continue}let e=t.s.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function N(e){if(!(0,h.isSetObject)(e))return;let{files:t,usage:n,...r}=e,i=E.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function P(e){return(0,h.isSetObject)(e)&&`path`in e}async function oe(e){let t=(0,p.joinPaths)(e,`package.json`);if(!(0,s.existsSync)(t))return;let n;try{n=await(0,l.readJsonFile)(t)}catch{return}let r={};(0,g.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,g.isSetString)(n.description)&&(r.description=n.description),(0,g.isSetString)(n.version)&&(r.version=n.version),(0,g.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=T(n.repository);if(i&&(r.repository=i),(0,h.isSetObject)(n.dependencies)&&(r.dependencies=n.dependencies),(0,h.isSetObject)(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(g.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,c,u;P(a)?c=j(a):(0,h.isSetObject)(a)&&(o=N(a),`files`in a&&(c=j(a.files)),`usage`in a&&(u=M(a.usage)));let d=O(o??{},r);return c?.length&&(d.files=c),u?.length&&(d.usage=u),Object.keys(d).length>0?d:void 0}async function se(e){let t=(0,p.joinPaths)(e,`component.json`);if(!(0,s.existsSync)(t))return;let n;try{n=await(0,l.readJsonFile)(t)}catch{return}if(P(n)||Array.isArray(n)){let e=j(n);if(e)return{files:e}}if(!(0,h.isSetObject)(n))return;let r=N(n)??{},i=`files`in n?j(n.files):void 0,a=`usage`in n?M(n.usage):void 0;return i?.length&&(r.files=i),a?.length&&(r.usage=a),Object.keys(r).length>0?r:void 0}async function ce(e){try{return(await(0,_.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&ae(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function le(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,d.appendPath)(t.path,e),r=(0,f.findFileExtensionSafe)(t.path)??``,i=t.language??A(r),a=t.name||(0,f.findFileName)(t.path,{withExtension:!1})||t.path,o=t.content===void 0?(0,s.existsSync)(n)?await(0,_.readFile)(n,`utf8`):void 0:t.content;return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=(0,p.joinPaths)(e,`usage`);if(!(0,s.existsSync)(n)||!(0,c.isDirectory)(n))return;let r=await ce(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=(0,p.joinPaths)(n,e),r=A((0,f.findFileExtensionSafe)(e)??``),i=(0,f.findFileName)(e,{withExtension:!1})||e;return{name:i,title:(0,m.titleCase)(i),path:t,content:await(0,_.readFile)(t,`utf8`),...r?{language:r}:{}}}))}async function ue(e,t){let n=t??(await(0,u.listFiles)(e)).filter(e=>(0,f.findFileName)(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test((0,f.findFileExtensionSafe)(t))?`component`:`file`,path:t,content:await(0,_.readFile)((0,d.appendPath)(t,e),`utf8`)}:{type:/[tj]sx$/.test((0,f.findFileExtensionSafe)(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await(0,_.readFile)((0,d.appendPath)(t.path,e),`utf8`):void 0,path:(0,d.appendPath)(t.path,e)}))}async function de(e){let n=await oe(e),r=await se(e);if(!n&&!r)return;let i=O(r??{},n??{}),a=(0,g.isSetString)(i.name)?i.name:(0,f.findFolderName)(e),o=(0,g.isSetString)(i.title)?i.title:(0,m.titleCase)(a),s=t.o.safeParse({...i,name:a,title:o});if(!s.success)return;let c=await le(e,s.data.usage);return{...s.data,files:await ue(e,s.data.files),...c?.length?{usage:c}:{}}}async function F(e){let t={},n=ie(e.options.componentsPath);for(let r of n){let n=k(e.cwd,r);if(!(!(0,s.existsSync)(n)||!(0,c.isDirectory)(n)))try{let e=await(0,_.readdir)(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await de((0,p.joinPaths)(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const fe=t.r.partial(),I=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),L=(0,o.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function pe(e,t){return(0,v.isAbsolute)(t)?t:(0,v.resolve)(e,t)}function me(e){return Array.isArray(e)?e.filter(g.isSetString):(0,g.isSetString)(e)?[e]:[]}function R(e){let t=e.toLowerCase();if(I.has(t))return t}function z(e){let t=(0,f.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&I.has(t))}function he(e){return n.v.test(e)}async function B(e){try{return(await(0,_.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&z(e.name)).map(e=>e.name)}catch{return[]}}function V(e){if(!e)return;let n=t.n.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){let e=t.n.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function H(e){if(!(0,h.isSetObject)(e))return;let t=fe.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function U(e){return(0,h.isSetObject)(e)&&`path`in e}async function W(e,t,n){let r=(0,d.appendPath)(e,t),i=R((0,f.findFileExtensionSafe)(e)??``)??`file`,a=i===`svg`?await(0,_.readFile)(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function ge(e){let t=(0,p.joinPaths)(e,`package.json`);if(!(0,s.existsSync)(t))return;let n;try{n=await(0,l.readJsonFile)(t)}catch{return}let r={};(0,g.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,g.isSetString)(n.description)&&(r.description=n.description),(0,g.isSetString)(n.version)&&(r.version=n.version),(0,g.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=T(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(g.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,c;U(a)?c=V(a):(0,h.isSetObject)(a)&&(o=H(a),`files`in a&&(c=V(a.files)));let u=L(o??{},r);return c?.length&&(u.files=c),Object.keys(u).length>0?u:void 0}async function _e(e){let t=(0,p.joinPaths)(e,`icon.json`);if(!(0,s.existsSync)(t))return;let n;try{n=await(0,l.readJsonFile)(t)}catch{return}if(U(n)||Array.isArray(n)){let e=V(n);if(e)return{files:e}}return H(n)}async function ve(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,d.appendPath)(t.path,e),r=(0,f.findFileExtensionSafe)(t.path)??``,i=t.type??R(r)??`file`,a=t.content===void 0?i===`svg`?await(0,_.readFile)(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await B(e);return Promise.all(n.map(t=>W(t,e)))}async function ye(e){let n=await ge(e),r=await _e(e),i=await B(e);if(!n&&!r&&i.length===0)return;let a=L(r??{},n??{}),o=(0,g.isSetString)(a.name)?a.name:(0,f.findFolderName)(e),s=(0,g.isSetString)(a.title)?a.title:(0,m.titleCase)(o),c=t.r.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await ve(e,c.data.files)}}function G(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:(0,m.titleCase)(t),files:[n]};return}let i=[...r.files??[]],a=i.findIndex(e=>e.path===n.path&&e.theme===n.theme);a>=0?i[a]=n:i.push(n),e[t]={...r,files:i}}async function be(e,t,n){let r=await B(e);for(let i of r){let r=(0,f.findFileName)(i,{withExtension:!1});r&&G(n,r,await W(i,e,t))}}async function K(e){let t={},n=me(e.options.iconsPath);for(let r of n){let n=pe(e.cwd,r);if(!(!(0,s.existsSync)(n)||!(0,c.isDirectory)(n)))try{let e=await(0,_.readdir)(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=(0,p.joinPaths)(n,r.name);if(r.isDirectory()){if(he(r.name)){await be(e,r.name,t);continue}let n=await ye(e);if(n){let e=t[n.name];t[n.name]=e?L(n,e):n}continue}if(r.isFile()&&z(r.name)){let e=(0,f.findFileName)(r.name,{withExtension:!1});if(!e)continue;G(t,e,await W(r.name,n))}}}catch{continue}}return t}function q(e,t){let n=e[t];return(0,g.isSetString)(n)?n:void 0}function J(e){let t={};(0,g.isSetString)(e.name)&&(t.name=e.name),(0,g.isSetString)(e.description)&&(t.description=e.description),(0,g.isSetString)(e.homepage)&&(t.homepage=e.homepage);let n=T(e.repository);n&&(t.repository=n),(0,g.isSetString)(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if((0,h.isSetObject)(r)){let t=r,n=q(t,`title`),a=q(t,`name`),o=q(t,`description`),s=q(t,`homepage`),c=q(t,`logo`),l=T(t.repository);a?i.name=a:(0,g.isSetString)(e.name)&&(i.name=e.name),n?i.title=n:(0,g.isSetString)(i.name)&&(i.title=(0,m.titleCase)(i.name)),o?i.description=o:(0,g.isSetString)(e.description)&&(i.description=e.description),s?i.homepage=s:w(e.homepage)?i.homepage=T(e.homepage):w(e.author)?i.homepage=T(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&w(e.maintainers[0])?i.homepage=T(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&w(e.contributors[0])?i.homepage=T(e.contributors[0]):w(e.bugs)&&(i.homepage=T(e.bugs)),c&&(i.logo=c),l?i.repository=l:w(e.repository)&&(i.repository=T(e.repository))}return(0,o.defu)(i,t)}function Y(e){let t={};return(0,g.isSetString)(e.name)&&(t.name=e.name),(0,g.isSetString)(e.title)&&(t.title=e.title),(0,g.isSetString)(e.description)&&(t.description=e.description),(0,g.isSetString)(e.repository)&&(t.repository=e.repository),(0,g.isSetString)(e.homepage)&&(t.homepage=e.homepage),(0,g.isSetString)(e.logo)&&(t.logo=e.logo),t}async function X(e){let t=(0,p.joinPaths)(e,`package.json`);if(!(0,s.existsSync)(t))return{};let n;try{n=await(0,l.readJsonFile)(t)}catch{return{}}return J(n)}async function Z(e,t){let n=await X(e),r=Y(t);return(0,o.defu)(r,n)}const Q=C.default.homedir();async function $(e,t){let n=t.configFile&&(0,S.existsSync)((0,b.replacePath)(t.configFile,e))?(0,b.replacePath)(t.configFile,e):t.configFile&&(0,S.existsSync)(t.configFile)?t.configFile:(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.ts`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.ts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.js`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.js`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.mts`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.mts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.mjs`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.mjs`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.cjs`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.cjs`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.cts`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.cts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.json`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.json`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.yaml`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.yaml`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.yml`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.yml`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.ts`))?(0,p.joinPaths)(e,`razorwind.config.ts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.js`))?(0,p.joinPaths)(e,`razorwind.config.js`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.mts`))?(0,p.joinPaths)(e,`razorwind.config.mts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.mjs`))?(0,p.joinPaths)(e,`razorwind.config.mjs`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.cjs`))?(0,p.joinPaths)(e,`razorwind.config.cjs`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.cts`))?(0,p.joinPaths)(e,`razorwind.config.cts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.json`))?(0,p.joinPaths)(e,`razorwind.config.json`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.yaml`))?(0,p.joinPaths)(e,`razorwind.config.yaml`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.yml`))?(0,p.joinPaths)(e,`razorwind.config.yml`):void 0,r=(0,ee.getEnvPaths)({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=(0,ne.createJiti)(e,i),s={};if(n){let r=await a.import(n,{default:!0});if(r){let i={};(0,te.isFunction)(r)?i=await Promise.resolve(r({cwd:e,mode:t.mode??`development`})):((0,h.isSetObject)(r)||Array.isArray(r))&&(i=r),((0,h.isSetObject)(i)||Array.isArray(i))&&(s={...i,configFile:n})}}let[c,l,u]=await Promise.all([(0,x.loadConfig)({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),(0,x.loadConfig)({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),(0,x.loadConfig)({cwd:Q,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),d=(0,o.defu)({cwd:e,envPaths:{...r,home:Q}},t,s,(0,h.isSetObject)(c?.config)?{...c.config}:{},(0,h.isSetObject)(l?.config)?{...l.config}:{},(0,h.isSetObject)(u?.config)?{...u.config}:{},{componentsPath:e,iconsPath:(0,p.joinPaths)(e,`assets/icons`),plugins:[]});if(Array.isArray(d.componentsPath)){let t=d.componentsPath.filter(g.isSetString).map(e=>(0,y.findFilePath)(e));d.componentsPath=t.length>0?t:e}else d.componentsPath=(0,g.isSetString)(d.componentsPath)?(0,y.findFilePath)(d.componentsPath):e;if(Array.isArray(d.iconsPath)){let t=d.iconsPath.filter(g.isSetString).map(e=>(0,y.findFilePath)(e));d.iconsPath=t.length>0?t:(0,p.joinPaths)(e,`assets/icons`)}else d.iconsPath=(0,g.isSetString)(d.iconsPath)?(0,y.findFilePath)(d.iconsPath):(0,p.joinPaths)(e,`assets/icons`);return Array.isArray(d.plugins)||(d.plugins=[]),d}function xe(e){return e}const Se=(0,i.defineGenerator)({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, and icons.`,version:re,tags:[`razorwind`,`dtcg`]},schema:(0,i.defineSchema)({schema:t.t}),input:async e=>{let t=(0,i.useExecution)();if(t.options=await $(t.cwd,e),t.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);let r=t.options.tokens;(!r||(0,a.isEmptyObject)(r))&&(r=await n.t(t));let s={...await Z(t.cwd,t.options),tokens:r??{},components:(0,o.defu)(t.options.components??{},await F(t)??{}),icons:(0,o.defu)(t.options.icons??{},await K(t)??{})};for(let e of t.options.plugins.filter(e=>e.extract))s=await e.extract(s,t.options);if(!s.tokens||(0,a.isEmptyObject)(s.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let e of t.options.plugins.filter(e=>e.validate))await e.validate(s,t.options);return s},generator:async e=>{let t=(0,i.useExecution)(),n={};for(let r of t.options.plugins.filter(e=>e.generate)){let i=await r.generate(e,t.options);n=(0,o.defu)(i,n)}return n}});exports.DEFAULT_TOKEN_PATH_CANDIDATES=n._,exports.RAZORWIND_INFER_PREPROCESSOR=n.a,exports.THEME_BASENAME_PATTERN=n.v,exports.TOKEN_DIRECTORY_GLOB=n.y,exports.TOKEN_FILE_EXTENSIONS=n.b,exports.TYPE_PATH_HINTS=n.S,exports.WINDIE_PARSERS=n.x,exports.razorwindParsers=n.x,exports.defineConfig=xe,exports.definePlugin=r.definePlugin,exports.generator=Se,exports.getExtractionHooks=n.o,exports.getRazorwindParserHooks=n.s,exports.getRazorwindPreprocessorHooks=n.c,exports.inferTypeFromPath=n.p,exports.inferValue=n.m,exports.loadComponents=F,exports.loadIcons=K,exports.loadSchemaMetaFromPackageJson=X,exports.loadTokens=n.t,exports.loadTokensOrThrow=n.n,exports.nestFlatTokens=n.h,exports.normalizeRepository=T,exports.normalizeTokenTree=n.g,exports.parseCssCustomProperties=n.f,exports.razorwindInferPreprocessor=n.l,exports.registerRazorwindHooks=n.u,exports.registerRazorwindParsers=n.d,exports.resolveConfig=$,exports.resolveSchemaMeta=Z,exports.resolveTokensSource=n.r,exports.schemaMetaFromConfig=Y,exports.schemaMetaFromPackageJson=J,exports.themeKeyFromPath=n.i;
package/dist/index.d.cts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { a as Icons, f as Components, t as Schema } from "./schema-CsbyELyn.cjs";
2
2
  import "./index-BjSOzDOH.cjs";
3
- import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-CVFAzcDD.cjs";
4
- import { t as definePlugin } from "./plugin-DNuqVQH8.cjs";
5
- import { A as TYPE_PATH_HINTS, C as parseCssCustomProperties, D as TOKEN_DIRECTORY_GLOB, E as THEME_BASENAME_PATTERN, O as TOKEN_FILE_EXTENSIONS, S as normalizeTokenTree, T as RazorwindParserName, _ as themeKeyFromPath, a as getRazorwindParserHooks, b as inferValue, c as registerRazorwindHooks, d as LoadedTokens, f as loadTokens, g as resolveTokensSource, h as ResolvedTokensSource, i as getExtractionHooks, k as TOKEN_PARSER_NAMES, l as registerRazorwindParsers, m as ResolveTokensPathOptions, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as loadTokensOrThrow, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as LoadTokensOptions, v as InferredTokenType, w as DEFAULT_TOKEN_PATH_CANDIDATES, x as nestFlatTokens, y as inferTypeFromPath } from "./index-DYuvYODg.cjs";
3
+ import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-WQlRP5z1.cjs";
4
+ import { t as definePlugin } from "./plugin-DwTqehw6.cjs";
5
+ import { A as TYPE_PATH_HINTS, C as parseCssCustomProperties, D as TOKEN_DIRECTORY_GLOB, E as THEME_BASENAME_PATTERN, O as TOKEN_FILE_EXTENSIONS, S as normalizeTokenTree, T as RazorwindParserName, _ as themeKeyFromPath, a as getRazorwindParserHooks, b as inferValue, c as registerRazorwindHooks, d as LoadedTokens, f as loadTokens, g as resolveTokensSource, h as ResolvedTokensSource, i as getExtractionHooks, k as TOKEN_PARSER_NAMES, l as registerRazorwindParsers, m as ResolveTokensPathOptions, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as loadTokensOrThrow, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as LoadTokensOptions, v as InferredTokenType, w as DEFAULT_TOKEN_PATH_CANDIDATES, x as nestFlatTokens, y as inferTypeFromPath } from "./index-xilGn3pb.cjs";
6
6
  import StyleDictionary from "style-dictionary";
7
7
  import { ExecutionContext, GeneratorConfig } from "@power-plant/core";
8
8
  //#region src/lib/resolve-config.d.ts
package/dist/index.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { a as Icons, f as Components, t as Schema } from "./schema-CsbyELyn.mjs";
2
2
  import "./index-DM8vit-J.mjs";
3
- import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-D-Sj9dwx.mjs";
4
- import { t as definePlugin } from "./plugin-BTLvkhiO.mjs";
5
- import { A as TYPE_PATH_HINTS, C as parseCssCustomProperties, D as TOKEN_DIRECTORY_GLOB, E as THEME_BASENAME_PATTERN, O as TOKEN_FILE_EXTENSIONS, S as normalizeTokenTree, T as RazorwindParserName, _ as themeKeyFromPath, a as getRazorwindParserHooks, b as inferValue, c as registerRazorwindHooks, d as LoadedTokens, f as loadTokens, g as resolveTokensSource, h as ResolvedTokensSource, i as getExtractionHooks, k as TOKEN_PARSER_NAMES, l as registerRazorwindParsers, m as ResolveTokensPathOptions, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as loadTokensOrThrow, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as LoadTokensOptions, v as InferredTokenType, w as DEFAULT_TOKEN_PATH_CANDIDATES, x as nestFlatTokens, y as inferTypeFromPath } from "./index-CncKAvto.mjs";
3
+ import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-BHFlKT4O.mjs";
4
+ import { t as definePlugin } from "./plugin-D1VhJmEE.mjs";
5
+ import { A as TYPE_PATH_HINTS, C as parseCssCustomProperties, D as TOKEN_DIRECTORY_GLOB, E as THEME_BASENAME_PATTERN, O as TOKEN_FILE_EXTENSIONS, S as normalizeTokenTree, T as RazorwindParserName, _ as themeKeyFromPath, a as getRazorwindParserHooks, b as inferValue, c as registerRazorwindHooks, d as LoadedTokens, f as loadTokens, g as resolveTokensSource, h as ResolvedTokensSource, i as getExtractionHooks, k as TOKEN_PARSER_NAMES, l as registerRazorwindParsers, m as ResolveTokensPathOptions, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as loadTokensOrThrow, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as LoadTokensOptions, v as InferredTokenType, w as DEFAULT_TOKEN_PATH_CANDIDATES, x as nestFlatTokens, y as inferTypeFromPath } from "./index-DrVESYnz.mjs";
6
6
  import { ExecutionContext, GeneratorConfig } from "@power-plant/core";
7
7
  import StyleDictionary from "style-dictionary";
8
8
  //#region src/lib/resolve-config.d.ts
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{a as e,c as t,i as n,l as r,r as i,s as a}from"./schema-buR6a6IP.mjs";import{S as o,_ as s,a as c,b as l,c as u,d as ee,f as te,g as ne,h as re,i as ie,l as ae,m as oe,n as se,o as ce,p as le,r as ue,s as de,t as d,u as fe,v as pe,x as f,y as me}from"./tokens-N1_aQFQ9.mjs";import{definePlugin as he}from"./plugin.mjs";import{defineGenerator as ge,defineSchema as _e,useExecution as p}from"@power-plant/core";import{isEmptyObject as m}from"@stryke/type-checks/is-empty-object";import{createDefu as ve,defu as h}from"defu";import{existsSync as g}from"@stryke/fs/exists";import{isDirectory as _}from"@stryke/fs/is-file";import{readJsonFile as v}from"@stryke/fs/json";import{listFiles as ye}from"@stryke/fs/list-files";import{appendPath as y}from"@stryke/path/append";import{findFileExtensionSafe as b,findFileName as x,findFolderName as be}from"@stryke/path/file-path-fns";import{joinPaths as S}from"@stryke/path/join";import{titleCase as C}from"@stryke/string-format/title-case";import{isSetObject as w}from"@stryke/type-checks/is-set-object";import{isSetString as T}from"@stryke/type-checks/is-set-string";import{readFile as E,readdir as D}from"node:fs/promises";import{isAbsolute as O,resolve as k}from"node:path";import{getEnvPaths as xe}from"@stryke/env/get-env-paths";import{findFilePath as A}from"@stryke/path/find";import{replacePath as j}from"@stryke/path/replace";import{isFunction as Se}from"@stryke/type-checks/is-function";import{loadConfig as M}from"c12";import{createJiti as Ce}from"jiti";import{existsSync as N}from"node:fs";import we from"node:os";var Te=`0.0.42`;function P(e){return!!(T(e)||w(e)&&`url`in e&&T(e.url))}function F(e){if(T(e))return e;if(w(e)&&`url`in e&&T(e.url))return e.url}const Ee=t.partial(),I=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),L=ve((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function De(e,t){return O(t)?t:k(e,t)}function Oe(e){return Array.isArray(e)?e.filter(T):T(e)?[e]:[]}function R(e){let t=e.toLowerCase();if(I.has(t))return t}function ke(e){let t=b(e)?.toLowerCase();return!!(t&&I.has(t))}function z(e){if(!e)return;let t=a.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){let e=a.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function B(e){if(!e)return;let t=r.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){if(T(t)){let e=x(t,{withExtension:!1})||t,i=r.safeParse({name:e,path:t});i.success&&n.push(i.data);continue}let e=r.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function V(e){if(!w(e))return;let{files:t,usage:n,...r}=e,i=Ee.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function H(e){return w(e)&&`path`in e}async function Ae(e){let t=S(e,`package.json`);if(!g(t))return;let n;try{n=await v(t)}catch{return}let r={};T(n.name)&&(r.name=n.name,r.title=n.name),T(n.description)&&(r.description=n.description),T(n.version)&&(r.version=n.version),T(n.homepage)&&(r.homepage=n.homepage);let i=F(n.repository);if(i&&(r.repository=i),w(n.dependencies)&&(r.dependencies=n.dependencies),w(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(T);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,c;H(a)?s=z(a):w(a)&&(o=V(a),`files`in a&&(s=z(a.files)),`usage`in a&&(c=B(a.usage)));let l=L(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function je(e){let t=S(e,`component.json`);if(!g(t))return;let n;try{n=await v(t)}catch{return}if(H(n)||Array.isArray(n)){let e=z(n);if(e)return{files:e}}if(!w(n))return;let r=V(n)??{},i=`files`in n?z(n.files):void 0,a=`usage`in n?B(n.usage):void 0;return i?.length&&(r.files=i),a?.length&&(r.usage=a),Object.keys(r).length>0?r:void 0}async function Me(e){try{return(await D(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&ke(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function Ne(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=y(t.path,e),r=b(t.path)??``,i=t.language??R(r),a=t.name||x(t.path,{withExtension:!1})||t.path,o=t.content===void 0?g(n)?await E(n,`utf8`):void 0:t.content;return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=S(e,`usage`);if(!g(n)||!_(n))return;let r=await Me(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=S(n,e),r=R(b(e)??``),i=x(e,{withExtension:!1})||e;return{name:i,title:C(i),path:t,content:await E(t,`utf8`),...r?{language:r}:{}}}))}async function Pe(e,t){let n=t??(await ye(e)).filter(e=>x(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test(b(t))?`component`:`file`,path:t,content:await E(y(t,e),`utf8`)}:{type:/[tj]sx$/.test(b(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await E(y(t.path,e),`utf8`):void 0,path:y(t.path,e)}))}async function Fe(e){let n=await Ae(e),r=await je(e);if(!n&&!r)return;let i=L(r??{},n??{}),a=T(i.name)?i.name:be(e),o=T(i.title)?i.title:C(a),s=t.safeParse({...i,name:a,title:o});if(!s.success)return;let c=await Ne(e,s.data.usage);return{...s.data,files:await Pe(e,s.data.files),...c?.length?{usage:c}:{}}}async function U(e){let t={},n=Oe(e.options.componentsPath);for(let r of n){let n=De(e.cwd,r);if(!(!g(n)||!_(n)))try{let e=await D(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await Fe(S(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const Ie=e.partial(),W=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),G=ve((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function Le(e,t){return O(t)?t:k(e,t)}function Re(e){return Array.isArray(e)?e.filter(T):T(e)?[e]:[]}function K(e){let t=e.toLowerCase();if(W.has(t))return t}function q(e){let t=b(e)?.toLowerCase();return!!(t&&W.has(t))}function ze(e){return pe.test(e)}async function J(e){try{return(await D(e,{withFileTypes:!0})).filter(e=>e.isFile()&&q(e.name)).map(e=>e.name)}catch{return[]}}function Y(e){if(!e)return;let t=n.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){let e=n.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function X(e){if(!w(e))return;let t=Ie.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function Z(e){return w(e)&&`path`in e}async function Q(e,t,n){let r=y(e,t),i=K(b(e)??``)??`file`,a=i===`svg`?await E(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function Be(e){let t=S(e,`package.json`);if(!g(t))return;let n;try{n=await v(t)}catch{return}let r={};T(n.name)&&(r.name=n.name,r.title=n.name),T(n.description)&&(r.description=n.description),T(n.version)&&(r.version=n.version),T(n.homepage)&&(r.homepage=n.homepage);let i=F(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(T);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;Z(a)?s=Y(a):w(a)&&(o=X(a),`files`in a&&(s=Y(a.files)));let c=G(o??{},r);return s?.length&&(c.files=s),Object.keys(c).length>0?c:void 0}async function Ve(e){let t=S(e,`icon.json`);if(!g(t))return;let n;try{n=await v(t)}catch{return}if(Z(n)||Array.isArray(n)){let e=Y(n);if(e)return{files:e}}return X(n)}async function He(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=y(t.path,e),r=b(t.path)??``,i=t.type??K(r)??`file`,a=t.content===void 0?i===`svg`?await E(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await J(e);return Promise.all(n.map(t=>Q(t,e)))}async function Ue(t){let n=await Be(t),r=await Ve(t),i=await J(t);if(!n&&!r&&i.length===0)return;let a=G(r??{},n??{}),o=T(a.name)?a.name:be(t),s=T(a.title)?a.title:C(o),c=e.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await He(t,c.data.files)}}function We(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:C(t),files:[n]};return}let i=[...r.files??[]],a=i.findIndex(e=>e.path===n.path&&e.theme===n.theme);a>=0?i[a]=n:i.push(n),e[t]={...r,files:i}}async function Ge(e,t,n){let r=await J(e);for(let i of r){let r=x(i,{withExtension:!1});r&&We(n,r,await Q(i,e,t))}}async function Ke(e){let t={},n=Re(e.options.iconsPath);for(let r of n){let n=Le(e.cwd,r);if(!(!g(n)||!_(n)))try{let e=await D(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=S(n,r.name);if(r.isDirectory()){if(ze(r.name)){await Ge(e,r.name,t);continue}let n=await Ue(e);if(n){let e=t[n.name];t[n.name]=e?G(n,e):n}continue}if(r.isFile()&&q(r.name)){let e=x(r.name,{withExtension:!1});if(!e)continue;We(t,e,await Q(r.name,n))}}}catch{continue}}return t}function $(e,t){let n=e[t];return T(n)?n:void 0}function qe(e){let t={};T(e.name)&&(t.name=e.name),T(e.description)&&(t.description=e.description),T(e.homepage)&&(t.homepage=e.homepage);let n=F(e.repository);n&&(t.repository=n),T(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if(w(r)){let t=r,n=$(t,`title`),a=$(t,`name`),o=$(t,`description`),s=$(t,`homepage`),c=$(t,`logo`),l=F(t.repository);a?i.name=a:T(e.name)&&(i.name=e.name),n?i.title=n:T(i.name)&&(i.title=C(i.name)),o?i.description=o:T(e.description)&&(i.description=e.description),s?i.homepage=s:P(e.homepage)?i.homepage=F(e.homepage):P(e.author)?i.homepage=F(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&P(e.maintainers[0])?i.homepage=F(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&P(e.contributors[0])?i.homepage=F(e.contributors[0]):P(e.bugs)&&(i.homepage=F(e.bugs)),c&&(i.logo=c),l?i.repository=l:P(e.repository)&&(i.repository=F(e.repository))}return h(i,t)}function Je(e){let t={};return T(e.name)&&(t.name=e.name),T(e.title)&&(t.title=e.title),T(e.description)&&(t.description=e.description),T(e.repository)&&(t.repository=e.repository),T(e.homepage)&&(t.homepage=e.homepage),T(e.logo)&&(t.logo=e.logo),t}async function Ye(e){let t=S(e,`package.json`);if(!g(t))return{};let n;try{n=await v(t)}catch{return{}}return qe(n)}async function Xe(e,t){let n=await Ye(e),r=Je(t);return h(r,n)}const Ze=we.homedir();async function Qe(e,t){let n=t.configFile&&N(j(t.configFile,e))?j(t.configFile,e):t.configFile&&N(t.configFile)?t.configFile:N(S(e,`razorwind.${t.mode}.ts`))?S(e,`razorwind.${t.mode}.ts`):N(S(e,`razorwind.${t.mode}.js`))?S(e,`razorwind.${t.mode}.js`):N(S(e,`razorwind.${t.mode}.mts`))?S(e,`razorwind.${t.mode}.mts`):N(S(e,`razorwind.${t.mode}.mjs`))?S(e,`razorwind.${t.mode}.mjs`):N(S(e,`razorwind.${t.mode}.cjs`))?S(e,`razorwind.${t.mode}.cjs`):N(S(e,`razorwind.${t.mode}.cts`))?S(e,`razorwind.${t.mode}.cts`):N(S(e,`razorwind.${t.mode}.json`))?S(e,`razorwind.${t.mode}.json`):N(S(e,`razorwind.${t.mode}.yaml`))?S(e,`razorwind.${t.mode}.yaml`):N(S(e,`razorwind.${t.mode}.yml`))?S(e,`razorwind.${t.mode}.yml`):N(S(e,`razorwind.config.ts`))?S(e,`razorwind.config.ts`):N(S(e,`razorwind.config.js`))?S(e,`razorwind.config.js`):N(S(e,`razorwind.config.mts`))?S(e,`razorwind.config.mts`):N(S(e,`razorwind.config.mjs`))?S(e,`razorwind.config.mjs`):N(S(e,`razorwind.config.cjs`))?S(e,`razorwind.config.cjs`):N(S(e,`razorwind.config.cts`))?S(e,`razorwind.config.cts`):N(S(e,`razorwind.config.json`))?S(e,`razorwind.config.json`):N(S(e,`razorwind.config.yaml`))?S(e,`razorwind.config.yaml`):N(S(e,`razorwind.config.yml`))?S(e,`razorwind.config.yml`):void 0,r=xe({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=Ce(e,i),o={};if(n){let r=await a.import(n,{default:!0});if(r){let i={};Se(r)?i=await Promise.resolve(r({cwd:e,mode:t.mode??`development`})):(w(r)||Array.isArray(r))&&(i=r),(w(i)||Array.isArray(i))&&(o={...i,configFile:n})}}let[s,c,l]=await Promise.all([M({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),M({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),M({cwd:Ze,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),u=h({cwd:e,envPaths:{...r,home:Ze}},t,o,w(s?.config)?{...s.config}:{},w(c?.config)?{...c.config}:{},w(l?.config)?{...l.config}:{},{componentsPath:e,iconsPath:S(e,`assets/icons`),plugins:[]});if(Array.isArray(u.componentsPath)){let t=u.componentsPath.filter(T).map(e=>A(e));u.componentsPath=t.length>0?t:e}else u.componentsPath=T(u.componentsPath)?A(u.componentsPath):e;if(Array.isArray(u.iconsPath)){let t=u.iconsPath.filter(T).map(e=>A(e));u.iconsPath=t.length>0?t:S(e,`assets/icons`)}else u.iconsPath=T(u.iconsPath)?A(u.iconsPath):S(e,`assets/icons`);return Array.isArray(u.plugins)||(u.plugins=[]),u}function $e(e){return e}const et=ge({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, and icons.`,version:Te,tags:[`razorwind`,`dtcg`]},schema:_e({schema:i}),input:async e=>{let t=p();if(t.options=await Qe(t.cwd,e),t.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);let n=t.options.tokens;(!n||m(n))&&(n=await d(t));let r={...await Xe(t.cwd,t.options),tokens:n??{},components:h(t.options.components??{},await U(t)??{}),icons:h(t.options.icons??{},await Ke(t)??{})};for(let e of t.options.plugins.filter(e=>e.extract))r=await e.extract(r,t.options);if(!r.tokens||m(r.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let e of t.options.plugins.filter(e=>e.validate))await e.validate(r,t.options);return r},generator:async e=>{let t=p(),n={};for(let r of t.options.plugins.filter(e=>e.generate)){let i=await r.generate(e,t.options);n=h(i,n)}return n}});export{s as DEFAULT_TOKEN_PATH_CANDIDATES,c as RAZORWIND_INFER_PREPROCESSOR,pe as THEME_BASENAME_PATTERN,me as TOKEN_DIRECTORY_GLOB,l as TOKEN_FILE_EXTENSIONS,o as TYPE_PATH_HINTS,f as WINDIE_PARSERS,f as razorwindParsers,$e as defineConfig,he as definePlugin,et as generator,ce as getExtractionHooks,de as getRazorwindParserHooks,u as getRazorwindPreprocessorHooks,le as inferTypeFromPath,oe as inferValue,U as loadComponents,Ke as loadIcons,Ye as loadSchemaMetaFromPackageJson,d as loadTokens,se as loadTokensOrThrow,re as nestFlatTokens,F as normalizeRepository,ne as normalizeTokenTree,te as parseCssCustomProperties,ae as razorwindInferPreprocessor,fe as registerRazorwindHooks,ee as registerRazorwindParsers,Qe as resolveConfig,Xe as resolveSchemaMeta,ue as resolveTokensSource,Je as schemaMetaFromConfig,qe as schemaMetaFromPackageJson,ie as themeKeyFromPath};
1
+ import{a as e,c as t,i as n,l as r,r as i,s as a}from"./schema-buR6a6IP.mjs";import{S as o,_ as s,a as c,b as l,c as u,d as ee,f as te,g as ne,h as re,i as ie,l as ae,m as oe,n as se,o as ce,p as le,r as ue,s as de,t as d,u as fe,v as pe,x as f,y as me}from"./tokens-B1I6HQim.mjs";import{definePlugin as he}from"./plugin.mjs";import{defineGenerator as ge,defineSchema as _e,useExecution as p}from"@power-plant/core";import{isEmptyObject as m}from"@stryke/type-checks/is-empty-object";import{createDefu as ve,defu as h}from"defu";import{existsSync as g}from"@stryke/fs/exists";import{isDirectory as _}from"@stryke/fs/is-file";import{readJsonFile as v}from"@stryke/fs/json";import{listFiles as ye}from"@stryke/fs/list-files";import{appendPath as y}from"@stryke/path/append";import{findFileExtensionSafe as b,findFileName as x,findFolderName as be}from"@stryke/path/file-path-fns";import{joinPaths as S}from"@stryke/path/join";import{titleCase as C}from"@stryke/string-format/title-case";import{isSetObject as w}from"@stryke/type-checks/is-set-object";import{isSetString as T}from"@stryke/type-checks/is-set-string";import{readFile as E,readdir as D}from"node:fs/promises";import{isAbsolute as O,resolve as k}from"node:path";import{getEnvPaths as xe}from"@stryke/env/get-env-paths";import{findFilePath as A}from"@stryke/path/find";import{replacePath as j}from"@stryke/path/replace";import{isFunction as Se}from"@stryke/type-checks/is-function";import{loadConfig as M}from"c12";import{createJiti as Ce}from"jiti";import{existsSync as N}from"node:fs";import we from"node:os";var Te=`0.0.44`;function P(e){return!!(T(e)||w(e)&&`url`in e&&T(e.url))}function F(e){if(T(e))return e;if(w(e)&&`url`in e&&T(e.url))return e.url}const Ee=t.partial(),I=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),L=ve((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function De(e,t){return O(t)?t:k(e,t)}function Oe(e){return Array.isArray(e)?e.filter(T):T(e)?[e]:[]}function R(e){let t=e.toLowerCase();if(I.has(t))return t}function ke(e){let t=b(e)?.toLowerCase();return!!(t&&I.has(t))}function z(e){if(!e)return;let t=a.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){let e=a.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function B(e){if(!e)return;let t=r.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){if(T(t)){let e=x(t,{withExtension:!1})||t,i=r.safeParse({name:e,path:t});i.success&&n.push(i.data);continue}let e=r.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function V(e){if(!w(e))return;let{files:t,usage:n,...r}=e,i=Ee.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function H(e){return w(e)&&`path`in e}async function Ae(e){let t=S(e,`package.json`);if(!g(t))return;let n;try{n=await v(t)}catch{return}let r={};T(n.name)&&(r.name=n.name,r.title=n.name),T(n.description)&&(r.description=n.description),T(n.version)&&(r.version=n.version),T(n.homepage)&&(r.homepage=n.homepage);let i=F(n.repository);if(i&&(r.repository=i),w(n.dependencies)&&(r.dependencies=n.dependencies),w(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(T);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,c;H(a)?s=z(a):w(a)&&(o=V(a),`files`in a&&(s=z(a.files)),`usage`in a&&(c=B(a.usage)));let l=L(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function je(e){let t=S(e,`component.json`);if(!g(t))return;let n;try{n=await v(t)}catch{return}if(H(n)||Array.isArray(n)){let e=z(n);if(e)return{files:e}}if(!w(n))return;let r=V(n)??{},i=`files`in n?z(n.files):void 0,a=`usage`in n?B(n.usage):void 0;return i?.length&&(r.files=i),a?.length&&(r.usage=a),Object.keys(r).length>0?r:void 0}async function Me(e){try{return(await D(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&ke(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function Ne(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=y(t.path,e),r=b(t.path)??``,i=t.language??R(r),a=t.name||x(t.path,{withExtension:!1})||t.path,o=t.content===void 0?g(n)?await E(n,`utf8`):void 0:t.content;return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=S(e,`usage`);if(!g(n)||!_(n))return;let r=await Me(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=S(n,e),r=R(b(e)??``),i=x(e,{withExtension:!1})||e;return{name:i,title:C(i),path:t,content:await E(t,`utf8`),...r?{language:r}:{}}}))}async function Pe(e,t){let n=t??(await ye(e)).filter(e=>x(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test(b(t))?`component`:`file`,path:t,content:await E(y(t,e),`utf8`)}:{type:/[tj]sx$/.test(b(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await E(y(t.path,e),`utf8`):void 0,path:y(t.path,e)}))}async function Fe(e){let n=await Ae(e),r=await je(e);if(!n&&!r)return;let i=L(r??{},n??{}),a=T(i.name)?i.name:be(e),o=T(i.title)?i.title:C(a),s=t.safeParse({...i,name:a,title:o});if(!s.success)return;let c=await Ne(e,s.data.usage);return{...s.data,files:await Pe(e,s.data.files),...c?.length?{usage:c}:{}}}async function U(e){let t={},n=Oe(e.options.componentsPath);for(let r of n){let n=De(e.cwd,r);if(!(!g(n)||!_(n)))try{let e=await D(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await Fe(S(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const Ie=e.partial(),W=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),G=ve((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function Le(e,t){return O(t)?t:k(e,t)}function Re(e){return Array.isArray(e)?e.filter(T):T(e)?[e]:[]}function K(e){let t=e.toLowerCase();if(W.has(t))return t}function q(e){let t=b(e)?.toLowerCase();return!!(t&&W.has(t))}function ze(e){return pe.test(e)}async function J(e){try{return(await D(e,{withFileTypes:!0})).filter(e=>e.isFile()&&q(e.name)).map(e=>e.name)}catch{return[]}}function Y(e){if(!e)return;let t=n.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){let e=n.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function X(e){if(!w(e))return;let t=Ie.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function Z(e){return w(e)&&`path`in e}async function Q(e,t,n){let r=y(e,t),i=K(b(e)??``)??`file`,a=i===`svg`?await E(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function Be(e){let t=S(e,`package.json`);if(!g(t))return;let n;try{n=await v(t)}catch{return}let r={};T(n.name)&&(r.name=n.name,r.title=n.name),T(n.description)&&(r.description=n.description),T(n.version)&&(r.version=n.version),T(n.homepage)&&(r.homepage=n.homepage);let i=F(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(T);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;Z(a)?s=Y(a):w(a)&&(o=X(a),`files`in a&&(s=Y(a.files)));let c=G(o??{},r);return s?.length&&(c.files=s),Object.keys(c).length>0?c:void 0}async function Ve(e){let t=S(e,`icon.json`);if(!g(t))return;let n;try{n=await v(t)}catch{return}if(Z(n)||Array.isArray(n)){let e=Y(n);if(e)return{files:e}}return X(n)}async function He(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=y(t.path,e),r=b(t.path)??``,i=t.type??K(r)??`file`,a=t.content===void 0?i===`svg`?await E(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await J(e);return Promise.all(n.map(t=>Q(t,e)))}async function Ue(t){let n=await Be(t),r=await Ve(t),i=await J(t);if(!n&&!r&&i.length===0)return;let a=G(r??{},n??{}),o=T(a.name)?a.name:be(t),s=T(a.title)?a.title:C(o),c=e.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await He(t,c.data.files)}}function We(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:C(t),files:[n]};return}let i=[...r.files??[]],a=i.findIndex(e=>e.path===n.path&&e.theme===n.theme);a>=0?i[a]=n:i.push(n),e[t]={...r,files:i}}async function Ge(e,t,n){let r=await J(e);for(let i of r){let r=x(i,{withExtension:!1});r&&We(n,r,await Q(i,e,t))}}async function Ke(e){let t={},n=Re(e.options.iconsPath);for(let r of n){let n=Le(e.cwd,r);if(!(!g(n)||!_(n)))try{let e=await D(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=S(n,r.name);if(r.isDirectory()){if(ze(r.name)){await Ge(e,r.name,t);continue}let n=await Ue(e);if(n){let e=t[n.name];t[n.name]=e?G(n,e):n}continue}if(r.isFile()&&q(r.name)){let e=x(r.name,{withExtension:!1});if(!e)continue;We(t,e,await Q(r.name,n))}}}catch{continue}}return t}function $(e,t){let n=e[t];return T(n)?n:void 0}function qe(e){let t={};T(e.name)&&(t.name=e.name),T(e.description)&&(t.description=e.description),T(e.homepage)&&(t.homepage=e.homepage);let n=F(e.repository);n&&(t.repository=n),T(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if(w(r)){let t=r,n=$(t,`title`),a=$(t,`name`),o=$(t,`description`),s=$(t,`homepage`),c=$(t,`logo`),l=F(t.repository);a?i.name=a:T(e.name)&&(i.name=e.name),n?i.title=n:T(i.name)&&(i.title=C(i.name)),o?i.description=o:T(e.description)&&(i.description=e.description),s?i.homepage=s:P(e.homepage)?i.homepage=F(e.homepage):P(e.author)?i.homepage=F(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&P(e.maintainers[0])?i.homepage=F(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&P(e.contributors[0])?i.homepage=F(e.contributors[0]):P(e.bugs)&&(i.homepage=F(e.bugs)),c&&(i.logo=c),l?i.repository=l:P(e.repository)&&(i.repository=F(e.repository))}return h(i,t)}function Je(e){let t={};return T(e.name)&&(t.name=e.name),T(e.title)&&(t.title=e.title),T(e.description)&&(t.description=e.description),T(e.repository)&&(t.repository=e.repository),T(e.homepage)&&(t.homepage=e.homepage),T(e.logo)&&(t.logo=e.logo),t}async function Ye(e){let t=S(e,`package.json`);if(!g(t))return{};let n;try{n=await v(t)}catch{return{}}return qe(n)}async function Xe(e,t){let n=await Ye(e),r=Je(t);return h(r,n)}const Ze=we.homedir();async function Qe(e,t){let n=t.configFile&&N(j(t.configFile,e))?j(t.configFile,e):t.configFile&&N(t.configFile)?t.configFile:N(S(e,`razorwind.${t.mode}.ts`))?S(e,`razorwind.${t.mode}.ts`):N(S(e,`razorwind.${t.mode}.js`))?S(e,`razorwind.${t.mode}.js`):N(S(e,`razorwind.${t.mode}.mts`))?S(e,`razorwind.${t.mode}.mts`):N(S(e,`razorwind.${t.mode}.mjs`))?S(e,`razorwind.${t.mode}.mjs`):N(S(e,`razorwind.${t.mode}.cjs`))?S(e,`razorwind.${t.mode}.cjs`):N(S(e,`razorwind.${t.mode}.cts`))?S(e,`razorwind.${t.mode}.cts`):N(S(e,`razorwind.${t.mode}.json`))?S(e,`razorwind.${t.mode}.json`):N(S(e,`razorwind.${t.mode}.yaml`))?S(e,`razorwind.${t.mode}.yaml`):N(S(e,`razorwind.${t.mode}.yml`))?S(e,`razorwind.${t.mode}.yml`):N(S(e,`razorwind.config.ts`))?S(e,`razorwind.config.ts`):N(S(e,`razorwind.config.js`))?S(e,`razorwind.config.js`):N(S(e,`razorwind.config.mts`))?S(e,`razorwind.config.mts`):N(S(e,`razorwind.config.mjs`))?S(e,`razorwind.config.mjs`):N(S(e,`razorwind.config.cjs`))?S(e,`razorwind.config.cjs`):N(S(e,`razorwind.config.cts`))?S(e,`razorwind.config.cts`):N(S(e,`razorwind.config.json`))?S(e,`razorwind.config.json`):N(S(e,`razorwind.config.yaml`))?S(e,`razorwind.config.yaml`):N(S(e,`razorwind.config.yml`))?S(e,`razorwind.config.yml`):void 0,r=xe({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=Ce(e,i),o={};if(n){let r=await a.import(n,{default:!0});if(r){let i={};Se(r)?i=await Promise.resolve(r({cwd:e,mode:t.mode??`development`})):(w(r)||Array.isArray(r))&&(i=r),(w(i)||Array.isArray(i))&&(o={...i,configFile:n})}}let[s,c,l]=await Promise.all([M({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),M({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),M({cwd:Ze,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),u=h({cwd:e,envPaths:{...r,home:Ze}},t,o,w(s?.config)?{...s.config}:{},w(c?.config)?{...c.config}:{},w(l?.config)?{...l.config}:{},{componentsPath:e,iconsPath:S(e,`assets/icons`),plugins:[]});if(Array.isArray(u.componentsPath)){let t=u.componentsPath.filter(T).map(e=>A(e));u.componentsPath=t.length>0?t:e}else u.componentsPath=T(u.componentsPath)?A(u.componentsPath):e;if(Array.isArray(u.iconsPath)){let t=u.iconsPath.filter(T).map(e=>A(e));u.iconsPath=t.length>0?t:S(e,`assets/icons`)}else u.iconsPath=T(u.iconsPath)?A(u.iconsPath):S(e,`assets/icons`);return Array.isArray(u.plugins)||(u.plugins=[]),u}function $e(e){return e}const et=ge({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, and icons.`,version:Te,tags:[`razorwind`,`dtcg`]},schema:_e({schema:i}),input:async e=>{let t=p();if(t.options=await Qe(t.cwd,e),t.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);let n=t.options.tokens;(!n||m(n))&&(n=await d(t));let r={...await Xe(t.cwd,t.options),tokens:n??{},components:h(t.options.components??{},await U(t)??{}),icons:h(t.options.icons??{},await Ke(t)??{})};for(let e of t.options.plugins.filter(e=>e.extract))r=await e.extract(r,t.options);if(!r.tokens||m(r.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let e of t.options.plugins.filter(e=>e.validate))await e.validate(r,t.options);return r},generator:async e=>{let t=p(),n={};for(let r of t.options.plugins.filter(e=>e.generate)){let i=await r.generate(e,t.options);n=h(i,n)}return n}});export{s as DEFAULT_TOKEN_PATH_CANDIDATES,c as RAZORWIND_INFER_PREPROCESSOR,pe as THEME_BASENAME_PATTERN,me as TOKEN_DIRECTORY_GLOB,l as TOKEN_FILE_EXTENSIONS,o as TYPE_PATH_HINTS,f as WINDIE_PARSERS,f as razorwindParsers,$e as defineConfig,he as definePlugin,et as generator,ce as getExtractionHooks,de as getRazorwindParserHooks,u as getRazorwindPreprocessorHooks,le as inferTypeFromPath,oe as inferValue,U as loadComponents,Ke as loadIcons,Ye as loadSchemaMetaFromPackageJson,d as loadTokens,se as loadTokensOrThrow,re as nestFlatTokens,F as normalizeRepository,ne as normalizeTokenTree,te as parseCssCustomProperties,ae as razorwindInferPreprocessor,fe as registerRazorwindHooks,ee as registerRazorwindParsers,Qe as resolveConfig,Xe as resolveSchemaMeta,ue as resolveTokensSource,Je as schemaMetaFromConfig,qe as schemaMetaFromPackageJson,ie as themeKeyFromPath};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tokens-DRWdgXcQ.cjs");exports.DEFAULT_TOKEN_PATH_CANDIDATES=e._,exports.RAZORWIND_INFER_PREPROCESSOR=e.a,exports.THEME_BASENAME_PATTERN=e.v,exports.TOKEN_DIRECTORY_GLOB=e.y,exports.TOKEN_FILE_EXTENSIONS=e.b,exports.TYPE_PATH_HINTS=e.S,exports.WINDIE_PARSERS=e.x,exports.razorwindParsers=e.x,exports.getExtractionHooks=e.o,exports.getRazorwindParserHooks=e.s,exports.getRazorwindPreprocessorHooks=e.c,exports.inferTypeFromPath=e.p,exports.inferValue=e.m,exports.loadTokens=e.t,exports.loadTokensOrThrow=e.n,exports.nestFlatTokens=e.h,exports.normalizeTokenTree=e.g,exports.parseCssCustomProperties=e.f,exports.razorwindInferPreprocessor=e.l,exports.registerRazorwindHooks=e.u,exports.registerRazorwindParsers=e.d,exports.resolveTokensSource=e.r,exports.themeKeyFromPath=e.i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tokens-DZOlhVxy.cjs");exports.DEFAULT_TOKEN_PATH_CANDIDATES=e._,exports.RAZORWIND_INFER_PREPROCESSOR=e.a,exports.THEME_BASENAME_PATTERN=e.v,exports.TOKEN_DIRECTORY_GLOB=e.y,exports.TOKEN_FILE_EXTENSIONS=e.b,exports.TYPE_PATH_HINTS=e.S,exports.WINDIE_PARSERS=e.x,exports.razorwindParsers=e.x,exports.getExtractionHooks=e.o,exports.getRazorwindParserHooks=e.s,exports.getRazorwindPreprocessorHooks=e.c,exports.inferTypeFromPath=e.p,exports.inferValue=e.m,exports.loadTokens=e.t,exports.loadTokensOrThrow=e.n,exports.nestFlatTokens=e.h,exports.normalizeTokenTree=e.g,exports.parseCssCustomProperties=e.f,exports.razorwindInferPreprocessor=e.l,exports.registerRazorwindHooks=e.u,exports.registerRazorwindParsers=e.d,exports.resolveTokensSource=e.r,exports.themeKeyFromPath=e.i;
@@ -1,2 +1,2 @@
1
- import { A as TYPE_PATH_HINTS, C as parseCssCustomProperties, D as TOKEN_DIRECTORY_GLOB, E as THEME_BASENAME_PATTERN, O as TOKEN_FILE_EXTENSIONS, S as normalizeTokenTree, T as RazorwindParserName, _ as themeKeyFromPath, a as getRazorwindParserHooks, b as inferValue, c as registerRazorwindHooks, d as LoadedTokens, f as loadTokens, g as resolveTokensSource, h as ResolvedTokensSource, i as getExtractionHooks, k as TOKEN_PARSER_NAMES, l as registerRazorwindParsers, m as ResolveTokensPathOptions, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as loadTokensOrThrow, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as LoadTokensOptions, v as InferredTokenType, w as DEFAULT_TOKEN_PATH_CANDIDATES, x as nestFlatTokens, y as inferTypeFromPath } from "../../index-DYuvYODg.cjs";
1
+ import { A as TYPE_PATH_HINTS, C as parseCssCustomProperties, D as TOKEN_DIRECTORY_GLOB, E as THEME_BASENAME_PATTERN, O as TOKEN_FILE_EXTENSIONS, S as normalizeTokenTree, T as RazorwindParserName, _ as themeKeyFromPath, a as getRazorwindParserHooks, b as inferValue, c as registerRazorwindHooks, d as LoadedTokens, f as loadTokens, g as resolveTokensSource, h as ResolvedTokensSource, i as getExtractionHooks, k as TOKEN_PARSER_NAMES, l as registerRazorwindParsers, m as ResolveTokensPathOptions, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as loadTokensOrThrow, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as LoadTokensOptions, v as InferredTokenType, w as DEFAULT_TOKEN_PATH_CANDIDATES, x as nestFlatTokens, y as inferTypeFromPath } from "../../index-xilGn3pb.cjs";
2
2
  export { DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type ResolveTokensPathOptions, type ResolvedTokensSource, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_PATH_HINTS, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, themeKeyFromPath };
@@ -1,2 +1,2 @@
1
- import { A as TYPE_PATH_HINTS, C as parseCssCustomProperties, D as TOKEN_DIRECTORY_GLOB, E as THEME_BASENAME_PATTERN, O as TOKEN_FILE_EXTENSIONS, S as normalizeTokenTree, T as RazorwindParserName, _ as themeKeyFromPath, a as getRazorwindParserHooks, b as inferValue, c as registerRazorwindHooks, d as LoadedTokens, f as loadTokens, g as resolveTokensSource, h as ResolvedTokensSource, i as getExtractionHooks, k as TOKEN_PARSER_NAMES, l as registerRazorwindParsers, m as ResolveTokensPathOptions, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as loadTokensOrThrow, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as LoadTokensOptions, v as InferredTokenType, w as DEFAULT_TOKEN_PATH_CANDIDATES, x as nestFlatTokens, y as inferTypeFromPath } from "../../index-CncKAvto.mjs";
1
+ import { A as TYPE_PATH_HINTS, C as parseCssCustomProperties, D as TOKEN_DIRECTORY_GLOB, E as THEME_BASENAME_PATTERN, O as TOKEN_FILE_EXTENSIONS, S as normalizeTokenTree, T as RazorwindParserName, _ as themeKeyFromPath, a as getRazorwindParserHooks, b as inferValue, c as registerRazorwindHooks, d as LoadedTokens, f as loadTokens, g as resolveTokensSource, h as ResolvedTokensSource, i as getExtractionHooks, k as TOKEN_PARSER_NAMES, l as registerRazorwindParsers, m as ResolveTokensPathOptions, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as loadTokensOrThrow, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as LoadTokensOptions, v as InferredTokenType, w as DEFAULT_TOKEN_PATH_CANDIDATES, x as nestFlatTokens, y as inferTypeFromPath } from "../../index-DrVESYnz.mjs";
2
2
  export { DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type ResolveTokensPathOptions, type ResolvedTokensSource, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_PATH_HINTS, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, themeKeyFromPath };
@@ -1 +1 @@
1
- import{S as e,_ as t,a as n,b as r,c as i,d as a,f as o,g as s,h as c,i as l,l as u,m as d,n as f,o as p,p as m,r as h,s as g,t as _,u as v,v as y,x as b,y as x}from"../../tokens-N1_aQFQ9.mjs";export{t as DEFAULT_TOKEN_PATH_CANDIDATES,n as RAZORWIND_INFER_PREPROCESSOR,y as THEME_BASENAME_PATTERN,x as TOKEN_DIRECTORY_GLOB,r as TOKEN_FILE_EXTENSIONS,e as TYPE_PATH_HINTS,b as WINDIE_PARSERS,b as razorwindParsers,p as getExtractionHooks,g as getRazorwindParserHooks,i as getRazorwindPreprocessorHooks,m as inferTypeFromPath,d as inferValue,_ as loadTokens,f as loadTokensOrThrow,c as nestFlatTokens,s as normalizeTokenTree,o as parseCssCustomProperties,u as razorwindInferPreprocessor,v as registerRazorwindHooks,a as registerRazorwindParsers,h as resolveTokensSource,l as themeKeyFromPath};
1
+ import{S as e,_ as t,a as n,b as r,c as i,d as a,f as o,g as s,h as c,i as l,l as u,m as d,n as f,o as p,p as m,r as h,s as g,t as _,u as v,v as y,x as b,y as x}from"../../tokens-B1I6HQim.mjs";export{t as DEFAULT_TOKEN_PATH_CANDIDATES,n as RAZORWIND_INFER_PREPROCESSOR,y as THEME_BASENAME_PATTERN,x as TOKEN_DIRECTORY_GLOB,r as TOKEN_FILE_EXTENSIONS,e as TYPE_PATH_HINTS,b as WINDIE_PARSERS,b as razorwindParsers,p as getExtractionHooks,g as getRazorwindParserHooks,i as getRazorwindPreprocessorHooks,m as inferTypeFromPath,d as inferValue,_ as loadTokens,f as loadTokensOrThrow,c as nestFlatTokens,s as normalizeTokenTree,o as parseCssCustomProperties,u as razorwindInferPreprocessor,v as registerRazorwindHooks,a as registerRazorwindParsers,h as resolveTokensSource,l as themeKeyFromPath};
@@ -1,4 +1,4 @@
1
- import { l as Plugin } from "./config-D-Sj9dwx.mjs";
1
+ import { l as Plugin } from "./config-BHFlKT4O.mjs";
2
2
  //#region src/plugin.d.ts
3
3
  /**
4
4
  * Type helper for Razorwind plugins (`parsers` / `preprocessors` + `extract` / `validate` / `generate`).
@@ -46,4 +46,4 @@ declare function definePlugin<TOptions>(factory: (options: TOptions) => Plugin,
46
46
  declare function definePlugin(plugin: Plugin, overrides?: Partial<Plugin>): Plugin;
47
47
  //#endregion
48
48
  export { definePlugin as t };
49
- //# sourceMappingURL=plugin-BTLvkhiO.d.mts.map
49
+ //# sourceMappingURL=plugin-D1VhJmEE.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-D1VhJmEE.d.mts","names":[],"sources":["../src/plugin.ts"],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { l as Plugin } from "./config-CVFAzcDD.cjs";
1
+ import { l as Plugin } from "./config-WQlRP5z1.cjs";
2
2
  //#region src/plugin.d.ts
3
3
  /**
4
4
  * Type helper for Razorwind plugins (`parsers` / `preprocessors` + `extract` / `validate` / `generate`).
@@ -46,4 +46,4 @@ declare function definePlugin<TOptions>(factory: (options: TOptions) => Plugin,
46
46
  declare function definePlugin(plugin: Plugin, overrides?: Partial<Plugin>): Plugin;
47
47
  //#endregion
48
48
  export { definePlugin as t };
49
- //# sourceMappingURL=plugin-DNuqVQH8.d.cts.map
49
+ //# sourceMappingURL=plugin-DwTqehw6.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-DNuqVQH8.d.cts","names":[],"sources":["../src/plugin.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiEgB,aAAa,UAC3B,UAAU,SAAS,aAAa,QAChC,YAAY,QAAQ,WAClB,UAAU,aAAa;iBACX,aACd,QAAQ,QACR,YAAY,QAAQ,UACnB"}
1
+ {"version":3,"file":"plugin-DwTqehw6.d.cts","names":[],"sources":["../src/plugin.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiEgB,aAAa,UAC3B,UAAU,SAAS,aAAa,QAChC,YAAY,QAAQ,WAClB,UAAU,aAAa;iBACX,aACd,QAAQ,QACR,YAAY,QAAQ,UACnB"}
package/dist/plugin.d.cts CHANGED
@@ -1,3 +1,3 @@
1
- import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-CVFAzcDD.cjs";
2
- import { t as definePlugin } from "./plugin-DNuqVQH8.cjs";
1
+ import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-WQlRP5z1.cjs";
2
+ import { t as definePlugin } from "./plugin-DwTqehw6.cjs";
3
3
  export { type Plugin, type TokensParser, type TokensPreprocessor, definePlugin };
package/dist/plugin.d.mts CHANGED
@@ -1,3 +1,3 @@
1
- import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-D-Sj9dwx.mjs";
2
- import { t as definePlugin } from "./plugin-BTLvkhiO.mjs";
1
+ import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-BHFlKT4O.mjs";
2
+ import { t as definePlugin } from "./plugin-D1VhJmEE.mjs";
3
3
  export { type Plugin, type TokensParser, type TokensPreprocessor, definePlugin };
@@ -0,0 +1,2 @@
1
+ import{n as e}from"./utils-B5uabOd5.mjs";import{existsSync as t}from"@stryke/fs/exists";import{isDirectory as n}from"@stryke/fs/is-file";import{joinPaths as r}from"@stryke/path/join";import{isSetString as i}from"@stryke/type-checks/is-set-string";import{basename as a,isAbsolute as o,resolve as s}from"node:path";import{isFunction as c}from"@stryke/type-checks/is-function";import{importModule as l}from"@stryke/fs/resolve";import u from"fast-glob";import d from"style-dictionary";import f from"json5";import{parse as ee}from"smol-toml";import{parse as te}from"yaml";const p=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],m=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],h=m.join(`,`),g=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],_=`**/*.{${h}}`,v=/^(light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)([._-].+)?$/i,y={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},ne=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,b=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,re=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,ie=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,ae=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,oe=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,x=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,se=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,ce=/^\{[^{}]+\}$/,le={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},S=new Set([`px`,`rem`]);function C(e){return Math.min(1,Math.max(0,e))}function w(e,t=100){let n=e.trim();if(n.endsWith(`%`))return C(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return C(r>1?r/255:r)}function T(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function ue(e){let t=T(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function de(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function E(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function D(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=y[n];if(r)return r}}function O(t,n=[]){let r=D(n);if(typeof t==`string`){let e=t.trim();if(ce.test(e))return{value:e,type:r};let i=e.match(se);if(i?.[1])return{value:de(i[1]),type:r};if(ne.test(e))return{value:ue(e),type:`color`};let a=e.match(b);if(a){let e=[w(a[1]),w(a[2]),w(a[3])],t=a[4]?a[4].endsWith(`%`)?C(Number.parseFloat(a[4])/100):C(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=e.match(re);if(o)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(o[1]),Number.parseFloat(o[2]),Number.parseFloat(o[3])],...o[4]?{alpha:o[4].endsWith(`%`)?C(Number.parseFloat(o[4])/100):C(Number.parseFloat(o[4]))}:{}},type:`color`};let s=e.match(ie);if(s){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(s[1]),e(s[2]),e(s[3])],...s[4]?{alpha:s[4].endsWith(`%`)?C(Number.parseFloat(s[4])/100):C(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=e.match(ae);if(c){let t=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return S.has(t)?{value:{value:n,unit:t},type:`dimension`}:{value:e,type:r===`dimension`?void 0:r}}let l=e.match(oe);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=e.match(x);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=le[e.toLowerCase()];return d===void 0?r===`fontFamily`||/family|font|typeface/i.test(n.at(-1)??``)?e.includes(`,`)?{value:e.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:e.replace(/^["']|["']$/g,``),type:`fontFamily`}:r===`color`&&!e.startsWith(`{`)?{value:e,type:void 0}:{value:e,type:r}:{value:d,type:`fontWeight`}}if(typeof t==`number`)return r===`fontWeight`?{value:t,type:`fontWeight`}:r===`duration`?{value:{value:t,unit:`ms`},type:`duration`}:r===`dimension`?{value:{value:t,unit:`px`},type:`dimension`}:{value:t,type:r??`number`};if(Array.isArray(t))return t.length===4&&t.every(e=>typeof e==`number`)&&(r===`cubicBezier`||n.some(e=>/ease|bezier/i.test(e)))?{value:t,type:`cubicBezier`}:t.every(e=>typeof e==`string`)?{value:t,type:r??`fontFamily`}:{value:t,type:r};if(e(t)){if(`colorSpace`in t&&`components`in t)return{value:t,type:`color`};if(`value`in t&&`unit`in t){let e=String(t.unit).toLowerCase();return e===`ms`||e===`s`?{value:t,type:`duration`}:S.has(e)?{value:t,type:`dimension`}:{value:t,type:r}}}return{value:t,type:r}}function fe(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),`$value`in n){let e=O(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function k(t,n=[]){if(Array.isArray(t))return t.map((e,t)=>k(e,[...n,String(t)]));if(!e(t))return t;if(E(t))return fe(t,n);let r={};for(let[e,i]of Object.entries(t)){if(e.startsWith(`$`)){r[e]=i;continue}r[e]=k(i,[...n,e])}if(!(`$type`in r)){let e=D(n);e&&n.length>0&&(r.$type=e)}return r}function A(t){let n={};for(let[r,i]of Object.entries(t)){let t=r.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(t.length===0)continue;let a=n;for(let n=0;n<t.length-1;n++){let r=t[n],i=a[r];e(i)?E(i)&&(a[r]={DEFAULT:i}):a[r]={},a=a[r]}let o=t.at(-1),s=O(i,t),c={$value:s.value,...s.type?{$type:s.type}:{}},l=a[o];e(l)&&!E(l)?l.DEFAULT=c:a[o]=c}return k(n)}const pe=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function j(e){let t={},n=e.replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(pe)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return A(t)}const M=`razorwind-infer`;function N(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return k(e)}function P(e){try{return N(f.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function F(e){try{return N(te(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function I(e){try{return N(ee(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const L=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>P(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>F(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>I(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>k(j(e))}];function R(){return Object.fromEntries(L.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function z(e){return k(e)}function B(){return{[M]:z}}function V(e=[]){let t={...R()},n={...B()},r=[...p],i=[M],a=0,o=0;for(let s of e){for(let e of s.parsers??[]){let n=e.name??`${s.name}-parser-${a}`;t[n]={pattern:e.pattern,parser:({contents:t})=>e.parser(t)},r.push(n),a++}for(let e of s.preprocessors??[]){let t=c(e)?{name:`${s.name}-preprocessor-${o}`,preprocessor:e}:{name:e.name??`${s.name}-preprocessor-${o}`,preprocessor:e.preprocessor};n[t.name]=t.preprocessor,i.push(t.name),o++}}return{parsers:t,preprocessors:n,parserNames:r,preprocessorNames:i}}function H(e=[],t=d){let n=V(e);if(typeof t.registerParser==`function`)for(let[e,r]of Object.entries(n.parsers))t.registerParser({name:e,...r});if(typeof t.registerPreprocessor==`function`)for(let[e,r]of Object.entries(n.preprocessors))t.registerPreprocessor({name:e,preprocessor:r});return n}const me=H;function U(e,t){return o(t)?t:s(e,t)}function W(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function G(e){return m.includes(W(e))}function K(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function q(e){return r(e,_)}function he(e){return Array.isArray(e)?e.filter(i):i(e)?[e]:[]}const ge=/[*?[\]{}]/;function _e(e){return ge.test(e)}function ve(e){let t=e.search(/[*?[{]/);if(t<=0)return;let n=e.slice(0,t).replace(/[/\\]+$/,``);return n.length>0?n:void 0}function ye(e,r){let i=U(e,r);if(_e(r)){let e=ve(i);if(e&&!t(e))throw Error(`tokensPath "${r}" does not exist (resolved: ${i}).`);return{resolvedPath:i,source:[i],isStyleDictionaryConfig:!1}}if(!t(i))throw Error(`tokensPath "${r}" does not exist (resolved: ${i}).`);return n(i)?{resolvedPath:i,source:[q(i)],isStyleDictionaryConfig:!1}:K(i)?{resolvedPath:i,source:[],isStyleDictionaryConfig:!0}:{resolvedPath:i,source:[i],isStyleDictionaryConfig:!1}}function J(e){let{cwd:r,tokensPath:i,fallbackPaths:a=[]}=e,o=he(i);if(o.length>0){let e=o.map(e=>ye(r,e)),t=e.filter(e=>e.isStyleDictionaryConfig);if(t.length>0){if(e.length>1)throw Error(`tokensPath cannot mix Style Dictionary config files with other token sources.`);return{resolvedPath:t[0].resolvedPath,source:[],origin:`tokensPath`}}return{resolvedPath:e[0]?.resolvedPath,source:e.flatMap(e=>e.source),origin:`tokensPath`}}for(let e of g){let i=U(r,e);if(t(i)){if(n(i))return{resolvedPath:i,source:[q(i)],origin:`default`};if(K(i))return{resolvedPath:i,source:[],origin:`default`};if(G(i))return{resolvedPath:i,source:[i],origin:`default`}}}for(let e of a){if(!e)continue;let i=U(r,e);if(!(!t(i)||n(i))&&(G(i)||W(i)===`css`))return{resolvedPath:i,source:[i],origin:`fallback`}}return{source:[],origin:`none`}}function Y(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(v)?.[1]?.toLowerCase()}function be(e){let t=e,n=new Set;for(;t!=null&&!n.has(t);){if(n.add(t),typeof t==`function`)return t;if(typeof t==`object`&&`default`in t){t=t.default;continue}break}throw TypeError(`style-dictionary did not export a constructable StyleDictionary class.`)}const xe=be(d);function X(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function Se(e){let t=await l(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function Z(e,t){let n=V(e.plugins),r=new xe({...t,parsers:[...n.parserNames,...t.parsers??[]],preprocessors:[...n.preprocessorNames,...t.preprocessors??[]],hooks:{...t.hooks,parsers:{...n.parsers,...t.hooks?.parsers},preprocessors:{...n.preprocessors,...t.hooks?.preprocessors}},usesDtcg:t.usesDtcg??!0,platforms:t.platforms??{}});return await r.hasInitialized,r}async function Q(e,t){return t.length===0?{}:(await Z(e,{source:t})).tokens}async function Ce(e){return(await u(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function we(e,t){let n=await Ce(t);if(n.length===0)return{};let r=new Map,i=[];for(let e of n){let t=Y(e);if(t){let n=r.get(t)??[];n.push(e),r.set(t,n)}else i.push(e)}if(r.size<2)return Q(e,t);let a={};if(i.length>0){let t=await Q(e,i);X(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Q(e,n);return a}async function $(e){let n=J(e.options);return n.resolvedPath&&t(n.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test(a(n.resolvedPath))?(e.sd=await Z(e.options,await Se(n.resolvedPath)),e.sd.tokens):n.source.length===0?{}:e.options.splitThemes?we(e.options,n.source):Q(e.options,n.source)}async function Te(e){let t=await $(e);if(X(t)){let{tokensPath:t}=e.options,n=Array.isArray(t)?t.length>0?`tokensPath=[${t.map(e=>`"${e}"`).join(`, `)}]`:`default token paths / CSS fallbacks`:i(t)?`tokensPath="${t}"`:`default token paths / CSS fallbacks`;throw Error(`No design tokens found via ${n}. Provide tokensPath or add a tokens file.`)}return t}export{y as S,g as _,M as a,m as b,B as c,me as d,j as f,k as g,A as h,Y as i,z as l,O as m,Te as n,V as o,D as p,J as r,R as s,$ as t,H as u,v,p as x,_ as y};
2
+ //# sourceMappingURL=tokens-B1I6HQim.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens-B1I6HQim.mjs","names":[],"sources":[],"mappings":""}
@@ -0,0 +1 @@
1
+ const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./utils-BiL8zQzg.cjs");let n=require("@stryke/fs/exists"),r=require("@stryke/fs/is-file"),i=require("@stryke/path/join"),a=require("@stryke/type-checks/is-set-string"),o=require("node:path"),s=require("@stryke/type-checks/is-function"),c=require("@stryke/fs/resolve"),l=require("fast-glob");l=e.t(l,1);let u=require("style-dictionary");u=e.t(u,1);let d=require("json5");d=e.t(d,1);let ee=require("smol-toml"),f=require("yaml");const p=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],m=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],h=m.join(`,`),g=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],_=`**/*.{${h}}`,v=/^(light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)([._-].+)?$/i,y={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},te=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,ne=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,re=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,ie=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,ae=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,oe=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,se=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,ce=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,b=/^\{[^{}]+\}$/,x={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},S=new Set([`px`,`rem`]);function C(e){return Math.min(1,Math.max(0,e))}function w(e,t=100){let n=e.trim();if(n.endsWith(`%`))return C(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return C(r>1?r/255:r)}function le(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function ue(e){let t=le(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function de(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function T(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function E(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=y[n];if(r)return r}}function D(e,n=[]){let r=E(n);if(typeof e==`string`){let t=e.trim();if(b.test(t))return{value:t,type:r};let i=t.match(ce);if(i?.[1])return{value:de(i[1]),type:r};if(te.test(t))return{value:ue(t),type:`color`};let a=t.match(ne);if(a){let e=[w(a[1]),w(a[2]),w(a[3])],t=a[4]?a[4].endsWith(`%`)?C(Number.parseFloat(a[4])/100):C(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=t.match(re);if(o)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(o[1]),Number.parseFloat(o[2]),Number.parseFloat(o[3])],...o[4]?{alpha:o[4].endsWith(`%`)?C(Number.parseFloat(o[4])/100):C(Number.parseFloat(o[4]))}:{}},type:`color`};let s=t.match(ie);if(s){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(s[1]),e(s[2]),e(s[3])],...s[4]?{alpha:s[4].endsWith(`%`)?C(Number.parseFloat(s[4])/100):C(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=t.match(ae);if(c){let e=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return S.has(e)?{value:{value:n,unit:e},type:`dimension`}:{value:t,type:r===`dimension`?void 0:r}}let l=t.match(oe);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=t.match(se);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=x[t.toLowerCase()];return d===void 0?r===`fontFamily`||/family|font|typeface/i.test(n.at(-1)??``)?t.includes(`,`)?{value:t.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:t.replace(/^["']|["']$/g,``),type:`fontFamily`}:r===`color`&&!t.startsWith(`{`)?{value:t,type:void 0}:{value:t,type:r}:{value:d,type:`fontWeight`}}if(typeof e==`number`)return r===`fontWeight`?{value:e,type:`fontWeight`}:r===`duration`?{value:{value:e,unit:`ms`},type:`duration`}:r===`dimension`?{value:{value:e,unit:`px`},type:`dimension`}:{value:e,type:r??`number`};if(Array.isArray(e))return e.length===4&&e.every(e=>typeof e==`number`)&&(r===`cubicBezier`||n.some(e=>/ease|bezier/i.test(e)))?{value:e,type:`cubicBezier`}:e.every(e=>typeof e==`string`)?{value:e,type:r??`fontFamily`}:{value:e,type:r};if(t.n(e)){if(`colorSpace`in e&&`components`in e)return{value:e,type:`color`};if(`value`in e&&`unit`in e){let t=String(e.unit).toLowerCase();return t===`ms`||t===`s`?{value:e,type:`duration`}:S.has(t)?{value:e,type:`dimension`}:{value:e,type:r}}}return{value:e,type:r}}function fe(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),`$value`in n){let e=D(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function O(e,n=[]){if(Array.isArray(e))return e.map((e,t)=>O(e,[...n,String(t)]));if(!t.n(e))return e;if(T(e))return fe(e,n);let r={};for(let[t,i]of Object.entries(e)){if(t.startsWith(`$`)){r[t]=i;continue}r[t]=O(i,[...n,t])}if(!(`$type`in r)){let e=E(n);e&&n.length>0&&(r.$type=e)}return r}function k(e){let n={};for(let[r,i]of Object.entries(e)){let e=r.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(e.length===0)continue;let a=n;for(let n=0;n<e.length-1;n++){let r=e[n],i=a[r];t.n(i)?T(i)&&(a[r]={DEFAULT:i}):a[r]={},a=a[r]}let o=e.at(-1),s=D(i,e),c={$value:s.value,...s.type?{$type:s.type}:{}},l=a[o];t.n(l)&&!T(l)?l.DEFAULT=c:a[o]=c}return O(n)}const pe=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function A(e){let t={},n=e.replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(pe)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return k(t)}const j=`razorwind-infer`;function M(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return O(e)}function N(e){try{return M(d.default.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function P(e){try{return M((0,f.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function F(e){try{return M((0,ee.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const I=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>N(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>P(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>F(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>O(A(e))}];function L(){return Object.fromEntries(I.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function R(e){return O(e)}function z(){return{[j]:R}}function B(e=[]){let t={...L()},n={...z()},r=[...p],i=[j],a=0,o=0;for(let c of e){for(let e of c.parsers??[]){let n=e.name??`${c.name}-parser-${a}`;t[n]={pattern:e.pattern,parser:({contents:t})=>e.parser(t)},r.push(n),a++}for(let e of c.preprocessors??[]){let t=(0,s.isFunction)(e)?{name:`${c.name}-preprocessor-${o}`,preprocessor:e}:{name:e.name??`${c.name}-preprocessor-${o}`,preprocessor:e.preprocessor};n[t.name]=t.preprocessor,i.push(t.name),o++}}return{parsers:t,preprocessors:n,parserNames:r,preprocessorNames:i}}function V(e=[],t=u.default){let n=B(e);if(typeof t.registerParser==`function`)for(let[e,r]of Object.entries(n.parsers))t.registerParser({name:e,...r});if(typeof t.registerPreprocessor==`function`)for(let[e,r]of Object.entries(n.preprocessors))t.registerPreprocessor({name:e,preprocessor:r});return n}const me=V;function H(e,t){return(0,o.isAbsolute)(t)?t:(0,o.resolve)(e,t)}function U(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function W(e){return m.includes(U(e))}function G(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function K(e){return(0,i.joinPaths)(e,_)}function he(e){return Array.isArray(e)?e.filter(a.isSetString):(0,a.isSetString)(e)?[e]:[]}const ge=/[*?[\]{}]/;function _e(e){return ge.test(e)}function ve(e){let t=e.search(/[*?[{]/);if(t<=0)return;let n=e.slice(0,t).replace(/[/\\]+$/,``);return n.length>0?n:void 0}function ye(e,t){let i=H(e,t);if(_e(t)){let e=ve(i);if(e&&!(0,n.existsSync)(e))throw Error(`tokensPath "${t}" does not exist (resolved: ${i}).`);return{resolvedPath:i,source:[i],isStyleDictionaryConfig:!1}}if(!(0,n.existsSync)(i))throw Error(`tokensPath "${t}" does not exist (resolved: ${i}).`);return(0,r.isDirectory)(i)?{resolvedPath:i,source:[K(i)],isStyleDictionaryConfig:!1}:G(i)?{resolvedPath:i,source:[],isStyleDictionaryConfig:!0}:{resolvedPath:i,source:[i],isStyleDictionaryConfig:!1}}function q(e){let{cwd:t,tokensPath:i,fallbackPaths:a=[]}=e,o=he(i);if(o.length>0){let e=o.map(e=>ye(t,e)),n=e.filter(e=>e.isStyleDictionaryConfig);if(n.length>0){if(e.length>1)throw Error(`tokensPath cannot mix Style Dictionary config files with other token sources.`);return{resolvedPath:n[0].resolvedPath,source:[],origin:`tokensPath`}}return{resolvedPath:e[0]?.resolvedPath,source:e.flatMap(e=>e.source),origin:`tokensPath`}}for(let e of g){let i=H(t,e);if((0,n.existsSync)(i)){if((0,r.isDirectory)(i))return{resolvedPath:i,source:[K(i)],origin:`default`};if(G(i))return{resolvedPath:i,source:[],origin:`default`};if(W(i))return{resolvedPath:i,source:[i],origin:`default`}}}for(let e of a){if(!e)continue;let i=H(t,e);if(!(!(0,n.existsSync)(i)||(0,r.isDirectory)(i))&&(W(i)||U(i)===`css`))return{resolvedPath:i,source:[i],origin:`fallback`}}return{source:[],origin:`none`}}function J(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(v)?.[1]?.toLowerCase()}function be(e){let t=e,n=new Set;for(;t!=null&&!n.has(t);){if(n.add(t),typeof t==`function`)return t;if(typeof t==`object`&&`default`in t){t=t.default;continue}break}throw TypeError(`style-dictionary did not export a constructable StyleDictionary class.`)}const Y=be(u.default);function X(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function xe(e){let t=await(0,c.importModule)(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function Z(e,t){let n=B(e.plugins),r=new Y({...t,parsers:[...n.parserNames,...t.parsers??[]],preprocessors:[...n.preprocessorNames,...t.preprocessors??[]],hooks:{...t.hooks,parsers:{...n.parsers,...t.hooks?.parsers},preprocessors:{...n.preprocessors,...t.hooks?.preprocessors}},usesDtcg:t.usesDtcg??!0,platforms:t.platforms??{}});return await r.hasInitialized,r}async function Q(e,t){return t.length===0?{}:(await Z(e,{source:t})).tokens}async function Se(e){return(await(0,l.default)(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function Ce(e,t){let n=await Se(t);if(n.length===0)return{};let r=new Map,i=[];for(let e of n){let t=J(e);if(t){let n=r.get(t)??[];n.push(e),r.set(t,n)}else i.push(e)}if(r.size<2)return Q(e,t);let a={};if(i.length>0){let t=await Q(e,i);X(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Q(e,n);return a}async function $(e){let t=q(e.options);return t.resolvedPath&&(0,n.existsSync)(t.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test((0,o.basename)(t.resolvedPath))?(e.sd=await Z(e.options,await xe(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?Ce(e.options,t.source):Q(e.options,t.source)}async function we(e){let t=await $(e);if(X(t)){let{tokensPath:t}=e.options,n=Array.isArray(t)?t.length>0?`tokensPath=[${t.map(e=>`"${e}"`).join(`, `)}]`:`default token paths / CSS fallbacks`:(0,a.isSetString)(t)?`tokensPath="${t}"`:`default token paths / CSS fallbacks`;throw Error(`No design tokens found via ${n}. Provide tokensPath or add a tokens file.`)}return t}Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return _}});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@razorwind/core",
3
- "version": "0.0.42",
3
+ "version": "0.0.44",
4
4
  "private": false,
5
5
  "description": "💨 Razorwind is a unified set of tools that make creating design systems a breeze.",
6
6
  "keywords": ["razorwind", "storm-software"],
@@ -140,10 +140,10 @@
140
140
  "zod": "^4.4.3"
141
141
  },
142
142
  "devDependencies": {
143
- "@powerlines/plugin-tsdown": "^0.1.611",
143
+ "@powerlines/plugin-tsdown": "^0.1.612",
144
144
  "@types/node": "^25.9.5",
145
145
  "typescript": "^6.0.3"
146
146
  },
147
147
  "publishConfig": { "access": "public" },
148
- "gitHead": "a29fff821ff2377c8de1a78ecf705212b75d6824"
148
+ "gitHead": "2046c9d9c5528a1732da87a4b4d480a69f81c3fe"
149
149
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-CVFAzcDD.d.cts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":";;;;;;;;;;;;;;;UAgCiB;EACf;EACA,SAAS;EACT,SAAS,qBAAqB;;;;;;;;;KAUpB;EAEN;EACA,eAAe,YAAY,uBAAuB;MAElD,YAAY,uBAAuB;;;;;;;;;UAUxB;;;;;;;EAOf;;;;;;EAOA,UAAU;;;;;;EAOV,gBAAgB;;;;;;;;EAShB,WAAW,MAAM,QAAQ,QAAQ,WAAW,aAAa;;;;;;;;EASzD,YACE,MAAM,QACN,QAAQ,WACL,aAAa,eAAe;;;;;;;;EASjC,YAAY,MAAM,QAAQ,QAAQ,WAAW;;;;UCtF9B;;;;;;;;;;;;;;;;;;EAkBf;;;;EAKA;;;;;;EAOA;;;;;;;;EASA;;;;;;EAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCA;;UAGe,mBAAmB;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA,SAAS,SAAS,eAAe;EACjC,aAAa;EACb,QAAQ;EACR,UAAU;;UAGK;EACf;EACA;;KAGU,sBAAsB,QAAQ,eAAe;KAC7C,uBACV,QAAQ,qBACL,QAAQ,aAAa;KACd,gBACV,QAAQ,qBACL,aAAa,eAAe,QAAQ,aAAa;KAC1C,mBACR,aACA,eACA,QAAQ,aAAa,gBACrB,qBACA,sBACA;KAEQ,SAAS,aACnB;EAGA;EACA,UAAU;IACR"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-D-Sj9dwx.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-BTLvkhiO.d.mts","names":[],"sources":["../src/plugin.ts"],"mappings":""}
@@ -1 +0,0 @@
1
- const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./utils-BiL8zQzg.cjs");let n=require("@stryke/fs/exists"),r=require("@stryke/fs/is-file"),i=require("@stryke/path/join"),a=require("@stryke/type-checks/is-set-string"),o=require("node:path"),s=require("@stryke/type-checks/is-function"),c=require("@stryke/fs/resolve"),l=require("fast-glob");l=e.t(l,1);let u=require("style-dictionary");u=e.t(u,1);let d=require("json5");d=e.t(d,1);let ee=require("smol-toml"),f=require("yaml");const p=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],m=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],te=m.join(`,`),h=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],g=`**/*.{${te}}`,_=/^(light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)([._-].+)?$/i,v={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},ne=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,re=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,ie=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,ae=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,oe=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,se=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,ce=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,y=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,b=/^\{[^{}]+\}$/,x={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},S=new Set([`px`,`rem`]);function C(e){return Math.min(1,Math.max(0,e))}function w(e,t=100){let n=e.trim();if(n.endsWith(`%`))return C(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return C(r>1?r/255:r)}function le(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function ue(e){let t=le(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function de(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function T(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function E(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=v[n];if(r)return r}}function D(e,n=[]){let r=E(n);if(typeof e==`string`){let t=e.trim();if(b.test(t))return{value:t,type:r};let i=t.match(y);if(i?.[1])return{value:de(i[1]),type:r};if(ne.test(t))return{value:ue(t),type:`color`};let a=t.match(re);if(a){let e=[w(a[1]),w(a[2]),w(a[3])],t=a[4]?a[4].endsWith(`%`)?C(Number.parseFloat(a[4])/100):C(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=t.match(ie);if(o)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(o[1]),Number.parseFloat(o[2]),Number.parseFloat(o[3])],...o[4]?{alpha:o[4].endsWith(`%`)?C(Number.parseFloat(o[4])/100):C(Number.parseFloat(o[4]))}:{}},type:`color`};let s=t.match(ae);if(s){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(s[1]),e(s[2]),e(s[3])],...s[4]?{alpha:s[4].endsWith(`%`)?C(Number.parseFloat(s[4])/100):C(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=t.match(oe);if(c){let e=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return S.has(e)?{value:{value:n,unit:e},type:`dimension`}:{value:t,type:r===`dimension`?void 0:r}}let l=t.match(se);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=t.match(ce);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=x[t.toLowerCase()];return d===void 0?r===`fontFamily`||/family|font|typeface/i.test(n.at(-1)??``)?t.includes(`,`)?{value:t.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:t.replace(/^["']|["']$/g,``),type:`fontFamily`}:r===`color`&&!t.startsWith(`{`)?{value:t,type:void 0}:{value:t,type:r}:{value:d,type:`fontWeight`}}if(typeof e==`number`)return r===`fontWeight`?{value:e,type:`fontWeight`}:r===`duration`?{value:{value:e,unit:`ms`},type:`duration`}:r===`dimension`?{value:{value:e,unit:`px`},type:`dimension`}:{value:e,type:r??`number`};if(Array.isArray(e))return e.length===4&&e.every(e=>typeof e==`number`)&&(r===`cubicBezier`||n.some(e=>/ease|bezier/i.test(e)))?{value:e,type:`cubicBezier`}:e.every(e=>typeof e==`string`)?{value:e,type:r??`fontFamily`}:{value:e,type:r};if(t.n(e)){if(`colorSpace`in e&&`components`in e)return{value:e,type:`color`};if(`value`in e&&`unit`in e){let t=String(e.unit).toLowerCase();return t===`ms`||t===`s`?{value:e,type:`duration`}:S.has(t)?{value:e,type:`dimension`}:{value:e,type:r}}}return{value:e,type:r}}function fe(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),`$value`in n){let e=D(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function O(e,n=[]){if(Array.isArray(e))return e.map((e,t)=>O(e,[...n,String(t)]));if(!t.n(e))return e;if(T(e))return fe(e,n);let r={};for(let[t,i]of Object.entries(e)){if(t.startsWith(`$`)){r[t]=i;continue}r[t]=O(i,[...n,t])}if(!(`$type`in r)){let e=E(n);e&&n.length>0&&(r.$type=e)}return r}function k(e){let n={};for(let[r,i]of Object.entries(e)){let e=r.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(e.length===0)continue;let a=n;for(let n=0;n<e.length-1;n++){let r=e[n],i=a[r];t.n(i)?T(i)&&(a[r]={DEFAULT:i}):a[r]={},a=a[r]}let o=e.at(-1),s=D(i,e),c={$value:s.value,...s.type?{$type:s.type}:{}},l=a[o];t.n(l)&&!T(l)?l.DEFAULT=c:a[o]=c}return O(n)}const pe=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function A(e){let t={},n=e.replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(pe)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return k(t)}const j=`razorwind-infer`;function M(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return O(e)}function N(e){try{return M(d.default.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function P(e){try{return M((0,f.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function F(e){try{return M((0,ee.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const I=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>N(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>P(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>F(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>O(A(e))}];function L(){return Object.fromEntries(I.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function R(e){return O(e)}function z(){return{[j]:R}}function B(e=[]){let t={...L()},n={...z()},r=[...p],i=[j],a=0,o=0;for(let c of e){for(let e of c.parsers??[]){let n=e.name??`${c.name}-parser-${a}`;t[n]={pattern:e.pattern,parser:({contents:t})=>e.parser(t)},r.push(n),a++}for(let e of c.preprocessors??[]){let t=(0,s.isFunction)(e)?{name:`${c.name}-preprocessor-${o}`,preprocessor:e}:{name:e.name??`${c.name}-preprocessor-${o}`,preprocessor:e.preprocessor};n[t.name]=t.preprocessor,i.push(t.name),o++}}return{parsers:t,preprocessors:n,parserNames:r,preprocessorNames:i}}function V(e=[],t=u.default){let n=B(e);if(typeof t.registerParser==`function`)for(let[e,r]of Object.entries(n.parsers))t.registerParser({name:e,...r});if(typeof t.registerPreprocessor==`function`)for(let[e,r]of Object.entries(n.preprocessors))t.registerPreprocessor({name:e,preprocessor:r});return n}const me=V;function H(e,t){return(0,o.isAbsolute)(t)?t:(0,o.resolve)(e,t)}function U(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function W(e){return m.includes(U(e))}function G(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function K(e){return(0,i.joinPaths)(e,g)}function he(e){return Array.isArray(e)?e.filter(a.isSetString):(0,a.isSetString)(e)?[e]:[]}function ge(e,t){let i=H(e,t);if(!(0,n.existsSync)(i))throw Error(`tokensPath "${t}" does not exist (resolved: ${i}).`);return(0,r.isDirectory)(i)?{resolvedPath:i,source:[K(i)],isStyleDictionaryConfig:!1}:G(i)?{resolvedPath:i,source:[],isStyleDictionaryConfig:!0}:{resolvedPath:i,source:[i],isStyleDictionaryConfig:!1}}function q(e){let{cwd:t,tokensPath:i,fallbackPaths:a=[]}=e,o=he(i);if(o.length>0){let e=o.map(e=>ge(t,e)),n=e.filter(e=>e.isStyleDictionaryConfig);if(n.length>0){if(e.length>1)throw Error(`tokensPath cannot mix Style Dictionary config files with other token sources.`);return{resolvedPath:n[0].resolvedPath,source:[],origin:`tokensPath`}}return{resolvedPath:e[0]?.resolvedPath,source:e.flatMap(e=>e.source),origin:`tokensPath`}}for(let e of h){let i=H(t,e);if((0,n.existsSync)(i)){if((0,r.isDirectory)(i))return{resolvedPath:i,source:[K(i)],origin:`default`};if(G(i))return{resolvedPath:i,source:[],origin:`default`};if(W(i))return{resolvedPath:i,source:[i],origin:`default`}}}for(let e of a){if(!e)continue;let i=H(t,e);if(!(!(0,n.existsSync)(i)||(0,r.isDirectory)(i))&&(W(i)||U(i)===`css`))return{resolvedPath:i,source:[i],origin:`fallback`}}return{source:[],origin:`none`}}function J(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(_)?.[1]?.toLowerCase()}function _e(e){let t=e,n=new Set;for(;t!=null&&!n.has(t);){if(n.add(t),typeof t==`function`)return t;if(typeof t==`object`&&`default`in t){t=t.default;continue}break}throw TypeError(`style-dictionary did not export a constructable StyleDictionary class.`)}const Y=_e(u.default);function X(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function ve(e){let t=await(0,c.importModule)(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function Z(e,t){let n=B(e.plugins),r=new Y({...t,parsers:[...n.parserNames,...t.parsers??[]],preprocessors:[...n.preprocessorNames,...t.preprocessors??[]],hooks:{...t.hooks,parsers:{...n.parsers,...t.hooks?.parsers},preprocessors:{...n.preprocessors,...t.hooks?.preprocessors}},usesDtcg:t.usesDtcg??!0,platforms:t.platforms??{}});return await r.hasInitialized,r}async function Q(e,t){return t.length===0?{}:(await Z(e,{source:t})).tokens}async function ye(e){return(await(0,l.default)(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function be(e,t){let n=await ye(t);if(n.length===0)return{};let r=new Map,i=[];for(let e of n){let t=J(e);if(t){let n=r.get(t)??[];n.push(e),r.set(t,n)}else i.push(e)}if(r.size<2)return Q(e,t);let a={};if(i.length>0){let t=await Q(e,i);X(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Q(e,n);return a}async function $(e){let t=q(e.options);return t.resolvedPath&&(0,n.existsSync)(t.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test((0,o.basename)(t.resolvedPath))?(e.sd=await Z(e.options,await ve(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?be(e.options,t.source):Q(e.options,t.source)}async function xe(e){let t=await $(e);if(X(t)){let{tokensPath:t}=e.options,n=Array.isArray(t)?t.length>0?`tokensPath=[${t.map(e=>`"${e}"`).join(`, `)}]`:`default token paths / CSS fallbacks`:(0,a.isSetString)(t)?`tokensPath="${t}"`:`default token paths / CSS fallbacks`;throw Error(`No design tokens found via ${n}. Provide tokensPath or add a tokens file.`)}return t}Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return g}});
@@ -1,2 +0,0 @@
1
- import{n as e}from"./utils-B5uabOd5.mjs";import{existsSync as t}from"@stryke/fs/exists";import{isDirectory as n}from"@stryke/fs/is-file";import{joinPaths as r}from"@stryke/path/join";import{isSetString as i}from"@stryke/type-checks/is-set-string";import{basename as a,isAbsolute as o,resolve as s}from"node:path";import{isFunction as c}from"@stryke/type-checks/is-function";import{importModule as l}from"@stryke/fs/resolve";import u from"fast-glob";import d from"style-dictionary";import ee from"json5";import{parse as f}from"smol-toml";import{parse as p}from"yaml";const m=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],h=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],te=h.join(`,`),g=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],_=`**/*.{${te}}`,v=/^(light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)([._-].+)?$/i,y={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},ne=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,re=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,ie=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,b=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,x=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,ae=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,oe=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,se=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,ce=/^\{[^{}]+\}$/,le={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},S=new Set([`px`,`rem`]);function C(e){return Math.min(1,Math.max(0,e))}function w(e,t=100){let n=e.trim();if(n.endsWith(`%`))return C(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return C(r>1?r/255:r)}function T(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function ue(e){let t=T(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function de(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function E(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function D(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=y[n];if(r)return r}}function O(t,n=[]){let r=D(n);if(typeof t==`string`){let e=t.trim();if(ce.test(e))return{value:e,type:r};let i=e.match(se);if(i?.[1])return{value:de(i[1]),type:r};if(ne.test(e))return{value:ue(e),type:`color`};let a=e.match(re);if(a){let e=[w(a[1]),w(a[2]),w(a[3])],t=a[4]?a[4].endsWith(`%`)?C(Number.parseFloat(a[4])/100):C(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=e.match(ie);if(o)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(o[1]),Number.parseFloat(o[2]),Number.parseFloat(o[3])],...o[4]?{alpha:o[4].endsWith(`%`)?C(Number.parseFloat(o[4])/100):C(Number.parseFloat(o[4]))}:{}},type:`color`};let s=e.match(b);if(s){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(s[1]),e(s[2]),e(s[3])],...s[4]?{alpha:s[4].endsWith(`%`)?C(Number.parseFloat(s[4])/100):C(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=e.match(x);if(c){let t=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return S.has(t)?{value:{value:n,unit:t},type:`dimension`}:{value:e,type:r===`dimension`?void 0:r}}let l=e.match(ae);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=e.match(oe);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=le[e.toLowerCase()];return d===void 0?r===`fontFamily`||/family|font|typeface/i.test(n.at(-1)??``)?e.includes(`,`)?{value:e.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:e.replace(/^["']|["']$/g,``),type:`fontFamily`}:r===`color`&&!e.startsWith(`{`)?{value:e,type:void 0}:{value:e,type:r}:{value:d,type:`fontWeight`}}if(typeof t==`number`)return r===`fontWeight`?{value:t,type:`fontWeight`}:r===`duration`?{value:{value:t,unit:`ms`},type:`duration`}:r===`dimension`?{value:{value:t,unit:`px`},type:`dimension`}:{value:t,type:r??`number`};if(Array.isArray(t))return t.length===4&&t.every(e=>typeof e==`number`)&&(r===`cubicBezier`||n.some(e=>/ease|bezier/i.test(e)))?{value:t,type:`cubicBezier`}:t.every(e=>typeof e==`string`)?{value:t,type:r??`fontFamily`}:{value:t,type:r};if(e(t)){if(`colorSpace`in t&&`components`in t)return{value:t,type:`color`};if(`value`in t&&`unit`in t){let e=String(t.unit).toLowerCase();return e===`ms`||e===`s`?{value:t,type:`duration`}:S.has(e)?{value:t,type:`dimension`}:{value:t,type:r}}}return{value:t,type:r}}function fe(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),`$value`in n){let e=O(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function k(t,n=[]){if(Array.isArray(t))return t.map((e,t)=>k(e,[...n,String(t)]));if(!e(t))return t;if(E(t))return fe(t,n);let r={};for(let[e,i]of Object.entries(t)){if(e.startsWith(`$`)){r[e]=i;continue}r[e]=k(i,[...n,e])}if(!(`$type`in r)){let e=D(n);e&&n.length>0&&(r.$type=e)}return r}function A(t){let n={};for(let[r,i]of Object.entries(t)){let t=r.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(t.length===0)continue;let a=n;for(let n=0;n<t.length-1;n++){let r=t[n],i=a[r];e(i)?E(i)&&(a[r]={DEFAULT:i}):a[r]={},a=a[r]}let o=t.at(-1),s=O(i,t),c={$value:s.value,...s.type?{$type:s.type}:{}},l=a[o];e(l)&&!E(l)?l.DEFAULT=c:a[o]=c}return k(n)}const pe=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function j(e){let t={},n=e.replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(pe)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return A(t)}const M=`razorwind-infer`;function N(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return k(e)}function P(e){try{return N(ee.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function F(e){try{return N(p(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function I(e){try{return N(f(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const L=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>P(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>F(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>I(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>k(j(e))}];function R(){return Object.fromEntries(L.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function z(e){return k(e)}function B(){return{[M]:z}}function V(e=[]){let t={...R()},n={...B()},r=[...m],i=[M],a=0,o=0;for(let s of e){for(let e of s.parsers??[]){let n=e.name??`${s.name}-parser-${a}`;t[n]={pattern:e.pattern,parser:({contents:t})=>e.parser(t)},r.push(n),a++}for(let e of s.preprocessors??[]){let t=c(e)?{name:`${s.name}-preprocessor-${o}`,preprocessor:e}:{name:e.name??`${s.name}-preprocessor-${o}`,preprocessor:e.preprocessor};n[t.name]=t.preprocessor,i.push(t.name),o++}}return{parsers:t,preprocessors:n,parserNames:r,preprocessorNames:i}}function H(e=[],t=d){let n=V(e);if(typeof t.registerParser==`function`)for(let[e,r]of Object.entries(n.parsers))t.registerParser({name:e,...r});if(typeof t.registerPreprocessor==`function`)for(let[e,r]of Object.entries(n.preprocessors))t.registerPreprocessor({name:e,preprocessor:r});return n}const me=H;function U(e,t){return o(t)?t:s(e,t)}function W(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function G(e){return h.includes(W(e))}function K(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function q(e){return r(e,_)}function he(e){return Array.isArray(e)?e.filter(i):i(e)?[e]:[]}function ge(e,r){let i=U(e,r);if(!t(i))throw Error(`tokensPath "${r}" does not exist (resolved: ${i}).`);return n(i)?{resolvedPath:i,source:[q(i)],isStyleDictionaryConfig:!1}:K(i)?{resolvedPath:i,source:[],isStyleDictionaryConfig:!0}:{resolvedPath:i,source:[i],isStyleDictionaryConfig:!1}}function J(e){let{cwd:r,tokensPath:i,fallbackPaths:a=[]}=e,o=he(i);if(o.length>0){let e=o.map(e=>ge(r,e)),t=e.filter(e=>e.isStyleDictionaryConfig);if(t.length>0){if(e.length>1)throw Error(`tokensPath cannot mix Style Dictionary config files with other token sources.`);return{resolvedPath:t[0].resolvedPath,source:[],origin:`tokensPath`}}return{resolvedPath:e[0]?.resolvedPath,source:e.flatMap(e=>e.source),origin:`tokensPath`}}for(let e of g){let i=U(r,e);if(t(i)){if(n(i))return{resolvedPath:i,source:[q(i)],origin:`default`};if(K(i))return{resolvedPath:i,source:[],origin:`default`};if(G(i))return{resolvedPath:i,source:[i],origin:`default`}}}for(let e of a){if(!e)continue;let i=U(r,e);if(!(!t(i)||n(i))&&(G(i)||W(i)===`css`))return{resolvedPath:i,source:[i],origin:`fallback`}}return{source:[],origin:`none`}}function Y(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(v)?.[1]?.toLowerCase()}function _e(e){let t=e,n=new Set;for(;t!=null&&!n.has(t);){if(n.add(t),typeof t==`function`)return t;if(typeof t==`object`&&`default`in t){t=t.default;continue}break}throw TypeError(`style-dictionary did not export a constructable StyleDictionary class.`)}const ve=_e(d);function X(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function ye(e){let t=await l(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function Z(e,t){let n=V(e.plugins),r=new ve({...t,parsers:[...n.parserNames,...t.parsers??[]],preprocessors:[...n.preprocessorNames,...t.preprocessors??[]],hooks:{...t.hooks,parsers:{...n.parsers,...t.hooks?.parsers},preprocessors:{...n.preprocessors,...t.hooks?.preprocessors}},usesDtcg:t.usesDtcg??!0,platforms:t.platforms??{}});return await r.hasInitialized,r}async function Q(e,t){return t.length===0?{}:(await Z(e,{source:t})).tokens}async function be(e){return(await u(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function xe(e,t){let n=await be(t);if(n.length===0)return{};let r=new Map,i=[];for(let e of n){let t=Y(e);if(t){let n=r.get(t)??[];n.push(e),r.set(t,n)}else i.push(e)}if(r.size<2)return Q(e,t);let a={};if(i.length>0){let t=await Q(e,i);X(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Q(e,n);return a}async function $(e){let n=J(e.options);return n.resolvedPath&&t(n.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test(a(n.resolvedPath))?(e.sd=await Z(e.options,await ye(n.resolvedPath)),e.sd.tokens):n.source.length===0?{}:e.options.splitThemes?xe(e.options,n.source):Q(e.options,n.source)}async function Se(e){let t=await $(e);if(X(t)){let{tokensPath:t}=e.options,n=Array.isArray(t)?t.length>0?`tokensPath=[${t.map(e=>`"${e}"`).join(`, `)}]`:`default token paths / CSS fallbacks`:i(t)?`tokensPath="${t}"`:`default token paths / CSS fallbacks`;throw Error(`No design tokens found via ${n}. Provide tokensPath or add a tokens file.`)}return t}export{y as S,g as _,M as a,h as b,B as c,me as d,j as f,k as g,A as h,Y as i,z as l,O as m,Se as n,V as o,D as p,J as r,R as s,$ as t,H as u,v,m as x,_ as y};
2
- //# sourceMappingURL=tokens-N1_aQFQ9.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens-N1_aQFQ9.mjs","names":[],"sources":[],"mappings":""}