@atlaskit/renderer 113.1.2 → 113.2.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 (44) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/cjs/react/index.js +12 -0
  3. package/dist/cjs/react/nodes/TableStickyScrollbar.js +3 -4
  4. package/dist/cjs/react/nodes/bodiedExtension.js +5 -3
  5. package/dist/cjs/react/nodes/extension.js +31 -5
  6. package/dist/cjs/ui/Renderer/RendererStyleContainer.js +1369 -0
  7. package/dist/cjs/ui/Renderer/get-base-font-size.js +10 -0
  8. package/dist/cjs/ui/Renderer/index.js +15 -16
  9. package/dist/cjs/ui/Renderer/style.js +1 -1
  10. package/dist/es2019/react/index.js +10 -0
  11. package/dist/es2019/react/nodes/TableStickyScrollbar.js +3 -4
  12. package/dist/es2019/react/nodes/bodiedExtension.js +5 -3
  13. package/dist/es2019/react/nodes/extension.js +28 -6
  14. package/dist/es2019/ui/Renderer/RendererStyleContainer.js +1742 -0
  15. package/dist/es2019/ui/Renderer/get-base-font-size.js +4 -0
  16. package/dist/es2019/ui/Renderer/index.js +16 -17
  17. package/dist/es2019/ui/Renderer/style.js +3 -3
  18. package/dist/esm/react/index.js +12 -0
  19. package/dist/esm/react/nodes/TableStickyScrollbar.js +3 -4
  20. package/dist/esm/react/nodes/bodiedExtension.js +5 -3
  21. package/dist/esm/react/nodes/extension.js +31 -5
  22. package/dist/esm/ui/Renderer/RendererStyleContainer.js +1362 -0
  23. package/dist/esm/ui/Renderer/get-base-font-size.js +4 -0
  24. package/dist/esm/ui/Renderer/index.js +16 -17
  25. package/dist/esm/ui/Renderer/style.js +1 -1
  26. package/dist/types/index.d.ts +1 -1
  27. package/dist/types/react/index.d.ts +4 -1
  28. package/dist/types/react/nodes/bodiedExtension.d.ts +2 -1
  29. package/dist/types/react/nodes/extension.d.ts +4 -3
  30. package/dist/types/react/types.d.ts +4 -0
  31. package/dist/types/ui/Renderer/RendererStyleContainer.d.ts +11 -0
  32. package/dist/types/ui/Renderer/get-base-font-size.d.ts +2 -0
  33. package/dist/types/ui/Renderer/index.d.ts +23 -0
  34. package/dist/types/ui/renderer-props.d.ts +2 -1
  35. package/dist/types-ts4.5/index.d.ts +1 -1
  36. package/dist/types-ts4.5/react/index.d.ts +4 -1
  37. package/dist/types-ts4.5/react/nodes/bodiedExtension.d.ts +2 -1
  38. package/dist/types-ts4.5/react/nodes/extension.d.ts +4 -3
  39. package/dist/types-ts4.5/react/types.d.ts +4 -0
  40. package/dist/types-ts4.5/ui/Renderer/RendererStyleContainer.d.ts +11 -0
  41. package/dist/types-ts4.5/ui/Renderer/get-base-font-size.d.ts +2 -0
  42. package/dist/types-ts4.5/ui/Renderer/index.d.ts +23 -0
  43. package/dist/types-ts4.5/ui/renderer-props.d.ts +2 -1
  44. package/package.json +18 -12
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getBaseFontSize = void 0;
7
+ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
8
+ var getBaseFontSize = exports.getBaseFontSize = function getBaseFontSize(appearance) {
9
+ return appearance && appearance !== 'comment' ? _editorSharedStyles.akEditorFullPageDefaultFontSize : 14;
10
+ };
@@ -31,7 +31,6 @@ var _types = require("@atlaskit/analytics-listeners/types");
31
31
  var _analyticsNamespacedContext = require("@atlaskit/analytics-namespaced-context");
32
32
  var _analytics = require("@atlaskit/editor-common/analytics");
33
33
  var _normalizeFeatureFlags = require("@atlaskit/editor-common/normalize-feature-flags");
34
- var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
35
34
  var _memoizeOne = _interopRequireDefault(require("memoize-one"));
36
35
  var _v = _interopRequireDefault(require("uuid/v4"));
37
36
  var _ = require("../../");
@@ -52,6 +51,8 @@ var _countNodes = require("./count-nodes");
52
51
  var _style = require("./style");
53
52
  var _truncatedWrapper = require("./truncated-wrapper");
54
53
  var _ValidationContext = require("./ValidationContext");
54
+ var _RendererStyleContainer = require("./RendererStyleContainer");
55
+ var _getBaseFontSize = require("./get-base-font-size");
55
56
  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); }
56
57
  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; }
57
58
  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; }
@@ -65,7 +66,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
65
66
  var NORMAL_SEVERITY_THRESHOLD = exports.NORMAL_SEVERITY_THRESHOLD = 2000;
66
67
  var DEGRADED_SEVERITY_THRESHOLD = exports.DEGRADED_SEVERITY_THRESHOLD = 3000;
67
68
  var packageName = "@atlaskit/renderer";
68
- var packageVersion = "113.1.2";
69
+ var packageVersion = "113.2.1";
69
70
  var setAsQueryContainerStyles = (0, _react2.css)({
70
71
  containerName: 'ak-renderer-wrapper',
71
72
  containerType: 'inline-size',
@@ -293,6 +294,7 @@ var __RendererClassComponent = exports.__RendererClassComponent = /*#__PURE__*/f
293
294
  media: props.media,
294
295
  emojiResourceConfig: props.emojiResourceConfig,
295
296
  smartLinks: props.smartLinks,
297
+ extensionViewportSizes: props.extensionViewportSizes,
296
298
  allowCopyToClipboard: props.allowCopyToClipboard,
297
299
  allowWrapCodeBlock: props.allowWrapCodeBlock,
298
300
  allowCustomPanels: props.allowCustomPanels,
@@ -628,6 +630,7 @@ var RendererFunctionalComponent = function RendererFunctionalComponent(props) {
628
630
  media: props.media,
629
631
  emojiResourceConfig: props.emojiResourceConfig,
630
632
  smartLinks: props.smartLinks,
633
+ extensionViewportSizes: props.extensionViewportSizes,
631
634
  allowCopyToClipboard: props.allowCopyToClipboard,
632
635
  allowWrapCodeBlock: props.allowWrapCodeBlock,
633
636
  allowCustomPanels: props.allowCustomPanels,
@@ -961,23 +964,19 @@ var RendererWrapper = /*#__PURE__*/_react.default.memo(function (props) {
961
964
  "data-appearance": appearance,
962
965
  shouldCheckExistingValue: isInsideOfInlineExtension
963
966
  }, (0, _react2.jsx)(_ui.BaseTheme, {
964
- baseFontSize: appearance && appearance !== 'comment' ? _editorSharedStyles.akEditorFullPageDefaultFontSize : undefined
967
+ baseFontSize: (0, _getBaseFontSize.getBaseFontSize)(appearance)
965
968
  }, (0, _react2.jsx)(_EditorMediaClientProvider.EditorMediaClientProvider, {
966
969
  ssr: ssr
967
- }, (0, _react2.jsx)("div", {
968
- ref: innerRef,
970
+ }, (0, _react2.jsx)(_RendererStyleContainer.RendererStyleContainer, {
971
+ innerRef: innerRef,
969
972
  onClick: onClick,
970
- onMouseDown: onMouseDown
971
- // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
972
- ,
973
- css: (0, _style.rendererStyles)({
974
- appearance: appearance,
975
- allowNestedHeaderLinks: allowNestedHeaderLinks,
976
- allowColumnSorting: !!allowColumnSorting,
977
- useBlockRenderForCodeBlock: useBlockRenderForCodeBlock,
978
- allowAnnotations: props.allowAnnotations,
979
- allowTableResizing: allowTableResizing
980
- })
973
+ onMouseDown: onMouseDown,
974
+ appearance: appearance,
975
+ allowNestedHeaderLinks: allowNestedHeaderLinks,
976
+ allowColumnSorting: !!allowColumnSorting,
977
+ useBlockRenderForCodeBlock: useBlockRenderForCodeBlock,
978
+ allowAnnotations: props.allowAnnotations,
979
+ allowTableResizing: allowTableResizing
981
980
  }, children))));
982
981
 
983
982
  // We can only make the wrapper div query container when we have a known width.
@@ -128,7 +128,7 @@ var tableSortableColumnStyle = function tableSortableColumnStyle(_ref2) {
128
128
  if (allowNestedHeaderLinks) {
129
129
  headingsCss = "\n /**\n * When the sort button is enabled we want the heading's copy link button\n * to reserve space so that it can prematurely wrap to avoid the button\n * being displayed underneath the sort button (hidden or obscured).\n *\n * The two buttons fight each other since the sort button is displayed\n * on hover of the <th /> and the copy link button is displayed on hover\n * of the heading.\n *\n * Note that this can break the WYSIWYG experience in the case where\n * a heading fills the width of the table cell and the only thing which\n * wraps is the copy link button. This is hopefully a rare fringe case.\n */\n .".concat(_headingAnchor.HeadingAnchorWrapperClassName, " {\n position: unset;\n }\n > {\n h1, h2, h3, h4, h5, h6 {\n margin-right: 30px;\n }\n }\n ");
130
130
  }
131
- return (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n\t\t.", " {\n\t\t\tpadding: 0;\n\n\t\t\t.", " {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tpadding: ", "px;\n\t\t\t\tborder-width: 1.5px;\n\t\t\t\tborder-style: solid;\n\t\t\t\tborder-color: transparent;\n\n\t\t\t\t> *:first-child {\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t}\n\n\t\t\t\t> .ProseMirror-gapcursor:first-child + *,\n\t\t\t\t> style:first-child + .ProseMirror-gapcursor + * {\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t}\n\n\t\t\t\t> .ProseMirror-gapcursor:first-child + span + *,\n\t\t\t\t> style:first-child + .ProseMirror-gapcursor + span + * {\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t}\n\n\t\t\t\t@supports selector(:focus-visible) {\n\t\t\t\t\t&:focus {\n\t\t\t\t\t\toutline: unset;\n\t\t\t\t\t}\n\t\t\t\t\t&:focus-visible {\n\t\t\t\t\t\tborder-color: ", ";\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t", "\n\t\t\t}\n\n\t\t\t", "\n\t\t}\n\t"])), _consts.RendererCssClassName.SORTABLE_COLUMN_WRAPPER, _consts.RendererCssClassName.SORTABLE_COLUMN, _styles.tableCellPadding, "var(--ds-border-focused, ".concat(colors.B300, ")"), headingsCss, (0, _platformFeatureFlags.fg)('platform_editor_nested_tables_renderer_styles') ? (0, _react.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n\t\t\t\t\t\t// New styles\n\t\t\t\t\t\t> .", "\n\t\t\t\t\t\t\t> .", " {\n\t\t\t\t\t\t\tmargin: 0;\n\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t\t\t\ttransition: opacity 0.2s ease-in-out;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t> .", "\n\t\t\t\t\t\t\t> .", " {\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\topacity: 0;\n\t\t\t\t\t\t\t\t&:focus {\n\t\t\t\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&:hover:not(\n\t\t\t\t\t\t\t\t:has(\n\t\t\t\t\t\t\t\t\t\t.", "\n\t\t\t\t\t\t\t\t\t\t\t.", ":hover\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t> .", "\n\t\t\t\t\t\t\t> .", " {\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t"])), _consts.RendererCssClassName.SORTABLE_COLUMN, _consts.RendererCssClassName.SORTABLE_COLUMN_ICON_WRAPPER, _table2.SORTABLE_COLUMN_ICON_CLASSNAME, _consts.RendererCssClassName.SORTABLE_COLUMN, _consts.RendererCssClassName.SORTABLE_COLUMN_NO_ORDER, _table2.SORTABLE_COLUMN_ICON_CLASSNAME, _consts.RendererCssClassName.SORTABLE_COLUMN_WRAPPER, _consts.RendererCssClassName.SORTABLE_COLUMN, _consts.RendererCssClassName.SORTABLE_COLUMN, _consts.RendererCssClassName.SORTABLE_COLUMN_NO_ORDER, _table2.SORTABLE_COLUMN_ICON_CLASSNAME) : (0, _react.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n\t\t\t\t\t\t// old styles\n\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t\t\t\ttransition: opacity 0.2s ease-in-out;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\topacity: 0;\n\t\t\t\t\t\t\t\t&:focus {\n\t\t\t\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&:hover {\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t"])), _consts.RendererCssClassName.SORTABLE_COLUMN_ICON_WRAPPER, _table2.SORTABLE_COLUMN_ICON_CLASSNAME, _consts.RendererCssClassName.SORTABLE_COLUMN_NO_ORDER, _table2.SORTABLE_COLUMN_ICON_CLASSNAME, _consts.RendererCssClassName.SORTABLE_COLUMN_NO_ORDER, _table2.SORTABLE_COLUMN_ICON_CLASSNAME));
131
+ return (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n\t\t.", " {\n\t\t\tpadding: 0;\n\n\t\t\t.", " {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tpadding: ", "px;\n\t\t\t\tborder-width: 1.5px;\n\t\t\t\tborder-style: solid;\n\t\t\t\tborder-color: transparent;\n\n\t\t\t\t> *:first-child {\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t}\n\n\t\t\t\t> .ProseMirror-gapcursor:first-child + *,\n\t\t\t\t> style:first-child + .ProseMirror-gapcursor + * {\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t}\n\n\t\t\t\t> .ProseMirror-gapcursor:first-child + span + *,\n\t\t\t\t> style:first-child + .ProseMirror-gapcursor + span + * {\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t}\n\n\t\t\t\t@supports selector(:focus-visible) {\n\t\t\t\t\t&:focus {\n\t\t\t\t\t\toutline: unset;\n\t\t\t\t\t}\n\t\t\t\t\t&:focus-visible {\n\t\t\t\t\t\tborder-color: ", ";\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t", "\n\t\t\t}\n\n\t\t\t", "\n\t\t}\n\t"])), _consts.RendererCssClassName.SORTABLE_COLUMN_WRAPPER, _consts.RendererCssClassName.SORTABLE_COLUMN, _styles.tableCellPadding, "var(--ds-border-focused, ".concat(colors.B300, ")"), headingsCss, (0, _platformFeatureFlags.fg)('platform_editor_nested_tables_renderer_styles') ? (0, _react.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n\t\t\t\t\t\t// New styles\n\t\t\t\t\t\t> .", "\n\t\t\t\t\t\t\t> .", " {\n\t\t\t\t\t\t\tmargin: 0;\n\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t\t\t\ttransition: opacity 0.2s ease-in-out;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t> .", "\n\t\t\t\t\t\t\t> .", " {\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\topacity: 0;\n\t\t\t\t\t\t\t\t&:focus {\n\t\t\t\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&:hover:not(\n\t\t\t\t\t\t\t\t:has(\n\t\t\t\t\t\t\t\t\t.", "\n\t\t\t\t\t\t\t\t\t\t.", ":hover\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t> .", "\n\t\t\t\t\t\t\t> .", " {\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t"])), _consts.RendererCssClassName.SORTABLE_COLUMN, _consts.RendererCssClassName.SORTABLE_COLUMN_ICON_WRAPPER, _table2.SORTABLE_COLUMN_ICON_CLASSNAME, _consts.RendererCssClassName.SORTABLE_COLUMN, _consts.RendererCssClassName.SORTABLE_COLUMN_NO_ORDER, _table2.SORTABLE_COLUMN_ICON_CLASSNAME, _consts.RendererCssClassName.SORTABLE_COLUMN_WRAPPER, _consts.RendererCssClassName.SORTABLE_COLUMN, _consts.RendererCssClassName.SORTABLE_COLUMN, _consts.RendererCssClassName.SORTABLE_COLUMN_NO_ORDER, _table2.SORTABLE_COLUMN_ICON_CLASSNAME) : (0, _react.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n\t\t\t\t\t\t// old styles\n\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t\t\t\ttransition: opacity 0.2s ease-in-out;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\topacity: 0;\n\t\t\t\t\t\t\t\t&:focus {\n\t\t\t\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&:hover {\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t"])), _consts.RendererCssClassName.SORTABLE_COLUMN_ICON_WRAPPER, _table2.SORTABLE_COLUMN_ICON_CLASSNAME, _consts.RendererCssClassName.SORTABLE_COLUMN_NO_ORDER, _table2.SORTABLE_COLUMN_ICON_CLASSNAME, _consts.RendererCssClassName.SORTABLE_COLUMN_NO_ORDER, _table2.SORTABLE_COLUMN_ICON_CLASSNAME));
132
132
  };
133
133
  var fullPageStyles = function fullPageStyles(_ref3, _ref4) {
134
134
  var appearance = _ref3.appearance;
@@ -183,6 +183,7 @@ export default class ReactSerializer {
183
183
  this.media = init.media;
184
184
  this.emojiResourceConfig = init.emojiResourceConfig;
185
185
  this.smartLinks = init.smartLinks;
186
+ this.extensionViewportSizes = init.extensionViewportSizes;
186
187
  this.allowSelectAllTrap = init.allowSelectAllTrap;
187
188
  this.nodeComponents = init.nodeComponents;
188
189
  this.allowWindowedCodeBlock = init.allowWindowedCodeBlock;
@@ -209,6 +210,9 @@ export default class ReactSerializer {
209
210
  return this.getMediaProps(node, path);
210
211
  case 'emoji':
211
212
  return this.getEmojiProps(node);
213
+ case 'extension':
214
+ case 'bodiedExtension':
215
+ return this.getExtensionProps(node, path);
212
216
  case 'mediaGroup':
213
217
  return this.getMediaGroupProps(node);
214
218
  case 'mediaInline':
@@ -442,6 +446,12 @@ export default class ReactSerializer {
442
446
  allowAnnotationsDraftMode: this.surroundTextNodesWithTextWrapper
443
447
  };
444
448
  }
449
+ getExtensionProps(node, path = []) {
450
+ return {
451
+ ...this.getProps(node, path),
452
+ extensionViewportSizes: this.extensionViewportSizes
453
+ };
454
+ }
445
455
  getEmojiProps(node) {
446
456
  return {
447
457
  ...this.getProps(node),
@@ -69,10 +69,9 @@ export class TableStickyScrollbar {
69
69
  root: this.rendererScrollableElement
70
70
  });
71
71
  const bottomSentinels = (_this$wrapper = this.wrapper) === null || _this$wrapper === void 0 ? void 0 : (_this$wrapper$parentE3 = _this$wrapper.parentElement) === null || _this$wrapper$parentE3 === void 0 ? void 0 : _this$wrapper$parentE3.getElementsByClassName(TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM);
72
- this.sentinels.bottom = fg('platform_editor_querySelector_fix_table_renderer')
73
- // eslint-disable-next-line @atlaskit/editor/no-as-casting
74
- ? bottomSentinels === null || bottomSentinels === void 0 ? void 0 : bottomSentinels.item(bottomSentinels.length - 1) // eslint-disable-next-line @atlaskit/editor/no-as-casting
75
- : (_this$wrapper2 = this.wrapper) === null || _this$wrapper2 === void 0 ? void 0 : (_this$wrapper2$parent = _this$wrapper2.parentElement) === null || _this$wrapper2$parent === void 0 ? void 0 : (_this$wrapper2$parent2 = _this$wrapper2$parent.getElementsByClassName(TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM)) === null || _this$wrapper2$parent2 === void 0 ? void 0 : _this$wrapper2$parent2.item(0);
72
+ this.sentinels.bottom = fg('platform_editor_querySelector_fix_table_renderer') ? // eslint-disable-next-line @atlaskit/editor/no-as-casting
73
+ bottomSentinels === null || bottomSentinels === void 0 ? void 0 : bottomSentinels.item(bottomSentinels.length - 1) : // eslint-disable-next-line @atlaskit/editor/no-as-casting
74
+ (_this$wrapper2 = this.wrapper) === null || _this$wrapper2 === void 0 ? void 0 : (_this$wrapper2$parent = _this$wrapper2.parentElement) === null || _this$wrapper2$parent === void 0 ? void 0 : (_this$wrapper2$parent2 = _this$wrapper2$parent.getElementsByClassName(TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM)) === null || _this$wrapper2$parent2 === void 0 ? void 0 : _this$wrapper2$parent2.item(0);
76
75
 
77
76
  // Ignored via go/ees005
78
77
  // eslint-disable-next-line @atlaskit/editor/no-as-casting
@@ -13,7 +13,9 @@ const BodiedExtension = props => {
13
13
  layout = 'default',
14
14
  path = [],
15
15
  extensionKey,
16
- extensionType
16
+ extensionType,
17
+ parameters,
18
+ extensionViewportSizes
17
19
  } = props;
18
20
  const {
19
21
  createAnalyticsEvent
@@ -44,7 +46,7 @@ const BodiedExtension = props => {
44
46
  // Return the content directly if it's a valid JSX.Element
45
47
  return renderExtension(result, layout, {
46
48
  isTopLevel: path.length < 1
47
- }, removeOverflow);
49
+ }, removeOverflow, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
48
50
  }
49
51
  } catch (e) {
50
52
  /** We don't want this error to block renderer */
@@ -54,7 +56,7 @@ const BodiedExtension = props => {
54
56
  // Always return default content if anything goes wrong
55
57
  return renderExtension(children, layout, {
56
58
  isTopLevel: path.length < 1
57
- }, removeOverflow);
59
+ }, removeOverflow, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
58
60
  })));
59
61
  };
60
62
  export default BodiedExtension;
@@ -4,7 +4,26 @@ import ExtensionRenderer from '../../ui/ExtensionRenderer';
4
4
  import { overflowShadow, WidthConsumer } from '@atlaskit/editor-common/ui';
5
5
  import { calcBreakoutWidth } from '@atlaskit/editor-common/utils';
6
6
  import { RendererCssClassName } from '../../consts';
7
- export const renderExtension = (content, layout, options = {}, removeOverflow) => {
7
+ const viewportSizes = ['small', 'medium', 'default', 'large', 'xlarge'];
8
+ // Mirrors sizes from https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/forge/xen-editor-provider/src/render/renderers/ForgeUIExtension.tsx
9
+ const macroHeights = {
10
+ small: '112px',
11
+ medium: '262px',
12
+ default: '262px',
13
+ large: '524px',
14
+ xlarge: '1048px'
15
+ };
16
+ const getViewportSize = (extensionId, extensionViewportSizes) => {
17
+ if (!Array.isArray(extensionViewportSizes) || !extensionId) {
18
+ return;
19
+ }
20
+ const extension = extensionViewportSizes.find(extension => extension.extensionId === extensionId);
21
+ if (extension) {
22
+ const viewportSize = extension.viewportSize && viewportSizes.includes(extension.viewportSize) ? extension.viewportSize : 'default';
23
+ return macroHeights[viewportSize];
24
+ }
25
+ };
26
+ export const renderExtension = (content, layout, options = {}, removeOverflow, extensionId, extensionViewportSizes) => {
8
27
  const overflowContainerClass = !removeOverflow ? RendererCssClassName.EXTENSION_OVERFLOW_CONTAINER : '';
9
28
 
10
29
  // by default, we assume the extension is at top level, (direct child of doc node)
@@ -12,6 +31,7 @@ export const renderExtension = (content, layout, options = {}, removeOverflow) =
12
31
  isTopLevel = true
13
32
  } = options || {};
14
33
  const centerAlignClass = isTopLevel && ['wide', 'full-width'].includes(layout) ? RendererCssClassName.EXTENSION_CENTER_ALIGN : '';
34
+ const viewportSize = getViewportSize(extensionId, extensionViewportSizes);
15
35
  return /*#__PURE__*/React.createElement(WidthConsumer, null, ({
16
36
  width
17
37
  }) => /*#__PURE__*/React.createElement("div", {
@@ -21,7 +41,8 @@ export const renderExtension = (content, layout, options = {}, removeOverflow) =
21
41
  className: `${RendererCssClassName.EXTENSION} ${options.shadowClassNames} ${centerAlignClass}`,
22
42
  style: {
23
43
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
24
- width: isTopLevel ? calcBreakoutWidth(layout, width) : '100%'
44
+ width: isTopLevel ? calcBreakoutWidth(layout, width) : '100%',
45
+ minHeight: viewportSize
25
46
  },
26
47
  "data-layout": layout
27
48
  }, /*#__PURE__*/React.createElement("div", {
@@ -34,7 +55,9 @@ const Extension = props => {
34
55
  layout = 'default',
35
56
  handleRef,
36
57
  shadowClassNames,
37
- path = []
58
+ path = [],
59
+ extensionViewportSizes,
60
+ parameters
38
61
  } = props;
39
62
  return /*#__PURE__*/React.createElement(ExtensionRenderer
40
63
  // Ignored via go/ees005
@@ -51,19 +74,18 @@ const Extension = props => {
51
74
  isTopLevel: path.length < 1,
52
75
  handleRef,
53
76
  shadowClassNames
54
- });
77
+ }, undefined, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
55
78
  }
56
79
  } catch (e) {
57
80
  /** We don't want this error to block renderer */
58
81
  /** We keep rendering the default content */
59
82
  }
60
-
61
83
  // Always return default content if anything goes wrong
62
84
  return renderExtension(text || 'extension', layout, {
63
85
  isTopLevel: path.length < 1,
64
86
  handleRef,
65
87
  shadowClassNames
66
- });
88
+ }, undefined, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
67
89
  });
68
90
  };
69
91
  export default overflowShadow(Extension, {