@o3r/style-dictionary 12.2.0-prerelease.6 → 12.2.0-prerelease.7

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 (30) hide show
  1. package/package.json +10 -10
  2. package/schematics/ng-add/templates/config.__configExtension__ +16 -12
  3. package/src/filters/target-file.filter.d.mts +1 -1
  4. package/src/filters/target-file.filter.d.mts.map +1 -1
  5. package/src/filters/target-file.filter.mjs +11 -4
  6. package/src/filters/target-file.filter.mjs.map +1 -1
  7. package/src/formats/css-formatters/default.formatter.d.mts +7 -0
  8. package/src/formats/css-formatters/default.formatter.d.mts.map +1 -0
  9. package/src/formats/css-formatters/default.formatter.mjs +19 -0
  10. package/src/formats/css-formatters/default.formatter.mjs.map +1 -0
  11. package/src/formats/css-formatters/gradients.formatter.d.mts +7 -0
  12. package/src/formats/css-formatters/gradients.formatter.d.mts.map +1 -0
  13. package/src/formats/css-formatters/gradients.formatter.mjs +32 -0
  14. package/src/formats/css-formatters/gradients.formatter.mjs.map +1 -0
  15. package/src/formats/css-formatters/interface.formatter.d.mts +13 -0
  16. package/src/formats/css-formatters/interface.formatter.d.mts.map +1 -0
  17. package/src/formats/css-formatters/interface.formatter.mjs +2 -0
  18. package/src/formats/css-formatters/interface.formatter.mjs.map +1 -0
  19. package/src/formats/css-formatters/private.formatter.d.mts +7 -0
  20. package/src/formats/css-formatters/private.formatter.d.mts.map +1 -0
  21. package/src/formats/css-formatters/private.formatter.mjs +33 -0
  22. package/src/formats/css-formatters/private.formatter.mjs.map +1 -0
  23. package/src/formats/css.format.d.mts.map +1 -1
  24. package/src/formats/css.format.mjs +20 -36
  25. package/src/formats/css.format.mjs.map +1 -1
  26. package/src/formats/metadata.format.d.mts.map +1 -1
  27. package/src/formats/metadata.format.mjs +14 -28
  28. package/src/formats/metadata.format.mjs.map +1 -1
  29. package/src/transforms/unit.transform.mjs +1 -1
  30. package/src/transforms/unit.transform.mjs.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o3r/style-dictionary",
3
- "version": "12.2.0-prerelease.6",
3
+ "version": "12.2.0-prerelease.7",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -42,13 +42,13 @@
42
42
  "dependencies": {
43
43
  "@angular-devkit/architect": "~0.1902.0",
44
44
  "@angular-devkit/schematics": "~19.2.0",
45
- "@o3r/schematics": "^12.2.0-prerelease.6",
45
+ "@o3r/schematics": "^12.2.0-prerelease.7",
46
46
  "@schematics/angular": "~19.2.0",
47
47
  "tslib": "^2.6.2"
48
48
  },
49
49
  "peerDependencies": {
50
- "@o3r/core": "^12.2.0-prerelease.6",
51
- "@o3r/telemetry": "^12.2.0-prerelease.6",
50
+ "@o3r/core": "^12.2.0-prerelease.7",
51
+ "@o3r/telemetry": "^12.2.0-prerelease.7",
52
52
  "style-dictionary": "^4.3.2",
53
53
  "type-fest": "^4.30.1"
54
54
  },
@@ -82,12 +82,12 @@
82
82
  "@nx/eslint-plugin": "~20.4.0",
83
83
  "@nx/jest": "~20.4.0",
84
84
  "@nx/js": "~20.4.0",
85
- "@o3r/build-helpers": "^12.2.0-prerelease.6",
86
- "@o3r/core": "^12.2.0-prerelease.6",
87
- "@o3r/eslint-plugin": "^12.2.0-prerelease.6",
88
- "@o3r/schematics": "^12.2.0-prerelease.6",
89
- "@o3r/telemetry": "^12.2.0-prerelease.6",
90
- "@o3r/test-helpers": "^12.2.0-prerelease.6",
85
+ "@o3r/build-helpers": "^12.2.0-prerelease.7",
86
+ "@o3r/core": "^12.2.0-prerelease.7",
87
+ "@o3r/eslint-plugin": "^12.2.0-prerelease.7",
88
+ "@o3r/schematics": "^12.2.0-prerelease.7",
89
+ "@o3r/telemetry": "^12.2.0-prerelease.7",
90
+ "@o3r/test-helpers": "^12.2.0-prerelease.7",
91
91
  "@schematics/angular": "~19.2.0",
92
92
  "@stylistic/eslint-plugin": "~3.1.0",
93
93
  "@types/jest": "~29.5.2",
@@ -8,36 +8,40 @@ const fileRules = {
8
8
 
9
9
  };
10
10
 
11
+ /** @type {import('style-dictionary').Config} */
11
12
  export default {
12
13
  ...baseConfig, // Use basic Otter configuration setup
13
14
  usesDtcg: true, // Use Design Token Standard format
14
15
 
15
- source: [
16
- // Design Token files
17
- '*.tokens.json',
16
+ source: [
17
+ // Design Token files
18
+ '*.tokens.json',
18
19
 
19
- // Custom application extension setup
20
- 'token.extensions.json'
21
- ],
20
+ // Custom application extension setup
21
+ 'token.extensions.json'
22
+ ],
22
23
 
23
- platforms: {
24
+ platforms: {
24
25
  css: {
25
26
  options: {
26
27
  outputReferences: true
27
28
  },
28
- transformGroup: 'css',
29
+ transformGroup: 'o3r/css/recommended',
29
30
  files: [
30
- ...getTargetFiles(fileRules, { format: 'o3r/css/variable' }),
31
+ ...getTargetFiles(fileRules, {
32
+ format: 'o3r/css/variable',
33
+ defaultFile: 'default.tokens.css' // default CSS file
34
+ }),
31
35
 
32
- // Default CSS output:
33
- { destination: 'default.tokens.css', format: 'o3r/css/variable' }
36
+ // All CSS outputted in a single file:
37
+ { destination: 'all.tokens.css', format: 'o3r/css/variable' }
34
38
  ]
35
39
  },
36
40
  cms: {
37
41
  options: {
38
42
  outputReferences: true
39
43
  },
40
- transformGroup: 'css',
44
+ transformGroup: 'o3r/css/recommended',
41
45
  files: [
42
46
  { destination: 'style.metadata.json', format: 'o3r/json/metadata' }
43
47
  ]
@@ -6,7 +6,7 @@ interface TargetFileOptions {
6
6
  /** Root path to calculate the target file */
7
7
  rootPath?: string;
8
8
  /** Default file if not matching any rule */
9
- defaultTargetFile?: string;
9
+ defaultFile?: string;
10
10
  }
11
11
  /**
12
12
  * Legacy configuration to support inputs from @o3r/design templates
@@ -1 +1 @@
1
- {"version":3,"file":"target-file.filter.d.mts","sourceRoot":"","sources":["../../../src/filters/target-file.filter.mts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACT,MAAM,wBAAwB,CAAC;AAKhC,kCAAkC;AAClC,UAAU,iBAAiB;IACzB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,UAAU,gBAAiB,SAAQ,YAAY;IAC7C,+BAA+B;IAC/B,WAAW,EAAE;QACX,oDAAoD;QACpD,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,mDAAmD;AACnD,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAAC;CAC1D;AAsBD;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,WAAW,YAAY,EAAE,UAAU,iBAAiB,KAAG,IAAI,EAoBzF,CAAC"}
1
+ {"version":3,"file":"target-file.filter.d.mts","sourceRoot":"","sources":["../../../src/filters/target-file.filter.mts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACT,MAAM,wBAAwB,CAAC;AAKhC,kCAAkC;AAClC,UAAU,iBAAiB;IACzB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,UAAU,gBAAiB,SAAQ,YAAY;IAC7C,+BAA+B;IAC/B,WAAW,EAAE;QACX,oDAAoD;QACpD,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,mDAAmD;AACnD,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAAC;CAC1D;AAsBD;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,WAAW,YAAY,EAAE,UAAU,iBAAiB,KAAG,IAAI,EAgCzF,CAAC"}
@@ -1,4 +1,4 @@
1
- import { resolve, } from 'node:path';
1
+ import { normalize, resolve, } from 'node:path';
2
2
  import { deflatten, } from '../helpers/config-deflatten.helpers.mjs';
3
3
  const isLegacyConfig = (config) => typeof config.$extensions?.o3rTargetFile === 'string';
4
4
  const getPathMap = (rule, path = [], map = new Map()) => {
@@ -25,8 +25,9 @@ const getPathMap = (rule, path = [], map = new Map()) => {
25
25
  export const getTargetFiles = (fileRules, options) => {
26
26
  const flatterRules = deflatten(fileRules);
27
27
  const fileMap = getPathMap(flatterRules);
28
+ const fileMapEntries = [...fileMap.entries()];
28
29
  return [
29
- ...[...fileMap.entries()]
30
+ ...fileMapEntries
30
31
  .map(([filePath, nodes]) => {
31
32
  return {
32
33
  destination: options?.rootPath ? resolve(options.rootPath, filePath) : filePath,
@@ -34,8 +35,14 @@ export const getTargetFiles = (fileRules, options) => {
34
35
  filter: (token) => nodes.some((path) => path.every((item, idx) => token.path[idx] === item))
35
36
  };
36
37
  }),
37
- ...(options?.defaultTargetFile
38
- ? [{ destination: options.rootPath ? resolve(options.rootPath, options.defaultTargetFile) : options.defaultTargetFile, format: options.format }]
38
+ ...(options?.defaultFile
39
+ ? [{
40
+ destination: options.rootPath ? resolve(options.rootPath, options.defaultFile) : options.defaultFile,
41
+ format: options?.format,
42
+ filter: (token) => !fileMapEntries
43
+ .filter(([filePath]) => normalize(filePath) !== normalize(options.defaultFile))
44
+ .some(([, nodes]) => nodes.some((path) => path.every((item, idx) => token.path[idx] === item)))
45
+ }]
39
46
  : [])
40
47
  ];
41
48
  };
@@ -1 +1 @@
1
- {"version":3,"file":"target-file.filter.mjs","sourceRoot":"","sources":["../../../src/filters/target-file.filter.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,GACR,MAAM,WAAW,CAAC;AAKnB,OAAO,EACL,SAAS,GACV,MAAM,yCAAyC,CAAC;AA8BjD,MAAM,cAAc,GAAG,CAAC,MAAoB,EAA8B,EAAE,CAAC,OAAQ,MAAM,CAAC,WAAmB,EAAE,aAAa,KAAK,QAAQ,CAAC;AAE5I,MAAM,UAAU,GAAG,CAAC,IAAkB,EAAE,OAAiB,EAAE,EAAE,MAA+B,IAAI,GAAG,EAAE,EAA2B,EAAE;IAChI,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACpG,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SACxB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC;SAC1C,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QAC7B,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;QACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;YACzD,OAAO,GAAG,CAAC;QACb,CAAC;QAED,OAAO,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC,EAAE,GAAG,CAAC,CAAC;AACZ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAuB,EAAE,OAA2B,EAAU,EAAE;IAC7F,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAEzC,OAAO;QACL,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;aACtB,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAQ,EAAE;YAC/B,OAAO;gBACL,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;gBAC/E,MAAM,EAAE,OAAO,EAAE,MAAM;gBACvB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAClB,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CACpD;aACJ,CAAC;QACJ,CAAC,CAAC;QACJ,GAAG,CAAC,OAAO,EAAE,iBAAiB;YAC5B,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;YAChJ,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"target-file.filter.mjs","sourceRoot":"","sources":["../../../src/filters/target-file.filter.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { FormatterFactory } from './interface.formatter.mjs';
2
+ /**
3
+ * Get default CSS Formatter
4
+ * @param options Options
5
+ */
6
+ export declare const getDefaultCssFormatter: FormatterFactory;
7
+ //# sourceMappingURL=default.formatter.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.formatter.d.mts","sourceRoot":"","sources":["../../../../src/formats/css-formatters/default.formatter.mts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGV,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AAKnC;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,gBAkBpC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { createPropertyFormatter, } from 'style-dictionary/utils';
2
+ import { createGradientFormatter, } from './gradients.formatter.mjs';
3
+ import { createPrivateFormatter, } from './private.formatter.mjs';
4
+ /**
5
+ * Get default CSS Formatter
6
+ * @param options Options
7
+ */
8
+ export const getDefaultCssFormatter = (options) => {
9
+ const formatters = [];
10
+ const propertyFormatter = (token) => formatters.reduce((acc, formatter) => formatter(token, acc), undefined);
11
+ const formatterOptions = {
12
+ ...options,
13
+ formatter: propertyFormatter
14
+ };
15
+ // formatter list to chain
16
+ formatters.push(createPropertyFormatter(formatterOptions), createGradientFormatter(formatterOptions), createPrivateFormatter(formatterOptions));
17
+ return propertyFormatter;
18
+ };
19
+ //# sourceMappingURL=default.formatter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.formatter.mjs","sourceRoot":"","sources":["../../../../src/formats/css-formatters/default.formatter.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EACL,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAqB,CAAC,OAAO,EAAE,EAAE;IAClE,MAAM,UAAU,GAAqB,EAAE,CAAC;IACxC,MAAM,iBAAiB,GAAc,CAAC,KAAK,EAAE,EAAE,CAC7C,UAAU,CAAC,MAAM,CAAC,CAAC,GAAuB,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,SAAS,CAAE,CAAC;IAE/F,MAAM,gBAAgB,GAAqB;QACzC,GAAG,OAAO;QACV,SAAS,EAAE,iBAAiB;KAC7B,CAAC;IAEF,0BAA0B;IAC1B,UAAU,CAAC,IAAI,CACb,uBAAuB,CAAC,gBAAgB,CAAC,EACzC,uBAAuB,CAAC,gBAAgB,CAAC,EACzC,sBAAsB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { FormatterFactory } from './interface.formatter.mjs';
2
+ /**
3
+ * Retrieve a formatter for a Token with Gradient type
4
+ * @param options Option of gradient formatter generator
5
+ */
6
+ export declare const createGradientFormatter: FormatterFactory;
7
+ //# sourceMappingURL=gradients.formatter.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gradients.formatter.d.mts","sourceRoot":"","sources":["../../../../src/formats/css-formatters/gradients.formatter.mts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AAqBnC;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,gBA4BrC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { getReferences, } from 'style-dictionary/utils';
2
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string -- get the value of serialized object
3
+ const objectString = new Object().toString();
4
+ /**
5
+ * Retrieve a formatter for a Token with Gradient type
6
+ * @param options Option of gradient formatter generator
7
+ */
8
+ export const createGradientFormatter = (options) => {
9
+ const tokens = options.dictionary.tokens;
10
+ const prefix = options.formatting?.prefix ?? '--';
11
+ return (token, str) => {
12
+ const type = options.usesDtcg ? token.$type : token.type;
13
+ if (!str || !str.includes(objectString) || type !== 'gradient') {
14
+ return str || '';
15
+ }
16
+ const value = options.usesDtcg ? token.original.$value : token.original.value;
17
+ const angle = typeof value.angle === 'number' ? value.angle + 'deg' : value.angle;
18
+ let gradientValue = `${value.type || 'linear'}-gradient(${angle || '0deg'}, ${value.stops
19
+ ?.map(({ color, position }) => `${color} ${typeof position === 'number' ? position + '%' : position}`)
20
+ .join(', ')})`;
21
+ if (options.outputReferences && options.formatter) {
22
+ const refs = getReferences(value, options.dictionary.unfilteredTokens || tokens, options);
23
+ if (refs.length > 0) {
24
+ gradientValue = refs.reduce((acc, ref) => {
25
+ return acc.replaceAll(`{${ref.path.join('.')}}`, `var(${prefix}${ref.name})`);
26
+ }, gradientValue);
27
+ }
28
+ }
29
+ return str.replace(objectString, gradientValue);
30
+ };
31
+ };
32
+ //# sourceMappingURL=gradients.formatter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gradients.formatter.mjs","sourceRoot":"","sources":["../../../../src/formats/css-formatters/gradients.formatter.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,GACd,MAAM,wBAAwB,CAAC;AAqBhC,sGAAsG;AACtG,MAAM,YAAY,GAAG,IAAI,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AAE7C;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAqB,CAAC,OAAO,EAAE,EAAE;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC;IAElD,OAAO,CAAC,KAAK,EAAE,GAAG,EAAU,EAAE;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAEzD,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/D,OAAO,GAAG,IAAI,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAiC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC5G,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QAClF,IAAI,aAAa,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,QAAQ,aAAa,KAAK,IAAI,MAAM,KAAK,KAAK,CAAC,KAAK;YACvF,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;aACrG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAEjB,IAAI,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,gBAAgB,IAAI,MAAM,EAAE,OAAO,CAAC,CAAC;YAC1F,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;oBACvC,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;gBAChF,CAAC,EAAE,aAAa,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { TransformedToken } from 'style-dictionary/types';
2
+ import { type createPropertyFormatter } from 'style-dictionary/utils';
3
+ /** Type of a formatter function */
4
+ export type Formatter = ReturnType<typeof createPropertyFormatter>;
5
+ /** Type of a formatter function part of a formatter chain */
6
+ export type ChainFormatter = (token: TransformedToken, str?: string) => string;
7
+ /** Options supported by a formatter factory */
8
+ export type FormatterOptions = Parameters<typeof createPropertyFormatter>['0'] & {
9
+ formatter?: Formatter;
10
+ };
11
+ /** Formatter factory type */
12
+ export type FormatterFactory = (options: FormatterOptions) => ChainFormatter;
13
+ //# sourceMappingURL=interface.formatter.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.formatter.d.mts","sourceRoot":"","sources":["../../../../src/formats/css-formatters/interface.formatter.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAC;AAEhC,mCAAmC;AACnC,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEnE,6DAA6D;AAC7D,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAE/E,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,GAAG,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAE3G,6BAA6B;AAC7B,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interface.formatter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.formatter.mjs","sourceRoot":"","sources":["../../../../src/formats/css-formatters/interface.formatter.mts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { FormatterFactory } from './interface.formatter.mjs';
2
+ /**
3
+ * Retrieve a formatter for a private Token
4
+ * @param options Option of private formatter generator
5
+ */
6
+ export declare const createPrivateFormatter: FormatterFactory;
7
+ //# sourceMappingURL=private.formatter.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private.formatter.d.mts","sourceRoot":"","sources":["../../../../src/formats/css-formatters/private.formatter.mts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,gBA8BpC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { getReferences, } from 'style-dictionary/utils';
2
+ /**
3
+ * Retrieve a formatter for a private Token
4
+ * @param options Option of private formatter generator
5
+ */
6
+ export const createPrivateFormatter = (options) => {
7
+ const tokens = options.dictionary.tokens;
8
+ const prefix = options.formatting?.prefix ?? '--';
9
+ const separator = options.formatting?.separator ?? ':';
10
+ const suffix = options.formatting?.suffix ?? ';';
11
+ const replacePrivateTokenReferences = (token, str) => {
12
+ if (!str) {
13
+ return '';
14
+ }
15
+ let strValue = str;
16
+ const originalValue = options.usesDtcg ? token.original.$value : token.original.value;
17
+ if (options.outputReferences && options.formatter) {
18
+ const refs = getReferences(originalValue, options.dictionary.unfilteredTokens || tokens, options);
19
+ const privateRefs = refs.filter((ref) => ref.attributes?.o3rPrivate);
20
+ if (privateRefs.length > 0) {
21
+ privateRefs.forEach((ref) => {
22
+ const refValue = options.formatter(ref);
23
+ const suffixIdx = refValue.indexOf(suffix);
24
+ strValue = strValue.replaceAll(`${prefix}${ref.name}`, `${prefix}${ref.name}, ${refValue.substring(refValue.indexOf(separator) + 1, suffixIdx === -1 ? undefined : suffixIdx).trim()}`);
25
+ strValue = replacePrivateTokenReferences(ref, strValue);
26
+ });
27
+ }
28
+ }
29
+ return strValue;
30
+ };
31
+ return replacePrivateTokenReferences;
32
+ };
33
+ //# sourceMappingURL=private.formatter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private.formatter.mjs","sourceRoot":"","sources":["../../../../src/formats/css-formatters/private.formatter.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,GACd,MAAM,wBAAwB,CAAC;AAOhC;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAqB,CAAC,OAAyB,EAAE,EAAE;IACpF,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,SAAS,IAAI,GAAG,CAAC;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,IAAI,GAAG,CAAC;IAEjD,MAAM,6BAA6B,GAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACnE,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,QAAQ,GAAG,GAAG,CAAC;QACnB,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QAEtF,IAAI,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,gBAAgB,IAAI,MAAM,EAAE,OAAO,CAAC,CAAC;YAClG,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACrE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAU,CAAC,GAAG,CAAC,CAAC;oBACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC3C,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACxL,QAAQ,GAAG,6BAA6B,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC1D,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,6BAA6B,CAAC;AACvC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"css.format.d.mts","sourceRoot":"","sources":["../../../src/formats/css.format.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAEP,MAAM,wBAAwB,CAAC;AAWhC,eAAO,MAAM,SAAS,EAAE,MAkFvB,CAAC"}
1
+ {"version":3,"file":"css.format.d.mts","sourceRoot":"","sources":["../../../src/formats/css.format.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACP,MAAM,wBAAwB,CAAC;AAehC,eAAO,MAAM,SAAS,EAAE,MA+DvB,CAAC"}
@@ -1,60 +1,44 @@
1
- import { createPropertyFormatter, fileHeader, getReferences, sortByReference, } from 'style-dictionary/utils';
1
+ import { fileHeader, sortByReference, } from 'style-dictionary/utils';
2
2
  import { OTTER_NAME_PREFIX, } from '../constants.mjs';
3
+ import { getDefaultCssFormatter, } from './css-formatters/default.formatter.mjs';
3
4
  export const cssFormat = {
4
5
  name: `${OTTER_NAME_PREFIX}/css/variable`,
5
6
  format: async ({ dictionary, file, options }) => {
6
7
  const selector = options.selector || ':root';
7
- const { outputReferences, usesDtcg, formatting } = options;
8
+ const { outputReferences: outRef, usesDtcg, formatting } = options;
9
+ const outputReferences = outRef ?? true;
8
10
  const header = await fileHeader({ file, formatting, options });
9
11
  const { lineSeparator } = { lineSeparator: '\n', ...formatting };
10
12
  const format = 'css';
11
13
  const suffix = ';';
12
14
  const prefix = '--';
13
15
  const separator = ':';
16
+ const baseFormatterOptions = {
17
+ outputReferences,
18
+ outputReferenceFallbacks: false,
19
+ dictionary,
20
+ format,
21
+ formatting: {
22
+ ...formatting,
23
+ suffix,
24
+ prefix,
25
+ separator
26
+ },
27
+ themeable: false,
28
+ usesDtcg
29
+ };
14
30
  const formattedVariables = () => {
15
31
  let allTokens = dictionary.allTokens;
16
32
  const tokens = dictionary.tokens;
17
33
  if (outputReferences) {
18
34
  allTokens = [...allTokens].sort(sortByReference(tokens, { unfilteredTokens: dictionary.unfilteredTokens, usesDtcg }));
19
35
  }
20
- const propertyFormatter = createPropertyFormatter({
21
- outputReferences: outputReferences ?? true,
22
- outputReferenceFallbacks: false,
23
- dictionary,
24
- format,
25
- formatting: {
26
- ...formatting,
27
- suffix,
28
- prefix,
29
- separator
30
- },
31
- themeable: false,
32
- usesDtcg
33
- });
34
- const replacePrivateTokenReferences = (token, strValue) => {
35
- const originalValue = usesDtcg ? token.original.$value : token.original.value;
36
- if (outputReferences) {
37
- const refs = getReferences(originalValue, dictionary.unfilteredTokens || tokens, options);
38
- const privateRefs = refs.filter((ref) => ref.attributes?.o3rPrivate);
39
- if (privateRefs.length > 0) {
40
- privateRefs.forEach((ref) => {
41
- const refValue = propertyFormatter(ref);
42
- strValue = strValue.replaceAll(`${prefix}${ref.name}`, `${prefix}${ref.name}, ${refValue.substring(refValue.indexOf(separator) + 1).trim()}`);
43
- strValue = replacePrivateTokenReferences(ref, strValue);
44
- });
45
- }
46
- }
47
- return strValue;
48
- };
49
- const privatePropertyFormatter = (token) => {
50
- const strValue = propertyFormatter(token);
51
- return strValue && replacePrivateTokenReferences(token, strValue);
52
- };
36
+ const propertyFormatter = getDefaultCssFormatter(baseFormatterOptions);
53
37
  return allTokens
54
38
  .filter(({ attributes }) => !attributes?.private)
55
39
  .map((token) => ({
56
40
  token,
57
- strValue: privatePropertyFormatter(token)
41
+ strValue: propertyFormatter(token)
58
42
  }))
59
43
  .filter(({ strValue }) => !!strValue)
60
44
  .map(({ token, strValue }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"css.format.mjs","sourceRoot":"","sources":["../../../src/formats/css.format.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"css.format.mjs","sourceRoot":"","sources":["../../../src/formats/css.format.mts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.format.d.mts","sourceRoot":"","sources":["../../../src/formats/metadata.format.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAEP,MAAM,wBAAwB,CAAC;AAehC,eAAO,MAAM,cAAc,EAAE,MA2F5B,CAAC"}
1
+ {"version":3,"file":"metadata.format.d.mts","sourceRoot":"","sources":["../../../src/formats/metadata.format.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAEP,MAAM,wBAAwB,CAAC;AAoBhC,eAAO,MAAM,cAAc,EAAE,MA0E5B,CAAC"}
@@ -1,9 +1,11 @@
1
- import { createPropertyFormatter, getReferences, sortByReference, } from 'style-dictionary/utils';
1
+ import { getReferences, sortByReference, } from 'style-dictionary/utils';
2
2
  import { OTTER_NAME_PREFIX, } from '../constants.mjs';
3
+ import { getDefaultCssFormatter, } from './css-formatters/default.formatter.mjs';
3
4
  export const metadataFormat = {
4
5
  name: `${OTTER_NAME_PREFIX}/json/metadata`,
5
6
  format: ({ dictionary, options }) => {
6
- const { outputReferences, usesDtcg, formatting, keepPrivate } = options;
7
+ const { outputReferences: outRef, usesDtcg, formatting, keepPrivate } = options;
8
+ const outputReferences = outRef ?? true;
7
9
  const format = 'css';
8
10
  const suffix = ';';
9
11
  const prefix = '--';
@@ -11,13 +13,8 @@ export const metadataFormat = {
11
13
  const commentStyle = options.formatting?.commentStyle ?? 'none';
12
14
  const indentation = options.formatting?.indentation ?? '';
13
15
  const { lineSeparator } = { lineSeparator: '\n', ...formatting };
14
- let allTokens = dictionary.allTokens;
15
- const tokens = dictionary.tokens;
16
- if (outputReferences) {
17
- allTokens = [...allTokens].sort(sortByReference(tokens, { unfilteredTokens: dictionary.unfilteredTokens, usesDtcg }));
18
- }
19
- const propertyFormatter = createPropertyFormatter({
20
- outputReferences: outputReferences ?? true,
16
+ const baseFormatterOptions = {
17
+ outputReferences,
21
18
  outputReferenceFallbacks: false,
22
19
  dictionary,
23
20
  format,
@@ -31,31 +28,20 @@ export const metadataFormat = {
31
28
  },
32
29
  themeable: false,
33
30
  usesDtcg
34
- });
35
- const replacePrivateTokenReferences = (token, strValue) => {
36
- const originalValue = usesDtcg ? token.original.$value : token.original.value;
37
- const refs = getReferences(originalValue, tokens);
38
- const privateRefs = refs.filter((ref) => ref.attributes?.o3rPrivate);
39
- if (privateRefs.length > 0) {
40
- privateRefs.forEach((ref) => {
41
- const refValue = propertyFormatter(ref);
42
- strValue = strValue.replaceAll(`${prefix}${ref.name}`, `${prefix}${ref.name}, ${refValue.substring(refValue.indexOf(separator) + 1).trim()}`);
43
- strValue = replacePrivateTokenReferences(ref, strValue);
44
- });
45
- }
46
- return strValue;
47
- };
48
- const privatePropertyFormatter = (token) => {
49
- const strValue = propertyFormatter(token);
50
- return strValue && replacePrivateTokenReferences(token, strValue);
51
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);
52
38
  const getValueFromCssVariable = (strValue) => strValue.replace(new RegExp(`^.*?${separator}(.*)$`), '$1').trim();
53
39
  const getMetadataReferences = (token) => {
54
40
  const originalValue = usesDtcg ? token.original.$value : token.original.value;
55
41
  const refs = getReferences(originalValue, tokens);
56
42
  return refs
57
43
  .map((ref) => ({
58
- defaultValue: getValueFromCssVariable(privatePropertyFormatter(ref)),
44
+ defaultValue: getValueFromCssVariable(propertyFormatter(ref)),
59
45
  name: ref.name,
60
46
  references: getMetadataReferences(ref)
61
47
  }));
@@ -64,7 +50,7 @@ export const metadataFormat = {
64
50
  .filter(({ attributes }) => !!keepPrivate || !attributes?.private)
65
51
  .map((token) => ({
66
52
  token,
67
- strValue: privatePropertyFormatter(token)
53
+ strValue: propertyFormatter(token)
68
54
  }))
69
55
  .filter(({ strValue }) => !!strValue)
70
56
  .reduce((acc, { token, strValue }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.format.mjs","sourceRoot":"","sources":["../../../src/formats/metadata.format.mts"],"names":[],"mappings":"AAIA,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAO1B,MAAM,CAAC,MAAM,cAAc,GAAW;IACpC,IAAI,EAAE,GAAG,iBAAiB,gBAAgB;IAC1C,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;QAClC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QACxE,MAAM,MAAM,GAAG,KAAK,CAAC;QACrB,MAAM,MAAM,GAAG,GAAG,CAAC;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC;QACpB,MAAM,SAAS,GAAG,GAAG,CAAC;QACtB,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,YAAY,IAAI,MAAM,CAAC;QAChE,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE,CAAC;QAC1D,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC;QAEjE,IAAI,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACrC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,IAAI,gBAAgB,EAAE,CAAC;YACrB,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAC7B,eAAe,CAAC,MAAM,EAAE,EAAE,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,EAAE,QAAQ,EAAE,CAAC,CACrF,CAAC;QACJ,CAAC;QAED,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;YAChD,gBAAgB,EAAE,gBAAgB,IAAI,IAAI;YAC1C,wBAAwB,EAAE,KAAK;YAC/B,UAAU;YACV,MAAM;YACN,UAAU,EAAE;gBACV,GAAG,UAAU;gBACb,MAAM;gBACN,MAAM;gBACN,SAAS;gBACT,WAAW;gBACX,YAAY;aACb;YACD,SAAS,EAAE,KAAK;YAChB,QAAQ;SACT,CAAC,CAAC;QAEH,MAAM,6BAA6B,GAAG,CAAC,KAAuB,EAAE,QAAgB,EAAU,EAAE;YAC1F,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC9E,MAAM,IAAI,GAAG,aAAa,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACrE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC1B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;oBACxC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC9I,QAAQ,GAAG,6BAA6B,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC1D,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;QAEF,MAAM,wBAAwB,GAAG,CAAC,KAAuB,EAAE,EAAE;YAC3D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC1C,OAAO,QAAQ,IAAI,6BAA6B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpE,CAAC,CAAC;QAEF,MAAM,uBAAuB,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,SAAS,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAEzH,MAAM,qBAAqB,GAAG,CAAC,KAAuB,EAA6B,EAAE;YACnF,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC9E,MAAM,IAAI,GAAG,aAAa,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAClD,OAAO,IAAI;iBACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACb,YAAY,EAAE,uBAAuB,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;gBACpE,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,UAAU,EAAE,qBAAqB,CAAC,GAAG,CAAC;aACvC,CAAC,CAAC,CAAC;QACR,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,SAAS;aACvB,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;aACjE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACf,KAAK;YACL,QAAQ,EAAE,wBAAwB,CAAC,KAAK,CAAC;SAC1C,CAAC,CAAC;aACF,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;aACpC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;YACnC,MAAM,WAAW,GAAgB;gBAC/B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO;gBAChD,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;gBAC1G,YAAY,EAAE,uBAAuB,CAAC,QAAQ,CAAC;gBAC/C,UAAU,EAAE,qBAAqB,CAAC,KAAK,CAAC;gBACxC,GAAI,KAAK,CAAC,UAAU,EAAE,WAA+C;aACtE,CAAC;YACF,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;YACxC,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAiB,CAAC,CAAC;QAEvC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACxG,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"metadata.format.mjs","sourceRoot":"","sources":["../../../src/formats/metadata.format.mts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ const applyUnit = (value, unit) => {
4
4
  const match = value.match(numberPossiblePattern);
5
5
  if (!match) {
6
6
  if (!Number.isNaN(Number.parseFloat(value))) {
7
- return `${value} ${unit}`;
7
+ return `${value}${unit}`;
8
8
  }
9
9
  return value;
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"unit.transform.mjs","sourceRoot":"","sources":["../../../src/transforms/unit.transform.mts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAK1B,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAEtD,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5C,OAAO,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;IAC1B,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,GAAG,GAAG,CAAC,IAAS,EAAE,IAAY,EAAO,EAAE;IAC3C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aACjB,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CACtD,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,IAAI,EAAE,GAAG,iBAAiB,iBAAiB;IAC3C,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;QACzB,MAAM,OAAO,GAAG,UAAU,IAAK,UAAoC,CAAC,OAAO,KAAK,SAAS,CAAC;QAC1F,OAAO,CAAC,CAAC,OAAO,CAAC;IACnB,CAAC;IACD,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QACrC,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAG,KAAK,CAAC,UAAoC,CAAC,OAAQ,CAAC,CAAC;IAClH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"unit.transform.mjs","sourceRoot":"","sources":["../../../src/transforms/unit.transform.mts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAK1B,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAEtD,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5C,OAAO,GAAG,KAAK,GAAG,IAAI,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;IAC1B,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,GAAG,GAAG,CAAC,IAAS,EAAE,IAAY,EAAO,EAAE;IAC3C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aACjB,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CACtD,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,IAAI,EAAE,GAAG,iBAAiB,iBAAiB;IAC3C,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;QACzB,MAAM,OAAO,GAAG,UAAU,IAAK,UAAoC,CAAC,OAAO,KAAK,SAAS,CAAC;QAC1F,OAAO,CAAC,CAAC,OAAO,CAAC;IACnB,CAAC;IACD,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QACrC,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAG,KAAK,CAAC,UAAoC,CAAC,OAAQ,CAAC,CAAC;IAClH,CAAC;CACF,CAAC"}