@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.
Files changed (32) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +14 -15
  3. package/constellation/index/usage.mdx +14 -19
  4. package/dist/cjs/presets/all.codegen.js +1 -2
  5. package/dist/cjs/rules/ensure-design-token-usage/index.js +1 -1
  6. package/dist/cjs/rules/index.codegen.js +1 -3
  7. package/dist/cjs/rules/utils/is-node.js +8 -0
  8. package/dist/cjs/version.json +1 -1
  9. package/dist/es2019/presets/all.codegen.js +1 -2
  10. package/dist/es2019/rules/ensure-design-token-usage/index.js +1 -1
  11. package/dist/es2019/rules/index.codegen.js +1 -3
  12. package/dist/es2019/rules/utils/is-node.js +6 -0
  13. package/dist/es2019/version.json +1 -1
  14. package/dist/esm/presets/all.codegen.js +1 -2
  15. package/dist/esm/rules/ensure-design-token-usage/index.js +1 -1
  16. package/dist/esm/rules/index.codegen.js +1 -3
  17. package/dist/esm/rules/utils/is-node.js +8 -0
  18. package/dist/esm/version.json +1 -1
  19. package/dist/types/index.codegen.d.ts +0 -1
  20. package/dist/types/presets/all.codegen.d.ts +1 -2
  21. package/dist/types/rules/index.codegen.d.ts +0 -1
  22. package/dist/types-ts4.5/index.codegen.d.ts +0 -1
  23. package/dist/types-ts4.5/presets/all.codegen.d.ts +1 -2
  24. package/dist/types-ts4.5/rules/index.codegen.d.ts +0 -1
  25. package/package.json +1 -1
  26. package/report.api.md +0 -2
  27. package/tmp/api-report-tmp.d.ts +0 -2
  28. package/dist/cjs/rules/ensure-design-token-usage-spacing/index.js +0 -33
  29. package/dist/es2019/rules/ensure-design-token-usage-spacing/index.js +0 -24
  30. package/dist/esm/rules/ensure-design-token-usage-spacing/index.js +0 -25
  31. package/dist/types/rules/ensure-design-token-usage-spacing/index.d.ts +0 -2
  32. 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 | 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/ensure-design-token-usage-spacing/README.md">ensure-design-token-usage-spacing</a> | NOTE: This rule is deprecated and will be removed imminently. Use `ensure-design-token-usage` instead. | | Yes | |
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 | |
57
- | <a href="./src/rules/no-banned-imports/README.md">no-banned-imports</a> | Disallow importing banned modules. | Yes | | |
58
- | <a href="./src/rules/no-deprecated-apis/README.md">no-deprecated-apis</a> | Disallow using deprecated APIs. | Yes | | |
59
- | <a href="./src/rules/no-deprecated-design-token-usage/README.md">no-deprecated-design-token-usage</a> | Disallow using deprecated design tokens. | Yes | Yes | |
60
- | <a href="./src/rules/no-deprecated-imports/README.md">no-deprecated-imports</a> | Disallow importing deprecated modules. | Yes | | |
61
- | <a href="./src/rules/no-margin/README.md">no-margin</a> | Disallow using the margin CSS property. | | | |
62
- | <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 | |
63
- | <a href="./src/rules/use-primitives/README.md">use-primitives</a> | Encourage the usage of primitives components. | | Yes | Yes |
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 | 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="#ensure-design-token-usage-spacing">ensure-design-token-usage-spacing</a> | NOTE: This rule is deprecated and will be removed imminently. Use `ensure-design-token-usage` instead. | | Yes | |
20
- | <a href="#icon-label">icon-label</a> | Enforces accessible usage of icon labels when composed with Atlassian Design System components. | Yes | Yes | |
21
- | <a href="#no-banned-imports">no-banned-imports</a> | Disallow importing banned modules. | Yes | | |
22
- | <a href="#no-deprecated-apis">no-deprecated-apis</a> | Disallow using deprecated APIs. | Yes | | |
23
- | <a href="#no-deprecated-design-token-usage">no-deprecated-design-token-usage</a> | Disallow using deprecated design tokens. | Yes | Yes | |
24
- | <a href="#no-deprecated-imports">no-deprecated-imports</a> | Disallow importing deprecated modules. | Yes | | |
25
- | <a href="#no-margin">no-margin</a> | Disallow using the margin CSS property. | | | |
26
- | <a href="#no-unsafe-design-token-usage">no-unsafe-design-token-usage</a> | Enforces design token usage is statically and locally analyzable. | Yes | Yes | |
27
- | <a href="#use-primitives">use-primitives</a> | Encourage the usage of primitives components. | | Yes | Yes |
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::c7c1e7b7b9a3bd8449c8cd6959b1e0df>>
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::38ab74a9dcc71723113b27495c41e4ec>>
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
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/eslint-plugin-design-system",
3
- "version": "7.0.3",
3
+ "version": "8.0.1",
4
4
  "sideEffects": false
5
5
  }
@@ -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::c7c1e7b7b9a3bd8449c8cd6959b1e0df>>
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::38ab74a9dcc71723113b27495c41e4ec>>
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
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/eslint-plugin-design-system",
3
- "version": "7.0.3",
3
+ "version": "8.0.1",
4
4
  "sideEffects": false
5
5
  }
@@ -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::c7c1e7b7b9a3bd8449c8cd6959b1e0df>>
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::38ab74a9dcc71723113b27495c41e4ec>>
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
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/eslint-plugin-design-system",
3
- "version": "7.0.3",
3
+ "version": "8.0.1",
4
4
  "sideEffects": false
5
5
  }
@@ -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::c7c1e7b7b9a3bd8449c8cd6959b1e0df>>
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::c7c1e7b7b9a3bd8449c8cd6959b1e0df>>
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": "7.0.3",
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<
@@ -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;
@@ -1,2 +0,0 @@
1
- declare const rule: import("eslint").Rule.RuleModule;
2
- export default rule;
@@ -1,2 +0,0 @@
1
- declare const rule: import("eslint").Rule.RuleModule;
2
- export default rule;