@razorwind/core 0.0.48 → 0.0.49

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 (56) hide show
  1. package/dist/{config-CNTGHrST.d.mts → config-B1rsPTVV.d.mts} +2 -2
  2. package/dist/config-B1rsPTVV.d.mts.map +1 -0
  3. package/dist/{config-BtscEr7S.d.cts → config-jPfyBr8C.d.cts} +2 -2
  4. package/dist/{config-BtscEr7S.d.cts.map → config-jPfyBr8C.d.cts.map} +1 -1
  5. package/dist/{flatten-tokens-CMlVe_J6.d.cts → flatten-tokens-DWbPW_3z.d.cts} +12 -2
  6. package/dist/flatten-tokens-DWbPW_3z.d.cts.map +1 -0
  7. package/dist/{flatten-tokens-DgTPHEhI.d.mts → flatten-tokens-Dz4e2IHx.d.mts} +12 -2
  8. package/dist/flatten-tokens-Dz4e2IHx.d.mts.map +1 -0
  9. package/dist/{index-CzjDptav.d.mts → index-52XD5ztc.d.mts} +11 -3
  10. package/dist/{index-CzjDptav.d.mts.map → index-52XD5ztc.d.mts.map} +1 -1
  11. package/dist/{index-B7MsziQp.d.cts → index-D6x2Pe2v.d.cts} +11 -3
  12. package/dist/index-D6x2Pe2v.d.cts.map +1 -0
  13. package/dist/{index-Di7vqmsi.d.cts → index-VmrytwDm.d.cts} +2 -2
  14. package/dist/{index-Di7vqmsi.d.cts.map → index-VmrytwDm.d.cts.map} +1 -1
  15. package/dist/{index-CzbZzpnz.d.mts → index-nRnX_NsH.d.mts} +2 -2
  16. package/dist/{index-CzbZzpnz.d.mts.map → index-nRnX_NsH.d.mts.map} +1 -1
  17. package/dist/index.cjs +1 -1
  18. package/dist/index.d.cts +14 -8
  19. package/dist/index.d.cts.map +1 -1
  20. package/dist/index.d.mts +14 -8
  21. package/dist/index.mjs +1 -1
  22. package/dist/lib/fonts/index.d.cts +1 -1
  23. package/dist/lib/fonts/index.d.mts +1 -1
  24. package/dist/lib/tokens/index.cjs +1 -1
  25. package/dist/lib/tokens/index.d.cts +2 -2
  26. package/dist/lib/tokens/index.d.mts +2 -2
  27. package/dist/lib/tokens/index.mjs +1 -1
  28. package/dist/{plugin-0UYp_yIy.d.cts → plugin-CSC1jRVg.d.cts} +2 -2
  29. package/dist/{plugin-0UYp_yIy.d.cts.map → plugin-CSC1jRVg.d.cts.map} +1 -1
  30. package/dist/{plugin-CH6vFnxu.d.mts → plugin-DBrXhsY0.d.mts} +2 -2
  31. package/dist/plugin-DBrXhsY0.d.mts.map +1 -0
  32. package/dist/plugin.d.cts +2 -2
  33. package/dist/plugin.d.mts +2 -2
  34. package/dist/tokens-BjB6F0P1.cjs +7 -0
  35. package/dist/tokens-C_RYVqap.mjs +8 -0
  36. package/dist/tokens-C_RYVqap.mjs.map +1 -0
  37. package/dist/utils/index.cjs +1 -1
  38. package/dist/utils/index.d.cts +20 -3
  39. package/dist/utils/index.d.cts.map +1 -1
  40. package/dist/utils/index.d.mts +20 -3
  41. package/dist/utils/index.mjs +1 -1
  42. package/dist/utils-3eUdyRLZ.cjs +1 -0
  43. package/dist/utils-CMqr6G7v.mjs +2 -0
  44. package/dist/utils-CMqr6G7v.mjs.map +1 -0
  45. package/package.json +2 -2
  46. package/dist/config-CNTGHrST.d.mts.map +0 -1
  47. package/dist/flatten-tokens-CMlVe_J6.d.cts.map +0 -1
  48. package/dist/flatten-tokens-DgTPHEhI.d.mts.map +0 -1
  49. package/dist/index-B7MsziQp.d.cts.map +0 -1
  50. package/dist/plugin-CH6vFnxu.d.mts.map +0 -1
  51. package/dist/tokens-By75va9Y.cjs +0 -7
  52. package/dist/tokens-DFYNBFFR.mjs +0 -8
  53. package/dist/tokens-DFYNBFFR.mjs.map +0 -1
  54. package/dist/utils-CDYdsyyW.mjs +0 -2
  55. package/dist/utils-CDYdsyyW.mjs.map +0 -1
  56. package/dist/utils-DyK4l_bT.cjs +0 -1
@@ -179,7 +179,7 @@ interface Options {
179
179
  *
180
180
  * The basename is optionally followed by a suffix separated by `.`, `_`, or `-` (for example `light.json`, `dark-mode.tokens.json`, `theme.custom.yaml`).
181
181
  *
182
- * Files that match are grouped under that theme key. Non-theme files are merged into a shared `base` entry when at least two distinct themes are detected, and are also included when resolving each theme so references into shared primitives succeed. If fewer than two themes are found, all sources are merged into a single {@link Tokens} object instead of a record.
182
+ * Files that match are grouped under that theme key. Non-theme files are merged into a shared `base` entry when at least two distinct themes are detected, and are also included when resolving each theme so references into shared primitives succeed. The shared `base` set (and color-variant expansions such as `baseDimmed`) is omitted from generated output. If fewer than two themes are found, all sources are merged into a single {@link Tokens} object instead of a record.
183
183
  *
184
184
  * When `false`, every source file is merged into one flat {@link Tokens} object regardless of filename.
185
185
  *
@@ -228,4 +228,4 @@ type Config = RequiredKeys<UserConfig, "componentsPath" | "iconsPath" | "fontsPa
228
228
  };
229
229
  //#endregion
230
230
  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-CNTGHrST.d.mts.map
231
+ //# sourceMappingURL=config-B1rsPTVV.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-B1rsPTVV.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":""}
@@ -179,7 +179,7 @@ interface Options {
179
179
  *
180
180
  * The basename is optionally followed by a suffix separated by `.`, `_`, or `-` (for example `light.json`, `dark-mode.tokens.json`, `theme.custom.yaml`).
181
181
  *
182
- * Files that match are grouped under that theme key. Non-theme files are merged into a shared `base` entry when at least two distinct themes are detected, and are also included when resolving each theme so references into shared primitives succeed. If fewer than two themes are found, all sources are merged into a single {@link Tokens} object instead of a record.
182
+ * Files that match are grouped under that theme key. Non-theme files are merged into a shared `base` entry when at least two distinct themes are detected, and are also included when resolving each theme so references into shared primitives succeed. The shared `base` set (and color-variant expansions such as `baseDimmed`) is omitted from generated output. If fewer than two themes are found, all sources are merged into a single {@link Tokens} object instead of a record.
183
183
  *
184
184
  * When `false`, every source file is merged into one flat {@link Tokens} object regardless of filename.
185
185
  *
@@ -228,4 +228,4 @@ type Config = RequiredKeys<UserConfig, "componentsPath" | "iconsPath" | "fontsPa
228
228
  };
229
229
  //#endregion
230
230
  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-BtscEr7S.d.cts.map
231
+ //# sourceMappingURL=config-jPfyBr8C.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-BtscEr7S.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
+ {"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"}
@@ -28,6 +28,16 @@ interface TokenSet {
28
28
  * camelCase suffixes from `@razorwind/color-variants` (e.g. `darkHighContrast`).
29
29
  */
30
30
  declare const TOKEN_SET_THEME_PATTERN: RegExp;
31
+ /**
32
+ * Shared primitive set produced by token loading. Already merged into each
33
+ * real theme, so it is not generated as its own output pass.
34
+ */
35
+ declare const SHARED_THEME_ID = "base";
36
+ /**
37
+ * True when `id` is the shared primitive set (`base`) or a color-variant
38
+ * expansion of it (`baseDimmed`, `base-high-contrast`, …).
39
+ */
40
+ declare function isSharedThemeId(id: string): boolean;
31
41
  /**
32
42
  * True when `node` is a DTCG token leaf rather than a nested group.
33
43
  */
@@ -50,5 +60,5 @@ interface FlattenTokensOptions<T extends BaseFlatToken = BaseFlatToken> {
50
60
  */
51
61
  declare function flattenTokens<T extends BaseFlatToken = BaseFlatToken>(tokens: Tokens | Record<string, Tokens>, options?: FlattenTokensOptions<T>): T[];
52
62
  //#endregion
53
- export { flattenTokens as a, TokenSet as i, FlattenTokensOptions as n, isTokenLeaf as o, TOKEN_SET_THEME_PATTERN as r, resolveTokenSets as s, BaseFlatToken as t };
54
- //# sourceMappingURL=flatten-tokens-CMlVe_J6.d.cts.map
63
+ export { TokenSet as a, isTokenLeaf as c, TOKEN_SET_THEME_PATTERN as i, resolveTokenSets as l, FlattenTokensOptions as n, flattenTokens as o, SHARED_THEME_ID as r, isSharedThemeId as s, BaseFlatToken as t };
64
+ //# sourceMappingURL=flatten-tokens-DWbPW_3z.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatten-tokens-DWbPW_3z.d.cts","names":[],"sources":["../src/utils/flatten-tokens.ts"],"mappings":";;;;;UA6BiB;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;UAGe;EACf;EACA,QAAQ;;;;;;;;cASG,yBAAuB;;;;;cAOvB;;;;;iBAQG,gBAAgB;;;;iBAOhB,YAAY,MAAM;;;;;;;iBAqFlB,iBACd,QAAQ,SAAS,eAAe,UAC/B;UAqBc,qBAAqB,UAAU,gBAAgB;;EAE9D;;EAEA,eAAe,OAAO,kBAAkB;;;;;iBAM1B,cAAc,UAAU,gBAAgB,eACtD,QAAQ,SAAS,eAAe,SAChC,UAAS,qBAAqB,KAC7B"}
@@ -28,6 +28,16 @@ interface TokenSet {
28
28
  * camelCase suffixes from `@razorwind/color-variants` (e.g. `darkHighContrast`).
29
29
  */
30
30
  declare const TOKEN_SET_THEME_PATTERN: RegExp;
31
+ /**
32
+ * Shared primitive set produced by token loading. Already merged into each
33
+ * real theme, so it is not generated as its own output pass.
34
+ */
35
+ declare const SHARED_THEME_ID = "base";
36
+ /**
37
+ * True when `id` is the shared primitive set (`base`) or a color-variant
38
+ * expansion of it (`baseDimmed`, `base-high-contrast`, …).
39
+ */
40
+ declare function isSharedThemeId(id: string): boolean;
31
41
  /**
32
42
  * True when `node` is a DTCG token leaf rather than a nested group.
33
43
  */
@@ -50,5 +60,5 @@ interface FlattenTokensOptions<T extends BaseFlatToken = BaseFlatToken> {
50
60
  */
51
61
  declare function flattenTokens<T extends BaseFlatToken = BaseFlatToken>(tokens: Tokens | Record<string, Tokens>, options?: FlattenTokensOptions<T>): T[];
52
62
  //#endregion
53
- export { flattenTokens as a, TokenSet as i, FlattenTokensOptions as n, isTokenLeaf as o, TOKEN_SET_THEME_PATTERN as r, resolveTokenSets as s, BaseFlatToken as t };
54
- //# sourceMappingURL=flatten-tokens-DgTPHEhI.d.mts.map
63
+ export { TokenSet as a, isTokenLeaf as c, TOKEN_SET_THEME_PATTERN as i, resolveTokenSets as l, FlattenTokensOptions as n, flattenTokens as o, SHARED_THEME_ID as r, isSharedThemeId as s, BaseFlatToken as t };
64
+ //# sourceMappingURL=flatten-tokens-Dz4e2IHx.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatten-tokens-Dz4e2IHx.d.mts","names":[],"sources":["../src/utils/flatten-tokens.ts"],"mappings":""}
@@ -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-CNTGHrST.mjs";
3
+ import { l as Plugin, t as Config } from "./config-B1rsPTVV.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";
@@ -21,6 +21,14 @@ declare const TOKEN_DIRECTORY_GLOB: string;
21
21
  declare const THEME_BASENAME_PATTERN: RegExp;
22
22
  /** Path segment hints used when inferring `$type`. */
23
23
  declare const TYPE_PATH_HINTS: Record<string, string>;
24
+ /**
25
+ * Non-DTCG `$type` aliases rewritten to canonical types during normalize.
26
+ * Distinct from {@link TYPE_PATH_HINTS}: path hints must not remap valid DTCG
27
+ * types such as `border` or `transition`.
28
+ */
29
+ declare const TYPE_ALIASES: Record<string, string>;
30
+ /** Map a token `$type` alias onto its canonical DTCG type. */
31
+ declare function canonicalizeTokenType(type: string): string;
24
32
  //#endregion
25
33
  //#region src/lib/tokens/css.d.ts
26
34
  /**
@@ -199,5 +207,5 @@ declare function registerRazorwindHooks(plugins?: Plugin[], target?: StyleDictio
199
207
  */
200
208
  declare const registerRazorwindParsers: typeof registerRazorwindHooks;
201
209
  //#endregion
202
- export { TOKEN_FILE_EXTENSIONS as A, nestFlatTokens as C, RazorwindParserName as D, DEFAULT_TOKEN_PATH_CANDIDATES as E, TYPE_PATH_HINTS as M, THEME_BASENAME_PATTERN as O, 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 };
203
- //# sourceMappingURL=index-CzjDptav.d.mts.map
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
@@ -1 +1 @@
1
- {"version":3,"file":"index-CzjDptav.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-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,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-BtscEr7S.cjs";
3
+ import { l as Plugin, t as Config } from "./config-jPfyBr8C.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";
@@ -21,6 +21,14 @@ declare const TOKEN_DIRECTORY_GLOB: string;
21
21
  declare const THEME_BASENAME_PATTERN: RegExp;
22
22
  /** Path segment hints used when inferring `$type`. */
23
23
  declare const TYPE_PATH_HINTS: Record<string, string>;
24
+ /**
25
+ * Non-DTCG `$type` aliases rewritten to canonical types during normalize.
26
+ * Distinct from {@link TYPE_PATH_HINTS}: path hints must not remap valid DTCG
27
+ * types such as `border` or `transition`.
28
+ */
29
+ declare const TYPE_ALIASES: Record<string, string>;
30
+ /** Map a token `$type` alias onto its canonical DTCG type. */
31
+ declare function canonicalizeTokenType(type: string): string;
24
32
  //#endregion
25
33
  //#region src/lib/tokens/css.d.ts
26
34
  /**
@@ -199,5 +207,5 @@ declare function registerRazorwindHooks(plugins?: Plugin[], target?: StyleDictio
199
207
  */
200
208
  declare const registerRazorwindParsers: typeof registerRazorwindHooks;
201
209
  //#endregion
202
- export { TOKEN_FILE_EXTENSIONS as A, nestFlatTokens as C, RazorwindParserName as D, DEFAULT_TOKEN_PATH_CANDIDATES as E, TYPE_PATH_HINTS as M, THEME_BASENAME_PATTERN as O, 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 };
203
- //# sourceMappingURL=index-B7MsziQp.d.cts.map
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
@@ -0,0 +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,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-BtscEr7S.cjs";
3
+ import { t as Config } from "./config-jPfyBr8C.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-Di7vqmsi.d.cts.map
100
+ //# sourceMappingURL=index-VmrytwDm.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-Di7vqmsi.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-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,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-CNTGHrST.mjs";
3
+ import { t as Config } from "./config-B1rsPTVV.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-CzbZzpnz.d.mts.map
100
+ //# sourceMappingURL=index-nRnX_NsH.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-CzbZzpnz.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-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":""}
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-DyK4l_bT.cjs"),n=require("./schema-BCofDJWf.cjs"),r=require("./fonts-CkBPEFie.cjs"),i=require("./tokens-By75va9Y.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);var re=`0.0.48`;const T=`base`;function E(e){let n=t.h(e).filter(e=>e.id!==T);return n.length>1?n:[]}function ie(e,n){let r=e.find(e=>e.id===T);return!r||n.id===T?n.tokens:t.d(n.tokens,r.tokens)}function ae(e,n,r){return{...e,theme:n.id,title:t.c(e.title,n.id)??e.title,tokens:ie(r,n)}}function oe(e,n){let r=t.c(e.title,n.id);return r?{...e,title:r}:e}async function se(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 D(e,n){let r=t.h(e.tokens),i=E(e.tokens);if(i.length===0)return se(e,n);let a={};for(let o of i){let i=await se(ae(e,o,r),oe(n,o));a=(0,s.defu)(t.s(i,o.id),a)}return a}async function O(e){let t={};for(let n of e)Object.assign(t,await D(n.spec,n.config));return t}function k(e){return!!((0,v.isSetString)(e)||(0,_.isSetObject)(e)&&`url`in e&&(0,v.isSetString)(e.url))}function A(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(),j=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),M=(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 de(e){let t=e.toLowerCase();if(j.has(t))return t}function fe(e){let t=(0,h.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&j.has(t))}function N(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 pe(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 me(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=A(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=N(a):(0,_.isSetObject)(a)&&(o=P(a),`files`in a&&(s=N(a.files)),`usage`in a&&(c=pe(a.usage)));let l=M(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function he(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=N(n);if(e)return{files:e}}if(!(0,_.isSetObject)(n))return;let r=P(n)??{},i=`files`in n?N(n.files):void 0,a=`usage`in n?pe(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 ge(e){try{return(await(0,y.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&fe(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function _e(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??de(r),a=t.name||(0,h.findFileName)(t.path,{withExtension:!1})||t.path,o=t.content===void 0?(0,u.existsSync)(n)?await(0,y.readFile)(n,`utf8`):void 0:t.content;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 ge(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=(0,g.joinPaths)(n,e),r=de((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 ve(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 ye(e){let t=await me(e),r=await he(e);if(!t&&!r)return;let i=M(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 _e(e,s.data.usage);return{...s.data,files:await ve(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 ye((0,g.joinPaths)(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const be=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 xe(e,t){return(0,c.isAbsolute)(t)?t:(0,c.resolve)(e,t)}function Se(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 Ce(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=be.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 we(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=A(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 Te(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 Ee(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 De(e){let t=await we(e),r=await Te(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 Ee(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 Oe(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=Se(e.options.iconsPath);for(let r of n){let n=xe(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(Ce(r.name)){await Oe(e,r.name,t);continue}let n=await De(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=A(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=A(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:k(e.homepage)?i.homepage=A(e.homepage):k(e.author)?i.homepage=A(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&k(e.maintainers[0])?i.homepage=A(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&k(e.contributors[0])?i.homepage=A(e.contributors[0]):k(e.bugs)&&(i.homepage=A(e.bugs)),c&&(i.logo=c),u?i.repository=u:k(e.repository)&&(i.repository=A(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 Z(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 ke(e,t){let n=await Z(e),r=X(t);return(0,s.defu)(r,n)}function Ae(e){let t=new Set;return e.filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const je=w.default.homedir();function Me(e){return Array.isArray(e)?e.filter(e=>(0,_.isSetObject)(e)):[]}function Q(e){return Array.isArray(e)||!(0,_.isSetObject)(e)?{}:{...e}}const Ne=[`tokensPath`,`componentsPath`,`iconsPath`,`fontsPath`];function Pe(e,t){let n={...e};for(let e of Ne)t[e]!=null&&delete n[e];return n}function Fe(e,t,n,r){let i=(0,s.defu)({cwd:e,envPaths:r.envPaths},Pe(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=Ae(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=Me(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:je,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:je},workspaceLayer:d,environmentLayer:Q(l?.config),homeLayer:Q(u?.config)};return o.map(n=>Fe(e,t,n,m))}async function Ie(e,t){let n=(await $(e,t))[0];if(!n)throw Error(`Unable to resolve Razorwind configuration.`);return n}async function Le(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 ke(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 Re(e,t){let n=await $(e.cwd,t),r=[];for(let t of n)e.options=t,r.push({spec:await Le(e),config:t});return r}async function ze(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}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:re,tags:[`razorwind`,`dtcg`]},schema:(0,o.defineSchema)({schema:n.t}),input:async e=>{let t=(0,o.useExecution)(),n=await Re(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 ze(n,(0,o.useExecution)().cwd)},generator:async e=>{let t=(0,o.useExecution)();return O(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_PATH_HINTS=i.w,exports.WEIGHT_FROM_SUFFIX=r.b,exports.WINDIE_PARSERS=i.C,exports.razorwindParsers=i.C,exports.copyFontFiles=r.m,exports.cssFontFamily=r.s,exports.defineConfig=Be,exports.definePlugin=a.definePlugin,exports.fontFamilyName=r.c,exports.generateAllPluginDocuments=O,exports.generatePluginDocuments=D,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=I,exports.loadFonts=r.a,exports.loadIcons=q,exports.loadSchemaMetaFromPackageJson=Z,exports.loadTokens=i.n,exports.loadTokensOrThrow=i.r,exports.mergeFonts=r.n,exports.nestFlatTokens=i._,exports.normalizeRepository=A,exports.normalizeTokenTree=i.v,exports.parseCssCustomProperties=i.m,exports.parseCssFonts=r.r,exports.parseFontFilename=r.o,exports.pickFontByRole=r.i,exports.prepareGenerationRuns=Re,exports.prepareSpec=Le,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=Ie,exports.resolveConfigs=$,exports.resolveSchemaMeta=ke,exports.resolveTokensSource=i.i,exports.schemaMetaFromConfig=X,exports.schemaMetaFromPackageJson=Y,exports.styleDictionaryLogOptions=i.p,exports.themeKeyFromPath=i.a,exports.themesForGeneration=E,exports.toGoogleFontsCssUrl=r.p,exports.uniquePlugins=Ae,exports.writeGeneratedDocuments=ze;
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=$;
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-BtscEr7S.cjs";
4
- import { i as TokenSet } from "./flatten-tokens-CMlVe_J6.cjs";
5
- import { t as definePlugin } from "./plugin-0UYp_yIy.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-Di7vqmsi.cjs";
7
- import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, 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-B7MsziQp.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";
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";
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
@@ -21,8 +21,13 @@ interface GenerationRun {
21
21
  /**
22
22
  * Theme sets that should each receive a dedicated generator pass.
23
23
  *
24
- * Returns an empty array when tokens are a single tree (or only one real
25
- * theme), so callers run plugins once against the original spec.
24
+ * Skips the shared `base` primitive set and color-variant expansions of it
25
+ * (`baseDimmed`, `base-high-contrast`, …). Those tokens are already merged
26
+ * into each real theme.
27
+ *
28
+ * Returns an empty array when tokens are a single tree (or only one named
29
+ * theme with nothing stripped), so callers run plugins once against the
30
+ * original spec.
26
31
  */
27
32
  declare function themesForGeneration(tokens: Schema["tokens"]): TokenSet[];
28
33
  /**
@@ -31,6 +36,7 @@ declare function themesForGeneration(tokens: Schema["tokens"]): TokenSet[];
31
36
  * When {@link Schema.tokens} is a multi-theme record, each theme is generated
32
37
  * separately: titles gain ` (<Theme>)`, and output file paths gain
33
38
  * `-<theme>` before the extension (`tokens.css` → `tokens-dark.css`).
39
+ * Shared `base` files (and `base*` color-variant expansions) are omitted.
34
40
  */
35
41
  declare function generatePluginDocuments(spec: Schema, config: Config): Promise<Record<string, GeneratedDocument>>;
36
42
  /**
@@ -209,5 +215,5 @@ declare module "@power-plant/core" {
209
215
  */
210
216
  declare const generator: import("@power-plant/core").GeneratorConfigObject<Schema, Options, any>;
211
217
  //#endregion
212
- export { type Config, DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, FONT_EXTENSIONS, FONT_FORMAT_FROM_EXTENSION, GENERIC_FALLBACK_FROM_ROLE, GenerationRun, type Generator, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, MONO_ROLES, type Options, type ParsedFontFilename, type Plugin, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type RenderFontCssOptions, type ResolveTokensPathOptions, type ResolvedTokensSource, SANS_ROLES, type SchemaMeta, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_PATH_HINTS, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, WEIGHT_FROM_SUFFIX, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, copyFontFiles, cssFontFamily, defineConfig, definePlugin, fontFamilyName, generateAllPluginDocuments, generatePluginDocuments, generator, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyFonts, isEmptyTokens, loadComponents, loadFonts, loadIcons, loadSchemaMetaFromPackageJson, loadTokens, loadTokensOrThrow, mergeFonts, nestFlatTokens, normalizeUrl as normalizeRepository, normalizeTokenTree, parseCssCustomProperties, parseCssFonts, parseFontFilename, pickFontByRole, prepareGenerationRuns, prepareSpec, prependFontCss, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, renderFontCss, renderGoogleFontImports, renderLocalFontFaces, resolveConfig, resolveConfigs, resolveSchemaMeta, resolveTokensSource, schemaMetaFromConfig, schemaMetaFromPackageJson, styleDictionaryLogOptions, themeKeyFromPath, themesForGeneration, toGoogleFontsCssUrl, uniquePlugins, writeGeneratedDocuments };
218
+ export { type Config, DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, FONT_EXTENSIONS, FONT_FORMAT_FROM_EXTENSION, GENERIC_FALLBACK_FROM_ROLE, GenerationRun, type Generator, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, MONO_ROLES, type Options, type ParsedFontFilename, type Plugin, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type RenderFontCssOptions, type ResolveTokensPathOptions, type ResolvedTokensSource, SANS_ROLES, type SchemaMeta, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_ALIASES, TYPE_PATH_HINTS, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, WEIGHT_FROM_SUFFIX, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, canonicalizeTokenType, copyFontFiles, cssFontFamily, defineConfig, definePlugin, fontFamilyName, generateAllPluginDocuments, generatePluginDocuments, generator, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyFonts, isEmptyTokens, loadComponents, loadFonts, loadIcons, loadSchemaMetaFromPackageJson, loadTokens, loadTokensOrThrow, mergeFonts, nestFlatTokens, normalizeUrl as normalizeRepository, normalizeTokenTree, parseCssCustomProperties, parseCssFonts, parseFontFilename, pickFontByRole, prepareGenerationRuns, prepareSpec, prependFontCss, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, renderFontCss, renderGoogleFontImports, renderLocalFontFaces, resolveConfig, resolveConfigs, resolveSchemaMeta, resolveTokensSource, schemaMetaFromConfig, schemaMetaFromPackageJson, styleDictionaryLogOptions, themeKeyFromPath, themesForGeneration, toGoogleFontsCssUrl, uniquePlugins, writeGeneratedDocuments };
213
219
  //# sourceMappingURL=index.d.cts.map
@@ -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":";;;;;;;;;;;;;;;;UAoCiB;EACf,MAAM;EACN,QAAQ;;;;;;;;iBAeM,oBAAoB,QAAQ,mBAAmB;;;;;;;;iBAqDzC,wBACpB,MAAM,QACN,QAAQ,SACP,QAAQ,eAAe;;;;;;;;;iBA6BJ,2BACpB,MAAM,kBACL,QAAQ,eAAe;;;;;;;;;iBC/FV,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;;;;;;;;;;;;;iBCqalC,eACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;;iBCjGW,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;;;;;YCDU;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":";;;;;;;;;;;;;;;;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"}
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-CNTGHrST.mjs";
4
- import { i as TokenSet } from "./flatten-tokens-DgTPHEhI.mjs";
5
- import { t as definePlugin } from "./plugin-CH6vFnxu.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-CzbZzpnz.mjs";
7
- import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, 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-CzjDptav.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";
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";
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
@@ -21,8 +21,13 @@ interface GenerationRun {
21
21
  /**
22
22
  * Theme sets that should each receive a dedicated generator pass.
23
23
  *
24
- * Returns an empty array when tokens are a single tree (or only one real
25
- * theme), so callers run plugins once against the original spec.
24
+ * Skips the shared `base` primitive set and color-variant expansions of it
25
+ * (`baseDimmed`, `base-high-contrast`, …). Those tokens are already merged
26
+ * into each real theme.
27
+ *
28
+ * Returns an empty array when tokens are a single tree (or only one named
29
+ * theme with nothing stripped), so callers run plugins once against the
30
+ * original spec.
26
31
  */
27
32
  declare function themesForGeneration(tokens: Schema["tokens"]): TokenSet[];
28
33
  /**
@@ -31,6 +36,7 @@ declare function themesForGeneration(tokens: Schema["tokens"]): TokenSet[];
31
36
  * When {@link Schema.tokens} is a multi-theme record, each theme is generated
32
37
  * separately: titles gain ` (<Theme>)`, and output file paths gain
33
38
  * `-<theme>` before the extension (`tokens.css` → `tokens-dark.css`).
39
+ * Shared `base` files (and `base*` color-variant expansions) are omitted.
34
40
  */
35
41
  declare function generatePluginDocuments(spec: Schema, config: Config): Promise<Record<string, GeneratedDocument>>;
36
42
  /**
@@ -209,5 +215,5 @@ declare module "@power-plant/core" {
209
215
  */
210
216
  declare const generator: import("@power-plant/core").GeneratorConfigObject<Schema, Options, any>;
211
217
  //#endregion
212
- export { type Config, DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, FONT_EXTENSIONS, FONT_FORMAT_FROM_EXTENSION, GENERIC_FALLBACK_FROM_ROLE, GenerationRun, type Generator, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, MONO_ROLES, type Options, type ParsedFontFilename, type Plugin, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type RenderFontCssOptions, type ResolveTokensPathOptions, type ResolvedTokensSource, SANS_ROLES, type SchemaMeta, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_PATH_HINTS, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, WEIGHT_FROM_SUFFIX, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, copyFontFiles, cssFontFamily, defineConfig, definePlugin, fontFamilyName, generateAllPluginDocuments, generatePluginDocuments, generator, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyFonts, isEmptyTokens, loadComponents, loadFonts, loadIcons, loadSchemaMetaFromPackageJson, loadTokens, loadTokensOrThrow, mergeFonts, nestFlatTokens, normalizeUrl as normalizeRepository, normalizeTokenTree, parseCssCustomProperties, parseCssFonts, parseFontFilename, pickFontByRole, prepareGenerationRuns, prepareSpec, prependFontCss, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, renderFontCss, renderGoogleFontImports, renderLocalFontFaces, resolveConfig, resolveConfigs, resolveSchemaMeta, resolveTokensSource, schemaMetaFromConfig, schemaMetaFromPackageJson, styleDictionaryLogOptions, themeKeyFromPath, themesForGeneration, toGoogleFontsCssUrl, uniquePlugins, writeGeneratedDocuments };
218
+ export { type Config, DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, FONT_EXTENSIONS, FONT_FORMAT_FROM_EXTENSION, GENERIC_FALLBACK_FROM_ROLE, GenerationRun, type Generator, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, MONO_ROLES, type Options, type ParsedFontFilename, type Plugin, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type RenderFontCssOptions, type ResolveTokensPathOptions, type ResolvedTokensSource, SANS_ROLES, type SchemaMeta, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_ALIASES, TYPE_PATH_HINTS, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, WEIGHT_FROM_SUFFIX, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, canonicalizeTokenType, copyFontFiles, cssFontFamily, defineConfig, definePlugin, fontFamilyName, generateAllPluginDocuments, generatePluginDocuments, generator, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyFonts, isEmptyTokens, loadComponents, loadFonts, loadIcons, loadSchemaMetaFromPackageJson, loadTokens, loadTokensOrThrow, mergeFonts, nestFlatTokens, normalizeUrl as normalizeRepository, normalizeTokenTree, parseCssCustomProperties, parseCssFonts, parseFontFilename, pickFontByRole, prepareGenerationRuns, prepareSpec, prependFontCss, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, renderFontCss, renderGoogleFontImports, renderLocalFontFaces, resolveConfig, resolveConfigs, resolveSchemaMeta, resolveTokensSource, schemaMetaFromConfig, schemaMetaFromPackageJson, styleDictionaryLogOptions, themeKeyFromPath, themesForGeneration, toGoogleFontsCssUrl, uniquePlugins, writeGeneratedDocuments };
213
219
  //# sourceMappingURL=index.d.mts.map
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{c as e,d as t,h as n,s as r}from"./utils-CDYdsyyW.mjs";import{a as i,c as a,i as o,l as s,r as c,s as l}from"./schema-CXK5pVmJ.mjs";import{_ as u,a as d,b as f,c as p,d as ee,f as te,g as ne,h as re,i as ie,l as ae,m as oe,n as se,o as ce,p as le,r as ue,s as de,t as fe,u as pe,v as me,y as he}from"./fonts-BiuIJVev.mjs";import{C as m,S as ge,_ as _e,a as ve,b as ye,c as be,d as xe,f as Se,g as Ce,h as we,i as Te,l as Ee,m as De,n as Oe,o as ke,p as Ae,r as je,s as Me,t as h,u as Ne,v as Pe,w as Fe,x as Ie,y as Le}from"./tokens-DFYNBFFR.mjs";import{definePlugin as Re}from"./plugin.mjs";import{defineGenerator as ze,defineSchema as Be,useExecution as g}from"@power-plant/core";import{createDefu as _,defu as v}from"defu";import{dirname as Ve,isAbsolute as y,resolve as b}from"node:path";import{titleCase as x}from"@stryke/string-format/title-case";import{existsSync as S}from"@stryke/fs/exists";import{isDirectory as C}from"@stryke/fs/is-file";import{readJsonFile as w}from"@stryke/fs/json";import{listFiles as He}from"@stryke/fs/list-files";import{appendPath as T}from"@stryke/path/append";import{findFileExtensionSafe as E,findFileName as D,findFolderName as O}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 Ue,readFile as M,readdir as N,writeFile as We}from"node:fs/promises";import{getEnvPaths as Ge}from"@stryke/env/get-env-paths";import{findFilePath as P}from"@stryke/path/find";import{replacePath as F}from"@stryke/path/replace";import{isFunction as Ke}from"@stryke/type-checks/is-function";import{loadConfig as I}from"c12";import{createJiti as qe}from"jiti";import{existsSync as L}from"node:fs";import Je from"node:os";var Ye=`0.0.48`;const R=`base`;function z(e){let t=n(e).filter(e=>e.id!==R);return t.length>1?t:[]}function Xe(e,n){let r=e.find(e=>e.id===R);return!r||n.id===R?n.tokens:t(n.tokens,r.tokens)}function Ze(t,n,r){return{...t,theme:n.id,title:e(t.title,n.id)??t.title,tokens:Xe(r,n)}}function Qe(t,n){let r=e(t.title,n.id);return r?{...t,title:r}:t}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=v(i,n)}return n}async function V(e,t){let i=n(e.tokens),a=z(e.tokens);if(a.length===0)return B(e,t);let o={};for(let n of a){let a=await B(Ze(e,n,i),Qe(t,n));o=v(r(a,n.id),o)}return o}async function H(e){let t={};for(let n of e)Object.assign(t,await V(n.spec,n.config));return t}function U(e){return!!(j(e)||A(e)&&`url`in e&&j(e.url))}function W(e){if(j(e))return e;if(A(e)&&`url`in e&&j(e.url))return e.url}const $e=a.partial(),et=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),tt=_((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function nt(e,t){return y(t)?t:b(e,t)}function rt(e){return Array.isArray(e)?e.filter(j):j(e)?[e]:[]}function it(e){let t=e.toLowerCase();if(et.has(t))return t}function at(e){let t=E(e)?.toLowerCase();return!!(t&&et.has(t))}function G(e){if(!e)return;let t=l.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){let e=l.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function ot(e){if(!e)return;let t=s.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=D(t,{withExtension:!1})||t,r=s.safeParse({name:e,path:t});r.success&&n.push(r.data);continue}let e=s.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function st(e){if(!A(e))return;let{files:t,usage:n,...r}=e,i=$e.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function ct(e){return A(e)&&`path`in e}async function lt(e){let t=k(e,`package.json`);if(!S(t))return;let n;try{n=await w(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=W(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;ct(a)?s=G(a):A(a)&&(o=st(a),`files`in a&&(s=G(a.files)),`usage`in a&&(c=ot(a.usage)));let l=tt(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function ut(e){let t=k(e,`component.json`);if(!S(t))return;let n;try{n=await w(t)}catch{return}if(ct(n)||Array.isArray(n)){let e=G(n);if(e)return{files:e}}if(!A(n))return;let r=st(n)??{},i=`files`in n?G(n.files):void 0,a=`usage`in n?ot(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 dt(e){try{return(await N(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&at(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function ft(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=T(t.path,e),r=E(t.path)??``,i=t.language??it(r),a=t.name||D(t.path,{withExtension:!1})||t.path,o=t.content===void 0?S(n)?await M(n,`utf8`):void 0:t.content;return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=k(e,`usage`);if(!S(n)||!C(n))return;let r=await dt(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=k(n,e),r=it(E(e)??``),i=D(e,{withExtension:!1})||e;return{name:i,title:x(i),path:t,content:await M(t,`utf8`),...r?{language:r}:{}}}))}async function pt(e,t){let n=t??(await He(e)).filter(e=>D(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test(E(t))?`component`:`file`,path:t,content:await M(T(t,e),`utf8`)}:{type:/[tj]sx$/.test(E(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await M(T(t.path,e),`utf8`):void 0,path:T(t.path,e)}))}async function mt(e){let t=await lt(e),n=await ut(e);if(!t&&!n)return;let r=tt(n??{},t??{}),i=j(r.name)?r.name:O(e),o=j(r.title)?r.title:x(i),s=a.safeParse({...r,name:i,title:o});if(!s.success)return;let c=await ft(e,s.data.usage);return{...s.data,files:await pt(e,s.data.files),...c?.length?{usage:c}:{}}}async function ht(e){let t={},n=rt(e.options.componentsPath);for(let r of n){let n=nt(e.cwd,r);if(!(!S(n)||!C(n)))try{let e=await N(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await mt(k(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const gt=i.partial(),_t=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),K=_((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function vt(e,t){return y(t)?t:b(e,t)}function yt(e){return Array.isArray(e)?e.filter(j):j(e)?[e]:[]}function bt(e){let t=e.toLowerCase();if(_t.has(t))return t}function xt(e){let t=E(e)?.toLowerCase();return!!(t&&_t.has(t))}function St(e){return ye.test(e)}async function q(e){try{return(await N(e,{withFileTypes:!0})).filter(e=>e.isFile()&&xt(e.name)).map(e=>e.name)}catch{return[]}}function J(e){if(!e)return;let t=o.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){let e=o.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function Ct(e){if(!A(e))return;let t=gt.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function wt(e){return A(e)&&`path`in e}async function Y(e,t,n){let r=T(e,t),i=bt(E(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 Tt(e){let t=k(e,`package.json`);if(!S(t))return;let n;try{n=await w(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=W(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;wt(a)?s=J(a):A(a)&&(o=Ct(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 Et(e){let t=k(e,`icon.json`);if(!S(t))return;let n;try{n=await w(t)}catch{return}if(wt(n)||Array.isArray(n)){let e=J(n);if(e)return{files:e}}return Ct(n)}async function Dt(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=T(t.path,e),r=E(t.path)??``,i=t.type??bt(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 Ot(e){let t=await Tt(e),n=await Et(e),r=await q(e);if(!t&&!n&&r.length===0)return;let a=K(n??{},t??{}),o=j(a.name)?a.name:O(e),s=j(a.title)?a.title:x(o),c=i.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await Dt(e,c.data.files)}}function X(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:x(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 kt(e,t,n){let r=await q(e);for(let i of r){let r=D(i,{withExtension:!1});r&&X(n,r,await Y(i,e,t))}}async function At(e){let t={},n=yt(e.options.iconsPath);for(let r of n){let n=vt(e.cwd,r);if(!(!S(n)||!C(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(St(r.name)){await kt(e,r.name,t);continue}let n=await Ot(e);if(n){let e=t[n.name];t[n.name]=e?K(n,e):n}continue}if(r.isFile()&&xt(r.name)){let e=D(r.name,{withExtension:!1});if(!e)continue;X(t,e,await Y(r.name,n))}}}catch{continue}}return t}function Z(e,t){let n=e[t];return j(n)?n:void 0}function jt(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=W(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=Z(t,`title`),a=Z(t,`name`),o=Z(t,`description`),s=Z(t,`homepage`),c=Z(t,`logo`),l=W(t.repository);a?i.name=a:j(e.name)&&(i.name=e.name),n?i.title=n:j(i.name)&&(i.title=x(i.name)),o?i.description=o:j(e.description)&&(i.description=e.description),s?i.homepage=s:U(e.homepage)?i.homepage=W(e.homepage):U(e.author)?i.homepage=W(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&U(e.maintainers[0])?i.homepage=W(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&U(e.contributors[0])?i.homepage=W(e.contributors[0]):U(e.bugs)&&(i.homepage=W(e.bugs)),c&&(i.logo=c),l?i.repository=l:U(e.repository)&&(i.repository=W(e.repository))}return v(i,t)}function Mt(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 Nt(e){let t=k(e,`package.json`);if(!S(t))return{};let n;try{n=await w(t)}catch{return{}}return jt(n)}async function Pt(e,t){let n=await Nt(e),r=Mt(t);return v(r,n)}function Ft(e){let t=new Set;return e.filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const It=Je.homedir();function Lt(e){return Array.isArray(e)?e.filter(e=>A(e)):[]}function Q(e){return Array.isArray(e)||!A(e)?{}:{...e}}const Rt=[`tokensPath`,`componentsPath`,`iconsPath`,`fontsPath`];function zt(e,t){let n={...e};for(let e of Rt)t[e]!=null&&delete n[e];return n}function Bt(e,t,n,r){let i=v({cwd:e,envPaths:r.envPaths},zt(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=Ft(Array.isArray(i.plugins)?i.plugins:[]),i.verbose=t.verbose===!0||n.verbose===!0,i}async function $(e,t){let n=t.configFile&&L(F(t.configFile,e))?F(t.configFile,e):t.configFile&&L(t.configFile)?t.configFile:L(k(e,`razorwind.${t.mode}.ts`))?k(e,`razorwind.${t.mode}.ts`):L(k(e,`razorwind.${t.mode}.js`))?k(e,`razorwind.${t.mode}.js`):L(k(e,`razorwind.${t.mode}.mts`))?k(e,`razorwind.${t.mode}.mts`):L(k(e,`razorwind.${t.mode}.mjs`))?k(e,`razorwind.${t.mode}.mjs`):L(k(e,`razorwind.${t.mode}.cjs`))?k(e,`razorwind.${t.mode}.cjs`):L(k(e,`razorwind.${t.mode}.cts`))?k(e,`razorwind.${t.mode}.cts`):L(k(e,`razorwind.${t.mode}.json`))?k(e,`razorwind.${t.mode}.json`):L(k(e,`razorwind.${t.mode}.yaml`))?k(e,`razorwind.${t.mode}.yaml`):L(k(e,`razorwind.${t.mode}.yml`))?k(e,`razorwind.${t.mode}.yml`):L(k(e,`razorwind.config.ts`))?k(e,`razorwind.config.ts`):L(k(e,`razorwind.config.js`))?k(e,`razorwind.config.js`):L(k(e,`razorwind.config.mts`))?k(e,`razorwind.config.mts`):L(k(e,`razorwind.config.mjs`))?k(e,`razorwind.config.mjs`):L(k(e,`razorwind.config.cjs`))?k(e,`razorwind.config.cjs`):L(k(e,`razorwind.config.cts`))?k(e,`razorwind.config.cts`):L(k(e,`razorwind.config.json`))?k(e,`razorwind.config.json`):L(k(e,`razorwind.config.yaml`))?k(e,`razorwind.config.yaml`):L(k(e,`razorwind.config.yml`))?k(e,`razorwind.config.yml`):void 0,r=Ge({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=qe(e,i),o=[{}];if(n){let r=y(n)?n:b(e,n),i=await a.import(r,{default:!0});if(i){let r=i;if(r=Ke(i)?await Promise.resolve(i({cwd:e,mode:t.mode??`development`})):await Promise.resolve(i),Array.isArray(r)){let e=Lt(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([I({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),I({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),I({cwd:It,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),u=Q(s?.config),d=n?y(n)?n:b(e,n):void 0,f=typeof s?.configFile==`string`?s.configFile:void 0;d&&f&&b(e,f)===d&&delete u.plugins;let p={envPaths:{...r,home:It},workspaceLayer:u,environmentLayer:Q(c?.config),homeLayer:Q(l?.config)};return o.map(n=>Bt(e,t,n,p))}async function Vt(e,t){let n=(await $(e,t))[0];if(!n)throw Error(`Unable to resolve Razorwind configuration.`);return n}async function Ht(e){if(e.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);let t=e.options.tokens;(!t||h(t))&&(t=await Oe(e));let n={...await Pt(e.cwd,e.options),tokens:t??{},components:v(e.options.components??{},await ht(e)??{}),icons:v(e.options.icons??{},await At(e)??{}),fonts:v(e.options.fonts??{},await d(e)??{})};for(let t of e.options.plugins.filter(e=>e.extract))n=await t.extract(n,e.options);if(!n.tokens||h(n.tokens))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 Ut(e,t){let n=await $(e.cwd,t),r=[];for(let t of n)e.options=t,r.push({spec:await Ht(e),config:t});return r}async function Wt(e,t){let n=[];for(let[r,i]of Object.entries(e??{})){let e=i?.path||r;if(!e)continue;let a=y(e)?e:b(t,e),o=(i?.chunks??[]).map(e=>e.content??``).join(``);await Ue(Ve(a),{recursive:!0}),await We(a,o,`utf8`),n.push(a)}return n}function Gt(e){return e}const Kt=ze({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, icons, and fonts.`,version:Ye,tags:[`razorwind`,`dtcg`]},schema:Be({schema:c}),input:async e=>{let t=g(),n=await Ut(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 Wt(n,g().cwd)},generator:async e=>{let t=g();return H(t.generationRuns&&t.generationRuns.length>0?t.generationRuns:[{spec:e,config:t.options}])}});export{Le as DEFAULT_TOKEN_PATH_CANDIDATES,re as FONT_EXTENSIONS,ne as FONT_FORMAT_FROM_EXTENSION,u as GENERIC_FALLBACK_FROM_ROLE,me as MONO_ROLES,ke as RAZORWIND_INFER_PREPROCESSOR,he as SANS_ROLES,ye as THEME_BASENAME_PATTERN,Ie as TOKEN_DIRECTORY_GLOB,ge as TOKEN_FILE_EXTENSIONS,Fe as TYPE_PATH_HINTS,f as WEIGHT_FROM_SUFFIX,m as WINDIE_PARSERS,m as razorwindParsers,oe as copyFontFiles,de as cssFontFamily,Gt as defineConfig,Re as definePlugin,p as fontFamilyName,H as generateAllPluginDocuments,V as generatePluginDocuments,Kt as generator,Me as getExtractionHooks,be as getRazorwindParserHooks,Ee as getRazorwindPreprocessorHooks,we as inferTypeFromPath,Ce as inferValue,fe as isEmptyFonts,h as isEmptyTokens,ht as loadComponents,d as loadFonts,At as loadIcons,Nt as loadSchemaMetaFromPackageJson,Oe as loadTokens,je as loadTokensOrThrow,se as mergeFonts,_e as nestFlatTokens,W as normalizeRepository,Pe as normalizeTokenTree,De as parseCssCustomProperties,ue as parseCssFonts,ce as parseFontFilename,ie as pickFontByRole,Ut as prepareGenerationRuns,Ht as prepareSpec,ae as prependFontCss,Ne as razorwindInferPreprocessor,xe as registerRazorwindHooks,Se as registerRazorwindParsers,pe as renderFontCss,ee as renderGoogleFontImports,te as renderLocalFontFaces,Vt as resolveConfig,$ as resolveConfigs,Pt as resolveSchemaMeta,Te as resolveTokensSource,Mt as schemaMetaFromConfig,jt as schemaMetaFromPackageJson,Ae as styleDictionaryLogOptions,ve as themeKeyFromPath,z as themesForGeneration,le as toGoogleFontsCssUrl,Ft as uniquePlugins,Wt as writeGeneratedDocuments};
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};
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-Di7vqmsi.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-VmrytwDm.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-CzbZzpnz.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-nRnX_NsH.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-By75va9Y.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_PATH_HINTS=e.w,exports.WINDIE_PARSERS=e.C,exports.razorwindParsers=e.C,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-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,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_PATH_HINTS, O as THEME_BASENAME_PATTERN, 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-B7MsziQp.cjs";
2
- export { DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type ResolveTokensPathOptions, type ResolvedTokensSource, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_PATH_HINTS, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyTokens, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, styleDictionaryLogOptions, themeKeyFromPath };
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";
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_PATH_HINTS, O as THEME_BASENAME_PATTERN, 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-CzjDptav.mjs";
2
- export { DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type ResolveTokensPathOptions, type ResolvedTokensSource, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_PATH_HINTS, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyTokens, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, styleDictionaryLogOptions, themeKeyFromPath };
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";
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,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"../../tokens-DFYNBFFR.mjs";export{C as DEFAULT_TOKEN_PATH_CANDIDATES,m as RAZORWIND_INFER_PREPROCESSOR,i as THEME_BASENAME_PATTERN,S as TOKEN_DIRECTORY_GLOB,t as TOKEN_FILE_EXTENSIONS,x as TYPE_PATH_HINTS,e as WINDIE_PARSERS,e as razorwindParsers,_ as getExtractionHooks,a as getRazorwindParserHooks,d as getRazorwindPreprocessorHooks,l as inferTypeFromPath,c as inferValue,v as isEmptyTokens,p as loadTokens,g as loadTokensOrThrow,n as nestFlatTokens,b as normalizeTokenTree,f as parseCssCustomProperties,y as razorwindInferPreprocessor,o as registerRazorwindHooks,s as registerRazorwindParsers,u as resolveTokensSource,h as styleDictionaryLogOptions,r 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-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,4 +1,4 @@
1
- import { l as Plugin } from "./config-BtscEr7S.cjs";
1
+ import { l as Plugin } from "./config-jPfyBr8C.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-0UYp_yIy.d.cts.map
49
+ //# sourceMappingURL=plugin-CSC1jRVg.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-0UYp_yIy.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-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,4 +1,4 @@
1
- import { l as Plugin } from "./config-CNTGHrST.mjs";
1
+ import { l as Plugin } from "./config-B1rsPTVV.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-CH6vFnxu.d.mts.map
49
+ //# sourceMappingURL=plugin-DBrXhsY0.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-DBrXhsY0.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-BtscEr7S.cjs";
2
- import { t as definePlugin } from "./plugin-0UYp_yIy.cjs";
1
+ import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-jPfyBr8C.cjs";
2
+ import { t as definePlugin } from "./plugin-CSC1jRVg.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-CNTGHrST.mjs";
2
- import { t as definePlugin } from "./plugin-CH6vFnxu.mjs";
1
+ import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-B1rsPTVV.mjs";
2
+ import { t as definePlugin } from "./plugin-DBrXhsY0.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-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}});
@@ -0,0 +1,8 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens-C_RYVqap.mjs","names":[],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-DyK4l_bT.cjs");exports.TOKEN_SET_THEME_PATTERN=e.f,exports.appendThemeToFilePath=e.o,exports.applyThemeToDocuments=e.s,exports.applyThemeToTitle=e.c,exports.createDocument=e.t,exports.flattenTokens=e.p,exports.formatColorValue=e.g,exports.formatDimensionValue=e._,exports.formatTokenValue=e.v,exports.isObject=e.n,exports.isTokenLeaf=e.m,exports.mergeTokenTrees=e.d,exports.resolveSchemaIdentity=e.a,exports.resolveTokenSets=e.h,exports.slugifyThemeName=e.u,exports.themeDisplayName=e.i,exports.titleCase=e.l,exports.toCssVar=e.r;
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,6 +1,6 @@
1
1
  import { t as Schema } from "../schema-BwOBgJIM.cjs";
2
2
  import { n as Tokens } from "../index-CwN0c1Q4.cjs";
3
- import { a as flattenTokens, i as TokenSet, n as FlattenTokensOptions, o as isTokenLeaf, r as TOKEN_SET_THEME_PATTERN, s as resolveTokenSets, t as BaseFlatToken } from "../flatten-tokens-CMlVe_J6.cjs";
3
+ import { a as TokenSet, c as isTokenLeaf, i as TOKEN_SET_THEME_PATTERN, l as resolveTokenSets, n as FlattenTokensOptions, o as flattenTokens, r as SHARED_THEME_ID, s as isSharedThemeId, t as BaseFlatToken } from "../flatten-tokens-DWbPW_3z.cjs";
4
4
  import { GeneratedDocument, GeneratorFunctionResult } from "@power-plant/core";
5
5
  //#region src/utils/merge-tokens.d.ts
6
6
  /**
@@ -107,6 +107,23 @@ declare function formatColorValue(value: unknown): string | undefined;
107
107
  * value/unit object) into a CSS-friendly string.
108
108
  */
109
109
  declare function formatDimensionValue(value: unknown): string | undefined;
110
+ /**
111
+ * Convert a DTCG shadow `$value` (one layer or a list of layers) into a
112
+ * CSS `box-shadow` string.
113
+ */
114
+ declare function formatShadowValue(value: unknown): string | undefined;
115
+ /**
116
+ * Convert a DTCG token path into a Tailwind `@theme` custom property.
117
+ *
118
+ * `color.primary` → `--color-primary`; a trailing `DEFAULT` leaf is stripped
119
+ * (`radius.DEFAULT` → `--radius`).
120
+ */
121
+ declare function toThemeCssVar(path: string): string;
122
+ /**
123
+ * Rewrite DTCG aliases in a CSS value to `var(--…)` references so reused
124
+ * tokens point at sibling custom properties instead of leaving `{path}` text.
125
+ */
126
+ declare function formatCssAliasReferences(value: string): string;
110
127
  /**
111
128
  * Convert a DTCG `$value` into a CSS-friendly string, dispatching on `type`
112
129
  * (or, when `type` is omitted, on the shape of `value`).
@@ -127,7 +144,7 @@ declare function toCssVar(path: string, prefix: string): string;
127
144
  */
128
145
  declare function createDocument<TSchema, TOptions extends object>(path: string, content: string, meta: {
129
146
  name: string;
130
- }, language?: string): GeneratorFunctionResult<TSchema, TOptions>[string];
147
+ }, appendTheme?: false | ((path: string, theme: string) => string), language?: string): GeneratorFunctionResult<TSchema, TOptions>[string];
131
148
  //#endregion
132
- export { type BaseFlatToken, type FlattenTokensOptions, type SchemaIdentity, type SchemaIdentityOverrides, TOKEN_SET_THEME_PATTERN, type ThemeNamed, type TokenSet, appendThemeToFilePath, applyThemeToDocuments, applyThemeToTitle, createDocument, flattenTokens, formatColorValue, formatDimensionValue, formatTokenValue, isObject, isTokenLeaf, mergeTokenTrees, resolveSchemaIdentity, resolveTokenSets, slugifyThemeName, themeDisplayName, titleCase, toCssVar };
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 };
133
150
  //# 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;;;;;;;;;iBC/Ca,iBAAiB;;;;UCHhB;EACf;EACA;;;;;;iBAOc,iBAAiB,OAAO;;;;;;;;;iBCDxB,kBACd,2BACA;;;;;;;iBAoBc,sBAAsB,kBAAkB;;;;;iBAkBxC,sBACd,WAAW,eAAe,oBAC1B,gBACC,eAAe;;;;;;;;;;iBC7CF,UAAU;;;;;;;iBCCV,iBAAiB;;;;;iBAuDjB,qBAAqB;;;;;iBAwBrB,iBAAiB,gBAAgB;;;iBCvFjC,SAAS,iBAAiB,SAAS;;;;;;;iBAyCnC,SAAS,cAAc;;;;iBAavB,eAAe,SAAS,yBACtC,cACA,iBACA;EAAQ;GACR,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;;;;;;;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,6 +1,6 @@
1
1
  import { t as Schema } from "../schema-BwOBgJIM.mjs";
2
2
  import { n as Tokens } from "../index-D5L2WXYk.mjs";
3
- import { a as flattenTokens, i as TokenSet, n as FlattenTokensOptions, o as isTokenLeaf, r as TOKEN_SET_THEME_PATTERN, s as resolveTokenSets, t as BaseFlatToken } from "../flatten-tokens-DgTPHEhI.mjs";
3
+ import { a as TokenSet, c as isTokenLeaf, i as TOKEN_SET_THEME_PATTERN, l as resolveTokenSets, n as FlattenTokensOptions, o as flattenTokens, r as SHARED_THEME_ID, s as isSharedThemeId, t as BaseFlatToken } from "../flatten-tokens-Dz4e2IHx.mjs";
4
4
  import { GeneratedDocument, GeneratorFunctionResult } from "@power-plant/core";
5
5
  //#region src/utils/merge-tokens.d.ts
6
6
  /**
@@ -107,6 +107,23 @@ declare function formatColorValue(value: unknown): string | undefined;
107
107
  * value/unit object) into a CSS-friendly string.
108
108
  */
109
109
  declare function formatDimensionValue(value: unknown): string | undefined;
110
+ /**
111
+ * Convert a DTCG shadow `$value` (one layer or a list of layers) into a
112
+ * CSS `box-shadow` string.
113
+ */
114
+ declare function formatShadowValue(value: unknown): string | undefined;
115
+ /**
116
+ * Convert a DTCG token path into a Tailwind `@theme` custom property.
117
+ *
118
+ * `color.primary` → `--color-primary`; a trailing `DEFAULT` leaf is stripped
119
+ * (`radius.DEFAULT` → `--radius`).
120
+ */
121
+ declare function toThemeCssVar(path: string): string;
122
+ /**
123
+ * Rewrite DTCG aliases in a CSS value to `var(--…)` references so reused
124
+ * tokens point at sibling custom properties instead of leaving `{path}` text.
125
+ */
126
+ declare function formatCssAliasReferences(value: string): string;
110
127
  /**
111
128
  * Convert a DTCG `$value` into a CSS-friendly string, dispatching on `type`
112
129
  * (or, when `type` is omitted, on the shape of `value`).
@@ -127,7 +144,7 @@ declare function toCssVar(path: string, prefix: string): string;
127
144
  */
128
145
  declare function createDocument<TSchema, TOptions extends object>(path: string, content: string, meta: {
129
146
  name: string;
130
- }, language?: string): GeneratorFunctionResult<TSchema, TOptions>[string];
147
+ }, appendTheme?: false | ((path: string, theme: string) => string), language?: string): GeneratorFunctionResult<TSchema, TOptions>[string];
131
148
  //#endregion
132
- export { type BaseFlatToken, type FlattenTokensOptions, type SchemaIdentity, type SchemaIdentityOverrides, TOKEN_SET_THEME_PATTERN, type ThemeNamed, type TokenSet, appendThemeToFilePath, applyThemeToDocuments, applyThemeToTitle, createDocument, flattenTokens, formatColorValue, formatDimensionValue, formatTokenValue, isObject, isTokenLeaf, mergeTokenTrees, resolveSchemaIdentity, resolveTokenSets, slugifyThemeName, themeDisplayName, titleCase, toCssVar };
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 };
133
150
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,s as m,t as h,u as g,v as _}from"../utils-CDYdsyyW.mjs";export{i as TOKEN_SET_THEME_PATTERN,d as appendThemeToFilePath,m as applyThemeToDocuments,n as applyThemeToTitle,h as createDocument,f as flattenTokens,a as formatColorValue,e as formatDimensionValue,_ as formatTokenValue,u as isObject,l as isTokenLeaf,r as mergeTokenTrees,t as resolveSchemaIdentity,o as resolveTokenSets,g as slugifyThemeName,s as themeDisplayName,c as titleCase,p as toCssVar};
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};
@@ -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)}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}});
@@ -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)}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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-CMqr6G7v.mjs","names":[],"sources":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@razorwind/core",
3
- "version": "0.0.48",
3
+ "version": "0.0.49",
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": "c53ec72420850efd1c4f8339b264c33ca6b9870b"
162
+ "gitHead": "8dc94fb22937f30d41e97f3c6ecff7f45eb81202"
163
163
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-CNTGHrST.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"flatten-tokens-CMlVe_J6.d.cts","names":[],"sources":["../src/utils/flatten-tokens.ts"],"mappings":";;;;;UA6BiB;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;UAGe;EACf;EACA,QAAQ;;;;;;;;cASG,yBAAuB;;;;iBAMpB,YAAY,MAAM;;;;;;;iBAqFlB,iBACd,QAAQ,SAAS,eAAe,UAC/B;UAqBc,qBAAqB,UAAU,gBAAgB;;EAE9D;;EAEA,eAAe,OAAO,kBAAkB;;;;;iBAM1B,cAAc,UAAU,gBAAgB,eACtD,QAAQ,SAAS,eAAe,SAChC,UAAS,qBAAqB,KAC7B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"flatten-tokens-DgTPHEhI.d.mts","names":[],"sources":["../src/utils/flatten-tokens.ts"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-B7MsziQp.d.cts","names":[],"sources":["../src/lib/tokens/constants.ts","../src/lib/tokens/css.ts","../src/lib/tokens/infer.ts","../src/lib/tokens/resolve-path.ts","../src/lib/tokens/load.ts","../src/lib/tokens/logging.ts","../src/lib/tokens/parsers.ts"],"mappings":";;;;;;;;cAmBa;KAOD,8BAA8B;;cAG7B;;;;;cAsBA;;cAyBA;;cAGA,wBAAsB;;cAItB,iBAAiB;;;;;;;iBCvDd,yBACd,mBACC;;;KCgCS;;;;iBA+DI,kBACd,iBACC;;;;iBAiBa,WACd,cACA;EACG;EAAgB,OAAO;;;;;iBAsPZ,mBACd,gBACA;;;;;;;;iBA2Cc,eACd,MAAM,0BACL;;;UC1Zc;;;;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 +0,0 @@
1
- {"version":3,"file":"plugin-CH6vFnxu.d.mts","names":[],"sources":["../src/plugin.ts"],"mappings":""}
@@ -1,7 +0,0 @@
1
- const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./utils-DyK4l_bT.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`},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,b=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,oe=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,se=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,ce=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,le=/^\{[^{}]+\}$/,ue={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},x=new Set([`px`,`rem`]);function S(e){return Math.min(1,Math.max(0,e))}function C(e,t=100){let n=e.trim();if(n.endsWith(`%`))return S(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return S(r>1?r/255:r)}function de(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function w(e){let t=de(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function T(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=y[n];if(r)return r}}function D(e,n=[]){let r=E(n);if(typeof e==`string`){let t=e.trim();if(le.test(t))return{value:t,type:r};let i=t.match(ce);if(i?.[1])return{value:T(i[1]),type:r};if(ne.test(t))return{value:w(t),type:`color`};let a=t.match(re);if(a){let e=[C(a[1]),C(a[2]),C(a[3])],t=a[4]?a[4].endsWith(`%`)?S(Number.parseFloat(a[4])/100):S(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=t.match(ie);if(o)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(o[1]),Number.parseFloat(o[2]),Number.parseFloat(o[3])],...o[4]?{alpha:o[4].endsWith(`%`)?S(Number.parseFloat(o[4])/100):S(Number.parseFloat(o[4]))}:{}},type:`color`};let s=t.match(ae);if(s){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(s[1]),e(s[2]),e(s[3])],...s[4]?{alpha:s[4].endsWith(`%`)?S(Number.parseFloat(s[4])/100):S(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=t.match(b);if(c){let e=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return x.has(e)?{value:{value:n,unit:e},type:`dimension`}:{value:t,type:r===`dimension`?void 0:r}}let l=t.match(oe);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=t.match(se);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=ue[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`}:x.has(t)?{value:e,type:`dimension`}:{value:e,type:r}}}return{value:e,type:r}}function fe(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),`$value`in n){let e=D(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function O(e,n=[]){if(Array.isArray(e))return e.map((e,t)=>O(e,[...n,String(t)]));if(!t.n(e))return e;if(t.m(e))return fe(e,n);let r={};for(let[t,i]of Object.entries(e)){if(t.startsWith(`$`)){r[t]=i;continue}r[t]=O(i,[...n,t])}if(!(`$type`in r)){let e=E(n);e&&n.length>0&&(r.$type=e)}return r}function k(e){let n={};for(let[r,i]of Object.entries(e)){let e=r.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(e.length===0)continue;let a=n;for(let n=0;n<e.length-1;n++){let r=e[n],i=a[r];t.n(i)?t.m(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.m(l)?l.DEFAULT=c:a[o]=c}return O(n)}const pe=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function A(e){let t={},n=e.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(pe)){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,ee.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,p.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=[...m],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 me=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 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(0,a.joinPaths)(e,_)}function he(e){return Array.isArray(e)?e.filter(o.isSetString):(0,o.isSetString)(e)?[e]:[]}const ge=/[*?[\]{}]/;function _e(e){return ge.test(e)}function ve(e){let t=e.search(/[*?[{]/);if(t<=0)return;let n=e.slice(0,t).replace(/[/\\]+$/,``);return n.length>0?n:void 0}function ye(e,t){let n=U(e,t);if(_e(t)){let e=ve(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=he(n);if(o.length>0){let e=o.map(e=>ye(t,e)),n=e.filter(e=>e.isStyleDictionaryConfig);if(n.length>0){if(e.length>1)throw Error(`tokensPath cannot mix Style Dictionary config files with other token sources.`);return{resolvedPath:n[0].resolvedPath,source:[],origin:`tokensPath`}}return{resolvedPath:e[0]?.resolvedPath,source:e.flatMap(e=>e.source),origin:`tokensPath`}}for(let e of g){let 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(v)?.[1]?.toLowerCase()}function be(e){let t=e,n=new Set;for(;t!=null&&!n.has(t);){if(n.add(t),typeof t==`function`)return t;if(typeof t==`object`&&`default`in t){t=t.default;continue}break}throw TypeError(`style-dictionary did not export a constructable StyleDictionary class.`)}const xe=be(u.default);function X(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function Se(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 xe({...t,parsers:[...n.parserNames,...t.parsers??[]],preprocessors:[...n.preprocessorNames,...t.preprocessors??[]],hooks:{...t.hooks,parsers:{...n.parsers,...t.hooks?.parsers},preprocessors:{...n.preprocessors,...t.hooks?.preprocessors}},usesDtcg:t.usesDtcg??!0,platforms:t.platforms??{}},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 Ce(e){return(await(0,l.default)(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function we(e,t){let n=await Ce(t);if(n.length===0)return{};let r=new Map,i=[];for(let e of n){let t=Y(e);if(t){let n=r.get(t)??[];n.push(e),r.set(t,n)}else i.push(e)}if(r.size<2)return Q(e,t);let a={};if(i.length>0){let t=await Q(e,i);X(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Q(e,[...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 Se(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?we(e.options,t.source):Q(e.options,t.source)}async function Te(e){let t=await $(e);if(X(t)){let{tokensPath:t}=e.options,n=Array.isArray(t)?t.length>0?`tokensPath=[${t.map(e=>`"${e}"`).join(`, `)}]`:`default token paths / CSS fallbacks`:(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,"S",{enumerable:!0,get:function(){return h}}),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 v}}),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 me}}),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 Te}}),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 _}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return g}});
@@ -1,8 +0,0 @@
1
- import{m as e,n as t}from"./utils-CDYdsyyW.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`],h=m.join(`,`),g=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],_=`**/*.{${h}}`,v=/^(light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)([._-].+)?$/i,y={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},ie=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,ae=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,oe=/^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,se=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,ce=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,le=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,ue=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,de=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,b=/^\{[^{}]+\}$/,x={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},S=new Set([`px`,`rem`]);function C(e){return Math.min(1,Math.max(0,e))}function w(e,t=100){let n=e.trim();if(n.endsWith(`%`))return C(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return C(r>1?r/255:r)}function 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 t=e.trim();if(b.test(t))return{value:t,type:r};let i=t.match(de);if(i?.[1])return{value:me(i[1]),type:r};if(ie.test(t))return{value:pe(t),type:`color`};let a=t.match(ae);if(a){let e=[w(a[1]),w(a[2]),w(a[3])],t=a[4]?a[4].endsWith(`%`)?C(Number.parseFloat(a[4])/100):C(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=t.match(oe);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(se);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(ce);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(le);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=t.match(ue);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=x[t.toLowerCase()];return d===void 0?r===`fontFamily`||/family|font|typeface/i.test(n.at(-1)??``)?t.includes(`,`)?{value:t.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:t.replace(/^["']|["']$/g,``),type:`fontFamily`}:r===`color`&&!t.startsWith(`{`)?{value:t,type:void 0}:{value:t,type:r}:{value:d,type:`fontWeight`}}if(typeof e==`number`)return r===`fontWeight`?{value:e,type:`fontWeight`}:r===`duration`?{value:{value:e,unit:`ms`},type:`duration`}:r===`dimension`?{value:{value:e,unit:`px`},type:`dimension`}:{value:e,type:r??`number`};if(Array.isArray(e))return e.length===4&&e.every(e=>typeof e==`number`)&&(r===`cubicBezier`||n.some(e=>/ease|bezier/i.test(e)))?{value:e,type:`cubicBezier`}:e.every(e=>typeof e==`string`)?{value:e,type:r??`fontFamily`}:{value:e,type:r};if(t(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),`$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(n,r=[]){if(Array.isArray(n))return n.map((e,t)=>D(e,[...r,String(t)]));if(!t(n))return n;if(e(n))return he(n,r);let i={};for(let[e,t]of Object.entries(n)){if(e.startsWith(`$`)){i[e]=t;continue}i[e]=D(t,[...r,e])}if(!(`$type`in i)){let e=T(r);e&&r.length>0&&(i.$type=e)}return i}function O(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=E(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 D(r)}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:ee.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(te.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(re(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(ne(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=[...p],i=[j],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 _e=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,_)}function ve(e){return Array.isArray(e)?e.filter(c):c(e)?[e]:[]}const ye=/[*?[\]{}]/;function be(e){return ye.test(e)}function xe(e){let t=e.search(/[*?[{]/);if(t<=0)return;let n=e.slice(0,t).replace(/[/\\]+$/,``);return n.length>0?n:void 0}function Se(e,t){let n=H(e,t);if(be(t)){let e=xe(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=ve(n);if(i.length>0){let e=i.map(e=>Se(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(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(v)?.[1]?.toLowerCase()}function Ce(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 we=Ce(f);function Y(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function Te(e){let t=await u(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function X(e,t){let n=B(e.plugins),r=new we({...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 Z(e,t){return t.length===0?{}:(await X(e,{source:t})).tokens}async function Q(e){return(await d(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function Ee(e,t){let n=await Q(t);if(n.length===0)return{};let r=new Map,i=[];for(let e of n){let t=J(e);if(t){let n=r.get(t)??[];n.push(e),r.set(t,n)}else i.push(e)}if(r.size<2)return Z(e,t);let a={};if(i.length>0){let t=await Z(e,i);Y(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Z(e,[...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 X(e.options,await Te(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?Ee(e.options,t.source):Z(e.options,t.source)}async function De(e){let t=await $(e);if(Y(t)){let{tokensPath:t}=e.options,n=Array.isArray(t)?t.length>0?`tokensPath=[${t.map(e=>`"${e}"`).join(`, `)}]`:`default token paths / CSS fallbacks`: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,m as S,O as _,J as a,v as b,L as c,V as d,_e as f,E as g,T as h,q as i,z as l,k as m,$ as n,j as o,A as p,De as r,B as s,Y as t,R as u,D as v,y as w,_ as x,g as y};
8
- //# sourceMappingURL=tokens-DFYNBFFR.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens-DFYNBFFR.mjs","names":[],"sources":[],"mappings":""}
@@ -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{titleCase as r}from"@stryke/string-format/title-case";function i(t){return e(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,t){if(typeof e==`string`)return 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(Array.isArray(e))return e.map(String).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 c(t){return e(t)}const l=/^(?:light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)(?:[A-Z]\w*|[._-].+)?$/i;function u(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function d(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function f(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function p(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 m(e,t,n,r,i,a){if(!c(e))return;let o=f(e,n);if(u(e)){let n=p(e),c={path:t.join(`.`),type:o,value:n,cssValue:s(n,o),description:d(e),theme:r};a.push(i?i(c):c);return}for(let[n,s]of Object.entries(e))n.startsWith(`$`)||m(s,[...t,n],o,r,i,a)}function h(e){if(!c(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));if(t.length>0&&t.every(e=>l.test(e))){let n=e;return t.map(e=>({id:e,tokens:n[e]}))}return[{id:`default`,tokens:e}]}function g(e,t={}){let n=t.includeTypes?new Set(t.includeTypes):void 0,r=[];for(let n of h(e)){let e=n.id==="default"?void 0:n.id;m(n.tokens,[],void 0,e,t.enrichToken,r)}return n?r.filter(e=>!e.type||n.has(e.type)):r}function _(t){return e(t)}function v(e,t){return y(e,t)}function y(e,t){if(!_(t))return e;if(!_(e))return e??t;if(u(t)||u(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?y(r,n[t]):r}return n}function b(e){return e.trim().toLowerCase().replaceAll(/[^a-z0-9]+/g,`-`).replaceAll(/^-+|-+$/g,``)}function x(e){return r(e)}function S(e,t){if(!e||!t)return e;let n=` (${x(t)})`;return e.endsWith(n)?e:`${e}${n}`}function C(e,r){let i=n(e);return i.name?t({root:i.root,dir:i.dir,ext:i.ext,name:`${i.name}-${b(r)}`}):e}function w(e,t){let n={};for(let[r,i]of Object.entries(e)){let e=C(r,t);n[e]={...i,path:i.path?C(i.path,t):e}}return n}function T(e){let t=e.lastIndexOf(`/`);return t>=0?e.slice(t+1):e}function E(e,t={}){let n=t.name??e.name,r=S(t.displayName??t.title??e.title??(n?x(T(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 D(e){return e.displayName??x(e.name)}function O(t){return e(t)}function k(e,t){return`--${t}-${e.split(`.`).filter(Boolean).join(`-`).replaceAll(/[^\w-]+/g,`-`)}`}function A(e,t,n,r){return{path:e,language:r,chunks:[{content:t,meta:n}]}}export{o as _,E as a,S as c,v as d,l as f,a as g,h,D as i,x as l,u as m,O as n,C as o,g as p,k as r,w as s,A as t,b as u,s as v};
2
- //# sourceMappingURL=utils-CDYdsyyW.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-CDYdsyyW.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/title-case");function r(t){return(0,e.isObject)(t)}function i(e){if(typeof e==`string`)return e;if(!r(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 i=typeof e.alpha==`number`&&e.alpha<1?` / ${e.alpha}`:``;if(t===`srgb`&&n.length>=3){let[e,t,r]=n;if(typeof e==`number`&&typeof t==`number`&&typeof r==`number`)return`rgb(${Math.round(e*255)} ${Math.round(t*255)} ${Math.round(r*255)}${i})`}return`${t}(${n.map(e=>String(e)).join(` `)}${i})`}function a(e){if(typeof e==`number`)return String(e);if(typeof e==`string`)return e;if(r(e)&&typeof e.value==`number`&&typeof e.unit==`string`)return`${e.value}${e.unit}`}function o(e,t){if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);if(t===`color`||!t&&r(e)&&`colorSpace`in e){let t=i(e);if(t)return t}if(t===`dimension`||t===`duration`||r(e)&&`value`in e&&`unit`in e){let t=a(e);if(t)return t}if(t===`cubicBezier`&&Array.isArray(e))return`cubic-bezier(${e.join(`, `)})`;if(Array.isArray(e))return e.map(String).join(`, `);if(r(e)){let t=i(e);if(t)return t;let n=a(e);if(n)return n}try{return JSON.stringify(e)}catch{return String(e)}}function s(t){return(0,e.isObject)(t)}const c=/^(?:light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)(?:[A-Z]\w*|[._-].+)?$/i;function l(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function u(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function d(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function f(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 p(e,t,n,r,i,a){if(!s(e))return;let c=d(e,n);if(l(e)){let n=f(e),s={path:t.join(`.`),type:c,value:n,cssValue:o(n,c),description:u(e),theme:r};a.push(i?i(s):s);return}for(let[n,o]of Object.entries(e))n.startsWith(`$`)||p(o,[...t,n],c,r,i,a)}function m(e){if(!s(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));if(t.length>0&&t.every(e=>c.test(e))){let n=e;return t.map(e=>({id:e,tokens:n[e]}))}return[{id:`default`,tokens:e}]}function h(e,t={}){let n=t.includeTypes?new Set(t.includeTypes):void 0,r=[];for(let n of m(e)){let e=n.id==="default"?void 0:n.id;p(n.tokens,[],void 0,e,t.enrichToken,r)}return n?r.filter(e=>!e.type||n.has(e.type)):r}function g(t){return(0,e.isObject)(t)}function _(e,t){return v(e,t)}function v(e,t){if(!g(t))return e;if(!g(e))return e??t;if(l(t)||l(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?v(r,n[t]):r}return n}function y(e){return e.trim().toLowerCase().replaceAll(/[^a-z0-9]+/g,`-`).replaceAll(/^-+|-+$/g,``)}function b(e){return(0,n.titleCase)(e)}function x(e,t){if(!e||!t)return e;let n=` (${b(t)})`;return e.endsWith(n)?e:`${e}${n}`}function S(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}-${y(n)}`}):e}function C(e,t){let n={};for(let[r,i]of Object.entries(e)){let e=S(r,t);n[e]={...i,path:i.path?S(i.path,t):e}}return n}function w(e){let t=e.lastIndexOf(`/`);return t>=0?e.slice(t+1):e}function T(e,t={}){let n=t.name??e.name,r=x(t.displayName??t.title??e.title??(n?b(w(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 E(e){return e.displayName??b(e.name)}function D(t){return(0,e.isObject)(t)}function O(e,t){return`--${t}-${e.split(`.`).filter(Boolean).join(`-`).replaceAll(/[^\w-]+/g,`-`)}`}function k(e,t,n,r){return{path:e,language:r,chunks:[{content:t,meta:n}]}}Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return o}});