@razorwind/core 0.0.28 → 0.0.30

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 (42) hide show
  1. package/dist/{config-BIIL6BJa.d.mts → config-14WZlCKO.d.mts} +13 -1
  2. package/dist/config-14WZlCKO.d.mts.map +1 -0
  3. package/dist/{config-B-9DV8mT.d.cts → config-B0uAQJ0V.d.cts} +13 -1
  4. package/dist/config-B0uAQJ0V.d.cts.map +1 -0
  5. package/dist/{index-Di8KVEql.d.cts → index-BByAtn7d.d.cts} +2 -2
  6. package/dist/{index-Di8KVEql.d.cts.map → index-BByAtn7d.d.cts.map} +1 -1
  7. package/dist/{index-BGy8EkAJ.d.mts → index-Cgkjc-Wi.d.mts} +2 -2
  8. package/dist/{index-BGy8EkAJ.d.mts.map → index-Cgkjc-Wi.d.mts.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-49itXF3F.d.mts → plugin-BemoRvYG.d.cts} +2 -2
  18. package/dist/{plugin-D9baACxf.d.cts.map → plugin-BemoRvYG.d.cts.map} +1 -1
  19. package/dist/{plugin-D9baACxf.d.cts → plugin-CVvkZn3F.d.mts} +2 -2
  20. package/dist/plugin-CVvkZn3F.d.mts.map +1 -0
  21. package/dist/plugin.d.cts +2 -2
  22. package/dist/plugin.d.mts +2 -2
  23. package/dist/tokens-DQh8MSxD.mjs +2 -0
  24. package/dist/tokens-DQh8MSxD.mjs.map +1 -0
  25. package/dist/tokens-X_lH5RFn.cjs +1 -0
  26. package/dist/utils/index.cjs +1 -1
  27. package/dist/utils/index.d.cts +84 -3
  28. package/dist/utils/index.d.cts.map +1 -1
  29. package/dist/utils/index.d.mts +84 -3
  30. package/dist/utils/index.d.mts.map +1 -1
  31. package/dist/utils/index.mjs +1 -2
  32. package/dist/utils-Dyd9gGJ-.mjs +2 -0
  33. package/dist/utils-Dyd9gGJ-.mjs.map +1 -0
  34. package/dist/utils-qX41mcuD.cjs +1 -0
  35. package/package.json +6 -6
  36. package/dist/config-B-9DV8mT.d.cts.map +0 -1
  37. package/dist/config-BIIL6BJa.d.mts.map +0 -1
  38. package/dist/plugin-49itXF3F.d.mts.map +0 -1
  39. package/dist/tokens-B2J7nfiw.cjs +0 -1
  40. package/dist/tokens-krMC_bzy.mjs +0 -2
  41. package/dist/tokens-krMC_bzy.mjs.map +0 -1
  42. package/dist/utils/index.mjs.map +0 -1
@@ -88,6 +88,18 @@ interface Options {
88
88
  /**
89
89
  * The directory or file containing a Razorwind configuration file.
90
90
  *
91
+ * @reamarks
92
+ * If not provided, the application will look for a configuration file in the following order:
93
+ * - `razorwind.config.ts`
94
+ * - `razorwind.config.js`
95
+ * - `razorwind.config.mts`
96
+ * - `razorwind.config.mjs`
97
+ * - `razorwind.config.cjs`
98
+ * - `razorwind.config.cts`
99
+ * - `razorwind.config.json`
100
+ * - `razorwind.config.yaml`
101
+ * - `razorwind.config.yml`
102
+ *
91
103
  * @defaultValue "razorwind.config.ts"
92
104
  */
93
105
  configFile?: string;
@@ -187,4 +199,4 @@ type Config = RequiredKeys<UserConfig, "componentsPath" | "iconsPath" | "plugins
187
199
  };
188
200
  //#endregion
189
201
  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 };
190
- //# sourceMappingURL=config-BIIL6BJa.d.mts.map
202
+ //# sourceMappingURL=config-14WZlCKO.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-14WZlCKO.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":""}
@@ -88,6 +88,18 @@ interface Options {
88
88
  /**
89
89
  * The directory or file containing a Razorwind configuration file.
90
90
  *
91
+ * @reamarks
92
+ * If not provided, the application will look for a configuration file in the following order:
93
+ * - `razorwind.config.ts`
94
+ * - `razorwind.config.js`
95
+ * - `razorwind.config.mts`
96
+ * - `razorwind.config.mjs`
97
+ * - `razorwind.config.cjs`
98
+ * - `razorwind.config.cts`
99
+ * - `razorwind.config.json`
100
+ * - `razorwind.config.yaml`
101
+ * - `razorwind.config.yml`
102
+ *
91
103
  * @defaultValue "razorwind.config.ts"
92
104
  */
93
105
  configFile?: string;
@@ -187,4 +199,4 @@ type Config = RequiredKeys<UserConfig, "componentsPath" | "iconsPath" | "plugins
187
199
  };
188
200
  //#endregion
189
201
  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 };
190
- //# sourceMappingURL=config-B-9DV8mT.d.cts.map
202
+ //# sourceMappingURL=config-B0uAQJ0V.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-B0uAQJ0V.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;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-D_QQto0V.cjs";
2
2
  import "./index-BzsWyssi.cjs";
3
- import { l as Plugin, t as Config } from "./config-B-9DV8mT.cjs";
3
+ import { l as Plugin, t as Config } from "./config-B0uAQJ0V.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";
@@ -166,4 +166,4 @@ declare function registerRazorwindHooks(plugins?: Plugin[], target?: StyleDictio
166
166
  declare const registerRazorwindParsers: typeof registerRazorwindHooks;
167
167
  //#endregion
168
168
  export { RazorwindParserName as C, TOKEN_PARSER_NAMES as D, TOKEN_FILE_EXTENSIONS as E, TYPE_PATH_HINTS as O, DEFAULT_TOKEN_PATH_CANDIDATES as S, TOKEN_DIRECTORY_GLOB as T, inferTypeFromPath as _, razorwindInferPreprocessor as a, normalizeTokenTree as b, LoadTokensOptions as c, loadTokensOrThrow as d, ResolveTokensPathOptions as f, InferredTokenType as g, themeKeyFromPath as h, getRazorwindPreprocessorHooks as i, LoadedTokens as l, resolveTokensSource as m, StyleDictionaryRegisterTarget as n, registerRazorwindHooks as o, ResolvedTokensSource as p, getRazorwindParserHooks as r, registerRazorwindParsers as s, RAZORWIND_INFER_PREPROCESSOR as t, loadTokens as u, inferValue as v, THEME_BASENAME_PATTERN as w, parseCssCustomProperties as x, nestFlatTokens as y };
169
- //# sourceMappingURL=index-Di8KVEql.d.cts.map
169
+ //# sourceMappingURL=index-BByAtn7d.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-Di8KVEql.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;;;UCzMhB,0BAA0B;;;;;;EAMzC;;KAGU,eAAe,SAAS,eAAe;;;;;;;;;iBA2I7B,WACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;iBAsCW,kBACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;cClME;;UAGI;EACf,iBAAiB,QAAQ;EACzB,uBAAuB;IACrB;IACA,qBAAqB;;;;iBAyET,2BAA2B,YAAY;;;;;iBAavC,2BACd,YAAY,qBACX;;iBAKa,iCAAiC,YAC/C;;;;;;;;;;iBAgBc,uBACd,UAAS,UACT,SAAQ;;;;cA6CG,iCAAwB"}
1
+ {"version":3,"file":"index-BByAtn7d.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;;;UCzMhB,0BAA0B;;;;;;EAMzC;;KAGU,eAAe,SAAS,eAAe;;;;;;;;;iBA2I7B,WACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;iBAsCW,kBACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;cClME;;UAGI;EACf,iBAAiB,QAAQ;EACzB,uBAAuB;IACrB;IACA,qBAAqB;;;;iBAyET,2BAA2B,YAAY;;;;;iBAavC,2BACd,YAAY,qBACX;;iBAKa,iCAAiC,YAC/C;;;;;;;;;;iBAgBc,uBACd,UAAS,UACT,SAAQ;;;;cA6CG,iCAAwB"}
@@ -1,6 +1,6 @@
1
1
  import { t as Schema } from "./schema-D_QQto0V.mjs";
2
2
  import "./index-dMv2FZkj.mjs";
3
- import { l as Plugin, t as Config } from "./config-BIIL6BJa.mjs";
3
+ import { l as Plugin, t as Config } from "./config-14WZlCKO.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";
@@ -166,4 +166,4 @@ declare function registerRazorwindHooks(plugins?: Plugin[], target?: StyleDictio
166
166
  declare const registerRazorwindParsers: typeof registerRazorwindHooks;
167
167
  //#endregion
168
168
  export { RazorwindParserName as C, TOKEN_PARSER_NAMES as D, TOKEN_FILE_EXTENSIONS as E, TYPE_PATH_HINTS as O, DEFAULT_TOKEN_PATH_CANDIDATES as S, TOKEN_DIRECTORY_GLOB as T, inferTypeFromPath as _, razorwindInferPreprocessor as a, normalizeTokenTree as b, LoadTokensOptions as c, loadTokensOrThrow as d, ResolveTokensPathOptions as f, InferredTokenType as g, themeKeyFromPath as h, getRazorwindPreprocessorHooks as i, LoadedTokens as l, resolveTokensSource as m, StyleDictionaryRegisterTarget as n, registerRazorwindHooks as o, ResolvedTokensSource as p, getRazorwindParserHooks as r, registerRazorwindParsers as s, RAZORWIND_INFER_PREPROCESSOR as t, loadTokens as u, inferValue as v, THEME_BASENAME_PATTERN as w, parseCssCustomProperties as x, nestFlatTokens as y };
169
- //# sourceMappingURL=index-BGy8EkAJ.d.mts.map
169
+ //# sourceMappingURL=index-Cgkjc-Wi.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-BGy8EkAJ.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-Cgkjc-Wi.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":""}
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-r6H4qZHJ.cjs"),n=require("./tokens-B2J7nfiw.cjs"),r=require("./plugin.cjs");let i=require("@power-plant/core"),a=require("@stryke/type-checks/is-empty-object"),o=require("defu"),s=require("style-dictionary");s=e.t(s,1);let c=require("@stryke/fs/exists"),l=require("@stryke/fs/is-file"),u=require("@stryke/fs/json"),d=require("@stryke/fs/list-files"),f=require("@stryke/path/append"),p=require("@stryke/path/file-path-fns"),m=require("@stryke/path/join"),h=require("@stryke/string-format/title-case"),g=require("@stryke/type-checks/is-set-object"),_=require("@stryke/type-checks/is-set-string"),v=require("node:fs/promises"),y=require("node:path"),ee=require("@stryke/env/get-env-paths"),b=require("@stryke/path/find"),x=require("@stryke/path/replace"),te=require("@stryke/type-checks/is-function"),S=require("c12"),ne=require("jiti"),C=require("node:fs"),w=require("node:os");w=e.t(w,1);var re=`0.0.28`;const ie=t.o.partial(),T=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),E=(0,o.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function D(e,t){return(0,y.isAbsolute)(t)?t:(0,y.resolve)(e,t)}function O(e){return Array.isArray(e)?e.filter(_.isSetString):(0,_.isSetString)(e)?[e]:[]}function k(e){if((0,_.isSetString)(e))return e;if((0,g.isSetObject)(e)&&`url`in e&&(0,_.isSetString)(e.url))return e.url}function A(e){let t=e.toLowerCase();if(T.has(t))return t}function ae(e){let t=(0,p.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&T.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,_.isSetString)(n)){let e=(0,p.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,g.isSetObject)(e))return;let{files:t,usage:n,...r}=e,i=ie.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function P(e){return(0,g.isSetObject)(e)&&`path`in e}async function oe(e){let t=(0,m.joinPaths)(e,`package.json`);if(!(0,c.existsSync)(t))return;let n;try{n=await(0,u.readJsonFile)(t)}catch{return}let r={};(0,_.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,_.isSetString)(n.description)&&(r.description=n.description),(0,_.isSetString)(n.version)&&(r.version=n.version),(0,_.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=k(n.repository);if(i&&(r.repository=i),(0,g.isSetObject)(n.dependencies)&&(r.dependencies=n.dependencies),(0,g.isSetObject)(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(_.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,l;P(a)?s=j(a):(0,g.isSetObject)(a)&&(o=N(a),`files`in a&&(s=j(a.files)),`usage`in a&&(l=M(a.usage)));let d=E(o??{},r);return s?.length&&(d.files=s),l?.length&&(d.usage=l),Object.keys(d).length>0?d:void 0}async function se(e){let t=(0,m.joinPaths)(e,`component.json`);if(!(0,c.existsSync)(t))return;let n;try{n=await(0,u.readJsonFile)(t)}catch{return}if(P(n)||Array.isArray(n)){let e=j(n);if(e)return{files:e}}if(!(0,g.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,v.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,f.appendPath)(t.path,e),r=(0,p.findFileExtensionSafe)(t.path)??``,i=t.language??A(r),a=t.name||(0,p.findFileName)(t.path,{withExtension:!1})||t.path,o=t.content===void 0?(0,c.existsSync)(n)?await(0,v.readFile)(n,`utf8`):void 0:t.content;return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=(0,m.joinPaths)(e,`usage`);if(!(0,c.existsSync)(n)||!(0,l.isDirectory)(n))return;let r=await ce(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=(0,m.joinPaths)(n,e),r=A((0,p.findFileExtensionSafe)(e)??``),i=(0,p.findFileName)(e,{withExtension:!1})||e;return{name:i,title:(0,h.titleCase)(i),path:t,content:await(0,v.readFile)(t,`utf8`),...r?{language:r}:{}}}))}async function ue(e,t){let n=t??(await(0,d.listFiles)(e)).filter(e=>(0,p.findFileName)(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test((0,p.findFileExtensionSafe)(t))?`component`:`file`,path:t,content:await(0,v.readFile)((0,f.appendPath)(t,e),`utf8`)}:{type:/[tj]sx$/.test((0,p.findFileExtensionSafe)(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await(0,v.readFile)((0,f.appendPath)(t.path,e),`utf8`):void 0,path:(0,f.appendPath)(t.path,e)}))}async function de(e){let n=await oe(e),r=await se(e);if(!n&&!r)return;let i=E(r??{},n??{}),a=(0,_.isSetString)(i.name)?i.name:(0,p.findFolderName)(e),o=(0,_.isSetString)(i.title)?i.title:(0,h.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=O(e.options.componentsPath);for(let r of n){let n=D(e.cwd,r);if(!(!(0,c.existsSync)(n)||!(0,l.isDirectory)(n)))try{let e=await(0,v.readdir)(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await de((0,m.joinPaths)(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const I=t.r.partial(),L=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),R=(0,o.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function z(e,t){return(0,y.isAbsolute)(t)?t:(0,y.resolve)(e,t)}function B(e){return Array.isArray(e)?e.filter(_.isSetString):(0,_.isSetString)(e)?[e]:[]}function V(e){if((0,_.isSetString)(e))return e;if((0,g.isSetObject)(e)&&`url`in e&&(0,_.isSetString)(e.url))return e.url}function H(e){let t=e.toLowerCase();if(L.has(t))return t}function U(e){let t=(0,p.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&L.has(t))}function fe(e){return n._.test(e)}async function W(e){try{return(await(0,v.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&U(e.name)).map(e=>e.name)}catch{return[]}}function G(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 K(e){if(!(0,g.isSetObject)(e))return;let t=I.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function q(e){return(0,g.isSetObject)(e)&&`path`in e}async function J(e,t,n){let r=(0,f.appendPath)(e,t),i=H((0,p.findFileExtensionSafe)(e)??``)??`file`,a=i===`svg`?await(0,v.readFile)(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function pe(e){let t=(0,m.joinPaths)(e,`package.json`);if(!(0,c.existsSync)(t))return;let n;try{n=await(0,u.readJsonFile)(t)}catch{return}let r={};(0,_.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,_.isSetString)(n.description)&&(r.description=n.description),(0,_.isSetString)(n.version)&&(r.version=n.version),(0,_.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=V(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(_.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;q(a)?s=G(a):(0,g.isSetObject)(a)&&(o=K(a),`files`in a&&(s=G(a.files)));let l=R(o??{},r);return s?.length&&(l.files=s),Object.keys(l).length>0?l:void 0}async function me(e){let t=(0,m.joinPaths)(e,`icon.json`);if(!(0,c.existsSync)(t))return;let n;try{n=await(0,u.readJsonFile)(t)}catch{return}if(q(n)||Array.isArray(n)){let e=G(n);if(e)return{files:e}}return K(n)}async function he(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,f.appendPath)(t.path,e),r=(0,p.findFileExtensionSafe)(t.path)??``,i=t.type??H(r)??`file`,a=t.content===void 0?i===`svg`?await(0,v.readFile)(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await W(e);return Promise.all(n.map(t=>J(t,e)))}async function ge(e){let n=await pe(e),r=await me(e),i=await W(e);if(!n&&!r&&i.length===0)return;let a=R(r??{},n??{}),o=(0,_.isSetString)(a.name)?a.name:(0,p.findFolderName)(e),s=(0,_.isSetString)(a.title)?a.title:(0,h.titleCase)(o),c=t.r.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await he(e,c.data.files)}}function Y(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:(0,h.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 X(e,t,n){let r=await W(e);for(let i of r){let r=(0,p.findFileName)(i,{withExtension:!1});r&&Y(n,r,await J(i,e,t))}}async function Z(e){let t={},n=B(e.options.iconsPath);for(let r of n){let n=z(e.cwd,r);if(!(!(0,c.existsSync)(n)||!(0,l.isDirectory)(n)))try{let e=await(0,v.readdir)(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=(0,m.joinPaths)(n,r.name);if(r.isDirectory()){if(fe(r.name)){await X(e,r.name,t);continue}let n=await ge(e);if(n){let e=t[n.name];t[n.name]=e?R(n,e):n}continue}if(r.isFile()&&U(r.name)){let e=(0,p.findFileName)(r.name,{withExtension:!1});if(!e)continue;Y(t,e,await J(r.name,n))}}}catch{continue}}return t}const Q=w.default.homedir();async function $(e,t){let n=t.configFile&&(0,C.existsSync)((0,x.replacePath)(t.configFile,e))?(0,x.replacePath)(t.configFile,e):t.configFile&&(0,C.existsSync)(t.configFile)?t.configFile:(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.config.ts`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.config.ts`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.config.js`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.config.js`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.config.mts`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.config.mts`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.config.mjs`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.config.mjs`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.config.ts`))?(0,m.joinPaths)(e,`razorwind.config.ts`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.config.js`))?(0,m.joinPaths)(e,`razorwind.config.js`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.config.mts`))?(0,m.joinPaths)(e,`razorwind.config.mts`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.config.mjs`))?(0,m.joinPaths)(e,`razorwind.config.mjs`):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(a.esmResolve(n));if(r?.default){let i={};(0,te.isFunction)(r.default)?i=await Promise.resolve(r.default({cwd:e,mode:t.mode??`development`})):((0,g.isSetObject)(r.default)||Array.isArray(r.default))&&(i=r.default),((0,g.isSetObject)(i)||Array.isArray(i))&&(s={...i,configFile:n})}}let[c,l,u]=await Promise.all([(0,S.loadConfig)({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),(0,S.loadConfig)({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),(0,S.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,g.isSetObject)(c?.config)?{...c.config}:{},(0,g.isSetObject)(l?.config)?{...l.config}:{},(0,g.isSetObject)(u?.config)?{...u.config}:{},{componentsPath:e,iconsPath:(0,m.joinPaths)(e,`assets/icons`),plugins:[]});if(Array.isArray(d.componentsPath)){let t=d.componentsPath.filter(_.isSetString).map(e=>(0,b.findFilePath)(e));d.componentsPath=t.length>0?t:e}else d.componentsPath=(0,_.isSetString)(d.componentsPath)?(0,b.findFilePath)(d.componentsPath):e;if(Array.isArray(d.iconsPath)){let t=d.iconsPath.filter(_.isSetString).map(e=>(0,b.findFilePath)(e));d.iconsPath=t.length>0?t:(0,m.joinPaths)(e,`assets/icons`)}else d.iconsPath=(0,_.isSetString)(d.iconsPath)?(0,b.findFilePath)(d.iconsPath):(0,m.joinPaths)(e,`assets/icons`);return Array.isArray(d.plugins)||(d.plugins=[]),d}function _e(e){return e}const ve=(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.`);n.l(t.options.plugins,s.default);let r=t.options.tokens;(!r||(0,a.isEmptyObject)(r))&&(r=await n.t(t));let c={tokens:r??{},components:(0,o.defu)(t.options.components??{},await F(t)??{}),icons:(0,o.defu)(t.options.icons??{},await Z(t)??{})};for(let e of t.options.plugins.filter(e=>e.extract))c=await e.extract(c,t.options);if(!c.tokens||(0,a.isEmptyObject)(c.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(c,t.options);return c},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.g,exports.RAZORWIND_INFER_PREPROCESSOR=n.a,exports.THEME_BASENAME_PATTERN=n._,exports.TOKEN_DIRECTORY_GLOB=n.v,exports.TOKEN_FILE_EXTENSIONS=n.y,exports.TYPE_PATH_HINTS=n.x,exports.WINDIE_PARSERS=n.b,exports.razorwindParsers=n.b,exports.defineConfig=_e,exports.definePlugin=r.definePlugin,exports.generator=ve,exports.getRazorwindParserHooks=n.o,exports.getRazorwindPreprocessorHooks=n.s,exports.inferTypeFromPath=n.f,exports.inferValue=n.p,exports.loadComponents=F,exports.loadIcons=Z,exports.loadTokens=n.t,exports.loadTokensOrThrow=n.n,exports.nestFlatTokens=n.m,exports.normalizeTokenTree=n.h,exports.parseCssCustomProperties=n.d,exports.razorwindInferPreprocessor=n.c,exports.registerRazorwindHooks=n.l,exports.registerRazorwindParsers=n.u,exports.resolveConfig=$,exports.resolveTokensSource=n.r,exports.themeKeyFromPath=n.i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./schema-r6H4qZHJ.cjs"),n=require("./tokens-X_lH5RFn.cjs"),r=require("./plugin.cjs");let i=require("@power-plant/core"),a=require("@stryke/type-checks/is-empty-object"),o=require("defu"),s=require("style-dictionary");s=e.t(s,1);let c=require("@stryke/fs/exists"),l=require("@stryke/fs/is-file"),u=require("@stryke/fs/json"),d=require("@stryke/fs/list-files"),f=require("@stryke/path/append"),p=require("@stryke/path/file-path-fns"),m=require("@stryke/path/join"),h=require("@stryke/string-format/title-case"),g=require("@stryke/type-checks/is-set-object"),_=require("@stryke/type-checks/is-set-string"),v=require("node:fs/promises"),y=require("node:path"),ee=require("@stryke/env/get-env-paths"),b=require("@stryke/path/find"),x=require("@stryke/path/replace"),te=require("@stryke/type-checks/is-function"),S=require("c12"),ne=require("jiti"),C=require("node:fs"),w=require("node:os");w=e.t(w,1);var re=`0.0.30`;const ie=t.o.partial(),T=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),E=(0,o.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function D(e,t){return(0,y.isAbsolute)(t)?t:(0,y.resolve)(e,t)}function O(e){return Array.isArray(e)?e.filter(_.isSetString):(0,_.isSetString)(e)?[e]:[]}function k(e){if((0,_.isSetString)(e))return e;if((0,g.isSetObject)(e)&&`url`in e&&(0,_.isSetString)(e.url))return e.url}function A(e){let t=e.toLowerCase();if(T.has(t))return t}function ae(e){let t=(0,p.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&T.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,_.isSetString)(n)){let e=(0,p.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,g.isSetObject)(e))return;let{files:t,usage:n,...r}=e,i=ie.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function P(e){return(0,g.isSetObject)(e)&&`path`in e}async function oe(e){let t=(0,m.joinPaths)(e,`package.json`);if(!(0,c.existsSync)(t))return;let n;try{n=await(0,u.readJsonFile)(t)}catch{return}let r={};(0,_.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,_.isSetString)(n.description)&&(r.description=n.description),(0,_.isSetString)(n.version)&&(r.version=n.version),(0,_.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=k(n.repository);if(i&&(r.repository=i),(0,g.isSetObject)(n.dependencies)&&(r.dependencies=n.dependencies),(0,g.isSetObject)(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(_.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,l;P(a)?s=j(a):(0,g.isSetObject)(a)&&(o=N(a),`files`in a&&(s=j(a.files)),`usage`in a&&(l=M(a.usage)));let d=E(o??{},r);return s?.length&&(d.files=s),l?.length&&(d.usage=l),Object.keys(d).length>0?d:void 0}async function se(e){let t=(0,m.joinPaths)(e,`component.json`);if(!(0,c.existsSync)(t))return;let n;try{n=await(0,u.readJsonFile)(t)}catch{return}if(P(n)||Array.isArray(n)){let e=j(n);if(e)return{files:e}}if(!(0,g.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,v.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,f.appendPath)(t.path,e),r=(0,p.findFileExtensionSafe)(t.path)??``,i=t.language??A(r),a=t.name||(0,p.findFileName)(t.path,{withExtension:!1})||t.path,o=t.content===void 0?(0,c.existsSync)(n)?await(0,v.readFile)(n,`utf8`):void 0:t.content;return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=(0,m.joinPaths)(e,`usage`);if(!(0,c.existsSync)(n)||!(0,l.isDirectory)(n))return;let r=await ce(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=(0,m.joinPaths)(n,e),r=A((0,p.findFileExtensionSafe)(e)??``),i=(0,p.findFileName)(e,{withExtension:!1})||e;return{name:i,title:(0,h.titleCase)(i),path:t,content:await(0,v.readFile)(t,`utf8`),...r?{language:r}:{}}}))}async function ue(e,t){let n=t??(await(0,d.listFiles)(e)).filter(e=>(0,p.findFileName)(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test((0,p.findFileExtensionSafe)(t))?`component`:`file`,path:t,content:await(0,v.readFile)((0,f.appendPath)(t,e),`utf8`)}:{type:/[tj]sx$/.test((0,p.findFileExtensionSafe)(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await(0,v.readFile)((0,f.appendPath)(t.path,e),`utf8`):void 0,path:(0,f.appendPath)(t.path,e)}))}async function de(e){let n=await oe(e),r=await se(e);if(!n&&!r)return;let i=E(r??{},n??{}),a=(0,_.isSetString)(i.name)?i.name:(0,p.findFolderName)(e),o=(0,_.isSetString)(i.title)?i.title:(0,h.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=O(e.options.componentsPath);for(let r of n){let n=D(e.cwd,r);if(!(!(0,c.existsSync)(n)||!(0,l.isDirectory)(n)))try{let e=await(0,v.readdir)(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await de((0,m.joinPaths)(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const I=t.r.partial(),L=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),R=(0,o.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function z(e,t){return(0,y.isAbsolute)(t)?t:(0,y.resolve)(e,t)}function B(e){return Array.isArray(e)?e.filter(_.isSetString):(0,_.isSetString)(e)?[e]:[]}function V(e){if((0,_.isSetString)(e))return e;if((0,g.isSetObject)(e)&&`url`in e&&(0,_.isSetString)(e.url))return e.url}function H(e){let t=e.toLowerCase();if(L.has(t))return t}function U(e){let t=(0,p.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&L.has(t))}function fe(e){return n._.test(e)}async function W(e){try{return(await(0,v.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&U(e.name)).map(e=>e.name)}catch{return[]}}function G(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 K(e){if(!(0,g.isSetObject)(e))return;let t=I.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function q(e){return(0,g.isSetObject)(e)&&`path`in e}async function J(e,t,n){let r=(0,f.appendPath)(e,t),i=H((0,p.findFileExtensionSafe)(e)??``)??`file`,a=i===`svg`?await(0,v.readFile)(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function pe(e){let t=(0,m.joinPaths)(e,`package.json`);if(!(0,c.existsSync)(t))return;let n;try{n=await(0,u.readJsonFile)(t)}catch{return}let r={};(0,_.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,_.isSetString)(n.description)&&(r.description=n.description),(0,_.isSetString)(n.version)&&(r.version=n.version),(0,_.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=V(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(_.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;q(a)?s=G(a):(0,g.isSetObject)(a)&&(o=K(a),`files`in a&&(s=G(a.files)));let l=R(o??{},r);return s?.length&&(l.files=s),Object.keys(l).length>0?l:void 0}async function me(e){let t=(0,m.joinPaths)(e,`icon.json`);if(!(0,c.existsSync)(t))return;let n;try{n=await(0,u.readJsonFile)(t)}catch{return}if(q(n)||Array.isArray(n)){let e=G(n);if(e)return{files:e}}return K(n)}async function he(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,f.appendPath)(t.path,e),r=(0,p.findFileExtensionSafe)(t.path)??``,i=t.type??H(r)??`file`,a=t.content===void 0?i===`svg`?await(0,v.readFile)(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await W(e);return Promise.all(n.map(t=>J(t,e)))}async function ge(e){let n=await pe(e),r=await me(e),i=await W(e);if(!n&&!r&&i.length===0)return;let a=R(r??{},n??{}),o=(0,_.isSetString)(a.name)?a.name:(0,p.findFolderName)(e),s=(0,_.isSetString)(a.title)?a.title:(0,h.titleCase)(o),c=t.r.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await he(e,c.data.files)}}function Y(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:(0,h.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 X(e,t,n){let r=await W(e);for(let i of r){let r=(0,p.findFileName)(i,{withExtension:!1});r&&Y(n,r,await J(i,e,t))}}async function Z(e){let t={},n=B(e.options.iconsPath);for(let r of n){let n=z(e.cwd,r);if(!(!(0,c.existsSync)(n)||!(0,l.isDirectory)(n)))try{let e=await(0,v.readdir)(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=(0,m.joinPaths)(n,r.name);if(r.isDirectory()){if(fe(r.name)){await X(e,r.name,t);continue}let n=await ge(e);if(n){let e=t[n.name];t[n.name]=e?R(n,e):n}continue}if(r.isFile()&&U(r.name)){let e=(0,p.findFileName)(r.name,{withExtension:!1});if(!e)continue;Y(t,e,await J(r.name,n))}}}catch{continue}}return t}const Q=w.default.homedir();async function $(e,t){let n=t.configFile&&(0,C.existsSync)((0,x.replacePath)(t.configFile,e))?(0,x.replacePath)(t.configFile,e):t.configFile&&(0,C.existsSync)(t.configFile)?t.configFile:(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.ts`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.ts`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.js`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.js`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.mts`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.mts`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.mjs`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.mjs`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.cjs`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.cjs`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.cts`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.cts`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.json`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.json`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.yaml`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.yaml`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.yml`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.yml`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.config.ts`))?(0,m.joinPaths)(e,`razorwind.config.ts`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.config.js`))?(0,m.joinPaths)(e,`razorwind.config.js`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.config.mts`))?(0,m.joinPaths)(e,`razorwind.config.mts`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.config.mjs`))?(0,m.joinPaths)(e,`razorwind.config.mjs`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.config.cjs`))?(0,m.joinPaths)(e,`razorwind.config.cjs`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.config.cts`))?(0,m.joinPaths)(e,`razorwind.config.cts`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.config.json`))?(0,m.joinPaths)(e,`razorwind.config.json`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.config.yaml`))?(0,m.joinPaths)(e,`razorwind.config.yaml`):(0,C.existsSync)((0,m.joinPaths)(e,`razorwind.config.yml`))?(0,m.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(a.esmResolve(n));if(r?.default){let i={};(0,te.isFunction)(r.default)?i=await Promise.resolve(r.default({cwd:e,mode:t.mode??`development`})):((0,g.isSetObject)(r.default)||Array.isArray(r.default))&&(i=r.default),((0,g.isSetObject)(i)||Array.isArray(i))&&(s={...i,configFile:n})}}let[c,l,u]=await Promise.all([(0,S.loadConfig)({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),(0,S.loadConfig)({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),(0,S.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,g.isSetObject)(c?.config)?{...c.config}:{},(0,g.isSetObject)(l?.config)?{...l.config}:{},(0,g.isSetObject)(u?.config)?{...u.config}:{},{componentsPath:e,iconsPath:(0,m.joinPaths)(e,`assets/icons`),plugins:[]});if(Array.isArray(d.componentsPath)){let t=d.componentsPath.filter(_.isSetString).map(e=>(0,b.findFilePath)(e));d.componentsPath=t.length>0?t:e}else d.componentsPath=(0,_.isSetString)(d.componentsPath)?(0,b.findFilePath)(d.componentsPath):e;if(Array.isArray(d.iconsPath)){let t=d.iconsPath.filter(_.isSetString).map(e=>(0,b.findFilePath)(e));d.iconsPath=t.length>0?t:(0,m.joinPaths)(e,`assets/icons`)}else d.iconsPath=(0,_.isSetString)(d.iconsPath)?(0,b.findFilePath)(d.iconsPath):(0,m.joinPaths)(e,`assets/icons`);return Array.isArray(d.plugins)||(d.plugins=[]),d}function _e(e){return e}const ve=(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.`);n.l(t.options.plugins,s.default);let r=t.options.tokens;(!r||(0,a.isEmptyObject)(r))&&(r=await n.t(t));let c={tokens:r??{},components:(0,o.defu)(t.options.components??{},await F(t)??{}),icons:(0,o.defu)(t.options.icons??{},await Z(t)??{})};for(let e of t.options.plugins.filter(e=>e.extract))c=await e.extract(c,t.options);if(!c.tokens||(0,a.isEmptyObject)(c.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(c,t.options);return c},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.g,exports.RAZORWIND_INFER_PREPROCESSOR=n.a,exports.THEME_BASENAME_PATTERN=n._,exports.TOKEN_DIRECTORY_GLOB=n.v,exports.TOKEN_FILE_EXTENSIONS=n.y,exports.TYPE_PATH_HINTS=n.x,exports.WINDIE_PARSERS=n.b,exports.razorwindParsers=n.b,exports.defineConfig=_e,exports.definePlugin=r.definePlugin,exports.generator=ve,exports.getRazorwindParserHooks=n.o,exports.getRazorwindPreprocessorHooks=n.s,exports.inferTypeFromPath=n.f,exports.inferValue=n.p,exports.loadComponents=F,exports.loadIcons=Z,exports.loadTokens=n.t,exports.loadTokensOrThrow=n.n,exports.nestFlatTokens=n.m,exports.normalizeTokenTree=n.h,exports.parseCssCustomProperties=n.d,exports.razorwindInferPreprocessor=n.c,exports.registerRazorwindHooks=n.l,exports.registerRazorwindParsers=n.u,exports.resolveConfig=$,exports.resolveTokensSource=n.r,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-D_QQto0V.cjs";
2
2
  import "./index-BzsWyssi.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-B-9DV8mT.cjs";
4
- import { t as definePlugin } from "./plugin-D9baACxf.cjs";
5
- import { C as RazorwindParserName, D as TOKEN_PARSER_NAMES, E as TOKEN_FILE_EXTENSIONS, O as TYPE_PATH_HINTS, S as DEFAULT_TOKEN_PATH_CANDIDATES, T as TOKEN_DIRECTORY_GLOB, _ as inferTypeFromPath, a as razorwindInferPreprocessor, b as normalizeTokenTree, c as LoadTokensOptions, d as loadTokensOrThrow, f as ResolveTokensPathOptions, g as InferredTokenType, h as themeKeyFromPath, i as getRazorwindPreprocessorHooks, l as LoadedTokens, m as resolveTokensSource, n as StyleDictionaryRegisterTarget, o as registerRazorwindHooks, p as ResolvedTokensSource, r as getRazorwindParserHooks, s as registerRazorwindParsers, t as RAZORWIND_INFER_PREPROCESSOR, u as loadTokens, v as inferValue, w as THEME_BASENAME_PATTERN, x as parseCssCustomProperties, y as nestFlatTokens } from "./index-Di8KVEql.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-B0uAQJ0V.cjs";
4
+ import { t as definePlugin } from "./plugin-BemoRvYG.cjs";
5
+ import { C as RazorwindParserName, D as TOKEN_PARSER_NAMES, E as TOKEN_FILE_EXTENSIONS, O as TYPE_PATH_HINTS, S as DEFAULT_TOKEN_PATH_CANDIDATES, T as TOKEN_DIRECTORY_GLOB, _ as inferTypeFromPath, a as razorwindInferPreprocessor, b as normalizeTokenTree, c as LoadTokensOptions, d as loadTokensOrThrow, f as ResolveTokensPathOptions, g as InferredTokenType, h as themeKeyFromPath, i as getRazorwindPreprocessorHooks, l as LoadedTokens, m as resolveTokensSource, n as StyleDictionaryRegisterTarget, o as registerRazorwindHooks, p as ResolvedTokensSource, r as getRazorwindParserHooks, s as registerRazorwindParsers, t as RAZORWIND_INFER_PREPROCESSOR, u as loadTokens, v as inferValue, w as THEME_BASENAME_PATTERN, x as parseCssCustomProperties, y as nestFlatTokens } from "./index-BByAtn7d.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-D_QQto0V.mjs";
2
2
  import "./index-dMv2FZkj.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-BIIL6BJa.mjs";
4
- import { t as definePlugin } from "./plugin-49itXF3F.mjs";
5
- import { C as RazorwindParserName, D as TOKEN_PARSER_NAMES, E as TOKEN_FILE_EXTENSIONS, O as TYPE_PATH_HINTS, S as DEFAULT_TOKEN_PATH_CANDIDATES, T as TOKEN_DIRECTORY_GLOB, _ as inferTypeFromPath, a as razorwindInferPreprocessor, b as normalizeTokenTree, c as LoadTokensOptions, d as loadTokensOrThrow, f as ResolveTokensPathOptions, g as InferredTokenType, h as themeKeyFromPath, i as getRazorwindPreprocessorHooks, l as LoadedTokens, m as resolveTokensSource, n as StyleDictionaryRegisterTarget, o as registerRazorwindHooks, p as ResolvedTokensSource, r as getRazorwindParserHooks, s as registerRazorwindParsers, t as RAZORWIND_INFER_PREPROCESSOR, u as loadTokens, v as inferValue, w as THEME_BASENAME_PATTERN, x as parseCssCustomProperties, y as nestFlatTokens } from "./index-BGy8EkAJ.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-14WZlCKO.mjs";
4
+ import { t as definePlugin } from "./plugin-CVvkZn3F.mjs";
5
+ import { C as RazorwindParserName, D as TOKEN_PARSER_NAMES, E as TOKEN_FILE_EXTENSIONS, O as TYPE_PATH_HINTS, S as DEFAULT_TOKEN_PATH_CANDIDATES, T as TOKEN_DIRECTORY_GLOB, _ as inferTypeFromPath, a as razorwindInferPreprocessor, b as normalizeTokenTree, c as LoadTokensOptions, d as loadTokensOrThrow, f as ResolveTokensPathOptions, g as InferredTokenType, h as themeKeyFromPath, i as getRazorwindPreprocessorHooks, l as LoadedTokens, m as resolveTokensSource, n as StyleDictionaryRegisterTarget, o as registerRazorwindHooks, p as ResolvedTokensSource, r as getRazorwindParserHooks, s as registerRazorwindParsers, t as RAZORWIND_INFER_PREPROCESSOR, u as loadTokens, v as inferValue, w as THEME_BASENAME_PATTERN, x as parseCssCustomProperties, y as nestFlatTokens } from "./index-Cgkjc-Wi.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-jfwKMfbW.mjs";import{_ as o,a as s,b as c,c as l,d as u,f as ee,g as te,h as ne,i as re,l as d,m as ie,n as ae,o as oe,p as se,r as ce,s as le,t as f,u as ue,v as de,x as fe,y as pe}from"./tokens-krMC_bzy.mjs";import{definePlugin as me}from"./plugin.mjs";import{defineGenerator as he,defineSchema as ge,useExecution as p}from"@power-plant/core";import{isEmptyObject as m}from"@stryke/type-checks/is-empty-object";import{createDefu as h,defu as g}from"defu";import _e from"style-dictionary";import{existsSync as _}from"@stryke/fs/exists";import{isDirectory as v}from"@stryke/fs/is-file";import{readJsonFile as y}from"@stryke/fs/json";import{listFiles as ve}from"@stryke/fs/list-files";import{appendPath as b}from"@stryke/path/append";import{findFileExtensionSafe as x,findFileName as S,findFolderName as C}from"@stryke/path/file-path-fns";import{joinPaths as w}from"@stryke/path/join";import{titleCase as T}from"@stryke/string-format/title-case";import{isSetObject as E}from"@stryke/type-checks/is-set-object";import{isSetString as D}from"@stryke/type-checks/is-set-string";import{readFile as O,readdir as k}from"node:fs/promises";import{isAbsolute as A,resolve as j}from"node:path";import{getEnvPaths as ye}from"@stryke/env/get-env-paths";import{findFilePath as M}from"@stryke/path/find";import{replacePath as N}from"@stryke/path/replace";import{isFunction as be}from"@stryke/type-checks/is-function";import{loadConfig as P}from"c12";import{createJiti as xe}from"jiti";import{existsSync as F}from"node:fs";import Se from"node:os";var Ce=`0.0.28`;const we=t.partial(),I=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),L=h((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function Te(e,t){return A(t)?t:j(e,t)}function Ee(e){return Array.isArray(e)?e.filter(D):D(e)?[e]:[]}function De(e){if(D(e))return e;if(E(e)&&`url`in e&&D(e.url))return e.url}function R(e){let t=e.toLowerCase();if(I.has(t))return t}function Oe(e){let t=x(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(D(t)){let e=S(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(!E(e))return;let{files:t,usage:n,...r}=e,i=we.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function H(e){return E(e)&&`path`in e}async function ke(e){let t=w(e,`package.json`);if(!_(t))return;let n;try{n=await y(t)}catch{return}let r={};D(n.name)&&(r.name=n.name,r.title=n.name),D(n.description)&&(r.description=n.description),D(n.version)&&(r.version=n.version),D(n.homepage)&&(r.homepage=n.homepage);let i=De(n.repository);if(i&&(r.repository=i),E(n.dependencies)&&(r.dependencies=n.dependencies),E(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(D);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,c;H(a)?s=z(a):E(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 Ae(e){let t=w(e,`component.json`);if(!_(t))return;let n;try{n=await y(t)}catch{return}if(H(n)||Array.isArray(n)){let e=z(n);if(e)return{files:e}}if(!E(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 je(e){try{return(await k(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&Oe(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function Me(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=b(t.path,e),r=x(t.path)??``,i=t.language??R(r),a=t.name||S(t.path,{withExtension:!1})||t.path,o=t.content===void 0?_(n)?await O(n,`utf8`):void 0:t.content;return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=w(e,`usage`);if(!_(n)||!v(n))return;let r=await je(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=w(n,e),r=R(x(e)??``),i=S(e,{withExtension:!1})||e;return{name:i,title:T(i),path:t,content:await O(t,`utf8`),...r?{language:r}:{}}}))}async function Ne(e,t){let n=t??(await ve(e)).filter(e=>S(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test(x(t))?`component`:`file`,path:t,content:await O(b(t,e),`utf8`)}:{type:/[tj]sx$/.test(x(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await O(b(t.path,e),`utf8`):void 0,path:b(t.path,e)}))}async function Pe(e){let n=await ke(e),r=await Ae(e);if(!n&&!r)return;let i=L(r??{},n??{}),a=D(i.name)?i.name:C(e),o=D(i.title)?i.title:T(a),s=t.safeParse({...i,name:a,title:o});if(!s.success)return;let c=await Me(e,s.data.usage);return{...s.data,files:await Ne(e,s.data.files),...c?.length?{usage:c}:{}}}async function U(e){let t={},n=Ee(e.options.componentsPath);for(let r of n){let n=Te(e.cwd,r);if(!(!_(n)||!v(n)))try{let e=await k(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await Pe(w(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const Fe=e.partial(),W=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),G=h((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function Ie(e,t){return A(t)?t:j(e,t)}function Le(e){return Array.isArray(e)?e.filter(D):D(e)?[e]:[]}function Re(e){if(D(e))return e;if(E(e)&&`url`in e&&D(e.url))return e.url}function K(e){let t=e.toLowerCase();if(W.has(t))return t}function q(e){let t=x(e)?.toLowerCase();return!!(t&&W.has(t))}function ze(e){return o.test(e)}async function J(e){try{return(await k(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(!E(e))return;let t=Fe.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function Z(e){return E(e)&&`path`in e}async function Q(e,t,n){let r=b(e,t),i=K(x(e)??``)??`file`,a=i===`svg`?await O(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function Be(e){let t=w(e,`package.json`);if(!_(t))return;let n;try{n=await y(t)}catch{return}let r={};D(n.name)&&(r.name=n.name,r.title=n.name),D(n.description)&&(r.description=n.description),D(n.version)&&(r.version=n.version),D(n.homepage)&&(r.homepage=n.homepage);let i=Re(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(D);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;Z(a)?s=Y(a):E(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=w(e,`icon.json`);if(!_(t))return;let n;try{n=await y(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=b(t.path,e),r=x(t.path)??``,i=t.type??K(r)??`file`,a=t.content===void 0?i===`svg`?await O(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=D(a.name)?a.name:C(t),s=D(a.title)?a.title:T(o),c=e.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await He(t,c.data.files)}}function $(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:T(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 We(e,t,n){let r=await J(e);for(let i of r){let r=S(i,{withExtension:!1});r&&$(n,r,await Q(i,e,t))}}async function Ge(e){let t={},n=Le(e.options.iconsPath);for(let r of n){let n=Ie(e.cwd,r);if(!(!_(n)||!v(n)))try{let e=await k(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=w(n,r.name);if(r.isDirectory()){if(ze(r.name)){await We(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=S(r.name,{withExtension:!1});if(!e)continue;$(t,e,await Q(r.name,n))}}}catch{continue}}return t}const Ke=Se.homedir();async function qe(e,t){let n=t.configFile&&F(N(t.configFile,e))?N(t.configFile,e):t.configFile&&F(t.configFile)?t.configFile:F(w(e,`razorwind.${t.mode}.config.ts`))?w(e,`razorwind.${t.mode}.config.ts`):F(w(e,`razorwind.${t.mode}.config.js`))?w(e,`razorwind.${t.mode}.config.js`):F(w(e,`razorwind.${t.mode}.config.mts`))?w(e,`razorwind.${t.mode}.config.mts`):F(w(e,`razorwind.${t.mode}.config.mjs`))?w(e,`razorwind.${t.mode}.config.mjs`):F(w(e,`razorwind.config.ts`))?w(e,`razorwind.config.ts`):F(w(e,`razorwind.config.js`))?w(e,`razorwind.config.js`):F(w(e,`razorwind.config.mts`))?w(e,`razorwind.config.mts`):F(w(e,`razorwind.config.mjs`))?w(e,`razorwind.config.mjs`):void 0,r=ye({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=xe(e,i),o={};if(n){let r=await a.import(a.esmResolve(n));if(r?.default){let i={};be(r.default)?i=await Promise.resolve(r.default({cwd:e,mode:t.mode??`development`})):(E(r.default)||Array.isArray(r.default))&&(i=r.default),(E(i)||Array.isArray(i))&&(o={...i,configFile:n})}}let[s,c,l]=await Promise.all([P({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),P({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),P({cwd:Ke,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),u=g({cwd:e,envPaths:{...r,home:Ke}},t,o,E(s?.config)?{...s.config}:{},E(c?.config)?{...c.config}:{},E(l?.config)?{...l.config}:{},{componentsPath:e,iconsPath:w(e,`assets/icons`),plugins:[]});if(Array.isArray(u.componentsPath)){let t=u.componentsPath.filter(D).map(e=>M(e));u.componentsPath=t.length>0?t:e}else u.componentsPath=D(u.componentsPath)?M(u.componentsPath):e;if(Array.isArray(u.iconsPath)){let t=u.iconsPath.filter(D).map(e=>M(e));u.iconsPath=t.length>0?t:w(e,`assets/icons`)}else u.iconsPath=D(u.iconsPath)?M(u.iconsPath):w(e,`assets/icons`);return Array.isArray(u.plugins)||(u.plugins=[]),u}function Je(e){return e}const Ye=he({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, and icons.`,version:Ce,tags:[`razorwind`,`dtcg`]},schema:ge({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.`);d(t.options.plugins,_e);let n=t.options.tokens;(!n||m(n))&&(n=await f(t));let r={tokens:n??{},components:g(t.options.components??{},await U(t)??{}),icons:g(t.options.icons??{},await Ge(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=g(i,n)}return n}});export{te as DEFAULT_TOKEN_PATH_CANDIDATES,s as RAZORWIND_INFER_PREPROCESSOR,o as THEME_BASENAME_PATTERN,de as TOKEN_DIRECTORY_GLOB,pe as TOKEN_FILE_EXTENSIONS,fe as TYPE_PATH_HINTS,c as WINDIE_PARSERS,c as razorwindParsers,Je as defineConfig,me as definePlugin,Ye as generator,oe as getRazorwindParserHooks,le as getRazorwindPreprocessorHooks,ee as inferTypeFromPath,se as inferValue,U as loadComponents,Ge as loadIcons,f as loadTokens,ae as loadTokensOrThrow,ie as nestFlatTokens,ne as normalizeTokenTree,u as parseCssCustomProperties,l as razorwindInferPreprocessor,d as registerRazorwindHooks,ue as registerRazorwindParsers,qe as resolveConfig,ce as resolveTokensSource,re as themeKeyFromPath};
1
+ import{a as e,c as t,i as n,l as r,r as i,s as a}from"./schema-jfwKMfbW.mjs";import{_ as o,a as s,b as c,c as l,d as u,f as ee,g as te,h as ne,i as re,l as d,m as ie,n as ae,o as oe,p as se,r as ce,s as le,t as f,u as ue,v as de,x as fe,y as pe}from"./tokens-DQh8MSxD.mjs";import{definePlugin as me}from"./plugin.mjs";import{defineGenerator as he,defineSchema as ge,useExecution as p}from"@power-plant/core";import{isEmptyObject as m}from"@stryke/type-checks/is-empty-object";import{createDefu as h,defu as g}from"defu";import _e from"style-dictionary";import{existsSync as _}from"@stryke/fs/exists";import{isDirectory as v}from"@stryke/fs/is-file";import{readJsonFile as y}from"@stryke/fs/json";import{listFiles as ve}from"@stryke/fs/list-files";import{appendPath as b}from"@stryke/path/append";import{findFileExtensionSafe as x,findFileName as S,findFolderName as C}from"@stryke/path/file-path-fns";import{joinPaths as w}from"@stryke/path/join";import{titleCase as T}from"@stryke/string-format/title-case";import{isSetObject as E}from"@stryke/type-checks/is-set-object";import{isSetString as D}from"@stryke/type-checks/is-set-string";import{readFile as O,readdir as k}from"node:fs/promises";import{isAbsolute as A,resolve as j}from"node:path";import{getEnvPaths as ye}from"@stryke/env/get-env-paths";import{findFilePath as M}from"@stryke/path/find";import{replacePath as N}from"@stryke/path/replace";import{isFunction as be}from"@stryke/type-checks/is-function";import{loadConfig as P}from"c12";import{createJiti as xe}from"jiti";import{existsSync as F}from"node:fs";import Se from"node:os";var Ce=`0.0.30`;const we=t.partial(),I=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),L=h((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function Te(e,t){return A(t)?t:j(e,t)}function Ee(e){return Array.isArray(e)?e.filter(D):D(e)?[e]:[]}function De(e){if(D(e))return e;if(E(e)&&`url`in e&&D(e.url))return e.url}function R(e){let t=e.toLowerCase();if(I.has(t))return t}function Oe(e){let t=x(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(D(t)){let e=S(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(!E(e))return;let{files:t,usage:n,...r}=e,i=we.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function H(e){return E(e)&&`path`in e}async function ke(e){let t=w(e,`package.json`);if(!_(t))return;let n;try{n=await y(t)}catch{return}let r={};D(n.name)&&(r.name=n.name,r.title=n.name),D(n.description)&&(r.description=n.description),D(n.version)&&(r.version=n.version),D(n.homepage)&&(r.homepage=n.homepage);let i=De(n.repository);if(i&&(r.repository=i),E(n.dependencies)&&(r.dependencies=n.dependencies),E(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(D);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,c;H(a)?s=z(a):E(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 Ae(e){let t=w(e,`component.json`);if(!_(t))return;let n;try{n=await y(t)}catch{return}if(H(n)||Array.isArray(n)){let e=z(n);if(e)return{files:e}}if(!E(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 je(e){try{return(await k(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&Oe(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function Me(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=b(t.path,e),r=x(t.path)??``,i=t.language??R(r),a=t.name||S(t.path,{withExtension:!1})||t.path,o=t.content===void 0?_(n)?await O(n,`utf8`):void 0:t.content;return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=w(e,`usage`);if(!_(n)||!v(n))return;let r=await je(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=w(n,e),r=R(x(e)??``),i=S(e,{withExtension:!1})||e;return{name:i,title:T(i),path:t,content:await O(t,`utf8`),...r?{language:r}:{}}}))}async function Ne(e,t){let n=t??(await ve(e)).filter(e=>S(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test(x(t))?`component`:`file`,path:t,content:await O(b(t,e),`utf8`)}:{type:/[tj]sx$/.test(x(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await O(b(t.path,e),`utf8`):void 0,path:b(t.path,e)}))}async function Pe(e){let n=await ke(e),r=await Ae(e);if(!n&&!r)return;let i=L(r??{},n??{}),a=D(i.name)?i.name:C(e),o=D(i.title)?i.title:T(a),s=t.safeParse({...i,name:a,title:o});if(!s.success)return;let c=await Me(e,s.data.usage);return{...s.data,files:await Ne(e,s.data.files),...c?.length?{usage:c}:{}}}async function U(e){let t={},n=Ee(e.options.componentsPath);for(let r of n){let n=Te(e.cwd,r);if(!(!_(n)||!v(n)))try{let e=await k(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await Pe(w(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const Fe=e.partial(),W=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),G=h((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function Ie(e,t){return A(t)?t:j(e,t)}function Le(e){return Array.isArray(e)?e.filter(D):D(e)?[e]:[]}function Re(e){if(D(e))return e;if(E(e)&&`url`in e&&D(e.url))return e.url}function K(e){let t=e.toLowerCase();if(W.has(t))return t}function q(e){let t=x(e)?.toLowerCase();return!!(t&&W.has(t))}function ze(e){return o.test(e)}async function J(e){try{return(await k(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(!E(e))return;let t=Fe.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function Z(e){return E(e)&&`path`in e}async function Q(e,t,n){let r=b(e,t),i=K(x(e)??``)??`file`,a=i===`svg`?await O(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function Be(e){let t=w(e,`package.json`);if(!_(t))return;let n;try{n=await y(t)}catch{return}let r={};D(n.name)&&(r.name=n.name,r.title=n.name),D(n.description)&&(r.description=n.description),D(n.version)&&(r.version=n.version),D(n.homepage)&&(r.homepage=n.homepage);let i=Re(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(D);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;Z(a)?s=Y(a):E(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=w(e,`icon.json`);if(!_(t))return;let n;try{n=await y(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=b(t.path,e),r=x(t.path)??``,i=t.type??K(r)??`file`,a=t.content===void 0?i===`svg`?await O(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=D(a.name)?a.name:C(t),s=D(a.title)?a.title:T(o),c=e.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await He(t,c.data.files)}}function $(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:T(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 We(e,t,n){let r=await J(e);for(let i of r){let r=S(i,{withExtension:!1});r&&$(n,r,await Q(i,e,t))}}async function Ge(e){let t={},n=Le(e.options.iconsPath);for(let r of n){let n=Ie(e.cwd,r);if(!(!_(n)||!v(n)))try{let e=await k(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=w(n,r.name);if(r.isDirectory()){if(ze(r.name)){await We(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=S(r.name,{withExtension:!1});if(!e)continue;$(t,e,await Q(r.name,n))}}}catch{continue}}return t}const Ke=Se.homedir();async function qe(e,t){let n=t.configFile&&F(N(t.configFile,e))?N(t.configFile,e):t.configFile&&F(t.configFile)?t.configFile:F(w(e,`razorwind.${t.mode}.ts`))?w(e,`razorwind.${t.mode}.ts`):F(w(e,`razorwind.${t.mode}.js`))?w(e,`razorwind.${t.mode}.js`):F(w(e,`razorwind.${t.mode}.mts`))?w(e,`razorwind.${t.mode}.mts`):F(w(e,`razorwind.${t.mode}.mjs`))?w(e,`razorwind.${t.mode}.mjs`):F(w(e,`razorwind.${t.mode}.cjs`))?w(e,`razorwind.${t.mode}.cjs`):F(w(e,`razorwind.${t.mode}.cts`))?w(e,`razorwind.${t.mode}.cts`):F(w(e,`razorwind.${t.mode}.json`))?w(e,`razorwind.${t.mode}.json`):F(w(e,`razorwind.${t.mode}.yaml`))?w(e,`razorwind.${t.mode}.yaml`):F(w(e,`razorwind.${t.mode}.yml`))?w(e,`razorwind.${t.mode}.yml`):F(w(e,`razorwind.config.ts`))?w(e,`razorwind.config.ts`):F(w(e,`razorwind.config.js`))?w(e,`razorwind.config.js`):F(w(e,`razorwind.config.mts`))?w(e,`razorwind.config.mts`):F(w(e,`razorwind.config.mjs`))?w(e,`razorwind.config.mjs`):F(w(e,`razorwind.config.cjs`))?w(e,`razorwind.config.cjs`):F(w(e,`razorwind.config.cts`))?w(e,`razorwind.config.cts`):F(w(e,`razorwind.config.json`))?w(e,`razorwind.config.json`):F(w(e,`razorwind.config.yaml`))?w(e,`razorwind.config.yaml`):F(w(e,`razorwind.config.yml`))?w(e,`razorwind.config.yml`):void 0,r=ye({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=xe(e,i),o={};if(n){let r=await a.import(a.esmResolve(n));if(r?.default){let i={};be(r.default)?i=await Promise.resolve(r.default({cwd:e,mode:t.mode??`development`})):(E(r.default)||Array.isArray(r.default))&&(i=r.default),(E(i)||Array.isArray(i))&&(o={...i,configFile:n})}}let[s,c,l]=await Promise.all([P({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),P({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),P({cwd:Ke,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),u=g({cwd:e,envPaths:{...r,home:Ke}},t,o,E(s?.config)?{...s.config}:{},E(c?.config)?{...c.config}:{},E(l?.config)?{...l.config}:{},{componentsPath:e,iconsPath:w(e,`assets/icons`),plugins:[]});if(Array.isArray(u.componentsPath)){let t=u.componentsPath.filter(D).map(e=>M(e));u.componentsPath=t.length>0?t:e}else u.componentsPath=D(u.componentsPath)?M(u.componentsPath):e;if(Array.isArray(u.iconsPath)){let t=u.iconsPath.filter(D).map(e=>M(e));u.iconsPath=t.length>0?t:w(e,`assets/icons`)}else u.iconsPath=D(u.iconsPath)?M(u.iconsPath):w(e,`assets/icons`);return Array.isArray(u.plugins)||(u.plugins=[]),u}function Je(e){return e}const Ye=he({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, and icons.`,version:Ce,tags:[`razorwind`,`dtcg`]},schema:ge({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.`);d(t.options.plugins,_e);let n=t.options.tokens;(!n||m(n))&&(n=await f(t));let r={tokens:n??{},components:g(t.options.components??{},await U(t)??{}),icons:g(t.options.icons??{},await Ge(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=g(i,n)}return n}});export{te as DEFAULT_TOKEN_PATH_CANDIDATES,s as RAZORWIND_INFER_PREPROCESSOR,o as THEME_BASENAME_PATTERN,de as TOKEN_DIRECTORY_GLOB,pe as TOKEN_FILE_EXTENSIONS,fe as TYPE_PATH_HINTS,c as WINDIE_PARSERS,c as razorwindParsers,Je as defineConfig,me as definePlugin,Ye as generator,oe as getRazorwindParserHooks,le as getRazorwindPreprocessorHooks,ee as inferTypeFromPath,se as inferValue,U as loadComponents,Ge as loadIcons,f as loadTokens,ae as loadTokensOrThrow,ie as nestFlatTokens,ne as normalizeTokenTree,u as parseCssCustomProperties,l as razorwindInferPreprocessor,d as registerRazorwindHooks,ue as registerRazorwindParsers,qe as resolveConfig,ce as resolveTokensSource,re as themeKeyFromPath};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tokens-B2J7nfiw.cjs");exports.DEFAULT_TOKEN_PATH_CANDIDATES=e.g,exports.RAZORWIND_INFER_PREPROCESSOR=e.a,exports.THEME_BASENAME_PATTERN=e._,exports.TOKEN_DIRECTORY_GLOB=e.v,exports.TOKEN_FILE_EXTENSIONS=e.y,exports.TYPE_PATH_HINTS=e.x,exports.WINDIE_PARSERS=e.b,exports.razorwindParsers=e.b,exports.getRazorwindParserHooks=e.o,exports.getRazorwindPreprocessorHooks=e.s,exports.inferTypeFromPath=e.f,exports.inferValue=e.p,exports.loadTokens=e.t,exports.loadTokensOrThrow=e.n,exports.nestFlatTokens=e.m,exports.normalizeTokenTree=e.h,exports.parseCssCustomProperties=e.d,exports.razorwindInferPreprocessor=e.c,exports.registerRazorwindHooks=e.l,exports.registerRazorwindParsers=e.u,exports.resolveTokensSource=e.r,exports.themeKeyFromPath=e.i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tokens-X_lH5RFn.cjs");exports.DEFAULT_TOKEN_PATH_CANDIDATES=e.g,exports.RAZORWIND_INFER_PREPROCESSOR=e.a,exports.THEME_BASENAME_PATTERN=e._,exports.TOKEN_DIRECTORY_GLOB=e.v,exports.TOKEN_FILE_EXTENSIONS=e.y,exports.TYPE_PATH_HINTS=e.x,exports.WINDIE_PARSERS=e.b,exports.razorwindParsers=e.b,exports.getRazorwindParserHooks=e.o,exports.getRazorwindPreprocessorHooks=e.s,exports.inferTypeFromPath=e.f,exports.inferValue=e.p,exports.loadTokens=e.t,exports.loadTokensOrThrow=e.n,exports.nestFlatTokens=e.m,exports.normalizeTokenTree=e.h,exports.parseCssCustomProperties=e.d,exports.razorwindInferPreprocessor=e.c,exports.registerRazorwindHooks=e.l,exports.registerRazorwindParsers=e.u,exports.resolveTokensSource=e.r,exports.themeKeyFromPath=e.i;
@@ -1,2 +1,2 @@
1
- import { C as RazorwindParserName, D as TOKEN_PARSER_NAMES, E as TOKEN_FILE_EXTENSIONS, O as TYPE_PATH_HINTS, S as DEFAULT_TOKEN_PATH_CANDIDATES, T as TOKEN_DIRECTORY_GLOB, _ as inferTypeFromPath, a as razorwindInferPreprocessor, b as normalizeTokenTree, c as LoadTokensOptions, d as loadTokensOrThrow, f as ResolveTokensPathOptions, g as InferredTokenType, h as themeKeyFromPath, i as getRazorwindPreprocessorHooks, l as LoadedTokens, m as resolveTokensSource, n as StyleDictionaryRegisterTarget, o as registerRazorwindHooks, p as ResolvedTokensSource, r as getRazorwindParserHooks, s as registerRazorwindParsers, t as RAZORWIND_INFER_PREPROCESSOR, u as loadTokens, v as inferValue, w as THEME_BASENAME_PATTERN, x as parseCssCustomProperties, y as nestFlatTokens } from "../../index-Di8KVEql.cjs";
1
+ import { C as RazorwindParserName, D as TOKEN_PARSER_NAMES, E as TOKEN_FILE_EXTENSIONS, O as TYPE_PATH_HINTS, S as DEFAULT_TOKEN_PATH_CANDIDATES, T as TOKEN_DIRECTORY_GLOB, _ as inferTypeFromPath, a as razorwindInferPreprocessor, b as normalizeTokenTree, c as LoadTokensOptions, d as loadTokensOrThrow, f as ResolveTokensPathOptions, g as InferredTokenType, h as themeKeyFromPath, i as getRazorwindPreprocessorHooks, l as LoadedTokens, m as resolveTokensSource, n as StyleDictionaryRegisterTarget, o as registerRazorwindHooks, p as ResolvedTokensSource, r as getRazorwindParserHooks, s as registerRazorwindParsers, t as RAZORWIND_INFER_PREPROCESSOR, u as loadTokens, v as inferValue, w as THEME_BASENAME_PATTERN, x as parseCssCustomProperties, y as nestFlatTokens } from "../../index-BByAtn7d.cjs";
2
2
  export { DEFAULT_TOKEN_PATH_CANDIDATES, 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, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, themeKeyFromPath };
@@ -1,2 +1,2 @@
1
- import { C as RazorwindParserName, D as TOKEN_PARSER_NAMES, E as TOKEN_FILE_EXTENSIONS, O as TYPE_PATH_HINTS, S as DEFAULT_TOKEN_PATH_CANDIDATES, T as TOKEN_DIRECTORY_GLOB, _ as inferTypeFromPath, a as razorwindInferPreprocessor, b as normalizeTokenTree, c as LoadTokensOptions, d as loadTokensOrThrow, f as ResolveTokensPathOptions, g as InferredTokenType, h as themeKeyFromPath, i as getRazorwindPreprocessorHooks, l as LoadedTokens, m as resolveTokensSource, n as StyleDictionaryRegisterTarget, o as registerRazorwindHooks, p as ResolvedTokensSource, r as getRazorwindParserHooks, s as registerRazorwindParsers, t as RAZORWIND_INFER_PREPROCESSOR, u as loadTokens, v as inferValue, w as THEME_BASENAME_PATTERN, x as parseCssCustomProperties, y as nestFlatTokens } from "../../index-BGy8EkAJ.mjs";
1
+ import { C as RazorwindParserName, D as TOKEN_PARSER_NAMES, E as TOKEN_FILE_EXTENSIONS, O as TYPE_PATH_HINTS, S as DEFAULT_TOKEN_PATH_CANDIDATES, T as TOKEN_DIRECTORY_GLOB, _ as inferTypeFromPath, a as razorwindInferPreprocessor, b as normalizeTokenTree, c as LoadTokensOptions, d as loadTokensOrThrow, f as ResolveTokensPathOptions, g as InferredTokenType, h as themeKeyFromPath, i as getRazorwindPreprocessorHooks, l as LoadedTokens, m as resolveTokensSource, n as StyleDictionaryRegisterTarget, o as registerRazorwindHooks, p as ResolvedTokensSource, r as getRazorwindParserHooks, s as registerRazorwindParsers, t as RAZORWIND_INFER_PREPROCESSOR, u as loadTokens, v as inferValue, w as THEME_BASENAME_PATTERN, x as parseCssCustomProperties, y as nestFlatTokens } from "../../index-Cgkjc-Wi.mjs";
2
2
  export { DEFAULT_TOKEN_PATH_CANDIDATES, 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, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, themeKeyFromPath };
@@ -1 +1 @@
1
- import{_ as e,a as t,b as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,x as y,y as b}from"../../tokens-krMC_bzy.mjs";export{o as DEFAULT_TOKEN_PATH_CANDIDATES,t as RAZORWIND_INFER_PREPROCESSOR,e as THEME_BASENAME_PATTERN,v as TOKEN_DIRECTORY_GLOB,b as TOKEN_FILE_EXTENSIONS,y as TYPE_PATH_HINTS,n as WINDIE_PARSERS,n as razorwindParsers,f as getRazorwindParserHooks,h as getRazorwindPreprocessorHooks,a as inferTypeFromPath,p as inferValue,g as loadTokens,d as loadTokensOrThrow,u as nestFlatTokens,s as normalizeTokenTree,i as parseCssCustomProperties,r as razorwindInferPreprocessor,l as registerRazorwindHooks,_ as registerRazorwindParsers,m as resolveTokensSource,c as themeKeyFromPath};
1
+ import{_ as e,a as t,b as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,x as y,y as b}from"../../tokens-DQh8MSxD.mjs";export{o as DEFAULT_TOKEN_PATH_CANDIDATES,t as RAZORWIND_INFER_PREPROCESSOR,e as THEME_BASENAME_PATTERN,v as TOKEN_DIRECTORY_GLOB,b as TOKEN_FILE_EXTENSIONS,y as TYPE_PATH_HINTS,n as WINDIE_PARSERS,n as razorwindParsers,f as getRazorwindParserHooks,h as getRazorwindPreprocessorHooks,a as inferTypeFromPath,p as inferValue,g as loadTokens,d as loadTokensOrThrow,u as nestFlatTokens,s as normalizeTokenTree,i as parseCssCustomProperties,r as razorwindInferPreprocessor,l as registerRazorwindHooks,_ as registerRazorwindParsers,m as resolveTokensSource,c as themeKeyFromPath};
@@ -1,4 +1,4 @@
1
- import { l as Plugin } from "./config-BIIL6BJa.mjs";
1
+ import { l as Plugin } from "./config-B0uAQJ0V.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-49itXF3F.d.mts.map
49
+ //# sourceMappingURL=plugin-BemoRvYG.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-D9baACxf.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-BemoRvYG.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,4 +1,4 @@
1
- import { l as Plugin } from "./config-B-9DV8mT.cjs";
1
+ import { l as Plugin } from "./config-14WZlCKO.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-D9baACxf.d.cts.map
49
+ //# sourceMappingURL=plugin-CVvkZn3F.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-CVvkZn3F.d.mts","names":[],"sources":["../src/plugin.ts"],"mappings":""}
package/dist/plugin.d.cts CHANGED
@@ -1,3 +1,3 @@
1
- import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-B-9DV8mT.cjs";
2
- import { t as definePlugin } from "./plugin-D9baACxf.cjs";
1
+ import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-B0uAQJ0V.cjs";
2
+ import { t as definePlugin } from "./plugin-BemoRvYG.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-BIIL6BJa.mjs";
2
- import { t as definePlugin } from "./plugin-49itXF3F.mjs";
1
+ import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-14WZlCKO.mjs";
2
+ import { t as definePlugin } from "./plugin-CVvkZn3F.mjs";
3
3
  export { type Plugin, type TokensParser, type TokensPreprocessor, definePlugin };
@@ -0,0 +1,2 @@
1
+ import{n as e}from"./utils-Dyd9gGJ-.mjs";import t from"style-dictionary";import{existsSync as n}from"@stryke/fs/exists";import{isDirectory as r}from"@stryke/fs/is-file";import{joinPaths as i}from"@stryke/path/join";import{isSetString as a}from"@stryke/type-checks/is-set-string";import{basename as o,isAbsolute as s,resolve as c}from"node:path";import{isFunction as l}from"@stryke/type-checks/is-function";import{importModule as u}from"@stryke/fs/resolve";import d from"fast-glob";import ee from"json5";import{parse as te}from"smol-toml";import{parse as f}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`],ne=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=`**/*.{${ne}}`,_=/^(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`},re=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,ie=/^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,ae=/^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,oe=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,y=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,b=/^([+-]?(?:\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,le=/^\{[^{}]+\}$/,ue={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},x=new Set([`px`,`rem`]);function S(e){return Math.min(1,Math.max(0,e))}function C(e,t=100){let n=e.trim();if(n.endsWith(`%`))return S(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return S(r>1?r/255:r)}function w(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 T(e){let t=w(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 E(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function D(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function O(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 k(t,n=[]){let r=O(n);if(typeof t==`string`){let e=t.trim();if(le.test(e))return{value:e,type:r};let i=e.match(ce);if(i?.[1])return{value:E(i[1]),type:r};if(re.test(e))return{value:T(e),type:`color`};let a=e.match(ie);if(a){let e=[C(a[1]),C(a[2]),C(a[3])],t=a[4]?a[4].endsWith(`%`)?S(Number.parseFloat(a[4])/100):S(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(ae);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(`%`)?S(Number.parseFloat(o[4])/100):S(Number.parseFloat(o[4]))}:{}},type:`color`};let s=e.match(oe);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(`%`)?S(Number.parseFloat(s[4])/100):S(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=e.match(y);if(c){let t=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return x.has(t)?{value:{value:n,unit:t},type:`dimension`}:{value:e,type:r===`dimension`?void 0:r}}let l=e.match(b);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=e.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=ue[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`}:x.has(e)?{value:t,type:`dimension`}:{value:t,type:r}}}return{value:t,type:r}}function de(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=k(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function A(t,n=[]){if(Array.isArray(t))return t.map((e,t)=>A(e,[...n,String(t)]));if(!e(t))return t;if(D(t))return de(t,n);let r={};for(let[e,i]of Object.entries(t)){if(e.startsWith(`$`)){r[e]=i;continue}r[e]=A(i,[...n,e])}if(!(`$type`in r)){let e=O(n);e&&n.length>0&&(r.$type=e)}return r}function j(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)?D(i)&&(a[r]={DEFAULT:i}):a[r]={},a=a[r]}let o=t.at(-1),s=k(i,t),c={$value:s.value,...s.type?{$type:s.type}:{}},l=a[o];e(l)&&!D(l)?l.DEFAULT=c:a[o]=c}return A(n)}const fe=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function M(e){let t={},n=e.replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(fe)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return j(t)}const N=`razorwind-infer`;function P(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return A(e)}function F(e){try{return P(ee.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function I(e){try{return P(f(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function L(e){try{return P(te(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const R=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>F(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>I(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>L(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>A(M(e))}];function z(){return Object.fromEntries(R.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function B(e){return A(e)}function V(){return{[N]:B}}function H(e=[],n=t){for(let e of R)n.registerParser(e);n.registerPreprocessor({name:N,preprocessor:B});let r=0,i=0;for(let t of e){for(let e of t.parsers??[])n.registerParser({name:e.name??`${t.name}-parser-${r}`,pattern:e.pattern,parser:({contents:t})=>e.parser(t)}),r++;for(let e of t.preprocessors??[])n.registerPreprocessor(l(e)?{name:`${t.name}-preprocessor-${i}`,preprocessor:e}:{name:e.name??`${t.name}-preprocessor-${i}`,preprocessor:e.preprocessor}),i++}}const pe=H;function U(e,t){return s(t)?t:c(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 i(e,g)}function me(e){return Array.isArray(e)?e.filter(a):a(e)?[e]:[]}function he(e,t){let i=U(e,t);if(!n(i))throw Error(`tokensPath "${t}" does not exist (resolved: ${i}).`);return r(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:t,tokensPath:i,fallbackPaths:a=[]}=e,o=me(i);if(o.length>0){let e=o.map(e=>he(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=U(t,e);if(n(i)){if(r(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(t,e);if(!(!n(i)||r(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(_)?.[1]?.toLowerCase()}function ge(e){H(e.plugins,t)}function X(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function _e(e){let t=await u(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function Z(e,n){ge(e);let r=new t({...n,parsers:[...p,...n.parsers??[]],preprocessors:[N,...n.preprocessors??[]],hooks:{...n.hooks,parsers:{...z(),...n.hooks?.parsers},preprocessors:{...V(),...n.hooks?.preprocessors}},usesDtcg:n.usesDtcg??!0,platforms:n.platforms??{}});return await r.hasInitialized,r}async function Q(e,t){return t.length===0?{}:(await Z(e,{source:t})).tokens}async function ve(e){return(await d(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function ye(e,t){let n=await ve(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 t=J(e.options);return t.resolvedPath&&n(t.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test(o(t.resolvedPath))?(e.sd=await Z(e.options,await _e(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?ye(e.options,t.source):Q(e.options,t.source)}async function be(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`:a(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{_,N as a,p as b,B as c,M as d,O as f,h as g,A as h,Y as i,H as l,j as m,be as n,z as o,k as p,J as r,V as s,$ as t,pe as u,g as v,v as x,m as y};
2
+ //# sourceMappingURL=tokens-DQh8MSxD.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens-DQh8MSxD.mjs","names":[],"sources":[],"mappings":""}
@@ -0,0 +1 @@
1
+ const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./utils-qX41mcuD.cjs");let n=require("style-dictionary");n=e.t(n,1);let r=require("@stryke/fs/exists"),i=require("@stryke/fs/is-file"),a=require("@stryke/path/join"),o=require("@stryke/type-checks/is-set-string"),s=require("node:path"),c=require("@stryke/type-checks/is-function"),l=require("@stryke/fs/resolve"),u=require("fast-glob");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,b=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,x=/^\{[^{}]+\}$/,S={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},C=new Set([`px`,`rem`]);function w(e){return Math.min(1,Math.max(0,e))}function T(e,t=100){let n=e.trim();if(n.endsWith(`%`))return w(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return w(r>1?r/255:r)}function ce(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 le(e){let t=ce(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 ue(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(e,n=[]){let r=D(n);if(typeof e==`string`){let t=e.trim();if(x.test(t))return{value:t,type:r};let i=t.match(b);if(i?.[1])return{value:ue(i[1]),type:r};if(te.test(t))return{value:le(t),type:`color`};let a=t.match(ne);if(a){let e=[T(a[1]),T(a[2]),T(a[3])],t=a[4]?a[4].endsWith(`%`)?w(Number.parseFloat(a[4])/100):w(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(`%`)?w(Number.parseFloat(o[4])/100):w(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(`%`)?w(Number.parseFloat(s[4])/100):w(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=t.match(ae);if(c){let e=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return C.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=S[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`}:C.has(t)?{value:e,type:`dimension`}:{value:e,type:r}}}return{value:e,type:r}}function de(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(e,n=[]){if(Array.isArray(e))return e.map((e,t)=>k(e,[...n,String(t)]));if(!t.n(e))return e;if(E(e))return de(e,n);let r={};for(let[t,i]of Object.entries(e)){if(t.startsWith(`$`)){r[t]=i;continue}r[t]=k(i,[...n,t])}if(!(`$type`in r)){let e=D(n);e&&n.length>0&&(r.$type=e)}return r}function A(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)?E(i)&&(a[r]={DEFAULT:i}):a[r]={},a=a[r]}let o=e.at(-1),s=O(i,e),c={$value:s.value,...s.type?{$type:s.type}:{}},l=a[o];t.n(l)&&!E(l)?l.DEFAULT=c:a[o]=c}return k(n)}const fe=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function j(e){let t={},n=e.replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(fe)){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(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 F(e){try{return N((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 I(e){try{return N((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 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=[],t=n.default){for(let e of L)t.registerParser(e);t.registerPreprocessor({name:M,preprocessor:z});let r=0,i=0;for(let n of e){for(let e of n.parsers??[])t.registerParser({name:e.name??`${n.name}-parser-${r}`,pattern:e.pattern,parser:({contents:t})=>e.parser(t)}),r++;for(let e of n.preprocessors??[])t.registerPreprocessor((0,c.isFunction)(e)?{name:`${n.name}-preprocessor-${i}`,preprocessor:e}:{name:e.name??`${n.name}-preprocessor-${i}`,preprocessor:e.preprocessor}),i++}}const pe=V;function H(e,t){return(0,s.isAbsolute)(t)?t:(0,s.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,a.joinPaths)(e,_)}function me(e){return Array.isArray(e)?e.filter(o.isSetString):(0,o.isSetString)(e)?[e]:[]}function he(e,t){let n=H(e,t);if(!(0,r.existsSync)(n))throw Error(`tokensPath "${t}" does not exist (resolved: ${n}).`);return(0,i.isDirectory)(n)?{resolvedPath:n,source:[K(n)],isStyleDictionaryConfig:!1}:G(n)?{resolvedPath:n,source:[],isStyleDictionaryConfig:!0}:{resolvedPath:n,source:[n],isStyleDictionaryConfig:!1}}function q(e){let{cwd:t,tokensPath:n,fallbackPaths:a=[]}=e,o=me(n);if(o.length>0){let e=o.map(e=>he(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 n=H(t,e);if((0,r.existsSync)(n)){if((0,i.isDirectory)(n))return{resolvedPath:n,source:[K(n)],origin:`default`};if(G(n))return{resolvedPath:n,source:[],origin:`default`};if(W(n))return{resolvedPath:n,source:[n],origin:`default`}}}for(let e of a){if(!e)continue;let n=H(t,e);if(!(!(0,r.existsSync)(n)||(0,i.isDirectory)(n))&&(W(n)||U(n)===`css`))return{resolvedPath:n,source:[n],origin:`fallback`}}return{source:[],origin:`none`}}function J(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(v)?.[1]?.toLowerCase()}function ge(e){V(e.plugins,n.default)}function Y(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function _e(e){let t=await(0,l.importModule)(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function X(e,t){ge(e);let r=new n.default({...t,parsers:[...p,...t.parsers??[]],preprocessors:[M,...t.preprocessors??[]],hooks:{...t.hooks,parsers:{...R(),...t.hooks?.parsers},preprocessors:{...B(),...t.hooks?.preprocessors}},usesDtcg:t.usesDtcg??!0,platforms:t.platforms??{}});return await r.hasInitialized,r}async function Z(e,t){return t.length===0?{}:(await X(e,{source:t})).tokens}async function Q(e){return(await(0,u.default)(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function ve(e,t){let n=await Q(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 Z(e,t);let a={};if(i.length>0){let t=await Z(e,i);Y(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Z(e,n);return a}async function $(e){let t=q(e.options);return t.resolvedPath&&(0,r.existsSync)(t.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test((0,s.basename)(t.resolvedPath))?(e.sd=await X(e.options,await _e(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?ve(e.options,t.source):Z(e.options,t.source)}async function ye(e){let t=await $(e);if(Y(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,o.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,"_",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return g}}),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 V}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return m}});
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@stryke/type-checks/is-object");function t(t){return(0,e.isObject)(t)}function n(e){if(typeof e==`string`)return e;if(!t(e))return;if(typeof e.hex==`string`){let t=typeof e.alpha==`number`&&e.alpha<1?Math.round(e.alpha*255).toString(16).padStart(2,`0`):``;return`${e.hex}${t}`}let n=typeof e.colorSpace==`string`?e.colorSpace:void 0,r=Array.isArray(e.components)?e.components:void 0;if(!n||!r)return;let i=typeof e.alpha==`number`&&e.alpha<1?` / ${e.alpha}`:``;if(n===`srgb`&&r.length>=3){let[e,t,n]=r;if(typeof e==`number`&&typeof t==`number`&&typeof n==`number`)return`rgb(${Math.round(e*255)} ${Math.round(t*255)} ${Math.round(n*255)}${i})`}return`${n}(${r.map(e=>String(e)).join(` `)}${i})`}function r(e){if(typeof e==`number`)return String(e);if(typeof e==`string`)return e;if(t(e)&&typeof e.value==`number`&&typeof e.unit==`string`)return`${e.value}${e.unit}`}function i(e,i){if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);if(i===`color`||!i&&t(e)&&`colorSpace`in e){let t=n(e);if(t)return t}if(i===`dimension`||i===`duration`||t(e)&&`value`in e&&`unit`in e){let t=r(e);if(t)return t}if(i===`cubicBezier`&&Array.isArray(e))return`cubic-bezier(${e.join(`, `)})`;if(Array.isArray(e))return e.map(String).join(`, `);if(t(e)){let t=n(e);if(t)return t;let i=r(e);if(i)return i}try{return JSON.stringify(e)}catch{return String(e)}}function a(e,t){return`--${t}-${e.split(`.`).filter(Boolean).join(`-`).replaceAll(/[^\w-]+/g,`-`)}`}function o(e,t,n,r){return{path:e,language:r,chunks:[{content:t,meta:n}]}}exports.createDocument=o,exports.formatColorValue=n,exports.formatDimensionValue=r,exports.formatTokenValue=i,exports.isObject=t,exports.toCssVar=a;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-qX41mcuD.cjs");exports.TOKEN_SET_THEME_PATTERN=e.s,exports.createDocument=e.t,exports.flattenTokens=e.c,exports.formatColorValue=e.u,exports.formatDimensionValue=e.d,exports.formatTokenValue=e.f,exports.isObject=e.n,exports.resolveTokenSets=e.l,exports.slugifyThemeName=e.i,exports.themeDisplayName=e.a,exports.titleCase=e.o,exports.toCssVar=e.r;
@@ -1,6 +1,6 @@
1
+ import { n as Tokens } from "../index-BzsWyssi.cjs";
1
2
  import { GeneratorFunctionResult } from "@power-plant/core";
2
- //#region src/utils/index.d.ts
3
- declare function isObject(value: unknown): value is Record<string, unknown>;
3
+ //#region src/utils/token-format.d.ts
4
4
  /**
5
5
  * Convert a DTCG color `$value` (string, hex/alpha object, or
6
6
  * colorSpace/components object) into a CSS-friendly color string.
@@ -16,6 +16,87 @@ declare function formatDimensionValue(value: unknown): string | undefined;
16
16
  * (or, when `type` is omitted, on the shape of `value`).
17
17
  */
18
18
  declare function formatTokenValue(value: unknown, type?: string): string;
19
+ //#endregion
20
+ //#region src/utils/flatten-tokens.d.ts
21
+ /**
22
+ * A flattened design token row produced by {@link flattenTokens}.
23
+ */
24
+ interface BaseFlatToken {
25
+ /** Dot-separated token path (e.g. `color.primary`). */
26
+ path: string;
27
+ /** DTCG `$type`, when known. */
28
+ type?: string;
29
+ /** Raw `$value` from the token document. */
30
+ value: unknown;
31
+ /** CSS-friendly string form of {@link value}. */
32
+ cssValue: string;
33
+ /** Optional DTCG `$description`. */
34
+ description?: string;
35
+ /** Theme / set id when tokens are a `Record<string, Tokens>`. */
36
+ theme?: string;
37
+ }
38
+ interface TokenSet {
39
+ id: string;
40
+ tokens: Tokens;
41
+ }
42
+ /**
43
+ * Theme-like keys for splitting multi-theme token records.
44
+ *
45
+ * Extends core {@link ../lib/tokens/constants#THEME_BASENAME_PATTERN} with
46
+ * camelCase suffixes from `@razorwind/color-variants` (e.g. `darkHighContrast`).
47
+ */
48
+ declare const TOKEN_SET_THEME_PATTERN: RegExp;
49
+ /**
50
+ * Split `Schema.tokens` into one or more named token sets.
51
+ *
52
+ * A record whose keys all look like themes (`light`, `dark`, …) is treated as
53
+ * multi-theme input; otherwise the whole document is a single set.
54
+ */
55
+ declare function resolveTokenSets(tokens: Tokens | Record<string, Tokens>): TokenSet[];
56
+ interface FlattenTokensOptions<T extends BaseFlatToken = BaseFlatToken> {
57
+ /** When set, only tokens whose `$type` is listed are returned. */
58
+ includeTypes?: readonly string[];
59
+ /** Map each base row before it is appended (e.g. add `cssVar`). */
60
+ enrichToken?: (token: BaseFlatToken) => T;
61
+ }
62
+ /**
63
+ * Flatten DTCG token trees into rows for theme mapping or documentation.
64
+ */
65
+ declare function flattenTokens<T extends BaseFlatToken = BaseFlatToken>(tokens: Tokens | Record<string, Tokens>, options?: FlattenTokensOptions<T>): T[];
66
+ //#endregion
67
+ //#region src/utils/title-case.d.ts
68
+ /**
69
+ * Convert a slug or identifier into title case for display labels.
70
+ *
71
+ * @example
72
+ * titleCase("my-dark-theme") // "My Dark Theme"
73
+ * titleCase("darkHighContrast") // "Dark High Contrast"
74
+ */
75
+ declare function titleCase(value: string): string;
76
+ //#endregion
77
+ //#region src/utils/theme-display-name.d.ts
78
+ /** Theme-like object with optional human-readable label. */
79
+ interface ThemeNamed {
80
+ name: string;
81
+ displayName?: string;
82
+ }
83
+ /**
84
+ * Resolve a theme display label, title-casing {@link ThemeNamed.name} when
85
+ * {@link ThemeNamed.displayName} is omitted.
86
+ */
87
+ declare function themeDisplayName(theme: ThemeNamed): string;
88
+ //#endregion
89
+ //#region src/utils/slugify-theme-name.d.ts
90
+ /**
91
+ * Convert a theme name into a filesystem-safe slug.
92
+ *
93
+ * @example
94
+ * slugifyThemeName("My Dark Theme") // "my-dark-theme"
95
+ */
96
+ declare function slugifyThemeName(name: string): string;
97
+ //#endregion
98
+ //#region src/utils/index.d.ts
99
+ declare function isObject(value: unknown): value is Record<string, unknown>;
19
100
  /**
20
101
  * Convert a token path into a CSS custom property name.
21
102
  *
@@ -30,5 +111,5 @@ declare function createDocument<TSchema, TOptions extends object>(path: string,
30
111
  name: string;
31
112
  }, language?: string): GeneratorFunctionResult<TSchema, TOptions>[string];
32
113
  //#endregion
33
- export { createDocument, formatColorValue, formatDimensionValue, formatTokenValue, isObject, toCssVar };
114
+ export { type BaseFlatToken, type FlattenTokensOptions, TOKEN_SET_THEME_PATTERN, type ThemeNamed, type TokenSet, createDocument, flattenTokens, formatColorValue, formatDimensionValue, formatTokenValue, isObject, resolveTokenSets, slugifyThemeName, themeDisplayName, titleCase, toCssVar };
34
115
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/utils/index.ts"],"mappings":";;iBAqBgB,SAAS,iBAAiB,SAAS;;;;;iBAQnC,iBAAiB;;;;;iBAuDjB,qBAAqB;;;;;iBAwBrB,iBAAiB,gBAAgB;;;;;;;iBA4DjC,SAAS,cAAc;;;;iBAavB,eAAe,SAAS,yBACtC,cACA,iBACA;EAAQ;GACR,oBACC,wBAAwB,SAAS"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/utils/token-format.ts","../../src/utils/flatten-tokens.ts","../../src/utils/title-case.ts","../../src/utils/theme-display-name.ts","../../src/utils/slugify-theme-name.ts","../../src/utils/index.ts"],"mappings":";;;;;;;iBA4BgB,iBAAiB;;;;;iBAuDjB,qBAAqB;;;;;iBAwBrB,iBAAiB,gBAAgB;;;;;;UC9EhC;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;UAGe;EACf;EACA,QAAQ;;;;;;;;cASG,yBAAuB;;;;;;;iBAwFpB,iBACd,QAAQ,SAAS,eAAe,UAC/B;UAqBc,qBAAqB,UAAU,gBAAgB;;EAE9D;;EAEA,eAAe,OAAO,kBAAkB;;;;;iBAM1B,cAAc,UAAU,gBAAgB,eACtD,QAAQ,SAAS,eAAe,SAChC,UAAS,qBAAqB,KAC7B;;;;;;;;;;iBCxJa,UAAU;;;;UCNT;EACf;EACA;;;;;;iBAOc,iBAAiB,OAAO;;;;;;;;;iBCNxB,iBAAiB;;;iBCJjB,SAAS,iBAAiB,SAAS;;;;;;;iBA6BnC,SAAS,cAAc;;;;iBAavB,eAAe,SAAS,yBACtC,cACA,iBACA;EAAQ;GACR,oBACC,wBAAwB,SAAS"}
@@ -1,6 +1,6 @@
1
+ import { n as Tokens } from "../index-dMv2FZkj.mjs";
1
2
  import { GeneratorFunctionResult } from "@power-plant/core";
2
- //#region src/utils/index.d.ts
3
- declare function isObject(value: unknown): value is Record<string, unknown>;
3
+ //#region src/utils/token-format.d.ts
4
4
  /**
5
5
  * Convert a DTCG color `$value` (string, hex/alpha object, or
6
6
  * colorSpace/components object) into a CSS-friendly color string.
@@ -16,6 +16,87 @@ declare function formatDimensionValue(value: unknown): string | undefined;
16
16
  * (or, when `type` is omitted, on the shape of `value`).
17
17
  */
18
18
  declare function formatTokenValue(value: unknown, type?: string): string;
19
+ //#endregion
20
+ //#region src/utils/flatten-tokens.d.ts
21
+ /**
22
+ * A flattened design token row produced by {@link flattenTokens}.
23
+ */
24
+ interface BaseFlatToken {
25
+ /** Dot-separated token path (e.g. `color.primary`). */
26
+ path: string;
27
+ /** DTCG `$type`, when known. */
28
+ type?: string;
29
+ /** Raw `$value` from the token document. */
30
+ value: unknown;
31
+ /** CSS-friendly string form of {@link value}. */
32
+ cssValue: string;
33
+ /** Optional DTCG `$description`. */
34
+ description?: string;
35
+ /** Theme / set id when tokens are a `Record<string, Tokens>`. */
36
+ theme?: string;
37
+ }
38
+ interface TokenSet {
39
+ id: string;
40
+ tokens: Tokens;
41
+ }
42
+ /**
43
+ * Theme-like keys for splitting multi-theme token records.
44
+ *
45
+ * Extends core {@link ../lib/tokens/constants#THEME_BASENAME_PATTERN} with
46
+ * camelCase suffixes from `@razorwind/color-variants` (e.g. `darkHighContrast`).
47
+ */
48
+ declare const TOKEN_SET_THEME_PATTERN: RegExp;
49
+ /**
50
+ * Split `Schema.tokens` into one or more named token sets.
51
+ *
52
+ * A record whose keys all look like themes (`light`, `dark`, …) is treated as
53
+ * multi-theme input; otherwise the whole document is a single set.
54
+ */
55
+ declare function resolveTokenSets(tokens: Tokens | Record<string, Tokens>): TokenSet[];
56
+ interface FlattenTokensOptions<T extends BaseFlatToken = BaseFlatToken> {
57
+ /** When set, only tokens whose `$type` is listed are returned. */
58
+ includeTypes?: readonly string[];
59
+ /** Map each base row before it is appended (e.g. add `cssVar`). */
60
+ enrichToken?: (token: BaseFlatToken) => T;
61
+ }
62
+ /**
63
+ * Flatten DTCG token trees into rows for theme mapping or documentation.
64
+ */
65
+ declare function flattenTokens<T extends BaseFlatToken = BaseFlatToken>(tokens: Tokens | Record<string, Tokens>, options?: FlattenTokensOptions<T>): T[];
66
+ //#endregion
67
+ //#region src/utils/title-case.d.ts
68
+ /**
69
+ * Convert a slug or identifier into title case for display labels.
70
+ *
71
+ * @example
72
+ * titleCase("my-dark-theme") // "My Dark Theme"
73
+ * titleCase("darkHighContrast") // "Dark High Contrast"
74
+ */
75
+ declare function titleCase(value: string): string;
76
+ //#endregion
77
+ //#region src/utils/theme-display-name.d.ts
78
+ /** Theme-like object with optional human-readable label. */
79
+ interface ThemeNamed {
80
+ name: string;
81
+ displayName?: string;
82
+ }
83
+ /**
84
+ * Resolve a theme display label, title-casing {@link ThemeNamed.name} when
85
+ * {@link ThemeNamed.displayName} is omitted.
86
+ */
87
+ declare function themeDisplayName(theme: ThemeNamed): string;
88
+ //#endregion
89
+ //#region src/utils/slugify-theme-name.d.ts
90
+ /**
91
+ * Convert a theme name into a filesystem-safe slug.
92
+ *
93
+ * @example
94
+ * slugifyThemeName("My Dark Theme") // "my-dark-theme"
95
+ */
96
+ declare function slugifyThemeName(name: string): string;
97
+ //#endregion
98
+ //#region src/utils/index.d.ts
99
+ declare function isObject(value: unknown): value is Record<string, unknown>;
19
100
  /**
20
101
  * Convert a token path into a CSS custom property name.
21
102
  *
@@ -30,5 +111,5 @@ declare function createDocument<TSchema, TOptions extends object>(path: string,
30
111
  name: string;
31
112
  }, language?: string): GeneratorFunctionResult<TSchema, TOptions>[string];
32
113
  //#endregion
33
- export { createDocument, formatColorValue, formatDimensionValue, formatTokenValue, isObject, toCssVar };
114
+ export { type BaseFlatToken, type FlattenTokensOptions, TOKEN_SET_THEME_PATTERN, type ThemeNamed, type TokenSet, createDocument, flattenTokens, formatColorValue, formatDimensionValue, formatTokenValue, isObject, resolveTokenSets, slugifyThemeName, themeDisplayName, titleCase, toCssVar };
34
115
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/utils/index.ts"],"mappings":""}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/utils/token-format.ts","../../src/utils/flatten-tokens.ts","../../src/utils/title-case.ts","../../src/utils/theme-display-name.ts","../../src/utils/slugify-theme-name.ts","../../src/utils/index.ts"],"mappings":""}
@@ -1,2 +1 @@
1
- import{isObject as e}from"@stryke/type-checks/is-object";function t(t){return e(t)}function n(e){if(typeof e==`string`)return e;if(!t(e))return;if(typeof e.hex==`string`){let t=typeof e.alpha==`number`&&e.alpha<1?Math.round(e.alpha*255).toString(16).padStart(2,`0`):``;return`${e.hex}${t}`}let n=typeof e.colorSpace==`string`?e.colorSpace:void 0,r=Array.isArray(e.components)?e.components:void 0;if(!n||!r)return;let i=typeof e.alpha==`number`&&e.alpha<1?` / ${e.alpha}`:``;if(n===`srgb`&&r.length>=3){let[e,t,n]=r;if(typeof e==`number`&&typeof t==`number`&&typeof n==`number`)return`rgb(${Math.round(e*255)} ${Math.round(t*255)} ${Math.round(n*255)}${i})`}return`${n}(${r.map(e=>String(e)).join(` `)}${i})`}function r(e){if(typeof e==`number`)return String(e);if(typeof e==`string`)return e;if(t(e)&&typeof e.value==`number`&&typeof e.unit==`string`)return`${e.value}${e.unit}`}function i(e,i){if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);if(i===`color`||!i&&t(e)&&`colorSpace`in e){let t=n(e);if(t)return t}if(i===`dimension`||i===`duration`||t(e)&&`value`in e&&`unit`in e){let t=r(e);if(t)return t}if(i===`cubicBezier`&&Array.isArray(e))return`cubic-bezier(${e.join(`, `)})`;if(Array.isArray(e))return e.map(String).join(`, `);if(t(e)){let t=n(e);if(t)return t;let i=r(e);if(i)return i}try{return JSON.stringify(e)}catch{return String(e)}}function a(e,t){return`--${t}-${e.split(`.`).filter(Boolean).join(`-`).replaceAll(/[^\w-]+/g,`-`)}`}function o(e,t,n,r){return{path:e,language:r,chunks:[{content:t,meta:n}]}}export{o as createDocument,n as formatColorValue,r as formatDimensionValue,i as formatTokenValue,t as isObject,a as toCssVar};
2
- //# sourceMappingURL=index.mjs.map
1
+ import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,r as c,s as l,t as u,u as d}from"../utils-Dyd9gGJ-.mjs";export{l as TOKEN_SET_THEME_PATTERN,u as createDocument,t as flattenTokens,d as formatColorValue,n as formatDimensionValue,r as formatTokenValue,o as isObject,a as resolveTokenSets,i as slugifyThemeName,e as themeDisplayName,s as titleCase,c as toCssVar};
@@ -0,0 +1,2 @@
1
+ import{titleCase as e}from"@stryke/string-format/title-case";import{isObject as t}from"@stryke/type-checks/is-object";function n(e){return t(e)}function r(e){if(typeof e==`string`)return e;if(!n(e))return;if(typeof e.hex==`string`){let t=typeof e.alpha==`number`&&e.alpha<1?Math.round(e.alpha*255).toString(16).padStart(2,`0`):``;return`${e.hex}${t}`}let t=typeof e.colorSpace==`string`?e.colorSpace:void 0,r=Array.isArray(e.components)?e.components:void 0;if(!t||!r)return;let i=typeof e.alpha==`number`&&e.alpha<1?` / ${e.alpha}`:``;if(t===`srgb`&&r.length>=3){let[e,t,n]=r;if(typeof e==`number`&&typeof t==`number`&&typeof n==`number`)return`rgb(${Math.round(e*255)} ${Math.round(t*255)} ${Math.round(n*255)}${i})`}return`${t}(${r.map(e=>String(e)).join(` `)}${i})`}function i(e){if(typeof e==`number`)return String(e);if(typeof e==`string`)return e;if(n(e)&&typeof e.value==`number`&&typeof e.unit==`string`)return`${e.value}${e.unit}`}function a(e,t){if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);if(t===`color`||!t&&n(e)&&`colorSpace`in e){let t=r(e);if(t)return t}if(t===`dimension`||t===`duration`||n(e)&&`value`in e&&`unit`in e){let t=i(e);if(t)return t}if(t===`cubicBezier`&&Array.isArray(e))return`cubic-bezier(${e.join(`, `)})`;if(Array.isArray(e))return e.map(String).join(`, `);if(n(e)){let t=r(e);if(t)return t;let n=i(e);if(n)return n}try{return JSON.stringify(e)}catch{return String(e)}}function o(e){return t(e)}const s=/^(?: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)(?:[A-Z]\w*|[._-].+)?$/i;function c(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function l(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function u(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function d(e){if(`$value`in e)return e.$value;if(`value`in e)return e.value;if(typeof e.$ref==`string`)return e.$ref;if(typeof e.ref==`string`)return e.ref}function f(e,t,n,r,i,s){if(!o(e))return;let p=u(e,n);if(c(e)){let n=d(e),o={path:t.join(`.`),type:p,value:n,cssValue:a(n,p),description:l(e),theme:r};s.push(i?i(o):o);return}for(let[n,a]of Object.entries(e))n.startsWith(`$`)||f(a,[...t,n],p,r,i,s)}function p(e){if(!o(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));if(t.length>0&&t.every(e=>s.test(e))){let n=e;return t.map(e=>({id:e,tokens:n[e]}))}return[{id:`default`,tokens:e}]}function m(e,t={}){let n=t.includeTypes?new Set(t.includeTypes):void 0,r=[];for(let n of p(e)){let e=n.id==="default"?void 0:n.id;f(n.tokens,[],void 0,e,t.enrichToken,r)}return n?r.filter(e=>!e.type||n.has(e.type)):r}function h(t){return e(t)}function g(e){return e.displayName??h(e.name)}function _(e){return e.trim().toLowerCase().replaceAll(/[^a-z0-9]+/g,`-`).replaceAll(/^-+|-+$/g,``)}function v(e){return t(e)}function y(e,t){return`--${t}-${e.split(`.`).filter(Boolean).join(`-`).replaceAll(/[^\w-]+/g,`-`)}`}function b(e,t,n,r){return{path:e,language:r,chunks:[{content:t,meta:n}]}}export{g as a,m as c,i as d,a as f,_ as i,p as l,v as n,h as o,y as r,s,b as t,r as u};
2
+ //# sourceMappingURL=utils-Dyd9gGJ-.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-Dyd9gGJ-.mjs","names":[],"sources":[],"mappings":""}
@@ -0,0 +1 @@
1
+ let e=require("@stryke/string-format/title-case"),t=require("@stryke/type-checks/is-object");function n(e){return(0,t.isObject)(e)}function r(e){if(typeof e==`string`)return e;if(!n(e))return;if(typeof e.hex==`string`){let t=typeof e.alpha==`number`&&e.alpha<1?Math.round(e.alpha*255).toString(16).padStart(2,`0`):``;return`${e.hex}${t}`}let t=typeof e.colorSpace==`string`?e.colorSpace:void 0,r=Array.isArray(e.components)?e.components:void 0;if(!t||!r)return;let i=typeof e.alpha==`number`&&e.alpha<1?` / ${e.alpha}`:``;if(t===`srgb`&&r.length>=3){let[e,t,n]=r;if(typeof e==`number`&&typeof t==`number`&&typeof n==`number`)return`rgb(${Math.round(e*255)} ${Math.round(t*255)} ${Math.round(n*255)}${i})`}return`${t}(${r.map(e=>String(e)).join(` `)}${i})`}function i(e){if(typeof e==`number`)return String(e);if(typeof e==`string`)return e;if(n(e)&&typeof e.value==`number`&&typeof e.unit==`string`)return`${e.value}${e.unit}`}function a(e,t){if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);if(t===`color`||!t&&n(e)&&`colorSpace`in e){let t=r(e);if(t)return t}if(t===`dimension`||t===`duration`||n(e)&&`value`in e&&`unit`in e){let t=i(e);if(t)return t}if(t===`cubicBezier`&&Array.isArray(e))return`cubic-bezier(${e.join(`, `)})`;if(Array.isArray(e))return e.map(String).join(`, `);if(n(e)){let t=r(e);if(t)return t;let n=i(e);if(n)return n}try{return JSON.stringify(e)}catch{return String(e)}}function o(e){return(0,t.isObject)(e)}const s=/^(?: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)(?:[A-Z]\w*|[._-].+)?$/i;function c(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function l(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function u(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function d(e){if(`$value`in e)return e.$value;if(`value`in e)return e.value;if(typeof e.$ref==`string`)return e.$ref;if(typeof e.ref==`string`)return e.ref}function f(e,t,n,r,i,s){if(!o(e))return;let p=u(e,n);if(c(e)){let n=d(e),o={path:t.join(`.`),type:p,value:n,cssValue:a(n,p),description:l(e),theme:r};s.push(i?i(o):o);return}for(let[n,a]of Object.entries(e))n.startsWith(`$`)||f(a,[...t,n],p,r,i,s)}function p(e){if(!o(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));if(t.length>0&&t.every(e=>s.test(e))){let n=e;return t.map(e=>({id:e,tokens:n[e]}))}return[{id:`default`,tokens:e}]}function m(e,t={}){let n=t.includeTypes?new Set(t.includeTypes):void 0,r=[];for(let n of p(e)){let e=n.id==="default"?void 0:n.id;f(n.tokens,[],void 0,e,t.enrichToken,r)}return n?r.filter(e=>!e.type||n.has(e.type)):r}function h(t){return(0,e.titleCase)(t)}function g(e){return e.displayName??h(e.name)}function _(e){return e.trim().toLowerCase().replaceAll(/[^a-z0-9]+/g,`-`).replaceAll(/^-+|-+$/g,``)}function v(e){return(0,t.isObject)(e)}function y(e,t){return`--${t}-${e.split(`.`).filter(Boolean).join(`-`).replaceAll(/[^\w-]+/g,`-`)}`}function b(e,t,n,r){return{path:e,language:r,chunks:[{content:t,meta:n}]}}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return r}});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@razorwind/core",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
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"],
@@ -118,10 +118,10 @@
118
118
  "typings": "dist/index.d.mts",
119
119
  "files": ["dist"],
120
120
  "dependencies": {
121
- "@power-plant/core": "^0.0.75",
121
+ "@power-plant/core": "^0.0.81",
122
122
  "@power-plant/dtcg-schema": "^0.0.1",
123
- "@power-plant/schema": "^0.0.73",
124
- "@power-plant/utils": "^0.0.61",
123
+ "@power-plant/schema": "^0.0.79",
124
+ "@power-plant/utils": "^0.0.67",
125
125
  "@stryke/env": "^0.20.120",
126
126
  "@stryke/fs": "^0.33.103",
127
127
  "@stryke/path": "^0.29.29",
@@ -140,10 +140,10 @@
140
140
  "zod": "^4.4.3"
141
141
  },
142
142
  "devDependencies": {
143
- "@powerlines/plugin-tsdown": "^0.1.589",
143
+ "@powerlines/plugin-tsdown": "^0.1.590",
144
144
  "@types/node": "^25.9.5",
145
145
  "typescript": "^6.0.3"
146
146
  },
147
147
  "publishConfig": { "access": "public" },
148
- "gitHead": "1035cb442a4b46f2373951c74b1c89821749be2b"
148
+ "gitHead": "11a6e827627acf51ef0044e366fd9493f2173ec2"
149
149
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-B-9DV8mT.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;;;;;;EAMf;;;;EAKA;;;;;;EAOA;;;;;;;;EASA;;;;;;EAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCA;;UAGe,mBAAmB;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;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-BIIL6BJa.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-49itXF3F.d.mts","names":[],"sources":["../src/plugin.ts"],"mappings":""}
@@ -1 +0,0 @@
1
- const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./utils/index.cjs");let n=require("style-dictionary");n=e.t(n,1);let r=require("@stryke/fs/exists"),i=require("@stryke/fs/is-file"),a=require("@stryke/path/join"),o=require("@stryke/type-checks/is-set-string"),s=require("node:path"),c=require("@stryke/type-checks/is-function"),l=require("@stryke/fs/resolve"),u=require("fast-glob");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,b=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,x=/^\{[^{}]+\}$/,S={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},C=new Set([`px`,`rem`]);function w(e){return Math.min(1,Math.max(0,e))}function T(e,t=100){let n=e.trim();if(n.endsWith(`%`))return w(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return w(r>1?r/255:r)}function ce(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 le(e){let t=ce(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 ue(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(e,n=[]){let r=D(n);if(typeof e==`string`){let t=e.trim();if(x.test(t))return{value:t,type:r};let i=t.match(b);if(i?.[1])return{value:ue(i[1]),type:r};if(te.test(t))return{value:le(t),type:`color`};let a=t.match(ne);if(a){let e=[T(a[1]),T(a[2]),T(a[3])],t=a[4]?a[4].endsWith(`%`)?w(Number.parseFloat(a[4])/100):w(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(`%`)?w(Number.parseFloat(o[4])/100):w(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(`%`)?w(Number.parseFloat(s[4])/100):w(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=t.match(ae);if(c){let e=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return C.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=S[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.isObject(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`}:C.has(t)?{value:e,type:`dimension`}:{value:e,type:r}}}return{value:e,type:r}}function de(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(e,n=[]){if(Array.isArray(e))return e.map((e,t)=>k(e,[...n,String(t)]));if(!t.isObject(e))return e;if(E(e))return de(e,n);let r={};for(let[t,i]of Object.entries(e)){if(t.startsWith(`$`)){r[t]=i;continue}r[t]=k(i,[...n,t])}if(!(`$type`in r)){let e=D(n);e&&n.length>0&&(r.$type=e)}return r}function A(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.isObject(i)?E(i)&&(a[r]={DEFAULT:i}):a[r]={},a=a[r]}let o=e.at(-1),s=O(i,e),c={$value:s.value,...s.type?{$type:s.type}:{}},l=a[o];t.isObject(l)&&!E(l)?l.DEFAULT=c:a[o]=c}return k(n)}const fe=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function j(e){let t={},n=e.replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(fe)){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(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 F(e){try{return N((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 I(e){try{return N((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 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=[],t=n.default){for(let e of L)t.registerParser(e);t.registerPreprocessor({name:M,preprocessor:z});let r=0,i=0;for(let n of e){for(let e of n.parsers??[])t.registerParser({name:e.name??`${n.name}-parser-${r}`,pattern:e.pattern,parser:({contents:t})=>e.parser(t)}),r++;for(let e of n.preprocessors??[])t.registerPreprocessor((0,c.isFunction)(e)?{name:`${n.name}-preprocessor-${i}`,preprocessor:e}:{name:e.name??`${n.name}-preprocessor-${i}`,preprocessor:e.preprocessor}),i++}}const pe=V;function H(e,t){return(0,s.isAbsolute)(t)?t:(0,s.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,a.joinPaths)(e,_)}function me(e){return Array.isArray(e)?e.filter(o.isSetString):(0,o.isSetString)(e)?[e]:[]}function he(e,t){let n=H(e,t);if(!(0,r.existsSync)(n))throw Error(`tokensPath "${t}" does not exist (resolved: ${n}).`);return(0,i.isDirectory)(n)?{resolvedPath:n,source:[K(n)],isStyleDictionaryConfig:!1}:G(n)?{resolvedPath:n,source:[],isStyleDictionaryConfig:!0}:{resolvedPath:n,source:[n],isStyleDictionaryConfig:!1}}function q(e){let{cwd:t,tokensPath:n,fallbackPaths:a=[]}=e,o=me(n);if(o.length>0){let e=o.map(e=>he(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 n=H(t,e);if((0,r.existsSync)(n)){if((0,i.isDirectory)(n))return{resolvedPath:n,source:[K(n)],origin:`default`};if(G(n))return{resolvedPath:n,source:[],origin:`default`};if(W(n))return{resolvedPath:n,source:[n],origin:`default`}}}for(let e of a){if(!e)continue;let n=H(t,e);if(!(!(0,r.existsSync)(n)||(0,i.isDirectory)(n))&&(W(n)||U(n)===`css`))return{resolvedPath:n,source:[n],origin:`fallback`}}return{source:[],origin:`none`}}function J(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(v)?.[1]?.toLowerCase()}function ge(e){V(e.plugins,n.default)}function Y(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function _e(e){let t=await(0,l.importModule)(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function X(e,t){ge(e);let r=new n.default({...t,parsers:[...p,...t.parsers??[]],preprocessors:[M,...t.preprocessors??[]],hooks:{...t.hooks,parsers:{...R(),...t.hooks?.parsers},preprocessors:{...B(),...t.hooks?.preprocessors}},usesDtcg:t.usesDtcg??!0,platforms:t.platforms??{}});return await r.hasInitialized,r}async function Z(e,t){return t.length===0?{}:(await X(e,{source:t})).tokens}async function Q(e){return(await(0,u.default)(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function ve(e,t){let n=await Q(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 Z(e,t);let a={};if(i.length>0){let t=await Z(e,i);Y(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Z(e,n);return a}async function $(e){let t=q(e.options);return t.resolvedPath&&(0,r.existsSync)(t.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test((0,s.basename)(t.resolvedPath))?(e.sd=await X(e.options,await _e(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?ve(e.options,t.source):Z(e.options,t.source)}async function ye(e){let t=await $(e);if(Y(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,o.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,"_",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return g}}),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 V}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return m}});
@@ -1,2 +0,0 @@
1
- import{isObject as e}from"./utils/index.mjs";import t from"style-dictionary";import{existsSync as n}from"@stryke/fs/exists";import{isDirectory as r}from"@stryke/fs/is-file";import{joinPaths as i}from"@stryke/path/join";import{isSetString as a}from"@stryke/type-checks/is-set-string";import{basename as o,isAbsolute as s,resolve as c}from"node:path";import{isFunction as l}from"@stryke/type-checks/is-function";import{importModule as u}from"@stryke/fs/resolve";import d from"fast-glob";import ee from"json5";import{parse as te}from"smol-toml";import{parse as f}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`],ne=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=`**/*.{${ne}}`,_=/^(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`},re=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,ie=/^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,ae=/^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,oe=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,y=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,b=/^([+-]?(?:\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,le=/^\{[^{}]+\}$/,ue={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},x=new Set([`px`,`rem`]);function S(e){return Math.min(1,Math.max(0,e))}function C(e,t=100){let n=e.trim();if(n.endsWith(`%`))return S(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return S(r>1?r/255:r)}function w(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 T(e){let t=w(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 E(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function D(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function O(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 k(t,n=[]){let r=O(n);if(typeof t==`string`){let e=t.trim();if(le.test(e))return{value:e,type:r};let i=e.match(ce);if(i?.[1])return{value:E(i[1]),type:r};if(re.test(e))return{value:T(e),type:`color`};let a=e.match(ie);if(a){let e=[C(a[1]),C(a[2]),C(a[3])],t=a[4]?a[4].endsWith(`%`)?S(Number.parseFloat(a[4])/100):S(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(ae);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(`%`)?S(Number.parseFloat(o[4])/100):S(Number.parseFloat(o[4]))}:{}},type:`color`};let s=e.match(oe);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(`%`)?S(Number.parseFloat(s[4])/100):S(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=e.match(y);if(c){let t=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return x.has(t)?{value:{value:n,unit:t},type:`dimension`}:{value:e,type:r===`dimension`?void 0:r}}let l=e.match(b);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=e.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=ue[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`}:x.has(e)?{value:t,type:`dimension`}:{value:t,type:r}}}return{value:t,type:r}}function de(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=k(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function A(t,n=[]){if(Array.isArray(t))return t.map((e,t)=>A(e,[...n,String(t)]));if(!e(t))return t;if(D(t))return de(t,n);let r={};for(let[e,i]of Object.entries(t)){if(e.startsWith(`$`)){r[e]=i;continue}r[e]=A(i,[...n,e])}if(!(`$type`in r)){let e=O(n);e&&n.length>0&&(r.$type=e)}return r}function j(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)?D(i)&&(a[r]={DEFAULT:i}):a[r]={},a=a[r]}let o=t.at(-1),s=k(i,t),c={$value:s.value,...s.type?{$type:s.type}:{}},l=a[o];e(l)&&!D(l)?l.DEFAULT=c:a[o]=c}return A(n)}const fe=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function M(e){let t={},n=e.replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(fe)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return j(t)}const N=`razorwind-infer`;function P(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return A(e)}function F(e){try{return P(ee.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function I(e){try{return P(f(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function L(e){try{return P(te(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const R=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>F(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>I(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>L(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>A(M(e))}];function z(){return Object.fromEntries(R.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function B(e){return A(e)}function V(){return{[N]:B}}function H(e=[],n=t){for(let e of R)n.registerParser(e);n.registerPreprocessor({name:N,preprocessor:B});let r=0,i=0;for(let t of e){for(let e of t.parsers??[])n.registerParser({name:e.name??`${t.name}-parser-${r}`,pattern:e.pattern,parser:({contents:t})=>e.parser(t)}),r++;for(let e of t.preprocessors??[])n.registerPreprocessor(l(e)?{name:`${t.name}-preprocessor-${i}`,preprocessor:e}:{name:e.name??`${t.name}-preprocessor-${i}`,preprocessor:e.preprocessor}),i++}}const pe=H;function U(e,t){return s(t)?t:c(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 i(e,g)}function me(e){return Array.isArray(e)?e.filter(a):a(e)?[e]:[]}function he(e,t){let i=U(e,t);if(!n(i))throw Error(`tokensPath "${t}" does not exist (resolved: ${i}).`);return r(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:t,tokensPath:i,fallbackPaths:a=[]}=e,o=me(i);if(o.length>0){let e=o.map(e=>he(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=U(t,e);if(n(i)){if(r(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(t,e);if(!(!n(i)||r(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(_)?.[1]?.toLowerCase()}function ge(e){H(e.plugins,t)}function X(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function _e(e){let t=await u(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function Z(e,n){ge(e);let r=new t({...n,parsers:[...p,...n.parsers??[]],preprocessors:[N,...n.preprocessors??[]],hooks:{...n.hooks,parsers:{...z(),...n.hooks?.parsers},preprocessors:{...V(),...n.hooks?.preprocessors}},usesDtcg:n.usesDtcg??!0,platforms:n.platforms??{}});return await r.hasInitialized,r}async function Q(e,t){return t.length===0?{}:(await Z(e,{source:t})).tokens}async function ve(e){return(await d(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function ye(e,t){let n=await ve(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 t=J(e.options);return t.resolvedPath&&n(t.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test(o(t.resolvedPath))?(e.sd=await Z(e.options,await _e(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?ye(e.options,t.source):Q(e.options,t.source)}async function be(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`:a(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{_,N as a,p as b,B as c,M as d,O as f,h as g,A as h,Y as i,H as l,j as m,be as n,z as o,k as p,J as r,V as s,$ as t,pe as u,g as v,v as x,m as y};
2
- //# sourceMappingURL=tokens-krMC_bzy.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens-krMC_bzy.mjs","names":[],"sources":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":[],"mappings":""}