@razorwind/core 0.0.49 → 0.0.51

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 (50) hide show
  1. package/dist/{config-B1rsPTVV.d.mts → config-D66RfJQb.d.mts} +13 -1
  2. package/dist/config-D66RfJQb.d.mts.map +1 -0
  3. package/dist/{config-jPfyBr8C.d.cts → config-DcTkfPiR.d.cts} +13 -1
  4. package/dist/config-DcTkfPiR.d.cts.map +1 -0
  5. package/dist/{index-52XD5ztc.d.mts → index-BUOleHB2.d.mts} +2 -2
  6. package/dist/{index-52XD5ztc.d.mts.map → index-BUOleHB2.d.mts.map} +1 -1
  7. package/dist/{index-VmrytwDm.d.cts → index-Bb0PCrOG.d.cts} +2 -2
  8. package/dist/{index-VmrytwDm.d.cts.map → index-Bb0PCrOG.d.cts.map} +1 -1
  9. package/dist/{index-nRnX_NsH.d.mts → index-BeHvb_jw.d.mts} +2 -2
  10. package/dist/{index-nRnX_NsH.d.mts.map → index-BeHvb_jw.d.mts.map} +1 -1
  11. package/dist/{index-D6x2Pe2v.d.cts → index-Jx3NnG_x.d.cts} +2 -2
  12. package/dist/{index-D6x2Pe2v.d.cts.map → index-Jx3NnG_x.d.cts.map} +1 -1
  13. package/dist/index.cjs +1 -1
  14. package/dist/index.d.cts +7 -4
  15. package/dist/index.d.cts.map +1 -1
  16. package/dist/index.d.mts +7 -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.cjs +1 -1
  21. package/dist/lib/tokens/index.d.cts +1 -1
  22. package/dist/lib/tokens/index.d.mts +1 -1
  23. package/dist/lib/tokens/index.mjs +1 -1
  24. package/dist/{plugin-CSC1jRVg.d.cts → plugin-BiAsks5W.d.cts} +2 -2
  25. package/dist/{plugin-CSC1jRVg.d.cts.map → plugin-BiAsks5W.d.cts.map} +1 -1
  26. package/dist/{plugin-DBrXhsY0.d.mts → plugin-oghqv_Hn.d.mts} +2 -2
  27. package/dist/plugin-oghqv_Hn.d.mts.map +1 -0
  28. package/dist/plugin.d.cts +2 -2
  29. package/dist/plugin.d.mts +2 -2
  30. package/dist/tokens-DlF13ltk.cjs +7 -0
  31. package/dist/tokens-EpUlVCAl.mjs +8 -0
  32. package/dist/tokens-EpUlVCAl.mjs.map +1 -0
  33. package/dist/utils/index.cjs +1 -1
  34. package/dist/utils/index.d.cts +6 -1
  35. package/dist/utils/index.d.cts.map +1 -1
  36. package/dist/utils/index.d.mts +6 -1
  37. package/dist/utils/index.mjs +1 -1
  38. package/dist/utils-KDezR5p2.mjs +2 -0
  39. package/dist/utils-KDezR5p2.mjs.map +1 -0
  40. package/dist/utils-gLQ_OAIF.cjs +1 -0
  41. package/package.json +2 -2
  42. package/dist/config-B1rsPTVV.d.mts.map +0 -1
  43. package/dist/config-jPfyBr8C.d.cts.map +0 -1
  44. package/dist/plugin-DBrXhsY0.d.mts.map +0 -1
  45. package/dist/tokens-BjB6F0P1.cjs +0 -7
  46. package/dist/tokens-C_RYVqap.mjs +0 -8
  47. package/dist/tokens-C_RYVqap.mjs.map +0 -1
  48. package/dist/utils-3eUdyRLZ.cjs +0 -1
  49. package/dist/utils-CMqr6G7v.mjs +0 -2
  50. package/dist/utils-CMqr6G7v.mjs.map +0 -1
@@ -65,6 +65,18 @@ interface Plugin {
65
65
  * @returns The schema of the design tokens.
66
66
  */
67
67
  extract?: (spec: Schema, config: Config) => MaybePromise<Schema>;
68
+ /**
69
+ * How this plugin's {@link generate} hook is invoked for multi-theme token
70
+ * records.
71
+ *
72
+ * - `"split"` (default) — once per theme, with output paths suffixed
73
+ * (`tamagui.config.ts` → `tamagui-light.config.ts`).
74
+ * - `"combined"` — once against the full token record. Use for targets that
75
+ * encode light and dark in a single artifact (Tamagui `createV5Theme`).
76
+ *
77
+ * @defaultValue `"split"`
78
+ */
79
+ themeGeneration?: "split" | "combined";
68
80
  /**
69
81
  * Generate the design system code from the design tokens.
70
82
  *
@@ -228,4 +240,4 @@ type Config = RequiredKeys<UserConfig, "componentsPath" | "iconsPath" | "fontsPa
228
240
  };
229
241
  //#endregion
230
242
  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 };
231
- //# sourceMappingURL=config-B1rsPTVV.d.mts.map
243
+ //# sourceMappingURL=config-D66RfJQb.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-D66RfJQb.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":""}
@@ -65,6 +65,18 @@ interface Plugin {
65
65
  * @returns The schema of the design tokens.
66
66
  */
67
67
  extract?: (spec: Schema, config: Config) => MaybePromise<Schema>;
68
+ /**
69
+ * How this plugin's {@link generate} hook is invoked for multi-theme token
70
+ * records.
71
+ *
72
+ * - `"split"` (default) — once per theme, with output paths suffixed
73
+ * (`tamagui.config.ts` → `tamagui-light.config.ts`).
74
+ * - `"combined"` — once against the full token record. Use for targets that
75
+ * encode light and dark in a single artifact (Tamagui `createV5Theme`).
76
+ *
77
+ * @defaultValue `"split"`
78
+ */
79
+ themeGeneration?: "split" | "combined";
68
80
  /**
69
81
  * Generate the design system code from the design tokens.
70
82
  *
@@ -228,4 +240,4 @@ type Config = RequiredKeys<UserConfig, "componentsPath" | "iconsPath" | "fontsPa
228
240
  };
229
241
  //#endregion
230
242
  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 };
231
- //# sourceMappingURL=config-jPfyBr8C.d.cts.map
243
+ //# sourceMappingURL=config-DcTkfPiR.d.cts.map
@@ -0,0 +1 @@
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,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-B1rsPTVV.mjs";
3
+ import { l as Plugin, t as Config } from "./config-D66RfJQb.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";
@@ -208,4 +208,4 @@ declare function registerRazorwindHooks(plugins?: Plugin[], target?: StyleDictio
208
208
  declare const registerRazorwindParsers: typeof registerRazorwindHooks;
209
209
  //#endregion
210
210
  export { TOKEN_FILE_EXTENSIONS as A, nestFlatTokens as C, RazorwindParserName as D, DEFAULT_TOKEN_PATH_CANDIDATES as E, TYPE_ALIASES as M, TYPE_PATH_HINTS as N, THEME_BASENAME_PATTERN as O, canonicalizeTokenType as P, inferValue as S, parseCssCustomProperties 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_PARSER_NAMES as j, TOKEN_DIRECTORY_GLOB 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 };
211
- //# sourceMappingURL=index-52XD5ztc.d.mts.map
211
+ //# sourceMappingURL=index-BUOleHB2.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-52XD5ztc.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-BUOleHB2.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 { 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-jPfyBr8C.cjs";
3
+ import { t as Config } from "./config-DcTkfPiR.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-VmrytwDm.d.cts.map
100
+ //# sourceMappingURL=index-Bb0PCrOG.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-VmrytwDm.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-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,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-B1rsPTVV.mjs";
3
+ import { t as Config } from "./config-D66RfJQb.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-nRnX_NsH.d.mts.map
100
+ //# sourceMappingURL=index-BeHvb_jw.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-nRnX_NsH.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-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,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-jPfyBr8C.cjs";
3
+ import { l as Plugin, t as Config } from "./config-DcTkfPiR.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";
@@ -208,4 +208,4 @@ declare function registerRazorwindHooks(plugins?: Plugin[], target?: StyleDictio
208
208
  declare const registerRazorwindParsers: typeof registerRazorwindHooks;
209
209
  //#endregion
210
210
  export { TOKEN_FILE_EXTENSIONS as A, nestFlatTokens as C, RazorwindParserName as D, DEFAULT_TOKEN_PATH_CANDIDATES as E, TYPE_ALIASES as M, TYPE_PATH_HINTS as N, THEME_BASENAME_PATTERN as O, canonicalizeTokenType as P, inferValue as S, parseCssCustomProperties 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_PARSER_NAMES as j, TOKEN_DIRECTORY_GLOB 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 };
211
- //# sourceMappingURL=index-D6x2Pe2v.d.cts.map
211
+ //# sourceMappingURL=index-Jx3NnG_x.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-D6x2Pe2v.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;;;;;;;iBC5JtB,yBACd,mBACC;;;KCgCS;;;;iBA+DI,kBACd,iBACC;;;;iBAiBa,WACd,cACA;EACG;EAAgB,OAAO;;;;;iBA0PZ,mBACd,gBACA;;;;;;;;iBA6Cc,eACd,MAAM,0BACL;;;UChac;;;;EAIf;;;;EAKA;;;;EAKA,gBAAgB;;UAGD;;;;;;;EAOf;;;;EAKA;;;;EAKA;;;;;;;;;iBAyHc,oBACd,SAAS,2BACR;;;;iBAqFa,iBAAiB;;;UCrNhB,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-Jx3NnG_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;;;;;;;iBC5JtB,yBACd,mBACC;;;KCiCS;;;;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;;;;;;;;;iBAyHc,oBACd,SAAS,2BACR;;;;iBAqFa,iBAAiB;;;UCrNhB,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"}
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-3eUdyRLZ.cjs"),n=require("./schema-BCofDJWf.cjs"),r=require("./fonts-CkBPEFie.cjs"),i=require("./tokens-BjB6F0P1.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){let n={};for(let r of t.plugins.filter(e=>e.generate)){let i=await r.generate(e,t);n=(0,s.defu)(i,n)}return n}async function oe(e,n){let r=t._(e.tokens),i=T(e.tokens);if(i.length===0)return E(e,n);let a={};for(let o of i){let i=await E(ie(e,o,r),ae(n,o));a=(0,s.defu)(t.s(i,o.id),a)}return a}async function se(e){let t={};for(let n of e)Object.assign(t,await oe(n.spec,n.config));return t}function D(e){return!!((0,v.isSetString)(e)||(0,_.isSetObject)(e)&&`url`in e&&(0,v.isSetString)(e.url))}function O(e){if((0,v.isSetString)(e))return e;if((0,_.isSetObject)(e)&&`url`in e&&(0,v.isSetString)(e.url))return e.url}const ce=n.o.partial(),k=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),A=(0,s.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function le(e,t){return(0,c.isAbsolute)(t)?t:(0,c.resolve)(e,t)}function ue(e){return Array.isArray(e)?e.filter(v.isSetString):(0,v.isSetString)(e)?[e]:[]}function j(e){let t=e.toLowerCase();if(k.has(t))return t}function de(e){let t=(0,h.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&k.has(t))}function M(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 N(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 P(e){if(!(0,_.isSetObject)(e))return;let{files:t,usage:n,...r}=e,i=ce.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function F(e){return(0,_.isSetObject)(e)&&`path`in e}async function fe(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=O(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;F(a)?s=M(a):(0,_.isSetObject)(a)&&(o=P(a),`files`in a&&(s=M(a.files)),`usage`in a&&(c=N(a.usage)));let l=A(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function pe(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(F(n)||Array.isArray(n)){let e=M(n);if(e)return{files:e}}if(!(0,_.isSetObject)(n))return;let r=P(n)??{},i=`files`in n?M(n.files):void 0,a=`usage`in n?N(n.usage):void 0;return i?.length&&(r.files=i),a?.length&&(r.usage=a),Object.keys(r).length>0?r:void 0}async function me(e){try{return(await(0,y.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&de(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function he(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??j(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 me(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=(0,g.joinPaths)(n,e),r=j((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 ge(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 _e(e){let t=await fe(e),r=await pe(e);if(!t&&!r)return;let i=A(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 he(e,s.data.usage);return{...s.data,files:await ge(e,s.data.files),...c?.length?{usage:c}:{}}}async function I(e){let t={},n=ue(e.options.componentsPath);for(let r of n){let n=le(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 _e((0,g.joinPaths)(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const ve=n.r.partial(),L=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),R=(0,s.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function ye(e,t){return(0,c.isAbsolute)(t)?t:(0,c.resolve)(e,t)}function be(e){return Array.isArray(e)?e.filter(v.isSetString):(0,v.isSetString)(e)?[e]:[]}function z(e){let t=e.toLowerCase();if(L.has(t))return t}function B(e){let t=(0,h.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&L.has(t))}function xe(e){return i.b.test(e)}async function V(e){try{return(await(0,y.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&B(e.name)).map(e=>e.name)}catch{return[]}}function H(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 U(e){if(!(0,_.isSetObject)(e))return;let t=ve.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function W(e){return(0,_.isSetObject)(e)&&`path`in e}async function G(e,t,n){let r=(0,m.appendPath)(e,t),i=z((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 Se(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=O(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;W(a)?s=H(a):(0,_.isSetObject)(a)&&(o=U(a),`files`in a&&(s=H(a.files)));let c=R(o??{},r);return s?.length&&(c.files=s),Object.keys(c).length>0?c:void 0}async function Ce(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(W(n)||Array.isArray(n)){let e=H(n);if(e)return{files:e}}return U(n)}async function we(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??z(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 V(e);return Promise.all(n.map(t=>G(t,e)))}async function Te(e){let t=await Se(e),r=await Ce(e),i=await V(e);if(!t&&!r&&i.length===0)return;let a=R(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 we(e,c.data.files)}}function K(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 Ee(e,t,n){let r=await V(e);for(let i of r){let r=(0,h.findFileName)(i,{withExtension:!1});r&&K(n,r,await G(i,e,t))}}async function q(e){let t={},n=be(e.options.iconsPath);for(let r of n){let n=ye(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(xe(r.name)){await Ee(e,r.name,t);continue}let n=await Te(e);if(n){let e=t[n.name];t[n.name]=e?R(n,e):n}continue}if(r.isFile()&&B(r.name)){let e=(0,h.findFileName)(r.name,{withExtension:!1});if(!e)continue;K(t,e,await G(r.name,n))}}}catch{continue}}return t}function J(e,t){let n=e[t];return(0,v.isSetString)(n)?n:void 0}function Y(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=O(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=J(t,`title`),a=J(t,`name`),o=J(t,`description`),s=J(t,`homepage`),c=J(t,`logo`),u=O(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:D(e.homepage)?i.homepage=O(e.homepage):D(e.author)?i.homepage=O(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&D(e.maintainers[0])?i.homepage=O(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&D(e.contributors[0])?i.homepage=O(e.contributors[0]):D(e.bugs)&&(i.homepage=O(e.bugs)),c&&(i.logo=c),u?i.repository=u:D(e.repository)&&(i.repository=O(e.repository))}return(0,s.defu)(i,t)}function X(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 Y(n)}async function Oe(e,t){let n=await De(e),r=X(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 Z(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 Q(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=Z(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:Z(l?.config),homeLayer:Z(u?.config)};return o.map(n=>Pe(e,t,n,m))}async function Fe(e,t){let n=(await Q(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 I(e)??{}),icons:(0,s.defu)(e.options.icons??{},await q(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))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let 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 Q(e.cwd,t),r=[];for(let t of n)e.options=t,r.push({spec:await Ie(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=(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 Re=`0.0.49`;function ze(e){return e}const Be=(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:Re,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 $(n,(0,o.useExecution)().cwd)},generator:async e=>{let t=(0,o.useExecution)();return se(t.generationRuns&&t.generationRuns.length>0?t.generationRuns:[{spec:e,config:t.options}])}});exports.DEFAULT_TOKEN_PATH_CANDIDATES=i.y,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.b,exports.TOKEN_DIRECTORY_GLOB=i.x,exports.TOKEN_FILE_EXTENSIONS=i.S,exports.TYPE_ALIASES=i.w,exports.TYPE_PATH_HINTS=i.T,exports.WEIGHT_FROM_SUFFIX=r.b,exports.WINDIE_PARSERS=i.C,exports.razorwindParsers=i.C,exports.canonicalizeTokenType=i.E,exports.copyFontFiles=r.m,exports.cssFontFamily=r.s,exports.defineConfig=ze,exports.definePlugin=a.definePlugin,exports.fontFamilyName=r.c,exports.generateAllPluginDocuments=se,exports.generatePluginDocuments=oe,exports.generator=Be,exports.getExtractionHooks=i.s,exports.getRazorwindParserHooks=i.c,exports.getRazorwindPreprocessorHooks=i.l,exports.inferTypeFromPath=i.h,exports.inferValue=i.g,exports.isEmptyFonts=r.t,exports.isEmptyTokens=i.t,exports.loadComponents=I,exports.loadFonts=r.a,exports.loadIcons=q,exports.loadSchemaMetaFromPackageJson=De,exports.loadTokens=i.n,exports.loadTokensOrThrow=i.r,exports.mergeFonts=r.n,exports.nestFlatTokens=i._,exports.normalizeRepository=O,exports.normalizeTokenTree=i.v,exports.parseCssCustomProperties=i.m,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=Q,exports.resolveSchemaMeta=Oe,exports.resolveTokensSource=i.i,exports.schemaMetaFromConfig=X,exports.schemaMetaFromPackageJson=Y,exports.styleDictionaryLogOptions=i.p,exports.themeKeyFromPath=i.a,exports.themesForGeneration=T,exports.toGoogleFontsCssUrl=r.p,exports.uniquePlugins=ke,exports.writeGeneratedDocuments=$;
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-DlF13ltk.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.b.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))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let 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.51`;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.y,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.b,exports.TOKEN_DIRECTORY_GLOB=i.x,exports.TOKEN_FILE_EXTENSIONS=i.S,exports.TYPE_ALIASES=i.w,exports.TYPE_PATH_HINTS=i.T,exports.WEIGHT_FROM_SUFFIX=r.b,exports.WINDIE_PARSERS=i.C,exports.razorwindParsers=i.C,exports.canonicalizeTokenType=i.E,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.h,exports.inferValue=i.g,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._,exports.normalizeRepository=j,exports.normalizeTokenTree=i.v,exports.parseCssCustomProperties=i.m,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-jPfyBr8C.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";
4
4
  import { a as TokenSet } from "./flatten-tokens-DWbPW_3z.cjs";
5
- import { t as definePlugin } from "./plugin-CSC1jRVg.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-VmrytwDm.cjs";
7
- import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_ALIASES, N as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, P as canonicalizeTokenType, S as inferValue, T as parseCssCustomProperties, _ 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_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, 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-D6x2Pe2v.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_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_ALIASES, N as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, P as canonicalizeTokenType, S as inferValue, T as parseCssCustomProperties, _ 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_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, 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-Jx3NnG_x.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
@@ -37,6 +37,9 @@ declare function themesForGeneration(tokens: Schema["tokens"]): TokenSet[];
37
37
  * separately: titles gain ` (<Theme>)`, and output file paths gain
38
38
  * `-<theme>` before the extension (`tokens.css` → `tokens-dark.css`).
39
39
  * Shared `base` files (and `base*` color-variant expansions) are omitted.
40
+ *
41
+ * Plugins with {@link Plugin.themeGeneration} `"combined"` skip that split and
42
+ * run once against the full token record (light and dark together).
40
43
  */
41
44
  declare function generatePluginDocuments(spec: Schema, config: Config): Promise<Record<string, GeneratedDocument>>;
42
45
  /**
@@ -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":";;;;;;;;;;;;;;;;UAwCiB;EACf,MAAM;EACN,QAAQ;;;;;;;;;;;;;iBAcM,oBAAoB,QAAQ,mBAAmB;;;;;;;;;iBA6DzC,wBACpB,MAAM,QACN,QAAQ,SACP,QAAQ,eAAe;;;;;;;;;iBA6BJ,2BACpB,MAAM,kBACL,QAAQ,eAAe;;;;;;;;;iBC1GV,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;;;;;;;iBCIP,YACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;iBA+CW,sBACpB,SAAS,iBAAiB,QAAQ,eAClC,SAAS,UACR,QAAQ;;;;;;;;;;;;;iBC5DW,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;;;;;;;;;;;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;;;;;;;iBCIP,YACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;iBA+CW,sBACpB,SAAS,iBAAiB,QAAQ,eAClC,SAAS,UACR,QAAQ;;;;;;;;;;;;;iBC5DW,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-B1rsPTVV.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";
4
4
  import { a as TokenSet } from "./flatten-tokens-Dz4e2IHx.mjs";
5
- import { t as definePlugin } from "./plugin-DBrXhsY0.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-nRnX_NsH.mjs";
7
- import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_ALIASES, N as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, P as canonicalizeTokenType, S as inferValue, T as parseCssCustomProperties, _ 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_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, 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-52XD5ztc.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_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_ALIASES, N as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, P as canonicalizeTokenType, S as inferValue, T as parseCssCustomProperties, _ 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_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, 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-BUOleHB2.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
@@ -37,6 +37,9 @@ declare function themesForGeneration(tokens: Schema["tokens"]): TokenSet[];
37
37
  * separately: titles gain ` (<Theme>)`, and output file paths gain
38
38
  * `-<theme>` before the extension (`tokens.css` → `tokens-dark.css`).
39
39
  * Shared `base` files (and `base*` color-variant expansions) are omitted.
40
+ *
41
+ * Plugins with {@link Plugin.themeGeneration} `"combined"` skip that split and
42
+ * run once against the full token record (light and dark together).
40
43
  */
41
44
  declare function generatePluginDocuments(spec: Schema, config: Config): Promise<Record<string, GeneratedDocument>>;
42
45
  /**
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-CMqr6G7v.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 m,E as ve,S as ye,T as be,_ as xe,a as Se,b as Ce,c as we,d as Te,f as Ee,g as De,h as Oe,i as ke,l as Ae,m as je,n as h,o as Me,p as Ne,r as Pe,s as Fe,t as g,u as Ie,v as Le,w as Re,x as ze,y as Be}from"./tokens-C_RYVqap.mjs";import{definePlugin as Ve}from"./plugin.mjs";import{defineGenerator as He,defineSchema as Ue,useExecution as _}from"@power-plant/core";import{createDefu as v,defu as y}from"defu";import{dirname as We,isAbsolute as b,resolve as x}from"node:path";import{titleCase as S}from"@stryke/string-format/title-case";import{existsSync as C}from"@stryke/fs/exists";import{isDirectory as w}from"@stryke/fs/is-file";import{readJsonFile as T}from"@stryke/fs/json";import{listFiles as Ge}from"@stryke/fs/list-files";import{appendPath as E}from"@stryke/path/append";import{findFileExtensionSafe as D,findFileName as O,findFolderName as k}from"@stryke/path/file-path-fns";import{joinPaths as A}from"@stryke/path/join";import{isSetObject as j}from"@stryke/type-checks/is-set-object";import{isSetString as M}from"@stryke/type-checks/is-set-string";import{mkdir as Ke,readFile as N,readdir as P,writeFile as qe}from"node:fs/promises";import{getEnvPaths as Je}from"@stryke/env/get-env-paths";import{findFilePath as F}from"@stryke/path/find";import{replacePath as I}from"@stryke/path/replace";import{isFunction as Ye}from"@stryke/type-checks/is-function";import{loadConfig as L}from"c12";import{createJiti as Xe}from"jiti";import{existsSync as R}from"node:fs";import Ze from"node:os";function z(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 B(e,t){let n={};for(let r of t.plugins.filter(e=>e.generate)){let i=await r.generate(e,t);n=y(i,n)}return n}async function V(t,n){let r=e(t.tokens),i=z(t.tokens);if(i.length===0)return B(t,n);let o={};for(let e of i){let i=await B($e(t,e,r),et(n,e));o=y(a(i,e.id),o)}return o}async function tt(e){let t={};for(let n of e)Object.assign(t,await V(n.spec,n.config));return t}function H(e){return!!(M(e)||j(e)&&`url`in e&&M(e.url))}function U(e){if(M(e))return e;if(j(e)&&`url`in e&&M(e.url))return e.url}const nt=s.partial(),W=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),rt=v((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function it(e,t){return b(t)?t:x(e,t)}function at(e){return Array.isArray(e)?e.filter(M):M(e)?[e]:[]}function ot(e){let t=e.toLowerCase();if(W.has(t))return t}function st(e){let t=D(e)?.toLowerCase();return!!(t&&W.has(t))}function G(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 ct(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(M(t)){let e=O(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 lt(e){if(!j(e))return;let{files:t,usage:n,...r}=e,i=nt.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function ut(e){return j(e)&&`path`in e}async function dt(e){let t=A(e,`package.json`);if(!C(t))return;let n;try{n=await T(t)}catch{return}let r={};M(n.name)&&(r.name=n.name,r.title=n.name),M(n.description)&&(r.description=n.description),M(n.version)&&(r.version=n.version),M(n.homepage)&&(r.homepage=n.homepage);let i=U(n.repository);if(i&&(r.repository=i),j(n.dependencies)&&(r.dependencies=n.dependencies),j(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(M);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,c;ut(a)?s=G(a):j(a)&&(o=lt(a),`files`in a&&(s=G(a.files)),`usage`in a&&(c=ct(a.usage)));let l=rt(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function ft(e){let t=A(e,`component.json`);if(!C(t))return;let n;try{n=await T(t)}catch{return}if(ut(n)||Array.isArray(n)){let e=G(n);if(e)return{files:e}}if(!j(n))return;let r=lt(n)??{},i=`files`in n?G(n.files):void 0,a=`usage`in n?ct(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 pt(e){try{return(await P(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&st(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function mt(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=E(t.path,e),r=D(t.path)??``,i=t.language??ot(r),a=t.name||O(t.path,{withExtension:!1})||t.path,o=t.content??(C(n)?await N(n,`utf8`):void 0);return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=A(e,`usage`);if(!C(n)||!w(n))return;let r=await pt(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=A(n,e),r=ot(D(e)??``),i=O(e,{withExtension:!1})||e;return{name:i,title:S(i),path:t,content:await N(t,`utf8`),...r?{language:r}:{}}}))}async function ht(e,t){let n=t??(await Ge(e)).filter(e=>O(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test(D(t))?`component`:`file`,path:t,content:await N(E(t,e),`utf8`)}:{type:/[tj]sx$/.test(D(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await N(E(t.path,e),`utf8`):void 0,path:E(t.path,e)}))}async function gt(e){let t=await dt(e),n=await ft(e);if(!t&&!n)return;let r=rt(n??{},t??{}),i=M(r.name)?r.name:k(e),a=M(r.title)?r.title:S(i),o=s.safeParse({...r,name:i,title:a});if(!o.success)return;let c=await mt(e,o.data.usage);return{...o.data,files:await ht(e,o.data.files),...c?.length?{usage:c}:{}}}async function _t(e){let t={},n=at(e.options.componentsPath);for(let r of n){let n=it(e.cwd,r);if(!(!C(n)||!w(n)))try{let e=await P(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await gt(A(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const vt=o.partial(),yt=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),K=v((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function bt(e,t){return b(t)?t:x(e,t)}function xt(e){return Array.isArray(e)?e.filter(M):M(e)?[e]:[]}function St(e){let t=e.toLowerCase();if(yt.has(t))return t}function Ct(e){let t=D(e)?.toLowerCase();return!!(t&&yt.has(t))}function wt(e){return Ce.test(e)}async function q(e){try{return(await P(e,{withFileTypes:!0})).filter(e=>e.isFile()&&Ct(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 Tt(e){if(!j(e))return;let t=vt.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function Et(e){return j(e)&&`path`in e}async function Y(e,t,n){let r=E(e,t),i=St(D(e)??``)??`file`,a=i===`svg`?await N(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function Dt(e){let t=A(e,`package.json`);if(!C(t))return;let n;try{n=await T(t)}catch{return}let r={};M(n.name)&&(r.name=n.name,r.title=n.name),M(n.description)&&(r.description=n.description),M(n.version)&&(r.version=n.version),M(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(M);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;Et(a)?s=J(a):j(a)&&(o=Tt(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 Ot(e){let t=A(e,`icon.json`);if(!C(t))return;let n;try{n=await T(t)}catch{return}if(Et(n)||Array.isArray(n)){let e=J(n);if(e)return{files:e}}return Tt(n)}async function kt(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=E(t.path,e),r=D(t.path)??``,i=t.type??St(r)??`file`,a=t.content===void 0?i===`svg`?await N(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 At(e){let t=await Dt(e),n=await Ot(e),r=await q(e);if(!t&&!n&&r.length===0)return;let i=K(n??{},t??{}),a=M(i.name)?i.name:k(e),s=M(i.title)?i.title:S(a),c=o.safeParse({...i,name:a,title:s});if(c.success)return{...c.data,files:await kt(e,c.data.files)}}function jt(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:S(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 Mt(e,t,n){let r=await q(e);for(let i of r){let r=O(i,{withExtension:!1});r&&jt(n,r,await Y(i,e,t))}}async function Nt(e){let t={},n=xt(e.options.iconsPath);for(let r of n){let n=bt(e.cwd,r);if(!(!C(n)||!w(n)))try{let e=await P(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=A(n,r.name);if(r.isDirectory()){if(wt(r.name)){await Mt(e,r.name,t);continue}let n=await At(e);if(n){let e=t[n.name];t[n.name]=e?K(n,e):n}continue}if(r.isFile()&&Ct(r.name)){let e=O(r.name,{withExtension:!1});if(!e)continue;jt(t,e,await Y(r.name,n))}}}catch{continue}}return t}function X(e,t){let n=e[t];return M(n)?n:void 0}function Pt(e){let t={};M(e.name)&&(t.name=e.name),M(e.description)&&(t.description=e.description),M(e.homepage)&&(t.homepage=e.homepage);let n=U(e.repository);n&&(t.repository=n),M(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if(j(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:M(e.name)&&(i.name=e.name),n?i.title=n:M(i.name)&&(i.title=S(i.name)),o?i.description=o:M(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 y(i,t)}function Ft(e){let t={};return M(e.name)&&(t.name=e.name),M(e.title)&&(t.title=e.title),M(e.description)&&(t.description=e.description),M(e.repository)&&(t.repository=e.repository),M(e.homepage)&&(t.homepage=e.homepage),M(e.logo)&&(t.logo=e.logo),t}async function It(e){let t=A(e,`package.json`);if(!C(t))return{};let n;try{n=await T(t)}catch{return{}}return Pt(n)}async function Lt(e,t){let n=await It(e),r=Ft(t);return y(r,n)}function Rt(e){let t=new Set;return e.filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const zt=Ze.homedir();function Bt(e){return Array.isArray(e)?e.filter(e=>j(e)):[]}function Z(e){return Array.isArray(e)||!j(e)?{}:{...e}}const Vt=[`tokensPath`,`componentsPath`,`iconsPath`,`fontsPath`];function Ht(e,t){let n={...e};for(let e of Vt)t[e]!=null&&delete n[e];return n}function Ut(e,t,n,r){let i=y({cwd:e,envPaths:r.envPaths},Ht(t,n),n,r.workspaceLayer,r.environmentLayer,r.homeLayer,{componentsPath:e,iconsPath:A(e,`assets/icons`),fontsPath:A(e,`assets/fonts`),plugins:[]});if(Array.isArray(i.componentsPath)){let t=i.componentsPath.filter(M).map(e=>F(e));i.componentsPath=t.length>0?t:e}else i.componentsPath=M(i.componentsPath)?F(i.componentsPath):e;if(Array.isArray(i.iconsPath)){let t=i.iconsPath.filter(M).map(e=>F(e));i.iconsPath=t.length>0?t:A(e,`assets/icons`)}else i.iconsPath=M(i.iconsPath)?F(i.iconsPath):A(e,`assets/icons`);if(Array.isArray(i.fontsPath)){let t=i.fontsPath.filter(M).map(e=>F(e));i.fontsPath=t.length>0?t:A(e,`assets/fonts`)}else i.fontsPath=M(i.fontsPath)?F(i.fontsPath):A(e,`assets/fonts`);return i.plugins=Rt(Array.isArray(i.plugins)?i.plugins:[]),i.verbose=t.verbose===!0||n.verbose===!0,i}async function Q(e,t){let n=t.configFile&&R(I(t.configFile,e))?I(t.configFile,e):t.configFile&&R(t.configFile)?t.configFile:R(A(e,`razorwind.${t.mode}.ts`))?A(e,`razorwind.${t.mode}.ts`):R(A(e,`razorwind.${t.mode}.js`))?A(e,`razorwind.${t.mode}.js`):R(A(e,`razorwind.${t.mode}.mts`))?A(e,`razorwind.${t.mode}.mts`):R(A(e,`razorwind.${t.mode}.mjs`))?A(e,`razorwind.${t.mode}.mjs`):R(A(e,`razorwind.${t.mode}.cjs`))?A(e,`razorwind.${t.mode}.cjs`):R(A(e,`razorwind.${t.mode}.cts`))?A(e,`razorwind.${t.mode}.cts`):R(A(e,`razorwind.${t.mode}.json`))?A(e,`razorwind.${t.mode}.json`):R(A(e,`razorwind.${t.mode}.yaml`))?A(e,`razorwind.${t.mode}.yaml`):R(A(e,`razorwind.${t.mode}.yml`))?A(e,`razorwind.${t.mode}.yml`):R(A(e,`razorwind.config.ts`))?A(e,`razorwind.config.ts`):R(A(e,`razorwind.config.js`))?A(e,`razorwind.config.js`):R(A(e,`razorwind.config.mts`))?A(e,`razorwind.config.mts`):R(A(e,`razorwind.config.mjs`))?A(e,`razorwind.config.mjs`):R(A(e,`razorwind.config.cjs`))?A(e,`razorwind.config.cjs`):R(A(e,`razorwind.config.cts`))?A(e,`razorwind.config.cts`):R(A(e,`razorwind.config.json`))?A(e,`razorwind.config.json`):R(A(e,`razorwind.config.yaml`))?A(e,`razorwind.config.yaml`):R(A(e,`razorwind.config.yml`))?A(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=b(n)?n:x(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=Bt(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 j(r)&&(o=[{...r,configFile:n}])}}let[s,c,l]=await Promise.all([L({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),L({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),L({cwd:zt,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),u=Z(s?.config),d=n?b(n)?n:x(e,n):void 0,f=typeof s?.configFile==`string`?s.configFile:void 0;d&&f&&x(e,f)===d&&delete u.plugins;let p={envPaths:{...r,home:zt},workspaceLayer:u,environmentLayer:Z(c?.config),homeLayer:Z(l?.config)};return o.map(n=>Ut(e,t,n,p))}async function Wt(e,t){let n=(await Q(e,t))[0];if(!n)throw Error(`Unable to resolve Razorwind configuration.`);return n}async function Gt(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||g(t))&&(t=await h(e));let n={...await Lt(e.cwd,e.options),tokens:t??{},components:y(e.options.components??{},await _t(e)??{}),icons:y(e.options.icons??{},await Nt(e)??{}),fonts:y(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||g(n.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let t of e.options.plugins.filter(e=>e.validate))await t.validate(n,e.options);return n}async function Kt(e,t){let n=await Q(e.cwd,t),r=[];for(let t of n)e.options=t,r.push({spec:await Gt(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=b(e)?e:x(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 qt=`0.0.49`;function Jt(e){return e}const Yt=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:qt,tags:[`razorwind`,`dtcg`]},schema:Ue({schema:u}),input:async e=>{let t=_(),n=await Kt(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,_().cwd)},generator:async e=>{let t=_();return tt(t.generationRuns&&t.generationRuns.length>0?t.generationRuns:[{spec:e,config:t.options}])}});export{Be 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,Me as RAZORWIND_INFER_PREPROCESSOR,_e as SANS_ROLES,Ce as THEME_BASENAME_PATTERN,ze as TOKEN_DIRECTORY_GLOB,ye as TOKEN_FILE_EXTENSIONS,Re as TYPE_ALIASES,be as TYPE_PATH_HINTS,ee as WEIGHT_FROM_SUFFIX,m as WINDIE_PARSERS,m as razorwindParsers,ve as canonicalizeTokenType,ce as copyFontFiles,pe as cssFontFamily,Jt as defineConfig,Ve as definePlugin,te as fontFamilyName,tt as generateAllPluginDocuments,V as generatePluginDocuments,Yt as generator,Fe as getExtractionHooks,we as getRazorwindParserHooks,Ae as getRazorwindPreprocessorHooks,Oe as inferTypeFromPath,De as inferValue,me as isEmptyFonts,g as isEmptyTokens,_t as loadComponents,p as loadFonts,Nt as loadIcons,It as loadSchemaMetaFromPackageJson,h as loadTokens,Pe as loadTokensOrThrow,le as mergeFonts,xe as nestFlatTokens,U as normalizeRepository,Le as normalizeTokenTree,je as parseCssCustomProperties,fe as parseCssFonts,ue as parseFontFilename,oe as pickFontByRole,Kt as prepareGenerationRuns,Gt as prepareSpec,se as prependFontCss,Ie as razorwindInferPreprocessor,Te as registerRazorwindHooks,Ee as registerRazorwindParsers,he as renderFontCss,ne as renderGoogleFontImports,re as renderLocalFontFaces,Wt as resolveConfig,Q as resolveConfigs,Lt as resolveSchemaMeta,ke as resolveTokensSource,Ft as schemaMetaFromConfig,Pt as schemaMetaFromPackageJson,Ne as styleDictionaryLogOptions,Se as themeKeyFromPath,z as themesForGeneration,de as toGoogleFontsCssUrl,Rt 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 m,E as ve,S as ye,T as be,_ as xe,a as Se,b as h,c as Ce,d as we,f as Te,g as Ee,h as De,i as Oe,l as ke,m as Ae,n as je,o as Me,p as Ne,r as Pe,s as Fe,t as g,u as Ie,v as Le,w as Re,x as ze,y as Be}from"./tokens-EpUlVCAl.mjs";import{definePlugin as Ve}from"./plugin.mjs";import{defineGenerator as He,defineSchema as Ue,useExecution as _}from"@power-plant/core";import{createDefu as v,defu as y}from"defu";import{dirname as We,isAbsolute as b,resolve as x}from"node:path";import{titleCase as S}from"@stryke/string-format/title-case";import{existsSync as C}from"@stryke/fs/exists";import{isDirectory as w}from"@stryke/fs/is-file";import{readJsonFile as T}from"@stryke/fs/json";import{listFiles as Ge}from"@stryke/fs/list-files";import{appendPath as E}from"@stryke/path/append";import{findFileExtensionSafe as D,findFileName as O,findFolderName as Ke}from"@stryke/path/file-path-fns";import{joinPaths as k}from"@stryke/path/join";import{isSetObject as A}from"@stryke/type-checks/is-set-object";import{isSetString as j}from"@stryke/type-checks/is-set-string";import{mkdir as qe,readFile as M,readdir as N,writeFile as Je}from"node:fs/promises";import{getEnvPaths as Ye}from"@stryke/env/get-env-paths";import{findFilePath as P}from"@stryke/path/find";import{replacePath as Xe}from"@stryke/path/replace";import{isFunction as Ze}from"@stryke/type-checks/is-function";import{loadConfig as F}from"c12";import{createJiti as Qe}from"jiti";import{existsSync as I}from"node:fs";import $e from"node:os";function et(t){let n=e(t),r=n.filter(e=>!i(e.id));return r.length===0||r.length===1&&n.length===1?[]:r}function tt(e,t){let a=e.find(e=>e.id===r);return!a||i(t.id)?t.tokens:n(t.tokens,a.tokens)}function nt(e,n,r){return{...e,theme:n.id,title:t(e.title,n.id)??e.title,tokens:tt(r,n)}}function rt(e,n){let r=t(e.title,n.id);return r?{...e,title:r}:e}async function L(e,t,n=t.plugins.filter(e=>e.generate)){let r={};for(let i of n){let n=await i.generate(e,t);r=y(n,r)}return r}function it(e){return e.themeGeneration===`combined`}async function at(t,n){let r=n.plugins.filter(e=>e.generate),i=r.filter(it),o=r.filter(e=>!it(e)),s={};i.length>0&&(s=y(await L(t,n,i),s));let c=e(t.tokens),l=et(t.tokens);if(o.length===0)return s;if(l.length===0)return y(await L(t,n,o),s);for(let e of l){let r=await L(nt(t,e,c),rt(n,e),o);s=y(a(r,e.id),s)}return s}async function ot(e){let t={};for(let n of e)Object.assign(t,await at(n.spec,n.config));return t}function R(e){return!!(j(e)||A(e)&&`url`in e&&j(e.url))}function z(e){if(j(e))return e;if(A(e)&&`url`in e&&j(e.url))return e.url}const st=s.partial(),B=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),V=v((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function ct(e,t){return b(t)?t:x(e,t)}function lt(e){return Array.isArray(e)?e.filter(j):j(e)?[e]:[]}function H(e){let t=e.toLowerCase();if(B.has(t))return t}function ut(e){let t=D(e)?.toLowerCase();return!!(t&&B.has(t))}function U(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 W(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(j(t)){let e=O(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 G(e){if(!A(e))return;let{files:t,usage:n,...r}=e,i=st.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function dt(e){return A(e)&&`path`in e}async function ft(e){let t=k(e,`package.json`);if(!C(t))return;let n;try{n=await T(t)}catch{return}let r={};j(n.name)&&(r.name=n.name,r.title=n.name),j(n.description)&&(r.description=n.description),j(n.version)&&(r.version=n.version),j(n.homepage)&&(r.homepage=n.homepage);let i=z(n.repository);if(i&&(r.repository=i),A(n.dependencies)&&(r.dependencies=n.dependencies),A(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(j);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,c;dt(a)?s=U(a):A(a)&&(o=G(a),`files`in a&&(s=U(a.files)),`usage`in a&&(c=W(a.usage)));let l=V(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function pt(e){let t=k(e,`component.json`);if(!C(t))return;let n;try{n=await T(t)}catch{return}if(dt(n)||Array.isArray(n)){let e=U(n);if(e)return{files:e}}if(!A(n))return;let r=G(n)??{},i=`files`in n?U(n.files):void 0,a=`usage`in n?W(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 mt(e){try{return(await N(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 ht(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=E(t.path,e),r=D(t.path)??``,i=t.language??H(r),a=t.name||O(t.path,{withExtension:!1})||t.path,o=t.content??(C(n)?await M(n,`utf8`):void 0);return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=k(e,`usage`);if(!C(n)||!w(n))return;let r=await mt(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=k(n,e),r=H(D(e)??``),i=O(e,{withExtension:!1})||e;return{name:i,title:S(i),path:t,content:await M(t,`utf8`),...r?{language:r}:{}}}))}async function gt(e,t){let n=t??(await Ge(e)).filter(e=>O(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test(D(t))?`component`:`file`,path:t,content:await M(E(t,e),`utf8`)}:{type:/[tj]sx$/.test(D(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await M(E(t.path,e),`utf8`):void 0,path:E(t.path,e)}))}async function _t(e){let t=await ft(e),n=await pt(e);if(!t&&!n)return;let r=V(n??{},t??{}),i=j(r.name)?r.name:Ke(e),a=j(r.title)?r.title:S(i),o=s.safeParse({...r,name:i,title:a});if(!o.success)return;let c=await ht(e,o.data.usage);return{...o.data,files:await gt(e,o.data.files),...c?.length?{usage:c}:{}}}async function vt(e){let t={},n=lt(e.options.componentsPath);for(let r of n){let n=ct(e.cwd,r);if(!(!C(n)||!w(n)))try{let e=await N(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await _t(k(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const yt=o.partial(),bt=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),K=v((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function xt(e,t){return b(t)?t:x(e,t)}function St(e){return Array.isArray(e)?e.filter(j):j(e)?[e]:[]}function Ct(e){let t=e.toLowerCase();if(bt.has(t))return t}function wt(e){let t=D(e)?.toLowerCase();return!!(t&&bt.has(t))}function Tt(e){return h.test(e)}async function q(e){try{return(await N(e,{withFileTypes:!0})).filter(e=>e.isFile()&&wt(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 Et(e){if(!A(e))return;let t=yt.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function Dt(e){return A(e)&&`path`in e}async function Y(e,t,n){let r=E(e,t),i=Ct(D(e)??``)??`file`,a=i===`svg`?await M(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function Ot(e){let t=k(e,`package.json`);if(!C(t))return;let n;try{n=await T(t)}catch{return}let r={};j(n.name)&&(r.name=n.name,r.title=n.name),j(n.description)&&(r.description=n.description),j(n.version)&&(r.version=n.version),j(n.homepage)&&(r.homepage=n.homepage);let i=z(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(j);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;Dt(a)?s=J(a):A(a)&&(o=Et(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 kt(e){let t=k(e,`icon.json`);if(!C(t))return;let n;try{n=await T(t)}catch{return}if(Dt(n)||Array.isArray(n)){let e=J(n);if(e)return{files:e}}return Et(n)}async function At(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=E(t.path,e),r=D(t.path)??``,i=t.type??Ct(r)??`file`,a=t.content===void 0?i===`svg`?await M(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 jt(e){let t=await Ot(e),n=await kt(e),r=await q(e);if(!t&&!n&&r.length===0)return;let i=K(n??{},t??{}),a=j(i.name)?i.name:Ke(e),s=j(i.title)?i.title:S(a),c=o.safeParse({...i,name:a,title:s});if(c.success)return{...c.data,files:await At(e,c.data.files)}}function Mt(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:S(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 Nt(e,t,n){let r=await q(e);for(let i of r){let r=O(i,{withExtension:!1});r&&Mt(n,r,await Y(i,e,t))}}async function Pt(e){let t={},n=St(e.options.iconsPath);for(let r of n){let n=xt(e.cwd,r);if(!(!C(n)||!w(n)))try{let e=await N(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=k(n,r.name);if(r.isDirectory()){if(Tt(r.name)){await Nt(e,r.name,t);continue}let n=await jt(e);if(n){let e=t[n.name];t[n.name]=e?K(n,e):n}continue}if(r.isFile()&&wt(r.name)){let e=O(r.name,{withExtension:!1});if(!e)continue;Mt(t,e,await Y(r.name,n))}}}catch{continue}}return t}function X(e,t){let n=e[t];return j(n)?n:void 0}function Z(e){let t={};j(e.name)&&(t.name=e.name),j(e.description)&&(t.description=e.description),j(e.homepage)&&(t.homepage=e.homepage);let n=z(e.repository);n&&(t.repository=n),j(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if(A(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=z(t.repository);a?i.name=a:j(e.name)&&(i.name=e.name),n?i.title=n:j(i.name)&&(i.title=S(i.name)),o?i.description=o:j(e.description)&&(i.description=e.description),s?i.homepage=s:R(e.homepage)?i.homepage=z(e.homepage):R(e.author)?i.homepage=z(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&R(e.maintainers[0])?i.homepage=z(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&R(e.contributors[0])?i.homepage=z(e.contributors[0]):R(e.bugs)&&(i.homepage=z(e.bugs)),c&&(i.logo=c),l?i.repository=l:R(e.repository)&&(i.repository=z(e.repository))}return y(i,t)}function Ft(e){let t={};return j(e.name)&&(t.name=e.name),j(e.title)&&(t.title=e.title),j(e.description)&&(t.description=e.description),j(e.repository)&&(t.repository=e.repository),j(e.homepage)&&(t.homepage=e.homepage),j(e.logo)&&(t.logo=e.logo),t}async function It(e){let t=k(e,`package.json`);if(!C(t))return{};let n;try{n=await T(t)}catch{return{}}return Z(n)}async function Lt(e,t){let n=await It(e),r=Ft(t);return y(r,n)}function Rt(e){let t=new Set;return e.filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const zt=$e.homedir();function Bt(e){return Array.isArray(e)?e.filter(e=>A(e)):[]}function Q(e){return Array.isArray(e)||!A(e)?{}:{...e}}const Vt=[`tokensPath`,`componentsPath`,`iconsPath`,`fontsPath`];function Ht(e,t){let n={...e};for(let e of Vt)t[e]!=null&&delete n[e];return n}function Ut(e,t,n,r){let i=y({cwd:e,envPaths:r.envPaths},Ht(t,n),n,r.workspaceLayer,r.environmentLayer,r.homeLayer,{componentsPath:e,iconsPath:k(e,`assets/icons`),fontsPath:k(e,`assets/fonts`),plugins:[]});if(Array.isArray(i.componentsPath)){let t=i.componentsPath.filter(j).map(e=>P(e));i.componentsPath=t.length>0?t:e}else i.componentsPath=j(i.componentsPath)?P(i.componentsPath):e;if(Array.isArray(i.iconsPath)){let t=i.iconsPath.filter(j).map(e=>P(e));i.iconsPath=t.length>0?t:k(e,`assets/icons`)}else i.iconsPath=j(i.iconsPath)?P(i.iconsPath):k(e,`assets/icons`);if(Array.isArray(i.fontsPath)){let t=i.fontsPath.filter(j).map(e=>P(e));i.fontsPath=t.length>0?t:k(e,`assets/fonts`)}else i.fontsPath=j(i.fontsPath)?P(i.fontsPath):k(e,`assets/fonts`);return i.plugins=Rt(Array.isArray(i.plugins)?i.plugins:[]),i.verbose=t.verbose===!0||n.verbose===!0,i}async function $(e,t){let n=t.configFile&&I(Xe(t.configFile,e))?Xe(t.configFile,e):t.configFile&&I(t.configFile)?t.configFile:I(k(e,`razorwind.${t.mode}.ts`))?k(e,`razorwind.${t.mode}.ts`):I(k(e,`razorwind.${t.mode}.js`))?k(e,`razorwind.${t.mode}.js`):I(k(e,`razorwind.${t.mode}.mts`))?k(e,`razorwind.${t.mode}.mts`):I(k(e,`razorwind.${t.mode}.mjs`))?k(e,`razorwind.${t.mode}.mjs`):I(k(e,`razorwind.${t.mode}.cjs`))?k(e,`razorwind.${t.mode}.cjs`):I(k(e,`razorwind.${t.mode}.cts`))?k(e,`razorwind.${t.mode}.cts`):I(k(e,`razorwind.${t.mode}.json`))?k(e,`razorwind.${t.mode}.json`):I(k(e,`razorwind.${t.mode}.yaml`))?k(e,`razorwind.${t.mode}.yaml`):I(k(e,`razorwind.${t.mode}.yml`))?k(e,`razorwind.${t.mode}.yml`):I(k(e,`razorwind.config.ts`))?k(e,`razorwind.config.ts`):I(k(e,`razorwind.config.js`))?k(e,`razorwind.config.js`):I(k(e,`razorwind.config.mts`))?k(e,`razorwind.config.mts`):I(k(e,`razorwind.config.mjs`))?k(e,`razorwind.config.mjs`):I(k(e,`razorwind.config.cjs`))?k(e,`razorwind.config.cjs`):I(k(e,`razorwind.config.cts`))?k(e,`razorwind.config.cts`):I(k(e,`razorwind.config.json`))?k(e,`razorwind.config.json`):I(k(e,`razorwind.config.yaml`))?k(e,`razorwind.config.yaml`):I(k(e,`razorwind.config.yml`))?k(e,`razorwind.config.yml`):void 0,r=Ye({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=Qe(e,i),o=[{}];if(n){let r=b(n)?n:x(e,n),i=await a.import(r,{default:!0});if(i){let r=i;if(r=Ze(i)?await Promise.resolve(i({cwd:e,mode:t.mode??`development`})):await Promise.resolve(i),Array.isArray(r)){let e=Bt(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 A(r)&&(o=[{...r,configFile:n}])}}let[s,c,l]=await Promise.all([F({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),F({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),F({cwd:zt,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),u=Q(s?.config),d=n?b(n)?n:x(e,n):void 0,f=typeof s?.configFile==`string`?s.configFile:void 0;d&&f&&x(e,f)===d&&delete u.plugins;let p={envPaths:{...r,home:zt},workspaceLayer:u,environmentLayer:Q(c?.config),homeLayer:Q(l?.config)};return o.map(n=>Ut(e,t,n,p))}async function Wt(e,t){let n=(await $(e,t))[0];if(!n)throw Error(`Unable to resolve Razorwind configuration.`);return n}async function Gt(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||g(t))&&(t=await je(e));let n={...await Lt(e.cwd,e.options),tokens:t??{},components:y(e.options.components??{},await vt(e)??{}),icons:y(e.options.icons??{},await Pt(e)??{}),fonts:y(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||g(n.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let t of e.options.plugins.filter(e=>e.validate))await t.validate(n,e.options);return n}async function Kt(e,t){let n=await $(e.cwd,t),r=[];for(let t of n)e.options=t,r.push({spec:await Gt(e),config:t});return r}async function qt(e,t){let n=[];for(let[r,i]of Object.entries(e??{})){let e=i?.path||r;if(!e)continue;let a=b(e)?e:x(t,e),o=(i?.chunks??[]).map(e=>e.content??``).join(``);await qe(We(a),{recursive:!0}),await Je(a,o,`utf8`),n.push(a)}return n}var Jt=`0.0.51`;function Yt(e){return e}const Xt=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:Jt,tags:[`razorwind`,`dtcg`]},schema:Ue({schema:u}),input:async e=>{let t=_(),n=await Kt(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 qt(n,_().cwd)},generator:async e=>{let t=_();return ot(t.generationRuns&&t.generationRuns.length>0?t.generationRuns:[{spec:e,config:t.options}])}});export{Be 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,Me as RAZORWIND_INFER_PREPROCESSOR,_e as SANS_ROLES,h as THEME_BASENAME_PATTERN,ze as TOKEN_DIRECTORY_GLOB,ye as TOKEN_FILE_EXTENSIONS,Re as TYPE_ALIASES,be as TYPE_PATH_HINTS,ee as WEIGHT_FROM_SUFFIX,m as WINDIE_PARSERS,m as razorwindParsers,ve as canonicalizeTokenType,ce as copyFontFiles,pe as cssFontFamily,Yt as defineConfig,Ve as definePlugin,te as fontFamilyName,ot as generateAllPluginDocuments,at as generatePluginDocuments,Xt as generator,Fe as getExtractionHooks,Ce as getRazorwindParserHooks,ke as getRazorwindPreprocessorHooks,De as inferTypeFromPath,Ee as inferValue,me as isEmptyFonts,g as isEmptyTokens,vt as loadComponents,p as loadFonts,Pt as loadIcons,It as loadSchemaMetaFromPackageJson,je as loadTokens,Pe as loadTokensOrThrow,le as mergeFonts,xe as nestFlatTokens,z as normalizeRepository,Le as normalizeTokenTree,Ae as parseCssCustomProperties,fe as parseCssFonts,ue as parseFontFilename,oe as pickFontByRole,Kt as prepareGenerationRuns,Gt as prepareSpec,se as prependFontCss,Ie as razorwindInferPreprocessor,we as registerRazorwindHooks,Te as registerRazorwindParsers,he as renderFontCss,ne as renderGoogleFontImports,re as renderLocalFontFaces,Wt as resolveConfig,$ as resolveConfigs,Lt as resolveSchemaMeta,Oe as resolveTokensSource,Ft as schemaMetaFromConfig,Z as schemaMetaFromPackageJson,Ne as styleDictionaryLogOptions,Se as themeKeyFromPath,et as themesForGeneration,de as toGoogleFontsCssUrl,Rt as uniquePlugins,qt 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-VmrytwDm.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-Bb0PCrOG.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-nRnX_NsH.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-BeHvb_jw.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 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tokens-BjB6F0P1.cjs");exports.DEFAULT_TOKEN_PATH_CANDIDATES=e.y,exports.RAZORWIND_INFER_PREPROCESSOR=e.o,exports.THEME_BASENAME_PATTERN=e.b,exports.TOKEN_DIRECTORY_GLOB=e.x,exports.TOKEN_FILE_EXTENSIONS=e.S,exports.TYPE_ALIASES=e.w,exports.TYPE_PATH_HINTS=e.T,exports.WINDIE_PARSERS=e.C,exports.razorwindParsers=e.C,exports.canonicalizeTokenType=e.E,exports.getExtractionHooks=e.s,exports.getRazorwindParserHooks=e.c,exports.getRazorwindPreprocessorHooks=e.l,exports.inferTypeFromPath=e.h,exports.inferValue=e.g,exports.isEmptyTokens=e.t,exports.loadTokens=e.n,exports.loadTokensOrThrow=e.r,exports.nestFlatTokens=e._,exports.normalizeTokenTree=e.v,exports.parseCssCustomProperties=e.m,exports.razorwindInferPreprocessor=e.u,exports.registerRazorwindHooks=e.d,exports.registerRazorwindParsers=e.f,exports.resolveTokensSource=e.i,exports.styleDictionaryLogOptions=e.p,exports.themeKeyFromPath=e.a;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tokens-DlF13ltk.cjs");exports.DEFAULT_TOKEN_PATH_CANDIDATES=e.y,exports.RAZORWIND_INFER_PREPROCESSOR=e.o,exports.THEME_BASENAME_PATTERN=e.b,exports.TOKEN_DIRECTORY_GLOB=e.x,exports.TOKEN_FILE_EXTENSIONS=e.S,exports.TYPE_ALIASES=e.w,exports.TYPE_PATH_HINTS=e.T,exports.WINDIE_PARSERS=e.C,exports.razorwindParsers=e.C,exports.canonicalizeTokenType=e.E,exports.getExtractionHooks=e.s,exports.getRazorwindParserHooks=e.c,exports.getRazorwindPreprocessorHooks=e.l,exports.inferTypeFromPath=e.h,exports.inferValue=e.g,exports.isEmptyTokens=e.t,exports.loadTokens=e.n,exports.loadTokensOrThrow=e.r,exports.nestFlatTokens=e._,exports.normalizeTokenTree=e.v,exports.parseCssCustomProperties=e.m,exports.razorwindInferPreprocessor=e.u,exports.registerRazorwindHooks=e.d,exports.registerRazorwindParsers=e.f,exports.resolveTokensSource=e.i,exports.styleDictionaryLogOptions=e.p,exports.themeKeyFromPath=e.a;
@@ -1,2 +1,2 @@
1
- import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_ALIASES, N as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, P as canonicalizeTokenType, S as inferValue, T as parseCssCustomProperties, _ 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_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, 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-D6x2Pe2v.cjs";
1
+ import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_ALIASES, N as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, P as canonicalizeTokenType, S as inferValue, T as parseCssCustomProperties, _ 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_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, 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-Jx3NnG_x.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, 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_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_ALIASES, N as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, P as canonicalizeTokenType, S as inferValue, T as parseCssCustomProperties, _ 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_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, 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-52XD5ztc.mjs";
1
+ import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_ALIASES, N as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, P as canonicalizeTokenType, S as inferValue, T as parseCssCustomProperties, _ 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_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, 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-BUOleHB2.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, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyTokens, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, styleDictionaryLogOptions, themeKeyFromPath };
@@ -1 +1 @@
1
- import{C as e,E as t,S as n,T as r,_ as i,a,b as o,c as s,d as c,f as l,g as u,h as d,i as f,l as p,m,n as h,o as g,p as _,r as v,s as y,t as b,u as x,v as S,w as C,x as w,y as T}from"../../tokens-C_RYVqap.mjs";export{T as DEFAULT_TOKEN_PATH_CANDIDATES,g as RAZORWIND_INFER_PREPROCESSOR,o as THEME_BASENAME_PATTERN,w as TOKEN_DIRECTORY_GLOB,n as TOKEN_FILE_EXTENSIONS,C as TYPE_ALIASES,r as TYPE_PATH_HINTS,e as WINDIE_PARSERS,e as razorwindParsers,t as canonicalizeTokenType,y as getExtractionHooks,s as getRazorwindParserHooks,p as getRazorwindPreprocessorHooks,d as inferTypeFromPath,u as inferValue,b as isEmptyTokens,h as loadTokens,v as loadTokensOrThrow,i as nestFlatTokens,S as normalizeTokenTree,m as parseCssCustomProperties,x as razorwindInferPreprocessor,c as registerRazorwindHooks,l as registerRazorwindParsers,f as resolveTokensSource,_ as styleDictionaryLogOptions,a as themeKeyFromPath};
1
+ import{C as e,E as t,S as n,T as r,_ as i,a,b as o,c as s,d as c,f as l,g as u,h as d,i as f,l as p,m,n as h,o as g,p as _,r as v,s as y,t as b,u as x,v as S,w as C,x as w,y as T}from"../../tokens-EpUlVCAl.mjs";export{T as DEFAULT_TOKEN_PATH_CANDIDATES,g as RAZORWIND_INFER_PREPROCESSOR,o as THEME_BASENAME_PATTERN,w as TOKEN_DIRECTORY_GLOB,n as TOKEN_FILE_EXTENSIONS,C as TYPE_ALIASES,r as TYPE_PATH_HINTS,e as WINDIE_PARSERS,e as razorwindParsers,t as canonicalizeTokenType,y as getExtractionHooks,s as getRazorwindParserHooks,p as getRazorwindPreprocessorHooks,d as inferTypeFromPath,u as inferValue,b as isEmptyTokens,h as loadTokens,v as loadTokensOrThrow,i as nestFlatTokens,S as normalizeTokenTree,m as parseCssCustomProperties,x as razorwindInferPreprocessor,c as registerRazorwindHooks,l as registerRazorwindParsers,f as resolveTokensSource,_ as styleDictionaryLogOptions,a as themeKeyFromPath};
@@ -1,4 +1,4 @@
1
- import { l as Plugin } from "./config-jPfyBr8C.cjs";
1
+ import { l as Plugin } from "./config-DcTkfPiR.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-CSC1jRVg.d.cts.map
49
+ //# sourceMappingURL=plugin-BiAsks5W.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-CSC1jRVg.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-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,4 +1,4 @@
1
- import { l as Plugin } from "./config-B1rsPTVV.mjs";
1
+ import { l as Plugin } from "./config-D66RfJQb.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-DBrXhsY0.d.mts.map
49
+ //# sourceMappingURL=plugin-oghqv_Hn.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-oghqv_Hn.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-jPfyBr8C.cjs";
2
- import { t as definePlugin } from "./plugin-CSC1jRVg.cjs";
1
+ import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-DcTkfPiR.cjs";
2
+ import { t as definePlugin } from "./plugin-BiAsks5W.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-B1rsPTVV.mjs";
2
- import { t as definePlugin } from "./plugin-DBrXhsY0.mjs";
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";
3
3
  export { type Plugin, type TokensParser, type TokensPreprocessor, definePlugin };
@@ -0,0 +1,7 @@
1
+ const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./utils-gLQ_OAIF.cjs");let n=require("node:path"),r=require("@stryke/fs/exists"),i=require("@stryke/fs/is-file"),a=require("@stryke/path/join"),o=require("@stryke/type-checks/is-set-string"),s=require("@stryke/type-checks/is-function"),c=require("@stryke/fs/resolve"),l=require("fast-glob");l=e.t(l,1);let u=require("style-dictionary");u=e.t(u,1);let d=require("style-dictionary/enums"),f=require("json5");f=e.t(f,1);let p=require("smol-toml"),ee=require("yaml");const m=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],h=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],te=h.join(`,`),g=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],_=`**/*.{${te}}`,v=/^(light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)([._-].+)?$/i,y={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},b={size:`dimension`,sizes:`dimension`,sizing:`dimension`,space:`dimension`,spacing:`dimension`,radii:`dimension`,rounded:`dimension`,colour:`color`,colours:`color`,colors:`color`,fontweight:`fontWeight`,"font-weight":`fontWeight`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadows:`shadow`,elevation:`shadow`,gradients:`gradient`,durations:`duration`,time:`duration`,delay:`duration`};function x(e){return b[e.toLowerCase()]??e}const ne=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,re=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,ie=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,ae=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,oe=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,se=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,ce=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,le=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,ue=/^\{[^{}]+\}$/,de={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},S=new Set([`px`,`rem`]);function C(e){return Math.min(1,Math.max(0,e))}function w(e,t=100){let n=e.trim();if(n.endsWith(`%`))return C(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return C(r>1?r/255:r)}function fe(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function pe(e){let t=fe(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function me(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function T(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=y[n];if(r)return r}}function E(e,n=[]){let r=T(n);if(typeof e==`string`){let i=e.trim();if(ue.test(i))return{value:i,type:r};let a=i.match(le);if(a?.[1])return{value:me(a[1]),type:r};if(ne.test(i))return{value:pe(i),type:`color`};let o=t.C(i),s=o.match(re);if(s){let e=[w(s[1]),w(s[2]),w(s[3])],t=s[4]?s[4].endsWith(`%`)?C(Number.parseFloat(s[4])/100):C(Number.parseFloat(s[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let c=o.match(ie);if(c)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(c[1]),Number.parseFloat(c[2]),Number.parseFloat(c[3])],...c[4]?{alpha:c[4].endsWith(`%`)?C(Number.parseFloat(c[4])/100):C(Number.parseFloat(c[4]))}:{}},type:`color`};let l=o.match(ae);if(l){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(l[1]),e(l[2]),e(l[3])],...l[4]?{alpha:l[4].endsWith(`%`)?C(Number.parseFloat(l[4])/100):C(Number.parseFloat(l[4]))}:{}},type:`color`}}let u=i.match(oe);if(u){let e=u[2].toLowerCase(),t=Number.parseFloat(u[1]);return S.has(e)?{value:{value:t,unit:e},type:`dimension`}:{value:i,type:r===`dimension`?void 0:r}}let d=i.match(se);if(d)return{value:{value:Number.parseFloat(d[1]),unit:d[2].toLowerCase()},type:`duration`};let f=i.match(ce);if(f)return{value:[Number.parseFloat(f[1]),Number.parseFloat(f[2]),Number.parseFloat(f[3]),Number.parseFloat(f[4])],type:`cubicBezier`};let p=de[i.toLowerCase()];return p===void 0?r===`fontFamily`||/family|font|typeface/i.test(n.at(-1)??``)?i.includes(`,`)?{value:i.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:i.replace(/^["']|["']$/g,``),type:`fontFamily`}:r===`color`&&!i.startsWith(`{`)?{value:o,type:void 0}:{value:i,type:r}:{value:p,type:`fontWeight`}}if(typeof e==`number`)return r===`fontWeight`?{value:e,type:`fontWeight`}:r===`duration`?{value:{value:e,unit:`ms`},type:`duration`}:r===`dimension`?{value:{value:e,unit:`px`},type:`dimension`}:{value:e,type:r??`number`};if(Array.isArray(e))return e.length===4&&e.every(e=>typeof e==`number`)&&(r===`cubicBezier`||n.some(e=>/ease|bezier/i.test(e)))?{value:e,type:`cubicBezier`}:e.every(e=>typeof e==`string`)?{value:e,type:r??`fontFamily`}:{value:e,type:r};if(t.n(e)){if(`colorSpace`in e&&`components`in e)return{value:e,type:`color`};if(`value`in e&&`unit`in e){let t=String(e.unit).toLowerCase();return t===`ms`||t===`s`?{value:e,type:`duration`}:S.has(t)?{value:e,type:`dimension`}:{value:e,type:r}}}return{value:e,type:r}}function he(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),typeof n.$type==`string`&&(n.$type=x(n.$type)),`$value`in n){let e=E(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function D(e,n=[]){if(Array.isArray(e))return e.map((e,t)=>D(e,[...n,String(t)]));if(!t.n(e))return e;if(t.g(e))return he(e,n);let r={};for(let[t,i]of Object.entries(e)){if(t.startsWith(`$`)){r[t]=i;continue}r[t]=D(i,[...n,t])}if(typeof r.$type==`string`)r.$type=x(r.$type);else if(!(`$type`in r)){let e=T(n);e&&n.length>0&&(r.$type=e)}return r}function O(e){let n={};for(let[r,i]of Object.entries(e)){let e=r.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(e.length===0)continue;let a=n;for(let n=0;n<e.length-1;n++){let r=e[n],i=a[r];t.n(i)?t.g(i)&&(a[r]={DEFAULT:i}):a[r]={},a=a[r]}let o=e.at(-1),s=E(i,e),c={$value:s.value,...s.type?{$type:s.type}:{}},l=a[o];t.n(l)&&!t.g(l)?l.DEFAULT=c:a[o]=c}return D(n)}const ge=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function k(e){let t={},n=e.split(` `).join(` `).replace(/\s*\{\s*/g,` {
2
+ `).replace(/;\s*/g,`;
3
+ `).replace(/,\s*/g,`, `).replace(/ *\}\s*/g,`}
4
+ `).replace(/\}\s*(.+)/g,`}
5
+ $1`).replace(/\n {4}([^:]+):\s*/g,`
6
+ $1: `).replace(/([a-z0-9-)])\}/gi,`$1;
7
+ }`).replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(ge)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return O(t)}function A(e){return e?{verbosity:d.logVerbosityLevels.verbose}:{}}const j=`razorwind-infer`;function M(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return D(e)}function N(e){try{return M(f.default.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function P(e){try{return M((0,ee.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function F(e){try{return M((0,p.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const I=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>N(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>P(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>F(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>D(k(e))}];function L(){return Object.fromEntries(I.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function R(e){return D(e)}function z(){return{[j]:R}}function B(e=[]){let t={...L()},n={...z()},r=[...m],i=[j],a=0,o=0;for(let c of e){for(let e of c.parsers??[]){let n=e.name??`${c.name}-parser-${a}`;t[n]={pattern:e.pattern,parser:({contents:t})=>e.parser(t)},r.push(n),a++}for(let e of c.preprocessors??[]){let t=(0,s.isFunction)(e)?{name:`${c.name}-preprocessor-${o}`,preprocessor:e}:{name:e.name??`${c.name}-preprocessor-${o}`,preprocessor:e.preprocessor};n[t.name]=t.preprocessor,i.push(t.name),o++}}return{parsers:t,preprocessors:n,parserNames:r,preprocessorNames:i}}function V(e=[],t=u.default){let n=B(e);if(typeof t.registerParser==`function`)for(let[e,r]of Object.entries(n.parsers))t.registerParser({name:e,...r});if(typeof t.registerPreprocessor==`function`)for(let[e,r]of Object.entries(n.preprocessors))t.registerPreprocessor({name:e,preprocessor:r});return n}const _e=V;function H(e,t){return(0,n.isAbsolute)(t)?t:(0,n.resolve)(e,t)}function U(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function W(e){return h.includes(U(e))}function G(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function K(e){return(0,a.joinPaths)(e,_)}function q(e){return Array.isArray(e)?e.filter(o.isSetString):(0,o.isSetString)(e)?[e]:[]}const ve=/[*?[\]{}]/;function ye(e){return ve.test(e)}function be(e){let t=e.search(/[*?[{]/);if(t<=0)return;let n=e.slice(0,t).replace(/[/\\]+$/,``);return n.length>0?n:void 0}function xe(e,t){let n=H(e,t);if(ye(t)){let e=be(n);if(e&&!(0,r.existsSync)(e))throw Error(`tokensPath "${t}" does not exist (resolved: ${n}).`);return{resolvedPath:n,source:[n],isStyleDictionaryConfig:!1}}if(!(0,r.existsSync)(n))throw Error(`tokensPath "${t}" does not exist (resolved: ${n}).`);return(0,i.isDirectory)(n)?{resolvedPath:n,source:[K(n)],isStyleDictionaryConfig:!1}:G(n)?{resolvedPath:n,source:[],isStyleDictionaryConfig:!0}:{resolvedPath:n,source:[n],isStyleDictionaryConfig:!1}}function J(e){let{cwd:t,tokensPath:n,fallbackPaths:a=[]}=e,o=q(n);if(o.length>0){let e=o.map(e=>xe(t,e)),n=e.filter(e=>e.isStyleDictionaryConfig);if(n.length>0){if(e.length>1)throw Error(`tokensPath cannot mix Style Dictionary config files with other token sources.`);return{resolvedPath:n[0].resolvedPath,source:[],origin:`tokensPath`}}return{resolvedPath:e[0]?.resolvedPath,source:e.flatMap(e=>e.source),origin:`tokensPath`}}for(let e of g){let n=H(t,e);if((0,r.existsSync)(n)){if((0,i.isDirectory)(n))return{resolvedPath:n,source:[K(n)],origin:`default`};if(G(n))return{resolvedPath:n,source:[],origin:`default`};if(W(n))return{resolvedPath:n,source:[n],origin:`default`}}}for(let e of a){if(!e)continue;let n=H(t,e);if(!(!(0,r.existsSync)(n)||(0,i.isDirectory)(n))&&(W(n)||U(n)===`css`))return{resolvedPath:n,source:[n],origin:`fallback`}}return{source:[],origin:`none`}}function Y(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(v)?.[1]?.toLowerCase()}function Se(e){let t=e,n=new Set;for(;t!=null&&!n.has(t);){if(n.add(t),typeof t==`function`)return t;if(typeof t==`object`&&`default`in t){t=t.default;continue}break}throw TypeError(`style-dictionary did not export a constructable StyleDictionary class.`)}const Ce=Se(u.default);function X(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function we(e){let t=await(0,c.importModule)(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function Z(e,t){let n=B(e.plugins),r=new Ce({...t,parsers:[...n.parserNames,...t.parsers??[]],preprocessors:[...n.preprocessorNames,...t.preprocessors??[]],hooks:{...t.hooks,parsers:{...n.parsers,...t.hooks?.parsers},preprocessors:{...n.preprocessors,...t.hooks?.preprocessors}},usesDtcg:t.usesDtcg??!0,platforms:t.platforms??{}},A(e.verbose));return await r.hasInitialized,r}async function Q(e,t){return t.length===0?{}:(await Z(e,{source:t})).tokens}async function Te(e){return(await(0,l.default)(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function Ee(e,t){let n=await Te(t);if(n.length===0)return{};let r=new Map,i=[];for(let e of n){let t=Y(e);if(t){let n=r.get(t)??[];n.push(e),r.set(t,n)}else i.push(e)}if(r.size<2)return Q(e,t);let a={};if(i.length>0){let t=await Q(e,i);X(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Q(e,[...i,...n]);return a}async function $(e){let t=J(e.options);return t.resolvedPath&&(0,r.existsSync)(t.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test((0,n.basename)(t.resolvedPath))?(e.sd=await Z(e.options,await we(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?Ee(e.options,t.source):Q(e.options,t.source)}async function De(e){let t=await $(e);if(X(t)){let{tokensPath:t}=e.options,n=Array.isArray(t)?t.length>0?`tokensPath=[${t.map(e=>`"${e}"`).join(`, `)}]`:`default token paths / CSS fallbacks`:(0,o.isSetString)(t)?`tokensPath="${t}"`:`default token paths / CSS fallbacks`;throw Error(`No design tokens found via ${n}. Provide tokensPath or add a tokens file.`)}return t}Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return g}});
@@ -0,0 +1,8 @@
1
+ import{C as e,g as t,n}from"./utils-KDezR5p2.mjs";import{basename as r,isAbsolute as i,resolve as a}from"node:path";import{existsSync as o}from"@stryke/fs/exists";import{isDirectory as s}from"@stryke/fs/is-file";import{joinPaths as c}from"@stryke/path/join";import{isSetString as l}from"@stryke/type-checks/is-set-string";import{isFunction as u}from"@stryke/type-checks/is-function";import{importModule as d}from"@stryke/fs/resolve";import f from"fast-glob";import p from"style-dictionary";import{logVerbosityLevels as ee}from"style-dictionary/enums";import te from"json5";import{parse as ne}from"smol-toml";import{parse as re}from"yaml";const m=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],h=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],ie=h.join(`,`),g=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],_=`**/*.{${ie}}`,v=/^(light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)([._-].+)?$/i,y={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},b={size:`dimension`,sizes:`dimension`,sizing:`dimension`,space:`dimension`,spacing:`dimension`,radii:`dimension`,rounded:`dimension`,colour:`color`,colours:`color`,colors:`color`,fontweight:`fontWeight`,"font-weight":`fontWeight`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadows:`shadow`,elevation:`shadow`,gradients:`gradient`,durations:`duration`,time:`duration`,delay:`duration`};function x(e){return b[e.toLowerCase()]??e}const ae=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,oe=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,se=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,ce=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,le=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,ue=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,de=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,fe=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,S=/^\{[^{}]+\}$/,C={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},w=new Set([`px`,`rem`]);function T(e){return Math.min(1,Math.max(0,e))}function E(e,t=100){let n=e.trim();if(n.endsWith(`%`))return T(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return T(r>1?r/255:r)}function pe(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function me(e){let t=pe(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function he(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function D(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=y[n];if(r)return r}}function O(t,r=[]){let i=D(r);if(typeof t==`string`){let n=t.trim();if(S.test(n))return{value:n,type:i};let a=n.match(fe);if(a?.[1])return{value:he(a[1]),type:i};if(ae.test(n))return{value:me(n),type:`color`};let o=e(n),s=o.match(oe);if(s){let e=[E(s[1]),E(s[2]),E(s[3])],t=s[4]?s[4].endsWith(`%`)?T(Number.parseFloat(s[4])/100):T(Number.parseFloat(s[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let c=o.match(se);if(c)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(c[1]),Number.parseFloat(c[2]),Number.parseFloat(c[3])],...c[4]?{alpha:c[4].endsWith(`%`)?T(Number.parseFloat(c[4])/100):T(Number.parseFloat(c[4]))}:{}},type:`color`};let l=o.match(ce);if(l){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(l[1]),e(l[2]),e(l[3])],...l[4]?{alpha:l[4].endsWith(`%`)?T(Number.parseFloat(l[4])/100):T(Number.parseFloat(l[4]))}:{}},type:`color`}}let u=n.match(le);if(u){let e=u[2].toLowerCase(),t=Number.parseFloat(u[1]);return w.has(e)?{value:{value:t,unit:e},type:`dimension`}:{value:n,type:i===`dimension`?void 0:i}}let d=n.match(ue);if(d)return{value:{value:Number.parseFloat(d[1]),unit:d[2].toLowerCase()},type:`duration`};let f=n.match(de);if(f)return{value:[Number.parseFloat(f[1]),Number.parseFloat(f[2]),Number.parseFloat(f[3]),Number.parseFloat(f[4])],type:`cubicBezier`};let p=C[n.toLowerCase()];return p===void 0?i===`fontFamily`||/family|font|typeface/i.test(r.at(-1)??``)?n.includes(`,`)?{value:n.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:n.replace(/^["']|["']$/g,``),type:`fontFamily`}:i===`color`&&!n.startsWith(`{`)?{value:o,type:void 0}:{value:n,type:i}:{value:p,type:`fontWeight`}}if(typeof t==`number`)return i===`fontWeight`?{value:t,type:`fontWeight`}:i===`duration`?{value:{value:t,unit:`ms`},type:`duration`}:i===`dimension`?{value:{value:t,unit:`px`},type:`dimension`}:{value:t,type:i??`number`};if(Array.isArray(t))return t.length===4&&t.every(e=>typeof e==`number`)&&(i===`cubicBezier`||r.some(e=>/ease|bezier/i.test(e)))?{value:t,type:`cubicBezier`}:t.every(e=>typeof e==`string`)?{value:t,type:i??`fontFamily`}:{value:t,type:i};if(n(t)){if(`colorSpace`in t&&`components`in t)return{value:t,type:`color`};if(`value`in t&&`unit`in t){let e=String(t.unit).toLowerCase();return e===`ms`||e===`s`?{value:t,type:`duration`}:w.has(e)?{value:t,type:`dimension`}:{value:t,type:i}}}return{value:t,type:i}}function ge(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),typeof n.$type==`string`&&(n.$type=x(n.$type)),`$value`in n){let e=O(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function k(e,r=[]){if(Array.isArray(e))return e.map((e,t)=>k(e,[...r,String(t)]));if(!n(e))return e;if(t(e))return ge(e,r);let i={};for(let[t,n]of Object.entries(e)){if(t.startsWith(`$`)){i[t]=n;continue}i[t]=k(n,[...r,t])}if(typeof i.$type==`string`)i.$type=x(i.$type);else if(!(`$type`in i)){let e=D(r);e&&r.length>0&&(i.$type=e)}return i}function A(e){let r={};for(let[i,a]of Object.entries(e)){let e=i.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(e.length===0)continue;let o=r;for(let r=0;r<e.length-1;r++){let i=e[r],a=o[i];n(a)?t(a)&&(o[i]={DEFAULT:a}):o[i]={},o=o[i]}let s=e.at(-1),c=O(a,e),l={$value:c.value,...c.type?{$type:c.type}:{}},u=o[s];n(u)&&!t(u)?u.DEFAULT=l:o[s]=l}return k(r)}const _e=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function j(e){let t={},n=e.split(` `).join(` `).replace(/\s*\{\s*/g,` {
2
+ `).replace(/;\s*/g,`;
3
+ `).replace(/,\s*/g,`, `).replace(/ *\}\s*/g,`}
4
+ `).replace(/\}\s*(.+)/g,`}
5
+ $1`).replace(/\n {4}([^:]+):\s*/g,`
6
+ $1: `).replace(/([a-z0-9-)])\}/gi,`$1;
7
+ }`).replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(_e)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return A(t)}function M(e){return e?{verbosity:ee.verbose}:{}}const N=`razorwind-infer`;function P(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return k(e)}function F(e){try{return P(te.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function I(e){try{return P(re(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function ve(e){try{return P(ne(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const L=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>F(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>I(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>ve(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>k(j(e))}];function R(){return Object.fromEntries(L.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function z(e){return k(e)}function B(){return{[N]:z}}function V(e=[]){let t={...R()},n={...B()},r=[...m],i=[N],a=0,o=0;for(let s of e){for(let e of s.parsers??[]){let n=e.name??`${s.name}-parser-${a}`;t[n]={pattern:e.pattern,parser:({contents:t})=>e.parser(t)},r.push(n),a++}for(let e of s.preprocessors??[]){let t=u(e)?{name:`${s.name}-preprocessor-${o}`,preprocessor:e}:{name:e.name??`${s.name}-preprocessor-${o}`,preprocessor:e.preprocessor};n[t.name]=t.preprocessor,i.push(t.name),o++}}return{parsers:t,preprocessors:n,parserNames:r,preprocessorNames:i}}function H(e=[],t=p){let n=V(e);if(typeof t.registerParser==`function`)for(let[e,r]of Object.entries(n.parsers))t.registerParser({name:e,...r});if(typeof t.registerPreprocessor==`function`)for(let[e,r]of Object.entries(n.preprocessors))t.registerPreprocessor({name:e,preprocessor:r});return n}const ye=H;function U(e,t){return i(t)?t:a(e,t)}function W(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function G(e){return h.includes(W(e))}function K(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function q(e){return c(e,_)}function be(e){return Array.isArray(e)?e.filter(l):l(e)?[e]:[]}const xe=/[*?[\]{}]/;function Se(e){return xe.test(e)}function Ce(e){let t=e.search(/[*?[{]/);if(t<=0)return;let n=e.slice(0,t).replace(/[/\\]+$/,``);return n.length>0?n:void 0}function we(e,t){let n=U(e,t);if(Se(t)){let e=Ce(n);if(e&&!o(e))throw Error(`tokensPath "${t}" does not exist (resolved: ${n}).`);return{resolvedPath:n,source:[n],isStyleDictionaryConfig:!1}}if(!o(n))throw Error(`tokensPath "${t}" does not exist (resolved: ${n}).`);return s(n)?{resolvedPath:n,source:[q(n)],isStyleDictionaryConfig:!1}:K(n)?{resolvedPath:n,source:[],isStyleDictionaryConfig:!0}:{resolvedPath:n,source:[n],isStyleDictionaryConfig:!1}}function J(e){let{cwd:t,tokensPath:n,fallbackPaths:r=[]}=e,i=be(n);if(i.length>0){let e=i.map(e=>we(t,e)),n=e.filter(e=>e.isStyleDictionaryConfig);if(n.length>0){if(e.length>1)throw Error(`tokensPath cannot mix Style Dictionary config files with other token sources.`);return{resolvedPath:n[0].resolvedPath,source:[],origin:`tokensPath`}}return{resolvedPath:e[0]?.resolvedPath,source:e.flatMap(e=>e.source),origin:`tokensPath`}}for(let e of g){let n=U(t,e);if(o(n)){if(s(n))return{resolvedPath:n,source:[q(n)],origin:`default`};if(K(n))return{resolvedPath:n,source:[],origin:`default`};if(G(n))return{resolvedPath:n,source:[n],origin:`default`}}}for(let e of r){if(!e)continue;let n=U(t,e);if(!(!o(n)||s(n))&&(G(n)||W(n)===`css`))return{resolvedPath:n,source:[n],origin:`fallback`}}return{source:[],origin:`none`}}function Y(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(v)?.[1]?.toLowerCase()}function Te(e){let t=e,n=new Set;for(;t!=null&&!n.has(t);){if(n.add(t),typeof t==`function`)return t;if(typeof t==`object`&&`default`in t){t=t.default;continue}break}throw TypeError(`style-dictionary did not export a constructable StyleDictionary class.`)}const Ee=Te(p);function X(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function De(e){let t=await d(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function Z(e,t){let n=V(e.plugins),r=new Ee({...t,parsers:[...n.parserNames,...t.parsers??[]],preprocessors:[...n.preprocessorNames,...t.preprocessors??[]],hooks:{...t.hooks,parsers:{...n.parsers,...t.hooks?.parsers},preprocessors:{...n.preprocessors,...t.hooks?.preprocessors}},usesDtcg:t.usesDtcg??!0,platforms:t.platforms??{}},M(e.verbose));return await r.hasInitialized,r}async function Q(e,t){return t.length===0?{}:(await Z(e,{source:t})).tokens}async function Oe(e){return(await f(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function ke(e,t){let n=await Oe(t);if(n.length===0)return{};let r=new Map,i=[];for(let e of n){let t=Y(e);if(t){let n=r.get(t)??[];n.push(e),r.set(t,n)}else i.push(e)}if(r.size<2)return Q(e,t);let a={};if(i.length>0){let t=await Q(e,i);X(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Q(e,[...i,...n]);return a}async function $(e){let t=J(e.options);return t.resolvedPath&&o(t.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test(r(t.resolvedPath))?(e.sd=await Z(e.options,await De(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?ke(e.options,t.source):Q(e.options,t.source)}async function Ae(e){let t=await $(e);if(X(t)){let{tokensPath:t}=e.options,n=Array.isArray(t)?t.length>0?`tokensPath=[${t.map(e=>`"${e}"`).join(`, `)}]`:`default token paths / CSS fallbacks`:l(t)?`tokensPath="${t}"`:`default token paths / CSS fallbacks`;throw Error(`No design tokens found via ${n}. Provide tokensPath or add a tokens file.`)}return t}export{m as C,x as E,h as S,y as T,A as _,Y as a,v as b,R as c,H as d,ye as f,O as g,D as h,J as i,B as l,j as m,$ as n,N as o,M as p,Ae as r,V as s,X as t,z as u,k as v,b as w,_ as x,g as y};
8
+ //# sourceMappingURL=tokens-EpUlVCAl.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens-EpUlVCAl.mjs","names":[],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-3eUdyRLZ.cjs");exports.SHARED_THEME_ID=e.f,exports.TOKEN_SET_THEME_PATTERN=e.p,exports.appendThemeToFilePath=e.o,exports.applyThemeToDocuments=e.s,exports.applyThemeToTitle=e.c,exports.createDocument=e.t,exports.flattenTokens=e.m,exports.formatColorValue=e.v,exports.formatCssAliasReferences=e.y,exports.formatDimensionValue=e.b,exports.formatShadowValue=e.x,exports.formatTokenValue=e.S,exports.isObject=e.n,exports.isSharedThemeId=e.h,exports.isTokenLeaf=e.g,exports.mergeTokenTrees=e.d,exports.resolveSchemaIdentity=e.a,exports.resolveTokenSets=e._,exports.slugifyThemeName=e.u,exports.themeDisplayName=e.i,exports.titleCase=e.l,exports.toCssVar=e.r,exports.toThemeCssVar=e.C;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-gLQ_OAIF.cjs");exports.SHARED_THEME_ID=e.f,exports.TOKEN_SET_THEME_PATTERN=e.p,exports.appendThemeToFilePath=e.o,exports.applyThemeToDocuments=e.s,exports.applyThemeToTitle=e.c,exports.createDocument=e.t,exports.flattenTokens=e.m,exports.formatColorValue=e.v,exports.formatCssAliasReferences=e.y,exports.formatDimensionValue=e.b,exports.formatShadowValue=e.x,exports.formatTokenValue=e.S,exports.isObject=e.n,exports.isSharedThemeId=e.h,exports.isTokenLeaf=e.g,exports.mergeTokenTrees=e.d,exports.normalizeFunctionalColorString=e.C,exports.resolveSchemaIdentity=e.a,exports.resolveTokenSets=e._,exports.slugifyThemeName=e.u,exports.themeDisplayName=e.i,exports.titleCase=e.l,exports.toCssVar=e.r,exports.toThemeCssVar=e.w;
@@ -97,6 +97,11 @@ declare function applyThemeToDocuments(documents: Record<string, GeneratedDocume
97
97
  declare function titleCase(value: string): string;
98
98
  //#endregion
99
99
  //#region src/utils/token-format.d.ts
100
+ /**
101
+ * Trim stray closing parens from CSS functional color notation
102
+ * (e.g. `oklch(0.3 0.06 184))` → `oklch(0.3 0.06 184)`).
103
+ */
104
+ declare function normalizeFunctionalColorString(value: string): string;
100
105
  /**
101
106
  * Convert a DTCG color `$value` (string, hex/alpha object, or
102
107
  * colorSpace/components object) into a CSS-friendly color string.
@@ -146,5 +151,5 @@ declare function createDocument<TSchema, TOptions extends object>(path: string,
146
151
  name: string;
147
152
  }, appendTheme?: false | ((path: string, theme: string) => string), language?: string): GeneratorFunctionResult<TSchema, TOptions>[string];
148
153
  //#endregion
149
- export { type BaseFlatToken, type FlattenTokensOptions, SHARED_THEME_ID, type SchemaIdentity, type SchemaIdentityOverrides, TOKEN_SET_THEME_PATTERN, type ThemeNamed, type TokenSet, appendThemeToFilePath, applyThemeToDocuments, applyThemeToTitle, createDocument, flattenTokens, formatColorValue, formatCssAliasReferences, formatDimensionValue, formatShadowValue, formatTokenValue, isObject, isSharedThemeId, isTokenLeaf, mergeTokenTrees, resolveSchemaIdentity, resolveTokenSets, slugifyThemeName, themeDisplayName, titleCase, toCssVar, toThemeCssVar };
154
+ export { type BaseFlatToken, type FlattenTokensOptions, SHARED_THEME_ID, type SchemaIdentity, type SchemaIdentityOverrides, TOKEN_SET_THEME_PATTERN, type ThemeNamed, type TokenSet, appendThemeToFilePath, applyThemeToDocuments, applyThemeToTitle, createDocument, flattenTokens, formatColorValue, formatCssAliasReferences, formatDimensionValue, formatShadowValue, formatTokenValue, isObject, isSharedThemeId, isTokenLeaf, mergeTokenTrees, normalizeFunctionalColorString, resolveSchemaIdentity, resolveTokenSets, slugifyThemeName, themeDisplayName, titleCase, toCssVar, toThemeCssVar };
150
155
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/utils/merge-tokens.ts","../../src/utils/schema-identity.ts","../../src/utils/slugify-theme-name.ts","../../src/utils/theme-display-name.ts","../../src/utils/theme-output.ts","../../src/utils/title-case.ts","../../src/utils/token-format.ts","../../src/utils/index.ts"],"mappings":";;;;;;;;;;;;iBAiCgB,gBAAgB,UAAU,QAAQ,MAAM,SAAS;;;;UCVhD;EACf;EACA;EACA;EACA;EACA;EACA;;;;;;UAOe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;;;;;iBAec,sBACd,MAAM,KACJ,0FASF,YAAW,0BACV;;;;;;;;;iBC7Ca,iBAAiB;;;;UCLhB;EACf;EACA;;;;;;iBAOc,iBAAiB,OAAO;;;;;;;;;iBCDxB,kBACd,2BACA;;;;;;;iBAoBc,sBAAsB,kBAAkB;;;;;iBAkBxC,sBACd,WAAW,eAAe,oBAC1B,gBACC,eAAe;;;;;;;;;;iBC7CF,UAAU;;;;;;;iBCCV,iBAAiB;;;;;iBAuDjB,qBAAqB;;;;;iBA+CrB,kBAAkB;;;;;;;iBAyBlB,cAAc;;;;;iBAgBd,yBAAyB;;;;;iBAWzB,iBAAiB,gBAAgB;;;iBClKjC,SAAS,iBAAiB,SAAS;;;;;;;iBA8CnC,SAAS,cAAc;;;;iBAavB,eAAe,SAAS,yBACtC,cACA,iBACA;EAAQ;GACR,wBAAwB,cAAc,2BACtC,oBACC,wBAAwB,SAAS"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/utils/merge-tokens.ts","../../src/utils/schema-identity.ts","../../src/utils/slugify-theme-name.ts","../../src/utils/theme-display-name.ts","../../src/utils/theme-output.ts","../../src/utils/title-case.ts","../../src/utils/token-format.ts","../../src/utils/index.ts"],"mappings":";;;;;;;;;;;;iBAiCgB,gBAAgB,UAAU,QAAQ,MAAM,SAAS;;;;UCVhD;EACf;EACA;EACA;EACA;EACA;EACA;;;;;;UAOe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;;;;;iBAec,sBACd,MAAM,KACJ,0FASF,YAAW,0BACV;;;;;;;;;iBC7Ca,iBAAiB;;;;UCLhB;EACf;EACA;;;;;;iBAOc,iBAAiB,OAAO;;;;;;;;;iBCDxB,kBACd,2BACA;;;;;;;iBAoBc,sBAAsB,kBAAkB;;;;;iBAkBxC,sBACd,WAAW,eAAe,oBAC1B,gBACC,eAAe;;;;;;;;;;iBC7CF,UAAU;;;;;;;iBCGV,+BAA+B;;;;;iBAsB/B,iBAAiB;;;;;iBAuDjB,qBAAqB;;;;;iBA+CrB,kBAAkB;;;;;;;iBAyBlB,cAAc;;;;;iBAgBd,yBAAyB;;;;;iBAWzB,iBAAiB,gBAAgB;;;iBC1LjC,SAAS,iBAAiB,SAAS;;;;;;;iBA+CnC,SAAS,cAAc;;;;iBAavB,eAAe,SAAS,yBACtC,cACA,iBACA;EAAQ;GACR,wBAAwB,cAAc,2BACtC,oBACC,wBAAwB,SAAS"}
@@ -97,6 +97,11 @@ declare function applyThemeToDocuments(documents: Record<string, GeneratedDocume
97
97
  declare function titleCase(value: string): string;
98
98
  //#endregion
99
99
  //#region src/utils/token-format.d.ts
100
+ /**
101
+ * Trim stray closing parens from CSS functional color notation
102
+ * (e.g. `oklch(0.3 0.06 184))` → `oklch(0.3 0.06 184)`).
103
+ */
104
+ declare function normalizeFunctionalColorString(value: string): string;
100
105
  /**
101
106
  * Convert a DTCG color `$value` (string, hex/alpha object, or
102
107
  * colorSpace/components object) into a CSS-friendly color string.
@@ -146,5 +151,5 @@ declare function createDocument<TSchema, TOptions extends object>(path: string,
146
151
  name: string;
147
152
  }, appendTheme?: false | ((path: string, theme: string) => string), language?: string): GeneratorFunctionResult<TSchema, TOptions>[string];
148
153
  //#endregion
149
- export { type BaseFlatToken, type FlattenTokensOptions, SHARED_THEME_ID, type SchemaIdentity, type SchemaIdentityOverrides, TOKEN_SET_THEME_PATTERN, type ThemeNamed, type TokenSet, appendThemeToFilePath, applyThemeToDocuments, applyThemeToTitle, createDocument, flattenTokens, formatColorValue, formatCssAliasReferences, formatDimensionValue, formatShadowValue, formatTokenValue, isObject, isSharedThemeId, isTokenLeaf, mergeTokenTrees, resolveSchemaIdentity, resolveTokenSets, slugifyThemeName, themeDisplayName, titleCase, toCssVar, toThemeCssVar };
154
+ export { type BaseFlatToken, type FlattenTokensOptions, SHARED_THEME_ID, type SchemaIdentity, type SchemaIdentityOverrides, TOKEN_SET_THEME_PATTERN, type ThemeNamed, type TokenSet, appendThemeToFilePath, applyThemeToDocuments, applyThemeToTitle, createDocument, flattenTokens, formatColorValue, formatCssAliasReferences, formatDimensionValue, formatShadowValue, formatTokenValue, isObject, isSharedThemeId, isTokenLeaf, mergeTokenTrees, normalizeFunctionalColorString, resolveSchemaIdentity, resolveTokenSets, slugifyThemeName, themeDisplayName, titleCase, toCssVar, toThemeCssVar };
150
155
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b,x,y as S}from"../utils-CMqr6G7v.mjs";export{s as SHARED_THEME_ID,h as TOKEN_SET_THEME_PATTERN,m as appendThemeToFilePath,_ as applyThemeToDocuments,a as applyThemeToTitle,v as createDocument,f as flattenTokens,b as formatColorValue,S as formatCssAliasReferences,i as formatDimensionValue,x as formatShadowValue,t as formatTokenValue,p as isObject,l as isSharedThemeId,c as isTokenLeaf,o as mergeTokenTrees,r as resolveSchemaIdentity,n as resolveTokenSets,y as slugifyThemeName,u as themeDisplayName,d as titleCase,g as toCssVar,e as toThemeCssVar};
1
+ import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b,w as x,x as S,y as C}from"../utils-KDezR5p2.mjs";export{s as SHARED_THEME_ID,h as TOKEN_SET_THEME_PATTERN,m as appendThemeToFilePath,_ as applyThemeToDocuments,a as applyThemeToTitle,v as createDocument,f as flattenTokens,b as formatColorValue,C as formatCssAliasReferences,i as formatDimensionValue,S as formatShadowValue,t as formatTokenValue,p as isObject,l as isSharedThemeId,c as isTokenLeaf,o as mergeTokenTrees,e as normalizeFunctionalColorString,r as resolveSchemaIdentity,n as resolveTokenSets,y as slugifyThemeName,u as themeDisplayName,d as titleCase,g as toCssVar,x as toThemeCssVar};
@@ -0,0 +1,2 @@
1
+ import{isObject as e}from"@stryke/type-checks/is-object";import{format as t,parse as n}from"node:path";import{kebabCase as r}from"@stryke/string-format/kebab-case";import{titleCase as i}from"@stryke/string-format/title-case";function a(t){return e(t)}const o=/^(?:oklch|oklab|hsl|hsla|rgb|rgba)\(/i;function s(e){let t=e.trim();if(!o.test(t))return t;let n=t;for(;n.endsWith(`)`)&&(n.match(/\(/g)?.length??0)<(n.match(/\)/g)?.length??0);)n=n.slice(0,-1);return n}function c(e){if(typeof e==`string`)return s(e);if(!a(e))return;if(typeof e.hex==`string`){let t=typeof e.alpha==`number`&&e.alpha<1?Math.round(e.alpha*255).toString(16).padStart(2,`0`):``;return`${e.hex}${t}`}let t=typeof e.colorSpace==`string`?e.colorSpace:void 0,n=Array.isArray(e.components)?e.components:void 0;if(!t||!n)return;let r=typeof e.alpha==`number`&&e.alpha<1?` / ${e.alpha}`:``;if(t===`srgb`&&n.length>=3){let[e,t,i]=n;if(typeof e==`number`&&typeof t==`number`&&typeof i==`number`)return`rgb(${Math.round(e*255)} ${Math.round(t*255)} ${Math.round(i*255)}${r})`}return`${t}(${n.map(e=>String(e)).join(` `)}${r})`}function l(e){if(typeof e==`number`)return String(e);if(typeof e==`string`)return e;if(a(e)&&typeof e.value==`number`&&typeof e.unit==`string`)return`${e.value}${e.unit}`}function u(e){return a(e)&&`offsetX`in e&&`offsetY`in e}function d(e){let t=l(e.offsetX)??`0`,n=l(e.offsetY)??`0`,r=l(e.blur),i=e.spread===void 0?void 0:l(e.spread),a=c(e.color);return[e.inset===!0?`inset`:void 0,t,n,r,i,a].filter(e=>e!=null&&e!==``).join(` `)}function f(e){if(Array.isArray(e))return e.length===0||!e.every(u)?void 0:h(e.map(d).join(`, `));if(u(e))return h(d(e))}const p=/\{([^{}]+)\}/g;function m(e){return`--${e.split(`.`).filter(Boolean).filter((e,t,n)=>e!==`DEFAULT`||t!==n.length-1).join(`-`)}`}function h(e){return e.replace(p,(e,t)=>`var(${m(t.trim())})`)}function g(e,t){if(typeof e==`string`)return h(s(e));if(typeof e==`number`||typeof e==`boolean`)return String(e);if(t===`color`||!t&&a(e)&&`colorSpace`in e){let t=c(e);if(t)return t}if(t===`dimension`||t===`duration`||a(e)&&`value`in e&&`unit`in e){let t=l(e);if(t)return t}if(t===`cubicBezier`&&Array.isArray(e))return`cubic-bezier(${e.join(`, `)})`;if(t===`shadow`||u(e)||Array.isArray(e)&&e.some(u)){let t=f(e);if(t)return t}if(Array.isArray(e))return e.map(e=>g(e)).join(`, `);if(a(e)){let t=c(e);if(t)return t;let n=l(e);if(n)return n}try{return JSON.stringify(e)}catch{return String(e)}}function _(t){return e(t)}const v=/^(?:light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)(?:[A-Z]\w*|[._-].+)?$/i,y=`base`,b=/^base(?:[A-Z]\w*|[._-].+)?$/i;function x(e){return b.test(e)}function S(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function C(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function w(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function T(e){if(`$value`in e)return e.$value;if(`value`in e)return e.value;if(typeof e.$ref==`string`)return e.$ref;if(typeof e.ref==`string`)return e.ref}function E(e,t,n,r,i,a){if(!_(e))return;let o=w(e,n);if(S(e)){let n=T(e),s={path:t.join(`.`),type:o,value:n,cssValue:g(n,o),description:C(e),theme:r};a.push(i?i(s):s);return}for(let[n,s]of Object.entries(e))n.startsWith(`$`)||E(s,[...t,n],o,r,i,a)}function D(e){if(!_(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));if(t.length>0&&t.every(e=>v.test(e))){let n=e;return t.map(e=>({id:e,tokens:n[e]}))}return[{id:`default`,tokens:e}]}function O(e,t={}){let n=t.includeTypes?new Set(t.includeTypes):void 0,r=[];for(let n of D(e)){let e=n.id==="default"?void 0:n.id;E(n.tokens,[],void 0,e,t.enrichToken,r)}return n?r.filter(e=>!e.type||n.has(e.type)):r}function k(t){return e(t)}function A(e,t){return j(e,t)}function j(e,t){if(!k(t))return e;if(!k(e))return e??t;if(S(t)||S(e))return e;let n={...t};for(let[t,r]of Object.entries(e)){if(t.startsWith(`$`)){n[t]=r;continue}n[t]=t in n?j(r,n[t]):r}return n}function M(e){return r(e)}function N(e){return i(e)}function P(e,t){if(!e||!t)return e;let n=` (${N(t)})`;return e.endsWith(n)?e:`${e}${n}`}function F(e,r){let i=n(e);return i.name?t({root:i.root,dir:i.dir,ext:i.ext,name:`${i.name}-${M(r)}`}):e}function I(e,t){let n={};for(let[r,i]of Object.entries(e)){let e=i?.meta?.data?.appendTheme,a=e===!1?!1:typeof e==`function`?e:F,o=a===!1?i.path?i.path:r:a(i.path?i.path:r,t);n[o]={...i,path:o}}return n}function L(e){let t=e.lastIndexOf(`/`);return t>=0?e.slice(t+1):e}function R(e,t={}){let n=t.name??e.name,r=P(t.displayName??t.title??e.title??(n?N(L(n)):void 0),e.theme),i=t.description??e.description,a=t.repository??e.repository,o=t.homepage??e.homepage,s=t.icon??t.logo??e.logo;return{...n?{name:n}:{},...r?{title:r}:{},...i?{description:i}:{},...a?{repository:a}:{},...o?{homepage:o}:{},...s?{logo:s}:{}}}function z(e){return e.displayName??N(e.name)}function B(t){return e(t)}function V(e,t){return`--${t}-${e.split(`.`).filter(Boolean).join(`-`).replaceAll(/[^\w-]+/g,`-`)}`}function H(e,t,n,r,i){return{path:e,language:i,meta:{...n,data:r===void 0?void 0:{appendTheme:r}},chunks:[{content:t,meta:n}]}}export{s as C,g as S,D as _,R as a,l as b,P as c,A as d,y as f,S as g,x as h,z as i,N as l,O as m,B as n,F as o,v as p,V as r,I as s,H as t,M as u,c as v,m as w,f as x,h as y};
2
+ //# sourceMappingURL=utils-KDezR5p2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-KDezR5p2.mjs","names":[],"sources":[],"mappings":""}
@@ -0,0 +1 @@
1
+ let e=require("@stryke/type-checks/is-object"),t=require("node:path"),n=require("@stryke/string-format/kebab-case"),r=require("@stryke/string-format/title-case");function i(t){return(0,e.isObject)(t)}const a=/^(?:oklch|oklab|hsl|hsla|rgb|rgba)\(/i;function o(e){let t=e.trim();if(!a.test(t))return t;let n=t;for(;n.endsWith(`)`)&&(n.match(/\(/g)?.length??0)<(n.match(/\)/g)?.length??0);)n=n.slice(0,-1);return n}function s(e){if(typeof e==`string`)return o(e);if(!i(e))return;if(typeof e.hex==`string`){let t=typeof e.alpha==`number`&&e.alpha<1?Math.round(e.alpha*255).toString(16).padStart(2,`0`):``;return`${e.hex}${t}`}let t=typeof e.colorSpace==`string`?e.colorSpace:void 0,n=Array.isArray(e.components)?e.components:void 0;if(!t||!n)return;let r=typeof e.alpha==`number`&&e.alpha<1?` / ${e.alpha}`:``;if(t===`srgb`&&n.length>=3){let[e,t,i]=n;if(typeof e==`number`&&typeof t==`number`&&typeof i==`number`)return`rgb(${Math.round(e*255)} ${Math.round(t*255)} ${Math.round(i*255)}${r})`}return`${t}(${n.map(e=>String(e)).join(` `)}${r})`}function c(e){if(typeof e==`number`)return String(e);if(typeof e==`string`)return e;if(i(e)&&typeof e.value==`number`&&typeof e.unit==`string`)return`${e.value}${e.unit}`}function l(e){return i(e)&&`offsetX`in e&&`offsetY`in e}function u(e){let t=c(e.offsetX)??`0`,n=c(e.offsetY)??`0`,r=c(e.blur),i=e.spread===void 0?void 0:c(e.spread),a=s(e.color);return[e.inset===!0?`inset`:void 0,t,n,r,i,a].filter(e=>e!=null&&e!==``).join(` `)}function d(e){if(Array.isArray(e))return e.length===0||!e.every(l)?void 0:m(e.map(u).join(`, `));if(l(e))return m(u(e))}const f=/\{([^{}]+)\}/g;function p(e){return`--${e.split(`.`).filter(Boolean).filter((e,t,n)=>e!==`DEFAULT`||t!==n.length-1).join(`-`)}`}function m(e){return e.replace(f,(e,t)=>`var(${p(t.trim())})`)}function h(e,t){if(typeof e==`string`)return m(o(e));if(typeof e==`number`||typeof e==`boolean`)return String(e);if(t===`color`||!t&&i(e)&&`colorSpace`in e){let t=s(e);if(t)return t}if(t===`dimension`||t===`duration`||i(e)&&`value`in e&&`unit`in e){let t=c(e);if(t)return t}if(t===`cubicBezier`&&Array.isArray(e))return`cubic-bezier(${e.join(`, `)})`;if(t===`shadow`||l(e)||Array.isArray(e)&&e.some(l)){let t=d(e);if(t)return t}if(Array.isArray(e))return e.map(e=>h(e)).join(`, `);if(i(e)){let t=s(e);if(t)return t;let n=c(e);if(n)return n}try{return JSON.stringify(e)}catch{return String(e)}}function g(t){return(0,e.isObject)(t)}const _=/^(?:light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)(?:[A-Z]\w*|[._-].+)?$/i,v=/^base(?:[A-Z]\w*|[._-].+)?$/i;function y(e){return v.test(e)}function b(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function x(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function S(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function C(e){if(`$value`in e)return e.$value;if(`value`in e)return e.value;if(typeof e.$ref==`string`)return e.$ref;if(typeof e.ref==`string`)return e.ref}function w(e,t,n,r,i,a){if(!g(e))return;let o=S(e,n);if(b(e)){let n=C(e),s={path:t.join(`.`),type:o,value:n,cssValue:h(n,o),description:x(e),theme:r};a.push(i?i(s):s);return}for(let[n,s]of Object.entries(e))n.startsWith(`$`)||w(s,[...t,n],o,r,i,a)}function T(e){if(!g(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));if(t.length>0&&t.every(e=>_.test(e))){let n=e;return t.map(e=>({id:e,tokens:n[e]}))}return[{id:`default`,tokens:e}]}function E(e,t={}){let n=t.includeTypes?new Set(t.includeTypes):void 0,r=[];for(let n of T(e)){let e=n.id==="default"?void 0:n.id;w(n.tokens,[],void 0,e,t.enrichToken,r)}return n?r.filter(e=>!e.type||n.has(e.type)):r}function D(t){return(0,e.isObject)(t)}function O(e,t){return k(e,t)}function k(e,t){if(!D(t))return e;if(!D(e))return e??t;if(b(t)||b(e))return e;let n={...t};for(let[t,r]of Object.entries(e)){if(t.startsWith(`$`)){n[t]=r;continue}n[t]=t in n?k(r,n[t]):r}return n}function A(e){return(0,n.kebabCase)(e)}function j(e){return(0,r.titleCase)(e)}function M(e,t){if(!e||!t)return e;let n=` (${j(t)})`;return e.endsWith(n)?e:`${e}${n}`}function N(e,n){let r=(0,t.parse)(e);return r.name?(0,t.format)({root:r.root,dir:r.dir,ext:r.ext,name:`${r.name}-${A(n)}`}):e}function P(e,t){let n={};for(let[r,i]of Object.entries(e)){let e=i?.meta?.data?.appendTheme,a=e===!1?!1:typeof e==`function`?e:N,o=a===!1?i.path?i.path:r:a(i.path?i.path:r,t);n[o]={...i,path:o}}return n}function F(e){let t=e.lastIndexOf(`/`);return t>=0?e.slice(t+1):e}function I(e,t={}){let n=t.name??e.name,r=M(t.displayName??t.title??e.title??(n?j(F(n)):void 0),e.theme),i=t.description??e.description,a=t.repository??e.repository,o=t.homepage??e.homepage,s=t.icon??t.logo??e.logo;return{...n?{name:n}:{},...r?{title:r}:{},...i?{description:i}:{},...a?{repository:a}:{},...o?{homepage:o}:{},...s?{logo:s}:{}}}function L(e){return e.displayName??j(e.name)}function R(t){return(0,e.isObject)(t)}function z(e,t){return`--${t}-${e.split(`.`).filter(Boolean).join(`-`).replaceAll(/[^\w-]+/g,`-`)}`}function B(e,t,n,r,i){return{path:e,language:i,meta:{...n,data:r===void 0?void 0:{appendTheme:r}},chunks:[{content:t,meta:n}]}}Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return`base`}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return m}});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@razorwind/core",
3
- "version": "0.0.49",
3
+ "version": "0.0.51",
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"],
@@ -159,5 +159,5 @@
159
159
  "typescript": "^6.0.3"
160
160
  },
161
161
  "publishConfig": { "access": "public" },
162
- "gitHead": "8dc94fb22937f30d41e97f3c6ecff7f45eb81202"
162
+ "gitHead": "3a51456206724861cda83c344cb35ffcb8b3b8f1"
163
163
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-B1rsPTVV.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-jPfyBr8C.d.cts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":";;;;;;;;;;;;;;;UAgCiB;EACf;EACA,SAAS;EACT,SAAS,qBAAqB;;;;;;;;;KAUpB;EAEN;EACA,eAAe,YAAY,uBAAuB;MAElD,YAAY,uBAAuB;;;;;;;;;UAUxB;;;;;;;EAOf;;;;;;EAOA,UAAU;;;;;;EAOV,gBAAgB;;;;;;;;EAShB,WAAW,MAAM,QAAQ,QAAQ,WAAW,aAAa;;;;;;;;EASzD,YACE,MAAM,QACN,QAAQ,WACL,aAAa,eAAe;;;;;;;;EASjC,YAAY,MAAM,QAAQ,QAAQ,WAAW;;;;UCrF9B;;;;;;;;;;;;;;;;;;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-DBrXhsY0.d.mts","names":[],"sources":["../src/plugin.ts"],"mappings":""}
@@ -1,7 +0,0 @@
1
- const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./utils-3eUdyRLZ.cjs");let n=require("node:path"),r=require("@stryke/fs/exists"),i=require("@stryke/fs/is-file"),a=require("@stryke/path/join"),o=require("@stryke/type-checks/is-set-string"),s=require("@stryke/type-checks/is-function"),c=require("@stryke/fs/resolve"),l=require("fast-glob");l=e.t(l,1);let u=require("style-dictionary");u=e.t(u,1);let d=require("style-dictionary/enums"),f=require("json5");f=e.t(f,1);let ee=require("smol-toml"),te=require("yaml");const p=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],m=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],ne=m.join(`,`),h=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],g=`**/*.{${ne}}`,_=/^(light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)([._-].+)?$/i,v={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},y={size:`dimension`,sizes:`dimension`,sizing:`dimension`,space:`dimension`,spacing:`dimension`,radii:`dimension`,rounded:`dimension`,colour:`color`,colours:`color`,colors:`color`,fontweight:`fontWeight`,"font-weight":`fontWeight`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadows:`shadow`,elevation:`shadow`,gradients:`gradient`,durations:`duration`,time:`duration`,delay:`duration`};function b(e){return y[e.toLowerCase()]??e}const re=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,ie=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,ae=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,x=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,oe=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,se=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,ce=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,le=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,ue=/^\{[^{}]+\}$/,de={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},S=new Set([`px`,`rem`]);function C(e){return Math.min(1,Math.max(0,e))}function w(e,t=100){let n=e.trim();if(n.endsWith(`%`))return C(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return C(r>1?r/255:r)}function fe(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function T(e){let t=fe(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function pe(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function E(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=v[n];if(r)return r}}function D(e,n=[]){let r=E(n);if(typeof e==`string`){let t=e.trim();if(ue.test(t))return{value:t,type:r};let i=t.match(le);if(i?.[1])return{value:pe(i[1]),type:r};if(re.test(t))return{value:T(t),type:`color`};let a=t.match(ie);if(a){let e=[w(a[1]),w(a[2]),w(a[3])],t=a[4]?a[4].endsWith(`%`)?C(Number.parseFloat(a[4])/100):C(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=t.match(ae);if(o)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(o[1]),Number.parseFloat(o[2]),Number.parseFloat(o[3])],...o[4]?{alpha:o[4].endsWith(`%`)?C(Number.parseFloat(o[4])/100):C(Number.parseFloat(o[4]))}:{}},type:`color`};let s=t.match(x);if(s){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(s[1]),e(s[2]),e(s[3])],...s[4]?{alpha:s[4].endsWith(`%`)?C(Number.parseFloat(s[4])/100):C(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=t.match(oe);if(c){let e=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return S.has(e)?{value:{value:n,unit:e},type:`dimension`}:{value:t,type:r===`dimension`?void 0:r}}let l=t.match(se);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=t.match(ce);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=de[t.toLowerCase()];return d===void 0?r===`fontFamily`||/family|font|typeface/i.test(n.at(-1)??``)?t.includes(`,`)?{value:t.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:t.replace(/^["']|["']$/g,``),type:`fontFamily`}:r===`color`&&!t.startsWith(`{`)?{value:t,type:void 0}:{value:t,type:r}:{value:d,type:`fontWeight`}}if(typeof e==`number`)return r===`fontWeight`?{value:e,type:`fontWeight`}:r===`duration`?{value:{value:e,unit:`ms`},type:`duration`}:r===`dimension`?{value:{value:e,unit:`px`},type:`dimension`}:{value:e,type:r??`number`};if(Array.isArray(e))return e.length===4&&e.every(e=>typeof e==`number`)&&(r===`cubicBezier`||n.some(e=>/ease|bezier/i.test(e)))?{value:e,type:`cubicBezier`}:e.every(e=>typeof e==`string`)?{value:e,type:r??`fontFamily`}:{value:e,type:r};if(t.n(e)){if(`colorSpace`in e&&`components`in e)return{value:e,type:`color`};if(`value`in e&&`unit`in e){let t=String(e.unit).toLowerCase();return t===`ms`||t===`s`?{value:e,type:`duration`}:S.has(t)?{value:e,type:`dimension`}:{value:e,type:r}}}return{value:e,type:r}}function me(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),typeof n.$type==`string`&&(n.$type=b(n.$type)),`$value`in n){let e=D(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function O(e,n=[]){if(Array.isArray(e))return e.map((e,t)=>O(e,[...n,String(t)]));if(!t.n(e))return e;if(t.g(e))return me(e,n);let r={};for(let[t,i]of Object.entries(e)){if(t.startsWith(`$`)){r[t]=i;continue}r[t]=O(i,[...n,t])}if(typeof r.$type==`string`)r.$type=b(r.$type);else if(!(`$type`in r)){let e=E(n);e&&n.length>0&&(r.$type=e)}return r}function k(e){let n={};for(let[r,i]of Object.entries(e)){let e=r.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(e.length===0)continue;let a=n;for(let n=0;n<e.length-1;n++){let r=e[n],i=a[r];t.n(i)?t.g(i)&&(a[r]={DEFAULT:i}):a[r]={},a=a[r]}let o=e.at(-1),s=D(i,e),c={$value:s.value,...s.type?{$type:s.type}:{}},l=a[o];t.n(l)&&!t.g(l)?l.DEFAULT=c:a[o]=c}return O(n)}const he=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function A(e){let t={},n=e.split(` `).join(` `).replace(/\s*\{\s*/g,` {
2
- `).replace(/;\s*/g,`;
3
- `).replace(/,\s*/g,`, `).replace(/ *\}\s*/g,`}
4
- `).replace(/\}\s*(.+)/g,`}
5
- $1`).replace(/\n {4}([^:]+):\s*/g,`
6
- $1: `).replace(/([a-z0-9-)])\}/gi,`$1;
7
- }`).replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(he)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return k(t)}function j(e){return e?{verbosity:d.logVerbosityLevels.verbose}:{}}const M=`razorwind-infer`;function N(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return O(e)}function P(e){try{return N(f.default.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function F(e){try{return N((0,te.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function I(e){try{return N((0,ee.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const L=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>P(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>F(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>I(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>O(A(e))}];function R(){return Object.fromEntries(L.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function z(e){return O(e)}function B(){return{[M]:z}}function V(e=[]){let t={...R()},n={...B()},r=[...p],i=[M],a=0,o=0;for(let c of e){for(let e of c.parsers??[]){let n=e.name??`${c.name}-parser-${a}`;t[n]={pattern:e.pattern,parser:({contents:t})=>e.parser(t)},r.push(n),a++}for(let e of c.preprocessors??[]){let t=(0,s.isFunction)(e)?{name:`${c.name}-preprocessor-${o}`,preprocessor:e}:{name:e.name??`${c.name}-preprocessor-${o}`,preprocessor:e.preprocessor};n[t.name]=t.preprocessor,i.push(t.name),o++}}return{parsers:t,preprocessors:n,parserNames:r,preprocessorNames:i}}function H(e=[],t=u.default){let n=V(e);if(typeof t.registerParser==`function`)for(let[e,r]of Object.entries(n.parsers))t.registerParser({name:e,...r});if(typeof t.registerPreprocessor==`function`)for(let[e,r]of Object.entries(n.preprocessors))t.registerPreprocessor({name:e,preprocessor:r});return n}const ge=H;function U(e,t){return(0,n.isAbsolute)(t)?t:(0,n.resolve)(e,t)}function W(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function G(e){return m.includes(W(e))}function K(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function q(e){return(0,a.joinPaths)(e,g)}function _e(e){return Array.isArray(e)?e.filter(o.isSetString):(0,o.isSetString)(e)?[e]:[]}const ve=/[*?[\]{}]/;function ye(e){return ve.test(e)}function be(e){let t=e.search(/[*?[{]/);if(t<=0)return;let n=e.slice(0,t).replace(/[/\\]+$/,``);return n.length>0?n:void 0}function xe(e,t){let n=U(e,t);if(ye(t)){let e=be(n);if(e&&!(0,r.existsSync)(e))throw Error(`tokensPath "${t}" does not exist (resolved: ${n}).`);return{resolvedPath:n,source:[n],isStyleDictionaryConfig:!1}}if(!(0,r.existsSync)(n))throw Error(`tokensPath "${t}" does not exist (resolved: ${n}).`);return(0,i.isDirectory)(n)?{resolvedPath:n,source:[q(n)],isStyleDictionaryConfig:!1}:K(n)?{resolvedPath:n,source:[],isStyleDictionaryConfig:!0}:{resolvedPath:n,source:[n],isStyleDictionaryConfig:!1}}function J(e){let{cwd:t,tokensPath:n,fallbackPaths:a=[]}=e,o=_e(n);if(o.length>0){let e=o.map(e=>xe(t,e)),n=e.filter(e=>e.isStyleDictionaryConfig);if(n.length>0){if(e.length>1)throw Error(`tokensPath cannot mix Style Dictionary config files with other token sources.`);return{resolvedPath:n[0].resolvedPath,source:[],origin:`tokensPath`}}return{resolvedPath:e[0]?.resolvedPath,source:e.flatMap(e=>e.source),origin:`tokensPath`}}for(let e of h){let n=U(t,e);if((0,r.existsSync)(n)){if((0,i.isDirectory)(n))return{resolvedPath:n,source:[q(n)],origin:`default`};if(K(n))return{resolvedPath:n,source:[],origin:`default`};if(G(n))return{resolvedPath:n,source:[n],origin:`default`}}}for(let e of a){if(!e)continue;let n=U(t,e);if(!(!(0,r.existsSync)(n)||(0,i.isDirectory)(n))&&(G(n)||W(n)===`css`))return{resolvedPath:n,source:[n],origin:`fallback`}}return{source:[],origin:`none`}}function Y(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(_)?.[1]?.toLowerCase()}function Se(e){let t=e,n=new Set;for(;t!=null&&!n.has(t);){if(n.add(t),typeof t==`function`)return t;if(typeof t==`object`&&`default`in t){t=t.default;continue}break}throw TypeError(`style-dictionary did not export a constructable StyleDictionary class.`)}const Ce=Se(u.default);function X(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function we(e){let t=await(0,c.importModule)(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function Z(e,t){let n=V(e.plugins),r=new Ce({...t,parsers:[...n.parserNames,...t.parsers??[]],preprocessors:[...n.preprocessorNames,...t.preprocessors??[]],hooks:{...t.hooks,parsers:{...n.parsers,...t.hooks?.parsers},preprocessors:{...n.preprocessors,...t.hooks?.preprocessors}},usesDtcg:t.usesDtcg??!0,platforms:t.platforms??{}},j(e.verbose));return await r.hasInitialized,r}async function Q(e,t){return t.length===0?{}:(await Z(e,{source:t})).tokens}async function Te(e){return(await(0,l.default)(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function Ee(e,t){let n=await Te(t);if(n.length===0)return{};let r=new Map,i=[];for(let e of n){let t=Y(e);if(t){let n=r.get(t)??[];n.push(e),r.set(t,n)}else i.push(e)}if(r.size<2)return Q(e,t);let a={};if(i.length>0){let t=await Q(e,i);X(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Q(e,[...i,...n]);return a}async function $(e){let t=J(e.options);return t.resolvedPath&&(0,r.existsSync)(t.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test((0,n.basename)(t.resolvedPath))?(e.sd=await Z(e.options,await we(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?Ee(e.options,t.source):Q(e.options,t.source)}async function De(e){let t=await $(e);if(X(t)){let{tokensPath:t}=e.options,n=Array.isArray(t)?t.length>0?`tokensPath=[${t.map(e=>`"${e}"`).join(`, `)}]`:`default token paths / CSS fallbacks`:(0,o.isSetString)(t)?`tokensPath="${t}"`:`default token paths / CSS fallbacks`;throw Error(`No design tokens found via ${n}. Provide tokensPath or add a tokens file.`)}return t}Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return h}});
@@ -1,8 +0,0 @@
1
- import{g as e,n as t}from"./utils-CMqr6G7v.mjs";import{basename as n,isAbsolute as r,resolve as i}from"node:path";import{existsSync as a}from"@stryke/fs/exists";import{isDirectory as o}from"@stryke/fs/is-file";import{joinPaths as s}from"@stryke/path/join";import{isSetString as c}from"@stryke/type-checks/is-set-string";import{isFunction as l}from"@stryke/type-checks/is-function";import{importModule as u}from"@stryke/fs/resolve";import d from"fast-glob";import f from"style-dictionary";import{logVerbosityLevels as ee}from"style-dictionary/enums";import te from"json5";import{parse as ne}from"smol-toml";import{parse as re}from"yaml";const p=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],m=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],ie=m.join(`,`),h=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],g=`**/*.{${ie}}`,_=/^(light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)([._-].+)?$/i,v={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},y={size:`dimension`,sizes:`dimension`,sizing:`dimension`,space:`dimension`,spacing:`dimension`,radii:`dimension`,rounded:`dimension`,colour:`color`,colours:`color`,colors:`color`,fontweight:`fontWeight`,"font-weight":`fontWeight`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadows:`shadow`,elevation:`shadow`,gradients:`gradient`,durations:`duration`,time:`duration`,delay:`duration`};function b(e){return y[e.toLowerCase()]??e}const ae=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,oe=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,se=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,ce=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,x=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,S=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,le=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,ue=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,de=/^\{[^{}]+\}$/,fe={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},C=new Set([`px`,`rem`]);function w(e){return Math.min(1,Math.max(0,e))}function T(e,t=100){let n=e.trim();if(n.endsWith(`%`))return w(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return w(r>1?r/255:r)}function pe(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function me(e){let t=pe(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function he(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function E(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=v[n];if(r)return r}}function D(e,n=[]){let r=E(n);if(typeof e==`string`){let t=e.trim();if(de.test(t))return{value:t,type:r};let i=t.match(ue);if(i?.[1])return{value:he(i[1]),type:r};if(ae.test(t))return{value:me(t),type:`color`};let a=t.match(oe);if(a){let e=[T(a[1]),T(a[2]),T(a[3])],t=a[4]?a[4].endsWith(`%`)?w(Number.parseFloat(a[4])/100):w(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=t.match(se);if(o)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(o[1]),Number.parseFloat(o[2]),Number.parseFloat(o[3])],...o[4]?{alpha:o[4].endsWith(`%`)?w(Number.parseFloat(o[4])/100):w(Number.parseFloat(o[4]))}:{}},type:`color`};let s=t.match(ce);if(s){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(s[1]),e(s[2]),e(s[3])],...s[4]?{alpha:s[4].endsWith(`%`)?w(Number.parseFloat(s[4])/100):w(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=t.match(x);if(c){let e=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return C.has(e)?{value:{value:n,unit:e},type:`dimension`}:{value:t,type:r===`dimension`?void 0:r}}let l=t.match(S);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=t.match(le);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=fe[t.toLowerCase()];return d===void 0?r===`fontFamily`||/family|font|typeface/i.test(n.at(-1)??``)?t.includes(`,`)?{value:t.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:t.replace(/^["']|["']$/g,``),type:`fontFamily`}:r===`color`&&!t.startsWith(`{`)?{value:t,type:void 0}:{value:t,type:r}:{value:d,type:`fontWeight`}}if(typeof e==`number`)return r===`fontWeight`?{value:e,type:`fontWeight`}:r===`duration`?{value:{value:e,unit:`ms`},type:`duration`}:r===`dimension`?{value:{value:e,unit:`px`},type:`dimension`}:{value:e,type:r??`number`};if(Array.isArray(e))return e.length===4&&e.every(e=>typeof e==`number`)&&(r===`cubicBezier`||n.some(e=>/ease|bezier/i.test(e)))?{value:e,type:`cubicBezier`}:e.every(e=>typeof e==`string`)?{value:e,type:r??`fontFamily`}:{value:e,type:r};if(t(e)){if(`colorSpace`in e&&`components`in e)return{value:e,type:`color`};if(`value`in e&&`unit`in e){let t=String(e.unit).toLowerCase();return t===`ms`||t===`s`?{value:e,type:`duration`}:C.has(t)?{value:e,type:`dimension`}:{value:e,type:r}}}return{value:e,type:r}}function ge(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),typeof n.$type==`string`&&(n.$type=b(n.$type)),`$value`in n){let e=D(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function O(n,r=[]){if(Array.isArray(n))return n.map((e,t)=>O(e,[...r,String(t)]));if(!t(n))return n;if(e(n))return ge(n,r);let i={};for(let[e,t]of Object.entries(n)){if(e.startsWith(`$`)){i[e]=t;continue}i[e]=O(t,[...r,e])}if(typeof i.$type==`string`)i.$type=b(i.$type);else if(!(`$type`in i)){let e=E(r);e&&r.length>0&&(i.$type=e)}return i}function k(n){let r={};for(let[i,a]of Object.entries(n)){let n=i.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(n.length===0)continue;let o=r;for(let r=0;r<n.length-1;r++){let i=n[r],a=o[i];t(a)?e(a)&&(o[i]={DEFAULT:a}):o[i]={},o=o[i]}let s=n.at(-1),c=D(a,n),l={$value:c.value,...c.type?{$type:c.type}:{}},u=o[s];t(u)&&!e(u)?u.DEFAULT=l:o[s]=l}return O(r)}const _e=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function A(e){let t={},n=e.split(` `).join(` `).replace(/\s*\{\s*/g,` {
2
- `).replace(/;\s*/g,`;
3
- `).replace(/,\s*/g,`, `).replace(/ *\}\s*/g,`}
4
- `).replace(/\}\s*(.+)/g,`}
5
- $1`).replace(/\n {4}([^:]+):\s*/g,`
6
- $1: `).replace(/([a-z0-9-)])\}/gi,`$1;
7
- }`).replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(_e)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return k(t)}function j(e){return e?{verbosity:ee.verbose}:{}}const M=`razorwind-infer`;function N(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return O(e)}function P(e){try{return N(te.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function F(e){try{return N(re(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function I(e){try{return N(ne(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const ve=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>P(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>F(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>I(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>O(A(e))}];function L(){return Object.fromEntries(ve.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function R(e){return O(e)}function z(){return{[M]:R}}function B(e=[]){let t={...L()},n={...z()},r=[...p],i=[M],a=0,o=0;for(let s of e){for(let e of s.parsers??[]){let n=e.name??`${s.name}-parser-${a}`;t[n]={pattern:e.pattern,parser:({contents:t})=>e.parser(t)},r.push(n),a++}for(let e of s.preprocessors??[]){let t=l(e)?{name:`${s.name}-preprocessor-${o}`,preprocessor:e}:{name:e.name??`${s.name}-preprocessor-${o}`,preprocessor:e.preprocessor};n[t.name]=t.preprocessor,i.push(t.name),o++}}return{parsers:t,preprocessors:n,parserNames:r,preprocessorNames:i}}function V(e=[],t=f){let n=B(e);if(typeof t.registerParser==`function`)for(let[e,r]of Object.entries(n.parsers))t.registerParser({name:e,...r});if(typeof t.registerPreprocessor==`function`)for(let[e,r]of Object.entries(n.preprocessors))t.registerPreprocessor({name:e,preprocessor:r});return n}const ye=V;function H(e,t){return r(t)?t:i(e,t)}function U(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function W(e){return m.includes(U(e))}function G(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function K(e){return s(e,g)}function be(e){return Array.isArray(e)?e.filter(c):c(e)?[e]:[]}const xe=/[*?[\]{}]/;function Se(e){return xe.test(e)}function Ce(e){let t=e.search(/[*?[{]/);if(t<=0)return;let n=e.slice(0,t).replace(/[/\\]+$/,``);return n.length>0?n:void 0}function we(e,t){let n=H(e,t);if(Se(t)){let e=Ce(n);if(e&&!a(e))throw Error(`tokensPath "${t}" does not exist (resolved: ${n}).`);return{resolvedPath:n,source:[n],isStyleDictionaryConfig:!1}}if(!a(n))throw Error(`tokensPath "${t}" does not exist (resolved: ${n}).`);return o(n)?{resolvedPath:n,source:[K(n)],isStyleDictionaryConfig:!1}:G(n)?{resolvedPath:n,source:[],isStyleDictionaryConfig:!0}:{resolvedPath:n,source:[n],isStyleDictionaryConfig:!1}}function q(e){let{cwd:t,tokensPath:n,fallbackPaths:r=[]}=e,i=be(n);if(i.length>0){let e=i.map(e=>we(t,e)),n=e.filter(e=>e.isStyleDictionaryConfig);if(n.length>0){if(e.length>1)throw Error(`tokensPath cannot mix Style Dictionary config files with other token sources.`);return{resolvedPath:n[0].resolvedPath,source:[],origin:`tokensPath`}}return{resolvedPath:e[0]?.resolvedPath,source:e.flatMap(e=>e.source),origin:`tokensPath`}}for(let e of h){let n=H(t,e);if(a(n)){if(o(n))return{resolvedPath:n,source:[K(n)],origin:`default`};if(G(n))return{resolvedPath:n,source:[],origin:`default`};if(W(n))return{resolvedPath:n,source:[n],origin:`default`}}}for(let e of r){if(!e)continue;let n=H(t,e);if(!(!a(n)||o(n))&&(W(n)||U(n)===`css`))return{resolvedPath:n,source:[n],origin:`fallback`}}return{source:[],origin:`none`}}function J(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(_)?.[1]?.toLowerCase()}function Y(e){let t=e,n=new Set;for(;t!=null&&!n.has(t);){if(n.add(t),typeof t==`function`)return t;if(typeof t==`object`&&`default`in t){t=t.default;continue}break}throw TypeError(`style-dictionary did not export a constructable StyleDictionary class.`)}const Te=Y(f);function X(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function Ee(e){let t=await u(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function Z(e,t){let n=B(e.plugins),r=new Te({...t,parsers:[...n.parserNames,...t.parsers??[]],preprocessors:[...n.preprocessorNames,...t.preprocessors??[]],hooks:{...t.hooks,parsers:{...n.parsers,...t.hooks?.parsers},preprocessors:{...n.preprocessors,...t.hooks?.preprocessors}},usesDtcg:t.usesDtcg??!0,platforms:t.platforms??{}},j(e.verbose));return await r.hasInitialized,r}async function Q(e,t){return t.length===0?{}:(await Z(e,{source:t})).tokens}async function De(e){return(await d(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function Oe(e,t){let n=await De(t);if(n.length===0)return{};let r=new Map,i=[];for(let e of n){let t=J(e);if(t){let n=r.get(t)??[];n.push(e),r.set(t,n)}else i.push(e)}if(r.size<2)return Q(e,t);let a={};if(i.length>0){let t=await Q(e,i);X(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Q(e,[...i,...n]);return a}async function $(e){let t=q(e.options);return t.resolvedPath&&a(t.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test(n(t.resolvedPath))?(e.sd=await Z(e.options,await Ee(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?Oe(e.options,t.source):Q(e.options,t.source)}async function ke(e){let t=await $(e);if(X(t)){let{tokensPath:t}=e.options,n=Array.isArray(t)?t.length>0?`tokensPath=[${t.map(e=>`"${e}"`).join(`, `)}]`:`default token paths / CSS fallbacks`:c(t)?`tokensPath="${t}"`:`default token paths / CSS fallbacks`;throw Error(`No design tokens found via ${n}. Provide tokensPath or add a tokens file.`)}return t}export{p as C,b as E,m as S,v as T,k as _,J as a,_ as b,L as c,V as d,ye as f,D as g,E as h,q as i,z as l,A as m,$ as n,M as o,j as p,ke as r,B as s,X as t,R as u,O as v,y as w,g as x,h as y};
8
- //# sourceMappingURL=tokens-C_RYVqap.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens-C_RYVqap.mjs","names":[],"sources":[],"mappings":""}
@@ -1 +0,0 @@
1
- let e=require("@stryke/type-checks/is-object"),t=require("node:path"),n=require("@stryke/string-format/kebab-case"),r=require("@stryke/string-format/title-case");function i(t){return(0,e.isObject)(t)}function a(e){if(typeof e==`string`)return e;if(!i(e))return;if(typeof e.hex==`string`){let t=typeof e.alpha==`number`&&e.alpha<1?Math.round(e.alpha*255).toString(16).padStart(2,`0`):``;return`${e.hex}${t}`}let t=typeof e.colorSpace==`string`?e.colorSpace:void 0,n=Array.isArray(e.components)?e.components:void 0;if(!t||!n)return;let r=typeof e.alpha==`number`&&e.alpha<1?` / ${e.alpha}`:``;if(t===`srgb`&&n.length>=3){let[e,t,i]=n;if(typeof e==`number`&&typeof t==`number`&&typeof i==`number`)return`rgb(${Math.round(e*255)} ${Math.round(t*255)} ${Math.round(i*255)}${r})`}return`${t}(${n.map(e=>String(e)).join(` `)}${r})`}function o(e){if(typeof e==`number`)return String(e);if(typeof e==`string`)return e;if(i(e)&&typeof e.value==`number`&&typeof e.unit==`string`)return`${e.value}${e.unit}`}function s(e){return i(e)&&`offsetX`in e&&`offsetY`in e}function c(e){let t=o(e.offsetX)??`0`,n=o(e.offsetY)??`0`,r=o(e.blur),i=e.spread===void 0?void 0:o(e.spread),s=a(e.color);return[e.inset===!0?`inset`:void 0,t,n,r,i,s].filter(e=>e!=null&&e!==``).join(` `)}function l(e){if(Array.isArray(e))return e.length===0||!e.every(s)?void 0:f(e.map(c).join(`, `));if(s(e))return f(c(e))}const u=/\{([^{}]+)\}/g;function d(e){return`--${e.split(`.`).filter(Boolean).filter((e,t,n)=>e!==`DEFAULT`||t!==n.length-1).join(`-`)}`}function f(e){return e.replace(u,(e,t)=>`var(${d(t.trim())})`)}function p(e,t){if(typeof e==`string`)return f(e);if(typeof e==`number`||typeof e==`boolean`)return String(e);if(t===`color`||!t&&i(e)&&`colorSpace`in e){let t=a(e);if(t)return t}if(t===`dimension`||t===`duration`||i(e)&&`value`in e&&`unit`in e){let t=o(e);if(t)return t}if(t===`cubicBezier`&&Array.isArray(e))return`cubic-bezier(${e.join(`, `)})`;if(t===`shadow`||s(e)||Array.isArray(e)&&e.some(s)){let t=l(e);if(t)return t}if(Array.isArray(e))return e.map(e=>p(e)).join(`, `);if(i(e)){let t=a(e);if(t)return t;let n=o(e);if(n)return n}try{return JSON.stringify(e)}catch{return String(e)}}function m(t){return(0,e.isObject)(t)}const h=/^(?:light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)(?:[A-Z]\w*|[._-].+)?$/i,g=/^base(?:[A-Z]\w*|[._-].+)?$/i;function _(e){return g.test(e)}function v(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function y(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function b(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function x(e){if(`$value`in e)return e.$value;if(`value`in e)return e.value;if(typeof e.$ref==`string`)return e.$ref;if(typeof e.ref==`string`)return e.ref}function S(e,t,n,r,i,a){if(!m(e))return;let o=b(e,n);if(v(e)){let n=x(e),s={path:t.join(`.`),type:o,value:n,cssValue:p(n,o),description:y(e),theme:r};a.push(i?i(s):s);return}for(let[n,s]of Object.entries(e))n.startsWith(`$`)||S(s,[...t,n],o,r,i,a)}function C(e){if(!m(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));if(t.length>0&&t.every(e=>h.test(e))){let n=e;return t.map(e=>({id:e,tokens:n[e]}))}return[{id:`default`,tokens:e}]}function w(e,t={}){let n=t.includeTypes?new Set(t.includeTypes):void 0,r=[];for(let n of C(e)){let e=n.id==="default"?void 0:n.id;S(n.tokens,[],void 0,e,t.enrichToken,r)}return n?r.filter(e=>!e.type||n.has(e.type)):r}function T(t){return(0,e.isObject)(t)}function E(e,t){return D(e,t)}function D(e,t){if(!T(t))return e;if(!T(e))return e??t;if(v(t)||v(e))return e;let n={...t};for(let[t,r]of Object.entries(e)){if(t.startsWith(`$`)){n[t]=r;continue}n[t]=t in n?D(r,n[t]):r}return n}function O(e){return(0,n.kebabCase)(e)}function k(e){return(0,r.titleCase)(e)}function A(e,t){if(!e||!t)return e;let n=` (${k(t)})`;return e.endsWith(n)?e:`${e}${n}`}function j(e,n){let r=(0,t.parse)(e);return r.name?(0,t.format)({root:r.root,dir:r.dir,ext:r.ext,name:`${r.name}-${O(n)}`}):e}function M(e,t){let n={};for(let[r,i]of Object.entries(e)){let e=i?.meta?.data?.appendTheme&&typeof i.meta.data.appendTheme==`function`?i.meta.data.appendTheme:j,a=e===!1?i.path?i.path:r:e(i.path?i.path:r,t);n[a]={...i,path:a}}return n}function N(e){let t=e.lastIndexOf(`/`);return t>=0?e.slice(t+1):e}function P(e,t={}){let n=t.name??e.name,r=A(t.displayName??t.title??e.title??(n?k(N(n)):void 0),e.theme),i=t.description??e.description,a=t.repository??e.repository,o=t.homepage??e.homepage,s=t.icon??t.logo??e.logo;return{...n?{name:n}:{},...r?{title:r}:{},...i?{description:i}:{},...a?{repository:a}:{},...o?{homepage:o}:{},...s?{logo:s}:{}}}function F(e){return e.displayName??k(e.name)}function I(t){return(0,e.isObject)(t)}function L(e,t){return`--${t}-${e.split(`.`).filter(Boolean).join(`-`).replaceAll(/[^\w-]+/g,`-`)}`}function R(e,t,n,r,i){return{path:e,language:i,meta:{...n,data:r===!1?void 0:{appendTheme:r}},chunks:[{content:t,meta:n}]}}Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return`base`}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return f}});
@@ -1,2 +0,0 @@
1
- import{isObject as e}from"@stryke/type-checks/is-object";import{format as t,parse as n}from"node:path";import{kebabCase as r}from"@stryke/string-format/kebab-case";import{titleCase as i}from"@stryke/string-format/title-case";function a(t){return e(t)}function o(e){if(typeof e==`string`)return e;if(!a(e))return;if(typeof e.hex==`string`){let t=typeof e.alpha==`number`&&e.alpha<1?Math.round(e.alpha*255).toString(16).padStart(2,`0`):``;return`${e.hex}${t}`}let t=typeof e.colorSpace==`string`?e.colorSpace:void 0,n=Array.isArray(e.components)?e.components:void 0;if(!t||!n)return;let r=typeof e.alpha==`number`&&e.alpha<1?` / ${e.alpha}`:``;if(t===`srgb`&&n.length>=3){let[e,t,i]=n;if(typeof e==`number`&&typeof t==`number`&&typeof i==`number`)return`rgb(${Math.round(e*255)} ${Math.round(t*255)} ${Math.round(i*255)}${r})`}return`${t}(${n.map(e=>String(e)).join(` `)}${r})`}function s(e){if(typeof e==`number`)return String(e);if(typeof e==`string`)return e;if(a(e)&&typeof e.value==`number`&&typeof e.unit==`string`)return`${e.value}${e.unit}`}function c(e){return a(e)&&`offsetX`in e&&`offsetY`in e}function l(e){let t=s(e.offsetX)??`0`,n=s(e.offsetY)??`0`,r=s(e.blur),i=e.spread===void 0?void 0:s(e.spread),a=o(e.color);return[e.inset===!0?`inset`:void 0,t,n,r,i,a].filter(e=>e!=null&&e!==``).join(` `)}function u(e){if(Array.isArray(e))return e.length===0||!e.every(c)?void 0:p(e.map(l).join(`, `));if(c(e))return p(l(e))}const d=/\{([^{}]+)\}/g;function f(e){return`--${e.split(`.`).filter(Boolean).filter((e,t,n)=>e!==`DEFAULT`||t!==n.length-1).join(`-`)}`}function p(e){return e.replace(d,(e,t)=>`var(${f(t.trim())})`)}function m(e,t){if(typeof e==`string`)return p(e);if(typeof e==`number`||typeof e==`boolean`)return String(e);if(t===`color`||!t&&a(e)&&`colorSpace`in e){let t=o(e);if(t)return t}if(t===`dimension`||t===`duration`||a(e)&&`value`in e&&`unit`in e){let t=s(e);if(t)return t}if(t===`cubicBezier`&&Array.isArray(e))return`cubic-bezier(${e.join(`, `)})`;if(t===`shadow`||c(e)||Array.isArray(e)&&e.some(c)){let t=u(e);if(t)return t}if(Array.isArray(e))return e.map(e=>m(e)).join(`, `);if(a(e)){let t=o(e);if(t)return t;let n=s(e);if(n)return n}try{return JSON.stringify(e)}catch{return String(e)}}function h(t){return e(t)}const g=/^(?:light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)(?:[A-Z]\w*|[._-].+)?$/i,_=`base`,v=/^base(?:[A-Z]\w*|[._-].+)?$/i;function y(e){return v.test(e)}function b(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function x(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function S(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function C(e){if(`$value`in e)return e.$value;if(`value`in e)return e.value;if(typeof e.$ref==`string`)return e.$ref;if(typeof e.ref==`string`)return e.ref}function w(e,t,n,r,i,a){if(!h(e))return;let o=S(e,n);if(b(e)){let n=C(e),s={path:t.join(`.`),type:o,value:n,cssValue:m(n,o),description:x(e),theme:r};a.push(i?i(s):s);return}for(let[n,s]of Object.entries(e))n.startsWith(`$`)||w(s,[...t,n],o,r,i,a)}function T(e){if(!h(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));if(t.length>0&&t.every(e=>g.test(e))){let n=e;return t.map(e=>({id:e,tokens:n[e]}))}return[{id:`default`,tokens:e}]}function E(e,t={}){let n=t.includeTypes?new Set(t.includeTypes):void 0,r=[];for(let n of T(e)){let e=n.id==="default"?void 0:n.id;w(n.tokens,[],void 0,e,t.enrichToken,r)}return n?r.filter(e=>!e.type||n.has(e.type)):r}function D(t){return e(t)}function O(e,t){return k(e,t)}function k(e,t){if(!D(t))return e;if(!D(e))return e??t;if(b(t)||b(e))return e;let n={...t};for(let[t,r]of Object.entries(e)){if(t.startsWith(`$`)){n[t]=r;continue}n[t]=t in n?k(r,n[t]):r}return n}function A(e){return r(e)}function j(e){return i(e)}function M(e,t){if(!e||!t)return e;let n=` (${j(t)})`;return e.endsWith(n)?e:`${e}${n}`}function N(e,r){let i=n(e);return i.name?t({root:i.root,dir:i.dir,ext:i.ext,name:`${i.name}-${A(r)}`}):e}function P(e,t){let n={};for(let[r,i]of Object.entries(e)){let e=i?.meta?.data?.appendTheme&&typeof i.meta.data.appendTheme==`function`?i.meta.data.appendTheme:N,a=e===!1?i.path?i.path:r:e(i.path?i.path:r,t);n[a]={...i,path:a}}return n}function F(e){let t=e.lastIndexOf(`/`);return t>=0?e.slice(t+1):e}function I(e,t={}){let n=t.name??e.name,r=M(t.displayName??t.title??e.title??(n?j(F(n)):void 0),e.theme),i=t.description??e.description,a=t.repository??e.repository,o=t.homepage??e.homepage,s=t.icon??t.logo??e.logo;return{...n?{name:n}:{},...r?{title:r}:{},...i?{description:i}:{},...a?{repository:a}:{},...o?{homepage:o}:{},...s?{logo:s}:{}}}function L(e){return e.displayName??j(e.name)}function R(t){return e(t)}function z(e,t){return`--${t}-${e.split(`.`).filter(Boolean).join(`-`).replaceAll(/[^\w-]+/g,`-`)}`}function B(e,t,n,r,i){return{path:e,language:i,meta:{...n,data:r===!1?void 0:{appendTheme:r}},chunks:[{content:t,meta:n}]}}export{f as C,m as S,T as _,I as a,s as b,M as c,O as d,_ as f,b as g,y as h,L as i,j as l,E as m,R as n,N as o,g as p,z as r,P as s,B as t,A as u,o as v,u as x,p as y};
2
- //# sourceMappingURL=utils-CMqr6G7v.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-CMqr6G7v.mjs","names":[],"sources":[],"mappings":""}