@atlaskit/renderer 103.0.2 → 104.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @atlaskit/renderer
2
2
 
3
+ ## 104.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [`2df5ab17c10`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2df5ab17c10) - DSP-6459: Adds a background to code blocks in the editor to remove transparency. E.g. prevents table cell background colors from affecting code blocks. Also modifies code blocks in table headers to have a border instead of a different color when design tokens are enabled.
8
+
9
+ ### Patch Changes
10
+
11
+ - [`c472a1eed2f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c472a1eed2f) - DSP-3443 Updates tokens used for floating buttons; updated appearances only visible in applications configured to use the new Tokens API (currently in alpha).
12
+ - [`34f8542468b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/34f8542468b) - [ED-12592] Updates the renderer rendered measurement to indicate when the measurement is distorted. Re uses distorted measurement identification logic from other render measurements.
13
+ - [`977ac74443c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/977ac74443c) - DSP-7235: Fixes issue with overflow shadows on code blocks due to layered transparent colors.
14
+ - [`c2510fa261f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c2510fa261f) - [ux] ED-15961 [ux] Updates the presentation of text color to use dark and light mode colors when those modes are enabled
15
+ - Updated dependencies
16
+
3
17
  ## 103.0.2
4
18
 
5
19
  ### Patch Changes
@@ -15,14 +15,20 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
15
15
 
16
16
  var _react = _interopRequireWildcard(require("react"));
17
17
 
18
+ var _editorPalette = require("@atlaskit/editor-palette");
19
+
18
20
  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); }
19
21
 
20
22
  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; }
21
23
 
22
24
  function TextColor(props) {
25
+ // Note -- while there is no way to create custom colors using default tooling
26
+ // the editor does supported ad hoc color values -- and there may be content
27
+ // which has been migrated or created via apis which use such values.
28
+ var paletteColorValue = (0, _editorPalette.hexToEditorTextPaletteColor)(props.color) || props.color;
23
29
  var style = (0, _react.useMemo)(function () {
24
- return (0, _defineProperty2.default)({}, '--custom-text-color', props.color);
25
- }, [props.color]);
30
+ return (0, _defineProperty2.default)({}, '--custom-palette-color', paletteColorValue);
31
+ }, [paletteColorValue]);
26
32
  return /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({}, props.dataAttributes, {
27
33
  "data-text-custom-color": props.color,
28
34
  className: "fabric-text-color-mark",
@@ -23,16 +23,19 @@ var _styles = require("@atlaskit/editor-common/styles");
23
23
 
24
24
  var _codeBlockCopyButton = _interopRequireDefault(require("../../codeBlockCopyButton"));
25
25
 
26
+ var _tokens = require("@atlaskit/tokens");
27
+
26
28
  var _templateObject;
27
29
 
28
30
  // TODO: Quality ticket https://product-fabric.atlassian.net/browse/DSP-4118
29
-
30
- /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
31
31
  var codeBlockStyleOverrides = function codeBlockStyleOverrides(props) {
32
- return (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n tab-size: 4;\n ", " {\n font-size: ", ";\n line-height: 1.5rem;\n background-image: ", ";\n background-attachment: local, scroll, scroll;\n background-position: 100% 0, 100% 0, 0 0;\n }\n "])), _styles.CodeBlockSharedCssClassName.DS_CODEBLOCK, (0, _editorSharedStyles.relativeFontSizeToBase16)((0, _constants.fontSize)()), (0, _editorSharedStyles.overflowShadow)({
32
+ return (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n tab-size: 4;\n background-color: ", ";\n\n ", " {\n font-size: ", ";\n line-height: 1.5rem;\n background-image: ", ";\n background-attachment: local, local, local, local, scroll, scroll;\n background-position: 0 0, 0 0, 100% 0, 100% 0, 100% 0, 0 0;\n }\n "])), (0, _components.themed)({
33
+ light: (0, _tokens.token)('elevation.surface.raised', _colors.N20),
34
+ dark: (0, _tokens.token)('elevation.surface.raised', _colors.DN50)
35
+ })(props), _styles.CodeBlockSharedCssClassName.DS_CODEBLOCK, (0, _editorSharedStyles.relativeFontSizeToBase16)((0, _constants.fontSize)()), (0, _editorSharedStyles.overflowShadow)({
33
36
  background: (0, _components.themed)({
34
- light: _colors.N20,
35
- dark: _colors.DN50
37
+ light: (0, _tokens.token)('color.background.neutral', _colors.N20),
38
+ dark: (0, _tokens.token)('color.background.neutral', _colors.DN50)
36
39
  })(props),
37
40
  width: "".concat((0, _constants.gridSize)(), "px")
38
41
  }));
@@ -21,7 +21,7 @@ var _reactIntlNext = require("react-intl-next");
21
21
 
22
22
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
23
23
 
24
- var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
24
+ var _button = _interopRequireDefault(require("@atlaskit/button"));
25
25
 
26
26
  var _copy = _interopRequireDefault(require("@atlaskit/icon/glyph/copy"));
27
27
 
@@ -39,7 +39,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
39
39
 
40
40
  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; }
41
41
 
42
- var copyButtonWrapperStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n position: sticky;\n justify-content: flex-end;\n top: 0;\n\n button {\n position: absolute;\n display: flex;\n justify-content: center;\n height: 32px;\n width: 32px;\n right: 6px;\n top: 4px;\n padding: 2px;\n opacity: 0;\n transition: opacity 0.2s ease 0s;\n border: 2px solid ", ";\n border-radius: 4px;\n background-color: ", ";\n color: ", ";\n }\n\n button:hover {\n background-color: ", ";\n }\n\n button.clicked {\n background-color: ", ";\n color: ", " !important;\n }\n"])), (0, _tokens.token)('color.border.inverse', '#fff'), (0, _tokens.token)('color.background.neutral.subtle', _colors.N20), (0, _tokens.token)('color.icon', 'rgb(66, 82, 110)'), (0, _tokens.token)('color.background.neutral.hovered', _colors.N30), (0, _tokens.token)('color.background.neutral.bold.pressed', _colors.N700), (0, _tokens.token)('color.icon.inverse', '#fff'));
42
+ var copyButtonWrapperStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n position: sticky;\n justify-content: flex-end;\n top: 0;\n\n button {\n position: absolute;\n display: flex;\n justify-content: center;\n height: 32px;\n width: 32px;\n right: 6px;\n top: 4px;\n padding: 2px;\n opacity: 0;\n transition: opacity 0.2s ease 0s;\n border: 2px solid ", ";\n border-radius: 4px;\n background-color: ", ";\n color: ", " !important;\n }\n\n button:hover {\n border: 2px solid ", ";\n background-color: ", ";\n }\n\n button:active {\n border: 2px solid ", ";\n background-color: ", ";\n }\n\n button.clicked {\n background-color: ", ";\n color: ", " !important;\n }\n button.clicked:hover {\n background-color: ", ";\n }\n"])), (0, _tokens.token)('color.border', '#fff'), (0, _tokens.token)('elevation.surface.overlay', _colors.N20), (0, _tokens.token)('color.text', 'rgb(66, 82, 110)'), (0, _tokens.token)('color.border', 'transparent'), (0, _tokens.token)('elevation.surface.overlay.hovered', _colors.N30), (0, _tokens.token)('color.border', 'transparent'), (0, _tokens.token)('elevation.surface.overlay.pressed', _colors.N30), (0, _tokens.token)('elevation.surface.overlay', _colors.N700), (0, _tokens.token)('color.text', '#fff'), (0, _tokens.token)('elevation.surface.overlay.hovered', _colors.N700));
43
43
 
44
44
  var CopyButton = function CopyButton(_ref) {
45
45
  var content = _ref.content,
@@ -68,7 +68,7 @@ var CopyButton = function CopyButton(_ref) {
68
68
  position: "top"
69
69
  }, (0, _react.jsx)("div", {
70
70
  onMouseLeave: onMouseLeave
71
- }, (0, _react.jsx)(_customThemeButton.default, {
71
+ }, (0, _react.jsx)(_button.default, {
72
72
  className: className,
73
73
  "aria-label": tooltip,
74
74
  spacing: "compact",
@@ -102,18 +102,23 @@ exports.NORMAL_SEVERITY_THRESHOLD = NORMAL_SEVERITY_THRESHOLD;
102
102
  var DEGRADED_SEVERITY_THRESHOLD = 3000;
103
103
  exports.DEGRADED_SEVERITY_THRESHOLD = DEGRADED_SEVERITY_THRESHOLD;
104
104
  var packageName = "@atlaskit/renderer";
105
- var packageVersion = "103.0.2";
105
+ var packageVersion = "104.0.0";
106
106
 
107
107
  var Renderer = /*#__PURE__*/function (_PureComponent) {
108
108
  (0, _inherits2.default)(Renderer, _PureComponent);
109
109
 
110
110
  var _super = _createSuper(Renderer);
111
111
 
112
+ /**
113
+ * This is used in measuring the Renderer Mount time and is then
114
+ * deleted once that measurement occurs.
115
+ */
112
116
  function Renderer(props) {
113
117
  var _this;
114
118
 
115
119
  (0, _classCallCheck2.default)(this, Renderer);
116
120
  _this = _super.call(this, props);
121
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderedMeasurementDistortedDurationMonitor", (0, _utils.getDistortedDurationMonitor)());
117
122
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "featureFlags", (0, _memoizeOne.default)(function (featureFlags) {
118
123
  var normalizedFeatureFlags = (0, _normalizeFeatureFlags.normalizeFeatureFlags)(featureFlags, {
119
124
  objectFlagKeys: ['rendererRenderTracking']
@@ -277,6 +282,7 @@ var Renderer = /*#__PURE__*/function (_PureComponent) {
277
282
  attributes: {
278
283
  platform: _events.PLATFORM.WEB,
279
284
  duration: duration,
285
+ distortedDuration: _this2.renderedMeasurementDistortedDurationMonitor.distortedDuration,
280
286
  ttfb: (0, _utils.getResponseEndTime)(),
281
287
  nodes: (0, _traverse.reduce)(_this2.props.document, function (acc, node) {
282
288
  acc[node.type] = (acc[node.type] || 0) + 1;
@@ -286,6 +292,10 @@ var Renderer = /*#__PURE__*/function (_PureComponent) {
286
292
  },
287
293
  eventType: _enums.EVENT_TYPE.OPERATIONAL
288
294
  });
295
+
296
+ _this2.renderedMeasurementDistortedDurationMonitor.cleanup();
297
+
298
+ delete _this2.renderedMeasurementDistortedDurationMonitor;
289
299
  });
290
300
 
291
301
  _this2.anchorLinkAnalytics();
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "103.0.2",
3
+ "version": "104.0.0",
4
4
  "sideEffects": false
5
5
  }
@@ -1,9 +1,14 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useMemo } from 'react';
3
+ import { hexToEditorTextPaletteColor } from '@atlaskit/editor-palette';
3
4
  export default function TextColor(props) {
5
+ // Note -- while there is no way to create custom colors using default tooling
6
+ // the editor does supported ad hoc color values -- and there may be content
7
+ // which has been migrated or created via apis which use such values.
8
+ const paletteColorValue = hexToEditorTextPaletteColor(props.color) || props.color;
4
9
  const style = useMemo(() => ({
5
- ['--custom-text-color']: props.color
6
- }), [props.color]);
10
+ ['--custom-palette-color']: paletteColorValue
11
+ }), [paletteColorValue]);
7
12
  return /*#__PURE__*/React.createElement("span", _extends({}, props.dataAttributes, {
8
13
  "data-text-custom-color": props.color,
9
14
  className: "fabric-text-color-mark",
@@ -6,24 +6,27 @@ import { themed } from '@atlaskit/theme/components';
6
6
  import { fontSize, gridSize } from '@atlaskit/theme/constants';
7
7
  import { CodeBlockSharedCssClassName } from '@atlaskit/editor-common/styles';
8
8
  import CopyButton from '../../codeBlockCopyButton';
9
+ import { token } from '@atlaskit/tokens'; // TODO: Quality ticket https://product-fabric.atlassian.net/browse/DSP-4118
9
10
 
10
- // TODO: Quality ticket https://product-fabric.atlassian.net/browse/DSP-4118
11
-
12
- /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
13
11
  const codeBlockStyleOverrides = props => css`
14
12
  tab-size: 4;
13
+ background-color: ${themed({
14
+ light: token('elevation.surface.raised', N20),
15
+ dark: token('elevation.surface.raised', DN50)
16
+ })(props)};
17
+
15
18
  ${CodeBlockSharedCssClassName.DS_CODEBLOCK} {
16
19
  font-size: ${relativeFontSizeToBase16(fontSize())};
17
20
  line-height: 1.5rem;
18
21
  background-image: ${overflowShadow({
19
22
  background: themed({
20
- light: N20,
21
- dark: DN50
23
+ light: token('color.background.neutral', N20),
24
+ dark: token('color.background.neutral', DN50)
22
25
  })(props),
23
26
  width: `${gridSize()}px`
24
27
  })};
25
- background-attachment: local, scroll, scroll;
26
- background-position: 100% 0, 100% 0, 0 0;
28
+ background-attachment: local, local, local, local, scroll, scroll;
29
+ background-position: 0 0, 0 0, 100% 0, 100% 0, 100% 0, 0 0;
27
30
  }
28
31
  `;
29
32
 
@@ -3,7 +3,7 @@ import { css, jsx } from '@emotion/react';
3
3
  import React, { useState } from 'react';
4
4
  import { injectIntl } from 'react-intl-next';
5
5
  import Tooltip from '@atlaskit/tooltip';
6
- import Button from '@atlaskit/button/custom-theme-button';
6
+ import Button from '@atlaskit/button';
7
7
  import CopyIcon from '@atlaskit/icon/glyph/copy';
8
8
  import { N20, N30, N700 } from '@atlaskit/theme/colors';
9
9
  import { copyTextToClipboard } from '../utils/clipboard';
@@ -26,19 +26,28 @@ const copyButtonWrapperStyles = css`
26
26
  padding: 2px;
27
27
  opacity: 0;
28
28
  transition: opacity 0.2s ease 0s;
29
- border: 2px solid ${token('color.border.inverse', '#fff')};
29
+ border: 2px solid ${token('color.border', '#fff')};
30
30
  border-radius: 4px;
31
- background-color: ${token('color.background.neutral.subtle', N20)};
32
- color: ${token('color.icon', 'rgb(66, 82, 110)')};
31
+ background-color: ${token('elevation.surface.overlay', N20)};
32
+ color: ${token('color.text', 'rgb(66, 82, 110)')} !important;
33
33
  }
34
34
 
35
35
  button:hover {
36
- background-color: ${token('color.background.neutral.hovered', N30)};
36
+ border: 2px solid ${token('color.border', 'transparent')};
37
+ background-color: ${token('elevation.surface.overlay.hovered', N30)};
38
+ }
39
+
40
+ button:active {
41
+ border: 2px solid ${token('color.border', 'transparent')};
42
+ background-color: ${token('elevation.surface.overlay.pressed', N30)};
37
43
  }
38
44
 
39
45
  button.clicked {
40
- background-color: ${token('color.background.neutral.bold.pressed', N700)};
41
- color: ${token('color.icon.inverse', '#fff')} !important;
46
+ background-color: ${token('elevation.surface.overlay', N700)};
47
+ color: ${token('color.text', '#fff')} !important;
48
+ }
49
+ button.clicked:hover {
50
+ background-color: ${token('elevation.surface.overlay.hovered', N700)};
42
51
  }
43
52
  `;
44
53
 
@@ -9,7 +9,7 @@ import { getSchemaBasedOnStage } from '@atlaskit/adf-schema/schema-default';
9
9
  import { reduce } from '@atlaskit/adf-utils/traverse';
10
10
  import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
11
11
  import { UnsupportedBlock, BaseTheme, WidthProvider, WithCreateAnalyticsEvent, IntlErrorBoundary } from '@atlaskit/editor-common/ui';
12
- import { getAnalyticsAppearance, getAnalyticsEventSeverity, getResponseEndTime, startMeasure, stopMeasure, shouldForceTracking, measureTTI, browser } from '@atlaskit/editor-common/utils';
12
+ import { getAnalyticsAppearance, getAnalyticsEventSeverity, getResponseEndTime, startMeasure, stopMeasure, shouldForceTracking, measureTTI, getDistortedDurationMonitor, browser } from '@atlaskit/editor-common/utils';
13
13
  import { normalizeFeatureFlags } from '@atlaskit/editor-common/normalize-feature-flags';
14
14
  import { akEditorFullPageDefaultFontSize } from '@atlaskit/editor-shared-styles';
15
15
  import { FabricChannel } from '@atlaskit/analytics-listeners';
@@ -36,11 +36,17 @@ import { RenderTracking } from '../../react/utils/performance/RenderTracking';
36
36
  export const NORMAL_SEVERITY_THRESHOLD = 2000;
37
37
  export const DEGRADED_SEVERITY_THRESHOLD = 3000;
38
38
  const packageName = "@atlaskit/renderer";
39
- const packageVersion = "103.0.2";
39
+ const packageVersion = "104.0.0";
40
40
  export class Renderer extends PureComponent {
41
+ /**
42
+ * This is used in measuring the Renderer Mount time and is then
43
+ * deleted once that measurement occurs.
44
+ */
41
45
  constructor(props) {
42
46
  super(props);
43
47
 
48
+ _defineProperty(this, "renderedMeasurementDistortedDurationMonitor", getDistortedDurationMonitor());
49
+
44
50
  _defineProperty(this, "featureFlags", memoizeOne(featureFlags => {
45
51
  const normalizedFeatureFlags = normalizeFeatureFlags(featureFlags, {
46
52
  objectFlagKeys: ['rendererRenderTracking']
@@ -208,6 +214,7 @@ export class Renderer extends PureComponent {
208
214
  attributes: {
209
215
  platform: PLATFORM.WEB,
210
216
  duration,
217
+ distortedDuration: this.renderedMeasurementDistortedDurationMonitor.distortedDuration,
211
218
  ttfb: getResponseEndTime(),
212
219
  nodes: reduce(this.props.document, (acc, node) => {
213
220
  acc[node.type] = (acc[node.type] || 0) + 1;
@@ -217,6 +224,8 @@ export class Renderer extends PureComponent {
217
224
  },
218
225
  eventType: EVENT_TYPE.OPERATIONAL
219
226
  });
227
+ this.renderedMeasurementDistortedDurationMonitor.cleanup();
228
+ delete this.renderedMeasurementDistortedDurationMonitor;
220
229
  });
221
230
  this.anchorLinkAnalytics();
222
231
  });
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "103.0.2",
3
+ "version": "104.0.0",
4
4
  "sideEffects": false
5
5
  }
@@ -1,10 +1,15 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import React, { useMemo } from 'react';
4
+ import { hexToEditorTextPaletteColor } from '@atlaskit/editor-palette';
4
5
  export default function TextColor(props) {
6
+ // Note -- while there is no way to create custom colors using default tooling
7
+ // the editor does supported ad hoc color values -- and there may be content
8
+ // which has been migrated or created via apis which use such values.
9
+ var paletteColorValue = hexToEditorTextPaletteColor(props.color) || props.color;
5
10
  var style = useMemo(function () {
6
- return _defineProperty({}, '--custom-text-color', props.color);
7
- }, [props.color]);
11
+ return _defineProperty({}, '--custom-palette-color', paletteColorValue);
12
+ }, [paletteColorValue]);
8
13
  return /*#__PURE__*/React.createElement("span", _extends({}, props.dataAttributes, {
9
14
  "data-text-custom-color": props.color,
10
15
  className: "fabric-text-color-mark",
@@ -10,15 +10,16 @@ import { themed } from '@atlaskit/theme/components';
10
10
  import { fontSize, gridSize } from '@atlaskit/theme/constants';
11
11
  import { CodeBlockSharedCssClassName } from '@atlaskit/editor-common/styles';
12
12
  import CopyButton from '../../codeBlockCopyButton';
13
+ import { token } from '@atlaskit/tokens'; // TODO: Quality ticket https://product-fabric.atlassian.net/browse/DSP-4118
13
14
 
14
- // TODO: Quality ticket https://product-fabric.atlassian.net/browse/DSP-4118
15
-
16
- /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
17
15
  var codeBlockStyleOverrides = function codeBlockStyleOverrides(props) {
18
- return css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n tab-size: 4;\n ", " {\n font-size: ", ";\n line-height: 1.5rem;\n background-image: ", ";\n background-attachment: local, scroll, scroll;\n background-position: 100% 0, 100% 0, 0 0;\n }\n "])), CodeBlockSharedCssClassName.DS_CODEBLOCK, relativeFontSizeToBase16(fontSize()), overflowShadow({
16
+ return css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n tab-size: 4;\n background-color: ", ";\n\n ", " {\n font-size: ", ";\n line-height: 1.5rem;\n background-image: ", ";\n background-attachment: local, local, local, local, scroll, scroll;\n background-position: 0 0, 0 0, 100% 0, 100% 0, 100% 0, 0 0;\n }\n "])), themed({
17
+ light: token('elevation.surface.raised', N20),
18
+ dark: token('elevation.surface.raised', DN50)
19
+ })(props), CodeBlockSharedCssClassName.DS_CODEBLOCK, relativeFontSizeToBase16(fontSize()), overflowShadow({
19
20
  background: themed({
20
- light: N20,
21
- dark: DN50
21
+ light: token('color.background.neutral', N20),
22
+ dark: token('color.background.neutral', DN50)
22
23
  })(props),
23
24
  width: "".concat(gridSize(), "px")
24
25
  }));
@@ -8,13 +8,13 @@ import { css, jsx } from '@emotion/react';
8
8
  import React, { useState } from 'react';
9
9
  import { injectIntl } from 'react-intl-next';
10
10
  import Tooltip from '@atlaskit/tooltip';
11
- import Button from '@atlaskit/button/custom-theme-button';
11
+ import Button from '@atlaskit/button';
12
12
  import CopyIcon from '@atlaskit/icon/glyph/copy';
13
13
  import { N20, N30, N700 } from '@atlaskit/theme/colors';
14
14
  import { copyTextToClipboard } from '../utils/clipboard';
15
15
  import { codeBlockCopyButtonMessages } from '@atlaskit/editor-common/messages';
16
16
  import { token } from '@atlaskit/tokens';
17
- var copyButtonWrapperStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n position: sticky;\n justify-content: flex-end;\n top: 0;\n\n button {\n position: absolute;\n display: flex;\n justify-content: center;\n height: 32px;\n width: 32px;\n right: 6px;\n top: 4px;\n padding: 2px;\n opacity: 0;\n transition: opacity 0.2s ease 0s;\n border: 2px solid ", ";\n border-radius: 4px;\n background-color: ", ";\n color: ", ";\n }\n\n button:hover {\n background-color: ", ";\n }\n\n button.clicked {\n background-color: ", ";\n color: ", " !important;\n }\n"])), token('color.border.inverse', '#fff'), token('color.background.neutral.subtle', N20), token('color.icon', 'rgb(66, 82, 110)'), token('color.background.neutral.hovered', N30), token('color.background.neutral.bold.pressed', N700), token('color.icon.inverse', '#fff'));
17
+ var copyButtonWrapperStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n position: sticky;\n justify-content: flex-end;\n top: 0;\n\n button {\n position: absolute;\n display: flex;\n justify-content: center;\n height: 32px;\n width: 32px;\n right: 6px;\n top: 4px;\n padding: 2px;\n opacity: 0;\n transition: opacity 0.2s ease 0s;\n border: 2px solid ", ";\n border-radius: 4px;\n background-color: ", ";\n color: ", " !important;\n }\n\n button:hover {\n border: 2px solid ", ";\n background-color: ", ";\n }\n\n button:active {\n border: 2px solid ", ";\n background-color: ", ";\n }\n\n button.clicked {\n background-color: ", ";\n color: ", " !important;\n }\n button.clicked:hover {\n background-color: ", ";\n }\n"])), token('color.border', '#fff'), token('elevation.surface.overlay', N20), token('color.text', 'rgb(66, 82, 110)'), token('color.border', 'transparent'), token('elevation.surface.overlay.hovered', N30), token('color.border', 'transparent'), token('elevation.surface.overlay.pressed', N30), token('elevation.surface.overlay', N700), token('color.text', '#fff'), token('elevation.surface.overlay.hovered', N700));
18
18
 
19
19
  var CopyButton = function CopyButton(_ref) {
20
20
  var content = _ref.content,
@@ -23,7 +23,7 @@ import { getSchemaBasedOnStage } from '@atlaskit/adf-schema/schema-default';
23
23
  import { reduce } from '@atlaskit/adf-utils/traverse';
24
24
  import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
25
25
  import { UnsupportedBlock, BaseTheme, WidthProvider, WithCreateAnalyticsEvent, IntlErrorBoundary } from '@atlaskit/editor-common/ui';
26
- import { getAnalyticsAppearance, getAnalyticsEventSeverity, getResponseEndTime, startMeasure, stopMeasure, shouldForceTracking, measureTTI, browser } from '@atlaskit/editor-common/utils';
26
+ import { getAnalyticsAppearance, getAnalyticsEventSeverity, getResponseEndTime, startMeasure, stopMeasure, shouldForceTracking, measureTTI, getDistortedDurationMonitor, browser } from '@atlaskit/editor-common/utils';
27
27
  import { normalizeFeatureFlags } from '@atlaskit/editor-common/normalize-feature-flags';
28
28
  import { akEditorFullPageDefaultFontSize } from '@atlaskit/editor-shared-styles';
29
29
  import { FabricChannel } from '@atlaskit/analytics-listeners';
@@ -50,12 +50,16 @@ import { RenderTracking } from '../../react/utils/performance/RenderTracking';
50
50
  export var NORMAL_SEVERITY_THRESHOLD = 2000;
51
51
  export var DEGRADED_SEVERITY_THRESHOLD = 3000;
52
52
  var packageName = "@atlaskit/renderer";
53
- var packageVersion = "103.0.2";
53
+ var packageVersion = "104.0.0";
54
54
  export var Renderer = /*#__PURE__*/function (_PureComponent) {
55
55
  _inherits(Renderer, _PureComponent);
56
56
 
57
57
  var _super = _createSuper(Renderer);
58
58
 
59
+ /**
60
+ * This is used in measuring the Renderer Mount time and is then
61
+ * deleted once that measurement occurs.
62
+ */
59
63
  function Renderer(props) {
60
64
  var _this;
61
65
 
@@ -63,6 +67,8 @@ export var Renderer = /*#__PURE__*/function (_PureComponent) {
63
67
 
64
68
  _this = _super.call(this, props);
65
69
 
70
+ _defineProperty(_assertThisInitialized(_this), "renderedMeasurementDistortedDurationMonitor", getDistortedDurationMonitor());
71
+
66
72
  _defineProperty(_assertThisInitialized(_this), "featureFlags", memoizeOne(function (featureFlags) {
67
73
  var normalizedFeatureFlags = normalizeFeatureFlags(featureFlags, {
68
74
  objectFlagKeys: ['rendererRenderTracking']
@@ -231,6 +237,7 @@ export var Renderer = /*#__PURE__*/function (_PureComponent) {
231
237
  attributes: {
232
238
  platform: PLATFORM.WEB,
233
239
  duration: duration,
240
+ distortedDuration: _this2.renderedMeasurementDistortedDurationMonitor.distortedDuration,
234
241
  ttfb: getResponseEndTime(),
235
242
  nodes: reduce(_this2.props.document, function (acc, node) {
236
243
  acc[node.type] = (acc[node.type] || 0) + 1;
@@ -240,6 +247,10 @@ export var Renderer = /*#__PURE__*/function (_PureComponent) {
240
247
  },
241
248
  eventType: EVENT_TYPE.OPERATIONAL
242
249
  });
250
+
251
+ _this2.renderedMeasurementDistortedDurationMonitor.cleanup();
252
+
253
+ delete _this2.renderedMeasurementDistortedDurationMonitor;
243
254
  });
244
255
 
245
256
  _this2.anchorLinkAnalytics();
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "103.0.2",
3
+ "version": "104.0.0",
4
4
  "sideEffects": false
5
5
  }
@@ -17,6 +17,7 @@ declare type RendererStartAEP = AEP<ACTION.STARTED, ACTION_SUBJECT.RENDERER, und
17
17
  declare type RendererRenderedAEP = AEP<ACTION.RENDERED, ACTION_SUBJECT.RENDERER, undefined, {
18
18
  platform: PLATFORM.WEB;
19
19
  duration: number;
20
+ distortedDuration: boolean;
20
21
  ttfb?: number;
21
22
  nodes: Record<string, number>;
22
23
  severity?: SEVERITY;
@@ -16,6 +16,11 @@ export declare class Renderer extends PureComponent<RendererProps> {
16
16
  private editorRef;
17
17
  private mouseDownSelection?;
18
18
  private id?;
19
+ /**
20
+ * This is used in measuring the Renderer Mount time and is then
21
+ * deleted once that measurement occurs.
22
+ */
23
+ private renderedMeasurementDistortedDurationMonitor?;
19
24
  constructor(props: RendererProps);
20
25
  private anchorLinkAnalytics;
21
26
  componentDidMount(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "103.0.2",
3
+ "version": "104.0.0",
4
4
  "description": "Renderer component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -29,19 +29,20 @@
29
29
  "@atlaskit/analytics-listeners": "^8.3.0",
30
30
  "@atlaskit/analytics-namespaced-context": "^6.5.0",
31
31
  "@atlaskit/analytics-next": "^8.2.0",
32
- "@atlaskit/button": "^16.4.0",
32
+ "@atlaskit/button": "^16.5.0",
33
33
  "@atlaskit/code": "^14.4.0",
34
- "@atlaskit/editor-common": "^70.2.0",
34
+ "@atlaskit/editor-common": "^71.0.0",
35
35
  "@atlaskit/editor-json-transformer": "^8.8.0",
36
+ "@atlaskit/editor-palette": "0.1.0",
36
37
  "@atlaskit/editor-shared-styles": "^2.2.0",
37
38
  "@atlaskit/icon": "^21.11.0",
38
- "@atlaskit/media-card": "^74.2.0",
39
- "@atlaskit/media-client": "^18.1.0",
39
+ "@atlaskit/media-card": "^74.3.0",
40
+ "@atlaskit/media-client": "^19.0.0",
40
41
  "@atlaskit/media-common": "^2.17.0",
41
- "@atlaskit/media-filmstrip": "^46.0.0",
42
- "@atlaskit/media-ui": "^22.1.0",
43
- "@atlaskit/media-viewer": "^47.1.0",
44
- "@atlaskit/smart-card": "^23.4.0",
42
+ "@atlaskit/media-filmstrip": "^46.1.0",
43
+ "@atlaskit/media-ui": "^22.2.0",
44
+ "@atlaskit/media-viewer": "^47.2.0",
45
+ "@atlaskit/smart-card": "^23.7.0",
45
46
  "@atlaskit/status": "^1.2.0",
46
47
  "@atlaskit/task-decision": "^17.5.0",
47
48
  "@atlaskit/theme": "^12.2.0",
@@ -69,7 +70,7 @@
69
70
  "@atlaskit/avatar": "^21.1.0",
70
71
  "@atlaskit/css-reset": "^6.3.0",
71
72
  "@atlaskit/docs": "*",
72
- "@atlaskit/editor-core": "^175.0.0",
73
+ "@atlaskit/editor-core": "^176.0.0",
73
74
  "@atlaskit/editor-test-helpers": "^17.2.0",
74
75
  "@atlaskit/link-provider": "^1.3.0",
75
76
  "@atlaskit/logo": "^13.10.0",
@@ -78,7 +79,7 @@
78
79
  "@atlaskit/media-test-helpers": "^30.0.0",
79
80
  "@atlaskit/mention": "^21.0.0",
80
81
  "@atlaskit/navigation-next": "^9.0.0",
81
- "@atlaskit/profilecard": "^17.2.0",
82
+ "@atlaskit/profilecard": "^17.3.0",
82
83
  "@atlaskit/radio": "^5.4.0",
83
84
  "@atlaskit/range": "^7.0.0",
84
85
  "@atlaskit/ssr": "*",
package/report.api.md CHANGED
@@ -1,12 +1,17 @@
1
+ <!-- API Report Version: 2.2 -->
2
+
1
3
  ## API Report File for "@atlaskit/renderer"
2
4
 
3
- > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
5
+ > Do not edit this file. This report is auto-generated using [API Extractor](https://api-extractor.com/).
6
+ > [Learn more about API reports](https://hello.atlassian.net/wiki/spaces/UR/pages/1825484529/Package+API+Reports)
7
+
8
+ ### Table of contents
9
+
10
+ - [Main Entry Types](#main-entry-types)
4
11
 
5
- <!--
6
- Generated API Report version: 2.0
7
- -->
12
+ ### Main Entry Types
8
13
 
9
- [Learn more about API reports](https://hello.atlassian.net/wiki/spaces/UR/pages/1825484529/Package+API+Reports)
14
+ <!--SECTION START: Main Entry Types-->
10
15
 
11
16
  ```ts
12
17
  /// <reference types="react" />
@@ -139,28 +144,28 @@ type AEP<Action, ActionSubject, ActionSubjectID, Attributes, EventType> = {
139
144
 
140
145
  // @public (undocumented)
141
146
  type AnalyticsEventPayload<T = void> =
142
- | RendererStartAEP
143
- | RendererRenderedAEP
144
- | RendererReRenderedAEP<T>
147
+ | AnchorLinkAEP
148
+ | AnnotationAEP
149
+ | AnnotationDeleteAEP
145
150
  | ComponentCrashErrorAEP
146
- | RendererUnsupportedContentLevelsTrackingSucceeded
147
- | RendererUnsupportedContentLevelsTrackingErrored
151
+ | ExpandAEP
152
+ | HeadingAnchorLinkButtonAEP
153
+ | InvalidProsemirrorDocumentErrorAEP
154
+ | MediaLnkTransformedAEP
155
+ | RendererReRenderedAEP<T>
156
+ | RendererRenderedAEP
148
157
  | RendererSelectAllCaughtAEP
149
158
  | RendererSelectAllEscapedAEP
150
- | HeadingAnchorLinkButtonAEP
151
- | AnchorLinkAEP
152
- | TableSortColumnNotAllowedAEP
159
+ | RendererStartAEP
160
+ | RendererTTIAEP
161
+ | RendererUnsupportedContentLevelsTrackingErrored
162
+ | RendererUnsupportedContentLevelsTrackingSucceeded
153
163
  | TableSortColumnAEP
154
- | VisitLinkAEP
155
- | VisitMediaLinkAEP
156
- | ExpandAEP
164
+ | TableSortColumnNotAllowedAEP
157
165
  | UnsupportedContentPayload
158
166
  | UnsupportedContentTooltipPayload
159
- | AnnotationAEP
160
- | AnnotationDeleteAEP
161
- | MediaLnkTransformedAEP
162
- | InvalidProsemirrorDocumentErrorAEP
163
- | RendererTTIAEP;
167
+ | VisitLinkAEP
168
+ | VisitMediaLinkAEP;
164
169
 
165
170
  // @public (undocumented)
166
171
  type AnchorLinkAEP = UIAEP<
@@ -175,14 +180,14 @@ type AnchorLinkAEP = UIAEP<
175
180
 
176
181
  // @public (undocumented)
177
182
  type AnnotationActionType =
178
- | ACTION.INSERTED
179
183
  | ACTION.CLOSED
180
- | ACTION.EDITED
184
+ | ACTION.CREATE_NOT_ALLOWED
181
185
  | ACTION.DELETED
186
+ | ACTION.EDITED
187
+ | ACTION.INSERTED
182
188
  | ACTION.OPENED
183
189
  | ACTION.RESOLVED
184
- | ACTION.VIEWED
185
- | ACTION.CREATE_NOT_ALLOWED;
190
+ | ACTION.VIEWED;
186
191
 
187
192
  // @public (undocumented)
188
193
  type AnnotationAEP = AEP<
@@ -281,7 +286,7 @@ type HeadingAnchorLinksConfig = {
281
286
  };
282
287
 
283
288
  // @public (undocumented)
284
- export type HeadingAnchorLinksProps = boolean | HeadingAnchorLinksConfig;
289
+ export type HeadingAnchorLinksProps = HeadingAnchorLinksConfig | boolean;
285
290
 
286
291
  // @public (undocumented)
287
292
  type InvalidProsemirrorDocumentErrorAEP = AEP<
@@ -525,10 +530,10 @@ export interface RendererProps {
525
530
  // (undocumented)
526
531
  fadeOutHeight?: number;
527
532
  featureFlags?:
533
+ | Partial<RawObjectFeatureFlags>
528
534
  | {
529
535
  [featureFlag: string]: boolean;
530
- }
531
- | Partial<RawObjectFeatureFlags>;
536
+ };
532
537
  // (undocumented)
533
538
  innerRef?: React.RefObject<HTMLDivElement>;
534
539
  // (undocumented)
@@ -569,6 +574,7 @@ type RendererRenderedAEP = AEP<
569
574
  {
570
575
  platform: PLATFORM.WEB;
571
576
  duration: number;
577
+ distortedDuration: boolean;
572
578
  ttfb?: number;
573
579
  nodes: Record<string, number>;
574
580
  severity?: SEVERITY;
@@ -717,10 +723,10 @@ type StickyHeaderConfig = {
717
723
 
718
724
  // @public (undocumented)
719
725
  type StickyHeaderProps =
720
- | boolean
721
726
  | ({
722
727
  show?: boolean;
723
- } & StickyHeaderConfig);
728
+ } & StickyHeaderConfig)
729
+ | boolean;
724
730
 
725
731
  // @public (undocumented)
726
732
  type TableSortColumnAEP = AEP<
@@ -807,3 +813,5 @@ type VisitMediaLinkAEP = AEP<
807
813
 
808
814
  // (No @packageDocumentation comment for this package)
809
815
  ```
816
+
817
+ <!--SECTION END: Main Entry Types-->