@atlaskit/eslint-plugin-design-system 10.15.0 → 10.17.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 +18 -0
- package/README.md +1 -0
- package/dist/cjs/presets/all.codegen.js +2 -1
- package/dist/cjs/rules/ensure-icon-color/index.js +57 -0
- package/dist/cjs/rules/index.codegen.js +3 -1
- package/dist/cjs/rules/no-legacy-icons/checks.js +272 -84
- package/dist/cjs/rules/no-legacy-icons/helpers.js +214 -14
- package/dist/cjs/rules/no-legacy-icons/index.js +4 -0
- package/dist/es2019/presets/all.codegen.js +2 -1
- package/dist/es2019/rules/ensure-icon-color/index.js +50 -0
- package/dist/es2019/rules/index.codegen.js +3 -1
- package/dist/es2019/rules/no-legacy-icons/checks.js +190 -24
- package/dist/es2019/rules/no-legacy-icons/helpers.js +220 -6
- package/dist/es2019/rules/no-legacy-icons/index.js +4 -0
- package/dist/esm/presets/all.codegen.js +2 -1
- package/dist/esm/rules/ensure-icon-color/index.js +52 -0
- package/dist/esm/rules/index.codegen.js +3 -1
- package/dist/esm/rules/no-legacy-icons/checks.js +273 -85
- package/dist/esm/rules/no-legacy-icons/helpers.js +214 -14
- package/dist/esm/rules/no-legacy-icons/index.js +4 -0
- package/dist/types/index.codegen.d.ts +1 -0
- package/dist/types/presets/all.codegen.d.ts +2 -1
- package/dist/types/rules/ensure-icon-color/index.d.ts +3 -0
- package/dist/types/rules/index.codegen.d.ts +1 -0
- package/dist/types/rules/no-legacy-icons/helpers.d.ts +88 -3
- package/dist/types-ts4.5/index.codegen.d.ts +1 -0
- package/dist/types-ts4.5/presets/all.codegen.d.ts +2 -1
- package/dist/types-ts4.5/rules/ensure-icon-color/index.d.ts +3 -0
- package/dist/types-ts4.5/rules/index.codegen.d.ts +1 -0
- package/dist/types-ts4.5/rules/no-legacy-icons/helpers.d.ts +88 -3
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @atlaskit/eslint-plugin-design-system
|
|
2
2
|
|
|
3
|
+
## 10.17.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#131211](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/131211)
|
|
8
|
+
[`9877a261592a7`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/9877a261592a7) -
|
|
9
|
+
Added an autofixer for `no-legacy-icons` eslint rule which migrates icons in the "Auto Migration"
|
|
10
|
+
category to new icons. Use `shouldUseMigrationPath` option to control the import path of the new
|
|
11
|
+
icon.
|
|
12
|
+
|
|
13
|
+
## 10.16.0
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- [#130413](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/130413)
|
|
18
|
+
[`1a796c4acf4e9`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/1a796c4acf4e9) -
|
|
19
|
+
Added new eslint plugin, ensure-icon-color
|
|
20
|
+
|
|
3
21
|
## 10.15.0
|
|
4
22
|
|
|
5
23
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -52,6 +52,7 @@ module.exports = {
|
|
|
52
52
|
| <a href="./src/rules/consistent-css-prop-usage/README.md">consistent-css-prop-usage</a> | Ensures consistency with `css` and `xcss` prop usages | Yes | Yes | |
|
|
53
53
|
| <a href="./src/rules/ensure-design-token-usage/README.md">ensure-design-token-usage</a> | Enforces usage of design tokens rather than hard-coded values. | Yes | Yes | Yes |
|
|
54
54
|
| <a href="./src/rules/ensure-design-token-usage-preview/README.md">ensure-design-token-usage/preview</a> | Enforces usage of pre-release design tokens rather than hard-coded values. | | Yes | Yes |
|
|
55
|
+
| <a href="./src/rules/ensure-icon-color/README.md">ensure-icon-color</a> | Enforces that upcoming icon components have a color prop set, to enable a migration of the default value. | | | |
|
|
55
56
|
| <a href="./src/rules/icon-label/README.md">icon-label</a> | Enforces accessible usage of icon labels when composed with Atlassian Design System components. | Yes | Yes | |
|
|
56
57
|
| <a href="./src/rules/no-banned-imports/README.md">no-banned-imports</a> | Disallow importing banned modules. | Yes | | |
|
|
57
58
|
| <a href="./src/rules/no-css-tagged-template-expression/README.md">no-css-tagged-template-expression</a> | Disallows any `css` tagged template expressions that originate from Emotion, Styled Components or Compiled | | Yes | |
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
/**
|
|
8
8
|
* THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
|
|
9
|
-
* @codegen <<SignedSource::
|
|
9
|
+
* @codegen <<SignedSource::16613cb3962ed68af0bffd70eef5f5e2>>
|
|
10
10
|
* @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
|
|
11
11
|
*/
|
|
12
12
|
var _default = exports.default = {
|
|
@@ -15,6 +15,7 @@ var _default = exports.default = {
|
|
|
15
15
|
'@atlaskit/design-system/consistent-css-prop-usage': 'error',
|
|
16
16
|
'@atlaskit/design-system/ensure-design-token-usage': 'error',
|
|
17
17
|
'@atlaskit/design-system/ensure-design-token-usage/preview': 'warn',
|
|
18
|
+
'@atlaskit/design-system/ensure-icon-color': 'error',
|
|
18
19
|
'@atlaskit/design-system/icon-label': 'warn',
|
|
19
20
|
'@atlaskit/design-system/no-banned-imports': 'error',
|
|
20
21
|
'@atlaskit/design-system/no-css-tagged-template-expression': 'error',
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
8
|
+
var _isFromImportSource = require("../no-custom-icons/checks/is-from-import-source");
|
|
9
|
+
var _createRule = require("../utils/create-rule");
|
|
10
|
+
var _errorBoundary = require("../utils/error-boundary");
|
|
11
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Returns if the node is a JSXElement with a prop that matches the given name.
|
|
15
|
+
*/
|
|
16
|
+
function hasProp(node, propName) {
|
|
17
|
+
return (0, _eslintCodemodUtils.isNodeOfType)(node.openingElement, 'JSXOpeningElement') && node.openingElement.attributes.some(function (a) {
|
|
18
|
+
return a.type === 'JSXAttribute' && a.name.name === propName;
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
var rule = (0, _createRule.createLintRule)({
|
|
22
|
+
meta: {
|
|
23
|
+
name: 'ensure-icon-color',
|
|
24
|
+
docs: {
|
|
25
|
+
description: 'Enforces that upcoming icon components have a color prop set, to enable a migration of the default value.',
|
|
26
|
+
recommended: false,
|
|
27
|
+
severity: 'error'
|
|
28
|
+
},
|
|
29
|
+
messages: {
|
|
30
|
+
missingColorProp: 'The default value of the `color` prop is about to change. To assist in the migration, the color prop must be set on new icons from `@atlaskit/icon/(core|utility)`.'
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
create: function create(context) {
|
|
34
|
+
/**
|
|
35
|
+
* Contains a map of imported icon components from any atlaskit icon package.
|
|
36
|
+
*/
|
|
37
|
+
var isNewIcon = (0, _isFromImportSource.createIsFromImportSourceFor)(/^@(atlaskit\/icon|atlassian\/icon-lab)\/(core|utility)\/*/);
|
|
38
|
+
return (0, _errorBoundary.errorBoundary)({
|
|
39
|
+
JSXElement: function JSXElement(node) {
|
|
40
|
+
var _isNewIcon$getImportS;
|
|
41
|
+
if (!isNewIcon(node) || hasProp(node, 'color')) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
var importSource = (_isNewIcon$getImportS = isNewIcon.getImportSource(node)) !== null && _isNewIcon$getImportS !== void 0 ? _isNewIcon$getImportS : '';
|
|
45
|
+
context.report({
|
|
46
|
+
node: node.openingElement,
|
|
47
|
+
messageId: 'missingColorProp',
|
|
48
|
+
data: {
|
|
49
|
+
importSource: importSource
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
},
|
|
53
|
+
ImportDeclaration: isNewIcon.importDeclarationHook
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
var _default = exports.default = rule;
|
|
@@ -8,6 +8,7 @@ exports.default = void 0;
|
|
|
8
8
|
var _consistentCssPropUsage = _interopRequireDefault(require("./consistent-css-prop-usage"));
|
|
9
9
|
var _ensureDesignTokenUsage = _interopRequireDefault(require("./ensure-design-token-usage"));
|
|
10
10
|
var _ensureDesignTokenUsagePreview = _interopRequireDefault(require("./ensure-design-token-usage-preview"));
|
|
11
|
+
var _ensureIconColor = _interopRequireDefault(require("./ensure-icon-color"));
|
|
11
12
|
var _iconLabel = _interopRequireDefault(require("./icon-label"));
|
|
12
13
|
var _noBannedImports = _interopRequireDefault(require("./no-banned-imports"));
|
|
13
14
|
var _noCssTaggedTemplateExpression = _interopRequireDefault(require("./no-css-tagged-template-expression"));
|
|
@@ -48,13 +49,14 @@ var _useTokensTypography = _interopRequireDefault(require("./use-tokens-typograp
|
|
|
48
49
|
var _useVisuallyHidden = _interopRequireDefault(require("./use-visually-hidden"));
|
|
49
50
|
/**
|
|
50
51
|
* THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
|
|
51
|
-
* @codegen <<SignedSource::
|
|
52
|
+
* @codegen <<SignedSource::c2a140a3f690737dd938e746ef8fb9d5>>
|
|
52
53
|
* @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
|
|
53
54
|
*/
|
|
54
55
|
var _default = exports.default = {
|
|
55
56
|
'consistent-css-prop-usage': _consistentCssPropUsage.default,
|
|
56
57
|
'ensure-design-token-usage': _ensureDesignTokenUsage.default,
|
|
57
58
|
'ensure-design-token-usage/preview': _ensureDesignTokenUsagePreview.default,
|
|
59
|
+
'ensure-icon-color': _ensureIconColor.default,
|
|
58
60
|
'icon-label': _iconLabel.default,
|
|
59
61
|
'no-banned-imports': _noBannedImports.default,
|
|
60
62
|
'no-css-tagged-template-expression': _noCssTaggedTemplateExpression.default,
|