@digdir/designsystemet 1.16.1 → 1.17.0
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/README.md +2 -15
- package/dist/bin/config.d.ts +2 -4
- package/dist/bin/config.d.ts.map +1 -1
- package/dist/bin/config.js +6 -8
- package/dist/bin/designsystemet.d.ts +1 -1
- package/dist/bin/designsystemet.d.ts.map +1 -1
- package/dist/bin/designsystemet.js +12 -13
- package/dist/config.schema.json +5 -33
- package/dist/package.js +1 -1
- package/dist/src/automigrate.d.ts +2 -0
- package/dist/src/automigrate.d.ts.map +1 -0
- package/dist/src/automigrate.js +33 -0
- package/dist/src/colors/types.d.ts +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -3
- package/dist/src/migrations/flatten-color-categories.d.ts +10 -0
- package/dist/src/migrations/flatten-color-categories.d.ts.map +1 -0
- package/dist/src/migrations/flatten-color-categories.js +51 -0
- package/dist/src/migrations/index.d.ts +9 -0
- package/dist/src/migrations/index.d.ts.map +1 -1
- package/dist/src/migrations/index.js +3 -1
- package/dist/src/schemas/helpers.d.ts +29 -0
- package/dist/src/schemas/helpers.d.ts.map +1 -0
- package/dist/src/schemas/helpers.js +71 -0
- package/dist/src/{config.d.ts → schemas/v1/schema.d.ts} +1 -12
- package/dist/src/schemas/v1/schema.d.ts.map +1 -0
- package/dist/src/{config.js → schemas/v1/schema.js} +6 -61
- package/dist/src/schemas/v1.1/schema.d.ts +162 -0
- package/dist/src/schemas/v1.1/schema.d.ts.map +1 -0
- package/dist/src/schemas/v1.1/schema.js +54 -0
- package/dist/src/tokens/build.js +1 -1
- package/dist/src/tokens/create/files.d.ts +2 -2
- package/dist/src/tokens/create/files.d.ts.map +1 -1
- package/dist/src/tokens/create/files.js +3 -3
- package/dist/src/tokens/create/generators/$metadata.d.ts +2 -2
- package/dist/src/tokens/create/generators/$metadata.d.ts.map +1 -1
- package/dist/src/tokens/create/generators/$metadata.js +2 -4
- package/dist/src/tokens/create/generators/$themes.d.ts +2 -2
- package/dist/src/tokens/create/generators/$themes.d.ts.map +1 -1
- package/dist/src/tokens/create/generators/$themes.js +7 -10
- package/dist/src/tokens/create/generators/primitives/color-scheme.d.ts +4 -4
- package/dist/src/tokens/create/generators/primitives/color-scheme.d.ts.map +1 -1
- package/dist/src/tokens/create/generators/primitives/color-scheme.js +9 -11
- package/dist/src/tokens/create/generators/semantic/color.d.ts +2 -4
- package/dist/src/tokens/create/generators/semantic/color.d.ts.map +1 -1
- package/dist/src/tokens/create/generators/semantic/color.js +9 -38
- package/dist/src/tokens/create/generators/semantic/style.d.ts +1 -1
- package/dist/src/tokens/create/generators/semantic/style.d.ts.map +1 -1
- package/dist/src/tokens/create/generators/semantic/style.js +78 -41
- package/dist/src/tokens/create/generators/themes/theme.d.ts +2 -2
- package/dist/src/tokens/create/generators/themes/theme.d.ts.map +1 -1
- package/dist/src/tokens/create/generators/themes/theme.js +2 -11
- package/dist/src/tokens/create.d.ts +0 -16
- package/dist/src/tokens/create.d.ts.map +1 -1
- package/dist/src/tokens/create.js +10 -22
- package/dist/src/tokens/format.js +6 -4
- package/dist/src/tokens/generate-config.d.ts +3 -2
- package/dist/src/tokens/generate-config.d.ts.map +1 -1
- package/dist/src/tokens/generate-config.js +10 -36
- package/dist/src/tokens/index.d.ts +2 -1
- package/dist/src/tokens/index.d.ts.map +1 -1
- package/dist/src/tokens/index.js +3 -2
- package/dist/src/tokens/process/configs/color.d.ts +1 -9
- package/dist/src/tokens/process/configs/color.d.ts.map +1 -1
- package/dist/src/tokens/process/configs/color.js +6 -9
- package/dist/src/tokens/process/configs.d.ts +1 -7
- package/dist/src/tokens/process/configs.d.ts.map +1 -1
- package/dist/src/tokens/process/configs.js +3 -24
- package/dist/src/tokens/process/formats/css/color.d.ts.map +1 -1
- package/dist/src/tokens/process/formats/css/color.js +3 -4
- package/dist/src/tokens/process/formats/css/size-mode.d.ts +0 -1
- package/dist/src/tokens/process/formats/css/size-mode.d.ts.map +1 -1
- package/dist/src/tokens/process/formats/css/size-mode.js +1 -1
- package/dist/src/tokens/process/formats/css/size.d.ts +0 -12
- package/dist/src/tokens/process/formats/css/size.d.ts.map +1 -1
- package/dist/src/tokens/process/formats/css/size.js +1 -1
- package/dist/src/tokens/process/output/declarations.d.ts.map +1 -1
- package/dist/src/tokens/process/output/declarations.js +6 -8
- package/dist/src/tokens/process/platform.d.ts +4 -36
- package/dist/src/tokens/process/platform.d.ts.map +1 -1
- package/dist/src/tokens/process/platform.js +8 -50
- package/dist/src/tokens/process/utils/getMultidimensionalThemes.d.ts +2 -3
- package/dist/src/tokens/process/utils/getMultidimensionalThemes.d.ts.map +1 -1
- package/dist/src/tokens/process/utils/getMultidimensionalThemes.js +4 -8
- package/dist/src/tokens/types.d.ts +3 -11
- package/dist/src/tokens/types.d.ts.map +1 -1
- package/dist/src/tokens/types.js +1 -7
- package/dist/src/tokens/utils.d.ts +5 -11
- package/dist/src/tokens/utils.d.ts.map +1 -1
- package/dist/src/tokens/utils.js +8 -13
- package/package.json +7 -3
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/tokens/create/generators/semantic/color-modes.d.ts +0 -8
- package/dist/src/tokens/create/generators/semantic/color-modes.d.ts.map +0 -1
- package/dist/src/tokens/create/generators/semantic/color-modes.js +0 -26
|
@@ -1,64 +1,9 @@
|
|
|
1
|
-
import { baseColorNames, colorNames } from "
|
|
2
|
-
import { convertToHex } from "
|
|
3
|
-
import { RESERVED_COLORS } from "
|
|
4
|
-
import "
|
|
5
|
-
import { cliOptions } from "./tokens/create.js";
|
|
6
|
-
import pc from "picocolors";
|
|
7
|
-
import * as R from "ramda";
|
|
1
|
+
import { baseColorNames, colorNames } from "../../colors/colorMetadata.js";
|
|
2
|
+
import { convertToHex } from "../../colors/utils.js";
|
|
3
|
+
import { RESERVED_COLORS } from "../../colors/theme.js";
|
|
4
|
+
import "../../colors/index.js";
|
|
8
5
|
import { z } from "zod";
|
|
9
|
-
|
|
10
|
-
//#region src/config.ts
|
|
11
|
-
function mapPathToOptionName(path) {
|
|
12
|
-
const normalisedPath = path[0] === "themes" ? ["theme", ...R.drop(2, path)] : path;
|
|
13
|
-
const option = R.path(normalisedPath, cliOptions);
|
|
14
|
-
if (typeof option !== "string") return;
|
|
15
|
-
return option;
|
|
16
|
-
}
|
|
17
|
-
function makeFriendlyError(err) {
|
|
18
|
-
try {
|
|
19
|
-
return fromError(err, { messageBuilder: (issues) => issues.map((issue) => {
|
|
20
|
-
const issuePath = issue.path.join(".");
|
|
21
|
-
const optionName = mapPathToOptionName(issue.path);
|
|
22
|
-
const errorCode = `(error code: ${issue.code})`;
|
|
23
|
-
const optionMessage = optionName ? ` or CLI option --${optionName}` : "";
|
|
24
|
-
return ` - Error in JSON value ${pc.red(issuePath)}${optionMessage}:
|
|
25
|
-
${issue.message} ${pc.dim(errorCode)}`;
|
|
26
|
-
}).join("\n") });
|
|
27
|
-
} catch (_err2) {
|
|
28
|
-
console.error(pc.red(err instanceof Error ? err.message : "Unknown error occurred while parsing config file"));
|
|
29
|
-
console.error(err instanceof Error ? err.stack : "No stack trace available");
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Validates a configuration object against a provided Zod schema.
|
|
34
|
-
*
|
|
35
|
-
* @template T - The expected type of the validated configuration.
|
|
36
|
-
* @param schema - A Zod schema used to validate the configuration object.
|
|
37
|
-
* @param unvalidatedConfig - The configuration object to validate.
|
|
38
|
-
* @returns The validated configuration object, typed as T.
|
|
39
|
-
* @throws Exits the process with code 1 if validation fails, after logging a friendly error message.
|
|
40
|
-
*/
|
|
41
|
-
function validateConfig(schema, unvalidatedConfig, configFilePath) {
|
|
42
|
-
try {
|
|
43
|
-
return schema.parse(unvalidatedConfig);
|
|
44
|
-
} catch (err) {
|
|
45
|
-
console.error(pc.redBright(`Invalid config file at ${pc.red(configFilePath)}`));
|
|
46
|
-
const validationError = makeFriendlyError(err);
|
|
47
|
-
console.error(validationError?.toString());
|
|
48
|
-
process.exit(1);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
function parseConfig(configFile, configFilePath) {
|
|
52
|
-
if (!configFile) return {};
|
|
53
|
-
try {
|
|
54
|
-
return JSON.parse(configFile);
|
|
55
|
-
} catch (err) {
|
|
56
|
-
console.error(pc.redBright(`Failed parsing config file at ${pc.red(configFilePath)}`));
|
|
57
|
-
const validationError = makeFriendlyError(err);
|
|
58
|
-
console.error(validationError?.toString());
|
|
59
|
-
process.exit(1);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
6
|
+
//#region src/schemas/v1/schema.ts
|
|
62
7
|
const hexPatterns = [
|
|
63
8
|
`#[0-9a-fA-F]{3}`,
|
|
64
9
|
`#[0-9a-fA-F]{4}`,
|
|
@@ -115,4 +60,4 @@ const configFileCreateSchema = z.object({
|
|
|
115
60
|
themes: z.record(z.string(), themeSchema).meta({ description: "An object with one or more themes. Each property defines a theme, and the property name is used as the theme name." })
|
|
116
61
|
}).required().extend(commonConfig.shape);
|
|
117
62
|
//#endregion
|
|
118
|
-
export { colorRegex, commonConfig, configFileCreateSchema
|
|
63
|
+
export { colorRegex, commonConfig, configFileCreateSchema };
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const colorRegex: RegExp;
|
|
3
|
+
declare const overridesSchema: z.ZodOptional<z.ZodObject<{
|
|
4
|
+
colors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodEnum<{
|
|
5
|
+
"background-default": "background-default";
|
|
6
|
+
"background-tinted": "background-tinted";
|
|
7
|
+
"surface-default": "surface-default";
|
|
8
|
+
"surface-tinted": "surface-tinted";
|
|
9
|
+
"surface-hover": "surface-hover";
|
|
10
|
+
"surface-active": "surface-active";
|
|
11
|
+
"border-subtle": "border-subtle";
|
|
12
|
+
"border-default": "border-default";
|
|
13
|
+
"border-strong": "border-strong";
|
|
14
|
+
"text-subtle": "text-subtle";
|
|
15
|
+
"text-default": "text-default";
|
|
16
|
+
"base-default": "base-default";
|
|
17
|
+
"base-hover": "base-hover";
|
|
18
|
+
"base-active": "base-active";
|
|
19
|
+
"base-contrast-subtle": "base-contrast-subtle";
|
|
20
|
+
"base-contrast-default": "base-contrast-default";
|
|
21
|
+
}> & z.core.$partial, z.ZodObject<{
|
|
22
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
23
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
24
|
+
}, z.core.$strip>>>>;
|
|
25
|
+
severity: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
26
|
+
danger: "danger";
|
|
27
|
+
info: "info";
|
|
28
|
+
success: "success";
|
|
29
|
+
warning: "warning";
|
|
30
|
+
}> & z.core.$partial, z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>>>;
|
|
31
|
+
linkVisited: z.ZodOptional<z.ZodObject<{
|
|
32
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
33
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
34
|
+
}, z.core.$strip>>;
|
|
35
|
+
focus: z.ZodOptional<z.ZodObject<{
|
|
36
|
+
inner: z.ZodOptional<z.ZodObject<{
|
|
37
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
38
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
39
|
+
}, z.core.$strip>>;
|
|
40
|
+
outer: z.ZodOptional<z.ZodObject<{
|
|
41
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
42
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
43
|
+
}, z.core.$strip>>;
|
|
44
|
+
}, z.core.$strip>>;
|
|
45
|
+
}, z.core.$strip>>;
|
|
46
|
+
declare const themeSchema: z.ZodObject<{
|
|
47
|
+
colors: z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
48
|
+
typography: z.ZodOptional<z.ZodObject<{
|
|
49
|
+
fontFamily: z.ZodString;
|
|
50
|
+
}, z.core.$strip>>;
|
|
51
|
+
borderRadius: z.ZodOptional<z.ZodNumber>;
|
|
52
|
+
overrides: z.ZodOptional<z.ZodObject<{
|
|
53
|
+
colors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodEnum<{
|
|
54
|
+
"background-default": "background-default";
|
|
55
|
+
"background-tinted": "background-tinted";
|
|
56
|
+
"surface-default": "surface-default";
|
|
57
|
+
"surface-tinted": "surface-tinted";
|
|
58
|
+
"surface-hover": "surface-hover";
|
|
59
|
+
"surface-active": "surface-active";
|
|
60
|
+
"border-subtle": "border-subtle";
|
|
61
|
+
"border-default": "border-default";
|
|
62
|
+
"border-strong": "border-strong";
|
|
63
|
+
"text-subtle": "text-subtle";
|
|
64
|
+
"text-default": "text-default";
|
|
65
|
+
"base-default": "base-default";
|
|
66
|
+
"base-hover": "base-hover";
|
|
67
|
+
"base-active": "base-active";
|
|
68
|
+
"base-contrast-subtle": "base-contrast-subtle";
|
|
69
|
+
"base-contrast-default": "base-contrast-default";
|
|
70
|
+
}> & z.core.$partial, z.ZodObject<{
|
|
71
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
72
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
73
|
+
}, z.core.$strip>>>>;
|
|
74
|
+
severity: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
75
|
+
danger: "danger";
|
|
76
|
+
info: "info";
|
|
77
|
+
success: "success";
|
|
78
|
+
warning: "warning";
|
|
79
|
+
}> & z.core.$partial, z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>>>;
|
|
80
|
+
linkVisited: z.ZodOptional<z.ZodObject<{
|
|
81
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
82
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
83
|
+
}, z.core.$strip>>;
|
|
84
|
+
focus: z.ZodOptional<z.ZodObject<{
|
|
85
|
+
inner: z.ZodOptional<z.ZodObject<{
|
|
86
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
87
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
88
|
+
}, z.core.$strip>>;
|
|
89
|
+
outer: z.ZodOptional<z.ZodObject<{
|
|
90
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
91
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
92
|
+
}, z.core.$strip>>;
|
|
93
|
+
}, z.core.$strip>>;
|
|
94
|
+
}, z.core.$strip>>;
|
|
95
|
+
}, z.core.$strip>;
|
|
96
|
+
export declare const commonConfig: z.ZodObject<{
|
|
97
|
+
clean: z.ZodOptional<z.ZodBoolean>;
|
|
98
|
+
}, z.core.$strip>;
|
|
99
|
+
/**
|
|
100
|
+
* This defines the structure of the final configuration file
|
|
101
|
+
*/
|
|
102
|
+
export declare const configFileCreateSchema: z.ZodObject<{
|
|
103
|
+
outDir: z.ZodNonOptional<z.ZodString>;
|
|
104
|
+
themes: z.ZodNonOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
105
|
+
colors: z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
106
|
+
typography: z.ZodOptional<z.ZodObject<{
|
|
107
|
+
fontFamily: z.ZodString;
|
|
108
|
+
}, z.core.$strip>>;
|
|
109
|
+
borderRadius: z.ZodOptional<z.ZodNumber>;
|
|
110
|
+
overrides: z.ZodOptional<z.ZodObject<{
|
|
111
|
+
colors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodEnum<{
|
|
112
|
+
"background-default": "background-default";
|
|
113
|
+
"background-tinted": "background-tinted";
|
|
114
|
+
"surface-default": "surface-default";
|
|
115
|
+
"surface-tinted": "surface-tinted";
|
|
116
|
+
"surface-hover": "surface-hover";
|
|
117
|
+
"surface-active": "surface-active";
|
|
118
|
+
"border-subtle": "border-subtle";
|
|
119
|
+
"border-default": "border-default";
|
|
120
|
+
"border-strong": "border-strong";
|
|
121
|
+
"text-subtle": "text-subtle";
|
|
122
|
+
"text-default": "text-default";
|
|
123
|
+
"base-default": "base-default";
|
|
124
|
+
"base-hover": "base-hover";
|
|
125
|
+
"base-active": "base-active";
|
|
126
|
+
"base-contrast-subtle": "base-contrast-subtle";
|
|
127
|
+
"base-contrast-default": "base-contrast-default";
|
|
128
|
+
}> & z.core.$partial, z.ZodObject<{
|
|
129
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
130
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
131
|
+
}, z.core.$strip>>>>;
|
|
132
|
+
severity: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
133
|
+
danger: "danger";
|
|
134
|
+
info: "info";
|
|
135
|
+
success: "success";
|
|
136
|
+
warning: "warning";
|
|
137
|
+
}> & z.core.$partial, z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>>>;
|
|
138
|
+
linkVisited: z.ZodOptional<z.ZodObject<{
|
|
139
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
140
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
141
|
+
}, z.core.$strip>>;
|
|
142
|
+
focus: z.ZodOptional<z.ZodObject<{
|
|
143
|
+
inner: z.ZodOptional<z.ZodObject<{
|
|
144
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
145
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
146
|
+
}, z.core.$strip>>;
|
|
147
|
+
outer: z.ZodOptional<z.ZodObject<{
|
|
148
|
+
light: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
149
|
+
dark: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`#${string}`, string>>>;
|
|
150
|
+
}, z.core.$strip>>;
|
|
151
|
+
}, z.core.$strip>>;
|
|
152
|
+
}, z.core.$strip>>;
|
|
153
|
+
}, z.core.$strip>>>;
|
|
154
|
+
clean: z.ZodOptional<z.ZodBoolean>;
|
|
155
|
+
}, z.core.$strip>;
|
|
156
|
+
export type CommonConfigSchema = z.infer<typeof commonConfig>;
|
|
157
|
+
export type BuildConfigSchema = z.infer<typeof commonConfig>;
|
|
158
|
+
export type CreateConfigSchema = z.infer<typeof configFileCreateSchema>;
|
|
159
|
+
export type ConfigSchemaTheme = z.infer<typeof themeSchema>;
|
|
160
|
+
export type ColorOverrideSchema = z.infer<typeof overridesSchema>;
|
|
161
|
+
export {};
|
|
162
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/schemas/v1.1/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,UAAU,QAA2C,CAAC;AAsDnE,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAQR,CAAC;AAEd,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBmG,CAAC;AAErH,eAAO,MAAM,YAAY;;iBAEvB,CAAC;AAYH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAqD,CAAC;AACzF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAC9D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAC7D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACxE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAC5D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { baseColorNames, colorNames } from "../../colors/colorMetadata.js";
|
|
2
|
+
import { convertToHex } from "../../colors/utils.js";
|
|
3
|
+
import "../../colors/index.js";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
const colorRegex = new RegExp(`^${[
|
|
6
|
+
`#[0-9a-fA-F]{3}`,
|
|
7
|
+
`#[0-9a-fA-F]{4}`,
|
|
8
|
+
`#[0-9a-fA-F]{6}`,
|
|
9
|
+
`#[0-9a-fA-F]{8}`
|
|
10
|
+
].join("|")}$`);
|
|
11
|
+
const colorSchema = z.string().regex(colorRegex).transform(convertToHex).describe(`A hex color, which is used for creating a color scale.`);
|
|
12
|
+
const colorModeOverrideSchema = z.object({
|
|
13
|
+
light: colorSchema.optional().describe("A hex color that overrides light mode"),
|
|
14
|
+
dark: colorSchema.optional().describe("A hex color that overrides dark mode")
|
|
15
|
+
}).describe("Override values for semantic color tokens like \"background-subtle\", \"border-default\", etc.");
|
|
16
|
+
const colorWeightOverrideSchema = z.partialRecord(z.enum([...colorNames]), colorModeOverrideSchema).describe("The name of the color to add overrides for, e.g. \"accent\"");
|
|
17
|
+
const semanticColorOverrideSchema = z.record(z.string(), colorWeightOverrideSchema).describe("An object with color names as keys");
|
|
18
|
+
const severityColorOverrideSchema = z.partialRecord(z.enum(baseColorNames), colorSchema.describe("A hex color, which is used for creating a color scale")).optional().describe("An object with severity color names as keys");
|
|
19
|
+
const linkVisitedOverrideSchema = z.object({
|
|
20
|
+
light: colorSchema.optional().describe("A hex color that overrides light mode"),
|
|
21
|
+
dark: colorSchema.optional().describe("A hex color that overrides dark mode")
|
|
22
|
+
}).describe("Overrides for the \"link-visited\" color");
|
|
23
|
+
const focusOverrideSchema = z.object({
|
|
24
|
+
inner: z.object({
|
|
25
|
+
light: colorSchema.optional().describe("A hex color that overrides light mode"),
|
|
26
|
+
dark: colorSchema.optional().describe("A hex color that overrides dark mode")
|
|
27
|
+
}).optional().describe("Overrides for the \"focus-inner\" color"),
|
|
28
|
+
outer: z.object({
|
|
29
|
+
light: colorSchema.optional().describe("A hex color that overrides light mode"),
|
|
30
|
+
dark: colorSchema.optional().describe("A hex color that overrides dark mode")
|
|
31
|
+
}).optional().describe("Overrides for the \"focus-outer\" color")
|
|
32
|
+
}).describe("Overrides for the focus colors");
|
|
33
|
+
const overridesSchema = z.object({
|
|
34
|
+
colors: semanticColorOverrideSchema.optional(),
|
|
35
|
+
severity: severityColorOverrideSchema.optional(),
|
|
36
|
+
linkVisited: linkVisitedOverrideSchema.optional(),
|
|
37
|
+
focus: focusOverrideSchema.optional()
|
|
38
|
+
}).describe("Overrides for generated design tokens. Currently only supports colors defined in your theme").optional();
|
|
39
|
+
const themeSchema = z.object({
|
|
40
|
+
colors: z.record(z.string(), colorSchema).refine((c) => typeof c.neutral === "string", { message: "Theme colors must include a \"neutral\" color." }).meta({ description: "Defines the colors for this theme" }),
|
|
41
|
+
typography: z.object({ fontFamily: z.string().meta({ description: "Sets the font-family for this theme" }) }).describe("Defines the typography for a given theme").optional(),
|
|
42
|
+
borderRadius: z.number().meta({ description: "Defines the border-radius for this theme" }).optional(),
|
|
43
|
+
overrides: overridesSchema
|
|
44
|
+
}).meta({ description: "An object defining a theme. The property name holding the object becomes the theme name." });
|
|
45
|
+
const commonConfig = z.object({ clean: z.boolean().meta({ description: "Delete the output directory before building or creating tokens" }).optional() });
|
|
46
|
+
/**
|
|
47
|
+
* This defines the structure of the final configuration file
|
|
48
|
+
*/
|
|
49
|
+
const configFileCreateSchema = z.object({
|
|
50
|
+
outDir: z.string().meta({ description: "Path to the output directory for the created design tokens" }),
|
|
51
|
+
themes: z.record(z.string(), themeSchema).meta({ description: "An object with one or more themes. Each property defines a theme, and the property name is used as the theme name." })
|
|
52
|
+
}).required().extend(commonConfig.shape);
|
|
53
|
+
//#endregion
|
|
54
|
+
export { colorRegex, commonConfig, configFileCreateSchema };
|
package/dist/src/tokens/build.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { dsfs } from "../utils/filesystem.js";
|
|
2
|
-
import { processThemeObject } from "./process/utils/getMultidimensionalThemes.js";
|
|
3
2
|
import { processPlatform } from "./process/platform.js";
|
|
3
|
+
import { processThemeObject } from "./process/utils/getMultidimensionalThemes.js";
|
|
4
4
|
import { createTypeDeclarationFiles } from "./process/output/declarations.js";
|
|
5
5
|
import { createTailwindCSSFiles } from "./process/output/tailwind.js";
|
|
6
6
|
import { createThemeCSSFiles, defaultFileHeader } from "./process/output/theme.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { OutputFile, TokenSetDimensions, TokenSets } from '../types.js';
|
|
2
2
|
export declare const stringify: (data: unknown) => string;
|
|
3
3
|
type CreateTokenFilesOptions = {
|
|
4
4
|
tokenSetDimensions: TokenSetDimensions;
|
|
5
|
-
|
|
5
|
+
colorNames: string[];
|
|
6
6
|
themeNames: string[];
|
|
7
7
|
};
|
|
8
8
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../../src/tokens/create/files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../../src/tokens/create/files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7E,eAAO,MAAM,SAAS,GAAI,MAAM,OAAO,WAAkC,CAAC;AAE1E,KAAK,uBAAuB,GAAG;IAC7B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAU,SAAS,uBAAuB,0BAiB5E,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,WAAW,SAAS,KAAG,UAAU,EAQjE,CAAC"}
|
|
@@ -9,13 +9,13 @@ const stringify = (data) => JSON.stringify(data, null, 2);
|
|
|
9
9
|
* `$themes.json` and `$metadata.json` are essential for Token Studio and Style Dictionary to correctly interpret and manage the design tokens.
|
|
10
10
|
*/
|
|
11
11
|
const createSystemTokenFiles = async (options) => {
|
|
12
|
-
const {
|
|
12
|
+
const { colorNames, themeNames, tokenSetDimensions } = options;
|
|
13
13
|
const files = [];
|
|
14
14
|
const $themesPath = "$themes.json";
|
|
15
15
|
const $metadataPath = "$metadata.json";
|
|
16
16
|
const $designsystemetPath = "$designsystemet.jsonc";
|
|
17
|
-
const $themes = await generate$Themes(tokenSetDimensions, themeNames,
|
|
18
|
-
const $metadata = generate$Metadata(tokenSetDimensions, themeNames,
|
|
17
|
+
const $themes = await generate$Themes(tokenSetDimensions, themeNames, colorNames);
|
|
18
|
+
const $metadata = generate$Metadata(tokenSetDimensions, themeNames, colorNames);
|
|
19
19
|
const $designsystemet = generate$Designsystemet();
|
|
20
20
|
files.push({
|
|
21
21
|
destination: $themesPath,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { TokenSetDimensions } from '../../types.js';
|
|
2
2
|
type Metadata = {
|
|
3
3
|
tokenSetOrder: string[];
|
|
4
4
|
};
|
|
@@ -7,6 +7,6 @@ type Metadata = {
|
|
|
7
7
|
*
|
|
8
8
|
* This is used to order tokens in Token Studio
|
|
9
9
|
*/
|
|
10
|
-
export declare function generate$Metadata(tokenSetDimensions: TokenSetDimensions, themeNames: string[],
|
|
10
|
+
export declare function generate$Metadata(tokenSetDimensions: TokenSetDimensions, themeNames: string[], colorNames: string[]): Metadata;
|
|
11
11
|
export {};
|
|
12
12
|
//# sourceMappingURL=$metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$metadata.d.ts","sourceRoot":"","sources":["../../../../../src/tokens/create/generators/$metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"$metadata.d.ts","sourceRoot":"","sources":["../../../../../src/tokens/create/generators/$metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,KAAK,QAAQ,GAAG;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,EAAE,MAAM,EAAE,GACnB,QAAQ,CAkBV"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* This is used to order tokens in Token Studio
|
|
6
6
|
*/
|
|
7
|
-
function generate$Metadata(tokenSetDimensions, themeNames,
|
|
7
|
+
function generate$Metadata(tokenSetDimensions, themeNames, colorNames) {
|
|
8
8
|
const { colorSchemes, sizeModes } = tokenSetDimensions;
|
|
9
9
|
return { tokenSetOrder: [
|
|
10
10
|
"primitives/globals",
|
|
@@ -15,9 +15,7 @@ function generate$Metadata(tokenSetDimensions, themeNames, colors) {
|
|
|
15
15
|
...themeNames.map((theme) => `primitives/modes/typography/secondary/${theme}`),
|
|
16
16
|
...colorSchemes.flatMap((scheme) => [...themeNames.map((theme) => `primitives/modes/color-scheme/${scheme}/${theme}`)]),
|
|
17
17
|
...themeNames.map((theme) => `themes/${theme}`),
|
|
18
|
-
|
|
19
|
-
...colors.main.map((color) => `semantic/modes/main-color/${color}`),
|
|
20
|
-
...colors.support.map((color) => `semantic/modes/support-color/${color}`),
|
|
18
|
+
...colorNames.map((color) => `semantic/color/${color}`),
|
|
21
19
|
"semantic/style"
|
|
22
20
|
] };
|
|
23
21
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ThemeObject } from '@tokens-studio/types';
|
|
2
|
-
import type {
|
|
2
|
+
import type { TokenSetDimensions } from '../../types.js';
|
|
3
3
|
type ThemeObject_ = ThemeObject & {
|
|
4
4
|
$figmaCollectionId?: string;
|
|
5
5
|
$figmaModeId?: string;
|
|
@@ -20,6 +20,6 @@ type ThemeObject_ = ThemeObject & {
|
|
|
20
20
|
- New collections/modes may cause users hitting the cap on Figma variable modes which is at time of writing 4 (or unlimited for enterprise).
|
|
21
21
|
|
|
22
22
|
*/
|
|
23
|
-
export declare function generate$Themes(tokenSetDimensions: TokenSetDimensions, themeNames: string[],
|
|
23
|
+
export declare function generate$Themes(tokenSetDimensions: TokenSetDimensions, themeNames: string[], colorNames: string[]): Promise<ThemeObject_[]>;
|
|
24
24
|
export {};
|
|
25
25
|
//# sourceMappingURL=$themes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$themes.d.ts","sourceRoot":"","sources":["../../../../../src/tokens/create/generators/$themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAGxE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"$themes.d.ts","sourceRoot":"","sources":["../../../../../src/tokens/create/generators/$themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAGxE,OAAO,KAAK,EAAa,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAWpE,KAAK,YAAY,GAAG,WAAW,GAAG;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnD,CAAC;AAEF;;;;;;;;;;;;;;EAcE;AACF,wBAAsB,eAAe,CACnC,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,YAAY,EAAE,CAAC,CAUzB"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { TokenSetStatus } from "../../../../node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/TokenSetStatus.js";
|
|
2
2
|
import "../../../../node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/types/index.js";
|
|
3
3
|
//#region src/tokens/create/generators/$themes.ts
|
|
4
|
-
const capitalize = (word) => word.charAt(0).toUpperCase() + word.slice(1);
|
|
5
4
|
async function createHash(text, algo = "SHA-1") {
|
|
6
5
|
const crypto = globalThis.crypto;
|
|
7
6
|
return Array.from(new Uint8Array(await crypto.subtle.digest(algo, new TextEncoder().encode(text))), (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
@@ -21,7 +20,7 @@ async function createHash(text, algo = "SHA-1") {
|
|
|
21
20
|
- New collections/modes may cause users hitting the cap on Figma variable modes which is at time of writing 4 (or unlimited for enterprise).
|
|
22
21
|
|
|
23
22
|
*/
|
|
24
|
-
async function generate$Themes(tokenSetDimensions, themeNames,
|
|
23
|
+
async function generate$Themes(tokenSetDimensions, themeNames, colorNames) {
|
|
25
24
|
const { colorSchemes, sizeModes } = tokenSetDimensions;
|
|
26
25
|
return [
|
|
27
26
|
...generateSizeGroup(sizeModes),
|
|
@@ -29,8 +28,7 @@ async function generate$Themes(tokenSetDimensions, themeNames, colors) {
|
|
|
29
28
|
...generateTypographyGroup(themeNames),
|
|
30
29
|
...generateColorSchemesGroup(colorSchemes, themeNames),
|
|
31
30
|
generateSemanticGroup(),
|
|
32
|
-
...await generateColorGroup(
|
|
33
|
-
...await generateColorGroup("support", colors.support)
|
|
31
|
+
...await generateColorGroup(colorNames)
|
|
34
32
|
];
|
|
35
33
|
}
|
|
36
34
|
function generateSizeGroup(_sizes) {
|
|
@@ -122,7 +120,6 @@ function generateSemanticGroup() {
|
|
|
122
120
|
name: "Semantic",
|
|
123
121
|
selectedTokenSets: {
|
|
124
122
|
"semantic/style": TokenSetStatus.ENABLED,
|
|
125
|
-
"semantic/color": TokenSetStatus.ENABLED,
|
|
126
123
|
"primitives/globals": TokenSetStatus.SOURCE
|
|
127
124
|
},
|
|
128
125
|
$figmaCollectionId: "VariableCollectionId:34811:5976",
|
|
@@ -130,12 +127,12 @@ function generateSemanticGroup() {
|
|
|
130
127
|
group: "Semantic"
|
|
131
128
|
};
|
|
132
129
|
}
|
|
133
|
-
async function generateColorGroup(
|
|
134
|
-
return Promise.all(
|
|
135
|
-
id: await createHash(
|
|
130
|
+
async function generateColorGroup(colorNames) {
|
|
131
|
+
return Promise.all(colorNames.map(async (color) => ({
|
|
132
|
+
id: await createHash(color),
|
|
136
133
|
name: color,
|
|
137
|
-
selectedTokenSets: { [`semantic/
|
|
138
|
-
group:
|
|
134
|
+
selectedTokenSets: { [`semantic/color/${color}`]: TokenSetStatus.ENABLED },
|
|
135
|
+
group: `Color`
|
|
139
136
|
})));
|
|
140
137
|
}
|
|
141
138
|
function generateTypographyGroup(themes) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ColorScheme } from '../../../../colors/types.js';
|
|
2
|
-
import type { ColorOverrideSchema } from '../../../../
|
|
3
|
-
import type {
|
|
4
|
-
export declare const generateColorScheme: (themeName: string, colorScheme: ColorScheme, colors:
|
|
1
|
+
import type { ColorScheme, CssColor } from '../../../../colors/types.js';
|
|
2
|
+
import type { ColorOverrideSchema } from '../../../../schemas/v1.1/schema.js';
|
|
3
|
+
import type { TokenSet } from '../../../types.js';
|
|
4
|
+
export declare const generateColorScheme: (themeName: string, colorScheme: ColorScheme, colors: Record<string, CssColor>, overrides?: ColorOverrideSchema) => TokenSet;
|
|
5
5
|
//# sourceMappingURL=color-scheme.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color-scheme.d.ts","sourceRoot":"","sources":["../../../../../../src/tokens/create/generators/primitives/color-scheme.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAS,WAAW,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"color-scheme.d.ts","sourceRoot":"","sources":["../../../../../../src/tokens/create/generators/primitives/color-scheme.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAS,WAAW,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,EAAS,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAgBzD,eAAO,MAAM,mBAAmB,GAC9B,WAAW,MAAM,EACjB,aAAa,WAAW,EACxB,QAAQ,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAChC,YAAY,mBAAmB,KAC9B,QAkFF,CAAC"}
|
|
@@ -31,29 +31,27 @@ const generateColorScheme = (themeName, colorScheme, colors, overrides) => {
|
|
|
31
31
|
});
|
|
32
32
|
return Object.keys(positionOverrides).length > 0 ? positionOverrides : void 0;
|
|
33
33
|
};
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
const colorScales = R.mapObjIndexed((color, colorName) => {
|
|
35
|
+
if (colorName === "neutral") return generateColor(generateColorScale(colors.neutral, colorScheme), createColorOverrides("neutral"));
|
|
36
|
+
return generateColor(generateColorScale(color, colorScheme), createColorOverrides(colorName));
|
|
37
|
+
}, colors);
|
|
38
38
|
const baseColorsWithOverrides = {
|
|
39
39
|
...baseColors,
|
|
40
40
|
...overrides?.severity
|
|
41
41
|
};
|
|
42
|
-
const
|
|
42
|
+
const severityColors = R.mapObjIndexed((color, colorName) => generateColor(generateColorScale(color, colorScheme), createColorOverrides(colorName)), baseColorsWithOverrides);
|
|
43
43
|
const defaultLinkVisited = generateColor(generateColorScale(dsLinkColor, colorScheme))[12];
|
|
44
44
|
const linkOverride = overrides?.linkVisited?.[colorScheme] ? {
|
|
45
45
|
$type: "color",
|
|
46
46
|
$value: overrides.linkVisited[colorScheme]
|
|
47
47
|
} : void 0;
|
|
48
|
-
const defaultFocusInner =
|
|
49
|
-
const defaultFocusOuter =
|
|
48
|
+
const defaultFocusInner = colorScales.neutral[1].$value;
|
|
49
|
+
const defaultFocusOuter = colorScales.neutral[11].$value;
|
|
50
50
|
const focusInnerOverride = overrides?.focus?.inner?.[colorScheme];
|
|
51
51
|
const focusOuterOverride = overrides?.focus?.outer?.[colorScheme];
|
|
52
52
|
return { [themeName]: {
|
|
53
|
-
...
|
|
54
|
-
...
|
|
55
|
-
neutral,
|
|
56
|
-
...globalColors,
|
|
53
|
+
...colorScales,
|
|
54
|
+
...severityColors,
|
|
57
55
|
link: { visited: linkOverride || defaultLinkVisited },
|
|
58
56
|
focus: {
|
|
59
57
|
inner: {
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const
|
|
3
|
-
color: any;
|
|
4
|
-
};
|
|
1
|
+
import type { TokenSet } from '../../../types.js';
|
|
2
|
+
export declare const generateColorTokens: (colorNames: string[], _themeName: string) => Record<string, TokenSet>;
|
|
5
3
|
//# sourceMappingURL=color.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../../../../src/tokens/create/generators/semantic/color.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../../../../src/tokens/create/generators/semantic/color.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAS,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEzD,eAAO,MAAM,mBAAmB,GAAI,YAAY,MAAM,EAAE,EAAE,YAAY,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CASrG,CAAC"}
|
|
@@ -1,46 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { semanticColorMap } from "../../../../colors/types.js";
|
|
3
|
-
import * as R from "ramda";
|
|
1
|
+
import { semanticColorNames } from "../../../../colors/types.js";
|
|
4
2
|
//#region src/tokens/create/generators/semantic/color.ts
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
...mainColorNames,
|
|
10
|
-
"neutral",
|
|
11
|
-
...supportColorNames
|
|
12
|
-
], ...baseColorNames].map((colorName) => [colorName, generateColorScaleTokens(colorName)]);
|
|
13
|
-
return {
|
|
14
|
-
...baseColorTemplate,
|
|
15
|
-
color: {
|
|
16
|
-
...Object.fromEntries(semanticColorTokens),
|
|
17
|
-
...baseColorTemplate.color
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
const baseColorTemplate = {
|
|
22
|
-
color: { focus: {
|
|
23
|
-
inner: {
|
|
24
|
-
$type: "color",
|
|
25
|
-
$value: "{color.focus.inner-color}"
|
|
26
|
-
},
|
|
27
|
-
outer: {
|
|
28
|
-
$type: "color",
|
|
29
|
-
$value: "{color.focus.outer-color}"
|
|
30
|
-
}
|
|
31
|
-
} },
|
|
32
|
-
link: { color: { visited: {
|
|
33
|
-
$type: "color",
|
|
34
|
-
$value: "{color.link.visited}"
|
|
35
|
-
} } }
|
|
3
|
+
const generateColorTokens = (colorNames, _themeName) => {
|
|
4
|
+
const colorTokens = {};
|
|
5
|
+
for (const colorName of colorNames) colorTokens[colorName] = generateSemanticColorScaleTokens(colorName);
|
|
6
|
+
return colorTokens;
|
|
36
7
|
};
|
|
37
|
-
const
|
|
8
|
+
const generateSemanticColorScaleTokens = (colorName) => {
|
|
38
9
|
const colorScale = {};
|
|
39
|
-
for (const
|
|
10
|
+
for (const semanticColorName of semanticColorNames) colorScale[semanticColorName] = {
|
|
40
11
|
$type: "color",
|
|
41
|
-
$value: `{color.${colorName}.${
|
|
12
|
+
$value: `{color.${colorName}.${semanticColorName}}`
|
|
42
13
|
};
|
|
43
14
|
return colorScale;
|
|
44
15
|
};
|
|
45
16
|
//#endregion
|
|
46
|
-
export {
|
|
17
|
+
export { generateColorTokens };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../../../../src/tokens/create/generators/semantic/style.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../../../../src/tokens/create/generators/semantic/style.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAS,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEzD,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,QAAQ,CA4XpE"}
|