@atlaskit/eslint-plugin-design-system 10.22.0 → 10.22.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 CHANGED
@@ -1,5 +1,13 @@
1
1
  # @atlaskit/eslint-plugin-design-system
2
2
 
3
+ ## 10.22.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#153007](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/153007)
8
+ [`89e8b9b297149`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/89e8b9b297149) -
9
+ Update `ensure-design-token-usage` rule to avoid false positive with Icon Tile component
10
+
3
11
  ## 10.22.0
4
12
 
5
13
  ### Minor Changes
@@ -148,7 +148,7 @@ var lintJSXLiteralForColor = exports.lintJSXLiteralForColor = function lintJSXLi
148
148
  if ((0, _isNode.isDecendantOfPrimitive)(node.parent, context)) {
149
149
  return;
150
150
  }
151
- if (['alt', 'src', 'label', 'key'].includes(node.parent.name.name)) {
151
+ if (['alt', 'src', 'label', 'key', 'appearance'].includes(node.parent.name.name)) {
152
152
  return;
153
153
  }
154
154
  var isException = (0, _getIsException.getIsException)(config.exceptions);
@@ -392,14 +392,14 @@ var createChecks = exports.createChecks = function createChecks(context) {
392
392
  importSource: migrationIconImports[name].packageName,
393
393
  iconName: name,
394
394
  errors: errorsAuto,
395
- shouldAddSpaciousSpacing: shouldAddSpaciousSpacing,
395
+ spacing: shouldAddSpaciousSpacing ? 'spacious' : undefined,
396
396
  insideNewButton: insideNewButton
397
397
  });
398
398
  }
399
399
 
400
400
  // Legacy icons rendered as JSX elements
401
401
  if (Object.keys(legacyIconImports).includes(name)) {
402
- var _size, _size2, _sizeProp$value2;
402
+ var _size, _size2;
403
403
  // Determine if inside a new button - if so:
404
404
  // - Assume spread props are safe - still error if props explicitly set to unmigratable values
405
405
  var _insideNewButton = (0, _helpers.isInsideNewButton)(node, newButtonImports);
@@ -488,20 +488,32 @@ var createChecks = exports.createChecks = function createChecks(context) {
488
488
  var newIcon = migrationMapObject === null || migrationMapObject === void 0 ? void 0 : migrationMapObject.newIcon;
489
489
  var isNewIconMigratable = (0, _helpers.canAutoMigrateNewIconBasedOnSize)(upcomingIcon ? upcomingIcon.sizeGuidance[(_size = size) !== null && _size !== void 0 ? _size : 'medium'] : migrationMapObject === null || migrationMapObject === void 0 ? void 0 : migrationMapObject.sizeGuidance[(_size2 = size) !== null && _size2 !== void 0 ? _size2 : 'medium']);
490
490
 
491
- // Add spacious spacing if:
492
- // 1. size is medium, or not set (default is medium)
491
+ // Add spacing if:
492
+ // 1. size is medium for core/utility icons or small for utility icons, or not set (default is medium for core and small for utility icons)
493
493
  // 2. not inside a new or legacy button
494
494
  var _sizeProp = node.openingElement.attributes.find(function (attribute) {
495
495
  return attribute.type === 'JSXAttribute' && (attribute.name.name === 'size' || attribute.name.name === 'LEGACY_size');
496
496
  });
497
- var _shouldAddSpaciousSpacing = (_sizeProp && _sizeProp.type === 'JSXAttribute' && ((_sizeProp$value2 = _sizeProp.value) === null || _sizeProp$value2 === void 0 ? void 0 : _sizeProp$value2.type) === 'Literal' && _sizeProp.value.value === 'medium' || !_sizeProp) && !_insideNewButton && !insideLegacyButton;
497
+ var spacing;
498
+ if (!_insideNewButton && !insideLegacyButton) {
499
+ var _sizeProp$value2;
500
+ if (_sizeProp && _sizeProp.type === 'JSXAttribute' && ((_sizeProp$value2 = _sizeProp.value) === null || _sizeProp$value2 === void 0 ? void 0 : _sizeProp$value2.type) === 'Literal') {
501
+ if (_sizeProp.value.value === 'medium') {
502
+ spacing = 'spacious';
503
+ } else if (_sizeProp.value.value === 'small' && (newIcon === null || newIcon === void 0 ? void 0 : newIcon.type) === 'utility') {
504
+ spacing = 'compact';
505
+ }
506
+ } else if (!_sizeProp) {
507
+ spacing = 'spacious';
508
+ }
509
+ }
498
510
  if (!hasManualMigration && (newIcon || upcomingIcon) && isNewIconMigratable) {
499
511
  (0, _helpers.createAutoMigrationError)({
500
512
  node: node,
501
513
  importSource: legacyIconImports[name].packageName,
502
514
  iconName: name,
503
515
  errors: errorsAuto,
504
- shouldAddSpaciousSpacing: _shouldAddSpaciousSpacing,
516
+ spacing: spacing,
505
517
  insideNewButton: _insideNewButton
506
518
  });
507
519
  } else if ((!newIcon && !upcomingIcon || !isNewIconMigratable) && size) {
@@ -279,7 +279,7 @@ var createAutoMigrationError = exports.createAutoMigrationError = function creat
279
279
  importSource = _ref4.importSource,
280
280
  iconName = _ref4.iconName,
281
281
  errors = _ref4.errors,
282
- shouldAddSpaciousSpacing = _ref4.shouldAddSpaciousSpacing,
282
+ spacing = _ref4.spacing,
283
283
  insideNewButton = _ref4.insideNewButton;
284
284
  var myError = {
285
285
  node: node,
@@ -287,7 +287,7 @@ var createAutoMigrationError = exports.createAutoMigrationError = function creat
287
287
  data: {
288
288
  importSource: importSource,
289
289
  iconName: iconName,
290
- spacing: shouldAddSpaciousSpacing ? 'spacious' : '',
290
+ spacing: spacing !== null && spacing !== void 0 ? spacing : '',
291
291
  // value type need to be a string in Rule.ReportDescriptor
292
292
  insideNewButton: String(insideNewButton)
293
293
  }
@@ -480,14 +480,11 @@ var createPropFixes = function createPropFixes(_ref7) {
480
480
  migrationImportNode = _ref7.migrationImportNode,
481
481
  newIconName = _ref7.newIconName;
482
482
  var fixes = [];
483
- var importSource = metadata.importSource,
484
- spacing = metadata.spacing,
483
+ var spacing = metadata.spacing,
485
484
  insideNewButton = metadata.insideNewButton;
486
485
  if (shouldUseMigrationPath && !legacyImportNode) {
487
486
  return fixes;
488
487
  }
489
- var importPath = migrationImportNode ? importSource.replace('/migration', '').split('--')[0] : getNewIconNameAndImportPath(importSource, shouldUseMigrationPath).importPath;
490
- var iconType = importPath !== null && importPath !== void 0 && importPath.startsWith('@atlaskit/icon/core') ? 'core' : 'utility';
491
488
  if (node.type === 'JSXElement') {
492
489
  var openingElement = node.openingElement;
493
490
  if (newIconName) {
@@ -519,7 +516,7 @@ var createPropFixes = function createPropFixes(_ref7) {
519
516
  // 4. icon is not imported from migration entrypoint
520
517
  var sizeProp = findProp(attributes, 'size');
521
518
  var spacingProp = findProp(attributes, 'spacing');
522
- if (spacing && !spacingProp && iconType === 'core' && !migrationImportNode) {
519
+ if (spacing && !spacingProp && !migrationImportNode) {
523
520
  fixes.push(fixer.insertTextAfter(sizeProp || openingElement.name, " spacing=\"".concat(spacing, "\"")));
524
521
  }
525
522
  if (sizeProp && sizeProp.type === 'JSXAttribute') {
@@ -143,7 +143,7 @@ export const lintJSXLiteralForColor = (node, context, config) => {
143
143
  if (isDecendantOfPrimitive(node.parent, context)) {
144
144
  return;
145
145
  }
146
- if (['alt', 'src', 'label', 'key'].includes(node.parent.name.name)) {
146
+ if (['alt', 'src', 'label', 'key', 'appearance'].includes(node.parent.name.name)) {
147
147
  return;
148
148
  }
149
149
  const isException = getIsException(config.exceptions);
@@ -315,14 +315,14 @@ export const createChecks = context => {
315
315
  importSource: migrationIconImports[name].packageName,
316
316
  iconName: name,
317
317
  errors: errorsAuto,
318
- shouldAddSpaciousSpacing,
318
+ spacing: shouldAddSpaciousSpacing ? 'spacious' : undefined,
319
319
  insideNewButton
320
320
  });
321
321
  }
322
322
 
323
323
  // Legacy icons rendered as JSX elements
324
324
  if (Object.keys(legacyIconImports).includes(name)) {
325
- var _size, _size2, _sizeProp$value2;
325
+ var _size, _size2;
326
326
  // Determine if inside a new button - if so:
327
327
  // - Assume spread props are safe - still error if props explicitly set to unmigratable values
328
328
  const insideNewButton = isInsideNewButton(node, newButtonImports);
@@ -398,18 +398,30 @@ export const createChecks = context => {
398
398
  const newIcon = migrationMapObject === null || migrationMapObject === void 0 ? void 0 : migrationMapObject.newIcon;
399
399
  const isNewIconMigratable = canAutoMigrateNewIconBasedOnSize(upcomingIcon ? upcomingIcon.sizeGuidance[(_size = size) !== null && _size !== void 0 ? _size : 'medium'] : migrationMapObject === null || migrationMapObject === void 0 ? void 0 : migrationMapObject.sizeGuidance[(_size2 = size) !== null && _size2 !== void 0 ? _size2 : 'medium']);
400
400
 
401
- // Add spacious spacing if:
402
- // 1. size is medium, or not set (default is medium)
401
+ // Add spacing if:
402
+ // 1. size is medium for core/utility icons or small for utility icons, or not set (default is medium for core and small for utility icons)
403
403
  // 2. not inside a new or legacy button
404
404
  const sizeProp = node.openingElement.attributes.find(attribute => attribute.type === 'JSXAttribute' && (attribute.name.name === 'size' || attribute.name.name === 'LEGACY_size'));
405
- const shouldAddSpaciousSpacing = (sizeProp && sizeProp.type === 'JSXAttribute' && ((_sizeProp$value2 = sizeProp.value) === null || _sizeProp$value2 === void 0 ? void 0 : _sizeProp$value2.type) === 'Literal' && sizeProp.value.value === 'medium' || !sizeProp) && !insideNewButton && !insideLegacyButton;
405
+ let spacing;
406
+ if (!insideNewButton && !insideLegacyButton) {
407
+ var _sizeProp$value2;
408
+ if (sizeProp && sizeProp.type === 'JSXAttribute' && ((_sizeProp$value2 = sizeProp.value) === null || _sizeProp$value2 === void 0 ? void 0 : _sizeProp$value2.type) === 'Literal') {
409
+ if (sizeProp.value.value === 'medium') {
410
+ spacing = 'spacious';
411
+ } else if (sizeProp.value.value === 'small' && (newIcon === null || newIcon === void 0 ? void 0 : newIcon.type) === 'utility') {
412
+ spacing = 'compact';
413
+ }
414
+ } else if (!sizeProp) {
415
+ spacing = 'spacious';
416
+ }
417
+ }
406
418
  if (!hasManualMigration && (newIcon || upcomingIcon) && isNewIconMigratable) {
407
419
  createAutoMigrationError({
408
420
  node,
409
421
  importSource: legacyIconImports[name].packageName,
410
422
  iconName: name,
411
423
  errors: errorsAuto,
412
- shouldAddSpaciousSpacing,
424
+ spacing,
413
425
  insideNewButton
414
426
  });
415
427
  } else if ((!newIcon && !upcomingIcon || !isNewIconMigratable) && size) {
@@ -257,7 +257,7 @@ export const createAutoMigrationError = ({
257
257
  importSource,
258
258
  iconName,
259
259
  errors,
260
- shouldAddSpaciousSpacing,
260
+ spacing,
261
261
  insideNewButton
262
262
  }) => {
263
263
  const myError = {
@@ -266,7 +266,7 @@ export const createAutoMigrationError = ({
266
266
  data: {
267
267
  importSource,
268
268
  iconName,
269
- spacing: shouldAddSpaciousSpacing ? 'spacious' : '',
269
+ spacing: spacing !== null && spacing !== void 0 ? spacing : '',
270
270
  // value type need to be a string in Rule.ReportDescriptor
271
271
  insideNewButton: String(insideNewButton)
272
272
  }
@@ -462,15 +462,12 @@ const createPropFixes = ({
462
462
  }) => {
463
463
  const fixes = [];
464
464
  const {
465
- importSource,
466
465
  spacing,
467
466
  insideNewButton
468
467
  } = metadata;
469
468
  if (shouldUseMigrationPath && !legacyImportNode) {
470
469
  return fixes;
471
470
  }
472
- const importPath = migrationImportNode ? importSource.replace('/migration', '').split('--')[0] : getNewIconNameAndImportPath(importSource, shouldUseMigrationPath).importPath;
473
- const iconType = importPath !== null && importPath !== void 0 && importPath.startsWith('@atlaskit/icon/core') ? 'core' : 'utility';
474
471
  if (node.type === 'JSXElement') {
475
472
  const {
476
473
  openingElement
@@ -506,7 +503,7 @@ const createPropFixes = ({
506
503
  // 4. icon is not imported from migration entrypoint
507
504
  const sizeProp = findProp(attributes, 'size');
508
505
  const spacingProp = findProp(attributes, 'spacing');
509
- if (spacing && !spacingProp && iconType === 'core' && !migrationImportNode) {
506
+ if (spacing && !spacingProp && !migrationImportNode) {
510
507
  fixes.push(fixer.insertTextAfter(sizeProp || openingElement.name, ` spacing="${spacing}"`));
511
508
  }
512
509
  if (sizeProp && sizeProp.type === 'JSXAttribute') {
@@ -142,7 +142,7 @@ export var lintJSXLiteralForColor = function lintJSXLiteralForColor(node, contex
142
142
  if (isDecendantOfPrimitive(node.parent, context)) {
143
143
  return;
144
144
  }
145
- if (['alt', 'src', 'label', 'key'].includes(node.parent.name.name)) {
145
+ if (['alt', 'src', 'label', 'key', 'appearance'].includes(node.parent.name.name)) {
146
146
  return;
147
147
  }
148
148
  var isException = getIsException(config.exceptions);
@@ -386,14 +386,14 @@ export var createChecks = function createChecks(context) {
386
386
  importSource: migrationIconImports[name].packageName,
387
387
  iconName: name,
388
388
  errors: errorsAuto,
389
- shouldAddSpaciousSpacing: shouldAddSpaciousSpacing,
389
+ spacing: shouldAddSpaciousSpacing ? 'spacious' : undefined,
390
390
  insideNewButton: insideNewButton
391
391
  });
392
392
  }
393
393
 
394
394
  // Legacy icons rendered as JSX elements
395
395
  if (Object.keys(legacyIconImports).includes(name)) {
396
- var _size, _size2, _sizeProp$value2;
396
+ var _size, _size2;
397
397
  // Determine if inside a new button - if so:
398
398
  // - Assume spread props are safe - still error if props explicitly set to unmigratable values
399
399
  var _insideNewButton = isInsideNewButton(node, newButtonImports);
@@ -482,20 +482,32 @@ export var createChecks = function createChecks(context) {
482
482
  var newIcon = migrationMapObject === null || migrationMapObject === void 0 ? void 0 : migrationMapObject.newIcon;
483
483
  var isNewIconMigratable = canAutoMigrateNewIconBasedOnSize(upcomingIcon ? upcomingIcon.sizeGuidance[(_size = size) !== null && _size !== void 0 ? _size : 'medium'] : migrationMapObject === null || migrationMapObject === void 0 ? void 0 : migrationMapObject.sizeGuidance[(_size2 = size) !== null && _size2 !== void 0 ? _size2 : 'medium']);
484
484
 
485
- // Add spacious spacing if:
486
- // 1. size is medium, or not set (default is medium)
485
+ // Add spacing if:
486
+ // 1. size is medium for core/utility icons or small for utility icons, or not set (default is medium for core and small for utility icons)
487
487
  // 2. not inside a new or legacy button
488
488
  var _sizeProp = node.openingElement.attributes.find(function (attribute) {
489
489
  return attribute.type === 'JSXAttribute' && (attribute.name.name === 'size' || attribute.name.name === 'LEGACY_size');
490
490
  });
491
- var _shouldAddSpaciousSpacing = (_sizeProp && _sizeProp.type === 'JSXAttribute' && ((_sizeProp$value2 = _sizeProp.value) === null || _sizeProp$value2 === void 0 ? void 0 : _sizeProp$value2.type) === 'Literal' && _sizeProp.value.value === 'medium' || !_sizeProp) && !_insideNewButton && !insideLegacyButton;
491
+ var spacing;
492
+ if (!_insideNewButton && !insideLegacyButton) {
493
+ var _sizeProp$value2;
494
+ if (_sizeProp && _sizeProp.type === 'JSXAttribute' && ((_sizeProp$value2 = _sizeProp.value) === null || _sizeProp$value2 === void 0 ? void 0 : _sizeProp$value2.type) === 'Literal') {
495
+ if (_sizeProp.value.value === 'medium') {
496
+ spacing = 'spacious';
497
+ } else if (_sizeProp.value.value === 'small' && (newIcon === null || newIcon === void 0 ? void 0 : newIcon.type) === 'utility') {
498
+ spacing = 'compact';
499
+ }
500
+ } else if (!_sizeProp) {
501
+ spacing = 'spacious';
502
+ }
503
+ }
492
504
  if (!hasManualMigration && (newIcon || upcomingIcon) && isNewIconMigratable) {
493
505
  createAutoMigrationError({
494
506
  node: node,
495
507
  importSource: legacyIconImports[name].packageName,
496
508
  iconName: name,
497
509
  errors: errorsAuto,
498
- shouldAddSpaciousSpacing: _shouldAddSpaciousSpacing,
510
+ spacing: spacing,
499
511
  insideNewButton: _insideNewButton
500
512
  });
501
513
  } else if ((!newIcon && !upcomingIcon || !isNewIconMigratable) && size) {
@@ -269,7 +269,7 @@ export var createAutoMigrationError = function createAutoMigrationError(_ref4) {
269
269
  importSource = _ref4.importSource,
270
270
  iconName = _ref4.iconName,
271
271
  errors = _ref4.errors,
272
- shouldAddSpaciousSpacing = _ref4.shouldAddSpaciousSpacing,
272
+ spacing = _ref4.spacing,
273
273
  insideNewButton = _ref4.insideNewButton;
274
274
  var myError = {
275
275
  node: node,
@@ -277,7 +277,7 @@ export var createAutoMigrationError = function createAutoMigrationError(_ref4) {
277
277
  data: {
278
278
  importSource: importSource,
279
279
  iconName: iconName,
280
- spacing: shouldAddSpaciousSpacing ? 'spacious' : '',
280
+ spacing: spacing !== null && spacing !== void 0 ? spacing : '',
281
281
  // value type need to be a string in Rule.ReportDescriptor
282
282
  insideNewButton: String(insideNewButton)
283
283
  }
@@ -470,14 +470,11 @@ var createPropFixes = function createPropFixes(_ref7) {
470
470
  migrationImportNode = _ref7.migrationImportNode,
471
471
  newIconName = _ref7.newIconName;
472
472
  var fixes = [];
473
- var importSource = metadata.importSource,
474
- spacing = metadata.spacing,
473
+ var spacing = metadata.spacing,
475
474
  insideNewButton = metadata.insideNewButton;
476
475
  if (shouldUseMigrationPath && !legacyImportNode) {
477
476
  return fixes;
478
477
  }
479
- var importPath = migrationImportNode ? importSource.replace('/migration', '').split('--')[0] : getNewIconNameAndImportPath(importSource, shouldUseMigrationPath).importPath;
480
- var iconType = importPath !== null && importPath !== void 0 && importPath.startsWith('@atlaskit/icon/core') ? 'core' : 'utility';
481
478
  if (node.type === 'JSXElement') {
482
479
  var openingElement = node.openingElement;
483
480
  if (newIconName) {
@@ -509,7 +506,7 @@ var createPropFixes = function createPropFixes(_ref7) {
509
506
  // 4. icon is not imported from migration entrypoint
510
507
  var sizeProp = findProp(attributes, 'size');
511
508
  var spacingProp = findProp(attributes, 'spacing');
512
- if (spacing && !spacingProp && iconType === 'core' && !migrationImportNode) {
509
+ if (spacing && !spacingProp && !migrationImportNode) {
513
510
  fixes.push(fixer.insertTextAfter(sizeProp || openingElement.name, " spacing=\"".concat(spacing, "\"")));
514
511
  }
515
512
  if (sizeProp && sizeProp.type === 'JSXAttribute') {
@@ -87,12 +87,12 @@ export declare const createCantMigrateFunctionUnknownError: (node: Node, importS
87
87
  export declare const createCantMigrateColorError: (node: Node, colorValue: string, errors: ErrorListManual, importSource: string, iconName: string) => void;
88
88
  export declare const createCantMigrateSpreadPropsError: (node: Node, missingProps: string[], errors: ErrorListManual, importSource: string, iconName: string) => void;
89
89
  export declare const createCantMigrateSizeUnknown: (node: Node, errors: ErrorListManual, importSource: string, iconName: string) => void;
90
- export declare const createAutoMigrationError: ({ node, importSource, iconName, errors, shouldAddSpaciousSpacing, insideNewButton, }: {
90
+ export declare const createAutoMigrationError: ({ node, importSource, iconName, errors, spacing, insideNewButton, }: {
91
91
  node: Node;
92
92
  importSource: string;
93
93
  iconName: string;
94
94
  errors: ErrorListAuto;
95
- shouldAddSpaciousSpacing?: boolean | undefined;
95
+ spacing?: string | undefined;
96
96
  insideNewButton?: boolean | undefined;
97
97
  }) => void;
98
98
  export declare const createHelpers: (context: Rule.RuleContext) => {
@@ -92,12 +92,12 @@ export declare const createCantMigrateFunctionUnknownError: (node: Node, importS
92
92
  export declare const createCantMigrateColorError: (node: Node, colorValue: string, errors: ErrorListManual, importSource: string, iconName: string) => void;
93
93
  export declare const createCantMigrateSpreadPropsError: (node: Node, missingProps: string[], errors: ErrorListManual, importSource: string, iconName: string) => void;
94
94
  export declare const createCantMigrateSizeUnknown: (node: Node, errors: ErrorListManual, importSource: string, iconName: string) => void;
95
- export declare const createAutoMigrationError: ({ node, importSource, iconName, errors, shouldAddSpaciousSpacing, insideNewButton, }: {
95
+ export declare const createAutoMigrationError: ({ node, importSource, iconName, errors, spacing, insideNewButton, }: {
96
96
  node: Node;
97
97
  importSource: string;
98
98
  iconName: string;
99
99
  errors: ErrorListAuto;
100
- shouldAddSpaciousSpacing?: boolean | undefined;
100
+ spacing?: string | undefined;
101
101
  insideNewButton?: boolean | undefined;
102
102
  }) => void;
103
103
  export declare const createHelpers: (context: Rule.RuleContext) => {
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": "10.22.0",
4
+ "version": "10.22.1",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
7
7
  "publishConfig": {
@@ -41,7 +41,7 @@
41
41
  },
42
42
  "dependencies": {
43
43
  "@atlaskit/eslint-utils": "^1.7.0",
44
- "@atlaskit/icon": "^22.20.0",
44
+ "@atlaskit/icon": "^22.22.0",
45
45
  "@atlaskit/tokens": "*",
46
46
  "@babel/runtime": "^7.0.0",
47
47
  "@typescript-eslint/utils": "^5.48.1",
@@ -54,8 +54,8 @@
54
54
  },
55
55
  "devDependencies": {
56
56
  "@af/formatting": "*",
57
- "@atlaskit/ds-lib": "^2.6.0",
58
- "@atlaskit/theme": "^13.0.0",
57
+ "@atlaskit/ds-lib": "^3.1.0",
58
+ "@atlaskit/theme": "^13.1.0",
59
59
  "@atlassian/codegen": "*",
60
60
  "@atlassian/eslint-utils": "^0.5.0",
61
61
  "@atlassian/ts-loader": "*",