@ama-styling/style-dictionary 12.5.0-prerelease.10
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 +255 -0
- package/collection.json +14 -0
- package/package.json +199 -0
- package/schemas/design-token.extensions.schema.json +121 -0
- package/schematics/ng-add/index.d.ts +8 -0
- package/schematics/ng-add/index.d.ts.map +1 -0
- package/schematics/ng-add/index.js +100 -0
- package/schematics/ng-add/schema.d.ts +10 -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 +26 -0
- package/schematics/ng-add/templates/config.__configExtension__ +50 -0
- package/schematics/ng-add/templates/token.extensions.json.template +3 -0
- package/schematics/package.json +3 -0
- package/src/constants.d.mts +5 -0
- package/src/constants.d.mts.map +1 -0
- package/src/constants.mjs +5 -0
- package/src/constants.mjs.map +1 -0
- package/src/filters/target-file.filter.d.mts +34 -0
- package/src/filters/target-file.filter.d.mts.map +1 -0
- package/src/filters/target-file.filter.mjs +49 -0
- package/src/filters/target-file.filter.mjs.map +1 -0
- package/src/formats/css-formatters/default.formatter.d.mts +7 -0
- package/src/formats/css-formatters/default.formatter.d.mts.map +1 -0
- package/src/formats/css-formatters/default.formatter.mjs +19 -0
- package/src/formats/css-formatters/default.formatter.mjs.map +1 -0
- package/src/formats/css-formatters/gradients.formatter.d.mts +7 -0
- package/src/formats/css-formatters/gradients.formatter.d.mts.map +1 -0
- package/src/formats/css-formatters/gradients.formatter.mjs +32 -0
- package/src/formats/css-formatters/gradients.formatter.mjs.map +1 -0
- package/src/formats/css-formatters/interface.formatter.d.mts +13 -0
- package/src/formats/css-formatters/interface.formatter.d.mts.map +1 -0
- package/src/formats/css-formatters/interface.formatter.mjs +2 -0
- package/src/formats/css-formatters/interface.formatter.mjs.map +1 -0
- package/src/formats/css-formatters/private.formatter.d.mts +7 -0
- package/src/formats/css-formatters/private.formatter.d.mts.map +1 -0
- package/src/formats/css-formatters/private.formatter.mjs +33 -0
- package/src/formats/css-formatters/private.formatter.mjs.map +1 -0
- package/src/formats/css.format.d.mts +3 -0
- package/src/formats/css.format.d.mts.map +1 -0
- package/src/formats/css.format.mjs +60 -0
- package/src/formats/css.format.mjs.map +1 -0
- package/src/formats/metadata.format.d.mts +3 -0
- package/src/formats/metadata.format.d.mts.map +1 -0
- package/src/formats/metadata.format.mjs +71 -0
- package/src/formats/metadata.format.mjs.map +1 -0
- package/src/helpers/config-deflatten.helpers.d.mts +6 -0
- package/src/helpers/config-deflatten.helpers.d.mts.map +1 -0
- package/src/helpers/config-deflatten.helpers.mjs +46 -0
- package/src/helpers/config-deflatten.helpers.mjs.map +1 -0
- package/src/helpers/sort-by-path.sort.helpers.d.mts +8 -0
- package/src/helpers/sort-by-path.sort.helpers.d.mts.map +1 -0
- package/src/helpers/sort-by-path.sort.helpers.mjs +33 -0
- package/src/helpers/sort-by-path.sort.helpers.mjs.map +1 -0
- package/src/interfaces/extensions.interface.d.mts +56 -0
- package/src/interfaces/extensions.interface.d.mts.map +1 -0
- package/src/interfaces/extensions.interface.mjs +2 -0
- package/src/interfaces/extensions.interface.mjs.map +1 -0
- package/src/interfaces/metadata.interface.d.mts +57 -0
- package/src/interfaces/metadata.interface.d.mts.map +1 -0
- package/src/interfaces/metadata.interface.mjs +2 -0
- package/src/interfaces/metadata.interface.mjs.map +1 -0
- package/src/interfaces/style-dictionary.interface.d.mts +11 -0
- package/src/interfaces/style-dictionary.interface.d.mts.map +1 -0
- package/src/interfaces/style-dictionary.interface.mjs +2 -0
- package/src/interfaces/style-dictionary.interface.mjs.map +1 -0
- package/src/parsers/extensions.json.parser.d.mts +6 -0
- package/src/parsers/extensions.json.parser.d.mts.map +1 -0
- package/src/parsers/extensions.json.parser.mjs +19 -0
- package/src/parsers/extensions.json.parser.mjs.map +1 -0
- package/src/parsers/one-line-token.json.parser.d.mts +6 -0
- package/src/parsers/one-line-token.json.parser.d.mts.map +1 -0
- package/src/parsers/one-line-token.json.parser.mjs +17 -0
- package/src/parsers/one-line-token.json.parser.mjs.map +1 -0
- package/src/preprocessors/extensions.preprocessor.d.mts +6 -0
- package/src/preprocessors/extensions.preprocessor.d.mts.map +1 -0
- package/src/preprocessors/extensions.preprocessor.mjs +74 -0
- package/src/preprocessors/extensions.preprocessor.mjs.map +1 -0
- package/src/presets.d.mts +12 -0
- package/src/presets.d.mts.map +1 -0
- package/src/presets.mjs +33 -0
- package/src/presets.mjs.map +1 -0
- package/src/public_api.d.mts +14 -0
- package/src/public_api.d.mts.map +1 -0
- package/src/public_api.mjs +14 -0
- package/src/public_api.mjs.map +1 -0
- package/src/transform-groups/css-recommended.transform-group.d.mts +4 -0
- package/src/transform-groups/css-recommended.transform-group.d.mts.map +1 -0
- package/src/transform-groups/css-recommended.transform-group.mjs +25 -0
- package/src/transform-groups/css-recommended.transform-group.mjs.map +1 -0
- package/src/transforms/ratio.transform.d.mts +6 -0
- package/src/transforms/ratio.transform.d.mts.map +1 -0
- package/src/transforms/ratio.transform.mjs +48 -0
- package/src/transforms/ratio.transform.mjs.map +1 -0
- package/src/transforms/unit.transform.d.mts +6 -0
- package/src/transforms/unit.transform.d.mts.map +1 -0
- package/src/transforms/unit.transform.mjs +41 -0
- package/src/transforms/unit.transform.mjs.map +1 -0
@@ -0,0 +1,71 @@
|
|
1
|
+
import { getReferences, sortByReference, } from 'style-dictionary/utils';
|
2
|
+
import { OTTER_NAME_PREFIX, } from '../constants.mjs';
|
3
|
+
import { getDefaultCssFormatter, } from './css-formatters/default.formatter.mjs';
|
4
|
+
export const metadataFormat = {
|
5
|
+
name: `${OTTER_NAME_PREFIX}/json/metadata`,
|
6
|
+
format: ({ dictionary, options }) => {
|
7
|
+
const { outputReferences: outRef, usesDtcg, formatting, keepPrivate } = options;
|
8
|
+
const outputReferences = outRef ?? true;
|
9
|
+
const format = 'css';
|
10
|
+
const suffix = ';';
|
11
|
+
const prefix = '--';
|
12
|
+
const separator = ':';
|
13
|
+
const commentStyle = options.formatting?.commentStyle ?? 'none';
|
14
|
+
const indentation = options.formatting?.indentation ?? '';
|
15
|
+
const { lineSeparator } = { lineSeparator: '\n', ...formatting };
|
16
|
+
const baseFormatterOptions = {
|
17
|
+
outputReferences,
|
18
|
+
outputReferenceFallbacks: false,
|
19
|
+
dictionary,
|
20
|
+
format,
|
21
|
+
formatting: {
|
22
|
+
...formatting,
|
23
|
+
suffix,
|
24
|
+
prefix,
|
25
|
+
separator,
|
26
|
+
indentation,
|
27
|
+
commentStyle
|
28
|
+
},
|
29
|
+
themeable: false,
|
30
|
+
usesDtcg
|
31
|
+
};
|
32
|
+
let allTokens = dictionary.allTokens;
|
33
|
+
const tokens = dictionary.tokens;
|
34
|
+
if (outputReferences) {
|
35
|
+
allTokens = [...allTokens].sort(sortByReference(tokens, { unfilteredTokens: dictionary.unfilteredTokens, usesDtcg }));
|
36
|
+
}
|
37
|
+
const propertyFormatter = getDefaultCssFormatter(baseFormatterOptions);
|
38
|
+
const getValueFromCssVariable = (strValue) => strValue.replace(new RegExp(`^.*?${separator}(.*)$`), '$1').trim();
|
39
|
+
const getMetadataReferences = (token) => {
|
40
|
+
const originalValue = usesDtcg ? token.original.$value : token.original.value;
|
41
|
+
const refs = getReferences(originalValue, tokens);
|
42
|
+
return refs
|
43
|
+
.map((ref) => ({
|
44
|
+
defaultValue: getValueFromCssVariable(propertyFormatter(ref)),
|
45
|
+
name: ref.name,
|
46
|
+
references: getMetadataReferences(ref)
|
47
|
+
}));
|
48
|
+
};
|
49
|
+
const metadata = allTokens
|
50
|
+
.filter(({ attributes }) => !!keepPrivate || !attributes?.private)
|
51
|
+
.map((token) => ({
|
52
|
+
token,
|
53
|
+
strValue: propertyFormatter(token)
|
54
|
+
}))
|
55
|
+
.filter(({ strValue }) => !!strValue)
|
56
|
+
.reduce((acc, { token, strValue }) => {
|
57
|
+
const cssVariable = {
|
58
|
+
name: token.name,
|
59
|
+
description: token.$description || token.comment,
|
60
|
+
type: (token.attributes?.category || token[`${usesDtcg ? '$' : ''}type`]) === 'color' ? 'color' : 'string',
|
61
|
+
defaultValue: getValueFromCssVariable(strValue),
|
62
|
+
references: getMetadataReferences(token),
|
63
|
+
...token.attributes?.o3rMetadata
|
64
|
+
};
|
65
|
+
acc.variables[token.name] = cssVariable;
|
66
|
+
return acc;
|
67
|
+
}, { variables: {} });
|
68
|
+
return JSON.stringify(metadata, null, indentation?.length || 2).replaceAll(/[\n\r]+/g, lineSeparator);
|
69
|
+
}
|
70
|
+
};
|
71
|
+
//# sourceMappingURL=metadata.format.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"metadata.format.mjs","sourceRoot":"","sources":["../../../src/formats/metadata.format.mts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"config-deflatten.helpers.d.mts","sourceRoot":"","sources":["../../../src/helpers/config-deflatten.helpers.mts"],"names":[],"mappings":"AAuBA;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,GAAG,KAAG,GAqBpC,CAAC"}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
const merge = (base, item) => {
|
2
|
+
if (base === undefined || base === null) {
|
3
|
+
return item;
|
4
|
+
}
|
5
|
+
if (typeof base !== 'object') {
|
6
|
+
if (item !== null && item !== undefined) {
|
7
|
+
throw new Error(`Fail to merge ${item} to ${base}`);
|
8
|
+
}
|
9
|
+
return item ?? base;
|
10
|
+
}
|
11
|
+
return Array.isArray(base)
|
12
|
+
? [
|
13
|
+
...base,
|
14
|
+
...item
|
15
|
+
]
|
16
|
+
: {
|
17
|
+
...item,
|
18
|
+
...Object.fromEntries(Object.entries(base)
|
19
|
+
.map(([name, value]) => ([name, merge(value, item[name])])))
|
20
|
+
};
|
21
|
+
};
|
22
|
+
/**
|
23
|
+
* Regroup object as tree from flat map
|
24
|
+
* @param obj
|
25
|
+
*/
|
26
|
+
export const deflatten = (obj) => {
|
27
|
+
if (typeof obj !== 'object' || obj === null) {
|
28
|
+
return obj;
|
29
|
+
}
|
30
|
+
if (Array.isArray(obj)) {
|
31
|
+
return obj.map((i) => deflatten(i));
|
32
|
+
}
|
33
|
+
return Object.entries(obj)
|
34
|
+
.reduce((acc, [key, value]) => {
|
35
|
+
const [first, ...tail] = key.split('.');
|
36
|
+
key = first;
|
37
|
+
if (tail.length > 0) {
|
38
|
+
value = tail
|
39
|
+
.reverse()
|
40
|
+
.reduce((node, k) => ({ [k]: node }), value);
|
41
|
+
}
|
42
|
+
acc[key] = merge(acc[key], deflatten(value));
|
43
|
+
return acc;
|
44
|
+
}, {});
|
45
|
+
};
|
46
|
+
//# sourceMappingURL=config-deflatten.helpers.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"config-deflatten.helpers.mjs","sourceRoot":"","sources":["../../../src/helpers/config-deflatten.helpers.mts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,CAAC,IAAS,EAAE,IAAS,EAAO,EAAE;IAC1C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,IAAI,IAAI,CAAC;IACtB,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACxB,CAAC,CAAC;YACA,GAAG,IAAI;YACP,GAAG,IAAI;SACR;QACD,CAAC,CAAC;YACA,GAAG,IAAI;YACP,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;iBACvC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5D;SACF,CAAC;AACN,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAQ,EAAO,EAAE;IACzC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;SACvB,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC5B,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,GAAG,GAAG,KAAK,CAAC;QACZ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,KAAK,GAAG,IAAI;iBACT,OAAO,EAAE;iBACT,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAyB,CAAC,CAAC;AAClC,CAAC,CAAC"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import type { TransformedToken } from 'style-dictionary/types';
|
2
|
+
/**
|
3
|
+
* Sort the Token based on Path
|
4
|
+
* @param tokenA
|
5
|
+
* @param tokenB
|
6
|
+
*/
|
7
|
+
export declare const sortByPath: (tokenA: TransformedToken, tokenB: TransformedToken) => 0 | 1 | -1;
|
8
|
+
//# sourceMappingURL=sort-by-path.sort.helpers.d.mts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sort-by-path.sort.helpers.d.mts","sourceRoot":"","sources":["../../../src/helpers/sort-by-path.sort.helpers.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAEhC;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,gBAAgB,EAAE,QAAQ,gBAAgB,eAwB5E,CAAC"}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
/**
|
2
|
+
* Sort the Token based on Path
|
3
|
+
* @param tokenA
|
4
|
+
* @param tokenB
|
5
|
+
*/
|
6
|
+
export const sortByPath = (tokenA, tokenB) => {
|
7
|
+
const arraySize = Math.max(tokenB.path.length, tokenA.path.length);
|
8
|
+
let i = 0;
|
9
|
+
let result = 0;
|
10
|
+
while (i < arraySize && result === 0) {
|
11
|
+
const nodeA = tokenA.path[i];
|
12
|
+
const nodeB = tokenB.path[i];
|
13
|
+
if (nodeB === undefined) {
|
14
|
+
result = 1;
|
15
|
+
}
|
16
|
+
else if (nodeA === undefined) {
|
17
|
+
result = -1;
|
18
|
+
}
|
19
|
+
else {
|
20
|
+
const nodeNumberA = Number.parseInt(nodeA, 10);
|
21
|
+
const nodeNumberB = Number.parseInt(nodeB, 10);
|
22
|
+
if (Number.isNaN(nodeNumberA) || Number.isNaN(nodeNumberB)) {
|
23
|
+
result = nodeB === nodeA ? 0 : (nodeB > nodeA ? -1 : 1);
|
24
|
+
}
|
25
|
+
else {
|
26
|
+
result = nodeNumberB === nodeNumberA ? 0 : (nodeNumberB > nodeNumberA ? -1 : 1);
|
27
|
+
}
|
28
|
+
}
|
29
|
+
i++;
|
30
|
+
}
|
31
|
+
return result;
|
32
|
+
};
|
33
|
+
//# sourceMappingURL=sort-by-path.sort.helpers.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sort-by-path.sort.helpers.mjs","sourceRoot":"","sources":["../../../src/helpers/sort-by-path.sort.helpers.mts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAwB,EAAE,MAAwB,EAAE,EAAE;IAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnE,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,MAAM,GAAe,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,SAAS,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,GAAG,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,GAAG,CAAC,CAAC,CAAC;QACd,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/C,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3D,MAAM,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QACD,CAAC,EAAE,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
import { type DesignTokenMetadata } from './metadata.interface.mjs';
|
2
|
+
/** Design Token Group Extension fields supported by the default renderer */
|
3
|
+
export interface DesignTokenGroupExtensions {
|
4
|
+
/**
|
5
|
+
* Indicate that the variable does not need to be generated.
|
6
|
+
* It is up to the generator to describe how to render private variables.
|
7
|
+
* 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.
|
8
|
+
*/
|
9
|
+
o3rPrivate?: boolean;
|
10
|
+
/**
|
11
|
+
* Indicate that the value of this token is flagged as important
|
12
|
+
* @example Css Generation of `my-var` with `o3rImportant: true`
|
13
|
+
* ```css
|
14
|
+
* :root {
|
15
|
+
* --my-var: #000 !important;
|
16
|
+
* }
|
17
|
+
* ```
|
18
|
+
*/
|
19
|
+
o3rImportant?: boolean;
|
20
|
+
/**
|
21
|
+
* Metadata specific information
|
22
|
+
* The metadata properties will be used only with the `o3r/<type>/metadata` formats
|
23
|
+
*/
|
24
|
+
o3rMetadata?: DesignTokenMetadata;
|
25
|
+
/**
|
26
|
+
* Scope applied to the generated variable according to the language
|
27
|
+
* @example Css Generation of `my-var` with `o3rScope: 'html .my-class'`
|
28
|
+
* ```css
|
29
|
+
* :root {
|
30
|
+
* html .my-class { --my-var: #000; }
|
31
|
+
* }
|
32
|
+
* ```
|
33
|
+
*/
|
34
|
+
o3rScope?: string;
|
35
|
+
/**
|
36
|
+
* Convert a numeric value from the specified unit to the new unit.
|
37
|
+
* It will add a unit to the token with type "number" for which the unit is not specified.
|
38
|
+
* In case of complex type (such as shadow, transition, etc...), the unit will be applied to all numeric types in it.
|
39
|
+
*/
|
40
|
+
o3rUnit?: string;
|
41
|
+
/**
|
42
|
+
* Ratio to apply to previous value.
|
43
|
+
* The ratio will be applied only on token with "number" type or on the first numbers determined in "string" like types.
|
44
|
+
* In case of complex type (such as shadow, transition, etc...), the ratio will be applied to all numeric types in it.
|
45
|
+
*/
|
46
|
+
o3rRatio?: number;
|
47
|
+
/**
|
48
|
+
* Indicate that the Token is expected to be overridden by external rules
|
49
|
+
* This is converted to the Style Dictionary {@link https://styledictionary.com/info/tokens/#design-token-attributes | themeable attribute}.
|
50
|
+
*/
|
51
|
+
o3rExpectOverride?: boolean;
|
52
|
+
}
|
53
|
+
/** Design Token Extension fields supported by the default renderer */
|
54
|
+
export interface DesignTokenExtensions extends DesignTokenGroupExtensions {
|
55
|
+
}
|
56
|
+
//# sourceMappingURL=extensions.interface.d.mts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"extensions.interface.d.mts","sourceRoot":"","sources":["../../../src/interfaces/extensions.interface.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACzB,MAAM,0BAA0B,CAAC;AAElC,4EAA4E;AAC5E,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,sEAAsE;AACtE,MAAM,WAAW,qBAAsB,SAAQ,0BAA0B;CACxE"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"extensions.interface.mjs","sourceRoot":"","sources":["../../../src/interfaces/extensions.interface.mts"],"names":[],"mappings":""}
|
@@ -0,0 +1,57 @@
|
|
1
|
+
/**
|
2
|
+
* Unique identifier of an item in the extracted metadata
|
3
|
+
* Note: This the duplication of {@link import('@o3r/core').ItemIdentifier} as its import is not supported as Node16+ module
|
4
|
+
* TODO: Remove this interface when #2885 is fixed
|
5
|
+
*/
|
6
|
+
export interface ItemIdentifier {
|
7
|
+
/**
|
8
|
+
* Name of the library where the item is originally from
|
9
|
+
*/
|
10
|
+
library: string;
|
11
|
+
/**
|
12
|
+
* Name of the metadata item
|
13
|
+
*/
|
14
|
+
name: string;
|
15
|
+
}
|
16
|
+
/** Metadata information added in the design token extension for Metadata extraction */
|
17
|
+
export interface DesignTokenMetadata {
|
18
|
+
/** List of tags */
|
19
|
+
tags?: string[];
|
20
|
+
/** Description of the variable */
|
21
|
+
label?: string;
|
22
|
+
/** Name of a group of variables */
|
23
|
+
category?: string;
|
24
|
+
/** Component reference if the variable is linked to one */
|
25
|
+
component?: ItemIdentifier;
|
26
|
+
}
|
27
|
+
/** CSS Variable possible types */
|
28
|
+
export type CssVariableType = 'string' | 'color';
|
29
|
+
/** Metadata for a CSS Variable */
|
30
|
+
export interface CssVariable {
|
31
|
+
/** Name of the variable */
|
32
|
+
name: string;
|
33
|
+
/** Default value of the variable */
|
34
|
+
defaultValue: string;
|
35
|
+
/** References of the variable */
|
36
|
+
references?: CssVariable[];
|
37
|
+
/** Tags of the variable */
|
38
|
+
tags?: string[];
|
39
|
+
/** Description of the variable */
|
40
|
+
description?: string;
|
41
|
+
/** Description of the variable */
|
42
|
+
label?: string;
|
43
|
+
/** Type of the variable */
|
44
|
+
type?: CssVariableType;
|
45
|
+
/** Name of a group of variables */
|
46
|
+
category?: string;
|
47
|
+
/** component reference if the variable is linked to one */
|
48
|
+
component?: ItemIdentifier;
|
49
|
+
}
|
50
|
+
/** Style Metadata map */
|
51
|
+
export interface CssMetadata {
|
52
|
+
/** Variables' dictionary */
|
53
|
+
variables: {
|
54
|
+
[name: string]: CssVariable;
|
55
|
+
};
|
56
|
+
}
|
57
|
+
//# sourceMappingURL=metadata.interface.d.mts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"metadata.interface.d.mts","sourceRoot":"","sources":["../../../src/interfaces/metadata.interface.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,uFAAuF;AACvF,MAAM,WAAW,mBAAmB;IAClC,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,kCAAkC;AAClC,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEjD,kCAAkC;AAClC,MAAM,WAAW,WAAW;IAC1B,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;IAC3B,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,yBAAyB;AACzB,MAAM,WAAW,WAAW;IAC1B,4BAA4B;IAC5B,SAAS,EAAE;QACT,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;KAC7B,CAAC;CACH"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"metadata.interface.mjs","sourceRoot":"","sources":["../../../src/interfaces/metadata.interface.mts"],"names":[],"mappings":""}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
/**
|
2
|
+
* Style Dictionary Transform Group interface
|
3
|
+
* TODO: rely on the Style Dictionary type when available
|
4
|
+
*/
|
5
|
+
export interface TransformGroup {
|
6
|
+
/** Name of the transform group */
|
7
|
+
name: string;
|
8
|
+
/** List of transform part of it */
|
9
|
+
transforms: string[];
|
10
|
+
}
|
11
|
+
//# sourceMappingURL=style-dictionary.interface.d.mts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"style-dictionary.interface.d.mts","sourceRoot":"","sources":["../../../src/interfaces/style-dictionary.interface.mts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"style-dictionary.interface.mjs","sourceRoot":"","sources":["../../../src/interfaces/style-dictionary.interface.mts"],"names":[],"mappings":""}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"extensions.json.parser.d.mts","sourceRoot":"","sources":["../../../src/parsers/extensions.json.parser.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACP,MAAM,wBAAwB,CAAC;AAShC;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAYlC,CAAC"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { OTTER_EXTENSIONS_NODE_NAME, OTTER_NAME_PREFIX, } from '../constants.mjs';
|
2
|
+
import { deflatten, } from '../helpers/config-deflatten.helpers.mjs';
|
3
|
+
/**
|
4
|
+
* Parser for Json file to apply `$extensions` instructions on top of Design Token
|
5
|
+
*/
|
6
|
+
export const extensionsJsonParser = {
|
7
|
+
name: `${OTTER_NAME_PREFIX}/json-parser/extensions`,
|
8
|
+
pattern: /\.extensions\.json$/,
|
9
|
+
parser: ({ contents }) => {
|
10
|
+
const obj = JSON.parse(contents);
|
11
|
+
if (obj.$schema) {
|
12
|
+
delete obj.$schema;
|
13
|
+
}
|
14
|
+
return {
|
15
|
+
[OTTER_EXTENSIONS_NODE_NAME]: deflatten(obj)
|
16
|
+
};
|
17
|
+
}
|
18
|
+
};
|
19
|
+
//# sourceMappingURL=extensions.json.parser.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"extensions.json.parser.mjs","sourceRoot":"","sources":["../../../src/parsers/extensions.json.parser.mts"],"names":[],"mappings":"AAGA,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,GACV,MAAM,yCAAyC,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAW;IAC1C,IAAI,EAAE,GAAG,iBAAiB,yBAAyB;IACnD,OAAO,EAAE,qBAAqB;IAC9B,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;QACD,OAAO;YACL,CAAC,0BAA0B,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC;SAC7C,CAAC;IACJ,CAAC;CACF,CAAC"}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import type { Parser } from 'style-dictionary/types';
|
2
|
+
/**
|
3
|
+
* Parser for Json file to allow the dot notation Token (ex: `a.b: {}` instead of `a: {b: {} }`)
|
4
|
+
*/
|
5
|
+
export declare const oneLineTokenJsonParser: Parser;
|
6
|
+
//# sourceMappingURL=one-line-token.json.parser.d.mts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"one-line-token.json.parser.d.mts","sourceRoot":"","sources":["../../../src/parsers/one-line-token.json.parser.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACP,MAAM,wBAAwB,CAAC;AAQhC;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAUpC,CAAC"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { OTTER_NAME_PREFIX, } from '../constants.mjs';
|
2
|
+
import { deflatten, } from '../helpers/config-deflatten.helpers.mjs';
|
3
|
+
/**
|
4
|
+
* Parser for Json file to allow the dot notation Token (ex: `a.b: {}` instead of `a: {b: {} }`)
|
5
|
+
*/
|
6
|
+
export const oneLineTokenJsonParser = {
|
7
|
+
name: `${OTTER_NAME_PREFIX}/json-parser/one-line-token`,
|
8
|
+
pattern: /\.json$/,
|
9
|
+
parser: ({ contents }) => {
|
10
|
+
const obj = JSON.parse(contents);
|
11
|
+
if (obj.$schema) {
|
12
|
+
delete obj.$schema;
|
13
|
+
}
|
14
|
+
return deflatten(obj);
|
15
|
+
}
|
16
|
+
};
|
17
|
+
//# sourceMappingURL=one-line-token.json.parser.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"one-line-token.json.parser.mjs","sourceRoot":"","sources":["../../../src/parsers/one-line-token.json.parser.mts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,GACV,MAAM,yCAAyC,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAW;IAC5C,IAAI,EAAE,GAAG,iBAAiB,6BAA6B;IACvD,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;QACD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;CACF,CAAC"}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import type { Preprocessor } from 'style-dictionary/types';
|
2
|
+
/**
|
3
|
+
* Pre-processor to add the support of the `$extensions` instructions in the Token (or dedicated `extensions.json` file)
|
4
|
+
*/
|
5
|
+
export declare const extensionPropagatePreprocessor: Preprocessor;
|
6
|
+
//# sourceMappingURL=extensions.preprocessor.d.mts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"extensions.preprocessor.d.mts","sourceRoot":"","sources":["../../../src/preprocessors/extensions.preprocessor.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,YAAY,EAEb,MAAM,wBAAwB,CAAC;AAwDhC;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,YA0B5C,CAAC"}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import { OTTER_EXTENSIONS_NODE_NAME, OTTER_NAME_PREFIX, } from '../constants.mjs';
|
2
|
+
const isDesignToken = (token, usesDtcg) => {
|
3
|
+
return typeof (token.isSource ?? token[`${usesDtcg ? '$' : ''}value`]) !== 'undefined';
|
4
|
+
};
|
5
|
+
const mergeExtensions = (exts) => {
|
6
|
+
const extensions = exts.filter((e) => !!e);
|
7
|
+
return extensions.length > 0
|
8
|
+
? extensions.reduce((acc, ext) => {
|
9
|
+
return {
|
10
|
+
...acc,
|
11
|
+
...ext,
|
12
|
+
o3rMetadata: acc?.o3rMetadata || ext?.o3rMetadata
|
13
|
+
? {
|
14
|
+
...acc?.o3rMetadata,
|
15
|
+
...ext?.o3rMetadata
|
16
|
+
}
|
17
|
+
: undefined
|
18
|
+
};
|
19
|
+
}, {})
|
20
|
+
: undefined;
|
21
|
+
};
|
22
|
+
const getNode = (ext, path) => {
|
23
|
+
const [node, ...tail] = path;
|
24
|
+
if (!node) {
|
25
|
+
return ext;
|
26
|
+
}
|
27
|
+
if (!ext || !ext[node]) {
|
28
|
+
return undefined;
|
29
|
+
}
|
30
|
+
return getNode(ext[node], tail);
|
31
|
+
};
|
32
|
+
/**
|
33
|
+
* The purpose of this function is to map Style Dictionary built-in supported properties to the corresponding Otter `$extensions` properties.
|
34
|
+
* @param token Transformed token with Otter $extensions properties
|
35
|
+
*/
|
36
|
+
const convertOtterNotationToToken = (token) => {
|
37
|
+
token.themeable ??= token.attributes?.o3rExpectOverride;
|
38
|
+
if (token.attributes) {
|
39
|
+
token.attributes.private ??= token.attributes.o3rPrivate;
|
40
|
+
}
|
41
|
+
return token;
|
42
|
+
};
|
43
|
+
/**
|
44
|
+
* Pre-processor to add the support of the `$extensions` instructions in the Token (or dedicated `extensions.json` file)
|
45
|
+
*/
|
46
|
+
export const extensionPropagatePreprocessor = {
|
47
|
+
name: `${OTTER_NAME_PREFIX}/pre-processor/extensions`,
|
48
|
+
preprocessor: (dictionary, options) => {
|
49
|
+
const usesDtcg = options.usesDtcg ?? true;
|
50
|
+
const overrideExtensions = dictionary[OTTER_EXTENSIONS_NODE_NAME];
|
51
|
+
if (dictionary[OTTER_EXTENSIONS_NODE_NAME]) {
|
52
|
+
delete dictionary[OTTER_EXTENSIONS_NODE_NAME];
|
53
|
+
}
|
54
|
+
const rec = (token, path = [], extensions) => {
|
55
|
+
const overrideExtension = getNode(overrideExtensions, path)?.$extensions;
|
56
|
+
if (isDesignToken(token, usesDtcg)) {
|
57
|
+
token.attributes = mergeExtensions([token.attributes, ...(extensions ? [extensions] : []), overrideExtension, ...(usesDtcg ? [token.$extensions] : [])]);
|
58
|
+
return convertOtterNotationToToken(token);
|
59
|
+
}
|
60
|
+
else if (typeof token === 'object') {
|
61
|
+
return Object.fromEntries(Object.entries(token)
|
62
|
+
.map(([name, value]) => ([
|
63
|
+
name,
|
64
|
+
rec(value, [...path, name], mergeExtensions(usesDtcg ? [extensions, overrideExtension, value.$extensions] : [extensions, overrideExtension]))
|
65
|
+
])));
|
66
|
+
}
|
67
|
+
else {
|
68
|
+
return token;
|
69
|
+
}
|
70
|
+
};
|
71
|
+
return rec(dictionary);
|
72
|
+
}
|
73
|
+
};
|
74
|
+
//# sourceMappingURL=extensions.preprocessor.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"extensions.preprocessor.mjs","sourceRoot":"","sources":["../../../src/preprocessors/extensions.preprocessor.mts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import StyleDictionary from 'style-dictionary';
|
2
|
+
/**
|
3
|
+
* Register Otter hooks
|
4
|
+
* @param styleDictionary
|
5
|
+
*/
|
6
|
+
export declare const register: (styleDictionary?: StyleDictionary) => void;
|
7
|
+
/** Base configuration for Otter Extension */
|
8
|
+
export declare const baseConfig: {
|
9
|
+
readonly preprocessors: ["o3r/pre-processor/extensions"];
|
10
|
+
readonly parsers: ["o3r/json-parser/one-line-token", "o3r/json-parser/extensions"];
|
11
|
+
};
|
12
|
+
//# sourceMappingURL=presets.d.mts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"presets.d.mts","sourceRoot":"","sources":["../../src/presets.mts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,kBAAkB,CAAC;AA6B/C;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,kBAAkB,eAAe,SAUzD,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,UAAU;;;CAMI,CAAC"}
|
package/src/presets.mjs
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
import StyleDictionary from 'style-dictionary';
|
2
|
+
import { cssFormat, } from './formats/css.format.mjs';
|
3
|
+
import { metadataFormat, } from './formats/metadata.format.mjs';
|
4
|
+
import { extensionsJsonParser, } from './parsers/extensions.json.parser.mjs';
|
5
|
+
import { oneLineTokenJsonParser, } from './parsers/one-line-token.json.parser.mjs';
|
6
|
+
import { extensionPropagatePreprocessor, } from './preprocessors/extensions.preprocessor.mjs';
|
7
|
+
import { cssRecommendedTransformGroup, } from './transform-groups/css-recommended.transform-group.mjs';
|
8
|
+
import { ratioTransform, } from './transforms/ratio.transform.mjs';
|
9
|
+
import { unitTransform, } from './transforms/unit.transform.mjs';
|
10
|
+
/**
|
11
|
+
* Register Otter hooks
|
12
|
+
* @param styleDictionary
|
13
|
+
*/
|
14
|
+
export const register = (styleDictionary) => {
|
15
|
+
const sd = styleDictionary || StyleDictionary;
|
16
|
+
sd.registerFormat(cssFormat);
|
17
|
+
sd.registerFormat(metadataFormat);
|
18
|
+
sd.registerParser(extensionsJsonParser);
|
19
|
+
sd.registerParser(oneLineTokenJsonParser);
|
20
|
+
sd.registerPreprocessor(extensionPropagatePreprocessor);
|
21
|
+
sd.registerTransform(ratioTransform);
|
22
|
+
sd.registerTransform(unitTransform);
|
23
|
+
sd.registerTransformGroup(cssRecommendedTransformGroup);
|
24
|
+
};
|
25
|
+
/** Base configuration for Otter Extension */
|
26
|
+
export const baseConfig = {
|
27
|
+
preprocessors: ['o3r/pre-processor/extensions'],
|
28
|
+
parsers: [
|
29
|
+
'o3r/json-parser/one-line-token',
|
30
|
+
'o3r/json-parser/extensions'
|
31
|
+
]
|
32
|
+
};
|
33
|
+
//# sourceMappingURL=presets.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"presets.mjs","sourceRoot":"","sources":["../../src/presets.mts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAI/C,OAAO,EACL,SAAS,GACV,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,cAAc,GACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,oBAAoB,GACrB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,sBAAsB,GACvB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,8BAA8B,GAC/B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,4BAA4B,GAC7B,MAAM,wDAAwD,CAAC;AAChE,OAAO,EACL,cAAc,GACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,aAAa,GACd,MAAM,iCAAiC,CAAC;AAEzC;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,eAAiC,EAAE,EAAE;IAC5D,MAAM,EAAE,GAAG,eAAe,IAAI,eAAe,CAAC;IAC9C,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC7B,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAClC,EAAE,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACxC,EAAE,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAC1C,EAAE,CAAC,oBAAoB,CAAC,8BAA8B,CAAC,CAAC;IACxD,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IACrC,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACpC,EAAE,CAAC,sBAAsB,CAAC,4BAA4B,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF,6CAA6C;AAC7C,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,aAAa,EAAE,CAAC,8BAA8B,CAAC;IAC/C,OAAO,EAAE;QACP,gCAAgC;QAChC,4BAA4B;KAC7B;CACwB,CAAC"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
export * from './constants.mjs';
|
2
|
+
export * from './interfaces/extensions.interface.mjs';
|
3
|
+
export * from './interfaces/metadata.interface.mjs';
|
4
|
+
export * from './interfaces/style-dictionary.interface.mjs';
|
5
|
+
export * from './presets.mjs';
|
6
|
+
export * from './filters/target-file.filter.mjs';
|
7
|
+
export * from './formats/css.format.mjs';
|
8
|
+
export * from './parsers/extensions.json.parser.mjs';
|
9
|
+
export * from './parsers/one-line-token.json.parser.mjs';
|
10
|
+
export * from './preprocessors/extensions.preprocessor.mjs';
|
11
|
+
export * from './transform-groups/css-recommended.transform-group.mjs';
|
12
|
+
export * from './transforms/ratio.transform.mjs';
|
13
|
+
export * from './transforms/unit.transform.mjs';
|
14
|
+
//# sourceMappingURL=public_api.d.mts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"public_api.d.mts","sourceRoot":"","sources":["../../src/public_api.mts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,wDAAwD,CAAC;AACvE,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
export * from './constants.mjs';
|
2
|
+
export * from './interfaces/extensions.interface.mjs';
|
3
|
+
export * from './interfaces/metadata.interface.mjs';
|
4
|
+
export * from './interfaces/style-dictionary.interface.mjs';
|
5
|
+
export * from './presets.mjs';
|
6
|
+
export * from './filters/target-file.filter.mjs';
|
7
|
+
export * from './formats/css.format.mjs';
|
8
|
+
export * from './parsers/extensions.json.parser.mjs';
|
9
|
+
export * from './parsers/one-line-token.json.parser.mjs';
|
10
|
+
export * from './preprocessors/extensions.preprocessor.mjs';
|
11
|
+
export * from './transform-groups/css-recommended.transform-group.mjs';
|
12
|
+
export * from './transforms/ratio.transform.mjs';
|
13
|
+
export * from './transforms/unit.transform.mjs';
|
14
|
+
//# sourceMappingURL=public_api.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"public_api.mjs","sourceRoot":"","sources":["../../src/public_api.mts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,wDAAwD,CAAC;AACvE,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"css-recommended.transform-group.d.mts","sourceRoot":"","sources":["../../../src/transform-groups/css-recommended.transform-group.mts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,cAAc,EACf,MAAM,8CAA8C,CAAC;AAEtD,2CAA2C;AAC3C,eAAO,MAAM,4BAA4B,EAAE,cAoB1C,CAAC"}
|