@atlaskit/editor-plugin-block-controls 9.1.0 → 9.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/cjs/blockControlsPlugin.js +1 -1
- package/dist/cjs/pm-plugins/decorations-drag-handle.js +1 -2
- package/dist/cjs/pm-plugins/decorations-quick-insert-button.js +1 -2
- package/dist/cjs/pm-plugins/handle-mouse-over.js +3 -3
- package/dist/cjs/pm-plugins/interaction-tracking/handle-mouse-move.js +2 -2
- package/dist/cjs/pm-plugins/interaction-tracking/pm-plugin.js +1 -1
- package/dist/cjs/pm-plugins/main.js +3 -4
- package/dist/cjs/ui/drag-handle.js +7 -2
- package/dist/cjs/ui/visibility-container.js +1 -1
- package/dist/es2019/blockControlsPlugin.js +1 -1
- package/dist/es2019/pm-plugins/decorations-drag-handle.js +1 -2
- package/dist/es2019/pm-plugins/decorations-quick-insert-button.js +1 -2
- package/dist/es2019/pm-plugins/handle-mouse-over.js +3 -3
- package/dist/es2019/pm-plugins/interaction-tracking/handle-mouse-move.js +2 -2
- package/dist/es2019/pm-plugins/interaction-tracking/pm-plugin.js +1 -1
- package/dist/es2019/pm-plugins/main.js +3 -4
- package/dist/es2019/ui/drag-handle.js +7 -2
- package/dist/es2019/ui/visibility-container.js +1 -1
- package/dist/esm/blockControlsPlugin.js +1 -1
- package/dist/esm/pm-plugins/decorations-drag-handle.js +1 -2
- package/dist/esm/pm-plugins/decorations-quick-insert-button.js +1 -2
- package/dist/esm/pm-plugins/handle-mouse-over.js +3 -3
- package/dist/esm/pm-plugins/interaction-tracking/handle-mouse-move.js +2 -2
- package/dist/esm/pm-plugins/interaction-tracking/pm-plugin.js +1 -1
- package/dist/esm/pm-plugins/main.js +3 -4
- package/dist/esm/ui/drag-handle.js +7 -2
- package/dist/esm/ui/visibility-container.js +1 -1
- package/package.json +7 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-block-controls
|
|
2
2
|
|
|
3
|
+
## 9.1.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`ef40f467da8e6`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/ef40f467da8e6) -
|
|
8
|
+
Fix drag handle not appearing in last layout column and remix button not showing correctly when
|
|
9
|
+
confluence_remix_button_right_side_block_fg is enabled. Layout column drag handles now always show
|
|
10
|
+
regardless of hover side, remix button correctly shows on right-side hover only, and layoutSection
|
|
11
|
+
is always remixable regardless of content.
|
|
12
|
+
- Updated dependencies
|
|
13
|
+
|
|
3
14
|
## 9.1.0
|
|
4
15
|
|
|
5
16
|
### Minor Changes
|
|
@@ -356,7 +356,7 @@ var blockControlsPlugin = exports.blockControlsPlugin = function blockControlsPl
|
|
|
356
356
|
if ((0, _experiments.editorExperiment)('platform_editor_controls', 'variant1')) {
|
|
357
357
|
var _interactionTrackingP2, _interactionTrackingP3, _interactionTrackingP4;
|
|
358
358
|
sharedState.isMouseOut = (_interactionTrackingP2 = (_interactionTrackingP3 = _pmPlugin.interactionTrackingPluginKey.getState(editorState)) === null || _interactionTrackingP3 === void 0 ? void 0 : _interactionTrackingP3.isMouseOut) !== null && _interactionTrackingP2 !== void 0 ? _interactionTrackingP2 : false;
|
|
359
|
-
// rightSideControlsEnabled is the single source of truth (
|
|
359
|
+
// rightSideControlsEnabled is the single source of truth (confluence_remix_button_right_side_block_fg from preset)
|
|
360
360
|
sharedState.rightSideControlsEnabled = rightSideControlsEnabled;
|
|
361
361
|
sharedState.hoverSide = rightSideControlsEnabled ? (_interactionTrackingP4 = _pmPlugin.interactionTrackingPluginKey.getState(editorState)) === null || _interactionTrackingP4 === void 0 ? void 0 : _interactionTrackingP4.hoverSide : undefined;
|
|
362
362
|
}
|
|
@@ -13,7 +13,6 @@ var _uuid = _interopRequireDefault(require("uuid"));
|
|
|
13
13
|
var _view = require("@atlaskit/editor-prosemirror/view");
|
|
14
14
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
15
15
|
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
16
|
-
var _expValEqualsNoExposure = require("@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure");
|
|
17
16
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
18
17
|
var _dragHandle = require("../ui/drag-handle");
|
|
19
18
|
var _decorationsCommon = require("./decorations-common");
|
|
@@ -86,7 +85,7 @@ var dragHandleDecoration = exports.dragHandleDecoration = function dragHandleDec
|
|
|
86
85
|
var element = document.createElement('span');
|
|
87
86
|
// inline decoration causes focus issues when refocusing Editor into first line
|
|
88
87
|
element.style.display = 'block';
|
|
89
|
-
if ((0,
|
|
88
|
+
if ((0, _platformFeatureFlags.fg)('confluence_remix_button_right_side_block_fg')) {
|
|
90
89
|
element.setAttribute('data-blocks-decorator-widget', 'true');
|
|
91
90
|
}
|
|
92
91
|
element.setAttribute('data-testid', 'block-ctrl-decorator-widget');
|
|
@@ -10,7 +10,6 @@ var _uuid = _interopRequireDefault(require("uuid"));
|
|
|
10
10
|
var _view = require("@atlaskit/editor-prosemirror/view");
|
|
11
11
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
12
12
|
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
13
|
-
var _expValEqualsNoExposure = require("@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure");
|
|
14
13
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
15
14
|
var _quickInsertButton = require("../ui/quick-insert-button");
|
|
16
15
|
var _marks = require("./utils/marks");
|
|
@@ -76,7 +75,7 @@ var quickInsertButtonDecoration = exports.quickInsertButtonDecoration = function
|
|
|
76
75
|
element.style.clear = 'unset';
|
|
77
76
|
element.contentEditable = 'false';
|
|
78
77
|
element.setAttribute('data-blocks-quick-insert-container', 'true');
|
|
79
|
-
if ((0,
|
|
78
|
+
if ((0, _platformFeatureFlags.fg)('confluence_remix_button_right_side_block_fg')) {
|
|
80
79
|
element.setAttribute('data-blocks-quick-insert-button', 'true');
|
|
81
80
|
}
|
|
82
81
|
element.setAttribute('data-testid', 'block-ctrl-quick-insert-button');
|
|
@@ -9,8 +9,8 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
|
|
|
9
9
|
var _memoizeOne = _interopRequireDefault(require("memoize-one"));
|
|
10
10
|
var _selection = require("@atlaskit/editor-common/selection");
|
|
11
11
|
var _toolbarFlagCheck = require("@atlaskit/editor-common/toolbar-flag-check");
|
|
12
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
12
13
|
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
13
|
-
var _expValEqualsNoExposure = require("@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure");
|
|
14
14
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
15
15
|
var _domAttrName = require("../ui/utils/dom-attr-name");
|
|
16
16
|
var _decorationsAnchor = require("./decorations-anchor");
|
|
@@ -63,7 +63,7 @@ var handleMouseOver = exports.handleMouseOver = function handleMouseOver(view, e
|
|
|
63
63
|
// We shouldn't be firing mouse over transactions when the editor is disabled,
|
|
64
64
|
// except in view mode when right-side controls are enabled (show controls on block hover)
|
|
65
65
|
var rightSideControlsEnabled = (_api$blockControls$sh = api === null || api === void 0 || (_api$blockControls2 = api.blockControls) === null || _api$blockControls2 === void 0 || (_api$blockControls2 = _api$blockControls2.sharedState.currentState()) === null || _api$blockControls2 === void 0 ? void 0 : _api$blockControls2.rightSideControlsEnabled) !== null && _api$blockControls$sh !== void 0 ? _api$blockControls$sh : false;
|
|
66
|
-
if (editorDisabled && (!isViewMode || !(rightSideControlsEnabled && (0,
|
|
66
|
+
if (editorDisabled && (!isViewMode || !(rightSideControlsEnabled && (0, _platformFeatureFlags.fg)('confluence_remix_button_right_side_block_fg')))) {
|
|
67
67
|
return false;
|
|
68
68
|
}
|
|
69
69
|
|
|
@@ -91,7 +91,7 @@ var handleMouseOver = exports.handleMouseOver = function handleMouseOver(view, e
|
|
|
91
91
|
|
|
92
92
|
// When hovering over the right-edge button (rendered in a portal outside the block), resolve the
|
|
93
93
|
// block from the container's anchor so activeNode stays set and the button remains visible.
|
|
94
|
-
if (!rootElement && rightSideControlsEnabled && (0,
|
|
94
|
+
if (!rootElement && rightSideControlsEnabled && (0, _platformFeatureFlags.fg)('confluence_remix_button_right_side_block_fg')) {
|
|
95
95
|
var rightEdgeContainer = target === null || target === void 0 ? void 0 : target.closest('[data-blocks-right-edge-button-container]');
|
|
96
96
|
if (rightEdgeContainer) {
|
|
97
97
|
var anchor = rightEdgeContainer.getAttribute('data-blocks-right-edge-button-anchor');
|
|
@@ -27,7 +27,7 @@ var RIGHT_EDGE_SELECTOR = '[data-blocks-right-edge-button-container]';
|
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* Process hover position and set left/right side. Only invoked when right-side controls are
|
|
30
|
-
* enabled (
|
|
30
|
+
* enabled (confluence_remix_button_right_side_block_fg); handleMouseMove returns early otherwise.
|
|
31
31
|
*/
|
|
32
32
|
var processHoverSide = function processHoverSide(view) {
|
|
33
33
|
var event = pendingByView.get(view);
|
|
@@ -88,7 +88,7 @@ var handleMouseMove = exports.handleMouseMove = function handleMouseMove(view, e
|
|
|
88
88
|
(0, _commands.stopEditing)(view);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
// Only track hover side when right-side controls are enabled (single source:
|
|
91
|
+
// Only track hover side when right-side controls are enabled (single source: confluence_remix_button_right_side_block_fg via config)
|
|
92
92
|
if (!rightSideControlsEnabled) {
|
|
93
93
|
return false;
|
|
94
94
|
}
|
|
@@ -72,7 +72,7 @@ var createInteractionTrackingPlugin = exports.createInteractionTrackingPlugin =
|
|
|
72
72
|
},
|
|
73
73
|
view: (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1') ? function (view) {
|
|
74
74
|
var editorContentArea = view.dom.closest('.ak-editor-content-area');
|
|
75
|
-
// rightSideControlsEnabled is the single source of truth (
|
|
75
|
+
// rightSideControlsEnabled is the single source of truth (confluence_remix_button_right_side_block_fg from preset)
|
|
76
76
|
|
|
77
77
|
var unbindMouseEnter;
|
|
78
78
|
var unbindMouseLeave;
|
|
@@ -23,7 +23,6 @@ var _element = require("@atlaskit/pragmatic-drag-and-drop-auto-scroll/element");
|
|
|
23
23
|
var _combine = require("@atlaskit/pragmatic-drag-and-drop/combine");
|
|
24
24
|
var _adapter = require("@atlaskit/pragmatic-drag-and-drop/element/adapter");
|
|
25
25
|
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
26
|
-
var _expValEqualsNoExposure = require("@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure");
|
|
27
26
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
28
27
|
var _domAttrName = require("../ui/utils/dom-attr-name");
|
|
29
28
|
var _decorationsAnchor = require("./decorations-anchor");
|
|
@@ -469,7 +468,7 @@ var _apply = exports.apply = function apply(api, formatMessage, tr, currentState
|
|
|
469
468
|
_iterator.f();
|
|
470
469
|
}
|
|
471
470
|
}
|
|
472
|
-
if (rightSideControlsEnabled && isViewMode && (0,
|
|
471
|
+
if (rightSideControlsEnabled && isViewMode && (0, _platformFeatureFlags.fg)('confluence_remix_button_right_side_block_fg')) {
|
|
473
472
|
var _iterator2 = _createForOfIteratorHelper(nodeDecorationRegistry),
|
|
474
473
|
_step2;
|
|
475
474
|
try {
|
|
@@ -651,7 +650,7 @@ var _apply = exports.apply = function apply(api, formatMessage, tr, currentState
|
|
|
651
650
|
} finally {
|
|
652
651
|
_iterator5.f();
|
|
653
652
|
}
|
|
654
|
-
} else if (isViewMode && rightSideControlsEnabled && (0,
|
|
653
|
+
} else if (isViewMode && rightSideControlsEnabled && (0, _platformFeatureFlags.fg)('confluence_remix_button_right_side_block_fg')) {
|
|
655
654
|
// Remove view-mode right-side decorations when no active node
|
|
656
655
|
var _iterator6 = _createForOfIteratorHelper(nodeDecorationRegistry),
|
|
657
656
|
_step6;
|
|
@@ -813,7 +812,7 @@ var createPlugin = exports.createPlugin = function createPlugin(api, getIntl, no
|
|
|
813
812
|
var isDisabled = api === null || api === void 0 || (_api$editorDisabled = api.editorDisabled) === null || _api$editorDisabled === void 0 || (_api$editorDisabled = _api$editorDisabled.sharedState.currentState()) === null || _api$editorDisabled === void 0 ? void 0 : _api$editorDisabled.editorDisabled;
|
|
814
813
|
if (isDisabled) {
|
|
815
814
|
var _api$editorViewMode2;
|
|
816
|
-
var remixRightSideEnabled = rightSideControlsEnabled && (0,
|
|
815
|
+
var remixRightSideEnabled = rightSideControlsEnabled && (0, _platformFeatureFlags.fg)('confluence_remix_button_right_side_block_fg');
|
|
817
816
|
// Hide decorations when disabled, except in view mode when right-side controls are enabled
|
|
818
817
|
if (!remixRightSideEnabled || (api === null || api === void 0 || (_api$editorViewMode2 = api.editorViewMode) === null || _api$editorViewMode2 === void 0 || (_api$editorViewMode2 = _api$editorViewMode2.sharedState.currentState()) === null || _api$editorViewMode2 === void 0 ? void 0 : _api$editorViewMode2.mode) !== 'view') {
|
|
819
818
|
return;
|
|
@@ -1094,7 +1094,7 @@ var DragHandle = exports.DragHandle = function DragHandle(_ref) {
|
|
|
1094
1094
|
onDrop: handleOnDrop,
|
|
1095
1095
|
disabled: dragHandleDisabled,
|
|
1096
1096
|
"data-editor-block-ctrl-drag-handle": true,
|
|
1097
|
-
"data-blocks-drag-handle": (0,
|
|
1097
|
+
"data-blocks-drag-handle": (0, _platformFeatureFlags.fg)('confluence_remix_button_right_side_block_fg') || undefined,
|
|
1098
1098
|
"data-testid": "block-ctrl-drag-handle",
|
|
1099
1099
|
"aria-label": dragHandleAriaLabel,
|
|
1100
1100
|
onBlur: (0, _experiments.editorExperiment)('platform_editor_block_menu', true) ? function () {
|
|
@@ -1195,9 +1195,14 @@ var DragHandleWithVisibility = exports.DragHandleWithVisibility = function DragH
|
|
|
1195
1195
|
rightSideControlsEnabled: (_states$blockControls2 = (_states$blockControls3 = states.blockControlsState) === null || _states$blockControls3 === void 0 ? void 0 : _states$blockControls3.rightSideControlsEnabled) !== null && _states$blockControls2 !== void 0 ? _states$blockControls2 : false
|
|
1196
1196
|
};
|
|
1197
1197
|
}).rightSideControlsEnabled;
|
|
1198
|
+
// Layout column drag handles sit at the top-centre of each column, not on a left/right edge.
|
|
1199
|
+
// Don't restrict by hoverSide for layout columns — the drag handle should always be visible
|
|
1200
|
+
// when hovering anywhere over the column, regardless of which side of the layoutSection the
|
|
1201
|
+
// column is on. (The right-side remix button is a separate node decoration and is unaffected.)
|
|
1202
|
+
var isLayoutColumn = nodeType === 'layoutColumn';
|
|
1198
1203
|
return (0, _react2.jsx)(_visibilityContainer.VisibilityContainer, {
|
|
1199
1204
|
api: api,
|
|
1200
|
-
controlSide: rightSideControlsEnabled ? 'left' : undefined
|
|
1205
|
+
controlSide: rightSideControlsEnabled && !isLayoutColumn ? 'left' : undefined
|
|
1201
1206
|
}, (0, _react2.jsx)(DragHandle, {
|
|
1202
1207
|
view: view,
|
|
1203
1208
|
api: api,
|
|
@@ -74,7 +74,7 @@ var VisibilityContainer = exports.VisibilityContainer = function VisibilityConta
|
|
|
74
74
|
userIntent = _useSharedPluginState.userIntent,
|
|
75
75
|
rightSideControlsEnabled = _useSharedPluginState.rightSideControlsEnabled;
|
|
76
76
|
var isViewMode = editorViewMode === 'view';
|
|
77
|
-
// rightSideControlsEnabled is the single source of truth (
|
|
77
|
+
// rightSideControlsEnabled is the single source of truth (confluence_remix_button_right_side_block_fg from preset)
|
|
78
78
|
var shouldRestrictBySide = rightSideControlsEnabled && controlSide !== undefined && !isViewMode;
|
|
79
79
|
// Only restrict by side when hoverSide is known (after mousemove). When undefined, show both
|
|
80
80
|
// controls so drag handle is visible on load and for keyboard-only users.
|
|
@@ -339,7 +339,7 @@ export const blockControlsPlugin = ({
|
|
|
339
339
|
if (editorExperiment('platform_editor_controls', 'variant1')) {
|
|
340
340
|
var _interactionTrackingP2, _interactionTrackingP3, _interactionTrackingP4;
|
|
341
341
|
sharedState.isMouseOut = (_interactionTrackingP2 = (_interactionTrackingP3 = interactionTrackingPluginKey.getState(editorState)) === null || _interactionTrackingP3 === void 0 ? void 0 : _interactionTrackingP3.isMouseOut) !== null && _interactionTrackingP2 !== void 0 ? _interactionTrackingP2 : false;
|
|
342
|
-
// rightSideControlsEnabled is the single source of truth (
|
|
342
|
+
// rightSideControlsEnabled is the single source of truth (confluence_remix_button_right_side_block_fg from preset)
|
|
343
343
|
sharedState.rightSideControlsEnabled = rightSideControlsEnabled;
|
|
344
344
|
sharedState.hoverSide = rightSideControlsEnabled ? (_interactionTrackingP4 = interactionTrackingPluginKey.getState(editorState)) === null || _interactionTrackingP4 === void 0 ? void 0 : _interactionTrackingP4.hoverSide : undefined;
|
|
345
345
|
}
|
|
@@ -6,7 +6,6 @@ import uuid from 'uuid';
|
|
|
6
6
|
import { Decoration } from '@atlaskit/editor-prosemirror/view';
|
|
7
7
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
8
8
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
9
|
-
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
10
9
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
11
10
|
import { DragHandle, DragHandleWithVisibility } from '../ui/drag-handle';
|
|
12
11
|
import { TYPE_HANDLE_DEC, TYPE_NODE_DEC, unmountDecorations } from './decorations-common';
|
|
@@ -77,7 +76,7 @@ export const dragHandleDecoration = ({
|
|
|
77
76
|
const element = document.createElement('span');
|
|
78
77
|
// inline decoration causes focus issues when refocusing Editor into first line
|
|
79
78
|
element.style.display = 'block';
|
|
80
|
-
if (
|
|
79
|
+
if (fg('confluence_remix_button_right_side_block_fg')) {
|
|
81
80
|
element.setAttribute('data-blocks-decorator-widget', 'true');
|
|
82
81
|
}
|
|
83
82
|
element.setAttribute('data-testid', 'block-ctrl-decorator-widget');
|
|
@@ -4,7 +4,6 @@ import uuid from 'uuid';
|
|
|
4
4
|
import { Decoration } from '@atlaskit/editor-prosemirror/view';
|
|
5
5
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
6
6
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
7
|
-
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
8
7
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
9
8
|
import { QuickInsertWithVisibility } from '../ui/quick-insert-button';
|
|
10
9
|
import { getActiveBlockMarks } from './utils/marks';
|
|
@@ -67,7 +66,7 @@ export const quickInsertButtonDecoration = ({
|
|
|
67
66
|
element.style.clear = 'unset';
|
|
68
67
|
element.contentEditable = 'false';
|
|
69
68
|
element.setAttribute('data-blocks-quick-insert-container', 'true');
|
|
70
|
-
if (
|
|
69
|
+
if (fg('confluence_remix_button_right_side_block_fg')) {
|
|
71
70
|
element.setAttribute('data-blocks-quick-insert-button', 'true');
|
|
72
71
|
}
|
|
73
72
|
element.setAttribute('data-testid', 'block-ctrl-quick-insert-button');
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import memoizeOne from 'memoize-one';
|
|
2
2
|
import { isMultiBlockSelection } from '@atlaskit/editor-common/selection';
|
|
3
3
|
import { areToolbarFlagsEnabled } from '@atlaskit/editor-common/toolbar-flag-check';
|
|
4
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
4
5
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
5
|
-
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
6
6
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
7
7
|
import { getAnchorAttrName, getTypeNameAttrName, getTypeNameFromDom, NODE_ANCHOR_ATTR_NAME } from '../ui/utils/dom-attr-name';
|
|
8
8
|
import { IGNORE_NODE_DESCENDANTS_ADVANCED_LAYOUT, IGNORE_NODES_NEXT } from './decorations-anchor';
|
|
@@ -55,7 +55,7 @@ export const handleMouseOver = (view, event, api) => {
|
|
|
55
55
|
// We shouldn't be firing mouse over transactions when the editor is disabled,
|
|
56
56
|
// except in view mode when right-side controls are enabled (show controls on block hover)
|
|
57
57
|
const rightSideControlsEnabled = (_api$blockControls$sh = api === null || api === void 0 ? void 0 : (_api$blockControls2 = api.blockControls) === null || _api$blockControls2 === void 0 ? void 0 : (_api$blockControls2$s = _api$blockControls2.sharedState.currentState()) === null || _api$blockControls2$s === void 0 ? void 0 : _api$blockControls2$s.rightSideControlsEnabled) !== null && _api$blockControls$sh !== void 0 ? _api$blockControls$sh : false;
|
|
58
|
-
if (editorDisabled && (!isViewMode || !(rightSideControlsEnabled &&
|
|
58
|
+
if (editorDisabled && (!isViewMode || !(rightSideControlsEnabled && fg('confluence_remix_button_right_side_block_fg')))) {
|
|
59
59
|
return false;
|
|
60
60
|
}
|
|
61
61
|
|
|
@@ -83,7 +83,7 @@ export const handleMouseOver = (view, event, api) => {
|
|
|
83
83
|
|
|
84
84
|
// When hovering over the right-edge button (rendered in a portal outside the block), resolve the
|
|
85
85
|
// block from the container's anchor so activeNode stays set and the button remains visible.
|
|
86
|
-
if (!rootElement && rightSideControlsEnabled &&
|
|
86
|
+
if (!rootElement && rightSideControlsEnabled && fg('confluence_remix_button_right_side_block_fg')) {
|
|
87
87
|
const rightEdgeContainer = target === null || target === void 0 ? void 0 : target.closest('[data-blocks-right-edge-button-container]');
|
|
88
88
|
if (rightEdgeContainer) {
|
|
89
89
|
const anchor = rightEdgeContainer.getAttribute('data-blocks-right-edge-button-anchor');
|
|
@@ -22,7 +22,7 @@ const RIGHT_EDGE_SELECTOR = '[data-blocks-right-edge-button-container]';
|
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* Process hover position and set left/right side. Only invoked when right-side controls are
|
|
25
|
-
* enabled (
|
|
25
|
+
* enabled (confluence_remix_button_right_side_block_fg); handleMouseMove returns early otherwise.
|
|
26
26
|
*/
|
|
27
27
|
const processHoverSide = view => {
|
|
28
28
|
const event = pendingByView.get(view);
|
|
@@ -83,7 +83,7 @@ export const handleMouseMove = (view, event, rightSideControlsEnabled = false) =
|
|
|
83
83
|
stopEditing(view);
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
// Only track hover side when right-side controls are enabled (single source:
|
|
86
|
+
// Only track hover side when right-side controls are enabled (single source: confluence_remix_button_right_side_block_fg via config)
|
|
87
87
|
if (!rightSideControlsEnabled) {
|
|
88
88
|
return false;
|
|
89
89
|
}
|
|
@@ -61,7 +61,7 @@ export const createInteractionTrackingPlugin = (rightSideControlsEnabled = false
|
|
|
61
61
|
},
|
|
62
62
|
view: editorExperiment('platform_editor_controls', 'variant1') ? view => {
|
|
63
63
|
const editorContentArea = view.dom.closest('.ak-editor-content-area');
|
|
64
|
-
// rightSideControlsEnabled is the single source of truth (
|
|
64
|
+
// rightSideControlsEnabled is the single source of truth (confluence_remix_button_right_side_block_fg from preset)
|
|
65
65
|
|
|
66
66
|
let unbindMouseEnter;
|
|
67
67
|
let unbindMouseLeave;
|
|
@@ -15,7 +15,6 @@ import { autoScrollForElements } from '@atlaskit/pragmatic-drag-and-drop-auto-sc
|
|
|
15
15
|
import { combine } from '@atlaskit/pragmatic-drag-and-drop/combine';
|
|
16
16
|
import { monitorForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';
|
|
17
17
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
18
|
-
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
19
18
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
20
19
|
import { getAnchorAttrName } from '../ui/utils/dom-attr-name';
|
|
21
20
|
import { findNodeDecs, nodeDecorations } from './decorations-anchor';
|
|
@@ -444,7 +443,7 @@ export const apply = (api, formatMessage, tr, currentState, newState, flags, nod
|
|
|
444
443
|
decorations = decorations.remove(old);
|
|
445
444
|
}
|
|
446
445
|
}
|
|
447
|
-
if (rightSideControlsEnabled && isViewMode &&
|
|
446
|
+
if (rightSideControlsEnabled && isViewMode && fg('confluence_remix_button_right_side_block_fg')) {
|
|
448
447
|
for (const factory of nodeDecorationRegistry) {
|
|
449
448
|
if (factory.showInViewMode) {
|
|
450
449
|
var _activeNode1, _activeNode10;
|
|
@@ -564,7 +563,7 @@ export const apply = (api, formatMessage, tr, currentState, newState, flags, nod
|
|
|
564
563
|
decorations = decorations.add(newState.doc, [dec]);
|
|
565
564
|
}
|
|
566
565
|
}
|
|
567
|
-
} else if (isViewMode && rightSideControlsEnabled &&
|
|
566
|
+
} else if (isViewMode && rightSideControlsEnabled && fg('confluence_remix_button_right_side_block_fg')) {
|
|
568
567
|
// Remove view-mode right-side decorations when no active node
|
|
569
568
|
for (const factory of nodeDecorationRegistry) {
|
|
570
569
|
if (factory.showInViewMode) {
|
|
@@ -710,7 +709,7 @@ export const createPlugin = (api, getIntl, nodeViewPortalProviderAPI, nodeDecora
|
|
|
710
709
|
const isDisabled = api === null || api === void 0 ? void 0 : (_api$editorDisabled = api.editorDisabled) === null || _api$editorDisabled === void 0 ? void 0 : (_api$editorDisabled$s = _api$editorDisabled.sharedState.currentState()) === null || _api$editorDisabled$s === void 0 ? void 0 : _api$editorDisabled$s.editorDisabled;
|
|
711
710
|
if (isDisabled) {
|
|
712
711
|
var _api$editorViewMode2, _api$editorViewMode2$;
|
|
713
|
-
const remixRightSideEnabled = rightSideControlsEnabled &&
|
|
712
|
+
const remixRightSideEnabled = rightSideControlsEnabled && fg('confluence_remix_button_right_side_block_fg');
|
|
714
713
|
// Hide decorations when disabled, except in view mode when right-side controls are enabled
|
|
715
714
|
if (!remixRightSideEnabled || (api === null || api === void 0 ? void 0 : (_api$editorViewMode2 = api.editorViewMode) === null || _api$editorViewMode2 === void 0 ? void 0 : (_api$editorViewMode2$ = _api$editorViewMode2.sharedState.currentState()) === null || _api$editorViewMode2$ === void 0 ? void 0 : _api$editorViewMode2$.mode) !== 'view') {
|
|
716
715
|
return;
|
|
@@ -1075,7 +1075,7 @@ export const DragHandle = ({
|
|
|
1075
1075
|
onDrop: handleOnDrop,
|
|
1076
1076
|
disabled: dragHandleDisabled,
|
|
1077
1077
|
"data-editor-block-ctrl-drag-handle": true,
|
|
1078
|
-
"data-blocks-drag-handle":
|
|
1078
|
+
"data-blocks-drag-handle": fg('confluence_remix_button_right_side_block_fg') || undefined,
|
|
1079
1079
|
"data-testid": "block-ctrl-drag-handle",
|
|
1080
1080
|
"aria-label": dragHandleAriaLabel,
|
|
1081
1081
|
onBlur: editorExperiment('platform_editor_block_menu', true) ? () => setIsFocused(false) : undefined
|
|
@@ -1167,9 +1167,14 @@ export const DragHandleWithVisibility = ({
|
|
|
1167
1167
|
rightSideControlsEnabled: (_states$blockControls2 = (_states$blockControls3 = states.blockControlsState) === null || _states$blockControls3 === void 0 ? void 0 : _states$blockControls3.rightSideControlsEnabled) !== null && _states$blockControls2 !== void 0 ? _states$blockControls2 : false
|
|
1168
1168
|
};
|
|
1169
1169
|
}).rightSideControlsEnabled;
|
|
1170
|
+
// Layout column drag handles sit at the top-centre of each column, not on a left/right edge.
|
|
1171
|
+
// Don't restrict by hoverSide for layout columns — the drag handle should always be visible
|
|
1172
|
+
// when hovering anywhere over the column, regardless of which side of the layoutSection the
|
|
1173
|
+
// column is on. (The right-side remix button is a separate node decoration and is unaffected.)
|
|
1174
|
+
const isLayoutColumn = nodeType === 'layoutColumn';
|
|
1170
1175
|
return jsx(VisibilityContainer, {
|
|
1171
1176
|
api: api,
|
|
1172
|
-
controlSide: rightSideControlsEnabled ? 'left' : undefined
|
|
1177
|
+
controlSide: rightSideControlsEnabled && !isLayoutColumn ? 'left' : undefined
|
|
1173
1178
|
}, jsx(DragHandle, {
|
|
1174
1179
|
view: view,
|
|
1175
1180
|
api: api,
|
|
@@ -65,7 +65,7 @@ export const VisibilityContainer = ({
|
|
|
65
65
|
};
|
|
66
66
|
});
|
|
67
67
|
const isViewMode = editorViewMode === 'view';
|
|
68
|
-
// rightSideControlsEnabled is the single source of truth (
|
|
68
|
+
// rightSideControlsEnabled is the single source of truth (confluence_remix_button_right_side_block_fg from preset)
|
|
69
69
|
const shouldRestrictBySide = rightSideControlsEnabled && controlSide !== undefined && !isViewMode;
|
|
70
70
|
// Only restrict by side when hoverSide is known (after mousemove). When undefined, show both
|
|
71
71
|
// controls so drag handle is visible on load and for keyboard-only users.
|
|
@@ -349,7 +349,7 @@ export var blockControlsPlugin = function blockControlsPlugin(_ref) {
|
|
|
349
349
|
if (editorExperiment('platform_editor_controls', 'variant1')) {
|
|
350
350
|
var _interactionTrackingP2, _interactionTrackingP3, _interactionTrackingP4;
|
|
351
351
|
sharedState.isMouseOut = (_interactionTrackingP2 = (_interactionTrackingP3 = interactionTrackingPluginKey.getState(editorState)) === null || _interactionTrackingP3 === void 0 ? void 0 : _interactionTrackingP3.isMouseOut) !== null && _interactionTrackingP2 !== void 0 ? _interactionTrackingP2 : false;
|
|
352
|
-
// rightSideControlsEnabled is the single source of truth (
|
|
352
|
+
// rightSideControlsEnabled is the single source of truth (confluence_remix_button_right_side_block_fg from preset)
|
|
353
353
|
sharedState.rightSideControlsEnabled = rightSideControlsEnabled;
|
|
354
354
|
sharedState.hoverSide = rightSideControlsEnabled ? (_interactionTrackingP4 = interactionTrackingPluginKey.getState(editorState)) === null || _interactionTrackingP4 === void 0 ? void 0 : _interactionTrackingP4.hoverSide : undefined;
|
|
355
355
|
}
|
|
@@ -7,7 +7,6 @@ import uuid from 'uuid';
|
|
|
7
7
|
import { Decoration } from '@atlaskit/editor-prosemirror/view';
|
|
8
8
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
9
9
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
10
|
-
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
11
10
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
12
11
|
import { DragHandle, DragHandleWithVisibility } from '../ui/drag-handle';
|
|
13
12
|
import { TYPE_HANDLE_DEC, TYPE_NODE_DEC, unmountDecorations } from './decorations-common';
|
|
@@ -78,7 +77,7 @@ export var dragHandleDecoration = function dragHandleDecoration(_ref) {
|
|
|
78
77
|
var element = document.createElement('span');
|
|
79
78
|
// inline decoration causes focus issues when refocusing Editor into first line
|
|
80
79
|
element.style.display = 'block';
|
|
81
|
-
if (
|
|
80
|
+
if (fg('confluence_remix_button_right_side_block_fg')) {
|
|
82
81
|
element.setAttribute('data-blocks-decorator-widget', 'true');
|
|
83
82
|
}
|
|
84
83
|
element.setAttribute('data-testid', 'block-ctrl-decorator-widget');
|
|
@@ -4,7 +4,6 @@ import uuid from 'uuid';
|
|
|
4
4
|
import { Decoration } from '@atlaskit/editor-prosemirror/view';
|
|
5
5
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
6
6
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
7
|
-
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
8
7
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
9
8
|
import { QuickInsertWithVisibility } from '../ui/quick-insert-button';
|
|
10
9
|
import { getActiveBlockMarks } from './utils/marks';
|
|
@@ -68,7 +67,7 @@ export var quickInsertButtonDecoration = function quickInsertButtonDecoration(_r
|
|
|
68
67
|
element.style.clear = 'unset';
|
|
69
68
|
element.contentEditable = 'false';
|
|
70
69
|
element.setAttribute('data-blocks-quick-insert-container', 'true');
|
|
71
|
-
if (
|
|
70
|
+
if (fg('confluence_remix_button_right_side_block_fg')) {
|
|
72
71
|
element.setAttribute('data-blocks-quick-insert-button', 'true');
|
|
73
72
|
}
|
|
74
73
|
element.setAttribute('data-testid', 'block-ctrl-quick-insert-button');
|
|
@@ -2,8 +2,8 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
|
2
2
|
import memoizeOne from 'memoize-one';
|
|
3
3
|
import { isMultiBlockSelection } from '@atlaskit/editor-common/selection';
|
|
4
4
|
import { areToolbarFlagsEnabled } from '@atlaskit/editor-common/toolbar-flag-check';
|
|
5
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
5
6
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
6
|
-
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
7
7
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
8
8
|
import { getAnchorAttrName, getTypeNameAttrName, getTypeNameFromDom, NODE_ANCHOR_ATTR_NAME } from '../ui/utils/dom-attr-name';
|
|
9
9
|
import { IGNORE_NODE_DESCENDANTS_ADVANCED_LAYOUT, IGNORE_NODES_NEXT } from './decorations-anchor';
|
|
@@ -56,7 +56,7 @@ export var handleMouseOver = function handleMouseOver(view, event, api) {
|
|
|
56
56
|
// We shouldn't be firing mouse over transactions when the editor is disabled,
|
|
57
57
|
// except in view mode when right-side controls are enabled (show controls on block hover)
|
|
58
58
|
var rightSideControlsEnabled = (_api$blockControls$sh = api === null || api === void 0 || (_api$blockControls2 = api.blockControls) === null || _api$blockControls2 === void 0 || (_api$blockControls2 = _api$blockControls2.sharedState.currentState()) === null || _api$blockControls2 === void 0 ? void 0 : _api$blockControls2.rightSideControlsEnabled) !== null && _api$blockControls$sh !== void 0 ? _api$blockControls$sh : false;
|
|
59
|
-
if (editorDisabled && (!isViewMode || !(rightSideControlsEnabled &&
|
|
59
|
+
if (editorDisabled && (!isViewMode || !(rightSideControlsEnabled && fg('confluence_remix_button_right_side_block_fg')))) {
|
|
60
60
|
return false;
|
|
61
61
|
}
|
|
62
62
|
|
|
@@ -84,7 +84,7 @@ export var handleMouseOver = function handleMouseOver(view, event, api) {
|
|
|
84
84
|
|
|
85
85
|
// When hovering over the right-edge button (rendered in a portal outside the block), resolve the
|
|
86
86
|
// block from the container's anchor so activeNode stays set and the button remains visible.
|
|
87
|
-
if (!rootElement && rightSideControlsEnabled &&
|
|
87
|
+
if (!rootElement && rightSideControlsEnabled && fg('confluence_remix_button_right_side_block_fg')) {
|
|
88
88
|
var rightEdgeContainer = target === null || target === void 0 ? void 0 : target.closest('[data-blocks-right-edge-button-container]');
|
|
89
89
|
if (rightEdgeContainer) {
|
|
90
90
|
var anchor = rightEdgeContainer.getAttribute('data-blocks-right-edge-button-anchor');
|
|
@@ -22,7 +22,7 @@ var RIGHT_EDGE_SELECTOR = '[data-blocks-right-edge-button-container]';
|
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* Process hover position and set left/right side. Only invoked when right-side controls are
|
|
25
|
-
* enabled (
|
|
25
|
+
* enabled (confluence_remix_button_right_side_block_fg); handleMouseMove returns early otherwise.
|
|
26
26
|
*/
|
|
27
27
|
var processHoverSide = function processHoverSide(view) {
|
|
28
28
|
var event = pendingByView.get(view);
|
|
@@ -83,7 +83,7 @@ export var handleMouseMove = function handleMouseMove(view, event) {
|
|
|
83
83
|
stopEditing(view);
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
// Only track hover side when right-side controls are enabled (single source:
|
|
86
|
+
// Only track hover side when right-side controls are enabled (single source: confluence_remix_button_right_side_block_fg via config)
|
|
87
87
|
if (!rightSideControlsEnabled) {
|
|
88
88
|
return false;
|
|
89
89
|
}
|
|
@@ -66,7 +66,7 @@ export var createInteractionTrackingPlugin = function createInteractionTrackingP
|
|
|
66
66
|
},
|
|
67
67
|
view: editorExperiment('platform_editor_controls', 'variant1') ? function (view) {
|
|
68
68
|
var editorContentArea = view.dom.closest('.ak-editor-content-area');
|
|
69
|
-
// rightSideControlsEnabled is the single source of truth (
|
|
69
|
+
// rightSideControlsEnabled is the single source of truth (confluence_remix_button_right_side_block_fg from preset)
|
|
70
70
|
|
|
71
71
|
var unbindMouseEnter;
|
|
72
72
|
var unbindMouseLeave;
|
|
@@ -21,7 +21,6 @@ import { autoScrollForElements } from '@atlaskit/pragmatic-drag-and-drop-auto-sc
|
|
|
21
21
|
import { combine } from '@atlaskit/pragmatic-drag-and-drop/combine';
|
|
22
22
|
import { monitorForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';
|
|
23
23
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
24
|
-
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
25
24
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
26
25
|
import { getAnchorAttrName } from '../ui/utils/dom-attr-name';
|
|
27
26
|
import { findNodeDecs, nodeDecorations } from './decorations-anchor';
|
|
@@ -462,7 +461,7 @@ var _apply = function apply(api, formatMessage, tr, currentState, newState, flag
|
|
|
462
461
|
_iterator.f();
|
|
463
462
|
}
|
|
464
463
|
}
|
|
465
|
-
if (rightSideControlsEnabled && isViewMode &&
|
|
464
|
+
if (rightSideControlsEnabled && isViewMode && fg('confluence_remix_button_right_side_block_fg')) {
|
|
466
465
|
var _iterator2 = _createForOfIteratorHelper(nodeDecorationRegistry),
|
|
467
466
|
_step2;
|
|
468
467
|
try {
|
|
@@ -644,7 +643,7 @@ var _apply = function apply(api, formatMessage, tr, currentState, newState, flag
|
|
|
644
643
|
} finally {
|
|
645
644
|
_iterator5.f();
|
|
646
645
|
}
|
|
647
|
-
} else if (isViewMode && rightSideControlsEnabled &&
|
|
646
|
+
} else if (isViewMode && rightSideControlsEnabled && fg('confluence_remix_button_right_side_block_fg')) {
|
|
648
647
|
// Remove view-mode right-side decorations when no active node
|
|
649
648
|
var _iterator6 = _createForOfIteratorHelper(nodeDecorationRegistry),
|
|
650
649
|
_step6;
|
|
@@ -807,7 +806,7 @@ export var createPlugin = function createPlugin(api, getIntl, nodeViewPortalProv
|
|
|
807
806
|
var isDisabled = api === null || api === void 0 || (_api$editorDisabled = api.editorDisabled) === null || _api$editorDisabled === void 0 || (_api$editorDisabled = _api$editorDisabled.sharedState.currentState()) === null || _api$editorDisabled === void 0 ? void 0 : _api$editorDisabled.editorDisabled;
|
|
808
807
|
if (isDisabled) {
|
|
809
808
|
var _api$editorViewMode2;
|
|
810
|
-
var remixRightSideEnabled = rightSideControlsEnabled &&
|
|
809
|
+
var remixRightSideEnabled = rightSideControlsEnabled && fg('confluence_remix_button_right_side_block_fg');
|
|
811
810
|
// Hide decorations when disabled, except in view mode when right-side controls are enabled
|
|
812
811
|
if (!remixRightSideEnabled || (api === null || api === void 0 || (_api$editorViewMode2 = api.editorViewMode) === null || _api$editorViewMode2 === void 0 || (_api$editorViewMode2 = _api$editorViewMode2.sharedState.currentState()) === null || _api$editorViewMode2 === void 0 ? void 0 : _api$editorViewMode2.mode) !== 'view') {
|
|
813
812
|
return;
|
|
@@ -1090,7 +1090,7 @@ export var DragHandle = function DragHandle(_ref) {
|
|
|
1090
1090
|
onDrop: handleOnDrop,
|
|
1091
1091
|
disabled: dragHandleDisabled,
|
|
1092
1092
|
"data-editor-block-ctrl-drag-handle": true,
|
|
1093
|
-
"data-blocks-drag-handle":
|
|
1093
|
+
"data-blocks-drag-handle": fg('confluence_remix_button_right_side_block_fg') || undefined,
|
|
1094
1094
|
"data-testid": "block-ctrl-drag-handle",
|
|
1095
1095
|
"aria-label": dragHandleAriaLabel,
|
|
1096
1096
|
onBlur: editorExperiment('platform_editor_block_menu', true) ? function () {
|
|
@@ -1191,9 +1191,14 @@ export var DragHandleWithVisibility = function DragHandleWithVisibility(_ref0) {
|
|
|
1191
1191
|
rightSideControlsEnabled: (_states$blockControls2 = (_states$blockControls3 = states.blockControlsState) === null || _states$blockControls3 === void 0 ? void 0 : _states$blockControls3.rightSideControlsEnabled) !== null && _states$blockControls2 !== void 0 ? _states$blockControls2 : false
|
|
1192
1192
|
};
|
|
1193
1193
|
}).rightSideControlsEnabled;
|
|
1194
|
+
// Layout column drag handles sit at the top-centre of each column, not on a left/right edge.
|
|
1195
|
+
// Don't restrict by hoverSide for layout columns — the drag handle should always be visible
|
|
1196
|
+
// when hovering anywhere over the column, regardless of which side of the layoutSection the
|
|
1197
|
+
// column is on. (The right-side remix button is a separate node decoration and is unaffected.)
|
|
1198
|
+
var isLayoutColumn = nodeType === 'layoutColumn';
|
|
1194
1199
|
return jsx(VisibilityContainer, {
|
|
1195
1200
|
api: api,
|
|
1196
|
-
controlSide: rightSideControlsEnabled ? 'left' : undefined
|
|
1201
|
+
controlSide: rightSideControlsEnabled && !isLayoutColumn ? 'left' : undefined
|
|
1197
1202
|
}, jsx(DragHandle, {
|
|
1198
1203
|
view: view,
|
|
1199
1204
|
api: api,
|
|
@@ -63,7 +63,7 @@ export var VisibilityContainer = function VisibilityContainer(_ref) {
|
|
|
63
63
|
userIntent = _useSharedPluginState.userIntent,
|
|
64
64
|
rightSideControlsEnabled = _useSharedPluginState.rightSideControlsEnabled;
|
|
65
65
|
var isViewMode = editorViewMode === 'view';
|
|
66
|
-
// rightSideControlsEnabled is the single source of truth (
|
|
66
|
+
// rightSideControlsEnabled is the single source of truth (confluence_remix_button_right_side_block_fg from preset)
|
|
67
67
|
var shouldRestrictBySide = rightSideControlsEnabled && controlSide !== undefined && !isViewMode;
|
|
68
68
|
// Only restrict by side when hoverSide is known (after mousemove). When undefined, show both
|
|
69
69
|
// controls so drag handle is visible on load and for keyboard-only users.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-block-controls",
|
|
3
|
-
"version": "9.1.
|
|
3
|
+
"version": "9.1.1",
|
|
4
4
|
"description": "Block controls plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@atlaskit/editor-shared-styles": "^3.10.0",
|
|
49
49
|
"@atlaskit/editor-tables": "^2.9.0",
|
|
50
50
|
"@atlaskit/icon": "^34.0.0",
|
|
51
|
-
"@atlaskit/icon-lab": "^6.
|
|
51
|
+
"@atlaskit/icon-lab": "^6.3.0",
|
|
52
52
|
"@atlaskit/link": "^3.3.0",
|
|
53
53
|
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
54
54
|
"@atlaskit/pragmatic-drag-and-drop": "^1.7.0",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"@atlaskit/pragmatic-drag-and-drop-react-drop-indicator": "^3.2.0",
|
|
57
57
|
"@atlaskit/primitives": "^18.1.0",
|
|
58
58
|
"@atlaskit/theme": "^22.0.0",
|
|
59
|
-
"@atlaskit/tmp-editor-statsig": "^54.
|
|
59
|
+
"@atlaskit/tmp-editor-statsig": "^54.3.0",
|
|
60
60
|
"@atlaskit/tokens": "^11.4.0",
|
|
61
61
|
"@atlaskit/tooltip": "^21.1.0",
|
|
62
62
|
"@babel/runtime": "^7.0.0",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"uuid": "^3.1.0"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
|
-
"@atlaskit/editor-common": "^112.
|
|
70
|
+
"@atlaskit/editor-common": "^112.18.0",
|
|
71
71
|
"react": "^18.2.0",
|
|
72
72
|
"react-dom": "^18.2.0",
|
|
73
73
|
"react-intl-next": "npm:react-intl@^5.18.1"
|
|
@@ -149,6 +149,9 @@
|
|
|
149
149
|
},
|
|
150
150
|
"platform_editor_native_anchor_patch_2": {
|
|
151
151
|
"type": "boolean"
|
|
152
|
+
},
|
|
153
|
+
"confluence_remix_button_right_side_block_fg": {
|
|
154
|
+
"type": "boolean"
|
|
152
155
|
}
|
|
153
156
|
}
|
|
154
157
|
}
|