@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.
Files changed (99) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +255 -0
  3. package/collection.json +14 -0
  4. package/package.json +199 -0
  5. package/schemas/design-token.extensions.schema.json +121 -0
  6. package/schematics/ng-add/index.d.ts +8 -0
  7. package/schematics/ng-add/index.d.ts.map +1 -0
  8. package/schematics/ng-add/index.js +100 -0
  9. package/schematics/ng-add/schema.d.ts +10 -0
  10. package/schematics/ng-add/schema.d.ts.map +1 -0
  11. package/schematics/ng-add/schema.js +3 -0
  12. package/schematics/ng-add/schema.json +26 -0
  13. package/schematics/ng-add/templates/config.__configExtension__ +50 -0
  14. package/schematics/ng-add/templates/token.extensions.json.template +3 -0
  15. package/schematics/package.json +3 -0
  16. package/src/constants.d.mts +5 -0
  17. package/src/constants.d.mts.map +1 -0
  18. package/src/constants.mjs +5 -0
  19. package/src/constants.mjs.map +1 -0
  20. package/src/filters/target-file.filter.d.mts +34 -0
  21. package/src/filters/target-file.filter.d.mts.map +1 -0
  22. package/src/filters/target-file.filter.mjs +49 -0
  23. package/src/filters/target-file.filter.mjs.map +1 -0
  24. package/src/formats/css-formatters/default.formatter.d.mts +7 -0
  25. package/src/formats/css-formatters/default.formatter.d.mts.map +1 -0
  26. package/src/formats/css-formatters/default.formatter.mjs +19 -0
  27. package/src/formats/css-formatters/default.formatter.mjs.map +1 -0
  28. package/src/formats/css-formatters/gradients.formatter.d.mts +7 -0
  29. package/src/formats/css-formatters/gradients.formatter.d.mts.map +1 -0
  30. package/src/formats/css-formatters/gradients.formatter.mjs +32 -0
  31. package/src/formats/css-formatters/gradients.formatter.mjs.map +1 -0
  32. package/src/formats/css-formatters/interface.formatter.d.mts +13 -0
  33. package/src/formats/css-formatters/interface.formatter.d.mts.map +1 -0
  34. package/src/formats/css-formatters/interface.formatter.mjs +2 -0
  35. package/src/formats/css-formatters/interface.formatter.mjs.map +1 -0
  36. package/src/formats/css-formatters/private.formatter.d.mts +7 -0
  37. package/src/formats/css-formatters/private.formatter.d.mts.map +1 -0
  38. package/src/formats/css-formatters/private.formatter.mjs +33 -0
  39. package/src/formats/css-formatters/private.formatter.mjs.map +1 -0
  40. package/src/formats/css.format.d.mts +3 -0
  41. package/src/formats/css.format.d.mts.map +1 -0
  42. package/src/formats/css.format.mjs +60 -0
  43. package/src/formats/css.format.mjs.map +1 -0
  44. package/src/formats/metadata.format.d.mts +3 -0
  45. package/src/formats/metadata.format.d.mts.map +1 -0
  46. package/src/formats/metadata.format.mjs +71 -0
  47. package/src/formats/metadata.format.mjs.map +1 -0
  48. package/src/helpers/config-deflatten.helpers.d.mts +6 -0
  49. package/src/helpers/config-deflatten.helpers.d.mts.map +1 -0
  50. package/src/helpers/config-deflatten.helpers.mjs +46 -0
  51. package/src/helpers/config-deflatten.helpers.mjs.map +1 -0
  52. package/src/helpers/sort-by-path.sort.helpers.d.mts +8 -0
  53. package/src/helpers/sort-by-path.sort.helpers.d.mts.map +1 -0
  54. package/src/helpers/sort-by-path.sort.helpers.mjs +33 -0
  55. package/src/helpers/sort-by-path.sort.helpers.mjs.map +1 -0
  56. package/src/interfaces/extensions.interface.d.mts +56 -0
  57. package/src/interfaces/extensions.interface.d.mts.map +1 -0
  58. package/src/interfaces/extensions.interface.mjs +2 -0
  59. package/src/interfaces/extensions.interface.mjs.map +1 -0
  60. package/src/interfaces/metadata.interface.d.mts +57 -0
  61. package/src/interfaces/metadata.interface.d.mts.map +1 -0
  62. package/src/interfaces/metadata.interface.mjs +2 -0
  63. package/src/interfaces/metadata.interface.mjs.map +1 -0
  64. package/src/interfaces/style-dictionary.interface.d.mts +11 -0
  65. package/src/interfaces/style-dictionary.interface.d.mts.map +1 -0
  66. package/src/interfaces/style-dictionary.interface.mjs +2 -0
  67. package/src/interfaces/style-dictionary.interface.mjs.map +1 -0
  68. package/src/parsers/extensions.json.parser.d.mts +6 -0
  69. package/src/parsers/extensions.json.parser.d.mts.map +1 -0
  70. package/src/parsers/extensions.json.parser.mjs +19 -0
  71. package/src/parsers/extensions.json.parser.mjs.map +1 -0
  72. package/src/parsers/one-line-token.json.parser.d.mts +6 -0
  73. package/src/parsers/one-line-token.json.parser.d.mts.map +1 -0
  74. package/src/parsers/one-line-token.json.parser.mjs +17 -0
  75. package/src/parsers/one-line-token.json.parser.mjs.map +1 -0
  76. package/src/preprocessors/extensions.preprocessor.d.mts +6 -0
  77. package/src/preprocessors/extensions.preprocessor.d.mts.map +1 -0
  78. package/src/preprocessors/extensions.preprocessor.mjs +74 -0
  79. package/src/preprocessors/extensions.preprocessor.mjs.map +1 -0
  80. package/src/presets.d.mts +12 -0
  81. package/src/presets.d.mts.map +1 -0
  82. package/src/presets.mjs +33 -0
  83. package/src/presets.mjs.map +1 -0
  84. package/src/public_api.d.mts +14 -0
  85. package/src/public_api.d.mts.map +1 -0
  86. package/src/public_api.mjs +14 -0
  87. package/src/public_api.mjs.map +1 -0
  88. package/src/transform-groups/css-recommended.transform-group.d.mts +4 -0
  89. package/src/transform-groups/css-recommended.transform-group.d.mts.map +1 -0
  90. package/src/transform-groups/css-recommended.transform-group.mjs +25 -0
  91. package/src/transform-groups/css-recommended.transform-group.mjs.map +1 -0
  92. package/src/transforms/ratio.transform.d.mts +6 -0
  93. package/src/transforms/ratio.transform.d.mts.map +1 -0
  94. package/src/transforms/ratio.transform.mjs +48 -0
  95. package/src/transforms/ratio.transform.mjs.map +1 -0
  96. package/src/transforms/unit.transform.d.mts +6 -0
  97. package/src/transforms/unit.transform.d.mts.map +1 -0
  98. package/src/transforms/unit.transform.mjs +41 -0
  99. 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,6 @@
1
+ /**
2
+ * Regroup object as tree from flat map
3
+ * @param obj
4
+ */
5
+ export declare const deflatten: (obj: any) => any;
6
+ //# sourceMappingURL=config-deflatten.helpers.d.mts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=extensions.interface.mjs.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=metadata.interface.mjs.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=style-dictionary.interface.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-dictionary.interface.mjs","sourceRoot":"","sources":["../../../src/interfaces/style-dictionary.interface.mts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { Parser } from 'style-dictionary/types';
2
+ /**
3
+ * Parser for Json file to apply `$extensions` instructions on top of Design Token
4
+ */
5
+ export declare const extensionsJsonParser: Parser;
6
+ //# sourceMappingURL=extensions.json.parser.d.mts.map
@@ -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"}
@@ -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,4 @@
1
+ import type { TransformGroup } from '../interfaces/style-dictionary.interface.mjs';
2
+ /** Transform group recommended by Otter */
3
+ export declare const cssRecommendedTransformGroup: TransformGroup;
4
+ //# sourceMappingURL=css-recommended.transform-group.d.mts.map
@@ -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"}