@atlaskit/editor-core 219.4.1 → 219.5.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 +32 -0
- package/dist/cjs/ui/Appearance/FullPage/FullPage.js +11 -5
- package/dist/cjs/ui/Appearance/FullPage/FullPageToolbarNext.js +14 -50
- package/dist/cjs/ui/EditorContentContainer/EditorContentContainer-compiled.compiled.css +198 -1
- package/dist/cjs/ui/EditorContentContainer/EditorContentContainer-compiled.js +19 -14
- package/dist/cjs/version-wrapper.js +1 -1
- package/dist/es2019/ui/Appearance/FullPage/FullPage.js +11 -5
- package/dist/es2019/ui/Appearance/FullPage/FullPageToolbarNext.js +12 -47
- package/dist/es2019/ui/EditorContentContainer/EditorContentContainer-compiled.compiled.css +198 -1
- package/dist/es2019/ui/EditorContentContainer/EditorContentContainer-compiled.js +21 -16
- package/dist/es2019/version-wrapper.js +1 -1
- package/dist/esm/ui/Appearance/FullPage/FullPage.js +11 -5
- package/dist/esm/ui/Appearance/FullPage/FullPageToolbarNext.js +14 -50
- package/dist/esm/ui/EditorContentContainer/EditorContentContainer-compiled.compiled.css +198 -1
- package/dist/esm/ui/EditorContentContainer/EditorContentContainer-compiled.js +21 -16
- package/dist/esm/version-wrapper.js +1 -1
- package/package.json +11 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# @atlaskit/editor-core
|
|
2
2
|
|
|
3
|
+
## 219.5.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`8db6f0336d199`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8db6f0336d199) -
|
|
8
|
+
Cleans up experiment platform_editor_toolbar_two_stage_hydration
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
|
|
11
|
+
## 219.5.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- [`5184c3aa86e89`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/5184c3aa86e89) -
|
|
16
|
+
Pin the primary toolbar to the top while in Markdown Mode source or preview view, where the
|
|
17
|
+
floating toolbar would be useless (no PM selection to anchor to). Behind the new
|
|
18
|
+
`platform_editor_toolbar_mode_override` feature gate.
|
|
19
|
+
- `editor-plugin-toolbar`: adds `commands.setContextualFormattingModeOverride` and a
|
|
20
|
+
`contextualFormattingModeOverride` field on shared state. Any plugin can compose the command
|
|
21
|
+
onto its own transaction to push a runtime override.
|
|
22
|
+
- `editor-plugin-markdown-mode`: pushes the override on `setView` and on initial mount; uses the
|
|
23
|
+
current view to short-circuit `useIsToolbarDockedToTop` so the in-toolbar toggle renders in the
|
|
24
|
+
correct slot.
|
|
25
|
+
- `editor-plugin-selection-toolbar`: `PinButton` hides when the override forces `'always-pinned'`
|
|
26
|
+
(the toggle is meaningless in that state).
|
|
27
|
+
- `editor-core` (`FullPage.tsx`, `FullPageToolbarNext.tsx`): the primary-toolbar mount gate
|
|
28
|
+
consults the runtime override so the toolbar still mounts when the override is
|
|
29
|
+
`'always-pinned'`, even if the user's docking preference is `'none'`.
|
|
30
|
+
|
|
31
|
+
### Patch Changes
|
|
32
|
+
|
|
33
|
+
- Updated dependencies
|
|
34
|
+
|
|
3
35
|
## 219.4.1
|
|
4
36
|
|
|
5
37
|
### Patch Changes
|
|
@@ -80,14 +80,20 @@ var FullPageEditor = exports.FullPageEditor = function FullPageEditor(props) {
|
|
|
80
80
|
var scrollContentContainerRef = (0, _react.useRef)(null);
|
|
81
81
|
var showKeyline = useShowKeyline(scrollContentContainerRef);
|
|
82
82
|
var editorAPI = props.editorAPI;
|
|
83
|
-
var state = (0, _hooks.useSharedPluginStateWithSelector)(editorAPI, ['primaryToolbar', 'interaction', 'editorViewMode'], function (states) {
|
|
84
|
-
var _states$primaryToolba, _states$interactionSt, _states$editorViewMod;
|
|
83
|
+
var state = (0, _hooks.useSharedPluginStateWithSelector)(editorAPI, ['primaryToolbar', 'interaction', 'editorViewMode', 'toolbar'], function (states) {
|
|
84
|
+
var _states$primaryToolba, _states$interactionSt, _states$editorViewMod, _states$toolbarState;
|
|
85
85
|
return {
|
|
86
86
|
primaryToolbarComponents: (_states$primaryToolba = states.primaryToolbarState) === null || _states$primaryToolba === void 0 ? void 0 : _states$primaryToolba.components,
|
|
87
87
|
interactionState: (_states$interactionSt = states.interactionState) === null || _states$interactionSt === void 0 ? void 0 : _states$interactionSt.interactionState,
|
|
88
|
-
editorViewMode: (_states$editorViewMod = states.editorViewModeState) === null || _states$editorViewMod === void 0 ? void 0 : _states$editorViewMod.mode
|
|
88
|
+
editorViewMode: (_states$editorViewMod = states.editorViewModeState) === null || _states$editorViewMod === void 0 ? void 0 : _states$editorViewMod.mode,
|
|
89
|
+
contextualFormattingModeOverride: (_states$toolbarState = states.toolbarState) === null || _states$toolbarState === void 0 ? void 0 : _states$toolbarState.contextualFormattingModeOverride
|
|
89
90
|
};
|
|
90
91
|
});
|
|
92
|
+
// Markdown Mode forces `'always-pinned'` while in source / preview view
|
|
93
|
+
// (no PM selection to anchor a floating toolbar to). The user's docking
|
|
94
|
+
// pref alone is not enough to decide whether to mount the primary toolbar
|
|
95
|
+
// in that case — the override has to short-circuit the hide gate below.
|
|
96
|
+
var forcePrimaryToolbarPinned = state.contextualFormattingModeOverride === 'always-pinned' && (0, _platformFeatureFlags.fg)('platform_editor_toolbar_mode_override');
|
|
91
97
|
var interactionState = state.interactionState;
|
|
92
98
|
var primaryToolbarState = (0, _getPrimaryToolbarComponents.getPrimaryToolbarComponents)(editorAPI, state.primaryToolbarComponents);
|
|
93
99
|
var hasHadInteraction = interactionState !== 'hasNotHadInteraction';
|
|
@@ -130,14 +136,14 @@ var FullPageEditor = exports.FullPageEditor = function FullPageEditor(props) {
|
|
|
130
136
|
})) {
|
|
131
137
|
if ((0, _platformFeatureFlags.fg)('platform_editor_use_preferences_plugin')) {
|
|
132
138
|
// need to check if the toolbarDockingPosition is set to 'none' or 'top'
|
|
133
|
-
if (toolbarDockingPosition === 'none') {
|
|
139
|
+
if (toolbarDockingPosition === 'none' && !forcePrimaryToolbarPinned) {
|
|
134
140
|
primaryToolbarComponents = [];
|
|
135
141
|
if (!hasCustomComponents(customPrimaryToolbarComponents)) {
|
|
136
142
|
isEditorToolbarHidden = true;
|
|
137
143
|
}
|
|
138
144
|
}
|
|
139
145
|
} else {
|
|
140
|
-
if (toolbarDocking === 'none') {
|
|
146
|
+
if (toolbarDocking === 'none' && !forcePrimaryToolbarPinned) {
|
|
141
147
|
primaryToolbarComponents = [];
|
|
142
148
|
if (!hasCustomComponents(customPrimaryToolbarComponents)) {
|
|
143
149
|
isEditorToolbarHidden = true;
|
|
@@ -13,8 +13,10 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
var _reactIntl = require("react-intl");
|
|
14
14
|
var _contextPanel = require("@atlaskit/editor-common/context-panel");
|
|
15
15
|
var _coreUtils = require("@atlaskit/editor-common/core-utils");
|
|
16
|
+
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
16
17
|
var _toolbar = require("@atlaskit/editor-common/toolbar");
|
|
17
18
|
var _uiMenu = require("@atlaskit/editor-common/ui-menu");
|
|
19
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
18
20
|
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
19
21
|
var _toolbar2 = require("../../../utils/toolbar");
|
|
20
22
|
var _ExcludeFromHydration = _interopRequireDefault(require("../../ExcludeFromHydration"));
|
|
@@ -59,17 +61,6 @@ var SecondChildWrapper = function SecondChildWrapper(_ref3) {
|
|
|
59
61
|
className: (0, _runtime.ax)([styles.secondChildWrapperOneLine])
|
|
60
62
|
}, children);
|
|
61
63
|
};
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Placeholder component that reserves the toolbar's space during hydration
|
|
65
|
-
* to prevent layout shift when the actual toolbar renders.
|
|
66
|
-
*/
|
|
67
|
-
var ToolbarPlaceholder = function ToolbarPlaceholder() {
|
|
68
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
69
|
-
"data-testid": "ak-editor-main-toolbar-placeholder",
|
|
70
|
-
className: (0, _runtime.ax)([styles.toolbarPlaceholder])
|
|
71
|
-
});
|
|
72
|
-
};
|
|
73
64
|
var shouldShowToolbarContainer = function shouldShowToolbarContainer(toolbar, customPrimaryToolbarComponents) {
|
|
74
65
|
return !!toolbar || !!customPrimaryToolbarComponents;
|
|
75
66
|
};
|
|
@@ -84,7 +75,12 @@ var FullPageToolbarNext = exports.FullPageToolbarNext = function FullPageToolbar
|
|
|
84
75
|
customPrimaryToolbarComponents = _ref4.customPrimaryToolbarComponents,
|
|
85
76
|
disabled = _ref4.disabled;
|
|
86
77
|
var components = editorAPI === null || editorAPI === void 0 || (_editorAPI$toolbar = editorAPI.toolbar) === null || _editorAPI$toolbar === void 0 ? void 0 : _editorAPI$toolbar.actions.getComponents();
|
|
87
|
-
var
|
|
78
|
+
var runtimeOverride = (0, _hooks.useSharedPluginStateWithSelector)(editorAPI, ['toolbar'], function (states) {
|
|
79
|
+
var _states$toolbarState;
|
|
80
|
+
return (_states$toolbarState = states.toolbarState) === null || _states$toolbarState === void 0 ? void 0 : _states$toolbarState.contextualFormattingModeOverride;
|
|
81
|
+
});
|
|
82
|
+
var effectiveRuntimeOverride = runtimeOverride !== undefined && (0, _platformFeatureFlags.fg)('platform_editor_toolbar_mode_override') ? runtimeOverride : undefined;
|
|
83
|
+
var contextualFormattingEnabled = effectiveRuntimeOverride !== null && effectiveRuntimeOverride !== void 0 ? effectiveRuntimeOverride : editorAPI === null || editorAPI === void 0 || (_editorAPI$toolbar2 = editorAPI.toolbar) === null || _editorAPI$toolbar2 === void 0 ? void 0 : _editorAPI$toolbar2.actions.contextualFormattingMode();
|
|
88
84
|
var intl = (0, _reactIntl.useIntl)();
|
|
89
85
|
var toolbar = components === null || components === void 0 ? void 0 : components.find(function (component) {
|
|
90
86
|
return component.key === _toolbar.TOOLBARS.PRIMARY_TOOLBAR;
|
|
@@ -118,41 +114,9 @@ var FullPageToolbarNext = exports.FullPageToolbarNext = function FullPageToolbar
|
|
|
118
114
|
if (!shouldShowToolbarContainer(toolbar, customPrimaryToolbarComponents)) {
|
|
119
115
|
return /*#__PURE__*/_react.default.createElement(ToolbarPortal, null, null);
|
|
120
116
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
return /*#__PURE__*/_react.default.createElement(_uiMenu.ToolbarArrowKeyNavigationProvider, {
|
|
125
|
-
editorView: editorView,
|
|
126
|
-
childComponentSelector: "[data-testid='ak-editor-main-toolbar']",
|
|
127
|
-
isShortcutToFocusToolbar: isShortcutToFocusToolbar,
|
|
128
|
-
handleEscape: handleEscape,
|
|
129
|
-
intl: intl
|
|
130
|
-
}, /*#__PURE__*/_react.default.createElement(ToolbarPortal, null, /*#__PURE__*/_react.default.createElement(MainToolbarWrapper, {
|
|
131
|
-
testId: "ak-editor-main-toolbar",
|
|
132
|
-
showKeyline: showKeyline || ContextPanelWidth > 0
|
|
133
|
-
}, beforeIcon && /*#__PURE__*/_react.default.createElement("div", {
|
|
134
|
-
className: (0, _runtime.ax)([styles.mainToolbarIconBefore, styles.mainToolbarIconBeforeNew])
|
|
135
|
-
}, beforeIcon), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(FirstChildWrapper, null, /*#__PURE__*/_react.default.createElement(_ExcludeFromHydration.default, null, primaryToolbarDockingConfigEnabled && components && (0, _toolbar2.isToolbar)(toolbar) && editorView && !(0, _coreUtils.isSSR)() && /*#__PURE__*/_react.default.createElement(_Toolbar.ToolbarNext, {
|
|
136
|
-
toolbar: toolbar,
|
|
137
|
-
components: components,
|
|
138
|
-
editorView: editorView,
|
|
139
|
-
editorAPI: editorAPI,
|
|
140
|
-
popupsMountPoint: mountPoint,
|
|
141
|
-
editorAppearance: "full-page",
|
|
142
|
-
isDisabled: disabled
|
|
143
|
-
}))), /*#__PURE__*/_react.default.createElement(SecondChildWrapper, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
144
|
-
className: (0, _runtime.ax)([styles.customToolbarWrapperStyle])
|
|
145
|
-
}, !!customPrimaryToolbarComponents && 'before' in customPrimaryToolbarComponents && /*#__PURE__*/_react.default.createElement("div", {
|
|
146
|
-
"data-testid": 'before-primary-toolbar-components-plugin',
|
|
147
|
-
className: (0, _runtime.ax)([styles.beforePrimaryToolbarComponents])
|
|
148
|
-
}, customPrimaryToolbarComponents.before), !!customPrimaryToolbarComponents && 'after' in customPrimaryToolbarComponents ? customPrimaryToolbarComponents.after : customPrimaryToolbarComponents)), /*#__PURE__*/_react.default.createElement(_ToolbarPortal.ToolbarPortalMountPoint, null)))));
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
return /*#__PURE__*/_react.default.createElement(_contextPanel.ContextPanelConsumer, null, function (_ref7) {
|
|
152
|
-
var ContextPanelWidth = _ref7.width;
|
|
153
|
-
return /*#__PURE__*/_react.default.createElement(_ExcludeFromHydration.default, {
|
|
154
|
-
fallback: /*#__PURE__*/_react.default.createElement(ToolbarPlaceholder, null)
|
|
155
|
-
}, /*#__PURE__*/_react.default.createElement(_uiMenu.ToolbarArrowKeyNavigationProvider, {
|
|
117
|
+
return /*#__PURE__*/_react.default.createElement(_contextPanel.ContextPanelConsumer, null, function (_ref6) {
|
|
118
|
+
var ContextPanelWidth = _ref6.width;
|
|
119
|
+
return /*#__PURE__*/_react.default.createElement(_uiMenu.ToolbarArrowKeyNavigationProvider, {
|
|
156
120
|
editorView: editorView,
|
|
157
121
|
childComponentSelector: "[data-testid='ak-editor-main-toolbar']",
|
|
158
122
|
isShortcutToFocusToolbar: isShortcutToFocusToolbar,
|
|
@@ -163,7 +127,7 @@ var FullPageToolbarNext = exports.FullPageToolbarNext = function FullPageToolbar
|
|
|
163
127
|
showKeyline: showKeyline || ContextPanelWidth > 0
|
|
164
128
|
}, beforeIcon && /*#__PURE__*/_react.default.createElement("div", {
|
|
165
129
|
className: (0, _runtime.ax)([styles.mainToolbarIconBefore, styles.mainToolbarIconBeforeNew])
|
|
166
|
-
}, beforeIcon), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(FirstChildWrapper, null, primaryToolbarDockingConfigEnabled && components && (0, _toolbar2.isToolbar)(toolbar) && editorView && !(0, _coreUtils.isSSR)() && /*#__PURE__*/_react.default.createElement(_Toolbar.ToolbarNext, {
|
|
130
|
+
}, beforeIcon), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(FirstChildWrapper, null, /*#__PURE__*/_react.default.createElement(_ExcludeFromHydration.default, null, primaryToolbarDockingConfigEnabled && components && (0, _toolbar2.isToolbar)(toolbar) && editorView && !(0, _coreUtils.isSSR)() && /*#__PURE__*/_react.default.createElement(_Toolbar.ToolbarNext, {
|
|
167
131
|
toolbar: toolbar,
|
|
168
132
|
components: components,
|
|
169
133
|
editorView: editorView,
|
|
@@ -171,11 +135,11 @@ var FullPageToolbarNext = exports.FullPageToolbarNext = function FullPageToolbar
|
|
|
171
135
|
popupsMountPoint: mountPoint,
|
|
172
136
|
editorAppearance: "full-page",
|
|
173
137
|
isDisabled: disabled
|
|
174
|
-
})), /*#__PURE__*/_react.default.createElement(SecondChildWrapper, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
138
|
+
}))), /*#__PURE__*/_react.default.createElement(SecondChildWrapper, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
175
139
|
className: (0, _runtime.ax)([styles.customToolbarWrapperStyle])
|
|
176
140
|
}, !!customPrimaryToolbarComponents && 'before' in customPrimaryToolbarComponents && /*#__PURE__*/_react.default.createElement("div", {
|
|
177
141
|
"data-testid": 'before-primary-toolbar-components-plugin',
|
|
178
142
|
className: (0, _runtime.ax)([styles.beforePrimaryToolbarComponents])
|
|
179
|
-
}, customPrimaryToolbarComponents.before), !!customPrimaryToolbarComponents && 'after' in customPrimaryToolbarComponents ? customPrimaryToolbarComponents.after : customPrimaryToolbarComponents)), /*#__PURE__*/_react.default.createElement(_ToolbarPortal.ToolbarPortalMountPoint, null)))))
|
|
143
|
+
}, customPrimaryToolbarComponents.before), !!customPrimaryToolbarComponents && 'after' in customPrimaryToolbarComponents ? customPrimaryToolbarComponents.after : customPrimaryToolbarComponents)), /*#__PURE__*/_react.default.createElement(_ToolbarPortal.ToolbarPortalMountPoint, null)))));
|
|
180
144
|
});
|
|
181
145
|
};
|