@atlaskit/editor-plugin-block-menu 5.2.10 → 5.2.12

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 (79) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/editor-commands/transform-node-utils/transform.js +2 -2
  3. package/dist/cjs/editor-commands/transform-node-utils/utils.js +24 -4
  4. package/dist/cjs/editor-commands/transform-node-utils/wrapStep.js +20 -1
  5. package/dist/cjs/ui/block-menu-components.js +30 -20
  6. package/dist/cjs/ui/block-menu-renderer/BlockMenuComponent.js +37 -0
  7. package/dist/cjs/ui/block-menu-renderer/BlockMenuComponents.js +29 -0
  8. package/dist/cjs/ui/block-menu-renderer/BlockMenuRenderer.js +33 -0
  9. package/dist/cjs/ui/block-menu-renderer/fallbacks.js +32 -0
  10. package/dist/cjs/ui/block-menu-renderer/types.js +5 -0
  11. package/dist/cjs/ui/block-menu-renderer/utils.js +127 -0
  12. package/dist/cjs/ui/block-menu.js +7 -20
  13. package/dist/cjs/ui/hooks/useSuggestedItems.js +57 -0
  14. package/dist/cjs/ui/suggested-items-menu-section.js +21 -0
  15. package/dist/cjs/ui/suggested-menu-items.js +19 -0
  16. package/dist/cjs/ui/utils/suggested-items-rank.js +1 -1
  17. package/dist/es2019/editor-commands/transform-node-utils/transform.js +2 -2
  18. package/dist/es2019/editor-commands/transform-node-utils/utils.js +23 -3
  19. package/dist/es2019/editor-commands/transform-node-utils/wrapStep.js +21 -1
  20. package/dist/es2019/ui/block-menu-components.js +12 -4
  21. package/dist/es2019/ui/block-menu-renderer/BlockMenuComponent.js +31 -0
  22. package/dist/es2019/ui/block-menu-renderer/BlockMenuComponents.js +21 -0
  23. package/dist/es2019/ui/block-menu-renderer/BlockMenuRenderer.js +24 -0
  24. package/dist/es2019/ui/block-menu-renderer/fallbacks.js +21 -0
  25. package/dist/es2019/ui/block-menu-renderer/types.js +1 -0
  26. package/dist/es2019/ui/block-menu-renderer/utils.js +93 -0
  27. package/dist/es2019/ui/block-menu.js +6 -13
  28. package/dist/es2019/ui/hooks/useSuggestedItems.js +45 -0
  29. package/dist/es2019/ui/suggested-items-menu-section.js +15 -0
  30. package/dist/es2019/ui/suggested-menu-items.js +13 -0
  31. package/dist/es2019/ui/utils/suggested-items-rank.js +31 -43
  32. package/dist/esm/editor-commands/transform-node-utils/transform.js +2 -2
  33. package/dist/esm/editor-commands/transform-node-utils/utils.js +23 -3
  34. package/dist/esm/editor-commands/transform-node-utils/wrapStep.js +21 -1
  35. package/dist/esm/ui/block-menu-components.js +30 -20
  36. package/dist/esm/ui/block-menu-renderer/BlockMenuComponent.js +30 -0
  37. package/dist/esm/ui/block-menu-renderer/BlockMenuComponents.js +22 -0
  38. package/dist/esm/ui/block-menu-renderer/BlockMenuRenderer.js +25 -0
  39. package/dist/esm/ui/block-menu-renderer/fallbacks.js +25 -0
  40. package/dist/esm/ui/block-menu-renderer/types.js +1 -0
  41. package/dist/esm/ui/block-menu-renderer/utils.js +121 -0
  42. package/dist/esm/ui/block-menu.js +6 -19
  43. package/dist/esm/ui/hooks/useSuggestedItems.js +51 -0
  44. package/dist/esm/ui/suggested-items-menu-section.js +14 -0
  45. package/dist/esm/ui/suggested-menu-items.js +12 -0
  46. package/dist/esm/ui/utils/suggested-items-rank.js +2 -2
  47. package/dist/types/blockMenuPluginType.d.ts +3 -2
  48. package/dist/types/editor-commands/transform-node-utils/utils.d.ts +11 -0
  49. package/dist/types/editor-commands/transform-node-utils/wrapStep.d.ts +5 -0
  50. package/dist/types/ui/block-menu-renderer/BlockMenuComponent.d.ts +11 -0
  51. package/dist/types/ui/block-menu-renderer/BlockMenuComponents.d.ts +12 -0
  52. package/dist/types/ui/block-menu-renderer/BlockMenuRenderer.d.ts +12 -0
  53. package/dist/types/ui/block-menu-renderer/fallbacks.d.ts +2 -0
  54. package/dist/types/ui/block-menu-renderer/types.d.ts +27 -0
  55. package/dist/types/ui/block-menu-renderer/utils.d.ts +37 -0
  56. package/dist/types/ui/hooks/useSuggestedItems.d.ts +3 -0
  57. package/dist/types/ui/suggested-items-menu-section.d.ts +9 -0
  58. package/dist/types/ui/{suggested-items-renderer.d.ts → suggested-menu-items.d.ts} +2 -2
  59. package/dist/types-ts4.5/blockMenuPluginType.d.ts +3 -2
  60. package/dist/types-ts4.5/editor-commands/transform-node-utils/utils.d.ts +11 -0
  61. package/dist/types-ts4.5/editor-commands/transform-node-utils/wrapStep.d.ts +5 -0
  62. package/dist/types-ts4.5/ui/block-menu-renderer/BlockMenuComponent.d.ts +11 -0
  63. package/dist/types-ts4.5/ui/block-menu-renderer/BlockMenuComponents.d.ts +12 -0
  64. package/dist/types-ts4.5/ui/block-menu-renderer/BlockMenuRenderer.d.ts +12 -0
  65. package/dist/types-ts4.5/ui/block-menu-renderer/fallbacks.d.ts +2 -0
  66. package/dist/types-ts4.5/ui/block-menu-renderer/types.d.ts +27 -0
  67. package/dist/types-ts4.5/ui/block-menu-renderer/utils.d.ts +37 -0
  68. package/dist/types-ts4.5/ui/hooks/useSuggestedItems.d.ts +3 -0
  69. package/dist/types-ts4.5/ui/suggested-items-menu-section.d.ts +9 -0
  70. package/dist/types-ts4.5/ui/{suggested-items-renderer.d.ts → suggested-menu-items.d.ts} +2 -2
  71. package/package.json +3 -3
  72. package/dist/cjs/ui/block-menu-renderer.js +0 -104
  73. package/dist/cjs/ui/suggested-items-renderer.js +0 -62
  74. package/dist/es2019/ui/block-menu-renderer.js +0 -83
  75. package/dist/es2019/ui/suggested-items-renderer.js +0 -48
  76. package/dist/esm/ui/block-menu-renderer.js +0 -95
  77. package/dist/esm/ui/suggested-items-renderer.js +0 -54
  78. package/dist/types/ui/block-menu-renderer.d.ts +0 -18
  79. package/dist/types-ts4.5/ui/block-menu-renderer.d.ts +0 -18
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.SuggestedMenuItems = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _useSuggestedItems = require("./hooks/useSuggestedItems");
10
+ var SuggestedMenuItems = exports.SuggestedMenuItems = /*#__PURE__*/_react.default.memo(function (_ref) {
11
+ var api = _ref.api;
12
+ var suggestedItems = (0, _useSuggestedItems.useSuggestedItems)(api);
13
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, suggestedItems.map(function (item) {
14
+ var ItemComponent = item.component;
15
+ return ItemComponent ? /*#__PURE__*/_react.default.createElement(ItemComponent, {
16
+ key: item.key
17
+ }) : null;
18
+ }));
19
+ });
@@ -43,7 +43,7 @@ var BLOCK_MENU_NODE_TYPES = exports.BLOCK_MENU_NODE_TYPES = {
43
43
  EMBED_CARD: 'embedCard',
44
44
  TABLE: 'table'
45
45
  };
46
- var TRANSFORM_SUGGESTED_ITEMS_RANK = exports.TRANSFORM_SUGGESTED_ITEMS_RANK = (_TRANSFORM_SUGGESTED_ = {}, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(_TRANSFORM_SUGGESTED_, BLOCK_MENU_NODE_TYPES.PARAGRAPH, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_HEADINGS_H2_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_HEADINGS_H3_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.EXPAND, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.BLOCKQUOTE, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.LAYOUT_SECTION, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_HEADINGS_H2_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.PANEL, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.CODE_BLOCK, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.DECISION, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.BULLET_LIST, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.ORDERED_LIST, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.HEADING, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_HEADINGS_H2_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 300)), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(_TRANSFORM_SUGGESTED_, BLOCK_MENU_NODE_TYPES.TASK_LIST, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.MEDIA_SINGLE, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.EXTENSION, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.BODIED_EXTENSION, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.BLOCK_CARD, (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 200)), BLOCK_MENU_NODE_TYPES.EMBED_CARD, (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 200)), BLOCK_MENU_NODE_TYPES.TABLE, (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key, 200)));
46
+ var TRANSFORM_SUGGESTED_ITEMS_RANK = exports.TRANSFORM_SUGGESTED_ITEMS_RANK = (_TRANSFORM_SUGGESTED_ = {}, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(_TRANSFORM_SUGGESTED_, BLOCK_MENU_NODE_TYPES.PARAGRAPH, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_HEADINGS_H1_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_HEADINGS_H2_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.EXPAND, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.BLOCKQUOTE, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.LAYOUT_SECTION, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.PANEL, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.CODE_BLOCK, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.DECISION, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.BULLET_LIST, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.ORDERED_LIST, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.HEADING, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM.key, 300)), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(_TRANSFORM_SUGGESTED_, BLOCK_MENU_NODE_TYPES.TASK_LIST, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.MEDIA_SINGLE, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.EXTENSION, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key, 300)), BLOCK_MENU_NODE_TYPES.BODIED_EXTENSION, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _blockMenu.TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key, 100), _blockMenu.TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key, 200), _blockMenu.TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key, 300)));
47
47
  var getSuggestedItemsForNodeType = exports.getSuggestedItemsForNodeType = function getSuggestedItemsForNodeType(nodeType) {
48
48
  return TRANSFORM_SUGGESTED_ITEMS_RANK[nodeType];
49
49
  };
@@ -84,9 +84,9 @@ const TRANSFORM_STEPS_OVERRIDE = {
84
84
  decisionList: [unwrapStep, wrapBlockquoteToDecisionListStep]
85
85
  },
86
86
  layoutSection: {
87
- blockquote: [unwrapLayoutStep, wrapStep],
87
+ blockquote: [unwrapLayoutStep, wrapMixedContentStep],
88
88
  expand: [unwrapLayoutStep, wrapStep],
89
- panel: [unwrapLayoutStep, wrapStep],
89
+ panel: [unwrapLayoutStep, wrapMixedContentStep],
90
90
  codeBlock: [unwrapLayoutStep, flattenStep, wrapStep],
91
91
  paragraph: [unwrapLayoutStep]
92
92
  },
@@ -64,7 +64,7 @@ export const expandSelectionToBlockRange = (selection, schema) => {
64
64
  const {
65
65
  nodes
66
66
  } = schema;
67
- const nodesNeedToExpandRange = [nodes.listItem, nodes.taskItem];
67
+ const nodesNeedToExpandRange = [nodes.bulletList, nodes.orderedList, nodes.taskList, nodes.listItem, nodes.taskItem];
68
68
 
69
69
  // when adding nodes.tableRow, tableHeader, tableCell in nodesNeedToExpandRang,
70
70
  // expandToBlockRange does not return expected table start position, sometimes even freeze editor
@@ -73,10 +73,11 @@ export const expandSelectionToBlockRange = (selection, schema) => {
73
73
  const table = findTable(selection);
74
74
  if (table) {
75
75
  const $from = selection.$from.doc.resolve(table.pos);
76
- const $to = selection.$from.doc.resolve(table.pos + table.node.nodeSize);
76
+ const $to = selection.$from.doc.resolve(table.pos + table.node.nodeSize - 1);
77
77
  return {
78
78
  $from,
79
- $to
79
+ $to,
80
+ range: $from.blockRange($to)
80
81
  };
81
82
  }
82
83
  }
@@ -123,7 +124,26 @@ export const convertNestedExpandToExpand = (node, schema) => {
123
124
  title: ((_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.title) || ''
124
125
  }, node.content);
125
126
  };
127
+
128
+ /**
129
+ * Converts an expand to a nestedExpand node.
130
+ * When placing an expand inside another expand, it must become a nestedExpand
131
+ * since expand cannot be a direct child of expand.
132
+ */
133
+ export const convertExpandToNestedExpand = (node, schema) => {
134
+ var _node$attrs2;
135
+ const nestedExpandType = schema.nodes.nestedExpand;
136
+ if (!nestedExpandType) {
137
+ return null;
138
+ }
139
+ return nestedExpandType.createAndFill({
140
+ title: ((_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 ? void 0 : _node$attrs2.title) || ''
141
+ }, node.content);
142
+ };
126
143
  export const getBlockNodesInRange = range => {
144
+ if (range.startIndex === range.endIndex) {
145
+ return [];
146
+ }
127
147
  if (range.endIndex - range.startIndex <= 1) {
128
148
  return [range.parent.child(range.startIndex)];
129
149
  }
@@ -1,9 +1,29 @@
1
+ import { convertExpandToNestedExpand } from './utils';
2
+
3
+ /**
4
+ * Wraps nodes into the target container type.
5
+ * When wrapping into expand, any expand children are converted to nestedExpand
6
+ * since expand cannot be a direct child of expand.
7
+ */
1
8
  export const wrapStep = (nodes, context) => {
2
9
  const {
3
10
  schema,
4
11
  targetNodeTypeName
5
12
  } = context;
6
- const outputNode = schema.nodes[targetNodeTypeName].createAndFill({}, nodes);
13
+
14
+ // When wrapping into expand, convert any expand children to nestedExpand
15
+ // since expand cannot be a direct child of expand
16
+ let processedNodes = nodes;
17
+ if (targetNodeTypeName === 'expand') {
18
+ processedNodes = nodes.map(node => {
19
+ if (node.type.name === 'expand') {
20
+ const nestedExpandNode = convertExpandToNestedExpand(node, schema);
21
+ return nestedExpandNode !== null && nestedExpandNode !== void 0 ? nestedExpandNode : node;
22
+ }
23
+ return node;
24
+ });
25
+ }
26
+ const outputNode = schema.nodes[targetNodeTypeName].createAndFill({}, processedNodes);
7
27
  if (outputNode) {
8
28
  return [outputNode];
9
29
  }
@@ -9,7 +9,8 @@ import { FormatMenuComponent } from './format-menu-nested';
9
9
  import { FormatMenuSection } from './format-menu-section';
10
10
  import { MoveDownDropdownItem } from './move-down';
11
11
  import { MoveUpDropdownItem } from './move-up';
12
- import { SuggestedItemsRenderer } from './suggested-items-renderer';
12
+ import { SuggestedItemsMenuSection } from './suggested-items-menu-section';
13
+ import { SuggestedMenuItems } from './suggested-menu-items';
13
14
  const getMoveUpMoveDownMenuComponents = api => {
14
15
  return [{
15
16
  type: 'block-menu-item',
@@ -61,9 +62,13 @@ const getTurnIntoMenuComponents = api => {
61
62
  key: TRANSFORM_MENU_ITEM.key,
62
63
  rank: TRANSFORM_MENU_ITEM_RANK[TRANSFORM_SUGGESTED_MENU_SECTION.key]
63
64
  },
64
- component: () => /*#__PURE__*/React.createElement(SuggestedItemsRenderer, {
65
+ component: ({
66
+ children
67
+ } = {
68
+ children: null
69
+ }) => /*#__PURE__*/React.createElement(SuggestedItemsMenuSection, {
65
70
  api: api
66
- })
71
+ }, children)
67
72
  }, {
68
73
  type: 'block-menu-item',
69
74
  key: TRANSFORM_SUGGESTED_MENU_ITEM.key,
@@ -71,7 +76,10 @@ const getTurnIntoMenuComponents = api => {
71
76
  type: 'block-menu-section',
72
77
  key: TRANSFORM_SUGGESTED_MENU_SECTION.key,
73
78
  rank: TRANSFORM_SUGGESTED_MENU_SECTION_RANK[TRANSFORM_SUGGESTED_MENU_ITEM.key]
74
- }
79
+ },
80
+ component: () => /*#__PURE__*/React.createElement(SuggestedMenuItems, {
81
+ api: api
82
+ })
75
83
  }, {
76
84
  type: 'block-menu-section',
77
85
  key: TRANSFORM_CREATE_MENU_SECTION.key,
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import { BlockMenuComponents } from './BlockMenuComponents';
3
+ import { getChildrenMapKey, willComponentRender } from './utils';
4
+ /**
5
+ * Renders the given registered component based on its type
6
+ */
7
+ export const BlockMenuComponent = ({
8
+ registeredComponent,
9
+ childrenMap,
10
+ fallbacks
11
+ }) => {
12
+ if (registeredComponent.type === 'block-menu-item') {
13
+ const ItemComponent = registeredComponent.component || fallbacks['block-menu-item'];
14
+ return /*#__PURE__*/React.createElement(ItemComponent, {
15
+ key: registeredComponent.key
16
+ });
17
+ }
18
+ if (!willComponentRender(registeredComponent, childrenMap)) {
19
+ return null;
20
+ }
21
+ const ParentComponent = registeredComponent.component || fallbacks[registeredComponent.type];
22
+ const childrenMapKey = getChildrenMapKey(registeredComponent.key, registeredComponent.type);
23
+ const registeredComponents = childrenMap.get(childrenMapKey);
24
+ return /*#__PURE__*/React.createElement(ParentComponent, {
25
+ key: registeredComponent.key
26
+ }, /*#__PURE__*/React.createElement(BlockMenuComponents, {
27
+ registeredComponents: registeredComponents,
28
+ childrenMap: childrenMap,
29
+ fallbacks: fallbacks
30
+ }));
31
+ };
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { BlockMenuComponent } from './BlockMenuComponent';
3
+ /**
4
+ * Renders the given registered components
5
+ * Returns null if no components are rendered
6
+ */
7
+ export const BlockMenuComponents = ({
8
+ registeredComponents,
9
+ childrenMap,
10
+ fallbacks
11
+ }) => {
12
+ if (!(registeredComponents !== null && registeredComponents !== void 0 && registeredComponents.length)) {
13
+ return null;
14
+ }
15
+ return /*#__PURE__*/React.createElement(React.Fragment, null, registeredComponents.map(registeredComponent => /*#__PURE__*/React.createElement(BlockMenuComponent, {
16
+ key: registeredComponent.key,
17
+ registeredComponent: registeredComponent,
18
+ childrenMap: childrenMap,
19
+ fallbacks: fallbacks
20
+ })));
21
+ };
@@ -0,0 +1,24 @@
1
+ import React, { useMemo } from 'react';
2
+ import { BlockMenuComponents } from './BlockMenuComponents';
3
+ import { BLOCK_MENU_FALLBACKS } from './fallbacks';
4
+ import { buildChildrenMap, getSortedTopLevelSections } from './utils';
5
+ /**
6
+ * BlockMenuRenderer orchestrates the rendering of the entire block menu hierarchy
7
+ */
8
+ export const BlockMenuRenderer = ({
9
+ allRegisteredComponents,
10
+ fallbacks = BLOCK_MENU_FALLBACKS
11
+ }) => {
12
+ const {
13
+ childrenMap,
14
+ topLevelSections
15
+ } = useMemo(() => ({
16
+ childrenMap: buildChildrenMap(allRegisteredComponents),
17
+ topLevelSections: getSortedTopLevelSections(allRegisteredComponents)
18
+ }), [allRegisteredComponents]);
19
+ return /*#__PURE__*/React.createElement(BlockMenuComponents, {
20
+ registeredComponents: topLevelSections,
21
+ childrenMap: childrenMap,
22
+ fallbacks: fallbacks
23
+ });
24
+ };
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { ToolbarDropdownItem, ToolbarDropdownItemSection, ToolbarNestedDropdownMenu } from '@atlaskit/editor-toolbar';
3
+ import ChevronRightIcon from '@atlaskit/icon/core/chevron-right';
4
+ export const BLOCK_MENU_FALLBACKS = {
5
+ 'block-menu-nested': ({
6
+ children
7
+ }) => /*#__PURE__*/React.createElement(ToolbarNestedDropdownMenu, {
8
+ elemBefore: undefined,
9
+ elemAfter: /*#__PURE__*/React.createElement(ChevronRightIcon, {
10
+ label: ""
11
+ }),
12
+ text: "Nested Menu",
13
+ enableMaxHeight: true,
14
+ shouldFitContainer: true
15
+ }, children),
16
+ 'block-menu-section': ({
17
+ children
18
+ }) => /*#__PURE__*/React.createElement(ToolbarDropdownItemSection, null, children),
19
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-jsx
20
+ 'block-menu-item': () => /*#__PURE__*/React.createElement(ToolbarDropdownItem, null, "Block Menu Item")
21
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Type guard to check if a component has a parent
3
+ *
4
+ * @param component The block menu component to check
5
+ * @returns True if the component has a parent, false otherwise
6
+ */
7
+ const hasParent = component => {
8
+ return 'parent' in component && !!component.parent;
9
+ };
10
+
11
+ /**
12
+ * Type guard to identify top-level sections (sections without a parent)
13
+ *
14
+ * @param component The block menu component to check
15
+ * @returns True if the component is a top-level section, false otherwise
16
+ */
17
+ const isTopLevelSection = component => {
18
+ return component.type === 'block-menu-section' && !hasParent(component);
19
+ };
20
+
21
+ /**
22
+ * Gets all top-level sections (those without a parent) sorted by rank
23
+ *
24
+ * @param components All registered block menu components
25
+ * @returns Sorted array of top-level sections
26
+ */
27
+ export const getSortedTopLevelSections = components => {
28
+ return components.filter(isTopLevelSection).sort((a, b) => (a.rank || 0) - (b.rank || 0));
29
+ };
30
+
31
+ /**
32
+ * Generates a unique key from a key and type
33
+ * Used to lookup children in the childrenMap
34
+ *
35
+ * @param key The component's key
36
+ * @param type The component's type
37
+ * @returns A unique string key combining type and key
38
+ */
39
+ export const getChildrenMapKey = (key, type) => {
40
+ return `${type}:${key}`;
41
+ };
42
+
43
+ /**
44
+ * Builds a map of parent keys to their sorted children
45
+ * This enables efficient hierarchical rendering of the menu structure
46
+ *
47
+ * @param components All registered block menu components
48
+ * @returns Map where keys are parent identifiers and values are sorted child components
49
+ */
50
+ export const buildChildrenMap = components => {
51
+ const childrenMap = new Map();
52
+ for (const component of components) {
53
+ // Only components with parents can be children
54
+ if ('parent' in component && !!component.parent) {
55
+ const childrenMapKey = getChildrenMapKey(component.parent.key, component.parent.type);
56
+ const existing = childrenMap.get(childrenMapKey) || [];
57
+ existing.push(component);
58
+ childrenMap.set(childrenMapKey, existing);
59
+ }
60
+ }
61
+
62
+ // Sort children by their rank within their parent
63
+ for (const [, children] of childrenMap.entries()) {
64
+ children.sort((a, b) => {
65
+ const rankA = hasParent(a) ? a.parent.rank || 0 : 0;
66
+ const rankB = hasParent(b) ? b.parent.rank || 0 : 0;
67
+ return rankA - rankB;
68
+ });
69
+ }
70
+ return childrenMap;
71
+ };
72
+
73
+ /**
74
+ * Determines whether a component will render based on its type and children
75
+ *
76
+ * Rules:
77
+ * - An item will not render if has a component that returns null
78
+ * - A nested menu will render if it has at least one registered child component
79
+ * - A section will render if it has at least one registered child component that will render
80
+ *
81
+ * NOTE: This requires invoking each item's component function to check for null return
82
+ */
83
+ export const willComponentRender = (registeredComponent, childrenMap) => {
84
+ if (registeredComponent.type === 'block-menu-item') {
85
+ return registeredComponent.component ? registeredComponent.component() !== null : true;
86
+ }
87
+ const childrenMapKey = getChildrenMapKey(registeredComponent.key, registeredComponent.type);
88
+ const registeredComponents = childrenMap.get(childrenMapKey) || [];
89
+ if (registeredComponent.type === 'block-menu-nested') {
90
+ return registeredComponents.length > 0;
91
+ }
92
+ return registeredComponents.some(childComponent => willComponentRender(childComponent, childrenMap));
93
+ };
@@ -10,15 +10,15 @@ import { useSharedPluginStateWithSelector } from '@atlaskit/editor-common/hooks'
10
10
  import { deleteSelectedRange } from '@atlaskit/editor-common/selection';
11
11
  import { DRAG_HANDLE_SELECTOR, DRAG_HANDLE_WIDTH } from '@atlaskit/editor-common/styles';
12
12
  import { Popup } from '@atlaskit/editor-common/ui';
13
+ import { ArrowKeyNavigationProvider, ArrowKeyNavigationType } from '@atlaskit/editor-common/ui-menu';
13
14
  import { OutsideClickTargetRefContext, withReactEditorViewOuterListeners } from '@atlaskit/editor-common/ui-react';
14
15
  import { akEditorFloatingOverlapPanelZIndex } from '@atlaskit/editor-shared-styles';
15
- import { ToolbarDropdownItem, ToolbarDropdownItemSection, ToolbarNestedDropdownMenu } from '@atlaskit/editor-toolbar';
16
16
  import { fg } from '@atlaskit/platform-feature-flags';
17
17
  import { conditionalHooksFactory } from '@atlaskit/platform-feature-flags-react';
18
18
  import { Box } from '@atlaskit/primitives/compiled';
19
19
  import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
20
20
  import { useBlockMenu } from './block-menu-provider';
21
- import { BlockMenuRenderer } from './block-menu-renderer';
21
+ import { BlockMenuRenderer } from './block-menu-renderer/BlockMenuRenderer';
22
22
  const styles = {
23
23
  base: "_2rko12b0 _bfhk1bhr _16qs130s",
24
24
  emptyMenuSectionStyles: "_1cc0glyw _1k2yglyw"
@@ -111,18 +111,11 @@ const BlockMenuContent = ({
111
111
  testId: "editor-block-menu",
112
112
  ref: ref,
113
113
  xcss: cx(styles.base, editorExperiment('platform_synced_block', true) && styles.emptyMenuSectionStyles)
114
+ }, /*#__PURE__*/React.createElement(ArrowKeyNavigationProvider, {
115
+ type: ArrowKeyNavigationType.MENU
114
116
  }, /*#__PURE__*/React.createElement(BlockMenuRenderer, {
115
- components: blockMenuComponents || [],
116
- fallbacks: {
117
- nestedMenu: () => /*#__PURE__*/React.createElement(ToolbarNestedDropdownMenu, {
118
- elemBefore: undefined,
119
- elemAfter: undefined
120
- }, /*#__PURE__*/React.createElement(ToolbarDropdownItemSection, null, /*#__PURE__*/React.createElement(ToolbarDropdownItem, null, "Block Menu Item"))),
121
- section: () => /*#__PURE__*/React.createElement(ToolbarDropdownItemSection, null, /*#__PURE__*/React.createElement(ToolbarDropdownItem, null, "Block Menu Item")),
122
- // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-jsx
123
- item: () => /*#__PURE__*/React.createElement(ToolbarDropdownItem, null, "Block Menu Item")
124
- }
125
- }));
117
+ allRegisteredComponents: blockMenuComponents || []
118
+ })));
126
119
  };
127
120
  const BlockMenu = ({
128
121
  editorView,
@@ -0,0 +1,45 @@
1
+ import { useMemo } from 'react';
2
+ import { useSharedPluginStateWithSelector } from '@atlaskit/editor-common/hooks';
3
+ import { getBlockNodesInRange, expandSelectionToBlockRange } from '../../editor-commands/transform-node-utils/utils';
4
+ import { getSortedSuggestedItems } from '../utils/suggested-items-rank';
5
+ export const useSuggestedItems = api => {
6
+ var _api$blockMenu;
7
+ const {
8
+ preservedSelection,
9
+ selection
10
+ } = useSharedPluginStateWithSelector(api, ['blockControls', 'selection'], states => {
11
+ var _states$blockControls, _states$selectionStat;
12
+ return {
13
+ preservedSelection: (_states$blockControls = states.blockControlsState) === null || _states$blockControls === void 0 ? void 0 : _states$blockControls.preservedSelection,
14
+ selection: (_states$selectionStat = states.selectionState) === null || _states$selectionStat === void 0 ? void 0 : _states$selectionStat.selection
15
+ };
16
+ });
17
+ const blockMenuComponents = api === null || api === void 0 ? void 0 : (_api$blockMenu = api.blockMenu) === null || _api$blockMenu === void 0 ? void 0 : _api$blockMenu.actions.getBlockMenuComponents();
18
+ const menuItemsMap = useMemo(() => {
19
+ if (!blockMenuComponents) {
20
+ return new Map();
21
+ }
22
+ return new Map(blockMenuComponents.filter(c => c.type === 'block-menu-item').map(item => [item.key, item]));
23
+ }, [blockMenuComponents]);
24
+ const suggestedItems = useMemo(() => {
25
+ const currentSelection = preservedSelection || selection;
26
+ if (menuItemsMap.size === 0 || !currentSelection) {
27
+ return [];
28
+ }
29
+ const {
30
+ range
31
+ } = expandSelectionToBlockRange(currentSelection, currentSelection.$from.doc.type.schema);
32
+ if (!range) {
33
+ return [];
34
+ }
35
+ const blockNodes = getBlockNodesInRange(range);
36
+ const singleNode = blockNodes.length === 1 ? blockNodes[0] : undefined;
37
+ if (!singleNode) {
38
+ return [];
39
+ }
40
+ const nodeTypeName = singleNode.type.name;
41
+ const sortedKeys = getSortedSuggestedItems(nodeTypeName);
42
+ return sortedKeys.map(key => menuItemsMap.get(key)).filter(item => item !== undefined);
43
+ }, [menuItemsMap, preservedSelection, selection]);
44
+ return suggestedItems;
45
+ };
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { ToolbarDropdownItemSection } from '@atlaskit/editor-toolbar';
3
+ import { useSuggestedItems } from './hooks/useSuggestedItems';
4
+ export const SuggestedItemsMenuSection = /*#__PURE__*/React.memo(({
5
+ api,
6
+ children
7
+ }) => {
8
+ const suggestedItems = useSuggestedItems(api);
9
+ if (suggestedItems.length === 0) {
10
+ return null;
11
+ }
12
+ return /*#__PURE__*/React.createElement(ToolbarDropdownItemSection, {
13
+ title: "Suggested"
14
+ }, children);
15
+ });
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { useSuggestedItems } from './hooks/useSuggestedItems';
3
+ export const SuggestedMenuItems = /*#__PURE__*/React.memo(({
4
+ api
5
+ }) => {
6
+ const suggestedItems = useSuggestedItems(api);
7
+ return /*#__PURE__*/React.createElement(React.Fragment, null, suggestedItems.map(item => {
8
+ const ItemComponent = item.component;
9
+ return ItemComponent ? /*#__PURE__*/React.createElement(ItemComponent, {
10
+ key: item.key
11
+ }) : null;
12
+ }));
13
+ });
@@ -14,7 +14,7 @@
14
14
  * }
15
15
  */
16
16
 
17
- import { TRANSFORM_STRUCTURE_PANEL_MENU_ITEM, TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM, TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM, TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM, TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM, TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM, TRANSFORM_HEADINGS_H2_MENU_ITEM, TRANSFORM_HEADINGS_H3_MENU_ITEM, TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM } from '@atlaskit/editor-common/block-menu';
17
+ import { TRANSFORM_STRUCTURE_PANEL_MENU_ITEM, TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM, TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM, TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM, TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM, TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM, TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM, TRANSFORM_HEADINGS_H1_MENU_ITEM, TRANSFORM_HEADINGS_H2_MENU_ITEM, TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM } from '@atlaskit/editor-common/block-menu';
18
18
  export const BLOCK_MENU_NODE_TYPES = {
19
19
  PARAGRAPH: 'paragraph',
20
20
  EXPAND: 'expand',
@@ -37,85 +37,73 @@ export const BLOCK_MENU_NODE_TYPES = {
37
37
  export const TRANSFORM_SUGGESTED_ITEMS_RANK = {
38
38
  [BLOCK_MENU_NODE_TYPES.PARAGRAPH]: {
39
39
  [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 100,
40
- [TRANSFORM_HEADINGS_H2_MENU_ITEM.key]: 200,
41
- [TRANSFORM_HEADINGS_H3_MENU_ITEM.key]: 300
40
+ [TRANSFORM_HEADINGS_H1_MENU_ITEM.key]: 200,
41
+ [TRANSFORM_HEADINGS_H2_MENU_ITEM.key]: 300
42
42
  },
43
43
  [BLOCK_MENU_NODE_TYPES.EXPAND]: {
44
- [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 100,
45
- [TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key]: 200,
44
+ [TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key]: 100,
45
+ [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 200,
46
46
  [TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key]: 300
47
47
  },
48
48
  [BLOCK_MENU_NODE_TYPES.BLOCKQUOTE]: {
49
- [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 100,
50
- [TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key]: 200,
51
- [TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key]: 300
49
+ [TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key]: 100,
50
+ [TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key]: 200,
51
+ [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 300
52
52
  },
53
53
  [BLOCK_MENU_NODE_TYPES.LAYOUT_SECTION]: {
54
54
  [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 100,
55
55
  [TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key]: 200,
56
- [TRANSFORM_HEADINGS_H2_MENU_ITEM.key]: 300
56
+ [TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key]: 300
57
57
  },
58
58
  [BLOCK_MENU_NODE_TYPES.PANEL]: {
59
- [TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key]: 100,
60
- [TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM.key]: 200,
61
- [TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM.key]: 300
59
+ [TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM.key]: 100,
60
+ [TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM.key]: 200,
61
+ [TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key]: 300
62
62
  },
63
63
  [BLOCK_MENU_NODE_TYPES.CODE_BLOCK]: {
64
64
  [TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key]: 100,
65
- [TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key]: 200,
66
- [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 300
65
+ [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 200,
66
+ [TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key]: 300
67
67
  },
68
68
  [BLOCK_MENU_NODE_TYPES.DECISION]: {
69
69
  [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 100,
70
- [TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key]: 200,
71
- [TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM.key]: 300
70
+ [TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM.key]: 200,
71
+ [TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key]: 300
72
72
  },
73
73
  [BLOCK_MENU_NODE_TYPES.BULLET_LIST]: {
74
74
  [TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM.key]: 100,
75
75
  [TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM.key]: 200,
76
- [TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key]: 300
76
+ [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 300
77
77
  },
78
78
  [BLOCK_MENU_NODE_TYPES.ORDERED_LIST]: {
79
- [TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM.key]: 100,
80
- [TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM.key]: 200,
81
- [TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key]: 300
79
+ [TRANSFORM_STRUCTURE_TASK_LIST_MENU_ITEM.key]: 100,
80
+ [TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM.key]: 200,
81
+ [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 300
82
82
  },
83
83
  [BLOCK_MENU_NODE_TYPES.HEADING]: {
84
84
  [TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key]: 100,
85
- [TRANSFORM_HEADINGS_H2_MENU_ITEM.key]: 200,
86
- [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 300
85
+ [TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM.key]: 200,
86
+ [TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM.key]: 300
87
87
  },
88
88
  [BLOCK_MENU_NODE_TYPES.TASK_LIST]: {
89
- [TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key]: 100,
89
+ [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 100,
90
90
  [TRANSFORM_STRUCTURE_NUMBERED_LIST_MENU_ITEM.key]: 200,
91
- [TRANSFORM_STRUCTURE_CODE_BLOCK_MENU_ITEM.key]: 300
91
+ [TRANSFORM_STRUCTURE_BULLETED_LIST_MENU_ITEM.key]: 300
92
92
  },
93
93
  [BLOCK_MENU_NODE_TYPES.MEDIA_SINGLE]: {
94
94
  [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 100,
95
- [TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key]: 200,
96
- [TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key]: 300
95
+ [TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key]: 200,
96
+ [TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM.key]: 300
97
97
  },
98
98
  [BLOCK_MENU_NODE_TYPES.EXTENSION]: {
99
- [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 100,
100
- [TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key]: 200,
101
- [TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key]: 300
99
+ [TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key]: 100,
100
+ [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 200,
101
+ [TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key]: 300
102
102
  },
103
103
  [BLOCK_MENU_NODE_TYPES.BODIED_EXTENSION]: {
104
- [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 100,
105
- [TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key]: 200,
106
- [TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key]: 300
107
- },
108
- [BLOCK_MENU_NODE_TYPES.BLOCK_CARD]: {
109
- [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 100,
110
- [TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key]: 200
111
- },
112
- [BLOCK_MENU_NODE_TYPES.EMBED_CARD]: {
113
- [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 100,
114
- [TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key]: 200
115
- },
116
- [BLOCK_MENU_NODE_TYPES.TABLE]: {
117
104
  [TRANSFORM_STRUCTURE_EXPAND_MENU_ITEM.key]: 100,
118
- [TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key]: 200
105
+ [TRANSFORM_STRUCTURE_PANEL_MENU_ITEM.key]: 200,
106
+ [TRANSFORM_STRUCTURE_LAYOUT_MENU_ITEM.key]: 300
119
107
  }
120
108
  };
121
109
  export const getSuggestedItemsForNodeType = nodeType => {
@@ -84,9 +84,9 @@ var TRANSFORM_STEPS_OVERRIDE = {
84
84
  decisionList: [unwrapStep, wrapBlockquoteToDecisionListStep]
85
85
  },
86
86
  layoutSection: {
87
- blockquote: [unwrapLayoutStep, wrapStep],
87
+ blockquote: [unwrapLayoutStep, wrapMixedContentStep],
88
88
  expand: [unwrapLayoutStep, wrapStep],
89
- panel: [unwrapLayoutStep, wrapStep],
89
+ panel: [unwrapLayoutStep, wrapMixedContentStep],
90
90
  codeBlock: [unwrapLayoutStep, flattenStep, wrapStep],
91
91
  paragraph: [unwrapLayoutStep]
92
92
  },