@razorwind/core 0.0.44 → 0.0.45

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