@atlaskit/editor-plugin-highlight 1.4.1 → 1.5.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,30 @@
1
1
  # @atlaskit/editor-plugin-highlight
2
2
 
3
+ ## 1.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#101406](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/101406)
8
+ [`6daffd65aec4`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/6daffd65aec4) -
9
+ [ED-23298] Extract primary toolbar components to editor plugin to allow for custom ordering
10
+
11
+ ### Patch Changes
12
+
13
+ - [#102478](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/102478)
14
+ [`3378951608b0`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/3378951608b0) -
15
+ [ED-23332] Update adf-schema package to 36.10.1
16
+ - Updated dependencies
17
+
18
+ ## 1.4.2
19
+
20
+ ### Patch Changes
21
+
22
+ - [#101513](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/101513)
23
+ [`98b5dfc33bed`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/98b5dfc33bed) -
24
+ [ux] [ED-23156] The highlight primary toolbar button is disabled when trying to apply it on
25
+ nodes that don't enable the mark and when in a gap cursor. The text color primary toolbar button
26
+ is disabled when selecting text with a highlight.
27
+
3
28
  ## 1.4.1
4
29
 
5
30
  ### Patch Changes
@@ -14,6 +14,23 @@ var highlightPlugin = exports.highlightPlugin = function highlightPlugin(_ref) {
14
14
  var _api$analytics;
15
15
  var api = _ref.api;
16
16
  var editorAnalyticsAPI = api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions;
17
+ var primaryToolbarComponent = function primaryToolbarComponent(_ref2) {
18
+ var popupsMountPoint = _ref2.popupsMountPoint,
19
+ popupsBoundariesElement = _ref2.popupsBoundariesElement,
20
+ popupsScrollableElement = _ref2.popupsScrollableElement,
21
+ disabled = _ref2.disabled,
22
+ isToolbarReducedSpacing = _ref2.isToolbarReducedSpacing,
23
+ dispatchAnalyticsEvent = _ref2.dispatchAnalyticsEvent;
24
+ return /*#__PURE__*/_react.default.createElement(_ToolbarHighlightColor.ToolbarHighlightColorWithIntl, {
25
+ popupsMountPoint: popupsMountPoint,
26
+ popupsBoundariesElement: popupsBoundariesElement,
27
+ popupsScrollableElement: popupsScrollableElement,
28
+ disabled: disabled,
29
+ isToolbarReducedSpacing: isToolbarReducedSpacing,
30
+ dispatchAnalyticsEvent: dispatchAnalyticsEvent,
31
+ pluginInjectionApi: api
32
+ });
33
+ };
17
34
  return {
18
35
  name: 'highlight',
19
36
  commands: {
@@ -41,23 +58,13 @@ var highlightPlugin = exports.highlightPlugin = function highlightPlugin(_ref) {
41
58
  }
42
59
  return _pmPlugin.highlightPluginKey.getState(editorState);
43
60
  },
44
- primaryToolbarComponent: function primaryToolbarComponent(_ref2) {
45
- var editorView = _ref2.editorView,
46
- popupsMountPoint = _ref2.popupsMountPoint,
47
- popupsBoundariesElement = _ref2.popupsBoundariesElement,
48
- popupsScrollableElement = _ref2.popupsScrollableElement,
49
- disabled = _ref2.disabled,
50
- isToolbarReducedSpacing = _ref2.isToolbarReducedSpacing,
51
- dispatchAnalyticsEvent = _ref2.dispatchAnalyticsEvent;
52
- return /*#__PURE__*/_react.default.createElement(_ToolbarHighlightColor.ToolbarHighlightColorWithIntl, {
53
- popupsMountPoint: popupsMountPoint,
54
- popupsBoundariesElement: popupsBoundariesElement,
55
- popupsScrollableElement: popupsScrollableElement,
56
- disabled: disabled,
57
- isToolbarReducedSpacing: isToolbarReducedSpacing,
58
- dispatchAnalyticsEvent: dispatchAnalyticsEvent,
59
- pluginInjectionApi: api
60
- });
61
- }
61
+ usePluginHook: function usePluginHook() {
62
+ var _api$core, _api$primaryToolbar;
63
+ api === null || api === void 0 || (_api$core = api.core) === null || _api$core === void 0 || _api$core.actions.execute(api === null || api === void 0 || (_api$primaryToolbar = api.primaryToolbar) === null || _api$primaryToolbar === void 0 ? void 0 : _api$primaryToolbar.commands.registerComponent({
64
+ name: 'highlight',
65
+ component: primaryToolbarComponent
66
+ }));
67
+ },
68
+ primaryToolbarComponent: !(api !== null && api !== void 0 && api.primaryToolbar) ? primaryToolbarComponent : undefined
62
69
  };
63
70
  };
@@ -9,13 +9,10 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
9
9
  var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
10
10
  var _uiColor = require("@atlaskit/editor-common/ui-color");
11
11
  var _state = require("@atlaskit/editor-prosemirror/state");
12
+ var _disabled = require("./utils/disabled");
12
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; }
13
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; }
14
15
  var highlightPluginKey = exports.highlightPluginKey = new _state.PluginKey('highlight');
15
- var initialState = {
16
- activeColor: _uiColor.REMOVE_HIGHLIGHT_COLOR,
17
- disabled: false // TODO: Should probably be true, but we can tackle it once we tackle disabled state
18
- };
19
16
  var HighlightPluginAction = exports.HighlightPluginAction = /*#__PURE__*/function (HighlightPluginAction) {
20
17
  HighlightPluginAction[HighlightPluginAction["CHANGE_COLOR"] = 0] = "CHANGE_COLOR";
21
18
  return HighlightPluginAction;
@@ -26,11 +23,15 @@ var createPlugin = exports.createPlugin = function createPlugin(_ref) {
26
23
  key: highlightPluginKey,
27
24
  state: {
28
25
  init: function init() {
29
- return initialState;
26
+ return {
27
+ activeColor: _uiColor.REMOVE_HIGHLIGHT_COLOR,
28
+ disabled: true
29
+ };
30
30
  },
31
- apply: function apply(tr, pluginState) {
31
+ apply: function apply(tr, pluginState, _oldState, newState) {
32
32
  var _tr$getMeta;
33
33
  var action = (_tr$getMeta = tr.getMeta(highlightPluginKey)) === null || _tr$getMeta === void 0 ? void 0 : _tr$getMeta.type;
34
+ var nextState;
34
35
  switch (action) {
35
36
  case HighlightPluginAction.CHANGE_COLOR:
36
37
  var _tr$getMeta2 = tr.getMeta(highlightPluginKey),
@@ -39,6 +40,12 @@ var createPlugin = exports.createPlugin = function createPlugin(_ref) {
39
40
  activeColor: color
40
41
  });
41
42
  default:
43
+ nextState = _objectSpread(_objectSpread({}, pluginState), {}, {
44
+ disabled: (0, _disabled.getDisabledState)(newState)
45
+ });
46
+ if (pluginState && pluginState.disabled !== nextState.disabled) {
47
+ return nextState;
48
+ }
42
49
  return pluginState;
43
50
  }
44
51
  }
@@ -158,8 +158,6 @@ var ToolbarHighlightColor = function ToolbarHighlightColor(_ref) {
158
158
  palette: _uiColor.highlightColorPalette,
159
159
  hexToPaletteColor: _editorPalette.hexToEditorTextBackgroundPaletteColor
160
160
  }
161
- }))), (0, _react2.jsx)("span", {
162
- css: _styles.separatorStyles
163
- }));
161
+ }))));
164
162
  };
165
163
  var ToolbarHighlightColorWithIntl = exports.ToolbarHighlightColorWithIntl = (0, _reactIntlNext.injectIntl)(ToolbarHighlightColor);
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getDisabledState = void 0;
7
+ var _mark = require("@atlaskit/editor-common/mark");
8
+ var _selection = require("@atlaskit/editor-common/selection");
9
+ var _state = require("@atlaskit/editor-prosemirror/state");
10
+ var getDisabledState = exports.getDisabledState = function getDisabledState(state) {
11
+ var backgroundColor = state.schema.marks.backgroundColor;
12
+ var _ref = state.selection,
13
+ empty = _ref.empty,
14
+ ranges = _ref.ranges,
15
+ $cursor = _ref.$cursor;
16
+ if (!backgroundColor) {
17
+ return true;
18
+ }
19
+ if (state.selection instanceof _state.NodeSelection || state.selection instanceof _selection.GapCursorSelection) {
20
+ return true;
21
+ }
22
+ if (empty && !$cursor || (0, _mark.isMarkAllowedInRange)(state.doc, ranges, backgroundColor) === false) {
23
+ return true;
24
+ }
25
+ if ((0, _mark.isMarkExcluded)(backgroundColor, state.storedMarks || $cursor && $cursor.marks())) {
26
+ return true;
27
+ }
28
+ return false;
29
+ };
@@ -8,6 +8,22 @@ export const highlightPlugin = ({
8
8
  }) => {
9
9
  var _api$analytics;
10
10
  const editorAnalyticsAPI = api === null || api === void 0 ? void 0 : (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions;
11
+ const primaryToolbarComponent = ({
12
+ popupsMountPoint,
13
+ popupsBoundariesElement,
14
+ popupsScrollableElement,
15
+ disabled,
16
+ isToolbarReducedSpacing,
17
+ dispatchAnalyticsEvent
18
+ }) => /*#__PURE__*/React.createElement(ToolbarHighlightColor, {
19
+ popupsMountPoint: popupsMountPoint,
20
+ popupsBoundariesElement: popupsBoundariesElement,
21
+ popupsScrollableElement: popupsScrollableElement,
22
+ disabled: disabled,
23
+ isToolbarReducedSpacing: isToolbarReducedSpacing,
24
+ dispatchAnalyticsEvent: dispatchAnalyticsEvent,
25
+ pluginInjectionApi: api
26
+ });
11
27
  return {
12
28
  name: 'highlight',
13
29
  commands: {
@@ -31,22 +47,13 @@ export const highlightPlugin = ({
31
47
  }
32
48
  return highlightPluginKey.getState(editorState);
33
49
  },
34
- primaryToolbarComponent: ({
35
- editorView,
36
- popupsMountPoint,
37
- popupsBoundariesElement,
38
- popupsScrollableElement,
39
- disabled,
40
- isToolbarReducedSpacing,
41
- dispatchAnalyticsEvent
42
- }) => /*#__PURE__*/React.createElement(ToolbarHighlightColor, {
43
- popupsMountPoint: popupsMountPoint,
44
- popupsBoundariesElement: popupsBoundariesElement,
45
- popupsScrollableElement: popupsScrollableElement,
46
- disabled: disabled,
47
- isToolbarReducedSpacing: isToolbarReducedSpacing,
48
- dispatchAnalyticsEvent: dispatchAnalyticsEvent,
49
- pluginInjectionApi: api
50
- })
50
+ usePluginHook: () => {
51
+ var _api$core, _api$primaryToolbar;
52
+ api === null || api === void 0 ? void 0 : (_api$core = api.core) === null || _api$core === void 0 ? void 0 : _api$core.actions.execute(api === null || api === void 0 ? void 0 : (_api$primaryToolbar = api.primaryToolbar) === null || _api$primaryToolbar === void 0 ? void 0 : _api$primaryToolbar.commands.registerComponent({
53
+ name: 'highlight',
54
+ component: primaryToolbarComponent
55
+ }));
56
+ },
57
+ primaryToolbarComponent: !(api !== null && api !== void 0 && api.primaryToolbar) ? primaryToolbarComponent : undefined
51
58
  };
52
59
  };
@@ -1,11 +1,8 @@
1
1
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
2
2
  import { REMOVE_HIGHLIGHT_COLOR } from '@atlaskit/editor-common/ui-color';
3
3
  import { PluginKey } from '@atlaskit/editor-prosemirror/state';
4
+ import { getDisabledState } from './utils/disabled';
4
5
  export const highlightPluginKey = new PluginKey('highlight');
5
- const initialState = {
6
- activeColor: REMOVE_HIGHLIGHT_COLOR,
7
- disabled: false // TODO: Should probably be true, but we can tackle it once we tackle disabled state
8
- };
9
6
  export let HighlightPluginAction = /*#__PURE__*/function (HighlightPluginAction) {
10
7
  HighlightPluginAction[HighlightPluginAction["CHANGE_COLOR"] = 0] = "CHANGE_COLOR";
11
8
  return HighlightPluginAction;
@@ -16,10 +13,14 @@ export const createPlugin = ({
16
13
  return new SafePlugin({
17
14
  key: highlightPluginKey,
18
15
  state: {
19
- init: () => initialState,
20
- apply: (tr, pluginState) => {
16
+ init: () => ({
17
+ activeColor: REMOVE_HIGHLIGHT_COLOR,
18
+ disabled: true
19
+ }),
20
+ apply: (tr, pluginState, _oldState, newState) => {
21
21
  var _tr$getMeta;
22
22
  const action = (_tr$getMeta = tr.getMeta(highlightPluginKey)) === null || _tr$getMeta === void 0 ? void 0 : _tr$getMeta.type;
23
+ let nextState;
23
24
  switch (action) {
24
25
  case HighlightPluginAction.CHANGE_COLOR:
25
26
  const {
@@ -30,6 +31,13 @@ export const createPlugin = ({
30
31
  activeColor: color
31
32
  };
32
33
  default:
34
+ nextState = {
35
+ ...pluginState,
36
+ disabled: getDisabledState(newState)
37
+ };
38
+ if (pluginState && pluginState.disabled !== nextState.disabled) {
39
+ return nextState;
40
+ }
33
41
  return pluginState;
34
42
  }
35
43
  }
@@ -5,7 +5,7 @@ import { injectIntl } from 'react-intl-next';
5
5
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
6
6
  import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
7
7
  import { highlightMessages as messages } from '@atlaskit/editor-common/messages';
8
- import { expandIconWrapperStyle, separatorStyles } from '@atlaskit/editor-common/styles';
8
+ import { expandIconWrapperStyle } from '@atlaskit/editor-common/styles';
9
9
  import { ColorPalette, getSelectedRowAndColumnFromPalette, highlightColorPalette, REMOVE_HIGHLIGHT_COLOR } from '@atlaskit/editor-common/ui-color';
10
10
  import { ArrowKeyNavigationType, DropdownContainer as Dropdown, TOOLBAR_BUTTON, ToolbarButton } from '@atlaskit/editor-common/ui-menu';
11
11
  import { hexToEditorTextBackgroundPaletteColor } from '@atlaskit/editor-palette';
@@ -141,8 +141,6 @@ const ToolbarHighlightColor = ({
141
141
  palette: highlightColorPalette,
142
142
  hexToPaletteColor: hexToEditorTextBackgroundPaletteColor
143
143
  }
144
- }))), jsx("span", {
145
- css: separatorStyles
146
- }));
144
+ }))));
147
145
  };
148
146
  export const ToolbarHighlightColorWithIntl = injectIntl(ToolbarHighlightColor);
@@ -0,0 +1,26 @@
1
+ import { isMarkAllowedInRange, isMarkExcluded } from '@atlaskit/editor-common/mark';
2
+ import { GapCursorSelection } from '@atlaskit/editor-common/selection';
3
+ import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
4
+ export const getDisabledState = state => {
5
+ const {
6
+ backgroundColor
7
+ } = state.schema.marks;
8
+ const {
9
+ empty,
10
+ ranges,
11
+ $cursor
12
+ } = state.selection;
13
+ if (!backgroundColor) {
14
+ return true;
15
+ }
16
+ if (state.selection instanceof NodeSelection || state.selection instanceof GapCursorSelection) {
17
+ return true;
18
+ }
19
+ if (empty && !$cursor || isMarkAllowedInRange(state.doc, ranges, backgroundColor) === false) {
20
+ return true;
21
+ }
22
+ if (isMarkExcluded(backgroundColor, state.storedMarks || $cursor && $cursor.marks())) {
23
+ return true;
24
+ }
25
+ return false;
26
+ };
@@ -7,6 +7,23 @@ export var highlightPlugin = function highlightPlugin(_ref) {
7
7
  var _api$analytics;
8
8
  var api = _ref.api;
9
9
  var editorAnalyticsAPI = api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions;
10
+ var primaryToolbarComponent = function primaryToolbarComponent(_ref2) {
11
+ var popupsMountPoint = _ref2.popupsMountPoint,
12
+ popupsBoundariesElement = _ref2.popupsBoundariesElement,
13
+ popupsScrollableElement = _ref2.popupsScrollableElement,
14
+ disabled = _ref2.disabled,
15
+ isToolbarReducedSpacing = _ref2.isToolbarReducedSpacing,
16
+ dispatchAnalyticsEvent = _ref2.dispatchAnalyticsEvent;
17
+ return /*#__PURE__*/React.createElement(ToolbarHighlightColor, {
18
+ popupsMountPoint: popupsMountPoint,
19
+ popupsBoundariesElement: popupsBoundariesElement,
20
+ popupsScrollableElement: popupsScrollableElement,
21
+ disabled: disabled,
22
+ isToolbarReducedSpacing: isToolbarReducedSpacing,
23
+ dispatchAnalyticsEvent: dispatchAnalyticsEvent,
24
+ pluginInjectionApi: api
25
+ });
26
+ };
10
27
  return {
11
28
  name: 'highlight',
12
29
  commands: {
@@ -34,23 +51,13 @@ export var highlightPlugin = function highlightPlugin(_ref) {
34
51
  }
35
52
  return highlightPluginKey.getState(editorState);
36
53
  },
37
- primaryToolbarComponent: function primaryToolbarComponent(_ref2) {
38
- var editorView = _ref2.editorView,
39
- popupsMountPoint = _ref2.popupsMountPoint,
40
- popupsBoundariesElement = _ref2.popupsBoundariesElement,
41
- popupsScrollableElement = _ref2.popupsScrollableElement,
42
- disabled = _ref2.disabled,
43
- isToolbarReducedSpacing = _ref2.isToolbarReducedSpacing,
44
- dispatchAnalyticsEvent = _ref2.dispatchAnalyticsEvent;
45
- return /*#__PURE__*/React.createElement(ToolbarHighlightColor, {
46
- popupsMountPoint: popupsMountPoint,
47
- popupsBoundariesElement: popupsBoundariesElement,
48
- popupsScrollableElement: popupsScrollableElement,
49
- disabled: disabled,
50
- isToolbarReducedSpacing: isToolbarReducedSpacing,
51
- dispatchAnalyticsEvent: dispatchAnalyticsEvent,
52
- pluginInjectionApi: api
53
- });
54
- }
54
+ usePluginHook: function usePluginHook() {
55
+ var _api$core, _api$primaryToolbar;
56
+ api === null || api === void 0 || (_api$core = api.core) === null || _api$core === void 0 || _api$core.actions.execute(api === null || api === void 0 || (_api$primaryToolbar = api.primaryToolbar) === null || _api$primaryToolbar === void 0 ? void 0 : _api$primaryToolbar.commands.registerComponent({
57
+ name: 'highlight',
58
+ component: primaryToolbarComponent
59
+ }));
60
+ },
61
+ primaryToolbarComponent: !(api !== null && api !== void 0 && api.primaryToolbar) ? primaryToolbarComponent : undefined
55
62
  };
56
63
  };
@@ -4,11 +4,8 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
4
4
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
5
5
  import { REMOVE_HIGHLIGHT_COLOR } from '@atlaskit/editor-common/ui-color';
6
6
  import { PluginKey } from '@atlaskit/editor-prosemirror/state';
7
+ import { getDisabledState } from './utils/disabled';
7
8
  export var highlightPluginKey = new PluginKey('highlight');
8
- var initialState = {
9
- activeColor: REMOVE_HIGHLIGHT_COLOR,
10
- disabled: false // TODO: Should probably be true, but we can tackle it once we tackle disabled state
11
- };
12
9
  export var HighlightPluginAction = /*#__PURE__*/function (HighlightPluginAction) {
13
10
  HighlightPluginAction[HighlightPluginAction["CHANGE_COLOR"] = 0] = "CHANGE_COLOR";
14
11
  return HighlightPluginAction;
@@ -19,11 +16,15 @@ export var createPlugin = function createPlugin(_ref) {
19
16
  key: highlightPluginKey,
20
17
  state: {
21
18
  init: function init() {
22
- return initialState;
19
+ return {
20
+ activeColor: REMOVE_HIGHLIGHT_COLOR,
21
+ disabled: true
22
+ };
23
23
  },
24
- apply: function apply(tr, pluginState) {
24
+ apply: function apply(tr, pluginState, _oldState, newState) {
25
25
  var _tr$getMeta;
26
26
  var action = (_tr$getMeta = tr.getMeta(highlightPluginKey)) === null || _tr$getMeta === void 0 ? void 0 : _tr$getMeta.type;
27
+ var nextState;
27
28
  switch (action) {
28
29
  case HighlightPluginAction.CHANGE_COLOR:
29
30
  var _tr$getMeta2 = tr.getMeta(highlightPluginKey),
@@ -32,6 +33,12 @@ export var createPlugin = function createPlugin(_ref) {
32
33
  activeColor: color
33
34
  });
34
35
  default:
36
+ nextState = _objectSpread(_objectSpread({}, pluginState), {}, {
37
+ disabled: getDisabledState(newState)
38
+ });
39
+ if (pluginState && pluginState.disabled !== nextState.disabled) {
40
+ return nextState;
41
+ }
35
42
  return pluginState;
36
43
  }
37
44
  }
@@ -6,7 +6,7 @@ import { injectIntl } from 'react-intl-next';
6
6
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
7
7
  import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
8
8
  import { highlightMessages as messages } from '@atlaskit/editor-common/messages';
9
- import { expandIconWrapperStyle, separatorStyles } from '@atlaskit/editor-common/styles';
9
+ import { expandIconWrapperStyle } from '@atlaskit/editor-common/styles';
10
10
  import { ColorPalette, getSelectedRowAndColumnFromPalette, highlightColorPalette, REMOVE_HIGHLIGHT_COLOR } from '@atlaskit/editor-common/ui-color';
11
11
  import { ArrowKeyNavigationType, DropdownContainer as Dropdown, TOOLBAR_BUTTON, ToolbarButton } from '@atlaskit/editor-common/ui-menu';
12
12
  import { hexToEditorTextBackgroundPaletteColor } from '@atlaskit/editor-palette';
@@ -147,8 +147,6 @@ var ToolbarHighlightColor = function ToolbarHighlightColor(_ref) {
147
147
  palette: highlightColorPalette,
148
148
  hexToPaletteColor: hexToEditorTextBackgroundPaletteColor
149
149
  }
150
- }))), jsx("span", {
151
- css: separatorStyles
152
- }));
150
+ }))));
153
151
  };
154
152
  export var ToolbarHighlightColorWithIntl = injectIntl(ToolbarHighlightColor);
@@ -0,0 +1,23 @@
1
+ import { isMarkAllowedInRange, isMarkExcluded } from '@atlaskit/editor-common/mark';
2
+ import { GapCursorSelection } from '@atlaskit/editor-common/selection';
3
+ import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
4
+ export var getDisabledState = function getDisabledState(state) {
5
+ var backgroundColor = state.schema.marks.backgroundColor;
6
+ var _ref = state.selection,
7
+ empty = _ref.empty,
8
+ ranges = _ref.ranges,
9
+ $cursor = _ref.$cursor;
10
+ if (!backgroundColor) {
11
+ return true;
12
+ }
13
+ if (state.selection instanceof NodeSelection || state.selection instanceof GapCursorSelection) {
14
+ return true;
15
+ }
16
+ if (empty && !$cursor || isMarkAllowedInRange(state.doc, ranges, backgroundColor) === false) {
17
+ return true;
18
+ }
19
+ if (isMarkExcluded(backgroundColor, state.storedMarks || $cursor && $cursor.marks())) {
20
+ return true;
21
+ }
22
+ return false;
23
+ };
@@ -1,11 +1,13 @@
1
1
  import type { NextEditorPlugin, OptionalPlugin } from '@atlaskit/editor-common/types';
2
2
  import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics';
3
+ import type { PrimaryToolbarPlugin } from '@atlaskit/editor-plugin-primary-toolbar';
3
4
  import type { TextFormattingPlugin } from '@atlaskit/editor-plugin-text-formatting';
4
5
  import type { HighlightPluginState } from './pm-plugin';
5
6
  export type HighlightPlugin = NextEditorPlugin<'highlight', {
6
7
  dependencies: [
7
8
  OptionalPlugin<AnalyticsPlugin>,
8
- OptionalPlugin<TextFormattingPlugin>
9
+ OptionalPlugin<TextFormattingPlugin>,
10
+ OptionalPlugin<PrimaryToolbarPlugin>
9
11
  ];
10
12
  sharedState: HighlightPluginState | undefined;
11
13
  }>;
@@ -0,0 +1,2 @@
1
+ import { type EditorState } from '@atlaskit/editor-prosemirror/state';
2
+ export declare const getDisabledState: (state: EditorState) => boolean;
@@ -1,11 +1,13 @@
1
1
  import type { NextEditorPlugin, OptionalPlugin } from '@atlaskit/editor-common/types';
2
2
  import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics';
3
+ import type { PrimaryToolbarPlugin } from '@atlaskit/editor-plugin-primary-toolbar';
3
4
  import type { TextFormattingPlugin } from '@atlaskit/editor-plugin-text-formatting';
4
5
  import type { HighlightPluginState } from './pm-plugin';
5
6
  export type HighlightPlugin = NextEditorPlugin<'highlight', {
6
7
  dependencies: [
7
8
  OptionalPlugin<AnalyticsPlugin>,
8
- OptionalPlugin<TextFormattingPlugin>
9
+ OptionalPlugin<TextFormattingPlugin>,
10
+ OptionalPlugin<PrimaryToolbarPlugin>
9
11
  ];
10
12
  sharedState: HighlightPluginState | undefined;
11
13
  }>;
@@ -0,0 +1,2 @@
1
+ import { type EditorState } from '@atlaskit/editor-prosemirror/state';
2
+ export declare const getDisabledState: (state: EditorState) => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-highlight",
3
- "version": "1.4.1",
3
+ "version": "1.5.0",
4
4
  "description": "Highlight plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -38,15 +38,16 @@
38
38
  ".": "./src/index.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@atlaskit/adf-schema": "^36.8.0",
42
- "@atlaskit/editor-common": "^80.4.0",
41
+ "@atlaskit/adf-schema": "^36.10.7",
42
+ "@atlaskit/editor-common": "^81.0.0",
43
43
  "@atlaskit/editor-palette": "1.6.0",
44
44
  "@atlaskit/editor-plugin-analytics": "^1.2.0",
45
- "@atlaskit/editor-plugin-text-formatting": "^1.6.0",
45
+ "@atlaskit/editor-plugin-primary-toolbar": "^1.1.0",
46
+ "@atlaskit/editor-plugin-text-formatting": "^1.7.0",
46
47
  "@atlaskit/editor-prosemirror": "4.0.1",
47
48
  "@atlaskit/editor-shared-styles": "^2.11.0",
48
- "@atlaskit/icon": "^22.2.0",
49
- "@atlaskit/primitives": "^6.2.0",
49
+ "@atlaskit/icon": "^22.3.0",
50
+ "@atlaskit/primitives": "^6.3.0",
50
51
  "@babel/runtime": "^7.0.0",
51
52
  "@emotion/react": "^11.7.1"
52
53
  },
@@ -55,7 +56,7 @@
55
56
  "react-intl-next": "npm:react-intl@^5.18.1"
56
57
  },
57
58
  "devDependencies": {
58
- "@atlaskit/tokens": "^1.48.0",
59
+ "@atlaskit/tokens": "^1.49.0",
59
60
  "@atlassian/atlassian-frontend-prettier-config-1.0.0": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.0",
60
61
  "typescript": "~5.4.2"
61
62
  },