@atlaskit/editor-common 78.13.0 → 78.14.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 (41) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/extensibility/Extension/InlineExtension/index.js +26 -5
  3. package/dist/cjs/extensibility/Extension/Lozenge.js +5 -4
  4. package/dist/cjs/extensibility/Extension/LozengeComponent.js +6 -4
  5. package/dist/cjs/extensibility/Extension/styles.js +5 -8
  6. package/dist/cjs/extensibility/ExtensionComponent.js +3 -1
  7. package/dist/cjs/extensibility/ExtensionNodeWrapper.js +23 -2
  8. package/dist/cjs/extensibility/extensionNodeView.js +2 -1
  9. package/dist/cjs/monitoring/error.js +1 -1
  10. package/dist/cjs/styles/shared/annotation.js +28 -1
  11. package/dist/cjs/styles/shared/smartCard.js +2 -1
  12. package/dist/cjs/ui/DropList/index.js +1 -1
  13. package/dist/es2019/extensibility/Extension/InlineExtension/index.js +19 -5
  14. package/dist/es2019/extensibility/Extension/Lozenge.js +4 -4
  15. package/dist/es2019/extensibility/Extension/LozengeComponent.js +6 -4
  16. package/dist/es2019/extensibility/Extension/styles.js +5 -8
  17. package/dist/es2019/extensibility/ExtensionComponent.js +3 -1
  18. package/dist/es2019/extensibility/ExtensionNodeWrapper.js +24 -2
  19. package/dist/es2019/extensibility/extensionNodeView.js +2 -1
  20. package/dist/es2019/monitoring/error.js +1 -1
  21. package/dist/es2019/styles/shared/annotation.js +29 -2
  22. package/dist/es2019/styles/shared/smartCard.js +7 -1
  23. package/dist/es2019/ui/DropList/index.js +1 -1
  24. package/dist/esm/extensibility/Extension/InlineExtension/index.js +23 -5
  25. package/dist/esm/extensibility/Extension/Lozenge.js +5 -4
  26. package/dist/esm/extensibility/Extension/LozengeComponent.js +6 -4
  27. package/dist/esm/extensibility/Extension/styles.js +5 -8
  28. package/dist/esm/extensibility/ExtensionComponent.js +3 -1
  29. package/dist/esm/extensibility/ExtensionNodeWrapper.js +22 -2
  30. package/dist/esm/extensibility/extensionNodeView.js +2 -1
  31. package/dist/esm/monitoring/error.js +1 -1
  32. package/dist/esm/styles/shared/annotation.js +28 -1
  33. package/dist/esm/styles/shared/smartCard.js +3 -1
  34. package/dist/esm/ui/DropList/index.js +1 -1
  35. package/dist/types/extensibility/Extension/InlineExtension/index.d.ts +2 -0
  36. package/dist/types/extensibility/Extension/LozengeComponent.d.ts +2 -2
  37. package/dist/types/extensibility/ExtensionNodeWrapper.d.ts +5 -1
  38. package/dist/types-ts4.5/extensibility/Extension/InlineExtension/index.d.ts +2 -0
  39. package/dist/types-ts4.5/extensibility/Extension/LozengeComponent.d.ts +2 -2
  40. package/dist/types-ts4.5/extensibility/ExtensionNodeWrapper.d.ts +5 -1
  41. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 78.14.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#80901](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/80901) [`dca34a53d8ff`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/dca34a53d8ff) - [ux] Adds back lozenges to inline macros for visual update project and updates some styles/tests
8
+
9
+ ## 78.13.1
10
+
11
+ ### Patch Changes
12
+
13
+ - [#81133](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/81133) [`ad1f563ea96b`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/ad1f563ea96b) - [ux] ED-22503 Styling for annotations on the inline card for edit and render view
14
+
3
15
  ## 78.13.0
4
16
 
5
17
  ### Minor Changes
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
+ var _react = _interopRequireWildcard(require("react"));
9
10
  var _react2 = require("@emotion/react");
10
11
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
11
12
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
@@ -14,6 +15,8 @@ var _ui = require("../../../ui");
14
15
  var _Lozenge = _interopRequireDefault(require("../Lozenge"));
15
16
  var _styles = require("../styles");
16
17
  var _styles2 = require("./styles");
18
+ 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); }
19
+ 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; }
17
20
  /** @jsx jsx */
18
21
 
19
22
  var InlineExtension = function InlineExtension(props) {
@@ -21,16 +24,34 @@ var InlineExtension = function InlineExtension(props) {
21
24
  pluginInjectionApi = props.pluginInjectionApi,
22
25
  showMacroInteractionDesignUpdates = props.showMacroInteractionDesignUpdates,
23
26
  isNodeSelected = props.isNodeSelected,
24
- children = props.children;
27
+ children = props.children,
28
+ isNodeHovered = props.isNodeHovered,
29
+ setIsNodeHovered = props.setIsNodeHovered;
25
30
  var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['width']),
26
31
  widthState = _useSharedPluginState.widthState;
27
32
  var hasChildren = !!children;
28
33
  var className = hasChildren ? 'with-overlay with-children' : 'with-overlay';
29
34
  var rendererContainerWidth = widthState ? widthState.width - _editorSharedStyles.akEditorGutterPadding * 2 : 0;
30
35
  var extendedInlineExtension = (0, _platformFeatureFlags.getBooleanFF)('platform.editor.inline_extension.extended_lcqdn') || false;
31
- var inlineExtensionInternal = (0, _react2.jsx)("div", {
36
+ var handleMouseEvent = function handleMouseEvent(didHover) {
37
+ if (setIsNodeHovered) {
38
+ setIsNodeHovered(didHover);
39
+ }
40
+ };
41
+ var inlineExtensionInternal = (0, _react2.jsx)(_react.Fragment, null, showMacroInteractionDesignUpdates && (0, _react2.jsx)(_Lozenge.default, {
42
+ node: node,
43
+ isNodeSelected: isNodeSelected,
44
+ isNodeHovered: isNodeHovered,
45
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
46
+ }), (0, _react2.jsx)("div", {
32
47
  css: [_styles2.wrapperStyle, extendedInlineExtension && _styles2.inlineWrapperStyels],
33
- className: "extension-container inline ".concat(className)
48
+ className: "extension-container inline ".concat(className),
49
+ onMouseOver: function onMouseOver() {
50
+ return handleMouseEvent(true);
51
+ },
52
+ onMouseLeave: function onMouseLeave() {
53
+ return handleMouseEvent(false);
54
+ }
34
55
  }, (0, _react2.jsx)("div", {
35
56
  css: _styles.overlay,
36
57
  className: "extension-overlay"
@@ -38,7 +59,7 @@ var InlineExtension = function InlineExtension(props) {
38
59
  node: node,
39
60
  isNodeSelected: isNodeSelected,
40
61
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
41
- }));
62
+ })));
42
63
  if (extendedInlineExtension) {
43
64
  return (0, _react2.jsx)(_ui.WidthContext.Provider, {
44
65
  value: (0, _ui.createWidthContext)(rendererContainerWidth)
@@ -55,12 +55,11 @@ var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
55
55
  var name = _this.props.node.type.name;
56
56
  var params = parameters && parameters.macroParams;
57
57
  var title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
58
- var isBlockExtension = name === 'extension';
59
58
  return (0, _react2.jsx)(_LozengeComponent.LozengeComponent, {
60
59
  isNodeHovered: isNodeHovered,
61
60
  isNodeSelected: isNodeSelected,
62
61
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
63
- isBlockExtension: isBlockExtension,
62
+ extensionName: name,
64
63
  lozengeData: lozengeData,
65
64
  params: params,
66
65
  title: title,
@@ -73,12 +72,14 @@ var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
73
72
  (0, _createClass2.default)(ExtensionLozenge, [{
74
73
  key: "render",
75
74
  value: function render() {
76
- var node = this.props.node;
75
+ var _this$props2 = this.props,
76
+ node = _this$props2.node,
77
+ showMacroInteractionDesignUpdates = _this$props2.showMacroInteractionDesignUpdates;
77
78
  var imageData = (0, _utils.getExtensionLozengeData)({
78
79
  node: node,
79
80
  type: 'image'
80
81
  });
81
- if (imageData && node.type.name !== 'extension') {
82
+ if (!showMacroInteractionDesignUpdates && imageData && node.type.name !== 'extension') {
82
83
  return this.renderImage(imageData);
83
84
  }
84
85
  var iconData = (0, _utils.getExtensionLozengeData)({
@@ -19,7 +19,7 @@ var capitalizeFirstLetter = function capitalizeFirstLetter(str) {
19
19
  };
20
20
  var LozengeComponent = exports.LozengeComponent = function LozengeComponent(_ref) {
21
21
  var lozengeData = _ref.lozengeData,
22
- isBlockExtension = _ref.isBlockExtension,
22
+ extensionName = _ref.extensionName,
23
23
  title = _ref.title,
24
24
  params = _ref.params,
25
25
  renderImage = _ref.renderImage,
@@ -28,9 +28,9 @@ var LozengeComponent = exports.LozengeComponent = function LozengeComponent(_ref
28
28
  customContainerStyles = _ref.customContainerStyles,
29
29
  isNodeHovered = _ref.isNodeHovered;
30
30
  var capitalizedTitle = capitalizeFirstLetter(title);
31
- if (showMacroInteractionDesignUpdates) {
31
+ if (showMacroInteractionDesignUpdates && (isNodeHovered || isNodeSelected)) {
32
32
  var lozengeClassNames = (0, _classnames.default)('extension-title', {
33
- 'show-lozenge': isNodeHovered || isNodeSelected
33
+ 'inline-extension': extensionName === 'inlineExtension'
34
34
  });
35
35
  return (0, _react.jsx)("div", {
36
36
  className: lozengeClassNames,
@@ -41,7 +41,8 @@ var LozengeComponent = exports.LozengeComponent = function LozengeComponent(_ref
41
41
  text: capitalizedTitle,
42
42
  color: isNodeSelected ? 'blueLight' : 'greyLight'
43
43
  }));
44
- } else {
44
+ } else if (!showMacroInteractionDesignUpdates) {
45
+ var isBlockExtension = extensionName === 'extension';
45
46
  return (0, _react.jsx)("div", {
46
47
  "data-testid": "lozenge-fallback",
47
48
  css: _styles.placeholderFallback
@@ -58,4 +59,5 @@ var LozengeComponent = exports.LozengeComponent = function LozengeComponent(_ref
58
59
  return key && " | ".concat(key, " = ").concat(params[key].value);
59
60
  })));
60
61
  }
62
+ return null;
61
63
  };
@@ -78,14 +78,11 @@ var lozengeWrapper = exports.lozengeWrapper = (0, _react.css)({
78
78
  display: 'flex',
79
79
  justifyContent: 'left',
80
80
  width: '100%',
81
- /* -0.75rem neutralizes the margin top coming from extensionView-content-wrap.
82
- The lozenge takes up space so we don't need the extra padding anymore. */
83
- marginTop: "var(--ds-space-negative-150, -0.75rem)",
84
81
  marginLeft: "var(--ds-space-050, 4px)",
85
- marginBottom: "var(--ds-space-negative-050, -4px)",
86
- // Using opacity so that lozenge takes up space and doesn't cause shift on render
87
- opacity: '0',
88
- '&.show-lozenge': {
89
- opacity: '1'
82
+ position: 'absolute',
83
+ top: "var(--ds-space-negative-300, -24px)",
84
+ '&.inline-extension': {
85
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
86
+ top: '-23px' // Unfortunately, this needs to be this exact number - otherwise there will be a gap/noticeable overlap
90
87
  }
91
88
  });
@@ -243,7 +243,9 @@ var ExtensionComponent = exports.ExtensionComponent = /*#__PURE__*/function (_Co
243
243
  node: node,
244
244
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
245
245
  isNodeSelected: selectedNode === node,
246
- pluginInjectionApi: pluginInjectionApi
246
+ pluginInjectionApi: pluginInjectionApi,
247
+ isNodeHovered: this.state.isNodeHovered,
248
+ setIsNodeHovered: this.setIsNodeHovered
247
249
  }, extensionHandlerResult);
248
250
  default:
249
251
  return null;
@@ -6,9 +6,22 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.ExtensionNodeWrapper = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
+ var _react2 = require("@emotion/react");
10
+ var _classnames = _interopRequireDefault(require("classnames"));
9
11
  var _utils = require("../utils");
12
+ /** @jsx jsx */
13
+
14
+ var styles = (0, _react2.css)({
15
+ '&.inline-extension': {
16
+ display: 'inline-block'
17
+ },
18
+ '&.relative': {
19
+ position: 'relative'
20
+ }
21
+ });
10
22
  /**
11
23
  * If inlineExtension, add zero width space to the end of the nodes and wrap with span;
24
+ * Also if showMacroInteractionDesignUpdates is true, then add the inline-block style to account for the lozenge.
12
25
  * else wrap with a div (for multi bodied extensions)
13
26
  *
14
27
  * @param param0
@@ -16,6 +29,14 @@ var _utils = require("../utils");
16
29
  */
17
30
  var ExtensionNodeWrapper = exports.ExtensionNodeWrapper = function ExtensionNodeWrapper(_ref) {
18
31
  var children = _ref.children,
19
- nodeType = _ref.nodeType;
20
- return /*#__PURE__*/_react.default.createElement("span", null, children, nodeType === 'inlineExtension' && _utils.ZERO_WIDTH_SPACE);
32
+ nodeType = _ref.nodeType,
33
+ showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates;
34
+ var wrapperClassNames = (0, _classnames.default)({
35
+ 'inline-extension': nodeType === 'inlineExtension' && showMacroInteractionDesignUpdates,
36
+ relative: showMacroInteractionDesignUpdates
37
+ });
38
+ return (0, _react2.jsx)("span", {
39
+ className: wrapperClassNames,
40
+ css: styles
41
+ }, children, nodeType === 'inlineExtension' && _utils.ZERO_WIDTH_SPACE);
21
42
  };
@@ -55,7 +55,8 @@ var ExtensionNode = exports.ExtensionNode = /*#__PURE__*/function (_ReactNodeVie
55
55
  value: function render(props, forwardRef) {
56
56
  var _props$extensionNodeV;
57
57
  return /*#__PURE__*/_react.default.createElement(_ExtensionNodeWrapper.ExtensionNodeWrapper, {
58
- nodeType: this.node.type.name
58
+ nodeType: this.node.type.name,
59
+ showMacroInteractionDesignUpdates: props.showMacroInteractionDesignUpdates
59
60
  }, /*#__PURE__*/_react.default.createElement(_Extension.Extension, {
60
61
  editorView: this.view,
61
62
  node: this.node,
@@ -16,7 +16,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
16
16
  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; }
17
17
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
18
18
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
19
- var packageVersion = "78.13.0";
19
+ var packageVersion = "78.14.0";
20
20
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
21
21
  // Remove URL as it has UGC
22
22
  // TODO: Sanitise the URL instead of just removing it
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.blockAnnotationPrefix = exports.annotationSharedStyles = exports.annotationPrefix = exports.BlockAnnotationSharedClassNames = exports.AnnotationSharedClassNames = exports.AnnotationSharedCSSByState = void 0;
8
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
9
  var _react = require("@emotion/react");
10
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
10
11
  var _colors = require("@atlaskit/theme/colors");
11
12
  var _styles = require("../../media/styles");
12
13
  var _templateObject;
@@ -26,7 +27,33 @@ var mediaNodeDomRef = 'mediaView-content-wrap';
26
27
  var Y75a = 'rgba(255, 240, 179, 0.5)';
27
28
  var Y200a = 'rgba(255, 196, 0, 0.82)';
28
29
  var AnnotationSharedCSSByState = exports.AnnotationSharedCSSByState = function AnnotationSharedCSSByState() {
29
- return {
30
+ return (0, _platformFeatureFlags.getBooleanFF)('platform.editor.allow-inline-comments-for-inline-nodes') ? {
31
+ focus: (0, _react.css)({
32
+ background: "var(--ds-background-accent-yellow-subtler, ".concat(_colors.Y75, ")"),
33
+ borderBottom: "2px solid ".concat("var(--ds-border-accent-yellow, ".concat(_colors.Y300, ")")),
34
+ boxShadow: "var(--ds-shadow-overlay, ".concat("1px 2px 3px ".concat(_colors.N60A, ", -1px 2px 3px ").concat(_colors.N60A), ")"),
35
+ cursor: 'pointer',
36
+ '&:has(.card)': {
37
+ fontSize: '1.5rem',
38
+ lineHeight: '1.2rem',
39
+ '& > *': {
40
+ fontSize: '16px'
41
+ }
42
+ }
43
+ }),
44
+ blur: (0, _react.css)({
45
+ background: "var(--ds-background-accent-yellow-subtlest, ".concat(Y75a, ")"),
46
+ borderBottom: "2px solid ".concat("var(--ds-border-accent-yellow, ".concat(Y200a, ")")),
47
+ cursor: 'pointer',
48
+ '&:has(.card)': {
49
+ fontSize: '1.5rem',
50
+ lineHeight: '1.2rem',
51
+ '& > *': {
52
+ fontSize: '16px'
53
+ }
54
+ }
55
+ })
56
+ } : {
30
57
  focus: (0, _react.css)({
31
58
  // Background is not coming through in confluence, suspecting to be caused by some specific combination of
32
59
  // emotion and token look up
@@ -8,6 +8,7 @@ exports.smartCardStyles = exports.FLOATING_TOOLBAR_LINKPICKER_CLASSNAME = export
8
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
9
  var _react = require("@emotion/react");
10
10
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
11
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
11
12
  var _colors = require("@atlaskit/theme/colors");
12
13
  var _smartCard = require("./smart-card");
13
14
  var _templateObject;
@@ -15,4 +16,4 @@ var DATASOURCE_INNER_CONTAINER_CLASSNAME = exports.DATASOURCE_INNER_CONTAINER_CL
15
16
  var FLOATING_TOOLBAR_LINKPICKER_CLASSNAME = exports.FLOATING_TOOLBAR_LINKPICKER_CLASSNAME = 'card-floating-toolbar--link-picker';
16
17
 
17
18
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- Seems safe to autofix with a fix to `getSelectionStyles`
18
- var smartCardStyles = exports.smartCardStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n .", " {\n max-width: calc(100% - 20px);\n vertical-align: top;\n word-break: break-all;\n\n .card {\n padding-left: ", ";\n padding-right: ", ";\n padding-top: 0.5em;\n padding-bottom: 0.5em;\n margin-bottom: -0.5em;\n\n .", " > a:focus {\n ", "\n }\n }\n\n &.", "\n .", "\n > a {\n ", "\n }\n .", " > a {\n /* EDM-1717: box-shadow Safari fix start */\n z-index: 1;\n position: relative;\n /* EDM-1717: box-shadow Safari fix end */\n }\n\n &.danger {\n .", " > a {\n box-shadow: 0 0 0 1px\n ", ";\n /* EDM-1717: box-shadow Safari fix start */\n z-index: 2;\n /* EDM-1717: box-shadow Safari fix end */\n }\n }\n }\n\n .", " {\n .", " > div {\n cursor: pointer;\n }\n\n &.", "\n .", "\n > div {\n ", "\n border-radius: ", ";\n }\n\n &.danger {\n .", " > div {\n box-shadow: 0 0 0 1px\n ", " !important;\n }\n }\n }\n\n .", ".", " {\n max-width: 100%;\n display: flex;\n justify-content: center;\n\n .", " {\n cursor: pointer;\n background-color: ", ";\n border-radius: ", ";\n border: 1px solid ", ";\n }\n\n &.", " {\n .", " {\n ", "\n }\n }\n\n &.danger {\n .", " {\n box-shadow: 0 0 0 1px\n ", ";\n }\n }\n }\n\n .", " {\n .", " > div {\n cursor: pointer;\n &::after {\n transition: box-shadow 0s;\n }\n }\n\n &.", "\n .", "\n > div::after {\n ", "\n }\n\n &.danger {\n .media-card-frame::after {\n box-shadow: 0 0 0 1px\n ", " !important;\n background: ", " !important;\n }\n .richMedia-resize-handle-right::after,\n .richMedia-resize-handle-left::after {\n background: ", ";\n }\n }\n }\n\n .", " {\n padding: 0;\n }\n"])), _smartCard.SmartCardSharedCssClassName.INLINE_CARD_CONTAINER, "var(--ds-space-025, 2px)", "var(--ds-space-025, 2px)", _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, (0, _editorSharedStyles.getSelectionStyles)([_editorSharedStyles.SelectionStyle.BoxShadow]), _editorSharedStyles.akEditorSelectedNodeClassName, _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, (0, _editorSharedStyles.getSelectionStyles)([_editorSharedStyles.SelectionStyle.BoxShadow]), _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, "var(--ds-border-danger, ".concat(_editorSharedStyles.akEditorDeleteBorder, ")"), _smartCard.SmartCardSharedCssClassName.BLOCK_CARD_CONTAINER, _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, _editorSharedStyles.akEditorSelectedNodeClassName, _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, (0, _editorSharedStyles.getSelectionStyles)([_editorSharedStyles.SelectionStyle.BoxShadow]), "var(--ds-border-radius-200, 8px)", _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, "var(--ds-border-danger, ".concat(_editorSharedStyles.akEditorDeleteBorder, ")"), _smartCard.SmartCardSharedCssClassName.DATASOURCE_CONTAINER, _smartCard.SmartCardSharedCssClassName.BLOCK_CARD_CONTAINER, DATASOURCE_INNER_CONTAINER_CLASSNAME, "var(--ds-background-neutral-subtle, ".concat(_colors.N0, ")"), "var(--ds-border-radius-200, 8px)", "var(--ds-border, ".concat(_colors.N40, ")"), _editorSharedStyles.akEditorSelectedNodeClassName, DATASOURCE_INNER_CONTAINER_CLASSNAME, (0, _editorSharedStyles.getSelectionStyles)([_editorSharedStyles.SelectionStyle.BoxShadow]), DATASOURCE_INNER_CONTAINER_CLASSNAME, "var(--ds-border-danger, ".concat(_editorSharedStyles.akEditorDeleteBorder, ")"), _smartCard.SmartCardSharedCssClassName.EMBED_CARD_CONTAINER, _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, _editorSharedStyles.akEditorSelectedNodeClassName, _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, (0, _editorSharedStyles.getSelectionStyles)([_editorSharedStyles.SelectionStyle.BoxShadow]), "var(--ds-border-danger, ".concat(_editorSharedStyles.akEditorDeleteBorder, ")"), "var(--ds-background-danger, ".concat(_editorSharedStyles.akEditorDeleteBackground, ")"), "var(--ds-border-danger, ".concat(_editorSharedStyles.akEditorDeleteBorder, ")"), FLOATING_TOOLBAR_LINKPICKER_CLASSNAME);
19
+ var smartCardStyles = exports.smartCardStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n .", " {\n max-width: calc(100% - 20px);\n vertical-align: top;\n word-break: break-all;\n ", "\n .card {\n padding-left: ", ";\n padding-right: ", ";\n padding-top: 0.5em;\n padding-bottom: 0.5em;\n margin-bottom: -0.5em;\n\n .", " > a:focus {\n ", "\n }\n }\n\n &.", "\n .", "\n > a {\n ", "\n }\n .", " > a {\n /* EDM-1717: box-shadow Safari fix start */\n z-index: 1;\n position: relative;\n /* EDM-1717: box-shadow Safari fix end */\n }\n\n &.danger {\n .", " > a {\n box-shadow: 0 0 0 1px\n ", ";\n /* EDM-1717: box-shadow Safari fix start */\n z-index: 2;\n /* EDM-1717: box-shadow Safari fix end */\n }\n }\n }\n\n .", " {\n .", " > div {\n cursor: pointer;\n }\n\n &.", "\n .", "\n > div {\n ", "\n border-radius: ", ";\n }\n\n &.danger {\n .", " > div {\n box-shadow: 0 0 0 1px\n ", " !important;\n }\n }\n }\n\n .", ".", " {\n max-width: 100%;\n display: flex;\n justify-content: center;\n\n .", " {\n cursor: pointer;\n background-color: ", ";\n border-radius: ", ";\n border: 1px solid ", ";\n }\n\n &.", " {\n .", " {\n ", "\n }\n }\n\n &.danger {\n .", " {\n box-shadow: 0 0 0 1px\n ", ";\n }\n }\n }\n\n .", " {\n .", " > div {\n cursor: pointer;\n &::after {\n transition: box-shadow 0s;\n }\n }\n\n &.", "\n .", "\n > div::after {\n ", "\n }\n\n &.danger {\n .media-card-frame::after {\n box-shadow: 0 0 0 1px\n ", " !important;\n background: ", " !important;\n }\n .richMedia-resize-handle-right::after,\n .richMedia-resize-handle-left::after {\n background: ", ";\n }\n }\n }\n\n .", " {\n padding: 0;\n }\n"])), _smartCard.SmartCardSharedCssClassName.INLINE_CARD_CONTAINER, (0, _platformFeatureFlags.getBooleanFF)('platform.editor.allow-inline-comments-for-inline-nodes') ? ".card-with-comment {\n background: ".concat("var(--ds-background-accent-yellow-subtler, ".concat(_colors.Y75, ")"), ";\n border-bottom: 2px solid ", "var(--ds-border-accent-yellow, ".concat(_colors.Y300, ")"), ";\n box-shadow: ", "var(--ds-shadow-overlay, ".concat("1px 2px 3px ".concat(_colors.N60A, ", -1px 2px 3px ").concat(_colors.N60A), ")"), ";\n }") : '', "var(--ds-space-025, 2px)", "var(--ds-space-025, 2px)", _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, (0, _editorSharedStyles.getSelectionStyles)([_editorSharedStyles.SelectionStyle.BoxShadow]), _editorSharedStyles.akEditorSelectedNodeClassName, _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, (0, _editorSharedStyles.getSelectionStyles)([_editorSharedStyles.SelectionStyle.BoxShadow]), _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, "var(--ds-border-danger, ".concat(_editorSharedStyles.akEditorDeleteBorder, ")"), _smartCard.SmartCardSharedCssClassName.BLOCK_CARD_CONTAINER, _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, _editorSharedStyles.akEditorSelectedNodeClassName, _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, (0, _editorSharedStyles.getSelectionStyles)([_editorSharedStyles.SelectionStyle.BoxShadow]), "var(--ds-border-radius-200, 8px)", _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, "var(--ds-border-danger, ".concat(_editorSharedStyles.akEditorDeleteBorder, ")"), _smartCard.SmartCardSharedCssClassName.DATASOURCE_CONTAINER, _smartCard.SmartCardSharedCssClassName.BLOCK_CARD_CONTAINER, DATASOURCE_INNER_CONTAINER_CLASSNAME, "var(--ds-background-neutral-subtle, ".concat(_colors.N0, ")"), "var(--ds-border-radius-200, 8px)", "var(--ds-border, ".concat(_colors.N40, ")"), _editorSharedStyles.akEditorSelectedNodeClassName, DATASOURCE_INNER_CONTAINER_CLASSNAME, (0, _editorSharedStyles.getSelectionStyles)([_editorSharedStyles.SelectionStyle.BoxShadow]), DATASOURCE_INNER_CONTAINER_CLASSNAME, "var(--ds-border-danger, ".concat(_editorSharedStyles.akEditorDeleteBorder, ")"), _smartCard.SmartCardSharedCssClassName.EMBED_CARD_CONTAINER, _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, _editorSharedStyles.akEditorSelectedNodeClassName, _smartCard.SmartCardSharedCssClassName.LOADER_WRAPPER, (0, _editorSharedStyles.getSelectionStyles)([_editorSharedStyles.SelectionStyle.BoxShadow]), "var(--ds-border-danger, ".concat(_editorSharedStyles.akEditorDeleteBorder, ")"), "var(--ds-background-danger, ".concat(_editorSharedStyles.akEditorDeleteBackground, ")"), "var(--ds-border-danger, ".concat(_editorSharedStyles.akEditorDeleteBorder, ")"), FLOATING_TOOLBAR_LINKPICKER_CLASSNAME);
@@ -22,7 +22,7 @@ var _templateObject, _templateObject2, _templateObject3;
22
22
  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); }; }
23
23
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** @jsx jsx */
24
24
  var packageName = "@atlaskit/editor-common";
25
- var packageVersion = "78.13.0";
25
+ var packageVersion = "78.14.0";
26
26
  var halfFocusRing = 1;
27
27
  var dropOffset = '0, 8';
28
28
  var DropList = /*#__PURE__*/function (_Component) {
@@ -1,5 +1,5 @@
1
1
  /** @jsx jsx */
2
- import React from 'react';
2
+ import React, { Fragment } from 'react';
3
3
  import { jsx } from '@emotion/react';
4
4
  import { akEditorGutterPadding } from '@atlaskit/editor-shared-styles';
5
5
  import { getBooleanFF } from '@atlaskit/platform-feature-flags';
@@ -14,7 +14,9 @@ const InlineExtension = props => {
14
14
  pluginInjectionApi,
15
15
  showMacroInteractionDesignUpdates,
16
16
  isNodeSelected,
17
- children
17
+ children,
18
+ isNodeHovered,
19
+ setIsNodeHovered
18
20
  } = props;
19
21
  const {
20
22
  widthState
@@ -23,9 +25,21 @@ const InlineExtension = props => {
23
25
  const className = hasChildren ? 'with-overlay with-children' : 'with-overlay';
24
26
  const rendererContainerWidth = widthState ? widthState.width - akEditorGutterPadding * 2 : 0;
25
27
  const extendedInlineExtension = getBooleanFF('platform.editor.inline_extension.extended_lcqdn') || false;
26
- const inlineExtensionInternal = jsx("div", {
28
+ const handleMouseEvent = didHover => {
29
+ if (setIsNodeHovered) {
30
+ setIsNodeHovered(didHover);
31
+ }
32
+ };
33
+ const inlineExtensionInternal = jsx(Fragment, null, showMacroInteractionDesignUpdates && jsx(ExtensionLozenge, {
34
+ node: node,
35
+ isNodeSelected: isNodeSelected,
36
+ isNodeHovered: isNodeHovered,
37
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
38
+ }), jsx("div", {
27
39
  css: [wrapperStyle, extendedInlineExtension && inlineWrapperStyels],
28
- className: `extension-container inline ${className}`
40
+ className: `extension-container inline ${className}`,
41
+ onMouseOver: () => handleMouseEvent(true),
42
+ onMouseLeave: () => handleMouseEvent(false)
29
43
  }, jsx("div", {
30
44
  css: overlay,
31
45
  className: "extension-overlay"
@@ -33,7 +47,7 @@ const InlineExtension = props => {
33
47
  node: node,
34
48
  isNodeSelected: isNodeSelected,
35
49
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
36
- }));
50
+ })));
37
51
  if (extendedInlineExtension) {
38
52
  return jsx(WidthContext.Provider, {
39
53
  value: createWidthContext(rendererContainerWidth)
@@ -40,12 +40,11 @@ export default class ExtensionLozenge extends Component {
40
40
  } = this.props.node.type;
41
41
  const params = parameters && parameters.macroParams;
42
42
  const title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
43
- const isBlockExtension = name === 'extension';
44
43
  return jsx(LozengeComponent, {
45
44
  isNodeHovered: isNodeHovered,
46
45
  isNodeSelected: isNodeSelected,
47
46
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
48
- isBlockExtension: isBlockExtension,
47
+ extensionName: name,
49
48
  lozengeData: lozengeData,
50
49
  params: params,
51
50
  title: title,
@@ -56,13 +55,14 @@ export default class ExtensionLozenge extends Component {
56
55
  }
57
56
  render() {
58
57
  const {
59
- node
58
+ node,
59
+ showMacroInteractionDesignUpdates
60
60
  } = this.props;
61
61
  const imageData = getExtensionLozengeData({
62
62
  node,
63
63
  type: 'image'
64
64
  });
65
- if (imageData && node.type.name !== 'extension') {
65
+ if (!showMacroInteractionDesignUpdates && imageData && node.type.name !== 'extension') {
66
66
  return this.renderImage(imageData);
67
67
  }
68
68
  const iconData = getExtensionLozengeData({
@@ -11,7 +11,7 @@ const capitalizeFirstLetter = str => {
11
11
  };
12
12
  export const LozengeComponent = ({
13
13
  lozengeData,
14
- isBlockExtension,
14
+ extensionName,
15
15
  title,
16
16
  params,
17
17
  renderImage,
@@ -21,9 +21,9 @@ export const LozengeComponent = ({
21
21
  isNodeHovered
22
22
  }) => {
23
23
  const capitalizedTitle = capitalizeFirstLetter(title);
24
- if (showMacroInteractionDesignUpdates) {
24
+ if (showMacroInteractionDesignUpdates && (isNodeHovered || isNodeSelected)) {
25
25
  const lozengeClassNames = classnames('extension-title', {
26
- 'show-lozenge': isNodeHovered || isNodeSelected
26
+ 'inline-extension': extensionName === 'inlineExtension'
27
27
  });
28
28
  return jsx("div", {
29
29
  className: lozengeClassNames,
@@ -34,7 +34,8 @@ export const LozengeComponent = ({
34
34
  text: capitalizedTitle,
35
35
  color: isNodeSelected ? 'blueLight' : 'greyLight'
36
36
  }));
37
- } else {
37
+ } else if (!showMacroInteractionDesignUpdates) {
38
+ const isBlockExtension = extensionName === 'extension';
38
39
  return jsx("div", {
39
40
  "data-testid": "lozenge-fallback",
40
41
  css: placeholderFallback
@@ -50,4 +51,5 @@ export const LozengeComponent = ({
50
51
  css: placeholderFallbackParams
51
52
  }, Object.keys(params).map(key => key && ` | ${key} = ${params[key].value}`)));
52
53
  }
54
+ return null;
53
55
  };
@@ -60,14 +60,11 @@ export const lozengeWrapper = css({
60
60
  display: 'flex',
61
61
  justifyContent: 'left',
62
62
  width: '100%',
63
- /* -0.75rem neutralizes the margin top coming from extensionView-content-wrap.
64
- The lozenge takes up space so we don't need the extra padding anymore. */
65
- marginTop: "var(--ds-space-negative-150, -0.75rem)",
66
63
  marginLeft: "var(--ds-space-050, 4px)",
67
- marginBottom: "var(--ds-space-negative-050, -4px)",
68
- // Using opacity so that lozenge takes up space and doesn't cause shift on render
69
- opacity: '0',
70
- '&.show-lozenge': {
71
- opacity: '1'
64
+ position: 'absolute',
65
+ top: "var(--ds-space-negative-300, -24px)",
66
+ '&.inline-extension': {
67
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
68
+ top: '-23px' // Unfortunately, this needs to be this exact number - otherwise there will be a gap/noticeable overlap
72
69
  }
73
70
  });
@@ -198,7 +198,9 @@ export class ExtensionComponent extends Component {
198
198
  node: node,
199
199
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
200
200
  isNodeSelected: selectedNode === node,
201
- pluginInjectionApi: pluginInjectionApi
201
+ pluginInjectionApi: pluginInjectionApi,
202
+ isNodeHovered: this.state.isNodeHovered,
203
+ setIsNodeHovered: this.setIsNodeHovered
202
204
  }, extensionHandlerResult);
203
205
  default:
204
206
  return null;
@@ -1,7 +1,19 @@
1
+ /** @jsx jsx */
1
2
  import React from 'react';
3
+ import { css, jsx } from '@emotion/react';
4
+ import classnames from 'classnames';
2
5
  import { ZERO_WIDTH_SPACE } from '../utils';
6
+ const styles = css({
7
+ '&.inline-extension': {
8
+ display: 'inline-block'
9
+ },
10
+ '&.relative': {
11
+ position: 'relative'
12
+ }
13
+ });
3
14
  /**
4
15
  * If inlineExtension, add zero width space to the end of the nodes and wrap with span;
16
+ * Also if showMacroInteractionDesignUpdates is true, then add the inline-block style to account for the lozenge.
5
17
  * else wrap with a div (for multi bodied extensions)
6
18
  *
7
19
  * @param param0
@@ -9,5 +21,15 @@ import { ZERO_WIDTH_SPACE } from '../utils';
9
21
  */
10
22
  export const ExtensionNodeWrapper = ({
11
23
  children,
12
- nodeType
13
- }) => /*#__PURE__*/React.createElement("span", null, children, nodeType === 'inlineExtension' && ZERO_WIDTH_SPACE);
24
+ nodeType,
25
+ showMacroInteractionDesignUpdates
26
+ }) => {
27
+ const wrapperClassNames = classnames({
28
+ 'inline-extension': nodeType === 'inlineExtension' && showMacroInteractionDesignUpdates,
29
+ relative: showMacroInteractionDesignUpdates
30
+ });
31
+ return jsx("span", {
32
+ className: wrapperClassNames,
33
+ css: styles
34
+ }, children, nodeType === 'inlineExtension' && ZERO_WIDTH_SPACE);
35
+ };
@@ -28,7 +28,8 @@ export class ExtensionNode extends ReactNodeView {
28
28
  render(props, forwardRef) {
29
29
  var _props$extensionNodeV;
30
30
  return /*#__PURE__*/React.createElement(ExtensionNodeWrapper, {
31
- nodeType: this.node.type.name
31
+ nodeType: this.node.type.name,
32
+ showMacroInteractionDesignUpdates: props.showMacroInteractionDesignUpdates
32
33
  }, /*#__PURE__*/React.createElement(Extension, {
33
34
  editorView: this.view,
34
35
  node: this.node,
@@ -1,6 +1,6 @@
1
1
  const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
2
2
  const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
3
- const packageVersion = "78.13.0";
3
+ const packageVersion = "78.14.0";
4
4
  const sanitiseSentryEvents = (data, _hint) => {
5
5
  // Remove URL as it has UGC
6
6
  // TODO: Sanitise the URL instead of just removing it
@@ -1,4 +1,5 @@
1
1
  import { css } from '@emotion/react';
2
+ import { getBooleanFF } from '@atlaskit/platform-feature-flags';
2
3
  import { N60A, Y300, Y75 } from '@atlaskit/theme/colors';
3
4
  import { commentStatusStyleMap } from '../../media/styles';
4
5
  export const annotationPrefix = 'ak-editor-annotation';
@@ -16,7 +17,33 @@ export const BlockAnnotationSharedClassNames = {
16
17
  const mediaNodeDomRef = 'mediaView-content-wrap';
17
18
  const Y75a = 'rgba(255, 240, 179, 0.5)';
18
19
  const Y200a = 'rgba(255, 196, 0, 0.82)';
19
- export const AnnotationSharedCSSByState = () => ({
20
+ export const AnnotationSharedCSSByState = () => getBooleanFF('platform.editor.allow-inline-comments-for-inline-nodes') ? {
21
+ focus: css({
22
+ background: `var(--ds-background-accent-yellow-subtler, ${Y75})`,
23
+ borderBottom: `2px solid ${`var(--ds-border-accent-yellow, ${Y300})`}`,
24
+ boxShadow: `var(--ds-shadow-overlay, ${`1px 2px 3px ${N60A}, -1px 2px 3px ${N60A}`})`,
25
+ cursor: 'pointer',
26
+ '&:has(.card)': {
27
+ fontSize: '1.5rem',
28
+ lineHeight: '1.2rem',
29
+ '& > *': {
30
+ fontSize: '16px'
31
+ }
32
+ }
33
+ }),
34
+ blur: css({
35
+ background: `var(--ds-background-accent-yellow-subtlest, ${Y75a})`,
36
+ borderBottom: `2px solid ${`var(--ds-border-accent-yellow, ${Y200a})`}`,
37
+ cursor: 'pointer',
38
+ '&:has(.card)': {
39
+ fontSize: '1.5rem',
40
+ lineHeight: '1.2rem',
41
+ '& > *': {
42
+ fontSize: '16px'
43
+ }
44
+ }
45
+ })
46
+ } : {
20
47
  focus: css({
21
48
  // Background is not coming through in confluence, suspecting to be caused by some specific combination of
22
49
  // emotion and token look up
@@ -31,7 +58,7 @@ export const AnnotationSharedCSSByState = () => ({
31
58
  borderBottom: `2px solid ${`var(--ds-border-accent-yellow, ${Y200a})`}`,
32
59
  cursor: 'pointer'
33
60
  })
34
- });
61
+ };
35
62
 
36
63
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- `AnnotationSharedCSSByState()` is not safe in object syntax
37
64
  export const annotationSharedStyles = () => css`
@@ -1,6 +1,8 @@
1
1
  import { css } from '@emotion/react';
2
2
  import { akEditorDeleteBackground, akEditorDeleteBorder, akEditorSelectedNodeClassName, getSelectionStyles, SelectionStyle } from '@atlaskit/editor-shared-styles';
3
+ import { getBooleanFF } from '@atlaskit/platform-feature-flags';
3
4
  import { N0, N40 } from '@atlaskit/theme/colors';
5
+ import { N60A, Y300, Y75 } from '@atlaskit/theme/colors';
4
6
  import { SmartCardSharedCssClassName } from './smart-card';
5
7
  export const DATASOURCE_INNER_CONTAINER_CLASSNAME = 'datasourceView-content-inner-wrap';
6
8
  export const FLOATING_TOOLBAR_LINKPICKER_CLASSNAME = 'card-floating-toolbar--link-picker';
@@ -11,7 +13,11 @@ export const smartCardStyles = css`
11
13
  max-width: calc(100% - 20px);
12
14
  vertical-align: top;
13
15
  word-break: break-all;
14
-
16
+ ${getBooleanFF('platform.editor.allow-inline-comments-for-inline-nodes') ? `.card-with-comment {
17
+ background: ${`var(--ds-background-accent-yellow-subtler, ${Y75})`};
18
+ border-bottom: 2px solid ${`var(--ds-border-accent-yellow, ${Y300})`};
19
+ box-shadow: ${`var(--ds-shadow-overlay, ${`1px 2px 3px ${N60A}, -1px 2px 3px ${N60A}`})`};
20
+ }` : ''}
15
21
  .card {
16
22
  padding-left: ${"var(--ds-space-025, 2px)"};
17
23
  padding-right: ${"var(--ds-space-025, 2px)"};
@@ -7,7 +7,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
7
7
  import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
8
8
  import Layer from '../Layer';
9
9
  const packageName = "@atlaskit/editor-common";
10
- const packageVersion = "78.13.0";
10
+ const packageVersion = "78.14.0";
11
11
  const halfFocusRing = 1;
12
12
  const dropOffset = '0, 8';
13
13
  class DropList extends Component {
@@ -1,5 +1,5 @@
1
1
  /** @jsx jsx */
2
- import React from 'react';
2
+ import React, { Fragment } from 'react';
3
3
  import { jsx } from '@emotion/react';
4
4
  import { akEditorGutterPadding } from '@atlaskit/editor-shared-styles';
5
5
  import { getBooleanFF } from '@atlaskit/platform-feature-flags';
@@ -13,16 +13,34 @@ var InlineExtension = function InlineExtension(props) {
13
13
  pluginInjectionApi = props.pluginInjectionApi,
14
14
  showMacroInteractionDesignUpdates = props.showMacroInteractionDesignUpdates,
15
15
  isNodeSelected = props.isNodeSelected,
16
- children = props.children;
16
+ children = props.children,
17
+ isNodeHovered = props.isNodeHovered,
18
+ setIsNodeHovered = props.setIsNodeHovered;
17
19
  var _useSharedPluginState = useSharedPluginState(pluginInjectionApi, ['width']),
18
20
  widthState = _useSharedPluginState.widthState;
19
21
  var hasChildren = !!children;
20
22
  var className = hasChildren ? 'with-overlay with-children' : 'with-overlay';
21
23
  var rendererContainerWidth = widthState ? widthState.width - akEditorGutterPadding * 2 : 0;
22
24
  var extendedInlineExtension = getBooleanFF('platform.editor.inline_extension.extended_lcqdn') || false;
23
- var inlineExtensionInternal = jsx("div", {
25
+ var handleMouseEvent = function handleMouseEvent(didHover) {
26
+ if (setIsNodeHovered) {
27
+ setIsNodeHovered(didHover);
28
+ }
29
+ };
30
+ var inlineExtensionInternal = jsx(Fragment, null, showMacroInteractionDesignUpdates && jsx(ExtensionLozenge, {
31
+ node: node,
32
+ isNodeSelected: isNodeSelected,
33
+ isNodeHovered: isNodeHovered,
34
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
35
+ }), jsx("div", {
24
36
  css: [wrapperStyle, extendedInlineExtension && inlineWrapperStyels],
25
- className: "extension-container inline ".concat(className)
37
+ className: "extension-container inline ".concat(className),
38
+ onMouseOver: function onMouseOver() {
39
+ return handleMouseEvent(true);
40
+ },
41
+ onMouseLeave: function onMouseLeave() {
42
+ return handleMouseEvent(false);
43
+ }
26
44
  }, jsx("div", {
27
45
  css: overlay,
28
46
  className: "extension-overlay"
@@ -30,7 +48,7 @@ var InlineExtension = function InlineExtension(props) {
30
48
  node: node,
31
49
  isNodeSelected: isNodeSelected,
32
50
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
33
- }));
51
+ })));
34
52
  if (extendedInlineExtension) {
35
53
  return jsx(WidthContext.Provider, {
36
54
  value: createWidthContext(rendererContainerWidth)
@@ -49,12 +49,11 @@ var ExtensionLozenge = /*#__PURE__*/function (_Component) {
49
49
  var name = _this.props.node.type.name;
50
50
  var params = parameters && parameters.macroParams;
51
51
  var title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
52
- var isBlockExtension = name === 'extension';
53
52
  return jsx(LozengeComponent, {
54
53
  isNodeHovered: isNodeHovered,
55
54
  isNodeSelected: isNodeSelected,
56
55
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
57
- isBlockExtension: isBlockExtension,
56
+ extensionName: name,
58
57
  lozengeData: lozengeData,
59
58
  params: params,
60
59
  title: title,
@@ -67,12 +66,14 @@ var ExtensionLozenge = /*#__PURE__*/function (_Component) {
67
66
  _createClass(ExtensionLozenge, [{
68
67
  key: "render",
69
68
  value: function render() {
70
- var node = this.props.node;
69
+ var _this$props2 = this.props,
70
+ node = _this$props2.node,
71
+ showMacroInteractionDesignUpdates = _this$props2.showMacroInteractionDesignUpdates;
71
72
  var imageData = getExtensionLozengeData({
72
73
  node: node,
73
74
  type: 'image'
74
75
  });
75
- if (imageData && node.type.name !== 'extension') {
76
+ if (!showMacroInteractionDesignUpdates && imageData && node.type.name !== 'extension') {
76
77
  return this.renderImage(imageData);
77
78
  }
78
79
  var iconData = getExtensionLozengeData({
@@ -14,7 +14,7 @@ var capitalizeFirstLetter = function capitalizeFirstLetter(str) {
14
14
  };
15
15
  export var LozengeComponent = function LozengeComponent(_ref) {
16
16
  var lozengeData = _ref.lozengeData,
17
- isBlockExtension = _ref.isBlockExtension,
17
+ extensionName = _ref.extensionName,
18
18
  title = _ref.title,
19
19
  params = _ref.params,
20
20
  renderImage = _ref.renderImage,
@@ -23,9 +23,9 @@ export var LozengeComponent = function LozengeComponent(_ref) {
23
23
  customContainerStyles = _ref.customContainerStyles,
24
24
  isNodeHovered = _ref.isNodeHovered;
25
25
  var capitalizedTitle = capitalizeFirstLetter(title);
26
- if (showMacroInteractionDesignUpdates) {
26
+ if (showMacroInteractionDesignUpdates && (isNodeHovered || isNodeSelected)) {
27
27
  var lozengeClassNames = classnames('extension-title', {
28
- 'show-lozenge': isNodeHovered || isNodeSelected
28
+ 'inline-extension': extensionName === 'inlineExtension'
29
29
  });
30
30
  return jsx("div", {
31
31
  className: lozengeClassNames,
@@ -36,7 +36,8 @@ export var LozengeComponent = function LozengeComponent(_ref) {
36
36
  text: capitalizedTitle,
37
37
  color: isNodeSelected ? 'blueLight' : 'greyLight'
38
38
  }));
39
- } else {
39
+ } else if (!showMacroInteractionDesignUpdates) {
40
+ var isBlockExtension = extensionName === 'extension';
40
41
  return jsx("div", {
41
42
  "data-testid": "lozenge-fallback",
42
43
  css: placeholderFallback
@@ -53,4 +54,5 @@ export var LozengeComponent = function LozengeComponent(_ref) {
53
54
  return key && " | ".concat(key, " = ").concat(params[key].value);
54
55
  })));
55
56
  }
57
+ return null;
56
58
  };
@@ -60,14 +60,11 @@ export var lozengeWrapper = css({
60
60
  display: 'flex',
61
61
  justifyContent: 'left',
62
62
  width: '100%',
63
- /* -0.75rem neutralizes the margin top coming from extensionView-content-wrap.
64
- The lozenge takes up space so we don't need the extra padding anymore. */
65
- marginTop: "var(--ds-space-negative-150, -0.75rem)",
66
63
  marginLeft: "var(--ds-space-050, 4px)",
67
- marginBottom: "var(--ds-space-negative-050, -4px)",
68
- // Using opacity so that lozenge takes up space and doesn't cause shift on render
69
- opacity: '0',
70
- '&.show-lozenge': {
71
- opacity: '1'
64
+ position: 'absolute',
65
+ top: "var(--ds-space-negative-300, -24px)",
66
+ '&.inline-extension': {
67
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
68
+ top: '-23px' // Unfortunately, this needs to be this exact number - otherwise there will be a gap/noticeable overlap
72
69
  }
73
70
  });
@@ -233,7 +233,9 @@ export var ExtensionComponent = /*#__PURE__*/function (_Component) {
233
233
  node: node,
234
234
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
235
235
  isNodeSelected: selectedNode === node,
236
- pluginInjectionApi: pluginInjectionApi
236
+ pluginInjectionApi: pluginInjectionApi,
237
+ isNodeHovered: this.state.isNodeHovered,
238
+ setIsNodeHovered: this.setIsNodeHovered
237
239
  }, extensionHandlerResult);
238
240
  default:
239
241
  return null;
@@ -1,7 +1,19 @@
1
+ /** @jsx jsx */
1
2
  import React from 'react';
3
+ import { css, jsx } from '@emotion/react';
4
+ import classnames from 'classnames';
2
5
  import { ZERO_WIDTH_SPACE } from '../utils';
6
+ var styles = css({
7
+ '&.inline-extension': {
8
+ display: 'inline-block'
9
+ },
10
+ '&.relative': {
11
+ position: 'relative'
12
+ }
13
+ });
3
14
  /**
4
15
  * If inlineExtension, add zero width space to the end of the nodes and wrap with span;
16
+ * Also if showMacroInteractionDesignUpdates is true, then add the inline-block style to account for the lozenge.
5
17
  * else wrap with a div (for multi bodied extensions)
6
18
  *
7
19
  * @param param0
@@ -9,6 +21,14 @@ import { ZERO_WIDTH_SPACE } from '../utils';
9
21
  */
10
22
  export var ExtensionNodeWrapper = function ExtensionNodeWrapper(_ref) {
11
23
  var children = _ref.children,
12
- nodeType = _ref.nodeType;
13
- return /*#__PURE__*/React.createElement("span", null, children, nodeType === 'inlineExtension' && ZERO_WIDTH_SPACE);
24
+ nodeType = _ref.nodeType,
25
+ showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates;
26
+ var wrapperClassNames = classnames({
27
+ 'inline-extension': nodeType === 'inlineExtension' && showMacroInteractionDesignUpdates,
28
+ relative: showMacroInteractionDesignUpdates
29
+ });
30
+ return jsx("span", {
31
+ className: wrapperClassNames,
32
+ css: styles
33
+ }, children, nodeType === 'inlineExtension' && ZERO_WIDTH_SPACE);
14
34
  };
@@ -47,7 +47,8 @@ export var ExtensionNode = /*#__PURE__*/function (_ReactNodeView) {
47
47
  value: function render(props, forwardRef) {
48
48
  var _props$extensionNodeV;
49
49
  return /*#__PURE__*/React.createElement(ExtensionNodeWrapper, {
50
- nodeType: this.node.type.name
50
+ nodeType: this.node.type.name,
51
+ showMacroInteractionDesignUpdates: props.showMacroInteractionDesignUpdates
51
52
  }, /*#__PURE__*/React.createElement(Extension, {
52
53
  editorView: this.view,
53
54
  node: this.node,
@@ -6,7 +6,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
6
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
7
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
8
8
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
9
- var packageVersion = "78.13.0";
9
+ var packageVersion = "78.14.0";
10
10
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
11
11
  // Remove URL as it has UGC
12
12
  // TODO: Sanitise the URL instead of just removing it
@@ -1,6 +1,7 @@
1
1
  import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
2
  var _templateObject;
3
3
  import { css } from '@emotion/react';
4
+ import { getBooleanFF } from '@atlaskit/platform-feature-flags';
4
5
  import { N60A, Y300, Y75 } from '@atlaskit/theme/colors';
5
6
  import { commentStatusStyleMap } from '../../media/styles';
6
7
  export var annotationPrefix = 'ak-editor-annotation';
@@ -19,7 +20,33 @@ var mediaNodeDomRef = 'mediaView-content-wrap';
19
20
  var Y75a = 'rgba(255, 240, 179, 0.5)';
20
21
  var Y200a = 'rgba(255, 196, 0, 0.82)';
21
22
  export var AnnotationSharedCSSByState = function AnnotationSharedCSSByState() {
22
- return {
23
+ return getBooleanFF('platform.editor.allow-inline-comments-for-inline-nodes') ? {
24
+ focus: css({
25
+ background: "var(--ds-background-accent-yellow-subtler, ".concat(Y75, ")"),
26
+ borderBottom: "2px solid ".concat("var(--ds-border-accent-yellow, ".concat(Y300, ")")),
27
+ boxShadow: "var(--ds-shadow-overlay, ".concat("1px 2px 3px ".concat(N60A, ", -1px 2px 3px ").concat(N60A), ")"),
28
+ cursor: 'pointer',
29
+ '&:has(.card)': {
30
+ fontSize: '1.5rem',
31
+ lineHeight: '1.2rem',
32
+ '& > *': {
33
+ fontSize: '16px'
34
+ }
35
+ }
36
+ }),
37
+ blur: css({
38
+ background: "var(--ds-background-accent-yellow-subtlest, ".concat(Y75a, ")"),
39
+ borderBottom: "2px solid ".concat("var(--ds-border-accent-yellow, ".concat(Y200a, ")")),
40
+ cursor: 'pointer',
41
+ '&:has(.card)': {
42
+ fontSize: '1.5rem',
43
+ lineHeight: '1.2rem',
44
+ '& > *': {
45
+ fontSize: '16px'
46
+ }
47
+ }
48
+ })
49
+ } : {
23
50
  focus: css({
24
51
  // Background is not coming through in confluence, suspecting to be caused by some specific combination of
25
52
  // emotion and token look up
@@ -2,10 +2,12 @@ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral
2
2
  var _templateObject;
3
3
  import { css } from '@emotion/react';
4
4
  import { akEditorDeleteBackground, akEditorDeleteBorder, akEditorSelectedNodeClassName, getSelectionStyles, SelectionStyle } from '@atlaskit/editor-shared-styles';
5
+ import { getBooleanFF } from '@atlaskit/platform-feature-flags';
5
6
  import { N0, N40 } from '@atlaskit/theme/colors';
7
+ import { N60A, Y300, Y75 } from '@atlaskit/theme/colors';
6
8
  import { SmartCardSharedCssClassName } from './smart-card';
7
9
  export var DATASOURCE_INNER_CONTAINER_CLASSNAME = 'datasourceView-content-inner-wrap';
8
10
  export var FLOATING_TOOLBAR_LINKPICKER_CLASSNAME = 'card-floating-toolbar--link-picker';
9
11
 
10
12
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- Seems safe to autofix with a fix to `getSelectionStyles`
11
- export var smartCardStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .", " {\n max-width: calc(100% - 20px);\n vertical-align: top;\n word-break: break-all;\n\n .card {\n padding-left: ", ";\n padding-right: ", ";\n padding-top: 0.5em;\n padding-bottom: 0.5em;\n margin-bottom: -0.5em;\n\n .", " > a:focus {\n ", "\n }\n }\n\n &.", "\n .", "\n > a {\n ", "\n }\n .", " > a {\n /* EDM-1717: box-shadow Safari fix start */\n z-index: 1;\n position: relative;\n /* EDM-1717: box-shadow Safari fix end */\n }\n\n &.danger {\n .", " > a {\n box-shadow: 0 0 0 1px\n ", ";\n /* EDM-1717: box-shadow Safari fix start */\n z-index: 2;\n /* EDM-1717: box-shadow Safari fix end */\n }\n }\n }\n\n .", " {\n .", " > div {\n cursor: pointer;\n }\n\n &.", "\n .", "\n > div {\n ", "\n border-radius: ", ";\n }\n\n &.danger {\n .", " > div {\n box-shadow: 0 0 0 1px\n ", " !important;\n }\n }\n }\n\n .", ".", " {\n max-width: 100%;\n display: flex;\n justify-content: center;\n\n .", " {\n cursor: pointer;\n background-color: ", ";\n border-radius: ", ";\n border: 1px solid ", ";\n }\n\n &.", " {\n .", " {\n ", "\n }\n }\n\n &.danger {\n .", " {\n box-shadow: 0 0 0 1px\n ", ";\n }\n }\n }\n\n .", " {\n .", " > div {\n cursor: pointer;\n &::after {\n transition: box-shadow 0s;\n }\n }\n\n &.", "\n .", "\n > div::after {\n ", "\n }\n\n &.danger {\n .media-card-frame::after {\n box-shadow: 0 0 0 1px\n ", " !important;\n background: ", " !important;\n }\n .richMedia-resize-handle-right::after,\n .richMedia-resize-handle-left::after {\n background: ", ";\n }\n }\n }\n\n .", " {\n padding: 0;\n }\n"])), SmartCardSharedCssClassName.INLINE_CARD_CONTAINER, "var(--ds-space-025, 2px)", "var(--ds-space-025, 2px)", SmartCardSharedCssClassName.LOADER_WRAPPER, getSelectionStyles([SelectionStyle.BoxShadow]), akEditorSelectedNodeClassName, SmartCardSharedCssClassName.LOADER_WRAPPER, getSelectionStyles([SelectionStyle.BoxShadow]), SmartCardSharedCssClassName.LOADER_WRAPPER, SmartCardSharedCssClassName.LOADER_WRAPPER, "var(--ds-border-danger, ".concat(akEditorDeleteBorder, ")"), SmartCardSharedCssClassName.BLOCK_CARD_CONTAINER, SmartCardSharedCssClassName.LOADER_WRAPPER, akEditorSelectedNodeClassName, SmartCardSharedCssClassName.LOADER_WRAPPER, getSelectionStyles([SelectionStyle.BoxShadow]), "var(--ds-border-radius-200, 8px)", SmartCardSharedCssClassName.LOADER_WRAPPER, "var(--ds-border-danger, ".concat(akEditorDeleteBorder, ")"), SmartCardSharedCssClassName.DATASOURCE_CONTAINER, SmartCardSharedCssClassName.BLOCK_CARD_CONTAINER, DATASOURCE_INNER_CONTAINER_CLASSNAME, "var(--ds-background-neutral-subtle, ".concat(N0, ")"), "var(--ds-border-radius-200, 8px)", "var(--ds-border, ".concat(N40, ")"), akEditorSelectedNodeClassName, DATASOURCE_INNER_CONTAINER_CLASSNAME, getSelectionStyles([SelectionStyle.BoxShadow]), DATASOURCE_INNER_CONTAINER_CLASSNAME, "var(--ds-border-danger, ".concat(akEditorDeleteBorder, ")"), SmartCardSharedCssClassName.EMBED_CARD_CONTAINER, SmartCardSharedCssClassName.LOADER_WRAPPER, akEditorSelectedNodeClassName, SmartCardSharedCssClassName.LOADER_WRAPPER, getSelectionStyles([SelectionStyle.BoxShadow]), "var(--ds-border-danger, ".concat(akEditorDeleteBorder, ")"), "var(--ds-background-danger, ".concat(akEditorDeleteBackground, ")"), "var(--ds-border-danger, ".concat(akEditorDeleteBorder, ")"), FLOATING_TOOLBAR_LINKPICKER_CLASSNAME);
13
+ export var smartCardStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .", " {\n max-width: calc(100% - 20px);\n vertical-align: top;\n word-break: break-all;\n ", "\n .card {\n padding-left: ", ";\n padding-right: ", ";\n padding-top: 0.5em;\n padding-bottom: 0.5em;\n margin-bottom: -0.5em;\n\n .", " > a:focus {\n ", "\n }\n }\n\n &.", "\n .", "\n > a {\n ", "\n }\n .", " > a {\n /* EDM-1717: box-shadow Safari fix start */\n z-index: 1;\n position: relative;\n /* EDM-1717: box-shadow Safari fix end */\n }\n\n &.danger {\n .", " > a {\n box-shadow: 0 0 0 1px\n ", ";\n /* EDM-1717: box-shadow Safari fix start */\n z-index: 2;\n /* EDM-1717: box-shadow Safari fix end */\n }\n }\n }\n\n .", " {\n .", " > div {\n cursor: pointer;\n }\n\n &.", "\n .", "\n > div {\n ", "\n border-radius: ", ";\n }\n\n &.danger {\n .", " > div {\n box-shadow: 0 0 0 1px\n ", " !important;\n }\n }\n }\n\n .", ".", " {\n max-width: 100%;\n display: flex;\n justify-content: center;\n\n .", " {\n cursor: pointer;\n background-color: ", ";\n border-radius: ", ";\n border: 1px solid ", ";\n }\n\n &.", " {\n .", " {\n ", "\n }\n }\n\n &.danger {\n .", " {\n box-shadow: 0 0 0 1px\n ", ";\n }\n }\n }\n\n .", " {\n .", " > div {\n cursor: pointer;\n &::after {\n transition: box-shadow 0s;\n }\n }\n\n &.", "\n .", "\n > div::after {\n ", "\n }\n\n &.danger {\n .media-card-frame::after {\n box-shadow: 0 0 0 1px\n ", " !important;\n background: ", " !important;\n }\n .richMedia-resize-handle-right::after,\n .richMedia-resize-handle-left::after {\n background: ", ";\n }\n }\n }\n\n .", " {\n padding: 0;\n }\n"])), SmartCardSharedCssClassName.INLINE_CARD_CONTAINER, getBooleanFF('platform.editor.allow-inline-comments-for-inline-nodes') ? ".card-with-comment {\n background: ".concat("var(--ds-background-accent-yellow-subtler, ".concat(Y75, ")"), ";\n border-bottom: 2px solid ", "var(--ds-border-accent-yellow, ".concat(Y300, ")"), ";\n box-shadow: ", "var(--ds-shadow-overlay, ".concat("1px 2px 3px ".concat(N60A, ", -1px 2px 3px ").concat(N60A), ")"), ";\n }") : '', "var(--ds-space-025, 2px)", "var(--ds-space-025, 2px)", SmartCardSharedCssClassName.LOADER_WRAPPER, getSelectionStyles([SelectionStyle.BoxShadow]), akEditorSelectedNodeClassName, SmartCardSharedCssClassName.LOADER_WRAPPER, getSelectionStyles([SelectionStyle.BoxShadow]), SmartCardSharedCssClassName.LOADER_WRAPPER, SmartCardSharedCssClassName.LOADER_WRAPPER, "var(--ds-border-danger, ".concat(akEditorDeleteBorder, ")"), SmartCardSharedCssClassName.BLOCK_CARD_CONTAINER, SmartCardSharedCssClassName.LOADER_WRAPPER, akEditorSelectedNodeClassName, SmartCardSharedCssClassName.LOADER_WRAPPER, getSelectionStyles([SelectionStyle.BoxShadow]), "var(--ds-border-radius-200, 8px)", SmartCardSharedCssClassName.LOADER_WRAPPER, "var(--ds-border-danger, ".concat(akEditorDeleteBorder, ")"), SmartCardSharedCssClassName.DATASOURCE_CONTAINER, SmartCardSharedCssClassName.BLOCK_CARD_CONTAINER, DATASOURCE_INNER_CONTAINER_CLASSNAME, "var(--ds-background-neutral-subtle, ".concat(N0, ")"), "var(--ds-border-radius-200, 8px)", "var(--ds-border, ".concat(N40, ")"), akEditorSelectedNodeClassName, DATASOURCE_INNER_CONTAINER_CLASSNAME, getSelectionStyles([SelectionStyle.BoxShadow]), DATASOURCE_INNER_CONTAINER_CLASSNAME, "var(--ds-border-danger, ".concat(akEditorDeleteBorder, ")"), SmartCardSharedCssClassName.EMBED_CARD_CONTAINER, SmartCardSharedCssClassName.LOADER_WRAPPER, akEditorSelectedNodeClassName, SmartCardSharedCssClassName.LOADER_WRAPPER, getSelectionStyles([SelectionStyle.BoxShadow]), "var(--ds-border-danger, ".concat(akEditorDeleteBorder, ")"), "var(--ds-background-danger, ".concat(akEditorDeleteBackground, ")"), "var(--ds-border-danger, ".concat(akEditorDeleteBorder, ")"), FLOATING_TOOLBAR_LINKPICKER_CLASSNAME);
@@ -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 = "78.13.0";
20
+ var packageVersion = "78.14.0";
21
21
  var halfFocusRing = 1;
22
22
  var dropOffset = '0, 8';
23
23
  var DropList = /*#__PURE__*/function (_Component) {
@@ -9,6 +9,8 @@ export interface Props {
9
9
  children?: React.ReactNode;
10
10
  showMacroInteractionDesignUpdates?: boolean;
11
11
  isNodeSelected?: boolean;
12
+ isNodeHovered?: boolean;
13
+ setIsNodeHovered?: (isHovered: boolean) => void;
12
14
  }
13
15
  declare const InlineExtension: (props: Props) => jsx.JSX.Element;
14
16
  export default InlineExtension;
@@ -5,7 +5,7 @@ import type { LozengeData } from './Lozenge';
5
5
  export declare const ICON_SIZE = 24;
6
6
  type LozengeComponentProps = {
7
7
  lozengeData?: LozengeData;
8
- isBlockExtension: boolean;
8
+ extensionName: string;
9
9
  title: string;
10
10
  params: any;
11
11
  renderImage: (lozengeData: LozengeData) => void;
@@ -14,5 +14,5 @@ type LozengeComponentProps = {
14
14
  customContainerStyles?: CSSProperties;
15
15
  isNodeHovered?: boolean;
16
16
  };
17
- export declare const LozengeComponent: ({ lozengeData, isBlockExtension, title, params, renderImage, isNodeSelected, showMacroInteractionDesignUpdates, customContainerStyles, isNodeHovered, }: LozengeComponentProps) => jsx.JSX.Element;
17
+ export declare const LozengeComponent: ({ lozengeData, extensionName, title, params, renderImage, isNodeSelected, showMacroInteractionDesignUpdates, customContainerStyles, isNodeHovered, }: LozengeComponentProps) => jsx.JSX.Element | null;
18
18
  export {};
@@ -1,14 +1,18 @@
1
+ /** @jsx jsx */
1
2
  import React from 'react';
3
+ import { jsx } from '@emotion/react';
2
4
  type Props = {
3
5
  children: React.ReactNode;
4
6
  nodeType: string;
7
+ showMacroInteractionDesignUpdates?: boolean;
5
8
  };
6
9
  /**
7
10
  * If inlineExtension, add zero width space to the end of the nodes and wrap with span;
11
+ * Also if showMacroInteractionDesignUpdates is true, then add the inline-block style to account for the lozenge.
8
12
  * else wrap with a div (for multi bodied extensions)
9
13
  *
10
14
  * @param param0
11
15
  * @returns
12
16
  */
13
- export declare const ExtensionNodeWrapper: ({ children, nodeType }: Props) => JSX.Element;
17
+ export declare const ExtensionNodeWrapper: ({ children, nodeType, showMacroInteractionDesignUpdates, }: Props) => jsx.JSX.Element;
14
18
  export {};
@@ -9,6 +9,8 @@ export interface Props {
9
9
  children?: React.ReactNode;
10
10
  showMacroInteractionDesignUpdates?: boolean;
11
11
  isNodeSelected?: boolean;
12
+ isNodeHovered?: boolean;
13
+ setIsNodeHovered?: (isHovered: boolean) => void;
12
14
  }
13
15
  declare const InlineExtension: (props: Props) => jsx.JSX.Element;
14
16
  export default InlineExtension;
@@ -5,7 +5,7 @@ import type { LozengeData } from './Lozenge';
5
5
  export declare const ICON_SIZE = 24;
6
6
  type LozengeComponentProps = {
7
7
  lozengeData?: LozengeData;
8
- isBlockExtension: boolean;
8
+ extensionName: string;
9
9
  title: string;
10
10
  params: any;
11
11
  renderImage: (lozengeData: LozengeData) => void;
@@ -14,5 +14,5 @@ type LozengeComponentProps = {
14
14
  customContainerStyles?: CSSProperties;
15
15
  isNodeHovered?: boolean;
16
16
  };
17
- export declare const LozengeComponent: ({ lozengeData, isBlockExtension, title, params, renderImage, isNodeSelected, showMacroInteractionDesignUpdates, customContainerStyles, isNodeHovered, }: LozengeComponentProps) => jsx.JSX.Element;
17
+ export declare const LozengeComponent: ({ lozengeData, extensionName, title, params, renderImage, isNodeSelected, showMacroInteractionDesignUpdates, customContainerStyles, isNodeHovered, }: LozengeComponentProps) => jsx.JSX.Element | null;
18
18
  export {};
@@ -1,14 +1,18 @@
1
+ /** @jsx jsx */
1
2
  import React from 'react';
3
+ import { jsx } from '@emotion/react';
2
4
  type Props = {
3
5
  children: React.ReactNode;
4
6
  nodeType: string;
7
+ showMacroInteractionDesignUpdates?: boolean;
5
8
  };
6
9
  /**
7
10
  * If inlineExtension, add zero width space to the end of the nodes and wrap with span;
11
+ * Also if showMacroInteractionDesignUpdates is true, then add the inline-block style to account for the lozenge.
8
12
  * else wrap with a div (for multi bodied extensions)
9
13
  *
10
14
  * @param param0
11
15
  * @returns
12
16
  */
13
- export declare const ExtensionNodeWrapper: ({ children, nodeType }: Props) => JSX.Element;
17
+ export declare const ExtensionNodeWrapper: ({ children, nodeType, showMacroInteractionDesignUpdates, }: Props) => jsx.JSX.Element;
14
18
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "78.13.0",
3
+ "version": "78.14.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/"