@atlaskit/editor-common 83.1.0 → 83.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/cjs/extensibility/Extension/Extension/index.js +3 -1
  3. package/dist/cjs/extensibility/Extension/InlineExtension/index.js +3 -1
  4. package/dist/cjs/extensibility/Extension/Lozenge/ExtensionLabel.js +84 -42
  5. package/dist/cjs/extensibility/Extension/Lozenge/LozengeComponent.js +3 -1
  6. package/dist/cjs/extensibility/Extension/Lozenge/index.js +2 -0
  7. package/dist/cjs/extensibility/MultiBodiedExtension/index.js +3 -1
  8. package/dist/cjs/monitoring/error.js +1 -1
  9. package/dist/cjs/ui/DropList/index.js +1 -1
  10. package/dist/es2019/extensibility/Extension/Extension/index.js +3 -1
  11. package/dist/es2019/extensibility/Extension/InlineExtension/index.js +3 -1
  12. package/dist/es2019/extensibility/Extension/Lozenge/ExtensionLabel.js +84 -44
  13. package/dist/es2019/extensibility/Extension/Lozenge/LozengeComponent.js +3 -1
  14. package/dist/es2019/extensibility/Extension/Lozenge/index.js +2 -0
  15. package/dist/es2019/extensibility/MultiBodiedExtension/index.js +3 -1
  16. package/dist/es2019/monitoring/error.js +1 -1
  17. package/dist/es2019/ui/DropList/index.js +1 -1
  18. package/dist/esm/extensibility/Extension/Extension/index.js +3 -1
  19. package/dist/esm/extensibility/Extension/InlineExtension/index.js +3 -1
  20. package/dist/esm/extensibility/Extension/Lozenge/ExtensionLabel.js +86 -44
  21. package/dist/esm/extensibility/Extension/Lozenge/LozengeComponent.js +3 -1
  22. package/dist/esm/extensibility/Extension/Lozenge/index.js +2 -0
  23. package/dist/esm/extensibility/MultiBodiedExtension/index.js +3 -1
  24. package/dist/esm/monitoring/error.js +1 -1
  25. package/dist/esm/ui/DropList/index.js +1 -1
  26. package/dist/types/extensibility/Extension/Lozenge/ExtensionLabel.d.ts +2 -1
  27. package/dist/types/extensibility/Extension/Lozenge/LozengeComponent.d.ts +2 -1
  28. package/dist/types/extensibility/Extension/Lozenge/index.d.ts +1 -0
  29. package/dist/types-ts4.5/extensibility/Extension/Lozenge/ExtensionLabel.d.ts +2 -1
  30. package/dist/types-ts4.5/extensibility/Extension/Lozenge/LozengeComponent.d.ts +2 -1
  31. package/dist/types-ts4.5/extensibility/Extension/Lozenge/index.d.ts +1 -0
  32. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 83.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#114794](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/114794)
8
+ [`f859d1c0d08dc`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/f859d1c0d08dc) -
9
+ [ux] Adds in logic to conditionally show new label designs for macro interaction updates. Also
10
+ updates/adds new tests.
11
+
3
12
  ## 83.1.0
4
13
 
5
14
  ### Minor Changes
@@ -43,7 +43,8 @@ function ExtensionWithPluginState(props) {
43
43
  isNodeNested = props.isNodeNested,
44
44
  setIsNodeHovered = props.setIsNodeHovered;
45
45
  var _ref = macroInteractionDesignFeatureFlags || {},
46
- showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates;
46
+ showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates,
47
+ showMacroButtonUpdates = _ref.showMacroButtonUpdates;
47
48
  var hasBody = ['bodiedExtension', 'multiBodiedExtension'].includes(node.type.name);
48
49
  var isMobile = editorAppearance === 'mobile';
49
50
  var hasChildren = !!children;
@@ -111,6 +112,7 @@ function ExtensionWithPluginState(props) {
111
112
  isNodeNested: isNodeNested,
112
113
  node: node,
113
114
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
115
+ showMacroButtonUpdates: showMacroButtonUpdates,
114
116
  customContainerStyles: customContainerStyles,
115
117
  setIsNodeHovered: setIsNodeHovered,
116
118
  isBodiedMacro: hasBody
@@ -31,7 +31,8 @@ var InlineExtension = function InlineExtension(props) {
31
31
  isNodeHovered = props.isNodeHovered,
32
32
  setIsNodeHovered = props.setIsNodeHovered;
33
33
  var _ref = macroInteractionDesignFeatureFlags || {},
34
- showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates;
34
+ showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates,
35
+ showMacroButtonUpdates = _ref.showMacroButtonUpdates;
35
36
  var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['width']),
36
37
  widthState = _useSharedPluginState.widthState;
37
38
  var hasChildren = !!children;
@@ -53,6 +54,7 @@ var InlineExtension = function InlineExtension(props) {
53
54
  isNodeSelected: isNodeSelected,
54
55
  isNodeHovered: isNodeHovered,
55
56
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
57
+ showMacroButtonUpdates: showMacroButtonUpdates,
56
58
  setIsNodeHovered: setIsNodeHovered
57
59
  }), (0, _react2.jsx)("div", {
58
60
  "data-testid": "inline-extension-wrapper"
@@ -5,38 +5,41 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.ExtensionLabel = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
9
  var _react = require("react");
9
10
  var _react2 = require("@emotion/react");
10
11
  var _classnames = _interopRequireDefault(require("classnames"));
12
+ var _reactIntlNext = require("react-intl-next");
13
+ var _preferences = _interopRequireDefault(require("@atlaskit/icon/glyph/preferences"));
11
14
  var _colors = require("@atlaskit/theme/colors");
15
+ var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
12
16
  /** @jsx jsx */
13
17
 
14
18
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
15
19
 
16
- var labelStyles = (0, _react2.css)({
20
+ var containerStyles = (0, _react2.css)({
21
+ textAlign: 'left',
22
+ zIndex: 1,
23
+ position: 'relative',
24
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
25
+ '&.bodied': {
26
+ marginTop: "var(--ds-space-300, 24px)"
27
+ }
28
+ });
29
+ var sharedLabelStyles = (0, _react2.css)({
17
30
  opacity: 0,
31
+ lineHeight: 1,
18
32
  display: 'inline-flex',
19
- width: 'max-content',
20
33
  justifyContent: 'left',
21
34
  position: 'absolute',
22
- // Unfortunately, these need to be these exact numbers - otherwise there will be a noticeable gap/overlap
35
+ width: 'max-content',
23
36
  // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
24
37
  top: '-19px',
25
38
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
26
- '&.inline': {
27
- // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
28
- top: '-18px',
29
- marginLeft: "var(--ds-space-150, 12px)"
30
- },
31
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
32
39
  '&.show-label': {
33
40
  cursor: 'pointer',
34
- background: "var(--ds-background-accent-gray-subtle-pressed, ".concat(_colors.N40, ")"),
35
- color: "var(--ds-text-subtle, ".concat(_colors.N500, ")"),
36
41
  opacity: 1
37
42
  },
38
- borderRadius: "var(--ds-border-radius, 3px)".concat(" ", "var(--ds-border-radius, 3px)", " 0 0"),
39
- lineHeight: 1,
40
43
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
41
44
  '&.nested': {
42
45
  // Need to add indent if the node is nested since we removed previous indentation styles to make it fit properly
@@ -44,26 +47,49 @@ var labelStyles = (0, _react2.css)({
44
47
  marginLeft: "var(--ds-space-150, 12px)"
45
48
  },
46
49
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
47
- '&.bodied-background': {
48
- background: "var(--ds-surface, ".concat(_colors.N0, ")")
49
- },
50
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
51
- '&.bodied-border': {
52
- boxShadow: "0 0 0 1px ".concat("var(--ds-border, ".concat(_colors.N30, ")"))
50
+ '&.inline': {
51
+ marginLeft: "var(--ds-space-150, 12px)",
52
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
53
+ top: '-18px'
53
54
  }
54
55
  });
56
+ var buttonLabelStyles = (0, _react2.css)({
57
+ alignItems: 'center',
58
+ borderRadius: "var(--ds-border-radius, 3px)",
59
+ paddingLeft: "var(--ds-space-050, 4px)",
60
+ paddingRight: "var(--ds-space-050, 4px)",
61
+ color: "var(--ds-text-subtle, ".concat(_colors.N800, ")"),
62
+ backgroundColor: "var(--ds-background-accent-gray-subtlest, ".concat(_colors.N30, ")")
63
+ });
64
+ var placeholderStyles = (0, _react2.css)({
65
+ height: "var(--ds-space-150, 12px)"
66
+ });
55
67
  var textStyles = (0, _react2.css)({
56
68
  fontSize: '14px',
57
69
  fontWeight: 'normal',
58
70
  padding: "var(--ds-space-025, 2px)".concat(" ", "var(--ds-space-050, 4px)")
59
71
  });
60
- var containerStyles = (0, _react2.css)({
61
- textAlign: 'left',
62
- zIndex: 1,
63
- position: 'relative',
72
+ var originalLabelStyles = (0, _react2.css)({
73
+ borderRadius: "var(--ds-border-radius, 3px)".concat(" ", "var(--ds-border-radius, 3px)", " 0 0"),
64
74
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
65
- '&.bodied': {
66
- marginTop: "var(--ds-space-300, 24px)"
75
+ '&.show-label': {
76
+ background: "var(--ds-background-accent-gray-subtle-pressed, ".concat(_colors.N40, ")"),
77
+ color: "var(--ds-text-subtle, ".concat(_colors.N500, ")")
78
+ },
79
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
80
+ '&.bodied-background': {
81
+ background: "var(--ds-surface, ".concat(_colors.N0, ")")
82
+ },
83
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
84
+ '&.bodied-border': {
85
+ boxShadow: "0 0 0 1px ".concat("var(--ds-border, ".concat(_colors.N30, ")"))
86
+ }
87
+ });
88
+ var i18n = (0, _reactIntlNext.defineMessages)({
89
+ configure: {
90
+ id: 'editor-common-extensibility.macro.button.configure',
91
+ defaultMessage: 'Configure',
92
+ description: 'Text in tooltip that tells user they can configure the specific macro.'
67
93
  }
68
94
  });
69
95
  var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
@@ -73,7 +99,10 @@ var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
73
99
  customContainerStyles = _ref.customContainerStyles,
74
100
  isNodeNested = _ref.isNodeNested,
75
101
  setIsNodeHovered = _ref.setIsNodeHovered,
76
- isBodiedMacro = _ref.isBodiedMacro;
102
+ isBodiedMacro = _ref.isBodiedMacro,
103
+ showMacroButtonUpdates = _ref.showMacroButtonUpdates;
104
+ var intl = (0, _reactIntlNext.useIntl)();
105
+ var tooltipText = "".concat(intl.formatMessage(i18n.configure), " ").concat(text);
77
106
  var containerClassNames = (0, _classnames.default)({
78
107
  bodied: isBodiedMacro
79
108
  });
@@ -81,20 +110,10 @@ var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
81
110
  nested: isNodeNested,
82
111
  inline: extensionName === 'inlineExtension',
83
112
  bodied: isBodiedMacro,
84
- 'bodied-border': isBodiedMacro && !isNodeHovered,
85
- 'bodied-background': isBodiedMacro && !isNodeHovered,
113
+ 'bodied-border': isBodiedMacro && !isNodeHovered && !showMacroButtonUpdates,
114
+ 'bodied-background': isBodiedMacro && !isNodeHovered && !showMacroButtonUpdates,
86
115
  'show-label': isNodeHovered || isBodiedMacro
87
116
  });
88
- var handleMouseEnter = (0, _react.useCallback)(function () {
89
- // If current node is hovered and the label is hovered,
90
- // consider the node as hovered so we can display the label for users to click on
91
- if (isNodeHovered) {
92
- setIsNodeHovered === null || setIsNodeHovered === void 0 || setIsNodeHovered(true);
93
- }
94
- }, [isNodeHovered, setIsNodeHovered]);
95
- var handleMouseLeave = (0, _react.useCallback)(function () {
96
- setIsNodeHovered === null || setIsNodeHovered === void 0 || setIsNodeHovered(false);
97
- }, [setIsNodeHovered]);
98
117
  return (0, _react2.jsx)("div", {
99
118
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
100
119
  css: containerStyles
@@ -104,12 +123,35 @@ var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
104
123
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
105
124
  ,
106
125
  style: customContainerStyles,
107
- onMouseEnter: handleMouseEnter,
108
- onMouseLeave: handleMouseLeave,
126
+ onMouseOver: function onMouseOver() {
127
+ setIsNodeHovered === null || setIsNodeHovered === void 0 || setIsNodeHovered(true);
128
+ },
129
+ onMouseLeave: function onMouseLeave() {
130
+ setIsNodeHovered === null || setIsNodeHovered === void 0 || setIsNodeHovered(false);
131
+ },
109
132
  "data-testid": "new-lozenge-container"
110
- }, (0, _react2.jsx)("span", {
133
+ }, showMacroButtonUpdates ? (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_tooltip.default, {
134
+ content: tooltipText,
135
+ position: "top"
136
+ }, function (tooltipProps) {
137
+ return (0, _react2.jsx)("span", (0, _extends2.default)({
138
+ "data-testid": "new-lozenge-button"
139
+ }, tooltipProps, {
140
+ css: [sharedLabelStyles, buttonLabelStyles]
141
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
142
+ ,
143
+ className: labelClassNames
144
+ }), text, " ", (0, _react2.jsx)(_preferences.default, {
145
+ label: ""
146
+ }));
147
+ }), (0, _react2.jsx)("div", {
148
+ "data-testid": "placeholder",
149
+ css: placeholderStyles
150
+ })) : (0, _react2.jsx)("span", {
111
151
  "data-testid": "new-lozenge",
112
- css: labelStyles,
152
+ css: [sharedLabelStyles, originalLabelStyles]
153
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
154
+ ,
113
155
  className: labelClassNames
114
156
  }, (0, _react2.jsx)("span", {
115
157
  css: textStyles
@@ -23,6 +23,7 @@ var LozengeComponent = exports.LozengeComponent = function LozengeComponent(_ref
23
23
  params = _ref.params,
24
24
  renderImage = _ref.renderImage,
25
25
  showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates,
26
+ showMacroButtonUpdates = _ref.showMacroButtonUpdates,
26
27
  customContainerStyles = _ref.customContainerStyles,
27
28
  isNodeHovered = _ref.isNodeHovered,
28
29
  isNodeNested = _ref.isNodeNested,
@@ -37,7 +38,8 @@ var LozengeComponent = exports.LozengeComponent = function LozengeComponent(_ref
37
38
  isNodeNested: isNodeNested,
38
39
  customContainerStyles: customContainerStyles,
39
40
  setIsNodeHovered: setIsNodeHovered,
40
- isBodiedMacro: isBodiedMacro
41
+ isBodiedMacro: isBodiedMacro,
42
+ showMacroButtonUpdates: showMacroButtonUpdates
41
43
  });
42
44
  }
43
45
  var isBlockExtension = extensionName === 'extension';
@@ -47,6 +47,7 @@ var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
47
47
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderFallback", function (lozengeData) {
48
48
  var _this$props = _this.props,
49
49
  showMacroInteractionDesignUpdates = _this$props.showMacroInteractionDesignUpdates,
50
+ showMacroButtonUpdates = _this$props.showMacroButtonUpdates,
50
51
  isNodeSelected = _this$props.isNodeSelected,
51
52
  isNodeHovered = _this$props.isNodeHovered,
52
53
  isNodeNested = _this$props.isNodeNested,
@@ -64,6 +65,7 @@ var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
64
65
  isNodeSelected: isNodeSelected,
65
66
  isNodeNested: isNodeNested,
66
67
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
68
+ showMacroButtonUpdates: showMacroButtonUpdates,
67
69
  extensionName: name,
68
70
  lozengeData: lozengeData,
69
71
  params: params,
@@ -86,7 +86,8 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref)
86
86
  isNodeNested = _ref.isNodeNested,
87
87
  setIsNodeHovered = _ref.setIsNodeHovered;
88
88
  var _ref2 = macroInteractionDesignFeatureFlags || {},
89
- showMacroInteractionDesignUpdates = _ref2.showMacroInteractionDesignUpdates;
89
+ showMacroInteractionDesignUpdates = _ref2.showMacroInteractionDesignUpdates,
90
+ showMacroButtonUpdates = _ref2.showMacroButtonUpdates;
90
91
  var _node$attrs = node.attrs,
91
92
  parameters = _node$attrs.parameters,
92
93
  extensionKey = _node$attrs.extensionKey;
@@ -162,6 +163,7 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref)
162
163
  isNodeSelected: isNodeSelected,
163
164
  node: node,
164
165
  showMacroInteractionDesignUpdates: true,
166
+ showMacroButtonUpdates: showMacroButtonUpdates,
165
167
  customContainerStyles: mbeWrapperStyles,
166
168
  isNodeHovered: isNodeHovered,
167
169
  isNodeNested: isNodeNested,
@@ -17,7 +17,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
17
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
18
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
19
19
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
20
- var packageVersion = "83.1.0";
20
+ var packageVersion = "83.2.0";
21
21
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
22
22
  // Remove URL as it has UGC
23
23
  // TODO: Sanitise the URL instead of just removing it
@@ -20,7 +20,7 @@ var _Layer = _interopRequireDefault(require("../Layer"));
20
20
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
21
21
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** @jsx jsx */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
22
22
  var packageName = "@atlaskit/editor-common";
23
- var packageVersion = "83.1.0";
23
+ var packageVersion = "83.2.0";
24
24
  var halfFocusRing = 1;
25
25
  var dropOffset = '0, 8';
26
26
  var DropList = /*#__PURE__*/function (_Component) {
@@ -31,7 +31,8 @@ function ExtensionWithPluginState(props) {
31
31
  setIsNodeHovered
32
32
  } = props;
33
33
  const {
34
- showMacroInteractionDesignUpdates
34
+ showMacroInteractionDesignUpdates,
35
+ showMacroButtonUpdates
35
36
  } = macroInteractionDesignFeatureFlags || {};
36
37
  const hasBody = ['bodiedExtension', 'multiBodiedExtension'].includes(node.type.name);
37
38
  const isMobile = editorAppearance === 'mobile';
@@ -109,6 +110,7 @@ function ExtensionWithPluginState(props) {
109
110
  isNodeNested: isNodeNested,
110
111
  node: node,
111
112
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
113
+ showMacroButtonUpdates: showMacroButtonUpdates,
112
114
  customContainerStyles: customContainerStyles,
113
115
  setIsNodeHovered: setIsNodeHovered,
114
116
  isBodiedMacro: hasBody
@@ -22,7 +22,8 @@ const InlineExtension = props => {
22
22
  setIsNodeHovered
23
23
  } = props;
24
24
  const {
25
- showMacroInteractionDesignUpdates
25
+ showMacroInteractionDesignUpdates,
26
+ showMacroButtonUpdates
26
27
  } = macroInteractionDesignFeatureFlags || {};
27
28
  const {
28
29
  widthState
@@ -46,6 +47,7 @@ const InlineExtension = props => {
46
47
  isNodeSelected: isNodeSelected,
47
48
  isNodeHovered: isNodeHovered,
48
49
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
50
+ showMacroButtonUpdates: showMacroButtonUpdates,
49
51
  setIsNodeHovered: setIsNodeHovered
50
52
  }), jsx("div", {
51
53
  "data-testid": "inline-extension-wrapper"
@@ -1,33 +1,36 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
1
2
  /** @jsx jsx */
2
- import { useCallback } from 'react';
3
+ import { Fragment } from 'react';
3
4
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
4
5
  import { css, jsx } from '@emotion/react';
5
6
  import classnames from 'classnames';
6
- import { N0, N30, N40, N500 } from '@atlaskit/theme/colors';
7
- const labelStyles = css({
7
+ import { defineMessages, useIntl } from 'react-intl-next';
8
+ import PreferencesIcon from '@atlaskit/icon/glyph/preferences';
9
+ import { N0, N30, N40, N500, N800 } from '@atlaskit/theme/colors';
10
+ import Tooltip from '@atlaskit/tooltip';
11
+ const containerStyles = css({
12
+ textAlign: 'left',
13
+ zIndex: 1,
14
+ position: 'relative',
15
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
16
+ '&.bodied': {
17
+ marginTop: "var(--ds-space-300, 24px)"
18
+ }
19
+ });
20
+ const sharedLabelStyles = css({
8
21
  opacity: 0,
22
+ lineHeight: 1,
9
23
  display: 'inline-flex',
10
- width: 'max-content',
11
24
  justifyContent: 'left',
12
25
  position: 'absolute',
13
- // Unfortunately, these need to be these exact numbers - otherwise there will be a noticeable gap/overlap
26
+ width: 'max-content',
14
27
  // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
15
28
  top: '-19px',
16
29
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
17
- '&.inline': {
18
- // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
19
- top: '-18px',
20
- marginLeft: "var(--ds-space-150, 12px)"
21
- },
22
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
23
30
  '&.show-label': {
24
31
  cursor: 'pointer',
25
- background: `var(--ds-background-accent-gray-subtle-pressed, ${N40})`,
26
- color: `var(--ds-text-subtle, ${N500})`,
27
32
  opacity: 1
28
33
  },
29
- borderRadius: `${"var(--ds-border-radius, 3px)"} ${"var(--ds-border-radius, 3px)"} 0 0`,
30
- lineHeight: 1,
31
34
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
32
35
  '&.nested': {
33
36
  // Need to add indent if the node is nested since we removed previous indentation styles to make it fit properly
@@ -35,26 +38,49 @@ const labelStyles = css({
35
38
  marginLeft: "var(--ds-space-150, 12px)"
36
39
  },
37
40
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
38
- '&.bodied-background': {
39
- background: `var(--ds-surface, ${N0})`
40
- },
41
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
42
- '&.bodied-border': {
43
- boxShadow: `0 0 0 1px ${`var(--ds-border, ${N30})`}`
41
+ '&.inline': {
42
+ marginLeft: "var(--ds-space-150, 12px)",
43
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
44
+ top: '-18px'
44
45
  }
45
46
  });
47
+ const buttonLabelStyles = css({
48
+ alignItems: 'center',
49
+ borderRadius: "var(--ds-border-radius, 3px)",
50
+ paddingLeft: "var(--ds-space-050, 4px)",
51
+ paddingRight: "var(--ds-space-050, 4px)",
52
+ color: `var(--ds-text-subtle, ${N800})`,
53
+ backgroundColor: `var(--ds-background-accent-gray-subtlest, ${N30})`
54
+ });
55
+ const placeholderStyles = css({
56
+ height: "var(--ds-space-150, 12px)"
57
+ });
46
58
  const textStyles = css({
47
59
  fontSize: '14px',
48
60
  fontWeight: 'normal',
49
61
  padding: `${"var(--ds-space-025, 2px)"} ${"var(--ds-space-050, 4px)"}`
50
62
  });
51
- const containerStyles = css({
52
- textAlign: 'left',
53
- zIndex: 1,
54
- position: 'relative',
63
+ const originalLabelStyles = css({
64
+ borderRadius: `${"var(--ds-border-radius, 3px)"} ${"var(--ds-border-radius, 3px)"} 0 0`,
55
65
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
56
- '&.bodied': {
57
- marginTop: "var(--ds-space-300, 24px)"
66
+ '&.show-label': {
67
+ background: `var(--ds-background-accent-gray-subtle-pressed, ${N40})`,
68
+ color: `var(--ds-text-subtle, ${N500})`
69
+ },
70
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
71
+ '&.bodied-background': {
72
+ background: `var(--ds-surface, ${N0})`
73
+ },
74
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
75
+ '&.bodied-border': {
76
+ boxShadow: `0 0 0 1px ${`var(--ds-border, ${N30})`}`
77
+ }
78
+ });
79
+ const i18n = defineMessages({
80
+ configure: {
81
+ id: 'editor-common-extensibility.macro.button.configure',
82
+ defaultMessage: 'Configure',
83
+ description: 'Text in tooltip that tells user they can configure the specific macro.'
58
84
  }
59
85
  });
60
86
  export const ExtensionLabel = ({
@@ -64,8 +90,11 @@ export const ExtensionLabel = ({
64
90
  customContainerStyles,
65
91
  isNodeNested,
66
92
  setIsNodeHovered,
67
- isBodiedMacro
93
+ isBodiedMacro,
94
+ showMacroButtonUpdates
68
95
  }) => {
96
+ const intl = useIntl();
97
+ const tooltipText = `${intl.formatMessage(i18n.configure)} ${text}`;
69
98
  const containerClassNames = classnames({
70
99
  bodied: isBodiedMacro
71
100
  });
@@ -73,20 +102,10 @@ export const ExtensionLabel = ({
73
102
  nested: isNodeNested,
74
103
  inline: extensionName === 'inlineExtension',
75
104
  bodied: isBodiedMacro,
76
- 'bodied-border': isBodiedMacro && !isNodeHovered,
77
- 'bodied-background': isBodiedMacro && !isNodeHovered,
105
+ 'bodied-border': isBodiedMacro && !isNodeHovered && !showMacroButtonUpdates,
106
+ 'bodied-background': isBodiedMacro && !isNodeHovered && !showMacroButtonUpdates,
78
107
  'show-label': isNodeHovered || isBodiedMacro
79
108
  });
80
- const handleMouseEnter = useCallback(() => {
81
- // If current node is hovered and the label is hovered,
82
- // consider the node as hovered so we can display the label for users to click on
83
- if (isNodeHovered) {
84
- setIsNodeHovered === null || setIsNodeHovered === void 0 ? void 0 : setIsNodeHovered(true);
85
- }
86
- }, [isNodeHovered, setIsNodeHovered]);
87
- const handleMouseLeave = useCallback(() => {
88
- setIsNodeHovered === null || setIsNodeHovered === void 0 ? void 0 : setIsNodeHovered(false);
89
- }, [setIsNodeHovered]);
90
109
  return jsx("div", {
91
110
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
92
111
  css: containerStyles
@@ -96,12 +115,33 @@ export const ExtensionLabel = ({
96
115
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
97
116
  ,
98
117
  style: customContainerStyles,
99
- onMouseEnter: handleMouseEnter,
100
- onMouseLeave: handleMouseLeave,
118
+ onMouseOver: () => {
119
+ setIsNodeHovered === null || setIsNodeHovered === void 0 ? void 0 : setIsNodeHovered(true);
120
+ },
121
+ onMouseLeave: () => {
122
+ setIsNodeHovered === null || setIsNodeHovered === void 0 ? void 0 : setIsNodeHovered(false);
123
+ },
101
124
  "data-testid": "new-lozenge-container"
102
- }, jsx("span", {
125
+ }, showMacroButtonUpdates ? jsx(Fragment, null, jsx(Tooltip, {
126
+ content: tooltipText,
127
+ position: "top"
128
+ }, tooltipProps => jsx("span", _extends({
129
+ "data-testid": "new-lozenge-button"
130
+ }, tooltipProps, {
131
+ css: [sharedLabelStyles, buttonLabelStyles]
132
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
133
+ ,
134
+ className: labelClassNames
135
+ }), text, " ", jsx(PreferencesIcon, {
136
+ label: ""
137
+ }))), jsx("div", {
138
+ "data-testid": "placeholder",
139
+ css: placeholderStyles
140
+ })) : jsx("span", {
103
141
  "data-testid": "new-lozenge",
104
- css: labelStyles,
142
+ css: [sharedLabelStyles, originalLabelStyles]
143
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
144
+ ,
105
145
  className: labelClassNames
106
146
  }, jsx("span", {
107
147
  css: textStyles
@@ -16,6 +16,7 @@ export const LozengeComponent = ({
16
16
  params,
17
17
  renderImage,
18
18
  showMacroInteractionDesignUpdates,
19
+ showMacroButtonUpdates,
19
20
  customContainerStyles,
20
21
  isNodeHovered,
21
22
  isNodeNested,
@@ -31,7 +32,8 @@ export const LozengeComponent = ({
31
32
  isNodeNested: isNodeNested,
32
33
  customContainerStyles: customContainerStyles,
33
34
  setIsNodeHovered: setIsNodeHovered,
34
- isBodiedMacro: isBodiedMacro
35
+ isBodiedMacro: isBodiedMacro,
36
+ showMacroButtonUpdates: showMacroButtonUpdates
35
37
  });
36
38
  }
37
39
  const isBlockExtension = extensionName === 'extension';
@@ -29,6 +29,7 @@ export default class ExtensionLozenge extends Component {
29
29
  _defineProperty(this, "renderFallback", lozengeData => {
30
30
  const {
31
31
  showMacroInteractionDesignUpdates,
32
+ showMacroButtonUpdates,
32
33
  isNodeSelected,
33
34
  isNodeHovered,
34
35
  isNodeNested,
@@ -50,6 +51,7 @@ export default class ExtensionLozenge extends Component {
50
51
  isNodeSelected: isNodeSelected,
51
52
  isNodeNested: isNodeNested,
52
53
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
54
+ showMacroButtonUpdates: showMacroButtonUpdates,
53
55
  extensionName: name,
54
56
  lozengeData: lozengeData,
55
57
  params: params,
@@ -76,7 +76,8 @@ const MultiBodiedExtensionWithWidth = ({
76
76
  setIsNodeHovered
77
77
  }) => {
78
78
  const {
79
- showMacroInteractionDesignUpdates
79
+ showMacroInteractionDesignUpdates,
80
+ showMacroButtonUpdates
80
81
  } = macroInteractionDesignFeatureFlags || {};
81
82
  const {
82
83
  parameters,
@@ -152,6 +153,7 @@ const MultiBodiedExtensionWithWidth = ({
152
153
  isNodeSelected: isNodeSelected,
153
154
  node: node,
154
155
  showMacroInteractionDesignUpdates: true,
156
+ showMacroButtonUpdates: showMacroButtonUpdates,
155
157
  customContainerStyles: mbeWrapperStyles,
156
158
  isNodeHovered: isNodeHovered,
157
159
  isNodeNested: isNodeNested,
@@ -1,7 +1,7 @@
1
1
  import { isFedRamp } from './environment';
2
2
  const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
3
3
  const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
4
- const packageVersion = "83.1.0";
4
+ const packageVersion = "83.2.0";
5
5
  const sanitiseSentryEvents = (data, _hint) => {
6
6
  // Remove URL as it has UGC
7
7
  // TODO: Sanitise the URL instead of just removing it
@@ -9,7 +9,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
9
9
  import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
10
10
  import Layer from '../Layer';
11
11
  const packageName = "@atlaskit/editor-common";
12
- const packageVersion = "83.1.0";
12
+ const packageVersion = "83.2.0";
13
13
  const halfFocusRing = 1;
14
14
  const dropOffset = '0, 8';
15
15
  class DropList extends Component {
@@ -35,7 +35,8 @@ function ExtensionWithPluginState(props) {
35
35
  isNodeNested = props.isNodeNested,
36
36
  setIsNodeHovered = props.setIsNodeHovered;
37
37
  var _ref = macroInteractionDesignFeatureFlags || {},
38
- showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates;
38
+ showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates,
39
+ showMacroButtonUpdates = _ref.showMacroButtonUpdates;
39
40
  var hasBody = ['bodiedExtension', 'multiBodiedExtension'].includes(node.type.name);
40
41
  var isMobile = editorAppearance === 'mobile';
41
42
  var hasChildren = !!children;
@@ -103,6 +104,7 @@ function ExtensionWithPluginState(props) {
103
104
  isNodeNested: isNodeNested,
104
105
  node: node,
105
106
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
107
+ showMacroButtonUpdates: showMacroButtonUpdates,
106
108
  customContainerStyles: customContainerStyles,
107
109
  setIsNodeHovered: setIsNodeHovered,
108
110
  isBodiedMacro: hasBody
@@ -20,7 +20,8 @@ var InlineExtension = function InlineExtension(props) {
20
20
  isNodeHovered = props.isNodeHovered,
21
21
  setIsNodeHovered = props.setIsNodeHovered;
22
22
  var _ref = macroInteractionDesignFeatureFlags || {},
23
- showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates;
23
+ showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates,
24
+ showMacroButtonUpdates = _ref.showMacroButtonUpdates;
24
25
  var _useSharedPluginState = useSharedPluginState(pluginInjectionApi, ['width']),
25
26
  widthState = _useSharedPluginState.widthState;
26
27
  var hasChildren = !!children;
@@ -42,6 +43,7 @@ var InlineExtension = function InlineExtension(props) {
42
43
  isNodeSelected: isNodeSelected,
43
44
  isNodeHovered: isNodeHovered,
44
45
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
46
+ showMacroButtonUpdates: showMacroButtonUpdates,
45
47
  setIsNodeHovered: setIsNodeHovered
46
48
  }), jsx("div", {
47
49
  "data-testid": "inline-extension-wrapper"
@@ -1,33 +1,36 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
1
2
  /** @jsx jsx */
2
- import { useCallback } from 'react';
3
+ import { Fragment } from 'react';
3
4
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
4
5
  import { css, jsx } from '@emotion/react';
5
6
  import classnames from 'classnames';
6
- import { N0, N30, N40, N500 } from '@atlaskit/theme/colors';
7
- var labelStyles = css({
7
+ import { defineMessages, useIntl } from 'react-intl-next';
8
+ import PreferencesIcon from '@atlaskit/icon/glyph/preferences';
9
+ import { N0, N30, N40, N500, N800 } from '@atlaskit/theme/colors';
10
+ import Tooltip from '@atlaskit/tooltip';
11
+ var containerStyles = css({
12
+ textAlign: 'left',
13
+ zIndex: 1,
14
+ position: 'relative',
15
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
16
+ '&.bodied': {
17
+ marginTop: "var(--ds-space-300, 24px)"
18
+ }
19
+ });
20
+ var sharedLabelStyles = css({
8
21
  opacity: 0,
22
+ lineHeight: 1,
9
23
  display: 'inline-flex',
10
- width: 'max-content',
11
24
  justifyContent: 'left',
12
25
  position: 'absolute',
13
- // Unfortunately, these need to be these exact numbers - otherwise there will be a noticeable gap/overlap
26
+ width: 'max-content',
14
27
  // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
15
28
  top: '-19px',
16
29
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
17
- '&.inline': {
18
- // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
19
- top: '-18px',
20
- marginLeft: "var(--ds-space-150, 12px)"
21
- },
22
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
23
30
  '&.show-label': {
24
31
  cursor: 'pointer',
25
- background: "var(--ds-background-accent-gray-subtle-pressed, ".concat(N40, ")"),
26
- color: "var(--ds-text-subtle, ".concat(N500, ")"),
27
32
  opacity: 1
28
33
  },
29
- borderRadius: "var(--ds-border-radius, 3px)".concat(" ", "var(--ds-border-radius, 3px)", " 0 0"),
30
- lineHeight: 1,
31
34
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
32
35
  '&.nested': {
33
36
  // Need to add indent if the node is nested since we removed previous indentation styles to make it fit properly
@@ -35,26 +38,49 @@ var labelStyles = css({
35
38
  marginLeft: "var(--ds-space-150, 12px)"
36
39
  },
37
40
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
38
- '&.bodied-background': {
39
- background: "var(--ds-surface, ".concat(N0, ")")
40
- },
41
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
42
- '&.bodied-border': {
43
- boxShadow: "0 0 0 1px ".concat("var(--ds-border, ".concat(N30, ")"))
41
+ '&.inline': {
42
+ marginLeft: "var(--ds-space-150, 12px)",
43
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
44
+ top: '-18px'
44
45
  }
45
46
  });
47
+ var buttonLabelStyles = css({
48
+ alignItems: 'center',
49
+ borderRadius: "var(--ds-border-radius, 3px)",
50
+ paddingLeft: "var(--ds-space-050, 4px)",
51
+ paddingRight: "var(--ds-space-050, 4px)",
52
+ color: "var(--ds-text-subtle, ".concat(N800, ")"),
53
+ backgroundColor: "var(--ds-background-accent-gray-subtlest, ".concat(N30, ")")
54
+ });
55
+ var placeholderStyles = css({
56
+ height: "var(--ds-space-150, 12px)"
57
+ });
46
58
  var textStyles = css({
47
59
  fontSize: '14px',
48
60
  fontWeight: 'normal',
49
61
  padding: "var(--ds-space-025, 2px)".concat(" ", "var(--ds-space-050, 4px)")
50
62
  });
51
- var containerStyles = css({
52
- textAlign: 'left',
53
- zIndex: 1,
54
- position: 'relative',
63
+ var originalLabelStyles = css({
64
+ borderRadius: "var(--ds-border-radius, 3px)".concat(" ", "var(--ds-border-radius, 3px)", " 0 0"),
55
65
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
56
- '&.bodied': {
57
- marginTop: "var(--ds-space-300, 24px)"
66
+ '&.show-label': {
67
+ background: "var(--ds-background-accent-gray-subtle-pressed, ".concat(N40, ")"),
68
+ color: "var(--ds-text-subtle, ".concat(N500, ")")
69
+ },
70
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
71
+ '&.bodied-background': {
72
+ background: "var(--ds-surface, ".concat(N0, ")")
73
+ },
74
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
75
+ '&.bodied-border': {
76
+ boxShadow: "0 0 0 1px ".concat("var(--ds-border, ".concat(N30, ")"))
77
+ }
78
+ });
79
+ var i18n = defineMessages({
80
+ configure: {
81
+ id: 'editor-common-extensibility.macro.button.configure',
82
+ defaultMessage: 'Configure',
83
+ description: 'Text in tooltip that tells user they can configure the specific macro.'
58
84
  }
59
85
  });
60
86
  export var ExtensionLabel = function ExtensionLabel(_ref) {
@@ -64,7 +90,10 @@ export var ExtensionLabel = function ExtensionLabel(_ref) {
64
90
  customContainerStyles = _ref.customContainerStyles,
65
91
  isNodeNested = _ref.isNodeNested,
66
92
  setIsNodeHovered = _ref.setIsNodeHovered,
67
- isBodiedMacro = _ref.isBodiedMacro;
93
+ isBodiedMacro = _ref.isBodiedMacro,
94
+ showMacroButtonUpdates = _ref.showMacroButtonUpdates;
95
+ var intl = useIntl();
96
+ var tooltipText = "".concat(intl.formatMessage(i18n.configure), " ").concat(text);
68
97
  var containerClassNames = classnames({
69
98
  bodied: isBodiedMacro
70
99
  });
@@ -72,20 +101,10 @@ export var ExtensionLabel = function ExtensionLabel(_ref) {
72
101
  nested: isNodeNested,
73
102
  inline: extensionName === 'inlineExtension',
74
103
  bodied: isBodiedMacro,
75
- 'bodied-border': isBodiedMacro && !isNodeHovered,
76
- 'bodied-background': isBodiedMacro && !isNodeHovered,
104
+ 'bodied-border': isBodiedMacro && !isNodeHovered && !showMacroButtonUpdates,
105
+ 'bodied-background': isBodiedMacro && !isNodeHovered && !showMacroButtonUpdates,
77
106
  'show-label': isNodeHovered || isBodiedMacro
78
107
  });
79
- var handleMouseEnter = useCallback(function () {
80
- // If current node is hovered and the label is hovered,
81
- // consider the node as hovered so we can display the label for users to click on
82
- if (isNodeHovered) {
83
- setIsNodeHovered === null || setIsNodeHovered === void 0 || setIsNodeHovered(true);
84
- }
85
- }, [isNodeHovered, setIsNodeHovered]);
86
- var handleMouseLeave = useCallback(function () {
87
- setIsNodeHovered === null || setIsNodeHovered === void 0 || setIsNodeHovered(false);
88
- }, [setIsNodeHovered]);
89
108
  return jsx("div", {
90
109
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
91
110
  css: containerStyles
@@ -95,12 +114,35 @@ export var ExtensionLabel = function ExtensionLabel(_ref) {
95
114
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
96
115
  ,
97
116
  style: customContainerStyles,
98
- onMouseEnter: handleMouseEnter,
99
- onMouseLeave: handleMouseLeave,
117
+ onMouseOver: function onMouseOver() {
118
+ setIsNodeHovered === null || setIsNodeHovered === void 0 || setIsNodeHovered(true);
119
+ },
120
+ onMouseLeave: function onMouseLeave() {
121
+ setIsNodeHovered === null || setIsNodeHovered === void 0 || setIsNodeHovered(false);
122
+ },
100
123
  "data-testid": "new-lozenge-container"
101
- }, jsx("span", {
124
+ }, showMacroButtonUpdates ? jsx(Fragment, null, jsx(Tooltip, {
125
+ content: tooltipText,
126
+ position: "top"
127
+ }, function (tooltipProps) {
128
+ return jsx("span", _extends({
129
+ "data-testid": "new-lozenge-button"
130
+ }, tooltipProps, {
131
+ css: [sharedLabelStyles, buttonLabelStyles]
132
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
133
+ ,
134
+ className: labelClassNames
135
+ }), text, " ", jsx(PreferencesIcon, {
136
+ label: ""
137
+ }));
138
+ }), jsx("div", {
139
+ "data-testid": "placeholder",
140
+ css: placeholderStyles
141
+ })) : jsx("span", {
102
142
  "data-testid": "new-lozenge",
103
- css: labelStyles,
143
+ css: [sharedLabelStyles, originalLabelStyles]
144
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
145
+ ,
104
146
  className: labelClassNames
105
147
  }, jsx("span", {
106
148
  css: textStyles
@@ -19,6 +19,7 @@ export var LozengeComponent = function LozengeComponent(_ref) {
19
19
  params = _ref.params,
20
20
  renderImage = _ref.renderImage,
21
21
  showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates,
22
+ showMacroButtonUpdates = _ref.showMacroButtonUpdates,
22
23
  customContainerStyles = _ref.customContainerStyles,
23
24
  isNodeHovered = _ref.isNodeHovered,
24
25
  isNodeNested = _ref.isNodeNested,
@@ -33,7 +34,8 @@ export var LozengeComponent = function LozengeComponent(_ref) {
33
34
  isNodeNested: isNodeNested,
34
35
  customContainerStyles: customContainerStyles,
35
36
  setIsNodeHovered: setIsNodeHovered,
36
- isBodiedMacro: isBodiedMacro
37
+ isBodiedMacro: isBodiedMacro,
38
+ showMacroButtonUpdates: showMacroButtonUpdates
37
39
  });
38
40
  }
39
41
  var isBlockExtension = extensionName === 'extension';
@@ -42,6 +42,7 @@ var ExtensionLozenge = /*#__PURE__*/function (_Component) {
42
42
  _defineProperty(_assertThisInitialized(_this), "renderFallback", function (lozengeData) {
43
43
  var _this$props = _this.props,
44
44
  showMacroInteractionDesignUpdates = _this$props.showMacroInteractionDesignUpdates,
45
+ showMacroButtonUpdates = _this$props.showMacroButtonUpdates,
45
46
  isNodeSelected = _this$props.isNodeSelected,
46
47
  isNodeHovered = _this$props.isNodeHovered,
47
48
  isNodeNested = _this$props.isNodeNested,
@@ -59,6 +60,7 @@ var ExtensionLozenge = /*#__PURE__*/function (_Component) {
59
60
  isNodeSelected: isNodeSelected,
60
61
  isNodeNested: isNodeNested,
61
62
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
63
+ showMacroButtonUpdates: showMacroButtonUpdates,
62
64
  extensionName: name,
63
65
  lozengeData: lozengeData,
64
66
  params: params,
@@ -78,7 +78,8 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref)
78
78
  isNodeNested = _ref.isNodeNested,
79
79
  setIsNodeHovered = _ref.setIsNodeHovered;
80
80
  var _ref2 = macroInteractionDesignFeatureFlags || {},
81
- showMacroInteractionDesignUpdates = _ref2.showMacroInteractionDesignUpdates;
81
+ showMacroInteractionDesignUpdates = _ref2.showMacroInteractionDesignUpdates,
82
+ showMacroButtonUpdates = _ref2.showMacroButtonUpdates;
82
83
  var _node$attrs = node.attrs,
83
84
  parameters = _node$attrs.parameters,
84
85
  extensionKey = _node$attrs.extensionKey;
@@ -154,6 +155,7 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref)
154
155
  isNodeSelected: isNodeSelected,
155
156
  node: node,
156
157
  showMacroInteractionDesignUpdates: true,
158
+ showMacroButtonUpdates: showMacroButtonUpdates,
157
159
  customContainerStyles: mbeWrapperStyles,
158
160
  isNodeHovered: isNodeHovered,
159
161
  isNodeNested: isNodeNested,
@@ -7,7 +7,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
7
7
  import { isFedRamp } from './environment';
8
8
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
9
9
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
10
- var packageVersion = "83.1.0";
10
+ var packageVersion = "83.2.0";
11
11
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
12
12
  // Remove URL as it has UGC
13
13
  // TODO: Sanitise the URL instead of just removing it
@@ -17,7 +17,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
17
17
  import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
18
18
  import Layer from '../Layer';
19
19
  var packageName = "@atlaskit/editor-common";
20
- var packageVersion = "83.1.0";
20
+ var packageVersion = "83.2.0";
21
21
  var halfFocusRing = 1;
22
22
  var dropOffset = '0, 8';
23
23
  var DropList = /*#__PURE__*/function (_Component) {
@@ -8,6 +8,7 @@ type ExtensionLabelProps = {
8
8
  customContainerStyles?: CSSProperties;
9
9
  setIsNodeHovered?: (isHovered: boolean) => void;
10
10
  isBodiedMacro?: boolean;
11
+ showMacroButtonUpdates?: boolean;
11
12
  };
12
- export declare const ExtensionLabel: ({ text, extensionName, isNodeHovered, customContainerStyles, isNodeNested, setIsNodeHovered, isBodiedMacro, }: ExtensionLabelProps) => jsx.JSX.Element;
13
+ export declare const ExtensionLabel: ({ text, extensionName, isNodeHovered, customContainerStyles, isNodeNested, setIsNodeHovered, isBodiedMacro, showMacroButtonUpdates, }: ExtensionLabelProps) => jsx.JSX.Element;
13
14
  export {};
@@ -11,11 +11,12 @@ type LozengeComponentProps = {
11
11
  renderImage: (lozengeData: LozengeData) => void;
12
12
  isNodeSelected?: boolean;
13
13
  showMacroInteractionDesignUpdates?: boolean;
14
+ showMacroButtonUpdates?: boolean;
14
15
  customContainerStyles?: CSSProperties;
15
16
  isNodeHovered?: boolean;
16
17
  isNodeNested?: boolean;
17
18
  setIsNodeHovered?: (isHovered: boolean) => void;
18
19
  isBodiedMacro?: boolean;
19
20
  };
20
- export declare const LozengeComponent: ({ lozengeData, extensionName, title, params, renderImage, showMacroInteractionDesignUpdates, customContainerStyles, isNodeHovered, isNodeNested, setIsNodeHovered, isBodiedMacro, }: LozengeComponentProps) => jsx.JSX.Element;
21
+ export declare const LozengeComponent: ({ lozengeData, extensionName, title, params, renderImage, showMacroInteractionDesignUpdates, showMacroButtonUpdates, customContainerStyles, isNodeHovered, isNodeNested, setIsNodeHovered, isBodiedMacro, }: LozengeComponentProps) => jsx.JSX.Element;
21
22
  export {};
@@ -6,6 +6,7 @@ import type { Node as PmNode } from '@atlaskit/editor-prosemirror/model';
6
6
  export interface Props {
7
7
  node: PmNode;
8
8
  showMacroInteractionDesignUpdates?: boolean;
9
+ showMacroButtonUpdates?: boolean;
9
10
  isNodeSelected?: boolean;
10
11
  isNodeHovered?: boolean;
11
12
  isNodeNested?: boolean;
@@ -8,6 +8,7 @@ type ExtensionLabelProps = {
8
8
  customContainerStyles?: CSSProperties;
9
9
  setIsNodeHovered?: (isHovered: boolean) => void;
10
10
  isBodiedMacro?: boolean;
11
+ showMacroButtonUpdates?: boolean;
11
12
  };
12
- export declare const ExtensionLabel: ({ text, extensionName, isNodeHovered, customContainerStyles, isNodeNested, setIsNodeHovered, isBodiedMacro, }: ExtensionLabelProps) => jsx.JSX.Element;
13
+ export declare const ExtensionLabel: ({ text, extensionName, isNodeHovered, customContainerStyles, isNodeNested, setIsNodeHovered, isBodiedMacro, showMacroButtonUpdates, }: ExtensionLabelProps) => jsx.JSX.Element;
13
14
  export {};
@@ -11,11 +11,12 @@ type LozengeComponentProps = {
11
11
  renderImage: (lozengeData: LozengeData) => void;
12
12
  isNodeSelected?: boolean;
13
13
  showMacroInteractionDesignUpdates?: boolean;
14
+ showMacroButtonUpdates?: boolean;
14
15
  customContainerStyles?: CSSProperties;
15
16
  isNodeHovered?: boolean;
16
17
  isNodeNested?: boolean;
17
18
  setIsNodeHovered?: (isHovered: boolean) => void;
18
19
  isBodiedMacro?: boolean;
19
20
  };
20
- export declare const LozengeComponent: ({ lozengeData, extensionName, title, params, renderImage, showMacroInteractionDesignUpdates, customContainerStyles, isNodeHovered, isNodeNested, setIsNodeHovered, isBodiedMacro, }: LozengeComponentProps) => jsx.JSX.Element;
21
+ export declare const LozengeComponent: ({ lozengeData, extensionName, title, params, renderImage, showMacroInteractionDesignUpdates, showMacroButtonUpdates, customContainerStyles, isNodeHovered, isNodeNested, setIsNodeHovered, isBodiedMacro, }: LozengeComponentProps) => jsx.JSX.Element;
21
22
  export {};
@@ -6,6 +6,7 @@ import type { Node as PmNode } from '@atlaskit/editor-prosemirror/model';
6
6
  export interface Props {
7
7
  node: PmNode;
8
8
  showMacroInteractionDesignUpdates?: boolean;
9
+ showMacroButtonUpdates?: boolean;
9
10
  isNodeSelected?: boolean;
10
11
  isNodeHovered?: boolean;
11
12
  isNodeNested?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "83.1.0",
3
+ "version": "83.2.0",
4
4
  "description": "A package that contains common classes and components for editor and renderer",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"