@atlaskit/editor-common 116.32.4 → 116.33.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 (50) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/cjs/ai-messages/ai-suggestions.js +10 -0
  3. package/dist/cjs/extensibility/Extension/Extension/index.js +0 -3
  4. package/dist/cjs/extensibility/Extension/InlineExtension/index.js +0 -3
  5. package/dist/cjs/extensibility/Extension/Lozenge/ExtensionFloatingLabel.compiled.css +20 -0
  6. package/dist/cjs/extensibility/Extension/Lozenge/ExtensionFloatingLabel.js +31 -0
  7. package/dist/cjs/extensibility/Extension/Lozenge/ExtensionLabel.js +6 -9
  8. package/dist/cjs/extensibility/Extension/Lozenge/LozengeComponent.js +2 -6
  9. package/dist/cjs/extensibility/Extension/Lozenge/index.js +2 -6
  10. package/dist/cjs/extensibility/ExtensionComponent.js +2 -0
  11. package/dist/cjs/extensibility/MultiBodiedExtension/index.js +23 -10
  12. package/dist/cjs/extensibility/MultiBodiedExtension/styles.js +4 -0
  13. package/dist/cjs/lists/flatten-list.js +4 -0
  14. package/dist/cjs/monitoring/error.js +1 -1
  15. package/dist/cjs/ui/DropList/index.js +1 -1
  16. package/dist/es2019/ai-messages/ai-suggestions.js +10 -0
  17. package/dist/es2019/extensibility/Extension/Extension/index.js +0 -3
  18. package/dist/es2019/extensibility/Extension/InlineExtension/index.js +0 -3
  19. package/dist/es2019/extensibility/Extension/Lozenge/ExtensionFloatingLabel.compiled.css +20 -0
  20. package/dist/es2019/extensibility/Extension/Lozenge/ExtensionFloatingLabel.js +22 -0
  21. package/dist/es2019/extensibility/Extension/Lozenge/ExtensionLabel.js +6 -9
  22. package/dist/es2019/extensibility/Extension/Lozenge/LozengeComponent.js +2 -6
  23. package/dist/es2019/extensibility/Extension/Lozenge/index.js +2 -6
  24. package/dist/es2019/extensibility/ExtensionComponent.js +2 -0
  25. package/dist/es2019/extensibility/MultiBodiedExtension/index.js +23 -10
  26. package/dist/es2019/extensibility/MultiBodiedExtension/styles.js +4 -0
  27. package/dist/es2019/lists/flatten-list.js +4 -0
  28. package/dist/es2019/monitoring/error.js +1 -1
  29. package/dist/es2019/ui/DropList/index.js +1 -1
  30. package/dist/esm/ai-messages/ai-suggestions.js +10 -0
  31. package/dist/esm/extensibility/Extension/Extension/index.js +0 -3
  32. package/dist/esm/extensibility/Extension/InlineExtension/index.js +0 -3
  33. package/dist/esm/extensibility/Extension/Lozenge/ExtensionFloatingLabel.compiled.css +20 -0
  34. package/dist/esm/extensibility/Extension/Lozenge/ExtensionFloatingLabel.js +23 -0
  35. package/dist/esm/extensibility/Extension/Lozenge/ExtensionLabel.js +6 -9
  36. package/dist/esm/extensibility/Extension/Lozenge/LozengeComponent.js +2 -6
  37. package/dist/esm/extensibility/Extension/Lozenge/index.js +2 -6
  38. package/dist/esm/extensibility/ExtensionComponent.js +2 -0
  39. package/dist/esm/extensibility/MultiBodiedExtension/index.js +23 -10
  40. package/dist/esm/extensibility/MultiBodiedExtension/styles.js +4 -0
  41. package/dist/esm/lists/flatten-list.js +4 -0
  42. package/dist/esm/monitoring/error.js +1 -1
  43. package/dist/esm/ui/DropList/index.js +1 -1
  44. package/dist/types/ai-messages/ai-suggestions.d.ts +10 -0
  45. package/dist/types/extensibility/Extension/Lozenge/ExtensionFloatingLabel.d.ts +12 -0
  46. package/dist/types/extensibility/Extension/Lozenge/ExtensionLabel.d.ts +1 -3
  47. package/dist/types/extensibility/Extension/Lozenge/LozengeComponent.d.ts +1 -3
  48. package/dist/types/extensibility/Extension/Lozenge/index.d.ts +0 -2
  49. package/dist/types/lists/flatten-list.d.ts +11 -7
  50. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 116.33.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`0635ddbca5ddf`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0635ddbca5ddf) -
8
+ Align multi bodied extension chrome with active interaction states.
9
+ - Updated dependencies
10
+
11
+ ## 116.33.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [`89de40d80a7ce`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/89de40d80a7ce) -
16
+ [ux] Add toggle to show/hide deleted diffs on the AI suggestion card. An eye icon button is added
17
+ inline with the Accept and Discard buttons, allowing users to hide all greyed-out deleted content
18
+ while keeping purple highlighted additions visible. The toggle resets to the default "show
19
+ deletions" state when navigating between suggestions.
20
+
21
+ ### Patch Changes
22
+
23
+ - [`3c4994f354f5f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/3c4994f354f5f) -
24
+ [ux] Fix content order being corrupted when indenting or outdenting a list item that has content
25
+ placed between its sub-lists (e.g. `li(p, ul, p, ul)`).
26
+ - Updated dependencies
27
+
3
28
  ## 116.32.4
4
29
 
5
30
  ### Patch Changes
@@ -181,6 +181,16 @@ var aiSuggestionsMessages = exports.aiSuggestionsMessages = (0, _reactIntl.defin
181
181
  defaultMessage: 'Compare with original',
182
182
  description: 'Label for the dropdown action to compare suggestion with original content'
183
183
  },
184
+ cardHideDeletedDiffsLabel: {
185
+ id: 'fabric.editor.ai.suggestions.card.hideDeletedDiffsLabel.non-final',
186
+ defaultMessage: 'Hide comparison',
187
+ description: 'Tooltip label for the eye icon button on the AI suggestions card when deleted diffs are visible'
188
+ },
189
+ cardShowDeletedDiffsLabel: {
190
+ id: 'fabric.editor.ai.suggestions.card.showDeletedDiffsLabel.non-final',
191
+ defaultMessage: 'Show comparison',
192
+ description: 'Tooltip label for the eye icon button on the AI suggestions card when deleted diffs are hidden'
193
+ },
184
194
  cardScrollBackToSuggestionLabel: {
185
195
  id: 'fabric.editor.ai.suggestions.card.scrollBackToSuggestionLabel.non-final',
186
196
  defaultMessage: 'Back to suggestion',
@@ -51,7 +51,6 @@ function ExtensionWithPluginState(props) {
51
51
  hideFrame = props.hideFrame,
52
52
  editorAppearance = props.editorAppearance,
53
53
  macroInteractionDesignFeatureFlags = props.macroInteractionDesignFeatureFlags,
54
- isNodeSelected = props.isNodeSelected,
55
54
  isNodeHovered = props.isNodeHovered,
56
55
  isNodeNested = props.isNodeNested,
57
56
  setIsNodeHovered = props.setIsNodeHovered,
@@ -144,7 +143,6 @@ function ExtensionWithPluginState(props) {
144
143
  }
145
144
  };
146
145
  return (0, _react2.jsx)(_react.Fragment, null, !showLegacyContentHeader && showMacroInteractionDesignUpdates && !isLivePageViewMode && (0, _react2.jsx)(_Lozenge.default, {
147
- isNodeSelected: isNodeSelected,
148
146
  isNodeHovered: isNodeHovered,
149
147
  isNodeNested: isNodeNested,
150
148
  node: node,
@@ -200,7 +198,6 @@ function ExtensionWithPluginState(props) {
200
198
  ,
201
199
  className: headerClassNames
202
200
  }, !removeBorder && (0, _react2.jsx)(_Lozenge.default, {
203
- isNodeSelected: isNodeSelected,
204
201
  node: node,
205
202
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
206
203
  pluginInjectionApi: pluginInjectionApi
@@ -62,7 +62,6 @@ var InlineExtension = function InlineExtension(props) {
62
62
  var node = props.node,
63
63
  pluginInjectionApi = props.pluginInjectionApi,
64
64
  macroInteractionDesignFeatureFlags = props.macroInteractionDesignFeatureFlags,
65
- isNodeSelected = props.isNodeSelected,
66
65
  children = props.children,
67
66
  isNodeHovered = props.isNodeHovered,
68
67
  setIsNodeHovered = props.setIsNodeHovered,
@@ -100,7 +99,6 @@ var InlineExtension = function InlineExtension(props) {
100
99
  };
101
100
  var inlineExtensionInternal = (0, _react2.jsx)(_react.Fragment, null, showMacroInteractionDesignUpdates && !isLivePageViewMode && (0, _react2.jsx)(_Lozenge.default, {
102
101
  node: node,
103
- isNodeSelected: isNodeSelected,
104
102
  isNodeHovered: isNodeHovered,
105
103
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
106
104
  setIsNodeHovered: setIsNodeHovered,
@@ -129,7 +127,6 @@ var InlineExtension = function InlineExtension(props) {
129
127
  className: "extension-overlay"
130
128
  }), children ? children : (0, _react2.jsx)(_Lozenge.default, {
131
129
  node: node,
132
- isNodeSelected: isNodeSelected,
133
130
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
134
131
  pluginInjectionApi: pluginInjectionApi
135
132
  })));
@@ -0,0 +1,20 @@
1
+
2
+ ._2rkofajl{border-radius:var(--ds-radius-small,3px)}
3
+ ._zulp1b66{gap:var(--ds-space-050,4px)}._154i14id{top:-10px}
4
+ ._154id439{top:-14px}
5
+ ._16qsglyw{box-shadow:none}
6
+ ._19bvu2gc{padding-left:var(--ds-space-100,8px)}
7
+ ._1bah1h6o{justify-content:center}
8
+ ._1e0c1txw{display:flex}
9
+ ._1pbycs5v{z-index:2}
10
+ ._1xi2utpp{right:var(--ds-space-150,9pt)}
11
+ ._3um0ewfl{visibility:visible}
12
+ ._4cvr1h6o{align-items:center}
13
+ ._bfhk15s3{background-color:var(--ds-background-selected,#e9f2fe)}
14
+ ._bfhkvuon{background-color:var(--ds-surface,#fff)}
15
+ ._ca0q1b66{padding-top:var(--ds-space-050,4px)}
16
+ ._kqswstnw{position:absolute}
17
+ ._n3td1b66{padding-bottom:var(--ds-space-050,4px)}
18
+ ._p12f11ux{max-width:140px}
19
+ ._tzy4kb7n{opacity:1}
20
+ ._u5f3u2gc{padding-right:var(--ds-space-100,8px)}
@@ -0,0 +1,31 @@
1
+ /* ExtensionFloatingLabel.tsx generated by @compiled/babel-plugin v0.39.1 */
2
+ "use strict";
3
+
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ExtensionFloatingLabel = void 0;
9
+ require("./ExtensionFloatingLabel.compiled.css");
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _runtime = require("@compiled/react/runtime");
12
+ var _compiled = require("@atlaskit/primitives/compiled");
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
14
+ var floatingLabelStyles = {
15
+ base: "_2rkofajl _zulp1b66 _4cvr1h6o _bfhkvuon _16qsglyw _1e0c1txw _1bah1h6o _p12f11ux _tzy4kb7n _19bvu2gc _u5f3u2gc _kqswstnw _1xi2utpp _154i14id _3um0ewfl _1pbycs5v",
16
+ selected: "_bfhk15s3 _n3td1b66 _ca0q1b66 _154id439"
17
+ };
18
+ var ExtensionFloatingLabel = exports.ExtensionFloatingLabel = function ExtensionFloatingLabel(_ref) {
19
+ var isSelected = _ref.isSelected,
20
+ testId = _ref.testId,
21
+ title = _ref.title;
22
+ return /*#__PURE__*/React.createElement("div", {
23
+ contentEditable: false,
24
+ "data-testid": testId,
25
+ className: (0, _runtime.ax)([floatingLabelStyles.base, isSelected && floatingLabelStyles.selected])
26
+ }, /*#__PURE__*/React.createElement(_compiled.Text, {
27
+ maxLines: 1,
28
+ size: "small",
29
+ color: isSelected ? 'color.text.selected' : 'color.text.subtle'
30
+ }, title));
31
+ };
@@ -123,19 +123,16 @@ var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
123
123
  extensionName = _ref.extensionName,
124
124
  customContainerStyles = _ref.customContainerStyles,
125
125
  isNodeNested = _ref.isNodeNested,
126
- isNodeSelected = _ref.isNodeSelected,
127
126
  setIsNodeHovered = _ref.setIsNodeHovered,
128
127
  isBodiedMacro = _ref.isBodiedMacro,
129
128
  showUpdatedLivePages1PBodiedExtensionUI = _ref.showUpdatedLivePages1PBodiedExtensionUI,
130
129
  showLivePagesBodiedMacrosRendererView = _ref.showLivePagesBodiedMacrosRendererView,
131
130
  showBodiedExtensionRendererView = _ref.showBodiedExtensionRendererView,
132
- _pluginInjectionApi = _ref.pluginInjectionApi,
133
- isMultiBodiedMacro = _ref.isMultiBodiedMacro;
131
+ _pluginInjectionApi = _ref.pluginInjectionApi;
134
132
  var isInlineExtension = extensionName === 'inlineExtension';
135
133
  var showDefaultBodiedStyles = isBodiedMacro;
136
- var shouldUseMultiBodiedMacroPresentation = isMultiBodiedMacro && (0, _expValEquals.expValEquals)('confluence_native_tabs_experiment', 'isEnabled', true);
137
134
  var containerClassNames = (0, _classnames.default)({
138
- bodied: isBodiedMacro && !shouldUseMultiBodiedMacroPresentation
135
+ bodied: isBodiedMacro
139
136
  });
140
137
  var labelClassNames = (0, _classnames.default)('extension-label', {
141
138
  nested: isNodeNested,
@@ -146,8 +143,8 @@ var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
146
143
  'with-bodied-macro-live-page-styles': isBodiedMacro && showLivePagesBodiedMacrosRendererView,
147
144
  'always-hide-label': isBodiedMacro && showBodiedExtensionRendererView,
148
145
  // Need this separate class since we don't ever want to show the label during view mode
149
- 'remove-left-margin': (!isBodiedMacro || shouldUseMultiBodiedMacroPresentation) && !isInlineExtension && !isNodeNested,
150
- 'remove-nested-left-margin': isNodeNested && (!isBodiedMacro || shouldUseMultiBodiedMacroPresentation) && !isInlineExtension
146
+ 'remove-left-margin': !isBodiedMacro && !isInlineExtension && !isNodeNested,
147
+ 'remove-nested-left-margin': isNodeNested && !isBodiedMacro && !isInlineExtension
151
148
  });
152
149
  var iconClassNames = (0, _classnames.default)({
153
150
  'extension-icon': true
@@ -199,12 +196,12 @@ var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
199
196
  // Ignored via go/ees005
200
197
  // eslint-disable-next-line react/jsx-props-no-spreading
201
198
  }, tooltipProps, {
202
- css: [labelStyles, !showLivePagesBodiedMacrosRendererView && showLabelStyles, (!isBodiedMacro || showUpdatedLivePages1PBodiedExtensionUI || shouldUseMultiBodiedMacroPresentation && !isNodeSelected) && hideLabelStyles]
199
+ css: [labelStyles, !showLivePagesBodiedMacrosRendererView && showLabelStyles, (!isBodiedMacro || showUpdatedLivePages1PBodiedExtensionUI) && hideLabelStyles]
203
200
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
204
201
  ,
205
202
  className: labelClassNames
206
203
  }), text, (0, _react2.jsx)("span", {
207
- css: [iconStyles, isBodiedMacro && !shouldUseMultiBodiedMacroPresentation && bodiedMacroIconStyles]
204
+ css: [iconStyles, isBodiedMacro && bodiedMacroIconStyles]
208
205
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
209
206
  ,
210
207
  className: iconClassNames,
@@ -32,15 +32,13 @@ var LozengeComponent = exports.LozengeComponent = function LozengeComponent(_ref
32
32
  customContainerStyles = _ref.customContainerStyles,
33
33
  isNodeHovered = _ref.isNodeHovered,
34
34
  isNodeNested = _ref.isNodeNested,
35
- isNodeSelected = _ref.isNodeSelected,
36
35
  setIsNodeHovered = _ref.setIsNodeHovered,
37
36
  isBodiedMacro = _ref.isBodiedMacro,
38
37
  showLivePagesBodiedMacrosRendererView = _ref.showLivePagesBodiedMacrosRendererView,
39
38
  showUpdatedLivePages1PBodiedExtensionUI = _ref.showUpdatedLivePages1PBodiedExtensionUI,
40
39
  showBodiedExtensionRendererView = _ref.showBodiedExtensionRendererView,
41
40
  setShowBodiedExtensionRendererView = _ref.setShowBodiedExtensionRendererView,
42
- pluginInjectionApi = _ref.pluginInjectionApi,
43
- isMultiBodiedMacro = _ref.isMultiBodiedMacro;
41
+ pluginInjectionApi = _ref.pluginInjectionApi;
44
42
  var capitalizedTitle = capitalizeFirstLetter(title);
45
43
  if (showMacroInteractionDesignUpdates) {
46
44
  return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_ExtensionLabel.ExtensionLabel, {
@@ -48,15 +46,13 @@ var LozengeComponent = exports.LozengeComponent = function LozengeComponent(_ref
48
46
  extensionName: extensionName,
49
47
  isNodeHovered: isNodeHovered,
50
48
  isNodeNested: isNodeNested,
51
- isNodeSelected: isNodeSelected,
52
49
  customContainerStyles: customContainerStyles,
53
50
  setIsNodeHovered: setIsNodeHovered,
54
51
  isBodiedMacro: isBodiedMacro,
55
52
  showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView,
56
53
  showUpdatedLivePages1PBodiedExtensionUI: showUpdatedLivePages1PBodiedExtensionUI,
57
54
  showBodiedExtensionRendererView: showBodiedExtensionRendererView,
58
- pluginInjectionApi: pluginInjectionApi,
59
- isMultiBodiedMacro: isMultiBodiedMacro
55
+ pluginInjectionApi: pluginInjectionApi
60
56
  }), showLivePagesBodiedMacrosRendererView && isBodiedMacro && (0, _react2.jsx)(_EditToggle.EditToggle, {
61
57
  isNodeHovered: isNodeHovered,
62
58
  setIsNodeHovered: setIsNodeHovered,
@@ -49,7 +49,6 @@ var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
49
49
  (0, _defineProperty2.default)(_this, "renderFallback", function (lozengeData) {
50
50
  var _this$props = _this.props,
51
51
  showMacroInteractionDesignUpdates = _this$props.showMacroInteractionDesignUpdates,
52
- isNodeSelected = _this$props.isNodeSelected,
53
52
  isNodeHovered = _this$props.isNodeHovered,
54
53
  isNodeNested = _this$props.isNodeNested,
55
54
  customContainerStyles = _this$props.customContainerStyles,
@@ -59,8 +58,7 @@ var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
59
58
  showUpdatedLivePages1PBodiedExtensionUI = _this$props.showUpdatedLivePages1PBodiedExtensionUI,
60
59
  showBodiedExtensionRendererView = _this$props.showBodiedExtensionRendererView,
61
60
  setShowBodiedExtensionRendererView = _this$props.setShowBodiedExtensionRendererView,
62
- pluginInjectionApi = _this$props.pluginInjectionApi,
63
- isMultiBodiedMacro = _this$props.isMultiBodiedMacro;
61
+ pluginInjectionApi = _this$props.pluginInjectionApi;
64
62
  var _this$props$node$attr = _this.props.node.attrs,
65
63
  parameters = _this$props$node$attr.parameters,
66
64
  extensionKey = _this$props$node$attr.extensionKey;
@@ -69,7 +67,6 @@ var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
69
67
  var title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
70
68
  return (0, _react2.jsx)(_LozengeComponent.LozengeComponent, {
71
69
  isNodeHovered: isNodeHovered,
72
- isNodeSelected: isNodeSelected,
73
70
  isNodeNested: isNodeNested,
74
71
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
75
72
  extensionName: name,
@@ -84,8 +81,7 @@ var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
84
81
  showUpdatedLivePages1PBodiedExtensionUI: showUpdatedLivePages1PBodiedExtensionUI,
85
82
  showBodiedExtensionRendererView: showBodiedExtensionRendererView,
86
83
  setShowBodiedExtensionRendererView: setShowBodiedExtensionRendererView,
87
- pluginInjectionApi: pluginInjectionApi,
88
- isMultiBodiedMacro: isMultiBodiedMacro
84
+ pluginInjectionApi: pluginInjectionApi
89
85
  });
90
86
  });
91
87
  return _this;
@@ -260,7 +260,9 @@ var ExtensionComponentInner = /*#__PURE__*/function (_Component) {
260
260
  editorAppearance: editorAppearance,
261
261
  macroInteractionDesignFeatureFlags: macroInteractionDesignFeatureFlags,
262
262
  isNodeSelected: selectedNode === node,
263
+ isNodeHovered: this.state.isNodeHovered,
263
264
  isNodeNested: isNodeNested,
265
+ setIsNodeHovered: this.setIsNodeHovered,
264
266
  isLivePageViewMode: isLivePageViewMode,
265
267
  allowBodiedOverride: allowBodiedOverride
266
268
  });
@@ -21,6 +21,7 @@ var _hooks = require("../../hooks");
21
21
  var _MultiBodiedExtension = require("../../ui/MultiBodiedExtension");
22
22
  var _utils = require("../../utils");
23
23
  var _Lozenge = _interopRequireDefault(require("../Extension/Lozenge"));
24
+ var _ExtensionFloatingLabel = require("../Extension/Lozenge/ExtensionFloatingLabel");
24
25
  var _shouldExtensionBreakout = require("../utils/should-extension-breakout");
25
26
  var _actionApi = require("./action-api");
26
27
  var _styles = require("./styles");
@@ -49,6 +50,11 @@ var imageStyles = (0, _react2.css)({
49
50
  maxWidth: '24px'
50
51
  });
51
52
  var hoverStyles = (0, _react2.css)({
53
+ '&:hover': {
54
+ boxShadow: "0 0 0 1px ".concat("var(--ds-border, #0B120E24)")
55
+ }
56
+ });
57
+ var hoverStylesOld = (0, _react2.css)({
52
58
  '&:hover': {
53
59
  boxShadow: "0 0 0 1px ".concat("var(--ds-border-input, #8C8F97)")
54
60
  }
@@ -236,11 +242,14 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref2
236
242
  breakoutStyles = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_calculateBreakoutSty), _calculateBreakoutSty));
237
243
  mbeWrapperStyles = breakoutStyles;
238
244
  }
239
- var shouldUseNativeTabsPresentation = (0, _expValEquals.expValEquals)('confluence_native_tabs_experiment', 'isEnabled', true);
240
- var isSelectionInsideMultiBodiedExtension = useIsSelectionInsideNode(editorView, node, getPos, shouldUseNativeTabsPresentation);
245
+ var shouldUseUpdatedChrome = (0, _expValEquals.expValEquals)('confluence_native_tabs_experiment', 'isEnabled', true);
246
+ var isSelectionInsideMultiBodiedExtension = useIsSelectionInsideNode(editorView, node, getPos, shouldUseUpdatedChrome && !isLivePageViewMode);
241
247
  var isMultiBodiedExtensionActive = isNodeSelected || isSelectionInsideMultiBodiedExtension;
248
+ var shouldShowChromeOnInteraction = isNodeHovered || isMultiBodiedExtensionActive;
249
+ var shouldShowMultiBodiedExtensionChrome = shouldUseUpdatedChrome ? !isLivePageViewMode && shouldShowChromeOnInteraction : true;
242
250
  var wrapperClassNames = (0, _classnames.default)('multiBodiedExtension--wrapper', 'extension-container', 'block', {
243
- 'with-border': showMacroInteractionDesignUpdates && (shouldUseNativeTabsPresentation ? isMultiBodiedExtensionActive : true),
251
+ 'with-border': showMacroInteractionDesignUpdates && shouldShowMultiBodiedExtensionChrome,
252
+ 'with-selected-border': showMacroInteractionDesignUpdates && shouldUseUpdatedChrome && !isLivePageViewMode && isNodeSelected,
244
253
  'with-danger-overlay': showMacroInteractionDesignUpdates,
245
254
  'with-padding-background-styles': showMacroInteractionDesignUpdates,
246
255
  'with-margin-styles': showMacroInteractionDesignUpdates && !isNodeNested
@@ -261,8 +270,9 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref2
261
270
  setIsNodeHovered(didHover);
262
271
  }
263
272
  };
264
- return (0, _react2.jsx)(_react.Fragment, null, showMacroInteractionDesignUpdates && !isLivePageViewMode && (0, _react2.jsx)(_Lozenge.default, {
265
- isNodeSelected: shouldUseNativeTabsPresentation ? isMultiBodiedExtensionActive : isNodeSelected,
273
+ var shouldRenderExtensionLozenge = showMacroInteractionDesignUpdates && !isLivePageViewMode && !shouldUseUpdatedChrome;
274
+ var shouldRenderFloatingLabel = showMacroInteractionDesignUpdates && !isLivePageViewMode && shouldUseUpdatedChrome && shouldShowChromeOnInteraction;
275
+ return (0, _react2.jsx)(_react.Fragment, null, shouldRenderExtensionLozenge && (0, _react2.jsx)(_Lozenge.default, {
266
276
  node: node,
267
277
  showMacroInteractionDesignUpdates: true,
268
278
  customContainerStyles: mbeWrapperStyles,
@@ -270,14 +280,13 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref2
270
280
  isNodeNested: isNodeNested,
271
281
  setIsNodeHovered: setIsNodeHovered,
272
282
  isBodiedMacro: true,
273
- isMultiBodiedMacro: shouldUseNativeTabsPresentation,
274
283
  pluginInjectionApi: pluginInjectionApi
275
284
  }), (0, _react2.jsx)("div", {
276
285
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
277
286
  className: wrapperClassNames,
278
287
  css: [/* eslint-disable @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766 */
279
- shouldUseNativeTabsPresentation ? _styles.mbeExtensionWrapperCSSStyles : _styles.mbeExtensionWrapperCSSStylesOld, /* eslint-enable @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage */
280
- showMacroInteractionDesignUpdates && !isLivePageViewMode && hoverStyles],
288
+ shouldUseUpdatedChrome ? _styles.mbeExtensionWrapperCSSStyles : _styles.mbeExtensionWrapperCSSStylesOld, /* eslint-enable @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage */
289
+ showMacroInteractionDesignUpdates && !isLivePageViewMode && (shouldUseUpdatedChrome ? hoverStyles : hoverStylesOld)],
281
290
  "data-testid": "multiBodiedExtension--wrapper-editor",
282
291
  "data-layout": node.attrs.layout
283
292
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
@@ -294,9 +303,13 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref2
294
303
  return handleMouseEvent(false);
295
304
  },
296
305
  onBlur: (0, _expValEquals.expValEquals)('editor_a11y__enghealth-46814_fy26', 'isEnabled', true) ? function () {} : undefined
297
- }, (0, _react2.jsx)("div", {
306
+ }, shouldRenderFloatingLabel && (0, _react2.jsx)(_ExtensionFloatingLabel.ExtensionFloatingLabel, {
307
+ title: title,
308
+ isSelected: isNodeSelected,
309
+ testId: "multiBodiedExtension-floating-label"
310
+ }), (0, _react2.jsx)("div", {
298
311
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
299
- css: shouldUseNativeTabsPresentation ? _styles.overlayStyles : _styles.overlayStylesOld
312
+ css: shouldUseUpdatedChrome ? _styles.overlayStyles : _styles.overlayStylesOld
300
313
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
301
314
  ,
302
315
  className: overlayClassNames,
@@ -40,6 +40,10 @@ var mbeExtensionWrapperCSSStyles = exports.mbeExtensionWrapperCSSStyles = (0, _r
40
40
  boxShadow: "0 0 0 1px ".concat("var(--ds-border, #0B120E24)")
41
41
  },
42
42
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
43
+ '&.with-selected-border': {
44
+ boxShadow: "0 0 0 1px ".concat("var(--ds-border-focused, #4688EC)")
45
+ },
46
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
43
47
  '&.with-hover-border': {
44
48
  boxShadow: "0 0 0 1px ".concat("var(--ds-border-input, #8C8F97)")
45
49
  },
@@ -15,6 +15,10 @@ exports.flattenList = flattenList;
15
15
  * Uses `doc.nodesBetween` to walk the tree and delegates type-specific
16
16
  * decisions to the provided predicates. The core algorithm — selection
17
17
  * intersection, depth adjustment, index tracking — is shared.
18
+ *
19
+ * @private
20
+ * @deprecated Cannot represent content placed between an item's sub-lists
21
+ * (e.g. `li(p, ul, p, ul)`). Callers provide their own flatten that handles this.
18
22
  */
19
23
  function flattenList(options, predicates) {
20
24
  var doc = options.doc,
@@ -28,7 +28,7 @@ var NETWORK_FAILURE_REGEX = /^network failure/i;
28
28
  var RESIZE_OBSERVER_LOOP_REGEX = /ResizeObserver loop completed with undelivered notifications/;
29
29
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
30
30
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
31
- var packageVersion = "116.32.3";
31
+ var packageVersion = "116.33.0";
32
32
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
33
33
  // Remove URL as it has UGC
34
34
  // Ignored via go/ees007
@@ -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 = "116.32.3";
27
+ var packageVersion = "116.33.0";
28
28
  var halfFocusRing = 1;
29
29
  var dropOffset = '0, 8';
30
30
  var fadeIn = (0, _react2.keyframes)({
@@ -175,6 +175,16 @@ export const aiSuggestionsMessages = defineMessages({
175
175
  defaultMessage: 'Compare with original',
176
176
  description: 'Label for the dropdown action to compare suggestion with original content'
177
177
  },
178
+ cardHideDeletedDiffsLabel: {
179
+ id: 'fabric.editor.ai.suggestions.card.hideDeletedDiffsLabel.non-final',
180
+ defaultMessage: 'Hide comparison',
181
+ description: 'Tooltip label for the eye icon button on the AI suggestions card when deleted diffs are visible'
182
+ },
183
+ cardShowDeletedDiffsLabel: {
184
+ id: 'fabric.editor.ai.suggestions.card.showDeletedDiffsLabel.non-final',
185
+ defaultMessage: 'Show comparison',
186
+ description: 'Tooltip label for the eye icon button on the AI suggestions card when deleted diffs are hidden'
187
+ },
178
188
  cardScrollBackToSuggestionLabel: {
179
189
  id: 'fabric.editor.ai.suggestions.card.scrollBackToSuggestionLabel.non-final',
180
190
  defaultMessage: 'Back to suggestion',
@@ -40,7 +40,6 @@ function ExtensionWithPluginState(props) {
40
40
  hideFrame,
41
41
  editorAppearance,
42
42
  macroInteractionDesignFeatureFlags,
43
- isNodeSelected,
44
43
  isNodeHovered,
45
44
  isNodeNested,
46
45
  setIsNodeHovered,
@@ -144,7 +143,6 @@ function ExtensionWithPluginState(props) {
144
143
  }
145
144
  };
146
145
  return jsx(Fragment, null, !showLegacyContentHeader && showMacroInteractionDesignUpdates && !isLivePageViewMode && jsx(ExtensionLozenge, {
147
- isNodeSelected: isNodeSelected,
148
146
  isNodeHovered: isNodeHovered,
149
147
  isNodeNested: isNodeNested,
150
148
  node: node,
@@ -196,7 +194,6 @@ function ExtensionWithPluginState(props) {
196
194
  ,
197
195
  className: headerClassNames
198
196
  }, !removeBorder && jsx(ExtensionLozenge, {
199
- isNodeSelected: isNodeSelected,
200
197
  node: node,
201
198
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
202
199
  pluginInjectionApi: pluginInjectionApi
@@ -53,7 +53,6 @@ const InlineExtension = props => {
53
53
  node,
54
54
  pluginInjectionApi,
55
55
  macroInteractionDesignFeatureFlags,
56
- isNodeSelected,
57
56
  children,
58
57
  isNodeHovered,
59
58
  setIsNodeHovered,
@@ -94,7 +93,6 @@ const InlineExtension = props => {
94
93
  };
95
94
  const inlineExtensionInternal = jsx(Fragment, null, showMacroInteractionDesignUpdates && !isLivePageViewMode && jsx(ExtensionLozenge, {
96
95
  node: node,
97
- isNodeSelected: isNodeSelected,
98
96
  isNodeHovered: isNodeHovered,
99
97
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
100
98
  setIsNodeHovered: setIsNodeHovered,
@@ -119,7 +117,6 @@ const InlineExtension = props => {
119
117
  className: "extension-overlay"
120
118
  }), children ? children : jsx(ExtensionLozenge, {
121
119
  node: node,
122
- isNodeSelected: isNodeSelected,
123
120
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
124
121
  pluginInjectionApi: pluginInjectionApi
125
122
  })));
@@ -0,0 +1,20 @@
1
+
2
+ ._2rkofajl{border-radius:var(--ds-radius-small,3px)}
3
+ ._zulp1b66{gap:var(--ds-space-050,4px)}._154i14id{top:-10px}
4
+ ._154id439{top:-14px}
5
+ ._16qsglyw{box-shadow:none}
6
+ ._19bvu2gc{padding-left:var(--ds-space-100,8px)}
7
+ ._1bah1h6o{justify-content:center}
8
+ ._1e0c1txw{display:flex}
9
+ ._1pbycs5v{z-index:2}
10
+ ._1xi2utpp{right:var(--ds-space-150,9pt)}
11
+ ._3um0ewfl{visibility:visible}
12
+ ._4cvr1h6o{align-items:center}
13
+ ._bfhk15s3{background-color:var(--ds-background-selected,#e9f2fe)}
14
+ ._bfhkvuon{background-color:var(--ds-surface,#fff)}
15
+ ._ca0q1b66{padding-top:var(--ds-space-050,4px)}
16
+ ._kqswstnw{position:absolute}
17
+ ._n3td1b66{padding-bottom:var(--ds-space-050,4px)}
18
+ ._p12f11ux{max-width:140px}
19
+ ._tzy4kb7n{opacity:1}
20
+ ._u5f3u2gc{padding-right:var(--ds-space-100,8px)}
@@ -0,0 +1,22 @@
1
+ /* ExtensionFloatingLabel.tsx generated by @compiled/babel-plugin v0.39.1 */
2
+ import "./ExtensionFloatingLabel.compiled.css";
3
+ import * as React from 'react';
4
+ import { ax, ix } from "@compiled/react/runtime";
5
+ import { Text } from '@atlaskit/primitives/compiled';
6
+ const floatingLabelStyles = {
7
+ base: "_2rkofajl _zulp1b66 _4cvr1h6o _bfhkvuon _16qsglyw _1e0c1txw _1bah1h6o _p12f11ux _tzy4kb7n _19bvu2gc _u5f3u2gc _kqswstnw _1xi2utpp _154i14id _3um0ewfl _1pbycs5v",
8
+ selected: "_bfhk15s3 _n3td1b66 _ca0q1b66 _154id439"
9
+ };
10
+ export const ExtensionFloatingLabel = ({
11
+ isSelected,
12
+ testId,
13
+ title
14
+ }) => /*#__PURE__*/React.createElement("div", {
15
+ contentEditable: false,
16
+ "data-testid": testId,
17
+ className: ax([floatingLabelStyles.base, isSelected && floatingLabelStyles.selected])
18
+ }, /*#__PURE__*/React.createElement(Text, {
19
+ maxLines: 1,
20
+ size: "small",
21
+ color: isSelected ? 'color.text.selected' : 'color.text.subtle'
22
+ }, title));
@@ -114,20 +114,17 @@ export const ExtensionLabel = ({
114
114
  extensionName,
115
115
  customContainerStyles,
116
116
  isNodeNested,
117
- isNodeSelected,
118
117
  setIsNodeHovered,
119
118
  isBodiedMacro,
120
119
  showUpdatedLivePages1PBodiedExtensionUI,
121
120
  showLivePagesBodiedMacrosRendererView,
122
121
  showBodiedExtensionRendererView,
123
- pluginInjectionApi: _pluginInjectionApi,
124
- isMultiBodiedMacro
122
+ pluginInjectionApi: _pluginInjectionApi
125
123
  }) => {
126
124
  const isInlineExtension = extensionName === 'inlineExtension';
127
125
  const showDefaultBodiedStyles = isBodiedMacro;
128
- const shouldUseMultiBodiedMacroPresentation = isMultiBodiedMacro && expValEquals('confluence_native_tabs_experiment', 'isEnabled', true);
129
126
  const containerClassNames = classnames({
130
- bodied: isBodiedMacro && !shouldUseMultiBodiedMacroPresentation
127
+ bodied: isBodiedMacro
131
128
  });
132
129
  const labelClassNames = classnames('extension-label', {
133
130
  nested: isNodeNested,
@@ -138,8 +135,8 @@ export const ExtensionLabel = ({
138
135
  'with-bodied-macro-live-page-styles': isBodiedMacro && showLivePagesBodiedMacrosRendererView,
139
136
  'always-hide-label': isBodiedMacro && showBodiedExtensionRendererView,
140
137
  // Need this separate class since we don't ever want to show the label during view mode
141
- 'remove-left-margin': (!isBodiedMacro || shouldUseMultiBodiedMacroPresentation) && !isInlineExtension && !isNodeNested,
142
- 'remove-nested-left-margin': isNodeNested && (!isBodiedMacro || shouldUseMultiBodiedMacroPresentation) && !isInlineExtension
138
+ 'remove-left-margin': !isBodiedMacro && !isInlineExtension && !isNodeNested,
139
+ 'remove-nested-left-margin': isNodeNested && !isBodiedMacro && !isInlineExtension
143
140
  });
144
141
  const iconClassNames = classnames({
145
142
  'extension-icon': true
@@ -188,12 +185,12 @@ export const ExtensionLabel = ({
188
185
  // Ignored via go/ees005
189
186
  // eslint-disable-next-line react/jsx-props-no-spreading
190
187
  }, tooltipProps, {
191
- css: [labelStyles, !showLivePagesBodiedMacrosRendererView && showLabelStyles, (!isBodiedMacro || showUpdatedLivePages1PBodiedExtensionUI || shouldUseMultiBodiedMacroPresentation && !isNodeSelected) && hideLabelStyles]
188
+ css: [labelStyles, !showLivePagesBodiedMacrosRendererView && showLabelStyles, (!isBodiedMacro || showUpdatedLivePages1PBodiedExtensionUI) && hideLabelStyles]
192
189
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
193
190
  ,
194
191
  className: labelClassNames
195
192
  }), text, jsx("span", {
196
- css: [iconStyles, isBodiedMacro && !shouldUseMultiBodiedMacroPresentation && bodiedMacroIconStyles]
193
+ css: [iconStyles, isBodiedMacro && bodiedMacroIconStyles]
197
194
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
198
195
  ,
199
196
  className: iconClassNames,
@@ -26,15 +26,13 @@ export const LozengeComponent = ({
26
26
  customContainerStyles,
27
27
  isNodeHovered,
28
28
  isNodeNested,
29
- isNodeSelected,
30
29
  setIsNodeHovered,
31
30
  isBodiedMacro,
32
31
  showLivePagesBodiedMacrosRendererView,
33
32
  showUpdatedLivePages1PBodiedExtensionUI,
34
33
  showBodiedExtensionRendererView,
35
34
  setShowBodiedExtensionRendererView,
36
- pluginInjectionApi,
37
- isMultiBodiedMacro
35
+ pluginInjectionApi
38
36
  }) => {
39
37
  const capitalizedTitle = capitalizeFirstLetter(title);
40
38
  if (showMacroInteractionDesignUpdates) {
@@ -43,15 +41,13 @@ export const LozengeComponent = ({
43
41
  extensionName: extensionName,
44
42
  isNodeHovered: isNodeHovered,
45
43
  isNodeNested: isNodeNested,
46
- isNodeSelected: isNodeSelected,
47
44
  customContainerStyles: customContainerStyles,
48
45
  setIsNodeHovered: setIsNodeHovered,
49
46
  isBodiedMacro: isBodiedMacro,
50
47
  showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView,
51
48
  showUpdatedLivePages1PBodiedExtensionUI: showUpdatedLivePages1PBodiedExtensionUI,
52
49
  showBodiedExtensionRendererView: showBodiedExtensionRendererView,
53
- pluginInjectionApi: pluginInjectionApi,
54
- isMultiBodiedMacro: isMultiBodiedMacro
50
+ pluginInjectionApi: pluginInjectionApi
55
51
  }), showLivePagesBodiedMacrosRendererView && isBodiedMacro && jsx(EditToggle, {
56
52
  isNodeHovered: isNodeHovered,
57
53
  setIsNodeHovered: setIsNodeHovered,
@@ -34,7 +34,6 @@ export default class ExtensionLozenge extends Component {
34
34
  _defineProperty(this, "renderFallback", lozengeData => {
35
35
  const {
36
36
  showMacroInteractionDesignUpdates,
37
- isNodeSelected,
38
37
  isNodeHovered,
39
38
  isNodeNested,
40
39
  customContainerStyles,
@@ -44,8 +43,7 @@ export default class ExtensionLozenge extends Component {
44
43
  showUpdatedLivePages1PBodiedExtensionUI,
45
44
  showBodiedExtensionRendererView,
46
45
  setShowBodiedExtensionRendererView,
47
- pluginInjectionApi,
48
- isMultiBodiedMacro
46
+ pluginInjectionApi
49
47
  } = this.props;
50
48
  const {
51
49
  parameters,
@@ -58,7 +56,6 @@ export default class ExtensionLozenge extends Component {
58
56
  const title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
59
57
  return jsx(LozengeComponent, {
60
58
  isNodeHovered: isNodeHovered,
61
- isNodeSelected: isNodeSelected,
62
59
  isNodeNested: isNodeNested,
63
60
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
64
61
  extensionName: name,
@@ -73,8 +70,7 @@ export default class ExtensionLozenge extends Component {
73
70
  showUpdatedLivePages1PBodiedExtensionUI: showUpdatedLivePages1PBodiedExtensionUI,
74
71
  showBodiedExtensionRendererView: showBodiedExtensionRendererView,
75
72
  setShowBodiedExtensionRendererView: setShowBodiedExtensionRendererView,
76
- pluginInjectionApi: pluginInjectionApi,
77
- isMultiBodiedMacro: isMultiBodiedMacro
73
+ pluginInjectionApi: pluginInjectionApi
78
74
  });
79
75
  });
80
76
  }