@atlaskit/editor-plugin-media 8.4.19 → 8.5.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,22 @@
1
1
  # @atlaskit/editor-plugin-media
2
2
 
3
+ ## 8.5.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+
9
+ ## 8.5.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`6ecbe7ee10388`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/6ecbe7ee10388) -
14
+ Started an experiment on image editing, added a button in the floating toolbar
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies
19
+
3
20
  ## 8.4.19
4
21
 
5
22
  ### Patch Changes
@@ -331,9 +331,7 @@ var mediaPlugin = exports.mediaPlugin = function mediaPlugin(_ref3) {
331
331
  }));
332
332
  },
333
333
  secondaryToolbarComponent: function secondaryToolbarComponent(_ref11) {
334
- var editorView = _ref11.editorView,
335
- eventDispatcher = _ref11.eventDispatcher,
336
- disabled = _ref11.disabled;
334
+ var disabled = _ref11.disabled;
337
335
  return /*#__PURE__*/_react.default.createElement(_ToolbarMedia.default, {
338
336
  isDisabled: disabled,
339
337
  isReducedSpacing: true,
@@ -341,8 +339,7 @@ var mediaPlugin = exports.mediaPlugin = function mediaPlugin(_ref3) {
341
339
  });
342
340
  },
343
341
  pluginsOptions: {
344
- quickInsert: function quickInsert(_ref12) {
345
- var formatMessage = _ref12.formatMessage;
342
+ quickInsert: function quickInsert() {
346
343
  return [];
347
344
  },
348
345
  floatingToolbar: function floatingToolbar(state, intl, providerFactory) {
@@ -356,6 +353,7 @@ var mediaPlugin = exports.mediaPlugin = function mediaPlugin(_ref3) {
356
353
  allowLinking: options && options.allowLinking,
357
354
  allowAdvancedToolBarOptions: options && options.allowAdvancedToolBarOptions,
358
355
  allowAltTextOnImages: options && options.allowAltTextOnImages,
356
+ allowImageEditing: options && options.allowImageEditing,
359
357
  allowImagePreview: options && options.allowImagePreview,
360
358
  altTextValidator: options && options.altTextValidator,
361
359
  fullWidthEnabled: options && options.fullWidthEnabled,
@@ -19,9 +19,7 @@ var _mediaSingle = require("@atlaskit/editor-common/media-single");
19
19
  var _providerFactory = require("@atlaskit/editor-common/provider-factory");
20
20
  var _selectionBasedNodeView = require("@atlaskit/editor-common/selection-based-node-view");
21
21
  var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-plugin-state-selector");
22
- var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
23
22
  var _mediaClient = require("@atlaskit/media-client");
24
- var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
25
23
  var _helpers = require("../../pm-plugins/commands/helpers");
26
24
  var _mediaCommon = require("../../pm-plugins/utils/media-common");
27
25
  var _media = _interopRequireDefault(require("./media"));
@@ -77,22 +75,6 @@ var MediaNodeView = /*#__PURE__*/function (_SelectionBasedNodeVi) {
77
75
  }, true)(_this.view.state, _this.view.dispatch);
78
76
  }
79
77
  });
80
- (0, _defineProperty2.default)(_this, "getMaxCardDimensions", function (editorWidth) {
81
- if ((0, _expValEquals.expValEquals)('platform_editor_media_vc_fixes', 'isEnabled', true)) {
82
- var mediaSingleNodeParent = _this.getMediaSingleNode(_this.getPos);
83
- if (mediaSingleNodeParent) {
84
- var maxWidth = _this.getMaxWidthFromMediaSingleNode(mediaSingleNodeParent, editorWidth === null || editorWidth === void 0 ? void 0 : editorWidth.width);
85
- return {
86
- width: "".concat(maxWidth, "px"),
87
- height: '100%'
88
- };
89
- }
90
- }
91
- return {
92
- width: '100%',
93
- height: '100%'
94
- };
95
- });
96
78
  (0, _defineProperty2.default)(_this, "renderMediaNodeWithState", function (contextIdentifierProvider) {
97
79
  return function (_ref2) {
98
80
  var _this$reactComponentP;
@@ -116,15 +98,18 @@ var MediaNodeView = /*#__PURE__*/function (_SelectionBasedNodeVi) {
116
98
  }
117
99
  width = width || _mediaSingle.DEFAULT_IMAGE_WIDTH;
118
100
  height = height || _mediaSingle.DEFAULT_IMAGE_HEIGHT;
119
- var pluginInjectionApi = _this.reactComponentProps.pluginInjectionApi;
120
101
 
121
102
  // mediaSingle defines the max dimensions, so we don't need to constrain twice.
122
- var maxDimensions = _this.getMaxCardDimensions(editorWidth);
103
+ var maxDimensions = {
104
+ width: "100%",
105
+ height: "100%"
106
+ };
123
107
  var originalDimensions = {
124
108
  width: width,
125
109
  height: height
126
110
  };
127
111
  var isSelectedAndInteracted = _this.nodeInsideSelection() && interactionState !== 'hasNotHadInteraction';
112
+ var pluginInjectionApi = _this.reactComponentProps.pluginInjectionApi;
128
113
  return /*#__PURE__*/_react.default.createElement(_media.default, {
129
114
  api: pluginInjectionApi,
130
115
  view: _this.view,
@@ -155,44 +140,6 @@ var MediaNodeView = /*#__PURE__*/function (_SelectionBasedNodeVi) {
155
140
  }
156
141
  (0, _inherits2.default)(MediaNodeView, _SelectionBasedNodeVi);
157
142
  return (0, _createClass2.default)(MediaNodeView, [{
158
- key: "getMediaSingleNode",
159
- value: function getMediaSingleNode(getPos) {
160
- var pos = getPos();
161
- if (typeof pos !== 'number') {
162
- return null;
163
- }
164
- var $pos = this.view.state.doc.resolve(pos);
165
-
166
- // The parent of the media node should be mediaSingle
167
- if ($pos.parent && $pos.parent.type.name === 'mediaSingle') {
168
- return $pos.parent;
169
- }
170
- return null;
171
- }
172
- }, {
173
- key: "getMaxWidthFromMediaSingleNode",
174
- value: function getMaxWidthFromMediaSingleNode(mediaSingleNode, containerWidth) {
175
- var _mediaSingleNode$attr = mediaSingleNode.attrs,
176
- widthAttr = _mediaSingleNode$attr.width,
177
- widthTypeAttr = _mediaSingleNode$attr.widthType,
178
- layoutAttr = _mediaSingleNode$attr.layout;
179
- if (widthAttr && widthTypeAttr === 'pixel') {
180
- return widthAttr;
181
- }
182
- // on SSR mode, containerWidth from widthPluginState can be 0
183
- if (!containerWidth) {
184
- switch (layoutAttr) {
185
- case 'full-width':
186
- return _editorSharedStyles.akEditorFullWidthLayoutWidth;
187
- case 'wide':
188
- return _editorSharedStyles.akEditorCalculatedWideLayoutWidth;
189
- default:
190
- return _editorSharedStyles.akEditorDefaultLayoutWidth;
191
- }
192
- }
193
- return containerWidth;
194
- }
195
- }, {
196
143
  key: "createDomRef",
197
144
  value: function createDomRef() {
198
145
  var domRef = document.createElement('div');
@@ -19,6 +19,7 @@ var _toolbarFlagCheck = require("@atlaskit/editor-common/toolbar-flag-check");
19
19
  var _state2 = require("@atlaskit/editor-prosemirror/state");
20
20
  var _utils = require("@atlaskit/editor-prosemirror/utils");
21
21
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
22
+ var _imageCrop = _interopRequireDefault(require("@atlaskit/icon-lab/core/image-crop"));
22
23
  var _copy = _interopRequireDefault(require("@atlaskit/icon/core/copy"));
23
24
  var _delete = _interopRequireDefault(require("@atlaskit/icon/core/delete"));
24
25
  var _growDiagonal = _interopRequireDefault(require("@atlaskit/icon/core/grow-diagonal"));
@@ -271,6 +272,7 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
271
272
  allowAltTextOnImages = options.allowAltTextOnImages,
272
273
  allowMediaInline = options.allowMediaInline,
273
274
  allowMediaInlineImages = options.allowMediaInlineImages,
275
+ allowImageEditing = options.allowImageEditing,
274
276
  allowImagePreview = options.allowImagePreview,
275
277
  isViewOnly = options.isViewOnly,
276
278
  allowPixelResizing = options.allowPixelResizing,
@@ -550,12 +552,33 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
550
552
  supportsViewMode: true
551
553
  });
552
554
  }
553
- // Preview Support
554
- if (allowImagePreview) {
555
+ // Image Editing Support
556
+ if (allowImageEditing && (0, _expValEquals.expValEquals)('platform_editor_add_image_editing', 'isEnabled', true)) {
555
557
  var _mediaNode$attrs;
556
558
  var _selectedMediaSingleNode = (0, _utils2.getSelectedMediaSingle)(state);
557
559
  var mediaNode = _selectedMediaSingleNode === null || _selectedMediaSingleNode === void 0 ? void 0 : _selectedMediaSingleNode.node.content.firstChild;
558
560
  if (!(0, _mediaSingle.isVideo)(mediaNode === null || mediaNode === void 0 || (_mediaNode$attrs = mediaNode.attrs) === null || _mediaNode$attrs === void 0 ? void 0 : _mediaNode$attrs.__fileMimeType)) {
561
+ toolbarButtons.push({
562
+ id: 'editor.media.edit',
563
+ testId: 'image-edit-toolbar-button',
564
+ type: 'button',
565
+ icon: _imageCrop.default,
566
+ title: intl.formatMessage(_messages.default.imageEdit),
567
+ onClick: function onClick() {
568
+ // TODO: EDITOR-3716 - Implement image editing logic
569
+ // console.log('Image editing clicked');
570
+ return true;
571
+ },
572
+ supportsViewMode: false
573
+ });
574
+ }
575
+ }
576
+ // Preview Support
577
+ if (allowImagePreview) {
578
+ var _mediaNode$attrs2;
579
+ var _selectedMediaSingleNode2 = (0, _utils2.getSelectedMediaSingle)(state);
580
+ var _mediaNode = _selectedMediaSingleNode2 === null || _selectedMediaSingleNode2 === void 0 ? void 0 : _selectedMediaSingleNode2.node.content.firstChild;
581
+ if (!(0, _mediaSingle.isVideo)(_mediaNode === null || _mediaNode === void 0 || (_mediaNode$attrs2 = _mediaNode.attrs) === null || _mediaNode$attrs2 === void 0 ? void 0 : _mediaNode$attrs2.__fileMimeType)) {
559
582
  var _pluginInjectionApi$c2;
560
583
  toolbarButtons.push({
561
584
  id: 'editor.media.viewer',
@@ -638,10 +661,10 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
638
661
  } else {
639
662
  // Preview Support
640
663
  if (allowAdvancedToolBarOptions && allowImagePreview) {
641
- var _mediaNode$attrs2;
642
- var _selectedMediaSingleNode2 = (0, _utils2.getSelectedMediaSingle)(state);
643
- var _mediaNode = _selectedMediaSingleNode2 === null || _selectedMediaSingleNode2 === void 0 ? void 0 : _selectedMediaSingleNode2.node.content.firstChild;
644
- if (!(0, _mediaSingle.isVideo)(_mediaNode === null || _mediaNode === void 0 || (_mediaNode$attrs2 = _mediaNode.attrs) === null || _mediaNode$attrs2 === void 0 ? void 0 : _mediaNode$attrs2.__fileMimeType)) {
664
+ var _mediaNode2$attrs;
665
+ var _selectedMediaSingleNode3 = (0, _utils2.getSelectedMediaSingle)(state);
666
+ var _mediaNode2 = _selectedMediaSingleNode3 === null || _selectedMediaSingleNode3 === void 0 ? void 0 : _selectedMediaSingleNode3.node.content.firstChild;
667
+ if (!(0, _mediaSingle.isVideo)(_mediaNode2 === null || _mediaNode2 === void 0 || (_mediaNode2$attrs = _mediaNode2.attrs) === null || _mediaNode2$attrs === void 0 ? void 0 : _mediaNode2$attrs.__fileMimeType)) {
645
668
  var _pluginInjectionApi$c3;
646
669
  toolbarButtons.push({
647
670
  id: 'editor.media.viewer',
@@ -688,6 +711,29 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
688
711
  (0, _utils2.updateToFullHeightSeparator)(toolbarButtons);
689
712
  toolbarButtons.push((0, _comments.commentButton)(intl, state, pluginInjectionApi, onCommentButtonMount));
690
713
  }
714
+ if (allowAdvancedToolBarOptions && allowImageEditing && (0, _expValEquals.expValEquals)('platform_editor_add_image_editing', 'isEnabled', true)) {
715
+ var _mediaNode3$attrs;
716
+ var _selectedMediaSingleNode4 = (0, _utils2.getSelectedMediaSingle)(state);
717
+ var _mediaNode3 = _selectedMediaSingleNode4 === null || _selectedMediaSingleNode4 === void 0 ? void 0 : _selectedMediaSingleNode4.node.content.firstChild;
718
+ if (!(0, _mediaSingle.isVideo)(_mediaNode3 === null || _mediaNode3 === void 0 || (_mediaNode3$attrs = _mediaNode3.attrs) === null || _mediaNode3$attrs === void 0 ? void 0 : _mediaNode3$attrs.__fileMimeType)) {
719
+ toolbarButtons.push({
720
+ id: 'editor.media.edit',
721
+ testId: 'image-edit-toolbar-button',
722
+ type: 'button',
723
+ icon: _imageCrop.default,
724
+ title: intl.formatMessage(_messages.default.imageEdit),
725
+ onClick: function onClick() {
726
+ // TODO: EDITOR-3716 - Implement image editing logic
727
+ // console.log('Image editing clicked');
728
+ return true;
729
+ },
730
+ supportsViewMode: false
731
+ }, {
732
+ type: 'separator',
733
+ supportsViewMode: false
734
+ });
735
+ }
736
+ }
691
737
  return toolbarButtons;
692
738
  }
693
739
  };
@@ -329,8 +329,6 @@ export const mediaPlugin = ({
329
329
  }));
330
330
  },
331
331
  secondaryToolbarComponent({
332
- editorView,
333
- eventDispatcher,
334
332
  disabled
335
333
  }) {
336
334
  return /*#__PURE__*/React.createElement(ToolbarMedia, {
@@ -340,9 +338,7 @@ export const mediaPlugin = ({
340
338
  });
341
339
  },
342
340
  pluginsOptions: {
343
- quickInsert: ({
344
- formatMessage
345
- }) => [],
341
+ quickInsert: () => [],
346
342
  floatingToolbar: (state, intl, providerFactory) => {
347
343
  var _api$editorViewMode, _api$editorViewMode$s;
348
344
  return floatingToolbar(state, intl, {
@@ -354,6 +350,7 @@ export const mediaPlugin = ({
354
350
  allowLinking: options && options.allowLinking,
355
351
  allowAdvancedToolBarOptions: options && options.allowAdvancedToolBarOptions,
356
352
  allowAltTextOnImages: options && options.allowAltTextOnImages,
353
+ allowImageEditing: options && options.allowImageEditing,
357
354
  allowImagePreview: options && options.allowImagePreview,
358
355
  altTextValidator: options && options.altTextValidator,
359
356
  fullWidthEnabled: options && options.fullWidthEnabled,
@@ -5,9 +5,7 @@ import { DEFAULT_IMAGE_HEIGHT, DEFAULT_IMAGE_WIDTH } from '@atlaskit/editor-comm
5
5
  import { WithProviders } from '@atlaskit/editor-common/provider-factory';
6
6
  import { SelectionBasedNodeView } from '@atlaskit/editor-common/selection-based-node-view';
7
7
  import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
8
- import { akEditorFullWidthLayoutWidth, akEditorDefaultLayoutWidth, akEditorCalculatedWideLayoutWidth } from '@atlaskit/editor-shared-styles';
9
8
  import { getAttrsFromUrl } from '@atlaskit/media-client';
10
- import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
11
9
  import { updateCurrentMediaNodeAttrs } from '../../pm-plugins/commands/helpers';
12
10
  import { isMediaBlobUrlFromAttrs } from '../../pm-plugins/utils/media-common';
13
11
  // Ignored via go/ees005
@@ -57,22 +55,6 @@ class MediaNodeView extends SelectionBasedNodeView {
57
55
  }, true)(this.view.state, this.view.dispatch);
58
56
  }
59
57
  });
60
- _defineProperty(this, "getMaxCardDimensions", editorWidth => {
61
- if (expValEquals('platform_editor_media_vc_fixes', 'isEnabled', true)) {
62
- const mediaSingleNodeParent = this.getMediaSingleNode(this.getPos);
63
- if (mediaSingleNodeParent) {
64
- const maxWidth = this.getMaxWidthFromMediaSingleNode(mediaSingleNodeParent, editorWidth === null || editorWidth === void 0 ? void 0 : editorWidth.width);
65
- return {
66
- width: `${maxWidth}px`,
67
- height: '100%'
68
- };
69
- }
70
- }
71
- return {
72
- width: '100%',
73
- height: '100%'
74
- };
75
- });
76
58
  _defineProperty(this, "renderMediaNodeWithState", contextIdentifierProvider => {
77
59
  return ({
78
60
  width: editorWidth,
@@ -103,17 +85,20 @@ class MediaNodeView extends SelectionBasedNodeView {
103
85
  }
104
86
  width = width || DEFAULT_IMAGE_WIDTH;
105
87
  height = height || DEFAULT_IMAGE_HEIGHT;
106
- const {
107
- pluginInjectionApi
108
- } = this.reactComponentProps;
109
88
 
110
89
  // mediaSingle defines the max dimensions, so we don't need to constrain twice.
111
- const maxDimensions = this.getMaxCardDimensions(editorWidth);
90
+ const maxDimensions = {
91
+ width: `100%`,
92
+ height: `100%`
93
+ };
112
94
  const originalDimensions = {
113
95
  width,
114
96
  height
115
97
  };
116
98
  const isSelectedAndInteracted = this.nodeInsideSelection() && interactionState !== 'hasNotHadInteraction';
99
+ const {
100
+ pluginInjectionApi
101
+ } = this.reactComponentProps;
117
102
  return /*#__PURE__*/React.createElement(MediaNode, {
118
103
  api: pluginInjectionApi,
119
104
  view: this.view,
@@ -144,41 +129,6 @@ class MediaNodeView extends SelectionBasedNodeView {
144
129
  });
145
130
  });
146
131
  }
147
- getMediaSingleNode(getPos) {
148
- const pos = getPos();
149
- if (typeof pos !== 'number') {
150
- return null;
151
- }
152
- const $pos = this.view.state.doc.resolve(pos);
153
-
154
- // The parent of the media node should be mediaSingle
155
- if ($pos.parent && $pos.parent.type.name === 'mediaSingle') {
156
- return $pos.parent;
157
- }
158
- return null;
159
- }
160
- getMaxWidthFromMediaSingleNode(mediaSingleNode, containerWidth) {
161
- const {
162
- width: widthAttr,
163
- widthType: widthTypeAttr,
164
- layout: layoutAttr
165
- } = mediaSingleNode.attrs;
166
- if (widthAttr && widthTypeAttr === 'pixel') {
167
- return widthAttr;
168
- }
169
- // on SSR mode, containerWidth from widthPluginState can be 0
170
- if (!containerWidth) {
171
- switch (layoutAttr) {
172
- case 'full-width':
173
- return akEditorFullWidthLayoutWidth;
174
- case 'wide':
175
- return akEditorCalculatedWideLayoutWidth;
176
- default:
177
- return akEditorDefaultLayoutWidth;
178
- }
179
- }
180
- return containerWidth;
181
- }
182
132
  createDomRef() {
183
133
  const domRef = document.createElement('div');
184
134
  if (this.reactComponentProps.mediaOptions && this.reactComponentProps.mediaOptions.allowMediaSingleEditable) {
@@ -9,6 +9,7 @@ import { areToolbarFlagsEnabled } from '@atlaskit/editor-common/toolbar-flag-che
9
9
  import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
10
10
  import { contains, findParentNodeOfType, hasParentNodeOfType, removeSelectedNode } from '@atlaskit/editor-prosemirror/utils';
11
11
  import { akEditorSelectedNodeClassName } from '@atlaskit/editor-shared-styles';
12
+ import ImageCropIcon from '@atlaskit/icon-lab/core/image-crop';
12
13
  import CopyIcon from '@atlaskit/icon/core/copy';
13
14
  import DeleteIcon from '@atlaskit/icon/core/delete';
14
15
  import GrowDiagonalIcon from '@atlaskit/icon/core/grow-diagonal';
@@ -259,6 +260,7 @@ const generateMediaSingleFloatingToolbar = (state, intl, options, pluginState, m
259
260
  allowAltTextOnImages,
260
261
  allowMediaInline,
261
262
  allowMediaInlineImages,
263
+ allowImageEditing,
262
264
  allowImagePreview,
263
265
  isViewOnly,
264
266
  allowPixelResizing,
@@ -548,12 +550,33 @@ const generateMediaSingleFloatingToolbar = (state, intl, options, pluginState, m
548
550
  supportsViewMode: true
549
551
  });
550
552
  }
551
- // Preview Support
552
- if (allowImagePreview) {
553
+ // Image Editing Support
554
+ if (allowImageEditing && expValEquals('platform_editor_add_image_editing', 'isEnabled', true)) {
553
555
  var _mediaNode$attrs;
554
556
  const selectedMediaSingleNode = getSelectedMediaSingle(state);
555
557
  const mediaNode = selectedMediaSingleNode === null || selectedMediaSingleNode === void 0 ? void 0 : selectedMediaSingleNode.node.content.firstChild;
556
558
  if (!isVideo(mediaNode === null || mediaNode === void 0 ? void 0 : (_mediaNode$attrs = mediaNode.attrs) === null || _mediaNode$attrs === void 0 ? void 0 : _mediaNode$attrs.__fileMimeType)) {
559
+ toolbarButtons.push({
560
+ id: 'editor.media.edit',
561
+ testId: 'image-edit-toolbar-button',
562
+ type: 'button',
563
+ icon: ImageCropIcon,
564
+ title: intl.formatMessage(commonMessages.imageEdit),
565
+ onClick: () => {
566
+ // TODO: EDITOR-3716 - Implement image editing logic
567
+ // console.log('Image editing clicked');
568
+ return true;
569
+ },
570
+ supportsViewMode: false
571
+ });
572
+ }
573
+ }
574
+ // Preview Support
575
+ if (allowImagePreview) {
576
+ var _mediaNode$attrs2;
577
+ const selectedMediaSingleNode = getSelectedMediaSingle(state);
578
+ const mediaNode = selectedMediaSingleNode === null || selectedMediaSingleNode === void 0 ? void 0 : selectedMediaSingleNode.node.content.firstChild;
579
+ if (!isVideo(mediaNode === null || mediaNode === void 0 ? void 0 : (_mediaNode$attrs2 = mediaNode.attrs) === null || _mediaNode$attrs2 === void 0 ? void 0 : _mediaNode$attrs2.__fileMimeType)) {
557
580
  var _pluginInjectionApi$c4, _pluginInjectionApi$c5, _pluginInjectionApi$c6;
558
581
  toolbarButtons.push({
559
582
  id: 'editor.media.viewer',
@@ -636,10 +659,10 @@ const generateMediaSingleFloatingToolbar = (state, intl, options, pluginState, m
636
659
  } else {
637
660
  // Preview Support
638
661
  if (allowAdvancedToolBarOptions && allowImagePreview) {
639
- var _mediaNode$attrs2;
662
+ var _mediaNode$attrs3;
640
663
  const selectedMediaSingleNode = getSelectedMediaSingle(state);
641
664
  const mediaNode = selectedMediaSingleNode === null || selectedMediaSingleNode === void 0 ? void 0 : selectedMediaSingleNode.node.content.firstChild;
642
- if (!isVideo(mediaNode === null || mediaNode === void 0 ? void 0 : (_mediaNode$attrs2 = mediaNode.attrs) === null || _mediaNode$attrs2 === void 0 ? void 0 : _mediaNode$attrs2.__fileMimeType)) {
665
+ if (!isVideo(mediaNode === null || mediaNode === void 0 ? void 0 : (_mediaNode$attrs3 = mediaNode.attrs) === null || _mediaNode$attrs3 === void 0 ? void 0 : _mediaNode$attrs3.__fileMimeType)) {
643
666
  var _pluginInjectionApi$c7, _pluginInjectionApi$c8, _pluginInjectionApi$c9;
644
667
  toolbarButtons.push({
645
668
  id: 'editor.media.viewer',
@@ -686,6 +709,29 @@ const generateMediaSingleFloatingToolbar = (state, intl, options, pluginState, m
686
709
  updateToFullHeightSeparator(toolbarButtons);
687
710
  toolbarButtons.push(commentButton(intl, state, pluginInjectionApi, onCommentButtonMount));
688
711
  }
712
+ if (allowAdvancedToolBarOptions && allowImageEditing && expValEquals('platform_editor_add_image_editing', 'isEnabled', true)) {
713
+ var _mediaNode$attrs4;
714
+ const selectedMediaSingleNode = getSelectedMediaSingle(state);
715
+ const mediaNode = selectedMediaSingleNode === null || selectedMediaSingleNode === void 0 ? void 0 : selectedMediaSingleNode.node.content.firstChild;
716
+ if (!isVideo(mediaNode === null || mediaNode === void 0 ? void 0 : (_mediaNode$attrs4 = mediaNode.attrs) === null || _mediaNode$attrs4 === void 0 ? void 0 : _mediaNode$attrs4.__fileMimeType)) {
717
+ toolbarButtons.push({
718
+ id: 'editor.media.edit',
719
+ testId: 'image-edit-toolbar-button',
720
+ type: 'button',
721
+ icon: ImageCropIcon,
722
+ title: intl.formatMessage(commonMessages.imageEdit),
723
+ onClick: () => {
724
+ // TODO: EDITOR-3716 - Implement image editing logic
725
+ // console.log('Image editing clicked');
726
+ return true;
727
+ },
728
+ supportsViewMode: false
729
+ }, {
730
+ type: 'separator',
731
+ supportsViewMode: false
732
+ });
733
+ }
734
+ }
689
735
  return toolbarButtons;
690
736
  }
691
737
  };
@@ -322,9 +322,7 @@ export var mediaPlugin = function mediaPlugin(_ref3) {
322
322
  }));
323
323
  },
324
324
  secondaryToolbarComponent: function secondaryToolbarComponent(_ref11) {
325
- var editorView = _ref11.editorView,
326
- eventDispatcher = _ref11.eventDispatcher,
327
- disabled = _ref11.disabled;
325
+ var disabled = _ref11.disabled;
328
326
  return /*#__PURE__*/React.createElement(ToolbarMedia, {
329
327
  isDisabled: disabled,
330
328
  isReducedSpacing: true,
@@ -332,8 +330,7 @@ export var mediaPlugin = function mediaPlugin(_ref3) {
332
330
  });
333
331
  },
334
332
  pluginsOptions: {
335
- quickInsert: function quickInsert(_ref12) {
336
- var formatMessage = _ref12.formatMessage;
333
+ quickInsert: function quickInsert() {
337
334
  return [];
338
335
  },
339
336
  floatingToolbar: function floatingToolbar(state, intl, providerFactory) {
@@ -347,6 +344,7 @@ export var mediaPlugin = function mediaPlugin(_ref3) {
347
344
  allowLinking: options && options.allowLinking,
348
345
  allowAdvancedToolBarOptions: options && options.allowAdvancedToolBarOptions,
349
346
  allowAltTextOnImages: options && options.allowAltTextOnImages,
347
+ allowImageEditing: options && options.allowImageEditing,
350
348
  allowImagePreview: options && options.allowImagePreview,
351
349
  altTextValidator: options && options.altTextValidator,
352
350
  fullWidthEnabled: options && options.fullWidthEnabled,
@@ -18,9 +18,7 @@ import { DEFAULT_IMAGE_HEIGHT, DEFAULT_IMAGE_WIDTH } from '@atlaskit/editor-comm
18
18
  import { WithProviders } from '@atlaskit/editor-common/provider-factory';
19
19
  import { SelectionBasedNodeView } from '@atlaskit/editor-common/selection-based-node-view';
20
20
  import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
21
- import { akEditorFullWidthLayoutWidth, akEditorDefaultLayoutWidth, akEditorCalculatedWideLayoutWidth } from '@atlaskit/editor-shared-styles';
22
21
  import { getAttrsFromUrl } from '@atlaskit/media-client';
23
- import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
24
22
  import { updateCurrentMediaNodeAttrs } from '../../pm-plugins/commands/helpers';
25
23
  import { isMediaBlobUrlFromAttrs } from '../../pm-plugins/utils/media-common';
26
24
  // Ignored via go/ees005
@@ -71,22 +69,6 @@ var MediaNodeView = /*#__PURE__*/function (_SelectionBasedNodeVi) {
71
69
  }, true)(_this.view.state, _this.view.dispatch);
72
70
  }
73
71
  });
74
- _defineProperty(_this, "getMaxCardDimensions", function (editorWidth) {
75
- if (expValEquals('platform_editor_media_vc_fixes', 'isEnabled', true)) {
76
- var mediaSingleNodeParent = _this.getMediaSingleNode(_this.getPos);
77
- if (mediaSingleNodeParent) {
78
- var maxWidth = _this.getMaxWidthFromMediaSingleNode(mediaSingleNodeParent, editorWidth === null || editorWidth === void 0 ? void 0 : editorWidth.width);
79
- return {
80
- width: "".concat(maxWidth, "px"),
81
- height: '100%'
82
- };
83
- }
84
- }
85
- return {
86
- width: '100%',
87
- height: '100%'
88
- };
89
- });
90
72
  _defineProperty(_this, "renderMediaNodeWithState", function (contextIdentifierProvider) {
91
73
  return function (_ref2) {
92
74
  var _this$reactComponentP;
@@ -110,15 +92,18 @@ var MediaNodeView = /*#__PURE__*/function (_SelectionBasedNodeVi) {
110
92
  }
111
93
  width = width || DEFAULT_IMAGE_WIDTH;
112
94
  height = height || DEFAULT_IMAGE_HEIGHT;
113
- var pluginInjectionApi = _this.reactComponentProps.pluginInjectionApi;
114
95
 
115
96
  // mediaSingle defines the max dimensions, so we don't need to constrain twice.
116
- var maxDimensions = _this.getMaxCardDimensions(editorWidth);
97
+ var maxDimensions = {
98
+ width: "100%",
99
+ height: "100%"
100
+ };
117
101
  var originalDimensions = {
118
102
  width: width,
119
103
  height: height
120
104
  };
121
105
  var isSelectedAndInteracted = _this.nodeInsideSelection() && interactionState !== 'hasNotHadInteraction';
106
+ var pluginInjectionApi = _this.reactComponentProps.pluginInjectionApi;
122
107
  return /*#__PURE__*/React.createElement(MediaNode, {
123
108
  api: pluginInjectionApi,
124
109
  view: _this.view,
@@ -149,44 +134,6 @@ var MediaNodeView = /*#__PURE__*/function (_SelectionBasedNodeVi) {
149
134
  }
150
135
  _inherits(MediaNodeView, _SelectionBasedNodeVi);
151
136
  return _createClass(MediaNodeView, [{
152
- key: "getMediaSingleNode",
153
- value: function getMediaSingleNode(getPos) {
154
- var pos = getPos();
155
- if (typeof pos !== 'number') {
156
- return null;
157
- }
158
- var $pos = this.view.state.doc.resolve(pos);
159
-
160
- // The parent of the media node should be mediaSingle
161
- if ($pos.parent && $pos.parent.type.name === 'mediaSingle') {
162
- return $pos.parent;
163
- }
164
- return null;
165
- }
166
- }, {
167
- key: "getMaxWidthFromMediaSingleNode",
168
- value: function getMaxWidthFromMediaSingleNode(mediaSingleNode, containerWidth) {
169
- var _mediaSingleNode$attr = mediaSingleNode.attrs,
170
- widthAttr = _mediaSingleNode$attr.width,
171
- widthTypeAttr = _mediaSingleNode$attr.widthType,
172
- layoutAttr = _mediaSingleNode$attr.layout;
173
- if (widthAttr && widthTypeAttr === 'pixel') {
174
- return widthAttr;
175
- }
176
- // on SSR mode, containerWidth from widthPluginState can be 0
177
- if (!containerWidth) {
178
- switch (layoutAttr) {
179
- case 'full-width':
180
- return akEditorFullWidthLayoutWidth;
181
- case 'wide':
182
- return akEditorCalculatedWideLayoutWidth;
183
- default:
184
- return akEditorDefaultLayoutWidth;
185
- }
186
- }
187
- return containerWidth;
188
- }
189
- }, {
190
137
  key: "createDomRef",
191
138
  value: function createDomRef() {
192
139
  var domRef = document.createElement('div');
@@ -13,6 +13,7 @@ import { areToolbarFlagsEnabled } from '@atlaskit/editor-common/toolbar-flag-che
13
13
  import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
14
14
  import { contains, findParentNodeOfType, hasParentNodeOfType, removeSelectedNode } from '@atlaskit/editor-prosemirror/utils';
15
15
  import { akEditorSelectedNodeClassName } from '@atlaskit/editor-shared-styles';
16
+ import ImageCropIcon from '@atlaskit/icon-lab/core/image-crop';
16
17
  import CopyIcon from '@atlaskit/icon/core/copy';
17
18
  import DeleteIcon from '@atlaskit/icon/core/delete';
18
19
  import GrowDiagonalIcon from '@atlaskit/icon/core/grow-diagonal';
@@ -262,6 +263,7 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
262
263
  allowAltTextOnImages = options.allowAltTextOnImages,
263
264
  allowMediaInline = options.allowMediaInline,
264
265
  allowMediaInlineImages = options.allowMediaInlineImages,
266
+ allowImageEditing = options.allowImageEditing,
265
267
  allowImagePreview = options.allowImagePreview,
266
268
  isViewOnly = options.isViewOnly,
267
269
  allowPixelResizing = options.allowPixelResizing,
@@ -541,12 +543,33 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
541
543
  supportsViewMode: true
542
544
  });
543
545
  }
544
- // Preview Support
545
- if (allowImagePreview) {
546
+ // Image Editing Support
547
+ if (allowImageEditing && expValEquals('platform_editor_add_image_editing', 'isEnabled', true)) {
546
548
  var _mediaNode$attrs;
547
549
  var _selectedMediaSingleNode = getSelectedMediaSingle(state);
548
550
  var mediaNode = _selectedMediaSingleNode === null || _selectedMediaSingleNode === void 0 ? void 0 : _selectedMediaSingleNode.node.content.firstChild;
549
551
  if (!isVideo(mediaNode === null || mediaNode === void 0 || (_mediaNode$attrs = mediaNode.attrs) === null || _mediaNode$attrs === void 0 ? void 0 : _mediaNode$attrs.__fileMimeType)) {
552
+ toolbarButtons.push({
553
+ id: 'editor.media.edit',
554
+ testId: 'image-edit-toolbar-button',
555
+ type: 'button',
556
+ icon: ImageCropIcon,
557
+ title: intl.formatMessage(commonMessages.imageEdit),
558
+ onClick: function onClick() {
559
+ // TODO: EDITOR-3716 - Implement image editing logic
560
+ // console.log('Image editing clicked');
561
+ return true;
562
+ },
563
+ supportsViewMode: false
564
+ });
565
+ }
566
+ }
567
+ // Preview Support
568
+ if (allowImagePreview) {
569
+ var _mediaNode$attrs2;
570
+ var _selectedMediaSingleNode2 = getSelectedMediaSingle(state);
571
+ var _mediaNode = _selectedMediaSingleNode2 === null || _selectedMediaSingleNode2 === void 0 ? void 0 : _selectedMediaSingleNode2.node.content.firstChild;
572
+ if (!isVideo(_mediaNode === null || _mediaNode === void 0 || (_mediaNode$attrs2 = _mediaNode.attrs) === null || _mediaNode$attrs2 === void 0 ? void 0 : _mediaNode$attrs2.__fileMimeType)) {
550
573
  var _pluginInjectionApi$c2;
551
574
  toolbarButtons.push({
552
575
  id: 'editor.media.viewer',
@@ -629,10 +652,10 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
629
652
  } else {
630
653
  // Preview Support
631
654
  if (allowAdvancedToolBarOptions && allowImagePreview) {
632
- var _mediaNode$attrs2;
633
- var _selectedMediaSingleNode2 = getSelectedMediaSingle(state);
634
- var _mediaNode = _selectedMediaSingleNode2 === null || _selectedMediaSingleNode2 === void 0 ? void 0 : _selectedMediaSingleNode2.node.content.firstChild;
635
- if (!isVideo(_mediaNode === null || _mediaNode === void 0 || (_mediaNode$attrs2 = _mediaNode.attrs) === null || _mediaNode$attrs2 === void 0 ? void 0 : _mediaNode$attrs2.__fileMimeType)) {
655
+ var _mediaNode2$attrs;
656
+ var _selectedMediaSingleNode3 = getSelectedMediaSingle(state);
657
+ var _mediaNode2 = _selectedMediaSingleNode3 === null || _selectedMediaSingleNode3 === void 0 ? void 0 : _selectedMediaSingleNode3.node.content.firstChild;
658
+ if (!isVideo(_mediaNode2 === null || _mediaNode2 === void 0 || (_mediaNode2$attrs = _mediaNode2.attrs) === null || _mediaNode2$attrs === void 0 ? void 0 : _mediaNode2$attrs.__fileMimeType)) {
636
659
  var _pluginInjectionApi$c3;
637
660
  toolbarButtons.push({
638
661
  id: 'editor.media.viewer',
@@ -679,6 +702,29 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
679
702
  updateToFullHeightSeparator(toolbarButtons);
680
703
  toolbarButtons.push(commentButton(intl, state, pluginInjectionApi, onCommentButtonMount));
681
704
  }
705
+ if (allowAdvancedToolBarOptions && allowImageEditing && expValEquals('platform_editor_add_image_editing', 'isEnabled', true)) {
706
+ var _mediaNode3$attrs;
707
+ var _selectedMediaSingleNode4 = getSelectedMediaSingle(state);
708
+ var _mediaNode3 = _selectedMediaSingleNode4 === null || _selectedMediaSingleNode4 === void 0 ? void 0 : _selectedMediaSingleNode4.node.content.firstChild;
709
+ if (!isVideo(_mediaNode3 === null || _mediaNode3 === void 0 || (_mediaNode3$attrs = _mediaNode3.attrs) === null || _mediaNode3$attrs === void 0 ? void 0 : _mediaNode3$attrs.__fileMimeType)) {
710
+ toolbarButtons.push({
711
+ id: 'editor.media.edit',
712
+ testId: 'image-edit-toolbar-button',
713
+ type: 'button',
714
+ icon: ImageCropIcon,
715
+ title: intl.formatMessage(commonMessages.imageEdit),
716
+ onClick: function onClick() {
717
+ // TODO: EDITOR-3716 - Implement image editing logic
718
+ // console.log('Image editing clicked');
719
+ return true;
720
+ },
721
+ supportsViewMode: false
722
+ }, {
723
+ type: 'separator',
724
+ supportsViewMode: false
725
+ });
726
+ }
727
+ }
682
728
  return toolbarButtons;
683
729
  }
684
730
  };
@@ -9,7 +9,7 @@ import type { SharedInteractionState } from '@atlaskit/editor-plugin-interaction
9
9
  import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
10
10
  import type { Decoration, EditorView } from '@atlaskit/editor-prosemirror/view';
11
11
  import type { MediaNextEditorPluginType } from '../../mediaPluginType';
12
- import type { getPosHandler, getPosHandlerNode, MediaOptions } from '../../types';
12
+ import type { getPosHandler, MediaOptions } from '../../types';
13
13
  import type { MediaNodeViewProps } from '../types';
14
14
  interface MediaNodeWithPluginStateComponentProps {
15
15
  interactionState?: SharedInteractionState['interactionState'];
@@ -18,8 +18,6 @@ interface MediaNodeWithPluginStateComponentProps {
18
18
  }
19
19
  declare class MediaNodeView extends SelectionBasedNodeView<MediaNodeViewProps> {
20
20
  private isSelected;
21
- getMediaSingleNode(getPos: getPosHandlerNode): PMNode | null;
22
- getMaxWidthFromMediaSingleNode(mediaSingleNode: PMNode, containerWidth?: number): number;
23
21
  createDomRef(): HTMLElement;
24
22
  viewShouldUpdate(nextNode: PMNode, decorations: Decoration[]): boolean;
25
23
  stopEvent(event: Event): boolean;
@@ -29,10 +27,6 @@ declare class MediaNodeView extends SelectionBasedNodeView<MediaNodeViewProps> {
29
27
  height: number;
30
28
  width: number;
31
29
  }) => void;
32
- getMaxCardDimensions: (editorWidth?: WidthPluginState) => {
33
- width: string;
34
- height: string;
35
- };
36
30
  renderMediaNodeWithState: (contextIdentifierProvider?: Promise<ContextIdentifierProvider>) => ({ width: editorWidth, mediaProvider, interactionState, }: MediaNodeWithPluginStateComponentProps) => React.JSX.Element;
37
31
  renderMediaNodeWithProviders: ({ contextIdentifierProvider }: Providers) => React.JSX.Element;
38
32
  render(): React.JSX.Element;
@@ -23,6 +23,7 @@ export interface MediaPluginOptions {
23
23
  allowCaptions?: boolean;
24
24
  allowCommentsOnMedia?: boolean;
25
25
  allowDropzoneDropLine?: boolean;
26
+ allowImageEditing?: boolean;
26
27
  allowImagePreview?: boolean;
27
28
  allowLazyLoading?: boolean;
28
29
  allowLinking?: boolean;
@@ -148,6 +149,7 @@ export type MediaFloatingToolbarOptions = {
148
149
  allowAdvancedToolBarOptions?: boolean;
149
150
  allowAltTextOnImages?: boolean;
150
151
  allowCommentsOnMedia?: boolean;
152
+ allowImageEditing?: boolean;
151
153
  allowImagePreview?: boolean;
152
154
  allowLinking?: boolean;
153
155
  allowMediaInline?: boolean;
@@ -8,5 +8,5 @@ type Props = {
8
8
  isOpen?: boolean;
9
9
  onBrowseFn: (browse: () => void) => void;
10
10
  };
11
- export declare const BrowserWrapper: ({ api, isOpen, onBrowseFn, featureFlags }: Props) => React.JSX.Element;
11
+ export declare const BrowserWrapper: ({ api, isOpen, onBrowseFn, featureFlags, }: Props) => React.JSX.Element;
12
12
  export {};
@@ -9,7 +9,7 @@ import type { SharedInteractionState } from '@atlaskit/editor-plugin-interaction
9
9
  import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
10
10
  import type { Decoration, EditorView } from '@atlaskit/editor-prosemirror/view';
11
11
  import type { MediaNextEditorPluginType } from '../../mediaPluginType';
12
- import type { getPosHandler, getPosHandlerNode, MediaOptions } from '../../types';
12
+ import type { getPosHandler, MediaOptions } from '../../types';
13
13
  import type { MediaNodeViewProps } from '../types';
14
14
  interface MediaNodeWithPluginStateComponentProps {
15
15
  interactionState?: SharedInteractionState['interactionState'];
@@ -18,8 +18,6 @@ interface MediaNodeWithPluginStateComponentProps {
18
18
  }
19
19
  declare class MediaNodeView extends SelectionBasedNodeView<MediaNodeViewProps> {
20
20
  private isSelected;
21
- getMediaSingleNode(getPos: getPosHandlerNode): PMNode | null;
22
- getMaxWidthFromMediaSingleNode(mediaSingleNode: PMNode, containerWidth?: number): number;
23
21
  createDomRef(): HTMLElement;
24
22
  viewShouldUpdate(nextNode: PMNode, decorations: Decoration[]): boolean;
25
23
  stopEvent(event: Event): boolean;
@@ -29,10 +27,6 @@ declare class MediaNodeView extends SelectionBasedNodeView<MediaNodeViewProps> {
29
27
  height: number;
30
28
  width: number;
31
29
  }) => void;
32
- getMaxCardDimensions: (editorWidth?: WidthPluginState) => {
33
- width: string;
34
- height: string;
35
- };
36
30
  renderMediaNodeWithState: (contextIdentifierProvider?: Promise<ContextIdentifierProvider>) => ({ width: editorWidth, mediaProvider, interactionState, }: MediaNodeWithPluginStateComponentProps) => React.JSX.Element;
37
31
  renderMediaNodeWithProviders: ({ contextIdentifierProvider }: Providers) => React.JSX.Element;
38
32
  render(): React.JSX.Element;
@@ -23,6 +23,7 @@ export interface MediaPluginOptions {
23
23
  allowCaptions?: boolean;
24
24
  allowCommentsOnMedia?: boolean;
25
25
  allowDropzoneDropLine?: boolean;
26
+ allowImageEditing?: boolean;
26
27
  allowImagePreview?: boolean;
27
28
  allowLazyLoading?: boolean;
28
29
  allowLinking?: boolean;
@@ -148,6 +149,7 @@ export type MediaFloatingToolbarOptions = {
148
149
  allowAdvancedToolBarOptions?: boolean;
149
150
  allowAltTextOnImages?: boolean;
150
151
  allowCommentsOnMedia?: boolean;
152
+ allowImageEditing?: boolean;
151
153
  allowImagePreview?: boolean;
152
154
  allowLinking?: boolean;
153
155
  allowMediaInline?: boolean;
@@ -8,5 +8,5 @@ type Props = {
8
8
  isOpen?: boolean;
9
9
  onBrowseFn: (browse: () => void) => void;
10
10
  };
11
- export declare const BrowserWrapper: ({ api, isOpen, onBrowseFn, featureFlags }: Props) => React.JSX.Element;
11
+ export declare const BrowserWrapper: ({ api, isOpen, onBrowseFn, featureFlags, }: Props) => React.JSX.Element;
12
12
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-media",
3
- "version": "8.4.19",
3
+ "version": "8.5.1",
4
4
  "description": "Media plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -32,7 +32,7 @@
32
32
  "@atlaskit/adf-schema": "^51.5.1",
33
33
  "@atlaskit/analytics-namespaced-context": "^7.2.0",
34
34
  "@atlaskit/analytics-next": "^11.1.0",
35
- "@atlaskit/button": "^23.6.0",
35
+ "@atlaskit/button": "^23.7.0",
36
36
  "@atlaskit/editor-palette": "^2.1.0",
37
37
  "@atlaskit/editor-plugin-analytics": "^6.2.0",
38
38
  "@atlaskit/editor-plugin-annotation": "^6.3.0",
@@ -51,11 +51,11 @@
51
51
  "@atlaskit/editor-prosemirror": "7.0.0",
52
52
  "@atlaskit/editor-shared-styles": "^3.10.0",
53
53
  "@atlaskit/editor-tables": "^2.9.0",
54
- "@atlaskit/form": "^14.3.0",
54
+ "@atlaskit/form": "^15.0.0",
55
55
  "@atlaskit/icon": "^29.0.0",
56
56
  "@atlaskit/icon-lab": "^5.12.0",
57
- "@atlaskit/media-card": "^79.9.0",
58
- "@atlaskit/media-client": "^35.6.0",
57
+ "@atlaskit/media-card": "^79.10.0",
58
+ "@atlaskit/media-client": "^35.7.0",
59
59
  "@atlaskit/media-client-react": "^4.1.0",
60
60
  "@atlaskit/media-common": "^12.3.0",
61
61
  "@atlaskit/media-filmstrip": "^51.1.0",
@@ -64,9 +64,9 @@
64
64
  "@atlaskit/media-viewer": "^52.5.0",
65
65
  "@atlaskit/platform-feature-flags": "^1.1.0",
66
66
  "@atlaskit/primitives": "^16.4.0",
67
- "@atlaskit/textfield": "^8.1.0",
67
+ "@atlaskit/textfield": "^8.2.0",
68
68
  "@atlaskit/theme": "^21.0.0",
69
- "@atlaskit/tmp-editor-statsig": "^15.0.0",
69
+ "@atlaskit/tmp-editor-statsig": "^15.9.0",
70
70
  "@atlaskit/tokens": "^8.4.0",
71
71
  "@atlaskit/tooltip": "^20.11.0",
72
72
  "@babel/runtime": "^7.0.0",
@@ -78,7 +78,7 @@
78
78
  "uuid": "^3.1.0"
79
79
  },
80
80
  "peerDependencies": {
81
- "@atlaskit/editor-common": "^110.40.0",
81
+ "@atlaskit/editor-common": "^110.41.0",
82
82
  "@atlaskit/media-core": "^37.0.0",
83
83
  "react": "^18.2.0",
84
84
  "react-dom": "^18.2.0",