@atlaskit/editor-common 95.5.0 → 95.6.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.
Files changed (44) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/element-browser/components/ElementList/ElementList.js +14 -14
  3. package/dist/cjs/extensibility/Extension/Extension/index.js +8 -3
  4. package/dist/cjs/extensibility/Extension/Extension/styles.js +4 -0
  5. package/dist/cjs/extensibility/Extension/Lozenge/EditToggle.js +41 -14
  6. package/dist/cjs/extensibility/Extension/Lozenge/ExtensionLabel.js +16 -7
  7. package/dist/cjs/extensibility/Extension/Lozenge/LozengeComponent.js +8 -3
  8. package/dist/cjs/extensibility/Extension/Lozenge/index.js +6 -2
  9. package/dist/cjs/extensibility/ExtensionComponent.js +93 -32
  10. package/dist/cjs/monitoring/error.js +1 -1
  11. package/dist/cjs/ui/DropList/index.js +1 -1
  12. package/dist/es2019/element-browser/components/ElementList/ElementList.js +14 -14
  13. package/dist/es2019/extensibility/Extension/Extension/index.js +8 -3
  14. package/dist/es2019/extensibility/Extension/Extension/styles.js +4 -0
  15. package/dist/es2019/extensibility/Extension/Lozenge/EditToggle.js +35 -7
  16. package/dist/es2019/extensibility/Extension/Lozenge/ExtensionLabel.js +15 -6
  17. package/dist/es2019/extensibility/Extension/Lozenge/LozengeComponent.js +8 -3
  18. package/dist/es2019/extensibility/Extension/Lozenge/index.js +6 -2
  19. package/dist/es2019/extensibility/ExtensionComponent.js +68 -9
  20. package/dist/es2019/monitoring/error.js +1 -1
  21. package/dist/es2019/ui/DropList/index.js +1 -1
  22. package/dist/esm/element-browser/components/ElementList/ElementList.js +14 -14
  23. package/dist/esm/extensibility/Extension/Extension/index.js +8 -3
  24. package/dist/esm/extensibility/Extension/Extension/styles.js +4 -0
  25. package/dist/esm/extensibility/Extension/Lozenge/EditToggle.js +35 -7
  26. package/dist/esm/extensibility/Extension/Lozenge/ExtensionLabel.js +15 -6
  27. package/dist/esm/extensibility/Extension/Lozenge/LozengeComponent.js +8 -3
  28. package/dist/esm/extensibility/Extension/Lozenge/index.js +6 -2
  29. package/dist/esm/extensibility/ExtensionComponent.js +91 -32
  30. package/dist/esm/monitoring/error.js +1 -1
  31. package/dist/esm/ui/DropList/index.js +1 -1
  32. package/dist/types/extensibility/Extension/Extension/index.d.ts +2 -0
  33. package/dist/types/extensibility/Extension/Lozenge/EditToggle.d.ts +3 -1
  34. package/dist/types/extensibility/Extension/Lozenge/ExtensionLabel.d.ts +3 -1
  35. package/dist/types/extensibility/Extension/Lozenge/LozengeComponent.d.ts +3 -1
  36. package/dist/types/extensibility/Extension/Lozenge/index.d.ts +2 -0
  37. package/dist/types/extensibility/ExtensionComponent.d.ts +5 -1
  38. package/dist/types-ts4.5/extensibility/Extension/Extension/index.d.ts +2 -0
  39. package/dist/types-ts4.5/extensibility/Extension/Lozenge/EditToggle.d.ts +3 -1
  40. package/dist/types-ts4.5/extensibility/Extension/Lozenge/ExtensionLabel.d.ts +3 -1
  41. package/dist/types-ts4.5/extensibility/Extension/Lozenge/LozengeComponent.d.ts +3 -1
  42. package/dist/types-ts4.5/extensibility/Extension/Lozenge/index.d.ts +2 -0
  43. package/dist/types-ts4.5/extensibility/ExtensionComponent.d.ts +5 -1
  44. package/package.json +7 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 95.6.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#168711](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/168711)
8
+ [`b2f2dc82e10b3`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/b2f2dc82e10b3) -
9
+ Memoises the CellMeasurerCache used in the insert menu
10
+ - Updated dependencies
11
+
12
+ ## 95.6.0
13
+
14
+ ### Minor Changes
15
+
16
+ - [#166206](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/166206)
17
+ [`589f49d62238b`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/589f49d62238b) -
18
+ [ux] Adds logic to change bodied macro from edit to view mode and vice versa. Also updates some
19
+ styling/interactions based on this new feature.
20
+
3
21
  ## 95.5.0
4
22
 
5
23
  ### Minor Changes
@@ -105,13 +105,13 @@ function ElementListOld(_ref) {
105
105
  }
106
106
  });
107
107
  }, [createAnalyticsEvent]);
108
-
109
- // eslint-disable-next-line react-hooks/exhaustive-deps
110
- var cache = new _CellMeasurer.CellMeasurerCache({
111
- fixedWidth: true,
112
- defaultHeight: 75,
113
- minHeight: 75
114
- });
108
+ var cache = (0, _react.useMemo)(function () {
109
+ return new _CellMeasurer.CellMeasurerCache({
110
+ fixedWidth: true,
111
+ defaultHeight: 75,
112
+ minHeight: 75
113
+ });
114
+ }, []);
115
115
  var columnWidth = (containerWidth - _constants.ELEMENT_ITEM_PADDING * 2) / columnCount;
116
116
  var rowCount = Math.ceil(items.length / columnCount);
117
117
  var rowHeight = function rowHeight(_ref2) {
@@ -264,13 +264,13 @@ function ElementListNew(_ref5) {
264
264
  }
265
265
  });
266
266
  }, [createAnalyticsEvent]);
267
-
268
- // eslint-disable-next-line react-hooks/exhaustive-deps
269
- var listCache = cache !== null && cache !== void 0 ? cache : new _CellMeasurer.CellMeasurerCache({
270
- fixedWidth: true,
271
- defaultHeight: _constants.ELEMENT_ITEM_HEIGHT,
272
- minHeight: _constants.ELEMENT_ITEM_HEIGHT
273
- });
267
+ var listCache = (0, _react.useMemo)(function () {
268
+ return cache !== null && cache !== void 0 ? cache : new _CellMeasurer.CellMeasurerCache({
269
+ fixedWidth: true,
270
+ defaultHeight: _constants.ELEMENT_ITEM_HEIGHT,
271
+ minHeight: _constants.ELEMENT_ITEM_HEIGHT
272
+ });
273
+ }, [cache]);
274
274
  (0, _react.useEffect)(function () {
275
275
  // need to recalculate values if we have the same items, but they're reordered
276
276
  listCache.clearAll();
@@ -45,7 +45,9 @@ function ExtensionWithPluginState(props) {
45
45
  isNodeHovered = props.isNodeHovered,
46
46
  isNodeNested = props.isNodeNested,
47
47
  setIsNodeHovered = props.setIsNodeHovered,
48
- showLivePagesBodiedMacrosRendererView = props.showLivePagesBodiedMacrosRendererView;
48
+ showLivePagesBodiedMacrosRendererView = props.showLivePagesBodiedMacrosRendererView,
49
+ showBodiedExtensionRendererView = props.showBodiedExtensionRendererView,
50
+ setShowBodiedExtensionRendererView = props.setShowBodiedExtensionRendererView;
49
51
  var _ref = macroInteractionDesignFeatureFlags || {},
50
52
  showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates,
51
53
  showMacroButtonUpdates = _ref.showMacroButtonUpdates;
@@ -87,7 +89,8 @@ function ExtensionWithPluginState(props) {
87
89
  'with-bodied-padding-styles': hasBody && showMacroInteractionDesignUpdates
88
90
  });
89
91
  var contentClassNames = (0, _classnames2.default)('extension-content', 'block', {
90
- 'remove-border': showMacroInteractionDesignUpdates
92
+ 'remove-border': showMacroInteractionDesignUpdates,
93
+ 'hide-content': showBodiedExtensionRendererView
91
94
  });
92
95
  var customContainerStyles = {
93
96
  width: '100%'
@@ -120,7 +123,9 @@ function ExtensionWithPluginState(props) {
120
123
  customContainerStyles: customContainerStyles,
121
124
  setIsNodeHovered: setIsNodeHovered,
122
125
  isBodiedMacro: hasBody,
123
- showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView
126
+ showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView,
127
+ showBodiedExtensionRendererView: showBodiedExtensionRendererView,
128
+ setShowBodiedExtensionRendererView: setShowBodiedExtensionRendererView
124
129
  }), (0, _react2.jsx)("div", {
125
130
  ref: handleRef,
126
131
  "data-layout": node.attrs.layout
@@ -62,6 +62,10 @@ var content = exports.content = (0, _react.css)({
62
62
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
63
63
  '&.remove-border': {
64
64
  border: 'none'
65
+ },
66
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
67
+ '&.hide-content': {
68
+ display: 'none'
65
69
  }
66
70
  });
67
71
 
@@ -5,9 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.EditToggle = void 0;
8
- var _react = require("@emotion/react");
8
+ var _react = require("react");
9
+ var _react2 = require("@emotion/react");
9
10
  var _reactIntlNext = require("react-intl-next");
10
11
  var _checkMark = _interopRequireDefault(require("@atlaskit/icon/core/check-mark"));
12
+ var _edit = _interopRequireDefault(require("@atlaskit/icon/core/edit"));
11
13
  var _primitives = require("@atlaskit/primitives");
12
14
  /**
13
15
  * @jsxRuntime classic
@@ -16,7 +18,7 @@ var _primitives = require("@atlaskit/primitives");
16
18
 
17
19
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
18
20
 
19
- var buttonContainerStyles = (0, _react.css)({
21
+ var buttonContainerStyles = (0, _react2.css)({
20
22
  opacity: 0,
21
23
  lineHeight: 1,
22
24
  position: 'absolute',
@@ -27,7 +29,7 @@ var buttonContainerStyles = (0, _react.css)({
27
29
  justifyContent: 'flex-end',
28
30
  color: "var(--ds-text-subtle, #44546F)"
29
31
  });
30
- var buttonStyles = (0, _react.css)({
32
+ var buttonStyles = (0, _react2.css)({
31
33
  display: 'flex',
32
34
  alignItems: 'center',
33
35
  cursor: 'pointer',
@@ -36,9 +38,12 @@ var buttonStyles = (0, _react.css)({
36
38
  borderRadius: "var(--ds-border-radius, 4px)",
37
39
  paddingLeft: "var(--ds-space-150, 12px)",
38
40
  paddingRight: "var(--ds-space-150, 12px)",
39
- font: "var(--ds-font-body, normal 400 14px/20px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, system-ui, \"Helvetica Neue\", sans-serif)"
41
+ font: "var(--ds-font-body, normal 400 14px/20px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, system-ui, \"Helvetica Neue\", sans-serif)",
42
+ '&:hover': {
43
+ backgroundColor: "var(--ds-background-neutral-subtle-hovered, #091E420F)"
44
+ }
40
45
  });
41
- var showButtonContainerStyle = (0, _react.css)({
46
+ var showButtonContainerStyle = (0, _react2.css)({
42
47
  opacity: 1
43
48
  });
44
49
  var iconStyles = (0, _primitives.xcss)({
@@ -49,15 +54,33 @@ var i18n = (0, _reactIntlNext.defineMessages)({
49
54
  id: 'editor-common-extensibility-extension-lozenge-editToggle.done.editing',
50
55
  defaultMessage: 'Done editing',
51
56
  description: 'Text in button when on click switches back to view mode of a macro'
57
+ },
58
+ makeEdits: {
59
+ id: 'editor-common-extensibility-extension-lozenge-editToggle.make.edits',
60
+ defaultMessage: 'Make edits',
61
+ description: 'Text in button when on click switches back to edit mode of a macro'
52
62
  }
53
63
  });
54
64
  // Used to toggle between edit and renderer mode for bodied macros in live pages
55
65
  var EditToggle = exports.EditToggle = function EditToggle(_ref) {
56
66
  var isNodeHovered = _ref.isNodeHovered,
57
67
  customContainerStyles = _ref.customContainerStyles,
58
- setIsNodeHovered = _ref.setIsNodeHovered;
68
+ setIsNodeHovered = _ref.setIsNodeHovered,
69
+ showBodiedExtensionRendererView = _ref.showBodiedExtensionRendererView,
70
+ setShowBodiedExtensionRendererView = _ref.setShowBodiedExtensionRendererView;
59
71
  var intl = (0, _reactIntlNext.useIntl)();
60
- return (0, _react.jsx)("div", {
72
+ var text = showBodiedExtensionRendererView ? intl.formatMessage(i18n.makeEdits) : intl.formatMessage(i18n.doneEditing);
73
+ var icon = showBodiedExtensionRendererView ? (0, _react2.jsx)(_edit.default, {
74
+ testId: "edit-icon",
75
+ label: ""
76
+ }) : (0, _react2.jsx)(_checkMark.default, {
77
+ testId: "check-mark-icon",
78
+ label: ""
79
+ });
80
+ var handleClick = (0, _react.useCallback)(function () {
81
+ setShowBodiedExtensionRendererView === null || setShowBodiedExtensionRendererView === void 0 || setShowBodiedExtensionRendererView(!showBodiedExtensionRendererView);
82
+ }, [showBodiedExtensionRendererView, setShowBodiedExtensionRendererView]);
83
+ return (0, _react2.jsx)("div", {
61
84
  "data-testid": "extension-edit-toggle-container"
62
85
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
63
86
  ,
@@ -74,13 +97,17 @@ var EditToggle = exports.EditToggle = function EditToggle(_ref) {
74
97
  onMouseLeave: function onMouseLeave() {
75
98
  return setIsNodeHovered === null || setIsNodeHovered === void 0 ? void 0 : setIsNodeHovered(false);
76
99
  }
77
- }, (0, _react.jsx)("span", {
78
- css: buttonStyles,
79
- className: "extension-edit-toggle"
80
- }, (0, _react.jsx)(_primitives.Flex, {
100
+ }, (0, _react2.jsx)("span", {
101
+ "data-testid": "edit-toggle"
102
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
103
+ ,
104
+ css: buttonStyles
105
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
106
+ ,
107
+ className: "extension-edit-toggle",
108
+ onClick: handleClick
109
+ }, (0, _react2.jsx)(_primitives.Flex, {
81
110
  as: "span",
82
111
  xcss: iconStyles
83
- }, (0, _react.jsx)(_checkMark.default, {
84
- label: ""
85
- })), intl.formatMessage(i18n.doneEditing)));
112
+ }, icon), text));
86
113
  };
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.ExtensionLabel = void 0;
7
+ exports.getShouldShowBodiedMacroLabel = exports.ExtensionLabel = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _react = require("react");
10
10
  var _react2 = require("@emotion/react");
@@ -124,6 +124,15 @@ var i18n = (0, _reactIntlNext.defineMessages)({
124
124
  description: 'Text in tooltip that tells user they can configure the specific macro.'
125
125
  }
126
126
  });
127
+ var getShouldShowBodiedMacroLabel = exports.getShouldShowBodiedMacroLabel = function getShouldShowBodiedMacroLabel(isBodiedMacro, isNodeHovered, showLivePagesBodiedMacrosRendererView, showBodiedExtensionRendererView) {
128
+ if (!isBodiedMacro) {
129
+ return isNodeHovered;
130
+ } // Bodied macros show the label by default
131
+ if (!showLivePagesBodiedMacrosRendererView) {
132
+ return true;
133
+ } // Keep showing labels as usual for default experience for bodied macros
134
+ return !!(isNodeHovered && !showBodiedExtensionRendererView); // For the new live pages bodied macro experience, we only show the label on hover in the "edit" view
135
+ };
127
136
  var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
128
137
  var text = _ref.text,
129
138
  extensionName = _ref.extensionName,
@@ -133,23 +142,23 @@ var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
133
142
  setIsNodeHovered = _ref.setIsNodeHovered,
134
143
  isBodiedMacro = _ref.isBodiedMacro,
135
144
  showMacroButtonUpdates = _ref.showMacroButtonUpdates,
136
- showLivePagesBodiedMacrosRendererView = _ref.showLivePagesBodiedMacrosRendererView;
145
+ showLivePagesBodiedMacrosRendererView = _ref.showLivePagesBodiedMacrosRendererView,
146
+ showBodiedExtensionRendererView = _ref.showBodiedExtensionRendererView;
137
147
  var isInlineExtension = extensionName === 'inlineExtension';
138
148
  var showDefaultBodiedStyles = isBodiedMacro && !isNodeHovered;
149
+ var shouldShowBodiedMacroLabel = getShouldShowBodiedMacroLabel(isBodiedMacro, isNodeHovered, showLivePagesBodiedMacrosRendererView, showBodiedExtensionRendererView);
139
150
  var containerClassNames = (0, _classnames.default)({
140
151
  bodied: isBodiedMacro
141
152
  });
142
-
143
- // For the new live pages bodied macro experience, we don't want to hide the label by default
144
- var showBodiedMacroLabel = isBodiedMacro ? !showLivePagesBodiedMacrosRendererView : false;
145
153
  var sharedLabelClassNames = (0, _classnames.default)('extension-label', {
146
154
  nested: isNodeNested,
147
155
  inline: isInlineExtension,
148
156
  bodied: isBodiedMacro,
149
157
  'bodied-border': showDefaultBodiedStyles,
150
158
  'bodied-background': showDefaultBodiedStyles,
151
- 'show-label': isNodeHovered || showBodiedMacroLabel,
152
- 'with-bodied-macro-live-page-styles': isBodiedMacro && showLivePagesBodiedMacrosRendererView
159
+ 'show-label': shouldShowBodiedMacroLabel,
160
+ 'with-bodied-macro-live-page-styles': isBodiedMacro && showLivePagesBodiedMacrosRendererView,
161
+ 'always-hide-label': isBodiedMacro && showBodiedExtensionRendererView // Need this separate class since we don't ever want to show the label during view mode
153
162
  });
154
163
  var newButtonLabelClassNames = (0, _classnames.default)({
155
164
  // For new button design, non-bodied macros should have a flush label. Inline macros don't need this since they never had the margin-left applied.
@@ -34,7 +34,9 @@ var LozengeComponent = exports.LozengeComponent = function LozengeComponent(_ref
34
34
  isNodeNested = _ref.isNodeNested,
35
35
  setIsNodeHovered = _ref.setIsNodeHovered,
36
36
  isBodiedMacro = _ref.isBodiedMacro,
37
- showLivePagesBodiedMacrosRendererView = _ref.showLivePagesBodiedMacrosRendererView;
37
+ showLivePagesBodiedMacrosRendererView = _ref.showLivePagesBodiedMacrosRendererView,
38
+ showBodiedExtensionRendererView = _ref.showBodiedExtensionRendererView,
39
+ setShowBodiedExtensionRendererView = _ref.setShowBodiedExtensionRendererView;
38
40
  var capitalizedTitle = capitalizeFirstLetter(title);
39
41
  if (showMacroInteractionDesignUpdates) {
40
42
  return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_ExtensionLabel.ExtensionLabel, {
@@ -46,11 +48,14 @@ var LozengeComponent = exports.LozengeComponent = function LozengeComponent(_ref
46
48
  setIsNodeHovered: setIsNodeHovered,
47
49
  isBodiedMacro: isBodiedMacro,
48
50
  showMacroButtonUpdates: showMacroButtonUpdates,
49
- showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView
51
+ showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView,
52
+ showBodiedExtensionRendererView: showBodiedExtensionRendererView
50
53
  }), showLivePagesBodiedMacrosRendererView && isBodiedMacro && (0, _react2.jsx)(_EditToggle.EditToggle, {
51
54
  isNodeHovered: isNodeHovered,
52
55
  setIsNodeHovered: setIsNodeHovered,
53
- customContainerStyles: customContainerStyles
56
+ customContainerStyles: customContainerStyles,
57
+ showBodiedExtensionRendererView: showBodiedExtensionRendererView,
58
+ setShowBodiedExtensionRendererView: setShowBodiedExtensionRendererView
54
59
  }));
55
60
  }
56
61
  var isBlockExtension = extensionName === 'extension';
@@ -57,7 +57,9 @@ var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
57
57
  customContainerStyles = _this$props.customContainerStyles,
58
58
  setIsNodeHovered = _this$props.setIsNodeHovered,
59
59
  isBodiedMacro = _this$props.isBodiedMacro,
60
- showLivePagesBodiedMacrosRendererView = _this$props.showLivePagesBodiedMacrosRendererView;
60
+ showLivePagesBodiedMacrosRendererView = _this$props.showLivePagesBodiedMacrosRendererView,
61
+ showBodiedExtensionRendererView = _this$props.showBodiedExtensionRendererView,
62
+ setShowBodiedExtensionRendererView = _this$props.setShowBodiedExtensionRendererView;
61
63
  var _this$props$node$attr = _this.props.node.attrs,
62
64
  parameters = _this$props$node$attr.parameters,
63
65
  extensionKey = _this$props$node$attr.extensionKey;
@@ -78,7 +80,9 @@ var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
78
80
  customContainerStyles: customContainerStyles,
79
81
  setIsNodeHovered: setIsNodeHovered,
80
82
  isBodiedMacro: isBodiedMacro,
81
- showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView
83
+ showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView,
84
+ showBodiedExtensionRendererView: showBodiedExtensionRendererView,
85
+ setShowBodiedExtensionRendererView: setShowBodiedExtensionRendererView
82
86
  });
83
87
  });
84
88
  return _this;
@@ -27,13 +27,28 @@ var _utils = require("../utils");
27
27
  var _Extension = _interopRequireDefault(require("./Extension/Extension"));
28
28
  var _InlineExtension = _interopRequireDefault(require("./Extension/InlineExtension"));
29
29
  var _MultiBodiedExtension = _interopRequireDefault(require("./MultiBodiedExtension"));
30
- var _excluded = ["extensionProvider"];
30
+ var _excluded = ["extensionProvider", "showLivePagesBodiedMacrosRendererView", "node"];
31
31
  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); }
32
32
  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 && {}.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; }
33
33
  function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
34
34
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable @repo/internal/react/no-class-components */
35
35
  /* temporary type until FG cleaned up */
36
+
36
37
  /* temporary type until FG cleaned up */
38
+
39
+ var isEmptyBodiedMacro = function isEmptyBodiedMacro(node) {
40
+ var _node$content, _firstGrandChildNode$;
41
+ if (node.type.name !== 'bodiedExtension') {
42
+ return false;
43
+ }
44
+ var firstChildNode = node === null || node === void 0 || (_node$content = node.content) === null || _node$content === void 0 ? void 0 : _node$content.firstChild;
45
+ var firstGrandChildNode = firstChildNode === null || firstChildNode === void 0 ? void 0 : firstChildNode.firstChild;
46
+
47
+ // If firstChildNode?.childCount > 1 means there is content along with the placeholder.
48
+ var isEmptyWithPlacholder = (firstGrandChildNode === null || firstGrandChildNode === void 0 || (_firstGrandChildNode$ = firstGrandChildNode.type) === null || _firstGrandChildNode$ === void 0 ? void 0 : _firstGrandChildNode$.name) === 'placeholder' && (firstChildNode === null || firstChildNode === void 0 ? void 0 : firstChildNode.childCount) === 1;
49
+ var isEmptyWithNoContent = !firstGrandChildNode && node.childCount === 1;
50
+ return isEmptyWithPlacholder || isEmptyWithNoContent;
51
+ };
37
52
  var ExtensionComponentOld = exports.ExtensionComponentOld = /*#__PURE__*/function (_Component) {
38
53
  (0, _inherits2.default)(ExtensionComponentOld, _Component);
39
54
  var _super = _createSuper(ExtensionComponentOld);
@@ -55,6 +70,11 @@ var ExtensionComponentOld = exports.ExtensionComponentOld = /*#__PURE__*/functio
55
70
  isNodeHovered: isHovered
56
71
  });
57
72
  });
73
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setShowBodiedExtensionRendererView", function (showRendererView) {
74
+ _this.setState({
75
+ showBodiedExtensionRendererView: showRendererView
76
+ });
77
+ });
58
78
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setStateFromPromise", function (stateKey, promise) {
59
79
  promise && promise.then(function (p) {
60
80
  if (!_this.mounted) {
@@ -115,24 +135,32 @@ var ExtensionComponentOld = exports.ExtensionComponentOld = /*#__PURE__*/functio
115
135
  var _this$props = _this.props,
116
136
  extensionHandlers = _this$props.extensionHandlers,
117
137
  editorView = _this$props.editorView;
138
+ var showBodiedExtensionRendererView = _this.state.showBodiedExtensionRendererView; // State will only be true if the gate is on and meets requirements
118
139
  var _pmNode$attrs = pmNode.attrs,
119
140
  extensionType = _pmNode$attrs.extensionType,
120
141
  extensionKey = _pmNode$attrs.extensionKey,
121
142
  parameters = _pmNode$attrs.parameters,
122
143
  text = _pmNode$attrs.text;
123
144
  var isBodiedExtension = pmNode.type.name === 'bodiedExtension';
124
- if (isBodiedExtension) {
145
+ if (isBodiedExtension && !showBodiedExtensionRendererView) {
125
146
  return;
126
147
  }
127
148
  var fragmentLocalId = pmNode === null || pmNode === void 0 || (_pmNode$marks = pmNode.marks) === null || _pmNode$marks === void 0 || (_pmNode$marks = _pmNode$marks.find(function (m) {
128
149
  return m.type.name === 'fragment';
129
150
  })) === null || _pmNode$marks === void 0 || (_pmNode$marks = _pmNode$marks.attrs) === null || _pmNode$marks === void 0 ? void 0 : _pmNode$marks.localId;
151
+ var nodeContent = [];
152
+ if (isBodiedExtension) {
153
+ var _pmNode$content;
154
+ pmNode === null || pmNode === void 0 || (_pmNode$content = pmNode.content) === null || _pmNode$content === void 0 || _pmNode$content.forEach(function (childNode) {
155
+ nodeContent.push(childNode);
156
+ });
157
+ }
130
158
  var node = {
131
159
  type: pmNode.type.name,
132
160
  extensionType: extensionType,
133
161
  extensionKey: extensionKey,
134
162
  parameters: parameters,
135
- content: text,
163
+ content: isBodiedExtension ? nodeContent.length ? nodeContent : text : text,
136
164
  localId: pmNode.attrs.localId,
137
165
  fragmentLocalId: fragmentLocalId
138
166
  };
@@ -167,6 +195,15 @@ var ExtensionComponentOld = exports.ExtensionComponentOld = /*#__PURE__*/functio
167
195
  key: "UNSAFE_componentWillMount",
168
196
  value: function UNSAFE_componentWillMount() {
169
197
  this.mounted = true;
198
+ var _this$props2 = this.props,
199
+ node = _this$props2.node,
200
+ showLivePagesBodiedMacrosRendererView = _this$props2.showLivePagesBodiedMacrosRendererView;
201
+ // We only care about this empty state on first page load or insertion to determine the view
202
+ if (showLivePagesBodiedMacrosRendererView && !isEmptyBodiedMacro(node)) {
203
+ this.setState({
204
+ showBodiedExtensionRendererView: true
205
+ });
206
+ }
170
207
  }
171
208
  }, {
172
209
  key: "componentDidMount",
@@ -198,17 +235,17 @@ var ExtensionComponentOld = exports.ExtensionComponentOld = /*#__PURE__*/functio
198
235
  key: "render",
199
236
  value: function render() {
200
237
  var _this$state$_privateP;
201
- var _this$props2 = this.props,
202
- node = _this$props2.node,
203
- handleContentDOMRef = _this$props2.handleContentDOMRef,
204
- editorView = _this$props2.editorView,
205
- references = _this$props2.references,
206
- editorAppearance = _this$props2.editorAppearance,
207
- pluginInjectionApi = _this$props2.pluginInjectionApi,
208
- getPos = _this$props2.getPos,
209
- eventDispatcher = _this$props2.eventDispatcher,
210
- macroInteractionDesignFeatureFlags = _this$props2.macroInteractionDesignFeatureFlags,
211
- showLivePagesBodiedMacrosRendererView = _this$props2.showLivePagesBodiedMacrosRendererView;
238
+ var _this$props3 = this.props,
239
+ node = _this$props3.node,
240
+ handleContentDOMRef = _this$props3.handleContentDOMRef,
241
+ editorView = _this$props3.editorView,
242
+ references = _this$props3.references,
243
+ editorAppearance = _this$props3.editorAppearance,
244
+ pluginInjectionApi = _this$props3.pluginInjectionApi,
245
+ getPos = _this$props3.getPos,
246
+ eventDispatcher = _this$props3.eventDispatcher,
247
+ macroInteractionDesignFeatureFlags = _this$props3.macroInteractionDesignFeatureFlags,
248
+ showLivePagesBodiedMacrosRendererView = _this$props3.showLivePagesBodiedMacrosRendererView;
212
249
  var selection = editorView.state.selection;
213
250
  var selectedNode = selection instanceof _state.NodeSelection && selection.node;
214
251
  var position = typeof getPos === 'function' && getPos();
@@ -250,7 +287,9 @@ var ExtensionComponentOld = exports.ExtensionComponentOld = /*#__PURE__*/functio
250
287
  isNodeHovered: this.state.isNodeHovered,
251
288
  isNodeNested: isNodeNested,
252
289
  setIsNodeHovered: this.setIsNodeHovered,
253
- showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView
290
+ showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView,
291
+ showBodiedExtensionRendererView: this.state.showBodiedExtensionRendererView,
292
+ setShowBodiedExtensionRendererView: this.setShowBodiedExtensionRendererView
254
293
  }, extensionHandlerResult);
255
294
  case 'inlineExtension':
256
295
  return /*#__PURE__*/_react.default.createElement(_InlineExtension.default, {
@@ -287,11 +326,17 @@ var ExtensionComponentOld = exports.ExtensionComponentOld = /*#__PURE__*/functio
287
326
  }(_react.Component);
288
327
  var ExtensionComponentNew = exports.ExtensionComponentNew = function ExtensionComponentNew(props) {
289
328
  var extensionProviderResolver = props.extensionProvider,
329
+ showLivePagesBodiedMacrosRendererView = props.showLivePagesBodiedMacrosRendererView,
330
+ node = props.node,
290
331
  restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
291
332
  var _useState = (0, _react.useState)(undefined),
292
333
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
293
334
  extensionProvider = _useState2[0],
294
335
  setExtensionProvider = _useState2[1];
336
+ var _useState3 = (0, _react.useState)(!!(showLivePagesBodiedMacrosRendererView && !isEmptyBodiedMacro(node))),
337
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
338
+ showBodiedExtensionRendererView = _useState4[0],
339
+ setShowBodiedExtensionRendererView = _useState4[1];
295
340
  var mountedRef = (0, _react.useRef)(true);
296
341
  (0, _react.useLayoutEffect)(function () {
297
342
  mountedRef.current = true;
@@ -307,7 +352,11 @@ var ExtensionComponentNew = exports.ExtensionComponentNew = function ExtensionCo
307
352
  });
308
353
  }, [extensionProviderResolver]);
309
354
  return /*#__PURE__*/_react.default.createElement(ExtensionComponentInner, (0, _extends2.default)({}, restProps, {
310
- extensionProvider: extensionProvider
355
+ extensionProvider: extensionProvider,
356
+ node: node,
357
+ showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView,
358
+ showBodiedExtensionRendererView: showBodiedExtensionRendererView,
359
+ setShowBodiedExtensionRendererView: setShowBodiedExtensionRendererView
311
360
  }));
312
361
  };
313
362
  var ExtensionComponentInner = /*#__PURE__*/function (_Component2) {
@@ -381,25 +430,33 @@ var ExtensionComponentInner = /*#__PURE__*/function (_Component2) {
381
430
  var _pmNode$marks2;
382
431
  var _this2$props = _this2.props,
383
432
  extensionHandlers = _this2$props.extensionHandlers,
384
- editorView = _this2$props.editorView;
433
+ editorView = _this2$props.editorView,
434
+ showBodiedExtensionRendererView = _this2$props.showBodiedExtensionRendererView;
385
435
  var _pmNode$attrs2 = pmNode.attrs,
386
436
  extensionType = _pmNode$attrs2.extensionType,
387
437
  extensionKey = _pmNode$attrs2.extensionKey,
388
438
  parameters = _pmNode$attrs2.parameters,
389
439
  text = _pmNode$attrs2.text;
390
440
  var isBodiedExtension = pmNode.type.name === 'bodiedExtension';
391
- if (isBodiedExtension) {
441
+ if (isBodiedExtension && !showBodiedExtensionRendererView) {
392
442
  return;
393
443
  }
394
444
  var fragmentLocalId = pmNode === null || pmNode === void 0 || (_pmNode$marks2 = pmNode.marks) === null || _pmNode$marks2 === void 0 || (_pmNode$marks2 = _pmNode$marks2.find(function (m) {
395
445
  return m.type.name === 'fragment';
396
446
  })) === null || _pmNode$marks2 === void 0 || (_pmNode$marks2 = _pmNode$marks2.attrs) === null || _pmNode$marks2 === void 0 ? void 0 : _pmNode$marks2.localId;
447
+ var nodeContent = [];
448
+ if (isBodiedExtension) {
449
+ var _pmNode$content2;
450
+ pmNode === null || pmNode === void 0 || (_pmNode$content2 = pmNode.content) === null || _pmNode$content2 === void 0 || _pmNode$content2.forEach(function (childNode) {
451
+ nodeContent.push(childNode);
452
+ });
453
+ }
397
454
  var node = {
398
455
  type: pmNode.type.name,
399
456
  extensionType: extensionType,
400
457
  extensionKey: extensionKey,
401
458
  parameters: parameters,
402
- content: text,
459
+ content: isBodiedExtension ? nodeContent.length ? nodeContent : text : text,
403
460
  localId: pmNode.attrs.localId,
404
461
  fragmentLocalId: fragmentLocalId
405
462
  };
@@ -439,18 +496,20 @@ var ExtensionComponentInner = /*#__PURE__*/function (_Component2) {
439
496
  key: "render",
440
497
  value: function render() {
441
498
  var _this$state$_privateP2;
442
- var _this$props3 = this.props,
443
- node = _this$props3.node,
444
- handleContentDOMRef = _this$props3.handleContentDOMRef,
445
- editorView = _this$props3.editorView,
446
- references = _this$props3.references,
447
- editorAppearance = _this$props3.editorAppearance,
448
- pluginInjectionApi = _this$props3.pluginInjectionApi,
449
- getPos = _this$props3.getPos,
450
- eventDispatcher = _this$props3.eventDispatcher,
451
- macroInteractionDesignFeatureFlags = _this$props3.macroInteractionDesignFeatureFlags,
452
- extensionProvider = _this$props3.extensionProvider,
453
- showLivePagesBodiedMacrosRendererView = _this$props3.showLivePagesBodiedMacrosRendererView;
499
+ var _this$props4 = this.props,
500
+ node = _this$props4.node,
501
+ handleContentDOMRef = _this$props4.handleContentDOMRef,
502
+ editorView = _this$props4.editorView,
503
+ references = _this$props4.references,
504
+ editorAppearance = _this$props4.editorAppearance,
505
+ pluginInjectionApi = _this$props4.pluginInjectionApi,
506
+ getPos = _this$props4.getPos,
507
+ eventDispatcher = _this$props4.eventDispatcher,
508
+ macroInteractionDesignFeatureFlags = _this$props4.macroInteractionDesignFeatureFlags,
509
+ extensionProvider = _this$props4.extensionProvider,
510
+ showLivePagesBodiedMacrosRendererView = _this$props4.showLivePagesBodiedMacrosRendererView,
511
+ showBodiedExtensionRendererView = _this$props4.showBodiedExtensionRendererView,
512
+ setShowBodiedExtensionRendererView = _this$props4.setShowBodiedExtensionRendererView;
454
513
  var selection = editorView.state.selection;
455
514
  var selectedNode = selection instanceof _state.NodeSelection && selection.node;
456
515
  var position = typeof getPos === 'function' && getPos();
@@ -492,7 +551,9 @@ var ExtensionComponentInner = /*#__PURE__*/function (_Component2) {
492
551
  isNodeHovered: this.state.isNodeHovered,
493
552
  isNodeNested: isNodeNested,
494
553
  setIsNodeHovered: this.setIsNodeHovered,
495
- showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView
554
+ showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView,
555
+ showBodiedExtensionRendererView: showBodiedExtensionRendererView,
556
+ setShowBodiedExtensionRendererView: setShowBodiedExtensionRendererView
496
557
  }, extensionHandlerResult);
497
558
  case 'inlineExtension':
498
559
  return /*#__PURE__*/_react.default.createElement(_InlineExtension.default, {
@@ -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 && {}.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 = "95.5.0";
20
+ var packageVersion = "95.6.1";
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
@@ -24,7 +24,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
24
24
  * @jsx jsx
25
25
  */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
26
26
  var packageName = "@atlaskit/editor-common";
27
- var packageVersion = "95.5.0";
27
+ var packageVersion = "95.6.1";
28
28
  var halfFocusRing = 1;
29
29
  var dropOffset = '0, 8';
30
30
  var DropList = /*#__PURE__*/function (_Component) {
@@ -90,13 +90,13 @@ function ElementListOld({
90
90
  }
91
91
  });
92
92
  }, [createAnalyticsEvent]);
93
-
94
- // eslint-disable-next-line react-hooks/exhaustive-deps
95
- const cache = new CellMeasurerCache({
96
- fixedWidth: true,
97
- defaultHeight: 75,
98
- minHeight: 75
99
- });
93
+ const cache = useMemo(() => {
94
+ return new CellMeasurerCache({
95
+ fixedWidth: true,
96
+ defaultHeight: 75,
97
+ minHeight: 75
98
+ });
99
+ }, []);
100
100
  const columnWidth = (containerWidth - ELEMENT_ITEM_PADDING * 2) / columnCount;
101
101
  const rowCount = Math.ceil(items.length / columnCount);
102
102
  const rowHeight = ({
@@ -245,13 +245,13 @@ function ElementListNew({
245
245
  }
246
246
  });
247
247
  }, [createAnalyticsEvent]);
248
-
249
- // eslint-disable-next-line react-hooks/exhaustive-deps
250
- const listCache = cache !== null && cache !== void 0 ? cache : new CellMeasurerCache({
251
- fixedWidth: true,
252
- defaultHeight: ELEMENT_ITEM_HEIGHT,
253
- minHeight: ELEMENT_ITEM_HEIGHT
254
- });
248
+ const listCache = useMemo(() => {
249
+ return cache !== null && cache !== void 0 ? cache : new CellMeasurerCache({
250
+ fixedWidth: true,
251
+ defaultHeight: ELEMENT_ITEM_HEIGHT,
252
+ minHeight: ELEMENT_ITEM_HEIGHT
253
+ });
254
+ }, [cache]);
255
255
  useEffect(() => {
256
256
  // need to recalculate values if we have the same items, but they're reordered
257
257
  listCache.clearAll();