@wordpress/block-editor 11.3.4 → 11.3.6

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 (80) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/build/components/block-inspector/index.js +11 -10
  3. package/build/components/block-inspector/index.js.map +1 -1
  4. package/build/components/block-inspector/useBlockInspectorAnimationSettings.js +46 -0
  5. package/build/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -0
  6. package/build/components/inserter/media-tab/hooks.js +10 -11
  7. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  8. package/build/components/inserter/media-tab/media-list.js +5 -108
  9. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  10. package/build/components/inserter/media-tab/media-preview.js +242 -0
  11. package/build/components/inserter/media-tab/media-preview.js.map +1 -0
  12. package/build/components/link-control/index.js +17 -44
  13. package/build/components/link-control/index.js.map +1 -1
  14. package/build/components/list-view/block.js +14 -2
  15. package/build/components/list-view/block.js.map +1 -1
  16. package/build/components/list-view/branch.js +2 -2
  17. package/build/components/list-view/branch.js.map +1 -1
  18. package/build/components/list-view/leaf.js +10 -6
  19. package/build/components/list-view/leaf.js.map +1 -1
  20. package/build/components/list-view/use-list-view-scroll-into-view.js +51 -0
  21. package/build/components/list-view/use-list-view-scroll-into-view.js.map +1 -0
  22. package/build/components/off-canvas-editor/leaf-more-menu.js +126 -0
  23. package/build/components/off-canvas-editor/leaf-more-menu.js.map +1 -0
  24. package/build/private-apis.js +3 -0
  25. package/build/private-apis.js.map +1 -1
  26. package/build/store/defaults.js +28 -1
  27. package/build/store/defaults.js.map +1 -1
  28. package/build/store/selectors.js +1 -1
  29. package/build/store/selectors.js.map +1 -1
  30. package/build-module/components/block-inspector/index.js +9 -9
  31. package/build-module/components/block-inspector/index.js.map +1 -1
  32. package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js +37 -0
  33. package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -0
  34. package/build-module/components/inserter/media-tab/hooks.js +10 -11
  35. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  36. package/build-module/components/inserter/media-tab/media-list.js +6 -105
  37. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  38. package/build-module/components/inserter/media-tab/media-preview.js +222 -0
  39. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -0
  40. package/build-module/components/link-control/index.js +16 -44
  41. package/build-module/components/link-control/index.js.map +1 -1
  42. package/build-module/components/list-view/block.js +13 -2
  43. package/build-module/components/list-view/block.js.map +1 -1
  44. package/build-module/components/list-view/branch.js +2 -2
  45. package/build-module/components/list-view/branch.js.map +1 -1
  46. package/build-module/components/list-view/leaf.js +8 -4
  47. package/build-module/components/list-view/leaf.js.map +1 -1
  48. package/build-module/components/list-view/use-list-view-scroll-into-view.js +42 -0
  49. package/build-module/components/list-view/use-list-view-scroll-into-view.js.map +1 -0
  50. package/build-module/components/off-canvas-editor/leaf-more-menu.js +108 -0
  51. package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +1 -0
  52. package/build-module/private-apis.js +2 -0
  53. package/build-module/private-apis.js.map +1 -1
  54. package/build-module/store/defaults.js +28 -1
  55. package/build-module/store/defaults.js.map +1 -1
  56. package/build-module/store/selectors.js +1 -1
  57. package/build-module/store/selectors.js.map +1 -1
  58. package/build-style/style-rtl.css +43 -8
  59. package/build-style/style.css +43 -8
  60. package/package.json +12 -12
  61. package/src/components/block-inspector/index.js +11 -14
  62. package/src/components/block-inspector/useBlockInspectorAnimationSettings.js +53 -0
  63. package/src/components/inserter/media-tab/hooks.js +9 -8
  64. package/src/components/inserter/media-tab/media-list.js +3 -122
  65. package/src/components/inserter/media-tab/media-preview.js +268 -0
  66. package/src/components/inserter/style.scss +22 -0
  67. package/src/components/link-control/index.js +23 -58
  68. package/src/components/link-control/style.scss +23 -7
  69. package/src/components/link-control/test/index.js +5 -134
  70. package/src/components/list-view/block.js +12 -0
  71. package/src/components/list-view/branch.js +1 -2
  72. package/src/components/list-view/leaf.js +43 -29
  73. package/src/components/list-view/use-list-view-scroll-into-view.js +48 -0
  74. package/src/components/media-replace-flow/test/index.js +1 -1
  75. package/src/components/off-canvas-editor/leaf-more-menu.js +120 -0
  76. package/src/components/spacing-sizes-control/style.scss +1 -1
  77. package/src/private-apis.js +2 -0
  78. package/src/store/defaults.js +14 -1
  79. package/src/store/selectors.js +4 -1
  80. package/tsconfig.tsbuildinfo +1 -1
@@ -125,12 +125,12 @@ function ListViewBranch(props) {
125
125
  const updatedPath = path.length > 0 ? `${path}_${position}` : `${position}`;
126
126
  const hasNestedBlocks = !!(innerBlocks !== null && innerBlocks !== void 0 && innerBlocks.length);
127
127
  const shouldExpand = hasNestedBlocks && shouldShowInnerBlocks ? (_expandedState$client = expandedState[clientId]) !== null && _expandedState$client !== void 0 ? _expandedState$client : isExpanded : undefined;
128
- const isDragged = !!(draggedClientIds !== null && draggedClientIds !== void 0 && draggedClientIds.includes(clientId));
129
- const showBlock = isDragged || blockInView; // Make updates to the selected or dragged blocks synchronous,
128
+ const isDragged = !!(draggedClientIds !== null && draggedClientIds !== void 0 && draggedClientIds.includes(clientId)); // Make updates to the selected or dragged blocks synchronous,
130
129
  // but asynchronous for any other block.
131
130
 
132
131
  const isSelected = isClientIdSelected(clientId, selectedClientIds);
133
132
  const isSelectedBranch = isBranchSelected || isSelected && hasNestedBlocks;
133
+ const showBlock = isDragged || blockInView || isSelected;
134
134
  return createElement(AsyncModeProvider, {
135
135
  key: clientId,
136
136
  value: !isSelected
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/branch.js"],"names":["memo","AsyncModeProvider","useSelect","ListViewBlock","useListViewContext","isClientIdSelected","store","blockEditorStore","useBlockDisplayInformation","countBlocks","block","expandedState","draggedClientIds","isExpandedByDefault","isDragged","includes","clientId","isExpanded","innerBlocks","reduce","countReducer","count","length","noop","ListViewBranch","props","blocks","selectBlock","showBlockMovers","selectedClientIds","level","path","isBranchSelected","listPosition","fixedListWindow","parentId","shouldShowInnerBlocks","isSyncedBranch","parentBlockInformation","syncedBranch","isSynced","canParentExpand","select","isContentLocked","getTemplateLock","canEdit","canEditBlock","filteredBlocks","filter","Boolean","blockCount","nextPosition","map","index","itemInView","blockInView","position","updatedPath","hasNestedBlocks","shouldExpand","undefined","showBlock","isSelected","isSelectedBranch"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { memo } from '@wordpress/element';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport ListViewBlock from './block';\nimport { useListViewContext } from './context';\nimport { isClientIdSelected } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\n\n/**\n * Given a block, returns the total number of blocks in that subtree. This is used to help determine\n * the list position of a block.\n *\n * When a block is collapsed, we do not count their children as part of that total. In the current drag\n * implementation dragged blocks and their children are not counted.\n *\n * @param {Object} block block tree\n * @param {Object} expandedState state that notes which branches are collapsed\n * @param {Array} draggedClientIds a list of dragged client ids\n * @param {boolean} isExpandedByDefault flag to determine the default fallback expanded state.\n * @return {number} block count\n */\nfunction countBlocks(\n\tblock,\n\texpandedState,\n\tdraggedClientIds,\n\tisExpandedByDefault\n) {\n\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\tif ( isDragged ) {\n\t\treturn 0;\n\t}\n\tconst isExpanded = expandedState[ block.clientId ] ?? isExpandedByDefault;\n\n\tif ( isExpanded ) {\n\t\treturn (\n\t\t\t1 +\n\t\t\tblock.innerBlocks.reduce(\n\t\t\t\tcountReducer(\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t),\n\t\t\t\t0\n\t\t\t)\n\t\t);\n\t}\n\treturn 1;\n}\nconst countReducer =\n\t( expandedState, draggedClientIds, isExpandedByDefault ) =>\n\t( count, block ) => {\n\t\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\t\tif ( isDragged ) {\n\t\t\treturn count;\n\t\t}\n\t\tconst isExpanded =\n\t\t\texpandedState[ block.clientId ] ?? isExpandedByDefault;\n\t\tif ( isExpanded && block.innerBlocks.length > 0 ) {\n\t\t\treturn (\n\t\t\t\tcount +\n\t\t\t\tcountBlocks(\n\t\t\t\t\tblock,\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn count + 1;\n\t};\n\nconst noop = () => {};\n\nfunction ListViewBranch( props ) {\n\tconst {\n\t\tblocks,\n\t\tselectBlock = noop,\n\t\tshowBlockMovers,\n\t\tselectedClientIds,\n\t\tlevel = 1,\n\t\tpath = '',\n\t\tisBranchSelected = false,\n\t\tlistPosition = 0,\n\t\tfixedListWindow,\n\t\tisExpanded,\n\t\tparentId,\n\t\tshouldShowInnerBlocks = true,\n\t\tisSyncedBranch = false,\n\t} = props;\n\n\tconst parentBlockInformation = useBlockDisplayInformation( parentId );\n\tconst syncedBranch = isSyncedBranch || !! parentBlockInformation?.isSynced;\n\n\tconst canParentExpand = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! parentId ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst isContentLocked =\n\t\t\t\tselect( blockEditorStore ).getTemplateLock( parentId ) ===\n\t\t\t\t'contentOnly';\n\t\t\tconst canEdit = select( blockEditorStore ).canEditBlock( parentId );\n\n\t\t\treturn isContentLocked ? false : canEdit;\n\t\t},\n\t\t[ parentId ]\n\t);\n\n\tconst { expandedState, draggedClientIds } = useListViewContext();\n\n\tif ( ! canParentExpand ) {\n\t\treturn null;\n\t}\n\n\tconst filteredBlocks = blocks.filter( Boolean );\n\tconst blockCount = filteredBlocks.length;\n\tlet nextPosition = listPosition;\n\n\treturn (\n\t\t<>\n\t\t\t{ filteredBlocks.map( ( block, index ) => {\n\t\t\t\tconst { clientId, innerBlocks } = block;\n\n\t\t\t\tif ( index > 0 ) {\n\t\t\t\t\tnextPosition += countBlocks(\n\t\t\t\t\t\tfilteredBlocks[ index - 1 ],\n\t\t\t\t\t\texpandedState,\n\t\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\t\tisExpanded\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst { itemInView } = fixedListWindow;\n\t\t\t\tconst blockInView = itemInView( nextPosition );\n\n\t\t\t\tconst position = index + 1;\n\t\t\t\tconst updatedPath =\n\t\t\t\t\tpath.length > 0\n\t\t\t\t\t\t? `${ path }_${ position }`\n\t\t\t\t\t\t: `${ position }`;\n\t\t\t\tconst hasNestedBlocks = !! innerBlocks?.length;\n\n\t\t\t\tconst shouldExpand =\n\t\t\t\t\thasNestedBlocks && shouldShowInnerBlocks\n\t\t\t\t\t\t? expandedState[ clientId ] ?? isExpanded\n\t\t\t\t\t\t: undefined;\n\n\t\t\t\tconst isDragged = !! draggedClientIds?.includes( clientId );\n\n\t\t\t\tconst showBlock = isDragged || blockInView;\n\n\t\t\t\t// Make updates to the selected or dragged blocks synchronous,\n\t\t\t\t// but asynchronous for any other block.\n\t\t\t\tconst isSelected = isClientIdSelected(\n\t\t\t\t\tclientId,\n\t\t\t\t\tselectedClientIds\n\t\t\t\t);\n\t\t\t\tconst isSelectedBranch =\n\t\t\t\t\tisBranchSelected || ( isSelected && hasNestedBlocks );\n\t\t\t\treturn (\n\t\t\t\t\t<AsyncModeProvider key={ clientId } value={ ! isSelected }>\n\t\t\t\t\t\t{ showBlock && (\n\t\t\t\t\t\t\t<ListViewBlock\n\t\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tisDragged={ isDragged }\n\t\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\t\trowCount={ blockCount }\n\t\t\t\t\t\t\t\tsiblingBlockCount={ blockCount }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tisExpanded={ shouldExpand }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t\tisSyncedBranch={ syncedBranch }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! showBlock && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td className=\"block-editor-list-view-placeholder\" />\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasNestedBlocks && shouldExpand && ! isDragged && (\n\t\t\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\t\t\tparentId={ clientId }\n\t\t\t\t\t\t\t\tblocks={ innerBlocks }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tlevel={ level + 1 }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition + 1 }\n\t\t\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\t\tisSyncedBranch={ syncedBranch }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</AsyncModeProvider>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n\nexport default memo( ListViewBranch );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/branch.js"],"names":["memo","AsyncModeProvider","useSelect","ListViewBlock","useListViewContext","isClientIdSelected","store","blockEditorStore","useBlockDisplayInformation","countBlocks","block","expandedState","draggedClientIds","isExpandedByDefault","isDragged","includes","clientId","isExpanded","innerBlocks","reduce","countReducer","count","length","noop","ListViewBranch","props","blocks","selectBlock","showBlockMovers","selectedClientIds","level","path","isBranchSelected","listPosition","fixedListWindow","parentId","shouldShowInnerBlocks","isSyncedBranch","parentBlockInformation","syncedBranch","isSynced","canParentExpand","select","isContentLocked","getTemplateLock","canEdit","canEditBlock","filteredBlocks","filter","Boolean","blockCount","nextPosition","map","index","itemInView","blockInView","position","updatedPath","hasNestedBlocks","shouldExpand","undefined","isSelected","isSelectedBranch","showBlock"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { memo } from '@wordpress/element';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport ListViewBlock from './block';\nimport { useListViewContext } from './context';\nimport { isClientIdSelected } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\n\n/**\n * Given a block, returns the total number of blocks in that subtree. This is used to help determine\n * the list position of a block.\n *\n * When a block is collapsed, we do not count their children as part of that total. In the current drag\n * implementation dragged blocks and their children are not counted.\n *\n * @param {Object} block block tree\n * @param {Object} expandedState state that notes which branches are collapsed\n * @param {Array} draggedClientIds a list of dragged client ids\n * @param {boolean} isExpandedByDefault flag to determine the default fallback expanded state.\n * @return {number} block count\n */\nfunction countBlocks(\n\tblock,\n\texpandedState,\n\tdraggedClientIds,\n\tisExpandedByDefault\n) {\n\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\tif ( isDragged ) {\n\t\treturn 0;\n\t}\n\tconst isExpanded = expandedState[ block.clientId ] ?? isExpandedByDefault;\n\n\tif ( isExpanded ) {\n\t\treturn (\n\t\t\t1 +\n\t\t\tblock.innerBlocks.reduce(\n\t\t\t\tcountReducer(\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t),\n\t\t\t\t0\n\t\t\t)\n\t\t);\n\t}\n\treturn 1;\n}\nconst countReducer =\n\t( expandedState, draggedClientIds, isExpandedByDefault ) =>\n\t( count, block ) => {\n\t\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\t\tif ( isDragged ) {\n\t\t\treturn count;\n\t\t}\n\t\tconst isExpanded =\n\t\t\texpandedState[ block.clientId ] ?? isExpandedByDefault;\n\t\tif ( isExpanded && block.innerBlocks.length > 0 ) {\n\t\t\treturn (\n\t\t\t\tcount +\n\t\t\t\tcountBlocks(\n\t\t\t\t\tblock,\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn count + 1;\n\t};\n\nconst noop = () => {};\n\nfunction ListViewBranch( props ) {\n\tconst {\n\t\tblocks,\n\t\tselectBlock = noop,\n\t\tshowBlockMovers,\n\t\tselectedClientIds,\n\t\tlevel = 1,\n\t\tpath = '',\n\t\tisBranchSelected = false,\n\t\tlistPosition = 0,\n\t\tfixedListWindow,\n\t\tisExpanded,\n\t\tparentId,\n\t\tshouldShowInnerBlocks = true,\n\t\tisSyncedBranch = false,\n\t} = props;\n\n\tconst parentBlockInformation = useBlockDisplayInformation( parentId );\n\tconst syncedBranch = isSyncedBranch || !! parentBlockInformation?.isSynced;\n\n\tconst canParentExpand = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! parentId ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst isContentLocked =\n\t\t\t\tselect( blockEditorStore ).getTemplateLock( parentId ) ===\n\t\t\t\t'contentOnly';\n\t\t\tconst canEdit = select( blockEditorStore ).canEditBlock( parentId );\n\n\t\t\treturn isContentLocked ? false : canEdit;\n\t\t},\n\t\t[ parentId ]\n\t);\n\n\tconst { expandedState, draggedClientIds } = useListViewContext();\n\n\tif ( ! canParentExpand ) {\n\t\treturn null;\n\t}\n\n\tconst filteredBlocks = blocks.filter( Boolean );\n\tconst blockCount = filteredBlocks.length;\n\tlet nextPosition = listPosition;\n\n\treturn (\n\t\t<>\n\t\t\t{ filteredBlocks.map( ( block, index ) => {\n\t\t\t\tconst { clientId, innerBlocks } = block;\n\n\t\t\t\tif ( index > 0 ) {\n\t\t\t\t\tnextPosition += countBlocks(\n\t\t\t\t\t\tfilteredBlocks[ index - 1 ],\n\t\t\t\t\t\texpandedState,\n\t\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\t\tisExpanded\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst { itemInView } = fixedListWindow;\n\t\t\t\tconst blockInView = itemInView( nextPosition );\n\n\t\t\t\tconst position = index + 1;\n\t\t\t\tconst updatedPath =\n\t\t\t\t\tpath.length > 0\n\t\t\t\t\t\t? `${ path }_${ position }`\n\t\t\t\t\t\t: `${ position }`;\n\t\t\t\tconst hasNestedBlocks = !! innerBlocks?.length;\n\n\t\t\t\tconst shouldExpand =\n\t\t\t\t\thasNestedBlocks && shouldShowInnerBlocks\n\t\t\t\t\t\t? expandedState[ clientId ] ?? isExpanded\n\t\t\t\t\t\t: undefined;\n\n\t\t\t\tconst isDragged = !! draggedClientIds?.includes( clientId );\n\n\t\t\t\t// Make updates to the selected or dragged blocks synchronous,\n\t\t\t\t// but asynchronous for any other block.\n\t\t\t\tconst isSelected = isClientIdSelected(\n\t\t\t\t\tclientId,\n\t\t\t\t\tselectedClientIds\n\t\t\t\t);\n\t\t\t\tconst isSelectedBranch =\n\t\t\t\t\tisBranchSelected || ( isSelected && hasNestedBlocks );\n\t\t\t\tconst showBlock = isDragged || blockInView || isSelected;\n\t\t\t\treturn (\n\t\t\t\t\t<AsyncModeProvider key={ clientId } value={ ! isSelected }>\n\t\t\t\t\t\t{ showBlock && (\n\t\t\t\t\t\t\t<ListViewBlock\n\t\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tisDragged={ isDragged }\n\t\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\t\trowCount={ blockCount }\n\t\t\t\t\t\t\t\tsiblingBlockCount={ blockCount }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tisExpanded={ shouldExpand }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t\tisSyncedBranch={ syncedBranch }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! showBlock && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td className=\"block-editor-list-view-placeholder\" />\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasNestedBlocks && shouldExpand && ! isDragged && (\n\t\t\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\t\t\tparentId={ clientId }\n\t\t\t\t\t\t\t\tblocks={ innerBlocks }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tlevel={ level + 1 }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition + 1 }\n\t\t\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\t\tisSyncedBranch={ syncedBranch }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</AsyncModeProvider>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n\nexport default memo( ListViewBranch );\n"]}
@@ -11,13 +11,15 @@ import classnames from 'classnames';
11
11
  */
12
12
 
13
13
  import { __experimentalTreeGridRow as TreeGridRow } from '@wordpress/components';
14
+ import { useMergeRefs } from '@wordpress/compose';
15
+ import { forwardRef } from '@wordpress/element';
14
16
  /**
15
17
  * Internal dependencies
16
18
  */
17
19
 
18
20
  import useMovingAnimation from '../use-moving-animation';
19
21
  const AnimatedTreeGridRow = animated(TreeGridRow);
20
- export default function ListViewLeaf(_ref) {
22
+ const ListViewLeaf = forwardRef((_ref, ref) => {
21
23
  let {
22
24
  isSelected,
23
25
  position,
@@ -28,18 +30,20 @@ export default function ListViewLeaf(_ref) {
28
30
  path,
29
31
  ...props
30
32
  } = _ref;
31
- const ref = useMovingAnimation({
33
+ const animationRef = useMovingAnimation({
32
34
  isSelected,
33
35
  adjustScrolling: false,
34
36
  enableAnimation: true,
35
37
  triggerAnimationOnChange: path
36
38
  });
39
+ const mergedRef = useMergeRefs([ref, animationRef]);
37
40
  return createElement(AnimatedTreeGridRow, _extends({
38
- ref: ref,
41
+ ref: mergedRef,
39
42
  className: classnames('block-editor-list-view-leaf', className),
40
43
  level: level,
41
44
  positionInSet: position,
42
45
  setSize: rowCount
43
46
  }, props), children);
44
- }
47
+ });
48
+ export default ListViewLeaf;
45
49
  //# sourceMappingURL=leaf.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/leaf.js"],"names":["animated","classnames","__experimentalTreeGridRow","TreeGridRow","useMovingAnimation","AnimatedTreeGridRow","ListViewLeaf","isSelected","position","level","rowCount","children","className","path","props","ref","adjustScrolling","enableAnimation","triggerAnimationOnChange"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,QAAT,QAAyB,mBAAzB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,yBAAyB,IAAIC,WAAtC,QAAyD,uBAAzD;AAEA;AACA;AACA;;AACA,OAAOC,kBAAP,MAA+B,yBAA/B;AAEA,MAAMC,mBAAmB,GAAGL,QAAQ,CAAEG,WAAF,CAApC;AAEA,eAAe,SAASG,YAAT,OASX;AAAA,MATkC;AACrCC,IAAAA,UADqC;AAErCC,IAAAA,QAFqC;AAGrCC,IAAAA,KAHqC;AAIrCC,IAAAA,QAJqC;AAKrCC,IAAAA,QALqC;AAMrCC,IAAAA,SANqC;AAOrCC,IAAAA,IAPqC;AAQrC,OAAGC;AARkC,GASlC;AACH,QAAMC,GAAG,GAAGX,kBAAkB,CAAE;AAC/BG,IAAAA,UAD+B;AAE/BS,IAAAA,eAAe,EAAE,KAFc;AAG/BC,IAAAA,eAAe,EAAE,IAHc;AAI/BC,IAAAA,wBAAwB,EAAEL;AAJK,GAAF,CAA9B;AAOA,SACC,cAAC,mBAAD;AACC,IAAA,GAAG,EAAGE,GADP;AAEC,IAAA,SAAS,EAAGd,UAAU,CAAE,6BAAF,EAAiCW,SAAjC,CAFvB;AAGC,IAAA,KAAK,EAAGH,KAHT;AAIC,IAAA,aAAa,EAAGD,QAJjB;AAKC,IAAA,OAAO,EAAGE;AALX,KAMMI,KANN,GAQGH,QARH,CADD;AAYA","sourcesContent":["/**\n * External dependencies\n */\nimport { animated } from '@react-spring/web';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalTreeGridRow as TreeGridRow } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../use-moving-animation';\n\nconst AnimatedTreeGridRow = animated( TreeGridRow );\n\nexport default function ListViewLeaf( {\n\tisSelected,\n\tposition,\n\tlevel,\n\trowCount,\n\tchildren,\n\tclassName,\n\tpath,\n\t...props\n} ) {\n\tconst ref = useMovingAnimation( {\n\t\tisSelected,\n\t\tadjustScrolling: false,\n\t\tenableAnimation: true,\n\t\ttriggerAnimationOnChange: path,\n\t} );\n\n\treturn (\n\t\t<AnimatedTreeGridRow\n\t\t\tref={ ref }\n\t\t\tclassName={ classnames( 'block-editor-list-view-leaf', className ) }\n\t\t\tlevel={ level }\n\t\t\tpositionInSet={ position }\n\t\t\tsetSize={ rowCount }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ children }\n\t\t</AnimatedTreeGridRow>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/leaf.js"],"names":["animated","classnames","__experimentalTreeGridRow","TreeGridRow","useMergeRefs","forwardRef","useMovingAnimation","AnimatedTreeGridRow","ListViewLeaf","ref","isSelected","position","level","rowCount","children","className","path","props","animationRef","adjustScrolling","enableAnimation","triggerAnimationOnChange","mergedRef"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,QAAT,QAAyB,mBAAzB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,yBAAyB,IAAIC,WAAtC,QAAyD,uBAAzD;AACA,SAASC,YAAT,QAA6B,oBAA7B;AACA,SAASC,UAAT,QAA2B,oBAA3B;AAEA;AACA;AACA;;AACA,OAAOC,kBAAP,MAA+B,yBAA/B;AAEA,MAAMC,mBAAmB,GAAGP,QAAQ,CAAEG,WAAF,CAApC;AAEA,MAAMK,YAAY,GAAGH,UAAU,CAC9B,OAWCI,GAXD,KAYK;AAAA,MAXJ;AACCC,IAAAA,UADD;AAECC,IAAAA,QAFD;AAGCC,IAAAA,KAHD;AAICC,IAAAA,QAJD;AAKCC,IAAAA,QALD;AAMCC,IAAAA,SAND;AAOCC,IAAAA,IAPD;AAQC,OAAGC;AARJ,GAWI;AACJ,QAAMC,YAAY,GAAGZ,kBAAkB,CAAE;AACxCI,IAAAA,UADwC;AAExCS,IAAAA,eAAe,EAAE,KAFuB;AAGxCC,IAAAA,eAAe,EAAE,IAHuB;AAIxCC,IAAAA,wBAAwB,EAAEL;AAJc,GAAF,CAAvC;AAOA,QAAMM,SAAS,GAAGlB,YAAY,CAAE,CAAEK,GAAF,EAAOS,YAAP,CAAF,CAA9B;AAEA,SACC,cAAC,mBAAD;AACC,IAAA,GAAG,EAAGI,SADP;AAEC,IAAA,SAAS,EAAGrB,UAAU,CACrB,6BADqB,EAErBc,SAFqB,CAFvB;AAMC,IAAA,KAAK,EAAGH,KANT;AAOC,IAAA,aAAa,EAAGD,QAPjB;AAQC,IAAA,OAAO,EAAGE;AARX,KASMI,KATN,GAWGH,QAXH,CADD;AAeA,CAtC6B,CAA/B;AAyCA,eAAeN,YAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { animated } from '@react-spring/web';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalTreeGridRow as TreeGridRow } from '@wordpress/components';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../use-moving-animation';\n\nconst AnimatedTreeGridRow = animated( TreeGridRow );\n\nconst ListViewLeaf = forwardRef(\n\t(\n\t\t{\n\t\t\tisSelected,\n\t\t\tposition,\n\t\t\tlevel,\n\t\t\trowCount,\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tpath,\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst animationRef = useMovingAnimation( {\n\t\t\tisSelected,\n\t\t\tadjustScrolling: false,\n\t\t\tenableAnimation: true,\n\t\t\ttriggerAnimationOnChange: path,\n\t\t} );\n\n\t\tconst mergedRef = useMergeRefs( [ ref, animationRef ] );\n\n\t\treturn (\n\t\t\t<AnimatedTreeGridRow\n\t\t\t\tref={ mergedRef }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-list-view-leaf',\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\tlevel={ level }\n\t\t\t\tpositionInSet={ position }\n\t\t\t\tsetSize={ rowCount }\n\t\t\t\t{ ...props }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</AnimatedTreeGridRow>\n\t\t);\n\t}\n);\n\nexport default ListViewLeaf;\n"]}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { getScrollContainer } from '@wordpress/dom';
5
+ import { useLayoutEffect } from '@wordpress/element';
6
+ export default function useListViewScrollIntoView(_ref) {
7
+ let {
8
+ isSelected,
9
+ selectedClientIds,
10
+ rowItemRef
11
+ } = _ref;
12
+ const isSingleSelection = selectedClientIds.length === 1;
13
+ useLayoutEffect(() => {
14
+ // Skip scrolling into view if this particular block isn't selected,
15
+ // or if more than one block is selected overall. This is to avoid
16
+ // scrolling the view in a multi selection where the user has intentionally
17
+ // selected multiple blocks within the list view, but the initially
18
+ // selected block may be out of view.
19
+ if (!isSelected || !isSingleSelection || !rowItemRef.current) {
20
+ return;
21
+ }
22
+
23
+ const scrollContainer = getScrollContainer(rowItemRef.current);
24
+ const {
25
+ ownerDocument
26
+ } = rowItemRef.current;
27
+ const windowScroll = scrollContainer === ownerDocument.body || scrollContainer === ownerDocument.documentElement; // If the there is no scroll container, of if the scroll container is the window,
28
+ // do not scroll into view, as the block is already in view.
29
+
30
+ if (windowScroll || !scrollContainer) {
31
+ return;
32
+ }
33
+
34
+ const rowRect = rowItemRef.current.getBoundingClientRect();
35
+ const scrollContainerRect = scrollContainer.getBoundingClientRect(); // If the selected block is not currently visible, scroll to it.
36
+
37
+ if (rowRect.top < scrollContainerRect.top || rowRect.bottom > scrollContainerRect.bottom) {
38
+ rowItemRef.current.scrollIntoView();
39
+ }
40
+ }, [isSelected, isSingleSelection, rowItemRef]);
41
+ }
42
+ //# sourceMappingURL=use-list-view-scroll-into-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/use-list-view-scroll-into-view.js"],"names":["getScrollContainer","useLayoutEffect","useListViewScrollIntoView","isSelected","selectedClientIds","rowItemRef","isSingleSelection","length","current","scrollContainer","ownerDocument","windowScroll","body","documentElement","rowRect","getBoundingClientRect","scrollContainerRect","top","bottom","scrollIntoView"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,kBAAT,QAAmC,gBAAnC;AACA,SAASC,eAAT,QAAgC,oBAAhC;AAEA,eAAe,SAASC,yBAAT,OAIX;AAAA,MAJ+C;AAClDC,IAAAA,UADkD;AAElDC,IAAAA,iBAFkD;AAGlDC,IAAAA;AAHkD,GAI/C;AACH,QAAMC,iBAAiB,GAAGF,iBAAiB,CAACG,MAAlB,KAA6B,CAAvD;AAEAN,EAAAA,eAAe,CAAE,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA,QAAK,CAAEE,UAAF,IAAgB,CAAEG,iBAAlB,IAAuC,CAAED,UAAU,CAACG,OAAzD,EAAmE;AAClE;AACA;;AAED,UAAMC,eAAe,GAAGT,kBAAkB,CAAEK,UAAU,CAACG,OAAb,CAA1C;AACA,UAAM;AAAEE,MAAAA;AAAF,QAAoBL,UAAU,CAACG,OAArC;AAEA,UAAMG,YAAY,GACjBF,eAAe,KAAKC,aAAa,CAACE,IAAlC,IACAH,eAAe,KAAKC,aAAa,CAACG,eAFnC,CAbsB,CAiBtB;AACA;;AACA,QAAKF,YAAY,IAAI,CAAEF,eAAvB,EAAyC;AACxC;AACA;;AAED,UAAMK,OAAO,GAAGT,UAAU,CAACG,OAAX,CAAmBO,qBAAnB,EAAhB;AACA,UAAMC,mBAAmB,GAAGP,eAAe,CAACM,qBAAhB,EAA5B,CAxBsB,CA0BtB;;AACA,QACCD,OAAO,CAACG,GAAR,GAAcD,mBAAmB,CAACC,GAAlC,IACAH,OAAO,CAACI,MAAR,GAAiBF,mBAAmB,CAACE,MAFtC,EAGE;AACDb,MAAAA,UAAU,CAACG,OAAX,CAAmBW,cAAnB;AACA;AACD,GAjCc,EAiCZ,CAAEhB,UAAF,EAAcG,iBAAd,EAAiCD,UAAjC,CAjCY,CAAf;AAkCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getScrollContainer } from '@wordpress/dom';\nimport { useLayoutEffect } from '@wordpress/element';\n\nexport default function useListViewScrollIntoView( {\n\tisSelected,\n\tselectedClientIds,\n\trowItemRef,\n} ) {\n\tconst isSingleSelection = selectedClientIds.length === 1;\n\n\tuseLayoutEffect( () => {\n\t\t// Skip scrolling into view if this particular block isn't selected,\n\t\t// or if more than one block is selected overall. This is to avoid\n\t\t// scrolling the view in a multi selection where the user has intentionally\n\t\t// selected multiple blocks within the list view, but the initially\n\t\t// selected block may be out of view.\n\t\tif ( ! isSelected || ! isSingleSelection || ! rowItemRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst scrollContainer = getScrollContainer( rowItemRef.current );\n\t\tconst { ownerDocument } = rowItemRef.current;\n\n\t\tconst windowScroll =\n\t\t\tscrollContainer === ownerDocument.body ||\n\t\t\tscrollContainer === ownerDocument.documentElement;\n\n\t\t// If the there is no scroll container, of if the scroll container is the window,\n\t\t// do not scroll into view, as the block is already in view.\n\t\tif ( windowScroll || ! scrollContainer ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst rowRect = rowItemRef.current.getBoundingClientRect();\n\t\tconst scrollContainerRect = scrollContainer.getBoundingClientRect();\n\n\t\t// If the selected block is not currently visible, scroll to it.\n\t\tif (\n\t\t\trowRect.top < scrollContainerRect.top ||\n\t\t\trowRect.bottom > scrollContainerRect.bottom\n\t\t) {\n\t\t\trowItemRef.current.scrollIntoView();\n\t\t}\n\t}, [ isSelected, isSingleSelection, rowItemRef ] );\n}\n"]}
@@ -0,0 +1,108 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { createElement } from "@wordpress/element";
3
+
4
+ /**
5
+ * WordPress dependencies
6
+ */
7
+ import { createBlock } from '@wordpress/blocks';
8
+ import { addSubmenu, moreVertical } from '@wordpress/icons';
9
+ import { DropdownMenu, MenuItem, MenuGroup } from '@wordpress/components';
10
+ import { useDispatch } from '@wordpress/data';
11
+ import { __, sprintf } from '@wordpress/i18n';
12
+ /**
13
+ * Internal dependencies
14
+ */
15
+
16
+ import { store as blockEditorStore } from '../../store';
17
+ import BlockTitle from '../block-title';
18
+ import { useListViewContext } from './context';
19
+ const POPOVER_PROPS = {
20
+ className: 'block-editor-block-settings-menu__popover',
21
+ position: 'bottom right',
22
+ variant: 'toolbar'
23
+ };
24
+ const BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU = ['core/navigation-link', 'core/navigation-submenu'];
25
+
26
+ function AddSubmenuItem(_ref) {
27
+ let {
28
+ block,
29
+ onClose
30
+ } = _ref;
31
+ const {
32
+ expandedState,
33
+ expand
34
+ } = useListViewContext();
35
+ const {
36
+ insertBlock,
37
+ replaceBlock,
38
+ replaceInnerBlocks
39
+ } = useDispatch(blockEditorStore);
40
+ const clientId = block.clientId;
41
+ const isDisabled = !BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU.includes(block.name);
42
+ return createElement(MenuItem, {
43
+ icon: addSubmenu,
44
+ disabled: isDisabled,
45
+ onClick: () => {
46
+ const updateSelectionOnInsert = false;
47
+ const newLink = createBlock('core/navigation-link');
48
+
49
+ if (block.name === 'core/navigation-submenu') {
50
+ insertBlock(newLink, block.innerBlocks.length, clientId, updateSelectionOnInsert);
51
+ } else {
52
+ // Convert to a submenu if the block currently isn't one.
53
+ const newSubmenu = createBlock('core/navigation-submenu', block.attributes, block.innerBlocks); // The following must happen as two independent actions.
54
+ // Why? Because the offcanvas editor relies on the getLastInsertedBlocksClientIds
55
+ // selector to determine which block is "active". As the UX needs the newLink to be
56
+ // the "active" block it must be the last block to be inserted.
57
+ // Therefore the Submenu is first created and **then** the newLink is inserted
58
+ // thus ensuring it is the last inserted block.
59
+
60
+ replaceBlock(clientId, newSubmenu);
61
+ replaceInnerBlocks(newSubmenu.clientId, [newLink], updateSelectionOnInsert);
62
+ }
63
+
64
+ if (!expandedState[block.clientId]) {
65
+ expand(block.clientId);
66
+ }
67
+
68
+ onClose();
69
+ }
70
+ }, __('Add submenu link'));
71
+ }
72
+
73
+ export default function LeafMoreMenu(props) {
74
+ const {
75
+ clientId,
76
+ block
77
+ } = props;
78
+ const {
79
+ removeBlocks
80
+ } = useDispatch(blockEditorStore);
81
+ const label = sprintf(
82
+ /* translators: %s: block name */
83
+ __('Remove %s'), BlockTitle({
84
+ clientId,
85
+ maximumLength: 25
86
+ }));
87
+ return createElement(DropdownMenu, _extends({
88
+ icon: moreVertical,
89
+ label: __('Options'),
90
+ className: "block-editor-block-settings-menu",
91
+ popoverProps: POPOVER_PROPS,
92
+ noIcons: true
93
+ }, props), _ref2 => {
94
+ let {
95
+ onClose
96
+ } = _ref2;
97
+ return createElement(MenuGroup, null, createElement(AddSubmenuItem, {
98
+ block: block,
99
+ onClose: onClose
100
+ }), createElement(MenuItem, {
101
+ onClick: () => {
102
+ removeBlocks([clientId], false);
103
+ onClose();
104
+ }
105
+ }, label));
106
+ });
107
+ }
108
+ //# sourceMappingURL=leaf-more-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/leaf-more-menu.js"],"names":["createBlock","addSubmenu","moreVertical","DropdownMenu","MenuItem","MenuGroup","useDispatch","__","sprintf","store","blockEditorStore","BlockTitle","useListViewContext","POPOVER_PROPS","className","position","variant","BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU","AddSubmenuItem","block","onClose","expandedState","expand","insertBlock","replaceBlock","replaceInnerBlocks","clientId","isDisabled","includes","name","updateSelectionOnInsert","newLink","innerBlocks","length","newSubmenu","attributes","LeafMoreMenu","props","removeBlocks","label","maximumLength"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { addSubmenu, moreVertical } from '@wordpress/icons';\nimport { DropdownMenu, MenuItem, MenuGroup } from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockTitle from '../block-title';\nimport { useListViewContext } from './context';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tposition: 'bottom right',\n\tvariant: 'toolbar',\n};\n\nconst BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n];\n\nfunction AddSubmenuItem( { block, onClose } ) {\n\tconst { expandedState, expand } = useListViewContext();\n\tconst { insertBlock, replaceBlock, replaceInnerBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst clientId = block.clientId;\n\tconst isDisabled = ! BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU.includes(\n\t\tblock.name\n\t);\n\treturn (\n\t\t<MenuItem\n\t\t\ticon={ addSubmenu }\n\t\t\tdisabled={ isDisabled }\n\t\t\tonClick={ () => {\n\t\t\t\tconst updateSelectionOnInsert = false;\n\t\t\t\tconst newLink = createBlock( 'core/navigation-link' );\n\n\t\t\t\tif ( block.name === 'core/navigation-submenu' ) {\n\t\t\t\t\tinsertBlock(\n\t\t\t\t\t\tnewLink,\n\t\t\t\t\t\tblock.innerBlocks.length,\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\tupdateSelectionOnInsert\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\t// Convert to a submenu if the block currently isn't one.\n\t\t\t\t\tconst newSubmenu = createBlock(\n\t\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\t\tblock.attributes,\n\t\t\t\t\t\tblock.innerBlocks\n\t\t\t\t\t);\n\n\t\t\t\t\t// The following must happen as two independent actions.\n\t\t\t\t\t// Why? Because the offcanvas editor relies on the getLastInsertedBlocksClientIds\n\t\t\t\t\t// selector to determine which block is \"active\". As the UX needs the newLink to be\n\t\t\t\t\t// the \"active\" block it must be the last block to be inserted.\n\t\t\t\t\t// Therefore the Submenu is first created and **then** the newLink is inserted\n\t\t\t\t\t// thus ensuring it is the last inserted block.\n\t\t\t\t\treplaceBlock( clientId, newSubmenu );\n\n\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\tnewSubmenu.clientId,\n\t\t\t\t\t\t[ newLink ],\n\t\t\t\t\t\tupdateSelectionOnInsert\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif ( ! expandedState[ block.clientId ] ) {\n\t\t\t\t\texpand( block.clientId );\n\t\t\t\t}\n\t\t\t\tonClose();\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Add submenu link' ) }\n\t\t</MenuItem>\n\t);\n}\n\nexport default function LeafMoreMenu( props ) {\n\tconst { clientId, block } = props;\n\n\tconst { removeBlocks } = useDispatch( blockEditorStore );\n\n\tconst label = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Remove %s' ),\n\t\tBlockTitle( { clientId, maximumLength: 25 } )\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ moreVertical }\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\tnoIcons\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<AddSubmenuItem block={ block } onClose={ onClose } />\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tremoveBlocks( [ clientId ], false );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"]}
@@ -5,6 +5,7 @@ import * as globalStyles from './components/global-styles';
5
5
  import { ExperimentalBlockEditorProvider } from './components/provider';
6
6
  import { lock } from './lock-unlock';
7
7
  import OffCanvasEditor from './components/off-canvas-editor';
8
+ import LeafMoreMenu from './components/off-canvas-editor/leaf-more-menu';
8
9
  /**
9
10
  * Private @wordpress/block-editor APIs.
10
11
  */
@@ -12,6 +13,7 @@ import OffCanvasEditor from './components/off-canvas-editor';
12
13
  export const privateApis = {};
13
14
  lock(privateApis, { ...globalStyles,
14
15
  ExperimentalBlockEditorProvider,
16
+ LeafMoreMenu,
15
17
  OffCanvasEditor
16
18
  });
17
19
  //# sourceMappingURL=private-apis.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/private-apis.js"],"names":["globalStyles","ExperimentalBlockEditorProvider","lock","OffCanvasEditor","privateApis"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,KAAKA,YAAZ,MAA8B,4BAA9B;AACA,SAASC,+BAAT,QAAgD,uBAAhD;AACA,SAASC,IAAT,QAAqB,eAArB;AACA,OAAOC,eAAP,MAA4B,gCAA5B;AAEA;AACA;AACA;;AACA,OAAO,MAAMC,WAAW,GAAG,EAApB;AACPF,IAAI,CAAEE,WAAF,EAAe,EAClB,GAAGJ,YADe;AAElBC,EAAAA,+BAFkB;AAGlBE,EAAAA;AAHkB,CAAf,CAAJ","sourcesContent":["/**\n * Internal dependencies\n */\nimport * as globalStyles from './components/global-styles';\nimport { ExperimentalBlockEditorProvider } from './components/provider';\nimport { lock } from './lock-unlock';\nimport OffCanvasEditor from './components/off-canvas-editor';\n\n/**\n * Private @wordpress/block-editor APIs.\n */\nexport const privateApis = {};\nlock( privateApis, {\n\t...globalStyles,\n\tExperimentalBlockEditorProvider,\n\tOffCanvasEditor,\n} );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/private-apis.js"],"names":["globalStyles","ExperimentalBlockEditorProvider","lock","OffCanvasEditor","LeafMoreMenu","privateApis"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,KAAKA,YAAZ,MAA8B,4BAA9B;AACA,SAASC,+BAAT,QAAgD,uBAAhD;AACA,SAASC,IAAT,QAAqB,eAArB;AACA,OAAOC,eAAP,MAA4B,gCAA5B;AACA,OAAOC,YAAP,MAAyB,+CAAzB;AAEA;AACA;AACA;;AACA,OAAO,MAAMC,WAAW,GAAG,EAApB;AACPH,IAAI,CAAEG,WAAF,EAAe,EAClB,GAAGL,YADe;AAElBC,EAAAA,+BAFkB;AAGlBG,EAAAA,YAHkB;AAIlBD,EAAAA;AAJkB,CAAf,CAAJ","sourcesContent":["/**\n * Internal dependencies\n */\nimport * as globalStyles from './components/global-styles';\nimport { ExperimentalBlockEditorProvider } from './components/provider';\nimport { lock } from './lock-unlock';\nimport OffCanvasEditor from './components/off-canvas-editor';\nimport LeafMoreMenu from './components/off-canvas-editor/leaf-more-menu';\n\n/**\n * Private @wordpress/block-editor APIs.\n */\nexport const privateApis = {};\nlock( privateApis, {\n\t...globalStyles,\n\tExperimentalBlockEditorProvider,\n\tLeafMoreMenu,\n\tOffCanvasEditor,\n} );\n"]}
@@ -148,8 +148,14 @@ export const SETTINGS_DEFAULTS = {
148
148
  __experimentalBlockPatternCategories: [],
149
149
  __unstableGalleryWithImageBlocks: false,
150
150
  __unstableIsPreviewMode: false,
151
- // This setting is `private` now with `lock` API.
151
+ // These settings will be completely revamped in the future.
152
+ // The goal is to evolve this into an API which will instruct
153
+ // the block inspector to animate transitions between what it
154
+ // displays based on the relationship between the selected block
155
+ // and its parent, and only enable it if the parent is controlling
156
+ // its children blocks.
152
157
  blockInspectorAnimation: {
158
+ animationParent: 'core/navigation',
153
159
  'core/navigation': {
154
160
  enterDirection: 'leftToRight'
155
161
  },
@@ -158,6 +164,27 @@ export const SETTINGS_DEFAULTS = {
158
164
  },
159
165
  'core/navigation-link': {
160
166
  enterDirection: 'rightToLeft'
167
+ },
168
+ 'core/search': {
169
+ enterDirection: 'rightToLeft'
170
+ },
171
+ 'core/social-links': {
172
+ enterDirection: 'rightToLeft'
173
+ },
174
+ 'core/page-list': {
175
+ enterDirection: 'rightToLeft'
176
+ },
177
+ 'core/spacer': {
178
+ enterDirection: 'rightToLeft'
179
+ },
180
+ 'core/home-link': {
181
+ enterDirection: 'rightToLeft'
182
+ },
183
+ 'core/site-title': {
184
+ enterDirection: 'rightToLeft'
185
+ },
186
+ 'core/site-logo': {
187
+ enterDirection: 'rightToLeft'
161
188
  }
162
189
  },
163
190
  generateAnchors: false,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/store/defaults.js"],"names":["__","_x","PREFERENCES_DEFAULTS","insertUsage","SETTINGS_DEFAULTS","alignWide","supportsLayout","colors","name","slug","color","fontSizes","size","imageDefaultSize","imageSizes","imageEditing","maxWidth","allowedBlockTypes","maxUploadFileSize","allowedMimeTypes","canLockBlocks","enableOpenverseMediaCategory","clearBlockSelection","__experimentalCanUserUseUnfilteredHTML","__experimentalBlockDirectory","__mobileEnablePageTemplates","__experimentalBlockPatterns","__experimentalBlockPatternCategories","__unstableGalleryWithImageBlocks","__unstableIsPreviewMode","blockInspectorAnimation","enterDirection","generateAnchors","gradients","gradient","__unstableResolvedAssets","styles","scripts"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\n\nexport const PREFERENCES_DEFAULTS = {\n\tinsertUsage: {},\n};\n\n/**\n * The default editor settings\n *\n * @typedef {Object} SETTINGS_DEFAULT\n * @property {boolean} alignWide Enable/Disable Wide/Full Alignments\n * @property {boolean} supportsLayout Enable/disable layouts support in container blocks.\n * @property {boolean} imageEditing Image Editing settings set to false to disable.\n * @property {Array} imageSizes Available image sizes\n * @property {number} maxWidth Max width to constraint resizing\n * @property {boolean|Array} allowedBlockTypes Allowed block types\n * @property {boolean} hasFixedToolbar Whether or not the editor toolbar is fixed\n * @property {boolean} focusMode Whether the focus mode is enabled or not\n * @property {Array} styles Editor Styles\n * @property {boolean} keepCaretInsideBlock Whether caret should move between blocks in edit mode\n * @property {string} bodyPlaceholder Empty post placeholder\n * @property {string} titlePlaceholder Empty title placeholder\n * @property {boolean} canLockBlocks Whether the user can manage Block Lock state\n * @property {boolean} codeEditingEnabled Whether or not the user can switch to the code editor\n * @property {boolean} generateAnchors Enable/Disable auto anchor generation for Heading blocks\n * @property {boolean} enableOpenverseMediaCategory Enable/Disable the Openverse media category in the inserter.\n * @property {boolean} clearBlockSelection Whether the block editor should clear selection on mousedown when a block is not clicked.\n * @property {boolean} __experimentalCanUserUseUnfilteredHTML Whether the user should be able to use unfiltered HTML or the HTML should be filtered e.g., to remove elements considered insecure like iframes.\n * @property {boolean} __experimentalBlockDirectory Whether the user has enabled the Block Directory\n * @property {Array} __experimentalBlockPatterns Array of objects representing the block patterns\n * @property {Array} __experimentalBlockPatternCategories Array of objects representing the block pattern categories\n * @property {boolean} __unstableGalleryWithImageBlocks Whether the user has enabled the refactored gallery block which uses InnerBlocks\n */\nexport const SETTINGS_DEFAULTS = {\n\talignWide: false,\n\tsupportsLayout: true,\n\n\t// colors setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.\n\t// The setting is only kept for backward compatibility purposes.\n\tcolors: [\n\t\t{\n\t\t\tname: __( 'Black' ),\n\t\t\tslug: 'black',\n\t\t\tcolor: '#000000',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Cyan bluish gray' ),\n\t\t\tslug: 'cyan-bluish-gray',\n\t\t\tcolor: '#abb8c3',\n\t\t},\n\t\t{\n\t\t\tname: __( 'White' ),\n\t\t\tslug: 'white',\n\t\t\tcolor: '#ffffff',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Pale pink' ),\n\t\t\tslug: 'pale-pink',\n\t\t\tcolor: '#f78da7',\n\t\t},\n\t\t{ name: __( 'Vivid red' ), slug: 'vivid-red', color: '#cf2e2e' },\n\t\t{\n\t\t\tname: __( 'Luminous vivid orange' ),\n\t\t\tslug: 'luminous-vivid-orange',\n\t\t\tcolor: '#ff6900',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Luminous vivid amber' ),\n\t\t\tslug: 'luminous-vivid-amber',\n\t\t\tcolor: '#fcb900',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Light green cyan' ),\n\t\t\tslug: 'light-green-cyan',\n\t\t\tcolor: '#7bdcb5',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Vivid green cyan' ),\n\t\t\tslug: 'vivid-green-cyan',\n\t\t\tcolor: '#00d084',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Pale cyan blue' ),\n\t\t\tslug: 'pale-cyan-blue',\n\t\t\tcolor: '#8ed1fc',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Vivid cyan blue' ),\n\t\t\tslug: 'vivid-cyan-blue',\n\t\t\tcolor: '#0693e3',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Vivid purple' ),\n\t\t\tslug: 'vivid-purple',\n\t\t\tcolor: '#9b51e0',\n\t\t},\n\t],\n\t// fontSizes setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.\n\t// The setting is only kept for backward compatibility purposes.\n\tfontSizes: [\n\t\t{\n\t\t\tname: _x( 'Small', 'font size name' ),\n\t\t\tsize: 13,\n\t\t\tslug: 'small',\n\t\t},\n\t\t{\n\t\t\tname: _x( 'Normal', 'font size name' ),\n\t\t\tsize: 16,\n\t\t\tslug: 'normal',\n\t\t},\n\t\t{\n\t\t\tname: _x( 'Medium', 'font size name' ),\n\t\t\tsize: 20,\n\t\t\tslug: 'medium',\n\t\t},\n\t\t{\n\t\t\tname: _x( 'Large', 'font size name' ),\n\t\t\tsize: 36,\n\t\t\tslug: 'large',\n\t\t},\n\t\t{\n\t\t\tname: _x( 'Huge', 'font size name' ),\n\t\t\tsize: 42,\n\t\t\tslug: 'huge',\n\t\t},\n\t],\n\n\t// Image default size slug.\n\timageDefaultSize: 'large',\n\n\timageSizes: [\n\t\t{ slug: 'thumbnail', name: __( 'Thumbnail' ) },\n\t\t{ slug: 'medium', name: __( 'Medium' ) },\n\t\t{ slug: 'large', name: __( 'Large' ) },\n\t\t{ slug: 'full', name: __( 'Full Size' ) },\n\t],\n\n\t// Allow plugin to disable Image Editor if need be.\n\timageEditing: true,\n\n\t// This is current max width of the block inner area\n\t// It's used to constraint image resizing and this value could be overridden later by themes\n\tmaxWidth: 580,\n\n\t// Allowed block types for the editor, defaulting to true (all supported).\n\tallowedBlockTypes: true,\n\n\t// Maximum upload size in bytes allowed for the site.\n\tmaxUploadFileSize: 0,\n\n\t// List of allowed mime types and file extensions.\n\tallowedMimeTypes: null,\n\n\t// Allows to disable block locking interface.\n\tcanLockBlocks: true,\n\n\t// Allows to disable Openverse media category in the inserter.\n\tenableOpenverseMediaCategory: true,\n\n\tclearBlockSelection: true,\n\n\t__experimentalCanUserUseUnfilteredHTML: false,\n\t__experimentalBlockDirectory: false,\n\t__mobileEnablePageTemplates: false,\n\t__experimentalBlockPatterns: [],\n\t__experimentalBlockPatternCategories: [],\n\t__unstableGalleryWithImageBlocks: false,\n\t__unstableIsPreviewMode: false,\n\n\t// This setting is `private` now with `lock` API.\n\tblockInspectorAnimation: {\n\t\t'core/navigation': { enterDirection: 'leftToRight' },\n\t\t'core/navigation-submenu': { enterDirection: 'rightToLeft' },\n\t\t'core/navigation-link': { enterDirection: 'rightToLeft' },\n\t},\n\n\tgenerateAnchors: false,\n\t// gradients setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.\n\t// The setting is only kept for backward compatibility purposes.\n\tgradients: [\n\t\t{\n\t\t\tname: __( 'Vivid cyan blue to vivid purple' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)',\n\t\t\tslug: 'vivid-cyan-blue-to-vivid-purple',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Light green cyan to vivid green cyan' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%)',\n\t\t\tslug: 'light-green-cyan-to-vivid-green-cyan',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Luminous vivid amber to luminous vivid orange' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%)',\n\t\t\tslug: 'luminous-vivid-amber-to-luminous-vivid-orange',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Luminous vivid orange to vivid red' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%)',\n\t\t\tslug: 'luminous-vivid-orange-to-vivid-red',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Very light gray to cyan bluish gray' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%)',\n\t\t\tslug: 'very-light-gray-to-cyan-bluish-gray',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Cool to warm spectrum' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%)',\n\t\t\tslug: 'cool-to-warm-spectrum',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Blush light purple' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%)',\n\t\t\tslug: 'blush-light-purple',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Blush bordeaux' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%)',\n\t\t\tslug: 'blush-bordeaux',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Luminous dusk' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%)',\n\t\t\tslug: 'luminous-dusk',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Pale ocean' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%)',\n\t\t\tslug: 'pale-ocean',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Electric grass' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%)',\n\t\t\tslug: 'electric-grass',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Midnight' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%)',\n\t\t\tslug: 'midnight',\n\t\t},\n\t],\n\n\t__unstableResolvedAssets: { styles: [], scripts: [] },\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/store/defaults.js"],"names":["__","_x","PREFERENCES_DEFAULTS","insertUsage","SETTINGS_DEFAULTS","alignWide","supportsLayout","colors","name","slug","color","fontSizes","size","imageDefaultSize","imageSizes","imageEditing","maxWidth","allowedBlockTypes","maxUploadFileSize","allowedMimeTypes","canLockBlocks","enableOpenverseMediaCategory","clearBlockSelection","__experimentalCanUserUseUnfilteredHTML","__experimentalBlockDirectory","__mobileEnablePageTemplates","__experimentalBlockPatterns","__experimentalBlockPatternCategories","__unstableGalleryWithImageBlocks","__unstableIsPreviewMode","blockInspectorAnimation","animationParent","enterDirection","generateAnchors","gradients","gradient","__unstableResolvedAssets","styles","scripts"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\n\nexport const PREFERENCES_DEFAULTS = {\n\tinsertUsage: {},\n};\n\n/**\n * The default editor settings\n *\n * @typedef {Object} SETTINGS_DEFAULT\n * @property {boolean} alignWide Enable/Disable Wide/Full Alignments\n * @property {boolean} supportsLayout Enable/disable layouts support in container blocks.\n * @property {boolean} imageEditing Image Editing settings set to false to disable.\n * @property {Array} imageSizes Available image sizes\n * @property {number} maxWidth Max width to constraint resizing\n * @property {boolean|Array} allowedBlockTypes Allowed block types\n * @property {boolean} hasFixedToolbar Whether or not the editor toolbar is fixed\n * @property {boolean} focusMode Whether the focus mode is enabled or not\n * @property {Array} styles Editor Styles\n * @property {boolean} keepCaretInsideBlock Whether caret should move between blocks in edit mode\n * @property {string} bodyPlaceholder Empty post placeholder\n * @property {string} titlePlaceholder Empty title placeholder\n * @property {boolean} canLockBlocks Whether the user can manage Block Lock state\n * @property {boolean} codeEditingEnabled Whether or not the user can switch to the code editor\n * @property {boolean} generateAnchors Enable/Disable auto anchor generation for Heading blocks\n * @property {boolean} enableOpenverseMediaCategory Enable/Disable the Openverse media category in the inserter.\n * @property {boolean} clearBlockSelection Whether the block editor should clear selection on mousedown when a block is not clicked.\n * @property {boolean} __experimentalCanUserUseUnfilteredHTML Whether the user should be able to use unfiltered HTML or the HTML should be filtered e.g., to remove elements considered insecure like iframes.\n * @property {boolean} __experimentalBlockDirectory Whether the user has enabled the Block Directory\n * @property {Array} __experimentalBlockPatterns Array of objects representing the block patterns\n * @property {Array} __experimentalBlockPatternCategories Array of objects representing the block pattern categories\n * @property {boolean} __unstableGalleryWithImageBlocks Whether the user has enabled the refactored gallery block which uses InnerBlocks\n */\nexport const SETTINGS_DEFAULTS = {\n\talignWide: false,\n\tsupportsLayout: true,\n\n\t// colors setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.\n\t// The setting is only kept for backward compatibility purposes.\n\tcolors: [\n\t\t{\n\t\t\tname: __( 'Black' ),\n\t\t\tslug: 'black',\n\t\t\tcolor: '#000000',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Cyan bluish gray' ),\n\t\t\tslug: 'cyan-bluish-gray',\n\t\t\tcolor: '#abb8c3',\n\t\t},\n\t\t{\n\t\t\tname: __( 'White' ),\n\t\t\tslug: 'white',\n\t\t\tcolor: '#ffffff',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Pale pink' ),\n\t\t\tslug: 'pale-pink',\n\t\t\tcolor: '#f78da7',\n\t\t},\n\t\t{ name: __( 'Vivid red' ), slug: 'vivid-red', color: '#cf2e2e' },\n\t\t{\n\t\t\tname: __( 'Luminous vivid orange' ),\n\t\t\tslug: 'luminous-vivid-orange',\n\t\t\tcolor: '#ff6900',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Luminous vivid amber' ),\n\t\t\tslug: 'luminous-vivid-amber',\n\t\t\tcolor: '#fcb900',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Light green cyan' ),\n\t\t\tslug: 'light-green-cyan',\n\t\t\tcolor: '#7bdcb5',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Vivid green cyan' ),\n\t\t\tslug: 'vivid-green-cyan',\n\t\t\tcolor: '#00d084',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Pale cyan blue' ),\n\t\t\tslug: 'pale-cyan-blue',\n\t\t\tcolor: '#8ed1fc',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Vivid cyan blue' ),\n\t\t\tslug: 'vivid-cyan-blue',\n\t\t\tcolor: '#0693e3',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Vivid purple' ),\n\t\t\tslug: 'vivid-purple',\n\t\t\tcolor: '#9b51e0',\n\t\t},\n\t],\n\t// fontSizes setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.\n\t// The setting is only kept for backward compatibility purposes.\n\tfontSizes: [\n\t\t{\n\t\t\tname: _x( 'Small', 'font size name' ),\n\t\t\tsize: 13,\n\t\t\tslug: 'small',\n\t\t},\n\t\t{\n\t\t\tname: _x( 'Normal', 'font size name' ),\n\t\t\tsize: 16,\n\t\t\tslug: 'normal',\n\t\t},\n\t\t{\n\t\t\tname: _x( 'Medium', 'font size name' ),\n\t\t\tsize: 20,\n\t\t\tslug: 'medium',\n\t\t},\n\t\t{\n\t\t\tname: _x( 'Large', 'font size name' ),\n\t\t\tsize: 36,\n\t\t\tslug: 'large',\n\t\t},\n\t\t{\n\t\t\tname: _x( 'Huge', 'font size name' ),\n\t\t\tsize: 42,\n\t\t\tslug: 'huge',\n\t\t},\n\t],\n\n\t// Image default size slug.\n\timageDefaultSize: 'large',\n\n\timageSizes: [\n\t\t{ slug: 'thumbnail', name: __( 'Thumbnail' ) },\n\t\t{ slug: 'medium', name: __( 'Medium' ) },\n\t\t{ slug: 'large', name: __( 'Large' ) },\n\t\t{ slug: 'full', name: __( 'Full Size' ) },\n\t],\n\n\t// Allow plugin to disable Image Editor if need be.\n\timageEditing: true,\n\n\t// This is current max width of the block inner area\n\t// It's used to constraint image resizing and this value could be overridden later by themes\n\tmaxWidth: 580,\n\n\t// Allowed block types for the editor, defaulting to true (all supported).\n\tallowedBlockTypes: true,\n\n\t// Maximum upload size in bytes allowed for the site.\n\tmaxUploadFileSize: 0,\n\n\t// List of allowed mime types and file extensions.\n\tallowedMimeTypes: null,\n\n\t// Allows to disable block locking interface.\n\tcanLockBlocks: true,\n\n\t// Allows to disable Openverse media category in the inserter.\n\tenableOpenverseMediaCategory: true,\n\n\tclearBlockSelection: true,\n\n\t__experimentalCanUserUseUnfilteredHTML: false,\n\t__experimentalBlockDirectory: false,\n\t__mobileEnablePageTemplates: false,\n\t__experimentalBlockPatterns: [],\n\t__experimentalBlockPatternCategories: [],\n\t__unstableGalleryWithImageBlocks: false,\n\t__unstableIsPreviewMode: false,\n\n\t// These settings will be completely revamped in the future.\n\t// The goal is to evolve this into an API which will instruct\n\t// the block inspector to animate transitions between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tblockInspectorAnimation: {\n\t\tanimationParent: 'core/navigation',\n\t\t'core/navigation': { enterDirection: 'leftToRight' },\n\t\t'core/navigation-submenu': { enterDirection: 'rightToLeft' },\n\t\t'core/navigation-link': { enterDirection: 'rightToLeft' },\n\t\t'core/search': { enterDirection: 'rightToLeft' },\n\t\t'core/social-links': { enterDirection: 'rightToLeft' },\n\t\t'core/page-list': { enterDirection: 'rightToLeft' },\n\t\t'core/spacer': { enterDirection: 'rightToLeft' },\n\t\t'core/home-link': { enterDirection: 'rightToLeft' },\n\t\t'core/site-title': { enterDirection: 'rightToLeft' },\n\t\t'core/site-logo': { enterDirection: 'rightToLeft' },\n\t},\n\n\tgenerateAnchors: false,\n\t// gradients setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.\n\t// The setting is only kept for backward compatibility purposes.\n\tgradients: [\n\t\t{\n\t\t\tname: __( 'Vivid cyan blue to vivid purple' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)',\n\t\t\tslug: 'vivid-cyan-blue-to-vivid-purple',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Light green cyan to vivid green cyan' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%)',\n\t\t\tslug: 'light-green-cyan-to-vivid-green-cyan',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Luminous vivid amber to luminous vivid orange' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%)',\n\t\t\tslug: 'luminous-vivid-amber-to-luminous-vivid-orange',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Luminous vivid orange to vivid red' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%)',\n\t\t\tslug: 'luminous-vivid-orange-to-vivid-red',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Very light gray to cyan bluish gray' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%)',\n\t\t\tslug: 'very-light-gray-to-cyan-bluish-gray',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Cool to warm spectrum' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%)',\n\t\t\tslug: 'cool-to-warm-spectrum',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Blush light purple' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%)',\n\t\t\tslug: 'blush-light-purple',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Blush bordeaux' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%)',\n\t\t\tslug: 'blush-bordeaux',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Luminous dusk' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%)',\n\t\t\tslug: 'luminous-dusk',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Pale ocean' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%)',\n\t\t\tslug: 'pale-ocean',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Electric grass' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%)',\n\t\t\tslug: 'electric-grass',\n\t\t},\n\t\t{\n\t\t\tname: __( 'Midnight' ),\n\t\t\tgradient:\n\t\t\t\t'linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%)',\n\t\t\tslug: 'midnight',\n\t\t},\n\t],\n\n\t__unstableResolvedAssets: { styles: [], scripts: [] },\n};\n"]}
@@ -2510,7 +2510,7 @@ export const __unstableGetContentLockingParent = createSelector((state, clientId
2510
2510
  while (state.blocks.parents.has(current)) {
2511
2511
  current = state.blocks.parents.get(current);
2512
2512
 
2513
- if (getTemplateLock(state, current) === 'contentOnly') {
2513
+ if (current && getTemplateLock(state, current) === 'contentOnly') {
2514
2514
  result = current;
2515
2515
  }
2516
2516
  }