@razorwind/core 0.0.47 → 0.0.48

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 (76) hide show
  1. package/dist/{config-BjuUx31T.d.cts → config-BtscEr7S.d.cts} +9 -4
  2. package/dist/{config-BjuUx31T.d.cts.map → config-BtscEr7S.d.cts.map} +1 -1
  3. package/dist/{config-CEPqgKnD.d.mts → config-CNTGHrST.d.mts} +8 -3
  4. package/dist/config-CNTGHrST.d.mts.map +1 -0
  5. package/dist/flatten-tokens-CMlVe_J6.d.cts +54 -0
  6. package/dist/flatten-tokens-CMlVe_J6.d.cts.map +1 -0
  7. package/dist/flatten-tokens-DgTPHEhI.d.mts +54 -0
  8. package/dist/flatten-tokens-DgTPHEhI.d.mts.map +1 -0
  9. package/dist/{fonts-CUwsBEd5.mjs → fonts-BiuIJVev.mjs} +4 -4
  10. package/dist/fonts-BiuIJVev.mjs.map +1 -0
  11. package/dist/{fonts-75PPb25H.cjs → fonts-CkBPEFie.cjs} +2 -2
  12. package/dist/{index-DXx1b3vZ.d.cts → index-B7MsziQp.d.cts} +5 -5
  13. package/dist/{index-DXx1b3vZ.d.cts.map → index-B7MsziQp.d.cts.map} +1 -1
  14. package/dist/{index-DovYOOtL.d.cts → index-CwN0c1Q4.d.cts} +1 -1
  15. package/dist/{index-D7VrdiAn.d.mts → index-CzbZzpnz.d.mts} +4 -4
  16. package/dist/{index-D7VrdiAn.d.mts.map → index-CzbZzpnz.d.mts.map} +1 -1
  17. package/dist/{index-crrCGMN9.d.mts → index-CzjDptav.d.mts} +4 -4
  18. package/dist/{index-crrCGMN9.d.mts.map → index-CzjDptav.d.mts.map} +1 -1
  19. package/dist/{index-ktFi0nZL.d.mts → index-D5L2WXYk.d.mts} +1 -1
  20. package/dist/{index-DNAWtBG8.d.cts → index-Di7vqmsi.d.cts} +4 -4
  21. package/dist/{index-DNAWtBG8.d.cts.map → index-Di7vqmsi.d.cts.map} +1 -1
  22. package/dist/index.cjs +1 -1
  23. package/dist/index.d.cts +82 -16
  24. package/dist/index.d.cts.map +1 -1
  25. package/dist/index.d.mts +82 -16
  26. package/dist/index.d.mts.map +1 -1
  27. package/dist/index.mjs +1 -1
  28. package/dist/lib/fonts/index.cjs +1 -1
  29. package/dist/lib/fonts/index.d.cts +1 -1
  30. package/dist/lib/fonts/index.d.mts +1 -1
  31. package/dist/lib/fonts/index.mjs +1 -1
  32. package/dist/lib/tokens/index.cjs +1 -1
  33. package/dist/lib/tokens/index.d.cts +1 -1
  34. package/dist/lib/tokens/index.d.mts +1 -1
  35. package/dist/lib/tokens/index.mjs +1 -1
  36. package/dist/{plugin-BocNoTkM.d.mts → plugin-0UYp_yIy.d.cts} +2 -2
  37. package/dist/{plugin-DMOM9PDs.d.cts.map → plugin-0UYp_yIy.d.cts.map} +1 -1
  38. package/dist/{plugin-DMOM9PDs.d.cts → plugin-CH6vFnxu.d.mts} +2 -2
  39. package/dist/plugin-CH6vFnxu.d.mts.map +1 -0
  40. package/dist/plugin.d.cts +2 -2
  41. package/dist/plugin.d.mts +2 -2
  42. package/dist/schema/index.cjs +1 -1
  43. package/dist/schema/index.d.cts +2 -2
  44. package/dist/schema/index.d.mts +2 -2
  45. package/dist/schema/index.mjs +1 -1
  46. package/dist/{schema-D0sXEBjV.cjs → schema-BCofDJWf.cjs} +1 -1
  47. package/dist/{schema-Crr8KMUY.d.cts → schema-BwOBgJIM.d.cts} +6 -1
  48. package/dist/{schema-Crr8KMUY.d.cts.map → schema-BwOBgJIM.d.cts.map} +1 -1
  49. package/dist/{schema-Crr8KMUY.d.mts → schema-BwOBgJIM.d.mts} +6 -1
  50. package/dist/schema-BwOBgJIM.d.mts.map +1 -0
  51. package/dist/{schema-Btk_-NEI.mjs → schema-CXK5pVmJ.mjs} +2 -2
  52. package/dist/schema-CXK5pVmJ.mjs.map +1 -0
  53. package/dist/tokens-By75va9Y.cjs +7 -0
  54. package/dist/tokens-DFYNBFFR.mjs +8 -0
  55. package/dist/tokens-DFYNBFFR.mjs.map +1 -0
  56. package/dist/utils/index.cjs +1 -1
  57. package/dist/utils/index.d.cts +78 -92
  58. package/dist/utils/index.d.cts.map +1 -1
  59. package/dist/utils/index.d.mts +78 -92
  60. package/dist/utils/index.d.mts.map +1 -1
  61. package/dist/utils/index.mjs +1 -1
  62. package/dist/utils-CDYdsyyW.mjs +2 -0
  63. package/dist/utils-CDYdsyyW.mjs.map +1 -0
  64. package/dist/utils-DyK4l_bT.cjs +1 -0
  65. package/package.json +2 -2
  66. package/dist/config-CEPqgKnD.d.mts.map +0 -1
  67. package/dist/fonts-CUwsBEd5.mjs.map +0 -1
  68. package/dist/plugin-BocNoTkM.d.mts.map +0 -1
  69. package/dist/schema-Btk_-NEI.mjs.map +0 -1
  70. package/dist/schema-Crr8KMUY.d.mts.map +0 -1
  71. package/dist/tokens-BSuKch7x.cjs +0 -7
  72. package/dist/tokens-CsosSHvJ.mjs +0 -8
  73. package/dist/tokens-CsosSHvJ.mjs.map +0 -1
  74. package/dist/utils-B5uabOd5.mjs +0 -2
  75. package/dist/utils-B5uabOd5.mjs.map +0 -1
  76. package/dist/utils-BiL8zQzg.cjs +0 -1
@@ -1,9 +1,9 @@
1
- import { O as Components, a as Icons, m as Fonts, t as Schema } from "./schema-Crr8KMUY.cjs";
1
+ import { O as Components, a as Icons, m as Fonts, t as Schema } from "./schema-BwOBgJIM.cjs";
2
2
  import { PreprocessedTokens } from "style-dictionary";
3
+ import { GeneratedDocument } from "@power-plant/core";
3
4
  import { Tokens } from "@power-plant/dtcg-schema";
4
5
  import { EnvPaths } from "@stryke/env/get-env-paths";
5
6
  import { MaybePromise, RequiredKeys } from "@stryke/types/base";
6
- import { GeneratedDocument } from "@power-plant/core";
7
7
  import { DesignTokens } from "style-dictionary/types";
8
8
  //#region src/types/plugin.d.ts
9
9
  /**
@@ -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. 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. 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
  *
@@ -214,6 +214,11 @@ interface UserConfigParams {
214
214
  type UserConfigFnObject = (config: UserConfig) => UserConfig;
215
215
  type UserConfigFnPromise = (params: UserConfigParams) => Promise<UserConfig | UserConfig[]>;
216
216
  type UserConfigFn = (params: UserConfigParams) => UserConfig | UserConfig[] | Promise<UserConfig | UserConfig[]>;
217
+ /**
218
+ * Config file export. An array of {@link UserConfig} objects is treated as
219
+ * independent generation runs (load tokens, extract, validate, generate
220
+ * for each item).
221
+ */
217
222
  type UserConfigExport = UserConfig | UserConfig[] | Promise<UserConfig | UserConfig[]> | UserConfigFnObject | UserConfigFnPromise | UserConfigFn;
218
223
  type Config = RequiredKeys<UserConfig, "componentsPath" | "iconsPath" | "fontsPath" | "plugins"> & {
219
224
  cwd: string;
@@ -223,4 +228,4 @@ type Config = RequiredKeys<UserConfig, "componentsPath" | "iconsPath" | "fontsPa
223
228
  };
224
229
  //#endregion
225
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 };
226
- //# sourceMappingURL=config-BjuUx31T.d.cts.map
231
+ //# sourceMappingURL=config-BtscEr7S.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-BjuUx31T.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;KAC1C,mBACR,aACA,eACA,QAAQ,aAAa,gBACrB,qBACA,sBACA;KAEQ,SAAS,aACnB;EAGA;EACA,UAAU;IACR"}
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,4 +1,4 @@
1
- import { O as Components, a as Icons, m as Fonts, t as Schema } from "./schema-Crr8KMUY.mjs";
1
+ import { O as Components, a as Icons, m as Fonts, t as Schema } from "./schema-BwOBgJIM.mjs";
2
2
  import { GeneratedDocument } from "@power-plant/core";
3
3
  import { EnvPaths } from "@stryke/env/get-env-paths";
4
4
  import { PreprocessedTokens } from "style-dictionary";
@@ -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. 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. 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
  *
@@ -214,6 +214,11 @@ interface UserConfigParams {
214
214
  type UserConfigFnObject = (config: UserConfig) => UserConfig;
215
215
  type UserConfigFnPromise = (params: UserConfigParams) => Promise<UserConfig | UserConfig[]>;
216
216
  type UserConfigFn = (params: UserConfigParams) => UserConfig | UserConfig[] | Promise<UserConfig | UserConfig[]>;
217
+ /**
218
+ * Config file export. An array of {@link UserConfig} objects is treated as
219
+ * independent generation runs (load tokens, extract, validate, generate
220
+ * for each item).
221
+ */
217
222
  type UserConfigExport = UserConfig | UserConfig[] | Promise<UserConfig | UserConfig[]> | UserConfigFnObject | UserConfigFnPromise | UserConfigFn;
218
223
  type Config = RequiredKeys<UserConfig, "componentsPath" | "iconsPath" | "fontsPath" | "plugins"> & {
219
224
  cwd: string;
@@ -223,4 +228,4 @@ type Config = RequiredKeys<UserConfig, "componentsPath" | "iconsPath" | "fontsPa
223
228
  };
224
229
  //#endregion
225
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 };
226
- //# sourceMappingURL=config-CEPqgKnD.d.mts.map
231
+ //# sourceMappingURL=config-CNTGHrST.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-CNTGHrST.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":""}
@@ -0,0 +1,54 @@
1
+ import { n as Tokens } from "./index-CwN0c1Q4.cjs";
2
+ //#region src/utils/flatten-tokens.d.ts
3
+ /**
4
+ * A flattened design token row produced by {@link flattenTokens}.
5
+ */
6
+ interface BaseFlatToken {
7
+ /** Dot-separated token path (e.g. `color.primary`). */
8
+ path: string;
9
+ /** DTCG `$type`, when known. */
10
+ type?: string;
11
+ /** Raw `$value` from the token document. */
12
+ value: unknown;
13
+ /** CSS-friendly string form of {@link value}. */
14
+ cssValue: string;
15
+ /** Optional DTCG `$description`. */
16
+ description?: string;
17
+ /** Theme / set id when tokens are a `Record<string, Tokens>`. */
18
+ theme?: string;
19
+ }
20
+ interface TokenSet {
21
+ id: string;
22
+ tokens: Tokens;
23
+ }
24
+ /**
25
+ * Theme-like keys for splitting multi-theme token records.
26
+ *
27
+ * Extends core {@link ../lib/tokens/constants#THEME_BASENAME_PATTERN} with
28
+ * camelCase suffixes from `@razorwind/color-variants` (e.g. `darkHighContrast`).
29
+ */
30
+ declare const TOKEN_SET_THEME_PATTERN: RegExp;
31
+ /**
32
+ * True when `node` is a DTCG token leaf rather than a nested group.
33
+ */
34
+ declare function isTokenLeaf(node: Record<string, unknown>): boolean;
35
+ /**
36
+ * Split `Schema.tokens` into one or more named token sets.
37
+ *
38
+ * A record whose keys all look like themes (`light`, `dark`, …) is treated as
39
+ * multi-theme input; otherwise the whole document is a single set.
40
+ */
41
+ declare function resolveTokenSets(tokens: Tokens | Record<string, Tokens>): TokenSet[];
42
+ interface FlattenTokensOptions<T extends BaseFlatToken = BaseFlatToken> {
43
+ /** When set, only tokens whose `$type` is listed are returned. */
44
+ includeTypes?: readonly string[];
45
+ /** Map each base row before it is appended (e.g. add `cssVar`). */
46
+ enrichToken?: (token: BaseFlatToken) => T;
47
+ }
48
+ /**
49
+ * Flatten DTCG token trees into rows for theme mapping or documentation.
50
+ */
51
+ declare function flattenTokens<T extends BaseFlatToken = BaseFlatToken>(tokens: Tokens | Record<string, Tokens>, options?: FlattenTokensOptions<T>): T[];
52
+ //#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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,54 @@
1
+ import { n as Tokens } from "./index-D5L2WXYk.mjs";
2
+ //#region src/utils/flatten-tokens.d.ts
3
+ /**
4
+ * A flattened design token row produced by {@link flattenTokens}.
5
+ */
6
+ interface BaseFlatToken {
7
+ /** Dot-separated token path (e.g. `color.primary`). */
8
+ path: string;
9
+ /** DTCG `$type`, when known. */
10
+ type?: string;
11
+ /** Raw `$value` from the token document. */
12
+ value: unknown;
13
+ /** CSS-friendly string form of {@link value}. */
14
+ cssValue: string;
15
+ /** Optional DTCG `$description`. */
16
+ description?: string;
17
+ /** Theme / set id when tokens are a `Record<string, Tokens>`. */
18
+ theme?: string;
19
+ }
20
+ interface TokenSet {
21
+ id: string;
22
+ tokens: Tokens;
23
+ }
24
+ /**
25
+ * Theme-like keys for splitting multi-theme token records.
26
+ *
27
+ * Extends core {@link ../lib/tokens/constants#THEME_BASENAME_PATTERN} with
28
+ * camelCase suffixes from `@razorwind/color-variants` (e.g. `darkHighContrast`).
29
+ */
30
+ declare const TOKEN_SET_THEME_PATTERN: RegExp;
31
+ /**
32
+ * True when `node` is a DTCG token leaf rather than a nested group.
33
+ */
34
+ declare function isTokenLeaf(node: Record<string, unknown>): boolean;
35
+ /**
36
+ * Split `Schema.tokens` into one or more named token sets.
37
+ *
38
+ * A record whose keys all look like themes (`light`, `dark`, …) is treated as
39
+ * multi-theme input; otherwise the whole document is a single set.
40
+ */
41
+ declare function resolveTokenSets(tokens: Tokens | Record<string, Tokens>): TokenSet[];
42
+ interface FlattenTokensOptions<T extends BaseFlatToken = BaseFlatToken> {
43
+ /** When set, only tokens whose `$type` is listed are returned. */
44
+ includeTypes?: readonly string[];
45
+ /** Map each base row before it is appended (e.g. add `cssVar`). */
46
+ enrichToken?: (token: BaseFlatToken) => T;
47
+ }
48
+ /**
49
+ * Flatten DTCG token trees into rows for theme mapping or documentation.
50
+ */
51
+ declare function flattenTokens<T extends BaseFlatToken = BaseFlatToken>(tokens: Tokens | Record<string, Tokens>, options?: FlattenTokensOptions<T>): T[];
52
+ //#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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatten-tokens-DgTPHEhI.d.mts","names":[],"sources":["../src/utils/flatten-tokens.ts"],"mappings":""}
@@ -1,10 +1,10 @@
1
- import{a as e,c as t,r as n,s as r}from"./fonts-B0ESWBBC.mjs";import{createDefu as i}from"defu";import{existsSync as a}from"@stryke/fs/exists";import{isDirectory as o}from"@stryke/fs/is-file";import{readJsonFile as s}from"@stryke/fs/json";import{appendPath as c}from"@stryke/path/append";import{findFileExtensionSafe as l,findFileName as u,findFolderName as ee}from"@stryke/path/file-path-fns";import{joinPaths as d}from"@stryke/path/join";import{titleCase as f}from"@stryke/string-format/title-case";import{isSetObject as p}from"@stryke/type-checks/is-set-object";import{isSetString as m}from"@stryke/type-checks/is-set-string";import{copyFile as h,mkdir as g,readdir as _}from"node:fs/promises";import{basename as v,isAbsolute as y,join as b,resolve as x}from"node:path";const S=new Set([`woff2`,`woff`,`ttf`,`otf`,`otc`,`svg`]),C={woff2:`woff2`,woff:`woff`,ttf:`truetype`,otf:`opentype`,otc:`opentype`,svg:`svg`},w={thin:100,hairline:100,extralight:200,ultralight:200,light:300,regular:400,normal:400,book:400,roman:400,medium:500,semibold:600,demibold:600,bold:700,extrabold:800,ultrabold:800,black:900,heavy:900},T={sans:`sans-serif`,serif:`serif`,mono:`monospace`,display:`sans-serif`,heading:`sans-serif`,body:`sans-serif`,code:`monospace`},E=[`sans`,`body`,`heading`,`display`],D=[`mono`,`code`];async function O(e,t){if(!e)return[];let n=[];for(let r of Object.values(e))if(r.source===`local`){await g(t,{recursive:!0});for(let e of r.files){if(!e.path||!a(e.path))continue;let r=b(t,v(e.path));await h(e.path,r),n.push(r)}}return n}function k(e){let t=e.trim();return!t||/^[a-z-]+$/i.test(t)&&!/\s/.test(t)?t:`"${t.replaceAll(`"`,`\\"`)}"`}function A(e){return e.family?.trim()||e.title?.trim()||e.name}function j(e){let t=[k(A(e))];for(let n of e.fallbacks??[]){let e=k(n);e&&!t.includes(e)&&t.push(e)}if(e.role){let n=T[e.role];n&&!t.includes(n)&&t.push(n)}return t.filter(Boolean).join(`, `)}function M(e){let t=A(e).replaceAll(` `,`+`),n=e.display??`swap`,r=(e.weights??[]).map(String),i=(e.styles??[`normal`]).includes(`italic`),a=t;if(e.variable){let e=r.length===2?`${r[0]}..${r[1]}`:`100..900`;a=i?`${t}:ital,wght@0,${e};1,${e}`:`${t}:wght@${e}`}else if(r.length>0){if(i){let e=[];for(let t of r)e.push(`0,${t}`);for(let t of r)e.push(`1,${t}`);a=`${t}:ital,wght@${e.join(`;`)}`}else a=`${t}:wght@${r.join(`;`)}`}return`https://fonts.googleapis.com/css2?family=${a}&display=${n}`}function te(e){return e.format}function ne(e,t){let n=v(e.path),r=`${t.endsWith(`/`)?t:`${t}/`}${n}`,i=te(e);return i?`url("${r}") format("${i}")`:`url("${r}")`}function re(e,t){let n=A(e),r=e.display??`swap`;return e.files.map(e=>{let i=[`@font-face {`,` font-family: ${k(n)};`,` src: ${ne(e,t)};`];return e.weight!==void 0&&i.push(` font-weight: ${e.weight};`),e.style&&i.push(` font-style: ${e.style};`),e.unicodeRange&&i.push(` unicode-range: ${e.unicodeRange};`),i.push(` font-display: ${r};`,`}`),i.join(`
1
+ import{a as e,c as t,r as n,s as r}from"./fonts-B0ESWBBC.mjs";import{createDefu as i}from"defu";import{basename as a,isAbsolute as o,join as s,resolve as c}from"node:path";import{titleCase as l}from"@stryke/string-format/title-case";import{existsSync as u}from"@stryke/fs/exists";import{isDirectory as d}from"@stryke/fs/is-file";import{readJsonFile as f}from"@stryke/fs/json";import{appendPath as p}from"@stryke/path/append";import{findFileExtensionSafe as m,findFileName as h,findFolderName as ee}from"@stryke/path/file-path-fns";import{joinPaths as g}from"@stryke/path/join";import{isSetObject as _}from"@stryke/type-checks/is-set-object";import{isSetString as v}from"@stryke/type-checks/is-set-string";import{copyFile as y,mkdir as b,readdir as x}from"node:fs/promises";const S=new Set([`woff2`,`woff`,`ttf`,`otf`,`otc`,`svg`]),C={woff2:`woff2`,woff:`woff`,ttf:`truetype`,otf:`opentype`,otc:`opentype`,svg:`svg`},w={thin:100,hairline:100,extralight:200,ultralight:200,light:300,regular:400,normal:400,book:400,roman:400,medium:500,semibold:600,demibold:600,bold:700,extrabold:800,ultrabold:800,black:900,heavy:900},T={sans:`sans-serif`,serif:`serif`,mono:`monospace`,display:`sans-serif`,heading:`sans-serif`,body:`sans-serif`,code:`monospace`},te=[`sans`,`body`,`heading`,`display`],ne=[`mono`,`code`];async function E(e,t){if(!e)return[];let n=[];for(let r of Object.values(e))if(r.source===`local`){await b(t,{recursive:!0});for(let e of r.files){if(!e.path||!u(e.path))continue;let r=s(t,a(e.path));await y(e.path,r),n.push(r)}}return n}function D(e){let t=e.trim();return!t||/^[a-z-]+$/i.test(t)&&!/\s/.test(t)?t:`"${t.replaceAll(`"`,`\\"`)}"`}function O(e){return e.family?.trim()||e.title?.trim()||e.name}function k(e){let t=[D(O(e))];for(let n of e.fallbacks??[]){let e=D(n);e&&!t.includes(e)&&t.push(e)}if(e.role){let n=T[e.role];n&&!t.includes(n)&&t.push(n)}return t.filter(Boolean).join(`, `)}function A(e){let t=O(e).replaceAll(` `,`+`),n=e.display??`swap`,r=(e.weights??[]).map(String),i=(e.styles??[`normal`]).includes(`italic`),a=t;if(e.variable){let e=r.length===2?`${r[0]}..${r[1]}`:`100..900`;a=i?`${t}:ital,wght@0,${e};1,${e}`:`${t}:wght@${e}`}else if(r.length>0){if(i){let e=[];for(let t of r)e.push(`0,${t}`);for(let t of r)e.push(`1,${t}`);a=`${t}:ital,wght@${e.join(`;`)}`}else a=`${t}:wght@${r.join(`;`)}`}return`https://fonts.googleapis.com/css2?family=${a}&display=${n}`}function j(e){return e.format}function M(e,t){let n=a(e.path),r=`${t.endsWith(`/`)?t:`${t}/`}${n}`,i=j(e);return i?`url("${r}") format("${i}")`:`url("${r}")`}function re(e,t){let n=O(e),r=e.display??`swap`;return e.files.map(e=>{let i=[`@font-face {`,` font-family: ${D(n)};`,` src: ${M(e,t)};`];return e.weight!==void 0&&i.push(` font-weight: ${e.weight};`),e.style&&i.push(` font-style: ${e.style};`),e.unicodeRange&&i.push(` unicode-range: ${e.unicodeRange};`),i.push(` font-display: ${r};`,`}`),i.join(`
2
2
  `)}).join(`
3
3
 
4
- `)}function N(e){return Object.values(e).filter(e=>e.source===`google`).map(e=>`@import url("${M(e)}");`).join(`
4
+ `)}function N(e){return Object.values(e).filter(e=>e.source===`google`).map(e=>`@import url("${A(e)}");`).join(`
5
5
  `)}function P(e,t={}){let n=t.urlPrefix??`./fonts/`;return Object.values(e).filter(e=>e.source===`local`).map(e=>re(e,n)).join(`
6
6
 
7
7
  `)}function F(e,t={}){return[N(e),P(e,t)].filter(Boolean).join(`
8
8
 
9
- `)}function I(e,t,n={}){if(!t||Object.keys(t).length===0)return e;let r=F(t,n);return r?e?`${r}\n\n${e}`:`${r}\n`:e}const L=i((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function R(e,t){return y(t)?t:x(e,t)}function z(e){return Array.isArray(e)?e.filter(m):m(e)?[e]:[]}function B(e){let t=l(e)?.toLowerCase();return!!(t&&S.has(t))}function V(e){let t=l(e)?.toLowerCase();return t?C[t]:void 0}async function H(e){try{return(await _(e,{withFileTypes:!0})).filter(e=>e.isFile()&&B(e.name)).map(e=>e.name)}catch{return[]}}const U=Object.keys(w).sort((e,t)=>t.length-e.length);function W(e){let t=V(e),n=u(e,{withExtension:!1})??e,r,i=/(?:[-_ ](italic|oblique|it)|Italic|Oblique)$/.exec(n);i&&(r=(i[1]??i[0]).toLowerCase()===`oblique`?`oblique`:`italic`,n=n.slice(0,i.index));let a,o=/[-_ ]([^_-]+)$/.exec(n),s=(o?.[1]??n).toLowerCase().replaceAll(/[\s_]/g,``);for(let e of U)if(s===e||s.endsWith(e)){if(a=w[e],o)n=n.slice(0,o.index);else{let t=n.toLowerCase().lastIndexOf(e);n=t>0?n.slice(0,t):n}break}return{family:n.replaceAll(/[-_]+$/g,``).trim()||n,...a===void 0?{}:{weight:a},...r?{style:r}:{},...t?{format:t}:{}}}function G(e){return e.trim().toLowerCase().replaceAll(/[^a-z0-9]+/g,`-`).replaceAll(/^-+|-+$/g,``)}function K(e){if(!e)return;let t=n.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){let e=n.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function q(e,t){if(e.source===`google`||e.source===`local`)return e.source;if(t&&t.length>0)return`local`;if(`weights`in e||`subsets`in e||`variable`in e||`styles`in e||m(e.family)&&!t)return`google`}function J(n){if(!p(n))return;let i=`files`in n?K(n.files):void 0,a=q(n,i);if(!a){let t=e.safeParse(n);return t.success?t.data:void 0}let o={...n,source:a,...i?{files:i}:{}},s=a===`google`?r.partial().safeParse({...o,source:`google`}):t.partial().safeParse({...o,source:`local`});if(s.success)return Object.keys(s.data).length>0?s.data:void 0}function Y(e){return p(e)&&`path`in e}async function X(e){let t=d(e,`package.json`);if(!a(t))return;let n;try{n=await s(t)}catch{return}let r={};if(m(n.name)&&(r.name=n.name,r.title=n.name),m(n.description)&&(r.description=n.description),Array.isArray(n.keywords)){let e=n.keywords.filter(m);e.length>0&&(r.tags=e)}let i=n.razorwind,o;if(Y(i)||Array.isArray(i)){let e=K(i);e&&(o={source:`local`,files:e})}else p(i)&&(o=J(i));let c=L(o??{},r);return Object.keys(c).length>0?c:void 0}async function ie(e){let t=d(e,`font.json`);if(!a(t))return;let n;try{n=await s(t)}catch{return}if(Y(n)||Array.isArray(n)){let e=K(n);if(e)return{source:`local`,files:e}}return J(n)}function ae(e,t,n){return t?.length?t.map(t=>{let n=c(t.path,e);return{...t,path:n,format:t.format??V(t.path)}}):n.map(t=>{let n=W(t);return{path:c(t,e),format:n.format,...n.weight===void 0?{}:{weight:n.weight},...n.style?{style:n.style}:{}}})}async function oe(t){let n=await X(t),r=await ie(t),i=await H(t);if(!n&&!r&&i.length===0)return;let a=L(r??{},n??{}),o=ee(t),s=m(a.name)?a.name:o,c=m(a.title)?a.title:f(s),l=ae(t,a.source===`local`?a.files:void 0,i),u=(a.source??(l.length>0?`local`:`google`))===`google`?{...a,source:`google`,name:s,title:c,family:a.family??c}:{...a,source:`local`,name:s,title:c,family:a.family??c,files:l.length>0?l:a.source===`local`?a.files:l},d=e.safeParse(u);return d.success?d.data:void 0}function se(e,t,n){let r=G(t)||`font`,i=e[r];if(i?.source===`local`){let t=[...i.files],a=t.findIndex(e=>e.path===n.path);a>=0?t[a]=n:t.push(n),e[r]={...i,files:t};return}i||(e[r]={source:`local`,name:r,title:f(t),family:t,files:[n]})}async function ce(e){let t={},n=z(e.options.fontsPath);for(let r of n){let n=R(e.cwd,r);if(!(!a(n)||!o(n)))try{let e=await _(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=d(n,r.name);if(r.isDirectory()){let n=await oe(e);if(n){let e=t[n.name];t[n.name]=e?L(n,e):n}continue}if(r.isFile()&&B(r.name)){let n=W(r.name);se(t,n.family,{path:e,format:n.format,...n.weight===void 0?{}:{weight:n.weight},...n.style?{style:n.style}:{}})}}}catch{continue}}return t}const le=/@font-face\s*\{([^{}]*)\}/gi,ue=/@import\s+(?:url\()?['"]?(https:\/\/fonts\.googleapis\.com\/css2?\?[^)'"\s]+)['"]?\)?\s*;/gi,de=/url\(\s*['"]?(https:\/\/fonts\.googleapis\.com\/css2?\?[^)'"\s]+)['"]?\s*\)/gi,fe=/font-family\s*:\s*([^;]+);/i,pe=/font-weight\s*:\s*([^;]+);/i,me=/font-style\s*:\s*(normal|italic|oblique)/i,he=/font-display\s*:\s*(auto|block|swap|fallback|optional)/i,ge=/unicode-range\s*:\s*([^;]+);/i,_e=/url\(\s*['"]?([^)'"]+)['"]?\s*\)(?:\s*format\(\s*['"]?([\w-]+)['"]?\s*\))?/i;function Z(e){return e.trim().toLowerCase().replaceAll(/[^a-z0-9]+/g,`-`).replaceAll(/^-+|-+$/g,``)}function ve(e){return e.trim().replaceAll(/^['"]|['"]$/g,``).trim()}function Q(e){if(!e)return;let t=e.trim(),n=Number.parseInt(t,10);return Number.isNaN(n)?t||void 0:n}function ye(e,t){if(e){let t=e.toLowerCase();if(t===`woff2`||t===`woff`||t===`truetype`||t===`opentype`||t===`svg`)return t}let n=t.split(`.`).pop()?.split(`?`)[0]?.toLowerCase();return n?C[n]:void 0}function be(e,t,n,r){let i=Z(t)||`font`,a=e[i];if(a?.source===`local`){let t=[...a.files],r=t.findIndex(e=>e.path===n.path);r>=0?t[r]=n:t.push(n),e[i]={...a,files:t};return}a||(e[i]={source:`local`,name:i,title:f(t),family:t,...r?{display:r}:{},files:[n]})}function $(e){let t;try{t=new URL(e)}catch{return[]}let n=t.searchParams.get(`display`),r=n===`auto`||n===`block`||n===`swap`||n===`fallback`||n===`optional`?n:void 0,i=t.searchParams.getAll(`family`),a=[];for(let e of i){let[t,n]=e.split(`:`),i=(t??``).replaceAll(`+`,` `).trim();if(!i)continue;let o=Z(i),s=[],c=new Set,l=!1;if(n){let[e,t]=n.split(`@`),r=(e??``).split(`,`),i=r.indexOf(`ital`),a=r.indexOf(`wght`),o=(t??``).split(`;`).filter(Boolean);for(let e of o){let t=e.split(`,`);i>=0&&t[i]===`1`?c.add(`italic`):c.add(`normal`);let n=a>=0?t[a]:t[0];if(n?.includes(`..`)){l=!0;let[e,t]=n.split(`..`);e&&s.push(e),t&&s.push(t)}else{let e=Q(n);e!==void 0&&!s.includes(e)&&s.push(e)}}}a.push({source:`google`,name:o||`font`,title:f(i),family:i,...r?{display:r}:{},...s.length>0?{weights:s}:{},...c.size>0?{styles:[...c]}:{},...l?{variable:!0}:{}})}return a}function xe(e){let t=new Set;for(let n of e.matchAll(ue))n[1]&&t.add(n[1]);for(let n of e.matchAll(de))n[1]&&t.add(n[1]);return[...t]}function Se(e){let t=e.replace(/\/\*[\s\S]*?\*\//g,``),n={};for(let e of xe(t))for(let t of $(e))n[t.name]??=t;for(let e of t.matchAll(le)){let t=e[1]??``,r=ve(fe.exec(t)?.[1]??``);if(!r)continue;let i=_e.exec(t),a=i?.[1];if(!a||a.includes(`fonts.googleapis.com`))continue;let o={path:a,format:ye(i?.[2],a),weight:Q(pe.exec(t)?.[1]),style:me.exec(t)?.[1],unicodeRange:ge.exec(t)?.[1]?.trim()},s=he.exec(t)?.[1];be(n,r,o,s)}return n}function Ce(e){return!e||Object.keys(e).length===0}function we(e,t){let n={...e??{}};for(let[e,r]of Object.entries(t??{}))n[e]??=r;return n}function Te(e,t){if(!e)return;let n=Array.isArray(t)?t:[t];for(let t of n){let n=Object.values(e).find(e=>e.role===t);if(n)return n}}export{T as _,ce as a,w as b,A as c,N as d,P as f,C as g,S as h,Te as i,I as l,O as m,we as n,W as o,M as p,Se as r,j as s,Ce as t,F as u,D as v,E as y};
10
- //# sourceMappingURL=fonts-CUwsBEd5.mjs.map
9
+ `)}function I(e,t,n={}){if(!t||Object.keys(t).length===0)return e;let r=F(t,n);return r?e?`${r}\n\n${e}`:`${r}\n`:e}const L=i((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function R(e,t){return o(t)?t:c(e,t)}function z(e){return Array.isArray(e)?e.filter(v):v(e)?[e]:[]}function B(e){let t=m(e)?.toLowerCase();return!!(t&&S.has(t))}function V(e){let t=m(e)?.toLowerCase();return t?C[t]:void 0}async function H(e){try{return(await x(e,{withFileTypes:!0})).filter(e=>e.isFile()&&B(e.name)).map(e=>e.name)}catch{return[]}}const U=Object.keys(w).sort((e,t)=>t.length-e.length);function W(e){let t=V(e),n=h(e,{withExtension:!1})??e,r,i=/(?:[-_ ](italic|oblique|it)|Italic|Oblique)$/.exec(n);i&&(r=(i[1]??i[0]).toLowerCase()===`oblique`?`oblique`:`italic`,n=n.slice(0,i.index));let a,o=/[-_ ]([^_-]+)$/.exec(n),s=(o?.[1]??n).toLowerCase().replaceAll(/[\s_]/g,``);for(let e of U)if(s===e||s.endsWith(e)){if(a=w[e],o)n=n.slice(0,o.index);else{let t=n.toLowerCase().lastIndexOf(e);n=t>0?n.slice(0,t):n}break}return{family:n.replaceAll(/[-_]+$/g,``).trim()||n,...a===void 0?{}:{weight:a},...r?{style:r}:{},...t?{format:t}:{}}}function G(e){return e.trim().toLowerCase().replaceAll(/[^a-z0-9]+/g,`-`).replaceAll(/^-+|-+$/g,``)}function K(e){if(!e)return;let t=n.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){let e=n.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function q(e,t){if(e.source===`google`||e.source===`local`)return e.source;if(t&&t.length>0)return`local`;if(`weights`in e||`subsets`in e||`variable`in e||`styles`in e||v(e.family)&&!t)return`google`}function J(n){if(!_(n))return;let i=`files`in n?K(n.files):void 0,a=q(n,i);if(!a){let t=e.safeParse(n);return t.success?t.data:void 0}let o={...n,source:a,...i?{files:i}:{}},s=a===`google`?r.partial().safeParse({...o,source:`google`}):t.partial().safeParse({...o,source:`local`});if(s.success)return Object.keys(s.data).length>0?s.data:void 0}function Y(e){return _(e)&&`path`in e}async function X(e){let t=g(e,`package.json`);if(!u(t))return;let n;try{n=await f(t)}catch{return}let r={};if(v(n.name)&&(r.name=n.name,r.title=n.name),v(n.description)&&(r.description=n.description),Array.isArray(n.keywords)){let e=n.keywords.filter(v);e.length>0&&(r.tags=e)}let i=n.razorwind,a;if(Y(i)||Array.isArray(i)){let e=K(i);e&&(a={source:`local`,files:e})}else _(i)&&(a=J(i));let o=L(a??{},r);return Object.keys(o).length>0?o:void 0}async function ie(e){let t=g(e,`font.json`);if(!u(t))return;let n;try{n=await f(t)}catch{return}if(Y(n)||Array.isArray(n)){let e=K(n);if(e)return{source:`local`,files:e}}return J(n)}function ae(e,t,n){return t?.length?t.map(t=>{let n=p(t.path,e);return{...t,path:n,format:t.format??V(t.path)}}):n.map(t=>{let n=W(t);return{path:p(t,e),format:n.format,...n.weight===void 0?{}:{weight:n.weight},...n.style?{style:n.style}:{}}})}async function oe(t){let n=await X(t),r=await ie(t),i=await H(t);if(!n&&!r&&i.length===0)return;let a=L(r??{},n??{}),o=ee(t),s=v(a.name)?a.name:o,c=v(a.title)?a.title:l(s),u=ae(t,a.source===`local`?a.files:void 0,i),d=(a.source??(u.length>0?`local`:`google`))===`google`?{...a,source:`google`,name:s,title:c,family:a.family??c}:{...a,source:`local`,name:s,title:c,family:a.family??c,files:u.length>0?u:a.source===`local`?a.files:u},f=e.safeParse(d);return f.success?f.data:void 0}function se(e,t,n){let r=G(t)||`font`,i=e[r];if(i?.source===`local`){let t=[...i.files],a=t.findIndex(e=>e.path===n.path);a>=0?t[a]=n:t.push(n),e[r]={...i,files:t};return}i||(e[r]={source:`local`,name:r,title:l(t),family:t,files:[n]})}async function ce(e){let t={},n=z(e.options.fontsPath);for(let r of n){let n=R(e.cwd,r);if(!(!u(n)||!d(n)))try{let e=await x(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=g(n,r.name);if(r.isDirectory()){let n=await oe(e);if(n){let e=t[n.name];t[n.name]=e?L(n,e):n}continue}if(r.isFile()&&B(r.name)){let n=W(r.name);se(t,n.family,{path:e,format:n.format,...n.weight===void 0?{}:{weight:n.weight},...n.style?{style:n.style}:{}})}}}catch{continue}}return t}const le=/@font-face\s*\{([^{}]*)\}/gi,ue=/@import\s+(?:url\()?['"]?(https:\/\/fonts\.googleapis\.com\/css2?\?[^)'"\s]+)['"]?\)?\s*;/gi,de=/url\(\s*['"]?(https:\/\/fonts\.googleapis\.com\/css2?\?[^)'"\s]+)['"]?\s*\)/gi,fe=/font-family\s*:\s*([^;]+);/i,pe=/font-weight\s*:\s*([^;]+);/i,me=/font-style\s*:\s*(normal|italic|oblique)/i,he=/font-display\s*:\s*(auto|block|swap|fallback|optional)/i,ge=/unicode-range\s*:\s*([^;]+);/i,_e=/url\(\s*['"]?([^)'"]+)['"]?\s*\)(?:\s*format\(\s*['"]?([\w-]+)['"]?\s*\))?/i;function Z(e){return e.trim().toLowerCase().replaceAll(/[^a-z0-9]+/g,`-`).replaceAll(/^-+|-+$/g,``)}function ve(e){return e.trim().replaceAll(/^['"]|['"]$/g,``).trim()}function Q(e){if(!e)return;let t=e.trim(),n=Number.parseInt(t,10);return Number.isNaN(n)?t||void 0:n}function ye(e,t){if(e){let t=e.toLowerCase();if(t===`woff2`||t===`woff`||t===`truetype`||t===`opentype`||t===`svg`)return t}let n=t.split(`.`).pop()?.split(`?`)[0]?.toLowerCase();return n?C[n]:void 0}function be(e,t,n,r){let i=Z(t)||`font`,a=e[i];if(a?.source===`local`){let t=[...a.files],r=t.findIndex(e=>e.path===n.path);r>=0?t[r]=n:t.push(n),e[i]={...a,files:t};return}a||(e[i]={source:`local`,name:i,title:l(t),family:t,...r?{display:r}:{},files:[n]})}function $(e){let t;try{t=new URL(e)}catch{return[]}let n=t.searchParams.get(`display`),r=n===`auto`||n===`block`||n===`swap`||n===`fallback`||n===`optional`?n:void 0,i=t.searchParams.getAll(`family`),a=[];for(let e of i){let[t,n]=e.split(`:`),i=(t??``).replaceAll(`+`,` `).trim();if(!i)continue;let o=Z(i),s=[],c=new Set,u=!1;if(n){let[e,t]=n.split(`@`),r=(e??``).split(`,`),i=r.indexOf(`ital`),a=r.indexOf(`wght`),o=(t??``).split(`;`).filter(Boolean);for(let e of o){let t=e.split(`,`);i>=0&&t[i]===`1`?c.add(`italic`):c.add(`normal`);let n=a>=0?t[a]:t[0];if(n?.includes(`..`)){u=!0;let[e,t]=n.split(`..`);e&&s.push(e),t&&s.push(t)}else{let e=Q(n);e!==void 0&&!s.includes(e)&&s.push(e)}}}a.push({source:`google`,name:o||`font`,title:l(i),family:i,...r?{display:r}:{},...s.length>0?{weights:s}:{},...c.size>0?{styles:[...c]}:{},...u?{variable:!0}:{}})}return a}function xe(e){let t=new Set;for(let n of e.matchAll(ue))n[1]&&t.add(n[1]);for(let n of e.matchAll(de))n[1]&&t.add(n[1]);return[...t]}function Se(e){let t=e.replace(/\/\*[\s\S]*?\*\//g,``),n={};for(let e of xe(t))for(let t of $(e))n[t.name]??=t;for(let e of t.matchAll(le)){let t=e[1]??``,r=ve(fe.exec(t)?.[1]??``);if(!r)continue;let i=_e.exec(t),a=i?.[1];if(!a||a.includes(`fonts.googleapis.com`))continue;let o={path:a,format:ye(i?.[2],a),weight:Q(pe.exec(t)?.[1]),style:me.exec(t)?.[1],unicodeRange:ge.exec(t)?.[1]?.trim()},s=he.exec(t)?.[1];be(n,r,o,s)}return n}function Ce(e){return!e||Object.keys(e).length===0}function we(e,t){let n={...e??{}};for(let[e,r]of Object.entries(t??{}))n[e]??=r;return n}function Te(e,t){if(!e)return;let n=Array.isArray(t)?t:[t];for(let t of n){let n=Object.values(e).find(e=>e.role===t);if(n)return n}}export{T as _,ce as a,w as b,O as c,N as d,P as f,C as g,S as h,Te as i,I as l,E as m,we as n,W as o,A as p,Se as r,k as s,Ce as t,F as u,ne as v,te as y};
10
+ //# sourceMappingURL=fonts-BiuIJVev.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fonts-BiuIJVev.mjs","names":[],"sources":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- const e=require("./fonts-vhz5FAsy.cjs");let t=require("defu"),n=require("@stryke/fs/exists"),r=require("@stryke/fs/is-file"),i=require("@stryke/fs/json"),a=require("@stryke/path/append"),o=require("@stryke/path/file-path-fns"),s=require("@stryke/path/join"),c=require("@stryke/string-format/title-case"),l=require("@stryke/type-checks/is-set-object"),u=require("@stryke/type-checks/is-set-string"),d=require("node:fs/promises"),f=require("node:path");const p=new Set([`woff2`,`woff`,`ttf`,`otf`,`otc`,`svg`]),m={woff2:`woff2`,woff:`woff`,ttf:`truetype`,otf:`opentype`,otc:`opentype`,svg:`svg`},h={thin:100,hairline:100,extralight:200,ultralight:200,light:300,regular:400,normal:400,book:400,roman:400,medium:500,semibold:600,demibold:600,bold:700,extrabold:800,ultrabold:800,black:900,heavy:900},g={sans:`sans-serif`,serif:`serif`,mono:`monospace`,display:`sans-serif`,heading:`sans-serif`,body:`sans-serif`,code:`monospace`},_=[`sans`,`body`,`heading`,`display`],v=[`mono`,`code`];async function ee(e,t){if(!e)return[];let r=[];for(let i of Object.values(e))if(i.source===`local`){await(0,d.mkdir)(t,{recursive:!0});for(let e of i.files){if(!e.path||!(0,n.existsSync)(e.path))continue;let i=(0,f.join)(t,(0,f.basename)(e.path));await(0,d.copyFile)(e.path,i),r.push(i)}}return r}function y(e){let t=e.trim();return!t||/^[a-z-]+$/i.test(t)&&!/\s/.test(t)?t:`"${t.replaceAll(`"`,`\\"`)}"`}function b(e){return e.family?.trim()||e.title?.trim()||e.name}function x(e){let t=[y(b(e))];for(let n of e.fallbacks??[]){let e=y(n);e&&!t.includes(e)&&t.push(e)}if(e.role){let n=g[e.role];n&&!t.includes(n)&&t.push(n)}return t.filter(Boolean).join(`, `)}function S(e){let t=b(e).replaceAll(` `,`+`),n=e.display??`swap`,r=(e.weights??[]).map(String),i=(e.styles??[`normal`]).includes(`italic`),a=t;if(e.variable){let e=r.length===2?`${r[0]}..${r[1]}`:`100..900`;a=i?`${t}:ital,wght@0,${e};1,${e}`:`${t}:wght@${e}`}else if(r.length>0){if(i){let e=[];for(let t of r)e.push(`0,${t}`);for(let t of r)e.push(`1,${t}`);a=`${t}:ital,wght@${e.join(`;`)}`}else a=`${t}:wght@${r.join(`;`)}`}return`https://fonts.googleapis.com/css2?family=${a}&display=${n}`}function C(e){return e.format}function w(e,t){let n=(0,f.basename)(e.path),r=`${t.endsWith(`/`)?t:`${t}/`}${n}`,i=C(e);return i?`url("${r}") format("${i}")`:`url("${r}")`}function T(e,t){let n=b(e),r=e.display??`swap`;return e.files.map(e=>{let i=[`@font-face {`,` font-family: ${y(n)};`,` src: ${w(e,t)};`];return e.weight!==void 0&&i.push(` font-weight: ${e.weight};`),e.style&&i.push(` font-style: ${e.style};`),e.unicodeRange&&i.push(` unicode-range: ${e.unicodeRange};`),i.push(` font-display: ${r};`,`}`),i.join(`
1
+ const e=require("./fonts-vhz5FAsy.cjs");let t=require("defu"),n=require("node:path"),r=require("@stryke/string-format/title-case"),i=require("@stryke/fs/exists"),a=require("@stryke/fs/is-file"),o=require("@stryke/fs/json"),s=require("@stryke/path/append"),c=require("@stryke/path/file-path-fns"),l=require("@stryke/path/join"),u=require("@stryke/type-checks/is-set-object"),d=require("@stryke/type-checks/is-set-string"),f=require("node:fs/promises");const p=new Set([`woff2`,`woff`,`ttf`,`otf`,`otc`,`svg`]),m={woff2:`woff2`,woff:`woff`,ttf:`truetype`,otf:`opentype`,otc:`opentype`,svg:`svg`},h={thin:100,hairline:100,extralight:200,ultralight:200,light:300,regular:400,normal:400,book:400,roman:400,medium:500,semibold:600,demibold:600,bold:700,extrabold:800,ultrabold:800,black:900,heavy:900},g={sans:`sans-serif`,serif:`serif`,mono:`monospace`,display:`sans-serif`,heading:`sans-serif`,body:`sans-serif`,code:`monospace`},_=[`sans`,`body`,`heading`,`display`],v=[`mono`,`code`];async function ee(e,t){if(!e)return[];let r=[];for(let a of Object.values(e))if(a.source===`local`){await(0,f.mkdir)(t,{recursive:!0});for(let e of a.files){if(!e.path||!(0,i.existsSync)(e.path))continue;let a=(0,n.join)(t,(0,n.basename)(e.path));await(0,f.copyFile)(e.path,a),r.push(a)}}return r}function y(e){let t=e.trim();return!t||/^[a-z-]+$/i.test(t)&&!/\s/.test(t)?t:`"${t.replaceAll(`"`,`\\"`)}"`}function b(e){return e.family?.trim()||e.title?.trim()||e.name}function x(e){let t=[y(b(e))];for(let n of e.fallbacks??[]){let e=y(n);e&&!t.includes(e)&&t.push(e)}if(e.role){let n=g[e.role];n&&!t.includes(n)&&t.push(n)}return t.filter(Boolean).join(`, `)}function S(e){let t=b(e).replaceAll(` `,`+`),n=e.display??`swap`,r=(e.weights??[]).map(String),i=(e.styles??[`normal`]).includes(`italic`),a=t;if(e.variable){let e=r.length===2?`${r[0]}..${r[1]}`:`100..900`;a=i?`${t}:ital,wght@0,${e};1,${e}`:`${t}:wght@${e}`}else if(r.length>0){if(i){let e=[];for(let t of r)e.push(`0,${t}`);for(let t of r)e.push(`1,${t}`);a=`${t}:ital,wght@${e.join(`;`)}`}else a=`${t}:wght@${r.join(`;`)}`}return`https://fonts.googleapis.com/css2?family=${a}&display=${n}`}function C(e){return e.format}function w(e,t){let r=(0,n.basename)(e.path),i=`${t.endsWith(`/`)?t:`${t}/`}${r}`,a=C(e);return a?`url("${i}") format("${a}")`:`url("${i}")`}function T(e,t){let n=b(e),r=e.display??`swap`;return e.files.map(e=>{let i=[`@font-face {`,` font-family: ${y(n)};`,` src: ${w(e,t)};`];return e.weight!==void 0&&i.push(` font-weight: ${e.weight};`),e.style&&i.push(` font-style: ${e.style};`),e.unicodeRange&&i.push(` unicode-range: ${e.unicodeRange};`),i.push(` font-display: ${r};`,`}`),i.join(`
2
2
  `)}).join(`
3
3
 
4
4
  `)}function E(e){return Object.values(e).filter(e=>e.source===`google`).map(e=>`@import url("${S(e)}");`).join(`
@@ -6,4 +6,4 @@ const e=require("./fonts-vhz5FAsy.cjs");let t=require("defu"),n=require("@stryke
6
6
 
7
7
  `)}function O(e,t={}){return[E(e),D(e,t)].filter(Boolean).join(`
8
8
 
9
- `)}function te(e,t,n={}){if(!t||Object.keys(t).length===0)return e;let r=O(t,n);return r?e?`${r}\n\n${e}`:`${r}\n`:e}const k=(0,t.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function ne(e,t){return(0,f.isAbsolute)(t)?t:(0,f.resolve)(e,t)}function A(e){return Array.isArray(e)?e.filter(u.isSetString):(0,u.isSetString)(e)?[e]:[]}function j(e){let t=(0,o.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&p.has(t))}function M(e){let t=(0,o.findFileExtensionSafe)(e)?.toLowerCase();return t?m[t]:void 0}async function N(e){try{return(await(0,d.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&j(e.name)).map(e=>e.name)}catch{return[]}}const P=Object.keys(h).sort((e,t)=>t.length-e.length);function F(e){let t=M(e),n=(0,o.findFileName)(e,{withExtension:!1})??e,r,i=/(?:[-_ ](italic|oblique|it)|Italic|Oblique)$/.exec(n);i&&(r=(i[1]??i[0]).toLowerCase()===`oblique`?`oblique`:`italic`,n=n.slice(0,i.index));let a,s=/[-_ ]([^_-]+)$/.exec(n),c=(s?.[1]??n).toLowerCase().replaceAll(/[\s_]/g,``);for(let e of P)if(c===e||c.endsWith(e)){if(a=h[e],s)n=n.slice(0,s.index);else{let t=n.toLowerCase().lastIndexOf(e);n=t>0?n.slice(0,t):n}break}return{family:n.replaceAll(/[-_]+$/g,``).trim()||n,...a===void 0?{}:{weight:a},...r?{style:r}:{},...t?{format:t}:{}}}function I(e){return e.trim().toLowerCase().replaceAll(/[^a-z0-9]+/g,`-`).replaceAll(/^-+|-+$/g,``)}function L(t){if(!t)return;let n=e.r.safeParse(t);if(n.success)return[n.data];if(!Array.isArray(t))return;let r=[];for(let n of t){let t=e.r.safeParse(n);t.success&&r.push(t.data)}return r.length>0?r:void 0}function R(e,t){if(e.source===`google`||e.source===`local`)return e.source;if(t&&t.length>0)return`local`;if(`weights`in e||`subsets`in e||`variable`in e||`styles`in e||(0,u.isSetString)(e.family)&&!t)return`google`}function z(t){if(!(0,l.isSetObject)(t))return;let n=`files`in t?L(t.files):void 0,r=R(t,n);if(!r){let n=e.a.safeParse(t);return n.success?n.data:void 0}let i={...t,source:r,...n?{files:n}:{}},a=r===`google`?e.s.partial().safeParse({...i,source:`google`}):e.c.partial().safeParse({...i,source:`local`});if(a.success)return Object.keys(a.data).length>0?a.data:void 0}function B(e){return(0,l.isSetObject)(e)&&`path`in e}async function V(e){let t=(0,s.joinPaths)(e,`package.json`);if(!(0,n.existsSync)(t))return;let r;try{r=await(0,i.readJsonFile)(t)}catch{return}let a={};if((0,u.isSetString)(r.name)&&(a.name=r.name,a.title=r.name),(0,u.isSetString)(r.description)&&(a.description=r.description),Array.isArray(r.keywords)){let e=r.keywords.filter(u.isSetString);e.length>0&&(a.tags=e)}let o=r.razorwind,c;if(B(o)||Array.isArray(o)){let e=L(o);e&&(c={source:`local`,files:e})}else(0,l.isSetObject)(o)&&(c=z(o));let d=k(c??{},a);return Object.keys(d).length>0?d:void 0}async function H(e){let t=(0,s.joinPaths)(e,`font.json`);if(!(0,n.existsSync)(t))return;let r;try{r=await(0,i.readJsonFile)(t)}catch{return}if(B(r)||Array.isArray(r)){let e=L(r);if(e)return{source:`local`,files:e}}return z(r)}function U(e,t,n){return t?.length?t.map(t=>{let n=(0,a.appendPath)(t.path,e);return{...t,path:n,format:t.format??M(t.path)}}):n.map(t=>{let n=F(t);return{path:(0,a.appendPath)(t,e),format:n.format,...n.weight===void 0?{}:{weight:n.weight},...n.style?{style:n.style}:{}}})}async function W(t){let n=await V(t),r=await H(t),i=await N(t);if(!n&&!r&&i.length===0)return;let a=k(r??{},n??{}),s=(0,o.findFolderName)(t),l=(0,u.isSetString)(a.name)?a.name:s,d=(0,u.isSetString)(a.title)?a.title:(0,c.titleCase)(l),f=U(t,a.source===`local`?a.files:void 0,i),p=(a.source??(f.length>0?`local`:`google`))===`google`?{...a,source:`google`,name:l,title:d,family:a.family??d}:{...a,source:`local`,name:l,title:d,family:a.family??d,files:f.length>0?f:a.source===`local`?a.files:f},m=e.a.safeParse(p);return m.success?m.data:void 0}function G(e,t,n){let r=I(t)||`font`,i=e[r];if(i?.source===`local`){let t=[...i.files],a=t.findIndex(e=>e.path===n.path);a>=0?t[a]=n:t.push(n),e[r]={...i,files:t};return}i||(e[r]={source:`local`,name:r,title:(0,c.titleCase)(t),family:t,files:[n]})}async function re(e){let t={},i=A(e.options.fontsPath);for(let a of i){let i=ne(e.cwd,a);if(!(!(0,n.existsSync)(i)||!(0,r.isDirectory)(i)))try{let e=await(0,d.readdir)(i,{withFileTypes:!0});for(let n of e){if(n.name.startsWith(`.`))continue;let e=(0,s.joinPaths)(i,n.name);if(n.isDirectory()){let n=await W(e);if(n){let e=t[n.name];t[n.name]=e?k(n,e):n}continue}if(n.isFile()&&j(n.name)){let r=F(n.name);G(t,r.family,{path:e,format:r.format,...r.weight===void 0?{}:{weight:r.weight},...r.style?{style:r.style}:{}})}}}catch{continue}}return t}const K=/@font-face\s*\{([^{}]*)\}/gi,q=/@import\s+(?:url\()?['"]?(https:\/\/fonts\.googleapis\.com\/css2?\?[^)'"\s]+)['"]?\)?\s*;/gi,J=/url\(\s*['"]?(https:\/\/fonts\.googleapis\.com\/css2?\?[^)'"\s]+)['"]?\s*\)/gi,Y=/font-family\s*:\s*([^;]+);/i,X=/font-weight\s*:\s*([^;]+);/i,ie=/font-style\s*:\s*(normal|italic|oblique)/i,ae=/font-display\s*:\s*(auto|block|swap|fallback|optional)/i,oe=/unicode-range\s*:\s*([^;]+);/i,se=/url\(\s*['"]?([^)'"]+)['"]?\s*\)(?:\s*format\(\s*['"]?([\w-]+)['"]?\s*\))?/i;function Z(e){return e.trim().toLowerCase().replaceAll(/[^a-z0-9]+/g,`-`).replaceAll(/^-+|-+$/g,``)}function Q(e){return e.trim().replaceAll(/^['"]|['"]$/g,``).trim()}function $(e){if(!e)return;let t=e.trim(),n=Number.parseInt(t,10);return Number.isNaN(n)?t||void 0:n}function ce(e,t){if(e){let t=e.toLowerCase();if(t===`woff2`||t===`woff`||t===`truetype`||t===`opentype`||t===`svg`)return t}let n=t.split(`.`).pop()?.split(`?`)[0]?.toLowerCase();return n?m[n]:void 0}function le(e,t,n,r){let i=Z(t)||`font`,a=e[i];if(a?.source===`local`){let t=[...a.files],r=t.findIndex(e=>e.path===n.path);r>=0?t[r]=n:t.push(n),e[i]={...a,files:t};return}a||(e[i]={source:`local`,name:i,title:(0,c.titleCase)(t),family:t,...r?{display:r}:{},files:[n]})}function ue(e){let t;try{t=new URL(e)}catch{return[]}let n=t.searchParams.get(`display`),r=n===`auto`||n===`block`||n===`swap`||n===`fallback`||n===`optional`?n:void 0,i=t.searchParams.getAll(`family`),a=[];for(let e of i){let[t,n]=e.split(`:`),i=(t??``).replaceAll(`+`,` `).trim();if(!i)continue;let o=Z(i),s=[],l=new Set,u=!1;if(n){let[e,t]=n.split(`@`),r=(e??``).split(`,`),i=r.indexOf(`ital`),a=r.indexOf(`wght`),o=(t??``).split(`;`).filter(Boolean);for(let e of o){let t=e.split(`,`);i>=0&&t[i]===`1`?l.add(`italic`):l.add(`normal`);let n=a>=0?t[a]:t[0];if(n?.includes(`..`)){u=!0;let[e,t]=n.split(`..`);e&&s.push(e),t&&s.push(t)}else{let e=$(n);e!==void 0&&!s.includes(e)&&s.push(e)}}}a.push({source:`google`,name:o||`font`,title:(0,c.titleCase)(i),family:i,...r?{display:r}:{},...s.length>0?{weights:s}:{},...l.size>0?{styles:[...l]}:{},...u?{variable:!0}:{}})}return a}function de(e){let t=new Set;for(let n of e.matchAll(q))n[1]&&t.add(n[1]);for(let n of e.matchAll(J))n[1]&&t.add(n[1]);return[...t]}function fe(e){let t=e.replace(/\/\*[\s\S]*?\*\//g,``),n={};for(let e of de(t))for(let t of ue(e))n[t.name]??=t;for(let e of t.matchAll(K)){let t=e[1]??``,r=Q(Y.exec(t)?.[1]??``);if(!r)continue;let i=se.exec(t),a=i?.[1];if(!a||a.includes(`fonts.googleapis.com`))continue;let o={path:a,format:ce(i?.[2],a),weight:$(X.exec(t)?.[1]),style:ie.exec(t)?.[1],unicodeRange:oe.exec(t)?.[1]?.trim()},s=ae.exec(t)?.[1];le(n,r,o,s)}return n}function pe(e){return!e||Object.keys(e).length===0}function me(e,t){let n={...e??{}};for(let[e,r]of Object.entries(t??{}))n[e]??=r;return n}function he(e,t){if(!e)return;let n=Array.isArray(t)?t:[t];for(let t of n){let n=Object.values(e).find(e=>e.role===t);if(n)return n}}Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return _}});
9
+ `)}function te(e,t,n={}){if(!t||Object.keys(t).length===0)return e;let r=O(t,n);return r?e?`${r}\n\n${e}`:`${r}\n`:e}const k=(0,t.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function ne(e,t){return(0,n.isAbsolute)(t)?t:(0,n.resolve)(e,t)}function A(e){return Array.isArray(e)?e.filter(d.isSetString):(0,d.isSetString)(e)?[e]:[]}function j(e){let t=(0,c.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&p.has(t))}function M(e){let t=(0,c.findFileExtensionSafe)(e)?.toLowerCase();return t?m[t]:void 0}async function N(e){try{return(await(0,f.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&j(e.name)).map(e=>e.name)}catch{return[]}}const P=Object.keys(h).sort((e,t)=>t.length-e.length);function F(e){let t=M(e),n=(0,c.findFileName)(e,{withExtension:!1})??e,r,i=/(?:[-_ ](italic|oblique|it)|Italic|Oblique)$/.exec(n);i&&(r=(i[1]??i[0]).toLowerCase()===`oblique`?`oblique`:`italic`,n=n.slice(0,i.index));let a,o=/[-_ ]([^_-]+)$/.exec(n),s=(o?.[1]??n).toLowerCase().replaceAll(/[\s_]/g,``);for(let e of P)if(s===e||s.endsWith(e)){if(a=h[e],o)n=n.slice(0,o.index);else{let t=n.toLowerCase().lastIndexOf(e);n=t>0?n.slice(0,t):n}break}return{family:n.replaceAll(/[-_]+$/g,``).trim()||n,...a===void 0?{}:{weight:a},...r?{style:r}:{},...t?{format:t}:{}}}function I(e){return e.trim().toLowerCase().replaceAll(/[^a-z0-9]+/g,`-`).replaceAll(/^-+|-+$/g,``)}function L(t){if(!t)return;let n=e.r.safeParse(t);if(n.success)return[n.data];if(!Array.isArray(t))return;let r=[];for(let n of t){let t=e.r.safeParse(n);t.success&&r.push(t.data)}return r.length>0?r:void 0}function R(e,t){if(e.source===`google`||e.source===`local`)return e.source;if(t&&t.length>0)return`local`;if(`weights`in e||`subsets`in e||`variable`in e||`styles`in e||(0,d.isSetString)(e.family)&&!t)return`google`}function z(t){if(!(0,u.isSetObject)(t))return;let n=`files`in t?L(t.files):void 0,r=R(t,n);if(!r){let n=e.a.safeParse(t);return n.success?n.data:void 0}let i={...t,source:r,...n?{files:n}:{}},a=r===`google`?e.s.partial().safeParse({...i,source:`google`}):e.c.partial().safeParse({...i,source:`local`});if(a.success)return Object.keys(a.data).length>0?a.data:void 0}function B(e){return(0,u.isSetObject)(e)&&`path`in e}async function V(e){let t=(0,l.joinPaths)(e,`package.json`);if(!(0,i.existsSync)(t))return;let n;try{n=await(0,o.readJsonFile)(t)}catch{return}let r={};if((0,d.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,d.isSetString)(n.description)&&(r.description=n.description),Array.isArray(n.keywords)){let e=n.keywords.filter(d.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,s;if(B(a)||Array.isArray(a)){let e=L(a);e&&(s={source:`local`,files:e})}else(0,u.isSetObject)(a)&&(s=z(a));let c=k(s??{},r);return Object.keys(c).length>0?c:void 0}async function H(e){let t=(0,l.joinPaths)(e,`font.json`);if(!(0,i.existsSync)(t))return;let n;try{n=await(0,o.readJsonFile)(t)}catch{return}if(B(n)||Array.isArray(n)){let e=L(n);if(e)return{source:`local`,files:e}}return z(n)}function U(e,t,n){return t?.length?t.map(t=>{let n=(0,s.appendPath)(t.path,e);return{...t,path:n,format:t.format??M(t.path)}}):n.map(t=>{let n=F(t);return{path:(0,s.appendPath)(t,e),format:n.format,...n.weight===void 0?{}:{weight:n.weight},...n.style?{style:n.style}:{}}})}async function W(t){let n=await V(t),i=await H(t),a=await N(t);if(!n&&!i&&a.length===0)return;let o=k(i??{},n??{}),s=(0,c.findFolderName)(t),l=(0,d.isSetString)(o.name)?o.name:s,u=(0,d.isSetString)(o.title)?o.title:(0,r.titleCase)(l),f=U(t,o.source===`local`?o.files:void 0,a),p=(o.source??(f.length>0?`local`:`google`))===`google`?{...o,source:`google`,name:l,title:u,family:o.family??u}:{...o,source:`local`,name:l,title:u,family:o.family??u,files:f.length>0?f:o.source===`local`?o.files:f},m=e.a.safeParse(p);return m.success?m.data:void 0}function G(e,t,n){let i=I(t)||`font`,a=e[i];if(a?.source===`local`){let t=[...a.files],r=t.findIndex(e=>e.path===n.path);r>=0?t[r]=n:t.push(n),e[i]={...a,files:t};return}a||(e[i]={source:`local`,name:i,title:(0,r.titleCase)(t),family:t,files:[n]})}async function re(e){let t={},n=A(e.options.fontsPath);for(let r of n){let n=ne(e.cwd,r);if(!(!(0,i.existsSync)(n)||!(0,a.isDirectory)(n)))try{let e=await(0,f.readdir)(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=(0,l.joinPaths)(n,r.name);if(r.isDirectory()){let n=await W(e);if(n){let e=t[n.name];t[n.name]=e?k(n,e):n}continue}if(r.isFile()&&j(r.name)){let n=F(r.name);G(t,n.family,{path:e,format:n.format,...n.weight===void 0?{}:{weight:n.weight},...n.style?{style:n.style}:{}})}}}catch{continue}}return t}const K=/@font-face\s*\{([^{}]*)\}/gi,q=/@import\s+(?:url\()?['"]?(https:\/\/fonts\.googleapis\.com\/css2?\?[^)'"\s]+)['"]?\)?\s*;/gi,J=/url\(\s*['"]?(https:\/\/fonts\.googleapis\.com\/css2?\?[^)'"\s]+)['"]?\s*\)/gi,Y=/font-family\s*:\s*([^;]+);/i,X=/font-weight\s*:\s*([^;]+);/i,ie=/font-style\s*:\s*(normal|italic|oblique)/i,ae=/font-display\s*:\s*(auto|block|swap|fallback|optional)/i,oe=/unicode-range\s*:\s*([^;]+);/i,se=/url\(\s*['"]?([^)'"]+)['"]?\s*\)(?:\s*format\(\s*['"]?([\w-]+)['"]?\s*\))?/i;function Z(e){return e.trim().toLowerCase().replaceAll(/[^a-z0-9]+/g,`-`).replaceAll(/^-+|-+$/g,``)}function Q(e){return e.trim().replaceAll(/^['"]|['"]$/g,``).trim()}function $(e){if(!e)return;let t=e.trim(),n=Number.parseInt(t,10);return Number.isNaN(n)?t||void 0:n}function ce(e,t){if(e){let t=e.toLowerCase();if(t===`woff2`||t===`woff`||t===`truetype`||t===`opentype`||t===`svg`)return t}let n=t.split(`.`).pop()?.split(`?`)[0]?.toLowerCase();return n?m[n]:void 0}function le(e,t,n,i){let a=Z(t)||`font`,o=e[a];if(o?.source===`local`){let t=[...o.files],r=t.findIndex(e=>e.path===n.path);r>=0?t[r]=n:t.push(n),e[a]={...o,files:t};return}o||(e[a]={source:`local`,name:a,title:(0,r.titleCase)(t),family:t,...i?{display:i}:{},files:[n]})}function ue(e){let t;try{t=new URL(e)}catch{return[]}let n=t.searchParams.get(`display`),i=n===`auto`||n===`block`||n===`swap`||n===`fallback`||n===`optional`?n:void 0,a=t.searchParams.getAll(`family`),o=[];for(let e of a){let[t,n]=e.split(`:`),a=(t??``).replaceAll(`+`,` `).trim();if(!a)continue;let s=Z(a),c=[],l=new Set,u=!1;if(n){let[e,t]=n.split(`@`),r=(e??``).split(`,`),i=r.indexOf(`ital`),a=r.indexOf(`wght`),o=(t??``).split(`;`).filter(Boolean);for(let e of o){let t=e.split(`,`);i>=0&&t[i]===`1`?l.add(`italic`):l.add(`normal`);let n=a>=0?t[a]:t[0];if(n?.includes(`..`)){u=!0;let[e,t]=n.split(`..`);e&&c.push(e),t&&c.push(t)}else{let e=$(n);e!==void 0&&!c.includes(e)&&c.push(e)}}}o.push({source:`google`,name:s||`font`,title:(0,r.titleCase)(a),family:a,...i?{display:i}:{},...c.length>0?{weights:c}:{},...l.size>0?{styles:[...l]}:{},...u?{variable:!0}:{}})}return o}function de(e){let t=new Set;for(let n of e.matchAll(q))n[1]&&t.add(n[1]);for(let n of e.matchAll(J))n[1]&&t.add(n[1]);return[...t]}function fe(e){let t=e.replace(/\/\*[\s\S]*?\*\//g,``),n={};for(let e of de(t))for(let t of ue(e))n[t.name]??=t;for(let e of t.matchAll(K)){let t=e[1]??``,r=Q(Y.exec(t)?.[1]??``);if(!r)continue;let i=se.exec(t),a=i?.[1];if(!a||a.includes(`fonts.googleapis.com`))continue;let o={path:a,format:ce(i?.[2],a),weight:$(X.exec(t)?.[1]),style:ie.exec(t)?.[1],unicodeRange:oe.exec(t)?.[1]?.trim()},s=ae.exec(t)?.[1];le(n,r,o,s)}return n}function pe(e){return!e||Object.keys(e).length===0}function me(e,t){let n={...e??{}};for(let[e,r]of Object.entries(t??{}))n[e]??=r;return n}function he(e,t){if(!e)return;let n=Array.isArray(t)?t:[t];for(let t of n){let n=Object.values(e).find(e=>e.role===t);if(n)return n}}Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return _}});
@@ -1,8 +1,8 @@
1
- import { t as Schema } from "./schema-Crr8KMUY.cjs";
2
- import "./index-DovYOOtL.cjs";
3
- import { l as Plugin, t as Config } from "./config-BjuUx31T.cjs";
4
- import { Tokens } from "@power-plant/dtcg-schema";
1
+ import { t as Schema } from "./schema-BwOBgJIM.cjs";
2
+ import "./index-CwN0c1Q4.cjs";
3
+ import { l as Plugin, t as Config } from "./config-BtscEr7S.cjs";
5
4
  import { ExecutionContext } from "@power-plant/core";
5
+ import { Tokens } from "@power-plant/dtcg-schema";
6
6
  import { Hooks, LogConfig, Parser, PreprocessedTokens } from "style-dictionary/types";
7
7
  //#region src/lib/tokens/constants.d.ts
8
8
  /** Style Dictionary parser hook names registered by Razorwind. */
@@ -200,4 +200,4 @@ declare function registerRazorwindHooks(plugins?: Plugin[], target?: StyleDictio
200
200
  declare const registerRazorwindParsers: typeof registerRazorwindHooks;
201
201
  //#endregion
202
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-DXx1b3vZ.d.cts.map
203
+ //# sourceMappingURL=index-B7MsziQp.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-DXx1b3vZ.d.cts","names":[],"sources":["../src/lib/tokens/constants.ts","../src/lib/tokens/css.ts","../src/lib/tokens/infer.ts","../src/lib/tokens/resolve-path.ts","../src/lib/tokens/load.ts","../src/lib/tokens/logging.ts","../src/lib/tokens/parsers.ts"],"mappings":";;;;;;;;cAmBa;KAOD,8BAA8B;;cAG7B;;;;;cAsBA;;cAyBA;;cAGA,wBAAsB;;cAItB,iBAAiB;;;;;;;iBCvDd,yBACd,mBACC;;;KCgCS;;;;iBAmEI,kBACd,iBACC;;;;iBAiBa,WACd,cACA;EACG;EAAgB,OAAO;;;;;iBAsPZ,mBACd,gBACA;;;;;;;;iBA2Cc,eACd,MAAM,0BACL;;;UC9Zc;;;;EAIf;;;;EAKA;;;;EAKA,gBAAgB;;UAGD;;;;;;;EAOf;;;;EAKA;;;;EAKA;;;;;;;;;iBAyHc,oBACd,SAAS,2BACR;;;;iBAqFa,iBAAiB;;;UCrNhB,0BAA0B;;;;;;EAMzC;;KAGU,eAAe,SAAS,eAAe;iBAEnC,cAAc;;;;;;;;;iBA2IR,WACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;iBAsCW,kBACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;;;;iBC5NK,0BAA0B;EACxC,YAAY;;;;;cCGD;;UAGI;EACf,kBAAkB,QAAQ;EAC1B,wBAAwB;IACtB;IACA,cAAc,YAAY;;;;UAKb;EACf,SAAS,YAAY;EACrB,eAAe,YAAY;EAC3B;EACA;;;iBAwEc,2BAA2B,YAAY;;;;;iBAavC,2BACd,YAAY,qBACX;;iBAKa,iCAAiC,YAC/C;;;;;;;iBAac,mBAAmB,UAAS,WAAgB;;;;;;;;;;;;;;iBA0D5C,uBACd,UAAS,UACT,SAAQ,gCACP;;;;cAqBU,iCAAwB"}
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,3 +1,3 @@
1
- import "./schema-Crr8KMUY.cjs";
1
+ import "./schema-BwOBgJIM.cjs";
2
2
  import { Token, Tokens as Tokens$1, tokenSchema, tokensSchema } from "@power-plant/dtcg-schema";
3
3
  export { tokensSchema as i, Tokens$1 as n, tokenSchema as r, Token as t };
@@ -1,6 +1,6 @@
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-Crr8KMUY.mjs";
2
- import "./index-ktFi0nZL.mjs";
3
- import { t as Config } from "./config-CEPqgKnD.mjs";
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
+ import "./index-D5L2WXYk.mjs";
3
+ import { t as Config } from "./config-CNTGHrST.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-D7VrdiAn.d.mts.map
100
+ //# sourceMappingURL=index-CzbZzpnz.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-D7VrdiAn.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-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,6 +1,6 @@
1
- import { t as Schema } from "./schema-Crr8KMUY.mjs";
2
- import "./index-ktFi0nZL.mjs";
3
- import { l as Plugin, t as Config } from "./config-CEPqgKnD.mjs";
1
+ import { t as Schema } from "./schema-BwOBgJIM.mjs";
2
+ import "./index-D5L2WXYk.mjs";
3
+ import { l as Plugin, t as Config } from "./config-CNTGHrST.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";
@@ -200,4 +200,4 @@ declare function registerRazorwindHooks(plugins?: Plugin[], target?: StyleDictio
200
200
  declare const registerRazorwindParsers: typeof registerRazorwindHooks;
201
201
  //#endregion
202
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-crrCGMN9.d.mts.map
203
+ //# sourceMappingURL=index-CzjDptav.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-crrCGMN9.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-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,3 +1,3 @@
1
- import "./schema-Crr8KMUY.mjs";
1
+ import "./schema-BwOBgJIM.mjs";
2
2
  import { Token, Tokens as Tokens$1, tokenSchema, tokensSchema as tokensSchema$1 } from "@power-plant/dtcg-schema";
3
3
  export { tokensSchema$1 as i, Tokens$1 as n, tokenSchema as r, Token as t };
@@ -1,6 +1,6 @@
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-Crr8KMUY.cjs";
2
- import "./index-DovYOOtL.cjs";
3
- import { t as Config } from "./config-BjuUx31T.cjs";
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
+ import "./index-CwN0c1Q4.cjs";
3
+ import { t as Config } from "./config-BtscEr7S.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-DNAWtBG8.d.cts.map
100
+ //# sourceMappingURL=index-Di7vqmsi.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-DNAWtBG8.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-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"}
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./schema-D0sXEBjV.cjs"),n=require("./fonts-75PPb25H.cjs"),r=require("./tokens-BSuKch7x.cjs"),i=require("./plugin.cjs");let a=require("@power-plant/core"),o=require("defu"),s=require("@stryke/fs/exists"),c=require("@stryke/fs/is-file"),l=require("@stryke/fs/json"),u=require("@stryke/fs/list-files"),d=require("@stryke/path/append"),f=require("@stryke/path/file-path-fns"),p=require("@stryke/path/join"),m=require("@stryke/string-format/title-case"),h=require("@stryke/type-checks/is-set-object"),g=require("@stryke/type-checks/is-set-string"),_=require("node:fs/promises"),v=require("node:path"),ee=require("@stryke/env/get-env-paths"),y=require("@stryke/path/find"),b=require("@stryke/path/replace"),te=require("@stryke/type-checks/is-function"),x=require("c12"),ne=require("jiti"),S=require("node:fs"),C=require("node:os");C=e.t(C,1);var re=`0.0.47`;function w(e){return!!((0,g.isSetString)(e)||(0,h.isSetObject)(e)&&`url`in e&&(0,g.isSetString)(e.url))}function T(e){if((0,g.isSetString)(e))return e;if((0,h.isSetObject)(e)&&`url`in e&&(0,g.isSetString)(e.url))return e.url}const ie=t.o.partial(),E=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),D=(0,o.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function ae(e,t){return(0,v.isAbsolute)(t)?t:(0,v.resolve)(e,t)}function oe(e){return Array.isArray(e)?e.filter(g.isSetString):(0,g.isSetString)(e)?[e]:[]}function O(e){let t=e.toLowerCase();if(E.has(t))return t}function se(e){let t=(0,f.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&E.has(t))}function k(e){if(!e)return;let n=t.a.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){let e=t.a.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function A(e){if(!e)return;let n=t.s.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){if((0,g.isSetString)(n)){let e=(0,f.findFileName)(n,{withExtension:!1})||n,i=t.s.safeParse({name:e,path:n});i.success&&r.push(i.data);continue}let e=t.s.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function j(e){if(!(0,h.isSetObject)(e))return;let{files:t,usage:n,...r}=e,i=ie.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function M(e){return(0,h.isSetObject)(e)&&`path`in e}async function ce(e){let t=(0,p.joinPaths)(e,`package.json`);if(!(0,s.existsSync)(t))return;let n;try{n=await(0,l.readJsonFile)(t)}catch{return}let r={};(0,g.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,g.isSetString)(n.description)&&(r.description=n.description),(0,g.isSetString)(n.version)&&(r.version=n.version),(0,g.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=T(n.repository);if(i&&(r.repository=i),(0,h.isSetObject)(n.dependencies)&&(r.dependencies=n.dependencies),(0,h.isSetObject)(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(g.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,c,u;M(a)?c=k(a):(0,h.isSetObject)(a)&&(o=j(a),`files`in a&&(c=k(a.files)),`usage`in a&&(u=A(a.usage)));let d=D(o??{},r);return c?.length&&(d.files=c),u?.length&&(d.usage=u),Object.keys(d).length>0?d:void 0}async function le(e){let t=(0,p.joinPaths)(e,`component.json`);if(!(0,s.existsSync)(t))return;let n;try{n=await(0,l.readJsonFile)(t)}catch{return}if(M(n)||Array.isArray(n)){let e=k(n);if(e)return{files:e}}if(!(0,h.isSetObject)(n))return;let r=j(n)??{},i=`files`in n?k(n.files):void 0,a=`usage`in n?A(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 ue(e){try{return(await(0,_.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&se(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function de(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,d.appendPath)(t.path,e),r=(0,f.findFileExtensionSafe)(t.path)??``,i=t.language??O(r),a=t.name||(0,f.findFileName)(t.path,{withExtension:!1})||t.path,o=t.content===void 0?(0,s.existsSync)(n)?await(0,_.readFile)(n,`utf8`):void 0:t.content;return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=(0,p.joinPaths)(e,`usage`);if(!(0,s.existsSync)(n)||!(0,c.isDirectory)(n))return;let r=await ue(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=(0,p.joinPaths)(n,e),r=O((0,f.findFileExtensionSafe)(e)??``),i=(0,f.findFileName)(e,{withExtension:!1})||e;return{name:i,title:(0,m.titleCase)(i),path:t,content:await(0,_.readFile)(t,`utf8`),...r?{language:r}:{}}}))}async function fe(e,t){let n=t??(await(0,u.listFiles)(e)).filter(e=>(0,f.findFileName)(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test((0,f.findFileExtensionSafe)(t))?`component`:`file`,path:t,content:await(0,_.readFile)((0,d.appendPath)(t,e),`utf8`)}:{type:/[tj]sx$/.test((0,f.findFileExtensionSafe)(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await(0,_.readFile)((0,d.appendPath)(t.path,e),`utf8`):void 0,path:(0,d.appendPath)(t.path,e)}))}async function pe(e){let n=await ce(e),r=await le(e);if(!n&&!r)return;let i=D(r??{},n??{}),a=(0,g.isSetString)(i.name)?i.name:(0,f.findFolderName)(e),o=(0,g.isSetString)(i.title)?i.title:(0,m.titleCase)(a),s=t.o.safeParse({...i,name:a,title:o});if(!s.success)return;let c=await de(e,s.data.usage);return{...s.data,files:await fe(e,s.data.files),...c?.length?{usage:c}:{}}}async function N(e){let t={},n=oe(e.options.componentsPath);for(let r of n){let n=ae(e.cwd,r);if(!(!(0,s.existsSync)(n)||!(0,c.isDirectory)(n)))try{let e=await(0,_.readdir)(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await pe((0,p.joinPaths)(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const me=t.r.partial(),P=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),F=(0,o.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function he(e,t){return(0,v.isAbsolute)(t)?t:(0,v.resolve)(e,t)}function ge(e){return Array.isArray(e)?e.filter(g.isSetString):(0,g.isSetString)(e)?[e]:[]}function I(e){let t=e.toLowerCase();if(P.has(t))return t}function L(e){let t=(0,f.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&P.has(t))}function _e(e){return r.b.test(e)}async function R(e){try{return(await(0,_.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&L(e.name)).map(e=>e.name)}catch{return[]}}function z(e){if(!e)return;let n=t.n.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){let e=t.n.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function B(e){if(!(0,h.isSetObject)(e))return;let t=me.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function V(e){return(0,h.isSetObject)(e)&&`path`in e}async function H(e,t,n){let r=(0,d.appendPath)(e,t),i=I((0,f.findFileExtensionSafe)(e)??``)??`file`,a=i===`svg`?await(0,_.readFile)(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function ve(e){let t=(0,p.joinPaths)(e,`package.json`);if(!(0,s.existsSync)(t))return;let n;try{n=await(0,l.readJsonFile)(t)}catch{return}let r={};(0,g.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,g.isSetString)(n.description)&&(r.description=n.description),(0,g.isSetString)(n.version)&&(r.version=n.version),(0,g.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=T(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(g.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,c;V(a)?c=z(a):(0,h.isSetObject)(a)&&(o=B(a),`files`in a&&(c=z(a.files)));let u=F(o??{},r);return c?.length&&(u.files=c),Object.keys(u).length>0?u:void 0}async function ye(e){let t=(0,p.joinPaths)(e,`icon.json`);if(!(0,s.existsSync)(t))return;let n;try{n=await(0,l.readJsonFile)(t)}catch{return}if(V(n)||Array.isArray(n)){let e=z(n);if(e)return{files:e}}return B(n)}async function be(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,d.appendPath)(t.path,e),r=(0,f.findFileExtensionSafe)(t.path)??``,i=t.type??I(r)??`file`,a=t.content===void 0?i===`svg`?await(0,_.readFile)(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await R(e);return Promise.all(n.map(t=>H(t,e)))}async function xe(e){let n=await ve(e),r=await ye(e),i=await R(e);if(!n&&!r&&i.length===0)return;let a=F(r??{},n??{}),o=(0,g.isSetString)(a.name)?a.name:(0,f.findFolderName)(e),s=(0,g.isSetString)(a.title)?a.title:(0,m.titleCase)(o),c=t.r.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await be(e,c.data.files)}}function U(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:(0,m.titleCase)(t),files:[n]};return}let i=[...r.files??[]],a=i.findIndex(e=>e.path===n.path&&e.theme===n.theme);a>=0?i[a]=n:i.push(n),e[t]={...r,files:i}}async function Se(e,t,n){let r=await R(e);for(let i of r){let r=(0,f.findFileName)(i,{withExtension:!1});r&&U(n,r,await H(i,e,t))}}async function W(e){let t={},n=ge(e.options.iconsPath);for(let r of n){let n=he(e.cwd,r);if(!(!(0,s.existsSync)(n)||!(0,c.isDirectory)(n)))try{let e=await(0,_.readdir)(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=(0,p.joinPaths)(n,r.name);if(r.isDirectory()){if(_e(r.name)){await Se(e,r.name,t);continue}let n=await xe(e);if(n){let e=t[n.name];t[n.name]=e?F(n,e):n}continue}if(r.isFile()&&L(r.name)){let e=(0,f.findFileName)(r.name,{withExtension:!1});if(!e)continue;U(t,e,await H(r.name,n))}}}catch{continue}}return t}function G(e,t){let n=e[t];return(0,g.isSetString)(n)?n:void 0}function K(e){let t={};(0,g.isSetString)(e.name)&&(t.name=e.name),(0,g.isSetString)(e.description)&&(t.description=e.description),(0,g.isSetString)(e.homepage)&&(t.homepage=e.homepage);let n=T(e.repository);n&&(t.repository=n),(0,g.isSetString)(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if((0,h.isSetObject)(r)){let t=r,n=G(t,`title`),a=G(t,`name`),o=G(t,`description`),s=G(t,`homepage`),c=G(t,`logo`),l=T(t.repository);a?i.name=a:(0,g.isSetString)(e.name)&&(i.name=e.name),n?i.title=n:(0,g.isSetString)(i.name)&&(i.title=(0,m.titleCase)(i.name)),o?i.description=o:(0,g.isSetString)(e.description)&&(i.description=e.description),s?i.homepage=s:w(e.homepage)?i.homepage=T(e.homepage):w(e.author)?i.homepage=T(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&w(e.maintainers[0])?i.homepage=T(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&w(e.contributors[0])?i.homepage=T(e.contributors[0]):w(e.bugs)&&(i.homepage=T(e.bugs)),c&&(i.logo=c),l?i.repository=l:w(e.repository)&&(i.repository=T(e.repository))}return(0,o.defu)(i,t)}function q(e){let t={};return(0,g.isSetString)(e.name)&&(t.name=e.name),(0,g.isSetString)(e.title)&&(t.title=e.title),(0,g.isSetString)(e.description)&&(t.description=e.description),(0,g.isSetString)(e.repository)&&(t.repository=e.repository),(0,g.isSetString)(e.homepage)&&(t.homepage=e.homepage),(0,g.isSetString)(e.logo)&&(t.logo=e.logo),t}async function J(e){let t=(0,p.joinPaths)(e,`package.json`);if(!(0,s.existsSync)(t))return{};let n;try{n=await(0,l.readJsonFile)(t)}catch{return{}}return K(n)}async function Y(e,t){let n=await J(e),r=q(t);return(0,o.defu)(r,n)}function X(e){let t=new Set;return e.filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const Z=C.default.homedir();async function Q(e,t){let n=t.configFile&&(0,S.existsSync)((0,b.replacePath)(t.configFile,e))?(0,b.replacePath)(t.configFile,e):t.configFile&&(0,S.existsSync)(t.configFile)?t.configFile:(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.ts`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.ts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.js`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.js`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.mts`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.mts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.mjs`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.mjs`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.cjs`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.cjs`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.cts`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.cts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.json`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.json`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.yaml`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.yaml`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.yml`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.yml`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.ts`))?(0,p.joinPaths)(e,`razorwind.config.ts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.js`))?(0,p.joinPaths)(e,`razorwind.config.js`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.mts`))?(0,p.joinPaths)(e,`razorwind.config.mts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.mjs`))?(0,p.joinPaths)(e,`razorwind.config.mjs`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.cjs`))?(0,p.joinPaths)(e,`razorwind.config.cjs`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.cts`))?(0,p.joinPaths)(e,`razorwind.config.cts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.json`))?(0,p.joinPaths)(e,`razorwind.config.json`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.yaml`))?(0,p.joinPaths)(e,`razorwind.config.yaml`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.yml`))?(0,p.joinPaths)(e,`razorwind.config.yml`):void 0,r=(0,ee.getEnvPaths)({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=(0,ne.createJiti)(e,i),s={};if(n){let r=(0,v.isAbsolute)(n)?n:(0,v.resolve)(e,n),i=await a.import(r,{default:!0});if(i){let r={};(0,te.isFunction)(i)?r=await Promise.resolve(i({cwd:e,mode:t.mode??`development`})):((0,h.isSetObject)(i)||Array.isArray(i))&&(r=i),((0,h.isSetObject)(r)||Array.isArray(r))&&(s={...r,configFile:n})}}let[c,l,u]=await Promise.all([(0,x.loadConfig)({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),(0,x.loadConfig)({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),(0,x.loadConfig)({cwd:Z,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),d=(0,h.isSetObject)(c?.config)?{...c.config}:{},f=n?(0,v.isAbsolute)(n)?n:(0,v.resolve)(e,n):void 0,m=typeof c?.configFile==`string`?c.configFile:void 0;f&&m&&(0,v.resolve)(e,m)===f&&delete d.plugins;let _=(0,o.defu)({cwd:e,envPaths:{...r,home:Z}},t,s,d,(0,h.isSetObject)(l?.config)?{...l.config}:{},(0,h.isSetObject)(u?.config)?{...u.config}:{},{componentsPath:e,iconsPath:(0,p.joinPaths)(e,`assets/icons`),fontsPath:(0,p.joinPaths)(e,`assets/fonts`),plugins:[]});if(Array.isArray(_.componentsPath)){let t=_.componentsPath.filter(g.isSetString).map(e=>(0,y.findFilePath)(e));_.componentsPath=t.length>0?t:e}else _.componentsPath=(0,g.isSetString)(_.componentsPath)?(0,y.findFilePath)(_.componentsPath):e;if(Array.isArray(_.iconsPath)){let t=_.iconsPath.filter(g.isSetString).map(e=>(0,y.findFilePath)(e));_.iconsPath=t.length>0?t:(0,p.joinPaths)(e,`assets/icons`)}else _.iconsPath=(0,g.isSetString)(_.iconsPath)?(0,y.findFilePath)(_.iconsPath):(0,p.joinPaths)(e,`assets/icons`);if(Array.isArray(_.fontsPath)){let t=_.fontsPath.filter(g.isSetString).map(e=>(0,y.findFilePath)(e));_.fontsPath=t.length>0?t:(0,p.joinPaths)(e,`assets/fonts`)}else _.fontsPath=(0,g.isSetString)(_.fontsPath)?(0,y.findFilePath)(_.fontsPath):(0,p.joinPaths)(e,`assets/fonts`);return _.plugins=X(Array.isArray(_.plugins)?_.plugins:[]),_.verbose=t.verbose===!0||s.verbose===!0,_}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,v.isAbsolute)(e)?e:(0,v.resolve)(t,e),o=(i?.chunks??[]).map(e=>e.content??``).join(``);await(0,_.mkdir)((0,v.dirname)(a),{recursive:!0}),await(0,_.writeFile)(a,o,`utf8`),n.push(a)}return n}function Ce(e){return e}const we=(0,a.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,a.defineSchema)({schema:t.t}),input:async e=>{let t=(0,a.useExecution)();if(t.options=await Q(t.cwd,e),t.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);let i=t.options.tokens;(!i||r.t(i))&&(i=await r.n(t));let s={...await Y(t.cwd,t.options),tokens:i??{},components:(0,o.defu)(t.options.components??{},await N(t)??{}),icons:(0,o.defu)(t.options.icons??{},await W(t)??{}),fonts:(0,o.defu)(t.options.fonts??{},await n.a(t)??{})};for(let e of t.options.plugins.filter(e=>e.extract))s=await e.extract(s,t.options);if(!s.tokens||r.t(s.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let e of t.options.plugins.filter(e=>e.validate))await e.validate(s,t.options);return s},output:async(e,t,n)=>{await $(n,(0,a.useExecution)().cwd)},generator:async e=>{let t=(0,a.useExecution)(),n={};for(let r of t.options.plugins.filter(e=>e.generate)){let i=await r.generate(e,t.options);n=(0,o.defu)(i,n)}return n}});exports.DEFAULT_TOKEN_PATH_CANDIDATES=r.y,exports.FONT_EXTENSIONS=n.h,exports.FONT_FORMAT_FROM_EXTENSION=n.g,exports.GENERIC_FALLBACK_FROM_ROLE=n._,exports.MONO_ROLES=n.v,exports.RAZORWIND_INFER_PREPROCESSOR=r.o,exports.SANS_ROLES=n.y,exports.THEME_BASENAME_PATTERN=r.b,exports.TOKEN_DIRECTORY_GLOB=r.x,exports.TOKEN_FILE_EXTENSIONS=r.S,exports.TYPE_PATH_HINTS=r.w,exports.WEIGHT_FROM_SUFFIX=n.b,exports.WINDIE_PARSERS=r.C,exports.razorwindParsers=r.C,exports.copyFontFiles=n.m,exports.cssFontFamily=n.s,exports.defineConfig=Ce,exports.definePlugin=i.definePlugin,exports.fontFamilyName=n.c,exports.generator=we,exports.getExtractionHooks=r.s,exports.getRazorwindParserHooks=r.c,exports.getRazorwindPreprocessorHooks=r.l,exports.inferTypeFromPath=r.h,exports.inferValue=r.g,exports.isEmptyFonts=n.t,exports.isEmptyTokens=r.t,exports.loadComponents=N,exports.loadFonts=n.a,exports.loadIcons=W,exports.loadSchemaMetaFromPackageJson=J,exports.loadTokens=r.n,exports.loadTokensOrThrow=r.r,exports.mergeFonts=n.n,exports.nestFlatTokens=r._,exports.normalizeRepository=T,exports.normalizeTokenTree=r.v,exports.parseCssCustomProperties=r.m,exports.parseCssFonts=n.r,exports.parseFontFilename=n.o,exports.pickFontByRole=n.i,exports.prependFontCss=n.l,exports.razorwindInferPreprocessor=r.u,exports.registerRazorwindHooks=r.d,exports.registerRazorwindParsers=r.f,exports.renderFontCss=n.u,exports.renderGoogleFontImports=n.d,exports.renderLocalFontFaces=n.f,exports.resolveConfig=Q,exports.resolveSchemaMeta=Y,exports.resolveTokensSource=r.i,exports.schemaMetaFromConfig=q,exports.schemaMetaFromPackageJson=K,exports.styleDictionaryLogOptions=r.p,exports.themeKeyFromPath=r.a,exports.toGoogleFontsCssUrl=n.p,exports.uniquePlugins=X,exports.writeGeneratedDocuments=$;
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;