@atlaskit/editor-common 95.4.0 → 95.6.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 (46) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/cjs/analytics/types/enums.js +1 -0
  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/analytics/types/enums.js +1 -0
  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/analytics/types/enums.js +1 -0
  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/analytics/types/enums.d.ts +1 -0
  33. package/dist/types/extensibility/Extension/Extension/index.d.ts +2 -0
  34. package/dist/types/extensibility/Extension/Lozenge/EditToggle.d.ts +3 -1
  35. package/dist/types/extensibility/Extension/Lozenge/ExtensionLabel.d.ts +3 -1
  36. package/dist/types/extensibility/Extension/Lozenge/LozengeComponent.d.ts +3 -1
  37. package/dist/types/extensibility/Extension/Lozenge/index.d.ts +2 -0
  38. package/dist/types/extensibility/ExtensionComponent.d.ts +5 -1
  39. package/dist/types-ts4.5/analytics/types/enums.d.ts +1 -0
  40. package/dist/types-ts4.5/extensibility/Extension/Extension/index.d.ts +2 -0
  41. package/dist/types-ts4.5/extensibility/Extension/Lozenge/EditToggle.d.ts +3 -1
  42. package/dist/types-ts4.5/extensibility/Extension/Lozenge/ExtensionLabel.d.ts +3 -1
  43. package/dist/types-ts4.5/extensibility/Extension/Lozenge/LozengeComponent.d.ts +3 -1
  44. package/dist/types-ts4.5/extensibility/Extension/Lozenge/index.d.ts +2 -0
  45. package/dist/types-ts4.5/extensibility/ExtensionComponent.d.ts +5 -1
  46. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 95.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#166206](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/166206)
8
+ [`589f49d62238b`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/589f49d62238b) -
9
+ [ux] Adds logic to change bodied macro from edit to view mode and vice versa. Also updates some
10
+ styling/interactions based on this new feature.
11
+
12
+ ## 95.5.0
13
+
14
+ ### Minor Changes
15
+
16
+ - [#166140](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/166140)
17
+ [`3c5e0d8de190a`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/3c5e0d8de190a) -
18
+ [ux] EDF-1724: Additional cleanup of unused action and types for ai panels and adding render
19
+ analytics for better usage tracking including a new `aiPanelsBodiedExtension rendered` UI event
20
+ that includes tracking panel status and nodeMarkCount.
21
+
3
22
  ## 95.4.0
4
23
 
5
24
  ### Minor Changes
@@ -275,6 +275,7 @@ var ACTION_SUBJECT_ID = exports.ACTION_SUBJECT_ID = /*#__PURE__*/function (ACTIO
275
275
  ACTION_SUBJECT_ID["ACTION"] = "action";
276
276
  ACTION_SUBJECT_ID["AI_DEFINITIONS_DEFINE_BUTTON"] = "aiDefinitionsDefineButton";
277
277
  ACTION_SUBJECT_ID["AI_DEFINITIONS_AUTO_HIGHLIGHT"] = "aiDefinitionsAutoHighlight";
278
+ ACTION_SUBJECT_ID["AI_PANELS_BODIED_EXTENSION"] = "aiPanelsBodiedExtension";
278
279
  ACTION_SUBJECT_ID["ALL"] = "all";
279
280
  ACTION_SUBJECT_ID["ALT_TEXT"] = "altText";
280
281
  ACTION_SUBJECT_ID["ANNOTATE_BUTTON"] = "annotateButton";
@@ -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.4.0";
20
+ var packageVersion = "95.6.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
@@ -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.4.0";
27
+ var packageVersion = "95.6.0";
28
28
  var halfFocusRing = 1;
29
29
  var dropOffset = '0, 8';
30
30
  var DropList = /*#__PURE__*/function (_Component) {
@@ -269,6 +269,7 @@ export let ACTION_SUBJECT_ID = /*#__PURE__*/function (ACTION_SUBJECT_ID) {
269
269
  ACTION_SUBJECT_ID["ACTION"] = "action";
270
270
  ACTION_SUBJECT_ID["AI_DEFINITIONS_DEFINE_BUTTON"] = "aiDefinitionsDefineButton";
271
271
  ACTION_SUBJECT_ID["AI_DEFINITIONS_AUTO_HIGHLIGHT"] = "aiDefinitionsAutoHighlight";
272
+ ACTION_SUBJECT_ID["AI_PANELS_BODIED_EXTENSION"] = "aiPanelsBodiedExtension";
272
273
  ACTION_SUBJECT_ID["ALL"] = "all";
273
274
  ACTION_SUBJECT_ID["ALT_TEXT"] = "altText";
274
275
  ACTION_SUBJECT_ID["ANNOTATE_BUTTON"] = "annotateButton";
@@ -32,7 +32,9 @@ function ExtensionWithPluginState(props) {
32
32
  isNodeHovered,
33
33
  isNodeNested,
34
34
  setIsNodeHovered,
35
- showLivePagesBodiedMacrosRendererView
35
+ showLivePagesBodiedMacrosRendererView,
36
+ showBodiedExtensionRendererView,
37
+ setShowBodiedExtensionRendererView
36
38
  } = props;
37
39
  const {
38
40
  showMacroInteractionDesignUpdates,
@@ -79,7 +81,8 @@ function ExtensionWithPluginState(props) {
79
81
  'with-bodied-padding-styles': hasBody && showMacroInteractionDesignUpdates
80
82
  });
81
83
  const contentClassNames = classnames('extension-content', 'block', {
82
- 'remove-border': showMacroInteractionDesignUpdates
84
+ 'remove-border': showMacroInteractionDesignUpdates,
85
+ 'hide-content': showBodiedExtensionRendererView
83
86
  });
84
87
  let customContainerStyles = {
85
88
  width: '100%'
@@ -118,7 +121,9 @@ function ExtensionWithPluginState(props) {
118
121
  customContainerStyles: customContainerStyles,
119
122
  setIsNodeHovered: setIsNodeHovered,
120
123
  isBodiedMacro: hasBody,
121
- showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView
124
+ showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView,
125
+ showBodiedExtensionRendererView: showBodiedExtensionRendererView,
126
+ setShowBodiedExtensionRendererView: setShowBodiedExtensionRendererView
122
127
  }), jsx("div", {
123
128
  ref: handleRef,
124
129
  "data-layout": node.attrs.layout
@@ -55,6 +55,10 @@ export const content = css({
55
55
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
56
56
  '&.remove-border': {
57
57
  border: 'none'
58
+ },
59
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
60
+ '&.hide-content': {
61
+ display: 'none'
58
62
  }
59
63
  });
60
64