@atlaskit/editor-common 78.8.5 → 78.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/afm-cc/tsconfig.json +3 -0
  3. package/dist/cjs/extensibility/Extension/Extension/index.js +17 -6
  4. package/dist/cjs/extensibility/Extension/InlineExtension/index.js +6 -2
  5. package/dist/cjs/extensibility/Extension/Lozenge.js +42 -49
  6. package/dist/cjs/extensibility/Extension/LozengeComponent.js +54 -0
  7. package/dist/cjs/extensibility/Extension/styles.js +5 -4
  8. package/dist/cjs/extensibility/ExtensionComponent.js +7 -2
  9. package/dist/cjs/monitoring/error.js +1 -1
  10. package/dist/cjs/ui/DropList/index.js +1 -1
  11. package/dist/es2019/extensibility/Extension/Extension/index.js +14 -6
  12. package/dist/es2019/extensibility/Extension/InlineExtension/index.js +7 -4
  13. package/dist/es2019/extensibility/Extension/Lozenge.js +46 -47
  14. package/dist/es2019/extensibility/Extension/LozengeComponent.js +45 -0
  15. package/dist/es2019/extensibility/Extension/styles.js +7 -0
  16. package/dist/es2019/extensibility/ExtensionComponent.js +9 -2
  17. package/dist/es2019/monitoring/error.js +1 -1
  18. package/dist/es2019/ui/DropList/index.js +1 -1
  19. package/dist/esm/extensibility/Extension/Extension/index.js +14 -6
  20. package/dist/esm/extensibility/Extension/InlineExtension/index.js +7 -4
  21. package/dist/esm/extensibility/Extension/Lozenge.js +42 -49
  22. package/dist/esm/extensibility/Extension/LozengeComponent.js +48 -0
  23. package/dist/esm/extensibility/Extension/styles.js +4 -3
  24. package/dist/esm/extensibility/ExtensionComponent.js +7 -2
  25. package/dist/esm/monitoring/error.js +1 -1
  26. package/dist/esm/ui/DropList/index.js +1 -1
  27. package/dist/types/extensibility/Extension/Extension/index.d.ts +1 -0
  28. package/dist/types/extensibility/Extension/InlineExtension/index.d.ts +2 -2
  29. package/dist/types/extensibility/Extension/Lozenge.d.ts +7 -2
  30. package/dist/types/extensibility/Extension/LozengeComponent.d.ts +15 -0
  31. package/dist/types/extensibility/Extension/styles.d.ts +1 -0
  32. package/dist/types-ts4.5/extensibility/Extension/Extension/index.d.ts +1 -0
  33. package/dist/types-ts4.5/extensibility/Extension/InlineExtension/index.d.ts +2 -2
  34. package/dist/types-ts4.5/extensibility/Extension/Lozenge.d.ts +7 -2
  35. package/dist/types-ts4.5/extensibility/Extension/LozengeComponent.d.ts +15 -0
  36. package/dist/types-ts4.5/extensibility/Extension/styles.d.ts +1 -0
  37. package/package.json +4 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 78.9.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+
9
+ ## 78.9.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#77158](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/77158) [`4a5f437bd464`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/4a5f437bd464) - [ux] Adds initial changes to extension lozenges for the macro visual design updates project in Confluence.
14
+
3
15
  ## 78.8.5
4
16
 
5
17
  ### Patch Changes
@@ -120,6 +120,9 @@
120
120
  {
121
121
  "path": "../../../design-system/spinner/afm-cc/tsconfig.json"
122
122
  },
123
+ {
124
+ "path": "../../../design-system/tag/afm-cc/tsconfig.json"
125
+ },
123
126
  {
124
127
  "path": "../../../elements/task-decision/afm-cc/tsconfig.json"
125
128
  },
@@ -1,6 +1,7 @@
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
  });
@@ -8,7 +9,7 @@ exports.default = void 0;
8
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
- var _react = _interopRequireDefault(require("react"));
12
+ var _react = _interopRequireWildcard(require("react"));
12
13
  var _react2 = require("@emotion/react");
13
14
  var _classnames2 = _interopRequireDefault(require("classnames"));
14
15
  var _withPluginState = require("../../..//with-plugin-state");
@@ -20,6 +21,8 @@ var _styles = require("../styles");
20
21
  var _styles2 = require("./styles");
21
22
  var _excluded = ["type"];
22
23
  /** @jsx jsx */
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
26
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
24
27
  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) { (0, _defineProperty2.default)(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; }
25
28
  function ExtensionWithPluginState(props) {
@@ -33,11 +36,13 @@ function ExtensionWithPluginState(props) {
33
36
  handleRef = props.handleRef,
34
37
  shadowClassNames = props.shadowClassNames,
35
38
  hideFrame = props.hideFrame,
36
- editorAppearance = props.editorAppearance;
39
+ editorAppearance = props.editorAppearance,
40
+ showMacroInteractionDesignUpdates = props.showMacroInteractionDesignUpdates,
41
+ isNodeSelected = props.isNodeSelected;
37
42
  var hasBody = ['bodiedExtension', 'multiBodiedExtension'].includes(node.type.name);
38
43
  var isMobile = editorAppearance === 'mobile';
39
44
  var hasChildren = !!children;
40
- var removeBorder = hideFrame && !isMobile && !hasBody || false;
45
+ var removeBorder = showMacroInteractionDesignUpdates || !!(hideFrame && !isMobile && !hasBody);
41
46
  var getPos = props.getPos,
42
47
  view = props.view;
43
48
  var isTopLevelNode = _react.default.useMemo(function () {
@@ -76,7 +81,11 @@ function ExtensionWithPluginState(props) {
76
81
  customContainerStyles = breakoutStyles;
77
82
  }
78
83
  newContentStyles = _objectSpread(_objectSpread({}, newContentStyles), _styles2.contentWrapper);
79
- return (0, _react2.jsx)("div", {
84
+ return (0, _react2.jsx)(_react.Fragment, null, showMacroInteractionDesignUpdates && (0, _react2.jsx)(_Lozenge.default, {
85
+ isNodeSelected: isNodeSelected,
86
+ node: node,
87
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
88
+ }), (0, _react2.jsx)("div", {
80
89
  ref: handleRef,
81
90
  "data-layout": node.attrs.layout,
82
91
  className: classNames,
@@ -92,14 +101,16 @@ function ExtensionWithPluginState(props) {
92
101
  contentEditable: false,
93
102
  className: headerClassNames
94
103
  }, !removeBorder && (0, _react2.jsx)(_Lozenge.default, {
95
- node: node
104
+ isNodeSelected: isNodeSelected,
105
+ node: node,
106
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
96
107
  }), children), hasBody && (0, _react2.jsx)("div", {
97
108
  css: newContentStyles
98
109
  }, (0, _react2.jsx)("div", {
99
110
  css: _styles2.content,
100
111
  ref: handleContentDOMRef,
101
112
  className: "extension-content block"
102
- }))));
113
+ })))));
103
114
  }
104
115
  var Extension = function Extension(props) {
105
116
  // TODO: ED-17836 This code is here because confluence injects
@@ -32,7 +32,9 @@ var InlineExtension = exports.default = /*#__PURE__*/function (_Component) {
32
32
  value: function render() {
33
33
  var _this$props = this.props,
34
34
  node = _this$props.node,
35
- children = _this$props.children;
35
+ children = _this$props.children,
36
+ showMacroInteractionDesignUpdates = _this$props.showMacroInteractionDesignUpdates,
37
+ isNodeSelected = _this$props.isNodeSelected;
36
38
  var hasChildren = !!children;
37
39
  var className = hasChildren ? 'with-overlay with-children' : 'with-overlay';
38
40
  return (0, _react2.jsx)("div", {
@@ -42,7 +44,9 @@ var InlineExtension = exports.default = /*#__PURE__*/function (_Component) {
42
44
  css: _styles.overlay,
43
45
  className: "extension-overlay"
44
46
  }), children ? children : (0, _react2.jsx)(_Lozenge.default, {
45
- node: node
47
+ node: node,
48
+ isNodeSelected: isNodeSelected,
49
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
46
50
  }));
47
51
  }
48
52
  }]);
@@ -4,35 +4,67 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = exports.capitalizeFirstLetter = exports.ICON_SIZE = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ exports.default = void 0;
9
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
14
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
15
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
17
  var _react = require("react");
17
18
  var _react2 = require("@emotion/react");
18
- var _file = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/file"));
19
19
  var _utils = require("../../utils");
20
+ var _LozengeComponent = require("./LozengeComponent");
20
21
  var _styles = require("./styles");
21
22
  var _excluded = ["url"];
22
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
- 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) { (0, _defineProperty2.default)(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; }
24
23
  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); }; }
25
24
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** @jsx jsx */
26
- var capitalizeFirstLetter = exports.capitalizeFirstLetter = function capitalizeFirstLetter(str) {
27
- return str.charAt(0).toUpperCase() + str.slice(1);
28
- };
29
- var ICON_SIZE = exports.ICON_SIZE = 24;
30
25
  var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
31
26
  (0, _inherits2.default)(ExtensionLozenge, _Component);
32
27
  var _super = _createSuper(ExtensionLozenge);
33
28
  function ExtensionLozenge() {
29
+ var _this;
34
30
  (0, _classCallCheck2.default)(this, ExtensionLozenge);
35
- return _super.apply(this, arguments);
31
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
32
+ args[_key] = arguments[_key];
33
+ }
34
+ _this = _super.call.apply(_super, [this].concat(args));
35
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderImage", function (lozengeData) {
36
+ var extensionKey = _this.props.node.attrs.extensionKey;
37
+ var url = lozengeData.url,
38
+ rest = (0, _objectWithoutProperties2.default)(lozengeData, _excluded);
39
+ return (0, _react2.jsx)("img", (0, _extends2.default)({
40
+ css: _styles.styledImage,
41
+ src: url
42
+ }, rest, {
43
+ alt: extensionKey
44
+ }));
45
+ });
46
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderFallback", function (lozengeData) {
47
+ var _this$props = _this.props,
48
+ showMacroInteractionDesignUpdates = _this$props.showMacroInteractionDesignUpdates,
49
+ isNodeSelected = _this$props.isNodeSelected;
50
+ var _this$props$node$attr = _this.props.node.attrs,
51
+ parameters = _this$props$node$attr.parameters,
52
+ extensionKey = _this$props$node$attr.extensionKey;
53
+ var name = _this.props.node.type.name;
54
+ var params = parameters && parameters.macroParams;
55
+ var title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
56
+ var isBlockExtension = name === 'extension';
57
+ return (0, _react2.jsx)(_LozengeComponent.LozengeComponent, {
58
+ isNodeSelected: isNodeSelected,
59
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
60
+ isBlockExtension: isBlockExtension,
61
+ lozengeData: lozengeData,
62
+ params: params,
63
+ title: title,
64
+ renderImage: _this.renderImage
65
+ });
66
+ });
67
+ return _this;
36
68
  }
37
69
  (0, _createClass2.default)(ExtensionLozenge, [{
38
70
  key: "render",
@@ -51,45 +83,6 @@ var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
51
83
  });
52
84
  return this.renderFallback(iconData);
53
85
  }
54
- }, {
55
- key: "renderImage",
56
- value: function renderImage(lozengeData) {
57
- var extensionKey = this.props.node.attrs.extensionKey;
58
- var url = lozengeData.url,
59
- rest = (0, _objectWithoutProperties2.default)(lozengeData, _excluded);
60
- return (0, _react2.jsx)("img", (0, _extends2.default)({
61
- css: _styles.styledImage,
62
- src: url
63
- }, rest, {
64
- alt: extensionKey
65
- }));
66
- }
67
- }, {
68
- key: "renderFallback",
69
- value: function renderFallback(lozengeData) {
70
- var _this$props$node$attr = this.props.node.attrs,
71
- parameters = _this$props$node$attr.parameters,
72
- extensionKey = _this$props$node$attr.extensionKey;
73
- var name = this.props.node.type.name;
74
- var params = parameters && parameters.macroParams;
75
- var title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
76
- var isBlockExtension = name === 'extension';
77
- return (0, _react2.jsx)("div", {
78
- "data-testid": "lozenge-fallback",
79
- css: _styles.placeholderFallback
80
- }, lozengeData && !isBlockExtension ? this.renderImage(_objectSpread({
81
- height: ICON_SIZE,
82
- width: ICON_SIZE
83
- }, lozengeData)) : (0, _react2.jsx)(_file.default, {
84
- label: title
85
- }), (0, _react2.jsx)("span", {
86
- className: "extension-title"
87
- }, capitalizeFirstLetter(title)), params && !isBlockExtension && (0, _react2.jsx)("span", {
88
- css: _styles.placeholderFallbackParams
89
- }, Object.keys(params).map(function (key) {
90
- return key && " | ".concat(key, " = ").concat(params[key].value);
91
- })));
92
- }
93
86
  }]);
94
87
  return ExtensionLozenge;
95
88
  }(_react.Component);
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.LozengeComponent = exports.ICON_SIZE = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = require("@emotion/react");
10
+ var _file = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/file"));
11
+ var _tag = require("@atlaskit/tag");
12
+ var _styles = require("./styles");
13
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ 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) { (0, _defineProperty2.default)(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; } /** @jsx jsx */
15
+ var ICON_SIZE = exports.ICON_SIZE = 24;
16
+ var capitalizeFirstLetter = function capitalizeFirstLetter(str) {
17
+ return str.charAt(0).toUpperCase() + str.slice(1);
18
+ };
19
+ var LozengeComponent = exports.LozengeComponent = function LozengeComponent(_ref) {
20
+ var lozengeData = _ref.lozengeData,
21
+ isBlockExtension = _ref.isBlockExtension,
22
+ title = _ref.title,
23
+ params = _ref.params,
24
+ renderImage = _ref.renderImage,
25
+ isNodeSelected = _ref.isNodeSelected,
26
+ showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates;
27
+ var capitalizedTitle = capitalizeFirstLetter(title);
28
+ // TODO: only show on lozenge on hover: https://product-fabric.atlassian.net/browse/PGXT-4945
29
+ if (showMacroInteractionDesignUpdates) {
30
+ return (0, _react.jsx)("div", {
31
+ className: "extension-title",
32
+ css: _styles.lozengeWrapper,
33
+ "data-testid": "new-lozenge"
34
+ }, (0, _react.jsx)(_tag.SimpleTag, {
35
+ text: capitalizedTitle,
36
+ color: isNodeSelected ? 'blueLight' : 'greyLight'
37
+ }));
38
+ }
39
+ return (0, _react.jsx)("div", {
40
+ "data-testid": "lozenge-fallback",
41
+ css: _styles.placeholderFallback
42
+ }, lozengeData && !isBlockExtension ? renderImage(_objectSpread({
43
+ height: ICON_SIZE,
44
+ width: ICON_SIZE
45
+ }, lozengeData)) : (0, _react.jsx)(_file.default, {
46
+ label: title
47
+ }), (0, _react.jsx)("span", {
48
+ className: "extension-title"
49
+ }, capitalizedTitle), params && !isBlockExtension && (0, _react.jsx)("span", {
50
+ css: _styles.placeholderFallbackParams
51
+ }, Object.keys(params).map(function (key) {
52
+ return key && " | ".concat(key, " = ").concat(params[key].value);
53
+ })));
54
+ };
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "BODIED_EXT_PADDING", {
10
10
  return _styles.BODIED_EXT_PADDING;
11
11
  }
12
12
  });
13
- exports.overlay = void 0;
13
+ exports.overlay = exports.lozengeWrapper = void 0;
14
14
  Object.defineProperty(exports, "padding", {
15
15
  enumerable: true,
16
16
  get: function get() {
@@ -22,9 +22,10 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
22
22
  var _react = require("@emotion/react");
23
23
  var _colors = require("@atlaskit/theme/colors");
24
24
  var _styles = require("../../styles");
25
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
25
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
26
26
  var wrapperDefault = exports.wrapperDefault = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background: ", ";\n border-radius: ", ";\n position: relative;\n vertical-align: middle;\n\n .ProseMirror-selectednode > span > & > .extension-overlay {\n box-shadow: inset 0px 0px 0px 2px ", ";\n opacity: 1;\n }\n\n &.with-overlay {\n .extension-overlay {\n background: ", ";\n color: transparent;\n }\n\n &:hover .extension-overlay {\n opacity: 1;\n }\n }\n"])), "var(--ds-background-neutral, ".concat(_colors.N20, ")"), "var(--ds-border-radius, 3px)", "var(--ds-border-selected, ".concat(_colors.B200, ")"), "var(--ds-background-neutral-hovered, ".concat(_colors.N20A, ")"));
27
27
  var overlay = exports.overlay = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n border-radius: ", ";\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.3s;\n"])), "var(--ds-border-radius, 3px)");
28
- var placeholderFallback = exports.placeholderFallback = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: inline-flex;\n align-items: center;\n\n & > img {\n margin: 0 ", ";\n }\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: placeholder-fallback;\n"])), "var(--ds-space-050, 4px)");
28
+ var placeholderFallback = exports.placeholderFallback = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: inline-flex;\n align-items: center;\n\n & > img {\n margin: 0 ", ";\n }\n\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: placeholder-fallback;\n"])), "var(--ds-space-050, 4px)");
29
29
  var placeholderFallbackParams = exports.placeholderFallbackParams = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n display: inline-block;\n max-width: 200px;\n margin-left: 5px;\n color: ", ";\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n"])), "var(--ds-text-subtlest, ".concat(_colors.N70, ")"));
30
- var styledImage = exports.styledImage = (0, _react.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n max-height: 16px;\n max-width: 16px;\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: lozenge-image;\n"])));
30
+ var styledImage = exports.styledImage = (0, _react.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n max-height: 16px;\n max-width: 16px;\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: lozenge-image;\n"])));
31
+ var lozengeWrapper = exports.lozengeWrapper = (0, _react.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n justify-content: left;\n width: 100%;\n margin-left: ", ";\n"])), "var(--ds-space-050, 4px)");
@@ -17,6 +17,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
17
17
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
18
  var _react = _interopRequireWildcard(require("react"));
19
19
  var _memoizeOne = _interopRequireDefault(require("memoize-one"));
20
+ var _state = require("@atlaskit/editor-prosemirror/state");
20
21
  var _extensions = require("../extensions");
21
22
  var _utils = require("../utils");
22
23
  var _Extension = _interopRequireDefault(require("./Extension/Extension"));
@@ -195,6 +196,8 @@ var ExtensionComponent = exports.ExtensionComponent = /*#__PURE__*/function (_Co
195
196
  getPos = _this$props2.getPos,
196
197
  eventDispatcher = _this$props2.eventDispatcher,
197
198
  showMacroInteractionDesignUpdates = _this$props2.showMacroInteractionDesignUpdates;
199
+ var selection = editorView.state.selection;
200
+ var selectedNode = selection instanceof _state.NodeSelection && selection.node;
198
201
  if (node.type.name === 'multiBodiedExtension') {
199
202
  return /*#__PURE__*/_react.default.createElement(_MultiBodiedExtension.default, {
200
203
  node: node,
@@ -222,12 +225,14 @@ var ExtensionComponent = exports.ExtensionComponent = /*#__PURE__*/function (_Co
222
225
  editorAppearance: editorAppearance,
223
226
  hideFrame: (_this$state$_privateP = this.state._privateProps) === null || _this$state$_privateP === void 0 ? void 0 : _this$state$_privateP.__hideFrame,
224
227
  pluginInjectionApi: pluginInjectionApi,
225
- showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
228
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
229
+ isNodeSelected: selectedNode === node
226
230
  }, extensionHandlerResult);
227
231
  case 'inlineExtension':
228
232
  return /*#__PURE__*/_react.default.createElement(_InlineExtension.default, {
229
233
  node: node,
230
- showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
234
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
235
+ isNodeSelected: selectedNode === node
231
236
  }, extensionHandlerResult);
232
237
  default:
233
238
  return null;
@@ -16,7 +16,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
16
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
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.8.5";
19
+ var packageVersion = "78.9.1";
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
@@ -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() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** @jsx jsx */
24
24
  var packageName = "@atlaskit/editor-common";
25
- var packageVersion = "78.8.5";
25
+ var packageVersion = "78.9.1";
26
26
  var halfFocusRing = 1;
27
27
  var dropOffset = '0, 8';
28
28
  var DropList = /*#__PURE__*/function (_Component) {
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  /** @jsx jsx */
3
3
 
4
- import React from 'react';
4
+ import React, { Fragment } from 'react';
5
5
  import { jsx } from '@emotion/react';
6
6
  import classnames from 'classnames';
7
7
  import { WithPluginState } from '../../..//with-plugin-state';
@@ -22,12 +22,14 @@ function ExtensionWithPluginState(props) {
22
22
  handleRef,
23
23
  shadowClassNames,
24
24
  hideFrame,
25
- editorAppearance
25
+ editorAppearance,
26
+ showMacroInteractionDesignUpdates,
27
+ isNodeSelected
26
28
  } = props;
27
29
  const hasBody = ['bodiedExtension', 'multiBodiedExtension'].includes(node.type.name);
28
30
  const isMobile = editorAppearance === 'mobile';
29
31
  const hasChildren = !!children;
30
- const removeBorder = hideFrame && !isMobile && !hasBody || false;
32
+ const removeBorder = showMacroInteractionDesignUpdates || !!(hideFrame && !isMobile && !hasBody);
31
33
  const {
32
34
  getPos,
33
35
  view
@@ -75,7 +77,11 @@ function ExtensionWithPluginState(props) {
75
77
  ...newContentStyles,
76
78
  ...contentWrapper
77
79
  };
78
- return jsx("div", {
80
+ return jsx(Fragment, null, showMacroInteractionDesignUpdates && jsx(ExtensionLozenge, {
81
+ isNodeSelected: isNodeSelected,
82
+ node: node,
83
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
84
+ }), jsx("div", {
79
85
  ref: handleRef,
80
86
  "data-layout": node.attrs.layout,
81
87
  className: classNames,
@@ -91,14 +97,16 @@ function ExtensionWithPluginState(props) {
91
97
  contentEditable: false,
92
98
  className: headerClassNames
93
99
  }, !removeBorder && jsx(ExtensionLozenge, {
94
- node: node
100
+ isNodeSelected: isNodeSelected,
101
+ node: node,
102
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
95
103
  }), children), hasBody && jsx("div", {
96
104
  css: newContentStyles
97
105
  }, jsx("div", {
98
106
  css: content,
99
107
  ref: handleContentDOMRef,
100
108
  className: "extension-content block"
101
- }))));
109
+ })))));
102
110
  }
103
111
  const Extension = props => {
104
112
  // TODO: ED-17836 This code is here because confluence injects
@@ -1,6 +1,5 @@
1
1
  /** @jsx jsx */
2
- import React from 'react';
3
- import { Component } from 'react';
2
+ import React, { Component } from 'react';
4
3
  import { jsx } from '@emotion/react';
5
4
  import ExtensionLozenge from '../Lozenge';
6
5
  import { overlay } from '../styles';
@@ -9,7 +8,9 @@ export default class InlineExtension extends Component {
9
8
  render() {
10
9
  const {
11
10
  node,
12
- children
11
+ children,
12
+ showMacroInteractionDesignUpdates,
13
+ isNodeSelected
13
14
  } = this.props;
14
15
  const hasChildren = !!children;
15
16
  const className = hasChildren ? 'with-overlay with-children' : 'with-overlay';
@@ -20,7 +21,9 @@ export default class InlineExtension extends Component {
20
21
  css: overlay,
21
22
  className: "extension-overlay"
22
23
  }), children ? children : jsx(ExtensionLozenge, {
23
- node: node
24
+ node: node,
25
+ isNodeSelected: isNodeSelected,
26
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
24
27
  }));
25
28
  }
26
29
  }
@@ -1,15 +1,55 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
3
  /** @jsx jsx */
3
4
  import { Component } from 'react';
4
5
  import { jsx } from '@emotion/react';
5
- import EditorFileIcon from '@atlaskit/icon/glyph/editor/file';
6
6
  import { getExtensionLozengeData } from '../../utils';
7
- import { placeholderFallback, placeholderFallbackParams, styledImage } from './styles';
8
- export const capitalizeFirstLetter = str => {
9
- return str.charAt(0).toUpperCase() + str.slice(1);
10
- };
11
- export const ICON_SIZE = 24;
7
+ import { LozengeComponent } from './LozengeComponent';
8
+ import { styledImage } from './styles';
12
9
  export default class ExtensionLozenge extends Component {
10
+ constructor(...args) {
11
+ super(...args);
12
+ _defineProperty(this, "renderImage", lozengeData => {
13
+ const {
14
+ extensionKey
15
+ } = this.props.node.attrs;
16
+ const {
17
+ url,
18
+ ...rest
19
+ } = lozengeData;
20
+ return jsx("img", _extends({
21
+ css: styledImage,
22
+ src: url
23
+ }, rest, {
24
+ alt: extensionKey
25
+ }));
26
+ });
27
+ _defineProperty(this, "renderFallback", lozengeData => {
28
+ const {
29
+ showMacroInteractionDesignUpdates,
30
+ isNodeSelected
31
+ } = this.props;
32
+ const {
33
+ parameters,
34
+ extensionKey
35
+ } = this.props.node.attrs;
36
+ const {
37
+ name
38
+ } = this.props.node.type;
39
+ const params = parameters && parameters.macroParams;
40
+ const title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
41
+ const isBlockExtension = name === 'extension';
42
+ return jsx(LozengeComponent, {
43
+ isNodeSelected: isNodeSelected,
44
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
45
+ isBlockExtension: isBlockExtension,
46
+ lozengeData: lozengeData,
47
+ params: params,
48
+ title: title,
49
+ renderImage: this.renderImage
50
+ });
51
+ });
52
+ }
13
53
  render() {
14
54
  const {
15
55
  node
@@ -27,45 +67,4 @@ export default class ExtensionLozenge extends Component {
27
67
  });
28
68
  return this.renderFallback(iconData);
29
69
  }
30
- renderImage(lozengeData) {
31
- const {
32
- extensionKey
33
- } = this.props.node.attrs;
34
- const {
35
- url,
36
- ...rest
37
- } = lozengeData;
38
- return jsx("img", _extends({
39
- css: styledImage,
40
- src: url
41
- }, rest, {
42
- alt: extensionKey
43
- }));
44
- }
45
- renderFallback(lozengeData) {
46
- const {
47
- parameters,
48
- extensionKey
49
- } = this.props.node.attrs;
50
- const {
51
- name
52
- } = this.props.node.type;
53
- const params = parameters && parameters.macroParams;
54
- const title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
55
- const isBlockExtension = name === 'extension';
56
- return jsx("div", {
57
- "data-testid": "lozenge-fallback",
58
- css: placeholderFallback
59
- }, lozengeData && !isBlockExtension ? this.renderImage({
60
- height: ICON_SIZE,
61
- width: ICON_SIZE,
62
- ...lozengeData
63
- }) : jsx(EditorFileIcon, {
64
- label: title
65
- }), jsx("span", {
66
- className: "extension-title"
67
- }, capitalizeFirstLetter(title)), params && !isBlockExtension && jsx("span", {
68
- css: placeholderFallbackParams
69
- }, Object.keys(params).map(key => key && ` | ${key} = ${params[key].value}`)));
70
- }
71
70
  }
@@ -0,0 +1,45 @@
1
+ /** @jsx jsx */
2
+ import { jsx } from '@emotion/react';
3
+ import EditorFileIcon from '@atlaskit/icon/glyph/editor/file';
4
+ import { SimpleTag as Tag } from '@atlaskit/tag';
5
+ import { lozengeWrapper, placeholderFallback, placeholderFallbackParams } from './styles';
6
+ export const ICON_SIZE = 24;
7
+ const capitalizeFirstLetter = str => {
8
+ return str.charAt(0).toUpperCase() + str.slice(1);
9
+ };
10
+ export const LozengeComponent = ({
11
+ lozengeData,
12
+ isBlockExtension,
13
+ title,
14
+ params,
15
+ renderImage,
16
+ isNodeSelected,
17
+ showMacroInteractionDesignUpdates
18
+ }) => {
19
+ const capitalizedTitle = capitalizeFirstLetter(title);
20
+ // TODO: only show on lozenge on hover: https://product-fabric.atlassian.net/browse/PGXT-4945
21
+ if (showMacroInteractionDesignUpdates) {
22
+ return jsx("div", {
23
+ className: "extension-title",
24
+ css: lozengeWrapper,
25
+ "data-testid": "new-lozenge"
26
+ }, jsx(Tag, {
27
+ text: capitalizedTitle,
28
+ color: isNodeSelected ? 'blueLight' : 'greyLight'
29
+ }));
30
+ }
31
+ return jsx("div", {
32
+ "data-testid": "lozenge-fallback",
33
+ css: placeholderFallback
34
+ }, lozengeData && !isBlockExtension ? renderImage({
35
+ height: ICON_SIZE,
36
+ width: ICON_SIZE,
37
+ ...lozengeData
38
+ }) : jsx(EditorFileIcon, {
39
+ label: title
40
+ }), jsx("span", {
41
+ className: "extension-title"
42
+ }, capitalizedTitle), params && !isBlockExtension && jsx("span", {
43
+ css: placeholderFallbackParams
44
+ }, Object.keys(params).map(key => key && ` | ${key} = ${params[key].value}`)));
45
+ };
@@ -40,6 +40,7 @@ export const placeholderFallback = css`
40
40
  & > img {
41
41
  margin: 0 ${"var(--ds-space-050, 4px)"};
42
42
  }
43
+
43
44
  /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */
44
45
  /* stylelint-disable-next-line */
45
46
  label: placeholder-fallback;
@@ -59,4 +60,10 @@ export const styledImage = css`
59
60
  /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */
60
61
  /* stylelint-disable-next-line */
61
62
  label: lozenge-image;
63
+ `;
64
+ export const lozengeWrapper = css`
65
+ display: flex;
66
+ justify-content: left;
67
+ width: 100%;
68
+ margin-left: ${"var(--ds-space-050, 4px)"};
62
69
  `;
@@ -1,6 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import React, { Component } from 'react';
3
3
  import memoizeOne from 'memoize-one';
4
+ import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
4
5
  import { getExtensionModuleNodePrivateProps, getNodeRenderer } from '../extensions';
5
6
  import { getExtensionRenderer } from '../utils';
6
7
  import Extension from './Extension/Extension';
@@ -148,6 +149,10 @@ export class ExtensionComponent extends Component {
148
149
  eventDispatcher,
149
150
  showMacroInteractionDesignUpdates
150
151
  } = this.props;
152
+ const {
153
+ selection
154
+ } = editorView.state;
155
+ const selectedNode = selection instanceof NodeSelection && selection.node;
151
156
  if (node.type.name === 'multiBodiedExtension') {
152
157
  return /*#__PURE__*/React.createElement(MultiBodiedExtension, {
153
158
  node: node,
@@ -175,12 +180,14 @@ export class ExtensionComponent extends Component {
175
180
  editorAppearance: editorAppearance,
176
181
  hideFrame: (_this$state$_privateP = this.state._privateProps) === null || _this$state$_privateP === void 0 ? void 0 : _this$state$_privateP.__hideFrame,
177
182
  pluginInjectionApi: pluginInjectionApi,
178
- showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
183
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
184
+ isNodeSelected: selectedNode === node
179
185
  }, extensionHandlerResult);
180
186
  case 'inlineExtension':
181
187
  return /*#__PURE__*/React.createElement(InlineExtension, {
182
188
  node: node,
183
- showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
189
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
190
+ isNodeSelected: selectedNode === node
184
191
  }, extensionHandlerResult);
185
192
  default:
186
193
  return null;
@@ -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.8.5";
3
+ const packageVersion = "78.9.1";
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
@@ -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.8.5";
10
+ const packageVersion = "78.9.1";
11
11
  const halfFocusRing = 1;
12
12
  const dropOffset = '0, 8';
13
13
  class DropList extends Component {
@@ -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
  /** @jsx jsx */
8
8
 
9
- import React from 'react';
9
+ import React, { Fragment } from 'react';
10
10
  import { jsx } from '@emotion/react';
11
11
  import classnames from 'classnames';
12
12
  import { WithPluginState } from '../../..//with-plugin-state';
@@ -27,11 +27,13 @@ function ExtensionWithPluginState(props) {
27
27
  handleRef = props.handleRef,
28
28
  shadowClassNames = props.shadowClassNames,
29
29
  hideFrame = props.hideFrame,
30
- editorAppearance = props.editorAppearance;
30
+ editorAppearance = props.editorAppearance,
31
+ showMacroInteractionDesignUpdates = props.showMacroInteractionDesignUpdates,
32
+ isNodeSelected = props.isNodeSelected;
31
33
  var hasBody = ['bodiedExtension', 'multiBodiedExtension'].includes(node.type.name);
32
34
  var isMobile = editorAppearance === 'mobile';
33
35
  var hasChildren = !!children;
34
- var removeBorder = hideFrame && !isMobile && !hasBody || false;
36
+ var removeBorder = showMacroInteractionDesignUpdates || !!(hideFrame && !isMobile && !hasBody);
35
37
  var getPos = props.getPos,
36
38
  view = props.view;
37
39
  var isTopLevelNode = React.useMemo(function () {
@@ -70,7 +72,11 @@ function ExtensionWithPluginState(props) {
70
72
  customContainerStyles = breakoutStyles;
71
73
  }
72
74
  newContentStyles = _objectSpread(_objectSpread({}, newContentStyles), contentWrapper);
73
- return jsx("div", {
75
+ return jsx(Fragment, null, showMacroInteractionDesignUpdates && jsx(ExtensionLozenge, {
76
+ isNodeSelected: isNodeSelected,
77
+ node: node,
78
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
79
+ }), jsx("div", {
74
80
  ref: handleRef,
75
81
  "data-layout": node.attrs.layout,
76
82
  className: classNames,
@@ -86,14 +92,16 @@ function ExtensionWithPluginState(props) {
86
92
  contentEditable: false,
87
93
  className: headerClassNames
88
94
  }, !removeBorder && jsx(ExtensionLozenge, {
89
- node: node
95
+ isNodeSelected: isNodeSelected,
96
+ node: node,
97
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
90
98
  }), children), hasBody && jsx("div", {
91
99
  css: newContentStyles
92
100
  }, jsx("div", {
93
101
  css: content,
94
102
  ref: handleContentDOMRef,
95
103
  className: "extension-content block"
96
- }))));
104
+ })))));
97
105
  }
98
106
  var Extension = function Extension(props) {
99
107
  // TODO: ED-17836 This code is here because confluence injects
@@ -6,8 +6,7 @@ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
6
6
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
7
7
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
8
8
  /** @jsx jsx */
9
- import React from 'react';
10
- import { Component } from 'react';
9
+ import React, { Component } from 'react';
11
10
  import { jsx } from '@emotion/react';
12
11
  import ExtensionLozenge from '../Lozenge';
13
12
  import { overlay } from '../styles';
@@ -24,7 +23,9 @@ var InlineExtension = /*#__PURE__*/function (_Component) {
24
23
  value: function render() {
25
24
  var _this$props = this.props,
26
25
  node = _this$props.node,
27
- children = _this$props.children;
26
+ children = _this$props.children,
27
+ showMacroInteractionDesignUpdates = _this$props.showMacroInteractionDesignUpdates,
28
+ isNodeSelected = _this$props.isNodeSelected;
28
29
  var hasChildren = !!children;
29
30
  var className = hasChildren ? 'with-overlay with-children' : 'with-overlay';
30
31
  return jsx("div", {
@@ -34,7 +35,9 @@ var InlineExtension = /*#__PURE__*/function (_Component) {
34
35
  css: overlay,
35
36
  className: "extension-overlay"
36
37
  }), children ? children : jsx(ExtensionLozenge, {
37
- node: node
38
+ node: node,
39
+ isNodeSelected: isNodeSelected,
40
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
38
41
  }));
39
42
  }
40
43
  }]);
@@ -1,32 +1,64 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
1
  import _extends from "@babel/runtime/helpers/extends";
3
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
3
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
5
4
  import _createClass from "@babel/runtime/helpers/createClass";
5
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
6
6
  import _inherits from "@babel/runtime/helpers/inherits";
7
7
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
8
8
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
9
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
9
10
  var _excluded = ["url"];
10
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
- 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; }
12
11
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
13
12
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
14
13
  /** @jsx jsx */
15
14
  import { Component } from 'react';
16
15
  import { jsx } from '@emotion/react';
17
- import EditorFileIcon from '@atlaskit/icon/glyph/editor/file';
18
16
  import { getExtensionLozengeData } from '../../utils';
19
- import { placeholderFallback, placeholderFallbackParams, styledImage } from './styles';
20
- export var capitalizeFirstLetter = function capitalizeFirstLetter(str) {
21
- return str.charAt(0).toUpperCase() + str.slice(1);
22
- };
23
- export var ICON_SIZE = 24;
17
+ import { LozengeComponent } from './LozengeComponent';
18
+ import { styledImage } from './styles';
24
19
  var ExtensionLozenge = /*#__PURE__*/function (_Component) {
25
20
  _inherits(ExtensionLozenge, _Component);
26
21
  var _super = _createSuper(ExtensionLozenge);
27
22
  function ExtensionLozenge() {
23
+ var _this;
28
24
  _classCallCheck(this, ExtensionLozenge);
29
- return _super.apply(this, arguments);
25
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
26
+ args[_key] = arguments[_key];
27
+ }
28
+ _this = _super.call.apply(_super, [this].concat(args));
29
+ _defineProperty(_assertThisInitialized(_this), "renderImage", function (lozengeData) {
30
+ var extensionKey = _this.props.node.attrs.extensionKey;
31
+ var url = lozengeData.url,
32
+ rest = _objectWithoutProperties(lozengeData, _excluded);
33
+ return jsx("img", _extends({
34
+ css: styledImage,
35
+ src: url
36
+ }, rest, {
37
+ alt: extensionKey
38
+ }));
39
+ });
40
+ _defineProperty(_assertThisInitialized(_this), "renderFallback", function (lozengeData) {
41
+ var _this$props = _this.props,
42
+ showMacroInteractionDesignUpdates = _this$props.showMacroInteractionDesignUpdates,
43
+ isNodeSelected = _this$props.isNodeSelected;
44
+ var _this$props$node$attr = _this.props.node.attrs,
45
+ parameters = _this$props$node$attr.parameters,
46
+ extensionKey = _this$props$node$attr.extensionKey;
47
+ var name = _this.props.node.type.name;
48
+ var params = parameters && parameters.macroParams;
49
+ var title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
50
+ var isBlockExtension = name === 'extension';
51
+ return jsx(LozengeComponent, {
52
+ isNodeSelected: isNodeSelected,
53
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
54
+ isBlockExtension: isBlockExtension,
55
+ lozengeData: lozengeData,
56
+ params: params,
57
+ title: title,
58
+ renderImage: _this.renderImage
59
+ });
60
+ });
61
+ return _this;
30
62
  }
31
63
  _createClass(ExtensionLozenge, [{
32
64
  key: "render",
@@ -45,45 +77,6 @@ var ExtensionLozenge = /*#__PURE__*/function (_Component) {
45
77
  });
46
78
  return this.renderFallback(iconData);
47
79
  }
48
- }, {
49
- key: "renderImage",
50
- value: function renderImage(lozengeData) {
51
- var extensionKey = this.props.node.attrs.extensionKey;
52
- var url = lozengeData.url,
53
- rest = _objectWithoutProperties(lozengeData, _excluded);
54
- return jsx("img", _extends({
55
- css: styledImage,
56
- src: url
57
- }, rest, {
58
- alt: extensionKey
59
- }));
60
- }
61
- }, {
62
- key: "renderFallback",
63
- value: function renderFallback(lozengeData) {
64
- var _this$props$node$attr = this.props.node.attrs,
65
- parameters = _this$props$node$attr.parameters,
66
- extensionKey = _this$props$node$attr.extensionKey;
67
- var name = this.props.node.type.name;
68
- var params = parameters && parameters.macroParams;
69
- var title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
70
- var isBlockExtension = name === 'extension';
71
- return jsx("div", {
72
- "data-testid": "lozenge-fallback",
73
- css: placeholderFallback
74
- }, lozengeData && !isBlockExtension ? this.renderImage(_objectSpread({
75
- height: ICON_SIZE,
76
- width: ICON_SIZE
77
- }, lozengeData)) : jsx(EditorFileIcon, {
78
- label: title
79
- }), jsx("span", {
80
- className: "extension-title"
81
- }, capitalizeFirstLetter(title)), params && !isBlockExtension && jsx("span", {
82
- css: placeholderFallbackParams
83
- }, Object.keys(params).map(function (key) {
84
- return key && " | ".concat(key, " = ").concat(params[key].value);
85
- })));
86
- }
87
80
  }]);
88
81
  return ExtensionLozenge;
89
82
  }(Component);
@@ -0,0 +1,48 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ 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; }
4
+ /** @jsx jsx */
5
+ import { jsx } from '@emotion/react';
6
+ import EditorFileIcon from '@atlaskit/icon/glyph/editor/file';
7
+ import { SimpleTag as Tag } from '@atlaskit/tag';
8
+ import { lozengeWrapper, placeholderFallback, placeholderFallbackParams } from './styles';
9
+ export var ICON_SIZE = 24;
10
+ var capitalizeFirstLetter = function capitalizeFirstLetter(str) {
11
+ return str.charAt(0).toUpperCase() + str.slice(1);
12
+ };
13
+ export var LozengeComponent = function LozengeComponent(_ref) {
14
+ var lozengeData = _ref.lozengeData,
15
+ isBlockExtension = _ref.isBlockExtension,
16
+ title = _ref.title,
17
+ params = _ref.params,
18
+ renderImage = _ref.renderImage,
19
+ isNodeSelected = _ref.isNodeSelected,
20
+ showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates;
21
+ var capitalizedTitle = capitalizeFirstLetter(title);
22
+ // TODO: only show on lozenge on hover: https://product-fabric.atlassian.net/browse/PGXT-4945
23
+ if (showMacroInteractionDesignUpdates) {
24
+ return jsx("div", {
25
+ className: "extension-title",
26
+ css: lozengeWrapper,
27
+ "data-testid": "new-lozenge"
28
+ }, jsx(Tag, {
29
+ text: capitalizedTitle,
30
+ color: isNodeSelected ? 'blueLight' : 'greyLight'
31
+ }));
32
+ }
33
+ return jsx("div", {
34
+ "data-testid": "lozenge-fallback",
35
+ css: placeholderFallback
36
+ }, lozengeData && !isBlockExtension ? renderImage(_objectSpread({
37
+ height: ICON_SIZE,
38
+ width: ICON_SIZE
39
+ }, lozengeData)) : jsx(EditorFileIcon, {
40
+ label: title
41
+ }), jsx("span", {
42
+ className: "extension-title"
43
+ }, capitalizedTitle), params && !isBlockExtension && jsx("span", {
44
+ css: placeholderFallbackParams
45
+ }, Object.keys(params).map(function (key) {
46
+ return key && " | ".concat(key, " = ").concat(params[key].value);
47
+ })));
48
+ };
@@ -1,11 +1,12 @@
1
1
  import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
2
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
3
3
  import { css } from '@emotion/react';
4
4
  import { B200, N20, N20A, N70 } from '@atlaskit/theme/colors';
5
5
  import { BODIED_EXT_PADDING, EXTENSION_PADDING } from '../../styles';
6
6
  export { EXTENSION_PADDING as padding, BODIED_EXT_PADDING };
7
7
  export var wrapperDefault = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background: ", ";\n border-radius: ", ";\n position: relative;\n vertical-align: middle;\n\n .ProseMirror-selectednode > span > & > .extension-overlay {\n box-shadow: inset 0px 0px 0px 2px ", ";\n opacity: 1;\n }\n\n &.with-overlay {\n .extension-overlay {\n background: ", ";\n color: transparent;\n }\n\n &:hover .extension-overlay {\n opacity: 1;\n }\n }\n"])), "var(--ds-background-neutral, ".concat(N20, ")"), "var(--ds-border-radius, 3px)", "var(--ds-border-selected, ".concat(B200, ")"), "var(--ds-background-neutral-hovered, ".concat(N20A, ")"));
8
8
  export var overlay = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n border-radius: ", ";\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.3s;\n"])), "var(--ds-border-radius, 3px)");
9
- export var placeholderFallback = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: inline-flex;\n align-items: center;\n\n & > img {\n margin: 0 ", ";\n }\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: placeholder-fallback;\n"])), "var(--ds-space-050, 4px)");
9
+ export var placeholderFallback = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: inline-flex;\n align-items: center;\n\n & > img {\n margin: 0 ", ";\n }\n\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: placeholder-fallback;\n"])), "var(--ds-space-050, 4px)");
10
10
  export var placeholderFallbackParams = css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: inline-block;\n max-width: 200px;\n margin-left: 5px;\n color: ", ";\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n"])), "var(--ds-text-subtlest, ".concat(N70, ")"));
11
- export var styledImage = css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n max-height: 16px;\n max-width: 16px;\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: lozenge-image;\n"])));
11
+ export var styledImage = css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n max-height: 16px;\n max-width: 16px;\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: lozenge-image;\n"])));
12
+ export var lozengeWrapper = css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: left;\n width: 100%;\n margin-left: ", ";\n"])), "var(--ds-space-050, 4px)");
@@ -11,6 +11,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
11
11
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
12
12
  import React, { Component } from 'react';
13
13
  import memoizeOne from 'memoize-one';
14
+ import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
14
15
  import { getExtensionModuleNodePrivateProps, getNodeRenderer } from '../extensions';
15
16
  import { getExtensionRenderer } from '../utils';
16
17
  import Extension from './Extension/Extension';
@@ -185,6 +186,8 @@ export var ExtensionComponent = /*#__PURE__*/function (_Component) {
185
186
  getPos = _this$props2.getPos,
186
187
  eventDispatcher = _this$props2.eventDispatcher,
187
188
  showMacroInteractionDesignUpdates = _this$props2.showMacroInteractionDesignUpdates;
189
+ var selection = editorView.state.selection;
190
+ var selectedNode = selection instanceof NodeSelection && selection.node;
188
191
  if (node.type.name === 'multiBodiedExtension') {
189
192
  return /*#__PURE__*/React.createElement(MultiBodiedExtension, {
190
193
  node: node,
@@ -212,12 +215,14 @@ export var ExtensionComponent = /*#__PURE__*/function (_Component) {
212
215
  editorAppearance: editorAppearance,
213
216
  hideFrame: (_this$state$_privateP = this.state._privateProps) === null || _this$state$_privateP === void 0 ? void 0 : _this$state$_privateP.__hideFrame,
214
217
  pluginInjectionApi: pluginInjectionApi,
215
- showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
218
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
219
+ isNodeSelected: selectedNode === node
216
220
  }, extensionHandlerResult);
217
221
  case 'inlineExtension':
218
222
  return /*#__PURE__*/React.createElement(InlineExtension, {
219
223
  node: node,
220
- showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
224
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
225
+ isNodeSelected: selectedNode === node
221
226
  }, extensionHandlerResult);
222
227
  default:
223
228
  return null;
@@ -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.8.5";
9
+ var packageVersion = "78.9.1";
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
@@ -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.8.5";
20
+ var packageVersion = "78.9.1";
21
21
  var halfFocusRing = 1;
22
22
  var dropOffset = '0, 8';
23
23
  var DropList = /*#__PURE__*/function (_Component) {
@@ -17,6 +17,7 @@ export interface Props {
17
17
  editorAppearance?: EditorAppearance;
18
18
  pluginInjectionApi: ExtensionsPluginInjectionAPI;
19
19
  showMacroInteractionDesignUpdates?: boolean;
20
+ isNodeSelected?: boolean;
20
21
  }
21
22
  /**
22
23
  * End workaround
@@ -1,12 +1,12 @@
1
1
  /** @jsx jsx */
2
- import React from 'react';
3
- import { Component } from 'react';
2
+ import React, { Component } from 'react';
4
3
  import { jsx } from '@emotion/react';
5
4
  import type { Node as PmNode } from '@atlaskit/editor-prosemirror/model';
6
5
  export interface Props {
7
6
  node: PmNode;
8
7
  children?: React.ReactNode;
9
8
  showMacroInteractionDesignUpdates?: boolean;
9
+ isNodeSelected?: boolean;
10
10
  }
11
11
  export default class InlineExtension extends Component<Props, any> {
12
12
  render(): jsx.JSX.Element;
@@ -2,11 +2,16 @@
2
2
  import { Component } from 'react';
3
3
  import { jsx } from '@emotion/react';
4
4
  import type { Node as PmNode } from '@atlaskit/editor-prosemirror/model';
5
- export declare const capitalizeFirstLetter: (str: string) => string;
6
5
  export interface Props {
7
6
  node: PmNode;
7
+ showMacroInteractionDesignUpdates?: boolean;
8
+ isNodeSelected?: boolean;
9
+ }
10
+ export interface LozengeData {
11
+ url: string;
12
+ height?: number;
13
+ width?: number;
8
14
  }
9
- export declare const ICON_SIZE = 24;
10
15
  export default class ExtensionLozenge extends Component<Props, any> {
11
16
  render(): jsx.JSX.Element;
12
17
  private renderImage;
@@ -0,0 +1,15 @@
1
+ /** @jsx jsx */
2
+ import { jsx } from '@emotion/react';
3
+ import type { LozengeData } from './Lozenge';
4
+ export declare const ICON_SIZE = 24;
5
+ type LozengeComponentProps = {
6
+ lozengeData?: LozengeData;
7
+ isBlockExtension: boolean;
8
+ title: string;
9
+ params: any;
10
+ renderImage: (lozengeData: LozengeData) => void;
11
+ isNodeSelected?: boolean;
12
+ showMacroInteractionDesignUpdates?: boolean;
13
+ };
14
+ export declare const LozengeComponent: ({ lozengeData, isBlockExtension, title, params, renderImage, isNodeSelected, showMacroInteractionDesignUpdates, }: LozengeComponentProps) => jsx.JSX.Element;
15
+ export {};
@@ -5,3 +5,4 @@ export declare const overlay: import("@emotion/react").SerializedStyles;
5
5
  export declare const placeholderFallback: import("@emotion/react").SerializedStyles;
6
6
  export declare const placeholderFallbackParams: import("@emotion/react").SerializedStyles;
7
7
  export declare const styledImage: import("@emotion/react").SerializedStyles;
8
+ export declare const lozengeWrapper: import("@emotion/react").SerializedStyles;
@@ -17,6 +17,7 @@ export interface Props {
17
17
  editorAppearance?: EditorAppearance;
18
18
  pluginInjectionApi: ExtensionsPluginInjectionAPI;
19
19
  showMacroInteractionDesignUpdates?: boolean;
20
+ isNodeSelected?: boolean;
20
21
  }
21
22
  /**
22
23
  * End workaround
@@ -1,12 +1,12 @@
1
1
  /** @jsx jsx */
2
- import React from 'react';
3
- import { Component } from 'react';
2
+ import React, { Component } from 'react';
4
3
  import { jsx } from '@emotion/react';
5
4
  import type { Node as PmNode } from '@atlaskit/editor-prosemirror/model';
6
5
  export interface Props {
7
6
  node: PmNode;
8
7
  children?: React.ReactNode;
9
8
  showMacroInteractionDesignUpdates?: boolean;
9
+ isNodeSelected?: boolean;
10
10
  }
11
11
  export default class InlineExtension extends Component<Props, any> {
12
12
  render(): jsx.JSX.Element;
@@ -2,11 +2,16 @@
2
2
  import { Component } from 'react';
3
3
  import { jsx } from '@emotion/react';
4
4
  import type { Node as PmNode } from '@atlaskit/editor-prosemirror/model';
5
- export declare const capitalizeFirstLetter: (str: string) => string;
6
5
  export interface Props {
7
6
  node: PmNode;
7
+ showMacroInteractionDesignUpdates?: boolean;
8
+ isNodeSelected?: boolean;
9
+ }
10
+ export interface LozengeData {
11
+ url: string;
12
+ height?: number;
13
+ width?: number;
8
14
  }
9
- export declare const ICON_SIZE = 24;
10
15
  export default class ExtensionLozenge extends Component<Props, any> {
11
16
  render(): jsx.JSX.Element;
12
17
  private renderImage;
@@ -0,0 +1,15 @@
1
+ /** @jsx jsx */
2
+ import { jsx } from '@emotion/react';
3
+ import type { LozengeData } from './Lozenge';
4
+ export declare const ICON_SIZE = 24;
5
+ type LozengeComponentProps = {
6
+ lozengeData?: LozengeData;
7
+ isBlockExtension: boolean;
8
+ title: string;
9
+ params: any;
10
+ renderImage: (lozengeData: LozengeData) => void;
11
+ isNodeSelected?: boolean;
12
+ showMacroInteractionDesignUpdates?: boolean;
13
+ };
14
+ export declare const LozengeComponent: ({ lozengeData, isBlockExtension, title, params, renderImage, isNodeSelected, showMacroInteractionDesignUpdates, }: LozengeComponentProps) => jsx.JSX.Element;
15
+ export {};
@@ -5,3 +5,4 @@ export declare const overlay: import("@emotion/react").SerializedStyles;
5
5
  export declare const placeholderFallback: import("@emotion/react").SerializedStyles;
6
6
  export declare const placeholderFallbackParams: import("@emotion/react").SerializedStyles;
7
7
  export declare const styledImage: import("@emotion/react").SerializedStyles;
8
+ export declare const lozengeWrapper: import("@emotion/react").SerializedStyles;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "78.8.5",
3
+ "version": "78.9.1",
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/"
@@ -119,8 +119,8 @@
119
119
  "@atlaskit/media-common": "^11.0.0",
120
120
  "@atlaskit/media-file-preview": "^0.5.0",
121
121
  "@atlaskit/media-picker": "^66.3.0",
122
- "@atlaskit/media-ui": "^25.2.0",
123
- "@atlaskit/media-viewer": "48.2.15",
122
+ "@atlaskit/media-ui": "^25.3.0",
123
+ "@atlaskit/media-viewer": "48.3.0",
124
124
  "@atlaskit/mention": "^23.0.0",
125
125
  "@atlaskit/menu": "^2.1.0",
126
126
  "@atlaskit/platform-feature-flags": "^0.2.0",
@@ -128,6 +128,7 @@
128
128
  "@atlaskit/smart-card": "^26.48.0",
129
129
  "@atlaskit/smart-user-picker": "^6.9.0",
130
130
  "@atlaskit/spinner": "^16.0.0",
131
+ "@atlaskit/tag": "^12.0.0",
131
132
  "@atlaskit/task-decision": "^17.9.0",
132
133
  "@atlaskit/textfield": "^6.0.0",
133
134
  "@atlaskit/theme": "^12.6.0",