@atlaskit/editor-core 153.1.2 → 153.1.3

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,11 @@
1
1
  # @atlaskit/editor-core
2
2
 
3
+ ## 153.1.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [`fa87054a61a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/fa87054a61a) - workaround issue where prosemirrors new drag selection delay logic breaks safaris table selections.
8
+
3
9
  ## 153.1.2
4
10
 
5
11
  ### Patch Changes
@@ -9,9 +9,11 @@ exports.default = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
+ var _utils = require("@atlaskit/editor-common/utils");
13
+
12
14
  var _pmPlugins = require("@atlaskit/editor-tables/pm-plugins");
13
15
 
14
- var _utils = require("@atlaskit/editor-tables/utils");
16
+ var _utils2 = require("@atlaskit/editor-tables/utils");
15
17
 
16
18
  var _adfSchema = require("@atlaskit/adf-schema");
17
19
 
@@ -29,6 +31,8 @@ var _createPluginConfig = require("./create-plugin-config");
29
31
 
30
32
  var _tableLocalId = require("./pm-plugins/table-local-id");
31
33
 
34
+ var _safariDelayedDomSelectionSyncingWorkaround = require("./pm-plugins/safari-delayed-dom-selection-syncing-workaround");
35
+
32
36
  var _plugin = require("./pm-plugins/decorations/plugin");
33
37
 
34
38
  var _keymap = require("./pm-plugins/keymap");
@@ -55,7 +59,7 @@ var _FloatingInsertButton = _interopRequireDefault(require("./ui/FloatingInsertB
55
59
 
56
60
  var _LayoutButton = _interopRequireDefault(require("./ui/LayoutButton"));
57
61
 
58
- var _utils2 = require("./utils");
62
+ var _utils3 = require("./utils");
59
63
 
60
64
  var _featureFlagsContext = require("../feature-flags-context");
61
65
 
@@ -80,7 +84,7 @@ var tablesPlugin = function tablesPlugin(options) {
80
84
  }];
81
85
  },
82
86
  pmPlugins: function pmPlugins() {
83
- return [{
87
+ var plugins = [{
84
88
  name: 'table',
85
89
  plugin: function plugin(_ref) {
86
90
  var dispatchAnalyticsEvent = _ref.dispatchAnalyticsEvent,
@@ -150,7 +154,20 @@ var tablesPlugin = function tablesPlugin(options) {
150
154
  var dispatch = _ref6.dispatch;
151
155
  return (0, _tableLocalId.createPlugin)(dispatch);
152
156
  }
153
- }];
157
+ }]; // workaround for prosemirrors delayed dom selection syncing during pointer drag
158
+ // causing issues with table selections in Safari
159
+ // https://github.com/ProseMirror/prosemirror-view/commit/885258b80551ac87b81601d3ed25f552aeb22293
160
+
161
+ if (_utils.browser.safari) {
162
+ plugins.push({
163
+ name: 'tableSafariDelayedDomSelectionSyncingWorkaround',
164
+ plugin: function plugin() {
165
+ return (0, _safariDelayedDomSelectionSyncingWorkaround.createPlugin)();
166
+ }
167
+ });
168
+ }
169
+
170
+ return plugins;
154
171
  },
155
172
  contentComponent: function contentComponent(_ref7) {
156
173
  var editorView = _ref7.editorView,
@@ -234,7 +251,7 @@ var tablesPlugin = function tablesPlugin(options) {
234
251
  scrollableElement: popupsScrollableElement,
235
252
  stickyHeaders: stickyHeader,
236
253
  isNumberColumnEnabled: tableNode && tableNode.attrs.isNumberColumnEnabled
237
- }), (0, _utils2.isLayoutSupported)(state) && options && options.breakoutEnabled && /*#__PURE__*/_react.default.createElement(_LayoutButton.default, {
254
+ }), (0, _utils3.isLayoutSupported)(state) && options && options.breakoutEnabled && /*#__PURE__*/_react.default.createElement(_LayoutButton.default, {
238
255
  editorView: editorView,
239
256
  mountPoint: popupsMountPoint,
240
257
  boundariesElement: popupsBoundariesElement,
@@ -261,7 +278,7 @@ var tablesPlugin = function tablesPlugin(options) {
261
278
  return /*#__PURE__*/_react.default.createElement(_assets.IconTable, null);
262
279
  },
263
280
  action: function action(insert, state) {
264
- var tr = insert((0, _utils.createTable)({
281
+ var tr = insert((0, _utils2.createTable)({
265
282
  schema: state.schema
266
283
  }));
267
284
  return (0, _analytics.addAnalytics)(state, tr, {
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.tableSafariDelayedDomSelectionSyncingWorkaroundKey = exports.createPlugin = void 0;
7
+
8
+ var _prosemirrorState = require("prosemirror-state");
9
+
10
+ var tableSafariDelayedDomSelectionSyncingWorkaroundKey = new _prosemirrorState.PluginKey('tableSafariDelayedDomSelectionSyncingWorkaround');
11
+ exports.tableSafariDelayedDomSelectionSyncingWorkaroundKey = tableSafariDelayedDomSelectionSyncingWorkaroundKey;
12
+
13
+ var createPlugin = function createPlugin() {
14
+ // From a review of the prosemirror-view source code,
15
+ // the only places where a view relies on the presence
16
+ // of view.mouseDown are;
17
+ // - when checking it's presence in selectionToDOM
18
+ // to delay drag selections
19
+ // - to ensure it is cleaned up when the mouseup
20
+ // event is not fired in a previous mousedown event
21
+ // Because we are manually wiping the view.mouseDown,
22
+ // we manage this custom cleanup ourselves
23
+ var prevMouseDownDone = null;
24
+ return new _prosemirrorState.Plugin({
25
+ key: tableSafariDelayedDomSelectionSyncingWorkaroundKey,
26
+ props: {
27
+ handleDOMEvents: {
28
+ mousedown: function mousedown(view) {
29
+ // Workaround issue in safari where table selections
30
+ // do not work correctly since prosemirror delayed
31
+ // DOM selection syncing during pointer drag.
32
+ //
33
+ // https://github.com/ProseMirror/prosemirror-view/commit/885258b80551ac87b81601d3ed25f552aeb22293
34
+ // This fix removes the selectionToDOM from the view
35
+ // prior to selectionToDOM being called.
36
+ // selectionToDOM checks if there is an "active"
37
+ // mouseDown, and if so, it delays running logic
38
+ // which causes the table selections issue.
39
+ // The handleDOMEvents are called before ProseMirror
40
+ // events fired on the editable DOM element.
41
+ // This means the view.mouseView will not yet be
42
+ // created when the mousedown event starts.
43
+ // https://prosemirror.net/docs/ref/#view.EditorProps.handleDOMEvents
44
+ //
45
+ // Because selectionToDOM is only added to the script
46
+ // tasks queue following the mousedown event, we can
47
+ // prepend a task which will clear the mouseDown from
48
+ // the view. We do this using a setTimout with no
49
+ // interval.
50
+ if (prevMouseDownDone) {
51
+ // avoid memory leaks when the mouseup event is not fired
52
+ // in a previous mousedown event
53
+ prevMouseDownDone();
54
+ }
55
+
56
+ setTimeout(function () {
57
+ // the ts-ignores here are required due to the
58
+ // view.mouseDown being an internal which is
59
+ // not part of the views type signature
60
+ // @ts-ignore
61
+ if (view.mouseDown) {
62
+ // @ts-ignore
63
+ prevMouseDownDone = view.mouseDown.done.bind(view.mouseDown); // @ts-ignore
64
+
65
+ view.mouseDown = null;
66
+ }
67
+ });
68
+ return false;
69
+ }
70
+ }
71
+ }
72
+ });
73
+ };
74
+
75
+ exports.createPlugin = createPlugin;
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.version = exports.nextMajorVersion = exports.name = void 0;
7
7
  var name = "@atlaskit/editor-core";
8
8
  exports.name = name;
9
- var version = "153.1.2";
9
+ var version = "153.1.3";
10
10
  exports.version = version;
11
11
 
12
12
  var nextMajorVersion = function nextMajorVersion() {
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "153.1.2",
3
+ "version": "153.1.3",
4
4
  "sideEffects": false
5
5
  }
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { browser } from '@atlaskit/editor-common/utils';
2
3
  import { tableEditing } from '@atlaskit/editor-tables/pm-plugins';
3
4
  import { createTable } from '@atlaskit/editor-tables/utils';
4
5
  import { table, tableCell, tableHeader, tableRow } from '@atlaskit/adf-schema';
@@ -9,6 +10,7 @@ import { messages } from '../insert-block/ui/ToolbarInsertBlock/messages';
9
10
  import { IconTable } from '../quick-insert/assets';
10
11
  import { pluginConfig } from './create-plugin-config';
11
12
  import { createPlugin as createTableLocalIdPlugin } from './pm-plugins/table-local-id';
13
+ import { createPlugin as createTableSafariDelayedDomSelectionSyncingWorkaroundPlugin } from './pm-plugins/safari-delayed-dom-selection-syncing-workaround';
12
14
  import { createPlugin as createDecorationsPlugin } from './pm-plugins/decorations/plugin';
13
15
  import { keymapPlugin } from './pm-plugins/keymap';
14
16
  import { tableSelectionKeymapPlugin } from './pm-plugins/table-selection-keymap';
@@ -46,7 +48,7 @@ const tablesPlugin = options => ({
46
48
  },
47
49
 
48
50
  pmPlugins() {
49
- return [{
51
+ const plugins = [{
50
52
  name: 'table',
51
53
  plugin: ({
52
54
  dispatchAnalyticsEvent,
@@ -106,7 +108,20 @@ const tablesPlugin = options => ({
106
108
  plugin: ({
107
109
  dispatch
108
110
  }) => createTableLocalIdPlugin(dispatch)
109
- }];
111
+ }]; // workaround for prosemirrors delayed dom selection syncing during pointer drag
112
+ // causing issues with table selections in Safari
113
+ // https://github.com/ProseMirror/prosemirror-view/commit/885258b80551ac87b81601d3ed25f552aeb22293
114
+
115
+ if (browser.safari) {
116
+ plugins.push({
117
+ name: 'tableSafariDelayedDomSelectionSyncingWorkaround',
118
+ plugin: () => {
119
+ return createTableSafariDelayedDomSelectionSyncingWorkaroundPlugin();
120
+ }
121
+ });
122
+ }
123
+
124
+ return plugins;
110
125
  },
111
126
 
112
127
  contentComponent({
@@ -0,0 +1,63 @@
1
+ import { PluginKey, Plugin } from 'prosemirror-state';
2
+ export const tableSafariDelayedDomSelectionSyncingWorkaroundKey = new PluginKey('tableSafariDelayedDomSelectionSyncingWorkaround');
3
+ export const createPlugin = () => {
4
+ // From a review of the prosemirror-view source code,
5
+ // the only places where a view relies on the presence
6
+ // of view.mouseDown are;
7
+ // - when checking it's presence in selectionToDOM
8
+ // to delay drag selections
9
+ // - to ensure it is cleaned up when the mouseup
10
+ // event is not fired in a previous mousedown event
11
+ // Because we are manually wiping the view.mouseDown,
12
+ // we manage this custom cleanup ourselves
13
+ let prevMouseDownDone = null;
14
+ return new Plugin({
15
+ key: tableSafariDelayedDomSelectionSyncingWorkaroundKey,
16
+ props: {
17
+ handleDOMEvents: {
18
+ mousedown: view => {
19
+ // Workaround issue in safari where table selections
20
+ // do not work correctly since prosemirror delayed
21
+ // DOM selection syncing during pointer drag.
22
+ //
23
+ // https://github.com/ProseMirror/prosemirror-view/commit/885258b80551ac87b81601d3ed25f552aeb22293
24
+ // This fix removes the selectionToDOM from the view
25
+ // prior to selectionToDOM being called.
26
+ // selectionToDOM checks if there is an "active"
27
+ // mouseDown, and if so, it delays running logic
28
+ // which causes the table selections issue.
29
+ // The handleDOMEvents are called before ProseMirror
30
+ // events fired on the editable DOM element.
31
+ // This means the view.mouseView will not yet be
32
+ // created when the mousedown event starts.
33
+ // https://prosemirror.net/docs/ref/#view.EditorProps.handleDOMEvents
34
+ //
35
+ // Because selectionToDOM is only added to the script
36
+ // tasks queue following the mousedown event, we can
37
+ // prepend a task which will clear the mouseDown from
38
+ // the view. We do this using a setTimout with no
39
+ // interval.
40
+ if (prevMouseDownDone) {
41
+ // avoid memory leaks when the mouseup event is not fired
42
+ // in a previous mousedown event
43
+ prevMouseDownDone();
44
+ }
45
+
46
+ setTimeout(() => {
47
+ // the ts-ignores here are required due to the
48
+ // view.mouseDown being an internal which is
49
+ // not part of the views type signature
50
+ // @ts-ignore
51
+ if (view.mouseDown) {
52
+ // @ts-ignore
53
+ prevMouseDownDone = view.mouseDown.done.bind(view.mouseDown); // @ts-ignore
54
+
55
+ view.mouseDown = null;
56
+ }
57
+ });
58
+ return false;
59
+ }
60
+ }
61
+ }
62
+ });
63
+ };
@@ -1,5 +1,5 @@
1
1
  export const name = "@atlaskit/editor-core";
2
- export const version = "153.1.2";
2
+ export const version = "153.1.3";
3
3
  export const nextMajorVersion = () => {
4
4
  return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
5
5
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "153.1.2",
3
+ "version": "153.1.3",
4
4
  "sideEffects": false
5
5
  }
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { browser } from '@atlaskit/editor-common/utils';
2
3
  import { tableEditing } from '@atlaskit/editor-tables/pm-plugins';
3
4
  import { createTable } from '@atlaskit/editor-tables/utils';
4
5
  import { table, tableCell, tableHeader, tableRow } from '@atlaskit/adf-schema';
@@ -9,6 +10,7 @@ import { messages } from '../insert-block/ui/ToolbarInsertBlock/messages';
9
10
  import { IconTable } from '../quick-insert/assets';
10
11
  import { pluginConfig } from './create-plugin-config';
11
12
  import { createPlugin as createTableLocalIdPlugin } from './pm-plugins/table-local-id';
13
+ import { createPlugin as createTableSafariDelayedDomSelectionSyncingWorkaroundPlugin } from './pm-plugins/safari-delayed-dom-selection-syncing-workaround';
12
14
  import { createPlugin as createDecorationsPlugin } from './pm-plugins/decorations/plugin';
13
15
  import { keymapPlugin } from './pm-plugins/keymap';
14
16
  import { tableSelectionKeymapPlugin } from './pm-plugins/table-selection-keymap';
@@ -45,7 +47,7 @@ var tablesPlugin = function tablesPlugin(options) {
45
47
  }];
46
48
  },
47
49
  pmPlugins: function pmPlugins() {
48
- return [{
50
+ var plugins = [{
49
51
  name: 'table',
50
52
  plugin: function plugin(_ref) {
51
53
  var dispatchAnalyticsEvent = _ref.dispatchAnalyticsEvent,
@@ -115,7 +117,20 @@ var tablesPlugin = function tablesPlugin(options) {
115
117
  var dispatch = _ref6.dispatch;
116
118
  return createTableLocalIdPlugin(dispatch);
117
119
  }
118
- }];
120
+ }]; // workaround for prosemirrors delayed dom selection syncing during pointer drag
121
+ // causing issues with table selections in Safari
122
+ // https://github.com/ProseMirror/prosemirror-view/commit/885258b80551ac87b81601d3ed25f552aeb22293
123
+
124
+ if (browser.safari) {
125
+ plugins.push({
126
+ name: 'tableSafariDelayedDomSelectionSyncingWorkaround',
127
+ plugin: function plugin() {
128
+ return createTableSafariDelayedDomSelectionSyncingWorkaroundPlugin();
129
+ }
130
+ });
131
+ }
132
+
133
+ return plugins;
119
134
  },
120
135
  contentComponent: function contentComponent(_ref7) {
121
136
  var editorView = _ref7.editorView,
@@ -0,0 +1,63 @@
1
+ import { PluginKey, Plugin } from 'prosemirror-state';
2
+ export var tableSafariDelayedDomSelectionSyncingWorkaroundKey = new PluginKey('tableSafariDelayedDomSelectionSyncingWorkaround');
3
+ export var createPlugin = function createPlugin() {
4
+ // From a review of the prosemirror-view source code,
5
+ // the only places where a view relies on the presence
6
+ // of view.mouseDown are;
7
+ // - when checking it's presence in selectionToDOM
8
+ // to delay drag selections
9
+ // - to ensure it is cleaned up when the mouseup
10
+ // event is not fired in a previous mousedown event
11
+ // Because we are manually wiping the view.mouseDown,
12
+ // we manage this custom cleanup ourselves
13
+ var prevMouseDownDone = null;
14
+ return new Plugin({
15
+ key: tableSafariDelayedDomSelectionSyncingWorkaroundKey,
16
+ props: {
17
+ handleDOMEvents: {
18
+ mousedown: function mousedown(view) {
19
+ // Workaround issue in safari where table selections
20
+ // do not work correctly since prosemirror delayed
21
+ // DOM selection syncing during pointer drag.
22
+ //
23
+ // https://github.com/ProseMirror/prosemirror-view/commit/885258b80551ac87b81601d3ed25f552aeb22293
24
+ // This fix removes the selectionToDOM from the view
25
+ // prior to selectionToDOM being called.
26
+ // selectionToDOM checks if there is an "active"
27
+ // mouseDown, and if so, it delays running logic
28
+ // which causes the table selections issue.
29
+ // The handleDOMEvents are called before ProseMirror
30
+ // events fired on the editable DOM element.
31
+ // This means the view.mouseView will not yet be
32
+ // created when the mousedown event starts.
33
+ // https://prosemirror.net/docs/ref/#view.EditorProps.handleDOMEvents
34
+ //
35
+ // Because selectionToDOM is only added to the script
36
+ // tasks queue following the mousedown event, we can
37
+ // prepend a task which will clear the mouseDown from
38
+ // the view. We do this using a setTimout with no
39
+ // interval.
40
+ if (prevMouseDownDone) {
41
+ // avoid memory leaks when the mouseup event is not fired
42
+ // in a previous mousedown event
43
+ prevMouseDownDone();
44
+ }
45
+
46
+ setTimeout(function () {
47
+ // the ts-ignores here are required due to the
48
+ // view.mouseDown being an internal which is
49
+ // not part of the views type signature
50
+ // @ts-ignore
51
+ if (view.mouseDown) {
52
+ // @ts-ignore
53
+ prevMouseDownDone = view.mouseDown.done.bind(view.mouseDown); // @ts-ignore
54
+
55
+ view.mouseDown = null;
56
+ }
57
+ });
58
+ return false;
59
+ }
60
+ }
61
+ }
62
+ });
63
+ };
@@ -1,5 +1,5 @@
1
1
  export var name = "@atlaskit/editor-core";
2
- export var version = "153.1.2";
2
+ export var version = "153.1.3";
3
3
  export var nextMajorVersion = function nextMajorVersion() {
4
4
  return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
5
5
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "153.1.2",
3
+ "version": "153.1.3",
4
4
  "sideEffects": false
5
5
  }
@@ -0,0 +1,3 @@
1
+ import { PluginKey, Plugin } from 'prosemirror-state';
2
+ export declare const tableSafariDelayedDomSelectionSyncingWorkaroundKey: PluginKey<any, any>;
3
+ export declare const createPlugin: () => Plugin<any, any>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "153.1.2",
3
+ "version": "153.1.3",
4
4
  "description": "A package contains Atlassian editor core functionality",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -50,7 +50,7 @@
50
50
  "@atlaskit/emoji": "^64.0.0",
51
51
  "@atlaskit/empty-state": "^7.3.0",
52
52
  "@atlaskit/form": "^8.4.0",
53
- "@atlaskit/icon": "^21.9.2",
53
+ "@atlaskit/icon": "^21.10.0",
54
54
  "@atlaskit/icon-object": "^6.2.0",
55
55
  "@atlaskit/item": "^12.0.0",
56
56
  "@atlaskit/locale": "^2.3.0",
@@ -75,10 +75,10 @@
75
75
  "@atlaskit/task-decision": "^17.2.0",
76
76
  "@atlaskit/textarea": "^4.2.0",
77
77
  "@atlaskit/textfield": "^5.1.0",
78
- "@atlaskit/theme": "^12.0.0",
79
- "@atlaskit/toggle": "^12.3.0",
78
+ "@atlaskit/theme": "^12.1.0",
79
+ "@atlaskit/toggle": "^12.4.0",
80
80
  "@atlaskit/tooltip": "^17.5.0",
81
- "@atlaskit/user-picker": "^8.2.0",
81
+ "@atlaskit/user-picker": "^8.3.0",
82
82
  "@atlaskit/util-service-support": "^6.0.0",
83
83
  "@atlaskit/width-detector": "^3.0.0",
84
84
  "@babel/runtime": "^7.0.0",
@@ -138,7 +138,7 @@
138
138
  },
139
139
  "devDependencies": {
140
140
  "@atlaskit/atlassian-navigation": "^2.0.0",
141
- "@atlaskit/breadcrumbs": "11.4.1",
141
+ "@atlaskit/breadcrumbs": "11.5.0",
142
142
  "@atlaskit/code": "^14.3.0",
143
143
  "@atlaskit/collab-provider": "7.1.3",
144
144
  "@atlaskit/docs": "*",
@@ -147,7 +147,7 @@
147
147
  "@atlaskit/editor-bitbucket-transformer": "^7.2.0",
148
148
  "@atlaskit/editor-extension-dropbox": "^0.2.0",
149
149
  "@atlaskit/editor-test-helpers": "^16.0.0",
150
- "@atlaskit/flag": "^14.4.0",
150
+ "@atlaskit/flag": "^14.5.0",
151
151
  "@atlaskit/inline-dialog": "^13.2.0",
152
152
  "@atlaskit/lozenge": "^11.1.0",
153
153
  "@atlaskit/media-core": "^32.2.0",
@@ -155,7 +155,7 @@
155
155
  "@atlaskit/media-test-helpers": "^29.0.0",
156
156
  "@atlaskit/menu": "^1.2.0",
157
157
  "@atlaskit/page-layout": "^1.0.1",
158
- "@atlaskit/profilecard": "^16.0.0",
158
+ "@atlaskit/profilecard": "^16.2.0",
159
159
  "@atlaskit/pubsub": "^6.0.0",
160
160
  "@atlaskit/renderer": "^84.1.0",
161
161
  "@atlaskit/section-message": "^6.1.0",
@@ -163,10 +163,10 @@
163
163
  "@atlaskit/smart-card": "^17.0.0",
164
164
  "@atlaskit/synchrony-test-helpers": "^2.3.0",
165
165
  "@atlaskit/textarea": "^4.2.0",
166
- "@atlaskit/toggle": "^12.3.0",
166
+ "@atlaskit/toggle": "^12.4.0",
167
167
  "@atlaskit/ufo": "^0.0.6",
168
- "@atlaskit/user-picker": "^8.2.0",
169
- "@atlaskit/util-data-test": "^17.0.0",
168
+ "@atlaskit/user-picker": "^8.3.0",
169
+ "@atlaskit/util-data-test": "^17.1.0",
170
170
  "@atlaskit/visual-regression": "*",
171
171
  "@atlaskit/webdriver-runner": "*",
172
172
  "@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",