@atlaskit/renderer 114.2.1 → 114.3.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 (31) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/react/nodes/extensionFrame.js +8 -6
  3. package/dist/cjs/react/nodes/index.js +4 -1
  4. package/dist/cjs/react/nodes/multiBodiedExtension/actions.js +43 -0
  5. package/dist/cjs/react/nodes/multiBodiedExtension/context.js +71 -0
  6. package/dist/cjs/react/nodes/multiBodiedExtension.js +109 -102
  7. package/dist/cjs/react/nodes/multiBodiedExtensionOld.js +157 -0
  8. package/dist/cjs/ui/Renderer/index.js +1 -1
  9. package/dist/es2019/react/nodes/extensionFrame.js +8 -6
  10. package/dist/es2019/react/nodes/index.js +4 -1
  11. package/dist/es2019/react/nodes/multiBodiedExtension/actions.js +37 -0
  12. package/dist/es2019/react/nodes/multiBodiedExtension/context.js +56 -0
  13. package/dist/es2019/react/nodes/multiBodiedExtension.js +127 -118
  14. package/dist/es2019/react/nodes/multiBodiedExtensionOld.js +168 -0
  15. package/dist/es2019/ui/Renderer/index.js +1 -1
  16. package/dist/esm/react/nodes/extensionFrame.js +8 -6
  17. package/dist/esm/react/nodes/index.js +4 -1
  18. package/dist/esm/react/nodes/multiBodiedExtension/actions.js +36 -0
  19. package/dist/esm/react/nodes/multiBodiedExtension/context.js +64 -0
  20. package/dist/esm/react/nodes/multiBodiedExtension.js +108 -101
  21. package/dist/esm/react/nodes/multiBodiedExtensionOld.js +148 -0
  22. package/dist/esm/ui/Renderer/index.js +1 -1
  23. package/dist/types/react/nodes/multiBodiedExtension/actions.d.ts +10 -0
  24. package/dist/types/react/nodes/multiBodiedExtension/context.d.ts +17 -0
  25. package/dist/types/react/nodes/multiBodiedExtension.d.ts +1 -0
  26. package/dist/types/react/nodes/multiBodiedExtensionOld.d.ts +29 -0
  27. package/dist/types-ts4.5/react/nodes/multiBodiedExtension/actions.d.ts +10 -0
  28. package/dist/types-ts4.5/react/nodes/multiBodiedExtension/context.d.ts +17 -0
  29. package/dist/types-ts4.5/react/nodes/multiBodiedExtension.d.ts +1 -0
  30. package/dist/types-ts4.5/react/nodes/multiBodiedExtensionOld.d.ts +29 -0
  31. package/package.json +13 -6
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/renderer
2
2
 
3
+ ## 114.3.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+
9
+ ## 114.3.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#124569](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/124569)
14
+ [`d88099abc9365`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/d88099abc9365) -
15
+ Support Renderer to override bodies for multiBodiedExtensions
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies
20
+
3
21
  ## 114.2.1
4
22
 
5
23
  ### Patch Changes
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _react = require("@emotion/react");
8
+ var _ui = require("@atlaskit/editor-common/ui");
9
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
8
10
  /**
9
11
  * @jsxRuntime classic
10
12
  * @jsx jsx
@@ -13,15 +15,15 @@ var _react = require("@emotion/react");
13
15
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
14
16
 
15
17
  var containerCSS = (0, _react.css)({
16
- minHeight: '100px'
18
+ minHeight: '100px',
19
+ flexBasis: '100%'
17
20
  });
18
21
  var ExtensionFrame = function ExtensionFrame(props) {
19
22
  return (0, _react.jsx)("div", {
20
- css: containerCSS,
21
- "data-extension-frame": "true",
22
- style: {
23
- flexBasis: "100%"
24
- }
23
+ css: [containerCSS, (0, _platformFeatureFlags.fg)('platform_editor_multi_body_extension_extensibility') &&
24
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
25
+ _ui.sharedMultiBodiedExtensionStyles.extensionFrameContent],
26
+ "data-extension-frame": "true"
25
27
  }, props.children);
26
28
  };
27
29
  var _default = exports.default = ExtensionFrame;
@@ -156,8 +156,11 @@ exports.toReact = exports.nodeToReact = exports.mergeTextNodes = exports.isTextW
156
156
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
157
157
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
158
158
  var _reactLoadable = _interopRequireDefault(require("react-loadable"));
159
+ var _ui = require("@atlaskit/editor-common/ui");
160
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
159
161
  var _blockquote = _interopRequireDefault(require("./blockquote"));
160
162
  var _bodiedExtension = _interopRequireDefault(require("./bodiedExtension"));
163
+ var _multiBodiedExtensionOld = _interopRequireDefault(require("./multiBodiedExtensionOld"));
161
164
  var _multiBodiedExtension = _interopRequireDefault(require("./multiBodiedExtension"));
162
165
  var _extensionFrame = _interopRequireDefault(require("./extensionFrame"));
163
166
  var _bulletList = _interopRequireDefault(require("./bulletList"));
@@ -178,7 +181,6 @@ var _table = _interopRequireDefault(require("./table"));
178
181
  var _tableCell = require("./tableCell");
179
182
  var _tableRow = _interopRequireDefault(require("./tableRow"));
180
183
  var _unknownBlock = _interopRequireDefault(require("./unknownBlock"));
181
- var _ui = require("@atlaskit/editor-common/ui");
182
184
  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; }
183
185
  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; }
184
186
  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); }
@@ -494,6 +496,7 @@ var toReact = exports.toReact = function toReact(node, flags, nodeComponents
494
496
 
495
497
  // Allowing custom components to override those provided in nodeToReact
496
498
  var nodes = _objectSpread(_objectSpread({}, nodeToReact), nodeComponents);
499
+ nodes['multiBodiedExtension'] = (0, _platformFeatureFlags.fg)('platform_editor_multi_body_extension_extensibility') ? _multiBodiedExtension.default : _multiBodiedExtensionOld.default;
497
500
  return nodes[node.type.name];
498
501
  };
499
502
  /*
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useMultiBodiedExtensionActions = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var useMultiBodiedExtensionActions = exports.useMultiBodiedExtensionActions = function useMultiBodiedExtensionActions(_ref) {
10
+ var updateActiveChild = _ref.updateActiveChild,
11
+ children = _ref.children,
12
+ allowBodiedOverride = _ref.allowBodiedOverride,
13
+ childrenContainer = _ref.childrenContainer;
14
+ return _react.default.useMemo(function () {
15
+ return {
16
+ changeActive: function changeActive(index) {
17
+ if (!Number.isInteger(index)) {
18
+ return false;
19
+ }
20
+ updateActiveChild(index);
21
+ return true;
22
+ },
23
+ addChild: function addChild() {
24
+ return false;
25
+ },
26
+ getChildrenCount: function getChildrenCount() {
27
+ return children && Array.isArray(children) ? children.length : 0;
28
+ },
29
+ removeChild: function removeChild(_index) {
30
+ return false;
31
+ },
32
+ updateParameters: function updateParameters(_parameters) {
33
+ return false;
34
+ },
35
+ getChildren: function getChildren() {
36
+ return [];
37
+ },
38
+ getChildrenContainer: function getChildrenContainer() {
39
+ return allowBodiedOverride ? childrenContainer : null;
40
+ }
41
+ };
42
+ }, [updateActiveChild, children, allowBodiedOverride, childrenContainer]);
43
+ };
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useMultiBodiedExtensionContext = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _memoizeOne = _interopRequireDefault(require("memoize-one"));
11
+ var _extensions = require("@atlaskit/editor-common/extensions");
12
+ var _providerFactory = require("@atlaskit/editor-common/provider-factory");
13
+ var useMultiBodiedExtensionContext = exports.useMultiBodiedExtensionContext = function useMultiBodiedExtensionContext(_ref) {
14
+ var extensionType = _ref.extensionType,
15
+ extensionKey = _ref.extensionKey;
16
+ var isMounted = _react.default.useRef(true);
17
+ var localGetNodeRenderer = _react.default.useMemo(function () {
18
+ return (0, _memoizeOne.default)(_extensions.getNodeRenderer);
19
+ }, []);
20
+ var _React$useState = _react.default.useState(),
21
+ _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
22
+ provider = _React$useState2[0],
23
+ setProvider = _React$useState2[1];
24
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
+ var _React$useState3 = _react.default.useState(),
26
+ _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
27
+ privateProps = _React$useState4[0],
28
+ setPrivateProps = _React$useState4[1];
29
+ var providerPromise = (0, _providerFactory.useProvider)('extensionProvider');
30
+ _react.default.useEffect(function () {
31
+ if (providerPromise) {
32
+ providerPromise.then(function (p) {
33
+ if (isMounted.current) {
34
+ setProvider(p);
35
+ }
36
+ return (0, _extensions.getExtensionModuleNodePrivateProps)(p, extensionType, extensionKey);
37
+ }).then(function (pr) {
38
+ if (isMounted.current) {
39
+ setPrivateProps(pr);
40
+ }
41
+ });
42
+ }
43
+ }, [providerPromise, extensionType, extensionKey]);
44
+ var NodeRenderer = _react.default.useMemo(function () {
45
+ if (!provider) {
46
+ return null;
47
+ }
48
+ return localGetNodeRenderer(provider, extensionType, extensionKey);
49
+ }, [provider, extensionType, extensionKey, localGetNodeRenderer]);
50
+ _react.default.useEffect(function () {
51
+ isMounted.current = true;
52
+ return function () {
53
+ isMounted.current = false;
54
+ };
55
+ }, []);
56
+ return _react.default.useMemo(function () {
57
+ if (!provider || !NodeRenderer || !privateProps) {
58
+ return {
59
+ extensionContext: null,
60
+ loading: true
61
+ };
62
+ }
63
+ return {
64
+ extensionContext: {
65
+ NodeRenderer: NodeRenderer,
66
+ privateProps: privateProps
67
+ },
68
+ loading: false
69
+ };
70
+ }, [provider, NodeRenderer, privateProps]);
71
+ };
@@ -6,123 +6,125 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
12
11
  var _react = require("@emotion/react");
13
12
  var _colors = require("@atlaskit/theme/colors");
14
13
  var _react2 = _interopRequireWildcard(require("react"));
15
14
  var _extension = require("./extension");
16
- var _ExtensionRenderer = _interopRequireDefault(require("../../ui/ExtensionRenderer"));
17
15
  var _ui = require("@atlaskit/editor-common/ui");
18
16
  var _consts = require("../../consts");
19
17
  var _utils = require("@atlaskit/editor-common/utils");
20
- var _templateObject, _templateObject2;
21
- /* eslint-disable @atlaskit/design-system/prefer-primitives */
18
+ var _actions = require("./multiBodiedExtension/actions");
19
+ var _context = require("./multiBodiedExtension/context");
20
+ var _templateObject, _templateObject2, _templateObject3;
21
+ /* eslint-disable @atlaskit/design-system/prefer-primitives, @atlaskit/design-system/consistent-css-prop-usage */
22
22
  /**
23
23
  * @jsxRuntime classic
24
24
  * @jsx jsx
25
+ * @jsxFrag
25
26
  */
26
27
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
27
28
  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); }
28
29
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
29
- var useMultiBodiedExtensionActions = function useMultiBodiedExtensionActions(_ref) {
30
- var updateActiveChild = _ref.updateActiveChild,
31
- children = _ref.children;
32
- var actions = _react2.default.useMemo(function () {
33
- return {
34
- changeActive: function changeActive(index) {
35
- return updateActiveChild(index);
36
- },
37
- addChild: function addChild() {
38
- return false;
39
- },
40
- getChildrenCount: function getChildrenCount() {
41
- return children ? children === null || children === void 0 ? void 0 : children.length : 0;
42
- },
43
- removeChild: function removeChild(index) {
44
- return false;
45
- },
46
- updateParameters: function updateParameters(parameters) {
47
- return false;
48
- },
49
- // Ignored via go/ees005
50
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
- getChildren: function getChildren() {
52
- return [];
53
- },
54
- getChildrenContainer: function getChildrenContainer() {
55
- return null;
56
- }
57
- };
58
- }, [updateActiveChild, children]);
59
- return actions;
60
- };
30
+ // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- Ignored via go/DSP-18766
31
+ var navigationStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\t", ";\n\tmargin-left: 0 !important;\n\tmargin-right: 0 !important;\n\t.mbe-add-tab-button,\n\t.mbe-remove-tab {\n\t\tdisplay: none;\n\t}\n"])), _ui.sharedMultiBodiedExtensionStyles.mbeNavigation);
61
32
 
62
- // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
63
- var navigationCssExtended = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\t", ";\n\tmargin-left: 0 !important;\n\tmargin-right: 0 !important;\n\t.mbe-add-tab-button,\n\t.mbe-remove-tab {\n\t\tdisplay: none;\n\t}\n"])), _ui.sharedMultiBodiedExtensionStyles.mbeNavigation);
33
+ // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
34
+ var containerStyles = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n\t", ";\n\t.ak-renderer-extension {\n\t\tmargin-top: 0 !important;\n\t}\n\n\t[data-layout='full-width'],\n\t[data-layout='wide'] {\n\t\t.multiBodiedExtension-navigation {\n\t\t\tborder-right: 3px solid ", " !important;\n\t\t}\n\t}\n"])), _ui.sharedMultiBodiedExtensionStyles.mbeExtensionContainer, "var(--ds-border, ".concat(_colors.N40, ")"));
35
+ var MultiBodiedExtensionChildrenContainer = function MultiBodiedExtensionChildrenContainer(_ref) {
36
+ var children = _ref.children;
37
+ return (0, _react.jsx)("article", {
38
+ "data-testid": "multiBodiedExtension--frames"
39
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
40
+ ,
41
+ className: "multiBodiedExtension--frames"
42
+ }, children);
43
+ };
44
+ var MultiBodiedExtensionNavigation = function MultiBodiedExtensionNavigation(_ref2) {
45
+ var children = _ref2.children;
46
+ return (0, _react.jsx)("nav", {
47
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
48
+ className: "multiBodiedExtension-navigation",
49
+ css: navigationStyles,
50
+ "data-testid": "multiBodiedExtension-navigation"
51
+ }, children);
52
+ };
53
+ var MultiBodiedExtensionWrapper = function MultiBodiedExtensionWrapper(_ref3) {
54
+ var width = _ref3.width,
55
+ path = _ref3.path,
56
+ layout = _ref3.layout,
57
+ children = _ref3.children;
58
+ var isTopLevel = path.length < 1;
59
+ var centerAlignClass = isTopLevel && ['wide', 'full-width'].includes(layout) ? _consts.RendererCssClassName.EXTENSION_CENTER_ALIGN : '';
60
+ return (0, _react.jsx)("div", {
61
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
62
+ className: "".concat(_consts.RendererCssClassName.EXTENSION, " ").concat(centerAlignClass, " ").concat(_consts.RendererCssClassName.EXTENSION_OVERFLOW_CONTAINER),
63
+ style: {
64
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
65
+ width: isTopLevel ? (0, _utils.calcBreakoutWidth)(layout, width) : '100%'
66
+ },
67
+ "data-layout": layout,
68
+ "data-testid": "multiBodiedExtension--wrapper"
69
+ }, children);
70
+ };
64
71
  var MultiBodiedExtension = function MultiBodiedExtension(props) {
72
+ var _extensionContext$pri;
65
73
  var children = props.children,
66
74
  _props$layout = props.layout,
67
75
  layout = _props$layout === void 0 ? 'default' : _props$layout,
68
76
  _props$path = props.path,
69
- path = _props$path === void 0 ? [] : _props$path;
77
+ path = _props$path === void 0 ? [] : _props$path,
78
+ parameters = props.parameters,
79
+ extensionType = props.extensionType,
80
+ extensionKey = props.extensionKey,
81
+ content = props.content,
82
+ marks = props.marks,
83
+ localId = props.localId;
70
84
  var _useState = (0, _react2.useState)(0),
71
85
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
72
86
  activeChildIndex = _useState2[0],
73
87
  setActiveChildIndex = _useState2[1];
74
- var removeOverflow = _react2.default.Children.toArray(children)
75
- // Ignored via go/ees005
76
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
77
- .map(function (child) {
78
- return /*#__PURE__*/_react2.default.isValidElement(child) ? child.props.nodeType === 'table' : false;
79
- }).every(Boolean);
80
- var overflowContainerClass = !removeOverflow ? _consts.RendererCssClassName.EXTENSION_OVERFLOW_CONTAINER : '';
81
- var updateActiveChild = _react2.default.useCallback(function (index) {
82
- if (typeof index !== 'number') {
83
- // Ignored via go/ees007
84
- // eslint-disable-next-line @atlaskit/editor/enforce-todo-comment-format
85
- // TODO: Make sure we log this somewhere if this happens
86
- setActiveChildIndex(0);
87
- return false;
88
- }
89
- setActiveChildIndex(index);
90
- return true;
91
- }, [setActiveChildIndex]);
92
- var actions = useMultiBodiedExtensionActions({
93
- updateActiveChild: updateActiveChild,
94
- children: children
88
+ var _useMultiBodiedExtens = (0, _context.useMultiBodiedExtensionContext)({
89
+ extensionType: extensionType,
90
+ extensionKey: extensionKey
91
+ }),
92
+ loading = _useMultiBodiedExtens.loading,
93
+ extensionContext = _useMultiBodiedExtens.extensionContext;
94
+ var actions = (0, _actions.useMultiBodiedExtensionActions)({
95
+ updateActiveChild: setActiveChildIndex,
96
+ children: children,
97
+ childrenContainer: (0, _react.jsx)(MultiBodiedExtensionChildrenContainer, null, children),
98
+ allowBodiedOverride: extensionContext === null || extensionContext === void 0 || (_extensionContext$pri = extensionContext.privateProps) === null || _extensionContext$pri === void 0 ? void 0 : _extensionContext$pri.__allowBodiedOverride
95
99
  });
96
- // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
97
- var containerCssExtended = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n\t\t", ";\n\t\t.ak-renderer-extension {\n\t\t\tmargin-top: 0 !important;\n\t\t}\n\n\t\t[data-layout='full-width'],\n\t\t[data-layout='wide'] {\n\t\t\t.multiBodiedExtension-navigation {\n\t\t\t\tborder-right: 3px solid ", " !important;\n\t\t\t}\n\t\t}\n\n\t\t.multiBodiedExtension--frames\n\t\t\t> [data-extension-frame='true']:nth-of-type(", ") {\n\t\t\t", "\n\t\t\tmargin-left: 0;\n\t\t\tmargin-right: 0;\n\t\t}\n\t"])), _ui.sharedMultiBodiedExtensionStyles.mbeExtensionContainer, "var(--ds-border, ".concat(_colors.N40, ")"), activeChildIndex + 1, _ui.sharedMultiBodiedExtensionStyles.extensionFrameContent);
98
- var isTopLevel = path.length < 1;
99
- var centerAlignClass = isTopLevel && ['wide', 'full-width'].includes(layout) ? _consts.RendererCssClassName.EXTENSION_CENTER_ALIGN : '';
100
- function renderMbeContent(width) {
101
- return (0, _react.jsx)("div", {
102
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
103
- className: "".concat(_consts.RendererCssClassName.EXTENSION, " ").concat(centerAlignClass, " ").concat(overflowContainerClass),
104
- style: {
105
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
106
- width: isTopLevel ? (0, _utils.calcBreakoutWidth)(layout, width) : '100%'
107
- },
108
- "data-layout": layout
109
- }, (0, _react.jsx)("nav", {
110
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
111
- className: "multiBodiedExtension-navigation",
112
- css: navigationCssExtended,
113
- "data-testid": "multiBodiedExtension-navigation"
114
- }, (0, _react.jsx)(_ExtensionRenderer.default
115
- // Ignored via go/ees005
116
- // eslint-disable-next-line react/jsx-props-no-spreading
117
- , (0, _extends2.default)({}, props, {
118
- actions: actions,
119
- type: "multiBodiedExtension"
120
- }), function (_ref2) {
121
- var result = _ref2.result;
100
+ var renderContent = _react2.default.useCallback(function () {
101
+ var _marks$find;
102
+ if (loading || !extensionContext) {
103
+ return null;
104
+ }
105
+ var NodeRenderer = extensionContext.NodeRenderer,
106
+ privateProps = extensionContext.privateProps;
107
+ var fragmentLocalId = marks === null || marks === void 0 || (_marks$find = marks.find(function (m) {
108
+ return m.type.name === 'fragment';
109
+ })) === null || _marks$find === void 0 || (_marks$find = _marks$find.attrs) === null || _marks$find === void 0 ? void 0 : _marks$find.localId;
110
+ var node = {
111
+ type: 'multiBodiedExtension',
112
+ extensionKey: extensionKey,
113
+ extensionType: extensionType,
114
+ parameters: parameters,
115
+ content: content,
116
+ localId: localId,
117
+ fragmentLocalId: fragmentLocalId
118
+ };
119
+ var renderMultiBodiedExtension = function renderMultiBodiedExtension() {
120
+ var MultiBodiedExtensionNodeRenderer = (0, _react.jsx)(NodeRenderer, {
121
+ node: node,
122
+ actions: actions
123
+ });
122
124
  try {
123
- if (result && /*#__PURE__*/_react2.default.isValidElement(result)) {
125
+ if ( /*#__PURE__*/_react2.default.isValidElement(MultiBodiedExtensionNodeRenderer)) {
124
126
  // Return the content directly if it's a valid JSX.Element
125
- return (0, _extension.renderExtension)(result, layout, {
127
+ return (0, _extension.renderExtension)(MultiBodiedExtensionNodeRenderer, layout, {
126
128
  isTopLevel: path.length < 1
127
129
  });
128
130
  }
@@ -135,25 +137,30 @@ var MultiBodiedExtension = function MultiBodiedExtension(props) {
135
137
  return (0, _extension.renderExtension)(children, layout, {
136
138
  isTopLevel: path.length < 1
137
139
  });
138
- })), (0, _react.jsx)("article", {
139
- "data-testid": "multiBodiedExtension--frames"
140
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
141
- ,
142
- className: "multiBodiedExtension--frames"
143
- }, children));
144
- }
140
+ };
141
+ if (privateProps.__allowBodiedOverride) {
142
+ return renderMultiBodiedExtension();
143
+ } else {
144
+ return (0, _react.jsx)(_react2.default.Fragment, null, (0, _react.jsx)(MultiBodiedExtensionNavigation, null, renderMultiBodiedExtension()), (0, _react.jsx)(MultiBodiedExtensionChildrenContainer, null, children));
145
+ }
146
+ }, [loading, extensionContext, layout, path, marks, extensionKey, extensionType, parameters, content, localId, actions, children]);
147
+
148
+ // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression
149
+ var containerActiveFrameStyles = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n\t\t.multiBodiedExtension--frames\n\t\t\t> [data-extension-frame='true']:nth-of-type(", ") {\n\t\t\tdisplay: block;\n\t\t}\n\t"])), activeChildIndex + 1);
145
150
  return (0, _react.jsx)("section", {
146
151
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
147
- className: "multiBodiedExtension--container"
148
- // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage
149
- ,
150
- css: containerCssExtended,
152
+ className: "multiBodiedExtension--container",
153
+ css: [containerStyles, containerActiveFrameStyles],
151
154
  "data-testid": "multiBodiedExtension--container",
152
155
  "data-active-child-index": activeChildIndex,
153
156
  "data-layout": layout
154
- }, (0, _react.jsx)(_ui.WidthConsumer, null, function (_ref3) {
155
- var width = _ref3.width;
156
- return renderMbeContent(width);
157
+ }, (0, _react.jsx)(_ui.WidthConsumer, null, function (_ref4) {
158
+ var width = _ref4.width;
159
+ return (0, _react.jsx)(MultiBodiedExtensionWrapper, {
160
+ layout: layout,
161
+ width: width,
162
+ path: path
163
+ }, renderContent());
157
164
  }));
158
165
  };
159
166
  var _default = exports.default = MultiBodiedExtension;
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
12
+ var _react = require("@emotion/react");
13
+ var _colors = require("@atlaskit/theme/colors");
14
+ var _react2 = _interopRequireWildcard(require("react"));
15
+ var _extension = require("./extension");
16
+ var _ExtensionRenderer = _interopRequireDefault(require("../../ui/ExtensionRenderer"));
17
+ var _ui = require("@atlaskit/editor-common/ui");
18
+ var _consts = require("../../consts");
19
+ var _utils = require("@atlaskit/editor-common/utils");
20
+ var _templateObject, _templateObject2;
21
+ /* eslint-disable @atlaskit/design-system/prefer-primitives, @atlaskit/design-system/consistent-css-prop-usage */
22
+ /**
23
+ * @jsxRuntime classic
24
+ * @jsx jsx
25
+ */
26
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
27
+ 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); }
28
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
29
+ var useMultiBodiedExtensionActions = function useMultiBodiedExtensionActions(_ref) {
30
+ var updateActiveChild = _ref.updateActiveChild,
31
+ children = _ref.children;
32
+ var actions = _react2.default.useMemo(function () {
33
+ return {
34
+ changeActive: function changeActive(index) {
35
+ return updateActiveChild(index);
36
+ },
37
+ addChild: function addChild() {
38
+ return false;
39
+ },
40
+ getChildrenCount: function getChildrenCount() {
41
+ return children ? children === null || children === void 0 ? void 0 : children.length : 0;
42
+ },
43
+ removeChild: function removeChild(index) {
44
+ return false;
45
+ },
46
+ updateParameters: function updateParameters(parameters) {
47
+ return false;
48
+ },
49
+ // Ignored via go/ees005
50
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
+ getChildren: function getChildren() {
52
+ return [];
53
+ },
54
+ getChildrenContainer: function getChildrenContainer() {
55
+ return null;
56
+ }
57
+ };
58
+ }, [updateActiveChild, children]);
59
+ return actions;
60
+ };
61
+
62
+ // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- Ignored via go/DSP-18766
63
+ var navigationCssExtended = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\t", ";\n\tmargin-left: 0 !important;\n\tmargin-right: 0 !important;\n\t.mbe-add-tab-button,\n\t.mbe-remove-tab {\n\t\tdisplay: none;\n\t}\n"])), _ui.sharedMultiBodiedExtensionStyles.mbeNavigation);
64
+ var MultiBodiedExtension = function MultiBodiedExtension(props) {
65
+ var children = props.children,
66
+ _props$layout = props.layout,
67
+ layout = _props$layout === void 0 ? 'default' : _props$layout,
68
+ _props$path = props.path,
69
+ path = _props$path === void 0 ? [] : _props$path;
70
+ var _useState = (0, _react2.useState)(0),
71
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
72
+ activeChildIndex = _useState2[0],
73
+ setActiveChildIndex = _useState2[1];
74
+ var removeOverflow = _react2.default.Children.toArray(children)
75
+ // Ignored via go/ees005
76
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
77
+ .map(function (child) {
78
+ return /*#__PURE__*/_react2.default.isValidElement(child) ? child.props.nodeType === 'table' : false;
79
+ }).every(Boolean);
80
+ var overflowContainerClass = !removeOverflow ? _consts.RendererCssClassName.EXTENSION_OVERFLOW_CONTAINER : '';
81
+ var updateActiveChild = _react2.default.useCallback(function (index) {
82
+ if (typeof index !== 'number') {
83
+ // Ignored via go/ees007
84
+ // eslint-disable-next-line @atlaskit/editor/enforce-todo-comment-format
85
+ // TODO: Make sure we log this somewhere if this happens
86
+ setActiveChildIndex(0);
87
+ return false;
88
+ }
89
+ setActiveChildIndex(index);
90
+ return true;
91
+ }, [setActiveChildIndex]);
92
+ var actions = useMultiBodiedExtensionActions({
93
+ updateActiveChild: updateActiveChild,
94
+ children: children
95
+ });
96
+ // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
97
+ var containerCssExtended = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n\t\t", ";\n\t\t.ak-renderer-extension {\n\t\t\tmargin-top: 0 !important;\n\t\t}\n\n\t\t[data-layout='full-width'],\n\t\t[data-layout='wide'] {\n\t\t\t.multiBodiedExtension-navigation {\n\t\t\t\tborder-right: 3px solid ", " !important;\n\t\t\t}\n\t\t}\n\n\t\t.multiBodiedExtension--frames\n\t\t\t> [data-extension-frame='true']:nth-of-type(", ") {\n\t\t\t", "\n\t\t\tmargin-left: 0;\n\t\t\tmargin-right: 0;\n\t\t}\n\t"])), _ui.sharedMultiBodiedExtensionStyles.mbeExtensionContainer, "var(--ds-border, ".concat(_colors.N40, ")"), activeChildIndex + 1, _ui.sharedMultiBodiedExtensionStyles.extensionFrameContent);
98
+ var isTopLevel = path.length < 1;
99
+ var centerAlignClass = isTopLevel && ['wide', 'full-width'].includes(layout) ? _consts.RendererCssClassName.EXTENSION_CENTER_ALIGN : '';
100
+ function renderMbeContent(width) {
101
+ return (0, _react.jsx)("div", {
102
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
103
+ className: "".concat(_consts.RendererCssClassName.EXTENSION, " ").concat(centerAlignClass, " ").concat(overflowContainerClass),
104
+ style: {
105
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
106
+ width: isTopLevel ? (0, _utils.calcBreakoutWidth)(layout, width) : '100%'
107
+ },
108
+ "data-layout": layout
109
+ }, (0, _react.jsx)("nav", {
110
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
111
+ className: "multiBodiedExtension-navigation",
112
+ css: navigationCssExtended,
113
+ "data-testid": "multiBodiedExtension-navigation"
114
+ }, (0, _react.jsx)(_ExtensionRenderer.default
115
+ // Ignored via go/ees005
116
+ // eslint-disable-next-line react/jsx-props-no-spreading
117
+ , (0, _extends2.default)({}, props, {
118
+ actions: actions,
119
+ type: "multiBodiedExtension"
120
+ }), function (_ref2) {
121
+ var result = _ref2.result;
122
+ try {
123
+ if (result && /*#__PURE__*/_react2.default.isValidElement(result)) {
124
+ // Return the content directly if it's a valid JSX.Element
125
+ return (0, _extension.renderExtension)(result, layout, {
126
+ isTopLevel: path.length < 1
127
+ });
128
+ }
129
+ } catch (e) {
130
+ /** We don't want this error to block renderer */
131
+ /** We keep rendering the default content */
132
+ }
133
+
134
+ // Always return default content if anything goes wrong
135
+ return (0, _extension.renderExtension)(children, layout, {
136
+ isTopLevel: path.length < 1
137
+ });
138
+ })), (0, _react.jsx)("article", {
139
+ "data-testid": "multiBodiedExtension--frames"
140
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
141
+ ,
142
+ className: "multiBodiedExtension--frames"
143
+ }, children));
144
+ }
145
+ return (0, _react.jsx)("section", {
146
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
147
+ className: "multiBodiedExtension--container",
148
+ css: containerCssExtended,
149
+ "data-testid": "multiBodiedExtension--container",
150
+ "data-active-child-index": activeChildIndex,
151
+ "data-layout": layout
152
+ }, (0, _react.jsx)(_ui.WidthConsumer, null, function (_ref3) {
153
+ var width = _ref3.width;
154
+ return renderMbeContent(width);
155
+ }));
156
+ };
157
+ var _default = exports.default = MultiBodiedExtension;
@@ -67,7 +67,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
67
67
  var NORMAL_SEVERITY_THRESHOLD = exports.NORMAL_SEVERITY_THRESHOLD = 2000;
68
68
  var DEGRADED_SEVERITY_THRESHOLD = exports.DEGRADED_SEVERITY_THRESHOLD = 3000;
69
69
  var packageName = "@atlaskit/renderer";
70
- var packageVersion = "114.2.1";
70
+ var packageVersion = "114.3.1";
71
71
  var setAsQueryContainerStyles = (0, _react2.css)({
72
72
  containerName: 'ak-renderer-wrapper',
73
73
  containerType: 'inline-size',