@razorwind/core 0.0.60 → 0.0.61

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 (31) hide show
  1. package/dist/{config-DcTkfPiR.d.cts → config-DXVZRs_4.d.cts} +8 -1
  2. package/dist/config-DXVZRs_4.d.cts.map +1 -0
  3. package/dist/{config-D66RfJQb.d.mts → config-DgupyeYc.d.mts} +8 -1
  4. package/dist/config-DgupyeYc.d.mts.map +1 -0
  5. package/dist/{index-Bb0PCrOG.d.cts → index-B4SIQTrM.d.cts} +2 -2
  6. package/dist/{index-Bb0PCrOG.d.cts.map → index-B4SIQTrM.d.cts.map} +1 -1
  7. package/dist/{index-D6x-NBaI.d.mts → index-BOd3NVcu.d.mts} +2 -2
  8. package/dist/{index-D6x-NBaI.d.mts.map → index-BOd3NVcu.d.mts.map} +1 -1
  9. package/dist/{index-Dy-dYo_x.d.cts → index-BbvA_F58.d.cts} +2 -2
  10. package/dist/{index-Dy-dYo_x.d.cts.map → index-BbvA_F58.d.cts.map} +1 -1
  11. package/dist/{index-BeHvb_jw.d.mts → index-C9wskjJW.d.mts} +2 -2
  12. package/dist/{index-BeHvb_jw.d.mts.map → index-C9wskjJW.d.mts.map} +1 -1
  13. package/dist/index.cjs +1 -1
  14. package/dist/index.d.cts +4 -4
  15. package/dist/index.d.cts.map +1 -1
  16. package/dist/index.d.mts +4 -4
  17. package/dist/index.mjs +1 -1
  18. package/dist/lib/fonts/index.d.cts +1 -1
  19. package/dist/lib/fonts/index.d.mts +1 -1
  20. package/dist/lib/tokens/index.d.cts +1 -1
  21. package/dist/lib/tokens/index.d.mts +1 -1
  22. package/dist/{plugin-BiAsks5W.d.cts → plugin-D_0ERu16.d.cts} +2 -2
  23. package/dist/{plugin-BiAsks5W.d.cts.map → plugin-D_0ERu16.d.cts.map} +1 -1
  24. package/dist/{plugin-oghqv_Hn.d.mts → plugin-DxwKGfH3.d.mts} +2 -2
  25. package/dist/plugin-DxwKGfH3.d.mts.map +1 -0
  26. package/dist/plugin.d.cts +2 -2
  27. package/dist/plugin.d.mts +2 -2
  28. package/package.json +9 -9
  29. package/dist/config-D66RfJQb.d.mts.map +0 -1
  30. package/dist/config-DcTkfPiR.d.cts.map +0 -1
  31. package/dist/plugin-oghqv_Hn.d.mts.map +0 -1
@@ -45,6 +45,13 @@ interface Plugin {
45
45
  * The name of the plugin is used to identify the plugin in the configuration and to generate the plugin's documentation.
46
46
  */
47
47
  name: string;
48
+ /**
49
+ * Plugins contributed by this plugin.
50
+ *
51
+ * Composite plugins use this to assemble existing Razorwind plugins without
52
+ * changing how their extraction or generation hooks are scheduled.
53
+ */
54
+ plugins?: Plugin[];
48
55
  /**
49
56
  * Custom file parsers registered with Style Dictionary to load token sources.
50
57
  *
@@ -240,4 +247,4 @@ type Config = RequiredKeys<UserConfig, "componentsPath" | "iconsPath" | "fontsPa
240
247
  };
241
248
  //#endregion
242
249
  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 };
243
- //# sourceMappingURL=config-DcTkfPiR.d.cts.map
250
+ //# sourceMappingURL=config-DXVZRs_4.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-DXVZRs_4.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;;;;;;;EAQA,UAAU;;;;;;EAOV,UAAU;;;;;;EAOV,gBAAgB;;;;;;;;EAShB,WAAW,MAAM,QAAQ,QAAQ,WAAW,aAAa;;;;;;;;;;;;EAazD;;;;;;;;EASA,YACE,MAAM,QACN,QAAQ,WACL,aAAa,eAAe;;;;;;;;EASjC,YAAY,MAAM,QAAQ,QAAQ,WAAW;;;;UC1G9B;;;;;;;;;;;;;;;;;;EAkBf;;;;EAKA;;;;;;EAOA;;;;;;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,QAAQ;EACR,UAAU;;UAGK;EACf;EACA;;KAGU,sBAAsB,QAAQ,eAAe;KAC7C,uBACV,QAAQ,qBACL,QAAQ,aAAa;KACd,gBACV,QAAQ,qBACL,aAAa,eAAe,QAAQ,aAAa;;;;;;KAM1C,mBACR,aACA,eACA,QAAQ,aAAa,gBACrB,qBACA,sBACA;KAEQ,SAAS,aACnB;EAGA;EACA,UAAU;IACR"}
@@ -45,6 +45,13 @@ interface Plugin {
45
45
  * The name of the plugin is used to identify the plugin in the configuration and to generate the plugin's documentation.
46
46
  */
47
47
  name: string;
48
+ /**
49
+ * Plugins contributed by this plugin.
50
+ *
51
+ * Composite plugins use this to assemble existing Razorwind plugins without
52
+ * changing how their extraction or generation hooks are scheduled.
53
+ */
54
+ plugins?: Plugin[];
48
55
  /**
49
56
  * Custom file parsers registered with Style Dictionary to load token sources.
50
57
  *
@@ -240,4 +247,4 @@ type Config = RequiredKeys<UserConfig, "componentsPath" | "iconsPath" | "fontsPa
240
247
  };
241
248
  //#endregion
242
249
  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 };
243
- //# sourceMappingURL=config-D66RfJQb.d.mts.map
250
+ //# sourceMappingURL=config-DgupyeYc.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-DgupyeYc.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  import { d as FontFile, f as FontFileFormat, h as GoogleFont, l as Font, m as Fonts, p as FontRole, t as Schema } from "./schema-BwOBgJIM.cjs";
2
2
  import "./index-CwN0c1Q4.cjs";
3
- import { t as Config } from "./config-DcTkfPiR.cjs";
3
+ import { t as Config } from "./config-DXVZRs_4.cjs";
4
4
  import { ExecutionContext } from "@power-plant/core";
5
5
  //#region src/lib/fonts/constants.d.ts
6
6
  declare const FONT_EXTENSIONS: Set<string>;
@@ -97,4 +97,4 @@ declare function mergeFonts(base: Fonts | undefined, extra: Fonts | undefined):
97
97
  declare function pickFontByRole(fonts: Fonts | undefined, roles: Font["role"] | Array<NonNullable<Font["role"]>>): Font | undefined;
98
98
  //#endregion
99
99
  export { WEIGHT_FROM_SUFFIX as S, FONT_EXTENSIONS as _, ParsedFontFilename as a, MONO_ROLES as b, RenderFontCssOptions as c, prependFontCss as d, renderFontCss as f, copyFontFiles as g, toGoogleFontsCssUrl as h, pickFontByRole as i, cssFontFamily as l, renderLocalFontFaces as m, mergeFonts as n, loadFonts as o, renderGoogleFontImports as p, parseCssFonts as r, parseFontFilename as s, isEmptyFonts as t, fontFamilyName as u, FONT_FORMAT_FROM_EXTENSION as v, SANS_ROLES as x, GENERIC_FALLBACK_FROM_ROLE as y };
100
- //# sourceMappingURL=index-Bb0PCrOG.d.cts.map
100
+ //# sourceMappingURL=index-B4SIQTrM.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-Bb0PCrOG.d.cts","names":[],"sources":["../src/lib/fonts/constants.ts","../src/lib/fonts/copy.ts","../src/lib/fonts/css.ts","../src/lib/fonts/load.ts","../src/lib/fonts/parse.ts"],"mappings":";;;;;cAoBa,iBAAe;cASf,4BAA4B,eAAe;cAS3C,oBAAoB;cAoBpB,4BAA4B,OAAO;cAUnC,YAAY;cACZ,YAAY;;;;;;;;iBCzCH,cACpB,OAAO,mBACP,kBACC;;;UCDc;;;;;;EAMf;;;;;iBAmBc,eAAe,MAAM;;;;;iBAQrB,cAAc,MAAM;;;;;;;iBA0BpB,oBAAoB,MAAM;;;;iBAmF1B,wBAAwB,OAAO;;;;iBAU/B,qBACd,OAAO,OACP,UAAS;;;;iBAaK,cACd,OAAO,OACP,UAAS;;;;iBAUK,eACd,aACA,OAAO,mBACP,UAAS;;;UCxGM;EACf;EACA;EACA,QAAQ;EACR,SAAS;;;;;;iBAOK,kBAAkB,mBAAmB;;;;;;;;iBA0U/B,UACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;iBCnNK,cAAc,mBAAmB;iBAuCjC,aAAa,OAAO;;;;iBAOpB,WACd,MAAM,mBACN,OAAO,oBACN;;;;iBAaa,eACd,OAAO,mBACP,OAAO,eAAe,MAAM,YAAY,iBACvC"}
1
+ {"version":3,"file":"index-B4SIQTrM.d.cts","names":[],"sources":["../src/lib/fonts/constants.ts","../src/lib/fonts/copy.ts","../src/lib/fonts/css.ts","../src/lib/fonts/load.ts","../src/lib/fonts/parse.ts"],"mappings":";;;;;cAoBa,iBAAe;cASf,4BAA4B,eAAe;cAS3C,oBAAoB;cAoBpB,4BAA4B,OAAO;cAUnC,YAAY;cACZ,YAAY;;;;;;;;iBCzCH,cACpB,OAAO,mBACP,kBACC;;;UCDc;;;;;;EAMf;;;;;iBAmBc,eAAe,MAAM;;;;;iBAQrB,cAAc,MAAM;;;;;;;iBA0BpB,oBAAoB,MAAM;;;;iBAmF1B,wBAAwB,OAAO;;;;iBAU/B,qBACd,OAAO,OACP,UAAS;;;;iBAaK,cACd,OAAO,OACP,UAAS;;;;iBAUK,eACd,aACA,OAAO,mBACP,UAAS;;;UCxGM;EACf;EACA;EACA,QAAQ;EACR,SAAS;;;;;;iBAOK,kBAAkB,mBAAmB;;;;;;;;iBA0U/B,UACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;iBCnNK,cAAc,mBAAmB;iBAuCjC,aAAa,OAAO;;;;iBAOpB,WACd,MAAM,mBACN,OAAO,oBACN;;;;iBAaa,eACd,OAAO,mBACP,OAAO,eAAe,MAAM,YAAY,iBACvC"}
@@ -1,6 +1,6 @@
1
1
  import { t as Schema } from "./schema-BwOBgJIM.mjs";
2
2
  import "./index-D5L2WXYk.mjs";
3
- import { l as Plugin, t as Config } from "./config-D66RfJQb.mjs";
3
+ import { l as Plugin, t as Config } from "./config-DgupyeYc.mjs";
4
4
  import { ExecutionContext } from "@power-plant/core";
5
5
  import { Tokens } from "@power-plant/dtcg-schema";
6
6
  import { Hooks, LogConfig, Parser, PreprocessedTokens } from "style-dictionary/types";
@@ -217,4 +217,4 @@ declare function registerRazorwindHooks(plugins?: Plugin[], target?: StyleDictio
217
217
  declare const registerRazorwindParsers: typeof registerRazorwindHooks;
218
218
  //#endregion
219
219
  export { TOKEN_DIRECTORY_GLOB as A, nestFlatTokens as C, DEFAULT_TOKEN_PATH_CANDIDATES as D, parseCssCustomProperties as E, canonicalizeTokenType as F, TOKEN_PARSER_NAMES as M, TYPE_ALIASES as N, RazorwindParserName as O, TYPE_PATH_HINTS as P, inferValue as S, collectCssCustomProperties as T, ResolvedTokensSource as _, getRazorwindParserHooks as a, InferredTokenType as b, registerRazorwindHooks as c, LoadTokensOptions as d, LoadedTokens as f, ResolveTokensPathOptions as g, loadTokensOrThrow as h, getExtractionHooks as i, TOKEN_FILE_EXTENSIONS as j, THEME_BASENAME_PATTERN as k, registerRazorwindParsers as l, loadTokens as m, RAZORWIND_INFER_PREPROCESSOR as n, getRazorwindPreprocessorHooks as o, isEmptyTokens as p, StyleDictionaryRegisterTarget as r, razorwindInferPreprocessor as s, ExtractionHooks as t, styleDictionaryLogOptions as u, resolveTokensSource as v, normalizeTokenTree as w, inferTypeFromPath as x, themeKeyFromPath as y };
220
- //# sourceMappingURL=index-D6x-NBaI.d.mts.map
220
+ //# sourceMappingURL=index-BOd3NVcu.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-D6x-NBaI.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
+ {"version":3,"file":"index-BOd3NVcu.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,6 +1,6 @@
1
1
  import { t as Schema } from "./schema-BwOBgJIM.cjs";
2
2
  import "./index-CwN0c1Q4.cjs";
3
- import { l as Plugin, t as Config } from "./config-DcTkfPiR.cjs";
3
+ import { l as Plugin, t as Config } from "./config-DXVZRs_4.cjs";
4
4
  import { ExecutionContext } from "@power-plant/core";
5
5
  import { Tokens } from "@power-plant/dtcg-schema";
6
6
  import { Hooks, LogConfig, Parser, PreprocessedTokens } from "style-dictionary/types";
@@ -217,4 +217,4 @@ declare function registerRazorwindHooks(plugins?: Plugin[], target?: StyleDictio
217
217
  declare const registerRazorwindParsers: typeof registerRazorwindHooks;
218
218
  //#endregion
219
219
  export { TOKEN_DIRECTORY_GLOB as A, nestFlatTokens as C, DEFAULT_TOKEN_PATH_CANDIDATES as D, parseCssCustomProperties as E, canonicalizeTokenType as F, TOKEN_PARSER_NAMES as M, TYPE_ALIASES as N, RazorwindParserName as O, TYPE_PATH_HINTS as P, inferValue as S, collectCssCustomProperties as T, ResolvedTokensSource as _, getRazorwindParserHooks as a, InferredTokenType as b, registerRazorwindHooks as c, LoadTokensOptions as d, LoadedTokens as f, ResolveTokensPathOptions as g, loadTokensOrThrow as h, getExtractionHooks as i, TOKEN_FILE_EXTENSIONS as j, THEME_BASENAME_PATTERN as k, registerRazorwindParsers as l, loadTokens as m, RAZORWIND_INFER_PREPROCESSOR as n, getRazorwindPreprocessorHooks as o, isEmptyTokens as p, StyleDictionaryRegisterTarget as r, razorwindInferPreprocessor as s, ExtractionHooks as t, styleDictionaryLogOptions as u, resolveTokensSource as v, normalizeTokenTree as w, inferTypeFromPath as x, themeKeyFromPath as y };
220
- //# sourceMappingURL=index-Dy-dYo_x.d.cts.map
220
+ //# sourceMappingURL=index-BbvA_F58.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-Dy-dYo_x.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;;;;;;cAkEjB,cAAc;;iBAmCX,sBAAsB;;;;;;;;;;iBCJtB,2BACd,mBACC;;;;;;iBAqDa,yBACd,mBACC;;;KC9KS;;;;iBA+DI,kBACd,iBACC;;;;iBAiBa,WACd,cACA;EACG;EAAgB,OAAO;;;;;iBA4PZ,mBACd,gBACA;;;;;;;;iBA6Cc,eACd,MAAM,0BACL;;;UCnac;;;;EAIf;;;;EAKA;;;;EAKA,gBAAgB;;UAGD;;;;;;;EAOf;;;;EAKA;;;;EAKA;;;;;;;;;iBAqHc,oBACd,SAAS,2BACR;;;;iBAmFa,iBAAiB;;;UC/MhB,0BAA0B;;;;;;EAMzC;;KAGU,eAAe,SAAS,eAAe;iBAEnC,cAAc;;;;;;;;;iBA6IR,WACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;iBAsCW,kBACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;;;;iBC9NK,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"}
1
+ {"version":3,"file":"index-BbvA_F58.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;;;;;;cAkEjB,cAAc;;iBAmCX,sBAAsB;;;;;;;;;;iBCJtB,2BACd,mBACC;;;;;;iBAqDa,yBACd,mBACC;;;KC9KS;;;;iBA+DI,kBACd,iBACC;;;;iBAiBa,WACd,cACA;EACG;EAAgB,OAAO;;;;;iBA4PZ,mBACd,gBACA;;;;;;;;iBA6Cc,eACd,MAAM,0BACL;;;UCnac;;;;EAIf;;;;EAKA;;;;EAKA,gBAAgB;;UAGD;;;;;;;EAOf;;;;EAKA;;;;EAKA;;;;;;;;;iBAqHc,oBACd,SAAS,2BACR;;;;iBAmFa,iBAAiB;;;UC/MhB,0BAA0B;;;;;;EAMzC;;KAGU,eAAe,SAAS,eAAe;iBAEnC,cAAc;;;;;;;;;iBA6IR,WACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;iBAsCW,kBACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;;;;iBC9NK,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"}
@@ -1,6 +1,6 @@
1
1
  import { d as FontFile, f as FontFileFormat, h as GoogleFont, l as Font, m as Fonts, p as FontRole, t as Schema } from "./schema-BwOBgJIM.mjs";
2
2
  import "./index-D5L2WXYk.mjs";
3
- import { t as Config } from "./config-D66RfJQb.mjs";
3
+ import { t as Config } from "./config-DgupyeYc.mjs";
4
4
  import { ExecutionContext } from "@power-plant/core";
5
5
  //#region src/lib/fonts/constants.d.ts
6
6
  declare const FONT_EXTENSIONS: Set<string>;
@@ -97,4 +97,4 @@ declare function mergeFonts(base: Fonts | undefined, extra: Fonts | undefined):
97
97
  declare function pickFontByRole(fonts: Fonts | undefined, roles: Font["role"] | Array<NonNullable<Font["role"]>>): Font | undefined;
98
98
  //#endregion
99
99
  export { WEIGHT_FROM_SUFFIX as S, FONT_EXTENSIONS as _, ParsedFontFilename as a, MONO_ROLES as b, RenderFontCssOptions as c, prependFontCss as d, renderFontCss as f, copyFontFiles as g, toGoogleFontsCssUrl as h, pickFontByRole as i, cssFontFamily as l, renderLocalFontFaces as m, mergeFonts as n, loadFonts as o, renderGoogleFontImports as p, parseCssFonts as r, parseFontFilename as s, isEmptyFonts as t, fontFamilyName as u, FONT_FORMAT_FROM_EXTENSION as v, SANS_ROLES as x, GENERIC_FALLBACK_FROM_ROLE as y };
100
- //# sourceMappingURL=index-BeHvb_jw.d.mts.map
100
+ //# sourceMappingURL=index-C9wskjJW.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-BeHvb_jw.d.mts","names":[],"sources":["../src/lib/fonts/constants.ts","../src/lib/fonts/copy.ts","../src/lib/fonts/css.ts","../src/lib/fonts/load.ts","../src/lib/fonts/parse.ts"],"mappings":""}
1
+ {"version":3,"file":"index-C9wskjJW.d.mts","names":[],"sources":["../src/lib/fonts/constants.ts","../src/lib/fonts/copy.ts","../src/lib/fonts/css.ts","../src/lib/fonts/load.ts","../src/lib/fonts/parse.ts"],"mappings":""}
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./utils-gLQ_OAIF.cjs"),n=require("./schema-BCofDJWf.cjs"),r=require("./fonts-CkBPEFie.cjs"),i=require("./tokens-DC8ijA17.cjs"),a=require("./plugin.cjs");let o=require("@power-plant/core"),s=require("defu"),c=require("node:path"),l=require("@stryke/string-format/title-case"),u=require("@stryke/fs/exists"),d=require("@stryke/fs/is-file"),f=require("@stryke/fs/json"),p=require("@stryke/fs/list-files"),m=require("@stryke/path/append"),h=require("@stryke/path/file-path-fns"),g=require("@stryke/path/join"),_=require("@stryke/type-checks/is-set-object"),v=require("@stryke/type-checks/is-set-string"),y=require("node:fs/promises"),ee=require("@stryke/env/get-env-paths"),b=require("@stryke/path/find"),x=require("@stryke/path/replace"),te=require("@stryke/type-checks/is-function"),S=require("c12"),ne=require("jiti"),C=require("node:fs"),w=require("node:os");w=e.t(w,1);function T(e){let n=t._(e),r=n.filter(e=>!t.h(e.id));return r.length===0||r.length===1&&n.length===1?[]:r}function re(e,n){let r=e.find(e=>e.id===t.f);return!r||t.h(n.id)?n.tokens:t.d(n.tokens,r.tokens)}function ie(e,n,r){return{...e,theme:n.id,title:t.c(e.title,n.id)??e.title,tokens:re(r,n)}}function ae(e,n){let r=t.c(e.title,n.id);return r?{...e,title:r}:e}async function E(e,t,n=t.plugins.filter(e=>e.generate)){let r={};for(let i of n){let n=await i.generate(e,t);r=(0,s.defu)(n,r)}return r}function D(e){return e.themeGeneration===`combined`}async function O(e,n){let r=n.plugins.filter(e=>e.generate),i=r.filter(D),a=r.filter(e=>!D(e)),o={};i.length>0&&(o=(0,s.defu)(await E(e,n,i),o));let c=t._(e.tokens),l=T(e.tokens);if(a.length===0)return o;if(l.length===0)return(0,s.defu)(await E(e,n,a),o);for(let r of l){let i=await E(ie(e,r,c),ae(n,r),a);o=(0,s.defu)(t.s(i,r.id),o)}return o}async function k(e){let t={};for(let n of e)Object.assign(t,await O(n.spec,n.config));return t}function A(e){return!!((0,v.isSetString)(e)||(0,_.isSetObject)(e)&&`url`in e&&(0,v.isSetString)(e.url))}function j(e){if((0,v.isSetString)(e))return e;if((0,_.isSetObject)(e)&&`url`in e&&(0,v.isSetString)(e.url))return e.url}const oe=n.o.partial(),M=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),se=(0,s.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function ce(e,t){return(0,c.isAbsolute)(t)?t:(0,c.resolve)(e,t)}function le(e){return Array.isArray(e)?e.filter(v.isSetString):(0,v.isSetString)(e)?[e]:[]}function N(e){let t=e.toLowerCase();if(M.has(t))return t}function ue(e){let t=(0,h.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&M.has(t))}function P(e){if(!e)return;let t=n.a.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){let e=n.a.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function F(e){if(!e)return;let t=n.s.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){if((0,v.isSetString)(t)){let e=(0,h.findFileName)(t,{withExtension:!1})||t,i=n.s.safeParse({name:e,path:t});i.success&&r.push(i.data);continue}let e=n.s.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function I(e){if(!(0,_.isSetObject)(e))return;let{files:t,usage:n,...r}=e,i=oe.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function L(e){return(0,_.isSetObject)(e)&&`path`in e}async function de(e){let t=(0,g.joinPaths)(e,`package.json`);if(!(0,u.existsSync)(t))return;let n;try{n=await(0,f.readJsonFile)(t)}catch{return}let r={};(0,v.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,v.isSetString)(n.description)&&(r.description=n.description),(0,v.isSetString)(n.version)&&(r.version=n.version),(0,v.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=j(n.repository);if(i&&(r.repository=i),(0,_.isSetObject)(n.dependencies)&&(r.dependencies=n.dependencies),(0,_.isSetObject)(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(v.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,c;L(a)?s=P(a):(0,_.isSetObject)(a)&&(o=I(a),`files`in a&&(s=P(a.files)),`usage`in a&&(c=F(a.usage)));let l=se(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function fe(e){let t=(0,g.joinPaths)(e,`component.json`);if(!(0,u.existsSync)(t))return;let n;try{n=await(0,f.readJsonFile)(t)}catch{return}if(L(n)||Array.isArray(n)){let e=P(n);if(e)return{files:e}}if(!(0,_.isSetObject)(n))return;let r=I(n)??{},i=`files`in n?P(n.files):void 0,a=`usage`in n?F(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 pe(e){try{return(await(0,y.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&ue(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function me(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,m.appendPath)(t.path,e),r=(0,h.findFileExtensionSafe)(t.path)??``,i=t.language??N(r),a=t.name||(0,h.findFileName)(t.path,{withExtension:!1})||t.path,o=t.content??((0,u.existsSync)(n)?await(0,y.readFile)(n,`utf8`):void 0);return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=(0,g.joinPaths)(e,`usage`);if(!(0,u.existsSync)(n)||!(0,d.isDirectory)(n))return;let r=await pe(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=(0,g.joinPaths)(n,e),r=N((0,h.findFileExtensionSafe)(e)??``),i=(0,h.findFileName)(e,{withExtension:!1})||e;return{name:i,title:(0,l.titleCase)(i),path:t,content:await(0,y.readFile)(t,`utf8`),...r?{language:r}:{}}}))}async function he(e,t){let n=t??(await(0,p.listFiles)(e)).filter(e=>(0,h.findFileName)(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test((0,h.findFileExtensionSafe)(t))?`component`:`file`,path:t,content:await(0,y.readFile)((0,m.appendPath)(t,e),`utf8`)}:{type:/[tj]sx$/.test((0,h.findFileExtensionSafe)(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await(0,y.readFile)((0,m.appendPath)(t.path,e),`utf8`):void 0,path:(0,m.appendPath)(t.path,e)}))}async function ge(e){let t=await de(e),r=await fe(e);if(!t&&!r)return;let i=se(r??{},t??{}),a=(0,v.isSetString)(i.name)?i.name:(0,h.findFolderName)(e),o=(0,v.isSetString)(i.title)?i.title:(0,l.titleCase)(a),s=n.o.safeParse({...i,name:a,title:o});if(!s.success)return;let c=await me(e,s.data.usage);return{...s.data,files:await he(e,s.data.files),...c?.length?{usage:c}:{}}}async function R(e){let t={},n=le(e.options.componentsPath);for(let r of n){let n=ce(e.cwd,r);if(!(!(0,u.existsSync)(n)||!(0,d.isDirectory)(n)))try{let e=await(0,y.readdir)(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await ge((0,g.joinPaths)(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const _e=n.r.partial(),z=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),B=(0,s.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function ve(e,t){return(0,c.isAbsolute)(t)?t:(0,c.resolve)(e,t)}function ye(e){return Array.isArray(e)?e.filter(v.isSetString):(0,v.isSetString)(e)?[e]:[]}function V(e){let t=e.toLowerCase();if(z.has(t))return t}function H(e){let t=(0,h.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&z.has(t))}function be(e){return i.x.test(e)}async function U(e){try{return(await(0,y.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&H(e.name)).map(e=>e.name)}catch{return[]}}function W(e){if(!e)return;let t=n.n.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){let e=n.n.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function G(e){if(!(0,_.isSetObject)(e))return;let t=_e.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function K(e){return(0,_.isSetObject)(e)&&`path`in e}async function q(e,t,n){let r=(0,m.appendPath)(e,t),i=V((0,h.findFileExtensionSafe)(e)??``)??`file`,a=i===`svg`?await(0,y.readFile)(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function xe(e){let t=(0,g.joinPaths)(e,`package.json`);if(!(0,u.existsSync)(t))return;let n;try{n=await(0,f.readJsonFile)(t)}catch{return}let r={};(0,v.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,v.isSetString)(n.description)&&(r.description=n.description),(0,v.isSetString)(n.version)&&(r.version=n.version),(0,v.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=j(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(v.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;K(a)?s=W(a):(0,_.isSetObject)(a)&&(o=G(a),`files`in a&&(s=W(a.files)));let c=B(o??{},r);return s?.length&&(c.files=s),Object.keys(c).length>0?c:void 0}async function Se(e){let t=(0,g.joinPaths)(e,`icon.json`);if(!(0,u.existsSync)(t))return;let n;try{n=await(0,f.readJsonFile)(t)}catch{return}if(K(n)||Array.isArray(n)){let e=W(n);if(e)return{files:e}}return G(n)}async function Ce(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,m.appendPath)(t.path,e),r=(0,h.findFileExtensionSafe)(t.path)??``,i=t.type??V(r)??`file`,a=t.content===void 0?i===`svg`?await(0,y.readFile)(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await U(e);return Promise.all(n.map(t=>q(t,e)))}async function we(e){let t=await xe(e),r=await Se(e),i=await U(e);if(!t&&!r&&i.length===0)return;let a=B(r??{},t??{}),o=(0,v.isSetString)(a.name)?a.name:(0,h.findFolderName)(e),s=(0,v.isSetString)(a.title)?a.title:(0,l.titleCase)(o),c=n.r.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await Ce(e,c.data.files)}}function J(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:(0,l.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 Te(e,t,n){let r=await U(e);for(let i of r){let r=(0,h.findFileName)(i,{withExtension:!1});r&&J(n,r,await q(i,e,t))}}async function Y(e){let t={},n=ye(e.options.iconsPath);for(let r of n){let n=ve(e.cwd,r);if(!(!(0,u.existsSync)(n)||!(0,d.isDirectory)(n)))try{let e=await(0,y.readdir)(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=(0,g.joinPaths)(n,r.name);if(r.isDirectory()){if(be(r.name)){await Te(e,r.name,t);continue}let n=await we(e);if(n){let e=t[n.name];t[n.name]=e?B(n,e):n}continue}if(r.isFile()&&H(r.name)){let e=(0,h.findFileName)(r.name,{withExtension:!1});if(!e)continue;J(t,e,await q(r.name,n))}}}catch{continue}}return t}function X(e,t){let n=e[t];return(0,v.isSetString)(n)?n:void 0}function Z(e){let t={};(0,v.isSetString)(e.name)&&(t.name=e.name),(0,v.isSetString)(e.description)&&(t.description=e.description),(0,v.isSetString)(e.homepage)&&(t.homepage=e.homepage);let n=j(e.repository);n&&(t.repository=n),(0,v.isSetString)(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if((0,_.isSetObject)(r)){let t=r,n=X(t,`title`),a=X(t,`name`),o=X(t,`description`),s=X(t,`homepage`),c=X(t,`logo`),u=j(t.repository);a?i.name=a:(0,v.isSetString)(e.name)&&(i.name=e.name),n?i.title=n:(0,v.isSetString)(i.name)&&(i.title=(0,l.titleCase)(i.name)),o?i.description=o:(0,v.isSetString)(e.description)&&(i.description=e.description),s?i.homepage=s:A(e.homepage)?i.homepage=j(e.homepage):A(e.author)?i.homepage=j(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&A(e.maintainers[0])?i.homepage=j(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&A(e.contributors[0])?i.homepage=j(e.contributors[0]):A(e.bugs)&&(i.homepage=j(e.bugs)),c&&(i.logo=c),u?i.repository=u:A(e.repository)&&(i.repository=j(e.repository))}return(0,s.defu)(i,t)}function Ee(e){let t={};return(0,v.isSetString)(e.name)&&(t.name=e.name),(0,v.isSetString)(e.title)&&(t.title=e.title),(0,v.isSetString)(e.description)&&(t.description=e.description),(0,v.isSetString)(e.repository)&&(t.repository=e.repository),(0,v.isSetString)(e.homepage)&&(t.homepage=e.homepage),(0,v.isSetString)(e.logo)&&(t.logo=e.logo),t}async function De(e){let t=(0,g.joinPaths)(e,`package.json`);if(!(0,u.existsSync)(t))return{};let n;try{n=await(0,f.readJsonFile)(t)}catch{return{}}return Z(n)}async function Oe(e,t){let n=await De(e),r=Ee(t);return(0,s.defu)(r,n)}function ke(e){let t=new Set;return e.filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const Ae=w.default.homedir();function je(e){return Array.isArray(e)?e.filter(e=>(0,_.isSetObject)(e)):[]}function Q(e){return Array.isArray(e)||!(0,_.isSetObject)(e)?{}:{...e}}const Me=[`tokensPath`,`componentsPath`,`iconsPath`,`fontsPath`];function Ne(e,t){let n={...e};for(let e of Me)t[e]!=null&&delete n[e];return n}function Pe(e,t,n,r){let i=(0,s.defu)({cwd:e,envPaths:r.envPaths},Ne(t,n),n,r.workspaceLayer,r.environmentLayer,r.homeLayer,{componentsPath:e,iconsPath:(0,g.joinPaths)(e,`assets/icons`),fontsPath:(0,g.joinPaths)(e,`assets/fonts`),plugins:[]});if(Array.isArray(i.componentsPath)){let t=i.componentsPath.filter(v.isSetString).map(e=>(0,b.findFilePath)(e));i.componentsPath=t.length>0?t:e}else i.componentsPath=(0,v.isSetString)(i.componentsPath)?(0,b.findFilePath)(i.componentsPath):e;if(Array.isArray(i.iconsPath)){let t=i.iconsPath.filter(v.isSetString).map(e=>(0,b.findFilePath)(e));i.iconsPath=t.length>0?t:(0,g.joinPaths)(e,`assets/icons`)}else i.iconsPath=(0,v.isSetString)(i.iconsPath)?(0,b.findFilePath)(i.iconsPath):(0,g.joinPaths)(e,`assets/icons`);if(Array.isArray(i.fontsPath)){let t=i.fontsPath.filter(v.isSetString).map(e=>(0,b.findFilePath)(e));i.fontsPath=t.length>0?t:(0,g.joinPaths)(e,`assets/fonts`)}else i.fontsPath=(0,v.isSetString)(i.fontsPath)?(0,b.findFilePath)(i.fontsPath):(0,g.joinPaths)(e,`assets/fonts`);return i.plugins=ke(Array.isArray(i.plugins)?i.plugins:[]),i.verbose=t.verbose===!0||n.verbose===!0,i}async function $(e,t){let n=t.configFile&&(0,C.existsSync)((0,x.replacePath)(t.configFile,e))?(0,x.replacePath)(t.configFile,e):t.configFile&&(0,C.existsSync)(t.configFile)?t.configFile:(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.ts`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.ts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.js`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.js`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.mts`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.mts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.mjs`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.mjs`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.cjs`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.cjs`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.cts`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.cts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.json`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.json`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.yaml`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.yaml`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.yml`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.yml`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.ts`))?(0,g.joinPaths)(e,`razorwind.config.ts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.js`))?(0,g.joinPaths)(e,`razorwind.config.js`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.mts`))?(0,g.joinPaths)(e,`razorwind.config.mts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.mjs`))?(0,g.joinPaths)(e,`razorwind.config.mjs`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.cjs`))?(0,g.joinPaths)(e,`razorwind.config.cjs`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.cts`))?(0,g.joinPaths)(e,`razorwind.config.cts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.json`))?(0,g.joinPaths)(e,`razorwind.config.json`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.yaml`))?(0,g.joinPaths)(e,`razorwind.config.yaml`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.yml`))?(0,g.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),o=[{}];if(n){let r=(0,c.isAbsolute)(n)?n:(0,c.resolve)(e,n),i=await a.import(r,{default:!0});if(i){let r=i;if(r=(0,te.isFunction)(i)?await Promise.resolve(i({cwd:e,mode:t.mode??`development`})):await Promise.resolve(i),Array.isArray(r)){let e=je(r);if(e.length===0)throw Error(`Razorwind config array is empty. Provide at least one configuration object.`);o=e.map(e=>({...e,configFile:n}))}else(0,_.isSetObject)(r)&&(o=[{...r,configFile:n}])}}let[s,l,u]=await Promise.all([(0,S.loadConfig)({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),(0,S.loadConfig)({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),(0,S.loadConfig)({cwd:Ae,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),d=Q(s?.config),f=n?(0,c.isAbsolute)(n)?n:(0,c.resolve)(e,n):void 0,p=typeof s?.configFile==`string`?s.configFile:void 0;f&&p&&(0,c.resolve)(e,p)===f&&delete d.plugins;let m={envPaths:{...r,home:Ae},workspaceLayer:d,environmentLayer:Q(l?.config),homeLayer:Q(u?.config)};return o.map(n=>Pe(e,t,n,m))}async function Fe(e,t){let n=(await $(e,t))[0];if(!n)throw Error(`Unable to resolve Razorwind configuration.`);return n}async function Ie(e){if(e.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 t=e.options.tokens;(!t||i.t(t))&&(t=await i.n(e));let n={...await Oe(e.cwd,e.options),tokens:t??{},components:(0,s.defu)(e.options.components??{},await R(e)??{}),icons:(0,s.defu)(e.options.icons??{},await Y(e)??{}),fonts:(0,s.defu)(e.options.fonts??{},await r.a(e)??{})};for(let t of e.options.plugins.filter(e=>e.extract))n=await t.extract(n,e.options);if(n.tokens&&!i.t(n.tokens))for(let t of e.options.plugins.filter(e=>e.validate))await t.validate(n,e.options);return n}async function Le(e,t){let n=await $(e.cwd,t),r=[];for(let t of n)e.options=t,r.push({spec:await Ie(e),config:t});return r}async function Re(e,t){let n=[];for(let[r,i]of Object.entries(e??{})){let e=i?.path||r;if(!e)continue;let a=(0,c.isAbsolute)(e)?e:(0,c.resolve)(t,e),o=(i?.chunks??[]).map(e=>e.content??``).join(``);await(0,y.mkdir)((0,c.dirname)(a),{recursive:!0}),await(0,y.writeFile)(a,o,`utf8`),n.push(a)}return n}var ze=`0.0.60`;function Be(e){return e}const Ve=(0,o.defineGenerator)({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, icons, and fonts.`,version:ze,tags:[`razorwind`,`dtcg`]},schema:(0,o.defineSchema)({schema:n.t}),input:async e=>{let t=(0,o.useExecution)(),n=await Le(t,e),r=n[0];if(!r)throw Error(`Unable to resolve Razorwind configuration.`);return t.generationRuns=n,t.options=r.config,r.spec},output:async(e,t,n)=>{await Re(n,(0,o.useExecution)().cwd)},generator:async e=>{let t=(0,o.useExecution)();return k(t.generationRuns&&t.generationRuns.length>0?t.generationRuns:[{spec:e,config:t.options}])}});exports.DEFAULT_TOKEN_PATH_CANDIDATES=i.b,exports.FONT_EXTENSIONS=r.h,exports.FONT_FORMAT_FROM_EXTENSION=r.g,exports.GENERIC_FALLBACK_FROM_ROLE=r._,exports.MONO_ROLES=r.v,exports.RAZORWIND_INFER_PREPROCESSOR=i.o,exports.SANS_ROLES=r.y,exports.THEME_BASENAME_PATTERN=i.x,exports.TOKEN_DIRECTORY_GLOB=i.S,exports.TOKEN_FILE_EXTENSIONS=i.C,exports.TYPE_ALIASES=i.T,exports.TYPE_PATH_HINTS=i.E,exports.WEIGHT_FROM_SUFFIX=r.b,exports.WINDIE_PARSERS=i.w,exports.razorwindParsers=i.w,exports.canonicalizeTokenType=i.D,exports.collectCssCustomProperties=i.m,exports.copyFontFiles=r.m,exports.cssFontFamily=r.s,exports.defineConfig=Be,exports.definePlugin=a.definePlugin,exports.fontFamilyName=r.c,exports.generateAllPluginDocuments=k,exports.generatePluginDocuments=O,exports.generator=Ve,exports.getExtractionHooks=i.s,exports.getRazorwindParserHooks=i.c,exports.getRazorwindPreprocessorHooks=i.l,exports.inferTypeFromPath=i.g,exports.inferValue=i._,exports.isEmptyFonts=r.t,exports.isEmptyTokens=i.t,exports.loadComponents=R,exports.loadFonts=r.a,exports.loadIcons=Y,exports.loadSchemaMetaFromPackageJson=De,exports.loadTokens=i.n,exports.loadTokensOrThrow=i.r,exports.mergeFonts=r.n,exports.nestFlatTokens=i.v,exports.normalizeRepository=j,exports.normalizeTokenTree=i.y,exports.parseCssCustomProperties=i.h,exports.parseCssFonts=r.r,exports.parseFontFilename=r.o,exports.pickFontByRole=r.i,exports.prepareGenerationRuns=Le,exports.prepareSpec=Ie,exports.prependFontCss=r.l,exports.razorwindInferPreprocessor=i.u,exports.registerRazorwindHooks=i.d,exports.registerRazorwindParsers=i.f,exports.renderFontCss=r.u,exports.renderGoogleFontImports=r.d,exports.renderLocalFontFaces=r.f,exports.resolveConfig=Fe,exports.resolveConfigs=$,exports.resolveSchemaMeta=Oe,exports.resolveTokensSource=i.i,exports.schemaMetaFromConfig=Ee,exports.schemaMetaFromPackageJson=Z,exports.styleDictionaryLogOptions=i.p,exports.themeKeyFromPath=i.a,exports.themesForGeneration=T,exports.toGoogleFontsCssUrl=r.p,exports.uniquePlugins=ke,exports.writeGeneratedDocuments=Re;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./utils-gLQ_OAIF.cjs"),n=require("./schema-BCofDJWf.cjs"),r=require("./fonts-CkBPEFie.cjs"),i=require("./tokens-DC8ijA17.cjs"),a=require("./plugin.cjs");let o=require("@power-plant/core"),s=require("defu"),c=require("node:path"),l=require("@stryke/string-format/title-case"),u=require("@stryke/fs/exists"),d=require("@stryke/fs/is-file"),f=require("@stryke/fs/json"),p=require("@stryke/fs/list-files"),m=require("@stryke/path/append"),h=require("@stryke/path/file-path-fns"),g=require("@stryke/path/join"),_=require("@stryke/type-checks/is-set-object"),v=require("@stryke/type-checks/is-set-string"),y=require("node:fs/promises"),ee=require("@stryke/env/get-env-paths"),b=require("@stryke/path/find"),x=require("@stryke/path/replace"),te=require("@stryke/type-checks/is-function"),S=require("c12"),ne=require("jiti"),C=require("node:fs"),w=require("node:os");w=e.t(w,1);function T(e){let n=t._(e),r=n.filter(e=>!t.h(e.id));return r.length===0||r.length===1&&n.length===1?[]:r}function re(e,n){let r=e.find(e=>e.id===t.f);return!r||t.h(n.id)?n.tokens:t.d(n.tokens,r.tokens)}function ie(e,n,r){return{...e,theme:n.id,title:t.c(e.title,n.id)??e.title,tokens:re(r,n)}}function ae(e,n){let r=t.c(e.title,n.id);return r?{...e,title:r}:e}async function E(e,t,n=t.plugins.filter(e=>e.generate)){let r={};for(let i of n){let n=await i.generate(e,t);r=(0,s.defu)(n,r)}return r}function D(e){return e.themeGeneration===`combined`}async function O(e,n){let r=n.plugins.filter(e=>e.generate),i=r.filter(D),a=r.filter(e=>!D(e)),o={};i.length>0&&(o=(0,s.defu)(await E(e,n,i),o));let c=t._(e.tokens),l=T(e.tokens);if(a.length===0)return o;if(l.length===0)return(0,s.defu)(await E(e,n,a),o);for(let r of l){let i=await E(ie(e,r,c),ae(n,r),a);o=(0,s.defu)(t.s(i,r.id),o)}return o}async function k(e){let t={};for(let n of e)Object.assign(t,await O(n.spec,n.config));return t}function A(e){return!!((0,v.isSetString)(e)||(0,_.isSetObject)(e)&&`url`in e&&(0,v.isSetString)(e.url))}function j(e){if((0,v.isSetString)(e))return e;if((0,_.isSetObject)(e)&&`url`in e&&(0,v.isSetString)(e.url))return e.url}const oe=n.o.partial(),M=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),se=(0,s.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function ce(e,t){return(0,c.isAbsolute)(t)?t:(0,c.resolve)(e,t)}function le(e){return Array.isArray(e)?e.filter(v.isSetString):(0,v.isSetString)(e)?[e]:[]}function N(e){let t=e.toLowerCase();if(M.has(t))return t}function ue(e){let t=(0,h.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&M.has(t))}function P(e){if(!e)return;let t=n.a.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){let e=n.a.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function F(e){if(!e)return;let t=n.s.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){if((0,v.isSetString)(t)){let e=(0,h.findFileName)(t,{withExtension:!1})||t,i=n.s.safeParse({name:e,path:t});i.success&&r.push(i.data);continue}let e=n.s.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function I(e){if(!(0,_.isSetObject)(e))return;let{files:t,usage:n,...r}=e,i=oe.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function L(e){return(0,_.isSetObject)(e)&&`path`in e}async function de(e){let t=(0,g.joinPaths)(e,`package.json`);if(!(0,u.existsSync)(t))return;let n;try{n=await(0,f.readJsonFile)(t)}catch{return}let r={};(0,v.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,v.isSetString)(n.description)&&(r.description=n.description),(0,v.isSetString)(n.version)&&(r.version=n.version),(0,v.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=j(n.repository);if(i&&(r.repository=i),(0,_.isSetObject)(n.dependencies)&&(r.dependencies=n.dependencies),(0,_.isSetObject)(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(v.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,c;L(a)?s=P(a):(0,_.isSetObject)(a)&&(o=I(a),`files`in a&&(s=P(a.files)),`usage`in a&&(c=F(a.usage)));let l=se(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function fe(e){let t=(0,g.joinPaths)(e,`component.json`);if(!(0,u.existsSync)(t))return;let n;try{n=await(0,f.readJsonFile)(t)}catch{return}if(L(n)||Array.isArray(n)){let e=P(n);if(e)return{files:e}}if(!(0,_.isSetObject)(n))return;let r=I(n)??{},i=`files`in n?P(n.files):void 0,a=`usage`in n?F(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 pe(e){try{return(await(0,y.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&ue(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function me(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,m.appendPath)(t.path,e),r=(0,h.findFileExtensionSafe)(t.path)??``,i=t.language??N(r),a=t.name||(0,h.findFileName)(t.path,{withExtension:!1})||t.path,o=t.content??((0,u.existsSync)(n)?await(0,y.readFile)(n,`utf8`):void 0);return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=(0,g.joinPaths)(e,`usage`);if(!(0,u.existsSync)(n)||!(0,d.isDirectory)(n))return;let r=await pe(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=(0,g.joinPaths)(n,e),r=N((0,h.findFileExtensionSafe)(e)??``),i=(0,h.findFileName)(e,{withExtension:!1})||e;return{name:i,title:(0,l.titleCase)(i),path:t,content:await(0,y.readFile)(t,`utf8`),...r?{language:r}:{}}}))}async function he(e,t){let n=t??(await(0,p.listFiles)(e)).filter(e=>(0,h.findFileName)(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test((0,h.findFileExtensionSafe)(t))?`component`:`file`,path:t,content:await(0,y.readFile)((0,m.appendPath)(t,e),`utf8`)}:{type:/[tj]sx$/.test((0,h.findFileExtensionSafe)(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await(0,y.readFile)((0,m.appendPath)(t.path,e),`utf8`):void 0,path:(0,m.appendPath)(t.path,e)}))}async function ge(e){let t=await de(e),r=await fe(e);if(!t&&!r)return;let i=se(r??{},t??{}),a=(0,v.isSetString)(i.name)?i.name:(0,h.findFolderName)(e),o=(0,v.isSetString)(i.title)?i.title:(0,l.titleCase)(a),s=n.o.safeParse({...i,name:a,title:o});if(!s.success)return;let c=await me(e,s.data.usage);return{...s.data,files:await he(e,s.data.files),...c?.length?{usage:c}:{}}}async function R(e){let t={},n=le(e.options.componentsPath);for(let r of n){let n=ce(e.cwd,r);if(!(!(0,u.existsSync)(n)||!(0,d.isDirectory)(n)))try{let e=await(0,y.readdir)(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await ge((0,g.joinPaths)(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const _e=n.r.partial(),z=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),B=(0,s.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function ve(e,t){return(0,c.isAbsolute)(t)?t:(0,c.resolve)(e,t)}function ye(e){return Array.isArray(e)?e.filter(v.isSetString):(0,v.isSetString)(e)?[e]:[]}function V(e){let t=e.toLowerCase();if(z.has(t))return t}function H(e){let t=(0,h.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&z.has(t))}function be(e){return i.x.test(e)}async function U(e){try{return(await(0,y.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&H(e.name)).map(e=>e.name)}catch{return[]}}function W(e){if(!e)return;let t=n.n.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){let e=n.n.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function G(e){if(!(0,_.isSetObject)(e))return;let t=_e.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function K(e){return(0,_.isSetObject)(e)&&`path`in e}async function q(e,t,n){let r=(0,m.appendPath)(e,t),i=V((0,h.findFileExtensionSafe)(e)??``)??`file`,a=i===`svg`?await(0,y.readFile)(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function xe(e){let t=(0,g.joinPaths)(e,`package.json`);if(!(0,u.existsSync)(t))return;let n;try{n=await(0,f.readJsonFile)(t)}catch{return}let r={};(0,v.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,v.isSetString)(n.description)&&(r.description=n.description),(0,v.isSetString)(n.version)&&(r.version=n.version),(0,v.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=j(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(v.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;K(a)?s=W(a):(0,_.isSetObject)(a)&&(o=G(a),`files`in a&&(s=W(a.files)));let c=B(o??{},r);return s?.length&&(c.files=s),Object.keys(c).length>0?c:void 0}async function Se(e){let t=(0,g.joinPaths)(e,`icon.json`);if(!(0,u.existsSync)(t))return;let n;try{n=await(0,f.readJsonFile)(t)}catch{return}if(K(n)||Array.isArray(n)){let e=W(n);if(e)return{files:e}}return G(n)}async function Ce(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,m.appendPath)(t.path,e),r=(0,h.findFileExtensionSafe)(t.path)??``,i=t.type??V(r)??`file`,a=t.content===void 0?i===`svg`?await(0,y.readFile)(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await U(e);return Promise.all(n.map(t=>q(t,e)))}async function we(e){let t=await xe(e),r=await Se(e),i=await U(e);if(!t&&!r&&i.length===0)return;let a=B(r??{},t??{}),o=(0,v.isSetString)(a.name)?a.name:(0,h.findFolderName)(e),s=(0,v.isSetString)(a.title)?a.title:(0,l.titleCase)(o),c=n.r.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await Ce(e,c.data.files)}}function J(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:(0,l.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 Te(e,t,n){let r=await U(e);for(let i of r){let r=(0,h.findFileName)(i,{withExtension:!1});r&&J(n,r,await q(i,e,t))}}async function Y(e){let t={},n=ye(e.options.iconsPath);for(let r of n){let n=ve(e.cwd,r);if(!(!(0,u.existsSync)(n)||!(0,d.isDirectory)(n)))try{let e=await(0,y.readdir)(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=(0,g.joinPaths)(n,r.name);if(r.isDirectory()){if(be(r.name)){await Te(e,r.name,t);continue}let n=await we(e);if(n){let e=t[n.name];t[n.name]=e?B(n,e):n}continue}if(r.isFile()&&H(r.name)){let e=(0,h.findFileName)(r.name,{withExtension:!1});if(!e)continue;J(t,e,await q(r.name,n))}}}catch{continue}}return t}function X(e,t){let n=e[t];return(0,v.isSetString)(n)?n:void 0}function Z(e){let t={};(0,v.isSetString)(e.name)&&(t.name=e.name),(0,v.isSetString)(e.description)&&(t.description=e.description),(0,v.isSetString)(e.homepage)&&(t.homepage=e.homepage);let n=j(e.repository);n&&(t.repository=n),(0,v.isSetString)(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if((0,_.isSetObject)(r)){let t=r,n=X(t,`title`),a=X(t,`name`),o=X(t,`description`),s=X(t,`homepage`),c=X(t,`logo`),u=j(t.repository);a?i.name=a:(0,v.isSetString)(e.name)&&(i.name=e.name),n?i.title=n:(0,v.isSetString)(i.name)&&(i.title=(0,l.titleCase)(i.name)),o?i.description=o:(0,v.isSetString)(e.description)&&(i.description=e.description),s?i.homepage=s:A(e.homepage)?i.homepage=j(e.homepage):A(e.author)?i.homepage=j(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&A(e.maintainers[0])?i.homepage=j(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&A(e.contributors[0])?i.homepage=j(e.contributors[0]):A(e.bugs)&&(i.homepage=j(e.bugs)),c&&(i.logo=c),u?i.repository=u:A(e.repository)&&(i.repository=j(e.repository))}return(0,s.defu)(i,t)}function Ee(e){let t={};return(0,v.isSetString)(e.name)&&(t.name=e.name),(0,v.isSetString)(e.title)&&(t.title=e.title),(0,v.isSetString)(e.description)&&(t.description=e.description),(0,v.isSetString)(e.repository)&&(t.repository=e.repository),(0,v.isSetString)(e.homepage)&&(t.homepage=e.homepage),(0,v.isSetString)(e.logo)&&(t.logo=e.logo),t}async function De(e){let t=(0,g.joinPaths)(e,`package.json`);if(!(0,u.existsSync)(t))return{};let n;try{n=await(0,f.readJsonFile)(t)}catch{return{}}return Z(n)}async function Oe(e,t){let n=await De(e),r=Ee(t);return(0,s.defu)(r,n)}function ke(e){let t=new Set,n=new Set,r=e=>{let t=[];for(let i of e)!i||n.has(i)||(n.add(i),i.plugins&&t.push(...r(i.plugins)),(i.extract||i.generate||i.validate)&&t.push(i),n.delete(i));return t};return r(e).filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const Ae=w.default.homedir();function je(e){return Array.isArray(e)?e.filter(e=>(0,_.isSetObject)(e)):[]}function Q(e){return Array.isArray(e)||!(0,_.isSetObject)(e)?{}:{...e}}const Me=[`tokensPath`,`componentsPath`,`iconsPath`,`fontsPath`];function Ne(e,t){let n={...e};for(let e of Me)t[e]!=null&&delete n[e];return n}function Pe(e,t,n,r){let i=(0,s.defu)({cwd:e,envPaths:r.envPaths},Ne(t,n),n,r.workspaceLayer,r.environmentLayer,r.homeLayer,{componentsPath:e,iconsPath:(0,g.joinPaths)(e,`assets/icons`),fontsPath:(0,g.joinPaths)(e,`assets/fonts`),plugins:[]});if(Array.isArray(i.componentsPath)){let t=i.componentsPath.filter(v.isSetString).map(e=>(0,b.findFilePath)(e));i.componentsPath=t.length>0?t:e}else i.componentsPath=(0,v.isSetString)(i.componentsPath)?(0,b.findFilePath)(i.componentsPath):e;if(Array.isArray(i.iconsPath)){let t=i.iconsPath.filter(v.isSetString).map(e=>(0,b.findFilePath)(e));i.iconsPath=t.length>0?t:(0,g.joinPaths)(e,`assets/icons`)}else i.iconsPath=(0,v.isSetString)(i.iconsPath)?(0,b.findFilePath)(i.iconsPath):(0,g.joinPaths)(e,`assets/icons`);if(Array.isArray(i.fontsPath)){let t=i.fontsPath.filter(v.isSetString).map(e=>(0,b.findFilePath)(e));i.fontsPath=t.length>0?t:(0,g.joinPaths)(e,`assets/fonts`)}else i.fontsPath=(0,v.isSetString)(i.fontsPath)?(0,b.findFilePath)(i.fontsPath):(0,g.joinPaths)(e,`assets/fonts`);return i.plugins=ke(Array.isArray(i.plugins)?i.plugins:[]),i.verbose=t.verbose===!0||n.verbose===!0,i}async function $(e,t){let n=t.configFile&&(0,C.existsSync)((0,x.replacePath)(t.configFile,e))?(0,x.replacePath)(t.configFile,e):t.configFile&&(0,C.existsSync)(t.configFile)?t.configFile:(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.ts`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.ts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.js`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.js`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.mts`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.mts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.mjs`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.mjs`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.cjs`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.cjs`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.cts`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.cts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.json`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.json`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.yaml`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.yaml`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.yml`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.yml`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.ts`))?(0,g.joinPaths)(e,`razorwind.config.ts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.js`))?(0,g.joinPaths)(e,`razorwind.config.js`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.mts`))?(0,g.joinPaths)(e,`razorwind.config.mts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.mjs`))?(0,g.joinPaths)(e,`razorwind.config.mjs`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.cjs`))?(0,g.joinPaths)(e,`razorwind.config.cjs`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.cts`))?(0,g.joinPaths)(e,`razorwind.config.cts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.json`))?(0,g.joinPaths)(e,`razorwind.config.json`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.yaml`))?(0,g.joinPaths)(e,`razorwind.config.yaml`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.yml`))?(0,g.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),o=[{}];if(n){let r=(0,c.isAbsolute)(n)?n:(0,c.resolve)(e,n),i=await a.import(r,{default:!0});if(i){let r=i;if(r=(0,te.isFunction)(i)?await Promise.resolve(i({cwd:e,mode:t.mode??`development`})):await Promise.resolve(i),Array.isArray(r)){let e=je(r);if(e.length===0)throw Error(`Razorwind config array is empty. Provide at least one configuration object.`);o=e.map(e=>({...e,configFile:n}))}else(0,_.isSetObject)(r)&&(o=[{...r,configFile:n}])}}let[s,l,u]=await Promise.all([(0,S.loadConfig)({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),(0,S.loadConfig)({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),(0,S.loadConfig)({cwd:Ae,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),d=Q(s?.config),f=n?(0,c.isAbsolute)(n)?n:(0,c.resolve)(e,n):void 0,p=typeof s?.configFile==`string`?s.configFile:void 0;f&&p&&(0,c.resolve)(e,p)===f&&delete d.plugins;let m={envPaths:{...r,home:Ae},workspaceLayer:d,environmentLayer:Q(l?.config),homeLayer:Q(u?.config)};return o.map(n=>Pe(e,t,n,m))}async function Fe(e,t){let n=(await $(e,t))[0];if(!n)throw Error(`Unable to resolve Razorwind configuration.`);return n}async function Ie(e){if(e.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 t=e.options.tokens;(!t||i.t(t))&&(t=await i.n(e));let n={...await Oe(e.cwd,e.options),tokens:t??{},components:(0,s.defu)(e.options.components??{},await R(e)??{}),icons:(0,s.defu)(e.options.icons??{},await Y(e)??{}),fonts:(0,s.defu)(e.options.fonts??{},await r.a(e)??{})};for(let t of e.options.plugins.filter(e=>e.extract))n=await t.extract(n,e.options);if(n.tokens&&!i.t(n.tokens))for(let t of e.options.plugins.filter(e=>e.validate))await t.validate(n,e.options);return n}async function Le(e,t){let n=await $(e.cwd,t),r=[];for(let t of n)e.options=t,r.push({spec:await Ie(e),config:t});return r}async function Re(e,t){let n=[];for(let[r,i]of Object.entries(e??{})){let e=i?.path||r;if(!e)continue;let a=(0,c.isAbsolute)(e)?e:(0,c.resolve)(t,e),o=(i?.chunks??[]).map(e=>e.content??``).join(``);await(0,y.mkdir)((0,c.dirname)(a),{recursive:!0}),await(0,y.writeFile)(a,o,`utf8`),n.push(a)}return n}var ze=`0.0.61`;function Be(e){return e}const Ve=(0,o.defineGenerator)({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, icons, and fonts.`,version:ze,tags:[`razorwind`,`dtcg`]},schema:(0,o.defineSchema)({schema:n.t}),input:async e=>{let t=(0,o.useExecution)(),n=await Le(t,e),r=n[0];if(!r)throw Error(`Unable to resolve Razorwind configuration.`);return t.generationRuns=n,t.options=r.config,r.spec},output:async(e,t,n)=>{await Re(n,(0,o.useExecution)().cwd)},generator:async e=>{let t=(0,o.useExecution)();return k(t.generationRuns&&t.generationRuns.length>0?t.generationRuns:[{spec:e,config:t.options}])}});exports.DEFAULT_TOKEN_PATH_CANDIDATES=i.b,exports.FONT_EXTENSIONS=r.h,exports.FONT_FORMAT_FROM_EXTENSION=r.g,exports.GENERIC_FALLBACK_FROM_ROLE=r._,exports.MONO_ROLES=r.v,exports.RAZORWIND_INFER_PREPROCESSOR=i.o,exports.SANS_ROLES=r.y,exports.THEME_BASENAME_PATTERN=i.x,exports.TOKEN_DIRECTORY_GLOB=i.S,exports.TOKEN_FILE_EXTENSIONS=i.C,exports.TYPE_ALIASES=i.T,exports.TYPE_PATH_HINTS=i.E,exports.WEIGHT_FROM_SUFFIX=r.b,exports.WINDIE_PARSERS=i.w,exports.razorwindParsers=i.w,exports.canonicalizeTokenType=i.D,exports.collectCssCustomProperties=i.m,exports.copyFontFiles=r.m,exports.cssFontFamily=r.s,exports.defineConfig=Be,exports.definePlugin=a.definePlugin,exports.fontFamilyName=r.c,exports.generateAllPluginDocuments=k,exports.generatePluginDocuments=O,exports.generator=Ve,exports.getExtractionHooks=i.s,exports.getRazorwindParserHooks=i.c,exports.getRazorwindPreprocessorHooks=i.l,exports.inferTypeFromPath=i.g,exports.inferValue=i._,exports.isEmptyFonts=r.t,exports.isEmptyTokens=i.t,exports.loadComponents=R,exports.loadFonts=r.a,exports.loadIcons=Y,exports.loadSchemaMetaFromPackageJson=De,exports.loadTokens=i.n,exports.loadTokensOrThrow=i.r,exports.mergeFonts=r.n,exports.nestFlatTokens=i.v,exports.normalizeRepository=j,exports.normalizeTokenTree=i.y,exports.parseCssCustomProperties=i.h,exports.parseCssFonts=r.r,exports.parseFontFilename=r.o,exports.pickFontByRole=r.i,exports.prepareGenerationRuns=Le,exports.prepareSpec=Ie,exports.prependFontCss=r.l,exports.razorwindInferPreprocessor=i.u,exports.registerRazorwindHooks=i.d,exports.registerRazorwindParsers=i.f,exports.renderFontCss=r.u,exports.renderGoogleFontImports=r.d,exports.renderLocalFontFaces=r.f,exports.resolveConfig=Fe,exports.resolveConfigs=$,exports.resolveSchemaMeta=Oe,exports.resolveTokensSource=i.i,exports.schemaMetaFromConfig=Ee,exports.schemaMetaFromPackageJson=Z,exports.styleDictionaryLogOptions=i.p,exports.themeKeyFromPath=i.a,exports.themesForGeneration=T,exports.toGoogleFontsCssUrl=r.p,exports.uniquePlugins=ke,exports.writeGeneratedDocuments=Re;
package/dist/index.d.cts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { O as Components, a as Icons, t as Schema } from "./schema-BwOBgJIM.cjs";
2
2
  import "./index-CwN0c1Q4.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-DcTkfPiR.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-DXVZRs_4.cjs";
4
4
  import { a as TokenSet } from "./flatten-tokens-DWbPW_3z.cjs";
5
- import { t as definePlugin } from "./plugin-BiAsks5W.cjs";
6
- import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "./index-Bb0PCrOG.cjs";
7
- import { A as TOKEN_DIRECTORY_GLOB, C as nestFlatTokens, D as DEFAULT_TOKEN_PATH_CANDIDATES, E as parseCssCustomProperties, F as canonicalizeTokenType, M as TOKEN_PARSER_NAMES, N as TYPE_ALIASES, O as RazorwindParserName, P as TYPE_PATH_HINTS, S as inferValue, T as collectCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_FILE_EXTENSIONS, k as THEME_BASENAME_PATTERN, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "./index-Dy-dYo_x.cjs";
5
+ import { t as definePlugin } from "./plugin-D_0ERu16.cjs";
6
+ import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "./index-B4SIQTrM.cjs";
7
+ import { A as TOKEN_DIRECTORY_GLOB, C as nestFlatTokens, D as DEFAULT_TOKEN_PATH_CANDIDATES, E as parseCssCustomProperties, F as canonicalizeTokenType, M as TOKEN_PARSER_NAMES, N as TYPE_ALIASES, O as RazorwindParserName, P as TYPE_PATH_HINTS, S as inferValue, T as collectCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_FILE_EXTENSIONS, k as THEME_BASENAME_PATTERN, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "./index-BbvA_F58.cjs";
8
8
  import StyleDictionary from "style-dictionary";
9
9
  import { ExecutionContext, GeneratedDocument, GeneratorConfig } from "@power-plant/core";
10
10
  //#region src/lib/generate.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/lib/generate.ts","../src/lib/resolve-config.ts","../src/config.ts","../src/lib/components/load.ts","../src/lib/icons/load.ts","../src/lib/meta/load.ts","../src/lib/meta/normalize-url.ts","../src/lib/prepare.ts","../src/lib/write-documents.ts","../src/types/base.ts","../src/index.ts"],"mappings":";;;;;;;;;;;;;;;;UAyCiB;EACf,MAAM;EACN,QAAQ;;;;;;;;;;;;;iBAcM,oBAAoB,QAAQ,mBAAmB;;;;;;;;;;;;iBAqEzC,wBACpB,MAAM,QACN,QAAQ,SACP,QAAQ,eAAe;;;;;;;;;iBA6CJ,2BACpB,MAAM,kBACL,QAAQ,eAAe;;;;;;;;;iBCnIV,cAAc,SAAS,WAAW;;;;;;;;;;;iBAsJ5B,eACpB,aACA,SAAS,UACR,QAAQ;;;;;;;;;;;iBA6MW,cACpB,aACA,SAAS,UACR,QAAQ;;;;;;;;;;;;;;;;;;;;;;;iBCnWK,aAAa,QAAQ,aAAa;iBAClC,aAAa,QAAQ,eAAe;iBACpC,aAAa,QAAQ,QAAQ,cAAc,QAAQ;iBACnD,aACd,QAAQ,QAAQ,gBACf,QAAQ;iBACK,aAAa,QAAQ,qBAAqB;iBAC1C,aAAa,QAAQ,sBAAsB;iBAC3C,aAAa,QAAQ,eAAe;iBACpC,aAAa,QAAQ,mBAAmB;;;;;;;;;;;;;iBCsalC,eACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;;iBClGW,UACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;KCtWC,aAAa,KACvB;;;;;iBAgBc,0BACd,KAAK,0BACJ;;;;iBAqFa,qBAAqB,QAAQ,aAAa;;;;iBA4BpC,8BACpB,cACC,QAAQ;;;;iBAmBW,kBACpB,aACA,QAAQ,aACP,QAAQ;;;;;;iBCtJK,aAAa;;;;;;;iBCCP,YACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;iBA6CW,sBACpB,SAAS,iBAAiB,QAAQ,eAClC,SAAS,UACR,QAAQ;;;;;;;;;;;;;iBCvDW,wBACpB,WAAW,eAAe,gCAC1B,cACC;;;KCdS,UAAU,oCAAoC,gBACxD,QACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;;YCAU;IACR,IAAI;IACJ,iBAAiB;;;;;;;;;;;cAgBR,uCAAS,sBAAA,QAAA"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/lib/generate.ts","../src/lib/resolve-config.ts","../src/config.ts","../src/lib/components/load.ts","../src/lib/icons/load.ts","../src/lib/meta/load.ts","../src/lib/meta/normalize-url.ts","../src/lib/prepare.ts","../src/lib/write-documents.ts","../src/types/base.ts","../src/index.ts"],"mappings":";;;;;;;;;;;;;;;;UAyCiB;EACf,MAAM;EACN,QAAQ;;;;;;;;;;;;;iBAcM,oBAAoB,QAAQ,mBAAmB;;;;;;;;;;;;iBAqEzC,wBACpB,MAAM,QACN,QAAQ,SACP,QAAQ,eAAe;;;;;;;;;iBA6CJ,2BACpB,MAAM,kBACL,QAAQ,eAAe;;;;;;;;;iBCnIV,cAAc,SAAS,WAAW;;;;;;;;;;;iBA4K5B,eACpB,aACA,SAAS,UACR,QAAQ;;;;;;;;;;;iBA6MW,cACpB,aACA,SAAS,UACR,QAAQ;;;;;;;;;;;;;;;;;;;;;;;iBCzXK,aAAa,QAAQ,aAAa;iBAClC,aAAa,QAAQ,eAAe;iBACpC,aAAa,QAAQ,QAAQ,cAAc,QAAQ;iBACnD,aACd,QAAQ,QAAQ,gBACf,QAAQ;iBACK,aAAa,QAAQ,qBAAqB;iBAC1C,aAAa,QAAQ,sBAAsB;iBAC3C,aAAa,QAAQ,eAAe;iBACpC,aAAa,QAAQ,mBAAmB;;;;;;;;;;;;;iBCsalC,eACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;;iBClGW,UACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;KCtWC,aAAa,KACvB;;;;;iBAgBc,0BACd,KAAK,0BACJ;;;;iBAqFa,qBAAqB,QAAQ,aAAa;;;;iBA4BpC,8BACpB,cACC,QAAQ;;;;iBAmBW,kBACpB,aACA,QAAQ,aACP,QAAQ;;;;;;iBCtJK,aAAa;;;;;;;iBCCP,YACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;iBA6CW,sBACpB,SAAS,iBAAiB,QAAQ,eAClC,SAAS,UACR,QAAQ;;;;;;;;;;;;;iBCvDW,wBACpB,WAAW,eAAe,gCAC1B,cACC;;;KCdS,UAAU,oCAAoC,gBACxD,QACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;;YCAU;IACR,IAAI;IACJ,iBAAiB;;;;;;;;;;;cAgBR,uCAAS,sBAAA,QAAA"}
package/dist/index.d.mts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { O as Components, a as Icons, t as Schema } from "./schema-BwOBgJIM.mjs";
2
2
  import "./index-D5L2WXYk.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-D66RfJQb.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-DgupyeYc.mjs";
4
4
  import { a as TokenSet } from "./flatten-tokens-Dz4e2IHx.mjs";
5
- import { t as definePlugin } from "./plugin-oghqv_Hn.mjs";
6
- import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "./index-BeHvb_jw.mjs";
7
- import { A as TOKEN_DIRECTORY_GLOB, C as nestFlatTokens, D as DEFAULT_TOKEN_PATH_CANDIDATES, E as parseCssCustomProperties, F as canonicalizeTokenType, M as TOKEN_PARSER_NAMES, N as TYPE_ALIASES, O as RazorwindParserName, P as TYPE_PATH_HINTS, S as inferValue, T as collectCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_FILE_EXTENSIONS, k as THEME_BASENAME_PATTERN, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "./index-D6x-NBaI.mjs";
5
+ import { t as definePlugin } from "./plugin-DxwKGfH3.mjs";
6
+ import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "./index-C9wskjJW.mjs";
7
+ import { A as TOKEN_DIRECTORY_GLOB, C as nestFlatTokens, D as DEFAULT_TOKEN_PATH_CANDIDATES, E as parseCssCustomProperties, F as canonicalizeTokenType, M as TOKEN_PARSER_NAMES, N as TYPE_ALIASES, O as RazorwindParserName, P as TYPE_PATH_HINTS, S as inferValue, T as collectCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_FILE_EXTENSIONS, k as THEME_BASENAME_PATTERN, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "./index-BOd3NVcu.mjs";
8
8
  import { ExecutionContext, GeneratedDocument, GeneratorConfig } from "@power-plant/core";
9
9
  import StyleDictionary from "style-dictionary";
10
10
  //#region src/lib/generate.d.ts
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{_ as e,c as t,d as n,f as r,h as i,s as a}from"./utils-KDezR5p2.mjs";import{a as o,c as s,i as c,l,r as u,s as d}from"./schema-CXK5pVmJ.mjs";import{_ as f,a as p,b as ee,c as te,d as ne,f as re,g as ie,h as ae,i as oe,l as se,m as ce,n as le,o as ue,p as de,r as fe,s as pe,t as me,u as he,v as ge,y as _e}from"./fonts-BiuIJVev.mjs";import{C as ve,D as ye,E as be,S as xe,T as Se,_ as Ce,a as we,b as Te,c as Ee,d as De,f as Oe,g as ke,h as Ae,i as je,l as Me,m as Ne,n as m,o as Pe,p as Fe,r as Ie,s as Le,t as h,u as Re,v as ze,w as g,x as _,y as Be}from"./tokens-bsY8JfJe.mjs";import{definePlugin as Ve}from"./plugin.mjs";import{defineGenerator as He,defineSchema as Ue,useExecution as v}from"@power-plant/core";import{createDefu as y,defu as b}from"defu";import{dirname as We,isAbsolute as x,resolve as S}from"node:path";import{titleCase as C}from"@stryke/string-format/title-case";import{existsSync as w}from"@stryke/fs/exists";import{isDirectory as T}from"@stryke/fs/is-file";import{readJsonFile as E}from"@stryke/fs/json";import{listFiles as Ge}from"@stryke/fs/list-files";import{appendPath as D}from"@stryke/path/append";import{findFileExtensionSafe as O,findFileName as k,findFolderName as A}from"@stryke/path/file-path-fns";import{joinPaths as j}from"@stryke/path/join";import{isSetObject as M}from"@stryke/type-checks/is-set-object";import{isSetString as N}from"@stryke/type-checks/is-set-string";import{mkdir as Ke,readFile as P,readdir as F,writeFile as qe}from"node:fs/promises";import{getEnvPaths as Je}from"@stryke/env/get-env-paths";import{findFilePath as I}from"@stryke/path/find";import{replacePath as L}from"@stryke/path/replace";import{isFunction as Ye}from"@stryke/type-checks/is-function";import{loadConfig as R}from"c12";import{createJiti as Xe}from"jiti";import{existsSync as z}from"node:fs";import Ze from"node:os";function B(t){let n=e(t),r=n.filter(e=>!i(e.id));return r.length===0||r.length===1&&n.length===1?[]:r}function Qe(e,t){let a=e.find(e=>e.id===r);return!a||i(t.id)?t.tokens:n(t.tokens,a.tokens)}function $e(e,n,r){return{...e,theme:n.id,title:t(e.title,n.id)??e.title,tokens:Qe(r,n)}}function et(e,n){let r=t(e.title,n.id);return r?{...e,title:r}:e}async function V(e,t,n=t.plugins.filter(e=>e.generate)){let r={};for(let i of n){let n=await i.generate(e,t);r=b(n,r)}return r}function tt(e){return e.themeGeneration===`combined`}async function nt(t,n){let r=n.plugins.filter(e=>e.generate),i=r.filter(tt),o=r.filter(e=>!tt(e)),s={};i.length>0&&(s=b(await V(t,n,i),s));let c=e(t.tokens),l=B(t.tokens);if(o.length===0)return s;if(l.length===0)return b(await V(t,n,o),s);for(let e of l){let r=await V($e(t,e,c),et(n,e),o);s=b(a(r,e.id),s)}return s}async function rt(e){let t={};for(let n of e)Object.assign(t,await nt(n.spec,n.config));return t}function H(e){return!!(N(e)||M(e)&&`url`in e&&N(e.url))}function U(e){if(N(e))return e;if(M(e)&&`url`in e&&N(e.url))return e.url}const it=s.partial(),at=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),ot=y((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function st(e,t){return x(t)?t:S(e,t)}function ct(e){return Array.isArray(e)?e.filter(N):N(e)?[e]:[]}function lt(e){let t=e.toLowerCase();if(at.has(t))return t}function ut(e){let t=O(e)?.toLowerCase();return!!(t&&at.has(t))}function W(e){if(!e)return;let t=d.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){let e=d.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function G(e){if(!e)return;let t=l.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){if(N(t)){let e=k(t,{withExtension:!1})||t,r=l.safeParse({name:e,path:t});r.success&&n.push(r.data);continue}let e=l.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function dt(e){if(!M(e))return;let{files:t,usage:n,...r}=e,i=it.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function ft(e){return M(e)&&`path`in e}async function pt(e){let t=j(e,`package.json`);if(!w(t))return;let n;try{n=await E(t)}catch{return}let r={};N(n.name)&&(r.name=n.name,r.title=n.name),N(n.description)&&(r.description=n.description),N(n.version)&&(r.version=n.version),N(n.homepage)&&(r.homepage=n.homepage);let i=U(n.repository);if(i&&(r.repository=i),M(n.dependencies)&&(r.dependencies=n.dependencies),M(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(N);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,c;ft(a)?s=W(a):M(a)&&(o=dt(a),`files`in a&&(s=W(a.files)),`usage`in a&&(c=G(a.usage)));let l=ot(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function mt(e){let t=j(e,`component.json`);if(!w(t))return;let n;try{n=await E(t)}catch{return}if(ft(n)||Array.isArray(n)){let e=W(n);if(e)return{files:e}}if(!M(n))return;let r=dt(n)??{},i=`files`in n?W(n.files):void 0,a=`usage`in n?G(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 ht(e){try{return(await F(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&ut(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function gt(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=D(t.path,e),r=O(t.path)??``,i=t.language??lt(r),a=t.name||k(t.path,{withExtension:!1})||t.path,o=t.content??(w(n)?await P(n,`utf8`):void 0);return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=j(e,`usage`);if(!w(n)||!T(n))return;let r=await ht(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=j(n,e),r=lt(O(e)??``),i=k(e,{withExtension:!1})||e;return{name:i,title:C(i),path:t,content:await P(t,`utf8`),...r?{language:r}:{}}}))}async function _t(e,t){let n=t??(await Ge(e)).filter(e=>k(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test(O(t))?`component`:`file`,path:t,content:await P(D(t,e),`utf8`)}:{type:/[tj]sx$/.test(O(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await P(D(t.path,e),`utf8`):void 0,path:D(t.path,e)}))}async function vt(e){let t=await pt(e),n=await mt(e);if(!t&&!n)return;let r=ot(n??{},t??{}),i=N(r.name)?r.name:A(e),a=N(r.title)?r.title:C(i),o=s.safeParse({...r,name:i,title:a});if(!o.success)return;let c=await gt(e,o.data.usage);return{...o.data,files:await _t(e,o.data.files),...c?.length?{usage:c}:{}}}async function yt(e){let t={},n=ct(e.options.componentsPath);for(let r of n){let n=st(e.cwd,r);if(!(!w(n)||!T(n)))try{let e=await F(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await vt(j(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const bt=o.partial(),xt=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),K=y((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function St(e,t){return x(t)?t:S(e,t)}function Ct(e){return Array.isArray(e)?e.filter(N):N(e)?[e]:[]}function wt(e){let t=e.toLowerCase();if(xt.has(t))return t}function Tt(e){let t=O(e)?.toLowerCase();return!!(t&&xt.has(t))}function Et(e){return _.test(e)}async function q(e){try{return(await F(e,{withFileTypes:!0})).filter(e=>e.isFile()&&Tt(e.name)).map(e=>e.name)}catch{return[]}}function J(e){if(!e)return;let t=c.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){let e=c.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function Dt(e){if(!M(e))return;let t=bt.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function Ot(e){return M(e)&&`path`in e}async function Y(e,t,n){let r=D(e,t),i=wt(O(e)??``)??`file`,a=i===`svg`?await P(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function kt(e){let t=j(e,`package.json`);if(!w(t))return;let n;try{n=await E(t)}catch{return}let r={};N(n.name)&&(r.name=n.name,r.title=n.name),N(n.description)&&(r.description=n.description),N(n.version)&&(r.version=n.version),N(n.homepage)&&(r.homepage=n.homepage);let i=U(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(N);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;Ot(a)?s=J(a):M(a)&&(o=Dt(a),`files`in a&&(s=J(a.files)));let c=K(o??{},r);return s?.length&&(c.files=s),Object.keys(c).length>0?c:void 0}async function At(e){let t=j(e,`icon.json`);if(!w(t))return;let n;try{n=await E(t)}catch{return}if(Ot(n)||Array.isArray(n)){let e=J(n);if(e)return{files:e}}return Dt(n)}async function jt(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=D(t.path,e),r=O(t.path)??``,i=t.type??wt(r)??`file`,a=t.content===void 0?i===`svg`?await P(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await q(e);return Promise.all(n.map(t=>Y(t,e)))}async function Mt(e){let t=await kt(e),n=await At(e),r=await q(e);if(!t&&!n&&r.length===0)return;let i=K(n??{},t??{}),a=N(i.name)?i.name:A(e),s=N(i.title)?i.title:C(a),c=o.safeParse({...i,name:a,title:s});if(c.success)return{...c.data,files:await jt(e,c.data.files)}}function Nt(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 Pt(e,t,n){let r=await q(e);for(let i of r){let r=k(i,{withExtension:!1});r&&Nt(n,r,await Y(i,e,t))}}async function Ft(e){let t={},n=Ct(e.options.iconsPath);for(let r of n){let n=St(e.cwd,r);if(!(!w(n)||!T(n)))try{let e=await F(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=j(n,r.name);if(r.isDirectory()){if(Et(r.name)){await Pt(e,r.name,t);continue}let n=await Mt(e);if(n){let e=t[n.name];t[n.name]=e?K(n,e):n}continue}if(r.isFile()&&Tt(r.name)){let e=k(r.name,{withExtension:!1});if(!e)continue;Nt(t,e,await Y(r.name,n))}}}catch{continue}}return t}function X(e,t){let n=e[t];return N(n)?n:void 0}function It(e){let t={};N(e.name)&&(t.name=e.name),N(e.description)&&(t.description=e.description),N(e.homepage)&&(t.homepage=e.homepage);let n=U(e.repository);n&&(t.repository=n),N(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if(M(r)){let t=r,n=X(t,`title`),a=X(t,`name`),o=X(t,`description`),s=X(t,`homepage`),c=X(t,`logo`),l=U(t.repository);a?i.name=a:N(e.name)&&(i.name=e.name),n?i.title=n:N(i.name)&&(i.title=C(i.name)),o?i.description=o:N(e.description)&&(i.description=e.description),s?i.homepage=s:H(e.homepage)?i.homepage=U(e.homepage):H(e.author)?i.homepage=U(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&H(e.maintainers[0])?i.homepage=U(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&H(e.contributors[0])?i.homepage=U(e.contributors[0]):H(e.bugs)&&(i.homepage=U(e.bugs)),c&&(i.logo=c),l?i.repository=l:H(e.repository)&&(i.repository=U(e.repository))}return b(i,t)}function Lt(e){let t={};return N(e.name)&&(t.name=e.name),N(e.title)&&(t.title=e.title),N(e.description)&&(t.description=e.description),N(e.repository)&&(t.repository=e.repository),N(e.homepage)&&(t.homepage=e.homepage),N(e.logo)&&(t.logo=e.logo),t}async function Rt(e){let t=j(e,`package.json`);if(!w(t))return{};let n;try{n=await E(t)}catch{return{}}return It(n)}async function zt(e,t){let n=await Rt(e),r=Lt(t);return b(r,n)}function Bt(e){let t=new Set;return e.filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const Vt=Ze.homedir();function Ht(e){return Array.isArray(e)?e.filter(e=>M(e)):[]}function Z(e){return Array.isArray(e)||!M(e)?{}:{...e}}const Ut=[`tokensPath`,`componentsPath`,`iconsPath`,`fontsPath`];function Wt(e,t){let n={...e};for(let e of Ut)t[e]!=null&&delete n[e];return n}function Gt(e,t,n,r){let i=b({cwd:e,envPaths:r.envPaths},Wt(t,n),n,r.workspaceLayer,r.environmentLayer,r.homeLayer,{componentsPath:e,iconsPath:j(e,`assets/icons`),fontsPath:j(e,`assets/fonts`),plugins:[]});if(Array.isArray(i.componentsPath)){let t=i.componentsPath.filter(N).map(e=>I(e));i.componentsPath=t.length>0?t:e}else i.componentsPath=N(i.componentsPath)?I(i.componentsPath):e;if(Array.isArray(i.iconsPath)){let t=i.iconsPath.filter(N).map(e=>I(e));i.iconsPath=t.length>0?t:j(e,`assets/icons`)}else i.iconsPath=N(i.iconsPath)?I(i.iconsPath):j(e,`assets/icons`);if(Array.isArray(i.fontsPath)){let t=i.fontsPath.filter(N).map(e=>I(e));i.fontsPath=t.length>0?t:j(e,`assets/fonts`)}else i.fontsPath=N(i.fontsPath)?I(i.fontsPath):j(e,`assets/fonts`);return i.plugins=Bt(Array.isArray(i.plugins)?i.plugins:[]),i.verbose=t.verbose===!0||n.verbose===!0,i}async function Q(e,t){let n=t.configFile&&z(L(t.configFile,e))?L(t.configFile,e):t.configFile&&z(t.configFile)?t.configFile:z(j(e,`razorwind.${t.mode}.ts`))?j(e,`razorwind.${t.mode}.ts`):z(j(e,`razorwind.${t.mode}.js`))?j(e,`razorwind.${t.mode}.js`):z(j(e,`razorwind.${t.mode}.mts`))?j(e,`razorwind.${t.mode}.mts`):z(j(e,`razorwind.${t.mode}.mjs`))?j(e,`razorwind.${t.mode}.mjs`):z(j(e,`razorwind.${t.mode}.cjs`))?j(e,`razorwind.${t.mode}.cjs`):z(j(e,`razorwind.${t.mode}.cts`))?j(e,`razorwind.${t.mode}.cts`):z(j(e,`razorwind.${t.mode}.json`))?j(e,`razorwind.${t.mode}.json`):z(j(e,`razorwind.${t.mode}.yaml`))?j(e,`razorwind.${t.mode}.yaml`):z(j(e,`razorwind.${t.mode}.yml`))?j(e,`razorwind.${t.mode}.yml`):z(j(e,`razorwind.config.ts`))?j(e,`razorwind.config.ts`):z(j(e,`razorwind.config.js`))?j(e,`razorwind.config.js`):z(j(e,`razorwind.config.mts`))?j(e,`razorwind.config.mts`):z(j(e,`razorwind.config.mjs`))?j(e,`razorwind.config.mjs`):z(j(e,`razorwind.config.cjs`))?j(e,`razorwind.config.cjs`):z(j(e,`razorwind.config.cts`))?j(e,`razorwind.config.cts`):z(j(e,`razorwind.config.json`))?j(e,`razorwind.config.json`):z(j(e,`razorwind.config.yaml`))?j(e,`razorwind.config.yaml`):z(j(e,`razorwind.config.yml`))?j(e,`razorwind.config.yml`):void 0,r=Je({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=Xe(e,i),o=[{}];if(n){let r=x(n)?n:S(e,n),i=await a.import(r,{default:!0});if(i){let r=i;if(r=Ye(i)?await Promise.resolve(i({cwd:e,mode:t.mode??`development`})):await Promise.resolve(i),Array.isArray(r)){let e=Ht(r);if(e.length===0)throw Error(`Razorwind config array is empty. Provide at least one configuration object.`);o=e.map(e=>({...e,configFile:n}))}else M(r)&&(o=[{...r,configFile:n}])}}let[s,c,l]=await Promise.all([R({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),R({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),R({cwd:Vt,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),u=Z(s?.config),d=n?x(n)?n:S(e,n):void 0,f=typeof s?.configFile==`string`?s.configFile:void 0;d&&f&&S(e,f)===d&&delete u.plugins;let p={envPaths:{...r,home:Vt},workspaceLayer:u,environmentLayer:Z(c?.config),homeLayer:Z(l?.config)};return o.map(n=>Gt(e,t,n,p))}async function Kt(e,t){let n=(await Q(e,t))[0];if(!n)throw Error(`Unable to resolve Razorwind configuration.`);return n}async function qt(e){if(e.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 t=e.options.tokens;(!t||h(t))&&(t=await m(e));let n={...await zt(e.cwd,e.options),tokens:t??{},components:b(e.options.components??{},await yt(e)??{}),icons:b(e.options.icons??{},await Ft(e)??{}),fonts:b(e.options.fonts??{},await p(e)??{})};for(let t of e.options.plugins.filter(e=>e.extract))n=await t.extract(n,e.options);if(n.tokens&&!h(n.tokens))for(let t of e.options.plugins.filter(e=>e.validate))await t.validate(n,e.options);return n}async function Jt(e,t){let n=await Q(e.cwd,t),r=[];for(let t of n)e.options=t,r.push({spec:await qt(e),config:t});return r}async function $(e,t){let n=[];for(let[r,i]of Object.entries(e??{})){let e=i?.path||r;if(!e)continue;let a=x(e)?e:S(t,e),o=(i?.chunks??[]).map(e=>e.content??``).join(``);await Ke(We(a),{recursive:!0}),await qe(a,o,`utf8`),n.push(a)}return n}var Yt=`0.0.60`;function Xt(e){return e}const Zt=He({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, icons, and fonts.`,version:Yt,tags:[`razorwind`,`dtcg`]},schema:Ue({schema:u}),input:async e=>{let t=v(),n=await Jt(t,e),r=n[0];if(!r)throw Error(`Unable to resolve Razorwind configuration.`);return t.generationRuns=n,t.options=r.config,r.spec},output:async(e,t,n)=>{await $(n,v().cwd)},generator:async e=>{let t=v();return rt(t.generationRuns&&t.generationRuns.length>0?t.generationRuns:[{spec:e,config:t.options}])}});export{Te as DEFAULT_TOKEN_PATH_CANDIDATES,ae as FONT_EXTENSIONS,ie as FONT_FORMAT_FROM_EXTENSION,f as GENERIC_FALLBACK_FROM_ROLE,ge as MONO_ROLES,Pe as RAZORWIND_INFER_PREPROCESSOR,_e as SANS_ROLES,_ as THEME_BASENAME_PATTERN,xe as TOKEN_DIRECTORY_GLOB,ve as TOKEN_FILE_EXTENSIONS,Se as TYPE_ALIASES,be as TYPE_PATH_HINTS,ee as WEIGHT_FROM_SUFFIX,g as WINDIE_PARSERS,g as razorwindParsers,ye as canonicalizeTokenType,Ne as collectCssCustomProperties,ce as copyFontFiles,pe as cssFontFamily,Xt as defineConfig,Ve as definePlugin,te as fontFamilyName,rt as generateAllPluginDocuments,nt as generatePluginDocuments,Zt as generator,Le as getExtractionHooks,Ee as getRazorwindParserHooks,Me as getRazorwindPreprocessorHooks,ke as inferTypeFromPath,Ce as inferValue,me as isEmptyFonts,h as isEmptyTokens,yt as loadComponents,p as loadFonts,Ft as loadIcons,Rt as loadSchemaMetaFromPackageJson,m as loadTokens,Ie as loadTokensOrThrow,le as mergeFonts,ze as nestFlatTokens,U as normalizeRepository,Be as normalizeTokenTree,Ae as parseCssCustomProperties,fe as parseCssFonts,ue as parseFontFilename,oe as pickFontByRole,Jt as prepareGenerationRuns,qt as prepareSpec,se as prependFontCss,Re as razorwindInferPreprocessor,De as registerRazorwindHooks,Oe as registerRazorwindParsers,he as renderFontCss,ne as renderGoogleFontImports,re as renderLocalFontFaces,Kt as resolveConfig,Q as resolveConfigs,zt as resolveSchemaMeta,je as resolveTokensSource,Lt as schemaMetaFromConfig,It as schemaMetaFromPackageJson,Fe as styleDictionaryLogOptions,we as themeKeyFromPath,B as themesForGeneration,de as toGoogleFontsCssUrl,Bt as uniquePlugins,$ as writeGeneratedDocuments};
1
+ import{_ as e,c as t,d as n,f as r,h as i,s as a}from"./utils-KDezR5p2.mjs";import{a as o,c as s,i as c,l,r as u,s as d}from"./schema-CXK5pVmJ.mjs";import{_ as f,a as p,b as ee,c as te,d as ne,f as re,g as ie,h as ae,i as oe,l as se,m as ce,n as le,o as ue,p as de,r as fe,s as pe,t as me,u as he,v as ge,y as _e}from"./fonts-BiuIJVev.mjs";import{C as ve,D as ye,E as be,S as xe,T as Se,_ as Ce,a as we,b as Te,c as Ee,d as De,f as Oe,g as ke,h as Ae,i as je,l as Me,m as Ne,n as m,o as Pe,p as Fe,r as Ie,s as Le,t as h,u as Re,v as ze,w as g,x as _,y as Be}from"./tokens-bsY8JfJe.mjs";import{definePlugin as Ve}from"./plugin.mjs";import{defineGenerator as He,defineSchema as Ue,useExecution as v}from"@power-plant/core";import{createDefu as y,defu as b}from"defu";import{dirname as We,isAbsolute as x,resolve as S}from"node:path";import{titleCase as C}from"@stryke/string-format/title-case";import{existsSync as w}from"@stryke/fs/exists";import{isDirectory as T}from"@stryke/fs/is-file";import{readJsonFile as E}from"@stryke/fs/json";import{listFiles as Ge}from"@stryke/fs/list-files";import{appendPath as D}from"@stryke/path/append";import{findFileExtensionSafe as O,findFileName as k,findFolderName as A}from"@stryke/path/file-path-fns";import{joinPaths as j}from"@stryke/path/join";import{isSetObject as M}from"@stryke/type-checks/is-set-object";import{isSetString as N}from"@stryke/type-checks/is-set-string";import{mkdir as Ke,readFile as P,readdir as F,writeFile as qe}from"node:fs/promises";import{getEnvPaths as Je}from"@stryke/env/get-env-paths";import{findFilePath as I}from"@stryke/path/find";import{replacePath as L}from"@stryke/path/replace";import{isFunction as Ye}from"@stryke/type-checks/is-function";import{loadConfig as R}from"c12";import{createJiti as Xe}from"jiti";import{existsSync as z}from"node:fs";import Ze from"node:os";function B(t){let n=e(t),r=n.filter(e=>!i(e.id));return r.length===0||r.length===1&&n.length===1?[]:r}function Qe(e,t){let a=e.find(e=>e.id===r);return!a||i(t.id)?t.tokens:n(t.tokens,a.tokens)}function $e(e,n,r){return{...e,theme:n.id,title:t(e.title,n.id)??e.title,tokens:Qe(r,n)}}function et(e,n){let r=t(e.title,n.id);return r?{...e,title:r}:e}async function V(e,t,n=t.plugins.filter(e=>e.generate)){let r={};for(let i of n){let n=await i.generate(e,t);r=b(n,r)}return r}function tt(e){return e.themeGeneration===`combined`}async function nt(t,n){let r=n.plugins.filter(e=>e.generate),i=r.filter(tt),o=r.filter(e=>!tt(e)),s={};i.length>0&&(s=b(await V(t,n,i),s));let c=e(t.tokens),l=B(t.tokens);if(o.length===0)return s;if(l.length===0)return b(await V(t,n,o),s);for(let e of l){let r=await V($e(t,e,c),et(n,e),o);s=b(a(r,e.id),s)}return s}async function rt(e){let t={};for(let n of e)Object.assign(t,await nt(n.spec,n.config));return t}function H(e){return!!(N(e)||M(e)&&`url`in e&&N(e.url))}function U(e){if(N(e))return e;if(M(e)&&`url`in e&&N(e.url))return e.url}const it=s.partial(),at=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),ot=y((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function st(e,t){return x(t)?t:S(e,t)}function ct(e){return Array.isArray(e)?e.filter(N):N(e)?[e]:[]}function lt(e){let t=e.toLowerCase();if(at.has(t))return t}function ut(e){let t=O(e)?.toLowerCase();return!!(t&&at.has(t))}function W(e){if(!e)return;let t=d.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){let e=d.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function G(e){if(!e)return;let t=l.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){if(N(t)){let e=k(t,{withExtension:!1})||t,r=l.safeParse({name:e,path:t});r.success&&n.push(r.data);continue}let e=l.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function dt(e){if(!M(e))return;let{files:t,usage:n,...r}=e,i=it.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function ft(e){return M(e)&&`path`in e}async function pt(e){let t=j(e,`package.json`);if(!w(t))return;let n;try{n=await E(t)}catch{return}let r={};N(n.name)&&(r.name=n.name,r.title=n.name),N(n.description)&&(r.description=n.description),N(n.version)&&(r.version=n.version),N(n.homepage)&&(r.homepage=n.homepage);let i=U(n.repository);if(i&&(r.repository=i),M(n.dependencies)&&(r.dependencies=n.dependencies),M(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(N);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,c;ft(a)?s=W(a):M(a)&&(o=dt(a),`files`in a&&(s=W(a.files)),`usage`in a&&(c=G(a.usage)));let l=ot(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function mt(e){let t=j(e,`component.json`);if(!w(t))return;let n;try{n=await E(t)}catch{return}if(ft(n)||Array.isArray(n)){let e=W(n);if(e)return{files:e}}if(!M(n))return;let r=dt(n)??{},i=`files`in n?W(n.files):void 0,a=`usage`in n?G(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 ht(e){try{return(await F(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&ut(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function gt(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=D(t.path,e),r=O(t.path)??``,i=t.language??lt(r),a=t.name||k(t.path,{withExtension:!1})||t.path,o=t.content??(w(n)?await P(n,`utf8`):void 0);return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=j(e,`usage`);if(!w(n)||!T(n))return;let r=await ht(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=j(n,e),r=lt(O(e)??``),i=k(e,{withExtension:!1})||e;return{name:i,title:C(i),path:t,content:await P(t,`utf8`),...r?{language:r}:{}}}))}async function _t(e,t){let n=t??(await Ge(e)).filter(e=>k(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test(O(t))?`component`:`file`,path:t,content:await P(D(t,e),`utf8`)}:{type:/[tj]sx$/.test(O(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await P(D(t.path,e),`utf8`):void 0,path:D(t.path,e)}))}async function vt(e){let t=await pt(e),n=await mt(e);if(!t&&!n)return;let r=ot(n??{},t??{}),i=N(r.name)?r.name:A(e),a=N(r.title)?r.title:C(i),o=s.safeParse({...r,name:i,title:a});if(!o.success)return;let c=await gt(e,o.data.usage);return{...o.data,files:await _t(e,o.data.files),...c?.length?{usage:c}:{}}}async function yt(e){let t={},n=ct(e.options.componentsPath);for(let r of n){let n=st(e.cwd,r);if(!(!w(n)||!T(n)))try{let e=await F(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await vt(j(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const bt=o.partial(),xt=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),K=y((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function St(e,t){return x(t)?t:S(e,t)}function Ct(e){return Array.isArray(e)?e.filter(N):N(e)?[e]:[]}function wt(e){let t=e.toLowerCase();if(xt.has(t))return t}function Tt(e){let t=O(e)?.toLowerCase();return!!(t&&xt.has(t))}function Et(e){return _.test(e)}async function q(e){try{return(await F(e,{withFileTypes:!0})).filter(e=>e.isFile()&&Tt(e.name)).map(e=>e.name)}catch{return[]}}function J(e){if(!e)return;let t=c.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){let e=c.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function Dt(e){if(!M(e))return;let t=bt.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function Ot(e){return M(e)&&`path`in e}async function Y(e,t,n){let r=D(e,t),i=wt(O(e)??``)??`file`,a=i===`svg`?await P(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function kt(e){let t=j(e,`package.json`);if(!w(t))return;let n;try{n=await E(t)}catch{return}let r={};N(n.name)&&(r.name=n.name,r.title=n.name),N(n.description)&&(r.description=n.description),N(n.version)&&(r.version=n.version),N(n.homepage)&&(r.homepage=n.homepage);let i=U(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(N);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;Ot(a)?s=J(a):M(a)&&(o=Dt(a),`files`in a&&(s=J(a.files)));let c=K(o??{},r);return s?.length&&(c.files=s),Object.keys(c).length>0?c:void 0}async function At(e){let t=j(e,`icon.json`);if(!w(t))return;let n;try{n=await E(t)}catch{return}if(Ot(n)||Array.isArray(n)){let e=J(n);if(e)return{files:e}}return Dt(n)}async function jt(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=D(t.path,e),r=O(t.path)??``,i=t.type??wt(r)??`file`,a=t.content===void 0?i===`svg`?await P(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await q(e);return Promise.all(n.map(t=>Y(t,e)))}async function Mt(e){let t=await kt(e),n=await At(e),r=await q(e);if(!t&&!n&&r.length===0)return;let i=K(n??{},t??{}),a=N(i.name)?i.name:A(e),s=N(i.title)?i.title:C(a),c=o.safeParse({...i,name:a,title:s});if(c.success)return{...c.data,files:await jt(e,c.data.files)}}function Nt(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 Pt(e,t,n){let r=await q(e);for(let i of r){let r=k(i,{withExtension:!1});r&&Nt(n,r,await Y(i,e,t))}}async function Ft(e){let t={},n=Ct(e.options.iconsPath);for(let r of n){let n=St(e.cwd,r);if(!(!w(n)||!T(n)))try{let e=await F(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=j(n,r.name);if(r.isDirectory()){if(Et(r.name)){await Pt(e,r.name,t);continue}let n=await Mt(e);if(n){let e=t[n.name];t[n.name]=e?K(n,e):n}continue}if(r.isFile()&&Tt(r.name)){let e=k(r.name,{withExtension:!1});if(!e)continue;Nt(t,e,await Y(r.name,n))}}}catch{continue}}return t}function X(e,t){let n=e[t];return N(n)?n:void 0}function It(e){let t={};N(e.name)&&(t.name=e.name),N(e.description)&&(t.description=e.description),N(e.homepage)&&(t.homepage=e.homepage);let n=U(e.repository);n&&(t.repository=n),N(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if(M(r)){let t=r,n=X(t,`title`),a=X(t,`name`),o=X(t,`description`),s=X(t,`homepage`),c=X(t,`logo`),l=U(t.repository);a?i.name=a:N(e.name)&&(i.name=e.name),n?i.title=n:N(i.name)&&(i.title=C(i.name)),o?i.description=o:N(e.description)&&(i.description=e.description),s?i.homepage=s:H(e.homepage)?i.homepage=U(e.homepage):H(e.author)?i.homepage=U(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&H(e.maintainers[0])?i.homepage=U(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&H(e.contributors[0])?i.homepage=U(e.contributors[0]):H(e.bugs)&&(i.homepage=U(e.bugs)),c&&(i.logo=c),l?i.repository=l:H(e.repository)&&(i.repository=U(e.repository))}return b(i,t)}function Lt(e){let t={};return N(e.name)&&(t.name=e.name),N(e.title)&&(t.title=e.title),N(e.description)&&(t.description=e.description),N(e.repository)&&(t.repository=e.repository),N(e.homepage)&&(t.homepage=e.homepage),N(e.logo)&&(t.logo=e.logo),t}async function Rt(e){let t=j(e,`package.json`);if(!w(t))return{};let n;try{n=await E(t)}catch{return{}}return It(n)}async function zt(e,t){let n=await Rt(e),r=Lt(t);return b(r,n)}function Bt(e){let t=new Set,n=new Set,r=e=>{let t=[];for(let i of e)!i||n.has(i)||(n.add(i),i.plugins&&t.push(...r(i.plugins)),(i.extract||i.generate||i.validate)&&t.push(i),n.delete(i));return t};return r(e).filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const Vt=Ze.homedir();function Ht(e){return Array.isArray(e)?e.filter(e=>M(e)):[]}function Z(e){return Array.isArray(e)||!M(e)?{}:{...e}}const Ut=[`tokensPath`,`componentsPath`,`iconsPath`,`fontsPath`];function Wt(e,t){let n={...e};for(let e of Ut)t[e]!=null&&delete n[e];return n}function Gt(e,t,n,r){let i=b({cwd:e,envPaths:r.envPaths},Wt(t,n),n,r.workspaceLayer,r.environmentLayer,r.homeLayer,{componentsPath:e,iconsPath:j(e,`assets/icons`),fontsPath:j(e,`assets/fonts`),plugins:[]});if(Array.isArray(i.componentsPath)){let t=i.componentsPath.filter(N).map(e=>I(e));i.componentsPath=t.length>0?t:e}else i.componentsPath=N(i.componentsPath)?I(i.componentsPath):e;if(Array.isArray(i.iconsPath)){let t=i.iconsPath.filter(N).map(e=>I(e));i.iconsPath=t.length>0?t:j(e,`assets/icons`)}else i.iconsPath=N(i.iconsPath)?I(i.iconsPath):j(e,`assets/icons`);if(Array.isArray(i.fontsPath)){let t=i.fontsPath.filter(N).map(e=>I(e));i.fontsPath=t.length>0?t:j(e,`assets/fonts`)}else i.fontsPath=N(i.fontsPath)?I(i.fontsPath):j(e,`assets/fonts`);return i.plugins=Bt(Array.isArray(i.plugins)?i.plugins:[]),i.verbose=t.verbose===!0||n.verbose===!0,i}async function Q(e,t){let n=t.configFile&&z(L(t.configFile,e))?L(t.configFile,e):t.configFile&&z(t.configFile)?t.configFile:z(j(e,`razorwind.${t.mode}.ts`))?j(e,`razorwind.${t.mode}.ts`):z(j(e,`razorwind.${t.mode}.js`))?j(e,`razorwind.${t.mode}.js`):z(j(e,`razorwind.${t.mode}.mts`))?j(e,`razorwind.${t.mode}.mts`):z(j(e,`razorwind.${t.mode}.mjs`))?j(e,`razorwind.${t.mode}.mjs`):z(j(e,`razorwind.${t.mode}.cjs`))?j(e,`razorwind.${t.mode}.cjs`):z(j(e,`razorwind.${t.mode}.cts`))?j(e,`razorwind.${t.mode}.cts`):z(j(e,`razorwind.${t.mode}.json`))?j(e,`razorwind.${t.mode}.json`):z(j(e,`razorwind.${t.mode}.yaml`))?j(e,`razorwind.${t.mode}.yaml`):z(j(e,`razorwind.${t.mode}.yml`))?j(e,`razorwind.${t.mode}.yml`):z(j(e,`razorwind.config.ts`))?j(e,`razorwind.config.ts`):z(j(e,`razorwind.config.js`))?j(e,`razorwind.config.js`):z(j(e,`razorwind.config.mts`))?j(e,`razorwind.config.mts`):z(j(e,`razorwind.config.mjs`))?j(e,`razorwind.config.mjs`):z(j(e,`razorwind.config.cjs`))?j(e,`razorwind.config.cjs`):z(j(e,`razorwind.config.cts`))?j(e,`razorwind.config.cts`):z(j(e,`razorwind.config.json`))?j(e,`razorwind.config.json`):z(j(e,`razorwind.config.yaml`))?j(e,`razorwind.config.yaml`):z(j(e,`razorwind.config.yml`))?j(e,`razorwind.config.yml`):void 0,r=Je({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=Xe(e,i),o=[{}];if(n){let r=x(n)?n:S(e,n),i=await a.import(r,{default:!0});if(i){let r=i;if(r=Ye(i)?await Promise.resolve(i({cwd:e,mode:t.mode??`development`})):await Promise.resolve(i),Array.isArray(r)){let e=Ht(r);if(e.length===0)throw Error(`Razorwind config array is empty. Provide at least one configuration object.`);o=e.map(e=>({...e,configFile:n}))}else M(r)&&(o=[{...r,configFile:n}])}}let[s,c,l]=await Promise.all([R({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),R({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),R({cwd:Vt,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),u=Z(s?.config),d=n?x(n)?n:S(e,n):void 0,f=typeof s?.configFile==`string`?s.configFile:void 0;d&&f&&S(e,f)===d&&delete u.plugins;let p={envPaths:{...r,home:Vt},workspaceLayer:u,environmentLayer:Z(c?.config),homeLayer:Z(l?.config)};return o.map(n=>Gt(e,t,n,p))}async function Kt(e,t){let n=(await Q(e,t))[0];if(!n)throw Error(`Unable to resolve Razorwind configuration.`);return n}async function qt(e){if(e.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 t=e.options.tokens;(!t||h(t))&&(t=await m(e));let n={...await zt(e.cwd,e.options),tokens:t??{},components:b(e.options.components??{},await yt(e)??{}),icons:b(e.options.icons??{},await Ft(e)??{}),fonts:b(e.options.fonts??{},await p(e)??{})};for(let t of e.options.plugins.filter(e=>e.extract))n=await t.extract(n,e.options);if(n.tokens&&!h(n.tokens))for(let t of e.options.plugins.filter(e=>e.validate))await t.validate(n,e.options);return n}async function Jt(e,t){let n=await Q(e.cwd,t),r=[];for(let t of n)e.options=t,r.push({spec:await qt(e),config:t});return r}async function $(e,t){let n=[];for(let[r,i]of Object.entries(e??{})){let e=i?.path||r;if(!e)continue;let a=x(e)?e:S(t,e),o=(i?.chunks??[]).map(e=>e.content??``).join(``);await Ke(We(a),{recursive:!0}),await qe(a,o,`utf8`),n.push(a)}return n}var Yt=`0.0.61`;function Xt(e){return e}const Zt=He({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, icons, and fonts.`,version:Yt,tags:[`razorwind`,`dtcg`]},schema:Ue({schema:u}),input:async e=>{let t=v(),n=await Jt(t,e),r=n[0];if(!r)throw Error(`Unable to resolve Razorwind configuration.`);return t.generationRuns=n,t.options=r.config,r.spec},output:async(e,t,n)=>{await $(n,v().cwd)},generator:async e=>{let t=v();return rt(t.generationRuns&&t.generationRuns.length>0?t.generationRuns:[{spec:e,config:t.options}])}});export{Te as DEFAULT_TOKEN_PATH_CANDIDATES,ae as FONT_EXTENSIONS,ie as FONT_FORMAT_FROM_EXTENSION,f as GENERIC_FALLBACK_FROM_ROLE,ge as MONO_ROLES,Pe as RAZORWIND_INFER_PREPROCESSOR,_e as SANS_ROLES,_ as THEME_BASENAME_PATTERN,xe as TOKEN_DIRECTORY_GLOB,ve as TOKEN_FILE_EXTENSIONS,Se as TYPE_ALIASES,be as TYPE_PATH_HINTS,ee as WEIGHT_FROM_SUFFIX,g as WINDIE_PARSERS,g as razorwindParsers,ye as canonicalizeTokenType,Ne as collectCssCustomProperties,ce as copyFontFiles,pe as cssFontFamily,Xt as defineConfig,Ve as definePlugin,te as fontFamilyName,rt as generateAllPluginDocuments,nt as generatePluginDocuments,Zt as generator,Le as getExtractionHooks,Ee as getRazorwindParserHooks,Me as getRazorwindPreprocessorHooks,ke as inferTypeFromPath,Ce as inferValue,me as isEmptyFonts,h as isEmptyTokens,yt as loadComponents,p as loadFonts,Ft as loadIcons,Rt as loadSchemaMetaFromPackageJson,m as loadTokens,Ie as loadTokensOrThrow,le as mergeFonts,ze as nestFlatTokens,U as normalizeRepository,Be as normalizeTokenTree,Ae as parseCssCustomProperties,fe as parseCssFonts,ue as parseFontFilename,oe as pickFontByRole,Jt as prepareGenerationRuns,qt as prepareSpec,se as prependFontCss,Re as razorwindInferPreprocessor,De as registerRazorwindHooks,Oe as registerRazorwindParsers,he as renderFontCss,ne as renderGoogleFontImports,re as renderLocalFontFaces,Kt as resolveConfig,Q as resolveConfigs,zt as resolveSchemaMeta,je as resolveTokensSource,Lt as schemaMetaFromConfig,It as schemaMetaFromPackageJson,Fe as styleDictionaryLogOptions,we as themeKeyFromPath,B as themesForGeneration,de as toGoogleFontsCssUrl,Bt as uniquePlugins,$ as writeGeneratedDocuments};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1,2 +1,2 @@
1
- import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "../../index-Bb0PCrOG.cjs";
1
+ import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "../../index-B4SIQTrM.cjs";
2
2
  export { FONT_EXTENSIONS, FONT_FORMAT_FROM_EXTENSION, GENERIC_FALLBACK_FROM_ROLE, MONO_ROLES, type ParsedFontFilename, type RenderFontCssOptions, SANS_ROLES, WEIGHT_FROM_SUFFIX, copyFontFiles, cssFontFamily, fontFamilyName, isEmptyFonts, loadFonts, mergeFonts, parseCssFonts, parseFontFilename, pickFontByRole, prependFontCss, renderFontCss, renderGoogleFontImports, renderLocalFontFaces, toGoogleFontsCssUrl };
@@ -1,2 +1,2 @@
1
- import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "../../index-BeHvb_jw.mjs";
1
+ import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "../../index-C9wskjJW.mjs";
2
2
  export { FONT_EXTENSIONS, FONT_FORMAT_FROM_EXTENSION, GENERIC_FALLBACK_FROM_ROLE, MONO_ROLES, type ParsedFontFilename, type RenderFontCssOptions, SANS_ROLES, WEIGHT_FROM_SUFFIX, copyFontFiles, cssFontFamily, fontFamilyName, isEmptyFonts, loadFonts, mergeFonts, parseCssFonts, parseFontFilename, pickFontByRole, prependFontCss, renderFontCss, renderGoogleFontImports, renderLocalFontFaces, toGoogleFontsCssUrl };
@@ -1,2 +1,2 @@
1
- import { A as TOKEN_DIRECTORY_GLOB, C as nestFlatTokens, D as DEFAULT_TOKEN_PATH_CANDIDATES, E as parseCssCustomProperties, F as canonicalizeTokenType, M as TOKEN_PARSER_NAMES, N as TYPE_ALIASES, O as RazorwindParserName, P as TYPE_PATH_HINTS, S as inferValue, T as collectCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_FILE_EXTENSIONS, k as THEME_BASENAME_PATTERN, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "../../index-Dy-dYo_x.cjs";
1
+ import { A as TOKEN_DIRECTORY_GLOB, C as nestFlatTokens, D as DEFAULT_TOKEN_PATH_CANDIDATES, E as parseCssCustomProperties, F as canonicalizeTokenType, M as TOKEN_PARSER_NAMES, N as TYPE_ALIASES, O as RazorwindParserName, P as TYPE_PATH_HINTS, S as inferValue, T as collectCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_FILE_EXTENSIONS, k as THEME_BASENAME_PATTERN, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "../../index-BbvA_F58.cjs";
2
2
  export { DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type ResolveTokensPathOptions, type ResolvedTokensSource, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_ALIASES, TYPE_PATH_HINTS, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, canonicalizeTokenType, collectCssCustomProperties, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyTokens, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, styleDictionaryLogOptions, themeKeyFromPath };
@@ -1,2 +1,2 @@
1
- import { A as TOKEN_DIRECTORY_GLOB, C as nestFlatTokens, D as DEFAULT_TOKEN_PATH_CANDIDATES, E as parseCssCustomProperties, F as canonicalizeTokenType, M as TOKEN_PARSER_NAMES, N as TYPE_ALIASES, O as RazorwindParserName, P as TYPE_PATH_HINTS, S as inferValue, T as collectCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_FILE_EXTENSIONS, k as THEME_BASENAME_PATTERN, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "../../index-D6x-NBaI.mjs";
1
+ import { A as TOKEN_DIRECTORY_GLOB, C as nestFlatTokens, D as DEFAULT_TOKEN_PATH_CANDIDATES, E as parseCssCustomProperties, F as canonicalizeTokenType, M as TOKEN_PARSER_NAMES, N as TYPE_ALIASES, O as RazorwindParserName, P as TYPE_PATH_HINTS, S as inferValue, T as collectCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_FILE_EXTENSIONS, k as THEME_BASENAME_PATTERN, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "../../index-BOd3NVcu.mjs";
2
2
  export { DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type ResolveTokensPathOptions, type ResolvedTokensSource, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_ALIASES, TYPE_PATH_HINTS, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, canonicalizeTokenType, collectCssCustomProperties, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyTokens, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, styleDictionaryLogOptions, themeKeyFromPath };
@@ -1,4 +1,4 @@
1
- import { l as Plugin } from "./config-DcTkfPiR.cjs";
1
+ import { l as Plugin } from "./config-DXVZRs_4.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-BiAsks5W.d.cts.map
49
+ //# sourceMappingURL=plugin-D_0ERu16.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-BiAsks5W.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-D_0ERu16.d.cts","names":[],"sources":["../src/plugin.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiEgB,aAAa,UAC3B,UAAU,SAAS,aAAa,QAChC,YAAY,QAAQ,WAClB,UAAU,aAAa;iBACX,aACd,QAAQ,QACR,YAAY,QAAQ,UACnB"}
@@ -1,4 +1,4 @@
1
- import { l as Plugin } from "./config-D66RfJQb.mjs";
1
+ import { l as Plugin } from "./config-DgupyeYc.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-oghqv_Hn.d.mts.map
49
+ //# sourceMappingURL=plugin-DxwKGfH3.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-DxwKGfH3.d.mts","names":[],"sources":["../src/plugin.ts"],"mappings":""}
package/dist/plugin.d.cts CHANGED
@@ -1,3 +1,3 @@
1
- import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-DcTkfPiR.cjs";
2
- import { t as definePlugin } from "./plugin-BiAsks5W.cjs";
1
+ import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-DXVZRs_4.cjs";
2
+ import { t as definePlugin } from "./plugin-D_0ERu16.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-D66RfJQb.mjs";
2
- import { t as definePlugin } from "./plugin-oghqv_Hn.mjs";
1
+ import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-DgupyeYc.mjs";
2
+ import { t as definePlugin } from "./plugin-DxwKGfH3.mjs";
3
3
  export { type Plugin, type TokensParser, type TokensPreprocessor, definePlugin };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@razorwind/core",
3
- "version": "0.0.60",
3
+ "version": "0.0.61",
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"],
@@ -136,13 +136,13 @@
136
136
  "@power-plant/dtcg-schema": "^0.0.1",
137
137
  "@power-plant/schema": "^0.0.89",
138
138
  "@power-plant/utils": "^0.0.77",
139
- "@stryke/env": "^0.20.130",
140
- "@stryke/fs": "^0.33.113",
141
- "@stryke/path": "^0.29.38",
142
- "@stryke/string-format": "^0.17.53",
143
- "@stryke/type-checks": "^0.6.44",
144
- "@stryke/types": "^0.12.39",
145
- "@stryke/url": "^0.4.63",
139
+ "@stryke/env": "^0.20.131",
140
+ "@stryke/fs": "^0.33.114",
141
+ "@stryke/path": "^0.29.39",
142
+ "@stryke/string-format": "^0.17.54",
143
+ "@stryke/type-checks": "^0.6.45",
144
+ "@stryke/types": "^0.12.40",
145
+ "@stryke/url": "^0.4.64",
146
146
  "c12": "^3.3.4",
147
147
  "defu": "^6.1.7",
148
148
  "fast-glob": "^3.3.3",
@@ -159,5 +159,5 @@
159
159
  "typescript": "^6.0.3"
160
160
  },
161
161
  "publishConfig": { "access": "public" },
162
- "gitHead": "473392c2d86a28f9ce117cdc5c30182181c14ee8"
162
+ "gitHead": "a3a490260a32467e374d0744721a5ad67397e5af"
163
163
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-D66RfJQb.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-DcTkfPiR.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;;;;;;;;;;;;EAazD;;;;;;;;EASA,YACE,MAAM,QACN,QAAQ,WACL,aAAa,eAAe;;;;;;;;EASjC,YAAY,MAAM,QAAQ,QAAQ,WAAW;;;;UClG9B;;;;;;;;;;;;;;;;;;EAkBf;;;;EAKA;;;;;;EAOA;;;;;;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,QAAQ;EACR,UAAU;;UAGK;EACf;EACA;;KAGU,sBAAsB,QAAQ,eAAe;KAC7C,uBACV,QAAQ,qBACL,QAAQ,aAAa;KACd,gBACV,QAAQ,qBACL,aAAa,eAAe,QAAQ,aAAa;;;;;;KAM1C,mBACR,aACA,eACA,QAAQ,aAAa,gBACrB,qBACA,sBACA;KAEQ,SAAS,aACnB;EAGA;EACA,UAAU;IACR"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-oghqv_Hn.d.mts","names":[],"sources":["../src/plugin.ts"],"mappings":""}