@atlaskit/eslint-plugin-design-system 4.6.0 → 4.7.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 +6 -0
- package/dist/cjs/index.js +16 -1
- package/dist/cjs/rules/no-banned-imports/index.js +56 -0
- package/dist/cjs/rules/no-banned-imports/paths.js +14 -0
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/index.js +15 -1
- package/dist/es2019/rules/no-banned-imports/index.js +49 -0
- package/dist/es2019/rules/no-banned-imports/paths.js +7 -0
- package/dist/es2019/version.json +1 -1
- package/dist/esm/index.js +15 -1
- package/dist/esm/rules/no-banned-imports/index.js +46 -0
- package/dist/esm/rules/no-banned-imports/paths.js +7 -0
- package/dist/esm/version.json +1 -1
- package/dist/types/index.d.ts +13 -0
- package/dist/types/rules/no-banned-imports/index.d.ts +3 -0
- package/dist/types/rules/no-banned-imports/paths.d.ts +4 -0
- package/package.json +3 -2
- package/report.api.md +31 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @atlaskit/eslint-plugin-design-system
|
|
2
2
|
|
|
3
|
+
## 4.7.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`740057653f9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/740057653f9) - Adds additional rule to restrict usage of banned imports from the design system.
|
|
8
|
+
|
|
3
9
|
## 4.6.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
package/dist/cjs/index.js
CHANGED
|
@@ -11,6 +11,8 @@ var _ensureDesignTokenUsage = _interopRequireDefault(require("./rules/ensure-des
|
|
|
11
11
|
|
|
12
12
|
var _iconLabel = _interopRequireDefault(require("./rules/icon-label"));
|
|
13
13
|
|
|
14
|
+
var _noBannedImports = _interopRequireDefault(require("./rules/no-banned-imports"));
|
|
15
|
+
|
|
14
16
|
var _noDeprecatedApis = _interopRequireDefault(require("./rules/no-deprecated-apis"));
|
|
15
17
|
|
|
16
18
|
var _noDeprecatedDesignTokenUsage = _interopRequireDefault(require("./rules/no-deprecated-design-token-usage"));
|
|
@@ -27,6 +29,7 @@ var rules = {
|
|
|
27
29
|
'no-deprecated-apis': _noDeprecatedApis.default,
|
|
28
30
|
'no-deprecated-design-token-usage': _noDeprecatedDesignTokenUsage.default,
|
|
29
31
|
'no-deprecated-imports': _noDeprecatedImports.default,
|
|
32
|
+
'no-banned-imports': _noBannedImports.default,
|
|
30
33
|
'no-unsafe-design-token-usage': _noUnsafeDesignTokenUsage.default,
|
|
31
34
|
'use-visually-hidden': _useVisuallyHidden.default
|
|
32
35
|
};
|
|
@@ -38,7 +41,19 @@ var configs = {
|
|
|
38
41
|
'@atlaskit/design-system/icon-label': 'warn',
|
|
39
42
|
'@atlaskit/design-system/no-deprecated-apis': 'warn',
|
|
40
43
|
'@atlaskit/design-system/no-deprecated-imports': 'error',
|
|
41
|
-
'@atlaskit/design-system/use-visually-hidden': 'error'
|
|
44
|
+
'@atlaskit/design-system/use-visually-hidden': 'error',
|
|
45
|
+
'@atlaskit/design-system/no-banned-imports': 'error'
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
all: {
|
|
49
|
+
plugins: ['@atlaskit/design-system'],
|
|
50
|
+
rules: {
|
|
51
|
+
'@atlaskit/design-system/icon-label': 'error',
|
|
52
|
+
'@atlaskit/design-system/no-deprecated-apis': 'error',
|
|
53
|
+
'@atlaskit/design-system/no-deprecated-imports': 'error',
|
|
54
|
+
'@atlaskit/design-system/use-visually-hidden': 'error',
|
|
55
|
+
'@atlaskit/design-system/ensure-design-token-usage': 'error',
|
|
56
|
+
'@atlaskit/design-system/no-banned-imports': 'error'
|
|
42
57
|
}
|
|
43
58
|
}
|
|
44
59
|
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
9
|
+
|
|
10
|
+
var _paths = require("./paths");
|
|
11
|
+
|
|
12
|
+
var rule = {
|
|
13
|
+
meta: {
|
|
14
|
+
type: 'problem',
|
|
15
|
+
docs: {
|
|
16
|
+
description: 'Disallow specified modules when loaded by `import`',
|
|
17
|
+
recommended: true
|
|
18
|
+
},
|
|
19
|
+
messages: {
|
|
20
|
+
path: "The '{{importSource}}' import is restricted from being used. {{customMessage}}"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
create: function create(context) {
|
|
24
|
+
function checkNode(node) {
|
|
25
|
+
if ((0, _eslintCodemodUtils.isNodeOfType)(node, 'ExportAllDeclaration') || (0, _eslintCodemodUtils.isNodeOfType)(node, 'ExportNamedDeclaration') || (0, _eslintCodemodUtils.isNodeOfType)(node, 'ImportDeclaration')) {
|
|
26
|
+
_paths.restrictedPaths.find(function (_ref) {
|
|
27
|
+
var _node$source, _node$source$value;
|
|
28
|
+
|
|
29
|
+
var path = _ref.path,
|
|
30
|
+
message = _ref.message;
|
|
31
|
+
var source = (_node$source = node.source) === null || _node$source === void 0 ? void 0 : (_node$source$value = _node$source.value) === null || _node$source$value === void 0 ? void 0 : _node$source$value.toString();
|
|
32
|
+
|
|
33
|
+
if (source && (source === path || source.startsWith(path))) {
|
|
34
|
+
context.report({
|
|
35
|
+
node: node,
|
|
36
|
+
messageId: 'path',
|
|
37
|
+
data: {
|
|
38
|
+
importSource: source,
|
|
39
|
+
customMessage: message
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return {
|
|
48
|
+
ImportDeclaration: checkNode,
|
|
49
|
+
ExportAllDeclaration: checkNode,
|
|
50
|
+
ExportNamedDeclaration: checkNode,
|
|
51
|
+
ExportDefaultDeclaration: checkNode
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
var _default = rule;
|
|
56
|
+
exports.default = _default;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.restrictedPaths = void 0;
|
|
7
|
+
var restrictedPaths = [{
|
|
8
|
+
path: '@atlaskit/ds-lib',
|
|
9
|
+
message: "The '@atlaskit/ds-lib' library has been designed as a utility library for internal usage. It should not be consumed directly."
|
|
10
|
+
}, {
|
|
11
|
+
path: '@atlaskit/ds-explorations',
|
|
12
|
+
message: "The @atlaskit/ds-explorations package is currently in an experimental state and should not be consumed directly."
|
|
13
|
+
}];
|
|
14
|
+
exports.restrictedPaths = restrictedPaths;
|
package/dist/cjs/version.json
CHANGED
package/dist/es2019/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import ensureTokenUsage from './rules/ensure-design-token-usage';
|
|
2
2
|
import iconLabel from './rules/icon-label';
|
|
3
|
+
import noBannedImports from './rules/no-banned-imports';
|
|
3
4
|
import noDeprecatedAPIs from './rules/no-deprecated-apis';
|
|
4
5
|
import noDeprecatedUsage from './rules/no-deprecated-design-token-usage';
|
|
5
6
|
import noDeprecatedImports from './rules/no-deprecated-imports';
|
|
@@ -11,6 +12,7 @@ export const rules = {
|
|
|
11
12
|
'no-deprecated-apis': noDeprecatedAPIs,
|
|
12
13
|
'no-deprecated-design-token-usage': noDeprecatedUsage,
|
|
13
14
|
'no-deprecated-imports': noDeprecatedImports,
|
|
15
|
+
'no-banned-imports': noBannedImports,
|
|
14
16
|
'no-unsafe-design-token-usage': noUnsafeUsage,
|
|
15
17
|
'use-visually-hidden': useVisuallyHidden
|
|
16
18
|
};
|
|
@@ -21,7 +23,19 @@ export const configs = {
|
|
|
21
23
|
'@atlaskit/design-system/icon-label': 'warn',
|
|
22
24
|
'@atlaskit/design-system/no-deprecated-apis': 'warn',
|
|
23
25
|
'@atlaskit/design-system/no-deprecated-imports': 'error',
|
|
24
|
-
'@atlaskit/design-system/use-visually-hidden': 'error'
|
|
26
|
+
'@atlaskit/design-system/use-visually-hidden': 'error',
|
|
27
|
+
'@atlaskit/design-system/no-banned-imports': 'error'
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
all: {
|
|
31
|
+
plugins: ['@atlaskit/design-system'],
|
|
32
|
+
rules: {
|
|
33
|
+
'@atlaskit/design-system/icon-label': 'error',
|
|
34
|
+
'@atlaskit/design-system/no-deprecated-apis': 'error',
|
|
35
|
+
'@atlaskit/design-system/no-deprecated-imports': 'error',
|
|
36
|
+
'@atlaskit/design-system/use-visually-hidden': 'error',
|
|
37
|
+
'@atlaskit/design-system/ensure-design-token-usage': 'error',
|
|
38
|
+
'@atlaskit/design-system/no-banned-imports': 'error'
|
|
25
39
|
}
|
|
26
40
|
}
|
|
27
41
|
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { isNodeOfType } from 'eslint-codemod-utils';
|
|
2
|
+
import { restrictedPaths } from './paths';
|
|
3
|
+
const rule = {
|
|
4
|
+
meta: {
|
|
5
|
+
type: 'problem',
|
|
6
|
+
docs: {
|
|
7
|
+
description: 'Disallow specified modules when loaded by `import`',
|
|
8
|
+
recommended: true
|
|
9
|
+
},
|
|
10
|
+
messages: {
|
|
11
|
+
path: "The '{{importSource}}' import is restricted from being used. {{customMessage}}"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
create(context) {
|
|
16
|
+
function checkNode(node) {
|
|
17
|
+
if (isNodeOfType(node, 'ExportAllDeclaration') || isNodeOfType(node, 'ExportNamedDeclaration') || isNodeOfType(node, 'ImportDeclaration')) {
|
|
18
|
+
restrictedPaths.find(({
|
|
19
|
+
path,
|
|
20
|
+
message
|
|
21
|
+
}) => {
|
|
22
|
+
var _node$source, _node$source$value;
|
|
23
|
+
|
|
24
|
+
const source = (_node$source = node.source) === null || _node$source === void 0 ? void 0 : (_node$source$value = _node$source.value) === null || _node$source$value === void 0 ? void 0 : _node$source$value.toString();
|
|
25
|
+
|
|
26
|
+
if (source && (source === path || source.startsWith(path))) {
|
|
27
|
+
context.report({
|
|
28
|
+
node,
|
|
29
|
+
messageId: 'path',
|
|
30
|
+
data: {
|
|
31
|
+
importSource: source,
|
|
32
|
+
customMessage: message
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return {
|
|
41
|
+
ImportDeclaration: checkNode,
|
|
42
|
+
ExportAllDeclaration: checkNode,
|
|
43
|
+
ExportNamedDeclaration: checkNode,
|
|
44
|
+
ExportDefaultDeclaration: checkNode
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
};
|
|
49
|
+
export default rule;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const restrictedPaths = [{
|
|
2
|
+
path: '@atlaskit/ds-lib',
|
|
3
|
+
message: `The '@atlaskit/ds-lib' library has been designed as a utility library for internal usage. It should not be consumed directly.`
|
|
4
|
+
}, {
|
|
5
|
+
path: '@atlaskit/ds-explorations',
|
|
6
|
+
message: `The @atlaskit/ds-explorations package is currently in an experimental state and should not be consumed directly.`
|
|
7
|
+
}];
|
package/dist/es2019/version.json
CHANGED
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import ensureTokenUsage from './rules/ensure-design-token-usage';
|
|
2
2
|
import iconLabel from './rules/icon-label';
|
|
3
|
+
import noBannedImports from './rules/no-banned-imports';
|
|
3
4
|
import noDeprecatedAPIs from './rules/no-deprecated-apis';
|
|
4
5
|
import noDeprecatedUsage from './rules/no-deprecated-design-token-usage';
|
|
5
6
|
import noDeprecatedImports from './rules/no-deprecated-imports';
|
|
@@ -11,6 +12,7 @@ export var rules = {
|
|
|
11
12
|
'no-deprecated-apis': noDeprecatedAPIs,
|
|
12
13
|
'no-deprecated-design-token-usage': noDeprecatedUsage,
|
|
13
14
|
'no-deprecated-imports': noDeprecatedImports,
|
|
15
|
+
'no-banned-imports': noBannedImports,
|
|
14
16
|
'no-unsafe-design-token-usage': noUnsafeUsage,
|
|
15
17
|
'use-visually-hidden': useVisuallyHidden
|
|
16
18
|
};
|
|
@@ -21,7 +23,19 @@ export var configs = {
|
|
|
21
23
|
'@atlaskit/design-system/icon-label': 'warn',
|
|
22
24
|
'@atlaskit/design-system/no-deprecated-apis': 'warn',
|
|
23
25
|
'@atlaskit/design-system/no-deprecated-imports': 'error',
|
|
24
|
-
'@atlaskit/design-system/use-visually-hidden': 'error'
|
|
26
|
+
'@atlaskit/design-system/use-visually-hidden': 'error',
|
|
27
|
+
'@atlaskit/design-system/no-banned-imports': 'error'
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
all: {
|
|
31
|
+
plugins: ['@atlaskit/design-system'],
|
|
32
|
+
rules: {
|
|
33
|
+
'@atlaskit/design-system/icon-label': 'error',
|
|
34
|
+
'@atlaskit/design-system/no-deprecated-apis': 'error',
|
|
35
|
+
'@atlaskit/design-system/no-deprecated-imports': 'error',
|
|
36
|
+
'@atlaskit/design-system/use-visually-hidden': 'error',
|
|
37
|
+
'@atlaskit/design-system/ensure-design-token-usage': 'error',
|
|
38
|
+
'@atlaskit/design-system/no-banned-imports': 'error'
|
|
25
39
|
}
|
|
26
40
|
}
|
|
27
41
|
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { isNodeOfType } from 'eslint-codemod-utils';
|
|
2
|
+
import { restrictedPaths } from './paths';
|
|
3
|
+
var rule = {
|
|
4
|
+
meta: {
|
|
5
|
+
type: 'problem',
|
|
6
|
+
docs: {
|
|
7
|
+
description: 'Disallow specified modules when loaded by `import`',
|
|
8
|
+
recommended: true
|
|
9
|
+
},
|
|
10
|
+
messages: {
|
|
11
|
+
path: "The '{{importSource}}' import is restricted from being used. {{customMessage}}"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
create: function create(context) {
|
|
15
|
+
function checkNode(node) {
|
|
16
|
+
if (isNodeOfType(node, 'ExportAllDeclaration') || isNodeOfType(node, 'ExportNamedDeclaration') || isNodeOfType(node, 'ImportDeclaration')) {
|
|
17
|
+
restrictedPaths.find(function (_ref) {
|
|
18
|
+
var _node$source, _node$source$value;
|
|
19
|
+
|
|
20
|
+
var path = _ref.path,
|
|
21
|
+
message = _ref.message;
|
|
22
|
+
var source = (_node$source = node.source) === null || _node$source === void 0 ? void 0 : (_node$source$value = _node$source.value) === null || _node$source$value === void 0 ? void 0 : _node$source$value.toString();
|
|
23
|
+
|
|
24
|
+
if (source && (source === path || source.startsWith(path))) {
|
|
25
|
+
context.report({
|
|
26
|
+
node: node,
|
|
27
|
+
messageId: 'path',
|
|
28
|
+
data: {
|
|
29
|
+
importSource: source,
|
|
30
|
+
customMessage: message
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return {
|
|
39
|
+
ImportDeclaration: checkNode,
|
|
40
|
+
ExportAllDeclaration: checkNode,
|
|
41
|
+
ExportNamedDeclaration: checkNode,
|
|
42
|
+
ExportDefaultDeclaration: checkNode
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
export default rule;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var restrictedPaths = [{
|
|
2
|
+
path: '@atlaskit/ds-lib',
|
|
3
|
+
message: "The '@atlaskit/ds-lib' library has been designed as a utility library for internal usage. It should not be consumed directly."
|
|
4
|
+
}, {
|
|
5
|
+
path: '@atlaskit/ds-explorations',
|
|
6
|
+
message: "The @atlaskit/ds-explorations package is currently in an experimental state and should not be consumed directly."
|
|
7
|
+
}];
|
package/dist/esm/version.json
CHANGED
package/dist/types/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export declare const rules: {
|
|
|
4
4
|
'no-deprecated-apis': import("eslint").Rule.RuleModule;
|
|
5
5
|
'no-deprecated-design-token-usage': import("eslint").Rule.RuleModule;
|
|
6
6
|
'no-deprecated-imports': import("eslint").Rule.RuleModule;
|
|
7
|
+
'no-banned-imports': import("eslint").Rule.RuleModule;
|
|
7
8
|
'no-unsafe-design-token-usage': import("eslint").Rule.RuleModule;
|
|
8
9
|
'use-visually-hidden': import("eslint").Rule.RuleModule;
|
|
9
10
|
};
|
|
@@ -15,6 +16,18 @@ export declare const configs: {
|
|
|
15
16
|
'@atlaskit/design-system/no-deprecated-apis': string;
|
|
16
17
|
'@atlaskit/design-system/no-deprecated-imports': string;
|
|
17
18
|
'@atlaskit/design-system/use-visually-hidden': string;
|
|
19
|
+
'@atlaskit/design-system/no-banned-imports': string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
all: {
|
|
23
|
+
plugins: string[];
|
|
24
|
+
rules: {
|
|
25
|
+
'@atlaskit/design-system/icon-label': string;
|
|
26
|
+
'@atlaskit/design-system/no-deprecated-apis': string;
|
|
27
|
+
'@atlaskit/design-system/no-deprecated-imports': string;
|
|
28
|
+
'@atlaskit/design-system/use-visually-hidden': string;
|
|
29
|
+
'@atlaskit/design-system/ensure-design-token-usage': string;
|
|
30
|
+
'@atlaskit/design-system/no-banned-imports': string;
|
|
18
31
|
};
|
|
19
32
|
};
|
|
20
33
|
};
|
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.
|
|
4
|
+
"version": "4.7.0",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"eslint-codemod-utils": "^1.3.2"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@atlaskit/ds-lib": "^
|
|
34
|
+
"@atlaskit/ds-lib": "^2.0.0",
|
|
35
35
|
"@atlaskit/theme": "^12.0.2",
|
|
36
36
|
"@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
|
|
37
37
|
"@emotion/core": "^10.0.9",
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"circular-dependencies": "file-and-folder-level"
|
|
49
49
|
},
|
|
50
50
|
"@repo/internal": {
|
|
51
|
+
"dom-events": "use-bind-event-listener",
|
|
51
52
|
"design-system": "v1",
|
|
52
53
|
"deprecation": "no-deprecated-imports",
|
|
53
54
|
"styling": [
|
package/report.api.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
## API Report File for "@atlaskit/eslint-plugin-design-system"
|
|
2
|
+
|
|
3
|
+
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
import { Rule } from 'eslint';
|
|
7
|
+
|
|
8
|
+
export declare const configs: {
|
|
9
|
+
recommended: {
|
|
10
|
+
plugins: string[];
|
|
11
|
+
rules: {
|
|
12
|
+
'@atlaskit/design-system/icon-label': string;
|
|
13
|
+
'@atlaskit/design-system/no-deprecated-apis': string;
|
|
14
|
+
'@atlaskit/design-system/no-deprecated-imports': string;
|
|
15
|
+
'@atlaskit/design-system/use-visually-hidden': string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export declare const rules: {
|
|
21
|
+
'ensure-design-token-usage': Rule.RuleModule;
|
|
22
|
+
'icon-label': Rule.RuleModule;
|
|
23
|
+
'no-deprecated-apis': Rule.RuleModule;
|
|
24
|
+
'no-deprecated-design-token-usage': Rule.RuleModule;
|
|
25
|
+
'no-deprecated-imports': Rule.RuleModule;
|
|
26
|
+
'no-unsafe-design-token-usage': Rule.RuleModule;
|
|
27
|
+
'use-visually-hidden': Rule.RuleModule;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export {};
|
|
31
|
+
```
|