@razorwind/core 0.0.27 → 0.0.29

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.
@@ -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.26`;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-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.29`;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.26`;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-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.29`;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,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,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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@razorwind/core",
3
- "version": "0.0.27",
3
+ "version": "0.0.29",
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"],
@@ -120,7 +120,7 @@
120
120
  "dependencies": {
121
121
  "@power-plant/core": "^0.0.75",
122
122
  "@power-plant/dtcg-schema": "^0.0.1",
123
- "@power-plant/schema": "^0.0.73",
123
+ "@power-plant/schema": "^0.0.74",
124
124
  "@power-plant/utils": "^0.0.61",
125
125
  "@stryke/env": "^0.20.120",
126
126
  "@stryke/fs": "^0.33.103",
@@ -145,5 +145,5 @@
145
145
  "typescript": "^6.0.3"
146
146
  },
147
147
  "publishConfig": { "access": "public" },
148
- "gitHead": "556f2499e0ef94c0463e86c2d8f9b42bbdb0bc08"
148
+ "gitHead": "a861c6938501ed645ccdcd3970fc1164d110b4ed"
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":""}