@atlaskit/editor-common 84.1.0 → 84.2.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 (50) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/afm-cc/tsconfig.json +3 -0
  3. package/dist/cjs/link/ConfigureLinkOverlay/Dropdown.js +56 -0
  4. package/dist/cjs/link/ConfigureLinkOverlay/StyledButton.js +38 -0
  5. package/dist/cjs/link/ConfigureLinkOverlay/{OverlayButton.js → index.js} +29 -22
  6. package/dist/cjs/link/index.js +2 -2
  7. package/dist/cjs/monitoring/error.js +1 -1
  8. package/dist/cjs/resizer/Resizer.js +23 -45
  9. package/dist/cjs/ui/DropList/index.js +1 -1
  10. package/dist/cjs/ui-color/ColorPalette/Color/index.js +1 -2
  11. package/dist/cjs/ui-color/ColorPalette/Palettes/highlightColorPalette.js +6 -11
  12. package/dist/cjs/ui-color/ColorPalette/Palettes/textColorPalette.js +2 -11
  13. package/dist/cjs/ui-color/index.js +0 -12
  14. package/dist/es2019/link/ConfigureLinkOverlay/Dropdown.js +45 -0
  15. package/dist/es2019/link/ConfigureLinkOverlay/StyledButton.js +30 -0
  16. package/dist/es2019/link/ConfigureLinkOverlay/{OverlayButton.js → index.js} +28 -24
  17. package/dist/es2019/link/index.js +1 -1
  18. package/dist/es2019/monitoring/error.js +1 -1
  19. package/dist/es2019/resizer/Resizer.js +26 -54
  20. package/dist/es2019/ui/DropList/index.js +1 -1
  21. package/dist/es2019/ui-color/ColorPalette/Color/index.js +1 -2
  22. package/dist/es2019/ui-color/ColorPalette/Palettes/highlightColorPalette.js +2 -7
  23. package/dist/es2019/ui-color/ColorPalette/Palettes/textColorPalette.js +2 -7
  24. package/dist/es2019/ui-color/index.js +2 -2
  25. package/dist/esm/link/ConfigureLinkOverlay/Dropdown.js +46 -0
  26. package/dist/esm/link/ConfigureLinkOverlay/StyledButton.js +31 -0
  27. package/dist/esm/link/ConfigureLinkOverlay/{OverlayButton.js → index.js} +31 -24
  28. package/dist/esm/link/index.js +1 -1
  29. package/dist/esm/monitoring/error.js +1 -1
  30. package/dist/esm/resizer/Resizer.js +23 -45
  31. package/dist/esm/ui/DropList/index.js +1 -1
  32. package/dist/esm/ui-color/ColorPalette/Color/index.js +1 -2
  33. package/dist/esm/ui-color/ColorPalette/Palettes/highlightColorPalette.js +1 -10
  34. package/dist/esm/ui-color/ColorPalette/Palettes/textColorPalette.js +1 -10
  35. package/dist/esm/ui-color/index.js +2 -2
  36. package/dist/types/link/ConfigureLinkOverlay/Dropdown.d.ts +7 -0
  37. package/dist/types/link/ConfigureLinkOverlay/StyledButton.d.ts +7 -0
  38. package/dist/types/link/index.d.ts +2 -2
  39. package/dist/types/ui-color/ColorPalette/Palettes/highlightColorPalette.d.ts +0 -1
  40. package/dist/types/ui-color/ColorPalette/Palettes/textColorPalette.d.ts +1 -2
  41. package/dist/types/ui-color/index.d.ts +2 -2
  42. package/dist/types-ts4.5/link/ConfigureLinkOverlay/Dropdown.d.ts +7 -0
  43. package/dist/types-ts4.5/link/ConfigureLinkOverlay/StyledButton.d.ts +7 -0
  44. package/dist/types-ts4.5/link/index.d.ts +2 -2
  45. package/dist/types-ts4.5/ui-color/ColorPalette/Palettes/highlightColorPalette.d.ts +0 -1
  46. package/dist/types-ts4.5/ui-color/ColorPalette/Palettes/textColorPalette.d.ts +1 -2
  47. package/dist/types-ts4.5/ui-color/index.d.ts +2 -2
  48. package/package.json +4 -9
  49. /package/dist/types/link/ConfigureLinkOverlay/{OverlayButton.d.ts → index.d.ts} +0 -0
  50. /package/dist/types-ts4.5/link/ConfigureLinkOverlay/{OverlayButton.d.ts → index.d.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 84.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#117916](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/117916)
8
+ [`cd1905bf5112d`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/cd1905bf5112d) -
9
+ [ux] Link configuration overlay shows chevron down icon on small links based on a 50px width
10
+ threshold. On click the overlay opens a dropdown with open link and configure link options.
11
+
12
+ ### Patch Changes
13
+
14
+ - [#116760](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/116760)
15
+ [`2e309117f02c6`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/2e309117f02c6) -
16
+ [ED-23062] Clean up feature flag for highlight palette dark mode improvements
17
+ - [#117920](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/117920)
18
+ [`b3da4fa9c20d9`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/b3da4fa9c20d9) -
19
+ Cleanup of table FF
20
+
3
21
  ## 84.1.0
4
22
 
5
23
  ### Minor Changes
@@ -48,6 +48,9 @@
48
48
  {
49
49
  "path": "../../custom-steps/afm-cc/tsconfig.json"
50
50
  },
51
+ {
52
+ "path": "../../../design-system/dropdown-menu/afm-cc/tsconfig.json"
53
+ },
51
54
  {
52
55
  "path": "../../editor-json-transformer/afm-cc/tsconfig.json"
53
56
  },
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = require("@emotion/react");
12
+ var _reactIntlNext = require("react-intl-next");
13
+ var _dropdownMenu = _interopRequireWildcard(require("@atlaskit/dropdown-menu"));
14
+ var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-down"));
15
+ var _preferences = _interopRequireDefault(require("@atlaskit/icon/glyph/preferences"));
16
+ var _shortcut = _interopRequireDefault(require("@atlaskit/icon/glyph/shortcut"));
17
+ var _messages = require("../../messages");
18
+ var _StyledButton = require("./StyledButton");
19
+ var _excluded = ["triggerRef"];
20
+ /** @jsx jsx */
21
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
22
+ 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); }
23
+ 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 && Object.prototype.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; }
24
+ var Dropdown = function Dropdown(_ref) {
25
+ var testId = _ref.testId;
26
+ var _useIntl = (0, _reactIntlNext.useIntl)(),
27
+ formatMessage = _useIntl.formatMessage;
28
+ var configureLinkLabel = formatMessage(_messages.cardMessages.inlineConfigureLink);
29
+ var goToLinkLabel = formatMessage(_messages.cardMessages.inlineGoToLink);
30
+ return (0, _react.jsx)(_dropdownMenu.default, {
31
+ trigger: function trigger(_ref2) {
32
+ var triggerRef = _ref2.triggerRef,
33
+ props = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
34
+ return (0, _react.jsx)(_StyledButton.StyledButton, (0, _extends2.default)({
35
+ innerRef: triggerRef
36
+ }, props, {
37
+ iconBefore: (0, _react.jsx)(_chevronDown.default, {
38
+ label: configureLinkLabel,
39
+ size: 'small'
40
+ })
41
+ }));
42
+ },
43
+ testId: "".concat(testId, "-dropdown")
44
+ }, (0, _react.jsx)(_dropdownMenu.DropdownItemGroup, null, (0, _react.jsx)(_dropdownMenu.DropdownItem, {
45
+ elemBefore: (0, _react.jsx)(_shortcut.default, {
46
+ label: goToLinkLabel,
47
+ size: 'medium'
48
+ })
49
+ }, goToLinkLabel), (0, _react.jsx)(_dropdownMenu.DropdownItem, {
50
+ elemBefore: (0, _react.jsx)(_preferences.default, {
51
+ label: configureLinkLabel,
52
+ size: 'medium'
53
+ })
54
+ }, configureLinkLabel)));
55
+ };
56
+ var _default = exports.default = Dropdown;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.StyledButton = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _react = require("@emotion/react");
11
+ var _button = _interopRequireDefault(require("@atlaskit/button"));
12
+ var _colors = require("@atlaskit/theme/colors");
13
+ var _excluded = ["innerRef"];
14
+ /** @jsx jsx */
15
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
16
+ var buttonStyles = (0, _react.css)({
17
+ display: 'flex',
18
+ background: "var(--ds-background-neutral, ".concat(_colors.N30A, ")"),
19
+ color: "var(--ds-icon, ".concat(_colors.N700, ")"),
20
+ '&:hover': {
21
+ background: "var(--ds-background-neutral-hovered, ".concat(_colors.N40A, ")")
22
+ },
23
+ '&:active': {
24
+ background: "var(--ds-background-neutral-pressed, ".concat(_colors.N60A, ")")
25
+ },
26
+ width: '1.375rem',
27
+ height: '1.25rem'
28
+ });
29
+ var StyledButton = exports.StyledButton = function StyledButton(_ref) {
30
+ var innerRef = _ref.innerRef,
31
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
32
+ return (0, _react.jsx)(_button.default, (0, _extends2.default)({}, props, {
33
+ ref: innerRef
34
+ // eslint-disable-next-line @atlaskit/design-system/no-unsafe-style-overrides
35
+ ,
36
+ css: buttonStyles
37
+ }));
38
+ };
@@ -5,33 +5,22 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.OverlayButton = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
9
  var _react = require("react");
9
10
  var _react2 = require("@emotion/react");
10
11
  var _reactIntlNext = require("react-intl-next");
11
- var _button = _interopRequireDefault(require("@atlaskit/button"));
12
12
  var _state = require("@atlaskit/editor-prosemirror/state");
13
13
  var _preferences = _interopRequireDefault(require("@atlaskit/icon/glyph/preferences"));
14
14
  var _colors = require("@atlaskit/theme/colors");
15
15
  var _constants = require("@atlaskit/theme/constants");
16
16
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
17
17
  var _messages = require("../../messages");
18
+ var _Dropdown = _interopRequireDefault(require("./Dropdown"));
19
+ var _StyledButton = require("./StyledButton");
18
20
  /** @jsx jsx */
19
21
 
20
22
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
21
23
 
22
- var buttonStyles = (0, _react2.css)({
23
- display: 'flex',
24
- background: "var(--ds-background-neutral, ".concat(_colors.N30A, ")"),
25
- color: "var(--ds-icon, ".concat(_colors.N700, ")"),
26
- '&:hover': {
27
- background: "var(--ds-background-neutral-hovered, ".concat(_colors.N40A, ")")
28
- },
29
- '&:active': {
30
- background: "var(--ds-background-neutral-pressed, ".concat(_colors.N60A, ")")
31
- },
32
- width: '1.375rem',
33
- height: '1.25rem'
34
- });
35
24
  var buttonWrapperStyles = (0, _react2.css)({
36
25
  position: 'absolute',
37
26
  zIndex: _constants.layers.card(),
@@ -41,6 +30,7 @@ var buttonWrapperStyles = (0, _react2.css)({
41
30
  background: "var(--ds-surface-raised, ".concat(_colors.N0, ")"),
42
31
  borderRadius: "var(--ds-border-radius, 3px)"
43
32
  });
33
+ var showDropdownThresholdPx = 50;
44
34
  var OverlayButton = exports.OverlayButton = function OverlayButton(_ref) {
45
35
  var _docNode$nodeSize;
46
36
  var editorView = _ref.editorView,
@@ -50,6 +40,25 @@ var OverlayButton = exports.OverlayButton = function OverlayButton(_ref) {
50
40
  targetElementPos = _ref$targetElementPos === void 0 ? 0 : _ref$targetElementPos;
51
41
  var _useIntl = (0, _reactIntlNext.useIntl)(),
52
42
  formatMessage = _useIntl.formatMessage;
43
+ var configureLinkLabel = formatMessage(_messages.cardMessages.inlineConfigureLink);
44
+ var _useState = (0, _react.useState)(false),
45
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
46
+ showDropdown = _useState2[0],
47
+ setShowDropdown = _useState2[1];
48
+ (0, _react.useLayoutEffect)(function () {
49
+ var _domNode;
50
+ var domNode = editorView.nodeDOM(targetElementPos);
51
+ if (((_domNode = domNode) === null || _domNode === void 0 ? void 0 : _domNode.nodeType) === Node.TEXT_NODE) {
52
+ domNode = domNode.parentElement;
53
+ }
54
+ if (domNode instanceof HTMLElement) {
55
+ var _domNode$getBoundingC = domNode.getBoundingClientRect(),
56
+ width = _domNode$getBoundingC.width;
57
+ if (width < showDropdownThresholdPx) {
58
+ setShowDropdown(true);
59
+ }
60
+ }
61
+ }, [editorView, targetElementPos]);
53
62
  var docNode = editorView.state.doc.nodeAt(targetElementPos);
54
63
  var nodeEnd = targetElementPos + ((_docNode$nodeSize = docNode === null || docNode === void 0 ? void 0 : docNode.nodeSize) !== null && _docNode$nodeSize !== void 0 ? _docNode$nodeSize : 0);
55
64
  var isText = docNode === null || docNode === void 0 ? void 0 : docNode.isText;
@@ -69,18 +78,16 @@ var OverlayButton = exports.OverlayButton = function OverlayButton(_ref) {
69
78
  if (!targetElementPos || isSelected) {
70
79
  return null;
71
80
  }
72
- var configureLinkLabel = formatMessage(_messages.cardMessages.inlineConfigureLink);
73
81
  return (0, _react2.jsx)("span", {
74
- css: buttonWrapperStyles
75
- }, (0, _react2.jsx)(_tooltip.default, {
82
+ css: buttonWrapperStyles,
83
+ "data-testid": testId
84
+ }, showDropdown ? (0, _react2.jsx)(_Dropdown.default, {
85
+ testId: testId
86
+ }) : (0, _react2.jsx)(_tooltip.default, {
76
87
  content: configureLinkLabel,
77
88
  hideTooltipOnClick: true,
78
89
  testId: "".concat(testId, "-tooltip")
79
- }, (0, _react2.jsx)(_button.default, {
80
- testId: testId
81
- // eslint-disable-next-line @atlaskit/design-system/no-unsafe-style-overrides
82
- ,
83
- css: buttonStyles,
90
+ }, (0, _react2.jsx)(_StyledButton.StyledButton, {
84
91
  onClick: handleClick,
85
92
  iconBefore: (0, _react2.jsx)(_preferences.default, {
86
93
  label: configureLinkLabel,
@@ -56,7 +56,7 @@ Object.defineProperty(exports, "LinkSearchListItem", {
56
56
  Object.defineProperty(exports, "OverlayButton", {
57
57
  enumerable: true,
58
58
  get: function get() {
59
- return _OverlayButton.OverlayButton;
59
+ return _ConfigureLinkOverlay.OverlayButton;
60
60
  }
61
61
  });
62
62
  Object.defineProperty(exports, "RECENT_SEARCH_LIST_SIZE", {
@@ -143,6 +143,6 @@ var _HyperlinkAddToolbar2 = _interopRequireWildcard(require("./LinkPicker/Hyperl
143
143
  var _utils = require("./LinkPicker/HyperlinkAddToolbar/utils");
144
144
  var _utils2 = require("./utils");
145
145
  var _constants = require("./constants");
146
- var _OverlayButton = require("./ConfigureLinkOverlay/OverlayButton");
146
+ var _ConfigureLinkOverlay = require("./ConfigureLinkOverlay");
147
147
  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); }
148
148
  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 && Object.prototype.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; }
@@ -17,7 +17,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
17
17
  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 && Object.prototype.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; }
18
18
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
19
19
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
20
- var packageVersion = "84.1.0";
20
+ var packageVersion = "84.2.0";
21
21
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
22
22
  // Remove URL as it has UGC
23
23
  // TODO: Sanitise the URL instead of just removing it
@@ -13,7 +13,6 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
13
13
  var _react = _interopRequireWildcard(require("react"));
14
14
  var _classnames3 = _interopRequireDefault(require("classnames"));
15
15
  var _reResizable = require("re-resizable");
16
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
17
16
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
18
17
  var _resizer = require("../styles/shared/resizer");
19
18
  var _excluded = ["width", "children", "handleClassName", "className", "handleResize", "handleResizeStart", "handleResizeStop", "handleSize", "handleAlignmentMethod", "handlePositioning", "appearance", "handleStyles", "resizeRatio", "snap", "snapGap", "isHandleVisible", "handleHighlight", "handleTooltipContent", "needExtendedResizeZone"];
@@ -138,57 +137,36 @@ var ResizerNext = function ResizerNext(props, ref) {
138
137
  if ((!handleHighlight || handleHighlight === 'none') && !handleTooltipContent) {
139
138
  return _objectSpread(_objectSpread({}, result), {}, (0, _defineProperty2.default)({}, position, thumb));
140
139
  }
141
- if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.resizer.prevent-contenteditable')) {
142
- var thumbWithTrack =
143
- /*#__PURE__*/
144
- //It's important to have {thumb} element before the div, the thumb element is the one that gets focus and only the 1st element recives aria-descibedby attribute which is important for screen reader users
145
- _react.default.createElement(_react.default.Fragment, null, thumb, /*#__PURE__*/_react.default.createElement("div", {
146
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
147
- className: (0, _classnames3.default)(_resizer.resizerHandleTrackClassName, handleHighlight),
148
- "data-testid": "resizer-handle-".concat(position, "-track")
149
- }));
150
- if (!!handleTooltipContent) {
151
- return _objectSpread(_objectSpread({}, result), {}, (0, _defineProperty2.default)({}, position,
152
- /*#__PURE__*/
153
- // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
154
- _react.default.createElement("div", {
155
- contentEditable: false,
156
- style: inheritedCSS
157
- }, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
158
- content: handleTooltipContent,
159
- hideTooltipOnClick: true,
160
- position: "mouse",
161
- mousePosition: "auto-start",
162
- testId: "resizer-handle-".concat(position, "-tooltip")
163
- }, thumbWithTrack))));
164
- }
140
+ var thumbWithTrack =
141
+ /*#__PURE__*/
142
+ //It's important to have {thumb} element before the div, the thumb element is the one that gets focus and only the 1st element recives aria-descibedby attribute which is important for screen reader users
143
+ _react.default.createElement(_react.default.Fragment, null, thumb, /*#__PURE__*/_react.default.createElement("div", {
144
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
145
+ className: (0, _classnames3.default)(_resizer.resizerHandleTrackClassName, handleHighlight),
146
+ "data-testid": "resizer-handle-".concat(position, "-track")
147
+ }));
148
+ if (!!handleTooltipContent) {
165
149
  return _objectSpread(_objectSpread({}, result), {}, (0, _defineProperty2.default)({}, position,
166
150
  /*#__PURE__*/
167
151
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
168
152
  _react.default.createElement("div", {
169
153
  contentEditable: false,
170
154
  style: inheritedCSS
171
- }, thumbWithTrack)));
172
- } else {
173
- var _thumbWithTrack =
174
- /*#__PURE__*/
175
- //It's important to have {thumb} element before the div, the thumb element is the one that gets focus and only the 1st element recives aria-descibedby attribute which is important for screen reader users
176
- _react.default.createElement(_react.default.Fragment, null, thumb, /*#__PURE__*/_react.default.createElement("div", {
177
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
178
- className: (0, _classnames3.default)(_resizer.resizerHandleTrackClassName, handleHighlight),
179
- "data-testid": "resizer-handle-".concat(position, "-track")
180
- }));
181
- if (!!handleTooltipContent) {
182
- return _objectSpread(_objectSpread({}, result), {}, (0, _defineProperty2.default)({}, position, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
183
- content: handleTooltipContent,
184
- hideTooltipOnClick: true,
185
- position: "mouse",
186
- mousePosition: "auto-start",
187
- testId: "resizer-handle-".concat(position, "-tooltip")
188
- }, _thumbWithTrack)));
189
- }
190
- return _objectSpread(_objectSpread({}, result), {}, (0, _defineProperty2.default)({}, position, _thumbWithTrack));
155
+ }, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
156
+ content: handleTooltipContent,
157
+ hideTooltipOnClick: true,
158
+ position: "mouse",
159
+ mousePosition: "auto-start",
160
+ testId: "resizer-handle-".concat(position, "-tooltip")
161
+ }, thumbWithTrack))));
191
162
  }
163
+ return _objectSpread(_objectSpread({}, result), {}, (0, _defineProperty2.default)({}, position,
164
+ /*#__PURE__*/
165
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
166
+ _react.default.createElement("div", {
167
+ contentEditable: false,
168
+ style: inheritedCSS
169
+ }, thumbWithTrack)));
192
170
  }, {});
193
171
  }, [handleHighlight, handleTooltipContent]);
194
172
 
@@ -20,7 +20,7 @@ var _Layer = _interopRequireDefault(require("../Layer"));
20
20
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
21
21
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** @jsx jsx */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
22
22
  var packageName = "@atlaskit/editor-common";
23
- var packageVersion = "84.1.0";
23
+ var packageVersion = "84.2.0";
24
24
  var halfFocusRing = 1;
25
25
  var dropOffset = '0, 8';
26
26
  var DropList = /*#__PURE__*/function (_Component) {
@@ -8,7 +8,6 @@ exports.default = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _react2 = require("@emotion/react");
10
10
  var _done = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/done"));
11
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
11
  var _colors = require("@atlaskit/theme/colors");
13
12
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
14
13
  var _styles = require("./styles");
@@ -57,7 +56,7 @@ var Color = function Color(props) {
57
56
  ,
58
57
  className: "".concat(isSelected ? 'selected' : ''),
59
58
  style: {
60
- backgroundColor: colorStyle || ((0, _platformFeatureFlags.fg)('platform.editor.dynamic-palette-borders') ? "var(--ds-background-input, #FFFFFF)" : 'transparent'),
59
+ backgroundColor: colorStyle || "var(--ds-background-input, #FFFFFF)",
61
60
  border: "1px solid ".concat(borderColor)
62
61
  },
63
62
  autoFocus: autoFocus
@@ -4,18 +4,18 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.highlightColorPaletteWithTokenBorders = exports.highlightColorPalette = exports.REMOVE_HIGHLIGHT_COLOR = exports.EditorDiagonalLineIcon = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ exports.highlightColorPalette = exports.REMOVE_HIGHLIGHT_COLOR = exports.EditorDiagonalLineIcon = void 0;
9
8
  var _react = require("@emotion/react");
10
9
  var _adfSchema = require("@atlaskit/adf-schema");
11
10
  var _icon = _interopRequireDefault(require("@atlaskit/icon"));
12
11
  var _tokens = require("@atlaskit/tokens");
13
- var _common = require("./common");
14
12
  var _getColorMessage = _interopRequireDefault(require("./getColorMessage"));
15
13
  var _paletteMessages = _interopRequireDefault(require("./paletteMessages"));
16
14
  var _textColorPalette = require("./textColorPalette");
17
- 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; }
18
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** @jsx jsx */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
15
+ /** @jsx jsx */
16
+
17
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
18
+
19
19
  var REMOVE_HIGHLIGHT_COLOR = exports.REMOVE_HIGHLIGHT_COLOR = '#00000000';
20
20
  var DiagonalLineGlyph = function DiagonalLineGlyph() {
21
21
  return (0, _react.jsx)("svg", {
@@ -51,15 +51,10 @@ var highlightColorPalette = exports.highlightColorPalette = [{
51
51
  value: REMOVE_HIGHLIGHT_COLOR,
52
52
  label: 'No color',
53
53
  // Mostly informative, only used for analytics
54
- border: _common.DEFAULT_BORDER_COLOR,
54
+ border: "var(--ds-border, #091E4224)",
55
55
  message: (0, _getColorMessage.default)(_paletteMessages.default, 'no-color'),
56
56
  decorator: (0, _react.jsx)(EditorDiagonalLineIcon, null)
57
57
  }];
58
58
  _adfSchema.backgroundColorPalette.forEach(function (label, color) {
59
59
  highlightColorPalette.push((0, _textColorPalette.mapPaletteColor)(label, color));
60
- });
61
- var highlightColorPaletteWithTokenBorders = exports.highlightColorPaletteWithTokenBorders = highlightColorPalette.map(function (paletteColor) {
62
- return _objectSpread(_objectSpread({}, paletteColor), {}, {
63
- border: "var(--ds-border, #091E4224)"
64
- });
65
60
  });
@@ -4,21 +4,17 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.textColorPaletteWithTokenBorders = exports.textColorPaletteTokenBorders = exports.textColorPalette = exports.mapPaletteColor = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ exports.textColorPaletteTokenBorders = exports.textColorPalette = exports.mapPaletteColor = void 0;
9
8
  var _adfSchema = require("@atlaskit/adf-schema");
10
- var _common = require("./common");
11
9
  var _getColorMessage = _interopRequireDefault(require("./getColorMessage"));
12
10
  var _paletteMessages = _interopRequireDefault(require("./paletteMessages"));
13
- 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; }
14
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
11
  var mapPaletteColor = exports.mapPaletteColor = function mapPaletteColor(label, color) {
16
12
  var key = label.toLowerCase().replace(' ', '-');
17
13
  var message = (0, _getColorMessage.default)(_paletteMessages.default, key);
18
14
  return {
19
15
  value: color,
20
16
  label: label,
21
- border: _common.DEFAULT_BORDER_COLOR,
17
+ border: "var(--ds-border, #091E4224)",
22
18
  message: message
23
19
  };
24
20
  };
@@ -28,9 +24,4 @@ var textColorPalette = exports.textColorPalette = [];
28
24
  var textColorPaletteTokenBorders = exports.textColorPaletteTokenBorders = [];
29
25
  _adfSchema.colorPalette.forEach(function (label, color) {
30
26
  textColorPalette.push(mapPaletteColor(label, color));
31
- });
32
- var textColorPaletteWithTokenBorders = exports.textColorPaletteWithTokenBorders = textColorPalette.map(function (paletteColor) {
33
- return _objectSpread(_objectSpread({}, paletteColor), {}, {
34
- border: "var(--ds-border, #091E4224)"
35
- });
36
27
  });
@@ -100,12 +100,6 @@ Object.defineProperty(exports, "highlightColorPalette", {
100
100
  return _highlightColorPalette.highlightColorPalette;
101
101
  }
102
102
  });
103
- Object.defineProperty(exports, "highlightColorPaletteWithTokenBorders", {
104
- enumerable: true,
105
- get: function get() {
106
- return _highlightColorPalette.highlightColorPaletteWithTokenBorders;
107
- }
108
- });
109
103
  Object.defineProperty(exports, "lightModeStatusColorPalette", {
110
104
  enumerable: true,
111
105
  get: function get() {
@@ -130,12 +124,6 @@ Object.defineProperty(exports, "textColorPalette", {
130
124
  return _textColorPalette.textColorPalette;
131
125
  }
132
126
  });
133
- Object.defineProperty(exports, "textColorPaletteWithTokenBorders", {
134
- enumerable: true,
135
- get: function get() {
136
- return _textColorPalette.textColorPaletteWithTokenBorders;
137
- }
138
- });
139
127
  Object.defineProperty(exports, "textPaletteTooltipMessages", {
140
128
  enumerable: true,
141
129
  get: function get() {
@@ -0,0 +1,45 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /** @jsx jsx */
3
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
4
+ import { jsx } from '@emotion/react';
5
+ import { useIntl } from 'react-intl-next';
6
+ import DropdownMenu, { DropdownItem, DropdownItemGroup } from '@atlaskit/dropdown-menu';
7
+ import ChevronDownIcon from '@atlaskit/icon/glyph/chevron-down';
8
+ import PreferencesIcon from '@atlaskit/icon/glyph/preferences';
9
+ import ShortcutIcon from '@atlaskit/icon/glyph/shortcut';
10
+ import { cardMessages as messages } from '../../messages';
11
+ import { StyledButton } from './StyledButton';
12
+ const Dropdown = ({
13
+ testId
14
+ }) => {
15
+ const {
16
+ formatMessage
17
+ } = useIntl();
18
+ const configureLinkLabel = formatMessage(messages.inlineConfigureLink);
19
+ const goToLinkLabel = formatMessage(messages.inlineGoToLink);
20
+ return jsx(DropdownMenu, {
21
+ trigger: ({
22
+ triggerRef,
23
+ ...props
24
+ }) => jsx(StyledButton, _extends({
25
+ innerRef: triggerRef
26
+ }, props, {
27
+ iconBefore: jsx(ChevronDownIcon, {
28
+ label: configureLinkLabel,
29
+ size: 'small'
30
+ })
31
+ })),
32
+ testId: `${testId}-dropdown`
33
+ }, jsx(DropdownItemGroup, null, jsx(DropdownItem, {
34
+ elemBefore: jsx(ShortcutIcon, {
35
+ label: goToLinkLabel,
36
+ size: 'medium'
37
+ })
38
+ }, goToLinkLabel), jsx(DropdownItem, {
39
+ elemBefore: jsx(PreferencesIcon, {
40
+ label: configureLinkLabel,
41
+ size: 'medium'
42
+ })
43
+ }, configureLinkLabel)));
44
+ };
45
+ export default Dropdown;
@@ -0,0 +1,30 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /** @jsx jsx */
3
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
4
+ import { css, jsx } from '@emotion/react';
5
+ import Button from '@atlaskit/button';
6
+ import { N30A, N40A, N60A, N700 } from '@atlaskit/theme/colors';
7
+ const buttonStyles = css({
8
+ display: 'flex',
9
+ background: `var(--ds-background-neutral, ${N30A})`,
10
+ color: `var(--ds-icon, ${N700})`,
11
+ '&:hover': {
12
+ background: `var(--ds-background-neutral-hovered, ${N40A})`
13
+ },
14
+ '&:active': {
15
+ background: `var(--ds-background-neutral-pressed, ${N60A})`
16
+ },
17
+ width: '1.375rem',
18
+ height: '1.25rem'
19
+ });
20
+ export const StyledButton = ({
21
+ innerRef,
22
+ ...props
23
+ }) => {
24
+ return jsx(Button, _extends({}, props, {
25
+ ref: innerRef
26
+ // eslint-disable-next-line @atlaskit/design-system/no-unsafe-style-overrides
27
+ ,
28
+ css: buttonStyles
29
+ }));
30
+ };
@@ -1,29 +1,17 @@
1
1
  /** @jsx jsx */
2
- import { useCallback } from 'react';
2
+ import { useCallback, useLayoutEffect, useState } from 'react';
3
3
 
4
4
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
5
5
  import { css, jsx } from '@emotion/react';
6
6
  import { useIntl } from 'react-intl-next';
7
- import Button from '@atlaskit/button';
8
7
  import { NodeSelection, TextSelection } from '@atlaskit/editor-prosemirror/state';
9
8
  import PreferencesIcon from '@atlaskit/icon/glyph/preferences';
10
- import { N0, N30A, N40A, N60A, N700 } from '@atlaskit/theme/colors';
9
+ import { N0 } from '@atlaskit/theme/colors';
11
10
  import { layers } from '@atlaskit/theme/constants';
12
11
  import Tooltip from '@atlaskit/tooltip';
13
12
  import { cardMessages } from '../../messages';
14
- const buttonStyles = css({
15
- display: 'flex',
16
- background: `var(--ds-background-neutral, ${N30A})`,
17
- color: `var(--ds-icon, ${N700})`,
18
- '&:hover': {
19
- background: `var(--ds-background-neutral-hovered, ${N40A})`
20
- },
21
- '&:active': {
22
- background: `var(--ds-background-neutral-pressed, ${N60A})`
23
- },
24
- width: '1.375rem',
25
- height: '1.25rem'
26
- });
13
+ import Dropdown from './Dropdown';
14
+ import { StyledButton } from './StyledButton';
27
15
  const buttonWrapperStyles = css({
28
16
  position: 'absolute',
29
17
  zIndex: layers.card(),
@@ -33,6 +21,7 @@ const buttonWrapperStyles = css({
33
21
  background: `var(--ds-surface-raised, ${N0})`,
34
22
  borderRadius: "var(--ds-border-radius, 3px)"
35
23
  });
24
+ const showDropdownThresholdPx = 50;
36
25
  export const OverlayButton = ({
37
26
  editorView,
38
27
  testId = 'link-configure-overlay-button',
@@ -42,6 +31,23 @@ export const OverlayButton = ({
42
31
  const {
43
32
  formatMessage
44
33
  } = useIntl();
34
+ const configureLinkLabel = formatMessage(cardMessages.inlineConfigureLink);
35
+ const [showDropdown, setShowDropdown] = useState(false);
36
+ useLayoutEffect(() => {
37
+ var _domNode;
38
+ let domNode = editorView.nodeDOM(targetElementPos);
39
+ if (((_domNode = domNode) === null || _domNode === void 0 ? void 0 : _domNode.nodeType) === Node.TEXT_NODE) {
40
+ domNode = domNode.parentElement;
41
+ }
42
+ if (domNode instanceof HTMLElement) {
43
+ const {
44
+ width
45
+ } = domNode.getBoundingClientRect();
46
+ if (width < showDropdownThresholdPx) {
47
+ setShowDropdown(true);
48
+ }
49
+ }
50
+ }, [editorView, targetElementPos]);
45
51
  const docNode = editorView.state.doc.nodeAt(targetElementPos);
46
52
  const nodeEnd = targetElementPos + ((_docNode$nodeSize = docNode === null || docNode === void 0 ? void 0 : docNode.nodeSize) !== null && _docNode$nodeSize !== void 0 ? _docNode$nodeSize : 0);
47
53
  const isText = docNode === null || docNode === void 0 ? void 0 : docNode.isText;
@@ -62,18 +68,16 @@ export const OverlayButton = ({
62
68
  if (!targetElementPos || isSelected) {
63
69
  return null;
64
70
  }
65
- const configureLinkLabel = formatMessage(cardMessages.inlineConfigureLink);
66
71
  return jsx("span", {
67
- css: buttonWrapperStyles
68
- }, jsx(Tooltip, {
72
+ css: buttonWrapperStyles,
73
+ "data-testid": testId
74
+ }, showDropdown ? jsx(Dropdown, {
75
+ testId: testId
76
+ }) : jsx(Tooltip, {
69
77
  content: configureLinkLabel,
70
78
  hideTooltipOnClick: true,
71
79
  testId: `${testId}-tooltip`
72
- }, jsx(Button, {
73
- testId: testId
74
- // eslint-disable-next-line @atlaskit/design-system/no-unsafe-style-overrides
75
- ,
76
- css: buttonStyles,
80
+ }, jsx(StyledButton, {
77
81
  onClick: handleClick,
78
82
  iconBefore: jsx(PreferencesIcon, {
79
83
  label: configureLinkLabel,