@atlaskit/editor-common 78.20.1 → 78.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 78.20.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#84054](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/84054) [`43605c45b445`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/43605c45b445) - EDF-468 Added disableFloatingToolbar plugin option to disable showing floating toolbar when hyperlink is clicked.
8
+ - [#83121](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/83121) [`97ee7097d940`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/97ee7097d940) - [ux] Prevents contenteditable inside resize handle.
9
+
3
10
  ## 78.20.1
4
11
 
5
12
  ### Patch Changes
@@ -16,7 +16,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
16
16
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
17
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
18
18
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
19
- var packageVersion = "78.20.1";
19
+ var packageVersion = "78.20.2";
20
20
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
21
21
  // Remove URL as it has UGC
22
22
  // TODO: Sanitise the URL instead of just removing it
@@ -13,6 +13,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
13
13
  var _react = _interopRequireWildcard(require("react"));
14
14
  var _classnames3 = _interopRequireDefault(require("classnames"));
15
15
  var _reResizable = require("re-resizable");
16
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
16
17
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
17
18
  var _resizer = require("../styles/shared/resizer");
18
19
  var _excluded = ["width", "children", "handleClassName", "className", "handleResize", "handleResizeStart", "handleResizeStop", "handleSize", "handleAlignmentMethod", "handlePositioning", "appearance", "handleStyles", "resizeRatio", "snap", "snapGap", "isHandleVisible", "handleHighlight", "handleTooltipContent", "needExtendedResizeZone"];
@@ -21,6 +22,15 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
21
22
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
23
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
24
  var SUPPORTED_HANDLES = ['left', 'right'];
25
+ var inheritedCSS = {
26
+ position: 'inherit',
27
+ height: 'inherit',
28
+ width: 'inherit',
29
+ display: 'inherit',
30
+ flexDirection: 'inherit',
31
+ justifyContent: 'inherit',
32
+ alignItems: 'inherit'
33
+ };
24
34
  var ResizerNext = function ResizerNext(props, ref) {
25
35
  var _useState = (0, _react.useState)(false),
26
36
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -127,23 +137,49 @@ var ResizerNext = function ResizerNext(props, ref) {
127
137
  if ((!handleHighlight || handleHighlight === 'none') && !handleTooltipContent) {
128
138
  return _objectSpread(_objectSpread({}, result), {}, (0, _defineProperty2.default)({}, position, thumb));
129
139
  }
130
- var thumbWithTrack =
131
- /*#__PURE__*/
132
- //It's important to have {thumb} element before the div, the thumb element is the one that gets focus and only the 1st element recives aria-descibedby attribute which is important for screen reader users
133
- _react.default.createElement(_react.default.Fragment, null, thumb, /*#__PURE__*/_react.default.createElement("div", {
134
- className: (0, _classnames3.default)(_resizer.resizerHandleTrackClassName, handleHighlight),
135
- "data-testid": "resizer-handle-".concat(position, "-track")
136
- }));
137
- if (!!handleTooltipContent) {
138
- return _objectSpread(_objectSpread({}, result), {}, (0, _defineProperty2.default)({}, position, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
139
- content: handleTooltipContent,
140
- hideTooltipOnClick: true,
141
- position: "mouse",
142
- mousePosition: "auto-start",
143
- testId: "resizer-handle-".concat(position, "-tooltip")
140
+ if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.resizer.prevent-contenteditable')) {
141
+ var thumbWithTrack =
142
+ /*#__PURE__*/
143
+ //It's important to have {thumb} element before the div, the thumb element is the one that gets focus and only the 1st element recives aria-descibedby attribute which is important for screen reader users
144
+ _react.default.createElement(_react.default.Fragment, null, thumb, /*#__PURE__*/_react.default.createElement("div", {
145
+ className: (0, _classnames3.default)(_resizer.resizerHandleTrackClassName, handleHighlight),
146
+ "data-testid": "resizer-handle-".concat(position, "-track")
147
+ }));
148
+ if (!!handleTooltipContent) {
149
+ return _objectSpread(_objectSpread({}, result), {}, (0, _defineProperty2.default)({}, position, /*#__PURE__*/_react.default.createElement("div", {
150
+ contentEditable: false,
151
+ style: inheritedCSS
152
+ }, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
153
+ content: handleTooltipContent,
154
+ hideTooltipOnClick: true,
155
+ position: "mouse",
156
+ mousePosition: "auto-start",
157
+ testId: "resizer-handle-".concat(position, "-tooltip")
158
+ }, thumbWithTrack))));
159
+ }
160
+ return _objectSpread(_objectSpread({}, result), {}, (0, _defineProperty2.default)({}, position, /*#__PURE__*/_react.default.createElement("div", {
161
+ contentEditable: false,
162
+ style: inheritedCSS
144
163
  }, thumbWithTrack)));
164
+ } else {
165
+ var _thumbWithTrack =
166
+ /*#__PURE__*/
167
+ //It's important to have {thumb} element before the div, the thumb element is the one that gets focus and only the 1st element recives aria-descibedby attribute which is important for screen reader users
168
+ _react.default.createElement(_react.default.Fragment, null, thumb, /*#__PURE__*/_react.default.createElement("div", {
169
+ className: (0, _classnames3.default)(_resizer.resizerHandleTrackClassName, handleHighlight),
170
+ "data-testid": "resizer-handle-".concat(position, "-track")
171
+ }));
172
+ if (!!handleTooltipContent) {
173
+ return _objectSpread(_objectSpread({}, result), {}, (0, _defineProperty2.default)({}, position, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
174
+ content: handleTooltipContent,
175
+ hideTooltipOnClick: true,
176
+ position: "mouse",
177
+ mousePosition: "auto-start",
178
+ testId: "resizer-handle-".concat(position, "-tooltip")
179
+ }, _thumbWithTrack)));
180
+ }
181
+ return _objectSpread(_objectSpread({}, result), {}, (0, _defineProperty2.default)({}, position, _thumbWithTrack));
145
182
  }
146
- return _objectSpread(_objectSpread({}, result), {}, (0, _defineProperty2.default)({}, position, thumbWithTrack));
147
183
  }, {});
148
184
  }, [handleHighlight, handleTooltipContent]);
149
185
 
@@ -22,7 +22,7 @@ var _templateObject, _templateObject2, _templateObject3;
22
22
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
23
23
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** @jsx jsx */
24
24
  var packageName = "@atlaskit/editor-common";
25
- var packageVersion = "78.20.1";
25
+ var packageVersion = "78.20.2";
26
26
  var halfFocusRing = 1;
27
27
  var dropOffset = '0, 8';
28
28
  var DropList = /*#__PURE__*/function (_Component) {
@@ -1,6 +1,6 @@
1
1
  const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
2
2
  const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
3
- const packageVersion = "78.20.1";
3
+ const packageVersion = "78.20.2";
4
4
  const sanitiseSentryEvents = (data, _hint) => {
5
5
  // Remove URL as it has UGC
6
6
  // TODO: Sanitise the URL instead of just removing it
@@ -2,9 +2,19 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { forwardRef, useCallback, useImperativeHandle, useMemo, useRef, useState } from 'react';
3
3
  import classnames from 'classnames';
4
4
  import { Resizable } from 're-resizable';
5
+ import { getBooleanFF } from '@atlaskit/platform-feature-flags';
5
6
  import Tooltip from '@atlaskit/tooltip';
6
7
  import { handleWrapperClass, resizerDangerClassName, resizerExtendedZone, resizerHandleClassName, resizerHandleThumbClassName, resizerHandleTrackClassName, resizerHandleZIndex, resizerHoverZoneClassName, resizerItemClassName } from '../styles/shared/resizer';
7
8
  const SUPPORTED_HANDLES = ['left', 'right'];
9
+ const inheritedCSS = {
10
+ position: 'inherit',
11
+ height: 'inherit',
12
+ width: 'inherit',
13
+ display: 'inherit',
14
+ flexDirection: 'inherit',
15
+ justifyContent: 'inherit',
16
+ alignItems: 'inherit'
17
+ };
8
18
  const ResizerNext = (props, ref) => {
9
19
  const [isResizing, setIsResizing] = useState(false);
10
20
  const resizable = useRef(null);
@@ -114,29 +124,61 @@ const ResizerNext = (props, ref) => {
114
124
  [position]: thumb
115
125
  };
116
126
  }
117
- const thumbWithTrack =
118
- /*#__PURE__*/
119
- //It's important to have {thumb} element before the div, the thumb element is the one that gets focus and only the 1st element recives aria-descibedby attribute which is important for screen reader users
120
- React.createElement(React.Fragment, null, thumb, /*#__PURE__*/React.createElement("div", {
121
- className: classnames(resizerHandleTrackClassName, handleHighlight),
122
- "data-testid": `resizer-handle-${position}-track`
123
- }));
124
- if (!!handleTooltipContent) {
127
+ if (getBooleanFF('platform.editor.resizer.prevent-contenteditable')) {
128
+ const thumbWithTrack =
129
+ /*#__PURE__*/
130
+ //It's important to have {thumb} element before the div, the thumb element is the one that gets focus and only the 1st element recives aria-descibedby attribute which is important for screen reader users
131
+ React.createElement(React.Fragment, null, thumb, /*#__PURE__*/React.createElement("div", {
132
+ className: classnames(resizerHandleTrackClassName, handleHighlight),
133
+ "data-testid": `resizer-handle-${position}-track`
134
+ }));
135
+ if (!!handleTooltipContent) {
136
+ return {
137
+ ...result,
138
+ [position]: /*#__PURE__*/React.createElement("div", {
139
+ contentEditable: false,
140
+ style: inheritedCSS
141
+ }, /*#__PURE__*/React.createElement(Tooltip, {
142
+ content: handleTooltipContent,
143
+ hideTooltipOnClick: true,
144
+ position: "mouse",
145
+ mousePosition: "auto-start",
146
+ testId: `resizer-handle-${position}-tooltip`
147
+ }, thumbWithTrack))
148
+ };
149
+ }
125
150
  return {
126
151
  ...result,
127
- [position]: /*#__PURE__*/React.createElement(Tooltip, {
128
- content: handleTooltipContent,
129
- hideTooltipOnClick: true,
130
- position: "mouse",
131
- mousePosition: "auto-start",
132
- testId: `resizer-handle-${position}-tooltip`
152
+ [position]: /*#__PURE__*/React.createElement("div", {
153
+ contentEditable: false,
154
+ style: inheritedCSS
133
155
  }, thumbWithTrack)
134
156
  };
157
+ } else {
158
+ const thumbWithTrack =
159
+ /*#__PURE__*/
160
+ //It's important to have {thumb} element before the div, the thumb element is the one that gets focus and only the 1st element recives aria-descibedby attribute which is important for screen reader users
161
+ React.createElement(React.Fragment, null, thumb, /*#__PURE__*/React.createElement("div", {
162
+ className: classnames(resizerHandleTrackClassName, handleHighlight),
163
+ "data-testid": `resizer-handle-${position}-track`
164
+ }));
165
+ if (!!handleTooltipContent) {
166
+ return {
167
+ ...result,
168
+ [position]: /*#__PURE__*/React.createElement(Tooltip, {
169
+ content: handleTooltipContent,
170
+ hideTooltipOnClick: true,
171
+ position: "mouse",
172
+ mousePosition: "auto-start",
173
+ testId: `resizer-handle-${position}-tooltip`
174
+ }, thumbWithTrack)
175
+ };
176
+ }
177
+ return {
178
+ ...result,
179
+ [position]: thumbWithTrack
180
+ };
135
181
  }
136
- return {
137
- ...result,
138
- [position]: thumbWithTrack
139
- };
140
182
  }, {});
141
183
  }, [handleHighlight, handleTooltipContent]);
142
184
 
@@ -7,7 +7,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
7
7
  import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
8
8
  import Layer from '../Layer';
9
9
  const packageName = "@atlaskit/editor-common";
10
- const packageVersion = "78.20.1";
10
+ const packageVersion = "78.20.2";
11
11
  const halfFocusRing = 1;
12
12
  const dropOffset = '0, 8';
13
13
  class DropList extends Component {
@@ -6,7 +6,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
6
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
7
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
8
8
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
9
- var packageVersion = "78.20.1";
9
+ var packageVersion = "78.20.2";
10
10
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
11
11
  // Remove URL as it has UGC
12
12
  // TODO: Sanitise the URL instead of just removing it
@@ -8,9 +8,19 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
8
8
  import React, { forwardRef, useCallback, useImperativeHandle, useMemo, useRef, useState } from 'react';
9
9
  import classnames from 'classnames';
10
10
  import { Resizable } from 're-resizable';
11
+ import { getBooleanFF } from '@atlaskit/platform-feature-flags';
11
12
  import Tooltip from '@atlaskit/tooltip';
12
13
  import { handleWrapperClass, resizerDangerClassName, resizerExtendedZone, resizerHandleClassName, resizerHandleThumbClassName, resizerHandleTrackClassName, resizerHandleZIndex, resizerHoverZoneClassName, resizerItemClassName } from '../styles/shared/resizer';
13
14
  var SUPPORTED_HANDLES = ['left', 'right'];
15
+ var inheritedCSS = {
16
+ position: 'inherit',
17
+ height: 'inherit',
18
+ width: 'inherit',
19
+ display: 'inherit',
20
+ flexDirection: 'inherit',
21
+ justifyContent: 'inherit',
22
+ alignItems: 'inherit'
23
+ };
14
24
  var ResizerNext = function ResizerNext(props, ref) {
15
25
  var _useState = useState(false),
16
26
  _useState2 = _slicedToArray(_useState, 2),
@@ -117,23 +127,49 @@ var ResizerNext = function ResizerNext(props, ref) {
117
127
  if ((!handleHighlight || handleHighlight === 'none') && !handleTooltipContent) {
118
128
  return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, position, thumb));
119
129
  }
120
- var thumbWithTrack =
121
- /*#__PURE__*/
122
- //It's important to have {thumb} element before the div, the thumb element is the one that gets focus and only the 1st element recives aria-descibedby attribute which is important for screen reader users
123
- React.createElement(React.Fragment, null, thumb, /*#__PURE__*/React.createElement("div", {
124
- className: classnames(resizerHandleTrackClassName, handleHighlight),
125
- "data-testid": "resizer-handle-".concat(position, "-track")
126
- }));
127
- if (!!handleTooltipContent) {
128
- return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, position, /*#__PURE__*/React.createElement(Tooltip, {
129
- content: handleTooltipContent,
130
- hideTooltipOnClick: true,
131
- position: "mouse",
132
- mousePosition: "auto-start",
133
- testId: "resizer-handle-".concat(position, "-tooltip")
130
+ if (getBooleanFF('platform.editor.resizer.prevent-contenteditable')) {
131
+ var thumbWithTrack =
132
+ /*#__PURE__*/
133
+ //It's important to have {thumb} element before the div, the thumb element is the one that gets focus and only the 1st element recives aria-descibedby attribute which is important for screen reader users
134
+ React.createElement(React.Fragment, null, thumb, /*#__PURE__*/React.createElement("div", {
135
+ className: classnames(resizerHandleTrackClassName, handleHighlight),
136
+ "data-testid": "resizer-handle-".concat(position, "-track")
137
+ }));
138
+ if (!!handleTooltipContent) {
139
+ return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, position, /*#__PURE__*/React.createElement("div", {
140
+ contentEditable: false,
141
+ style: inheritedCSS
142
+ }, /*#__PURE__*/React.createElement(Tooltip, {
143
+ content: handleTooltipContent,
144
+ hideTooltipOnClick: true,
145
+ position: "mouse",
146
+ mousePosition: "auto-start",
147
+ testId: "resizer-handle-".concat(position, "-tooltip")
148
+ }, thumbWithTrack))));
149
+ }
150
+ return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, position, /*#__PURE__*/React.createElement("div", {
151
+ contentEditable: false,
152
+ style: inheritedCSS
134
153
  }, thumbWithTrack)));
154
+ } else {
155
+ var _thumbWithTrack =
156
+ /*#__PURE__*/
157
+ //It's important to have {thumb} element before the div, the thumb element is the one that gets focus and only the 1st element recives aria-descibedby attribute which is important for screen reader users
158
+ React.createElement(React.Fragment, null, thumb, /*#__PURE__*/React.createElement("div", {
159
+ className: classnames(resizerHandleTrackClassName, handleHighlight),
160
+ "data-testid": "resizer-handle-".concat(position, "-track")
161
+ }));
162
+ if (!!handleTooltipContent) {
163
+ return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, position, /*#__PURE__*/React.createElement(Tooltip, {
164
+ content: handleTooltipContent,
165
+ hideTooltipOnClick: true,
166
+ position: "mouse",
167
+ mousePosition: "auto-start",
168
+ testId: "resizer-handle-".concat(position, "-tooltip")
169
+ }, _thumbWithTrack)));
170
+ }
171
+ return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, position, _thumbWithTrack));
135
172
  }
136
- return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, position, thumbWithTrack));
137
173
  }, {});
138
174
  }, [handleHighlight, handleTooltipContent]);
139
175
 
@@ -17,7 +17,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
17
17
  import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
18
18
  import Layer from '../Layer';
19
19
  var packageName = "@atlaskit/editor-common";
20
- var packageVersion = "78.20.1";
20
+ var packageVersion = "78.20.2";
21
21
  var halfFocusRing = 1;
22
22
  var dropOffset = '0, 8';
23
23
  var DropList = /*#__PURE__*/function (_Component) {
@@ -32,4 +32,5 @@ export interface HyperlinkPluginOptions {
32
32
  platform?: 'mobile' | 'web';
33
33
  editorAppearance?: EditorAppearance;
34
34
  lpLinkPicker?: boolean;
35
+ disableFloatingToolbar?: boolean;
35
36
  }
@@ -32,4 +32,5 @@ export interface HyperlinkPluginOptions {
32
32
  platform?: 'mobile' | 'web';
33
33
  editorAppearance?: EditorAppearance;
34
34
  lpLinkPicker?: boolean;
35
+ disableFloatingToolbar?: boolean;
35
36
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "78.20.1",
3
+ "version": "78.20.2",
4
4
  "description": "A package that contains common classes and components for editor and renderer",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -234,6 +234,9 @@
234
234
  "platform.editor.ordered-list-auto-join-improvements_mrlv5": {
235
235
  "type": "boolean"
236
236
  },
237
+ "platform.editor.resizer.prevent-contenteditable": {
238
+ "type": "boolean"
239
+ },
237
240
  "platform.editor.a11y-floating-toolbar-markup_vexmo": {
238
241
  "type": "boolean"
239
242
  },