@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,4 @@
1
+ import { akEditorFullPageDefaultFontSize } from '@atlaskit/editor-shared-styles';
2
+ export const getBaseFontSize = appearance => {
3
+ return appearance && appearance !== 'comment' ? akEditorFullPageDefaultFontSize : 14;
4
+ };
@@ -22,7 +22,6 @@ import { FabricChannel } from '@atlaskit/analytics-listeners/types';
22
22
  import { FabricEditorAnalyticsContext } from '@atlaskit/analytics-namespaced-context';
23
23
  import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
24
24
  import { normalizeFeatureFlags } from '@atlaskit/editor-common/normalize-feature-flags';
25
- import { akEditorFullPageDefaultFontSize } from '@atlaskit/editor-shared-styles';
26
25
  import memoizeOne from 'memoize-one';
27
26
  import uuid from 'uuid/v4';
28
27
  import { ReactSerializer, renderDocument } from '../../';
@@ -40,13 +39,15 @@ import { ErrorBoundary } from './ErrorBoundary';
40
39
  import { BreakoutSSRInlineScript } from './breakout-ssr';
41
40
  import { isInteractiveElement } from './click-to-edit';
42
41
  import { countNodes } from './count-nodes';
43
- import { TELEPOINTER_ID, rendererStyles } from './style';
42
+ import { TELEPOINTER_ID } from './style';
44
43
  import { TruncatedWrapper } from './truncated-wrapper';
45
44
  import { ValidationContext } from './ValidationContext';
45
+ import { RendererStyleContainer } from './RendererStyleContainer';
46
+ import { getBaseFontSize } from './get-base-font-size';
46
47
  export const NORMAL_SEVERITY_THRESHOLD = 2000;
47
48
  export const DEGRADED_SEVERITY_THRESHOLD = 3000;
48
49
  const packageName = "@atlaskit/renderer";
49
- const packageVersion = "113.1.2";
50
+ const packageVersion = "113.2.1";
50
51
  const setAsQueryContainerStyles = css({
51
52
  containerName: 'ak-renderer-wrapper',
52
53
  containerType: 'inline-size',
@@ -273,6 +274,7 @@ export class __RendererClassComponent extends PureComponent {
273
274
  media: props.media,
274
275
  emojiResourceConfig: props.emojiResourceConfig,
275
276
  smartLinks: props.smartLinks,
277
+ extensionViewportSizes: props.extensionViewportSizes,
276
278
  allowCopyToClipboard: props.allowCopyToClipboard,
277
279
  allowWrapCodeBlock: props.allowWrapCodeBlock,
278
280
  allowCustomPanels: props.allowCustomPanels,
@@ -608,6 +610,7 @@ const RendererFunctionalComponent = props => {
608
610
  media: props.media,
609
611
  emojiResourceConfig: props.emojiResourceConfig,
610
612
  smartLinks: props.smartLinks,
613
+ extensionViewportSizes: props.extensionViewportSizes,
611
614
  allowCopyToClipboard: props.allowCopyToClipboard,
612
615
  allowWrapCodeBlock: props.allowWrapCodeBlock,
613
616
  allowCustomPanels: props.allowCustomPanels,
@@ -936,23 +939,19 @@ const RendererWrapper = /*#__PURE__*/React.memo(props => {
936
939
  "data-appearance": appearance,
937
940
  shouldCheckExistingValue: isInsideOfInlineExtension
938
941
  }, jsx(BaseTheme, {
939
- baseFontSize: appearance && appearance !== 'comment' ? akEditorFullPageDefaultFontSize : undefined
942
+ baseFontSize: getBaseFontSize(appearance)
940
943
  }, jsx(EditorMediaClientProvider, {
941
944
  ssr: ssr
942
- }, jsx("div", {
943
- ref: innerRef,
945
+ }, jsx(RendererStyleContainer, {
946
+ innerRef: innerRef,
944
947
  onClick: onClick,
945
- onMouseDown: onMouseDown
946
- // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
947
- ,
948
- css: rendererStyles({
949
- appearance,
950
- allowNestedHeaderLinks,
951
- allowColumnSorting: !!allowColumnSorting,
952
- useBlockRenderForCodeBlock,
953
- allowAnnotations: props.allowAnnotations,
954
- allowTableResizing: allowTableResizing
955
- })
948
+ onMouseDown: onMouseDown,
949
+ appearance: appearance,
950
+ allowNestedHeaderLinks: allowNestedHeaderLinks,
951
+ allowColumnSorting: !!allowColumnSorting,
952
+ useBlockRenderForCodeBlock: useBlockRenderForCodeBlock,
953
+ allowAnnotations: props.allowAnnotations,
954
+ allowTableResizing: allowTableResizing
956
955
  }, children))));
957
956
 
958
957
  // We can only make the wrapper div query container when we have a known width.
@@ -312,9 +312,9 @@ const tableSortableColumnStyle = ({
312
312
 
313
313
  &:hover:not(
314
314
  :has(
315
- .${RendererCssClassName.SORTABLE_COLUMN_WRAPPER}
316
- .${RendererCssClassName.SORTABLE_COLUMN}:hover
317
- )
315
+ .${RendererCssClassName.SORTABLE_COLUMN_WRAPPER}
316
+ .${RendererCssClassName.SORTABLE_COLUMN}:hover
317
+ )
318
318
  )
319
319
  > .${RendererCssClassName.SORTABLE_COLUMN}
320
320
  > .${RendererCssClassName.SORTABLE_COLUMN_NO_ORDER} {
@@ -190,6 +190,7 @@ var ReactSerializer = /*#__PURE__*/function () {
190
190
  this.media = init.media;
191
191
  this.emojiResourceConfig = init.emojiResourceConfig;
192
192
  this.smartLinks = init.smartLinks;
193
+ this.extensionViewportSizes = init.extensionViewportSizes;
193
194
  this.allowSelectAllTrap = init.allowSelectAllTrap;
194
195
  this.nodeComponents = init.nodeComponents;
195
196
  this.allowWindowedCodeBlock = init.allowWindowedCodeBlock;
@@ -220,6 +221,9 @@ var ReactSerializer = /*#__PURE__*/function () {
220
221
  return this.getMediaProps(node, path);
221
222
  case 'emoji':
222
223
  return this.getEmojiProps(node);
224
+ case 'extension':
225
+ case 'bodiedExtension':
226
+ return this.getExtensionProps(node, path);
223
227
  case 'mediaGroup':
224
228
  return this.getMediaGroupProps(node);
225
229
  case 'mediaInline':
@@ -481,6 +485,14 @@ var ReactSerializer = /*#__PURE__*/function () {
481
485
  allowAnnotationsDraftMode: this.surroundTextNodesWithTextWrapper
482
486
  });
483
487
  }
488
+ }, {
489
+ key: "getExtensionProps",
490
+ value: function getExtensionProps(node) {
491
+ var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
492
+ return _objectSpread(_objectSpread({}, this.getProps(node, path)), {}, {
493
+ extensionViewportSizes: this.extensionViewportSizes
494
+ });
495
+ }
484
496
  }, {
485
497
  key: "getEmojiProps",
486
498
  value: function getEmojiProps(node) {
@@ -84,10 +84,9 @@ export var TableStickyScrollbar = /*#__PURE__*/function () {
84
84
  root: this.rendererScrollableElement
85
85
  });
86
86
  var bottomSentinels = (_this$wrapper = this.wrapper) === null || _this$wrapper === void 0 || (_this$wrapper = _this$wrapper.parentElement) === null || _this$wrapper === void 0 ? void 0 : _this$wrapper.getElementsByClassName(TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM);
87
- this.sentinels.bottom = fg('platform_editor_querySelector_fix_table_renderer')
88
- // eslint-disable-next-line @atlaskit/editor/no-as-casting
89
- ? bottomSentinels === null || bottomSentinels === void 0 ? void 0 : bottomSentinels.item(bottomSentinels.length - 1) // eslint-disable-next-line @atlaskit/editor/no-as-casting
90
- : (_this$wrapper2 = this.wrapper) === null || _this$wrapper2 === void 0 || (_this$wrapper2 = _this$wrapper2.parentElement) === null || _this$wrapper2 === void 0 || (_this$wrapper2 = _this$wrapper2.getElementsByClassName(TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM)) === null || _this$wrapper2 === void 0 ? void 0 : _this$wrapper2.item(0);
87
+ this.sentinels.bottom = fg('platform_editor_querySelector_fix_table_renderer') ? // eslint-disable-next-line @atlaskit/editor/no-as-casting
88
+ bottomSentinels === null || bottomSentinels === void 0 ? void 0 : bottomSentinels.item(bottomSentinels.length - 1) : // eslint-disable-next-line @atlaskit/editor/no-as-casting
89
+ (_this$wrapper2 = this.wrapper) === null || _this$wrapper2 === void 0 || (_this$wrapper2 = _this$wrapper2.parentElement) === null || _this$wrapper2 === void 0 || (_this$wrapper2 = _this$wrapper2.getElementsByClassName(TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM)) === null || _this$wrapper2 === void 0 ? void 0 : _this$wrapper2.item(0);
91
90
 
92
91
  // Ignored via go/ees005
93
92
  // eslint-disable-next-line @atlaskit/editor/no-as-casting
@@ -14,7 +14,9 @@ var BodiedExtension = function BodiedExtension(props) {
14
14
  _props$path = props.path,
15
15
  path = _props$path === void 0 ? [] : _props$path,
16
16
  extensionKey = props.extensionKey,
17
- extensionType = props.extensionType;
17
+ extensionType = props.extensionType,
18
+ parameters = props.parameters,
19
+ extensionViewportSizes = props.extensionViewportSizes;
18
20
  var _useAnalyticsEvents = useAnalyticsEvents(),
19
21
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
20
22
  var removeOverflow = React.Children.toArray(children)
@@ -44,7 +46,7 @@ var BodiedExtension = function 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 @@ var BodiedExtension = function 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,9 +4,32 @@ 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
+ var 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
+ var macroHeights = {
10
+ small: '112px',
11
+ medium: '262px',
12
+ default: '262px',
13
+ large: '524px',
14
+ xlarge: '1048px'
15
+ };
16
+ var getViewportSize = function getViewportSize(extensionId, extensionViewportSizes) {
17
+ if (!Array.isArray(extensionViewportSizes) || !extensionId) {
18
+ return;
19
+ }
20
+ var extension = extensionViewportSizes.find(function (extension) {
21
+ return extension.extensionId === extensionId;
22
+ });
23
+ if (extension) {
24
+ var viewportSize = extension.viewportSize && viewportSizes.includes(extension.viewportSize) ? extension.viewportSize : 'default';
25
+ return macroHeights[viewportSize];
26
+ }
27
+ };
7
28
  export var renderExtension = function renderExtension(content, layout) {
8
29
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
9
30
  var removeOverflow = arguments.length > 3 ? arguments[3] : undefined;
31
+ var extensionId = arguments.length > 4 ? arguments[4] : undefined;
32
+ var extensionViewportSizes = arguments.length > 5 ? arguments[5] : undefined;
10
33
  var overflowContainerClass = !removeOverflow ? RendererCssClassName.EXTENSION_OVERFLOW_CONTAINER : '';
11
34
 
12
35
  // by default, we assume the extension is at top level, (direct child of doc node)
@@ -14,6 +37,7 @@ export var renderExtension = function renderExtension(content, layout) {
14
37
  _ref$isTopLevel = _ref.isTopLevel,
15
38
  isTopLevel = _ref$isTopLevel === void 0 ? true : _ref$isTopLevel;
16
39
  var centerAlignClass = isTopLevel && ['wide', 'full-width'].includes(layout) ? RendererCssClassName.EXTENSION_CENTER_ALIGN : '';
40
+ var viewportSize = getViewportSize(extensionId, extensionViewportSizes);
17
41
  return /*#__PURE__*/React.createElement(WidthConsumer, null, function (_ref2) {
18
42
  var width = _ref2.width;
19
43
  return /*#__PURE__*/React.createElement("div", {
@@ -23,7 +47,8 @@ export var renderExtension = function renderExtension(content, layout) {
23
47
  className: "".concat(RendererCssClassName.EXTENSION, " ").concat(options.shadowClassNames, " ").concat(centerAlignClass),
24
48
  style: {
25
49
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
26
- width: isTopLevel ? calcBreakoutWidth(layout, width) : '100%'
50
+ width: isTopLevel ? calcBreakoutWidth(layout, width) : '100%',
51
+ minHeight: viewportSize
27
52
  },
28
53
  "data-layout": layout
29
54
  }, /*#__PURE__*/React.createElement("div", {
@@ -38,7 +63,9 @@ var Extension = function Extension(props) {
38
63
  handleRef = props.handleRef,
39
64
  shadowClassNames = props.shadowClassNames,
40
65
  _props$path = props.path,
41
- path = _props$path === void 0 ? [] : _props$path;
66
+ path = _props$path === void 0 ? [] : _props$path,
67
+ extensionViewportSizes = props.extensionViewportSizes,
68
+ parameters = props.parameters;
42
69
  return /*#__PURE__*/React.createElement(ExtensionRenderer
43
70
  // Ignored via go/ees005
44
71
  // eslint-disable-next-line react/jsx-props-no-spreading
@@ -53,19 +80,18 @@ var Extension = function Extension(props) {
53
80
  isTopLevel: path.length < 1,
54
81
  handleRef: handleRef,
55
82
  shadowClassNames: shadowClassNames
56
- });
83
+ }, undefined, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
57
84
  }
58
85
  } catch (e) {
59
86
  /** We don't want this error to block renderer */
60
87
  /** We keep rendering the default content */
61
88
  }
62
-
63
89
  // Always return default content if anything goes wrong
64
90
  return renderExtension(text || 'extension', layout, {
65
91
  isTopLevel: path.length < 1,
66
92
  handleRef: handleRef,
67
93
  shadowClassNames: shadowClassNames
68
- });
94
+ }, undefined, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
69
95
  });
70
96
  };
71
97
  export default overflowShadow(Extension, {