@atlaskit/editor-plugin-media 1.23.2 → 1.24.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,28 @@
1
1
  # @atlaskit/editor-plugin-media
2
2
 
3
+ ## 1.24.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#120417](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/120417)
8
+ [`26e76bb38b63f`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/26e76bb38b63f) -
9
+ [ux] ECA11Y-175: This changes improves the floating toolbar a11y by making the image border
10
+ options menu accessible for keyboard-only users, and is behind the feature gate
11
+ `platform-editor-a11y-image-border-options-dropdown`.
12
+ - Updated dependencies
13
+
14
+ ## 1.24.0
15
+
16
+ ### Minor Changes
17
+
18
+ - [#119966](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/119966)
19
+ [`596ad24e38929`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/596ad24e38929) -
20
+ Clean up typescript references to LegacyPortalProviderAPI
21
+
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies
25
+
3
26
  ## 1.23.2
4
27
 
5
28
  ### Patch Changes
@@ -372,11 +372,10 @@ var ReactMediaGroupNode = exports.ReactMediaGroupNode = function ReactMediaGroup
372
372
  var mediaOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
373
373
  var pluginInjectionApi = arguments.length > 4 ? arguments[4] : undefined;
374
374
  return function (node, view, getPos) {
375
- var hasIntlContext = true;
376
375
  return new MediaGroupNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, {
377
376
  providerFactory: providerFactory,
378
377
  mediaOptions: mediaOptions,
379
378
  pluginInjectionApi: pluginInjectionApi
380
- }, undefined, undefined, undefined, hasIntlContext).init();
379
+ }).init();
381
380
  };
382
381
  };
@@ -190,12 +190,11 @@ var ReactMediaNode = exports.ReactMediaNode = function ReactMediaNode(portalProv
190
190
  var mediaOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
191
191
  var pluginInjectionApi = arguments.length > 4 ? arguments[4] : undefined;
192
192
  return function (node, view, getPos) {
193
- var hasIntlContext = true;
194
193
  return new MediaNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, {
195
194
  eventDispatcher: eventDispatcher,
196
195
  providerFactory: providerFactory,
197
196
  mediaOptions: mediaOptions,
198
197
  pluginInjectionApi: pluginInjectionApi
199
- }, undefined, undefined, undefined, hasIntlContext).init();
198
+ }).init();
200
199
  };
201
200
  };
@@ -698,7 +698,6 @@ var MediaSingleNodeView = /*#__PURE__*/function (_ReactNodeView) {
698
698
  var ReactMediaSingleNode = exports.ReactMediaSingleNode = function ReactMediaSingleNode(portalProviderAPI, eventDispatcher, providerFactory, pluginInjectionApi, dispatchAnalyticsEvent) {
699
699
  var mediaOptions = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
700
700
  return function (node, view, getPos) {
701
- var hasIntlContext = true;
702
701
  return new MediaSingleNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, {
703
702
  eventDispatcher: eventDispatcher,
704
703
  fullWidthMode: mediaOptions.fullWidthEnabled,
@@ -708,6 +707,6 @@ var ReactMediaSingleNode = exports.ReactMediaSingleNode = function ReactMediaSin
708
707
  isCopyPasteEnabled: mediaOptions.isCopyPasteEnabled,
709
708
  pluginInjectionApi: pluginInjectionApi,
710
709
  editorAppearance: mediaOptions.editorAppearance
711
- }, undefined, undefined, undefined, hasIntlContext).init();
710
+ }).init();
712
711
  };
713
712
  };
@@ -16,6 +16,7 @@ var _uiColor = require("@atlaskit/editor-common/ui-color");
16
16
  var _uiMenu = require("@atlaskit/editor-common/ui-menu");
17
17
  var _editorPalette = require("@atlaskit/editor-palette");
18
18
  var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-down"));
19
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
19
20
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
20
21
  var _styles2 = require("./styles");
21
22
  /** @jsx jsx */
@@ -28,6 +29,11 @@ var ImageBorder = function ImageBorder(_ref) {
28
29
  borderMark = _ref.borderMark,
29
30
  setBorder = _ref.setBorder;
30
31
  var popupTarget = (0, _react.useRef)(null);
32
+ var dropDownColorOptionButton = (0, _react.useRef)(null);
33
+ var dropDownSizeOptionButton = (0, _react.useRef)(null);
34
+ var colorSubmenuRef = (0, _react.useRef)(null);
35
+ var sizeSubmenuRef = (0, _react.useRef)(null);
36
+ var openDropdownButtonRef = (0, _react.useRef)(null);
31
37
  var enabled = !!borderMark;
32
38
  var color = borderMark === null || borderMark === void 0 ? void 0 : borderMark.color;
33
39
  var size = borderMark === null || borderMark === void 0 ? void 0 : borderMark.size;
@@ -37,12 +43,28 @@ var ImageBorder = function ImageBorder(_ref) {
37
43
  setIsOpen = _useState2[1];
38
44
  var _useState3 = (0, _react.useState)(false),
39
45
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
40
- isColorSubmenuOpen = _useState4[0],
41
- setIsColorSubmenuOpen = _useState4[1];
46
+ isOpenByKeyboard = _useState4[0],
47
+ setIsOpenedByKeyboard = _useState4[1];
42
48
  var _useState5 = (0, _react.useState)(false),
43
49
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
44
- isSizeSubmenuOpen = _useState6[0],
45
- setIsSizeSubmenuOpen = _useState6[1];
50
+ isColorSubmenuOpen = _useState6[0],
51
+ setIsColorSubmenuOpen = _useState6[1];
52
+ var _useState7 = (0, _react.useState)(false),
53
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
54
+ isSizeSubmenuOpen = _useState8[0],
55
+ setIsSizeSubmenuOpen = _useState8[1];
56
+ var handleColorSubmenuEsc = (0, _react.useCallback)(function () {
57
+ var _dropDownColorOptionB;
58
+ setIsOpenedByKeyboard(false);
59
+ setIsColorSubmenuOpen(false);
60
+ dropDownColorOptionButton === null || dropDownColorOptionButton === void 0 || (_dropDownColorOptionB = dropDownColorOptionButton.current) === null || _dropDownColorOptionB === void 0 || _dropDownColorOptionB.focus();
61
+ }, []);
62
+ var handleSizeSubmenuEsc = (0, _react.useCallback)(function () {
63
+ var _dropDownSizeOptionBu;
64
+ setIsOpenedByKeyboard(false);
65
+ setIsSizeSubmenuOpen(false);
66
+ dropDownSizeOptionButton === null || dropDownSizeOptionButton === void 0 || (_dropDownSizeOptionBu = dropDownSizeOptionButton.current) === null || _dropDownSizeOptionBu === void 0 || _dropDownSizeOptionBu.focus();
67
+ }, []);
46
68
  var handleSubMenuRef = function handleSubMenuRef(ref) {
47
69
  if (!ref) {
48
70
  return;
@@ -52,6 +74,38 @@ var ImageBorder = function ImageBorder(_ref) {
52
74
  ref.style.left = "-".concat(rect.width, "px");
53
75
  }
54
76
  };
77
+ var handleTriggerByKeyboard = function handleTriggerByKeyboard(event, callback) {
78
+ if ((0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown')) {
79
+ if (event.key === 'Enter' || event.key === ' ') {
80
+ event.preventDefault();
81
+ callback();
82
+ setIsOpenedByKeyboard(true);
83
+ }
84
+ }
85
+ };
86
+ (0, _react.useEffect)(function () {
87
+ if ((0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown')) {
88
+ var focusFirstOption = function focusFirstOption(submenuRef, isOpen) {
89
+ if (!isOpenByKeyboard) {
90
+ return;
91
+ }
92
+ if (isOpen && submenuRef.current) {
93
+ var firstOption = submenuRef.current.querySelector('button');
94
+ if (!firstOption) {
95
+ return;
96
+ }
97
+ firstOption.focus();
98
+ var keyboardEvent = new KeyboardEvent('keydown', {
99
+ key: 'ArrowDown',
100
+ bubbles: true
101
+ });
102
+ firstOption.dispatchEvent(keyboardEvent);
103
+ }
104
+ };
105
+ focusFirstOption(colorSubmenuRef, isColorSubmenuOpen);
106
+ focusFirstOption(sizeSubmenuRef, isSizeSubmenuOpen);
107
+ }
108
+ }, [isColorSubmenuOpen, isSizeSubmenuOpen, isOpenByKeyboard]);
55
109
  var borderSizeOptions = [{
56
110
  name: formatMessage(_media.imageBorderMessages.borderSizeSubtle),
57
111
  value: 1
@@ -62,7 +116,153 @@ var ImageBorder = function ImageBorder(_ref) {
62
116
  name: formatMessage(_media.imageBorderMessages.borderSizeBold),
63
117
  value: 3
64
118
  }];
65
- var items = [{
119
+ var items = (0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown') ? [{
120
+ content: (0, _react2.jsx)("div", null, (0, _react2.jsx)("button", {
121
+ ref: dropDownColorOptionButton,
122
+ type: "button",
123
+ "aria-label": "Image border options Color dropdown button",
124
+ "data-testid": "image-border-dropdown-button-color"
125
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
126
+ ,
127
+ css: [_styles2.dropdownOptionButton],
128
+ "aria-expanded": isColorSubmenuOpen,
129
+ onKeyDown: function onKeyDown(e) {
130
+ return handleTriggerByKeyboard(e, function () {
131
+ return setIsColorSubmenuOpen(!isColorSubmenuOpen);
132
+ });
133
+ }
134
+ }, (0, _react2.jsx)("span", null, formatMessage(_media.imageBorderMessages.borderColor)), (0, _react2.jsx)("div", {
135
+ css: (0, _styles2.contextualMenuColorIcon)(color && (0, _editorPalette.hexToEditorBorderPaletteColor)(color))
136
+ })), (0, _react2.jsx)("div", {
137
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
138
+ className: _styles.DropdownMenuSharedCssClassName.SUBMENU,
139
+ ref: colorSubmenuRef
140
+ }, isColorSubmenuOpen &&
141
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
142
+ (0, _react2.jsx)("div", {
143
+ css: (0, _styles2.contextualSubMenu)(0),
144
+ ref: handleSubMenuRef
145
+ }, (0, _react2.jsx)(_uiMenu.ArrowKeyNavigationProvider, {
146
+ type: _uiMenu.ArrowKeyNavigationType.MENU,
147
+ handleClose: function handleClose(e) {
148
+ e.preventDefault();
149
+ e.stopPropagation();
150
+ handleColorSubmenuEsc();
151
+ },
152
+ disableCloseOnArrowClick: true
153
+ }, (0, _react2.jsx)(_uiColor.ColorPalette, {
154
+ onClick: function onClick(color) {
155
+ setBorder({
156
+ color: color
157
+ });
158
+ setIsOpen(!isOpen);
159
+ },
160
+ onKeyDown: function onKeyDown(color, _, event) {
161
+ if (event.key === 'Enter' || event.key === ' ') {
162
+ var _openDropdownButtonRe;
163
+ setBorder({
164
+ color: color
165
+ });
166
+ setIsOpen(!isOpen);
167
+ setIsColorSubmenuOpen(false);
168
+ setIsSizeSubmenuOpen(false);
169
+ (_openDropdownButtonRe = openDropdownButtonRef.current) === null || _openDropdownButtonRe === void 0 || _openDropdownButtonRe.focus();
170
+ }
171
+ },
172
+ selectedColor: color !== null && color !== void 0 ? color : null,
173
+ paletteOptions: {
174
+ palette: _uiColor.borderColorPalette,
175
+ paletteColorTooltipMessages: _uiColor.borderPaletteTooltipMessages,
176
+ hexToPaletteColor: _editorPalette.hexToEditorBorderPaletteColor
177
+ }
178
+ }))))),
179
+ 'data-testid': 'dropdown-item__Color',
180
+ key: 'dropdown-menu-image-border-color-button',
181
+ value: {
182
+ name: 'color'
183
+ },
184
+ 'aria-label': '',
185
+ wrapperTabIndex: null
186
+ }, {
187
+ content: (0, _react2.jsx)("div", null, (0, _react2.jsx)("button", {
188
+ type: "button",
189
+ "aria-label": "Image border options Size dropdown button",
190
+ "data-testid": "image-border-dropdown-button-size"
191
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
192
+ ,
193
+ css: [_styles2.dropdownOptionButton],
194
+ "aria-expanded": isSizeSubmenuOpen,
195
+ ref: dropDownSizeOptionButton,
196
+ onKeyDown: function onKeyDown(e) {
197
+ return handleTriggerByKeyboard(e, function () {
198
+ return setIsSizeSubmenuOpen(!isSizeSubmenuOpen);
199
+ });
200
+ }
201
+ }, (0, _react2.jsx)("span", null, formatMessage(_media.imageBorderMessages.borderSize)), (0, _react2.jsx)("div", {
202
+ css: _styles2.contextualMenuArrow
203
+ })), (0, _react2.jsx)("div", {
204
+ //eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
205
+ className: _styles.DropdownMenuSharedCssClassName.SUBMENU,
206
+ ref: sizeSubmenuRef
207
+ }, isSizeSubmenuOpen && (0, _react2.jsx)(_uiMenu.ArrowKeyNavigationProvider, {
208
+ type: _uiMenu.ArrowKeyNavigationType.MENU,
209
+ handleClose: function handleClose(e) {
210
+ e.preventDefault();
211
+ handleSizeSubmenuEsc();
212
+ },
213
+ disableCloseOnArrowClick: true
214
+ }, (0, _react2.jsx)("div", {
215
+ css: (0, _styles2.contextualSubMenu)(1),
216
+ ref: handleSubMenuRef
217
+ }, borderSizeOptions.map(function (_ref2, idx) {
218
+ var name = _ref2.name,
219
+ value = _ref2.value;
220
+ return (0, _react2.jsx)(_tooltip.default, {
221
+ key: idx,
222
+ content: name
223
+ }, (0, _react2.jsx)("span", {
224
+ css: _styles2.buttonWrapperStyle
225
+ }, (0, _react2.jsx)("button", {
226
+ type: "button"
227
+ /* eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766 */,
228
+ css: (0, _styles2.buttonStyle)(value === size),
229
+ "aria-label": name,
230
+ role: "radio",
231
+ "aria-checked": value === size,
232
+ onClick: function onClick() {
233
+ setBorder({
234
+ size: value
235
+ });
236
+ setIsOpen(false);
237
+ },
238
+ onKeyDown: function onKeyDown(event) {
239
+ if (event.key === 'Enter' || event.key === ' ') {
240
+ var _openDropdownButtonRe2;
241
+ setBorder({
242
+ size: value
243
+ });
244
+ setIsOpen(false);
245
+ setIsColorSubmenuOpen(false);
246
+ setIsSizeSubmenuOpen(false);
247
+ (_openDropdownButtonRe2 = openDropdownButtonRef.current) === null || _openDropdownButtonRe2 === void 0 || _openDropdownButtonRe2.focus();
248
+ }
249
+ },
250
+ onMouseDown: function onMouseDown(e) {
251
+ e.preventDefault();
252
+ }
253
+ }, (0, _react2.jsx)("div", {
254
+ css: (0, _styles2.line)(value, value === size),
255
+ role: "presentation"
256
+ }))));
257
+ }))))),
258
+ 'data-testid': 'dropdown-item__Size',
259
+ key: 'dropdown-menu-image-border-size-button',
260
+ value: {
261
+ name: 'size'
262
+ },
263
+ 'aria-label': '',
264
+ wrapperTabIndex: null
265
+ }] : [{
66
266
  content: formatMessage(_media.imageBorderMessages.borderColor),
67
267
  value: {
68
268
  name: 'color'
@@ -108,9 +308,9 @@ var ImageBorder = function ImageBorder(_ref) {
108
308
  (0, _react2.jsx)("div", {
109
309
  css: (0, _styles2.contextualSubMenu)(1),
110
310
  ref: handleSubMenuRef
111
- }, borderSizeOptions.map(function (_ref2, idx) {
112
- var name = _ref2.name,
113
- value = _ref2.value;
311
+ }, borderSizeOptions.map(function (_ref3, idx) {
312
+ var name = _ref3.name,
313
+ value = _ref3.value;
114
314
  return (0, _react2.jsx)(_tooltip.default, {
115
315
  key: idx,
116
316
  content: name
@@ -139,7 +339,6 @@ var ImageBorder = function ImageBorder(_ref) {
139
339
  }))));
140
340
  })))
141
341
  }];
142
-
143
342
  /**
144
343
  * We want to change direction of our dropdowns a bit early,
145
344
  * not exactly when it hits the boundary.
@@ -147,6 +346,7 @@ var ImageBorder = function ImageBorder(_ref) {
147
346
  var fitTolerance = 10;
148
347
  var fitWidth = _styles2.menuItemDimensions.width;
149
348
  var fitHeight = items.length * (_styles2.menuItemDimensions.height + _styles2.itemSpacing);
349
+ var isAnySubMenuOpen = isSizeSubmenuOpen || isColorSubmenuOpen;
150
350
  return (0, _react2.jsx)("div", null, (0, _react2.jsx)("div", {
151
351
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
152
352
  css: (0, _styles2.toolbarButtonWrapper)({
@@ -171,7 +371,9 @@ var ImageBorder = function ImageBorder(_ref) {
171
371
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
172
372
  , {
173
373
  className: "image-border-toolbar-dropdown",
374
+ ref: openDropdownButtonRef,
174
375
  selected: enabled || isOpen,
376
+ "aria-expanded": (0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown') ? isOpen : undefined,
175
377
  "aria-label": formatMessage(_media.imageBorderMessages.borderOptions),
176
378
  title: formatMessage(_media.imageBorderMessages.borderOptions),
177
379
  spacing: "compact",
@@ -180,7 +382,15 @@ var ImageBorder = function ImageBorder(_ref) {
180
382
  }),
181
383
  onClick: function onClick() {
182
384
  setIsOpen(!isOpen);
183
- }
385
+ if ((0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown')) {
386
+ setIsOpenedByKeyboard(false);
387
+ }
388
+ },
389
+ onKeyDown: (0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown') ? function (e) {
390
+ return handleTriggerByKeyboard(e, function () {
391
+ return setIsOpen(!isOpen);
392
+ });
393
+ } : undefined
184
394
  }))), (0, _react2.jsx)(_ui.Popup, {
185
395
  target: popupTarget.current ? popupTarget.current : undefined,
186
396
  fitWidth: fitWidth + fitTolerance,
@@ -191,7 +401,9 @@ var ImageBorder = function ImageBorder(_ref) {
191
401
  onMouseLeave: function onMouseLeave() {
192
402
  setIsColorSubmenuOpen(false);
193
403
  setIsSizeSubmenuOpen(false);
194
- }
404
+ },
405
+ css: (0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown') ? /* eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766 */
406
+ _styles2.dropdownWrapper : undefined
195
407
  }, (0, _react2.jsx)(_uiMenu.DropdownMenu
196
408
  //This needs be removed when the a11y is completely handled
197
409
  //Disabling key navigation now as it works only partially
@@ -199,19 +411,32 @@ var ImageBorder = function ImageBorder(_ref) {
199
411
  , {
200
412
  arrowKeyNavigationProviderOptions: {
201
413
  type: _uiMenu.ArrowKeyNavigationType.MENU,
202
- disableArrowKeyNavigation: true
414
+ disableArrowKeyNavigation: (0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown') ? isAnySubMenuOpen ? true : false : true
203
415
  },
416
+ allowEnterDefaultBehavior: (0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown') ? isAnySubMenuOpen ? true : false : undefined,
417
+ handleEscapeKeydown: (0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown') ? isAnySubMenuOpen ? function () {
418
+ return;
419
+ } : function () {
420
+ var _openDropdownButtonRe3;
421
+ (_openDropdownButtonRe3 = openDropdownButtonRef.current) === null || _openDropdownButtonRe3 === void 0 || _openDropdownButtonRe3.focus();
422
+ } : undefined,
204
423
  items: [{
205
424
  items: items
206
425
  }],
207
426
  isOpen: isOpen,
427
+ shouldFocusFirstItem: (0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown') ? function () {
428
+ return isOpenByKeyboard;
429
+ } : undefined,
208
430
  onOpenChange: function onOpenChange() {
209
431
  setIsOpen(false);
210
432
  setIsColorSubmenuOpen(false);
211
433
  setIsSizeSubmenuOpen(false);
434
+ if ((0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown')) {
435
+ setIsOpenedByKeyboard(false);
436
+ }
212
437
  },
213
- onItemActivated: function onItemActivated(_ref3) {
214
- var item = _ref3.item;
438
+ onItemActivated: function onItemActivated(_ref4) {
439
+ var item = _ref4.item;
215
440
  if (item.value.name === 'color') {
216
441
  setIsColorSubmenuOpen(!isColorSubmenuOpen);
217
442
  }
@@ -219,17 +444,23 @@ var ImageBorder = function ImageBorder(_ref) {
219
444
  setIsSizeSubmenuOpen(!isSizeSubmenuOpen);
220
445
  }
221
446
  },
222
- onMouseEnter: function onMouseEnter(_ref4) {
223
- var item = _ref4.item;
447
+ onMouseEnter: function onMouseEnter(_ref5) {
448
+ var item = _ref5.item;
224
449
  if (item.value.name === 'color') {
225
450
  setIsColorSubmenuOpen(true);
451
+ if ((0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown')) {
452
+ setIsOpenedByKeyboard(false);
453
+ }
226
454
  }
227
455
  if (item.value.name === 'size') {
228
456
  setIsSizeSubmenuOpen(true);
457
+ if ((0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown')) {
458
+ setIsOpenedByKeyboard(false);
459
+ }
229
460
  }
230
461
  },
231
- onMouseLeave: function onMouseLeave(_ref5) {
232
- var item = _ref5.item;
462
+ onMouseLeave: function onMouseLeave(_ref6) {
463
+ var item = _ref6.item;
233
464
  if (item.value.name === 'color') {
234
465
  setIsColorSubmenuOpen(false);
235
466
  }
@@ -5,14 +5,14 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.toolbarButtonWrapper = exports.menuItemDimensions = exports.line = exports.itemSpacing = exports.contextualSubMenu = exports.contextualMenuColorIcon = exports.contextualMenuArrow = exports.buttonWrapperStyle = exports.buttonStyle = void 0;
8
+ exports.toolbarButtonWrapper = exports.menuItemDimensions = exports.line = exports.itemSpacing = exports.dropdownWrapper = exports.dropdownOptionButton = exports.contextualSubMenu = exports.contextualMenuColorIcon = exports.contextualMenuArrow = exports.buttonWrapperStyle = exports.buttonStyle = void 0;
9
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
10
  var _react = require("@emotion/react");
11
11
  var _uiColor = require("@atlaskit/editor-common/ui-color");
12
12
  var _colors = _interopRequireWildcard(require("@atlaskit/theme/colors"));
13
13
  var colors = _colors;
14
14
  var _constants = require("@atlaskit/theme/constants");
15
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
15
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
16
16
  /* eslint-disable @atlaskit/design-system/no-css-tagged-template-expression -- Needs manual remediation*/
17
17
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
18
18
  // eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
@@ -55,4 +55,10 @@ var toolbarButtonWrapper = exports.toolbarButtonWrapper = function toolbarButton
55
55
  var enabled = _ref.enabled,
56
56
  isOpen = _ref.isOpen;
57
57
  return (0, _react.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n\tdisplay: flex;\n\t.image-border-toolbar-btn {\n\t\tborder-top-right-radius: 0;\n\t\tborder-bottom-right-radius: 0;\n\t\tpadding: 0;\n\t\t& > span {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n\t.image-border-toolbar-dropdown {\n\t\tpadding: 0;\n\t\t& > span {\n\t\t\tmargin: 0;\n\t\t}\n\t\twidth: 16px !important;\n\t\tborder-top-left-radius: 0 !important;\n\t\tborder-bottom-left-radius: 0 !important;\n\t\tmargin-left: ", ";\n\t}\n\n\t", "\n\t", "\n"])), "var(--ds-space-025, 2px)", !enabled && getHoverStyles('.image-border-toolbar-btn'), !isOpen && !enabled && getHoverStyles('.image-border-toolbar-dropdown'));
58
- };
58
+ };
59
+
60
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles
61
+ var dropdownOptionButton = exports.dropdownOptionButton = (0, _react.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n\tbackground: transparent;\n\tborder: 2px solid transparent;\n\tdisplay: flex;\n\twidth: 100%;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 8px 16px;\n\n\t&:focus {\n\t\tbackground-color: ", ";\n\t\tborder: 2px solid ", ";\n\t}\n"])), "var(--ds-background-neutral-subtle-hovered, rgb(244, 245, 247))", "var(--ds-border-focused, #2684FF)");
62
+
63
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles
64
+ var dropdownWrapper = exports.dropdownWrapper = (0, _react.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n\tspan[role='menuitem'] {\n\t\tpadding: 0;\n\t}\n"])));
@@ -311,10 +311,9 @@ class MediaGroupNodeView extends ReactNodeView {
311
311
  }
312
312
  }
313
313
  export const ReactMediaGroupNode = (portalProviderAPI, eventDispatcher, providerFactory, mediaOptions = {}, pluginInjectionApi) => (node, view, getPos) => {
314
- const hasIntlContext = true;
315
314
  return new MediaGroupNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, {
316
315
  providerFactory,
317
316
  mediaOptions,
318
317
  pluginInjectionApi
319
- }, undefined, undefined, undefined, hasIntlContext).init();
318
+ }).init();
320
319
  };
@@ -161,11 +161,10 @@ class MediaNodeView extends SelectionBasedNodeView {
161
161
  }
162
162
  }
163
163
  export const ReactMediaNode = (portalProviderAPI, eventDispatcher, providerFactory, mediaOptions = {}, pluginInjectionApi) => (node, view, getPos) => {
164
- const hasIntlContext = true;
165
164
  return new MediaNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, {
166
165
  eventDispatcher,
167
166
  providerFactory,
168
167
  mediaOptions,
169
168
  pluginInjectionApi
170
- }, undefined, undefined, undefined, hasIntlContext).init();
169
+ }).init();
171
170
  };
@@ -585,7 +585,6 @@ class MediaSingleNodeView extends ReactNodeView {
585
585
  }
586
586
  }
587
587
  export const ReactMediaSingleNode = (portalProviderAPI, eventDispatcher, providerFactory, pluginInjectionApi, dispatchAnalyticsEvent, mediaOptions = {}) => (node, view, getPos) => {
588
- const hasIntlContext = true;
589
588
  return new MediaSingleNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, {
590
589
  eventDispatcher,
591
590
  fullWidthMode: mediaOptions.fullWidthEnabled,
@@ -595,5 +594,5 @@ export const ReactMediaSingleNode = (portalProviderAPI, eventDispatcher, provide
595
594
  isCopyPasteEnabled: mediaOptions.isCopyPasteEnabled,
596
595
  pluginInjectionApi,
597
596
  editorAppearance: mediaOptions.editorAppearance
598
- }, undefined, undefined, undefined, hasIntlContext).init();
597
+ }).init();
599
598
  };