@atlaskit/editor-common 83.0.4 → 83.2.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.
Files changed (57) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/extensibility/Extension/Extension/index.js +3 -1
  3. package/dist/cjs/extensibility/Extension/InlineExtension/index.js +3 -1
  4. package/dist/cjs/extensibility/Extension/Lozenge/ExtensionLabel.js +84 -42
  5. package/dist/cjs/extensibility/Extension/Lozenge/LozengeComponent.js +3 -1
  6. package/dist/cjs/extensibility/Extension/Lozenge/index.js +2 -0
  7. package/dist/cjs/extensibility/MultiBodiedExtension/index.js +3 -1
  8. package/dist/cjs/monitoring/error.js +1 -1
  9. package/dist/cjs/ui/DropList/index.js +1 -1
  10. package/dist/cjs/ui-menu/ArrowKeyNavigationProvider/ColorPaletteArrowKeyNavigationProvider/index.js +5 -2
  11. package/dist/cjs/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.js +11 -4
  12. package/dist/cjs/ui-menu/ArrowKeyNavigationProvider/index.js +8 -4
  13. package/dist/cjs/ui-menu/DropdownMenu/index.js +9 -2
  14. package/dist/cjs/ui-react/with-react-editor-view-outer-listeners.js +5 -2
  15. package/dist/es2019/extensibility/Extension/Extension/index.js +3 -1
  16. package/dist/es2019/extensibility/Extension/InlineExtension/index.js +3 -1
  17. package/dist/es2019/extensibility/Extension/Lozenge/ExtensionLabel.js +84 -44
  18. package/dist/es2019/extensibility/Extension/Lozenge/LozengeComponent.js +3 -1
  19. package/dist/es2019/extensibility/Extension/Lozenge/index.js +2 -0
  20. package/dist/es2019/extensibility/MultiBodiedExtension/index.js +3 -1
  21. package/dist/es2019/monitoring/error.js +1 -1
  22. package/dist/es2019/ui/DropList/index.js +1 -1
  23. package/dist/es2019/ui-menu/ArrowKeyNavigationProvider/ColorPaletteArrowKeyNavigationProvider/index.js +5 -2
  24. package/dist/es2019/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.js +11 -4
  25. package/dist/es2019/ui-menu/ArrowKeyNavigationProvider/index.js +6 -2
  26. package/dist/es2019/ui-menu/DropdownMenu/index.js +10 -2
  27. package/dist/es2019/ui-react/with-react-editor-view-outer-listeners.js +5 -2
  28. package/dist/esm/extensibility/Extension/Extension/index.js +3 -1
  29. package/dist/esm/extensibility/Extension/InlineExtension/index.js +3 -1
  30. package/dist/esm/extensibility/Extension/Lozenge/ExtensionLabel.js +86 -44
  31. package/dist/esm/extensibility/Extension/Lozenge/LozengeComponent.js +3 -1
  32. package/dist/esm/extensibility/Extension/Lozenge/index.js +2 -0
  33. package/dist/esm/extensibility/MultiBodiedExtension/index.js +3 -1
  34. package/dist/esm/monitoring/error.js +1 -1
  35. package/dist/esm/ui/DropList/index.js +1 -1
  36. package/dist/esm/ui-menu/ArrowKeyNavigationProvider/ColorPaletteArrowKeyNavigationProvider/index.js +5 -2
  37. package/dist/esm/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.js +11 -4
  38. package/dist/esm/ui-menu/ArrowKeyNavigationProvider/index.js +8 -4
  39. package/dist/esm/ui-menu/DropdownMenu/index.js +9 -2
  40. package/dist/esm/ui-react/with-react-editor-view-outer-listeners.js +5 -2
  41. package/dist/types/collab/index.d.ts +26 -0
  42. package/dist/types/extensibility/Extension/Lozenge/ExtensionLabel.d.ts +2 -1
  43. package/dist/types/extensibility/Extension/Lozenge/LozengeComponent.d.ts +2 -1
  44. package/dist/types/extensibility/Extension/Lozenge/index.d.ts +1 -0
  45. package/dist/types/ui-menu/ArrowKeyNavigationProvider/ColorPaletteArrowKeyNavigationProvider/index.d.ts +1 -1
  46. package/dist/types/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.d.ts +1 -1
  47. package/dist/types/ui-menu/ArrowKeyNavigationProvider/types.d.ts +2 -0
  48. package/dist/types/ui-react/ReactEditorViewContext.d.ts +1 -0
  49. package/dist/types-ts4.5/collab/index.d.ts +26 -0
  50. package/dist/types-ts4.5/extensibility/Extension/Lozenge/ExtensionLabel.d.ts +2 -1
  51. package/dist/types-ts4.5/extensibility/Extension/Lozenge/LozengeComponent.d.ts +2 -1
  52. package/dist/types-ts4.5/extensibility/Extension/Lozenge/index.d.ts +1 -0
  53. package/dist/types-ts4.5/ui-menu/ArrowKeyNavigationProvider/ColorPaletteArrowKeyNavigationProvider/index.d.ts +1 -1
  54. package/dist/types-ts4.5/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.d.ts +1 -1
  55. package/dist/types-ts4.5/ui-menu/ArrowKeyNavigationProvider/types.d.ts +2 -0
  56. package/dist/types-ts4.5/ui-react/ReactEditorViewContext.d.ts +1 -0
  57. package/package.json +4 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 83.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#114794](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/114794)
8
+ [`f859d1c0d08dc`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/f859d1c0d08dc) -
9
+ [ux] Adds in logic to conditionally show new label designs for macro interaction updates. Also
10
+ updates/adds new tests.
11
+
12
+ ## 83.1.0
13
+
14
+ ### Minor Changes
15
+
16
+ - [#114806](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/114806)
17
+ [`d3310bbf372ec`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/d3310bbf372ec) -
18
+ [ux] The keyboard navigation for the main toolbar
19
+ - [#114811](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/114811)
20
+ [`ad0d2f10ef71b`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/ad0d2f10ef71b) -
21
+ CONFONBO-3268: Changes for the experiment Teammate Presence: expose 2 new collab events to add
22
+ statuses (viewing/editing) to Confluence
23
+
3
24
  ## 83.0.4
4
25
 
5
26
  ### Patch Changes
@@ -43,7 +43,8 @@ function ExtensionWithPluginState(props) {
43
43
  isNodeNested = props.isNodeNested,
44
44
  setIsNodeHovered = props.setIsNodeHovered;
45
45
  var _ref = macroInteractionDesignFeatureFlags || {},
46
- showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates;
46
+ showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates,
47
+ showMacroButtonUpdates = _ref.showMacroButtonUpdates;
47
48
  var hasBody = ['bodiedExtension', 'multiBodiedExtension'].includes(node.type.name);
48
49
  var isMobile = editorAppearance === 'mobile';
49
50
  var hasChildren = !!children;
@@ -111,6 +112,7 @@ function ExtensionWithPluginState(props) {
111
112
  isNodeNested: isNodeNested,
112
113
  node: node,
113
114
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
115
+ showMacroButtonUpdates: showMacroButtonUpdates,
114
116
  customContainerStyles: customContainerStyles,
115
117
  setIsNodeHovered: setIsNodeHovered,
116
118
  isBodiedMacro: hasBody
@@ -31,7 +31,8 @@ var InlineExtension = function InlineExtension(props) {
31
31
  isNodeHovered = props.isNodeHovered,
32
32
  setIsNodeHovered = props.setIsNodeHovered;
33
33
  var _ref = macroInteractionDesignFeatureFlags || {},
34
- showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates;
34
+ showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates,
35
+ showMacroButtonUpdates = _ref.showMacroButtonUpdates;
35
36
  var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['width']),
36
37
  widthState = _useSharedPluginState.widthState;
37
38
  var hasChildren = !!children;
@@ -53,6 +54,7 @@ var InlineExtension = function InlineExtension(props) {
53
54
  isNodeSelected: isNodeSelected,
54
55
  isNodeHovered: isNodeHovered,
55
56
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
57
+ showMacroButtonUpdates: showMacroButtonUpdates,
56
58
  setIsNodeHovered: setIsNodeHovered
57
59
  }), (0, _react2.jsx)("div", {
58
60
  "data-testid": "inline-extension-wrapper"
@@ -5,38 +5,41 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.ExtensionLabel = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
9
  var _react = require("react");
9
10
  var _react2 = require("@emotion/react");
10
11
  var _classnames = _interopRequireDefault(require("classnames"));
12
+ var _reactIntlNext = require("react-intl-next");
13
+ var _preferences = _interopRequireDefault(require("@atlaskit/icon/glyph/preferences"));
11
14
  var _colors = require("@atlaskit/theme/colors");
15
+ var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
12
16
  /** @jsx jsx */
13
17
 
14
18
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
15
19
 
16
- var labelStyles = (0, _react2.css)({
20
+ var containerStyles = (0, _react2.css)({
21
+ textAlign: 'left',
22
+ zIndex: 1,
23
+ position: 'relative',
24
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
25
+ '&.bodied': {
26
+ marginTop: "var(--ds-space-300, 24px)"
27
+ }
28
+ });
29
+ var sharedLabelStyles = (0, _react2.css)({
17
30
  opacity: 0,
31
+ lineHeight: 1,
18
32
  display: 'inline-flex',
19
- width: 'max-content',
20
33
  justifyContent: 'left',
21
34
  position: 'absolute',
22
- // Unfortunately, these need to be these exact numbers - otherwise there will be a noticeable gap/overlap
35
+ width: 'max-content',
23
36
  // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
24
37
  top: '-19px',
25
38
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
26
- '&.inline': {
27
- // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
28
- top: '-18px',
29
- marginLeft: "var(--ds-space-150, 12px)"
30
- },
31
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
32
39
  '&.show-label': {
33
40
  cursor: 'pointer',
34
- background: "var(--ds-background-accent-gray-subtle-pressed, ".concat(_colors.N40, ")"),
35
- color: "var(--ds-text-subtle, ".concat(_colors.N500, ")"),
36
41
  opacity: 1
37
42
  },
38
- borderRadius: "var(--ds-border-radius, 3px)".concat(" ", "var(--ds-border-radius, 3px)", " 0 0"),
39
- lineHeight: 1,
40
43
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
41
44
  '&.nested': {
42
45
  // Need to add indent if the node is nested since we removed previous indentation styles to make it fit properly
@@ -44,26 +47,49 @@ var labelStyles = (0, _react2.css)({
44
47
  marginLeft: "var(--ds-space-150, 12px)"
45
48
  },
46
49
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
47
- '&.bodied-background': {
48
- background: "var(--ds-surface, ".concat(_colors.N0, ")")
49
- },
50
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
51
- '&.bodied-border': {
52
- boxShadow: "0 0 0 1px ".concat("var(--ds-border, ".concat(_colors.N30, ")"))
50
+ '&.inline': {
51
+ marginLeft: "var(--ds-space-150, 12px)",
52
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
53
+ top: '-18px'
53
54
  }
54
55
  });
56
+ var buttonLabelStyles = (0, _react2.css)({
57
+ alignItems: 'center',
58
+ borderRadius: "var(--ds-border-radius, 3px)",
59
+ paddingLeft: "var(--ds-space-050, 4px)",
60
+ paddingRight: "var(--ds-space-050, 4px)",
61
+ color: "var(--ds-text-subtle, ".concat(_colors.N800, ")"),
62
+ backgroundColor: "var(--ds-background-accent-gray-subtlest, ".concat(_colors.N30, ")")
63
+ });
64
+ var placeholderStyles = (0, _react2.css)({
65
+ height: "var(--ds-space-150, 12px)"
66
+ });
55
67
  var textStyles = (0, _react2.css)({
56
68
  fontSize: '14px',
57
69
  fontWeight: 'normal',
58
70
  padding: "var(--ds-space-025, 2px)".concat(" ", "var(--ds-space-050, 4px)")
59
71
  });
60
- var containerStyles = (0, _react2.css)({
61
- textAlign: 'left',
62
- zIndex: 1,
63
- position: 'relative',
72
+ var originalLabelStyles = (0, _react2.css)({
73
+ borderRadius: "var(--ds-border-radius, 3px)".concat(" ", "var(--ds-border-radius, 3px)", " 0 0"),
64
74
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
65
- '&.bodied': {
66
- marginTop: "var(--ds-space-300, 24px)"
75
+ '&.show-label': {
76
+ background: "var(--ds-background-accent-gray-subtle-pressed, ".concat(_colors.N40, ")"),
77
+ color: "var(--ds-text-subtle, ".concat(_colors.N500, ")")
78
+ },
79
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
80
+ '&.bodied-background': {
81
+ background: "var(--ds-surface, ".concat(_colors.N0, ")")
82
+ },
83
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
84
+ '&.bodied-border': {
85
+ boxShadow: "0 0 0 1px ".concat("var(--ds-border, ".concat(_colors.N30, ")"))
86
+ }
87
+ });
88
+ var i18n = (0, _reactIntlNext.defineMessages)({
89
+ configure: {
90
+ id: 'editor-common-extensibility.macro.button.configure',
91
+ defaultMessage: 'Configure',
92
+ description: 'Text in tooltip that tells user they can configure the specific macro.'
67
93
  }
68
94
  });
69
95
  var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
@@ -73,7 +99,10 @@ var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
73
99
  customContainerStyles = _ref.customContainerStyles,
74
100
  isNodeNested = _ref.isNodeNested,
75
101
  setIsNodeHovered = _ref.setIsNodeHovered,
76
- isBodiedMacro = _ref.isBodiedMacro;
102
+ isBodiedMacro = _ref.isBodiedMacro,
103
+ showMacroButtonUpdates = _ref.showMacroButtonUpdates;
104
+ var intl = (0, _reactIntlNext.useIntl)();
105
+ var tooltipText = "".concat(intl.formatMessage(i18n.configure), " ").concat(text);
77
106
  var containerClassNames = (0, _classnames.default)({
78
107
  bodied: isBodiedMacro
79
108
  });
@@ -81,20 +110,10 @@ var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
81
110
  nested: isNodeNested,
82
111
  inline: extensionName === 'inlineExtension',
83
112
  bodied: isBodiedMacro,
84
- 'bodied-border': isBodiedMacro && !isNodeHovered,
85
- 'bodied-background': isBodiedMacro && !isNodeHovered,
113
+ 'bodied-border': isBodiedMacro && !isNodeHovered && !showMacroButtonUpdates,
114
+ 'bodied-background': isBodiedMacro && !isNodeHovered && !showMacroButtonUpdates,
86
115
  'show-label': isNodeHovered || isBodiedMacro
87
116
  });
88
- var handleMouseEnter = (0, _react.useCallback)(function () {
89
- // If current node is hovered and the label is hovered,
90
- // consider the node as hovered so we can display the label for users to click on
91
- if (isNodeHovered) {
92
- setIsNodeHovered === null || setIsNodeHovered === void 0 || setIsNodeHovered(true);
93
- }
94
- }, [isNodeHovered, setIsNodeHovered]);
95
- var handleMouseLeave = (0, _react.useCallback)(function () {
96
- setIsNodeHovered === null || setIsNodeHovered === void 0 || setIsNodeHovered(false);
97
- }, [setIsNodeHovered]);
98
117
  return (0, _react2.jsx)("div", {
99
118
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
100
119
  css: containerStyles
@@ -104,12 +123,35 @@ var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
104
123
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
105
124
  ,
106
125
  style: customContainerStyles,
107
- onMouseEnter: handleMouseEnter,
108
- onMouseLeave: handleMouseLeave,
126
+ onMouseOver: function onMouseOver() {
127
+ setIsNodeHovered === null || setIsNodeHovered === void 0 || setIsNodeHovered(true);
128
+ },
129
+ onMouseLeave: function onMouseLeave() {
130
+ setIsNodeHovered === null || setIsNodeHovered === void 0 || setIsNodeHovered(false);
131
+ },
109
132
  "data-testid": "new-lozenge-container"
110
- }, (0, _react2.jsx)("span", {
133
+ }, showMacroButtonUpdates ? (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_tooltip.default, {
134
+ content: tooltipText,
135
+ position: "top"
136
+ }, function (tooltipProps) {
137
+ return (0, _react2.jsx)("span", (0, _extends2.default)({
138
+ "data-testid": "new-lozenge-button"
139
+ }, tooltipProps, {
140
+ css: [sharedLabelStyles, buttonLabelStyles]
141
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
142
+ ,
143
+ className: labelClassNames
144
+ }), text, " ", (0, _react2.jsx)(_preferences.default, {
145
+ label: ""
146
+ }));
147
+ }), (0, _react2.jsx)("div", {
148
+ "data-testid": "placeholder",
149
+ css: placeholderStyles
150
+ })) : (0, _react2.jsx)("span", {
111
151
  "data-testid": "new-lozenge",
112
- css: labelStyles,
152
+ css: [sharedLabelStyles, originalLabelStyles]
153
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
154
+ ,
113
155
  className: labelClassNames
114
156
  }, (0, _react2.jsx)("span", {
115
157
  css: textStyles
@@ -23,6 +23,7 @@ var LozengeComponent = exports.LozengeComponent = function LozengeComponent(_ref
23
23
  params = _ref.params,
24
24
  renderImage = _ref.renderImage,
25
25
  showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates,
26
+ showMacroButtonUpdates = _ref.showMacroButtonUpdates,
26
27
  customContainerStyles = _ref.customContainerStyles,
27
28
  isNodeHovered = _ref.isNodeHovered,
28
29
  isNodeNested = _ref.isNodeNested,
@@ -37,7 +38,8 @@ var LozengeComponent = exports.LozengeComponent = function LozengeComponent(_ref
37
38
  isNodeNested: isNodeNested,
38
39
  customContainerStyles: customContainerStyles,
39
40
  setIsNodeHovered: setIsNodeHovered,
40
- isBodiedMacro: isBodiedMacro
41
+ isBodiedMacro: isBodiedMacro,
42
+ showMacroButtonUpdates: showMacroButtonUpdates
41
43
  });
42
44
  }
43
45
  var isBlockExtension = extensionName === 'extension';
@@ -47,6 +47,7 @@ var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
47
47
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderFallback", function (lozengeData) {
48
48
  var _this$props = _this.props,
49
49
  showMacroInteractionDesignUpdates = _this$props.showMacroInteractionDesignUpdates,
50
+ showMacroButtonUpdates = _this$props.showMacroButtonUpdates,
50
51
  isNodeSelected = _this$props.isNodeSelected,
51
52
  isNodeHovered = _this$props.isNodeHovered,
52
53
  isNodeNested = _this$props.isNodeNested,
@@ -64,6 +65,7 @@ var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
64
65
  isNodeSelected: isNodeSelected,
65
66
  isNodeNested: isNodeNested,
66
67
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
68
+ showMacroButtonUpdates: showMacroButtonUpdates,
67
69
  extensionName: name,
68
70
  lozengeData: lozengeData,
69
71
  params: params,
@@ -86,7 +86,8 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref)
86
86
  isNodeNested = _ref.isNodeNested,
87
87
  setIsNodeHovered = _ref.setIsNodeHovered;
88
88
  var _ref2 = macroInteractionDesignFeatureFlags || {},
89
- showMacroInteractionDesignUpdates = _ref2.showMacroInteractionDesignUpdates;
89
+ showMacroInteractionDesignUpdates = _ref2.showMacroInteractionDesignUpdates,
90
+ showMacroButtonUpdates = _ref2.showMacroButtonUpdates;
90
91
  var _node$attrs = node.attrs,
91
92
  parameters = _node$attrs.parameters,
92
93
  extensionKey = _node$attrs.extensionKey;
@@ -162,6 +163,7 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref)
162
163
  isNodeSelected: isNodeSelected,
163
164
  node: node,
164
165
  showMacroInteractionDesignUpdates: true,
166
+ showMacroButtonUpdates: showMacroButtonUpdates,
165
167
  customContainerStyles: mbeWrapperStyles,
166
168
  isNodeHovered: isNodeHovered,
167
169
  isNodeNested: isNodeNested,
@@ -17,7 +17,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
17
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
18
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
19
19
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
20
- var packageVersion = "83.0.4";
20
+ var packageVersion = "83.2.0";
21
21
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
22
22
  // Remove URL as it has UGC
23
23
  // TODO: Sanitise the URL instead of just removing it
@@ -20,7 +20,7 @@ var _Layer = _interopRequireDefault(require("../Layer"));
20
20
  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); }; }
21
21
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** @jsx jsx */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
22
22
  var packageName = "@atlaskit/editor-common";
23
- var packageVersion = "83.0.4";
23
+ var packageVersion = "83.2.0";
24
24
  var halfFocusRing = 1;
25
25
  var dropOffset = '0, 8';
26
26
  var DropList = /*#__PURE__*/function (_Component) {
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.ColorPaletteArrowKeyNavigationProvider = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
11
12
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
12
13
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
14
  /**
@@ -23,11 +24,13 @@ var ColorPaletteArrowKeyNavigationProvider = exports.ColorPaletteArrowKeyNavigat
23
24
  handleClose = _ref.handleClose,
24
25
  closeOnTab = _ref.closeOnTab,
25
26
  editorRef = _ref.editorRef,
26
- ignoreEscapeKey = _ref.ignoreEscapeKey;
27
+ ignoreEscapeKey = _ref.ignoreEscapeKey,
28
+ popupsMountPoint = _ref.popupsMountPoint;
27
29
  var wrapperRef = (0, _react.useRef)(null);
28
30
  var currentSelectedColumnIndex = (0, _react.useRef)(selectedColumnIndex === -1 ? 0 : selectedColumnIndex);
29
31
  var currentSelectedRowIndex = (0, _react.useRef)(selectedRowIndex === -1 ? 0 : selectedRowIndex);
30
- var _useState = (0, _react.useState)(editorRef.current),
32
+ var element = (0, _platformFeatureFlags.getBooleanFF)('platform.editor.a11y-main-toolbar-navigation_osrty') && popupsMountPoint ? popupsMountPoint : editorRef.current;
33
+ var _useState = (0, _react.useState)(element),
31
34
  _useState2 = (0, _slicedToArray2.default)(_useState, 1),
32
35
  listenerTargetElement = _useState2[0];
33
36
  var incrementRowIndex = function incrementRowIndex(rowElements, columnElements) {
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.MenuArrowKeyNavigationProvider = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
11
12
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
12
13
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
14
  var hasEnabledItems = function hasEnabledItems(list) {
@@ -27,13 +28,15 @@ var MenuArrowKeyNavigationProvider = exports.MenuArrowKeyNavigationProvider = fu
27
28
  keyDownHandlerContext = _ref.keyDownHandlerContext,
28
29
  closeOnTab = _ref.closeOnTab,
29
30
  onSelection = _ref.onSelection,
30
- editorRef = _ref.editorRef;
31
+ editorRef = _ref.editorRef,
32
+ popupsMountPoint = _ref.popupsMountPoint;
31
33
  var wrapperRef = (0, _react.useRef)(null);
32
34
  var _useState = (0, _react.useState)(-1),
33
35
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
34
36
  currentSelectedItemIndex = _useState2[0],
35
37
  setCurrentSelectedItemIndex = _useState2[1];
36
- var _useState3 = (0, _react.useState)(editorRef.current),
38
+ var element = (0, _platformFeatureFlags.getBooleanFF)('platform.editor.a11y-main-toolbar-navigation_osrty') && popupsMountPoint ? [popupsMountPoint, editorRef.current] : [editorRef.current];
39
+ var _useState3 = (0, _react.useState)(element),
37
40
  _useState4 = (0, _slicedToArray2.default)(_useState3, 1),
38
41
  listenerTargetElement = _useState4[0];
39
42
  var incrementIndex = (0, _react.useCallback)(function (list) {
@@ -153,9 +156,13 @@ var MenuArrowKeyNavigationProvider = exports.MenuArrowKeyNavigationProvider = fu
153
156
  return;
154
157
  }
155
158
  };
156
- listenerTargetElement && listenerTargetElement.addEventListener('keydown', handleKeyDown);
159
+ listenerTargetElement && listenerTargetElement.forEach(function (elem) {
160
+ elem && elem.addEventListener('keydown', handleKeyDown);
161
+ });
157
162
  return function () {
158
- listenerTargetElement && listenerTargetElement.removeEventListener('keydown', handleKeyDown);
163
+ listenerTargetElement && listenerTargetElement.forEach(function (elem) {
164
+ elem && elem.removeEventListener('keydown', handleKeyDown);
165
+ });
159
166
  };
160
167
  }, [currentSelectedItemIndex, wrapperRef, handleClose, disableArrowKeyNavigation, keyDownHandlerContext, closeOnTab, onSelection, incrementIndex, decrementIndex, listenerTargetElement]);
161
168
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -19,22 +19,26 @@ var ArrowKeyNavigationProvider = exports.ArrowKeyNavigationProvider = function A
19
19
  restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
20
20
  if (type === _types.ArrowKeyNavigationType.COLOR) {
21
21
  return /*#__PURE__*/_react.default.createElement(_uiReact.ReactEditorViewContext.Consumer, null, function (_ref) {
22
- var editorView = _ref.editorView,
22
+ var popupsMountPoint = _ref.popupsMountPoint,
23
+ editorView = _ref.editorView,
23
24
  editorRef = _ref.editorRef;
24
25
  return editorRef && /*#__PURE__*/_react.default.createElement(_ColorPaletteArrowKeyNavigationProvider.ColorPaletteArrowKeyNavigationProvider, (0, _extends2.default)({
25
26
  selectedRowIndex: props.selectedRowIndex,
26
27
  selectedColumnIndex: props.selectedColumnIndex,
27
28
  isOpenedByKeyboard: props.isOpenedByKeyboard,
28
29
  isPopupPositioned: props.isPopupPositioned,
29
- editorRef: editorRef
30
+ editorRef: editorRef,
31
+ popupsMountPoint: popupsMountPoint
30
32
  }, restProps), children);
31
33
  });
32
34
  }
33
35
  return /*#__PURE__*/_react.default.createElement(_uiReact.ReactEditorViewContext.Consumer, null, function (_ref2) {
34
- var editorView = _ref2.editorView,
36
+ var popupsMountPoint = _ref2.popupsMountPoint,
37
+ editorView = _ref2.editorView,
35
38
  editorRef = _ref2.editorRef;
36
39
  return editorRef && /*#__PURE__*/_react.default.createElement(_MenuArrowKeyNavigationProvider.MenuArrowKeyNavigationProvider, (0, _extends2.default)({
37
- editorRef: editorRef
40
+ editorRef: editorRef,
41
+ popupsMountPoint: popupsMountPoint
38
42
  }, restProps), children);
39
43
  });
40
44
  };
@@ -244,14 +244,21 @@ var DropdownMenuWrapper = exports.default = /*#__PURE__*/function (_PureComponen
244
244
  }, {
245
245
  key: "componentDidUpdate",
246
246
  value: function componentDidUpdate(previousProps) {
247
- var isOpenToggled = this.props.isOpen !== previousProps.isOpen;
248
- if (this.props.isOpen && isOpenToggled) {
247
+ var _this$props3 = this.props,
248
+ mountTo = _this$props3.mountTo,
249
+ isOpen = _this$props3.isOpen;
250
+ var isOpenToggled = isOpen !== previousProps.isOpen;
251
+ if (isOpen && isOpenToggled) {
249
252
  if (typeof this.props.shouldFocusFirstItem === 'function' && this.props.shouldFocusFirstItem()) {
250
253
  var _this$state$target2;
251
254
  var keyboardEvent = new KeyboardEvent('keydown', {
252
255
  key: 'ArrowDown',
253
256
  bubbles: true
254
257
  });
258
+ if (mountTo && (0, _platformFeatureFlags.getBooleanFF)('platform.editor.a11y-main-toolbar-navigation_osrty')) {
259
+ mountTo.dispatchEvent(keyboardEvent);
260
+ return;
261
+ }
255
262
  (_this$state$target2 = this.state.target) === null || _this$state$target2 === void 0 || _this$state$target2.dispatchEvent(keyboardEvent);
256
263
  }
257
264
  }
@@ -17,6 +17,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
17
17
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
18
  var _react = _interopRequireWildcard(require("react"));
19
19
  var _reactDom = _interopRequireDefault(require("react-dom"));
20
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
20
21
  var _ReactEditorViewContext = _interopRequireDefault(require("./ReactEditorViewContext"));
21
22
  var _excluded = ["handleClickOutside", "handleEnterKeydown", "handleEscapeKeydown", "closeOnTab"];
22
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
@@ -79,7 +80,7 @@ var WithOutsideClick = /*#__PURE__*/function (_PureComponent) {
79
80
  if (this.props.handleEscapeKeydown) {
80
81
  var _this$props$editorRef;
81
82
  // Attached event to the menu so that 'ESC' events from the opened menu also will be handled.
82
- (((_this$props$editorRef = this.props.editorRef) === null || _this$props$editorRef === void 0 ? void 0 : _this$props$editorRef.current) || this.props.targetRef || document).addEventListener('keydown', this.handleKeydown, false);
83
+ ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.a11y-main-toolbar-navigation_osrty') && this.props.popupsMountPoint ? this.props.popupsMountPoint : undefined || ((_this$props$editorRef = this.props.editorRef) === null || _this$props$editorRef === void 0 ? void 0 : _this$props$editorRef.current) || this.props.targetRef || document).addEventListener('keydown', this.handleKeydown, false);
83
84
  }
84
85
  }
85
86
  }, {
@@ -90,7 +91,7 @@ var WithOutsideClick = /*#__PURE__*/function (_PureComponent) {
90
91
  }
91
92
  if (this.props.handleEscapeKeydown) {
92
93
  var _this$props$editorRef2;
93
- (((_this$props$editorRef2 = this.props.editorRef) === null || _this$props$editorRef2 === void 0 ? void 0 : _this$props$editorRef2.current) || this.props.targetRef || document).removeEventListener('keydown', this.handleKeydown, false);
94
+ ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.a11y-main-toolbar-navigation_osrty') && this.props.popupsMountPoint ? this.props.popupsMountPoint : undefined || ((_this$props$editorRef2 = this.props.editorRef) === null || _this$props$editorRef2 === void 0 ? void 0 : _this$props$editorRef2.current) || this.props.targetRef || document).removeEventListener('keydown', this.handleKeydown, false);
94
95
  }
95
96
  }
96
97
  }, {
@@ -123,11 +124,13 @@ function withReactEditorViewOuterListeners(Component) {
123
124
  }, [isActiveProp]);
124
125
  return /*#__PURE__*/_react.default.createElement(_ReactEditorViewContext.default.Consumer, null, function (_ref2) {
125
126
  var editorView = _ref2.editorView,
127
+ popupsMountPoint = _ref2.popupsMountPoint,
126
128
  editorRef = _ref2.editorRef;
127
129
  return /*#__PURE__*/_react.default.createElement(WithOutsideClick, {
128
130
  editorView: editorView,
129
131
  editorRef: editorRef,
130
132
  targetRef: props.targetRef,
133
+ popupsMountPoint: popupsMountPoint,
131
134
  isActiveComponent: isActiveComponent,
132
135
  handleClickOutside: handleClickOutside,
133
136
  handleEnterKeydown: handleEnterKeydown,
@@ -31,7 +31,8 @@ function ExtensionWithPluginState(props) {
31
31
  setIsNodeHovered
32
32
  } = props;
33
33
  const {
34
- showMacroInteractionDesignUpdates
34
+ showMacroInteractionDesignUpdates,
35
+ showMacroButtonUpdates
35
36
  } = macroInteractionDesignFeatureFlags || {};
36
37
  const hasBody = ['bodiedExtension', 'multiBodiedExtension'].includes(node.type.name);
37
38
  const isMobile = editorAppearance === 'mobile';
@@ -109,6 +110,7 @@ function ExtensionWithPluginState(props) {
109
110
  isNodeNested: isNodeNested,
110
111
  node: node,
111
112
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
113
+ showMacroButtonUpdates: showMacroButtonUpdates,
112
114
  customContainerStyles: customContainerStyles,
113
115
  setIsNodeHovered: setIsNodeHovered,
114
116
  isBodiedMacro: hasBody
@@ -22,7 +22,8 @@ const InlineExtension = props => {
22
22
  setIsNodeHovered
23
23
  } = props;
24
24
  const {
25
- showMacroInteractionDesignUpdates
25
+ showMacroInteractionDesignUpdates,
26
+ showMacroButtonUpdates
26
27
  } = macroInteractionDesignFeatureFlags || {};
27
28
  const {
28
29
  widthState
@@ -46,6 +47,7 @@ const InlineExtension = props => {
46
47
  isNodeSelected: isNodeSelected,
47
48
  isNodeHovered: isNodeHovered,
48
49
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
50
+ showMacroButtonUpdates: showMacroButtonUpdates,
49
51
  setIsNodeHovered: setIsNodeHovered
50
52
  }), jsx("div", {
51
53
  "data-testid": "inline-extension-wrapper"