@o3r/design 10.0.0-alpha.1
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 +116 -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.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/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/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.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 +48 -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.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/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/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 +60 -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.json +18 -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 +142 -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 +22 -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 +27 -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,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCssTokenDefinitionRenderer = void 0;
|
|
4
|
+
const design_token_renderer_helpers_1 = require("../design-token.renderer.helpers");
|
|
5
|
+
const design_token_value_renderers_1 = require("./design-token-value.renderers");
|
|
6
|
+
/**
|
|
7
|
+
* Retrieve the Design Token variable renderer for CSS
|
|
8
|
+
* @param options
|
|
9
|
+
* @returns
|
|
10
|
+
* @example CSS renderer with Sass fallback
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { getSassTokenDefinitionRenderer } from '@o3r/design';
|
|
13
|
+
*
|
|
14
|
+
* // List of parsed Design Token items
|
|
15
|
+
* const parsedTokenDesign = await parseDesignTokenFile('./path/to/spec.json');
|
|
16
|
+
*
|
|
17
|
+
* // Sass variable renderer
|
|
18
|
+
* const sassTokenDefinitionRenderer = getSassTokenDefinitionRenderer();
|
|
19
|
+
*
|
|
20
|
+
* // CSS variable renderer
|
|
21
|
+
* const cssTokenDefinitionRenderer = getCssTokenDefinitionRenderer({
|
|
22
|
+
* // Specify that the private variable should be rendered in Sass variable
|
|
23
|
+
* privateDefinitionRenderer: sassTokenDefinitionRenderer
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* // Render the CSS variables
|
|
27
|
+
* await renderDesignTokens(parsedTokenDesign, { tokenDefinitionRenderer: cssTokenDefinitionRenderer });
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
const getCssTokenDefinitionRenderer = (options) => {
|
|
31
|
+
const isPrivateVariable = options?.isPrivateVariable || design_token_renderer_helpers_1.isO3rPrivateVariable;
|
|
32
|
+
const tokenVariableNameRenderer = options?.tokenVariableNameRenderer;
|
|
33
|
+
const tokenValueRenderer = options?.tokenValueRenderer || (0, design_token_value_renderers_1.getCssTokenValueRenderer)({ isPrivateVariable, tokenVariableNameRenderer });
|
|
34
|
+
const renderer = (variable, variableSet) => {
|
|
35
|
+
let variableString;
|
|
36
|
+
if (!isPrivateVariable(variable)) {
|
|
37
|
+
variableString = `--${variable.getKey(tokenVariableNameRenderer)}: ${tokenValueRenderer(variable, variableSet)};`;
|
|
38
|
+
if (variable.extensions.o3rScope) {
|
|
39
|
+
variableString = `${variable.extensions.o3rScope} { ${variableString} }`;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else if (options?.privateDefinitionRenderer && variable.extensions.o3rPrivate) {
|
|
43
|
+
variableString = options.privateDefinitionRenderer(variable, variableSet);
|
|
44
|
+
}
|
|
45
|
+
if (variableString && variable.description) {
|
|
46
|
+
variableString = `/* ${variable.description} */\n${variableString}`;
|
|
47
|
+
}
|
|
48
|
+
return variableString;
|
|
49
|
+
};
|
|
50
|
+
return renderer;
|
|
51
|
+
};
|
|
52
|
+
exports.getCssTokenDefinitionRenderer = getCssTokenDefinitionRenderer;
|
|
53
|
+
//# sourceMappingURL=design-token-definition.renderers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token-definition.renderers.js","sourceRoot":"","sources":["../../../../../../src/core/design-token/renderers/css/design-token-definition.renderers.ts"],"names":[],"mappings":";;;AACA,oFAAwE;AAExE,iFAA0E;AAyB1E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACI,MAAM,6BAA6B,GAAG,CAAC,OAA2C,EAA2B,EAAE;IACpH,MAAM,iBAAiB,GAAG,OAAO,EAAE,iBAAiB,IAAI,oDAAoB,CAAC;IAC7E,MAAM,yBAAyB,GAAG,OAAO,EAAE,yBAAyB,CAAC;IACrE,MAAM,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,IAAI,IAAA,uDAAwB,EAAC,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAErI,MAAM,QAAQ,GAAG,CAAC,QAAsC,EAAE,WAAsD,EAAE,EAAE;QAClH,IAAI,cAAkC,CAAC;QACvC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;YAChC,cAAc,GAAG,KAAK,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC,KAAK,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC;YAClH,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE;gBAChC,cAAc,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,MAAM,cAAc,IAAI,CAAC;aAC1E;SACF;aAAM,IAAI,OAAO,EAAE,yBAAyB,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE;YAC/E,cAAc,GAAG,OAAO,CAAC,yBAAyB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;SAC3E;QACD,IAAI,cAAc,IAAI,QAAQ,CAAC,WAAW,EAAE;YAC1C,cAAc,GAAG,MAAM,QAAQ,CAAC,WAAW,QAAQ,cAAc,EAAE,CAAC;SACrE;QACD,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AArBW,QAAA,6BAA6B,iCAqBxC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { DesignContentFileUpdater } from '../design-token.renderer.interface';
|
|
2
|
+
/** Default CSS starting tag */
|
|
3
|
+
export declare const AUTO_GENERATED_START = "/* --- BEGIN THEME Auto-generated --- */";
|
|
4
|
+
/** Default CSS ending tag */
|
|
5
|
+
export declare const AUTO_GENERATED_END = "/* --- END THEME Auto-generated --- */";
|
|
6
|
+
/** Options for {@link getCssStyleContentUpdater} */
|
|
7
|
+
export interface CssStyleContentUpdaterOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Opening tag marking the content edition part
|
|
10
|
+
* @default {@see AUTO_GENERATED_START}
|
|
11
|
+
*/
|
|
12
|
+
startTag?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Closing tag marking the content edition part
|
|
15
|
+
* @default {@see AUTO_GENERATED_END}
|
|
16
|
+
*/
|
|
17
|
+
endTag?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Retrieve a Content Updater function for CSS generator
|
|
21
|
+
* @param options
|
|
22
|
+
*/
|
|
23
|
+
export declare const getCssStyleContentUpdater: (options?: CssStyleContentUpdaterOptions) => DesignContentFileUpdater;
|
|
24
|
+
//# sourceMappingURL=design-token-updater.renderers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token-updater.renderers.d.ts","sourceRoot":"","sources":["../../../../../../src/core/design-token/renderers/css/design-token-updater.renderers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAOnF,+BAA+B;AAC/B,eAAO,MAAM,oBAAoB,6CAA6C,CAAC;AAE/E,6BAA6B;AAC7B,eAAO,MAAM,kBAAkB,2CAA2C,CAAC;AAE3E,oDAAoD;AACpD,MAAM,WAAW,6BAA6B;IAC5C;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,aAAc,6BAA6B,KAAG,wBAcnF,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCssStyleContentUpdater = exports.AUTO_GENERATED_END = exports.AUTO_GENERATED_START = void 0;
|
|
4
|
+
const SANITIZE_TAG_INPUTS_REGEXP = /[.*+?^${}()|[\]\\]/g;
|
|
5
|
+
const generateVars = (variables, startTag, endTag, addCssScope = false) => `${addCssScope ? ':root {\n' : ''}${startTag}\n${variables.join('\n')}\n${endTag}${addCssScope ? '\n}' : ''}`;
|
|
6
|
+
/** Default CSS starting tag */
|
|
7
|
+
exports.AUTO_GENERATED_START = '/* --- BEGIN THEME Auto-generated --- */';
|
|
8
|
+
/** Default CSS ending tag */
|
|
9
|
+
exports.AUTO_GENERATED_END = '/* --- END THEME Auto-generated --- */';
|
|
10
|
+
/**
|
|
11
|
+
* Retrieve a Content Updater function for CSS generator
|
|
12
|
+
* @param options
|
|
13
|
+
*/
|
|
14
|
+
const getCssStyleContentUpdater = (options) => {
|
|
15
|
+
const startTag = options?.startTag || exports.AUTO_GENERATED_START;
|
|
16
|
+
const endTag = options?.endTag || exports.AUTO_GENERATED_END;
|
|
17
|
+
/** Regexp to replace the content between the detected tags. It also handle possible inputted special character sanitization */
|
|
18
|
+
const regexToReplace = new RegExp(`${startTag.replace(SANITIZE_TAG_INPUTS_REGEXP, '\\$&')}(:?(.|[\n\r])*)${endTag.replace(SANITIZE_TAG_INPUTS_REGEXP, '\\$&')}`);
|
|
19
|
+
return (variables, _file, styleContent = '') => {
|
|
20
|
+
if (styleContent.indexOf(startTag) >= 0 && styleContent.indexOf(endTag) >= 0) {
|
|
21
|
+
return styleContent.replace(regexToReplace, generateVars(variables, startTag, endTag));
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
return styleContent + '\n' + generateVars(variables, startTag, endTag, true);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
exports.getCssStyleContentUpdater = getCssStyleContentUpdater;
|
|
29
|
+
//# sourceMappingURL=design-token-updater.renderers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token-updater.renderers.js","sourceRoot":"","sources":["../../../../../../src/core/design-token/renderers/css/design-token-updater.renderers.ts"],"names":[],"mappings":";;;AAEA,MAAM,0BAA0B,GAAG,qBAAqB,CAAC;AAEzD,MAAM,YAAY,GAAG,CAAC,SAAmB,EAAE,QAAgB,EAAE,MAAc,EAAE,WAAW,GAAG,KAAK,EAAE,EAAE,CAClG,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAEhH,+BAA+B;AAClB,QAAA,oBAAoB,GAAG,0CAA0C,CAAC;AAE/E,6BAA6B;AAChB,QAAA,kBAAkB,GAAG,wCAAwC,CAAC;AAiB3E;;;GAGG;AACI,MAAM,yBAAyB,GAAG,CAAC,OAAuC,EAA4B,EAAE;IAC7G,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,4BAAoB,CAAC;IAC3D,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,0BAAkB,CAAC;IAErD,+HAA+H;IAC/H,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC,kBAAkB,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAEjK,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,GAAG,EAAE,EAAE,EAAE;QAC7C,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAC5E,OAAO,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;SACxF;aAAM;YACL,OAAO,YAAY,GAAG,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;SAC9E;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,yBAAyB,6BAcpC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { DesignTokenVariableStructure, TokenKeyRenderer, TokenValueRenderer } from '../../parsers/design-token-parser.interface';
|
|
2
|
+
/** Options for {@link getCssTokenValueRenderer} */
|
|
3
|
+
export interface CssTokenValueRendererOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Determine if the variable is private and should not be rendered
|
|
6
|
+
* @default {@see isO3rPrivateVariable}
|
|
7
|
+
*/
|
|
8
|
+
isPrivateVariable?: (variable: DesignTokenVariableStructure) => boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Renderer the name of the CSS Variable (without initial --)
|
|
11
|
+
*/
|
|
12
|
+
tokenVariableNameRenderer?: TokenKeyRenderer;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Retrieve the Design Token value renderer
|
|
16
|
+
* @param options
|
|
17
|
+
*/
|
|
18
|
+
export declare const getCssTokenValueRenderer: (options?: CssTokenValueRendererOptions) => TokenValueRenderer;
|
|
19
|
+
//# sourceMappingURL=design-token-value.renderers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token-value.renderers.d.ts","sourceRoot":"","sources":["../../../../../../src/core/design-token/renderers/css/design-token-value.renderers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAGtI,mDAAmD;AACnD,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,4BAA4B,KAAK,OAAO,CAAC;IAExE;;OAEG;IACH,yBAAyB,CAAC,EAAE,gBAAgB,CAAC;CAC9C;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,aAAc,4BAA4B,KAAG,kBAoBjF,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCssTokenValueRenderer = void 0;
|
|
4
|
+
const design_token_renderer_helpers_1 = require("../design-token.renderer.helpers");
|
|
5
|
+
/**
|
|
6
|
+
* Retrieve the Design Token value renderer
|
|
7
|
+
* @param options
|
|
8
|
+
*/
|
|
9
|
+
const getCssTokenValueRenderer = (options) => {
|
|
10
|
+
const isPrivateVariable = options?.isPrivateVariable || design_token_renderer_helpers_1.isO3rPrivateVariable;
|
|
11
|
+
const tokenVariableNameRenderer = options?.tokenVariableNameRenderer;
|
|
12
|
+
const referenceRenderer = (variable, variableSet) => {
|
|
13
|
+
if (!isPrivateVariable(variable)) {
|
|
14
|
+
return `var(--${variable.getKey(tokenVariableNameRenderer)})`;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
// eslint-disable-next-line no-use-before-define
|
|
18
|
+
return `var(--${variable.getKey(tokenVariableNameRenderer)}, ${renderer(variable, variableSet)})`;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const renderer = (variable, variableSet) => {
|
|
22
|
+
let variableValue = variable.getCssRawValue(variableSet).replaceAll(/\{([^}]*)\}/g, (defaultValue, matcher) => (variableSet.has(matcher) ? referenceRenderer(variableSet.get(matcher), variableSet) : defaultValue));
|
|
23
|
+
variableValue += variableValue && variable.extensions.o3rImportant ? ' !important' : '';
|
|
24
|
+
return variableValue;
|
|
25
|
+
};
|
|
26
|
+
return renderer;
|
|
27
|
+
};
|
|
28
|
+
exports.getCssTokenValueRenderer = getCssTokenValueRenderer;
|
|
29
|
+
//# sourceMappingURL=design-token-value.renderers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token-value.renderers.js","sourceRoot":"","sources":["../../../../../../src/core/design-token/renderers/css/design-token-value.renderers.ts"],"names":[],"mappings":";;;AACA,oFAAwE;AAgBxE;;;GAGG;AACI,MAAM,wBAAwB,GAAG,CAAC,OAAsC,EAAsB,EAAE;IACrG,MAAM,iBAAiB,GAAG,OAAO,EAAE,iBAAiB,IAAI,oDAAoB,CAAC;IAC7E,MAAM,yBAAyB,GAAG,OAAO,EAAE,yBAAyB,CAAC;IAErE,MAAM,iBAAiB,GAAG,CAAC,QAAsC,EAAE,WAAsD,EAAU,EAAE;QACnI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;YAChC,OAAO,SAAS,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC,GAAG,CAAC;SAC/D;aAAM;YACL,gDAAgD;YAChD,OAAO,SAAS,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC,KAAK,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC;SACnG;IACH,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,QAAsC,EAAE,WAAsD,EAAE,EAAE;QAClH,IAAI,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,CAC5G,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CACtG,CAAC;QACF,aAAa,IAAI,aAAa,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AApBW,QAAA,wBAAwB,4BAoBnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/core/design-token/renderers/css/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./design-token-definition.renderers"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./design-token-value.renderers"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./design-token-updater.renderers"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/core/design-token/renderers/css/index.ts"],"names":[],"mappings":";;;AAAA,8EAAoD;AACpD,yEAA+C;AAC/C,2EAAiD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { DesignTokenVariableSet, DesignTokenVariableStructure } from '../parsers/design-token-parser.interface';
|
|
2
|
+
import type { DesignTokenRendererOptions } from './design-token.renderer.interface';
|
|
3
|
+
/**
|
|
4
|
+
* Retrieve the function that determines which file to update for a given token
|
|
5
|
+
* @param root Root path used if no base path
|
|
6
|
+
* @param defaultFile Default file if not requested by the Token
|
|
7
|
+
*/
|
|
8
|
+
export declare const computeFileToUpdatePath: (root?: string, defaultFile?: string) => (token: DesignTokenVariableStructure) => string;
|
|
9
|
+
/**
|
|
10
|
+
* Process the parsed Design Token variables and render them according to the given options and renderers
|
|
11
|
+
* @param variableSet Complete list of the parsed Design Token
|
|
12
|
+
* @param options Parameters of the Design Token renderer
|
|
13
|
+
* @example Basic renderer usage
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { parseDesignTokenFile, renderDesignTokens } from '@o3r/design';
|
|
16
|
+
*
|
|
17
|
+
* // List of parsed Design Token items
|
|
18
|
+
* const parsedTokenDesign = await parseDesignTokenFile('./path/to/spec.json');
|
|
19
|
+
*
|
|
20
|
+
* // Render the CSS variables
|
|
21
|
+
* await renderDesignTokens(parsedTokenDesign, { logger: console });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const renderDesignTokens: (variableSet: DesignTokenVariableSet, options?: DesignTokenRendererOptions) => Promise<void>;
|
|
25
|
+
//# sourceMappingURL=design-token-style.renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token-style.renderer.d.ts","sourceRoot":"","sources":["../../../../../src/core/design-token/renderers/design-token-style.renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AAKrH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAEpF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,mDAAkE,4BAA4B,WAMjI,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB,kDAAyD,0BAA0B,kBAwBjH,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderDesignTokens = exports.computeFileToUpdatePath = void 0;
|
|
4
|
+
const design_token_definition_renderers_1 = require("./css/design-token-definition.renderers");
|
|
5
|
+
const design_token_updater_renderers_1 = require("./css/design-token-updater.renderers");
|
|
6
|
+
const node_fs_1 = require("node:fs");
|
|
7
|
+
const node_path_1 = require("node:path");
|
|
8
|
+
/**
|
|
9
|
+
* Retrieve the function that determines which file to update for a given token
|
|
10
|
+
* @param root Root path used if no base path
|
|
11
|
+
* @param defaultFile Default file if not requested by the Token
|
|
12
|
+
*/
|
|
13
|
+
const computeFileToUpdatePath = (root = process.cwd(), defaultFile = 'styles.scss') => (token) => {
|
|
14
|
+
if (token.extensions.o3rTargetFile) {
|
|
15
|
+
return (0, node_path_1.isAbsolute)(token.extensions.o3rTargetFile) ? token.extensions.o3rTargetFile : (0, node_path_1.resolve)(token.context?.basePath || root, token.extensions.o3rTargetFile);
|
|
16
|
+
}
|
|
17
|
+
return defaultFile;
|
|
18
|
+
};
|
|
19
|
+
exports.computeFileToUpdatePath = computeFileToUpdatePath;
|
|
20
|
+
/**
|
|
21
|
+
* Process the parsed Design Token variables and render them according to the given options and renderers
|
|
22
|
+
* @param variableSet Complete list of the parsed Design Token
|
|
23
|
+
* @param options Parameters of the Design Token renderer
|
|
24
|
+
* @example Basic renderer usage
|
|
25
|
+
* ```typescript
|
|
26
|
+
* import { parseDesignTokenFile, renderDesignTokens } from '@o3r/design';
|
|
27
|
+
*
|
|
28
|
+
* // List of parsed Design Token items
|
|
29
|
+
* const parsedTokenDesign = await parseDesignTokenFile('./path/to/spec.json');
|
|
30
|
+
*
|
|
31
|
+
* // Render the CSS variables
|
|
32
|
+
* await renderDesignTokens(parsedTokenDesign, { logger: console });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
const renderDesignTokens = async (variableSet, options) => {
|
|
36
|
+
const readFile = options?.readFile || ((filePath) => node_fs_1.promises.readFile(filePath, { encoding: 'utf-8' }));
|
|
37
|
+
const writeFile = options?.writeFile || node_fs_1.promises.writeFile;
|
|
38
|
+
const existsFile = options?.existsFile || node_fs_1.existsSync;
|
|
39
|
+
const determineFileToUpdate = options?.determineFileToUpdate || (0, exports.computeFileToUpdatePath)();
|
|
40
|
+
const tokenDefinitionRenderer = options?.tokenDefinitionRenderer || (0, design_token_definition_renderers_1.getCssTokenDefinitionRenderer)();
|
|
41
|
+
const styleContentUpdater = options?.styleContentUpdater || (0, design_token_updater_renderers_1.getCssStyleContentUpdater)();
|
|
42
|
+
const updates = Array.from(variableSet.values()).reduce((acc, designToken) => {
|
|
43
|
+
const filePath = determineFileToUpdate(designToken);
|
|
44
|
+
const variable = tokenDefinitionRenderer(designToken, variableSet);
|
|
45
|
+
if (variable) {
|
|
46
|
+
acc[filePath] ||= [];
|
|
47
|
+
acc[filePath].push(variable);
|
|
48
|
+
}
|
|
49
|
+
return acc;
|
|
50
|
+
}, {});
|
|
51
|
+
await Promise.all(Object.entries(updates).map(async ([file, vars]) => {
|
|
52
|
+
const styleContent = existsFile(file) ? await readFile(file) : '';
|
|
53
|
+
const newStyleContent = styleContentUpdater(vars, file, styleContent);
|
|
54
|
+
await writeFile(file, newStyleContent);
|
|
55
|
+
}));
|
|
56
|
+
};
|
|
57
|
+
exports.renderDesignTokens = renderDesignTokens;
|
|
58
|
+
//# sourceMappingURL=design-token-style.renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token-style.renderer.js","sourceRoot":"","sources":["../../../../../src/core/design-token/renderers/design-token-style.renderer.ts"],"names":[],"mappings":";;;AACA,+FAAwF;AACxF,yFAAiF;AACjF,qCAAqD;AACrD,yCAAgD;AAGhD;;;;GAIG;AACI,MAAM,uBAAuB,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,EAAE,CAAC,CAAC,KAAmC,EAAE,EAAE;IACpI,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE;QAClC,OAAO,IAAA,sBAAU,EAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,IAAA,mBAAO,EAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;KAC/J;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AANW,QAAA,uBAAuB,2BAMlC;AAEF;;;;;;;;;;;;;;GAcG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,WAAmC,EAAE,OAAoC,EAAE,EAAE;IACpH,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC;IACzG,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,kBAAE,CAAC,SAAS,CAAC;IACrD,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,oBAAU,CAAC;IACrD,MAAM,qBAAqB,GAAG,OAAO,EAAE,qBAAqB,IAAI,IAAA,+BAAuB,GAAE,CAAC;IAC1F,MAAM,uBAAuB,GAAG,OAAO,EAAE,uBAAuB,IAAI,IAAA,iEAA6B,GAAE,CAAC;IACpG,MAAM,mBAAmB,GAAG,OAAO,EAAE,mBAAmB,IAAI,IAAA,0DAAyB,GAAE,CAAC;IACxF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE;QAC3E,MAAM,QAAQ,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACnE,IAAI,QAAQ,EAAE;YACZ,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACrB,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC9B;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAA8B,CAAC,CAAC;IAEnC,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACjD,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,MAAM,eAAe,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACtE,MAAM,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACzC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,kBAAkB,sBAwB7B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DesignTokenVariableStructure } from '../parsers';
|
|
2
|
+
/**
|
|
3
|
+
* Indicate that the variable is private based on the Otter extension
|
|
4
|
+
* @param variable Parsed Design Token
|
|
5
|
+
* @returns true if private variable
|
|
6
|
+
*/
|
|
7
|
+
export declare const isO3rPrivateVariable: (variable: DesignTokenVariableStructure) => boolean;
|
|
8
|
+
//# sourceMappingURL=design-token.renderer.helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token.renderer.helpers.d.ts","sourceRoot":"","sources":["../../../../../src/core/design-token/renderers/design-token.renderer.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,aAAc,4BAA4B,YAAqC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isO3rPrivateVariable = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Indicate that the variable is private based on the Otter extension
|
|
6
|
+
* @param variable Parsed Design Token
|
|
7
|
+
* @returns true if private variable
|
|
8
|
+
*/
|
|
9
|
+
const isO3rPrivateVariable = (variable) => !!variable.extensions.o3rPrivate;
|
|
10
|
+
exports.isO3rPrivateVariable = isO3rPrivateVariable;
|
|
11
|
+
//# sourceMappingURL=design-token.renderer.helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token.renderer.helpers.js","sourceRoot":"","sources":["../../../../../src/core/design-token/renderers/design-token.renderer.helpers.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACI,MAAM,oBAAoB,GAAG,CAAC,QAAsC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;AAApG,QAAA,oBAAoB,wBAAgF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { DesignTokenVariableStructure } from '../parsers';
|
|
2
|
+
import type { Logger } from '@o3r/core';
|
|
3
|
+
/**
|
|
4
|
+
* Updater function to append the rendered variable into a file content
|
|
5
|
+
* @param variables List of rendered variables to append
|
|
6
|
+
* @param file Path to the file to edit
|
|
7
|
+
* @param styleContent current content where to append the variables
|
|
8
|
+
* @returns new content
|
|
9
|
+
*/
|
|
10
|
+
export type DesignContentFileUpdater = (variables: string[], file: string, styleContent?: string) => string;
|
|
11
|
+
/**
|
|
12
|
+
* Render the Design Token variable
|
|
13
|
+
* @param tokenStructure Parsed Design Token
|
|
14
|
+
* @param variableSet Complete list of the parsed Design Token
|
|
15
|
+
*/
|
|
16
|
+
export type TokenDefinitionRenderer = (tokenStructure: DesignTokenVariableStructure, variableSet: Map<string, DesignTokenVariableStructure>) => string | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Options of the Design Token Renderer value
|
|
19
|
+
*/
|
|
20
|
+
export interface DesignTokenRendererOptions {
|
|
21
|
+
/** Custom Style Content updated function */
|
|
22
|
+
styleContentUpdater?: DesignContentFileUpdater;
|
|
23
|
+
/**
|
|
24
|
+
* Custom function to determine the file to update for a given Design Token
|
|
25
|
+
* @param token Design Token Variable
|
|
26
|
+
*/
|
|
27
|
+
determineFileToUpdate?: (token: DesignTokenVariableStructure) => string;
|
|
28
|
+
/** Custom function to render the Design Token variable */
|
|
29
|
+
tokenDefinitionRenderer?: TokenDefinitionRenderer;
|
|
30
|
+
/**
|
|
31
|
+
* Custom function to read a file required by the token renderer
|
|
32
|
+
* @default {@see fs.promises.readFile}
|
|
33
|
+
* @param filePath Path to the file to read
|
|
34
|
+
*/
|
|
35
|
+
readFile?: (filePath: string) => string | Promise<string>;
|
|
36
|
+
/**
|
|
37
|
+
* Custom function to determine if file required by the token renderer exists
|
|
38
|
+
* @default {@see fs.existsSync}
|
|
39
|
+
* @param filePath Path to the file to check
|
|
40
|
+
* @returns
|
|
41
|
+
*/
|
|
42
|
+
existsFile?: (filePath: string) => boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Custom function to write a file required by the token renderer
|
|
45
|
+
* @default {@see fs.promise.writeFile}
|
|
46
|
+
* @param filePath Path to the file to write
|
|
47
|
+
* @param content Content to write
|
|
48
|
+
*/
|
|
49
|
+
writeFile?: (filePath: string, content: string) => void | Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Custom logger
|
|
52
|
+
* Nothing will be logged if not provided
|
|
53
|
+
*/
|
|
54
|
+
logger?: Logger;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=design-token.renderer.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token.renderer.interface.d.ts","sourceRoot":"","sources":["../../../../../src/core/design-token/renderers/design-token.renderer.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAE5G;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,cAAc,EAAE,4BAA4B,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;AAEnK;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,4CAA4C;IAC5C,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAE/C;;;OAGG;IACH,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,MAAM,CAAC;IAExE,0DAA0D;IAC1D,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAElD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1D;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAE3C;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token.renderer.interface.js","sourceRoot":"","sources":["../../../../../src/core/design-token/renderers/design-token.renderer.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './design-token-style.renderer';
|
|
2
|
+
export * from './design-token.renderer.interface';
|
|
3
|
+
export * from './design-token-style.renderer';
|
|
4
|
+
export * from './metadata/index';
|
|
5
|
+
export * from './css/index';
|
|
6
|
+
export * from './sass/index';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/design-token/renderers/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./design-token-style.renderer"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./design-token.renderer.interface"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./design-token-style.renderer"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./metadata/index"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./css/index"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./sass/index"), exports);
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/design-token/renderers/index.ts"],"names":[],"mappings":";;;AAAA,wEAA8C;AAC9C,4EAAkD;AAClD,wEAA8C;AAC9C,2DAAiC;AACjC,sDAA4B;AAC5B,uDAA6B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { TokenKeyRenderer, TokenValueRenderer } from '../../parsers/design-token-parser.interface';
|
|
2
|
+
import type { TokenDefinitionRenderer } from '../design-token.renderer.interface';
|
|
3
|
+
/** Options for {@link getMetadataTokenDefinitionRenderer} */
|
|
4
|
+
export interface MetadataTokenDefinitionRendererOptions {
|
|
5
|
+
/** Custom Design Token value renderer */
|
|
6
|
+
tokenValueRenderer?: TokenValueRenderer;
|
|
7
|
+
/**
|
|
8
|
+
* Renderer the name of the CSS Variable (without initial --)
|
|
9
|
+
*/
|
|
10
|
+
tokenVariableNameRenderer?: TokenKeyRenderer;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Retrieve the Design Token Variable renderer for Metadata
|
|
14
|
+
* @param options
|
|
15
|
+
* @example Customize metadata renderer
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const getCustomMetadataTokenValueRenderer = (options?: MetadataTokenValueRendererOptions): TokenValueRenderer => {
|
|
18
|
+
* const defaultMetadataRender = getMetadataTokenValueRenderer(options);
|
|
19
|
+
* return (variable, variableSet) => {
|
|
20
|
+
* const defaultMetadataObj = JSON.parse(defaultMetadataRender(variable, variableSet));
|
|
21
|
+
* // Add custom field
|
|
22
|
+
* defaultMetadataObj.myField = 'custom value';
|
|
23
|
+
* return JSON.stringify(defaultMetadataObj);
|
|
24
|
+
* };
|
|
25
|
+
* };
|
|
26
|
+
*
|
|
27
|
+
* // List of Design Token item parsed
|
|
28
|
+
* // List of parsed Design Token items
|
|
29
|
+
*
|
|
30
|
+
* const tokenValueRenderer = getCustomMetadataTokenValueRenderer();
|
|
31
|
+
*
|
|
32
|
+
* const metadataTokenDefinitionRenderer = getMetadataTokenDefinitionRenderer({ tokenValueRenderer });
|
|
33
|
+
*
|
|
34
|
+
* // Render the Metadata file
|
|
35
|
+
* await renderDesignTokens(parsedTokenDesign, { tokenDefinitionRenderer: lessTokenDefinitionRenderer });
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare const getMetadataTokenDefinitionRenderer: (options?: MetadataTokenDefinitionRendererOptions) => TokenDefinitionRenderer;
|
|
39
|
+
//# sourceMappingURL=design-token-definition.renderers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token-definition.renderers.d.ts","sourceRoot":"","sources":["../../../../../../src/core/design-token/renderers/metadata/design-token-definition.renderers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgC,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACtI,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAIlF,6DAA6D;AAC7D,MAAM,WAAW,sCAAsC;IACrD,yCAAyC;IACzC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAExC;;OAEG;IACH,yBAAyB,CAAC,EAAE,gBAAgB,CAAC;CAC9C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,kCAAkC,aAAc,sCAAsC,KAAG,uBASrG,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMetadataTokenDefinitionRenderer = void 0;
|
|
4
|
+
const design_token_value_renderers_1 = require("./design-token-value.renderers");
|
|
5
|
+
/**
|
|
6
|
+
* Retrieve the Design Token Variable renderer for Metadata
|
|
7
|
+
* @param options
|
|
8
|
+
* @example Customize metadata renderer
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const getCustomMetadataTokenValueRenderer = (options?: MetadataTokenValueRendererOptions): TokenValueRenderer => {
|
|
11
|
+
* const defaultMetadataRender = getMetadataTokenValueRenderer(options);
|
|
12
|
+
* return (variable, variableSet) => {
|
|
13
|
+
* const defaultMetadataObj = JSON.parse(defaultMetadataRender(variable, variableSet));
|
|
14
|
+
* // Add custom field
|
|
15
|
+
* defaultMetadataObj.myField = 'custom value';
|
|
16
|
+
* return JSON.stringify(defaultMetadataObj);
|
|
17
|
+
* };
|
|
18
|
+
* };
|
|
19
|
+
*
|
|
20
|
+
* // List of Design Token item parsed
|
|
21
|
+
* // List of parsed Design Token items
|
|
22
|
+
*
|
|
23
|
+
* const tokenValueRenderer = getCustomMetadataTokenValueRenderer();
|
|
24
|
+
*
|
|
25
|
+
* const metadataTokenDefinitionRenderer = getMetadataTokenDefinitionRenderer({ tokenValueRenderer });
|
|
26
|
+
*
|
|
27
|
+
* // Render the Metadata file
|
|
28
|
+
* await renderDesignTokens(parsedTokenDesign, { tokenDefinitionRenderer: lessTokenDefinitionRenderer });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
const getMetadataTokenDefinitionRenderer = (options) => {
|
|
32
|
+
const tokenVariableNameRenderer = options?.tokenVariableNameRenderer;
|
|
33
|
+
const tokenValueRenderer = options?.tokenValueRenderer || (0, design_token_value_renderers_1.getMetadataTokenValueRenderer)({ tokenVariableNameRenderer });
|
|
34
|
+
const renderer = (variable, variableSet) => {
|
|
35
|
+
const variableValue = tokenValueRenderer(variable, variableSet);
|
|
36
|
+
return `"${JSON.parse(variableValue).name}": ${variableValue}`;
|
|
37
|
+
};
|
|
38
|
+
return renderer;
|
|
39
|
+
};
|
|
40
|
+
exports.getMetadataTokenDefinitionRenderer = getMetadataTokenDefinitionRenderer;
|
|
41
|
+
//# sourceMappingURL=design-token-definition.renderers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token-definition.renderers.js","sourceRoot":"","sources":["../../../../../../src/core/design-token/renderers/metadata/design-token-definition.renderers.ts"],"names":[],"mappings":";;;AAEA,iFAA+E;AAc/E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACI,MAAM,kCAAkC,GAAG,CAAC,OAAgD,EAA2B,EAAE;IAC9H,MAAM,yBAAyB,GAAG,OAAO,EAAE,yBAAyB,CAAC;IACrE,MAAM,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,IAAI,IAAA,4DAA6B,EAAC,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAEvH,MAAM,QAAQ,GAAG,CAAC,QAAsC,EAAE,WAAsD,EAAE,EAAE;QAClH,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAChE,OAAO,IAAK,IAAI,CAAC,KAAK,CAAC,aAAa,CAAiB,CAAC,IAAI,MAAM,aAAa,EAAE,CAAC;IAClF,CAAC,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AATW,QAAA,kCAAkC,sCAS7C"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { DesignContentFileUpdater } from '../design-token.renderer.interface';
|
|
2
|
+
/**
|
|
3
|
+
* Retrieve a Content Updater function for Metadata generator
|
|
4
|
+
*/
|
|
5
|
+
export declare const getMetadataStyleContentUpdater: () => DesignContentFileUpdater;
|
|
6
|
+
//# sourceMappingURL=design-token-updater.renderers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token-updater.renderers.d.ts","sourceRoot":"","sources":["../../../../../../src/core/design-token/renderers/metadata/design-token-updater.renderers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAEnF;;GAEG;AACH,eAAO,MAAM,8BAA8B,QAAO,wBAIjD,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMetadataStyleContentUpdater = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Retrieve a Content Updater function for Metadata generator
|
|
6
|
+
*/
|
|
7
|
+
const getMetadataStyleContentUpdater = () => {
|
|
8
|
+
return (variables) => {
|
|
9
|
+
return JSON.stringify(JSON.parse(`{"variables":{${variables.join(',')}}}`), null, 2);
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
exports.getMetadataStyleContentUpdater = getMetadataStyleContentUpdater;
|
|
13
|
+
//# sourceMappingURL=design-token-updater.renderers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token-updater.renderers.js","sourceRoot":"","sources":["../../../../../../src/core/design-token/renderers/metadata/design-token-updater.renderers.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACI,MAAM,8BAA8B,GAAG,GAA6B,EAAE;IAC3E,OAAO,CAAC,SAAmB,EAAE,EAAE;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvF,CAAC,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,8BAA8B,kCAIzC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TokenKeyRenderer, TokenValueRenderer } from '../../parsers/design-token-parser.interface';
|
|
2
|
+
/** Options for {@link getMetadataTokenValueRenderer} */
|
|
3
|
+
export interface MetadataTokenValueRendererOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Custom CSS Design Token value renderer
|
|
6
|
+
*/
|
|
7
|
+
cssValueRenderer?: TokenValueRenderer;
|
|
8
|
+
/**
|
|
9
|
+
* Renderer the name of the CSS Variable (without initial --)
|
|
10
|
+
*/
|
|
11
|
+
tokenVariableNameRenderer?: TokenKeyRenderer;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Retrieve the Design Token value renderer
|
|
15
|
+
* @param options
|
|
16
|
+
*/
|
|
17
|
+
export declare const getMetadataTokenValueRenderer: (options?: MetadataTokenValueRendererOptions) => TokenValueRenderer;
|
|
18
|
+
//# sourceMappingURL=design-token-value.renderers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token-value.renderers.d.ts","sourceRoot":"","sources":["../../../../../../src/core/design-token/renderers/metadata/design-token-value.renderers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgC,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAItI,wDAAwD;AACxD,MAAM,WAAW,iCAAiC;IAChD;;OAEG;IACH,gBAAgB,CAAC,EAAE,kBAAkB,CAAC;IAEtC;;OAEG;IACH,yBAAyB,CAAC,EAAE,gBAAgB,CAAC;CAC9C;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,aAAc,iCAAiC,KAAG,kBAkB3F,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMetadataTokenValueRenderer = void 0;
|
|
4
|
+
const css_1 = require("../css");
|
|
5
|
+
/**
|
|
6
|
+
* Retrieve the Design Token value renderer
|
|
7
|
+
* @param options
|
|
8
|
+
*/
|
|
9
|
+
const getMetadataTokenValueRenderer = (options) => {
|
|
10
|
+
const tokenVariableNameRenderer = options?.tokenVariableNameRenderer;
|
|
11
|
+
const cssValueRenderer = options?.cssValueRenderer || (0, css_1.getCssTokenValueRenderer)({ tokenVariableNameRenderer });
|
|
12
|
+
const renderer = (variable, variableSet) => {
|
|
13
|
+
const cssType = variable.getType(variableSet);
|
|
14
|
+
const variableValue = {
|
|
15
|
+
name: variable.getKey(tokenVariableNameRenderer),
|
|
16
|
+
defaultValue: cssValueRenderer(variable, variableSet),
|
|
17
|
+
description: variable.description,
|
|
18
|
+
references: variable.getReferencesNode(variableSet).map((node) => JSON.parse(renderer(node, variableSet))),
|
|
19
|
+
type: cssType !== 'color' ? 'string' : 'color',
|
|
20
|
+
...variable.extensions.o3rMetadata
|
|
21
|
+
};
|
|
22
|
+
return JSON.stringify(variableValue);
|
|
23
|
+
};
|
|
24
|
+
return renderer;
|
|
25
|
+
};
|
|
26
|
+
exports.getMetadataTokenValueRenderer = getMetadataTokenValueRenderer;
|
|
27
|
+
//# sourceMappingURL=design-token-value.renderers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token-value.renderers.js","sourceRoot":"","sources":["../../../../../../src/core/design-token/renderers/metadata/design-token-value.renderers.ts"],"names":[],"mappings":";;;AAEA,gCAAkD;AAelD;;;GAGG;AACI,MAAM,6BAA6B,GAAG,CAAC,OAA2C,EAAsB,EAAE;IAC/G,MAAM,yBAAyB,GAAG,OAAO,EAAE,yBAAyB,CAAC;IACrE,MAAM,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,IAAI,IAAA,8BAAwB,EAAC,EAAC,yBAAyB,EAAC,CAAC,CAAC;IAE5G,MAAM,QAAQ,GAAG,CAAC,QAAsC,EAAE,WAAsD,EAAE,EAAE;QAClH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAgB;YACjC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC;YAChD,YAAY,EAAE,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC;YACrD,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,UAAU,EAAE,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;YAC1G,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;YAC9C,GAAG,QAAQ,CAAC,UAAU,CAAC,WAAW;SACnC,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAlBW,QAAA,6BAA6B,iCAkBxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/core/design-token/renderers/metadata/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC"}
|