@atlaskit/codemod-cli 0.14.0 → 0.15.0
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/CHANGELOG.md +66 -53
- package/dist/cjs/main.js +3 -3
- package/dist/cjs/presets/css-to-design-tokens/css-to-design-tokens.js +52 -133
- package/dist/cjs/presets/css-to-design-tokens/lib/colors.js +49 -0
- package/dist/cjs/presets/css-to-design-tokens/lib/declaration.js +29 -0
- package/dist/cjs/presets/css-to-design-tokens/{utils → lib}/legacy-colors.js +13 -17
- package/dist/cjs/presets/css-to-design-tokens/lib/logger.js +18 -0
- package/dist/cjs/presets/css-to-design-tokens/lib/meta.js +157 -0
- package/dist/cjs/presets/css-to-design-tokens/lib/tokens.js +47 -0
- package/dist/cjs/presets/css-to-design-tokens/lib/value.js +80 -0
- package/dist/cjs/presets/index.js +1 -2
- package/dist/cjs/presets/styled-to-emotion/styled-to-emotion.js +1 -2
- package/dist/cjs/presets/theme-remove-deprecated-mixins/utils/replacements.js +2 -3
- package/dist/cjs/presets/theme-to-design-tokens/theme-to-design-tokens.js +2 -2
- package/dist/cjs/presets/theme-to-design-tokens/utils/color.js +4 -8
- package/dist/cjs/presets/theme-to-design-tokens/utils/css-utils.js +2 -2
- package/dist/cjs/presets/theme-to-design-tokens/utils/fuzzy-search.js +1 -2
- package/dist/cjs/presets/theme-to-design-tokens/utils/legacy-colors.js +4 -7
- package/dist/cjs/presets/theme-to-design-tokens/utils/named-colors.js +1 -2
- package/dist/cjs/presets/theme-to-design-tokens/utils/string-utils.js +1 -2
- package/dist/cjs/presets/theme-to-design-tokens/utils/tokens.js +3 -5
- package/dist/cjs/sinceRef.js +1 -2
- package/dist/cjs/transforms.js +6 -12
- package/dist/cjs/types.js +3 -5
- package/dist/cjs/utils.js +2 -3
- package/dist/es2019/presets/css-to-design-tokens/css-to-design-tokens.js +52 -116
- package/dist/es2019/presets/css-to-design-tokens/lib/colors.js +34 -0
- package/dist/es2019/presets/css-to-design-tokens/lib/declaration.js +17 -0
- package/dist/es2019/presets/css-to-design-tokens/{utils → lib}/legacy-colors.js +9 -10
- package/dist/es2019/presets/css-to-design-tokens/lib/logger.js +11 -0
- package/dist/es2019/presets/css-to-design-tokens/lib/meta.js +133 -0
- package/dist/es2019/presets/css-to-design-tokens/lib/tokens.js +24 -0
- package/dist/es2019/presets/css-to-design-tokens/lib/value.js +68 -0
- package/dist/es2019/presets/theme-to-design-tokens/utils/css-utils.js +2 -2
- package/dist/esm/main.js +3 -3
- package/dist/esm/presets/css-to-design-tokens/css-to-design-tokens.js +52 -132
- package/dist/esm/presets/css-to-design-tokens/lib/colors.js +38 -0
- package/dist/esm/presets/css-to-design-tokens/lib/declaration.js +19 -0
- package/dist/esm/presets/css-to-design-tokens/{utils → lib}/legacy-colors.js +9 -10
- package/dist/esm/presets/css-to-design-tokens/lib/logger.js +11 -0
- package/dist/esm/presets/css-to-design-tokens/lib/meta.js +146 -0
- package/dist/esm/presets/css-to-design-tokens/lib/tokens.js +40 -0
- package/dist/esm/presets/css-to-design-tokens/lib/value.js +73 -0
- package/dist/esm/presets/theme-to-design-tokens/theme-to-design-tokens.js +2 -2
- package/dist/esm/presets/theme-to-design-tokens/utils/css-utils.js +2 -2
- package/dist/types/main.d.ts +0 -1
- package/dist/types/presets/css-to-design-tokens/css-to-design-tokens.d.ts +0 -1
- package/dist/types/presets/css-to-design-tokens/lib/colors.d.ts +6 -0
- package/dist/types/presets/css-to-design-tokens/lib/declaration.d.ts +5 -0
- package/dist/types/presets/css-to-design-tokens/{utils → lib}/legacy-colors.d.ts +1 -1
- package/dist/types/presets/css-to-design-tokens/lib/logger.d.ts +4 -0
- package/dist/types/presets/css-to-design-tokens/lib/meta.d.ts +6 -0
- package/dist/types/presets/css-to-design-tokens/lib/tokens.d.ts +7 -0
- package/dist/types/presets/css-to-design-tokens/lib/value.d.ts +6 -0
- package/dist/types-ts4.5/main.d.ts +0 -1
- package/dist/types-ts4.5/presets/css-to-design-tokens/css-to-design-tokens.d.ts +0 -1
- package/dist/types-ts4.5/presets/css-to-design-tokens/lib/colors.d.ts +6 -0
- package/dist/types-ts4.5/presets/css-to-design-tokens/lib/declaration.d.ts +5 -0
- package/dist/types-ts4.5/presets/css-to-design-tokens/{utils → lib}/legacy-colors.d.ts +1 -1
- package/dist/types-ts4.5/presets/css-to-design-tokens/lib/logger.d.ts +4 -0
- package/dist/types-ts4.5/presets/css-to-design-tokens/lib/meta.d.ts +6 -0
- package/dist/types-ts4.5/presets/css-to-design-tokens/lib/tokens.d.ts +7 -0
- package/dist/types-ts4.5/presets/css-to-design-tokens/lib/value.d.ts +6 -0
- package/package.json +2 -2
- package/report.api.md +0 -2
- package/tmp/api-report-tmp.d.ts +0 -2
- package/dist/cjs/presets/css-to-design-tokens/utils/meta.js +0 -53
- package/dist/es2019/presets/css-to-design-tokens/utils/meta.js +0 -33
- package/dist/esm/presets/css-to-design-tokens/utils/meta.js +0 -46
- package/dist/types/presets/css-to-design-tokens/utils/meta.d.ts +0 -1
- package/dist/types-ts4.5/presets/css-to-design-tokens/utils/meta.d.ts +0 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = parseValue;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _colors = require("./colors");
|
|
10
|
+
var _declaration = require("./declaration");
|
|
11
|
+
var _meta = require("./meta");
|
|
12
|
+
var _tokens = _interopRequireDefault(require("./tokens"));
|
|
13
|
+
var _logger = require("./logger");
|
|
14
|
+
function parseValue(value) {
|
|
15
|
+
if ((0, _colors.isLessFunction)(value)) {
|
|
16
|
+
_logger.logger.warn('Cannot parse - less function detected, would cause compilation error');
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
if ((0, _colors.isGradient)(value)) {
|
|
20
|
+
return {
|
|
21
|
+
getReplacement: function getReplacement() {
|
|
22
|
+
var additionalMeta = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
23
|
+
var gradientContent = (0, _colors.extractBetweenParentheses)(value);
|
|
24
|
+
var values = gradientContent.split(',');
|
|
25
|
+
var replacedValues = values.map(function (val) {
|
|
26
|
+
var parsedValue = parseValue(val.trim());
|
|
27
|
+
return parsedValue ? parsedValue.getReplacement(additionalMeta) : val;
|
|
28
|
+
});
|
|
29
|
+
return value.replace(gradientContent, replacedValues.join(', '));
|
|
30
|
+
},
|
|
31
|
+
getMeta: function getMeta() {
|
|
32
|
+
var BASE_META = [];
|
|
33
|
+
var gradientContent = (0, _colors.extractBetweenParentheses)(value);
|
|
34
|
+
var values = gradientContent.split(',');
|
|
35
|
+
var metas = values.reduce(function (acc, val) {
|
|
36
|
+
var parsedValue = parseValue(val.trim());
|
|
37
|
+
return parsedValue ? [].concat((0, _toConsumableArray2.default)(acc), (0, _toConsumableArray2.default)(parsedValue.getMeta())) : acc;
|
|
38
|
+
}, BASE_META);
|
|
39
|
+
return metas;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
if ((0, _colors.isKnownCssVariable)((0, _declaration.extractCssVarName)(value))) {
|
|
44
|
+
return {
|
|
45
|
+
getReplacement: function getReplacement() {
|
|
46
|
+
var additionalMeta = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
47
|
+
var token = (0, _tokens.default)([].concat((0, _toConsumableArray2.default)(additionalMeta), (0, _toConsumableArray2.default)(this.getMeta())));
|
|
48
|
+
return "var(".concat(token, ", ").concat(value, ")");
|
|
49
|
+
},
|
|
50
|
+
getMeta: function getMeta() {
|
|
51
|
+
return (0, _meta.getCssVarMeta)(value);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
if ((0, _colors.isRawColor)(value)) {
|
|
56
|
+
return {
|
|
57
|
+
getReplacement: function getReplacement() {
|
|
58
|
+
var additionalMeta = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
59
|
+
var token = (0, _tokens.default)([].concat((0, _toConsumableArray2.default)(additionalMeta), (0, _toConsumableArray2.default)(this.getMeta())));
|
|
60
|
+
return "var(".concat(token, ", ").concat(value, ")");
|
|
61
|
+
},
|
|
62
|
+
getMeta: function getMeta() {
|
|
63
|
+
return (0, _meta.getRawColorMeta)(value);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if ((0, _colors.isNamedColor)(value)) {
|
|
68
|
+
return {
|
|
69
|
+
getReplacement: function getReplacement() {
|
|
70
|
+
var additionalMeta = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
71
|
+
var token = (0, _tokens.default)([].concat((0, _toConsumableArray2.default)(additionalMeta), (0, _toConsumableArray2.default)(this.getMeta())));
|
|
72
|
+
return "var(".concat(token, ", ").concat(value, ")");
|
|
73
|
+
},
|
|
74
|
+
getMeta: function getMeta() {
|
|
75
|
+
return (0, _meta.getNamedColorMeta)(value);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
@@ -18,5 +18,4 @@ require("./css-to-design-tokens/css-to-design-tokens");
|
|
|
18
18
|
var presets = ['styled-to-emotion', 'theme-to-design-tokens', 'theme-remove-deprecated-mixins', 'css-to-design-tokens'].map(function (preset) {
|
|
19
19
|
return _path.default.join(__dirname, preset, "".concat(preset, ".@(ts|js|tsx)"));
|
|
20
20
|
});
|
|
21
|
-
var _default = presets;
|
|
22
|
-
exports.default = _default;
|
|
21
|
+
var _default = exports.default = presets;
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.colorReplacements = void 0;
|
|
7
|
-
var colorReplacements = {
|
|
7
|
+
var colorReplacements = exports.colorReplacements = {
|
|
8
8
|
background: {
|
|
9
9
|
fullReplacement: "themed({ light: token('elevation.surface', N0), dark: token('elevation.surface', DN30) })",
|
|
10
10
|
staticReplacement: 'N0',
|
|
@@ -142,5 +142,4 @@ var colorReplacements = {
|
|
|
142
142
|
tokenId: 'color.skeleton',
|
|
143
143
|
importSpecifiers: ['N20A']
|
|
144
144
|
}
|
|
145
|
-
};
|
|
146
|
-
exports.colorReplacements = colorReplacements;
|
|
145
|
+
};
|
|
@@ -337,8 +337,8 @@ function _transformer() {
|
|
|
337
337
|
|
|
338
338
|
// JSX props
|
|
339
339
|
source.find(j.JSXAttribute).forEach(function (path) {
|
|
340
|
-
var _path$value
|
|
341
|
-
if (((_path$value = path.value) === null || _path$value === void 0
|
|
340
|
+
var _path$value;
|
|
341
|
+
if (((_path$value = path.value) === null || _path$value === void 0 || (_path$value = _path$value.value) === null || _path$value === void 0 ? void 0 : _path$value.type) !== 'JSXExpressionContainer') {
|
|
342
342
|
return;
|
|
343
343
|
}
|
|
344
344
|
if ((0, _ast.isParentOfToken)(j, path)) {
|
|
@@ -8,16 +8,14 @@ exports.isBoldColor = isBoldColor;
|
|
|
8
8
|
exports.isLegacyNamedColor = exports.isLegacyColor = exports.isHardCodedColor = void 0;
|
|
9
9
|
var _legacyColors = require("./legacy-colors");
|
|
10
10
|
var _namedColors = require("./named-colors");
|
|
11
|
-
var isLegacyColor = function isLegacyColor(value) {
|
|
11
|
+
var isLegacyColor = exports.isLegacyColor = function isLegacyColor(value) {
|
|
12
12
|
return _legacyColors.legacyColors.includes(value);
|
|
13
13
|
};
|
|
14
|
-
exports.
|
|
15
|
-
var isLegacyNamedColor = function isLegacyNamedColor(value) {
|
|
14
|
+
var isLegacyNamedColor = exports.isLegacyNamedColor = function isLegacyNamedColor(value) {
|
|
16
15
|
return _legacyColors.legacyColorMixins.includes(value);
|
|
17
16
|
};
|
|
18
|
-
exports.isLegacyNamedColor = isLegacyNamedColor;
|
|
19
17
|
var colorRegexp = /#(?:[a-f0-9]{3}|[a-f0-9]{6}|[a-f0-9]{8})\b|(?:rgb|rgba|hsl|hsla|lch|lab|color)\([^\)]*\)/;
|
|
20
|
-
var includesHardCodedColor = function includesHardCodedColor(raw) {
|
|
18
|
+
var includesHardCodedColor = exports.includesHardCodedColor = function includesHardCodedColor(raw) {
|
|
21
19
|
var value = raw.toLowerCase();
|
|
22
20
|
if (colorRegexp.exec(value)) {
|
|
23
21
|
return true;
|
|
@@ -29,8 +27,7 @@ var includesHardCodedColor = function includesHardCodedColor(raw) {
|
|
|
29
27
|
}
|
|
30
28
|
return false;
|
|
31
29
|
};
|
|
32
|
-
exports.
|
|
33
|
-
var isHardCodedColor = function isHardCodedColor(raw) {
|
|
30
|
+
var isHardCodedColor = exports.isHardCodedColor = function isHardCodedColor(raw) {
|
|
34
31
|
var value = raw.toLowerCase();
|
|
35
32
|
if (_namedColors.namedColors.includes(value)) {
|
|
36
33
|
return true;
|
|
@@ -41,7 +38,6 @@ var isHardCodedColor = function isHardCodedColor(raw) {
|
|
|
41
38
|
}
|
|
42
39
|
return false;
|
|
43
40
|
};
|
|
44
|
-
exports.isHardCodedColor = isHardCodedColor;
|
|
45
41
|
function isBoldColor(color) {
|
|
46
42
|
var number = parseInt(color.replace(/^./, ''), 10);
|
|
47
43
|
return number > 300;
|
|
@@ -5,12 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.containsReplaceableCSSDeclarations = containsReplaceableCSSDeclarations;
|
|
7
7
|
exports.findEndIndexOfCSSExpression = findEndIndexOfCSSExpression;
|
|
8
|
-
var
|
|
8
|
+
var _declaration = require("../../css-to-design-tokens/lib/declaration");
|
|
9
9
|
function containsReplaceableCSSDeclarations(input) {
|
|
10
10
|
var cssPattern = /(\S+)\s*:/g;
|
|
11
11
|
var match;
|
|
12
12
|
while ((match = cssPattern.exec(input)) !== null) {
|
|
13
|
-
if ((0,
|
|
13
|
+
if ((0, _declaration.isColorRelatedProperty)(match[1])) {
|
|
14
14
|
return true;
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -4,11 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.legacyColors = exports.legacyColorMixins = exports.legacyColorMetaMap = void 0;
|
|
7
|
-
var legacyColors = ['R50', 'R75', 'R100', 'R200', 'R300', 'R400', 'R500', 'Y50', 'Y75', 'Y100', 'Y200', 'Y300', 'Y400', 'Y500', 'G50', 'G75', 'G100', 'G200', 'G300', 'G400', 'G500', 'B50', 'B75', 'B100', 'B200', 'B300', 'B400', 'B500', 'P50', 'P75', 'P100', 'P200', 'P300', 'P400', 'P500', 'T50', 'T75', 'T100', 'T200', 'T300', 'T400', 'T500', 'N0', 'N10', 'N20', 'N30', 'N40', 'N50', 'N60', 'N70', 'N80', 'N90', 'N100', 'N200', 'N300', 'N400', 'N500', 'N600', 'N700', 'N800', 'N900', 'N10A', 'N20A', 'N30A', 'N40A', 'N50A', 'N60A', 'N70A', 'N80A', 'N90A', 'N100A', 'N200A', 'N300A', 'N400A', 'N500A', 'N600A', 'N700A', 'N800A', 'DN900', 'DN800', 'DN700', 'DN600', 'DN500', 'DN400', 'DN300', 'DN200', 'DN100', 'DN90', 'DN80', 'DN70', 'DN60', 'DN50', 'DN40', 'DN30', 'DN20', 'DN10', 'DN0', 'DN800A', 'DN700A', 'DN600A', 'DN500A', 'DN400A', 'DN300A', 'DN200A', 'DN100A', 'DN90A', 'DN80A', 'DN70A', 'DN60A', 'DN50A', 'DN40A', 'DN30A', 'DN20A', 'DN10A'];
|
|
8
|
-
exports.
|
|
9
|
-
var
|
|
10
|
-
exports.legacyColorMixins = legacyColorMixins;
|
|
11
|
-
var legacyColorMetaMap = {
|
|
7
|
+
var legacyColors = exports.legacyColors = ['R50', 'R75', 'R100', 'R200', 'R300', 'R400', 'R500', 'Y50', 'Y75', 'Y100', 'Y200', 'Y300', 'Y400', 'Y500', 'G50', 'G75', 'G100', 'G200', 'G300', 'G400', 'G500', 'B50', 'B75', 'B100', 'B200', 'B300', 'B400', 'B500', 'P50', 'P75', 'P100', 'P200', 'P300', 'P400', 'P500', 'T50', 'T75', 'T100', 'T200', 'T300', 'T400', 'T500', 'N0', 'N10', 'N20', 'N30', 'N40', 'N50', 'N60', 'N70', 'N80', 'N90', 'N100', 'N200', 'N300', 'N400', 'N500', 'N600', 'N700', 'N800', 'N900', 'N10A', 'N20A', 'N30A', 'N40A', 'N50A', 'N60A', 'N70A', 'N80A', 'N90A', 'N100A', 'N200A', 'N300A', 'N400A', 'N500A', 'N600A', 'N700A', 'N800A', 'DN900', 'DN800', 'DN700', 'DN600', 'DN500', 'DN400', 'DN300', 'DN200', 'DN100', 'DN90', 'DN80', 'DN70', 'DN60', 'DN50', 'DN40', 'DN30', 'DN20', 'DN10', 'DN0', 'DN800A', 'DN700A', 'DN600A', 'DN500A', 'DN400A', 'DN300A', 'DN200A', 'DN100A', 'DN90A', 'DN80A', 'DN70A', 'DN60A', 'DN50A', 'DN40A', 'DN30A', 'DN20A', 'DN10A'];
|
|
8
|
+
var legacyColorMixins = exports.legacyColorMixins = ['background', 'backgroundActive', 'backgroundHover', 'backgroundOnLayer', 'text', 'textHover', 'textActive', 'subtleText', 'placeholderText', 'heading', 'subtleHeading', 'codeBlock', 'link', 'linkHover', 'linkActive', 'linkOutline', 'primary', 'blue', 'teal', 'purple', 'red', 'yellow', 'green', 'skeleton'];
|
|
9
|
+
var legacyColorMetaMap = exports.legacyColorMetaMap = {
|
|
12
10
|
R50: ['danger'],
|
|
13
11
|
R75: ['danger'],
|
|
14
12
|
R100: ['danger'],
|
|
@@ -95,5 +93,4 @@ var legacyColorMetaMap = {
|
|
|
95
93
|
grey: ['background', 'neutral'],
|
|
96
94
|
skeleton: ['skeleton'],
|
|
97
95
|
white: ['inverse']
|
|
98
|
-
};
|
|
99
|
-
exports.legacyColorMetaMap = legacyColorMetaMap;
|
|
96
|
+
};
|
|
@@ -4,5 +4,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.namedColors = void 0;
|
|
7
|
-
var namedColors = ['black', 'silver', 'gray', 'white', 'maroon', 'red', 'purple', 'fuchsia', 'green', 'lime', 'olive', 'yellow', 'navy', 'blue', 'teal', 'aqua', 'orange', 'aliceblue', 'antiquewhite', 'aquamarine', 'azure', 'beige', 'bisque', 'blanchedalmond', 'blueviolet', 'brown', 'burlywood', 'cadetblue', 'chartreuse', 'chocolate', 'coral', 'cornflowerblue', 'cornsilk', 'crimson', 'cyan', 'darkblue', 'darkcyan', 'darkgoldenrod', 'darkgray', 'darkgreen', 'darkgrey', 'darkkhaki', 'darkmagenta', 'darkolivegreen', 'darkorange', 'darkorchid', 'darkred', 'darksalmon', 'darkseagreen', 'darkslateblue', 'darkslategray', 'darkslategrey', 'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue', 'dimgray', 'dimgrey', 'dodgerblue', 'firebrick', 'floralwhite', 'forestgreen', 'gainsboro', 'ghostwhite', 'gold', 'goldenrod', 'greenyellow', 'grey', 'honeydew', 'hotpink', 'indianred', 'indigo', 'ivory', 'khaki', 'lavender', 'lavenderblush', 'lawngreen', 'lemonchiffon', 'lightblue', 'lightcoral', 'lightcyan', 'lightgoldenrodyellow', 'lightgray', 'lightgreen', 'lightgrey', 'lightpink', 'lightsalmon', 'lightseagreen', 'lightskyblue', 'lightslategray', 'lightslategrey', 'lightsteelblue', 'lightyellow', 'limegreen', 'linen', 'magenta', 'mediumaquamarine', 'mediumblue', 'mediumorchid', 'mediumpurple', 'mediumseagreen', 'mediumslateblue', 'mediumspringgreen', 'mediumturquoise', 'mediumvioletred', 'midnightblue', 'mintcream', 'mistyrose', 'moccasin', 'navajowhite', 'oldlace', 'olivedrab', 'orangered', 'orchid', 'palegoldenrod', 'palegreen', 'paleturquoise', 'palevioletred', 'papayawhip', 'peachpuff', 'peru', 'pink', 'plum', 'powderblue', 'rosybrown', 'royalblue', 'saddlebrown', 'salmon', 'sandybrown', 'seagreen', 'seashell', 'sienna', 'skyblue', 'slateblue', 'slategray', 'slategrey', 'snow', 'springgreen', 'steelblue', 'tan', 'thistle', 'tomato', 'turquoise', 'violet', 'wheat', 'whitesmoke', 'yellowgreen', 'rebeccapurple'];
|
|
8
|
-
exports.namedColors = namedColors;
|
|
7
|
+
var namedColors = exports.namedColors = ['black', 'silver', 'gray', 'white', 'maroon', 'red', 'purple', 'fuchsia', 'green', 'lime', 'olive', 'yellow', 'navy', 'blue', 'teal', 'aqua', 'orange', 'aliceblue', 'antiquewhite', 'aquamarine', 'azure', 'beige', 'bisque', 'blanchedalmond', 'blueviolet', 'brown', 'burlywood', 'cadetblue', 'chartreuse', 'chocolate', 'coral', 'cornflowerblue', 'cornsilk', 'crimson', 'cyan', 'darkblue', 'darkcyan', 'darkgoldenrod', 'darkgray', 'darkgreen', 'darkgrey', 'darkkhaki', 'darkmagenta', 'darkolivegreen', 'darkorange', 'darkorchid', 'darkred', 'darksalmon', 'darkseagreen', 'darkslateblue', 'darkslategray', 'darkslategrey', 'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue', 'dimgray', 'dimgrey', 'dodgerblue', 'firebrick', 'floralwhite', 'forestgreen', 'gainsboro', 'ghostwhite', 'gold', 'goldenrod', 'greenyellow', 'grey', 'honeydew', 'hotpink', 'indianred', 'indigo', 'ivory', 'khaki', 'lavender', 'lavenderblush', 'lawngreen', 'lemonchiffon', 'lightblue', 'lightcoral', 'lightcyan', 'lightgoldenrodyellow', 'lightgray', 'lightgreen', 'lightgrey', 'lightpink', 'lightsalmon', 'lightseagreen', 'lightskyblue', 'lightslategray', 'lightslategrey', 'lightsteelblue', 'lightyellow', 'limegreen', 'linen', 'magenta', 'mediumaquamarine', 'mediumblue', 'mediumorchid', 'mediumpurple', 'mediumseagreen', 'mediumslateblue', 'mediumspringgreen', 'mediumturquoise', 'mediumvioletred', 'midnightblue', 'mintcream', 'mistyrose', 'moccasin', 'navajowhite', 'oldlace', 'olivedrab', 'orangered', 'orchid', 'palegoldenrod', 'palegreen', 'paleturquoise', 'palevioletred', 'papayawhip', 'peachpuff', 'peru', 'pink', 'plum', 'powderblue', 'rosybrown', 'royalblue', 'saddlebrown', 'salmon', 'sandybrown', 'seagreen', 'seashell', 'sienna', 'skyblue', 'slateblue', 'slategray', 'slategrey', 'snow', 'springgreen', 'steelblue', 'tan', 'thistle', 'tomato', 'turquoise', 'violet', 'wheat', 'whitesmoke', 'yellowgreen', 'rebeccapurple'];
|
|
@@ -6,12 +6,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.findFirstNonspaceIndexAfter = findFirstNonspaceIndexAfter;
|
|
7
7
|
exports.kebabize = void 0;
|
|
8
8
|
exports.splitAtIndex = splitAtIndex;
|
|
9
|
-
var kebabize = function kebabize(str) {
|
|
9
|
+
var kebabize = exports.kebabize = function kebabize(str) {
|
|
10
10
|
return str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, function ($, ofs) {
|
|
11
11
|
return (ofs ? '-' : '') + $.toLowerCase();
|
|
12
12
|
});
|
|
13
13
|
};
|
|
14
|
-
exports.kebabize = kebabize;
|
|
15
14
|
function findFirstNonspaceIndexAfter(text, index) {
|
|
16
15
|
var rest = text.slice(index + 1);
|
|
17
16
|
var indexInRest = rest.search(/\S/);
|
|
@@ -7,15 +7,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.tokens = exports.getUniqueWordsFromTokens = void 0;
|
|
8
8
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
9
|
var _tokensRaw = require("@atlaskit/tokens/tokens-raw");
|
|
10
|
-
var tokens = _tokensRaw.light.filter(function (t) {
|
|
10
|
+
var tokens = exports.tokens = _tokensRaw.light.filter(function (t) {
|
|
11
11
|
return t.attributes.state === 'active';
|
|
12
12
|
}).map(function (t) {
|
|
13
13
|
return t.name.replace(/\.\[default\]/g, '');
|
|
14
14
|
}).filter(function (t) {
|
|
15
15
|
return !t.includes('UNSAFE') && !t.includes('interaction') && !t.includes('chart') && !t.includes('elevation.shadow.overflow');
|
|
16
16
|
});
|
|
17
|
-
exports.
|
|
18
|
-
var getUniqueWordsFromTokens = tokens.reduce(function (accum, val) {
|
|
17
|
+
var getUniqueWordsFromTokens = exports.getUniqueWordsFromTokens = tokens.reduce(function (accum, val) {
|
|
19
18
|
return [].concat((0, _toConsumableArray2.default)(accum), (0, _toConsumableArray2.default)(val.split('.')));
|
|
20
19
|
}, []).reduce(function (accum, val) {
|
|
21
20
|
return [].concat((0, _toConsumableArray2.default)(accum), (0, _toConsumableArray2.default)(val.split(/(?=[A-Z])/g).map(function (e) {
|
|
@@ -26,5 +25,4 @@ var getUniqueWordsFromTokens = tokens.reduce(function (accum, val) {
|
|
|
26
25
|
accum.push(val);
|
|
27
26
|
}
|
|
28
27
|
return accum;
|
|
29
|
-
}, []);
|
|
30
|
-
exports.getUniqueWordsFromTokens = getUniqueWordsFromTokens;
|
|
28
|
+
}, []);
|
package/dist/cjs/sinceRef.js
CHANGED
|
@@ -26,7 +26,7 @@ var parseDiffLine = function parseDiffLine(line) {
|
|
|
26
26
|
/** Returns packages that have been upgraded in package.json since ref. The version refers to their previous
|
|
27
27
|
* version
|
|
28
28
|
*/
|
|
29
|
-
var getPackagesSinceRef = /*#__PURE__*/function () {
|
|
29
|
+
var getPackagesSinceRef = exports.getPackagesSinceRef = /*#__PURE__*/function () {
|
|
30
30
|
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(ref) {
|
|
31
31
|
var git, commit, diff, modifiedPackages, addedPackages, upgradedPackages;
|
|
32
32
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
@@ -85,7 +85,6 @@ var getPackagesSinceRef = /*#__PURE__*/function () {
|
|
|
85
85
|
return _ref.apply(this, arguments);
|
|
86
86
|
};
|
|
87
87
|
}();
|
|
88
|
-
exports.getPackagesSinceRef = getPackagesSinceRef;
|
|
89
88
|
if (require.main === module) {
|
|
90
89
|
// eslint-disable-next-line no-console
|
|
91
90
|
getPackagesSinceRef(process.argv[2]).then(function (res) {
|
package/dist/cjs/transforms.js
CHANGED
|
@@ -16,13 +16,12 @@ var basePath = function basePath(packages) {
|
|
|
16
16
|
}).join(','), ",}")] : ['@{atlaskit,atlassian,atlassiansox}', '*'];
|
|
17
17
|
return _path.default.join.apply(_path.default, [process.cwd(), 'node_modules'].concat(packageDirectory, ['codemods']));
|
|
18
18
|
};
|
|
19
|
-
var hasTransform = function hasTransform(transformPath) {
|
|
19
|
+
var hasTransform = exports.hasTransform = function hasTransform(transformPath) {
|
|
20
20
|
return _glob.default.sync(transformPath).length > 0;
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
/** Retrieves transforms for `packages` if provided, otherwise all transforms including presets */
|
|
24
|
-
exports.
|
|
25
|
-
var getTransforms = function getTransforms(packages) {
|
|
24
|
+
var getTransforms = exports.getTransforms = function getTransforms(packages) {
|
|
26
25
|
var transforms = [_path.default.join(basePath(packages), '*.@(ts|tsx|js)'), _path.default.join(basePath(packages), '*', 'index.@(ts|tsx|js)')];
|
|
27
26
|
if (!packages) {
|
|
28
27
|
transforms.unshift.apply(transforms, (0, _toConsumableArray2.default)(_presets.default));
|
|
@@ -35,25 +34,21 @@ var getTransforms = function getTransforms(packages) {
|
|
|
35
34
|
return parseTransformPath(transform);
|
|
36
35
|
}).filter(filterTransforms(packages)).sort();
|
|
37
36
|
};
|
|
38
|
-
exports.
|
|
39
|
-
var parseTransformPath = function parseTransformPath(transformPath) {
|
|
37
|
+
var parseTransformPath = exports.parseTransformPath = function parseTransformPath(transformPath) {
|
|
40
38
|
return _path.default.parse(transformPath);
|
|
41
39
|
};
|
|
42
|
-
exports.
|
|
43
|
-
var getTransformPath = function getTransformPath(_ref) {
|
|
40
|
+
var getTransformPath = exports.getTransformPath = function getTransformPath(_ref) {
|
|
44
41
|
var dir = _ref.dir,
|
|
45
42
|
base = _ref.base;
|
|
46
43
|
return "".concat(dir, "/").concat(base);
|
|
47
44
|
};
|
|
48
|
-
exports.
|
|
49
|
-
var getTransformModule = function getTransformModule(transform) {
|
|
45
|
+
var getTransformModule = exports.getTransformModule = function getTransformModule(transform) {
|
|
50
46
|
var pathSegments = transform.dir.split(_path.default.sep);
|
|
51
47
|
var nodeModulesIdx = pathSegments.indexOf('node_modules');
|
|
52
48
|
// pathSegments will be of the form [node_modules, '@atlaskit', 'avatar', 'codemods']
|
|
53
49
|
return pathSegments.slice(nodeModulesIdx + 1, nodeModulesIdx + 3).join('/');
|
|
54
50
|
};
|
|
55
|
-
exports.
|
|
56
|
-
var getTransformVersion = function getTransformVersion(transform) {
|
|
51
|
+
var getTransformVersion = exports.getTransformVersion = function getTransformVersion(transform) {
|
|
57
52
|
var transformName = transform.base;
|
|
58
53
|
if (transformName.startsWith('index.')) {
|
|
59
54
|
var pathSegments = transform.dir.split(_path.default.sep);
|
|
@@ -61,7 +56,6 @@ var getTransformVersion = function getTransformVersion(transform) {
|
|
|
61
56
|
}
|
|
62
57
|
return transformName.split('-')[0];
|
|
63
58
|
};
|
|
64
|
-
exports.getTransformVersion = getTransformVersion;
|
|
65
59
|
var filterTransforms = function filterTransforms(packages) {
|
|
66
60
|
if (!packages || packages.length === 0) {
|
|
67
61
|
return function () {
|
package/dist/cjs/types.js
CHANGED
|
@@ -16,7 +16,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
16
16
|
/** Converts required args to optional if they have a default
|
|
17
17
|
* Example: export type UserFlags = Default<Flags, keyof typeof defaultFlags>;
|
|
18
18
|
*/
|
|
19
|
-
var ValidationError = /*#__PURE__*/function (_Error) {
|
|
19
|
+
var ValidationError = exports.ValidationError = /*#__PURE__*/function (_Error) {
|
|
20
20
|
(0, _inherits2.default)(ValidationError, _Error);
|
|
21
21
|
var _super = _createSuper(ValidationError);
|
|
22
22
|
function ValidationError() {
|
|
@@ -25,8 +25,7 @@ var ValidationError = /*#__PURE__*/function (_Error) {
|
|
|
25
25
|
}
|
|
26
26
|
return (0, _createClass2.default)(ValidationError);
|
|
27
27
|
}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
|
|
28
|
-
exports.
|
|
29
|
-
var NoTransformsExistError = /*#__PURE__*/function (_Error2) {
|
|
28
|
+
var NoTransformsExistError = exports.NoTransformsExistError = /*#__PURE__*/function (_Error2) {
|
|
30
29
|
(0, _inherits2.default)(NoTransformsExistError, _Error2);
|
|
31
30
|
var _super2 = _createSuper(NoTransformsExistError);
|
|
32
31
|
function NoTransformsExistError() {
|
|
@@ -34,5 +33,4 @@ var NoTransformsExistError = /*#__PURE__*/function (_Error2) {
|
|
|
34
33
|
return _super2.apply(this, arguments);
|
|
35
34
|
}
|
|
36
35
|
return (0, _createClass2.default)(NoTransformsExistError);
|
|
37
|
-
}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
|
|
38
|
-
exports.NoTransformsExistError = NoTransformsExistError;
|
|
36
|
+
}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
|
package/dist/cjs/utils.js
CHANGED
|
@@ -36,7 +36,7 @@ var getLineEndingRegex = function getLineEndingRegex(type) {
|
|
|
36
36
|
return '\r\n';
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
|
-
var fixLineEnding = function fixLineEnding(source, lineEnding) {
|
|
39
|
+
var fixLineEnding = exports.fixLineEnding = function fixLineEnding(source, lineEnding) {
|
|
40
40
|
var current = returnLineEnding(source);
|
|
41
41
|
if (current === lineEnding) {
|
|
42
42
|
return source;
|
|
@@ -47,5 +47,4 @@ var fixLineEnding = function fixLineEnding(source, lineEnding) {
|
|
|
47
47
|
return source.replace(new RegExp(regexCurrentLineEnding, 'g'), regexLineEnding);
|
|
48
48
|
}
|
|
49
49
|
return source;
|
|
50
|
-
};
|
|
51
|
-
exports.fixLineEnding = fixLineEnding;
|
|
50
|
+
};
|
|
@@ -1,71 +1,14 @@
|
|
|
1
1
|
import postcss from 'postcss';
|
|
2
2
|
// @ts-ignore
|
|
3
3
|
import lessSyntax from 'postcss-less';
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
const options = {
|
|
4
|
+
import { isColorRelatedProperty, isCssDeclaration, splitCssValue } from './lib/declaration';
|
|
5
|
+
import { getBaseDeclarationMeta } from './lib/meta';
|
|
6
|
+
import findToken from './lib/tokens';
|
|
7
|
+
import parseValue from './lib/value';
|
|
8
|
+
const POSTCSS_OPTIONS = {
|
|
10
9
|
syntax: lessSyntax,
|
|
11
10
|
from: undefined
|
|
12
11
|
};
|
|
13
|
-
const tokens = rawTokens.filter(t => t.attributes.state === 'active').map(t => t.name.replace(/\.\[default\]/g, '')).filter(t => !t.includes('UNSAFE') && !t.includes('interaction'));
|
|
14
|
-
const search = Search(tokens, false);
|
|
15
|
-
function isRule(node) {
|
|
16
|
-
return node.type === 'rule';
|
|
17
|
-
}
|
|
18
|
-
function getParentSelectors(node) {
|
|
19
|
-
if (isRule(node)) {
|
|
20
|
-
// @ts-expect-error
|
|
21
|
-
return getParentSelectors(node.parent) + ' ' + node.selector;
|
|
22
|
-
}
|
|
23
|
-
if (node.parent) {
|
|
24
|
-
return getParentSelectors(node.parent);
|
|
25
|
-
}
|
|
26
|
-
return '';
|
|
27
|
-
}
|
|
28
|
-
function stripVar(prop) {
|
|
29
|
-
return prop.substring(prop.indexOf('(') + 1).split(/\,|\)/)[0];
|
|
30
|
-
}
|
|
31
|
-
function stripLessVar(prop) {
|
|
32
|
-
return prop.substring(1);
|
|
33
|
-
}
|
|
34
|
-
export function isColorProperty(prop) {
|
|
35
|
-
return prop === 'color' || prop === 'background' || prop === 'background-color' || prop === 'box-shadow' || prop === 'border' || prop === 'border-left' || prop === 'border-right' || prop === 'border-top' || prop === 'border-bottom' || prop === 'border-color' || prop === 'outline';
|
|
36
|
-
}
|
|
37
|
-
function getDeclarationMeta(decl) {
|
|
38
|
-
if (decl.prop === 'color') {
|
|
39
|
-
return 'text';
|
|
40
|
-
}
|
|
41
|
-
if (decl.prop.startsWith('background')) {
|
|
42
|
-
return 'background';
|
|
43
|
-
}
|
|
44
|
-
if (decl.prop.includes('shadow')) {
|
|
45
|
-
return 'shadow';
|
|
46
|
-
}
|
|
47
|
-
if (decl.prop.includes('border')) {
|
|
48
|
-
return 'border';
|
|
49
|
-
}
|
|
50
|
-
return '';
|
|
51
|
-
}
|
|
52
|
-
function isDesignToken(tokenName) {
|
|
53
|
-
return Boolean(Object.entries(designTokens).find(([_, value]) => tokenName === value));
|
|
54
|
-
}
|
|
55
|
-
function getMetaFromCssVar(tokenName) {
|
|
56
|
-
const meta = knownVariables[tokenName];
|
|
57
|
-
if (!meta || meta.length === 0) {
|
|
58
|
-
return tokenName.split('-');
|
|
59
|
-
}
|
|
60
|
-
return meta;
|
|
61
|
-
}
|
|
62
|
-
function getMetaFromRawColor(rawColor) {
|
|
63
|
-
let cleanColor = rawColor.toLowerCase();
|
|
64
|
-
if (cleanColor.length === 4) {
|
|
65
|
-
cleanColor = cleanColor + cleanColor.substring(cleanColor.indexOf('#') + 1);
|
|
66
|
-
}
|
|
67
|
-
return knownRawColors[cleanColor];
|
|
68
|
-
}
|
|
69
12
|
|
|
70
13
|
// https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md
|
|
71
14
|
// https://astexplorer.net/#/2uBU1BLuJ1
|
|
@@ -73,69 +16,62 @@ const plugin = () => {
|
|
|
73
16
|
const processed = Symbol('processed');
|
|
74
17
|
return {
|
|
75
18
|
postcssPlugin: 'UsingTokens',
|
|
76
|
-
|
|
19
|
+
AtRule(atRule, helper) {
|
|
77
20
|
// @ts-expect-error
|
|
78
|
-
if (
|
|
21
|
+
if (atRule[processed]) {
|
|
79
22
|
return;
|
|
80
23
|
}
|
|
81
|
-
|
|
24
|
+
|
|
25
|
+
// @ts-expect-error: The 'variable' property does not exist on 'AtRule' according to the TypeScript definitions.
|
|
26
|
+
// However, the 'postcss-less' library adds a 'variable' property to 'AtRule' when parsing LESS variables.
|
|
27
|
+
// This property indicates whether the 'AtRule' is a LESS variable.
|
|
28
|
+
if (atRule.variable) {
|
|
29
|
+
// TODO https://hello.atlassian.net/browse/DCA11Y-637
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// @ts-expect-error
|
|
33
|
+
atRule[processed] = true;
|
|
34
|
+
},
|
|
35
|
+
Declaration: decl => {
|
|
36
|
+
// @ts-expect-error
|
|
37
|
+
if (decl[processed]) {
|
|
82
38
|
return;
|
|
83
39
|
}
|
|
84
40
|
if (decl.value === 'none') {
|
|
85
41
|
return;
|
|
86
42
|
}
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
const cssVarMatch = decl.value.match(cssVarRe);
|
|
95
|
-
if (cssVarMatch) {
|
|
96
|
-
var _getMetaFromCssVar;
|
|
97
|
-
match = cssVarMatch[0];
|
|
98
|
-
if (isDesignToken(stripVar(match))) {
|
|
43
|
+
const baseMeta = getBaseDeclarationMeta(decl);
|
|
44
|
+
if (isCssDeclaration(decl.prop)) {
|
|
45
|
+
// TODO https://hello.atlassian.net/browse/DCA11Y-637
|
|
46
|
+
}
|
|
47
|
+
if (isColorRelatedProperty(decl.prop)) {
|
|
48
|
+
const values = splitCssValue(decl.value);
|
|
49
|
+
if (!values) {
|
|
99
50
|
return;
|
|
100
51
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
searchTerms.push(...((_knownColors$decl$val = knownColors[decl.value.toLowerCase()]) !== null && _knownColors$decl$val !== void 0 ? _knownColors$decl$val : []));
|
|
125
|
-
}
|
|
126
|
-
if (!match) {
|
|
127
|
-
// eslint-disable-next-line no-console
|
|
128
|
-
console.warn(`Unable to find match for declaration: ${decl.prop}: ${decl.value}`);
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
const cleanSearchTerms = cleanMeta(searchTerms).join(' ');
|
|
132
|
-
const results = search.get(cleanSearchTerms);
|
|
133
|
-
const candidates = results.map(result => result[1]);
|
|
134
|
-
const replacement = candidates.length ? designTokens[candidates[0]] : 'MISSING_TOKEN';
|
|
135
|
-
if (decl.prop === 'box-shadow') {
|
|
136
|
-
decl.value = `var(${replacement}, ${decl.value})`;
|
|
137
|
-
} else {
|
|
138
|
-
decl.value = decl.value.split(match).join(`var(${replacement}, ${match})`);
|
|
52
|
+
switch (decl.prop) {
|
|
53
|
+
case 'box-shadow':
|
|
54
|
+
const meta = values.reduce((acc, curr) => {
|
|
55
|
+
const parsedValue = parseValue(curr);
|
|
56
|
+
if (!parsedValue) {
|
|
57
|
+
return acc;
|
|
58
|
+
}
|
|
59
|
+
return [...acc, ...parsedValue.getMeta()];
|
|
60
|
+
}, baseMeta);
|
|
61
|
+
const token = findToken(meta);
|
|
62
|
+
decl.value = `var(${token}, ${decl.value})`;
|
|
63
|
+
break;
|
|
64
|
+
default:
|
|
65
|
+
const replacedValues = values.map(value => {
|
|
66
|
+
const parsedValue = parseValue(value);
|
|
67
|
+
if (!parsedValue) {
|
|
68
|
+
return value;
|
|
69
|
+
}
|
|
70
|
+
return parsedValue.getReplacement(baseMeta);
|
|
71
|
+
});
|
|
72
|
+
decl.value = replacedValues.join(' ');
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
139
75
|
}
|
|
140
76
|
|
|
141
77
|
// @ts-expect-error
|
|
@@ -148,6 +84,6 @@ export default async function transformer(file) {
|
|
|
148
84
|
const src = typeof file === 'string' ? file : file.source;
|
|
149
85
|
const {
|
|
150
86
|
css
|
|
151
|
-
} = await processor.process(src,
|
|
87
|
+
} = await processor.process(src, POSTCSS_OPTIONS);
|
|
152
88
|
return css;
|
|
153
89
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { knownNamedColors, knownVariables } from './legacy-colors';
|
|
2
|
+
const NAMED_COLORS = Object.keys(knownNamedColors);
|
|
3
|
+
const GRADIENT_TYPES = ['linear', 'radial', 'conic'];
|
|
4
|
+
const LESS_COLOR_FUNCTIONS = ['lighten', 'darken', 'saturate', 'desaturate', 'fadein', 'fadeout', 'fade', 'spin', 'mix', 'greyscale', 'contrast', 'multiply', 'screen', 'overlay', 'softlight', 'hardlight', 'difference', 'exclusion', 'average', 'negation', 'tint', 'shade', 'luma', 'hue', 'saturation', 'lightness', 'alpha', 'red', 'green', 'blue'];
|
|
5
|
+
const REGEXES = {
|
|
6
|
+
// The CSS regular expression matches CSS variable declarations.
|
|
7
|
+
// It looks for the string "var(" followed by any characters except a closing parenthesis, and ending with a closing parenthesis.
|
|
8
|
+
CSS: /var\([^\)]+\)/g,
|
|
9
|
+
// The RAW_COLOR regular expression matches various CSS color formats including hexadecimal, RGB(A), HSL(A), LAB, LCH, and HWB.
|
|
10
|
+
// It allows for optional leading and trailing white spaces.
|
|
11
|
+
// For RGBA and HSLA, it allows any number (including negative numbers and numbers greater than 1) for the alpha channel.
|
|
12
|
+
// For RGB, HSL, LAB, LCH, and HWB, it expects three comma-separated values.
|
|
13
|
+
// It also allows optional white spaces around the commas and the values.
|
|
14
|
+
RAW_COLOR: /^\s*(#([0-9a-f]{3}){1,2}|(rgba|hsla)\(\s*\d{1,3}%?\s*(,\s*\d{1,3}%?\s*){2},\s*-?\d*\.?\d+\s*\)|(rgb|hsl)\(\s*\d{1,3}%?\s*(,\s*\d{1,3}%?\s*){2}\)\s*|(lab|lch)\(\s*\d{1,3}%?\s+\d{1,3}%?\s+\d{1,3}%?\s*\)|hwb\(\s*\d{1,3}\s+\d{1,3}%?\s+\d{1,3}%?\s*\))\s*$/i
|
|
15
|
+
};
|
|
16
|
+
export function isKnownCssVariable(value) {
|
|
17
|
+
return value in knownVariables;
|
|
18
|
+
}
|
|
19
|
+
export function isRawColor(value) {
|
|
20
|
+
return REGEXES.RAW_COLOR.test(value);
|
|
21
|
+
}
|
|
22
|
+
export function isNamedColor(value) {
|
|
23
|
+
return NAMED_COLORS.includes(value);
|
|
24
|
+
}
|
|
25
|
+
export function isGradient(value) {
|
|
26
|
+
return GRADIENT_TYPES.some(gradient => value.startsWith(`${gradient}-gradient(`));
|
|
27
|
+
}
|
|
28
|
+
export function extractBetweenParentheses(value) {
|
|
29
|
+
const match = value.match(/\((.*?)\)/);
|
|
30
|
+
return match ? match[1] : '';
|
|
31
|
+
}
|
|
32
|
+
export function isLessFunction(value) {
|
|
33
|
+
return LESS_COLOR_FUNCTIONS.some(func => value.startsWith(`${func}(`));
|
|
34
|
+
}
|