@razorwind/core 0.0.6 → 0.0.8
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.
- package/dist/config-DQHHeicR.d.mts +85 -0
- package/dist/config-DQHHeicR.d.mts.map +1 -0
- package/dist/config-Dj6RrLde.d.cts +85 -0
- package/dist/config-Dj6RrLde.d.cts.map +1 -0
- package/dist/config.cjs +1 -1
- package/dist/config.d.cts +13 -2
- package/dist/config.d.cts.map +1 -1
- package/dist/config.d.mts +13 -2
- package/dist/config.d.mts.map +1 -1
- package/dist/config.mjs +1 -1
- package/dist/generator-B8nHQMlp.mjs +2 -0
- package/dist/generator-B8nHQMlp.mjs.map +1 -0
- package/dist/generator-BG_JjPA5.cjs +1 -0
- package/dist/generator-BlztRAZw.mjs +2 -0
- package/dist/generator-BlztRAZw.mjs.map +1 -0
- package/dist/generator-Dw35YxG0.cjs +1 -0
- package/dist/generator.cjs +1 -7
- package/dist/generator.d.cts +7 -7
- package/dist/generator.d.cts.map +1 -1
- package/dist/generator.d.mts +6 -7
- package/dist/generator.mjs +1 -8
- package/dist/index--y-fo2Lr.d.mts +3 -0
- package/dist/index-COAOe8bR.d.cts +3 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +8 -4
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +8 -4
- package/dist/index.mjs +1 -1
- package/dist/lib/tokens/index.cjs +1 -0
- package/dist/lib/tokens/index.d.cts +150 -0
- package/dist/lib/tokens/index.d.cts.map +1 -0
- package/dist/lib/tokens/index.d.mts +150 -0
- package/dist/lib/tokens/index.d.mts.map +1 -0
- package/dist/lib/tokens/index.mjs +1 -0
- package/dist/plugin.cjs +1 -0
- package/dist/plugin.d.cts +43 -0
- package/dist/plugin.d.cts.map +1 -0
- package/dist/plugin.d.mts +43 -0
- package/dist/plugin.d.mts.map +1 -0
- package/dist/plugin.mjs +2 -0
- package/dist/plugin.mjs.map +1 -0
- package/dist/resolve-config-CBowa3KM.mjs +2 -0
- package/dist/resolve-config-CBowa3KM.mjs.map +1 -0
- package/dist/resolve-config-D7XXy_Qk.cjs +1 -0
- package/dist/rolldown-runtime-CMqjfN_6.cjs +1 -0
- package/dist/schema/index.cjs +1 -0
- package/dist/schema/index.d.cts +3 -0
- package/dist/schema/index.d.mts +3 -0
- package/dist/schema/index.mjs +1 -0
- package/dist/schema-1EWJvc56.d.cts +115 -0
- package/dist/schema-1EWJvc56.d.cts.map +1 -0
- package/dist/schema-BNfl9Tsw.d.mts +115 -0
- package/dist/schema-BNfl9Tsw.d.mts.map +1 -0
- package/dist/schema-Bxzw_P4l.mjs +2 -0
- package/dist/schema-Bxzw_P4l.mjs.map +1 -0
- package/dist/schema-CLeH9GGy.cjs +1 -0
- package/dist/tokens-B8Dv91EB.mjs +2 -0
- package/dist/tokens-B8Dv91EB.mjs.map +1 -0
- package/dist/tokens-CoQWg4mX.cjs +1 -0
- package/dist/utils/index.cjs +1 -0
- package/dist/utils/index.d.cts +37 -0
- package/dist/utils/index.d.cts.map +1 -0
- package/dist/utils/index.d.mts +37 -0
- package/dist/utils/index.d.mts.map +1 -0
- package/dist/utils/index.mjs +2 -0
- package/dist/utils/index.mjs.map +1 -0
- package/package.json +83 -28
- package/dist/config-CJi9Fu8b.d.cts +0 -40
- package/dist/config-CJi9Fu8b.d.cts.map +0 -1
- package/dist/config-CJi9Fu8b.d.mts +0 -40
- package/dist/config-CJi9Fu8b.d.mts.map +0 -1
- package/dist/generator.mjs.map +0 -1
- package/dist/index-8xt23rlo.d.mts +0 -15
- package/dist/index-8xt23rlo.d.mts.map +0 -1
- package/dist/index-DCXWFAYS.d.cts +0 -15
- package/dist/index-DCXWFAYS.d.cts.map +0 -1
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { t as Schema } from "./schema-BNfl9Tsw.mjs";
|
|
2
|
+
import { EnvPaths } from "@stryke/env";
|
|
3
|
+
import { GeneratedDocument } from "@power-plant/core";
|
|
4
|
+
import { PreprocessedTokens } from "style-dictionary";
|
|
5
|
+
import { Tokens } from "@power-plant/dtcg-schema";
|
|
6
|
+
import { MaybePromise, RequiredKeys } from "@stryke/types/base";
|
|
7
|
+
import { DesignTokens } from "style-dictionary/types";
|
|
8
|
+
//#region src/types/plugin.d.ts
|
|
9
|
+
interface TokensParser {
|
|
10
|
+
name?: string;
|
|
11
|
+
pattern: RegExp;
|
|
12
|
+
parser: (contents: string) => DesignTokens;
|
|
13
|
+
}
|
|
14
|
+
type TokensPreprocessor = {
|
|
15
|
+
name?: string;
|
|
16
|
+
preprocessor: (dictionary: PreprocessedTokens) => PreprocessedTokens;
|
|
17
|
+
} | ((dictionary: PreprocessedTokens) => PreprocessedTokens);
|
|
18
|
+
interface Plugin {
|
|
19
|
+
name: string;
|
|
20
|
+
parsers?: TokensParser[];
|
|
21
|
+
preprocessors?: TokensPreprocessor[];
|
|
22
|
+
extract?: (spec: Schema, config: Config) => MaybePromise<Schema>;
|
|
23
|
+
generate?: (spec: Schema, config: Config) => MaybePromise<Record<string, GeneratedDocument>>;
|
|
24
|
+
validate?: (spec: Schema, config: Config) => MaybePromise<void>;
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/types/config.d.ts
|
|
28
|
+
interface Options {
|
|
29
|
+
/**
|
|
30
|
+
* The directory or file containing a Razorwind configuration file.
|
|
31
|
+
*
|
|
32
|
+
* @defaultValue "razorwind.config.ts"
|
|
33
|
+
*/
|
|
34
|
+
configFile?: string;
|
|
35
|
+
/**
|
|
36
|
+
* The path to the registry.json file.
|
|
37
|
+
*
|
|
38
|
+
* @see https://shadcn.com/docs/registry
|
|
39
|
+
*/
|
|
40
|
+
registryPath?: string;
|
|
41
|
+
/**
|
|
42
|
+
* The directory or file containing the tokens.
|
|
43
|
+
*
|
|
44
|
+
* @see https://styledictionary.com/info/tokens/
|
|
45
|
+
*
|
|
46
|
+
* @defaultValue "tokens.json" (or "tokens" directory)
|
|
47
|
+
*/
|
|
48
|
+
tokensPath?: string;
|
|
49
|
+
/**
|
|
50
|
+
* The mode to use for the configuration.
|
|
51
|
+
*
|
|
52
|
+
* @defaultValue "production"
|
|
53
|
+
*/
|
|
54
|
+
mode?: "development" | "test" | "production";
|
|
55
|
+
}
|
|
56
|
+
interface UserConfig extends Options {
|
|
57
|
+
name?: string;
|
|
58
|
+
title?: string;
|
|
59
|
+
version?: string;
|
|
60
|
+
description?: string;
|
|
61
|
+
author?: string;
|
|
62
|
+
license?: string;
|
|
63
|
+
repository?: string;
|
|
64
|
+
homepage?: string;
|
|
65
|
+
tags?: string[];
|
|
66
|
+
tokens?: Tokens | Record<string, Tokens>;
|
|
67
|
+
plugins?: Plugin[];
|
|
68
|
+
}
|
|
69
|
+
interface UserConfigParams {
|
|
70
|
+
cwd: string;
|
|
71
|
+
mode: string;
|
|
72
|
+
}
|
|
73
|
+
type UserConfigFnObject = (config: UserConfig) => UserConfig;
|
|
74
|
+
type UserConfigFnPromise = (params: UserConfigParams) => Promise<UserConfig | UserConfig[]>;
|
|
75
|
+
type UserConfigFn = (params: UserConfigParams) => UserConfig | UserConfig[] | Promise<UserConfig | UserConfig[]>;
|
|
76
|
+
type UserConfigExport = UserConfig | UserConfig[] | Promise<UserConfig | UserConfig[]> | UserConfigFnObject | UserConfigFnPromise | UserConfigFn;
|
|
77
|
+
type Config = RequiredKeys<UserConfig, "registryPath" | "plugins"> & {
|
|
78
|
+
cwd: string;
|
|
79
|
+
envPaths: EnvPaths & {
|
|
80
|
+
home: string;
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
//#endregion
|
|
84
|
+
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 };
|
|
85
|
+
//# sourceMappingURL=config-DQHHeicR.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-DQHHeicR.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":""}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { t as Schema } from "./schema-1EWJvc56.cjs";
|
|
2
|
+
import { Tokens } from "@power-plant/dtcg-schema";
|
|
3
|
+
import { EnvPaths } from "@stryke/env";
|
|
4
|
+
import { MaybePromise, RequiredKeys } from "@stryke/types/base";
|
|
5
|
+
import { GeneratedDocument } from "@power-plant/core";
|
|
6
|
+
import { PreprocessedTokens } from "style-dictionary";
|
|
7
|
+
import { DesignTokens } from "style-dictionary/types";
|
|
8
|
+
//#region src/types/plugin.d.ts
|
|
9
|
+
interface TokensParser {
|
|
10
|
+
name?: string;
|
|
11
|
+
pattern: RegExp;
|
|
12
|
+
parser: (contents: string) => DesignTokens;
|
|
13
|
+
}
|
|
14
|
+
type TokensPreprocessor = {
|
|
15
|
+
name?: string;
|
|
16
|
+
preprocessor: (dictionary: PreprocessedTokens) => PreprocessedTokens;
|
|
17
|
+
} | ((dictionary: PreprocessedTokens) => PreprocessedTokens);
|
|
18
|
+
interface Plugin {
|
|
19
|
+
name: string;
|
|
20
|
+
parsers?: TokensParser[];
|
|
21
|
+
preprocessors?: TokensPreprocessor[];
|
|
22
|
+
extract?: (spec: Schema, config: Config) => MaybePromise<Schema>;
|
|
23
|
+
generate?: (spec: Schema, config: Config) => MaybePromise<Record<string, GeneratedDocument>>;
|
|
24
|
+
validate?: (spec: Schema, config: Config) => MaybePromise<void>;
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/types/config.d.ts
|
|
28
|
+
interface Options {
|
|
29
|
+
/**
|
|
30
|
+
* The directory or file containing a Razorwind configuration file.
|
|
31
|
+
*
|
|
32
|
+
* @defaultValue "razorwind.config.ts"
|
|
33
|
+
*/
|
|
34
|
+
configFile?: string;
|
|
35
|
+
/**
|
|
36
|
+
* The path to the registry.json file.
|
|
37
|
+
*
|
|
38
|
+
* @see https://shadcn.com/docs/registry
|
|
39
|
+
*/
|
|
40
|
+
registryPath?: string;
|
|
41
|
+
/**
|
|
42
|
+
* The directory or file containing the tokens.
|
|
43
|
+
*
|
|
44
|
+
* @see https://styledictionary.com/info/tokens/
|
|
45
|
+
*
|
|
46
|
+
* @defaultValue "tokens.json" (or "tokens" directory)
|
|
47
|
+
*/
|
|
48
|
+
tokensPath?: string;
|
|
49
|
+
/**
|
|
50
|
+
* The mode to use for the configuration.
|
|
51
|
+
*
|
|
52
|
+
* @defaultValue "production"
|
|
53
|
+
*/
|
|
54
|
+
mode?: "development" | "test" | "production";
|
|
55
|
+
}
|
|
56
|
+
interface UserConfig extends Options {
|
|
57
|
+
name?: string;
|
|
58
|
+
title?: string;
|
|
59
|
+
version?: string;
|
|
60
|
+
description?: string;
|
|
61
|
+
author?: string;
|
|
62
|
+
license?: string;
|
|
63
|
+
repository?: string;
|
|
64
|
+
homepage?: string;
|
|
65
|
+
tags?: string[];
|
|
66
|
+
tokens?: Tokens | Record<string, Tokens>;
|
|
67
|
+
plugins?: Plugin[];
|
|
68
|
+
}
|
|
69
|
+
interface UserConfigParams {
|
|
70
|
+
cwd: string;
|
|
71
|
+
mode: string;
|
|
72
|
+
}
|
|
73
|
+
type UserConfigFnObject = (config: UserConfig) => UserConfig;
|
|
74
|
+
type UserConfigFnPromise = (params: UserConfigParams) => Promise<UserConfig | UserConfig[]>;
|
|
75
|
+
type UserConfigFn = (params: UserConfigParams) => UserConfig | UserConfig[] | Promise<UserConfig | UserConfig[]>;
|
|
76
|
+
type UserConfigExport = UserConfig | UserConfig[] | Promise<UserConfig | UserConfig[]> | UserConfigFnObject | UserConfigFnPromise | UserConfigFn;
|
|
77
|
+
type Config = RequiredKeys<UserConfig, "registryPath" | "plugins"> & {
|
|
78
|
+
cwd: string;
|
|
79
|
+
envPaths: EnvPaths & {
|
|
80
|
+
home: string;
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
//#endregion
|
|
84
|
+
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 };
|
|
85
|
+
//# sourceMappingURL=config-Dj6RrLde.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-Dj6RrLde.d.cts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":";;;;;;;;UAyBiB;EACf;EACA,SAAS;EACT,SAAS,qBAAqB;;KAGpB;EAEN;EACA,eAAe,YAAY,uBAAuB;MAElD,YAAY,uBAAuB;UAExB;EACf;EACA,UAAU;EACV,gBAAgB;EAChB,WAAW,MAAM,QAAQ,QAAQ,WAAW,aAAa;EACzD,YACE,MAAM,QACN,QAAQ,WACL,aAAa,eAAe;EACjC,YAAY,MAAM,QAAQ,QAAQ,WAAW;;;;UCxB9B;;;;;;EAMf;;;;;;EAOA;;;;;;;;EASA;;;;;;EAOA;;UAGe,mBAAmB;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,SAAS,eAAe;EACjC,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,aAAa;EAChC;EACA,UAAU;IACR"}
|
package/dist/config.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./plugin.cjs"),t=require("./resolve-config-D7XXy_Qk.cjs");function n(e){return e}exports.defineConfig=n,exports.definePlugin=e.definePlugin,exports.resolveConfig=t.t;
|
package/dist/config.d.cts
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
import { a as UserConfigFn, c as UserConfigParams, i as UserConfigExport, n as
|
|
1
|
+
import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-Dj6RrLde.cjs";
|
|
2
|
+
import { definePlugin } from "./plugin.cjs";
|
|
3
|
+
//#region src/lib/resolve-config.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Loads the user configuration file for the project.
|
|
6
|
+
*
|
|
7
|
+
* @param cwd - The current working directory.
|
|
8
|
+
* @param options - The options for the configuration.
|
|
9
|
+
* @returns The resolved configuration.
|
|
10
|
+
*/
|
|
11
|
+
declare function resolveConfig(cwd: string, options: Options): Promise<Config>;
|
|
12
|
+
//#endregion
|
|
2
13
|
//#region src/config.d.ts
|
|
3
14
|
/**
|
|
4
15
|
* Type helper to make it easier to use `razorwind.config.ts` files. Accepts a direct {@link UserConfig} object, or a function that returns it. The function receives a {@link ConfigParams} object.
|
|
@@ -29,5 +40,5 @@ declare function defineConfig(config: UserConfigFnPromise): UserConfigFnPromise;
|
|
|
29
40
|
declare function defineConfig(config: UserConfigFn): UserConfigFn;
|
|
30
41
|
declare function defineConfig(config: UserConfigExport): UserConfigExport;
|
|
31
42
|
//#endregion
|
|
32
|
-
export { type Config, type
|
|
43
|
+
export { type Config, type Options, type Plugin, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, defineConfig, definePlugin, resolveConfig };
|
|
33
44
|
//# sourceMappingURL=config.d.cts.map
|
package/dist/config.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.cts","names":[],"sources":["../src/config.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.cts","names":[],"sources":["../src/lib/resolve-config.ts","../src/config.ts"],"mappings":";;;;;;;;;;iBA8CsB,cACpB,aACA,SAAS,UACR,QAAQ;;;;;;;;;;;;;;;;;;;;;;;iBCEK,aAAa,QAAQ,aAAa;iBAClC,aAAa,QAAQ,eAAe;iBACpC,aAAa,QAAQ,QAAQ,cAAc,QAAQ;iBACnD,aACd,QAAQ,QAAQ,gBACf,QAAQ;iBACK,aAAa,QAAQ,qBAAqB;iBAC1C,aAAa,QAAQ,sBAAsB;iBAC3C,aAAa,QAAQ,eAAe;iBACpC,aAAa,QAAQ,mBAAmB"}
|
package/dist/config.d.mts
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
import { a as UserConfigFn, c as UserConfigParams, i as UserConfigExport, n as
|
|
1
|
+
import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-DQHHeicR.mjs";
|
|
2
|
+
import { definePlugin } from "./plugin.mjs";
|
|
3
|
+
//#region src/lib/resolve-config.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Loads the user configuration file for the project.
|
|
6
|
+
*
|
|
7
|
+
* @param cwd - The current working directory.
|
|
8
|
+
* @param options - The options for the configuration.
|
|
9
|
+
* @returns The resolved configuration.
|
|
10
|
+
*/
|
|
11
|
+
declare function resolveConfig(cwd: string, options: Options): Promise<Config>;
|
|
12
|
+
//#endregion
|
|
2
13
|
//#region src/config.d.ts
|
|
3
14
|
/**
|
|
4
15
|
* Type helper to make it easier to use `razorwind.config.ts` files. Accepts a direct {@link UserConfig} object, or a function that returns it. The function receives a {@link ConfigParams} object.
|
|
@@ -29,5 +40,5 @@ declare function defineConfig(config: UserConfigFnPromise): UserConfigFnPromise;
|
|
|
29
40
|
declare function defineConfig(config: UserConfigFn): UserConfigFn;
|
|
30
41
|
declare function defineConfig(config: UserConfigExport): UserConfigExport;
|
|
31
42
|
//#endregion
|
|
32
|
-
export { type Config, type
|
|
43
|
+
export { type Config, type Options, type Plugin, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, defineConfig, definePlugin, resolveConfig };
|
|
33
44
|
//# sourceMappingURL=config.d.mts.map
|
package/dist/config.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.mts","names":[],"sources":["../src/config.ts"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"config.d.mts","names":[],"sources":["../src/lib/resolve-config.ts","../src/config.ts"],"mappings":""}
|
package/dist/config.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function
|
|
1
|
+
import{definePlugin as e}from"./plugin.mjs";import{t}from"./resolve-config-CBowa3KM.mjs";function n(e){return e}export{n as defineConfig,e as definePlugin,t as resolveConfig};
|
|
2
2
|
//# sourceMappingURL=config.mjs.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as e}from"./resolve-config-CBowa3KM.mjs";import{l as t,t as n}from"./tokens-B8Dv91EB.mjs";import{r}from"./schema-Bxzw_P4l.mjs";import{isSetString as i}from"@stryke/type-checks/is-set-string";import{defu as a}from"defu";import{defineGenerator as o,defineSchema as s,useExecution as c}from"@power-plant/core";import{isEmptyObject as l}from"@stryke/type-checks/is-empty-object";import u from"style-dictionary";const d=o({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens and components.`,version:`0.0.7`,tags:[`razorwind`,`dtcg`]},schema:s({schema:r}),input:async r=>{let a=c();if(a.options=await e(a.cwd,r),a.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);t(a.options.plugins,u);let o=a.options.tokens;(!o||l(o))&&(o=await n(a.options,{cwd:a.cwd,tokensPath:i(a.options.tokensPath)?a.options.tokensPath:void 0}));let s={tokens:o??{},components:{}};for(let e of a.options.plugins.filter(e=>e.extract))s=await e.extract(s,a.options);if(!s.tokens||l(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 a.options.plugins.filter(e=>e.validate))await e.validate(s,a.options);return s},generator:async e=>{let t=c(),n={};for(let r of t.options.plugins.filter(e=>e.generate))n=a(await r.generate(e,t.options),n);return n}});export{d as t};
|
|
2
|
+
//# sourceMappingURL=generator-B8nHQMlp.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator-B8nHQMlp.mjs","names":[],"sources":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./rolldown-runtime-CMqjfN_6.cjs"),t=require("./resolve-config-D7XXy_Qk.cjs"),n=require("./tokens-CoQWg4mX.cjs"),r=require("./schema-CLeH9GGy.cjs");let i=require("@stryke/type-checks/is-set-string"),a=require("defu"),o=require("@power-plant/core"),s=require("@stryke/type-checks/is-empty-object"),c=require("style-dictionary");c=e.t(c,1);const l=(0,o.defineGenerator)({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens and components.`,version:`0.0.8`,tags:[`razorwind`,`dtcg`]},schema:(0,o.defineSchema)({schema:r.t}),input:async e=>{let r=(0,o.useExecution)();if(r.options=await t.t(r.cwd,e),r.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);n.l(r.options.plugins,c.default);let a=r.options.tokens;(!a||(0,s.isEmptyObject)(a))&&(a=await n.t(r.options,{cwd:r.cwd,tokensPath:(0,i.isSetString)(r.options.tokensPath)?r.options.tokensPath:void 0}));let l={tokens:a??{},components:{}};for(let e of r.options.plugins.filter(e=>e.extract))l=await e.extract(l,r.options);if(!l.tokens||(0,s.isEmptyObject)(l.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 r.options.plugins.filter(e=>e.validate))await e.validate(l,r.options);return l},generator:async e=>{let t=(0,o.useExecution)(),n={};for(let r of t.options.plugins.filter(e=>e.generate))n=(0,a.defu)(await r.generate(e,t.options),n);return n}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return l}});
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as e}from"./resolve-config-CBowa3KM.mjs";import{l as t,t as n}from"./tokens-B8Dv91EB.mjs";import{r}from"./schema-Bxzw_P4l.mjs";import{isSetString as i}from"@stryke/type-checks/is-set-string";import{defu as a}from"defu";import{defineGenerator as o,defineSchema as s,useExecution as c}from"@power-plant/core";import{isEmptyObject as l}from"@stryke/type-checks/is-empty-object";import u from"style-dictionary";const d=o({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens and components.`,version:`0.0.8`,tags:[`razorwind`,`dtcg`]},schema:s({schema:r}),input:async r=>{let a=c();if(a.options=await e(a.cwd,r),a.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);t(a.options.plugins,u);let o=a.options.tokens;(!o||l(o))&&(o=await n(a.options,{cwd:a.cwd,tokensPath:i(a.options.tokensPath)?a.options.tokensPath:void 0}));let s={tokens:o??{},components:{}};for(let e of a.options.plugins.filter(e=>e.extract))s=await e.extract(s,a.options);if(!s.tokens||l(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 a.options.plugins.filter(e=>e.validate))await e.validate(s,a.options);return s},generator:async e=>{let t=c(),n={};for(let r of t.options.plugins.filter(e=>e.generate))n=a(await r.generate(e,t.options),n);return n}});export{d as t};
|
|
2
|
+
//# sourceMappingURL=generator-BlztRAZw.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator-BlztRAZw.mjs","names":[],"sources":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./rolldown-runtime-CMqjfN_6.cjs"),t=require("./resolve-config-D7XXy_Qk.cjs"),n=require("./tokens-CoQWg4mX.cjs"),r=require("./schema-CLeH9GGy.cjs");let i=require("@stryke/type-checks/is-set-string"),a=require("defu"),o=require("@power-plant/core"),s=require("@stryke/type-checks/is-empty-object"),c=require("style-dictionary");c=e.t(c,1);const l=(0,o.defineGenerator)({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens and components.`,version:`0.0.7`,tags:[`razorwind`,`dtcg`]},schema:(0,o.defineSchema)({schema:r.t}),input:async e=>{let r=(0,o.useExecution)();if(r.options=await t.t(r.cwd,e),r.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);n.l(r.options.plugins,c.default);let a=r.options.tokens;(!a||(0,s.isEmptyObject)(a))&&(a=await n.t(r.options,{cwd:r.cwd,tokensPath:(0,i.isSetString)(r.options.tokensPath)?r.options.tokensPath:void 0}));let l={tokens:a??{},components:{}};for(let e of r.options.plugins.filter(e=>e.extract))l=await e.extract(l,r.options);if(!l.tokens||(0,s.isEmptyObject)(l.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 r.options.plugins.filter(e=>e.validate))await e.validate(l,r.options);return l},generator:async e=>{let t=(0,o.useExecution)(),n={};for(let r of t.options.plugins.filter(e=>e.generate))n=(0,a.defu)(await r.generate(e,t.options),n);return n}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return l}});
|
package/dist/generator.cjs
CHANGED
|
@@ -1,7 +1 @@
|
|
|
1
|
-
|
|
2
|
-
`;)i++;i<e.length&&(t+=e[i]);continue}if(a===`/`&&o===`*`){for(i+=2;i<e.length;){if(e[i]===`*`&&e[i+1]===`/`){i++;break}e[i]===`
|
|
3
|
-
`&&(t+=`
|
|
4
|
-
`),i++}continue}if(a===`,`){let t=i+1;for(;t<e.length;){for(;/\s/.test(e[t]??``);)t++;if(e[t]===`/`&&e[t+1]===`/`){for(t+=2;t<e.length&&e[t]!==`
|
|
5
|
-
`&&e[t]!==`\r`;)t++;continue}if(e[t]===`/`&&e[t+1]===`*`){for(t+=2;t<e.length&&(e[t]!==`*`||e[t+1]!==`/`);)t++;t+=2;continue}break}if(e[t]===`}`||e[t]===`]`)continue}t+=a}return t}function we(e){if(e.startsWith(`#`)||e.startsWith(`.`)||(0,re.isAbsolute)(e))return null;let t=e.split(`/`);return e.startsWith(`@`)?t.length<2?null:{packageName:`${t[0]}/${t[1]}`}:{packageName:t[0]}}const Te=new Map,I=new Map;function Ee(e){let t=[],n=!1,r=0;for(let i of e.split(`
|
|
6
|
-
`)){let e=i.trim();if(!e||e.startsWith(`#`))continue;let a=i.match(/^(\s*)([\w-]+)\s*:/);if(a){r=a[1]?.length??0,n=a[2]===`packages`;continue}if(!n)continue;let o=i.match(/^(\s*)-\s*(.+?)\s*(?:#.*)?$/);((!o||o[1]?.length)??r>=0)||t.push(o[2]?.trim().replace(/^["']|["']$/g,``)??``)}return t}async function De(e){let t=[],n=g.default.resolve(e,`pnpm-workspace.yaml`);if((0,b.existsSync)(n)){let e=await(0,y.readFile)(n);t.push(...Ee(e))}let r=(0,p.joinPaths)(e,`package.json`);if((0,b.existsSync)(r))try{let e=(await(0,v.readJsonFile)(r)).workspaces,n=Array.isArray(e)?e:e?.packages;Array.isArray(n)&&t.push(...n.filter(e=>!e.startsWith(`!`)))}catch{}return Array.from(new Set(t))}async function Oe(e){let t=await De(e),n=new Map;if(!t.length)return n;let r=await(0,h.default)(t.map(e=>g.default.posix.join(e.split(g.default.sep).join(`/`),`package.json`)),{cwd:e,ignore:[`**/node_modules/**`]});for(let t of r){let r=g.default.resolve(e,g.default.dirname(t)),i=(await N(r))?.name;i&&n.set(i,{packageName:i,packageRoot:r})}return n}async function ke(e,t){let n=(0,S.getWorkspaceRoot)(e);if(!n)return null;let r=Te.get(n);if(r?.has(t))return r.get(t)??null;let i=await Oe(n);return Te.set(n,i),i.get(t)??null}function Ae(e,t){if(t===`.`)return e;let n=t.slice(2).replace(/\/\*$/,``);return n?`${e}/${n}`:e}async function je(e){let t=`${e.packageRoot}:${e.packageName}`,n=I.get(t);if(n)return n;let r=(await N(e.packageRoot))?.exports;if(!r||typeof r!=`object`||Array.isArray(r))return I.set(t,[]),[];let i=[];for(let[t,n]of Object.entries(r)){if(t!==`.`&&!t.startsWith(`./`))continue;let r=A(n);if(!r)continue;let a=Ae(e.packageName,t);i.push({key:t.includes(`*`)?`${a}/*`:a,aliasBase:a,target:r,emitMode:se(r),hasWildcard:t.includes(`*`),rootDir:e.packageRoot})}return I.set(t,i),i}async function Me(e,t){let n=we(e);if(!n?.packageName)return null;let r=await ke(t,n.packageName);return r?ce(e,await je(r)):null}async function Ne(e,t){let n=t.cwd??t.baseUrl??(0,S.getWorkspaceRoot)();if(e.startsWith(`#`)){let t=await fe(e,n);if(t)return{path:t.path,source:`package_imports`,matchedAlias:t.matchedAlias,matchedTarget:t.matchedTarget,emitMode:t.emitMode}}let r=await Me(e,n);return r?{path:r.path,source:`workspace_package_exports`,matchedAlias:r.matchedAlias,matchedTarget:r.matchedTarget,emitMode:r.emitMode}:Fe(e,t)}function Pe(e){return/^@[^/]+\/[^/]+(?:\/.*)?$/.test(e)}function Fe(e,t){let n=(0,ne.createMatchPath)(t.baseUrl||t.cwd||(0,S.getWorkspaceRoot)(),t.paths??{})(e,void 0,()=>!0,[`.ts`,`.tsx`,`.jsx`,`.js`,`.css`]);if(!n)return null;let r=Ie(e,t.paths??{});return!r&&Pe(e)?null:{path:n,source:`tsconfig_paths`,matchedAlias:r?.key??e,matchedTarget:r?.target??n,emitMode:`strip_extension`}}function Ie(e,t){for(let[n,r]of Object.entries(t)){let t=Array.isArray(r)?r:[r],i=le(e,n);if(i!==null)return{key:n,target:t[0]?.includes(`*`)&&i!==null?t[0].replace(/\*/g,i):t[0]}}return null}const Le=(0,ee.cosmiconfig)(`components`,{searchPlaces:[`components.json`]});async function Re(e){let t=await Ve(e);return t?(t.iconLibrary||=t.style===`new-york`?`radix`:`lucide`,ze(e,t)):null}const L={"@shadcn":`${D}/styles/{style}/{name}.json`};async function ze(e,t){t.registries={...L,...t.registries??{}};let n=await(0,f.loadTsConfig)(e);if(!n)throw Error(`Failed to load tsconfig.json.`);let r=await R(`utils`,t.aliases.utils,e,n),i=await R(`components`,t.aliases.components,e,n),a=t.aliases.ui?await R(`ui`,t.aliases.ui,e,n):g.default.resolve(i??e,`ui`),o=t.aliases.lib?await R(`lib`,t.aliases.lib,e,n):g.default.resolve(r??e,`..`),s=t.aliases.hooks?await R(`hooks`,t.aliases.hooks,e,n):g.default.resolve(i??e,`..`,`hooks`);return Be(e,{components:i,utils:r,ui:a,lib:o,hooks:s}),_.configSchema.parse({...t,resolvedPaths:{cwd:e,tailwindConfig:t.tailwind.config?g.default.resolve(e,t.tailwind.config):``,tailwindCss:g.default.resolve(e,t.tailwind.css),utils:r,components:i,ui:a,lib:o,hooks:s}})}async function R(e,t,n,r){let i=await Ne(t,{...r,cwd:n});if(!i?.path||t.startsWith(`#`)&&i.path===(0,p.joinPaths)(n,t))return null;if(e!==`utils`&&(i.source===`package_imports`||i.source===`workspace_package_exports`)){if(!i.matchedAlias.includes(`*`)&&/\/index\.[^/]+$/.test(i.path))return g.default.dirname(i.path);if(i.matchedAlias.includes(`*`)&&/\.[^/]+$/.test(i.path))return i.path.replace(/\.[^/]+$/,``)}return i.path}function Be(e,t){let n=[`components`,`ui`,`lib`,`hooks`,`utils`].filter(e=>!t[e]);if(n.length)throw Error([`Could not resolve the following aliases in ${m.default.cyan(e)}: ${m.default.cyan(n.join(`, `))}.`,`Configure path aliases in ${m.default.cyan(`tsconfig.json`)} or imports in ${m.default.cyan(`package.json`)} for this workspace and try again.`].join(`
|
|
7
|
-
`))}async function Ve(e){try{let t=await Le.search(e);if(!t)return null;let n=_.rawConfigSchema.parse(t.config);if(n.registries){for(let e of Object.keys(n.registries))if(e in L)throw Error(`"${e}" is a built-in registry and cannot be overridden.`)}return n}catch(t){let n=`${e}/components.json`;throw t instanceof Error&&t.message.includes(`reserved registry`)?t:Error(`Invalid configuration found in ${m.default.cyan(n)}.`)}}function He(e){let t={resolvedPaths:{cwd:process.cwd(),tailwindConfig:``,tailwindCss:``,utils:``,components:``,ui:``,lib:``,hooks:``},style:``,tailwind:{config:``,css:``,baseColor:``,cssVariables:!1},rsc:!1,tsx:!0,aliases:{components:``,utils:``},registries:{...L}};return e?{...t,...e,resolvedPaths:{...t.resolvedPaths,...e.resolvedPaths??{}},tailwind:{...t.tailwind,...e.tailwind??{}},aliases:{...t.aliases,...e.aliases??{}},registries:{...t.registries,...e.registries??{}}}:t}const Ue=x.z.object({category:x.z.enum([`block`,`component`,`ui`,`page`]),name:x.z.string(),title:x.z.string(),description:x.z.string().optional(),tags:x.z.array(x.z.string()).optional(),related:x.z.array(x.z.string()).optional(),since:x.z.string().optional(),version:x.z.string().optional(),repository:x.z.string().optional(),homepage:x.z.string().optional(),dependencies:x.z.record(x.z.string(),x.z.string()).optional(),registryDependencies:x.z.record(x.z.string(),x.z.string()).optional(),files:x.z.array(x.z.string()).optional()});x.z.record(x.z.string(),Ue);function We(e){return x.default.unknown().transform((t,n)=>{let r=e.safeParse(t);if(!r.success){for(let e of r.error.issues)n.addIssue({code:`custom`,message:e.message,path:e.path});return x.default.NEVER}return r.data})}const Ge=x.default.union([C.tokensSchema,x.default.record(x.default.string(),C.tokensSchema)]),Ke=x.default.object({registry:We(_.configSchema),tokens:Ge}),qe=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],z=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],Je=z.join(`,`),Ye=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],Xe=`**/*.{${Je}}`,Ze=/^(light|dark|dim|high-contrast|hc|default|base|theme)([._-].+)?$/i,Qe={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},$e=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,et=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,tt=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,nt=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,rt=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,it=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,at=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,ot=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,st=/^\{[^{}]+\}$/,ct={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},B=new Set([`px`,`rem`]);function V(e){return Math.min(1,Math.max(0,e))}function H(e,t=100){let n=e.trim();if(n.endsWith(`%`))return V(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return V(r>1?r/255:r)}function lt(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function ut(e){let t=lt(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function dt(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function U(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function W(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function G(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=Qe[n];if(r)return r}}function K(e,t=[]){let n=G(t);if(typeof e==`string`){let r=e.trim();if(st.test(r))return{value:r,type:n};let i=r.match(ot);if(i?.[1])return{value:dt(i[1]),type:n};if($e.test(r))return{value:ut(r),type:`color`};let a=r.match(et);if(a){let e=[H(a[1]),H(a[2]),H(a[3])],t=a[4]?a[4].endsWith(`%`)?V(Number.parseFloat(a[4])/100):V(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=r.match(tt);if(o)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(o[1]),Number.parseFloat(o[2]),Number.parseFloat(o[3])],...o[4]?{alpha:o[4].endsWith(`%`)?V(Number.parseFloat(o[4])/100):V(Number.parseFloat(o[4]))}:{}},type:`color`};let s=r.match(nt);if(s){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(s[1]),e(s[2]),e(s[3])],...s[4]?{alpha:s[4].endsWith(`%`)?V(Number.parseFloat(s[4])/100):V(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=r.match(rt);if(c){let e=c[2].toLowerCase(),t=Number.parseFloat(c[1]);return B.has(e)?{value:{value:t,unit:e},type:`dimension`}:{value:r,type:n===`dimension`?void 0:n}}let l=r.match(it);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=r.match(at);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=ct[r.toLowerCase()];return d===void 0?n===`fontFamily`||/family|font|typeface/i.test(t.at(-1)??``)?r.includes(`,`)?{value:r.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:r.replace(/^["']|["']$/g,``),type:`fontFamily`}:n===`color`&&!r.startsWith(`{`)?{value:r,type:void 0}:{value:r,type:n}:{value:d,type:`fontWeight`}}if(typeof e==`number`)return n===`fontWeight`?{value:e,type:`fontWeight`}:n===`duration`?{value:{value:e,unit:`ms`},type:`duration`}:n===`dimension`?{value:{value:e,unit:`px`},type:`dimension`}:{value:e,type:n??`number`};if(Array.isArray(e))return e.length===4&&e.every(e=>typeof e==`number`)&&(n===`cubicBezier`||t.some(e=>/ease|bezier/i.test(e)))?{value:e,type:`cubicBezier`}:e.every(e=>typeof e==`string`)?{value:e,type:n??`fontFamily`}:{value:e,type:n};if(U(e)){if(`colorSpace`in e&&`components`in e)return{value:e,type:`color`};if(`value`in e&&`unit`in e){let t=String(e.unit).toLowerCase();return t===`ms`||t===`s`?{value:e,type:`duration`}:B.has(t)?{value:e,type:`dimension`}:{value:e,type:n}}}return{value:e,type:n}}function ft(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),`$value`in n){let e=K(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function q(e,t=[]){if(Array.isArray(e))return e.map((e,n)=>q(e,[...t,String(n)]));if(!U(e))return e;if(W(e))return ft(e,t);let n={};for(let[r,i]of Object.entries(e)){if(r.startsWith(`$`)){n[r]=i;continue}n[r]=q(i,[...t,r])}if(!(`$type`in n)){let e=G(t);e&&t.length>0&&(n.$type=e)}return n}function J(e){let t={};for(let[n,r]of Object.entries(e)){let e=n.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(e.length===0)continue;let i=t;for(let t=0;t<e.length-1;t++){let n=e[t],r=i[n];U(r)?W(r)&&(i[n]={DEFAULT:r}):i[n]={},i=i[n]}let a=e.at(-1),o=K(r,e),s={$value:o.value,...o.type?{$type:o.type}:{}},c=i[a];U(c)&&!W(c)?c.DEFAULT=s:i[a]=s}return q(t)}const pt=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function mt(e){let t={},n=e.replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(pt)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return J(t)}const Y=`razorwind-infer`;function X(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return q(e)}function ht(e){try{return X(T.default.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function gt(e){try{return X((0,oe.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function _t(e){try{return X((0,ae.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const vt=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>ht(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>gt(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>_t(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>q(mt(e))}];function yt(){return Object.fromEntries(vt.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function bt(e){return q(e)}function xt(){return{[Y]:bt}}function St(e=d.default){for(let t of vt)e.registerParser(t);e.registerPreprocessor({name:Y,preprocessor:bt})}function Z(e,t){return(0,g.isAbsolute)(t)?t:(0,g.resolve)(e,t)}function Q(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function Ct(e){return z.includes(Q(e))}function wt(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function Tt(e){return(0,p.joinPaths)(e,Xe)}function Et(e){let{cwd:t,tokensPath:n,fallbackPaths:r=[]}=e;if(n){let e=Z(t,n);if(!(0,w.existsSync)(e))throw Error(`tokensPath "${n}" does not exist (resolved: ${e}).`);return(0,E.isDirectory)(e)?{resolvedPath:e,source:[Tt(e)],origin:`tokensPath`}:wt(e)?{resolvedPath:e,source:[],origin:`tokensPath`}:{resolvedPath:e,source:[e],origin:`tokensPath`}}for(let e of Ye){let n=Z(t,e);if((0,w.existsSync)(n)){if((0,E.isDirectory)(n))return{resolvedPath:n,source:[Tt(n)],origin:`default`};if(wt(n))return{resolvedPath:n,source:[],origin:`default`};if(Ct(n))return{resolvedPath:n,source:[n],origin:`default`}}}for(let e of r){if(!e)continue;let n=Z(t,e);if(!(!(0,w.existsSync)(n)||(0,E.isDirectory)(n))&&(Ct(n)||Q(n)===`css`))return{resolvedPath:n,source:[n],origin:`fallback`}}return{source:[],origin:`none`}}function Dt(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(Ze)?.[1]?.toLowerCase()}let Ot=!1;function kt(){Ot||=(St(d.default),!0)}function At(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function jt(e){let t=await(0,ie.importModule)(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function Mt(e){kt();let t=new d.default({...e,parsers:[...qe,...e.parsers??[]],preprocessors:[Y,...e.preprocessors??[]],hooks:{...e.hooks,parsers:{...yt(),...e.hooks?.parsers},preprocessors:{...xt(),...e.hooks?.preprocessors}},usesDtcg:e.usesDtcg??!0,platforms:e.platforms??{}});return await t.hasInitialized,t}async function $(e){return e.length===0?{}:(await Mt({source:e})).tokens}async function Nt(e){return(await(0,h.default)(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function Pt(e){let t=await Nt(e);if(t.length===0)return{};let n=new Map,r=[];for(let e of t){let t=Dt(e);if(t){let r=n.get(t)??[];r.push(e),n.set(t,r)}else r.push(e)}if(n.size<2)return $(e);let i={};if(r.length>0){let e=await $(r);At(e)||(i.base=e)}for(let[e,t]of n)i[e]=await $(t);return i}async function Ft(e){let{splitThemes:t=!0,...n}=e,r=Et(n);return r.resolvedPath&&(0,w.existsSync)(r.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test((0,g.basename)(r.resolvedPath))?(await Mt(await jt(r.resolvedPath))).tokens:r.source.length===0?{}:t?Pt(r.source):$(r.source)}async function It(){try{return await import(`@tailwindcss/node`)}catch(e){throw Error(`Cannot load '@tailwindcss/node'. Install tailwindcss v4 / @tailwindcss/node to extract workspace theme tokens.`,{cause:e})}}function Lt(e,t){return(0,g.isAbsolute)(t)?t:(0,g.resolve)(e,t)}async function Rt(e,t){let n=await he(e,{configCssFile:t??void 0});if(n?.tailwindVersion)return{configured:!!n.tailwindCssFile,version:n.tailwindVersion,cssFile:n.tailwindCssFile,configFile:n.tailwindConfigFile};let[r,i]=await Promise.all([F(e),_e(e,t??void 0)]);return{configured:!!(r&&i),version:r,cssFile:i,configFile:null}}function zt(e,t){for(let n of t){if(!(0,u.isSetString)(n))continue;let t=Lt(e,n);if((0,w.existsSync)(t))return t}return null}async function Bt(e){let{cwd:t,cssPath:n,omitDefaults:r=!1}=e,i=await Rt(t,n);if(!i.configured||i.version!==`v4`)return null;let a=zt(t,[n,i.cssFile]);if(!a)return null;let o=await(0,y.readFile)(a),s=await(await It()).__unstable__loadDesignSystem(o,{base:(0,g.dirname)(a)}),c={};for(let[e,t]of s.theme.entries())r&&(t.options&4)==4||!e.startsWith(`--`)||!t.value||(c[e]=t.value);return Object.keys(c).length===0?null:J(c)}function Vt(e){return!e||typeof e!=`object`||Object.keys(e).length===0}var Ht=(0,c.defineGenerator)({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens and components.`,version:`1.0`,tags:[`razorwind`,`dtcg`]},schema:(0,c.defineSchema)({schema:Ke}),input:async e=>{let{registryPath:t,tokensPath:n}=e,{cwd:r}=(0,c.useExecution)(),i=(0,u.isSetString)(t)?(0,l.findFilePath)(t):r,a=await Re(i)??He({resolvedPaths:{cwd:i}});St(d.default);let o=[a.resolvedPaths?.tailwindCss,a.tailwind?.css],s;if((0,u.isSetString)(n))s=await Ft({cwd:r,tokensPath:n});else{let e=await Rt(r,a.tailwind?.css);e.configured&&e.version===`v4`&&(s=await Bt({cwd:r,cssPath:a.resolvedPaths?.tailwindCss??a.tailwind?.css??e.cssFile})),Vt(s)&&(s=await Ft({cwd:r,fallbackPaths:o}))}return{registry:a,tokens:s??{}}},generator:async(e,t)=>({})});module.exports=Ht;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./generator-BG_JjPA5.cjs");exports.generator=e.t;
|
package/dist/generator.d.cts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import {
|
|
1
|
+
import { t as Schema } from "./schema-1EWJvc56.cjs";
|
|
2
|
+
import { n as Options } from "./config-Dj6RrLde.cjs";
|
|
3
|
+
import "./index-COAOe8bR.cjs";
|
|
3
4
|
//#region src/generator.d.ts
|
|
4
5
|
/**
|
|
5
6
|
* A Power Plant generator for Razorwind.
|
|
6
7
|
*
|
|
7
|
-
* @
|
|
8
|
-
* @param options - Razorwind config (plugins, outDir, lint, …).
|
|
9
|
-
* @returns Generated documents keyed by output filename.
|
|
8
|
+
* Orchestrates configured {@link Plugin}s: Style Dictionary parsers / preprocessors, then `extract` → `validate` on input, then `generate`.
|
|
10
9
|
*/
|
|
11
|
-
declare const
|
|
12
|
-
|
|
10
|
+
declare const generator: import("@power-plant/core").GeneratorConfigObject<Schema, Options, void>;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { generator };
|
|
13
13
|
//# sourceMappingURL=generator.d.cts.map
|
package/dist/generator.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.cts","names":[],"sources":["../src/generator.ts"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"generator.d.cts","names":[],"sources":["../src/generator.ts"],"mappings":";;;;;;;;;cAuCa,uCAAS,sBAAA,QAAA"}
|
package/dist/generator.d.mts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import {
|
|
1
|
+
import { t as Schema } from "./schema-BNfl9Tsw.mjs";
|
|
2
|
+
import { n as Options } from "./config-DQHHeicR.mjs";
|
|
3
|
+
import "./index--y-fo2Lr.mjs";
|
|
3
4
|
//#region src/generator.d.ts
|
|
4
5
|
/**
|
|
5
6
|
* A Power Plant generator for Razorwind.
|
|
6
7
|
*
|
|
7
|
-
* @
|
|
8
|
-
* @param options - Razorwind config (plugins, outDir, lint, …).
|
|
9
|
-
* @returns Generated documents keyed by output filename.
|
|
8
|
+
* Orchestrates configured {@link Plugin}s: Style Dictionary parsers / preprocessors, then `extract` → `validate` on input, then `generate`.
|
|
10
9
|
*/
|
|
11
|
-
declare const
|
|
10
|
+
declare const generator: import("@power-plant/core").GeneratorConfigObject<Schema, Options, void>;
|
|
12
11
|
//#endregion
|
|
13
|
-
export {
|
|
12
|
+
export { generator };
|
|
14
13
|
//# sourceMappingURL=generator.d.mts.map
|
package/dist/generator.mjs
CHANGED
|
@@ -1,8 +1 @@
|
|
|
1
|
-
import{
|
|
2
|
-
`;)i++;i<e.length&&(t+=e[i]);continue}if(a===`/`&&o===`*`){for(i+=2;i<e.length;){if(e[i]===`*`&&e[i+1]===`/`){i++;break}e[i]===`
|
|
3
|
-
`&&(t+=`
|
|
4
|
-
`),i++}continue}if(a===`,`){let t=i+1;for(;t<e.length;){for(;/\s/.test(e[t]??``);)t++;if(e[t]===`/`&&e[t+1]===`/`){for(t+=2;t<e.length&&e[t]!==`
|
|
5
|
-
`&&e[t]!==`\r`;)t++;continue}if(e[t]===`/`&&e[t+1]===`*`){for(t+=2;t<e.length&&(e[t]!==`*`||e[t+1]!==`/`);)t++;t+=2;continue}break}if(e[t]===`}`||e[t]===`]`)continue}t+=a}return t}function Te(e){if(e.startsWith(`#`)||e.startsWith(`.`)||ae(e))return null;let t=e.split(`/`);return e.startsWith(`@`)?t.length<2?null:{packageName:`${t[0]}/${t[1]}`}:{packageName:t[0]}}const F=new Map,I=new Map;function Ee(e){let t=[],n=!1,r=0;for(let i of e.split(`
|
|
6
|
-
`)){let e=i.trim();if(!e||e.startsWith(`#`))continue;let a=i.match(/^(\s*)([\w-]+)\s*:/);if(a){r=a[1]?.length??0,n=a[2]===`packages`;continue}if(!n)continue;let o=i.match(/^(\s*)-\s*(.+?)\s*(?:#.*)?$/);((!o||o[1]?.length)??r>=0)||t.push(o[2]?.trim().replace(/^["']|["']$/g,``)??``)}return t}async function De(e){let t=[],n=d.resolve(e,`pnpm-workspace.yaml`);if(_(n)){let e=await g(n);t.push(...Ee(e))}let r=s(e,`package.json`);if(_(r))try{let e=(await ne(r)).workspaces,n=Array.isArray(e)?e:e?.packages;Array.isArray(n)&&t.push(...n.filter(e=>!e.startsWith(`!`)))}catch{}return Array.from(new Set(t))}async function Oe(e){let t=await De(e),n=new Map;if(!t.length)return n;let r=await u(t.map(e=>d.posix.join(e.split(d.sep).join(`/`),`package.json`)),{cwd:e,ignore:[`**/node_modules/**`]});for(let t of r){let r=d.resolve(e,d.dirname(t)),i=(await j(r))?.name;i&&n.set(i,{packageName:i,packageRoot:r})}return n}async function ke(e,t){let n=b(e);if(!n)return null;let r=F.get(n);if(r?.has(t))return r.get(t)??null;let i=await Oe(n);return F.set(n,i),i.get(t)??null}function Ae(e,t){if(t===`.`)return e;let n=t.slice(2).replace(/\/\*$/,``);return n?`${e}/${n}`:e}async function je(e){let t=`${e.packageRoot}:${e.packageName}`,n=I.get(t);if(n)return n;let r=(await j(e.packageRoot))?.exports;if(!r||typeof r!=`object`||Array.isArray(r))return I.set(t,[]),[];let i=[];for(let[t,n]of Object.entries(r)){if(t!==`.`&&!t.startsWith(`./`))continue;let r=ue(n);if(!r)continue;let a=Ae(e.packageName,t);i.push({key:t.includes(`*`)?`${a}/*`:a,aliasBase:a,target:r,emitMode:de(r),hasWildcard:t.includes(`*`),rootDir:e.packageRoot})}return I.set(t,i),i}async function Me(e,t){let n=Te(e);if(!n?.packageName)return null;let r=await ke(t,n.packageName);return r?D(e,await je(r)):null}async function Ne(e,t){let n=t.cwd??t.baseUrl??b();if(e.startsWith(`#`)){let t=await me(e,n);if(t)return{path:t.path,source:`package_imports`,matchedAlias:t.matchedAlias,matchedTarget:t.matchedTarget,emitMode:t.emitMode}}let r=await Me(e,n);return r?{path:r.path,source:`workspace_package_exports`,matchedAlias:r.matchedAlias,matchedTarget:r.matchedTarget,emitMode:r.emitMode}:Fe(e,t)}function Pe(e){return/^@[^/]+\/[^/]+(?:\/.*)?$/.test(e)}function Fe(e,t){let n=ie(t.baseUrl||t.cwd||b(),t.paths??{})(e,void 0,()=>!0,[`.ts`,`.tsx`,`.jsx`,`.js`,`.css`]);if(!n)return null;let r=Ie(e,t.paths??{});return!r&&Pe(e)?null:{path:n,source:`tsconfig_paths`,matchedAlias:r?.key??e,matchedTarget:r?.target??n,emitMode:`strip_extension`}}function Ie(e,t){for(let[n,r]of Object.entries(t)){let t=Array.isArray(r)?r:[r],i=O(e,n);if(i!==null)return{key:n,target:t[0]?.includes(`*`)&&i!==null?t[0].replace(/\*/g,i):t[0]}}return null}const Le=l(`components`,{searchPlaces:[`components.json`]});async function Re(e){let t=await Ve(e);return t?(t.iconLibrary||=t.style===`new-york`?`radix`:`lucide`,ze(e,t)):null}const L={"@shadcn":`${w}/styles/{style}/{name}.json`};async function ze(e,t){t.registries={...L,...t.registries??{}};let n=await o(e);if(!n)throw Error(`Failed to load tsconfig.json.`);let r=await R(`utils`,t.aliases.utils,e,n),i=await R(`components`,t.aliases.components,e,n),a=t.aliases.ui?await R(`ui`,t.aliases.ui,e,n):d.resolve(i??e,`ui`),s=t.aliases.lib?await R(`lib`,t.aliases.lib,e,n):d.resolve(r??e,`..`),c=t.aliases.hooks?await R(`hooks`,t.aliases.hooks,e,n):d.resolve(i??e,`..`,`hooks`);return Be(e,{components:i,utils:r,ui:a,lib:s,hooks:c}),ee.parse({...t,resolvedPaths:{cwd:e,tailwindConfig:t.tailwind.config?d.resolve(e,t.tailwind.config):``,tailwindCss:d.resolve(e,t.tailwind.css),utils:r,components:i,ui:a,lib:s,hooks:c}})}async function R(e,t,n,r){let i=await Ne(t,{...r,cwd:n});if(!i?.path||t.startsWith(`#`)&&i.path===s(n,t))return null;if(e!==`utils`&&(i.source===`package_imports`||i.source===`workspace_package_exports`)){if(!i.matchedAlias.includes(`*`)&&/\/index\.[^/]+$/.test(i.path))return d.dirname(i.path);if(i.matchedAlias.includes(`*`)&&/\.[^/]+$/.test(i.path))return i.path.replace(/\.[^/]+$/,``)}return i.path}function Be(e,t){let n=[`components`,`ui`,`lib`,`hooks`,`utils`].filter(e=>!t[e]);if(n.length)throw Error([`Could not resolve the following aliases in ${c.cyan(e)}: ${c.cyan(n.join(`, `))}.`,`Configure path aliases in ${c.cyan(`tsconfig.json`)} or imports in ${c.cyan(`package.json`)} for this workspace and try again.`].join(`
|
|
7
|
-
`))}async function Ve(e){try{let t=await Le.search(e);if(!t)return null;let n=te.parse(t.config);if(n.registries){for(let e of Object.keys(n.registries))if(e in L)throw Error(`"${e}" is a built-in registry and cannot be overridden.`)}return n}catch(t){let n=`${e}/components.json`;throw t instanceof Error&&t.message.includes(`reserved registry`)?t:Error(`Invalid configuration found in ${c.cyan(n)}.`)}}function He(e){let t={resolvedPaths:{cwd:process.cwd(),tailwindConfig:``,tailwindCss:``,utils:``,components:``,ui:``,lib:``,hooks:``},style:``,tailwind:{config:``,css:``,baseColor:``,cssVariables:!1},rsc:!1,tsx:!0,aliases:{components:``,utils:``},registries:{...L}};return e?{...t,...e,resolvedPaths:{...t.resolvedPaths,...e.resolvedPaths??{}},tailwind:{...t.tailwind,...e.tailwind??{}},aliases:{...t.aliases,...e.aliases??{}},registries:{...t.registries,...e.registries??{}}}:t}const Ue=y.object({category:y.enum([`block`,`component`,`ui`,`page`]),name:y.string(),title:y.string(),description:y.string().optional(),tags:y.array(y.string()).optional(),related:y.array(y.string()).optional(),since:y.string().optional(),version:y.string().optional(),repository:y.string().optional(),homepage:y.string().optional(),dependencies:y.record(y.string(),y.string()).optional(),registryDependencies:y.record(y.string(),y.string()).optional(),files:y.array(y.string()).optional()});y.record(y.string(),Ue);function We(e){return v.unknown().transform((t,n)=>{let r=e.safeParse(t);if(!r.success){for(let e of r.error.issues)n.addIssue({code:`custom`,message:e.message,path:e.path});return v.NEVER}return r.data})}const Ge=v.union([x,v.record(v.string(),x)]),Ke=v.object({registry:We(ee),tokens:Ge}),qe=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],z=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],Je=z.join(`,`),Ye=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],Xe=`**/*.{${Je}}`,Ze=/^(light|dark|dim|high-contrast|hc|default|base|theme)([._-].+)?$/i,Qe={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},$e=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,et=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,tt=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,nt=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,rt=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,it=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,at=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,ot=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,st=/^\{[^{}]+\}$/,ct={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},B=new Set([`px`,`rem`]);function V(e){return Math.min(1,Math.max(0,e))}function H(e,t=100){let n=e.trim();if(n.endsWith(`%`))return V(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return V(r>1?r/255:r)}function lt(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function ut(e){let t=lt(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function dt(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function U(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function W(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function G(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=Qe[n];if(r)return r}}function K(e,t=[]){let n=G(t);if(typeof e==`string`){let r=e.trim();if(st.test(r))return{value:r,type:n};let i=r.match(ot);if(i?.[1])return{value:dt(i[1]),type:n};if($e.test(r))return{value:ut(r),type:`color`};let a=r.match(et);if(a){let e=[H(a[1]),H(a[2]),H(a[3])],t=a[4]?a[4].endsWith(`%`)?V(Number.parseFloat(a[4])/100):V(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=r.match(tt);if(o)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(o[1]),Number.parseFloat(o[2]),Number.parseFloat(o[3])],...o[4]?{alpha:o[4].endsWith(`%`)?V(Number.parseFloat(o[4])/100):V(Number.parseFloat(o[4]))}:{}},type:`color`};let s=r.match(nt);if(s){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(s[1]),e(s[2]),e(s[3])],...s[4]?{alpha:s[4].endsWith(`%`)?V(Number.parseFloat(s[4])/100):V(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=r.match(rt);if(c){let e=c[2].toLowerCase(),t=Number.parseFloat(c[1]);return B.has(e)?{value:{value:t,unit:e},type:`dimension`}:{value:r,type:n===`dimension`?void 0:n}}let l=r.match(it);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=r.match(at);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=ct[r.toLowerCase()];return d===void 0?n===`fontFamily`||/family|font|typeface/i.test(t.at(-1)??``)?r.includes(`,`)?{value:r.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:r.replace(/^["']|["']$/g,``),type:`fontFamily`}:n===`color`&&!r.startsWith(`{`)?{value:r,type:void 0}:{value:r,type:n}:{value:d,type:`fontWeight`}}if(typeof e==`number`)return n===`fontWeight`?{value:e,type:`fontWeight`}:n===`duration`?{value:{value:e,unit:`ms`},type:`duration`}:n===`dimension`?{value:{value:e,unit:`px`},type:`dimension`}:{value:e,type:n??`number`};if(Array.isArray(e))return e.length===4&&e.every(e=>typeof e==`number`)&&(n===`cubicBezier`||t.some(e=>/ease|bezier/i.test(e)))?{value:e,type:`cubicBezier`}:e.every(e=>typeof e==`string`)?{value:e,type:n??`fontFamily`}:{value:e,type:n};if(U(e)){if(`colorSpace`in e&&`components`in e)return{value:e,type:`color`};if(`value`in e&&`unit`in e){let t=String(e.unit).toLowerCase();return t===`ms`||t===`s`?{value:e,type:`duration`}:B.has(t)?{value:e,type:`dimension`}:{value:e,type:n}}}return{value:e,type:n}}function ft(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),`$value`in n){let e=K(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function q(e,t=[]){if(Array.isArray(e))return e.map((e,n)=>q(e,[...t,String(n)]));if(!U(e))return e;if(W(e))return ft(e,t);let n={};for(let[r,i]of Object.entries(e)){if(r.startsWith(`$`)){n[r]=i;continue}n[r]=q(i,[...t,r])}if(!(`$type`in n)){let e=G(t);e&&t.length>0&&(n.$type=e)}return n}function J(e){let t={};for(let[n,r]of Object.entries(e)){let e=n.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(e.length===0)continue;let i=t;for(let t=0;t<e.length-1;t++){let n=e[t],r=i[n];U(r)?W(r)&&(i[n]={DEFAULT:r}):i[n]={},i=i[n]}let a=e.at(-1),o=K(r,e),s={$value:o.value,...o.type?{$type:o.type}:{}},c=i[a];U(c)&&!W(c)?c.DEFAULT=s:i[a]=s}return q(t)}const pt=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function mt(e){let t={},n=e.replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(pt)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return J(t)}const Y=`razorwind-infer`;function X(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return q(e)}function ht(e){try{return X(se.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function gt(e){try{return X(le(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function _t(e){try{return X(ce(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const vt=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>ht(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>gt(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>_t(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>q(mt(e))}];function yt(){return Object.fromEntries(vt.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function bt(e){return q(e)}function xt(){return{[Y]:bt}}function Z(e=a){for(let t of vt)e.registerParser(t);e.registerPreprocessor({name:Y,preprocessor:bt})}function Q(e,t){return m(t)?t:h(e,t)}function St(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function Ct(e){return z.includes(St(e))}function wt(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function Tt(e){return s(e,Xe)}function Et(e){let{cwd:t,tokensPath:n,fallbackPaths:r=[]}=e;if(n){let e=Q(t,n);if(!S(e))throw Error(`tokensPath "${n}" does not exist (resolved: ${e}).`);return C(e)?{resolvedPath:e,source:[Tt(e)],origin:`tokensPath`}:wt(e)?{resolvedPath:e,source:[],origin:`tokensPath`}:{resolvedPath:e,source:[e],origin:`tokensPath`}}for(let e of Ye){let n=Q(t,e);if(S(n)){if(C(n))return{resolvedPath:n,source:[Tt(n)],origin:`default`};if(wt(n))return{resolvedPath:n,source:[],origin:`default`};if(Ct(n))return{resolvedPath:n,source:[n],origin:`default`}}}for(let e of r){if(!e)continue;let n=Q(t,e);if(!(!S(n)||C(n))&&(Ct(n)||St(n)===`css`))return{resolvedPath:n,source:[n],origin:`fallback`}}return{source:[],origin:`none`}}function Dt(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(Ze)?.[1]?.toLowerCase()}let Ot=!1;function kt(){Ot||=(Z(a),!0)}function At(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function jt(e){let t=await oe(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function Mt(e){kt();let t=new a({...e,parsers:[...qe,...e.parsers??[]],preprocessors:[Y,...e.preprocessors??[]],hooks:{...e.hooks,parsers:{...yt(),...e.hooks?.parsers},preprocessors:{...xt(),...e.hooks?.preprocessors}},usesDtcg:e.usesDtcg??!0,platforms:e.platforms??{}});return await t.hasInitialized,t}async function $(e){return e.length===0?{}:(await Mt({source:e})).tokens}async function Nt(e){return(await u(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function Pt(e){let t=await Nt(e);if(t.length===0)return{};let n=new Map,r=[];for(let e of t){let t=Dt(e);if(t){let r=n.get(t)??[];r.push(e),n.set(t,r)}else r.push(e)}if(n.size<2)return $(e);let i={};if(r.length>0){let e=await $(r);At(e)||(i.base=e)}for(let[e,t]of n)i[e]=await $(t);return i}async function Ft(e){let{splitThemes:t=!0,...n}=e,r=Et(n);return r.resolvedPath&&S(r.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test(f(r.resolvedPath))?(await Mt(await jt(r.resolvedPath))).tokens:r.source.length===0?{}:t?Pt(r.source):$(r.source)}async function It(){try{return await import(`@tailwindcss/node`)}catch(e){throw Error(`Cannot load '@tailwindcss/node'. Install tailwindcss v4 / @tailwindcss/node to extract workspace theme tokens.`,{cause:e})}}function Lt(e,t){return m(t)?t:h(e,t)}async function Rt(e,t){let n=await _e(e,{configCssFile:t??void 0});if(n?.tailwindVersion)return{configured:!!n.tailwindCssFile,version:n.tailwindVersion,cssFile:n.tailwindCssFile,configFile:n.tailwindConfigFile};let[r,i]=await Promise.all([N(e),P(e,t??void 0)]);return{configured:!!(r&&i),version:r,cssFile:i,configFile:null}}function zt(e,t){for(let n of t){if(!i(n))continue;let t=Lt(e,n);if(S(t))return t}return null}async function Bt(e){let{cwd:t,cssPath:n,omitDefaults:r=!1}=e,i=await Rt(t,n);if(!i.configured||i.version!==`v4`)return null;let a=zt(t,[n,i.cssFile]);if(!a)return null;let o=await g(a),s=await(await It()).__unstable__loadDesignSystem(o,{base:p(a)}),c={};for(let[e,t]of s.theme.entries())r&&(t.options&4)==4||!e.startsWith(`--`)||!t.value||(c[e]=t.value);return Object.keys(c).length===0?null:J(c)}function Vt(e){return!e||typeof e!=`object`||Object.keys(e).length===0}var Ht=e({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens and components.`,version:`1.0`,tags:[`razorwind`,`dtcg`]},schema:t({schema:Ke}),input:async e=>{let{registryPath:t,tokensPath:o}=e,{cwd:s}=n(),c=i(t)?r(t):s,l=await Re(c)??He({resolvedPaths:{cwd:c}});Z(a);let u=[l.resolvedPaths?.tailwindCss,l.tailwind?.css],d;if(i(o))d=await Ft({cwd:s,tokensPath:o});else{let e=await Rt(s,l.tailwind?.css);e.configured&&e.version===`v4`&&(d=await Bt({cwd:s,cssPath:l.resolvedPaths?.tailwindCss??l.tailwind?.css??e.cssFile})),Vt(d)&&(d=await Ft({cwd:s,fallbackPaths:u}))}return{registry:l,tokens:d??{}}},generator:async(e,t)=>({})});export{Ht as default};
|
|
8
|
-
//# sourceMappingURL=generator.mjs.map
|
|
1
|
+
import{t as e}from"./generator-BlztRAZw.mjs";export{e as generator};
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./config.cjs");exports.defineConfig=e.
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./plugin.cjs"),t=require("./resolve-config-D7XXy_Qk.cjs"),n=require("./config.cjs"),r=require("./generator-BG_JjPA5.cjs"),i=require("./schema-CLeH9GGy.cjs"),a=require("./utils/index.cjs");let o=require("@power-plant/dtcg-schema");exports.componentFileSchema=i.n,exports.componentSchema=i.r,exports.componentsSchema=i.i,exports.createDocument=a.createDocument,exports.defineConfig=n.defineConfig,exports.definePlugin=e.definePlugin,exports.formatColorValue=a.formatColorValue,exports.formatDimensionValue=a.formatDimensionValue,exports.formatTokenValue=a.formatTokenValue,exports.generator=r.t,exports.isPlainObject=a.isPlainObject,exports.resolveConfig=t.t,exports.schema=i.t,exports.toCssVar=a.toCssVar,Object.defineProperty(exports,"tokenSchema",{enumerable:!0,get:function(){return o.tokenSchema}}),Object.defineProperty(exports,"tokensSchema",{enumerable:!0,get:function(){return o.tokensSchema}});
|
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { a as Components, c as componentsSchema, i as ComponentFile, n as schema, o as componentFileSchema, r as Component, s as componentSchema, t as Schema } from "./schema-1EWJvc56.cjs";
|
|
2
|
+
import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-Dj6RrLde.cjs";
|
|
3
|
+
import { definePlugin } from "./plugin.cjs";
|
|
4
|
+
import { defineConfig, resolveConfig } from "./config.cjs";
|
|
5
|
+
import { i as tokensSchema, n as Tokens, r as tokenSchema, t as Token } from "./index-COAOe8bR.cjs";
|
|
6
|
+
import { generator } from "./generator.cjs";
|
|
7
|
+
import { createDocument, formatColorValue, formatDimensionValue, formatTokenValue, isPlainObject, toCssVar } from "./utils/index.cjs";
|
|
4
8
|
import { GeneratorConfig } from "@power-plant/core";
|
|
5
9
|
//#region src/types/base.d.ts
|
|
6
10
|
type Generator<TOptions extends object = object> = GeneratorConfig<Schema, TOptions> & {
|
|
@@ -14,5 +18,5 @@ type Generator<TOptions extends object = object> = GeneratorConfig<Schema, TOpti
|
|
|
14
18
|
tags: string[];
|
|
15
19
|
};
|
|
16
20
|
//#endregion
|
|
17
|
-
export { type Config, type Generator, type
|
|
21
|
+
export { type Component, type ComponentFile, type Components, type Config, type Generator, type Options, type Plugin, type Schema, type Token, type Tokens, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, componentFileSchema, componentSchema, componentsSchema, createDocument, defineConfig, definePlugin, formatColorValue, formatDimensionValue, formatTokenValue, generator, isPlainObject, resolveConfig, schema, toCssVar, tokenSchema, tokensSchema };
|
|
18
22
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types/base.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types/base.ts"],"mappings":";;;;;;;;;KAqBY,UAAU,oCAAoC,gBACxD,QACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { a as Components, c as componentsSchema, i as ComponentFile, n as schema, o as componentFileSchema, r as Component, s as componentSchema, t as Schema } from "./schema-BNfl9Tsw.mjs";
|
|
2
|
+
import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-DQHHeicR.mjs";
|
|
3
|
+
import { definePlugin } from "./plugin.mjs";
|
|
4
|
+
import { defineConfig, resolveConfig } from "./config.mjs";
|
|
5
|
+
import { i as tokensSchema, n as Tokens, r as tokenSchema, t as Token } from "./index--y-fo2Lr.mjs";
|
|
6
|
+
import { generator } from "./generator.mjs";
|
|
7
|
+
import { createDocument, formatColorValue, formatDimensionValue, formatTokenValue, isPlainObject, toCssVar } from "./utils/index.mjs";
|
|
4
8
|
import { GeneratorConfig } from "@power-plant/core";
|
|
5
9
|
//#region src/types/base.d.ts
|
|
6
10
|
type Generator<TOptions extends object = object> = GeneratorConfig<Schema, TOptions> & {
|
|
@@ -14,5 +18,5 @@ type Generator<TOptions extends object = object> = GeneratorConfig<Schema, TOpti
|
|
|
14
18
|
tags: string[];
|
|
15
19
|
};
|
|
16
20
|
//#endregion
|
|
17
|
-
export { type Config, type Generator, type
|
|
21
|
+
export { type Component, type ComponentFile, type Components, type Config, type Generator, type Options, type Plugin, type Schema, type Token, type Tokens, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, componentFileSchema, componentSchema, componentsSchema, createDocument, defineConfig, definePlugin, formatColorValue, formatDimensionValue, formatTokenValue, generator, isPlainObject, resolveConfig, schema, toCssVar, tokenSchema, tokensSchema };
|
|
18
22
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{definePlugin as e}from"./plugin.mjs";import{t}from"./resolve-config-CBowa3KM.mjs";import{defineConfig as n}from"./config.mjs";import{t as r}from"./generator-BlztRAZw.mjs";import{a as i,i as a,n as o,o as s,r as c,t as l}from"./schema-Bxzw_P4l.mjs";import{createDocument as u,formatColorValue as d,formatDimensionValue as f,formatTokenValue as p,isPlainObject as m,toCssVar as h}from"./utils/index.mjs";export{a as componentFileSchema,i as componentSchema,s as componentsSchema,u as createDocument,n as defineConfig,e as definePlugin,d as formatColorValue,f as formatDimensionValue,p as formatTokenValue,r as generator,m as isPlainObject,t as resolveConfig,c as schema,h as toCssVar,l as tokenSchema,o as tokensSchema};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tokens-CoQWg4mX.cjs");exports.DEFAULT_TOKEN_PATH_CANDIDATES=e.h,exports.RAZORWIND_INFER_PREPROCESSOR=e.a,exports.THEME_BASENAME_PATTERN=e.g,exports.TOKEN_DIRECTORY_GLOB=e._,exports.TOKEN_FILE_EXTENSIONS=e.v,exports.TYPE_PATH_HINTS=e.b,exports.WINDIE_PARSERS=e.y,exports.razorwindParsers=e.y,exports.getRazorwindParserHooks=e.o,exports.getRazorwindPreprocessorHooks=e.s,exports.inferTypeFromPath=e.d,exports.inferValue=e.f,exports.loadTokens=e.t,exports.loadTokensOrThrow=e.n,exports.nestFlatTokens=e.p,exports.normalizeTokenTree=e.m,exports.parseCssCustomProperties=e.u,exports.razorwindInferPreprocessor=e.c,exports.registerRazorwindParsers=e.l,exports.resolveTokensSource=e.r,exports.themeKeyFromPath=e.i;
|