@atlaskit/editor-core 197.11.1 → 197.13.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 (61) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/cjs/composable-editor/editor-internal.js +19 -4
  3. package/dist/cjs/composable-editor/hooks/useProviders.js +2 -3
  4. package/dist/cjs/create-editor/ReactEditorView.js +25 -0
  5. package/dist/cjs/editor-appearances/FullPageEditor.js +2 -1
  6. package/dist/cjs/editor-appearances/FullWidthEditor.js +1 -0
  7. package/dist/cjs/presets/universal.js +1 -4
  8. package/dist/cjs/ui/Appearance/Chromeless.js +7 -3
  9. package/dist/cjs/ui/Appearance/Comment/Comment.js +5 -3
  10. package/dist/cjs/ui/Appearance/FullPage/FullPage.js +2 -1
  11. package/dist/cjs/ui/Appearance/FullPage/FullPageContentArea.js +2 -1
  12. package/dist/cjs/ui/ContentStyles/index.js +2 -3
  13. package/dist/cjs/ui/EditorContext/index.js +10 -3
  14. package/dist/cjs/ui/Toolbar/toolbar-size.js +19 -1
  15. package/dist/cjs/ui/Toolbar/types.js +6 -0
  16. package/dist/cjs/version-wrapper.js +1 -1
  17. package/dist/es2019/composable-editor/editor-internal.js +18 -6
  18. package/dist/es2019/composable-editor/hooks/useProviders.js +1 -2
  19. package/dist/es2019/create-editor/ReactEditorView.js +28 -3
  20. package/dist/es2019/editor-appearances/FullPageEditor.js +2 -1
  21. package/dist/es2019/editor-appearances/FullWidthEditor.js +1 -0
  22. package/dist/es2019/presets/universal.js +1 -4
  23. package/dist/es2019/ui/Appearance/Chromeless.js +6 -1
  24. package/dist/es2019/ui/Appearance/Comment/Comment.js +5 -3
  25. package/dist/es2019/ui/Appearance/FullPage/FullPage.js +2 -1
  26. package/dist/es2019/ui/Appearance/FullPage/FullPageContentArea.js +2 -1
  27. package/dist/es2019/ui/ContentStyles/index.js +2 -3
  28. package/dist/es2019/ui/EditorContext/index.js +10 -3
  29. package/dist/es2019/ui/Toolbar/toolbar-size.js +19 -2
  30. package/dist/es2019/ui/Toolbar/types.js +1 -1
  31. package/dist/es2019/version-wrapper.js +1 -1
  32. package/dist/esm/composable-editor/editor-internal.js +21 -6
  33. package/dist/esm/composable-editor/hooks/useProviders.js +2 -3
  34. package/dist/esm/create-editor/ReactEditorView.js +25 -0
  35. package/dist/esm/editor-appearances/FullPageEditor.js +2 -1
  36. package/dist/esm/editor-appearances/FullWidthEditor.js +1 -0
  37. package/dist/esm/presets/universal.js +1 -4
  38. package/dist/esm/ui/Appearance/Chromeless.js +7 -3
  39. package/dist/esm/ui/Appearance/Comment/Comment.js +5 -3
  40. package/dist/esm/ui/Appearance/FullPage/FullPage.js +2 -1
  41. package/dist/esm/ui/Appearance/FullPage/FullPageContentArea.js +2 -1
  42. package/dist/esm/ui/ContentStyles/index.js +2 -3
  43. package/dist/esm/ui/EditorContext/index.js +10 -3
  44. package/dist/esm/ui/Toolbar/toolbar-size.js +19 -2
  45. package/dist/esm/ui/Toolbar/types.js +1 -1
  46. package/dist/esm/version-wrapper.js +1 -1
  47. package/dist/types/composable-editor/hooks/useProviders.d.ts +14 -1
  48. package/dist/types/create-editor/ReactEditorView.d.ts +1 -0
  49. package/dist/types/editor-appearances/FullPageEditor.d.ts +1 -0
  50. package/dist/types/editor-appearances/FullWidthEditor.d.ts +1 -0
  51. package/dist/types/ui/Appearance/Chromeless.d.ts +5 -1
  52. package/dist/types/ui/Appearance/FullPage/FullPageContentArea.d.ts +2 -0
  53. package/dist/types/ui/Toolbar/types.d.ts +1 -1
  54. package/dist/types-ts4.5/composable-editor/hooks/useProviders.d.ts +14 -1
  55. package/dist/types-ts4.5/create-editor/ReactEditorView.d.ts +1 -0
  56. package/dist/types-ts4.5/editor-appearances/FullPageEditor.d.ts +1 -0
  57. package/dist/types-ts4.5/editor-appearances/FullWidthEditor.d.ts +1 -0
  58. package/dist/types-ts4.5/ui/Appearance/Chromeless.d.ts +3 -1
  59. package/dist/types-ts4.5/ui/Appearance/FullPage/FullPageContentArea.d.ts +2 -0
  60. package/dist/types-ts4.5/ui/Toolbar/types.d.ts +1 -1
  61. package/package.json +12 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # @atlaskit/editor-core
2
2
 
3
+ ## 197.13.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#144103](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/144103)
8
+ [`fa7b54fa5353e`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/fa7b54fa5353e) -
9
+ Remove the use of usePresetContext in editor-core
10
+
11
+ ## 197.12.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [#144047](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/144047)
16
+ [`0e77caf52a59d`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/0e77caf52a59d) -
17
+ add new full page toolbar breakpoints
18
+ - [#145317](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/145317)
19
+ [`ecfdb14f93474`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/ecfdb14f93474) -
20
+ Add appearance prop for FullPageEditor so that it can be re-used for full-width mode.
21
+
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies
25
+
3
26
  ## 197.11.1
4
27
 
5
28
  ### Patch Changes
@@ -12,6 +12,7 @@ var _react = require("react");
12
12
  var _react2 = require("@emotion/react");
13
13
  var _analytics = require("@atlaskit/editor-common/analytics");
14
14
  var _portal = require("@atlaskit/editor-common/portal");
15
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
15
16
  var _ErrorBoundary = _interopRequireDefault(require("../create-editor/ErrorBoundary"));
16
17
  var _featureFlagsFromProps = require("../create-editor/feature-flags-from-props");
17
18
  var _ReactEditorView = _interopRequireDefault(require("../create-editor/ReactEditorView"));
@@ -142,7 +143,15 @@ var EditorInternal = exports.EditorInternal = /*#__PURE__*/(0, _react.memo)(func
142
143
  });
143
144
  function ReactEditorViewContextWrapper(props) {
144
145
  var _props$editorProps$me, _props$editorProps$li;
146
+ // deprecated, unable to be FF due to hook usage
145
147
  var setInternalEditorAPI = (0, _context.useSetPresetContext)();
148
+ var presetContextEditorAPI = (0, _context.usePresetContext)();
149
+
150
+ // new way of storing the editorApi when FF platform_editor_remove_use_preset_context is enabled
151
+ var _useState = (0, _react.useState)(undefined),
152
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
153
+ editorAPI = _useState2[0],
154
+ setEditorAPI = _useState2[1];
146
155
 
147
156
  /**
148
157
  * We use the context to retrieve the editorAPI
@@ -152,16 +161,21 @@ function ReactEditorViewContextWrapper(props) {
152
161
  * so we should also set the value for the `EditorContext` that is used in
153
162
  * `EditorInternal`.
154
163
  */
155
- var setEditorAPI = (0, _react.useCallback)(
164
+ var setPresetContextEditorAPI = (0, _react.useCallback)(
156
165
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
157
166
  function (api) {
158
- setInternalEditorAPI === null || setInternalEditorAPI === void 0 || setInternalEditorAPI(api);
159
- }, [setInternalEditorAPI]);
167
+ if ((0, _platformFeatureFlags.fg)('platform_editor_remove_use_preset_context')) {
168
+ setEditorAPI(api);
169
+ } else {
170
+ setInternalEditorAPI === null || setInternalEditorAPI === void 0 || setInternalEditorAPI(api);
171
+ }
172
+ }, [setInternalEditorAPI, setEditorAPI]);
160
173
 
161
174
  // TODO: Remove these when we deprecate these props from editor-props - smartLinks is unfortunately still used in some places, we can sidestep this problem if we move everyone across to ComposableEditor and deprecate Editor
162
175
  var UNSAFE_cards = props.editorProps.UNSAFE_cards;
163
176
  var smartLinks = props.editorProps.smartLinks;
164
177
  (0, _useProviders.useProviders)({
178
+ editorApi: (0, _platformFeatureFlags.fg)('platform_editor_remove_use_preset_context') ? editorAPI : presetContextEditorAPI,
165
179
  contextIdentifierProvider: props.editorProps.contextIdentifierProvider,
166
180
  mediaProvider: (_props$editorProps$me = props.editorProps.media) === null || _props$editorProps$me === void 0 ? void 0 : _props$editorProps$me.provider,
167
181
  cardProvider: ((_props$editorProps$li = props.editorProps.linking) === null || _props$editorProps$li === void 0 || (_props$editorProps$li = _props$editorProps$li.smartLinks) === null || _props$editorProps$li === void 0 ? void 0 : _props$editorProps$li.provider) || smartLinks && smartLinks.provider || UNSAFE_cards && UNSAFE_cards.provider,
@@ -169,6 +183,7 @@ function ReactEditorViewContextWrapper(props) {
169
183
  autoformattingProvider: props.editorProps.autoformattingProvider
170
184
  });
171
185
  return (0, _react2.jsx)(_ReactEditorView.default, (0, _extends2.default)({}, props, {
172
- setEditorApi: setEditorAPI
186
+ editorAPI: editorAPI,
187
+ setEditorApi: setPresetContextEditorAPI
173
188
  }));
174
189
  }
@@ -9,7 +9,6 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _react = require("react");
11
11
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
- var _context2 = require("../../presets/context");
13
12
  /**
14
13
  * This hook is used to replace the old approach of using the `providerFactory`.
15
14
  *
@@ -19,12 +18,12 @@ var _context2 = require("../../presets/context");
19
18
  * In the future ideally consumers implement this behaviour themselves.
20
19
  */
21
20
  var useProviders = exports.useProviders = function useProviders(_ref) {
22
- var contextIdentifierProvider = _ref.contextIdentifierProvider,
21
+ var editorApi = _ref.editorApi,
22
+ contextIdentifierProvider = _ref.contextIdentifierProvider,
23
23
  mediaProvider = _ref.mediaProvider,
24
24
  cardProvider = _ref.cardProvider,
25
25
  emojiProvider = _ref.emojiProvider,
26
26
  autoformattingProvider = _ref.autoformattingProvider;
27
- var editorApi = (0, _context2.usePresetContext)();
28
27
  (0, _react.useEffect)(function () {
29
28
  function setProvider() {
30
29
  return _setProvider.apply(this, arguments);
@@ -769,6 +769,31 @@ var ReactEditorView = exports.ReactEditorView = /*#__PURE__*/function (_React$Co
769
769
  var renderTracking = (_this$props$editorPro10 = this.props.editorProps.performanceTracking) === null || _this$props$editorPro10 === void 0 || (_this$props$editorPro10 = _this$props$editorPro10.renderTracking) === null || _this$props$editorPro10 === void 0 ? void 0 : _this$props$editorPro10.reactEditorView;
770
770
  var renderTrackingEnabled = renderTracking === null || renderTracking === void 0 ? void 0 : renderTracking.enabled;
771
771
  var useShallow = renderTracking === null || renderTracking === void 0 ? void 0 : renderTracking.useShallow;
772
+ if ((0, _platformFeatureFlags.fg)('platform_editor_remove_use_preset_context')) {
773
+ var _this$props$render, _this$props$render2, _this$props;
774
+ return /*#__PURE__*/_react.default.createElement(_ReactEditorViewContext.default.Provider, {
775
+ value: {
776
+ editorRef: this.editorRef,
777
+ editorView: this.view,
778
+ popupsMountPoint: this.props.editorProps.popupsMountPoint
779
+ }
780
+ }, renderTrackingEnabled && /*#__PURE__*/_react.default.createElement(_RenderTracking.RenderTracking, {
781
+ componentProps: this.props,
782
+ action: _analytics.ACTION.RE_RENDERED,
783
+ actionSubject: _analytics.ACTION_SUBJECT.REACT_EDITOR_VIEW,
784
+ handleAnalyticsEvent: this.handleAnalyticsEvent,
785
+ useShallow: useShallow
786
+ }), this.props.render ? (_this$props$render = (_this$props$render2 = (_this$props = this.props).render) === null || _this$props$render2 === void 0 ? void 0 : _this$props$render2.call(_this$props, {
787
+ editor: this.editor,
788
+ view: this.view,
789
+ config: this.config,
790
+ eventDispatcher: this.eventDispatcher,
791
+ transformer: this.contentTransformer,
792
+ dispatchAnalyticsEvent: this.dispatchAnalyticsEvent,
793
+ editorRef: this.editorRef,
794
+ editorAPI: this.props.editorAPI
795
+ })) !== null && _this$props$render !== void 0 ? _this$props$render : this.editor : this.editor);
796
+ }
772
797
  return /*#__PURE__*/_react.default.createElement(_ReactEditorViewContext.default.Provider, {
773
798
  value: {
774
799
  editorRef: this.editorRef,
@@ -20,8 +20,9 @@ var _FullPage = _interopRequireDefault(require("../ui/Appearance/FullPage"));
20
20
  * @returns Editor component
21
21
  */
22
22
  function FullPageEditor(props) {
23
+ var _props$appearance;
23
24
  return /*#__PURE__*/_react.default.createElement(_coreEditor.CoreEditor, (0, _extends2.default)({}, props, {
24
- appearance: "full-page",
25
+ appearance: (_props$appearance = props.appearance) !== null && _props$appearance !== void 0 ? _props$appearance : 'full-page',
25
26
  AppearanceComponent: _FullPage.default
26
27
  }));
27
28
  }
@@ -18,6 +18,7 @@ var _FullPage = _interopRequireDefault(require("../ui/Appearance/FullPage"));
18
18
  *
19
19
  * @param props FullWidthEditorProps
20
20
  * @returns Editor component
21
+ * @deprecated In favour of `FullPageEditor` with appearance "full-width"
21
22
  */
22
23
  function FullWidthEditor(props) {
23
24
  return /*#__PURE__*/_react.default.createElement(_coreEditor.CoreEditor, (0, _extends2.default)({}, props, {
@@ -223,10 +223,7 @@ function createUniversalPresetInternal(_ref) {
223
223
  tableSelectorSupported: (featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.tableSelector) && isFullPage,
224
224
  nativeStatusSupported: !statusMenuDisabled,
225
225
  showElementBrowserLink: props.elementBrowser && props.elementBrowser.showModal || false,
226
- // @ts-ignore
227
- // For platform_editor_element_level_templates experiment only
228
- // clean up ticket ED-24873
229
- UNSAFE_editorAppearance: appearance
226
+ appearance: appearance
230
227
  }]).maybeAdd([_beforePrimaryToolbar.beforePrimaryToolbarPlugin, {
231
228
  beforePrimaryToolbarComponents: // @ts-expect-error 2339: Property 'before' does not exist on type 'PrimaryToolbarComponents'.
232
229
  (_props$primaryToolbar = props.primaryToolbarComponents) === null || _props$primaryToolbar === void 0 ? void 0 : _props$primaryToolbar.before
@@ -17,6 +17,7 @@ var _react = _interopRequireWildcard(require("react"));
17
17
  var _react2 = require("@emotion/react");
18
18
  var _hooks = require("@atlaskit/editor-common/hooks");
19
19
  var _scrollbar = require("@atlaskit/editor-shared-styles/scrollbar");
20
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
20
21
  var _ContentStyles = require("../ContentStyles");
21
22
  var _PluginSlot = _interopRequireDefault(require("../PluginSlot"));
22
23
  var _WithFlash = _interopRequireDefault(require("../WithFlash"));
@@ -85,6 +86,8 @@ var Editor = exports.default = /*#__PURE__*/function (_React$Component) {
85
86
  pluginHooks = _this$props.pluginHooks,
86
87
  featureFlags = _this$props.featureFlags;
87
88
  var maxContentSizeReached = Boolean(maxContentSize === null || maxContentSize === void 0 ? void 0 : maxContentSize.maxContentSizeReached);
89
+ var _useSharedPluginState = (0, _hooks.useSharedPluginState)(_this.props.editorAPI, ['editorViewMode']),
90
+ editorViewModeState = _useSharedPluginState.editorViewModeState;
88
91
  return (0, _react2.jsx)(_WithFlash.default, {
89
92
  animate: maxContentSizeReached
90
93
  }, (0, _react2.jsx)("div", {
@@ -107,7 +110,8 @@ var Editor = exports.default = /*#__PURE__*/function (_React$Component) {
107
110
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
108
111
  , {
109
112
  className: "ak-editor-content-area",
110
- featureFlags: featureFlags
113
+ featureFlags: featureFlags,
114
+ viewMode: (0, _platformFeatureFlags.fg)('platform_editor_remove_use_preset_context') ? editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode : undefined
111
115
  }, customContentComponents && 'before' in customContentComponents ? customContentComponents.before : customContentComponents, (0, _react2.jsx)(_PluginSlot.default, {
112
116
  editorView: editorView,
113
117
  editorActions: editorActions,
@@ -142,8 +146,8 @@ var Editor = exports.default = /*#__PURE__*/function (_React$Component) {
142
146
  function RenderWithPluginState(_ref3) {
143
147
  var renderChrome = _ref3.renderChrome,
144
148
  editorAPI = _ref3.editorAPI;
145
- var _useSharedPluginState = (0, _hooks.useSharedPluginState)(editorAPI, ['maxContentSize']),
146
- maxContentSizeState = _useSharedPluginState.maxContentSizeState;
149
+ var _useSharedPluginState2 = (0, _hooks.useSharedPluginState)(editorAPI, ['maxContentSize']),
150
+ maxContentSizeState = _useSharedPluginState2.maxContentSizeState;
147
151
  return (0, _react2.jsx)(_react.Fragment, null, renderChrome({
148
152
  maxContentSize: maxContentSizeState
149
153
  }));
@@ -85,10 +85,11 @@ var secondaryToolbarStyles = (0, _react2.css)({
85
85
  var appearance = 'comment';
86
86
  var CommentEditorWithIntl = exports.CommentEditorWithIntl = function CommentEditorWithIntl(props) {
87
87
  var editorAPI = props.editorAPI;
88
- var _useSharedPluginState = (0, _hooks.useSharedPluginState)(editorAPI, ['media', 'maxContentSize', 'primaryToolbar']),
88
+ var _useSharedPluginState = (0, _hooks.useSharedPluginState)(editorAPI, ['media', 'maxContentSize', 'primaryToolbar', 'editorViewMode']),
89
89
  mediaState = _useSharedPluginState.mediaState,
90
90
  maxContentSizeState = _useSharedPluginState.maxContentSizeState,
91
- primaryToolbarState = _useSharedPluginState.primaryToolbarState;
91
+ primaryToolbarState = _useSharedPluginState.primaryToolbarState,
92
+ editorViewModeState = _useSharedPluginState.editorViewModeState;
92
93
  var intl = (0, _reactIntlNext.useIntl)();
93
94
  var editorDOMElement = props.editorDOMElement,
94
95
  editorView = props.editorView,
@@ -218,7 +219,8 @@ var CommentEditorWithIntl = exports.CommentEditorWithIntl = function CommentEdit
218
219
  className: (0, _classnames.default)('ak-editor-content-area', {
219
220
  'less-margin': width < _editorSharedStyles.akEditorMobileBreakoutPoint
220
221
  }),
221
- featureFlags: featureFlags
222
+ featureFlags: featureFlags,
223
+ viewMode: (0, _platformFeatureFlags.fg)('platform_editor_remove_use_preset_context') ? editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode : undefined
222
224
  }, customContentComponents && 'before' in customContentComponents ? customContentComponents.before : customContentComponents, (0, _react2.jsx)(_PluginSlot.default, {
223
225
  editorView: editorView,
224
226
  editorActions: editorActions,
@@ -118,6 +118,7 @@ var FullPageEditor = exports.FullPageEditor = function FullPageEditor(props) {
118
118
  wrapperElement: (_wrapperElementRef$cu = wrapperElementRef === null || wrapperElementRef === void 0 ? void 0 : wrapperElementRef.current) !== null && _wrapperElementRef$cu !== void 0 ? _wrapperElementRef$cu : null,
119
119
  pluginHooks: props.pluginHooks,
120
120
  featureFlags: props.featureFlags,
121
- isEditorToolbarHidden: isEditorToolbarHidden
121
+ isEditorToolbarHidden: isEditorToolbarHidden,
122
+ viewMode: editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode
122
123
  })));
123
124
  };
@@ -60,7 +60,8 @@ var Content = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
60
60
  , {
61
61
  className: "fabric-editor-popup-scroll-parent",
62
62
  featureFlags: props.featureFlags,
63
- ref: scrollContainerRef
63
+ ref: scrollContainerRef,
64
+ viewMode: (0, _platformFeatureFlags.fg)('platform_editor_remove_use_preset_context') ? props === null || props === void 0 ? void 0 : props.viewMode : undefined
64
65
  }, (0, _react2.jsx)(_Addon.ClickAreaBlock, {
65
66
  editorView: props.editorView,
66
67
  editorDisabled: props.disabled
@@ -101,15 +101,14 @@ var createEditorContentStyle = exports.createEditorContentStyle = function creat
101
101
  var editorAPI = (0, _context.usePresetContext)();
102
102
  var _useSharedPluginState = (0, _hooks.useSharedPluginState)(editorAPI, ['editorViewMode']),
103
103
  editorViewModeState = _useSharedPluginState.editorViewModeState;
104
- var viewMode = editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode;
105
104
  var memoizedStyle = (0, _react.useMemo)(function () {
106
105
  return contentStyles({
107
106
  theme: theme,
108
107
  colorMode: colorMode,
109
108
  featureFlags: featureFlags,
110
- viewMode: viewMode
109
+ viewMode: (0, _platformFeatureFlags.fg)('platform_editor_remove_use_preset_context') ? props.viewMode : editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode
111
110
  });
112
- }, [theme, colorMode, featureFlags, viewMode]);
111
+ }, [theme, colorMode, featureFlags, editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode, props.viewMode]);
113
112
  return (
114
113
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
115
114
  (0, _react2.jsx)("div", {
@@ -13,6 +13,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
13
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
14
  var _react = _interopRequireDefault(require("react"));
15
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
16
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
16
17
  var _actions = _interopRequireDefault(require("../../actions"));
17
18
  var _context = require("../../presets/context");
18
19
  function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
@@ -41,9 +42,15 @@ var LegacyEditorContext = exports.default = /*#__PURE__*/function (_React$Compon
41
42
  }, {
42
43
  key: "render",
43
44
  value: function render() {
44
- return /*#__PURE__*/_react.default.createElement(EditorContext.Provider, {
45
- value: this.getChildContext()
46
- }, /*#__PURE__*/_react.default.createElement(_context.PresetContextProvider, null, this.props.children));
45
+ if ((0, _platformFeatureFlags.fg)('platform_editor_remove_use_preset_context')) {
46
+ return /*#__PURE__*/_react.default.createElement(EditorContext.Provider, {
47
+ value: this.getChildContext()
48
+ }, this.props.children);
49
+ } else {
50
+ return /*#__PURE__*/_react.default.createElement(EditorContext.Provider, {
51
+ value: this.getChildContext()
52
+ }, /*#__PURE__*/_react.default.createElement(_context.PresetContextProvider, null, this.props.children));
53
+ }
47
54
  }
48
55
  }]);
49
56
  return LegacyEditorContext;
@@ -4,8 +4,26 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.widthToToolbarSize = exports.toolbarSizeToWidth = void 0;
7
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
7
8
  var _isFullPage = require("../../utils/is-full-page");
8
9
  var _types = require("./types");
10
+ var toolbarSizesFullPageNext = [{
11
+ width: _types.ToolbarWidthsFullPageNext.XXL,
12
+ size: _types.ToolbarSize.XXL
13
+ }, {
14
+ width: _types.ToolbarWidthsFullPageNext.XL,
15
+ size: _types.ToolbarSize.XL
16
+ }, {
17
+ width: _types.ToolbarWidthsFullPageNext.L,
18
+ size: _types.ToolbarSize.L
19
+ }, {
20
+ width: _types.ToolbarWidthsFullPageNext.M,
21
+ size: _types.ToolbarSize.M
22
+ }, {
23
+ width: _types.ToolbarWidthsFullPageNext.S,
24
+ size: _types.ToolbarSize.S
25
+ }];
26
+
9
27
  // Toolbar sizes for full page editor a little bit different, because it has more buttons e.g. actions button...
10
28
  var toolbarSizesFullPage = [{
11
29
  width: _types.ToolbarWidthsFullPage.XXL,
@@ -40,7 +58,7 @@ var toolbarSizes = [{
40
58
  size: _types.ToolbarSize.S
41
59
  }];
42
60
  var toolbarSizesForAppearance = function toolbarSizesForAppearance(appearance) {
43
- return (0, _isFullPage.isFullPage)(appearance) ? toolbarSizesFullPage : toolbarSizes;
61
+ return (0, _isFullPage.isFullPage)(appearance) ? (0, _platformFeatureFlags.fg)('platform_editor_toolbar_responsive_fixes') ? toolbarSizesFullPageNext : toolbarSizesFullPage : toolbarSizes;
44
62
  };
45
63
  var toolbarSizeToWidth = exports.toolbarSizeToWidth = function toolbarSizeToWidth(toolbarSize, appearance) {
46
64
  return (toolbarSizesForAppearance(appearance).find(function (_ref) {
@@ -21,4 +21,10 @@ Object.defineProperty(exports, "ToolbarWidthsFullPage", {
21
21
  return _types.ToolbarWidthsFullPage;
22
22
  }
23
23
  });
24
+ Object.defineProperty(exports, "ToolbarWidthsFullPageNext", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _types.ToolbarWidthsFullPageNext;
28
+ }
29
+ });
24
30
  var _types = require("@atlaskit/editor-common/types");
@@ -5,4 +5,4 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.version = exports.name = void 0;
7
7
  var name = exports.name = "@atlaskit/editor-core";
8
- var version = exports.version = "197.11.1";
8
+ var version = exports.version = "197.13.0";
@@ -3,17 +3,18 @@ import _extends from "@babel/runtime/helpers/extends";
3
3
  * @jsxRuntime classic
4
4
  * @jsx jsx
5
5
  */
6
- import { Fragment, memo, useCallback } from 'react';
6
+ import { Fragment, memo, useCallback, useState } from 'react';
7
7
 
8
8
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
9
9
  import { css, jsx } from '@emotion/react';
10
10
  import { ACTION, ACTION_SUBJECT } from '@atlaskit/editor-common/analytics';
11
11
  import { usePortalProvider } from '@atlaskit/editor-common/portal';
12
+ import { fg } from '@atlaskit/platform-feature-flags';
12
13
  import ErrorBoundary from '../create-editor/ErrorBoundary';
13
14
  import { createFeatureFlagsFromProps } from '../create-editor/feature-flags-from-props';
14
15
  import ReactEditorView from '../create-editor/ReactEditorView';
15
16
  import { ContextAdapter } from '../nodeviews/context-adapter';
16
- import { useSetPresetContext } from '../presets/context';
17
+ import { usePresetContext, useSetPresetContext } from '../presets/context';
17
18
  import EditorContext from '../ui/EditorContext';
18
19
  import { IntlProviderIfMissingWrapper } from '../ui/IntlProviderIfMissingWrapper/IntlProviderIfMissingWrapper';
19
20
  import { RenderTracking } from '../utils/performance/components/RenderTracking';
@@ -134,7 +135,12 @@ export const EditorInternal = /*#__PURE__*/memo(({
134
135
  });
135
136
  function ReactEditorViewContextWrapper(props) {
136
137
  var _props$editorProps$me, _props$editorProps$li, _props$editorProps$li2;
138
+ // deprecated, unable to be FF due to hook usage
137
139
  const setInternalEditorAPI = useSetPresetContext();
140
+ const presetContextEditorAPI = usePresetContext();
141
+
142
+ // new way of storing the editorApi when FF platform_editor_remove_use_preset_context is enabled
143
+ const [editorAPI, setEditorAPI] = useState(undefined);
138
144
 
139
145
  /**
140
146
  * We use the context to retrieve the editorAPI
@@ -144,16 +150,21 @@ function ReactEditorViewContextWrapper(props) {
144
150
  * so we should also set the value for the `EditorContext` that is used in
145
151
  * `EditorInternal`.
146
152
  */
147
- const setEditorAPI = useCallback(
153
+ const setPresetContextEditorAPI = useCallback(
148
154
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
149
155
  api => {
150
- setInternalEditorAPI === null || setInternalEditorAPI === void 0 ? void 0 : setInternalEditorAPI(api);
151
- }, [setInternalEditorAPI]);
156
+ if (fg('platform_editor_remove_use_preset_context')) {
157
+ setEditorAPI(api);
158
+ } else {
159
+ setInternalEditorAPI === null || setInternalEditorAPI === void 0 ? void 0 : setInternalEditorAPI(api);
160
+ }
161
+ }, [setInternalEditorAPI, setEditorAPI]);
152
162
 
153
163
  // TODO: Remove these when we deprecate these props from editor-props - smartLinks is unfortunately still used in some places, we can sidestep this problem if we move everyone across to ComposableEditor and deprecate Editor
154
164
  const UNSAFE_cards = props.editorProps.UNSAFE_cards;
155
165
  const smartLinks = props.editorProps.smartLinks;
156
166
  useProviders({
167
+ editorApi: fg('platform_editor_remove_use_preset_context') ? editorAPI : presetContextEditorAPI,
157
168
  contextIdentifierProvider: props.editorProps.contextIdentifierProvider,
158
169
  mediaProvider: (_props$editorProps$me = props.editorProps.media) === null || _props$editorProps$me === void 0 ? void 0 : _props$editorProps$me.provider,
159
170
  cardProvider: ((_props$editorProps$li = props.editorProps.linking) === null || _props$editorProps$li === void 0 ? void 0 : (_props$editorProps$li2 = _props$editorProps$li.smartLinks) === null || _props$editorProps$li2 === void 0 ? void 0 : _props$editorProps$li2.provider) || smartLinks && smartLinks.provider || UNSAFE_cards && UNSAFE_cards.provider,
@@ -161,6 +172,7 @@ function ReactEditorViewContextWrapper(props) {
161
172
  autoformattingProvider: props.editorProps.autoformattingProvider
162
173
  });
163
174
  return jsx(ReactEditorView, _extends({}, props, {
164
- setEditorApi: setEditorAPI
175
+ editorAPI: editorAPI,
176
+ setEditorApi: setPresetContextEditorAPI
165
177
  }));
166
178
  }
@@ -1,6 +1,5 @@
1
1
  import { useEffect } from 'react';
2
2
  import { fg } from '@atlaskit/platform-feature-flags';
3
- import { usePresetContext } from '../../presets/context';
4
3
  /**
5
4
  * This hook is used to replace the old approach of using the `providerFactory`.
6
5
  *
@@ -10,13 +9,13 @@ import { usePresetContext } from '../../presets/context';
10
9
  * In the future ideally consumers implement this behaviour themselves.
11
10
  */
12
11
  export const useProviders = ({
12
+ editorApi,
13
13
  contextIdentifierProvider,
14
14
  mediaProvider,
15
15
  cardProvider,
16
16
  emojiProvider,
17
17
  autoformattingProvider
18
18
  }) => {
19
- const editorApi = usePresetContext();
20
19
  useEffect(() => {
21
20
  async function setProvider() {
22
21
  var _editorApi$core, _editorApi$contextIde;
@@ -712,6 +712,31 @@ export class ReactEditorView extends React.Component {
712
712
  const renderTracking = (_this$props$editorPro14 = this.props.editorProps.performanceTracking) === null || _this$props$editorPro14 === void 0 ? void 0 : (_this$props$editorPro15 = _this$props$editorPro14.renderTracking) === null || _this$props$editorPro15 === void 0 ? void 0 : _this$props$editorPro15.reactEditorView;
713
713
  const renderTrackingEnabled = renderTracking === null || renderTracking === void 0 ? void 0 : renderTracking.enabled;
714
714
  const useShallow = renderTracking === null || renderTracking === void 0 ? void 0 : renderTracking.useShallow;
715
+ if (fg('platform_editor_remove_use_preset_context')) {
716
+ var _this$props$render, _this$props$render2, _this$props;
717
+ return /*#__PURE__*/React.createElement(ReactEditorViewContext.Provider, {
718
+ value: {
719
+ editorRef: this.editorRef,
720
+ editorView: this.view,
721
+ popupsMountPoint: this.props.editorProps.popupsMountPoint
722
+ }
723
+ }, renderTrackingEnabled && /*#__PURE__*/React.createElement(RenderTracking, {
724
+ componentProps: this.props,
725
+ action: ACTION.RE_RENDERED,
726
+ actionSubject: ACTION_SUBJECT.REACT_EDITOR_VIEW,
727
+ handleAnalyticsEvent: this.handleAnalyticsEvent,
728
+ useShallow: useShallow
729
+ }), this.props.render ? (_this$props$render = (_this$props$render2 = (_this$props = this.props).render) === null || _this$props$render2 === void 0 ? void 0 : _this$props$render2.call(_this$props, {
730
+ editor: this.editor,
731
+ view: this.view,
732
+ config: this.config,
733
+ eventDispatcher: this.eventDispatcher,
734
+ transformer: this.contentTransformer,
735
+ dispatchAnalyticsEvent: this.dispatchAnalyticsEvent,
736
+ editorRef: this.editorRef,
737
+ editorAPI: this.props.editorAPI
738
+ })) !== null && _this$props$render !== void 0 ? _this$props$render : this.editor : this.editor);
739
+ }
715
740
  return /*#__PURE__*/React.createElement(ReactEditorViewContext.Provider, {
716
741
  value: {
717
742
  editorRef: this.editorRef,
@@ -727,8 +752,8 @@ export class ReactEditorView extends React.Component {
727
752
  }), this.props.render ? /*#__PURE__*/React.createElement(EditorAPIContext.Consumer, null, ({
728
753
  editorApi
729
754
  }) => {
730
- var _this$props$render, _this$props$render2, _this$props;
731
- return (_this$props$render = (_this$props$render2 = (_this$props = this.props).render) === null || _this$props$render2 === void 0 ? void 0 : _this$props$render2.call(_this$props, {
755
+ var _this$props$render3, _this$props$render4, _this$props2;
756
+ return (_this$props$render3 = (_this$props$render4 = (_this$props2 = this.props).render) === null || _this$props$render4 === void 0 ? void 0 : _this$props$render4.call(_this$props2, {
732
757
  editor: this.editor,
733
758
  view: this.view,
734
759
  config: this.config,
@@ -737,7 +762,7 @@ export class ReactEditorView extends React.Component {
737
762
  dispatchAnalyticsEvent: this.dispatchAnalyticsEvent,
738
763
  editorRef: this.editorRef,
739
764
  editorAPI: editorApi
740
- })) !== null && _this$props$render !== void 0 ? _this$props$render : this.editor;
765
+ })) !== null && _this$props$render3 !== void 0 ? _this$props$render3 : this.editor;
741
766
  }) : this.editor);
742
767
  }
743
768
  }
@@ -13,8 +13,9 @@ import FullPage from '../ui/Appearance/FullPage';
13
13
  * @returns Editor component
14
14
  */
15
15
  export function FullPageEditor(props) {
16
+ var _props$appearance;
16
17
  return /*#__PURE__*/React.createElement(CoreEditor, _extends({}, props, {
17
- appearance: "full-page",
18
+ appearance: (_props$appearance = props.appearance) !== null && _props$appearance !== void 0 ? _props$appearance : 'full-page',
18
19
  AppearanceComponent: FullPage
19
20
  }));
20
21
  }
@@ -11,6 +11,7 @@ import FullPage from '../ui/Appearance/FullPage';
11
11
  *
12
12
  * @param props FullWidthEditorProps
13
13
  * @returns Editor component
14
+ * @deprecated In favour of `FullPageEditor` with appearance "full-width"
14
15
  */
15
16
  export function FullWidthEditor(props) {
16
17
  return /*#__PURE__*/React.createElement(CoreEditor, _extends({}, props, {
@@ -223,10 +223,7 @@ export default function createUniversalPresetInternal({
223
223
  tableSelectorSupported: (featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.tableSelector) && isFullPage,
224
224
  nativeStatusSupported: !statusMenuDisabled,
225
225
  showElementBrowserLink: props.elementBrowser && props.elementBrowser.showModal || false,
226
- // @ts-ignore
227
- // For platform_editor_element_level_templates experiment only
228
- // clean up ticket ED-24873
229
- UNSAFE_editorAppearance: appearance
226
+ appearance
230
227
  }]).maybeAdd([beforePrimaryToolbarPlugin, {
231
228
  beforePrimaryToolbarComponents: // @ts-expect-error 2339: Property 'before' does not exist on type 'PrimaryToolbarComponents'.
232
229
  (_props$primaryToolbar = props.primaryToolbarComponents) === null || _props$primaryToolbar === void 0 ? void 0 : _props$primaryToolbar.before
@@ -9,6 +9,7 @@ import React, { Fragment } from 'react';
9
9
  import { css, jsx } from '@emotion/react';
10
10
  import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
11
11
  import { scrollbarStyles } from '@atlaskit/editor-shared-styles/scrollbar';
12
+ import { fg } from '@atlaskit/platform-feature-flags';
12
13
  import { createEditorContentStyle } from '../ContentStyles';
13
14
  import PluginSlot from '../PluginSlot';
14
15
  import WithFlash from '../WithFlash';
@@ -64,6 +65,9 @@ export default class Editor extends React.Component {
64
65
  featureFlags
65
66
  } = this.props;
66
67
  const maxContentSizeReached = Boolean(maxContentSize === null || maxContentSize === void 0 ? void 0 : maxContentSize.maxContentSizeReached);
68
+ const {
69
+ editorViewModeState
70
+ } = useSharedPluginState(this.props.editorAPI, ['editorViewMode']);
67
71
  return jsx(WithFlash, {
68
72
  animate: maxContentSizeReached
69
73
  }, jsx("div", {
@@ -84,7 +88,8 @@ export default class Editor extends React.Component {
84
88
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
85
89
  , {
86
90
  className: "ak-editor-content-area",
87
- featureFlags: featureFlags
91
+ featureFlags: featureFlags,
92
+ viewMode: fg('platform_editor_remove_use_preset_context') ? editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode : undefined
88
93
  }, customContentComponents && 'before' in customContentComponents ? customContentComponents.before : customContentComponents, jsx(PluginSlot, {
89
94
  editorView: editorView,
90
95
  editorActions: editorActions,
@@ -78,8 +78,9 @@ export const CommentEditorWithIntl = props => {
78
78
  const {
79
79
  mediaState,
80
80
  maxContentSizeState,
81
- primaryToolbarState
82
- } = useSharedPluginState(editorAPI, ['media', 'maxContentSize', 'primaryToolbar']);
81
+ primaryToolbarState,
82
+ editorViewModeState
83
+ } = useSharedPluginState(editorAPI, ['media', 'maxContentSize', 'primaryToolbar', 'editorViewMode']);
83
84
  const intl = useIntl();
84
85
  const {
85
86
  editorDOMElement,
@@ -204,7 +205,8 @@ export const CommentEditorWithIntl = props => {
204
205
  className: classnames('ak-editor-content-area', {
205
206
  'less-margin': width < akEditorMobileBreakoutPoint
206
207
  }),
207
- featureFlags: featureFlags
208
+ featureFlags: featureFlags,
209
+ viewMode: fg('platform_editor_remove_use_preset_context') ? editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode : undefined
208
210
  }, customContentComponents && 'before' in customContentComponents ? customContentComponents.before : customContentComponents, jsx(PluginSlot, {
209
211
  editorView: editorView,
210
212
  editorActions: editorActions,
@@ -100,6 +100,7 @@ export const FullPageEditor = props => {
100
100
  wrapperElement: (_wrapperElementRef$cu = wrapperElementRef === null || wrapperElementRef === void 0 ? void 0 : wrapperElementRef.current) !== null && _wrapperElementRef$cu !== void 0 ? _wrapperElementRef$cu : null,
101
101
  pluginHooks: props.pluginHooks,
102
102
  featureFlags: props.featureFlags,
103
- isEditorToolbarHidden: isEditorToolbarHidden
103
+ isEditorToolbarHidden: isEditorToolbarHidden,
104
+ viewMode: editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode
104
105
  })));
105
106
  };
@@ -48,7 +48,8 @@ const Content = /*#__PURE__*/React.forwardRef((props, ref) => {
48
48
  , {
49
49
  className: "fabric-editor-popup-scroll-parent",
50
50
  featureFlags: props.featureFlags,
51
- ref: scrollContainerRef
51
+ ref: scrollContainerRef,
52
+ viewMode: fg('platform_editor_remove_use_preset_context') ? props === null || props === void 0 ? void 0 : props.viewMode : undefined
52
53
  }, jsx(ClickAreaBlock, {
53
54
  editorView: props.editorView,
54
55
  editorDisabled: props.disabled
@@ -372,13 +372,12 @@ export const createEditorContentStyle = styles => {
372
372
  const {
373
373
  editorViewModeState
374
374
  } = useSharedPluginState(editorAPI, ['editorViewMode']);
375
- const viewMode = editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode;
376
375
  const memoizedStyle = useMemo(() => contentStyles({
377
376
  theme,
378
377
  colorMode,
379
378
  featureFlags,
380
- viewMode
381
- }), [theme, colorMode, featureFlags, viewMode]);
379
+ viewMode: fg('platform_editor_remove_use_preset_context') ? props.viewMode : editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode
380
+ }), [theme, colorMode, featureFlags, editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode, props.viewMode]);
382
381
  return (
383
382
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
384
383
  jsx("div", {