@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
@@ -18,19 +18,19 @@ export default (function (providers) {
18
18
  var getFulfilledProviders = /*#__PURE__*/function () {
19
19
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
20
20
  var results;
21
- return _regeneratorRuntime.wrap(function _callee$(_context) {
21
+ return _regeneratorRuntime.wrap(function (_context) {
22
22
  while (1) switch (_context.prev = _context.next) {
23
23
  case 0:
24
- _context.next = 2;
24
+ _context.next = 1;
25
25
  return waitForAllPromises(providers.map(function (result) {
26
26
  return Promise.resolve(result);
27
27
  }));
28
- case 2:
28
+ case 1:
29
29
  results = _context.sent;
30
30
  return _context.abrupt("return", getOnlyFulfilled(results).filter(function (provider) {
31
31
  return provider != null;
32
32
  }));
33
- case 4:
33
+ case 2:
34
34
  case "end":
35
35
  return _context.stop();
36
36
  }
@@ -42,16 +42,16 @@ export default (function (providers) {
42
42
  }();
43
43
  var runInAllProviders = /*#__PURE__*/function () {
44
44
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(mapFunction) {
45
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
45
+ return _regeneratorRuntime.wrap(function (_context2) {
46
46
  while (1) switch (_context2.prev = _context2.next) {
47
47
  case 0:
48
- _context2.next = 2;
48
+ _context2.next = 1;
49
49
  return getFulfilledProviders();
50
- case 2:
50
+ case 1:
51
51
  return _context2.abrupt("return", _context2.sent.map(function (provider) {
52
52
  return mapFunction(provider);
53
53
  }));
54
- case 3:
54
+ case 2:
55
55
  case "end":
56
56
  return _context2.stop();
57
57
  }
@@ -83,18 +83,17 @@ export default (function (providers) {
83
83
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
84
  var invokeSingle = /*#__PURE__*/function () {
85
85
  var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(methodName, args) {
86
- var callback;
87
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
86
+ var callback, _t;
87
+ return _regeneratorRuntime.wrap(function (_context3) {
88
88
  while (1) switch (_context3.prev = _context3.next) {
89
89
  case 0:
90
90
  callback = createCallback(methodName, args);
91
- _context3.t0 = waitForFirstFulfilledPromise;
92
- _context3.next = 4;
91
+ _t = waitForFirstFulfilledPromise;
92
+ _context3.next = 1;
93
93
  return runInAllProviders(callback);
94
- case 4:
95
- _context3.t1 = _context3.sent;
96
- return _context3.abrupt("return", (0, _context3.t0)(_context3.t1));
97
- case 6:
94
+ case 1:
95
+ return _context3.abrupt("return", _t(_context3.sent));
96
+ case 2:
98
97
  case "end":
99
98
  return _context3.stop();
100
99
  }
@@ -114,25 +113,24 @@ export default (function (providers) {
114
113
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
115
114
  var invokeList = /*#__PURE__*/function () {
116
115
  var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(methodName, args) {
117
- var callback, results, fulfilledResults;
118
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
116
+ var callback, results, fulfilledResults, _t2;
117
+ return _regeneratorRuntime.wrap(function (_context4) {
119
118
  while (1) switch (_context4.prev = _context4.next) {
120
119
  case 0:
121
120
  callback = createCallback(methodName, args);
122
- _context4.t0 = waitForAllPromises;
123
- _context4.next = 4;
121
+ _t2 = waitForAllPromises;
122
+ _context4.next = 1;
124
123
  return runInAllProviders(callback);
125
- case 4:
126
- _context4.t1 = _context4.sent;
127
- _context4.next = 7;
128
- return (0, _context4.t0)(_context4.t1);
129
- case 7:
124
+ case 1:
125
+ _context4.next = 2;
126
+ return _t2(_context4.sent);
127
+ case 2:
130
128
  results = _context4.sent;
131
129
  fulfilledResults = getOnlyFulfilled(results);
132
130
  return _context4.abrupt("return", flatten(fulfilledResults).filter(function (result) {
133
131
  return result;
134
132
  }));
135
- case 10:
133
+ case 3:
136
134
  case "end":
137
135
  return _context4.stop();
138
136
  }
@@ -8,6 +8,7 @@ import _toArray from "@babel/runtime/helpers/toArray";
8
8
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
9
9
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
10
10
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
11
+ 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; }
11
12
  import { Plugin } from '@atlaskit/editor-prosemirror/state';
12
13
  import { fg } from '@atlaskit/platform-feature-flags';
13
14
  import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
@@ -79,7 +80,7 @@ var wrapGetPosExceptions = function wrapGetPosExceptions(spec) {
79
80
  node = _argumentsList[0],
80
81
  view = _argumentsList[1],
81
82
  unsafeGetPos = _argumentsList[2],
82
- more = _argumentsList.slice(3);
83
+ more = _arrayLikeToArray(_argumentsList).slice(3);
83
84
  if (!nodeIdProvider && expValEquals('platform_editor_native_anchor_with_dnd', 'isEnabled', true)) {
84
85
  nodeIdProvider = getNodeIdProvider(view);
85
86
  }
@@ -21,7 +21,7 @@ import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
21
21
  import { fg } from '@atlaskit/platform-feature-flags';
22
22
  import Layer from '../Layer';
23
23
  var packageName = "@atlaskit/editor-common";
24
- var packageVersion = "114.47.3";
24
+ var packageVersion = "114.48.1";
25
25
  var halfFocusRing = 1;
26
26
  var dropOffset = '0, 8';
27
27
  var fadeIn = keyframes({
@@ -58,15 +58,15 @@ export var UserPreferencesProvider = /*#__PURE__*/function () {
58
58
  value: (function () {
59
59
  var _loadPreferences = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
60
60
  var userPreferences;
61
- return _regeneratorRuntime.wrap(function _callee$(_context) {
61
+ return _regeneratorRuntime.wrap(function (_context) {
62
62
  while (1) switch (_context.prev = _context.next) {
63
63
  case 0:
64
- _context.next = 2;
64
+ _context.next = 1;
65
65
  return this.persistenceAPI.loadUserPreferences();
66
- case 2:
66
+ case 1:
67
67
  userPreferences = _context.sent;
68
68
  this.setUserPreferences(userPreferences);
69
- case 4:
69
+ case 2:
70
70
  case "end":
71
71
  return _context.stop();
72
72
  }
@@ -91,15 +91,15 @@ export var UserPreferencesProvider = /*#__PURE__*/function () {
91
91
  value: (function () {
92
92
  var _updatePreference = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(key, value) {
93
93
  var userPreferences;
94
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
94
+ return _regeneratorRuntime.wrap(function (_context2) {
95
95
  while (1) switch (_context2.prev = _context2.next) {
96
96
  case 0:
97
- _context2.next = 2;
97
+ _context2.next = 1;
98
98
  return this.persistenceAPI.updateUserPreference(key, value);
99
- case 2:
99
+ case 1:
100
100
  userPreferences = _context2.sent;
101
101
  this.setUserPreferences(userPreferences);
102
- case 4:
102
+ case 2:
103
103
  case "end":
104
104
  return _context2.stop();
105
105
  }
@@ -366,4 +366,4 @@ export { calculateToolbarPositionAboveSelection, calculateToolbarPositionOnCellS
366
366
  export { findNodePosByLocalIds } from './nodes-by-localIds';
367
367
  export { getPageElementCounts } from './page-element-counts';
368
368
  export { withFeatureFlaggedComponent } from './withFeatureFlaggedComponent';
369
- export { isNodeOfSameBaseType, getBaseNodeTypeName } from './node-type-utils';
369
+ 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
+ var childType = schema.nodes[childTypeName];
30
+ if (!childType) {
31
+ return false;
32
+ }
33
+ var 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';
@@ -67,6 +68,12 @@ export function processRawValueWithoutValidation(schema, value, dispatchAnalytic
67
68
  if (result.isTransformed && result.transformedAdf) {
68
69
  transformedAdf = result.transformedAdf;
69
70
  }
71
+ if (expValEquals('platform_editor_nest_table_in_panel', 'isEnabled', true)) {
72
+ var containerNodeTransformResult = transformContainerNodes(transformedAdf, schema);
73
+ if (containerNodeTransformResult.isTransformed && containerNodeTransformResult.transformedAdf) {
74
+ transformedAdf = containerNodeTransformResult.transformedAdf;
75
+ }
76
+ }
70
77
  return Node.fromJSON(schema, transformedAdf);
71
78
  }
72
79
  export function processRawValue(schema, value, providerFactory, sanitizePrivateContent, contentTransformer, dispatchAnalyticsEvent) {
@@ -237,6 +244,14 @@ export function processRawValue(schema, value, providerFactory, sanitizePrivateC
237
244
  var _transformNestedTable3 = transformNestedTablesWithAnalytics(entity, dispatchAnalyticsEvent);
238
245
  transformedAdf = _transformNestedTable3.transformedAdf;
239
246
  entity = transformedAdf;
247
+ if (expValEquals('platform_editor_nest_table_in_panel', 'isEnabled', true)) {
248
+ var _transformContainerNo = transformContainerNodes(entity, schema);
249
+ transformedAdf = _transformContainerNo.transformedAdf;
250
+ isTransformed = _transformContainerNo.isTransformed;
251
+ if (isTransformed) {
252
+ entity = transformedAdf;
253
+ }
254
+ }
240
255
  var newEntity = maySanitizePrivateContent(entity, providerFactory, sanitizePrivateContent);
241
256
  var parsedDoc = Node.fromJSON(schema, newEntity);
242
257
 
@@ -1,5 +1,5 @@
1
1
  export { messages } from './messages';
2
- 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';
2
+ 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';
3
3
  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';
4
4
  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';
5
5
  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';
@@ -133,3 +133,6 @@ export declare const AI_IMPROVE_WRITING_MENU_ITEM: {
133
133
  export declare const AI_POLISH_MENU_ITEM: {
134
134
  key: string;
135
135
  };
136
+ export declare const AI_REMIX_MENU_ITEM: {
137
+ key: string;
138
+ };
@@ -214,4 +214,4 @@ export { findNodePosByLocalIds } from './nodes-by-localIds';
214
214
  export { getPageElementCounts } from './page-element-counts';
215
215
  export type { PageElementCounts } from './page-element-counts';
216
216
  export { withFeatureFlaggedComponent } from './withFeatureFlaggedComponent';
217
- export { isNodeOfSameBaseType, getBaseNodeTypeName } from './node-type-utils';
217
+ export { isNodeOfSameBaseType, getBaseNodeTypeName, isNodeTypeValidChildOf } from './node-type-utils';
@@ -1,4 +1,4 @@
1
- import type { NodeType } from '@atlaskit/editor-prosemirror/model';
1
+ import type { NodeType, Node as PMNode, Schema } from '@atlaskit/editor-prosemirror/model';
2
2
  export declare function getBaseNodeTypeName(nodeType: NodeType): string;
3
3
  /**
4
4
  * Returns true if two node types share the same base type name.
@@ -7,3 +7,9 @@ export declare function getBaseNodeTypeName(nodeType: NodeType): string;
7
7
  * (e.g. `panel` and `panel_c1` are considered the same base type).
8
8
  */
9
9
  export declare function isNodeOfSameBaseType(a: NodeType, b: NodeType): boolean;
10
+ /**
11
+ * Checks if a node type is a valid child of a parent node by creating a minimal valid
12
+ * instance and validating it against the parent's content expression. Unlike ProseMirror's
13
+ * canReplaceWith, this checks general type compatibility without requiring a specific insertion index.
14
+ */
15
+ export declare function isNodeTypeValidChildOf(childTypeName: string, parentNode: PMNode, schema: Schema): boolean;
@@ -1,5 +1,5 @@
1
1
  export { messages } from './messages';
2
- 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';
2
+ 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';
3
3
  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';
4
4
  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';
5
5
  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';
@@ -133,3 +133,6 @@ export declare const AI_IMPROVE_WRITING_MENU_ITEM: {
133
133
  export declare const AI_POLISH_MENU_ITEM: {
134
134
  key: string;
135
135
  };
136
+ export declare const AI_REMIX_MENU_ITEM: {
137
+ key: string;
138
+ };
@@ -214,4 +214,4 @@ export { findNodePosByLocalIds } from './nodes-by-localIds';
214
214
  export { getPageElementCounts } from './page-element-counts';
215
215
  export type { PageElementCounts } from './page-element-counts';
216
216
  export { withFeatureFlaggedComponent } from './withFeatureFlaggedComponent';
217
- export { isNodeOfSameBaseType, getBaseNodeTypeName } from './node-type-utils';
217
+ export { isNodeOfSameBaseType, getBaseNodeTypeName, isNodeTypeValidChildOf } from './node-type-utils';
@@ -1,4 +1,4 @@
1
- import type { NodeType } from '@atlaskit/editor-prosemirror/model';
1
+ import type { NodeType, Node as PMNode, Schema } from '@atlaskit/editor-prosemirror/model';
2
2
  export declare function getBaseNodeTypeName(nodeType: NodeType): string;
3
3
  /**
4
4
  * Returns true if two node types share the same base type name.
@@ -7,3 +7,9 @@ export declare function getBaseNodeTypeName(nodeType: NodeType): string;
7
7
  * (e.g. `panel` and `panel_c1` are considered the same base type).
8
8
  */
9
9
  export declare function isNodeOfSameBaseType(a: NodeType, b: NodeType): boolean;
10
+ /**
11
+ * Checks if a node type is a valid child of a parent node by creating a minimal valid
12
+ * instance and validating it against the parent's content expression. Unlike ProseMirror's
13
+ * canReplaceWith, this checks general type compatibility without requiring a specific insertion index.
14
+ */
15
+ export declare function isNodeTypeValidChildOf(childTypeName: string, parentNode: PMNode, schema: Schema): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "114.48.0",
3
+ "version": "114.49.0",
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/"
@@ -38,7 +38,7 @@
38
38
  "dependencies": {
39
39
  "@atlaskit/activity-provider": "^2.6.0",
40
40
  "@atlaskit/adf-schema": "^52.15.0",
41
- "@atlaskit/adf-utils": "^19.31.0",
41
+ "@atlaskit/adf-utils": "^19.32.0",
42
42
  "@atlaskit/afm-i18n-platform-editor-editor-common": "2.18.0",
43
43
  "@atlaskit/analytics-listeners": "^10.1.0",
44
44
  "@atlaskit/analytics-namespaced-context": "^7.3.0",
@@ -50,7 +50,7 @@
50
50
  "@atlaskit/css": "^0.19.0",
51
51
  "@atlaskit/custom-steps": "^0.17.0",
52
52
  "@atlaskit/dropdown-menu": "^16.9.0",
53
- "@atlaskit/editor-json-transformer": "^8.32.0",
53
+ "@atlaskit/editor-json-transformer": "^8.33.0",
54
54
  "@atlaskit/editor-palette": "^2.2.0",
55
55
  "@atlaskit/editor-prosemirror": "^7.3.0",
56
56
  "@atlaskit/editor-shared-styles": "^3.11.0",
@@ -62,7 +62,7 @@
62
62
  "@atlaskit/link": "^3.4.0",
63
63
  "@atlaskit/link-datasource": "^5.4.0",
64
64
  "@atlaskit/link-picker": "^5.2.0",
65
- "@atlaskit/media-card": "^80.5.0",
65
+ "@atlaskit/media-card": "^80.6.0",
66
66
  "@atlaskit/media-client": "^36.3.0",
67
67
  "@atlaskit/media-client-react": "^5.1.0",
68
68
  "@atlaskit/media-common": "^13.3.0",
@@ -79,7 +79,7 @@
79
79
  "@atlaskit/primitives": "^19.0.0",
80
80
  "@atlaskit/profilecard": "^25.7.0",
81
81
  "@atlaskit/prosemirror-history": "^0.2.0",
82
- "@atlaskit/react-ufo": "^6.1.0",
82
+ "@atlaskit/react-ufo": "^6.2.0",
83
83
  "@atlaskit/section-message": "^8.13.0",
84
84
  "@atlaskit/smart-card": "^44.16.0",
85
85
  "@atlaskit/smart-user-picker": "^10.1.0",
@@ -87,7 +87,7 @@
87
87
  "@atlaskit/task-decision": "^20.1.0",
88
88
  "@atlaskit/teams-app-config": "^1.12.0",
89
89
  "@atlaskit/textfield": "^8.3.0",
90
- "@atlaskit/tmp-editor-statsig": "^84.0.0",
90
+ "@atlaskit/tmp-editor-statsig": "^84.3.0",
91
91
  "@atlaskit/tokens": "^13.0.0",
92
92
  "@atlaskit/tooltip": "^22.3.0",
93
93
  "@atlaskit/width-detector": "^5.1.0",