@atlaskit/editor-common 114.48.0 → 114.49.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 (62) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/cjs/block-menu/index.js +6 -0
  3. package/dist/cjs/block-menu/key.js +4 -1
  4. package/dist/cjs/clipboard/index.js +43 -42
  5. package/dist/cjs/element-browser/components/ElementList/ElementList.js +4 -1
  6. package/dist/cjs/extensibility/ExtensionComponent.js +15 -15
  7. package/dist/cjs/extensions/combine-extension-providers.js +7 -7
  8. package/dist/cjs/extensions/default-extension-provider.js +25 -28
  9. package/dist/cjs/extensions/extension-handlers.js +8 -8
  10. package/dist/cjs/extensions/manifest-helpers.js +7 -7
  11. package/dist/cjs/extensions/module-helpers.js +10 -10
  12. package/dist/cjs/floating-toolbar/DropdownMenuExtensionItems.js +17 -18
  13. package/dist/cjs/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.js +2 -1
  14. package/dist/cjs/link/LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar.js +92 -97
  15. package/dist/cjs/link/LinkSearch/index.js +47 -54
  16. package/dist/cjs/monitoring/error.js +15 -15
  17. package/dist/cjs/provider-helpers/combine-providers.js +24 -26
  18. package/dist/cjs/safe-plugin/index.js +2 -1
  19. package/dist/cjs/ui/DropList/index.js +1 -1
  20. package/dist/cjs/user-preferences/user-preferences-provider.js +8 -8
  21. package/dist/cjs/utils/index.js +6 -0
  22. package/dist/cjs/utils/node-type-utils.js +21 -1
  23. package/dist/cjs/utils/processRawValue.js +15 -0
  24. package/dist/es2019/block-menu/index.js +1 -1
  25. package/dist/es2019/block-menu/key.js +3 -0
  26. package/dist/es2019/element-browser/components/ElementList/ElementList.js +4 -1
  27. package/dist/es2019/monitoring/error.js +1 -1
  28. package/dist/es2019/ui/DropList/index.js +1 -1
  29. package/dist/es2019/utils/index.js +1 -1
  30. package/dist/es2019/utils/node-type-utils.js +20 -1
  31. package/dist/es2019/utils/processRawValue.js +17 -1
  32. package/dist/esm/block-menu/index.js +1 -1
  33. package/dist/esm/block-menu/key.js +3 -0
  34. package/dist/esm/clipboard/index.js +42 -41
  35. package/dist/esm/element-browser/components/ElementList/ElementList.js +4 -1
  36. package/dist/esm/extensibility/ExtensionComponent.js +14 -14
  37. package/dist/esm/extensions/combine-extension-providers.js +7 -7
  38. package/dist/esm/extensions/default-extension-provider.js +25 -28
  39. package/dist/esm/extensions/extension-handlers.js +8 -8
  40. package/dist/esm/extensions/manifest-helpers.js +7 -7
  41. package/dist/esm/extensions/module-helpers.js +10 -10
  42. package/dist/esm/floating-toolbar/DropdownMenuExtensionItems.js +16 -17
  43. package/dist/esm/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.js +2 -1
  44. package/dist/esm/link/LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar.js +91 -96
  45. package/dist/esm/link/LinkSearch/index.js +47 -54
  46. package/dist/esm/monitoring/error.js +14 -14
  47. package/dist/esm/provider-helpers/combine-providers.js +24 -26
  48. package/dist/esm/safe-plugin/index.js +2 -1
  49. package/dist/esm/ui/DropList/index.js +1 -1
  50. package/dist/esm/user-preferences/user-preferences-provider.js +8 -8
  51. package/dist/esm/utils/index.js +1 -1
  52. package/dist/esm/utils/node-type-utils.js +20 -1
  53. package/dist/esm/utils/processRawValue.js +16 -1
  54. package/dist/types/block-menu/index.d.ts +1 -1
  55. package/dist/types/block-menu/key.d.ts +3 -0
  56. package/dist/types/utils/index.d.ts +1 -1
  57. package/dist/types/utils/node-type-utils.d.ts +7 -1
  58. package/dist/types-ts4.5/block-menu/index.d.ts +1 -1
  59. package/dist/types-ts4.5/block-menu/key.d.ts +3 -0
  60. package/dist/types-ts4.5/utils/index.d.ts +1 -1
  61. package/dist/types-ts4.5/utils/node-type-utils.d.ts +7 -1
  62. package/package.json +6 -6
@@ -16,10 +16,10 @@ var _environment = require("./environment");
16
16
  var _normaliseSentryBreadcrumbs = require("./normalise-sentry-breadcrumbs");
17
17
  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; }
18
18
  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; }
19
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
19
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
20
20
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
21
21
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
22
- var packageVersion = "114.47.3";
22
+ var packageVersion = "114.48.1";
23
23
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
24
24
  // Remove URL as it has UGC
25
25
  // Ignored via go/ees007
@@ -32,31 +32,31 @@ var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
32
32
  };
33
33
  var logException = exports.logException = /*#__PURE__*/function () {
34
34
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(error, tags) {
35
- var _process$env$CLOUD_EN, _yield$import, BrowserClient, defaultIntegrations, getCurrentHub, _yield$import2, ExtraErrorData, breadcrumbsIntegration, sentryOptions, client, hub;
36
- return _regenerator.default.wrap(function _callee$(_context) {
35
+ var _process$env$CLOUD_EN, _yield$import, BrowserClient, defaultIntegrations, getCurrentHub, _yield$import2, ExtraErrorData, breadcrumbsIntegration, sentryOptions, client, hub, _t;
36
+ return _regenerator.default.wrap(function (_context) {
37
37
  while (1) switch (_context.prev = _context.next) {
38
38
  case 0:
39
39
  _context.prev = 0;
40
40
  if (!(process.env.NODE_ENV !== 'production' || process.env.CLOUD_ENV === 'branch')) {
41
- _context.next = 3;
41
+ _context.next = 1;
42
42
  break;
43
43
  }
44
44
  return _context.abrupt("return");
45
- case 3:
46
- _context.next = 5;
45
+ case 1:
46
+ _context.next = 2;
47
47
  return Promise.resolve().then(function () {
48
48
  return _interopRequireWildcard(require( /* webpackChunkName: "@atlaskit-internal_editor-sentrybrowser" */'@sentry/browser'));
49
49
  });
50
- case 5:
50
+ case 2:
51
51
  _yield$import = _context.sent;
52
52
  BrowserClient = _yield$import.BrowserClient;
53
53
  defaultIntegrations = _yield$import.defaultIntegrations;
54
54
  getCurrentHub = _yield$import.getCurrentHub;
55
- _context.next = 11;
55
+ _context.next = 3;
56
56
  return Promise.resolve().then(function () {
57
57
  return _interopRequireWildcard(require( /* webpackChunkName: "@atlaskit-internal_editor-sentryintegrations" */'@sentry/integrations'));
58
58
  });
59
- case 11:
59
+ case 3:
60
60
  _yield$import2 = _context.sent;
61
61
  ExtraErrorData = _yield$import2.ExtraErrorData;
62
62
  breadcrumbsIntegration = (0, _platformFeatureFlags.fg)('platform_editor_sentry_breadcrumbs') ? new _browser.Integrations.Breadcrumbs({
@@ -129,14 +129,14 @@ var logException = exports.logException = /*#__PURE__*/function () {
129
129
 
130
130
  // @ts-ignore - TypeScript 5.9.2 upgrade
131
131
  return _context.abrupt("return", client.close());
132
- case 22:
133
- _context.prev = 22;
134
- _context.t0 = _context["catch"](0);
135
- case 24:
132
+ case 4:
133
+ _context.prev = 4;
134
+ _t = _context["catch"](0);
135
+ case 5:
136
136
  case "end":
137
137
  return _context.stop();
138
138
  }
139
- }, _callee, null, [[0, 22]]);
139
+ }, _callee, null, [[0, 4]]);
140
140
  }));
141
141
  return function logException(_x, _x2) {
142
142
  return _ref.apply(this, arguments);
@@ -25,19 +25,19 @@ var _default = exports.default = function _default(providers) {
25
25
  var getFulfilledProviders = /*#__PURE__*/function () {
26
26
  var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
27
27
  var results;
28
- return _regenerator.default.wrap(function _callee$(_context) {
28
+ return _regenerator.default.wrap(function (_context) {
29
29
  while (1) switch (_context.prev = _context.next) {
30
30
  case 0:
31
- _context.next = 2;
31
+ _context.next = 1;
32
32
  return (0, _promiseHelpers.waitForAllPromises)(providers.map(function (result) {
33
33
  return Promise.resolve(result);
34
34
  }));
35
- case 2:
35
+ case 1:
36
36
  results = _context.sent;
37
37
  return _context.abrupt("return", (0, _promiseHelpers.getOnlyFulfilled)(results).filter(function (provider) {
38
38
  return provider != null;
39
39
  }));
40
- case 4:
40
+ case 2:
41
41
  case "end":
42
42
  return _context.stop();
43
43
  }
@@ -49,16 +49,16 @@ var _default = exports.default = function _default(providers) {
49
49
  }();
50
50
  var runInAllProviders = /*#__PURE__*/function () {
51
51
  var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(mapFunction) {
52
- return _regenerator.default.wrap(function _callee2$(_context2) {
52
+ return _regenerator.default.wrap(function (_context2) {
53
53
  while (1) switch (_context2.prev = _context2.next) {
54
54
  case 0:
55
- _context2.next = 2;
55
+ _context2.next = 1;
56
56
  return getFulfilledProviders();
57
- case 2:
57
+ case 1:
58
58
  return _context2.abrupt("return", _context2.sent.map(function (provider) {
59
59
  return mapFunction(provider);
60
60
  }));
61
- case 3:
61
+ case 2:
62
62
  case "end":
63
63
  return _context2.stop();
64
64
  }
@@ -90,18 +90,17 @@ var _default = exports.default = function _default(providers) {
90
90
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
91
91
  var invokeSingle = /*#__PURE__*/function () {
92
92
  var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(methodName, args) {
93
- var callback;
94
- return _regenerator.default.wrap(function _callee3$(_context3) {
93
+ var callback, _t;
94
+ return _regenerator.default.wrap(function (_context3) {
95
95
  while (1) switch (_context3.prev = _context3.next) {
96
96
  case 0:
97
97
  callback = createCallback(methodName, args);
98
- _context3.t0 = _promiseHelpers.waitForFirstFulfilledPromise;
99
- _context3.next = 4;
98
+ _t = _promiseHelpers.waitForFirstFulfilledPromise;
99
+ _context3.next = 1;
100
100
  return runInAllProviders(callback);
101
- case 4:
102
- _context3.t1 = _context3.sent;
103
- return _context3.abrupt("return", (0, _context3.t0)(_context3.t1));
104
- case 6:
101
+ case 1:
102
+ return _context3.abrupt("return", _t(_context3.sent));
103
+ case 2:
105
104
  case "end":
106
105
  return _context3.stop();
107
106
  }
@@ -121,25 +120,24 @@ var _default = exports.default = function _default(providers) {
121
120
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
122
121
  var invokeList = /*#__PURE__*/function () {
123
122
  var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(methodName, args) {
124
- var callback, results, fulfilledResults;
125
- return _regenerator.default.wrap(function _callee4$(_context4) {
123
+ var callback, results, fulfilledResults, _t2;
124
+ return _regenerator.default.wrap(function (_context4) {
126
125
  while (1) switch (_context4.prev = _context4.next) {
127
126
  case 0:
128
127
  callback = createCallback(methodName, args);
129
- _context4.t0 = _promiseHelpers.waitForAllPromises;
130
- _context4.next = 4;
128
+ _t2 = _promiseHelpers.waitForAllPromises;
129
+ _context4.next = 1;
131
130
  return runInAllProviders(callback);
132
- case 4:
133
- _context4.t1 = _context4.sent;
134
- _context4.next = 7;
135
- return (0, _context4.t0)(_context4.t1);
136
- case 7:
131
+ case 1:
132
+ _context4.next = 2;
133
+ return _t2(_context4.sent);
134
+ case 2:
137
135
  results = _context4.sent;
138
136
  fulfilledResults = (0, _promiseHelpers.getOnlyFulfilled)(results);
139
137
  return _context4.abrupt("return", flatten(fulfilledResults).filter(function (result) {
140
138
  return result;
141
139
  }));
142
- case 10:
140
+ case 3:
143
141
  case "end":
144
142
  return _context4.stop();
145
143
  }
@@ -22,6 +22,7 @@ var _prosemirrorDomMetadata = require("../prosemirror-dom-metadata");
22
22
  var _nativeAnchor = require("../styles/shared/native-anchor");
23
23
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
24
24
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
25
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
25
26
  /**
26
27
  * 🧱 Internal Helper Function: Editor FE Platform
27
28
  *
@@ -86,7 +87,7 @@ var wrapGetPosExceptions = function wrapGetPosExceptions(spec) {
86
87
  node = _argumentsList[0],
87
88
  view = _argumentsList[1],
88
89
  unsafeGetPos = _argumentsList[2],
89
- more = _argumentsList.slice(3);
90
+ more = _arrayLikeToArray(_argumentsList).slice(3);
90
91
  if (!nodeIdProvider && (0, _expValEquals.expValEquals)('platform_editor_native_anchor_with_dnd', 'isEnabled', true)) {
91
92
  nodeIdProvider = (0, _nodeAnchorProvider.getNodeIdProvider)(view);
92
93
  }
@@ -24,7 +24,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
24
24
  * @jsx jsx
25
25
  */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
26
26
  var packageName = "@atlaskit/editor-common";
27
- var packageVersion = "114.47.3";
27
+ var packageVersion = "114.48.1";
28
28
  var halfFocusRing = 1;
29
29
  var dropOffset = '0, 8';
30
30
  var fadeIn = (0, _react2.keyframes)({
@@ -65,15 +65,15 @@ var UserPreferencesProvider = exports.UserPreferencesProvider = /*#__PURE__*/fun
65
65
  value: (function () {
66
66
  var _loadPreferences = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
67
67
  var userPreferences;
68
- return _regenerator.default.wrap(function _callee$(_context) {
68
+ return _regenerator.default.wrap(function (_context) {
69
69
  while (1) switch (_context.prev = _context.next) {
70
70
  case 0:
71
- _context.next = 2;
71
+ _context.next = 1;
72
72
  return this.persistenceAPI.loadUserPreferences();
73
- case 2:
73
+ case 1:
74
74
  userPreferences = _context.sent;
75
75
  this.setUserPreferences(userPreferences);
76
- case 4:
76
+ case 2:
77
77
  case "end":
78
78
  return _context.stop();
79
79
  }
@@ -98,15 +98,15 @@ var UserPreferencesProvider = exports.UserPreferencesProvider = /*#__PURE__*/fun
98
98
  value: (function () {
99
99
  var _updatePreference = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(key, value) {
100
100
  var userPreferences;
101
- return _regenerator.default.wrap(function _callee2$(_context2) {
101
+ return _regenerator.default.wrap(function (_context2) {
102
102
  while (1) switch (_context2.prev = _context2.next) {
103
103
  case 0:
104
- _context2.next = 2;
104
+ _context2.next = 1;
105
105
  return this.persistenceAPI.updateUserPreference(key, value);
106
- case 2:
106
+ case 1:
107
107
  userPreferences = _context2.sent;
108
108
  this.setUserPreferences(userPreferences);
109
- case 4:
109
+ case 2:
110
110
  case "end":
111
111
  return _context2.stop();
112
112
  }
@@ -785,6 +785,12 @@ Object.defineProperty(exports, "isNodeSelectedOrInRange", {
785
785
  return _nodes.isNodeSelectedOrInRange;
786
786
  }
787
787
  });
788
+ Object.defineProperty(exports, "isNodeTypeValidChildOf", {
789
+ enumerable: true,
790
+ get: function get() {
791
+ return _nodeTypeUtils.isNodeTypeValidChildOf;
792
+ }
793
+ });
788
794
  Object.defineProperty(exports, "isParagraph", {
789
795
  enumerable: true,
790
796
  get: function get() {
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getBaseNodeTypeName = getBaseNodeTypeName;
7
7
  exports.isNodeOfSameBaseType = isNodeOfSameBaseType;
8
+ exports.isNodeTypeValidChildOf = isNodeTypeValidChildOf;
9
+ var _model = require("@atlaskit/editor-prosemirror/model");
8
10
  /**
9
11
  * Returns the base name of a node type, stripping known variant suffixes.
10
12
  */
@@ -24,4 +26,22 @@ function getBaseNodeTypeName(nodeType) {
24
26
  */
25
27
  function isNodeOfSameBaseType(a, b) {
26
28
  return getBaseNodeTypeName(a) === getBaseNodeTypeName(b);
27
- }
29
+ }
30
+
31
+ /**
32
+ * Checks if a node type is a valid child of a parent node by creating a minimal valid
33
+ * instance and validating it against the parent's content expression. Unlike ProseMirror's
34
+ * canReplaceWith, this checks general type compatibility without requiring a specific insertion index.
35
+ */
36
+ function isNodeTypeValidChildOf(childTypeName, parentNode, schema) {
37
+ var childType = schema.nodes[childTypeName];
38
+ if (!childType) {
39
+ return false;
40
+ }
41
+ var candidate = childType.createAndFill();
42
+ if (!candidate) {
43
+ return false;
44
+ }
45
+ return parentNode.type.validContent(_model.Fragment.from(candidate));
46
+ }
47
+ ;
@@ -9,6 +9,7 @@ exports.processRawValueWithoutValidation = processRawValueWithoutValidation;
9
9
  var _transforms = require("@atlaskit/adf-utils/transforms");
10
10
  var _model = require("@atlaskit/editor-prosemirror/model");
11
11
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
+ var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
12
13
  var _analytics = require("../analytics");
13
14
  var _utilities = require("../nesting/utilities");
14
15
  var _privacyFilter = require("./filter/privacy-filter");
@@ -75,6 +76,12 @@ function processRawValueWithoutValidation(schema, value, dispatchAnalyticsEvent)
75
76
  if (result.isTransformed && result.transformedAdf) {
76
77
  transformedAdf = result.transformedAdf;
77
78
  }
79
+ if ((0, _expValEquals.expValEquals)('platform_editor_nest_table_in_panel', 'isEnabled', true)) {
80
+ var containerNodeTransformResult = (0, _transforms.transformContainerNodes)(transformedAdf, schema);
81
+ if (containerNodeTransformResult.isTransformed && containerNodeTransformResult.transformedAdf) {
82
+ transformedAdf = containerNodeTransformResult.transformedAdf;
83
+ }
84
+ }
78
85
  return _model.Node.fromJSON(schema, transformedAdf);
79
86
  }
80
87
  function processRawValue(schema, value, providerFactory, sanitizePrivateContent, contentTransformer, dispatchAnalyticsEvent) {
@@ -245,6 +252,14 @@ function processRawValue(schema, value, providerFactory, sanitizePrivateContent,
245
252
  var _transformNestedTable3 = transformNestedTablesWithAnalytics(entity, dispatchAnalyticsEvent);
246
253
  transformedAdf = _transformNestedTable3.transformedAdf;
247
254
  entity = transformedAdf;
255
+ if ((0, _expValEquals.expValEquals)('platform_editor_nest_table_in_panel', 'isEnabled', true)) {
256
+ var _transformContainerNo = (0, _transforms.transformContainerNodes)(entity, schema);
257
+ transformedAdf = _transformContainerNo.transformedAdf;
258
+ isTransformed = _transformContainerNo.isTransformed;
259
+ if (isTransformed) {
260
+ entity = transformedAdf;
261
+ }
262
+ }
248
263
  var newEntity = maySanitizePrivateContent(entity, providerFactory, sanitizePrivateContent);
249
264
  var parsedDoc = _model.Node.fromJSON(schema, newEntity);
250
265
 
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @atlaskit/editor/no-re-export */
2
2
  export { messages } from './messages';
3
- export { BLOCK_ACTIONS_MENU_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SLOT_MENU_ITEM, BLOCK_ACTIONS_TEMPLATE_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SECTION_KEYS, BLOCK_ACTIONS_CREATE_SYNCED_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_LINK_TO_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_MENU_SECTION, DELETE_MENU_SECTION, DELETE_MENU_ITEM, POSITION_MENU_SECTION, POSITION_MOVE_UP_MENU_ITEM, POSITION_MOVE_DOWN_MENU_ITEM, TRANSFORM_MENU_SECTION, TRANSFORM_MENU_ITEM, TRANSFORM_CLEAR_MENU_SECTION, TRANSFORM_CLEAR_MENU_ITEM, TRANSFORM_CREATE_MENU_SECTION, TRANSFORM_HEADINGS_MENU_SECTION, TRANSFORM_HEADINGS_H1_MENU_ITEM, TRANSFORM_HEADINGS_H2_MENU_ITEM, TRANSFORM_HEADINGS_H3_MENU_ITEM, TRANSFORM_HEADINGS_H4_MENU_ITEM, TRANSFORM_HEADINGS_H5_MENU_ITEM, TRANSFORM_HEADINGS_H6_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_SECTION, TRANSFORM_STRUCTURE_MENU_SECTION, TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM, TRANSFORM_STRUCTURE_PANEL_MENU_ITEM, TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM, TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM, TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM, TRANSFORM_STRUCTURE_DECISION_MENU_ITEM, TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_ITEM, TRANSFORM_DEFAULT_EXTENSION_SLOT_MENU_ITEM, BLOCK_MENU_ACTION_TEST_ID, BLOCK_MENU_TEST_ID, EXTENSION_MENU_ITEM_TEST_ID, AI_MENU_SECTION, AI_ASK_ROVO_MENU_ITEM, AI_IMPROVE_WRITING_MENU_ITEM, AI_POLISH_MENU_ITEM } from './key';
3
+ export { BLOCK_ACTIONS_MENU_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SLOT_MENU_ITEM, BLOCK_ACTIONS_TEMPLATE_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SECTION_KEYS, BLOCK_ACTIONS_CREATE_SYNCED_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_LINK_TO_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_MENU_SECTION, DELETE_MENU_SECTION, DELETE_MENU_ITEM, POSITION_MENU_SECTION, POSITION_MOVE_UP_MENU_ITEM, POSITION_MOVE_DOWN_MENU_ITEM, TRANSFORM_MENU_SECTION, TRANSFORM_MENU_ITEM, TRANSFORM_CLEAR_MENU_SECTION, TRANSFORM_CLEAR_MENU_ITEM, TRANSFORM_CREATE_MENU_SECTION, TRANSFORM_HEADINGS_MENU_SECTION, TRANSFORM_HEADINGS_H1_MENU_ITEM, TRANSFORM_HEADINGS_H2_MENU_ITEM, TRANSFORM_HEADINGS_H3_MENU_ITEM, TRANSFORM_HEADINGS_H4_MENU_ITEM, TRANSFORM_HEADINGS_H5_MENU_ITEM, TRANSFORM_HEADINGS_H6_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_SECTION, TRANSFORM_STRUCTURE_MENU_SECTION, TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM, TRANSFORM_STRUCTURE_PANEL_MENU_ITEM, TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM, TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM, TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM, TRANSFORM_STRUCTURE_DECISION_MENU_ITEM, TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_ITEM, TRANSFORM_DEFAULT_EXTENSION_SLOT_MENU_ITEM, BLOCK_MENU_ACTION_TEST_ID, BLOCK_MENU_TEST_ID, EXTENSION_MENU_ITEM_TEST_ID, AI_MENU_SECTION, AI_ASK_ROVO_MENU_ITEM, AI_IMPROVE_WRITING_MENU_ITEM, AI_POLISH_MENU_ITEM, AI_REMIX_MENU_ITEM } from './key';
4
4
  export { FORMAT_HEADING_1_MENU_ITEM, FORMAT_HEADING_2_MENU_ITEM, FORMAT_HEADING_3_MENU_ITEM, FORMAT_HEADING_4_MENU_ITEM, FORMAT_HEADING_5_MENU_ITEM, FORMAT_HEADING_6_MENU_ITEM, FORMAT_PARAGRAPH_MENU_ITEM, FORMAT_QUOTE_MENU_ITEM, FORMAT_EXPAND_MENU_ITEM, FORMAT_LAYOUT_MENU_ITEM, FORMAT_PANEL_MENU_ITEM, FORMAT_CODE_BLOCK_MENU_ITEM, FORMAT_BULLETED_LIST_MENU_ITEM, FORMAT_NUMBERED_LIST_MENU_ITEM, FORMAT_TASK_LIST_MENU_ITEM, COPY_MENU_SECTION, MOVE_UP_DOWN_MENU_SECTION, COPY_LINK_MENU_ITEM, MOVE_UP_MENU_ITEM, MOVE_DOWN_MENU_ITEM, NESTED_FORMAT_MENU_SECTION, FORMAT_MENU_ITEM, NESTED_FORMAT_MENU, PRIMARY_MENU_SECTION, ADD_BLOCKS_MENU_SECTION, CREATE_SYNCED_BLOCK_MENU_ITEM } from './key-deprecated';
5
5
  export { MAIN_BLOCK_MENU_SECTION_RANK, TRANSFORM_MENU_SECTION_RANK, BLOCK_ACTIONS_FEATURED_EXTENSION_ITEM_RANK, TRANSFORM_MENU_ITEM_RANK, TRANSFORM_HEADINGS_MENU_SECTION_RANK, TRANSFORM_STRUCTURE_MENU_SECTION_RANK, TRANSFORM_CLEAR_MENU_SECTION_RANK, BLOCK_ACTIONS_MENU_SECTION_RANK, BLOCK_ACTIONS_COPY_MENU_SECTION_RANK, POSITION_MENU_SECTION_RANK, DELETE_MENU_SECTION_RANK, TRANSFORM_SUGGESTED_MENU_SECTION_RANK, TRANSFORM_CREATE_MENU_SECTION_RANK, AI_MENU_SECTION_RANK } from './rank';
6
6
  export { FORMAT_NESTED_MENU_RANK, FORMAT_NESTED_MENU_RANK_REVISED, BLOCK_MENU_SECTION_RANK, PRIMARY_MENU_SECTION_RANK, COPY_MENU_SECTION_RANK, DELETE_SECTION_RANK, MOVE_BLOCK_SECTION_RANK, ADD_BLOCKS_MENU_SECTION_RANK } from './rank-deprecated';
@@ -148,4 +148,7 @@ export const AI_IMPROVE_WRITING_MENU_ITEM = {
148
148
  };
149
149
  export const AI_POLISH_MENU_ITEM = {
150
150
  key: 'block-menu-ai-polish-menu-item'
151
+ };
152
+ export const AI_REMIX_MENU_ITEM = {
153
+ key: 'block-menu-ai-remix-menu-item'
151
154
  };
@@ -414,11 +414,14 @@ export function ElementItem({
414
414
  id: `searched-item-${index}`,
415
415
  isDisabled: isDisabled,
416
416
  role: role
417
+ // @ts-expect-error -- see A11Y-30538
418
+ ,
419
+ tabIndex: expValEquals('platform_editor_fix_a11y_tab_focus_insertion_menu', 'isEnabled', true) ? -1 : undefined
417
420
  }, jsx(ItemContent
418
421
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
419
422
  , {
420
423
  style: inlineMode ? null : itemStyleOverrides,
421
- tabIndex: 0,
424
+ tabIndex: expValEquals('platform_editor_fix_a11y_tab_focus_insertion_menu', 'isEnabled', true) ? undefined : 0,
422
425
  title: title,
423
426
  description: description,
424
427
  keyshortcut: keyshortcut,
@@ -4,7 +4,7 @@ import { isFedRamp } from './environment';
4
4
  import { normaliseSentryBreadcrumbs, SERIALIZABLE_ATTRIBUTES } from './normalise-sentry-breadcrumbs';
5
5
  const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
6
6
  const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
7
- const packageVersion = "114.47.3";
7
+ const packageVersion = "114.48.1";
8
8
  const sanitiseSentryEvents = (data, _hint) => {
9
9
  // Remove URL as it has UGC
10
10
  // Ignored via go/ees007
@@ -14,7 +14,7 @@ import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
14
14
  import { fg } from '@atlaskit/platform-feature-flags';
15
15
  import Layer from '../Layer';
16
16
  const packageName = "@atlaskit/editor-common";
17
- const packageVersion = "114.47.3";
17
+ const packageVersion = "114.48.1";
18
18
  const halfFocusRing = 1;
19
19
  const dropOffset = '0, 8';
20
20
  const fadeIn = keyframes({
@@ -363,4 +363,4 @@ export { calculateToolbarPositionAboveSelection, calculateToolbarPositionOnCellS
363
363
  export { findNodePosByLocalIds } from './nodes-by-localIds';
364
364
  export { getPageElementCounts } from './page-element-counts';
365
365
  export { withFeatureFlaggedComponent } from './withFeatureFlaggedComponent';
366
- export { isNodeOfSameBaseType, getBaseNodeTypeName } from './node-type-utils';
366
+ export { isNodeOfSameBaseType, getBaseNodeTypeName, isNodeTypeValidChildOf } from './node-type-utils';
@@ -1,3 +1,4 @@
1
+ import { Fragment } from '@atlaskit/editor-prosemirror/model';
1
2
  /**
2
3
  * Returns the base name of a node type, stripping known variant suffixes.
3
4
  */
@@ -17,4 +18,22 @@ export function getBaseNodeTypeName(nodeType) {
17
18
  */
18
19
  export function isNodeOfSameBaseType(a, b) {
19
20
  return getBaseNodeTypeName(a) === getBaseNodeTypeName(b);
20
- }
21
+ }
22
+
23
+ /**
24
+ * Checks if a node type is a valid child of a parent node by creating a minimal valid
25
+ * instance and validating it against the parent's content expression. Unlike ProseMirror's
26
+ * canReplaceWith, this checks general type compatibility without requiring a specific insertion index.
27
+ */
28
+ export function isNodeTypeValidChildOf(childTypeName, parentNode, schema) {
29
+ const childType = schema.nodes[childTypeName];
30
+ if (!childType) {
31
+ return false;
32
+ }
33
+ const candidate = childType.createAndFill();
34
+ if (!candidate) {
35
+ return false;
36
+ }
37
+ return parentNode.type.validContent(Fragment.from(candidate));
38
+ }
39
+ ;
@@ -1,6 +1,7 @@
1
- import { syncBlockFallbackTransform, transformDedupeMarks, transformIndentationMarks, transformInvalidMediaContent, transformMediaLinkMarks, transformNestedTablesIncomingDocument, transformNodesMissingContent, transformTextLinkCodeMarks, transformMediaSingleWidth } from '@atlaskit/adf-utils/transforms';
1
+ import { syncBlockFallbackTransform, transformDedupeMarks, transformIndentationMarks, transformInvalidMediaContent, transformMediaLinkMarks, transformNestedTablesIncomingDocument, transformNodesMissingContent, transformTextLinkCodeMarks, transformMediaSingleWidth, transformContainerNodes } from '@atlaskit/adf-utils/transforms';
2
2
  import { Fragment, Node } from '@atlaskit/editor-prosemirror/model';
3
3
  import { fg } from '@atlaskit/platform-feature-flags';
4
+ import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
4
5
  import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '../analytics';
5
6
  import { isNestedTablesSupported, isPanelNestingTableSupported } from '../nesting/utilities';
6
7
  import { sanitizeNodeForPrivacy } from './filter/privacy-filter';
@@ -69,6 +70,12 @@ export function processRawValueWithoutValidation(schema, value, dispatchAnalytic
69
70
  if (result.isTransformed && result.transformedAdf) {
70
71
  transformedAdf = result.transformedAdf;
71
72
  }
73
+ if (expValEquals('platform_editor_nest_table_in_panel', 'isEnabled', true)) {
74
+ const containerNodeTransformResult = transformContainerNodes(transformedAdf, schema);
75
+ if (containerNodeTransformResult.isTransformed && containerNodeTransformResult.transformedAdf) {
76
+ transformedAdf = containerNodeTransformResult.transformedAdf;
77
+ }
78
+ }
72
79
  return Node.fromJSON(schema, transformedAdf);
73
80
  }
74
81
  export function processRawValue(schema, value, providerFactory, sanitizePrivateContent, contentTransformer, dispatchAnalyticsEvent) {
@@ -245,6 +252,15 @@ export function processRawValue(schema, value, providerFactory, sanitizePrivateC
245
252
  transformedAdf
246
253
  } = transformNestedTablesWithAnalytics(entity, dispatchAnalyticsEvent));
247
254
  entity = transformedAdf;
255
+ if (expValEquals('platform_editor_nest_table_in_panel', 'isEnabled', true)) {
256
+ ({
257
+ transformedAdf,
258
+ isTransformed
259
+ } = transformContainerNodes(entity, schema));
260
+ if (isTransformed) {
261
+ entity = transformedAdf;
262
+ }
263
+ }
248
264
  const newEntity = maySanitizePrivateContent(entity, providerFactory, sanitizePrivateContent);
249
265
  const parsedDoc = Node.fromJSON(schema, newEntity);
250
266
 
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @atlaskit/editor/no-re-export */
2
2
  export { messages } from './messages';
3
- export { BLOCK_ACTIONS_MENU_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SLOT_MENU_ITEM, BLOCK_ACTIONS_TEMPLATE_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SECTION_KEYS, BLOCK_ACTIONS_CREATE_SYNCED_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_LINK_TO_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_MENU_SECTION, DELETE_MENU_SECTION, DELETE_MENU_ITEM, POSITION_MENU_SECTION, POSITION_MOVE_UP_MENU_ITEM, POSITION_MOVE_DOWN_MENU_ITEM, TRANSFORM_MENU_SECTION, TRANSFORM_MENU_ITEM, TRANSFORM_CLEAR_MENU_SECTION, TRANSFORM_CLEAR_MENU_ITEM, TRANSFORM_CREATE_MENU_SECTION, TRANSFORM_HEADINGS_MENU_SECTION, TRANSFORM_HEADINGS_H1_MENU_ITEM, TRANSFORM_HEADINGS_H2_MENU_ITEM, TRANSFORM_HEADINGS_H3_MENU_ITEM, TRANSFORM_HEADINGS_H4_MENU_ITEM, TRANSFORM_HEADINGS_H5_MENU_ITEM, TRANSFORM_HEADINGS_H6_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_SECTION, TRANSFORM_STRUCTURE_MENU_SECTION, TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM, TRANSFORM_STRUCTURE_PANEL_MENU_ITEM, TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM, TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM, TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM, TRANSFORM_STRUCTURE_DECISION_MENU_ITEM, TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_ITEM, TRANSFORM_DEFAULT_EXTENSION_SLOT_MENU_ITEM, BLOCK_MENU_ACTION_TEST_ID, BLOCK_MENU_TEST_ID, EXTENSION_MENU_ITEM_TEST_ID, AI_MENU_SECTION, AI_ASK_ROVO_MENU_ITEM, AI_IMPROVE_WRITING_MENU_ITEM, AI_POLISH_MENU_ITEM } from './key';
3
+ export { BLOCK_ACTIONS_MENU_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SLOT_MENU_ITEM, BLOCK_ACTIONS_TEMPLATE_SECTION, BLOCK_ACTIONS_FEATURED_EXTENSION_SECTION_KEYS, BLOCK_ACTIONS_CREATE_SYNCED_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_LINK_TO_BLOCK_MENU_ITEM, BLOCK_ACTIONS_COPY_MENU_SECTION, DELETE_MENU_SECTION, DELETE_MENU_ITEM, POSITION_MENU_SECTION, POSITION_MOVE_UP_MENU_ITEM, POSITION_MOVE_DOWN_MENU_ITEM, TRANSFORM_MENU_SECTION, TRANSFORM_MENU_ITEM, TRANSFORM_CLEAR_MENU_SECTION, TRANSFORM_CLEAR_MENU_ITEM, TRANSFORM_CREATE_MENU_SECTION, TRANSFORM_HEADINGS_MENU_SECTION, TRANSFORM_HEADINGS_H1_MENU_ITEM, TRANSFORM_HEADINGS_H2_MENU_ITEM, TRANSFORM_HEADINGS_H3_MENU_ITEM, TRANSFORM_HEADINGS_H4_MENU_ITEM, TRANSFORM_HEADINGS_H5_MENU_ITEM, TRANSFORM_HEADINGS_H6_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_SECTION, TRANSFORM_STRUCTURE_MENU_SECTION, TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM, TRANSFORM_STRUCTURE_PANEL_MENU_ITEM, TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM, TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM, TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM, TRANSFORM_STRUCTURE_DECISION_MENU_ITEM, TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM, TRANSFORM_SUGGESTED_MENU_ITEM, TRANSFORM_DEFAULT_EXTENSION_SLOT_MENU_ITEM, BLOCK_MENU_ACTION_TEST_ID, BLOCK_MENU_TEST_ID, EXTENSION_MENU_ITEM_TEST_ID, AI_MENU_SECTION, AI_ASK_ROVO_MENU_ITEM, AI_IMPROVE_WRITING_MENU_ITEM, AI_POLISH_MENU_ITEM, AI_REMIX_MENU_ITEM } from './key';
4
4
  export { FORMAT_HEADING_1_MENU_ITEM, FORMAT_HEADING_2_MENU_ITEM, FORMAT_HEADING_3_MENU_ITEM, FORMAT_HEADING_4_MENU_ITEM, FORMAT_HEADING_5_MENU_ITEM, FORMAT_HEADING_6_MENU_ITEM, FORMAT_PARAGRAPH_MENU_ITEM, FORMAT_QUOTE_MENU_ITEM, FORMAT_EXPAND_MENU_ITEM, FORMAT_LAYOUT_MENU_ITEM, FORMAT_PANEL_MENU_ITEM, FORMAT_CODE_BLOCK_MENU_ITEM, FORMAT_BULLETED_LIST_MENU_ITEM, FORMAT_NUMBERED_LIST_MENU_ITEM, FORMAT_TASK_LIST_MENU_ITEM, COPY_MENU_SECTION, MOVE_UP_DOWN_MENU_SECTION, COPY_LINK_MENU_ITEM, MOVE_UP_MENU_ITEM, MOVE_DOWN_MENU_ITEM, NESTED_FORMAT_MENU_SECTION, FORMAT_MENU_ITEM, NESTED_FORMAT_MENU, PRIMARY_MENU_SECTION, ADD_BLOCKS_MENU_SECTION, CREATE_SYNCED_BLOCK_MENU_ITEM } from './key-deprecated';
5
5
  export { MAIN_BLOCK_MENU_SECTION_RANK, TRANSFORM_MENU_SECTION_RANK, BLOCK_ACTIONS_FEATURED_EXTENSION_ITEM_RANK, TRANSFORM_MENU_ITEM_RANK, TRANSFORM_HEADINGS_MENU_SECTION_RANK, TRANSFORM_STRUCTURE_MENU_SECTION_RANK, TRANSFORM_CLEAR_MENU_SECTION_RANK, BLOCK_ACTIONS_MENU_SECTION_RANK, BLOCK_ACTIONS_COPY_MENU_SECTION_RANK, POSITION_MENU_SECTION_RANK, DELETE_MENU_SECTION_RANK, TRANSFORM_SUGGESTED_MENU_SECTION_RANK, TRANSFORM_CREATE_MENU_SECTION_RANK, AI_MENU_SECTION_RANK } from './rank';
6
6
  export { FORMAT_NESTED_MENU_RANK, FORMAT_NESTED_MENU_RANK_REVISED, BLOCK_MENU_SECTION_RANK, PRIMARY_MENU_SECTION_RANK, COPY_MENU_SECTION_RANK, DELETE_SECTION_RANK, MOVE_BLOCK_SECTION_RANK, ADD_BLOCKS_MENU_SECTION_RANK } from './rank-deprecated';
@@ -148,4 +148,7 @@ export var AI_IMPROVE_WRITING_MENU_ITEM = {
148
148
  };
149
149
  export var AI_POLISH_MENU_ITEM = {
150
150
  key: 'block-menu-ai-polish-menu-item'
151
+ };
152
+ export var AI_REMIX_MENU_ITEM = {
153
+ key: 'block-menu-ai-remix-menu-item'
151
154
  };