@atlaskit/editor-common 72.8.0 → 72.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 72.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`135df1a1e78`](https://bitbucket.org/atlassian/atlassian-frontend/commits/135df1a1e78) - [ux] ED-17405 - Bugfix: Editor toolbar dropdown menus not receiving keyboard events for navigation
8
+
3
9
  ## 72.8.0
4
10
 
5
11
  ### Minor Changes
@@ -24,7 +24,7 @@ var _templateObject, _templateObject2, _templateObject3;
24
24
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
25
25
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** @jsx jsx */
26
26
  var packageName = "@atlaskit/editor-common";
27
- var packageVersion = "72.8.0";
27
+ var packageVersion = "72.9.0";
28
28
  var halfFocusRing = 1;
29
29
  var dropOffset = "0, ".concat((0, _constants.gridSize)(), "px");
30
30
  var DropList = /*#__PURE__*/function (_Component) {
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.ColorPaletteArrowKeyNavigationProvider = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
10
  var _react = _interopRequireWildcard(require("react"));
9
11
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
12
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -19,10 +21,14 @@ var ColorPaletteArrowKeyNavigationProvider = function ColorPaletteArrowKeyNaviga
19
21
  isOpenedByKeyboard = _ref.isOpenedByKeyboard,
20
22
  isPopupPositioned = _ref.isPopupPositioned,
21
23
  handleClose = _ref.handleClose,
22
- closeOnTab = _ref.closeOnTab;
24
+ closeOnTab = _ref.closeOnTab,
25
+ editorRef = _ref.editorRef;
23
26
  var wrapperRef = (0, _react.useRef)(null);
24
27
  var currentSelectedColumnIndex = (0, _react.useRef)(selectedColumnIndex === -1 ? 0 : selectedColumnIndex);
25
28
  var currentSelectedRowIndex = (0, _react.useRef)(selectedRowIndex === -1 ? 0 : selectedRowIndex);
29
+ var _useState = (0, _react.useState)(editorRef.current),
30
+ _useState2 = (0, _slicedToArray2.default)(_useState, 1),
31
+ listenerTargetElement = _useState2[0];
26
32
  var incrementRowIndex = function incrementRowIndex(rowElements, columnElements) {
27
33
  if (currentSelectedRowIndex.current === rowElements.length - 1) {
28
34
  currentSelectedRowIndex.current = 0;
@@ -105,7 +111,7 @@ var ColorPaletteArrowKeyNavigationProvider = function ColorPaletteArrowKeyNaviga
105
111
  return;
106
112
  }
107
113
  };
108
- document.addEventListener('keydown', handleKeyDown);
114
+ listenerTargetElement && listenerTargetElement.addEventListener('keydown', handleKeyDown);
109
115
  // set focus to current selected color swatch if only opened by keyboard
110
116
  if (isOpenedByKeyboard && isPopupPositioned) {
111
117
  // Using timeout because, we need to wait till color palette is rendered
@@ -116,9 +122,9 @@ var ColorPaletteArrowKeyNavigationProvider = function ColorPaletteArrowKeyNaviga
116
122
  });
117
123
  }
118
124
  return function () {
119
- document.removeEventListener('keydown', handleKeyDown);
125
+ listenerTargetElement && listenerTargetElement.removeEventListener('keydown', handleKeyDown);
120
126
  };
121
- }, [currentSelectedColumnIndex, isOpenedByKeyboard, isPopupPositioned, wrapperRef, handleClose, closeOnTab]);
127
+ }, [currentSelectedColumnIndex, isOpenedByKeyboard, isPopupPositioned, wrapperRef, handleClose, closeOnTab, listenerTargetElement]);
122
128
  return /*#__PURE__*/_react.default.createElement("div", {
123
129
  className: "custom-key-handler-wrapper",
124
130
  ref: wrapperRef
@@ -20,12 +20,16 @@ var MenuArrowKeyNavigationProvider = function MenuArrowKeyNavigationProvider(_re
20
20
  disableArrowKeyNavigation = _ref.disableArrowKeyNavigation,
21
21
  keyDownHandlerContext = _ref.keyDownHandlerContext,
22
22
  closeOnTab = _ref.closeOnTab,
23
- onSelection = _ref.onSelection;
23
+ onSelection = _ref.onSelection,
24
+ editorRef = _ref.editorRef;
24
25
  var wrapperRef = (0, _react.useRef)(null);
25
26
  var _useState = (0, _react.useState)(-1),
26
27
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
27
28
  currentSelectedItemIndex = _useState2[0],
28
29
  setCurrentSelectedItemIndex = _useState2[1];
30
+ var _useState3 = (0, _react.useState)(editorRef.current),
31
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 1),
32
+ listenerTargetElement = _useState4[0];
29
33
  var incrementIndex = (0, _react.useCallback)(function (list) {
30
34
  var currentIndex = currentSelectedItemIndex;
31
35
  var nextIndex = (currentIndex + 1) % list.length;
@@ -141,11 +145,11 @@ var MenuArrowKeyNavigationProvider = function MenuArrowKeyNavigationProvider(_re
141
145
  return;
142
146
  }
143
147
  };
144
- document.addEventListener('keydown', handleKeyDown);
148
+ listenerTargetElement && listenerTargetElement.addEventListener('keydown', handleKeyDown);
145
149
  return function () {
146
- document.removeEventListener('keydown', handleKeyDown);
150
+ listenerTargetElement && listenerTargetElement.removeEventListener('keydown', handleKeyDown);
147
151
  };
148
- }, [currentSelectedItemIndex, wrapperRef, handleClose, disableArrowKeyNavigation, keyDownHandlerContext, closeOnTab, onSelection, incrementIndex, decrementIndex]);
152
+ }, [currentSelectedItemIndex, wrapperRef, handleClose, disableArrowKeyNavigation, keyDownHandlerContext, closeOnTab, onSelection, incrementIndex, decrementIndex, listenerTargetElement]);
149
153
  return /*#__PURE__*/_react.default.createElement("div", {
150
154
  className: "menu-key-handler-wrapper custom-key-handler-wrapper",
151
155
  ref: wrapperRef
@@ -8,6 +8,7 @@ exports.ArrowKeyNavigationProvider = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
10
  var _react = _interopRequireDefault(require("react"));
11
+ var _uiReact = require("../../ui-react");
11
12
  var _ColorPaletteArrowKeyNavigationProvider = require("./ColorPaletteArrowKeyNavigationProvider");
12
13
  var _MenuArrowKeyNavigationProvider = require("./MenuArrowKeyNavigationProvider");
13
14
  var _types = require("./types");
@@ -17,13 +18,24 @@ var ArrowKeyNavigationProvider = function ArrowKeyNavigationProvider(props) {
17
18
  type = props.type,
18
19
  restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
19
20
  if (type === _types.ArrowKeyNavigationType.COLOR) {
20
- return /*#__PURE__*/_react.default.createElement(_ColorPaletteArrowKeyNavigationProvider.ColorPaletteArrowKeyNavigationProvider, (0, _extends2.default)({
21
- selectedRowIndex: props.selectedRowIndex,
22
- selectedColumnIndex: props.selectedColumnIndex,
23
- isOpenedByKeyboard: props.isOpenedByKeyboard,
24
- isPopupPositioned: props.isPopupPositioned
25
- }, restProps), children);
21
+ return /*#__PURE__*/_react.default.createElement(_uiReact.ReactEditorViewContext.Consumer, null, function (_ref) {
22
+ var editorView = _ref.editorView,
23
+ editorRef = _ref.editorRef;
24
+ return editorRef && /*#__PURE__*/_react.default.createElement(_ColorPaletteArrowKeyNavigationProvider.ColorPaletteArrowKeyNavigationProvider, (0, _extends2.default)({
25
+ selectedRowIndex: props.selectedRowIndex,
26
+ selectedColumnIndex: props.selectedColumnIndex,
27
+ isOpenedByKeyboard: props.isOpenedByKeyboard,
28
+ isPopupPositioned: props.isPopupPositioned,
29
+ editorRef: editorRef
30
+ }, restProps), children);
31
+ });
26
32
  }
27
- return /*#__PURE__*/_react.default.createElement(_MenuArrowKeyNavigationProvider.MenuArrowKeyNavigationProvider, restProps, children);
33
+ return /*#__PURE__*/_react.default.createElement(_uiReact.ReactEditorViewContext.Consumer, null, function (_ref2) {
34
+ var editorView = _ref2.editorView,
35
+ editorRef = _ref2.editorRef;
36
+ return editorRef && /*#__PURE__*/_react.default.createElement(_MenuArrowKeyNavigationProvider.MenuArrowKeyNavigationProvider, (0, _extends2.default)({
37
+ editorRef: editorRef
38
+ }, restProps), children);
39
+ });
28
40
  };
29
41
  exports.ArrowKeyNavigationProvider = ArrowKeyNavigationProvider;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "72.8.0",
3
+ "version": "72.9.0",
4
4
  "sideEffects": false
5
5
  }
@@ -8,7 +8,7 @@ import { themed } from '@atlaskit/theme/components';
8
8
  import { borderRadius, gridSize } from '@atlaskit/theme/constants';
9
9
  import Layer from '../Layer';
10
10
  const packageName = "@atlaskit/editor-common";
11
- const packageVersion = "72.8.0";
11
+ const packageVersion = "72.9.0";
12
12
  const halfFocusRing = 1;
13
13
  const dropOffset = `0, ${gridSize()}px`;
14
14
  class DropList extends Component {
@@ -1,4 +1,4 @@
1
- import React, { useLayoutEffect, useRef } from 'react';
1
+ import React, { useLayoutEffect, useRef, useState } from 'react';
2
2
  /**
3
3
  * This component is a wrapper for color picker which listens to keydown events of children
4
4
  * and handles arrow key navigation
@@ -10,11 +10,13 @@ export const ColorPaletteArrowKeyNavigationProvider = ({
10
10
  isOpenedByKeyboard,
11
11
  isPopupPositioned,
12
12
  handleClose,
13
- closeOnTab
13
+ closeOnTab,
14
+ editorRef
14
15
  }) => {
15
16
  const wrapperRef = useRef(null);
16
17
  const currentSelectedColumnIndex = useRef(selectedColumnIndex === -1 ? 0 : selectedColumnIndex);
17
18
  const currentSelectedRowIndex = useRef(selectedRowIndex === -1 ? 0 : selectedRowIndex);
19
+ const [listenerTargetElement] = useState(editorRef.current);
18
20
  const incrementRowIndex = (rowElements, columnElements) => {
19
21
  if (currentSelectedRowIndex.current === rowElements.length - 1) {
20
22
  currentSelectedRowIndex.current = 0;
@@ -97,7 +99,7 @@ export const ColorPaletteArrowKeyNavigationProvider = ({
97
99
  return;
98
100
  }
99
101
  };
100
- document.addEventListener('keydown', handleKeyDown);
102
+ listenerTargetElement && listenerTargetElement.addEventListener('keydown', handleKeyDown);
101
103
  // set focus to current selected color swatch if only opened by keyboard
102
104
  if (isOpenedByKeyboard && isPopupPositioned) {
103
105
  // Using timeout because, we need to wait till color palette is rendered
@@ -108,9 +110,9 @@ export const ColorPaletteArrowKeyNavigationProvider = ({
108
110
  });
109
111
  }
110
112
  return () => {
111
- document.removeEventListener('keydown', handleKeyDown);
113
+ listenerTargetElement && listenerTargetElement.removeEventListener('keydown', handleKeyDown);
112
114
  };
113
- }, [currentSelectedColumnIndex, isOpenedByKeyboard, isPopupPositioned, wrapperRef, handleClose, closeOnTab]);
115
+ }, [currentSelectedColumnIndex, isOpenedByKeyboard, isPopupPositioned, wrapperRef, handleClose, closeOnTab, listenerTargetElement]);
114
116
  return /*#__PURE__*/React.createElement("div", {
115
117
  className: "custom-key-handler-wrapper",
116
118
  ref: wrapperRef
@@ -9,10 +9,12 @@ export const MenuArrowKeyNavigationProvider = ({
9
9
  disableArrowKeyNavigation,
10
10
  keyDownHandlerContext,
11
11
  closeOnTab,
12
- onSelection
12
+ onSelection,
13
+ editorRef
13
14
  }) => {
14
15
  const wrapperRef = useRef(null);
15
16
  const [currentSelectedItemIndex, setCurrentSelectedItemIndex] = useState(-1);
17
+ const [listenerTargetElement] = useState(editorRef.current);
16
18
  const incrementIndex = useCallback(list => {
17
19
  const currentIndex = currentSelectedItemIndex;
18
20
  let nextIndex = (currentIndex + 1) % list.length;
@@ -128,11 +130,11 @@ export const MenuArrowKeyNavigationProvider = ({
128
130
  return;
129
131
  }
130
132
  };
131
- document.addEventListener('keydown', handleKeyDown);
133
+ listenerTargetElement && listenerTargetElement.addEventListener('keydown', handleKeyDown);
132
134
  return () => {
133
- document.removeEventListener('keydown', handleKeyDown);
135
+ listenerTargetElement && listenerTargetElement.removeEventListener('keydown', handleKeyDown);
134
136
  };
135
- }, [currentSelectedItemIndex, wrapperRef, handleClose, disableArrowKeyNavigation, keyDownHandlerContext, closeOnTab, onSelection, incrementIndex, decrementIndex]);
137
+ }, [currentSelectedItemIndex, wrapperRef, handleClose, disableArrowKeyNavigation, keyDownHandlerContext, closeOnTab, onSelection, incrementIndex, decrementIndex, listenerTargetElement]);
136
138
  return /*#__PURE__*/React.createElement("div", {
137
139
  className: "menu-key-handler-wrapper custom-key-handler-wrapper",
138
140
  ref: wrapperRef
@@ -1,5 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
+ import { ReactEditorViewContext } from '../../ui-react';
3
4
  import { ColorPaletteArrowKeyNavigationProvider } from './ColorPaletteArrowKeyNavigationProvider';
4
5
  import { MenuArrowKeyNavigationProvider } from './MenuArrowKeyNavigationProvider';
5
6
  import { ArrowKeyNavigationType } from './types';
@@ -10,12 +11,21 @@ export const ArrowKeyNavigationProvider = props => {
10
11
  ...restProps
11
12
  } = props;
12
13
  if (type === ArrowKeyNavigationType.COLOR) {
13
- return /*#__PURE__*/React.createElement(ColorPaletteArrowKeyNavigationProvider, _extends({
14
+ return /*#__PURE__*/React.createElement(ReactEditorViewContext.Consumer, null, ({
15
+ editorView,
16
+ editorRef
17
+ }) => editorRef && /*#__PURE__*/React.createElement(ColorPaletteArrowKeyNavigationProvider, _extends({
14
18
  selectedRowIndex: props.selectedRowIndex,
15
19
  selectedColumnIndex: props.selectedColumnIndex,
16
20
  isOpenedByKeyboard: props.isOpenedByKeyboard,
17
- isPopupPositioned: props.isPopupPositioned
18
- }, restProps), children);
21
+ isPopupPositioned: props.isPopupPositioned,
22
+ editorRef: editorRef
23
+ }, restProps), children));
19
24
  }
20
- return /*#__PURE__*/React.createElement(MenuArrowKeyNavigationProvider, restProps, children);
25
+ return /*#__PURE__*/React.createElement(ReactEditorViewContext.Consumer, null, ({
26
+ editorView,
27
+ editorRef
28
+ }) => editorRef && /*#__PURE__*/React.createElement(MenuArrowKeyNavigationProvider, _extends({
29
+ editorRef: editorRef
30
+ }, restProps), children));
21
31
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "72.8.0",
3
+ "version": "72.9.0",
4
4
  "sideEffects": false
5
5
  }
@@ -18,7 +18,7 @@ import { themed } from '@atlaskit/theme/components';
18
18
  import { borderRadius, gridSize } from '@atlaskit/theme/constants';
19
19
  import Layer from '../Layer';
20
20
  var packageName = "@atlaskit/editor-common";
21
- var packageVersion = "72.8.0";
21
+ var packageVersion = "72.9.0";
22
22
  var halfFocusRing = 1;
23
23
  var dropOffset = "0, ".concat(gridSize(), "px");
24
24
  var DropList = /*#__PURE__*/function (_Component) {
@@ -1,4 +1,5 @@
1
- import React, { useLayoutEffect, useRef } from 'react';
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import React, { useLayoutEffect, useRef, useState } from 'react';
2
3
  /**
3
4
  * This component is a wrapper for color picker which listens to keydown events of children
4
5
  * and handles arrow key navigation
@@ -10,10 +11,14 @@ export var ColorPaletteArrowKeyNavigationProvider = function ColorPaletteArrowKe
10
11
  isOpenedByKeyboard = _ref.isOpenedByKeyboard,
11
12
  isPopupPositioned = _ref.isPopupPositioned,
12
13
  handleClose = _ref.handleClose,
13
- closeOnTab = _ref.closeOnTab;
14
+ closeOnTab = _ref.closeOnTab,
15
+ editorRef = _ref.editorRef;
14
16
  var wrapperRef = useRef(null);
15
17
  var currentSelectedColumnIndex = useRef(selectedColumnIndex === -1 ? 0 : selectedColumnIndex);
16
18
  var currentSelectedRowIndex = useRef(selectedRowIndex === -1 ? 0 : selectedRowIndex);
19
+ var _useState = useState(editorRef.current),
20
+ _useState2 = _slicedToArray(_useState, 1),
21
+ listenerTargetElement = _useState2[0];
17
22
  var incrementRowIndex = function incrementRowIndex(rowElements, columnElements) {
18
23
  if (currentSelectedRowIndex.current === rowElements.length - 1) {
19
24
  currentSelectedRowIndex.current = 0;
@@ -96,7 +101,7 @@ export var ColorPaletteArrowKeyNavigationProvider = function ColorPaletteArrowKe
96
101
  return;
97
102
  }
98
103
  };
99
- document.addEventListener('keydown', handleKeyDown);
104
+ listenerTargetElement && listenerTargetElement.addEventListener('keydown', handleKeyDown);
100
105
  // set focus to current selected color swatch if only opened by keyboard
101
106
  if (isOpenedByKeyboard && isPopupPositioned) {
102
107
  // Using timeout because, we need to wait till color palette is rendered
@@ -107,9 +112,9 @@ export var ColorPaletteArrowKeyNavigationProvider = function ColorPaletteArrowKe
107
112
  });
108
113
  }
109
114
  return function () {
110
- document.removeEventListener('keydown', handleKeyDown);
115
+ listenerTargetElement && listenerTargetElement.removeEventListener('keydown', handleKeyDown);
111
116
  };
112
- }, [currentSelectedColumnIndex, isOpenedByKeyboard, isPopupPositioned, wrapperRef, handleClose, closeOnTab]);
117
+ }, [currentSelectedColumnIndex, isOpenedByKeyboard, isPopupPositioned, wrapperRef, handleClose, closeOnTab, listenerTargetElement]);
113
118
  return /*#__PURE__*/React.createElement("div", {
114
119
  className: "custom-key-handler-wrapper",
115
120
  ref: wrapperRef
@@ -10,12 +10,16 @@ export var MenuArrowKeyNavigationProvider = function MenuArrowKeyNavigationProvi
10
10
  disableArrowKeyNavigation = _ref.disableArrowKeyNavigation,
11
11
  keyDownHandlerContext = _ref.keyDownHandlerContext,
12
12
  closeOnTab = _ref.closeOnTab,
13
- onSelection = _ref.onSelection;
13
+ onSelection = _ref.onSelection,
14
+ editorRef = _ref.editorRef;
14
15
  var wrapperRef = useRef(null);
15
16
  var _useState = useState(-1),
16
17
  _useState2 = _slicedToArray(_useState, 2),
17
18
  currentSelectedItemIndex = _useState2[0],
18
19
  setCurrentSelectedItemIndex = _useState2[1];
20
+ var _useState3 = useState(editorRef.current),
21
+ _useState4 = _slicedToArray(_useState3, 1),
22
+ listenerTargetElement = _useState4[0];
19
23
  var incrementIndex = useCallback(function (list) {
20
24
  var currentIndex = currentSelectedItemIndex;
21
25
  var nextIndex = (currentIndex + 1) % list.length;
@@ -131,11 +135,11 @@ export var MenuArrowKeyNavigationProvider = function MenuArrowKeyNavigationProvi
131
135
  return;
132
136
  }
133
137
  };
134
- document.addEventListener('keydown', handleKeyDown);
138
+ listenerTargetElement && listenerTargetElement.addEventListener('keydown', handleKeyDown);
135
139
  return function () {
136
- document.removeEventListener('keydown', handleKeyDown);
140
+ listenerTargetElement && listenerTargetElement.removeEventListener('keydown', handleKeyDown);
137
141
  };
138
- }, [currentSelectedItemIndex, wrapperRef, handleClose, disableArrowKeyNavigation, keyDownHandlerContext, closeOnTab, onSelection, incrementIndex, decrementIndex]);
142
+ }, [currentSelectedItemIndex, wrapperRef, handleClose, disableArrowKeyNavigation, keyDownHandlerContext, closeOnTab, onSelection, incrementIndex, decrementIndex, listenerTargetElement]);
139
143
  return /*#__PURE__*/React.createElement("div", {
140
144
  className: "menu-key-handler-wrapper custom-key-handler-wrapper",
141
145
  ref: wrapperRef
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  var _excluded = ["children", "type"];
4
4
  import React from 'react';
5
+ import { ReactEditorViewContext } from '../../ui-react';
5
6
  import { ColorPaletteArrowKeyNavigationProvider } from './ColorPaletteArrowKeyNavigationProvider';
6
7
  import { MenuArrowKeyNavigationProvider } from './MenuArrowKeyNavigationProvider';
7
8
  import { ArrowKeyNavigationType } from './types';
@@ -10,12 +11,23 @@ export var ArrowKeyNavigationProvider = function ArrowKeyNavigationProvider(prop
10
11
  type = props.type,
11
12
  restProps = _objectWithoutProperties(props, _excluded);
12
13
  if (type === ArrowKeyNavigationType.COLOR) {
13
- return /*#__PURE__*/React.createElement(ColorPaletteArrowKeyNavigationProvider, _extends({
14
- selectedRowIndex: props.selectedRowIndex,
15
- selectedColumnIndex: props.selectedColumnIndex,
16
- isOpenedByKeyboard: props.isOpenedByKeyboard,
17
- isPopupPositioned: props.isPopupPositioned
18
- }, restProps), children);
14
+ return /*#__PURE__*/React.createElement(ReactEditorViewContext.Consumer, null, function (_ref) {
15
+ var editorView = _ref.editorView,
16
+ editorRef = _ref.editorRef;
17
+ return editorRef && /*#__PURE__*/React.createElement(ColorPaletteArrowKeyNavigationProvider, _extends({
18
+ selectedRowIndex: props.selectedRowIndex,
19
+ selectedColumnIndex: props.selectedColumnIndex,
20
+ isOpenedByKeyboard: props.isOpenedByKeyboard,
21
+ isPopupPositioned: props.isPopupPositioned,
22
+ editorRef: editorRef
23
+ }, restProps), children);
24
+ });
19
25
  }
20
- return /*#__PURE__*/React.createElement(MenuArrowKeyNavigationProvider, restProps, children);
26
+ return /*#__PURE__*/React.createElement(ReactEditorViewContext.Consumer, null, function (_ref2) {
27
+ var editorView = _ref2.editorView,
28
+ editorRef = _ref2.editorRef;
29
+ return editorRef && /*#__PURE__*/React.createElement(MenuArrowKeyNavigationProvider, _extends({
30
+ editorRef: editorRef
31
+ }, restProps), children);
32
+ });
21
33
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "72.8.0",
3
+ "version": "72.9.0",
4
4
  "sideEffects": false
5
5
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export interface KeyDownHandlerContext {
2
3
  handleArrowRight: () => void;
3
4
  handleArrowLeft: () => void;
@@ -18,6 +19,7 @@ export declare type ColorPaletteArrowKeyNavigationOptions = {
18
19
  export declare type ColorPaletteArrowKeyNavigationProps = ColorPaletteArrowKeyNavigationOptions & {
19
20
  handleClose?: SimpleEventHandler<KeyboardEvent>;
20
21
  closeOnTab?: boolean;
22
+ editorRef: React.RefObject<HTMLDivElement>;
21
23
  };
22
24
  export declare type MenuArrowKeyNavigationOptions = {
23
25
  type: ArrowKeyNavigationType.MENU;
@@ -28,6 +30,7 @@ export declare type MenuArrowKeyNavigationProviderProps = MenuArrowKeyNavigation
28
30
  handleClose?: SimpleEventHandler<KeyboardEvent>;
29
31
  onSelection?: (index: number) => void;
30
32
  closeOnTab?: boolean;
33
+ editorRef: React.RefObject<HTMLDivElement>;
31
34
  };
32
35
  export declare type ArrowKeyNavigationProviderOptions = ColorPaletteArrowKeyNavigationOptions | MenuArrowKeyNavigationOptions;
33
- export declare type ArrowKeyNavigationProviderProps = ColorPaletteArrowKeyNavigationProps | MenuArrowKeyNavigationProviderProps;
36
+ export declare type ArrowKeyNavigationProviderProps = Omit<ColorPaletteArrowKeyNavigationProps, 'editorRef'> | Omit<MenuArrowKeyNavigationProviderProps, 'editorRef'>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "72.8.0",
3
+ "version": "72.9.0",
4
4
  "description": "A package that contains common classes and components for editor and renderer",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -80,7 +80,7 @@
80
80
  "@atlaskit/mention": "^22.0.0",
81
81
  "@atlaskit/menu": "^1.5.0",
82
82
  "@atlaskit/profilecard": "^19.2.0",
83
- "@atlaskit/smart-card": "^25.4.0",
83
+ "@atlaskit/smart-card": "^25.5.0",
84
84
  "@atlaskit/smart-user-picker": "^6.0.0",
85
85
  "@atlaskit/task-decision": "^17.5.0",
86
86
  "@atlaskit/theme": "^12.4.0",