@atlaskit/eslint-plugin-design-system 7.0.3 → 8.0.1
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 +51 -0
- package/README.md +14 -15
- package/constellation/index/usage.mdx +14 -19
- package/dist/cjs/presets/all.codegen.js +1 -2
- package/dist/cjs/rules/ensure-design-token-usage/index.js +1 -1
- package/dist/cjs/rules/index.codegen.js +1 -3
- package/dist/cjs/rules/utils/is-node.js +8 -0
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/presets/all.codegen.js +1 -2
- package/dist/es2019/rules/ensure-design-token-usage/index.js +1 -1
- package/dist/es2019/rules/index.codegen.js +1 -3
- package/dist/es2019/rules/utils/is-node.js +6 -0
- package/dist/es2019/version.json +1 -1
- package/dist/esm/presets/all.codegen.js +1 -2
- package/dist/esm/rules/ensure-design-token-usage/index.js +1 -1
- package/dist/esm/rules/index.codegen.js +1 -3
- package/dist/esm/rules/utils/is-node.js +8 -0
- package/dist/esm/version.json +1 -1
- package/dist/types/index.codegen.d.ts +0 -1
- package/dist/types/presets/all.codegen.d.ts +1 -2
- package/dist/types/rules/index.codegen.d.ts +0 -1
- package/dist/types-ts4.5/index.codegen.d.ts +0 -1
- package/dist/types-ts4.5/presets/all.codegen.d.ts +1 -2
- package/dist/types-ts4.5/rules/index.codegen.d.ts +0 -1
- package/package.json +1 -1
- package/report.api.md +0 -2
- package/tmp/api-report-tmp.d.ts +0 -2
- package/dist/cjs/rules/ensure-design-token-usage-spacing/index.js +0 -33
- package/dist/es2019/rules/ensure-design-token-usage-spacing/index.js +0 -24
- package/dist/esm/rules/ensure-design-token-usage-spacing/index.js +0 -25
- package/dist/types/rules/ensure-design-token-usage-spacing/index.d.ts +0 -2
- package/dist/types-ts4.5/rules/ensure-design-token-usage-spacing/index.d.ts +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,56 @@
|
|
|
1
1
|
# @atlaskit/eslint-plugin-design-system
|
|
2
2
|
|
|
3
|
+
## 8.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`278fb6833be`](https://bitbucket.org/atlassian/atlassian-frontend/commits/278fb6833be) - The `ensure-design-token-usage` rule no longer lints against styles inside `xcss` as it already has type-safety built in for properties that accept tokens.
|
|
8
|
+
|
|
9
|
+
## 8.0.0
|
|
10
|
+
|
|
11
|
+
### Major Changes
|
|
12
|
+
|
|
13
|
+
- [`3919464ef44`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3919464ef44) - Removed `ensure-design-token-usage-spacing`. Use `ensure-design-token-usage` instead. See release notes for v7.0.0 for more info.
|
|
14
|
+
|
|
15
|
+
`ensure-design-token-usage` now **errors** against spacing properties by default.
|
|
16
|
+
|
|
17
|
+
If the `domains` option is provided it will override any defaults, for example the following will ignore defaults and only error for color:
|
|
18
|
+
|
|
19
|
+
```js
|
|
20
|
+
rules: {
|
|
21
|
+
'@atlaskit/design-system/ensure-design-token-usage': [
|
|
22
|
+
'error',
|
|
23
|
+
{
|
|
24
|
+
domains: ['color'],
|
|
25
|
+
shouldEnforceFallbacks: false
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
},
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
You can use `ensure-design-token-usage/preview` to **warn** about spacing properties until you are ready to set the main rule to error:
|
|
32
|
+
|
|
33
|
+
```js
|
|
34
|
+
rules: {
|
|
35
|
+
'@atlaskit/design-system/ensure-design-token-usage/preview': [
|
|
36
|
+
'warn',
|
|
37
|
+
{
|
|
38
|
+
domains: ['spacing'],
|
|
39
|
+
shouldEnforceFallbacks: false
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
'@atlaskit/design-system/ensure-design-token-usage': [
|
|
43
|
+
'error',
|
|
44
|
+
{
|
|
45
|
+
domains: ['color'],
|
|
46
|
+
shouldEnforceFallbacks: false
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
},
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
In many cases `eslint --fix` will automatically apply migrations from hardcoded values and `gridSize` to space tokens.
|
|
53
|
+
|
|
3
54
|
## 7.0.3
|
|
4
55
|
|
|
5
56
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -47,20 +47,19 @@ module.exports = {
|
|
|
47
47
|
<!-- START_RULE_TABLE_CODEGEN -->
|
|
48
48
|
<!-- @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen -->
|
|
49
49
|
|
|
50
|
-
| Rule | Description
|
|
51
|
-
| ------------------------------------------------------------------------------------------------------- |
|
|
52
|
-
| <a href="./src/rules/consistent-css-prop-usage/README.md">consistent-css-prop-usage</a> | Ensures consistency with CSS and xCSS prop usages
|
|
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.
|
|
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.
|
|
55
|
-
| <a href="./src/rules/
|
|
56
|
-
| <a href="./src/rules/
|
|
57
|
-
| <a href="./src/rules/no-
|
|
58
|
-
| <a href="./src/rules/no-deprecated-
|
|
59
|
-
| <a href="./src/rules/no-deprecated-
|
|
60
|
-
| <a href="./src/rules/no-
|
|
61
|
-
| <a href="./src/rules/no-
|
|
62
|
-
| <a href="./src/rules/
|
|
63
|
-
| <a href="./src/rules/use-
|
|
64
|
-
| <a href="./src/rules/use-visually-hidden/README.md">use-visually-hidden</a> | Enforce usage of the visually hidden component. | Yes | Yes | |
|
|
50
|
+
| Rule | Description | Recommended | Fixable | Suggestions |
|
|
51
|
+
| ------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------- | ------- | ----------- |
|
|
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
|
+
| <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 | |
|
|
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 | |
|
|
55
|
+
| <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
|
+
| <a href="./src/rules/no-banned-imports/README.md">no-banned-imports</a> | Disallow importing banned modules. | Yes | | |
|
|
57
|
+
| <a href="./src/rules/no-deprecated-apis/README.md">no-deprecated-apis</a> | Disallow using deprecated APIs. | Yes | | |
|
|
58
|
+
| <a href="./src/rules/no-deprecated-design-token-usage/README.md">no-deprecated-design-token-usage</a> | Disallow using deprecated design tokens. | Yes | Yes | |
|
|
59
|
+
| <a href="./src/rules/no-deprecated-imports/README.md">no-deprecated-imports</a> | Disallow importing deprecated modules. | Yes | | |
|
|
60
|
+
| <a href="./src/rules/no-margin/README.md">no-margin</a> | Disallow using the margin CSS property. | | | |
|
|
61
|
+
| <a href="./src/rules/no-unsafe-design-token-usage/README.md">no-unsafe-design-token-usage</a> | Enforces design token usage is statically and locally analyzable. | Yes | Yes | |
|
|
62
|
+
| <a href="./src/rules/use-primitives/README.md">use-primitives</a> | Encourage the usage of primitives components. | | Yes | Yes |
|
|
63
|
+
| <a href="./src/rules/use-visually-hidden/README.md">use-visually-hidden</a> | Enforce usage of the visually hidden component. | Yes | Yes | |
|
|
65
64
|
|
|
66
65
|
<!-- END_RULE_TABLE_CODEGEN -->
|
|
@@ -11,21 +11,20 @@ This plugin contains rules that should be used when working with the [Atlassian
|
|
|
11
11
|
<!-- START_RULE_TABLE_CODEGEN -->
|
|
12
12
|
<!-- @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen -->
|
|
13
13
|
|
|
14
|
-
| Rule | Description
|
|
15
|
-
| ---------------------------------------------------------------------------------- |
|
|
16
|
-
| <a href="#consistent-css-prop-usage">consistent-css-prop-usage</a> | Ensures consistency with CSS and xCSS prop usages
|
|
17
|
-
| <a href="#ensure-design-token-usage">ensure-design-token-usage</a> | Enforces usage of design tokens rather than hard-coded values.
|
|
18
|
-
| <a href="#ensure-design-token-usage-preview">ensure-design-token-usage/preview</a> | Enforces usage of pre-release design tokens rather than hard-coded values.
|
|
19
|
-
| <a href="#
|
|
20
|
-
| <a href="#
|
|
21
|
-
| <a href="#no-
|
|
22
|
-
| <a href="#no-deprecated-
|
|
23
|
-
| <a href="#no-deprecated-
|
|
24
|
-
| <a href="#no-
|
|
25
|
-
| <a href="#no-
|
|
26
|
-
| <a href="#
|
|
27
|
-
| <a href="#use-
|
|
28
|
-
| <a href="#use-visually-hidden">use-visually-hidden</a> | Enforce usage of the visually hidden component. | Yes | Yes | |
|
|
14
|
+
| Rule | Description | Recommended | Fixable | Suggestions |
|
|
15
|
+
| ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------- | ------- | ----------- |
|
|
16
|
+
| <a href="#consistent-css-prop-usage">consistent-css-prop-usage</a> | Ensures consistency with CSS and xCSS prop usages | Yes | Yes | |
|
|
17
|
+
| <a href="#ensure-design-token-usage">ensure-design-token-usage</a> | Enforces usage of design tokens rather than hard-coded values. | Yes | Yes | |
|
|
18
|
+
| <a href="#ensure-design-token-usage-preview">ensure-design-token-usage/preview</a> | Enforces usage of pre-release design tokens rather than hard-coded values. | | Yes | |
|
|
19
|
+
| <a href="#icon-label">icon-label</a> | Enforces accessible usage of icon labels when composed with Atlassian Design System components. | Yes | Yes | |
|
|
20
|
+
| <a href="#no-banned-imports">no-banned-imports</a> | Disallow importing banned modules. | Yes | | |
|
|
21
|
+
| <a href="#no-deprecated-apis">no-deprecated-apis</a> | Disallow using deprecated APIs. | Yes | | |
|
|
22
|
+
| <a href="#no-deprecated-design-token-usage">no-deprecated-design-token-usage</a> | Disallow using deprecated design tokens. | Yes | Yes | |
|
|
23
|
+
| <a href="#no-deprecated-imports">no-deprecated-imports</a> | Disallow importing deprecated modules. | Yes | | |
|
|
24
|
+
| <a href="#no-margin">no-margin</a> | Disallow using the margin CSS property. | | | |
|
|
25
|
+
| <a href="#no-unsafe-design-token-usage">no-unsafe-design-token-usage</a> | Enforces design token usage is statically and locally analyzable. | Yes | Yes | |
|
|
26
|
+
| <a href="#use-primitives">use-primitives</a> | Encourage the usage of primitives components. | | Yes | Yes |
|
|
27
|
+
| <a href="#use-visually-hidden">use-visually-hidden</a> | Enforce usage of the visually hidden component. | Yes | Yes | |
|
|
29
28
|
|
|
30
29
|
<!-- END_RULE_TABLE_CODEGEN -->
|
|
31
30
|
|
|
@@ -205,10 +204,6 @@ This rule is a clone of `ensure-design-token-usage` and is intended to allow you
|
|
|
205
204
|
|
|
206
205
|
See `ensure-design-token-usage` for full usage documentation.
|
|
207
206
|
|
|
208
|
-
## ensure-design-token-usage-spacing
|
|
209
|
-
|
|
210
|
-
This rule is deprecated and will be removed imminently. Use `ensure-design-token-usage` instead.
|
|
211
|
-
|
|
212
207
|
## icon-label
|
|
213
208
|
|
|
214
209
|
Icon labels are used to describe what the icon is so the visually impaired can be described what the UI element is.
|
|
@@ -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::8f70fad50a1889d1f86b3339503a60d1>>
|
|
10
10
|
* @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
|
|
11
11
|
*/
|
|
12
12
|
var _default = {
|
|
@@ -15,7 +15,6 @@ var _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-design-token-usage-spacing': 'warn',
|
|
19
18
|
'@atlaskit/design-system/icon-label': 'warn',
|
|
20
19
|
'@atlaskit/design-system/no-banned-imports': 'error',
|
|
21
20
|
'@atlaskit/design-system/no-deprecated-apis': 'error',
|
|
@@ -15,7 +15,7 @@ var _ruleMeta = _interopRequireDefault(require("./rule-meta"));
|
|
|
15
15
|
var _spacing = require("./spacing");
|
|
16
16
|
var _spacingUtils = require("./spacing-utils");
|
|
17
17
|
var defaultConfig = {
|
|
18
|
-
domains: ['color'],
|
|
18
|
+
domains: ['color', 'spacing'],
|
|
19
19
|
applyImport: true,
|
|
20
20
|
shouldEnforceFallbacks: false
|
|
21
21
|
};
|
|
@@ -8,7 +8,6 @@ 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 _ensureDesignTokenUsageSpacing = _interopRequireDefault(require("./ensure-design-token-usage-spacing"));
|
|
12
11
|
var _iconLabel = _interopRequireDefault(require("./icon-label"));
|
|
13
12
|
var _noBannedImports = _interopRequireDefault(require("./no-banned-imports"));
|
|
14
13
|
var _noDeprecatedApis = _interopRequireDefault(require("./no-deprecated-apis"));
|
|
@@ -20,14 +19,13 @@ var _usePrimitives = _interopRequireDefault(require("./use-primitives"));
|
|
|
20
19
|
var _useVisuallyHidden = _interopRequireDefault(require("./use-visually-hidden"));
|
|
21
20
|
/**
|
|
22
21
|
* THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
|
|
23
|
-
* @codegen <<SignedSource::
|
|
22
|
+
* @codegen <<SignedSource::4dc269134c0cd38281be0b5ad7582dc8>>
|
|
24
23
|
* @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
|
|
25
24
|
*/
|
|
26
25
|
var _default = {
|
|
27
26
|
'consistent-css-prop-usage': _consistentCssPropUsage.default,
|
|
28
27
|
'ensure-design-token-usage': _ensureDesignTokenUsage.default,
|
|
29
28
|
'ensure-design-token-usage/preview': _ensureDesignTokenUsagePreview.default,
|
|
30
|
-
'ensure-design-token-usage-spacing': _ensureDesignTokenUsageSpacing.default,
|
|
31
29
|
'icon-label': _iconLabel.default,
|
|
32
30
|
'no-banned-imports': _noBannedImports.default,
|
|
33
31
|
'no-deprecated-apis': _noDeprecatedApis.default,
|
|
@@ -57,6 +57,9 @@ var isCssInJsObjectNode = function isCssInJsObjectNode(node) {
|
|
|
57
57
|
return (node === null || node === void 0 ? void 0 : node.type) === 'CallExpression' && node.callee.type === 'MemberExpression' && node.callee.object.type === 'Identifier' && cssInJsCallees.includes(node.callee.object.name);
|
|
58
58
|
};
|
|
59
59
|
exports.isCssInJsObjectNode = isCssInJsObjectNode;
|
|
60
|
+
var isXcssCallNode = function isXcssCallNode(node) {
|
|
61
|
+
return (node === null || node === void 0 ? void 0 : node.type) === 'CallExpression' && node.callee.type === 'Identifier' && node.callee.name === 'xcss';
|
|
62
|
+
};
|
|
60
63
|
var isDecendantOfStyleBlock = function isDecendantOfStyleBlock(node) {
|
|
61
64
|
if (node.type === 'VariableDeclarator') {
|
|
62
65
|
if (node.id.type !== 'Identifier') {
|
|
@@ -85,6 +88,11 @@ var isDecendantOfStyleBlock = function isDecendantOfStyleBlock(node) {
|
|
|
85
88
|
return varName.includes(el);
|
|
86
89
|
});
|
|
87
90
|
}
|
|
91
|
+
|
|
92
|
+
// xcss contains types for all properties that accept tokens, so ignore xcss for linting as it will report false positives
|
|
93
|
+
if (isXcssCallNode(node)) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
88
96
|
if (isCssInJsCallNode(node) || isCssInJsObjectNode(node) || isCssInJsTemplateNode(node)) {
|
|
89
97
|
return true;
|
|
90
98
|
}
|
package/dist/cjs/version.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
|
|
3
|
-
* @codegen <<SignedSource::
|
|
3
|
+
* @codegen <<SignedSource::8f70fad50a1889d1f86b3339503a60d1>>
|
|
4
4
|
* @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
|
|
5
5
|
*/
|
|
6
6
|
export default {
|
|
@@ -9,7 +9,6 @@ export default {
|
|
|
9
9
|
'@atlaskit/design-system/consistent-css-prop-usage': 'error',
|
|
10
10
|
'@atlaskit/design-system/ensure-design-token-usage': 'error',
|
|
11
11
|
'@atlaskit/design-system/ensure-design-token-usage/preview': 'warn',
|
|
12
|
-
'@atlaskit/design-system/ensure-design-token-usage-spacing': 'warn',
|
|
13
12
|
'@atlaskit/design-system/icon-label': 'warn',
|
|
14
13
|
'@atlaskit/design-system/no-banned-imports': 'error',
|
|
15
14
|
'@atlaskit/design-system/no-deprecated-apis': 'error',
|
|
@@ -7,7 +7,7 @@ import ruleMeta from './rule-meta';
|
|
|
7
7
|
import { lintObjectForSpacing } from './spacing';
|
|
8
8
|
import { convertHyphenatedNameToCamelCase, emToPixels, findParentNodeForLine, getDomainsForProperty, getFontSizeFromNode, getFontSizeValueInScope, getTokenReplacement, getValueFromShorthand, includesTokenString, insertTokensImport, isAuto, isTokenValueString, isValidSpacingValue, isZero, processCssNode, replacementComment, splitShorthandValues } from './spacing-utils';
|
|
9
9
|
const defaultConfig = {
|
|
10
|
-
domains: ['color'],
|
|
10
|
+
domains: ['color', 'spacing'],
|
|
11
11
|
applyImport: true,
|
|
12
12
|
shouldEnforceFallbacks: false
|
|
13
13
|
};
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
|
|
3
|
-
* @codegen <<SignedSource::
|
|
3
|
+
* @codegen <<SignedSource::4dc269134c0cd38281be0b5ad7582dc8>>
|
|
4
4
|
* @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
|
|
5
5
|
*/
|
|
6
6
|
import consistentCssPropUsage from './consistent-css-prop-usage';
|
|
7
7
|
import ensureDesignTokenUsage from './ensure-design-token-usage';
|
|
8
8
|
import ensureDesignTokenUsagePreview from './ensure-design-token-usage-preview';
|
|
9
|
-
import ensureDesignTokenUsageSpacing from './ensure-design-token-usage-spacing';
|
|
10
9
|
import iconLabel from './icon-label';
|
|
11
10
|
import noBannedImports from './no-banned-imports';
|
|
12
11
|
import noDeprecatedApis from './no-deprecated-apis';
|
|
@@ -20,7 +19,6 @@ export default {
|
|
|
20
19
|
'consistent-css-prop-usage': consistentCssPropUsage,
|
|
21
20
|
'ensure-design-token-usage': ensureDesignTokenUsage,
|
|
22
21
|
'ensure-design-token-usage/preview': ensureDesignTokenUsagePreview,
|
|
23
|
-
'ensure-design-token-usage-spacing': ensureDesignTokenUsageSpacing,
|
|
24
22
|
'icon-label': iconLabel,
|
|
25
23
|
'no-banned-imports': noBannedImports,
|
|
26
24
|
'no-deprecated-apis': noDeprecatedApis,
|
|
@@ -37,6 +37,7 @@ const cssInJsCallees = ['css', 'styled', 'styled2'];
|
|
|
37
37
|
export const isCssInJsTemplateNode = node => (node === null || node === void 0 ? void 0 : node.type) === 'TaggedTemplateExpression' && node.tag.type === 'MemberExpression' && node.tag.object.type === 'Identifier' && node.tag.object.name === 'styled';
|
|
38
38
|
export const isCssInJsCallNode = node => (node === null || node === void 0 ? void 0 : node.type) === 'CallExpression' && node.callee.type === 'Identifier' && cssInJsCallees.includes(node.callee.name);
|
|
39
39
|
export const isCssInJsObjectNode = node => (node === null || node === void 0 ? void 0 : node.type) === 'CallExpression' && node.callee.type === 'MemberExpression' && node.callee.object.type === 'Identifier' && cssInJsCallees.includes(node.callee.object.name);
|
|
40
|
+
const isXcssCallNode = node => (node === null || node === void 0 ? void 0 : node.type) === 'CallExpression' && node.callee.type === 'Identifier' && node.callee.name === 'xcss';
|
|
40
41
|
export const isDecendantOfStyleBlock = node => {
|
|
41
42
|
if (node.type === 'VariableDeclarator') {
|
|
42
43
|
if (node.id.type !== 'Identifier') {
|
|
@@ -61,6 +62,11 @@ export const isDecendantOfStyleBlock = node => {
|
|
|
61
62
|
const varName = node.id.name.toLowerCase();
|
|
62
63
|
return ['style', 'css', 'theme'].some(el => varName.includes(el));
|
|
63
64
|
}
|
|
65
|
+
|
|
66
|
+
// xcss contains types for all properties that accept tokens, so ignore xcss for linting as it will report false positives
|
|
67
|
+
if (isXcssCallNode(node)) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
64
70
|
if (isCssInJsCallNode(node) || isCssInJsObjectNode(node) || isCssInJsTemplateNode(node)) {
|
|
65
71
|
return true;
|
|
66
72
|
}
|
package/dist/es2019/version.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
|
|
3
|
-
* @codegen <<SignedSource::
|
|
3
|
+
* @codegen <<SignedSource::8f70fad50a1889d1f86b3339503a60d1>>
|
|
4
4
|
* @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
|
|
5
5
|
*/
|
|
6
6
|
export default {
|
|
@@ -9,7 +9,6 @@ export default {
|
|
|
9
9
|
'@atlaskit/design-system/consistent-css-prop-usage': 'error',
|
|
10
10
|
'@atlaskit/design-system/ensure-design-token-usage': 'error',
|
|
11
11
|
'@atlaskit/design-system/ensure-design-token-usage/preview': 'warn',
|
|
12
|
-
'@atlaskit/design-system/ensure-design-token-usage-spacing': 'warn',
|
|
13
12
|
'@atlaskit/design-system/icon-label': 'warn',
|
|
14
13
|
'@atlaskit/design-system/no-banned-imports': 'error',
|
|
15
14
|
'@atlaskit/design-system/no-deprecated-apis': 'error',
|
|
@@ -8,7 +8,7 @@ import ruleMeta from './rule-meta';
|
|
|
8
8
|
import { lintObjectForSpacing } from './spacing';
|
|
9
9
|
import { convertHyphenatedNameToCamelCase, emToPixels, findParentNodeForLine, getDomainsForProperty, getFontSizeFromNode, getFontSizeValueInScope, getTokenReplacement, getValueFromShorthand, includesTokenString, insertTokensImport, isAuto, isTokenValueString, isValidSpacingValue, isZero, processCssNode, replacementComment, splitShorthandValues } from './spacing-utils';
|
|
10
10
|
var defaultConfig = {
|
|
11
|
-
domains: ['color'],
|
|
11
|
+
domains: ['color', 'spacing'],
|
|
12
12
|
applyImport: true,
|
|
13
13
|
shouldEnforceFallbacks: false
|
|
14
14
|
};
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
|
|
3
|
-
* @codegen <<SignedSource::
|
|
3
|
+
* @codegen <<SignedSource::4dc269134c0cd38281be0b5ad7582dc8>>
|
|
4
4
|
* @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
|
|
5
5
|
*/
|
|
6
6
|
import consistentCssPropUsage from './consistent-css-prop-usage';
|
|
7
7
|
import ensureDesignTokenUsage from './ensure-design-token-usage';
|
|
8
8
|
import ensureDesignTokenUsagePreview from './ensure-design-token-usage-preview';
|
|
9
|
-
import ensureDesignTokenUsageSpacing from './ensure-design-token-usage-spacing';
|
|
10
9
|
import iconLabel from './icon-label';
|
|
11
10
|
import noBannedImports from './no-banned-imports';
|
|
12
11
|
import noDeprecatedApis from './no-deprecated-apis';
|
|
@@ -20,7 +19,6 @@ export default {
|
|
|
20
19
|
'consistent-css-prop-usage': consistentCssPropUsage,
|
|
21
20
|
'ensure-design-token-usage': ensureDesignTokenUsage,
|
|
22
21
|
'ensure-design-token-usage/preview': ensureDesignTokenUsagePreview,
|
|
23
|
-
'ensure-design-token-usage-spacing': ensureDesignTokenUsageSpacing,
|
|
24
22
|
'icon-label': iconLabel,
|
|
25
23
|
'no-banned-imports': noBannedImports,
|
|
26
24
|
'no-deprecated-apis': noDeprecatedApis,
|
|
@@ -44,6 +44,9 @@ export var isCssInJsCallNode = function isCssInJsCallNode(node) {
|
|
|
44
44
|
export var isCssInJsObjectNode = function isCssInJsObjectNode(node) {
|
|
45
45
|
return (node === null || node === void 0 ? void 0 : node.type) === 'CallExpression' && node.callee.type === 'MemberExpression' && node.callee.object.type === 'Identifier' && cssInJsCallees.includes(node.callee.object.name);
|
|
46
46
|
};
|
|
47
|
+
var isXcssCallNode = function isXcssCallNode(node) {
|
|
48
|
+
return (node === null || node === void 0 ? void 0 : node.type) === 'CallExpression' && node.callee.type === 'Identifier' && node.callee.name === 'xcss';
|
|
49
|
+
};
|
|
47
50
|
export var isDecendantOfStyleBlock = function isDecendantOfStyleBlock(node) {
|
|
48
51
|
if (node.type === 'VariableDeclarator') {
|
|
49
52
|
if (node.id.type !== 'Identifier') {
|
|
@@ -72,6 +75,11 @@ export var isDecendantOfStyleBlock = function isDecendantOfStyleBlock(node) {
|
|
|
72
75
|
return varName.includes(el);
|
|
73
76
|
});
|
|
74
77
|
}
|
|
78
|
+
|
|
79
|
+
// xcss contains types for all properties that accept tokens, so ignore xcss for linting as it will report false positives
|
|
80
|
+
if (isXcssCallNode(node)) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
75
83
|
if (isCssInJsCallNode(node) || isCssInJsObjectNode(node) || isCssInJsTemplateNode(node)) {
|
|
76
84
|
return true;
|
|
77
85
|
}
|
package/dist/esm/version.json
CHANGED
|
@@ -6,7 +6,6 @@ export declare const configs: {
|
|
|
6
6
|
'@atlaskit/design-system/consistent-css-prop-usage': string;
|
|
7
7
|
'@atlaskit/design-system/ensure-design-token-usage': string;
|
|
8
8
|
'@atlaskit/design-system/ensure-design-token-usage/preview': string;
|
|
9
|
-
'@atlaskit/design-system/ensure-design-token-usage-spacing': string;
|
|
10
9
|
'@atlaskit/design-system/icon-label': string;
|
|
11
10
|
'@atlaskit/design-system/no-banned-imports': string;
|
|
12
11
|
'@atlaskit/design-system/no-deprecated-apis': string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
|
|
3
|
-
* @codegen <<SignedSource::
|
|
3
|
+
* @codegen <<SignedSource::8f70fad50a1889d1f86b3339503a60d1>>
|
|
4
4
|
* @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
|
|
5
5
|
*/
|
|
6
6
|
declare const _default: {
|
|
@@ -9,7 +9,6 @@ declare const _default: {
|
|
|
9
9
|
'@atlaskit/design-system/consistent-css-prop-usage': string;
|
|
10
10
|
'@atlaskit/design-system/ensure-design-token-usage': string;
|
|
11
11
|
'@atlaskit/design-system/ensure-design-token-usage/preview': string;
|
|
12
|
-
'@atlaskit/design-system/ensure-design-token-usage-spacing': string;
|
|
13
12
|
'@atlaskit/design-system/icon-label': string;
|
|
14
13
|
'@atlaskit/design-system/no-banned-imports': string;
|
|
15
14
|
'@atlaskit/design-system/no-deprecated-apis': string;
|
|
@@ -2,7 +2,6 @@ declare const _default: {
|
|
|
2
2
|
'consistent-css-prop-usage': import("eslint").Rule.RuleModule;
|
|
3
3
|
'ensure-design-token-usage': import("eslint").Rule.RuleModule;
|
|
4
4
|
'ensure-design-token-usage/preview': import("eslint").Rule.RuleModule;
|
|
5
|
-
'ensure-design-token-usage-spacing': import("eslint").Rule.RuleModule;
|
|
6
5
|
'icon-label': import("eslint").Rule.RuleModule;
|
|
7
6
|
'no-banned-imports': import("eslint").Rule.RuleModule;
|
|
8
7
|
'no-deprecated-apis': import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<string, [{
|
|
@@ -6,7 +6,6 @@ export declare const configs: {
|
|
|
6
6
|
'@atlaskit/design-system/consistent-css-prop-usage': string;
|
|
7
7
|
'@atlaskit/design-system/ensure-design-token-usage': string;
|
|
8
8
|
'@atlaskit/design-system/ensure-design-token-usage/preview': string;
|
|
9
|
-
'@atlaskit/design-system/ensure-design-token-usage-spacing': string;
|
|
10
9
|
'@atlaskit/design-system/icon-label': string;
|
|
11
10
|
'@atlaskit/design-system/no-banned-imports': string;
|
|
12
11
|
'@atlaskit/design-system/no-deprecated-apis': string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
|
|
3
|
-
* @codegen <<SignedSource::
|
|
3
|
+
* @codegen <<SignedSource::8f70fad50a1889d1f86b3339503a60d1>>
|
|
4
4
|
* @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
|
|
5
5
|
*/
|
|
6
6
|
declare const _default: {
|
|
@@ -9,7 +9,6 @@ declare const _default: {
|
|
|
9
9
|
'@atlaskit/design-system/consistent-css-prop-usage': string;
|
|
10
10
|
'@atlaskit/design-system/ensure-design-token-usage': string;
|
|
11
11
|
'@atlaskit/design-system/ensure-design-token-usage/preview': string;
|
|
12
|
-
'@atlaskit/design-system/ensure-design-token-usage-spacing': string;
|
|
13
12
|
'@atlaskit/design-system/icon-label': string;
|
|
14
13
|
'@atlaskit/design-system/no-banned-imports': string;
|
|
15
14
|
'@atlaskit/design-system/no-deprecated-apis': string;
|
|
@@ -2,7 +2,6 @@ declare const _default: {
|
|
|
2
2
|
'consistent-css-prop-usage': import("eslint").Rule.RuleModule;
|
|
3
3
|
'ensure-design-token-usage': import("eslint").Rule.RuleModule;
|
|
4
4
|
'ensure-design-token-usage/preview': import("eslint").Rule.RuleModule;
|
|
5
|
-
'ensure-design-token-usage-spacing': import("eslint").Rule.RuleModule;
|
|
6
5
|
'icon-label': import("eslint").Rule.RuleModule;
|
|
7
6
|
'no-banned-imports': import("eslint").Rule.RuleModule;
|
|
8
7
|
'no-deprecated-apis': import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<string, [
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/eslint-plugin-design-system",
|
|
3
3
|
"description": "The essential plugin for use with the Atlassian Design System.",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "8.0.1",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"registry": "https://registry.npmjs.org/"
|
package/report.api.md
CHANGED
|
@@ -27,7 +27,6 @@ export const configs: {
|
|
|
27
27
|
'@atlaskit/design-system/consistent-css-prop-usage': string;
|
|
28
28
|
'@atlaskit/design-system/ensure-design-token-usage': string;
|
|
29
29
|
'@atlaskit/design-system/ensure-design-token-usage/preview': string;
|
|
30
|
-
'@atlaskit/design-system/ensure-design-token-usage-spacing': string;
|
|
31
30
|
'@atlaskit/design-system/icon-label': string;
|
|
32
31
|
'@atlaskit/design-system/no-banned-imports': string;
|
|
33
32
|
'@atlaskit/design-system/no-deprecated-apis': string;
|
|
@@ -95,7 +94,6 @@ export const rules: {
|
|
|
95
94
|
'consistent-css-prop-usage': Rule.RuleModule;
|
|
96
95
|
'ensure-design-token-usage': Rule.RuleModule;
|
|
97
96
|
'ensure-design-token-usage/preview': Rule.RuleModule;
|
|
98
|
-
'ensure-design-token-usage-spacing': Rule.RuleModule;
|
|
99
97
|
'icon-label': Rule.RuleModule;
|
|
100
98
|
'no-banned-imports': Rule.RuleModule;
|
|
101
99
|
'no-deprecated-apis': RuleModule<
|
package/tmp/api-report-tmp.d.ts
CHANGED
|
@@ -16,7 +16,6 @@ export const configs: {
|
|
|
16
16
|
'@atlaskit/design-system/consistent-css-prop-usage': string;
|
|
17
17
|
'@atlaskit/design-system/ensure-design-token-usage': string;
|
|
18
18
|
'@atlaskit/design-system/ensure-design-token-usage/preview': string;
|
|
19
|
-
'@atlaskit/design-system/ensure-design-token-usage-spacing': string;
|
|
20
19
|
'@atlaskit/design-system/icon-label': string;
|
|
21
20
|
'@atlaskit/design-system/no-banned-imports': string;
|
|
22
21
|
'@atlaskit/design-system/no-deprecated-apis': string;
|
|
@@ -81,7 +80,6 @@ export const rules: {
|
|
|
81
80
|
'consistent-css-prop-usage': Rule.RuleModule;
|
|
82
81
|
'ensure-design-token-usage': Rule.RuleModule;
|
|
83
82
|
'ensure-design-token-usage/preview': Rule.RuleModule;
|
|
84
|
-
'ensure-design-token-usage-spacing': Rule.RuleModule;
|
|
85
83
|
'icon-label': Rule.RuleModule;
|
|
86
84
|
'no-banned-imports': Rule.RuleModule;
|
|
87
85
|
'no-deprecated-apis': RuleModule<string, [{
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
-
var _ensureDesignTokenUsage = require("../ensure-design-token-usage");
|
|
10
|
-
var _ruleMeta = _interopRequireDefault(require("../ensure-design-token-usage/rule-meta"));
|
|
11
|
-
var _createRule = require("../utils/create-rule");
|
|
12
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
13
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
14
|
-
var defaultConfig = {
|
|
15
|
-
domains: ['spacing'],
|
|
16
|
-
applyImport: true,
|
|
17
|
-
shouldEnforceFallbacks: false
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
// TODO: Delete this file after merging. This exists only to ensure existing eslint-disable comments for the spacing rule do not error
|
|
21
|
-
var rule = (0, _createRule.createLintRule)({
|
|
22
|
-
meta: _objectSpread(_objectSpread({}, _ruleMeta.default), {}, {
|
|
23
|
-
name: 'ensure-design-token-usage-spacing',
|
|
24
|
-
docs: _objectSpread(_objectSpread({}, _ruleMeta.default.docs), {}, {
|
|
25
|
-
description: 'NOTE: This rule is deprecated and will be removed imminently. Use `ensure-design-token-usage` instead.',
|
|
26
|
-
recommended: false,
|
|
27
|
-
severity: 'warn'
|
|
28
|
-
})
|
|
29
|
-
}),
|
|
30
|
-
create: (0, _ensureDesignTokenUsage.createWithConfig)(defaultConfig)
|
|
31
|
-
});
|
|
32
|
-
var _default = rule;
|
|
33
|
-
exports.default = _default;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { createWithConfig } from '../ensure-design-token-usage';
|
|
2
|
-
import ruleMeta from '../ensure-design-token-usage/rule-meta';
|
|
3
|
-
import { createLintRule } from '../utils/create-rule';
|
|
4
|
-
const defaultConfig = {
|
|
5
|
-
domains: ['spacing'],
|
|
6
|
-
applyImport: true,
|
|
7
|
-
shouldEnforceFallbacks: false
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
// TODO: Delete this file after merging. This exists only to ensure existing eslint-disable comments for the spacing rule do not error
|
|
11
|
-
const rule = createLintRule({
|
|
12
|
-
meta: {
|
|
13
|
-
...ruleMeta,
|
|
14
|
-
name: 'ensure-design-token-usage-spacing',
|
|
15
|
-
docs: {
|
|
16
|
-
...ruleMeta.docs,
|
|
17
|
-
description: 'NOTE: This rule is deprecated and will be removed imminently. Use `ensure-design-token-usage` instead.',
|
|
18
|
-
recommended: false,
|
|
19
|
-
severity: 'warn'
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
create: createWithConfig(defaultConfig)
|
|
23
|
-
});
|
|
24
|
-
export default rule;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
-
import { createWithConfig } from '../ensure-design-token-usage';
|
|
5
|
-
import ruleMeta from '../ensure-design-token-usage/rule-meta';
|
|
6
|
-
import { createLintRule } from '../utils/create-rule';
|
|
7
|
-
var defaultConfig = {
|
|
8
|
-
domains: ['spacing'],
|
|
9
|
-
applyImport: true,
|
|
10
|
-
shouldEnforceFallbacks: false
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
// TODO: Delete this file after merging. This exists only to ensure existing eslint-disable comments for the spacing rule do not error
|
|
14
|
-
var rule = createLintRule({
|
|
15
|
-
meta: _objectSpread(_objectSpread({}, ruleMeta), {}, {
|
|
16
|
-
name: 'ensure-design-token-usage-spacing',
|
|
17
|
-
docs: _objectSpread(_objectSpread({}, ruleMeta.docs), {}, {
|
|
18
|
-
description: 'NOTE: This rule is deprecated and will be removed imminently. Use `ensure-design-token-usage` instead.',
|
|
19
|
-
recommended: false,
|
|
20
|
-
severity: 'warn'
|
|
21
|
-
})
|
|
22
|
-
}),
|
|
23
|
-
create: createWithConfig(defaultConfig)
|
|
24
|
-
});
|
|
25
|
-
export default rule;
|