@atlaskit/editor-common 78.9.1 → 78.10.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.
Files changed (42) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/constants/package.json +15 -0
  3. package/dist/cjs/extensibility/Extension/Extension/index.js +2 -1
  4. package/dist/cjs/extensibility/Extension/InlineExtension/index.js +6 -2
  5. package/dist/cjs/extensibility/Extension/Lozenge.js +4 -2
  6. package/dist/cjs/extensibility/Extension/LozengeComponent.js +4 -2
  7. package/dist/cjs/extensibility/Extension/styles.js +61 -9
  8. package/dist/cjs/extensibility/ExtensionNodeWrapper.js +19 -2
  9. package/dist/cjs/extensibility/extensionNodeView.js +2 -1
  10. package/dist/cjs/link/constants.js +8 -0
  11. package/dist/cjs/monitoring/error.js +1 -1
  12. package/dist/cjs/ui/DropList/index.js +1 -1
  13. package/dist/es2019/extensibility/Extension/Extension/index.js +2 -1
  14. package/dist/es2019/extensibility/Extension/InlineExtension/index.js +7 -3
  15. package/dist/es2019/extensibility/Extension/Lozenge.js +4 -2
  16. package/dist/es2019/extensibility/Extension/LozengeComponent.js +5 -2
  17. package/dist/es2019/extensibility/Extension/styles.js +55 -59
  18. package/dist/es2019/extensibility/ExtensionNodeWrapper.js +20 -2
  19. package/dist/es2019/extensibility/extensionNodeView.js +2 -1
  20. package/dist/es2019/link/constants.js +2 -0
  21. package/dist/es2019/monitoring/error.js +1 -1
  22. package/dist/es2019/ui/DropList/index.js +1 -1
  23. package/dist/esm/extensibility/Extension/Extension/index.js +2 -1
  24. package/dist/esm/extensibility/Extension/InlineExtension/index.js +7 -3
  25. package/dist/esm/extensibility/Extension/Lozenge.js +4 -2
  26. package/dist/esm/extensibility/Extension/LozengeComponent.js +5 -2
  27. package/dist/esm/extensibility/Extension/styles.js +61 -8
  28. package/dist/esm/extensibility/ExtensionNodeWrapper.js +18 -2
  29. package/dist/esm/extensibility/extensionNodeView.js +2 -1
  30. package/dist/esm/link/constants.js +2 -0
  31. package/dist/esm/monitoring/error.js +1 -1
  32. package/dist/esm/ui/DropList/index.js +1 -1
  33. package/dist/types/extensibility/Extension/Lozenge.d.ts +2 -0
  34. package/dist/types/extensibility/Extension/LozengeComponent.d.ts +3 -1
  35. package/dist/types/extensibility/ExtensionNodeWrapper.d.ts +5 -1
  36. package/dist/types/link/constants.d.ts +2 -0
  37. package/dist/types-ts4.5/extensibility/Extension/Lozenge.d.ts +2 -0
  38. package/dist/types-ts4.5/extensibility/Extension/LozengeComponent.d.ts +3 -1
  39. package/dist/types-ts4.5/extensibility/ExtensionNodeWrapper.d.ts +5 -1
  40. package/dist/types-ts4.5/link/constants.d.ts +2 -0
  41. package/package.json +7 -6
  42. package/tsconfig.json +2 -1042
@@ -2,6 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
4
  /** @jsx jsx */
5
+
5
6
  import { jsx } from '@emotion/react';
6
7
  import EditorFileIcon from '@atlaskit/icon/glyph/editor/file';
7
8
  import { SimpleTag as Tag } from '@atlaskit/tag';
@@ -17,14 +18,16 @@ export var LozengeComponent = function LozengeComponent(_ref) {
17
18
  params = _ref.params,
18
19
  renderImage = _ref.renderImage,
19
20
  isNodeSelected = _ref.isNodeSelected,
20
- showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates;
21
+ showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates,
22
+ customContainerStyles = _ref.customContainerStyles;
21
23
  var capitalizedTitle = capitalizeFirstLetter(title);
22
24
  // TODO: only show on lozenge on hover: https://product-fabric.atlassian.net/browse/PGXT-4945
23
25
  if (showMacroInteractionDesignUpdates) {
24
26
  return jsx("div", {
25
27
  className: "extension-title",
26
28
  css: lozengeWrapper,
27
- "data-testid": "new-lozenge"
29
+ "data-testid": "new-lozenge",
30
+ style: customContainerStyles
28
31
  }, jsx(Tag, {
29
32
  text: capitalizedTitle,
30
33
  color: isNodeSelected ? 'blueLight' : 'greyLight'
@@ -1,12 +1,65 @@
1
- import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
3
1
  import { css } from '@emotion/react';
4
2
  import { B200, N20, N20A, N70 } from '@atlaskit/theme/colors';
5
3
  import { BODIED_EXT_PADDING, EXTENSION_PADDING } from '../../styles';
6
4
  export { EXTENSION_PADDING as padding, BODIED_EXT_PADDING };
7
- export var wrapperDefault = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background: ", ";\n border-radius: ", ";\n position: relative;\n vertical-align: middle;\n\n .ProseMirror-selectednode > span > & > .extension-overlay {\n box-shadow: inset 0px 0px 0px 2px ", ";\n opacity: 1;\n }\n\n &.with-overlay {\n .extension-overlay {\n background: ", ";\n color: transparent;\n }\n\n &:hover .extension-overlay {\n opacity: 1;\n }\n }\n"])), "var(--ds-background-neutral, ".concat(N20, ")"), "var(--ds-border-radius, 3px)", "var(--ds-border-selected, ".concat(B200, ")"), "var(--ds-background-neutral-hovered, ".concat(N20A, ")"));
8
- export var overlay = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n border-radius: ", ";\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.3s;\n"])), "var(--ds-border-radius, 3px)");
9
- export var placeholderFallback = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: inline-flex;\n align-items: center;\n\n & > img {\n margin: 0 ", ";\n }\n\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: placeholder-fallback;\n"])), "var(--ds-space-050, 4px)");
10
- export var placeholderFallbackParams = css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: inline-block;\n max-width: 200px;\n margin-left: 5px;\n color: ", ";\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n"])), "var(--ds-text-subtlest, ".concat(N70, ")"));
11
- export var styledImage = css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n max-height: 16px;\n max-width: 16px;\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: lozenge-image;\n"])));
12
- export var lozengeWrapper = css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: left;\n width: 100%;\n margin-left: ", ";\n"])), "var(--ds-space-050, 4px)");
5
+ export var wrapperDefault = css({
6
+ background: "var(--ds-background-neutral, ".concat(N20, ")"),
7
+ borderRadius: "var(--ds-border-radius, 3px)",
8
+ position: 'relative',
9
+ verticalAlign: 'middle',
10
+ '.ProseMirror-selectednode > span > & > .extension-overlay': {
11
+ boxShadow: "inset 0px 0px 0px 2px ".concat("var(--ds-border-selected, ".concat(B200, ")")),
12
+ opacity: 1
13
+ },
14
+ '&.with-overlay': {
15
+ '.extension-overlay': {
16
+ background: "var(--ds-background-neutral-hovered, ".concat(N20A, ")"),
17
+ color: 'transparent'
18
+ },
19
+ '&:hover .extension-overlay': {
20
+ opacity: 1
21
+ }
22
+ }
23
+ });
24
+ export var overlay = css({
25
+ borderRadius: "var(--ds-border-radius, 3px)",
26
+ position: 'absolute',
27
+ width: '100%',
28
+ height: '100%',
29
+ opacity: 0,
30
+ pointerEvents: 'none',
31
+ transition: 'opacity 0.3s'
32
+ });
33
+ export var placeholderFallback = css({
34
+ display: 'inline-flex',
35
+ alignItems: 'center',
36
+ '& > img': {
37
+ margin: "0 ".concat("var(--ds-space-050, 4px)")
38
+ },
39
+ /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */
40
+ /* stylelint-disable-next-line */
41
+ label: 'placeholder-fallback'
42
+ });
43
+ export var placeholderFallbackParams = css({
44
+ display: 'inline-block',
45
+ maxWidth: '200px',
46
+ marginLeft: '5px',
47
+ color: "var(--ds-text-subtlest, ".concat(N70, ")"),
48
+ textOverflow: 'ellipsis',
49
+ whiteSpace: 'nowrap',
50
+ overflow: 'hidden'
51
+ });
52
+ export var styledImage = css({
53
+ maxHeight: '16px',
54
+ maxWidth: '16px',
55
+ /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */
56
+ /* stylelint-disable-next-line */
57
+ label: 'lozenge-image'
58
+ });
59
+ export var lozengeWrapper = css({
60
+ display: 'flex',
61
+ justifyContent: 'left',
62
+ width: '100%',
63
+ marginLeft: "var(--ds-space-050, 4px)",
64
+ marginBottom: "var(--ds-space-negative-050, -4px)"
65
+ });
@@ -1,7 +1,16 @@
1
+ /** @jsx jsx */
1
2
  import React from 'react';
3
+ import { css, jsx } from '@emotion/react';
4
+ import classnames from 'classnames';
2
5
  import { ZERO_WIDTH_SPACE } from '../utils';
6
+ var styles = css({
7
+ '&.inline-extension': {
8
+ display: 'inline-block'
9
+ }
10
+ });
3
11
  /**
4
12
  * If inlineExtension, add zero width space to the end of the nodes and wrap with span;
13
+ * Also if showMacroInteractionDesignUpdates is true, then add the inline-block style to account for the lozenge.
5
14
  * else wrap with a div (for multi bodied extensions)
6
15
  *
7
16
  * @param param0
@@ -9,6 +18,13 @@ import { ZERO_WIDTH_SPACE } from '../utils';
9
18
  */
10
19
  export var ExtensionNodeWrapper = function ExtensionNodeWrapper(_ref) {
11
20
  var children = _ref.children,
12
- nodeType = _ref.nodeType;
13
- return /*#__PURE__*/React.createElement("span", null, children, nodeType === 'inlineExtension' && ZERO_WIDTH_SPACE);
21
+ nodeType = _ref.nodeType,
22
+ showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates;
23
+ var wrapperClassNames = classnames({
24
+ 'inline-extension': nodeType === 'inlineExtension' && showMacroInteractionDesignUpdates
25
+ });
26
+ return jsx("span", {
27
+ className: wrapperClassNames,
28
+ css: styles
29
+ }, children, nodeType === 'inlineExtension' && ZERO_WIDTH_SPACE);
14
30
  };
@@ -47,7 +47,8 @@ export var ExtensionNode = /*#__PURE__*/function (_ReactNodeView) {
47
47
  value: function render(props, forwardRef) {
48
48
  var _props$extensionNodeV;
49
49
  return /*#__PURE__*/React.createElement(ExtensionNodeWrapper, {
50
- nodeType: this.node.type.name
50
+ nodeType: this.node.type.name,
51
+ showMacroInteractionDesignUpdates: props.showMacroInteractionDesignUpdates
51
52
  }, /*#__PURE__*/React.createElement(Extension, {
52
53
  editorView: this.view,
53
54
  node: this.node,
@@ -0,0 +1,2 @@
1
+ export var stagingLinkPreferencesUrl = 'https://id.stg.internal.atlassian.com/manage-profile/link-preferences';
2
+ export var productionLinkPreferencesUrl = 'https://id.atlassian.com/manage-profile/link-preferences';
@@ -6,7 +6,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
6
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
7
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
8
8
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
9
- var packageVersion = "78.9.1";
9
+ var packageVersion = "78.10.0";
10
10
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
11
11
  // Remove URL as it has UGC
12
12
  // TODO: Sanitise the URL instead of just removing it
@@ -17,7 +17,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
17
17
  import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
18
18
  import Layer from '../Layer';
19
19
  var packageName = "@atlaskit/editor-common";
20
- var packageVersion = "78.9.1";
20
+ var packageVersion = "78.10.0";
21
21
  var halfFocusRing = 1;
22
22
  var dropOffset = '0, 8';
23
23
  var DropList = /*#__PURE__*/function (_Component) {
@@ -1,11 +1,13 @@
1
1
  /** @jsx jsx */
2
2
  import { Component } from 'react';
3
+ import type { CSSProperties } from 'react';
3
4
  import { jsx } from '@emotion/react';
4
5
  import type { Node as PmNode } from '@atlaskit/editor-prosemirror/model';
5
6
  export interface Props {
6
7
  node: PmNode;
7
8
  showMacroInteractionDesignUpdates?: boolean;
8
9
  isNodeSelected?: boolean;
10
+ customContainerStyles?: CSSProperties;
9
11
  }
10
12
  export interface LozengeData {
11
13
  url: string;
@@ -1,4 +1,5 @@
1
1
  /** @jsx jsx */
2
+ import type { CSSProperties } from 'react';
2
3
  import { jsx } from '@emotion/react';
3
4
  import type { LozengeData } from './Lozenge';
4
5
  export declare const ICON_SIZE = 24;
@@ -10,6 +11,7 @@ type LozengeComponentProps = {
10
11
  renderImage: (lozengeData: LozengeData) => void;
11
12
  isNodeSelected?: boolean;
12
13
  showMacroInteractionDesignUpdates?: boolean;
14
+ customContainerStyles?: CSSProperties;
13
15
  };
14
- export declare const LozengeComponent: ({ lozengeData, isBlockExtension, title, params, renderImage, isNodeSelected, showMacroInteractionDesignUpdates, }: LozengeComponentProps) => jsx.JSX.Element;
16
+ export declare const LozengeComponent: ({ lozengeData, isBlockExtension, title, params, renderImage, isNodeSelected, showMacroInteractionDesignUpdates, customContainerStyles, }: LozengeComponentProps) => jsx.JSX.Element;
15
17
  export {};
@@ -1,14 +1,18 @@
1
+ /** @jsx jsx */
1
2
  import React from 'react';
3
+ import { jsx } from '@emotion/react';
2
4
  type Props = {
3
5
  children: React.ReactNode;
4
6
  nodeType: string;
7
+ showMacroInteractionDesignUpdates?: boolean;
5
8
  };
6
9
  /**
7
10
  * If inlineExtension, add zero width space to the end of the nodes and wrap with span;
11
+ * Also if showMacroInteractionDesignUpdates is true, then add the inline-block style to account for the lozenge.
8
12
  * else wrap with a div (for multi bodied extensions)
9
13
  *
10
14
  * @param param0
11
15
  * @returns
12
16
  */
13
- export declare const ExtensionNodeWrapper: ({ children, nodeType }: Props) => JSX.Element;
17
+ export declare const ExtensionNodeWrapper: ({ children, nodeType, showMacroInteractionDesignUpdates, }: Props) => jsx.JSX.Element;
14
18
  export {};
@@ -0,0 +1,2 @@
1
+ export declare const stagingLinkPreferencesUrl = "https://id.stg.internal.atlassian.com/manage-profile/link-preferences";
2
+ export declare const productionLinkPreferencesUrl = "https://id.atlassian.com/manage-profile/link-preferences";
@@ -1,11 +1,13 @@
1
1
  /** @jsx jsx */
2
2
  import { Component } from 'react';
3
+ import type { CSSProperties } from 'react';
3
4
  import { jsx } from '@emotion/react';
4
5
  import type { Node as PmNode } from '@atlaskit/editor-prosemirror/model';
5
6
  export interface Props {
6
7
  node: PmNode;
7
8
  showMacroInteractionDesignUpdates?: boolean;
8
9
  isNodeSelected?: boolean;
10
+ customContainerStyles?: CSSProperties;
9
11
  }
10
12
  export interface LozengeData {
11
13
  url: string;
@@ -1,4 +1,5 @@
1
1
  /** @jsx jsx */
2
+ import type { CSSProperties } from 'react';
2
3
  import { jsx } from '@emotion/react';
3
4
  import type { LozengeData } from './Lozenge';
4
5
  export declare const ICON_SIZE = 24;
@@ -10,6 +11,7 @@ type LozengeComponentProps = {
10
11
  renderImage: (lozengeData: LozengeData) => void;
11
12
  isNodeSelected?: boolean;
12
13
  showMacroInteractionDesignUpdates?: boolean;
14
+ customContainerStyles?: CSSProperties;
13
15
  };
14
- export declare const LozengeComponent: ({ lozengeData, isBlockExtension, title, params, renderImage, isNodeSelected, showMacroInteractionDesignUpdates, }: LozengeComponentProps) => jsx.JSX.Element;
16
+ export declare const LozengeComponent: ({ lozengeData, isBlockExtension, title, params, renderImage, isNodeSelected, showMacroInteractionDesignUpdates, customContainerStyles, }: LozengeComponentProps) => jsx.JSX.Element;
15
17
  export {};
@@ -1,14 +1,18 @@
1
+ /** @jsx jsx */
1
2
  import React from 'react';
3
+ import { jsx } from '@emotion/react';
2
4
  type Props = {
3
5
  children: React.ReactNode;
4
6
  nodeType: string;
7
+ showMacroInteractionDesignUpdates?: boolean;
5
8
  };
6
9
  /**
7
10
  * If inlineExtension, add zero width space to the end of the nodes and wrap with span;
11
+ * Also if showMacroInteractionDesignUpdates is true, then add the inline-block style to account for the lozenge.
8
12
  * else wrap with a div (for multi bodied extensions)
9
13
  *
10
14
  * @param param0
11
15
  * @returns
12
16
  */
13
- export declare const ExtensionNodeWrapper: ({ children, nodeType }: Props) => JSX.Element;
17
+ export declare const ExtensionNodeWrapper: ({ children, nodeType, showMacroInteractionDesignUpdates, }: Props) => jsx.JSX.Element;
14
18
  export {};
@@ -0,0 +1,2 @@
1
+ export declare const stagingLinkPreferencesUrl = "https://id.stg.internal.atlassian.com/manage-profile/link-preferences";
2
+ export declare const productionLinkPreferencesUrl = "https://id.atlassian.com/manage-profile/link-preferences";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "78.9.1",
3
+ "version": "78.10.0",
4
4
  "description": "A package that contains common classes and components for editor and renderer",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -88,11 +88,12 @@
88
88
  "./copy-button": "./src/copy-button/index.ts",
89
89
  "./legacy-rank-plugins": "./src/rank.ts",
90
90
  "./indentation": "./src/indentation/index.ts",
91
- "./annotation": "./src/annotation/index.ts"
91
+ "./annotation": "./src/annotation/index.ts",
92
+ "./constants": "./src/link/constants.ts"
92
93
  },
93
94
  "dependencies": {
94
95
  "@atlaskit/activity-provider": "^2.4.0",
95
- "@atlaskit/adf-schema": "^35.5.1",
96
+ "@atlaskit/adf-schema": "^35.5.2",
96
97
  "@atlaskit/adf-utils": "^19.0.0",
97
98
  "@atlaskit/analytics-listeners": "^8.9.0",
98
99
  "@atlaskit/analytics-namespaced-context": "^6.9.0",
@@ -101,7 +102,7 @@
101
102
  "@atlaskit/button": "^17.6.0",
102
103
  "@atlaskit/code": "^15.1.0",
103
104
  "@atlaskit/codemod-utils": "^4.2.0",
104
- "@atlaskit/custom-steps": "^0.0.13",
105
+ "@atlaskit/custom-steps": "^0.0.14",
105
106
  "@atlaskit/editor-json-transformer": "^8.10.0",
106
107
  "@atlaskit/editor-palette": "1.5.2",
107
108
  "@atlaskit/editor-prosemirror": "3.0.0",
@@ -120,7 +121,7 @@
120
121
  "@atlaskit/media-file-preview": "^0.5.0",
121
122
  "@atlaskit/media-picker": "^66.3.0",
122
123
  "@atlaskit/media-ui": "^25.3.0",
123
- "@atlaskit/media-viewer": "48.3.0",
124
+ "@atlaskit/media-viewer": "48.3.2",
124
125
  "@atlaskit/mention": "^23.0.0",
125
126
  "@atlaskit/menu": "^2.1.0",
126
127
  "@atlaskit/platform-feature-flags": "^0.2.0",
@@ -132,7 +133,7 @@
132
133
  "@atlaskit/task-decision": "^17.9.0",
133
134
  "@atlaskit/textfield": "^6.0.0",
134
135
  "@atlaskit/theme": "^12.6.0",
135
- "@atlaskit/tokens": "^1.38.0",
136
+ "@atlaskit/tokens": "^1.39.0",
136
137
  "@atlaskit/tooltip": "^18.1.0",
137
138
  "@atlaskit/ufo": "^0.2.0",
138
139
  "@atlaskit/width-detector": "^4.1.0",