eslint-plugin-gamut 2.0.3 → 2.0.4-alpha.63b306.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/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "dist"
12
12
  ],
13
13
  "name": "eslint-plugin-gamut",
14
- "version": "2.0.3",
14
+ "version": "2.0.4-alpha.63b306.0",
15
15
  "license": "MIT",
16
16
  "main": "./dist/index.js",
17
17
  "module": "dist/index.js",
@@ -30,5 +30,5 @@
30
30
  "dependencies": {
31
31
  "@typescript-eslint/utils": "^5.15.0"
32
32
  },
33
- "gitHead": "fe70bd1ec980feef3ecc2bbe5dd4c0b7e8453da6"
33
+ "gitHead": "86d072fe863fa10a8d3cf6842c2b0bba187d67b8"
34
34
  }
@@ -1,2 +0,0 @@
1
- import { ESLintUtils } from '@typescript-eslint/utils';
2
- export declare const createRule: <TOptions extends readonly unknown[], TMessageIds extends string, TRuleListener extends import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleListener = import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleListener>({ name, meta, ...rule }: Readonly<ESLintUtils.RuleWithMetaAndName<TOptions, TMessageIds, TRuleListener>>) => import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<TMessageIds, TOptions, TRuleListener>;
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createRule = void 0;
4
- const utils_1 = require("@typescript-eslint/utils");
5
- exports.createRule = utils_1.ESLintUtils.RuleCreator((name) => `https://example.com/rule/${name}`);
6
- //# sourceMappingURL=createRule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createRule.js","sourceRoot":"","sources":["../src/createRule.ts"],"names":[],"mappings":";;;AAAA,oDAAuD;AAE1C,QAAA,UAAU,GAAG,mBAAW,CAAC,WAAW,CAC/C,CAAC,IAAI,EAAE,EAAE,CAAC,4BAA4B,IAAI,EAAE,CAC7C,CAAC"}
package/dist/file.d.ts DELETED
File without changes
package/dist/file.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=file.js.map
package/dist/file.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- import { TSESTree } from '@typescript-eslint/utils';
2
- declare const _default: import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"removeDist" | "removeSrc" | "useRelativeImport", never[], {
3
- 'ImportDeclaration[source.value=/(^@)codecademy(\\u002F)gamut/]': (node: TSESTree.ImportDeclaration) => void;
4
- }>;
5
- export default _default;
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const createRule_1 = require("./createRule");
4
- exports.default = (0, createRule_1.createRule)({
5
- create(context) {
6
- return {
7
- 'ImportDeclaration[source.value=/(^@)codecademy(\\u002F)gamut/]': function (node) {
8
- const filename = context.getFilename();
9
- const importPath = node.source.value;
10
- const fileDirectory = filename.split('/packages/')[1].split('/')[0];
11
- const importPackage = importPath.split('@codecademy/')[1].split('/')[0];
12
- if (fileDirectory === importPackage) {
13
- context.report({
14
- messageId: 'useRelativeImport',
15
- node,
16
- });
17
- return;
18
- }
19
- if (importPath.includes('/src')) {
20
- const indexOfSrc = node.source.range[0] + importPath.search('/src');
21
- context.report({
22
- ...(importPath.endsWith('/src') && {
23
- fix: (fixer) => {
24
- return fixer.removeRange([indexOfSrc + 1, node.range[1] - 2]);
25
- },
26
- }),
27
- messageId: 'removeSrc',
28
- node,
29
- });
30
- return;
31
- }
32
- if (importPath.includes('/dist')) {
33
- const indexOfDist = node.source.range[0] + importPath.search('/dist');
34
- context.report({
35
- ...(importPath.endsWith('/dist') && {
36
- fix: (fixer) => {
37
- return fixer.removeRange([indexOfDist + 1, node.range[1] - 2]);
38
- },
39
- }),
40
- messageId: 'removeDist',
41
- node,
42
- });
43
- }
44
- },
45
- };
46
- },
47
- defaultOptions: [],
48
- meta: {
49
- docs: {
50
- description: 'Ensure Gamut import statements have proper module paths.',
51
- recommended: 'error',
52
- },
53
- fixable: 'code',
54
- messages: {
55
- removeDist: 'There is no need to append /dist to the end of this module path.',
56
- removeSrc: 'There is no need to append /src to the end of this module path.',
57
- useRelativeImport: 'Use a relative path for this import statement.',
58
- },
59
- type: 'suggestion',
60
- schema: [],
61
- },
62
- name: 'gamut-import-paths',
63
- });
64
- //# sourceMappingURL=gamut-import-paths.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gamut-import-paths.js","sourceRoot":"","sources":["../src/gamut-import-paths.ts"],"names":[],"mappings":";;AAEA,6CAA0C;AAE1C,kBAAe,IAAA,uBAAU,EAAC;IACxB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,gEAAgE,EAAE,UAChE,IAAgC;gBAEhC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;gBACvC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAErC,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpE,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAExE,IAAI,aAAa,KAAK,aAAa,EAAE;oBACnC,OAAO,CAAC,MAAM,CAAC;wBACb,SAAS,EAAE,mBAAmB;wBAC9B,IAAI;qBACL,CAAC,CAAC;oBACH,OAAO;iBACR;gBAED,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACpE,OAAO,CAAC,MAAM,CAAC;wBACb,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI;4BACjC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;gCACb,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,UAAU,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BAChE,CAAC;yBACF,CAAC;wBACF,SAAS,EAAE,WAAW;wBACtB,IAAI;qBACL,CAAC,CAAC;oBACH,OAAO;iBACR;gBACD,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;oBAChC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBACtE,OAAO,CAAC,MAAM,CAAC;wBACb,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI;4BAClC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;gCACb,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BACjE,CAAC;yBACF,CAAC;wBACF,SAAS,EAAE,YAAY;wBACvB,IAAI;qBACL,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IACD,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,0DAA0D;YACvE,WAAW,EAAE,OAAO;SACrB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,UAAU,EACR,kEAAkE;YACpE,SAAS,EACP,iEAAiE;YACnE,iBAAiB,EAAE,gDAAgD;SACpE;QACD,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,EAAE;KACX;IACD,IAAI,EAAE,oBAAoB;CAC3B,CAAC,CAAC"}
package/dist/index.d.ts DELETED
@@ -1,13 +0,0 @@
1
- import recommended from './recommended';
2
- declare const rules: {
3
- 'import-paths': import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"removeDist" | "removeSrc" | "useRelativeImport", never[], {
4
- 'ImportDeclaration[source.value=/(^@)codecademy(\\u002F)gamut/]': (node: import("@typescript-eslint/types/dist/generated/ast-spec").ImportDeclaration) => void;
5
- }>;
6
- 'no-css-standalone': import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"noCssStandalone", never[], {
7
- 'ImportDeclaration[source.value=/.*\\.s?css/]': (node: never) => void;
8
- }>;
9
- 'prefer-themed': import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"preferThemed", never[], {
10
- TaggedTemplateExpression(node: import("@typescript-eslint/types/dist/generated/ast-spec").TaggedTemplateExpression): void;
11
- }>;
12
- };
13
- export { rules, recommended };
package/dist/index.js DELETED
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.recommended = exports.rules = void 0;
7
- const gamut_import_paths_1 = __importDefault(require("./gamut-import-paths"));
8
- const no_css_standalone_1 = __importDefault(require("./no-css-standalone"));
9
- const prefer_themed_1 = __importDefault(require("./prefer-themed"));
10
- const recommended_1 = __importDefault(require("./recommended"));
11
- exports.recommended = recommended_1.default;
12
- const rules = {
13
- 'import-paths': gamut_import_paths_1.default,
14
- 'no-css-standalone': no_css_standalone_1.default,
15
- 'prefer-themed': prefer_themed_1.default,
16
- };
17
- exports.rules = rules;
18
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;;;;AAAA,8EAAoD;AACpD,4EAAkD;AAClD,oEAA2C;AAC3C,gEAAwC;AAQxB,sBART,qBAAW,CAQS;AAN3B,MAAM,KAAK,GAAG;IACZ,cAAc,EAAE,4BAAgB;IAChC,mBAAmB,EAAE,2BAAe;IACpC,eAAe,EAAE,uBAAY;CAC9B,CAAC;AAEO,sBAAK"}
@@ -1,4 +0,0 @@
1
- declare const _default: import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"noCssStandalone", never[], {
2
- 'ImportDeclaration[source.value=/.*\\.s?css/]': (node: never) => void;
3
- }>;
4
- export default _default;
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const createRule_1 = require("./createRule");
4
- exports.default = (0, createRule_1.createRule)({
5
- create(context) {
6
- return {
7
- 'ImportDeclaration[source.value=/.*\\.s?css/]': function (node) {
8
- context.report({
9
- messageId: 'noCssStandalone',
10
- node,
11
- });
12
- },
13
- };
14
- },
15
- defaultOptions: [],
16
- meta: {
17
- docs: {
18
- description: 'Ensure no standalone .css or .scss files.',
19
- recommended: 'error',
20
- },
21
- messages: {
22
- noCssStandalone: "Do not create anymore stylesheets, please see Gamut's Notion page for current best practices.",
23
- },
24
- type: 'suggestion',
25
- schema: [],
26
- },
27
- name: 'no-css-standalone',
28
- });
29
- //# sourceMappingURL=no-css-standalone.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-css-standalone.js","sourceRoot":"","sources":["../src/no-css-standalone.ts"],"names":[],"mappings":";;AAAA,6CAA0C;AAE1C,kBAAe,IAAA,uBAAU,EAAC;IACxB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,8CAA8C,EAAE,UAAU,IAAI;gBAC5D,OAAO,CAAC,MAAM,CAAC;oBACb,SAAS,EAAE,iBAAiB;oBAC5B,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;IACD,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,2CAA2C;YACxD,WAAW,EAAE,OAAO;SACrB;QACD,QAAQ,EAAE;YACR,eAAe,EACb,+FAA+F;SAClG;QACD,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,EAAE;KACX;IACD,IAAI,EAAE,mBAAmB;CAC1B,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- declare const _default: import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"preferThemed", never[], {
2
- TaggedTemplateExpression(node: import("@typescript-eslint/types/dist/generated/ast-spec").TaggedTemplateExpression): void;
3
- }>;
4
- export default _default;
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const utils_1 = require("@typescript-eslint/utils");
4
- const createRule_1 = require("./createRule");
5
- const utils_2 = require("./utils");
6
- exports.default = (0, createRule_1.createRule)({
7
- create(context) {
8
- return {
9
- TaggedTemplateExpression(node) {
10
- if (node.tag.type === utils_1.AST_NODE_TYPES.MemberExpression) {
11
- if (node.tag.object.type !== 'Identifier')
12
- return;
13
- const expressionVariable = node.tag.object.name;
14
- const arrowFuncExpression = node.quasi.expressions[0];
15
- if (arrowFuncExpression?.type !== utils_1.AST_NODE_TYPES.ArrowFunctionExpression)
16
- return;
17
- if (!(0, utils_2.isNamedVariableTheme)(arrowFuncExpression))
18
- return;
19
- if (expressionVariable === 'styled') {
20
- const { themeValueKey, themeCategory } = (0, utils_2.checkArrowFuncBodyTypesAndReturnThemeVars)(arrowFuncExpression) ||
21
- {};
22
- if (!themeValueKey)
23
- return;
24
- context.report({
25
- fix: (fixer) => {
26
- return fixer.replaceText(arrowFuncExpression, `themed('${themeCategory}.${themeValueKey}')`);
27
- },
28
- messageId: 'preferThemed',
29
- node,
30
- });
31
- }
32
- }
33
- },
34
- };
35
- },
36
- defaultOptions: [],
37
- meta: {
38
- docs: {
39
- description: 'Prefer themed style utility',
40
- recommended: 'error',
41
- },
42
- fixable: 'code',
43
- messages: {
44
- preferThemed: 'Use the our variants API or themed style utility from gamut-styles instead.',
45
- },
46
- type: 'suggestion',
47
- schema: [],
48
- },
49
- name: 'prefer-themed',
50
- });
51
- //# sourceMappingURL=prefer-themed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prefer-themed.js","sourceRoot":"","sources":["../src/prefer-themed.ts"],"names":[],"mappings":";;AAAA,oDAA0D;AAE1D,6CAA0C;AAC1C,mCAGiB;AAEjB,kBAAe,IAAA,uBAAU,EAAC;IACxB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,wBAAwB,CAAC,IAAI;gBAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,sBAAc,CAAC,gBAAgB,EAAE;oBACrD,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY;wBAAE,OAAO;oBAClD,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;oBAChD,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAEtD,IACE,mBAAmB,EAAE,IAAI,KAAK,sBAAc,CAAC,uBAAuB;wBAEpE,OAAO;oBAET,IAAI,CAAC,IAAA,4BAAoB,EAAC,mBAAmB,CAAC;wBAAE,OAAO;oBAEvD,IAAI,kBAAkB,KAAK,QAAQ,EAAE;wBACnC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GACpC,IAAA,iDAAyC,EAAC,mBAAmB,CAAC;4BAC9D,EAAE,CAAC;wBAEL,IAAI,CAAC,aAAa;4BAAE,OAAO;wBAE3B,OAAO,CAAC,MAAM,CAAC;4BACb,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;gCACb,OAAO,KAAK,CAAC,WAAW,CACtB,mBAAmB,EACnB,WAAW,aAAa,IAAI,aAAa,IAAI,CAC9C,CAAC;4BACJ,CAAC;4BACD,SAAS,EAAE,cAAc;4BACzB,IAAI;yBACL,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IACD,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,6BAA6B;YAC1C,WAAW,EAAE,OAAO;SACrB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,YAAY,EACV,6EAA6E;SAChF;QACD,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,EAAE;KACX;IACD,IAAI,EAAE,eAAe;CACtB,CAAC,CAAC"}
@@ -1,8 +0,0 @@
1
- declare const _default: {
2
- rules: {
3
- 'gamut/no-css-standalone': string;
4
- 'gamut/prefer-themed': string;
5
- 'gamut/gamut-import-paths': string;
6
- };
7
- };
8
- export default _default;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = {
4
- rules: {
5
- 'gamut/no-css-standalone': 'error',
6
- 'gamut/prefer-themed': 'off',
7
- 'gamut/gamut-import-paths': 'error',
8
- },
9
- };
10
- //# sourceMappingURL=recommended.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recommended.js","sourceRoot":"","sources":["../src/recommended.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,KAAK,EAAE;QACL,yBAAyB,EAAE,OAAO;QAClC,qBAAqB,EAAE,KAAK;QAC5B,0BAA0B,EAAE,OAAO;KACpC;CACF,CAAC"}
package/dist/utils.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import { TSESTree } from '@typescript-eslint/utils';
2
- export declare const isNamedVariableTheme: (arrowExpression: TSESTree.ArrowFunctionExpression) => boolean;
3
- export declare const checkArrowFuncBodyTypesAndReturnThemeVars: (arrowFuncExpression: TSESTree.ArrowFunctionExpression) => false | {
4
- themeValueKey: string;
5
- themeCategory: string;
6
- };
package/dist/utils.js DELETED
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkArrowFuncBodyTypesAndReturnThemeVars = exports.isNamedVariableTheme = void 0;
4
- const utils_1 = require("@typescript-eslint/utils");
5
- const isNamedVariableTheme = (arrowExpression) => {
6
- const argObject = arrowExpression.params[0];
7
- if (argObject?.type !== utils_1.AST_NODE_TYPES.ObjectPattern)
8
- return false;
9
- const argumentVariable = argObject.properties[0].value;
10
- if (argumentVariable?.type !== utils_1.AST_NODE_TYPES.Identifier)
11
- return false;
12
- const namedArgumentVariable = argumentVariable.name;
13
- return namedArgumentVariable === 'theme';
14
- };
15
- exports.isNamedVariableTheme = isNamedVariableTheme;
16
- const checkArrowFuncBodyTypesAndReturnThemeVars = (arrowFuncExpression) => {
17
- if (arrowFuncExpression.body.type !== utils_1.AST_NODE_TYPES.MemberExpression ||
18
- arrowFuncExpression.body.object.type !== utils_1.AST_NODE_TYPES.MemberExpression ||
19
- arrowFuncExpression.body.property.type !== utils_1.AST_NODE_TYPES.Identifier ||
20
- arrowFuncExpression.body.object.property.type !== utils_1.AST_NODE_TYPES.Identifier)
21
- return false;
22
- const themeValueKey = arrowFuncExpression.body.property.name;
23
- const themeCategory = arrowFuncExpression.body.object.property.name;
24
- return { themeValueKey, themeCategory };
25
- };
26
- exports.checkArrowFuncBodyTypesAndReturnThemeVars = checkArrowFuncBodyTypesAndReturnThemeVars;
27
- //# sourceMappingURL=utils.js.map
package/dist/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAA,oDAAoE;AAE7D,MAAM,oBAAoB,GAAG,CAClC,eAAiD,EACjD,EAAE;IACF,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAE5C,IAAI,SAAS,EAAE,IAAI,KAAK,sBAAc,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IACnE,MAAM,gBAAgB,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEvD,IAAI,gBAAgB,EAAE,IAAI,KAAK,sBAAc,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IACvE,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,IAAI,CAAC;IAEpD,OAAO,qBAAqB,KAAK,OAAO,CAAC;AAC3C,CAAC,CAAC;AAZW,QAAA,oBAAoB,wBAY/B;AAEK,MAAM,yCAAyC,GAAG,CACvD,mBAAqD,EACrD,EAAE;IACF,IACE,mBAAmB,CAAC,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,gBAAgB;QACjE,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,gBAAgB;QACxE,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU;QACpE,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU;QAE3E,OAAO,KAAK,CAAC;IAEf,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC7D,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAEpE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAC1C,CAAC,CAAC;AAfW,QAAA,yCAAyC,6CAepD"}