@o3r/design 9.6.0-rc.4
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/LICENSE +26 -0
- package/README.md +51 -0
- package/builders/generate-css/index.d.ts +8 -0
- package/builders/generate-css/index.d.ts.map +1 -0
- package/builders/generate-css/index.js +119 -0
- package/builders/generate-css/index.js.map +1 -0
- package/builders/generate-css/schema.d.ts +32 -0
- package/builders/generate-css/schema.d.ts.map +1 -0
- package/builders/generate-css/schema.js +3 -0
- package/builders/generate-css/schema.js.map +1 -0
- package/builders/generate-css/schema.json +68 -0
- package/builders/package.json +3 -0
- package/builders.json +10 -0
- package/cli/generate-css-from-design-token.cli.cjs +33 -0
- package/cli/generate-css-from-design-token.cli.cjs.map +1 -0
- package/cli/generate-css-from-design-token.cli.d.cts +3 -0
- package/cli/generate-css-from-design-token.cli.d.cts.map +1 -0
- package/collection.json +24 -0
- package/migration.json +5 -0
- package/package.json +206 -0
- package/schemas/design-token.schema.json +546 -0
- package/schematics/ extract-token/index.d.ts +8 -0
- package/schematics/ extract-token/index.d.ts.map +1 -0
- package/schematics/ extract-token/index.js +90 -0
- package/schematics/ extract-token/index.js.map +1 -0
- package/schematics/ extract-token/schema.d.ts +14 -0
- package/schematics/ extract-token/schema.d.ts.map +1 -0
- package/schematics/ extract-token/schema.js +3 -0
- package/schematics/ extract-token/schema.js.map +1 -0
- package/schematics/ extract-token/schema.json +43 -0
- package/schematics/generate-css/index.d.ts +8 -0
- package/schematics/generate-css/index.d.ts.map +1 -0
- package/schematics/generate-css/index.js +54 -0
- package/schematics/generate-css/index.js.map +1 -0
- package/schematics/generate-css/schema.d.ts +17 -0
- package/schematics/generate-css/schema.d.ts.map +1 -0
- package/schematics/generate-css/schema.js +3 -0
- package/schematics/generate-css/schema.js.map +1 -0
- package/schematics/generate-css/schema.json +43 -0
- package/schematics/ng-add/index.d.ts +7 -0
- package/schematics/ng-add/index.d.ts.map +1 -0
- package/schematics/ng-add/index.js +19 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/register-generate-css/index.d.ts +2 -0
- package/schematics/ng-add/register-generate-css/index.d.ts.map +1 -0
- package/schematics/ng-add/register-generate-css/index.js +5 -0
- package/schematics/ng-add/register-generate-css/index.js.map +1 -0
- package/schematics/ng-add/register-generate-css/register-task.d.ts +8 -0
- package/schematics/ng-add/register-generate-css/register-task.d.ts.map +1 -0
- package/schematics/ng-add/register-generate-css/register-task.js +68 -0
- package/schematics/ng-add/register-generate-css/register-task.js.map +1 -0
- package/schematics/ng-add/register-generate-css/templates/design-token.custom.json.template +3 -0
- package/schematics/ng-add/register-generate-css/templates/theme.scss.template +6 -0
- package/schematics/ng-add/schema.d.ts +6 -0
- package/schematics/ng-add/schema.d.ts.map +1 -0
- package/schematics/ng-add/schema.js +3 -0
- package/schematics/ng-add/schema.js.map +1 -0
- package/schematics/ng-add/schema.json +18 -0
- package/schematics/package.json +3 -0
- package/src/core/design-token/design-token-specification.interface.d.ts +195 -0
- package/src/core/design-token/design-token-specification.interface.d.ts.map +1 -0
- package/src/core/design-token/design-token-specification.interface.js +39 -0
- package/src/core/design-token/design-token-specification.interface.js.map +1 -0
- package/src/core/design-token/index.d.ts +4 -0
- package/src/core/design-token/index.d.ts.map +1 -0
- package/src/core/design-token/index.js +7 -0
- package/src/core/design-token/index.js.map +1 -0
- package/src/core/design-token/parsers/design-token-parser.interface.d.ts +70 -0
- package/src/core/design-token/parsers/design-token-parser.interface.d.ts.map +1 -0
- package/src/core/design-token/parsers/design-token-parser.interface.js +3 -0
- package/src/core/design-token/parsers/design-token-parser.interface.js.map +1 -0
- package/src/core/design-token/parsers/design-token.parser.d.ts +25 -0
- package/src/core/design-token/parsers/design-token.parser.d.ts.map +1 -0
- package/src/core/design-token/parsers/design-token.parser.js +143 -0
- package/src/core/design-token/parsers/design-token.parser.js.map +1 -0
- package/src/core/design-token/parsers/index.d.ts +3 -0
- package/src/core/design-token/parsers/index.d.ts.map +1 -0
- package/src/core/design-token/parsers/index.js +6 -0
- package/src/core/design-token/parsers/index.js.map +1 -0
- package/src/core/design-token/renderers/css/design-token-definition.renderers.d.ts +47 -0
- package/src/core/design-token/renderers/css/design-token-definition.renderers.d.ts.map +1 -0
- package/src/core/design-token/renderers/css/design-token-definition.renderers.js +53 -0
- package/src/core/design-token/renderers/css/design-token-definition.renderers.js.map +1 -0
- package/src/core/design-token/renderers/css/design-token-updater.renderers.d.ts +24 -0
- package/src/core/design-token/renderers/css/design-token-updater.renderers.d.ts.map +1 -0
- package/src/core/design-token/renderers/css/design-token-updater.renderers.js +29 -0
- package/src/core/design-token/renderers/css/design-token-updater.renderers.js.map +1 -0
- package/src/core/design-token/renderers/css/design-token-value.renderers.d.ts +19 -0
- package/src/core/design-token/renderers/css/design-token-value.renderers.d.ts.map +1 -0
- package/src/core/design-token/renderers/css/design-token-value.renderers.js +29 -0
- package/src/core/design-token/renderers/css/design-token-value.renderers.js.map +1 -0
- package/src/core/design-token/renderers/css/index.d.ts +4 -0
- package/src/core/design-token/renderers/css/index.d.ts.map +1 -0
- package/src/core/design-token/renderers/css/index.js +7 -0
- package/src/core/design-token/renderers/css/index.js.map +1 -0
- package/src/core/design-token/renderers/design-token-style.renderer.d.ts +25 -0
- package/src/core/design-token/renderers/design-token-style.renderer.d.ts.map +1 -0
- package/src/core/design-token/renderers/design-token-style.renderer.js +58 -0
- package/src/core/design-token/renderers/design-token-style.renderer.js.map +1 -0
- package/src/core/design-token/renderers/design-token.renderer.helpers.d.ts +8 -0
- package/src/core/design-token/renderers/design-token.renderer.helpers.d.ts.map +1 -0
- package/src/core/design-token/renderers/design-token.renderer.helpers.js +11 -0
- package/src/core/design-token/renderers/design-token.renderer.helpers.js.map +1 -0
- package/src/core/design-token/renderers/design-token.renderer.interface.d.ts +56 -0
- package/src/core/design-token/renderers/design-token.renderer.interface.d.ts.map +1 -0
- package/src/core/design-token/renderers/design-token.renderer.interface.js +3 -0
- package/src/core/design-token/renderers/design-token.renderer.interface.js.map +1 -0
- package/src/core/design-token/renderers/index.d.ts +7 -0
- package/src/core/design-token/renderers/index.d.ts.map +1 -0
- package/src/core/design-token/renderers/index.js +10 -0
- package/src/core/design-token/renderers/index.js.map +1 -0
- package/src/core/design-token/renderers/metadata/design-token-definition.renderers.d.ts +39 -0
- package/src/core/design-token/renderers/metadata/design-token-definition.renderers.d.ts.map +1 -0
- package/src/core/design-token/renderers/metadata/design-token-definition.renderers.js +41 -0
- package/src/core/design-token/renderers/metadata/design-token-definition.renderers.js.map +1 -0
- package/src/core/design-token/renderers/metadata/design-token-updater.renderers.d.ts +6 -0
- package/src/core/design-token/renderers/metadata/design-token-updater.renderers.d.ts.map +1 -0
- package/src/core/design-token/renderers/metadata/design-token-updater.renderers.js +13 -0
- package/src/core/design-token/renderers/metadata/design-token-updater.renderers.js.map +1 -0
- package/src/core/design-token/renderers/metadata/design-token-value.renderers.d.ts +18 -0
- package/src/core/design-token/renderers/metadata/design-token-value.renderers.d.ts.map +1 -0
- package/src/core/design-token/renderers/metadata/design-token-value.renderers.js +27 -0
- package/src/core/design-token/renderers/metadata/design-token-value.renderers.js.map +1 -0
- package/src/core/design-token/renderers/metadata/index.d.ts +4 -0
- package/src/core/design-token/renderers/metadata/index.d.ts.map +1 -0
- package/src/core/design-token/renderers/metadata/index.js +7 -0
- package/src/core/design-token/renderers/metadata/index.js.map +1 -0
- package/src/core/design-token/renderers/sass/design-token-definition.renderers.d.ts +23 -0
- package/src/core/design-token/renderers/sass/design-token-definition.renderers.d.ts.map +1 -0
- package/src/core/design-token/renderers/sass/design-token-definition.renderers.js +28 -0
- package/src/core/design-token/renderers/sass/design-token-definition.renderers.js.map +1 -0
- package/src/core/design-token/renderers/sass/index.d.ts +2 -0
- package/src/core/design-token/renderers/sass/index.d.ts.map +1 -0
- package/src/core/design-token/renderers/sass/index.js +5 -0
- package/src/core/design-token/renderers/sass/index.js.map +1 -0
- package/src/core/index.d.ts +2 -0
- package/src/core/index.d.ts.map +1 -0
- package/src/core/index.js +5 -0
- package/src/core/index.js.map +1 -0
- package/src/public_api.d.ts +2 -0
- package/src/public_api.d.ts.map +1 -0
- package/src/public_api.js +5 -0
- package/src/public_api.js.map +1 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
|
3
|
+
"$id": "ngAddSchematicsSchema",
|
|
4
|
+
"title": "Extract Design Token From Sass",
|
|
5
|
+
"description": "Extract Design Token From Sass o3r variable helpers",
|
|
6
|
+
"properties": {
|
|
7
|
+
"includeTags": {
|
|
8
|
+
"description": "Include the tags in the original Sass file",
|
|
9
|
+
"oneOf": [
|
|
10
|
+
{
|
|
11
|
+
"type": "boolean"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"type": "object",
|
|
15
|
+
"properties": {
|
|
16
|
+
"startTag": {
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"endTag": {
|
|
20
|
+
"type": "string"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"required": [
|
|
24
|
+
"startTag",
|
|
25
|
+
"endTag"
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"default": true
|
|
30
|
+
},
|
|
31
|
+
"componentFilePatterns": {
|
|
32
|
+
"description": "List of file pattern of component theme files",
|
|
33
|
+
"type": "array",
|
|
34
|
+
"items": {
|
|
35
|
+
"type": "string"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"additionalProperties": true,
|
|
40
|
+
"required": [
|
|
41
|
+
"componentFilePattern"
|
|
42
|
+
]
|
|
43
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { GenerateCssSchematicsSchema } from './schema';
|
|
2
|
+
import type { Rule } from '@angular-devkit/schematics';
|
|
3
|
+
/**
|
|
4
|
+
* Generate CSS from Design Token files
|
|
5
|
+
* @param options
|
|
6
|
+
*/
|
|
7
|
+
export declare function generateCss(options: GenerateCssSchematicsSchema): Rule;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/generate-css/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAavD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,2BAA2B,GAAG,IAAI,CAuCtE"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateCss = void 0;
|
|
4
|
+
const design_1 = require("@o3r/design");
|
|
5
|
+
/* for v9.6 migration only, it is integrated into @o3r/schematics package in v10 */
|
|
6
|
+
const schematics_1 = require("@o3r/schematics");
|
|
7
|
+
const minimatch_1 = require("minimatch");
|
|
8
|
+
function globInTree(tree, patterns) {
|
|
9
|
+
const files = (0, schematics_1.getAllFilesInTree)(tree);
|
|
10
|
+
return files.filter((basePath) => patterns.some((p) => (0, minimatch_1.minimatch)(basePath, p, { dot: true })));
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Generate CSS from Design Token files
|
|
14
|
+
* @param options
|
|
15
|
+
*/
|
|
16
|
+
function generateCss(options) {
|
|
17
|
+
return async (tree, context) => {
|
|
18
|
+
const writeFile = (filePath, content) => tree.exists(filePath) ? tree.overwrite(filePath, content) : tree.create(filePath, content);
|
|
19
|
+
const readFile = tree.readText;
|
|
20
|
+
const existsFile = tree.exists;
|
|
21
|
+
const determineFileToUpdate = options.output ? () => options.output :
|
|
22
|
+
(token) => {
|
|
23
|
+
if (token.extensions.o3rTargetFile && tree.exists(token.extensions.o3rTargetFile)) {
|
|
24
|
+
return token.extensions.o3rTargetFile;
|
|
25
|
+
}
|
|
26
|
+
return options.defaultStyleFile;
|
|
27
|
+
};
|
|
28
|
+
const renderDesignTokenOptions = {
|
|
29
|
+
readFile,
|
|
30
|
+
writeFile,
|
|
31
|
+
existsFile,
|
|
32
|
+
determineFileToUpdate,
|
|
33
|
+
logger: context.logger
|
|
34
|
+
};
|
|
35
|
+
const files = globInTree(tree, Array.isArray(options.designTokenFilePatterns) ? options.designTokenFilePatterns : [options.designTokenFilePatterns]);
|
|
36
|
+
const duplicatedToken = [];
|
|
37
|
+
const tokens = (await Promise.all(files.map(async (file) => ({ file, parsed: await (0, design_1.parseDesignTokenFile)(file) }))))
|
|
38
|
+
.reduce((acc, { file, parsed }) => {
|
|
39
|
+
parsed.forEach((variable, key) => {
|
|
40
|
+
if (acc.has(key)) {
|
|
41
|
+
context.logger[options.failOnDuplicate ? 'error' : 'warn'](`A duplication of the variable ${key} is found in ${file}`);
|
|
42
|
+
}
|
|
43
|
+
acc.set(key, variable);
|
|
44
|
+
});
|
|
45
|
+
return acc;
|
|
46
|
+
}, new Map());
|
|
47
|
+
if (options.failOnDuplicate && duplicatedToken.length > 0) {
|
|
48
|
+
throw new Error(`Found ${duplicatedToken.length} duplicated Design Token keys`);
|
|
49
|
+
}
|
|
50
|
+
await (0, design_1.renderDesignTokens)(tokens, renderDesignTokenOptions);
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
exports.generateCss = generateCss;
|
|
54
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/generate-css/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SchematicOptionObject } from '@o3r/schematics';
|
|
2
|
+
export interface GenerateCssSchematicsSchema extends SchematicOptionObject {
|
|
3
|
+
/** Path patterns to the Design Token JSON files */
|
|
4
|
+
designTokenFilePatterns: string | string[];
|
|
5
|
+
/** File path to generate the variable if not determined by the specification */
|
|
6
|
+
defaultStyleFile: string;
|
|
7
|
+
/**
|
|
8
|
+
* Output file where generate the CSS
|
|
9
|
+
*
|
|
10
|
+
* If specified, all the generated CSS variable will be generated in the given file.
|
|
11
|
+
* Otherwise, the output file will be determined based on the Variable parameters
|
|
12
|
+
*/
|
|
13
|
+
output?: string;
|
|
14
|
+
/** Determine if the process should stop in case of Token duplication */
|
|
15
|
+
failOnDuplicate?: boolean;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../schematics/generate-css/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB;IACxE,mDAAmD;IACnD,uBAAuB,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE3C,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,wEAAwE;IACxE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../schematics/generate-css/schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
|
3
|
+
"$id": "ngAddSchematicsSchema",
|
|
4
|
+
"title": "Add Otter Design",
|
|
5
|
+
"description": "ngAdd Otter Design",
|
|
6
|
+
"properties": {
|
|
7
|
+
"designTokenFilePatterns": {
|
|
8
|
+
"description": "Path patterns to the Design Token JSON files",
|
|
9
|
+
"oneOf": [
|
|
10
|
+
{
|
|
11
|
+
"type": "string"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"type": "array",
|
|
15
|
+
"items": {
|
|
16
|
+
"type": "string"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"$default": {
|
|
21
|
+
"$source": "argv"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"output": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "Output file where generate the CSS"
|
|
27
|
+
},
|
|
28
|
+
"defaultStyleFile": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"default": "src/theme.scss",
|
|
31
|
+
"description": "File path to generate the variable if not determined by the specification"
|
|
32
|
+
},
|
|
33
|
+
"failOnDuplicate": {
|
|
34
|
+
"type": "boolean",
|
|
35
|
+
"default": false,
|
|
36
|
+
"description": "Determine if the process should stop in case of Token duplication"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"additionalProperties": true,
|
|
40
|
+
"required": [
|
|
41
|
+
"designTokenFilePatterns"
|
|
42
|
+
]
|
|
43
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAI9D;;;GAGG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAM5B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ngAdd = void 0;
|
|
4
|
+
const schematics_1 = require("@angular-devkit/schematics");
|
|
5
|
+
const register_generate_css_1 = require("./register-generate-css");
|
|
6
|
+
const _extract_token_1 = require("../ extract-token");
|
|
7
|
+
/**
|
|
8
|
+
* Add Otter design to an Angular Project
|
|
9
|
+
* @param options
|
|
10
|
+
*/
|
|
11
|
+
function ngAdd() {
|
|
12
|
+
/* ng add rules */
|
|
13
|
+
return (0, schematics_1.chain)([
|
|
14
|
+
(0, register_generate_css_1.registerGenerateCssBuilder)(),
|
|
15
|
+
(0, _extract_token_1.extractToken)({ componentFilePatterns: ['**/*.scss'], includeTags: true })
|
|
16
|
+
]);
|
|
17
|
+
}
|
|
18
|
+
exports.ngAdd = ngAdd;
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":";;;AAAA,2DAA8D;AAC9D,mEAAqE;AACrE,sDAAiD;AAEjD;;;GAGG;AACH,SAAgB,KAAK;IACnB,kBAAkB;IAClB,OAAO,IAAA,kBAAK,EAAC;QACX,IAAA,kDAA0B,GAAE;QAC5B,IAAA,6BAAY,EAAC,EAAE,qBAAqB,EAAE,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;KAC1E,CAAC,CAAC;AACL,CAAC;AAND,sBAMC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/ng-add/register-generate-css/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../schematics/ng-add/register-generate-css/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type Rule } from '@angular-devkit/schematics';
|
|
2
|
+
/**
|
|
3
|
+
* Register the Design Token CSS generator
|
|
4
|
+
* @param projectName Project name
|
|
5
|
+
* @param taskName name of the task to generate
|
|
6
|
+
*/
|
|
7
|
+
export declare const registerGenerateCssBuilder: (projectName?: string, taskName?: string) => Rule;
|
|
8
|
+
//# sourceMappingURL=register-task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-task.d.ts","sourceRoot":"","sources":["../../../../schematics/ng-add/register-generate-css/register-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqE,KAAK,IAAI,EAAiB,MAAM,4BAA4B,CAAC;AAgBzI;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,iBAAkB,MAAM,wBAA8B,IAmD5F,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerGenerateCssBuilder = void 0;
|
|
4
|
+
const schematics_1 = require("@angular-devkit/schematics");
|
|
5
|
+
const schematics_2 = require("@o3r/schematics");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
function registerBuilder(workspaceProject, taskName, taskParameters, force = false) {
|
|
8
|
+
workspaceProject.architect ||= {};
|
|
9
|
+
if (workspaceProject.architect[taskName] && !force) {
|
|
10
|
+
throw new Error(`The builder task ${taskName} already exist`);
|
|
11
|
+
}
|
|
12
|
+
workspaceProject.architect[taskName] = taskParameters;
|
|
13
|
+
return workspaceProject;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Register the Design Token CSS generator
|
|
17
|
+
* @param projectName Project name
|
|
18
|
+
* @param taskName name of the task to generate
|
|
19
|
+
*/
|
|
20
|
+
const registerGenerateCssBuilder = (projectName, taskName = 'generate-css') => {
|
|
21
|
+
const registerBuilderRule = (tree, { logger }) => {
|
|
22
|
+
const workspaceProject = projectName ? (0, schematics_2.getWorkspaceConfig)(tree)?.projects[projectName] : undefined;
|
|
23
|
+
const srcBasePath = workspaceProject?.sourceRoot || (workspaceProject?.root ? node_path_1.posix.resolve(workspaceProject.root, 'src') : '');
|
|
24
|
+
const themeFile = node_path_1.posix.resolve(srcBasePath, 'style', 'theme.scss');
|
|
25
|
+
const taskParameters = {
|
|
26
|
+
defaultStyleFile: themeFile,
|
|
27
|
+
renderPrivateVariableTo: 'sass',
|
|
28
|
+
designTokenFilePatterns: [
|
|
29
|
+
`${node_path_1.posix.resolve(srcBasePath, 'style', '*.json')}`,
|
|
30
|
+
`${node_path_1.posix.resolve(srcBasePath, '**', '*.theme.json')}`
|
|
31
|
+
]
|
|
32
|
+
};
|
|
33
|
+
if (!workspaceProject) {
|
|
34
|
+
logger.warn(`No angular.json found, the task ${taskName} will not be created`);
|
|
35
|
+
return tree;
|
|
36
|
+
}
|
|
37
|
+
registerBuilder(workspaceProject, taskName, taskParameters);
|
|
38
|
+
return tree;
|
|
39
|
+
};
|
|
40
|
+
const generateTemplateRule = (tree, context) => {
|
|
41
|
+
const workspaceProject = projectName ? (0, schematics_2.getWorkspaceConfig)(tree)?.projects[projectName] : undefined;
|
|
42
|
+
const srcBasePath = workspaceProject?.sourceRoot || (workspaceProject?.root ? node_path_1.posix.resolve(workspaceProject.root, 'src') : '');
|
|
43
|
+
const themeFolder = node_path_1.posix.resolve(srcBasePath, 'style');
|
|
44
|
+
const rule = (0, schematics_1.mergeWith)((0, schematics_1.apply)((0, schematics_1.url)('./templates'), [
|
|
45
|
+
(0, schematics_1.template)({}),
|
|
46
|
+
(0, schematics_1.move)(themeFolder),
|
|
47
|
+
(0, schematics_1.renameTemplateFiles)()
|
|
48
|
+
]), schematics_1.MergeStrategy.Overwrite)(tree, context);
|
|
49
|
+
return rule;
|
|
50
|
+
};
|
|
51
|
+
const importTheme = (tree, context) => {
|
|
52
|
+
const workspaceProject = projectName ? (0, schematics_2.getWorkspaceConfig)(tree)?.projects[projectName] : undefined;
|
|
53
|
+
const srcBasePath = workspaceProject?.sourceRoot || (workspaceProject?.root ? node_path_1.posix.resolve(workspaceProject.root, 'src') : '');
|
|
54
|
+
const styleFile = node_path_1.posix.resolve(srcBasePath, 'styles.scss');
|
|
55
|
+
if (!tree.exists(styleFile)) {
|
|
56
|
+
context.logger.warn(`The theme was not updated as ${styleFile} was not found`);
|
|
57
|
+
return tree;
|
|
58
|
+
}
|
|
59
|
+
return tree.overwrite(styleFile, '@import "./style/theme.scss";\n' + tree.readText(styleFile));
|
|
60
|
+
};
|
|
61
|
+
return (0, schematics_1.chain)([
|
|
62
|
+
registerBuilderRule,
|
|
63
|
+
generateTemplateRule,
|
|
64
|
+
importTheme
|
|
65
|
+
]);
|
|
66
|
+
};
|
|
67
|
+
exports.registerGenerateCssBuilder = registerGenerateCssBuilder;
|
|
68
|
+
//# sourceMappingURL=register-task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-task.js","sourceRoot":"","sources":["../../../../schematics/ng-add/register-generate-css/register-task.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
|
3
|
+
"$id": "ngAddSchematicsSchema",
|
|
4
|
+
"title": "Add Otter Design",
|
|
5
|
+
"description": "ngAdd Otter Design",
|
|
6
|
+
"properties": {
|
|
7
|
+
"projectName": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Project name",
|
|
10
|
+
"$default": {
|
|
11
|
+
"$source": "projectName"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"additionalProperties": true,
|
|
16
|
+
"required": [
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/** Metadata information added in the design token extension for Metadata extraction */
|
|
2
|
+
export interface DesignTokenMetadata {
|
|
3
|
+
tags?: string[];
|
|
4
|
+
/** Description of the variable */
|
|
5
|
+
label?: string;
|
|
6
|
+
/** Name of a group of variables */
|
|
7
|
+
category?: string;
|
|
8
|
+
}
|
|
9
|
+
/** Design Token Group Extension fields supported by the default renderer */
|
|
10
|
+
export interface DesignTokenGroupExtensions {
|
|
11
|
+
/** Indicate the file where to generate the token */
|
|
12
|
+
o3rTargetFile?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Indicate that the variable does not need to be generated.
|
|
15
|
+
* It is up to the generator to describe how to render private variables.
|
|
16
|
+
* It can choose to ignore the private extension, it can provide a dedicated renderer (for example to prefix it with '_') or it can decide to skip the generation straight to its referenced value.
|
|
17
|
+
*/
|
|
18
|
+
o3rPrivate?: boolean;
|
|
19
|
+
/** Indicate that the value of this token is flagged as important */
|
|
20
|
+
o3rImportant?: boolean;
|
|
21
|
+
/** Metadata specific information */
|
|
22
|
+
o3rMetadata?: DesignTokenMetadata;
|
|
23
|
+
/** Scope of the Design Token value */
|
|
24
|
+
o3rScope?: string;
|
|
25
|
+
}
|
|
26
|
+
/** Design Token Extension fields supported by the default renderer */
|
|
27
|
+
export interface DesignTokenExtensions extends DesignTokenGroupExtensions {
|
|
28
|
+
}
|
|
29
|
+
interface DesignTokenBase<T> {
|
|
30
|
+
/** Value of the Token */
|
|
31
|
+
$value: T;
|
|
32
|
+
/** Type of the Design Token */
|
|
33
|
+
$type: string;
|
|
34
|
+
}
|
|
35
|
+
/** Design Token without explicit type (mainly alias) */
|
|
36
|
+
export interface DesignTokenTypeImplicit {
|
|
37
|
+
/** Value of the Token */
|
|
38
|
+
$value: string;
|
|
39
|
+
/** @inheritdoc */
|
|
40
|
+
$type?: undefined;
|
|
41
|
+
}
|
|
42
|
+
/** Design Token Color */
|
|
43
|
+
export interface DesignTokenTypeColor extends DesignTokenBase<string> {
|
|
44
|
+
/** @inheritdoc */
|
|
45
|
+
$type: 'color';
|
|
46
|
+
}
|
|
47
|
+
/** Design Token Dimension */
|
|
48
|
+
export interface DesignTokenTypeDimension extends DesignTokenBase<string> {
|
|
49
|
+
/** @inheritdoc */
|
|
50
|
+
$type: 'dimension';
|
|
51
|
+
}
|
|
52
|
+
/** Design Token Font Family */
|
|
53
|
+
export interface DesignTokenTypeFontFamily extends DesignTokenBase<string> {
|
|
54
|
+
/** @inheritdoc */
|
|
55
|
+
$type: 'fontFamily';
|
|
56
|
+
}
|
|
57
|
+
/** Design Token Duration */
|
|
58
|
+
export interface DesignTokenTypeDuration extends DesignTokenBase<number | string> {
|
|
59
|
+
/** @inheritdoc */
|
|
60
|
+
$type: 'duration';
|
|
61
|
+
}
|
|
62
|
+
type DesignTokenTypeCubicBezierValue = (number | string)[];
|
|
63
|
+
/** Design Token Cubic Bezier */
|
|
64
|
+
export interface DesignTokenTypeCubicBezier extends DesignTokenBase<DesignTokenTypeCubicBezierValue> {
|
|
65
|
+
/** @inheritdoc */
|
|
66
|
+
$type: 'cubicBezier';
|
|
67
|
+
}
|
|
68
|
+
type DesignTokenTypeFontWeightValue = number | string;
|
|
69
|
+
/** Design Token Font Weight */
|
|
70
|
+
export interface DesignTokenTypeFontWeight extends DesignTokenBase<DesignTokenTypeFontWeightValue> {
|
|
71
|
+
/** @inheritdoc */
|
|
72
|
+
$type: 'fontWeight';
|
|
73
|
+
}
|
|
74
|
+
/** Design Token Number */
|
|
75
|
+
export interface DesignTokenTypeNumber extends DesignTokenBase<number | string> {
|
|
76
|
+
/** @inheritdoc */
|
|
77
|
+
$type: 'number';
|
|
78
|
+
}
|
|
79
|
+
type DesignTokenTypeStrokeStyleDetailsValue = {
|
|
80
|
+
dashArray: string[];
|
|
81
|
+
lineCap: 'round' | 'butt' | 'square';
|
|
82
|
+
};
|
|
83
|
+
/** Value of the Design Token Stroke Style */
|
|
84
|
+
export type DesignTokenTypeStrokeStyleValue = DesignTokenTypeStrokeStyleDetailsValue | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'outset' | 'inset';
|
|
85
|
+
/** Design Token Stroke Style */
|
|
86
|
+
export interface DesignTokenTypeStrokeStyle<T extends DesignTokenTypeStrokeStyleValue = DesignTokenTypeStrokeStyleValue> extends DesignTokenBase<T> {
|
|
87
|
+
/** @inheritdoc */
|
|
88
|
+
$type: 'strokeStyle';
|
|
89
|
+
}
|
|
90
|
+
type DesignTokenTypeBorderValue = {
|
|
91
|
+
color: string;
|
|
92
|
+
width: string;
|
|
93
|
+
style: string | DesignTokenTypeStrokeStyleValue;
|
|
94
|
+
};
|
|
95
|
+
/** Design Token Border */
|
|
96
|
+
export interface DesignTokenTypeBorder extends DesignTokenBase<DesignTokenTypeBorderValue> {
|
|
97
|
+
/** @inheritdoc */
|
|
98
|
+
$type: 'border';
|
|
99
|
+
}
|
|
100
|
+
type DesignTokenTypeTransitionValue = {
|
|
101
|
+
duration: string;
|
|
102
|
+
delay: string;
|
|
103
|
+
timingFunction: string | DesignTokenTypeCubicBezierValue;
|
|
104
|
+
};
|
|
105
|
+
/** Design Token Transition */
|
|
106
|
+
export interface DesignTokenTypeTransition extends DesignTokenBase<DesignTokenTypeTransitionValue> {
|
|
107
|
+
/** @inheritdoc */
|
|
108
|
+
$type: 'transition';
|
|
109
|
+
}
|
|
110
|
+
type DesignTokenTypeShadowValue = {
|
|
111
|
+
color: string;
|
|
112
|
+
offsetX: string;
|
|
113
|
+
offsetY: string;
|
|
114
|
+
blur: string;
|
|
115
|
+
spread: string;
|
|
116
|
+
};
|
|
117
|
+
/** Design Token Shadow */
|
|
118
|
+
export interface DesignTokenTypeShadow extends DesignTokenBase<DesignTokenTypeShadowValue> {
|
|
119
|
+
/** @inheritdoc */
|
|
120
|
+
$type: 'shadow';
|
|
121
|
+
}
|
|
122
|
+
type DesignTokenTypeGradientValue = {
|
|
123
|
+
color: string;
|
|
124
|
+
position: string | number;
|
|
125
|
+
}[];
|
|
126
|
+
/** Design Token Gradient */
|
|
127
|
+
export interface DesignTokenTypeGradient extends DesignTokenBase<DesignTokenTypeGradientValue> {
|
|
128
|
+
/** @inheritdoc */
|
|
129
|
+
$type: 'gradient';
|
|
130
|
+
}
|
|
131
|
+
type DesignTokenTypeTypographyValue = {
|
|
132
|
+
fontFamily: string;
|
|
133
|
+
fontSize: string;
|
|
134
|
+
letterSpacing: string;
|
|
135
|
+
fontWeight: DesignTokenTypeFontWeightValue;
|
|
136
|
+
lineHeight: string | number;
|
|
137
|
+
};
|
|
138
|
+
/** Design Token Typography */
|
|
139
|
+
export interface DesignTokenTypeTypography extends DesignTokenBase<DesignTokenTypeTypographyValue> {
|
|
140
|
+
/** @inheritdoc */
|
|
141
|
+
$type: 'typography';
|
|
142
|
+
}
|
|
143
|
+
/** Common field for the Design Token Groups */
|
|
144
|
+
export interface DesignTokenGroupCommonFields<G extends DesignTokenExtensions> {
|
|
145
|
+
/** Description of the Group */
|
|
146
|
+
$description?: string;
|
|
147
|
+
/** Design Token Extension */
|
|
148
|
+
$extensions?: G;
|
|
149
|
+
}
|
|
150
|
+
/** Common field for the Design Token */
|
|
151
|
+
export type DesignTokenCommonFields<E extends DesignTokenExtensions = DesignTokenExtensions> = DesignTokenGroupCommonFields<E>;
|
|
152
|
+
/** Available Design Token types */
|
|
153
|
+
export type DesignToken<E extends DesignTokenExtensions = DesignTokenExtensions> = DesignTokenCommonFields<E> & (DesignTokenTypeColor | DesignTokenTypeDimension | DesignTokenTypeFontFamily | DesignTokenTypeDuration | DesignTokenTypeCubicBezier | DesignTokenTypeFontWeight | DesignTokenTypeNumber | DesignTokenTypeStrokeStyle | DesignTokenTypeBorder | DesignTokenTypeTransition | DesignTokenTypeShadow | DesignTokenTypeGradient | DesignTokenTypeTypography | DesignTokenTypeImplicit);
|
|
154
|
+
/** Design Token Node (Design Token Group or Item) */
|
|
155
|
+
export type DesignTokenNode<E extends DesignTokenExtensions = DesignTokenExtensions, G extends DesignTokenGroupExtensions = E> = DesignTokenGroup<E, G> | DesignToken<E>;
|
|
156
|
+
/** Design Token Group */
|
|
157
|
+
export type DesignTokenGroup<E extends DesignTokenExtensions = DesignTokenExtensions, G extends DesignTokenGroupExtensions = E> = DesignTokenGroupCommonFields<G> & {
|
|
158
|
+
[x: string]: DesignTokenNode<E, G> | E | string | boolean | undefined;
|
|
159
|
+
};
|
|
160
|
+
/** Context of the Design Token specification document */
|
|
161
|
+
export type DesignTokenContext = {
|
|
162
|
+
/** Base path used to compute the path of the file to render the Tokens into */
|
|
163
|
+
basePath?: string;
|
|
164
|
+
};
|
|
165
|
+
/** Design Token specification */
|
|
166
|
+
export type DesignTokenSpecification<C extends DesignTokenContext = DesignTokenContext, E extends DesignTokenExtensions = DesignTokenExtensions, G extends DesignTokenGroupExtensions = E> = {
|
|
167
|
+
/** Specification as described on {@link https://design-tokens.github.io/community-group/format/} */
|
|
168
|
+
document: DesignTokenGroup<E, G>;
|
|
169
|
+
/** Specification document context information */
|
|
170
|
+
context?: C;
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* Determine if the Design Token Node is a Token (not a Group)
|
|
174
|
+
* @param node Design Token Node
|
|
175
|
+
*/
|
|
176
|
+
export declare const isDesignToken: (node?: any) => node is DesignToken<DesignTokenExtensions>;
|
|
177
|
+
/**
|
|
178
|
+
* Determine if the Design Token Node is a Group (not a Token)
|
|
179
|
+
* @param node Design Token Node
|
|
180
|
+
*/
|
|
181
|
+
export declare const isDesignTokenGroup: (node?: any) => node is DesignTokenGroup<DesignTokenExtensions, DesignTokenExtensions>;
|
|
182
|
+
/**
|
|
183
|
+
* Determine if the Stroke Style value is defined or is a reference
|
|
184
|
+
* @param value Stroke Style value
|
|
185
|
+
* @returns true if it is a defined value
|
|
186
|
+
*/
|
|
187
|
+
export declare const isTokenTypeStrokeStyleValueComplex: (value?: DesignTokenTypeStrokeStyleValue | string) => value is DesignTokenTypeStrokeStyleDetailsValue;
|
|
188
|
+
/**
|
|
189
|
+
* Determine if the Stroke Style Token has a value defined or is a reference
|
|
190
|
+
* @param node Stroke Style Token
|
|
191
|
+
* @returns true if it is a token with defined value
|
|
192
|
+
*/
|
|
193
|
+
export declare const isTokenTypeStrokeStyleComplex: (node?: DesignTokenTypeStrokeStyle) => node is DesignTokenTypeStrokeStyle<DesignTokenTypeStrokeStyleDetailsValue>;
|
|
194
|
+
export {};
|
|
195
|
+
//# sourceMappingURL=design-token-specification.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token-specification.interface.d.ts","sourceRoot":"","sources":["../../../../src/core/design-token/design-token-specification.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isTokenTypeStrokeStyleComplex = exports.isTokenTypeStrokeStyleValueComplex = exports.isDesignTokenGroup = exports.isDesignToken = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Determine if the Design Token Node is a Token (not a Group)
|
|
6
|
+
* @param node Design Token Node
|
|
7
|
+
*/
|
|
8
|
+
const isDesignToken = (node) => {
|
|
9
|
+
return !!node && (typeof node.$type !== 'undefined' || typeof node.$value === 'string');
|
|
10
|
+
};
|
|
11
|
+
exports.isDesignToken = isDesignToken;
|
|
12
|
+
/**
|
|
13
|
+
* Determine if the Design Token Node is a Group (not a Token)
|
|
14
|
+
* @param node Design Token Node
|
|
15
|
+
*/
|
|
16
|
+
const isDesignTokenGroup = (node) => {
|
|
17
|
+
return typeof node === 'object' && Object.keys(node).some((k) => !k.startsWith('$'));
|
|
18
|
+
};
|
|
19
|
+
exports.isDesignTokenGroup = isDesignTokenGroup;
|
|
20
|
+
/**
|
|
21
|
+
* Determine if the Stroke Style value is defined or is a reference
|
|
22
|
+
* @param value Stroke Style value
|
|
23
|
+
* @returns true if it is a defined value
|
|
24
|
+
*/
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
26
|
+
const isTokenTypeStrokeStyleValueComplex = (value) => {
|
|
27
|
+
return !!value && typeof value !== 'string';
|
|
28
|
+
};
|
|
29
|
+
exports.isTokenTypeStrokeStyleValueComplex = isTokenTypeStrokeStyleValueComplex;
|
|
30
|
+
/**
|
|
31
|
+
* Determine if the Stroke Style Token has a value defined or is a reference
|
|
32
|
+
* @param node Stroke Style Token
|
|
33
|
+
* @returns true if it is a token with defined value
|
|
34
|
+
*/
|
|
35
|
+
const isTokenTypeStrokeStyleComplex = (node) => {
|
|
36
|
+
return !!node && (0, exports.isTokenTypeStrokeStyleValueComplex)(node.$value);
|
|
37
|
+
};
|
|
38
|
+
exports.isTokenTypeStrokeStyleComplex = isTokenTypeStrokeStyleComplex;
|
|
39
|
+
//# sourceMappingURL=design-token-specification.interface.js.map
|