@wordpress/block-editor 15.13.2-next.v.202602271551.0 → 15.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/build/components/block-bindings/attribute-control.cjs +5 -2
  2. package/build/components/block-bindings/attribute-control.cjs.map +2 -2
  3. package/build/components/block-inspector/edit-contents.cjs +5 -4
  4. package/build/components/block-inspector/edit-contents.cjs.map +2 -2
  5. package/build/components/block-list/block-html.cjs +6 -2
  6. package/build/components/block-list/block-html.cjs.map +2 -2
  7. package/build/components/block-list/block.cjs +9 -1
  8. package/build/components/block-list/block.cjs.map +2 -2
  9. package/build/components/block-list/use-block-props/index.cjs +10 -1
  10. package/build/components/block-list/use-block-props/index.cjs.map +2 -2
  11. package/build/components/block-quick-navigation/index.cjs +1 -6
  12. package/build/components/block-quick-navigation/index.cjs.map +3 -3
  13. package/build/components/block-settings-menu/block-settings-dropdown.cjs +4 -47
  14. package/build/components/block-settings-menu/block-settings-dropdown.cjs.map +2 -2
  15. package/build/components/block-settings-menu-controls/index.cjs +1 -0
  16. package/build/components/block-settings-menu-controls/index.cjs.map +2 -2
  17. package/build/components/block-styles/index.cjs +7 -1
  18. package/build/components/block-styles/index.cjs.map +3 -3
  19. package/build/components/block-styles/menu-items.cjs +16 -10
  20. package/build/components/block-styles/menu-items.cjs.map +3 -3
  21. package/build/components/block-switcher/block-styles-menu.cjs +2 -50
  22. package/build/components/block-switcher/block-styles-menu.cjs.map +3 -3
  23. package/build/components/block-toolbar/block-toolbar-icon.cjs +1 -1
  24. package/build/components/block-toolbar/block-toolbar-icon.cjs.map +2 -2
  25. package/build/components/block-toolbar/index.cjs +8 -4
  26. package/build/components/block-toolbar/index.cjs.map +2 -2
  27. package/build/components/block-tools/index.cjs +4 -3
  28. package/build/components/block-tools/index.cjs.map +2 -2
  29. package/build/components/block-variation-transforms/index.cjs +11 -5
  30. package/build/components/block-variation-transforms/index.cjs.map +2 -2
  31. package/build/components/block-visibility/modal.cjs +2 -2
  32. package/build/components/block-visibility/modal.cjs.map +2 -2
  33. package/build/components/block-visibility/use-block-visibility.cjs +4 -3
  34. package/build/components/block-visibility/use-block-visibility.cjs.map +2 -2
  35. package/build/components/block-visibility/viewport-visibility-info.cjs +6 -1
  36. package/build/components/block-visibility/viewport-visibility-info.cjs.map +2 -2
  37. package/build/components/dimensions-tool/scale-tool.cjs +2 -2
  38. package/build/components/dimensions-tool/scale-tool.cjs.map +2 -2
  39. package/build/components/grid/grid-visualizer.cjs +0 -3
  40. package/build/components/grid/grid-visualizer.cjs.map +2 -2
  41. package/build/components/iframe/index.cjs +1 -3
  42. package/build/components/iframe/index.cjs.map +2 -2
  43. package/build/components/iframe/use-scale-canvas.cjs +0 -1
  44. package/build/components/iframe/use-scale-canvas.cjs.map +2 -2
  45. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs +8 -4
  46. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs.map +2 -2
  47. package/build/components/link-picker/link-preview.cjs +2 -1
  48. package/build/components/link-picker/link-preview.cjs.map +3 -3
  49. package/build/components/list-view/block.cjs +1 -2
  50. package/build/components/list-view/block.cjs.map +2 -2
  51. package/build/components/provider/index.cjs +23 -7
  52. package/build/components/provider/index.cjs.map +2 -2
  53. package/build/components/provider/use-media-upload-settings.cjs +1 -0
  54. package/build/components/provider/use-media-upload-settings.cjs.map +2 -2
  55. package/build/components/writing-flow/use-arrow-nav.cjs +1 -1
  56. package/build/components/writing-flow/use-arrow-nav.cjs.map +2 -2
  57. package/build/hooks/auto-inspector-controls.cjs +26 -2
  58. package/build/hooks/auto-inspector-controls.cjs.map +3 -3
  59. package/build/hooks/cross-origin-isolation.cjs +9 -75
  60. package/build/hooks/cross-origin-isolation.cjs.map +2 -2
  61. package/build/hooks/custom-css.cjs +26 -0
  62. package/build/hooks/custom-css.cjs.map +3 -3
  63. package/build/private-apis.cjs +1 -0
  64. package/build/private-apis.cjs.map +2 -2
  65. package/build/store/actions.cjs +0 -8
  66. package/build/store/actions.cjs.map +2 -2
  67. package/build/store/private-keys.cjs +3 -0
  68. package/build/store/private-keys.cjs.map +2 -2
  69. package/build/store/private-selectors.cjs +4 -3
  70. package/build/store/private-selectors.cjs.map +2 -2
  71. package/build/store/reducer.cjs +65 -59
  72. package/build/store/reducer.cjs.map +2 -2
  73. package/build/store/selectors.cjs +16 -14
  74. package/build/store/selectors.cjs.map +2 -2
  75. package/build-module/components/block-bindings/attribute-control.mjs +5 -2
  76. package/build-module/components/block-bindings/attribute-control.mjs.map +2 -2
  77. package/build-module/components/block-inspector/edit-contents.mjs +5 -4
  78. package/build-module/components/block-inspector/edit-contents.mjs.map +2 -2
  79. package/build-module/components/block-list/block-html.mjs +7 -3
  80. package/build-module/components/block-list/block-html.mjs.map +2 -2
  81. package/build-module/components/block-list/block.mjs +10 -2
  82. package/build-module/components/block-list/block.mjs.map +2 -2
  83. package/build-module/components/block-list/use-block-props/index.mjs +11 -2
  84. package/build-module/components/block-list/use-block-props/index.mjs.map +2 -2
  85. package/build-module/components/block-quick-navigation/index.mjs +1 -6
  86. package/build-module/components/block-quick-navigation/index.mjs.map +2 -2
  87. package/build-module/components/block-settings-menu/block-settings-dropdown.mjs +5 -48
  88. package/build-module/components/block-settings-menu/block-settings-dropdown.mjs.map +2 -2
  89. package/build-module/components/block-settings-menu-controls/index.mjs +1 -0
  90. package/build-module/components/block-settings-menu-controls/index.mjs.map +2 -2
  91. package/build-module/components/block-styles/index.mjs +7 -1
  92. package/build-module/components/block-styles/index.mjs.map +2 -2
  93. package/build-module/components/block-styles/menu-items.mjs +6 -10
  94. package/build-module/components/block-styles/menu-items.mjs.map +2 -2
  95. package/build-module/components/block-switcher/block-styles-menu.mjs +3 -51
  96. package/build-module/components/block-switcher/block-styles-menu.mjs.map +2 -2
  97. package/build-module/components/block-toolbar/block-toolbar-icon.mjs +1 -1
  98. package/build-module/components/block-toolbar/block-toolbar-icon.mjs.map +2 -2
  99. package/build-module/components/block-toolbar/index.mjs +8 -4
  100. package/build-module/components/block-toolbar/index.mjs.map +2 -2
  101. package/build-module/components/block-tools/index.mjs +4 -3
  102. package/build-module/components/block-tools/index.mjs.map +2 -2
  103. package/build-module/components/block-variation-transforms/index.mjs +11 -5
  104. package/build-module/components/block-variation-transforms/index.mjs.map +2 -2
  105. package/build-module/components/block-visibility/modal.mjs +2 -2
  106. package/build-module/components/block-visibility/modal.mjs.map +2 -2
  107. package/build-module/components/block-visibility/use-block-visibility.mjs +4 -3
  108. package/build-module/components/block-visibility/use-block-visibility.mjs.map +2 -2
  109. package/build-module/components/block-visibility/viewport-visibility-info.mjs +6 -1
  110. package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +2 -2
  111. package/build-module/components/dimensions-tool/scale-tool.mjs +2 -2
  112. package/build-module/components/dimensions-tool/scale-tool.mjs.map +2 -2
  113. package/build-module/components/grid/grid-visualizer.mjs +0 -3
  114. package/build-module/components/grid/grid-visualizer.mjs.map +2 -2
  115. package/build-module/components/iframe/index.mjs +2 -9
  116. package/build-module/components/iframe/index.mjs.map +2 -2
  117. package/build-module/components/iframe/use-scale-canvas.mjs +0 -1
  118. package/build-module/components/iframe/use-scale-canvas.mjs.map +2 -2
  119. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs +8 -4
  120. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs.map +2 -2
  121. package/build-module/components/link-picker/link-preview.mjs +2 -1
  122. package/build-module/components/link-picker/link-preview.mjs.map +2 -2
  123. package/build-module/components/list-view/block.mjs +1 -2
  124. package/build-module/components/list-view/block.mjs.map +2 -2
  125. package/build-module/components/provider/index.mjs +23 -7
  126. package/build-module/components/provider/index.mjs.map +2 -2
  127. package/build-module/components/provider/use-media-upload-settings.mjs +1 -0
  128. package/build-module/components/provider/use-media-upload-settings.mjs.map +2 -2
  129. package/build-module/components/writing-flow/use-arrow-nav.mjs +1 -1
  130. package/build-module/components/writing-flow/use-arrow-nav.mjs.map +2 -2
  131. package/build-module/hooks/auto-inspector-controls.mjs +28 -4
  132. package/build-module/hooks/auto-inspector-controls.mjs.map +2 -2
  133. package/build-module/hooks/cross-origin-isolation.mjs +9 -75
  134. package/build-module/hooks/cross-origin-isolation.mjs.map +2 -2
  135. package/build-module/hooks/custom-css.mjs +28 -2
  136. package/build-module/hooks/custom-css.mjs.map +2 -2
  137. package/build-module/private-apis.mjs +3 -1
  138. package/build-module/private-apis.mjs.map +2 -2
  139. package/build-module/store/actions.mjs +0 -8
  140. package/build-module/store/actions.mjs.map +2 -2
  141. package/build-module/store/private-keys.mjs +2 -0
  142. package/build-module/store/private-keys.mjs.map +2 -2
  143. package/build-module/store/private-selectors.mjs +4 -3
  144. package/build-module/store/private-selectors.mjs.map +2 -2
  145. package/build-module/store/reducer.mjs +65 -58
  146. package/build-module/store/reducer.mjs.map +2 -2
  147. package/build-module/store/selectors.mjs +16 -14
  148. package/build-module/store/selectors.mjs.map +2 -2
  149. package/build-style/content-rtl.css +25 -1
  150. package/build-style/content.css +25 -2
  151. package/build-style/style-rtl.css +3 -0
  152. package/build-style/style.css +3 -0
  153. package/package.json +39 -39
  154. package/src/components/block-bindings/attribute-control.js +8 -3
  155. package/src/components/block-inspector/edit-contents.js +5 -3
  156. package/src/components/block-list/block-html.js +13 -3
  157. package/src/components/block-list/block.js +10 -1
  158. package/src/components/block-list/content.scss +35 -4
  159. package/src/components/block-list/use-block-props/index.js +11 -1
  160. package/src/components/block-quick-navigation/index.js +1 -6
  161. package/src/components/block-settings-menu/block-settings-dropdown.js +2 -46
  162. package/src/components/block-settings-menu-controls/index.js +1 -0
  163. package/src/components/block-styles/index.js +7 -1
  164. package/src/components/block-styles/menu-items.js +11 -10
  165. package/src/components/block-switcher/block-styles-menu.js +1 -47
  166. package/src/components/block-toolbar/block-toolbar-icon.js +6 -1
  167. package/src/components/block-toolbar/index.js +7 -2
  168. package/src/components/block-tools/index.js +11 -4
  169. package/src/components/block-tools/style.scss +5 -0
  170. package/src/components/block-variation-transforms/index.js +41 -36
  171. package/src/components/block-visibility/use-block-visibility.js +4 -2
  172. package/src/components/block-visibility/viewport-visibility-info.js +8 -1
  173. package/src/components/dimensions-tool/scale-tool.js +2 -2
  174. package/src/components/grid/grid-visualizer.js +0 -3
  175. package/src/components/iframe/index.js +2 -12
  176. package/src/components/iframe/use-scale-canvas.js +0 -1
  177. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +9 -5
  178. package/src/components/link-picker/link-preview.js +2 -1
  179. package/src/components/list-view/block.js +0 -5
  180. package/src/components/provider/index.js +49 -6
  181. package/src/components/provider/use-media-upload-settings.js +1 -0
  182. package/src/components/writing-flow/use-arrow-nav.js +9 -2
  183. package/src/hooks/auto-inspector-controls.js +31 -4
  184. package/src/hooks/cross-origin-isolation.js +10 -109
  185. package/src/hooks/custom-css.js +36 -2
  186. package/src/hooks/test/cross-origin-isolation.js +15 -42
  187. package/src/private-apis.js +2 -0
  188. package/src/store/actions.js +0 -8
  189. package/src/store/private-keys.js +1 -0
  190. package/src/store/private-selectors.js +6 -3
  191. package/src/store/reducer.js +96 -77
  192. package/src/store/selectors.js +59 -22
  193. package/src/store/test/private-selectors.js +67 -34
  194. package/src/store/test/reducer.js +436 -57
  195. package/src/store/test/selectors.js +611 -53
@@ -1705,9 +1705,21 @@ const canInsertBlockTypeUnmemoized = (
1705
1705
  }
1706
1706
 
1707
1707
  const blockEditingMode = getBlockEditingMode( state, rootClientId ?? '' );
1708
+
1709
+ // Compute section context early so the disabled check below can use it.
1710
+ const isParentSectionBlock = !! isSectionBlock( state, rootClientId );
1711
+ const sectionClientId = isParentSectionBlock
1712
+ ? rootClientId
1713
+ : getParentSectionBlock( state, rootClientId );
1714
+ const isWithinSection = !! sectionClientId;
1715
+
1716
+ // Disabled containers reject all blocks, with one exception: within a
1717
+ // section, the default block (paragraph) is allowed through so it can
1718
+ // reach the content-insertion logic further down (lines 1748-1772)
1719
+ // which conditionally permits it where a sibling paragraph exists.
1708
1720
  if (
1709
1721
  blockEditingMode === 'disabled' &&
1710
- blockName !== getDefaultBlockName()
1722
+ ( ! isWithinSection || blockName !== getDefaultBlockName() )
1711
1723
  ) {
1712
1724
  return false;
1713
1725
  }
@@ -1723,11 +1735,6 @@ const canInsertBlockTypeUnmemoized = (
1723
1735
  // It shouldn't be possible to insert inside a section block unless in
1724
1736
  // some cases when the block is a content block.
1725
1737
  const isContentRoleBlock = isContentBlock( blockName );
1726
- const isParentSectionBlock = !! isSectionBlock( state, rootClientId );
1727
- const sectionClientId = isParentSectionBlock
1728
- ? rootClientId
1729
- : getParentSectionBlock( state, rootClientId );
1730
- const isWithinSection = !! sectionClientId;
1731
1738
  if ( isWithinSection && ! isContentRoleBlock ) {
1732
1739
  return false;
1733
1740
  }
@@ -1740,22 +1747,40 @@ const canInsertBlockTypeUnmemoized = (
1740
1747
  return false;
1741
1748
  }
1742
1749
 
1743
- // In content only mode, check if this container allows insertion.
1750
+ /*
1751
+ * In content only mode, check if this container allows insertion.
1752
+ * We need the `isParentSectionBlock` check because section blocks
1753
+ * (synced patterns, contentOnly groups) have a `getBlockEditingMode`
1754
+ * of 'default', not 'contentOnly' — the 'contentOnly' mode is only
1755
+ * set on their *children*.
1756
+ *
1757
+ * Also include `disabled` alongside `contentOnly`: structural inner blocks
1758
+ * (e.g. Column) inside a content-only section use `disabled` mode, and they
1759
+ * need the same default-block sibling rules so insertion stays aligned with
1760
+ * `canRemoveBlock`.
1761
+ */
1744
1762
  if (
1745
- ( isParentSectionBlock || blockEditingMode === 'contentOnly' ) &&
1763
+ isWithinSection &&
1764
+ ( isParentSectionBlock ||
1765
+ blockEditingMode === 'contentOnly' ||
1766
+ blockEditingMode === 'disabled' ) &&
1746
1767
  ! isContainerInsertableToInContentOnlyMode(
1747
1768
  state,
1748
1769
  blockName,
1749
1770
  rootClientId
1750
1771
  )
1751
1772
  ) {
1752
- // Allow inserting the default block anywhere that another default block already exists
1753
- // when in contentOnly mode.
1754
- if ( blockName === getDefaultBlockName() ) {
1773
+ const defaultBlockName = getDefaultBlockName();
1774
+ /*
1775
+ * Allow inserting the default block anywhere that another default block already exists
1776
+ * when in contentOnly mode. The same sibling rule applies when the parent is `disabled`
1777
+ * within a content-only section (see the condition above).
1778
+ */
1779
+ if ( blockName === defaultBlockName ) {
1755
1780
  const existingBlocks = getBlockOrder( state, rootClientId );
1756
1781
  const hasDefaultBlock = existingBlocks.some(
1757
1782
  ( clientId ) =>
1758
- getBlockName( state, clientId ) === getDefaultBlockName()
1783
+ getBlockName( state, clientId ) === defaultBlockName
1759
1784
  );
1760
1785
  if ( ! hasDefaultBlock ) {
1761
1786
  return false;
@@ -1938,11 +1963,18 @@ export function canRemoveBlock( state, clientId ) {
1938
1963
 
1939
1964
  const rootBlockEditingMode = getBlockEditingMode( state, rootClientId );
1940
1965
  const blockName = getBlockName( state, clientId );
1941
- // Check if the parent container allows insertion/removal in contentOnly mode.
1966
+ const defaultBlockName = getDefaultBlockName();
1967
+
1968
+ // Check if the parent container allows insertion/removal in contentOnly
1969
+ // mode. We need the `isParentSectionBlock` check because section blocks
1970
+ // (synced patterns, contentOnly groups) have a `getBlockEditingMode` of
1971
+ // 'default', not 'contentOnly' — the 'contentOnly' mode is only set on
1972
+ // their *children*.
1942
1973
  if (
1974
+ isWithinSection &&
1943
1975
  ( isParentSectionBlock ||
1944
- rootBlockEditingMode === 'contentOnly' ||
1945
- blockName === getDefaultBlockName() ) &&
1976
+ blockName === defaultBlockName ||
1977
+ rootBlockEditingMode === 'contentOnly' ) &&
1946
1978
  ! isContainerInsertableToInContentOnlyMode(
1947
1979
  state,
1948
1980
  getBlockName( state, clientId ),
@@ -1951,18 +1983,18 @@ export function canRemoveBlock( state, clientId ) {
1951
1983
  ) {
1952
1984
  // Allow removing the default block when other default blocks exist
1953
1985
  // in contentOnly mode.
1954
- if ( blockName === getDefaultBlockName() ) {
1986
+ if ( blockName === defaultBlockName ) {
1955
1987
  const existingBlocks = getBlockOrder( state, rootClientId );
1956
1988
  const defaultBlocks = existingBlocks.filter(
1957
- ( id ) => getBlockName( state, id ) === getDefaultBlockName()
1989
+ ( id ) => getBlockName( state, id ) === defaultBlockName
1958
1990
  );
1959
1991
  // Allow removal if there are other default blocks besides this one
1960
1992
  if ( defaultBlocks.length > 1 ) {
1961
1993
  return true;
1962
1994
  }
1963
- } else {
1964
1995
  return false;
1965
1996
  }
1997
+ return false;
1966
1998
  }
1967
1999
 
1968
2000
  return rootBlockEditingMode !== 'disabled';
@@ -2016,11 +2048,16 @@ export function canMoveBlock( state, clientId ) {
2016
2048
  return false;
2017
2049
  }
2018
2050
 
2019
- // If the parent is a section or is `contentOnly`, then check is the inner block
2020
- // should be allowed to move.
2051
+ // If the block is within a section and the parent is either a section
2052
+ // block itself or has contentOnly editing mode, check whether the inner
2053
+ // block should be allowed to move. We need the `isParentSectionBlock`
2054
+ // check because section blocks (synced patterns, contentOnly groups)
2055
+ // have a `getBlockEditingMode` of 'default', not 'contentOnly' — the
2056
+ // 'contentOnly' mode is only set on their *children*.
2021
2057
  const isParentSectionBlock = !! isSectionBlock( state, rootClientId );
2022
2058
  const rootBlockEditingMode = getBlockEditingMode( state, rootClientId );
2023
2059
  if (
2060
+ isBlockWithinSection &&
2024
2061
  ( isParentSectionBlock || rootBlockEditingMode === 'contentOnly' ) &&
2025
2062
  ! isContainerInsertableToInContentOnlyMode(
2026
2063
  state,
@@ -3217,8 +3254,8 @@ export function getBlockEditingMode( state, clientId = '' ) {
3217
3254
  }
3218
3255
 
3219
3256
  // In normal mode, consider that an explicitly set editing mode takes over.
3220
- if ( state.blockEditingModes.has( clientId ) ) {
3221
- return state.blockEditingModes.get( clientId );
3257
+ if ( state.blocks.blockEditingModes.has( clientId ) ) {
3258
+ return state.blocks.blockEditingModes.get( clientId );
3222
3259
  }
3223
3260
 
3224
3261
  return 'default';
@@ -131,12 +131,12 @@ describe( 'private selectors', () => {
131
131
  '9b9c5c3f-2e46-4f02-9e14-9fe9515b958f',
132
132
  ],
133
133
  ] ),
134
+ blockEditingModes: new Map( [] ),
134
135
  },
135
136
  blockListSettings: {
136
137
  'ef45d5fd-5234-4fd5-ac4f-c3736c7f9337': {},
137
138
  '9b9c5c3f-2e46-4f02-9e14-9fe9515b958f': {},
138
139
  },
139
- blockEditingModes: new Map( [] ),
140
140
  derivedBlockEditingModes: new Map( [] ),
141
141
  };
142
142
 
@@ -152,7 +152,10 @@ describe( 'private selectors', () => {
152
152
  it( 'should return false when top level block is not disabled', () => {
153
153
  const state = {
154
154
  ...baseState,
155
- blockEditingModes: new Map( [] ),
155
+ blocks: {
156
+ ...baseState.blocks,
157
+ blockEditingModes: new Map( [] ),
158
+ },
156
159
  derivedBlockEditingModes: new Map( [] ),
157
160
  };
158
161
  expect(
@@ -166,9 +169,12 @@ describe( 'private selectors', () => {
166
169
  it( 'should return true when top level block is disabled and there are no editing modes within it', () => {
167
170
  const state = {
168
171
  ...baseState,
169
- blockEditingModes: new Map( [
170
- [ 'ef45d5fd-5234-4fd5-ac4f-c3736c7f9337', 'disabled' ],
171
- ] ),
172
+ blocks: {
173
+ ...baseState.blocks,
174
+ blockEditingModes: new Map( [
175
+ [ 'ef45d5fd-5234-4fd5-ac4f-c3736c7f9337', 'disabled' ],
176
+ ] ),
177
+ },
172
178
  derivedBlockEditingModes: new Map( [
173
179
  [ 'b26fc763-417d-4f01-b81c-2ec61e14a972', 'disabled' ],
174
180
  [ '9b9c5c3f-2e46-4f02-9e14-9fe9515b958f', 'disabled' ],
@@ -187,7 +193,10 @@ describe( 'private selectors', () => {
187
193
  it( 'should return true when top level block is disabled via inheritance and there are no editing modes within it', () => {
188
194
  const state = {
189
195
  ...baseState,
190
- blockEditingModes: new Map( [ [ '', 'disabled' ] ] ),
196
+ blocks: {
197
+ ...baseState.blocks,
198
+ blockEditingModes: new Map( [ [ '', 'disabled' ] ] ),
199
+ },
191
200
  derivedBlockEditingModes: new Map( [
192
201
  [ '6cf70164-9097-4460-bcbf-200560546988', 'disabled' ],
193
202
  [ 'ef45d5fd-5234-4fd5-ac4f-c3736c7f9337', 'disabled' ],
@@ -208,10 +217,13 @@ describe( 'private selectors', () => {
208
217
  it( 'should return true when top level block is disabled and there are disabled editing modes within it', () => {
209
218
  const state = {
210
219
  ...baseState,
211
- blockEditingModes: new Map( [
212
- [ 'ef45d5fd-5234-4fd5-ac4f-c3736c7f9337', 'disabled' ],
213
- [ 'b3247f75-fd94-4fef-97f9-5bfd162cc416', 'disabled' ],
214
- ] ),
220
+ blocks: {
221
+ ...baseState.blocks,
222
+ blockEditingModes: new Map( [
223
+ [ 'ef45d5fd-5234-4fd5-ac4f-c3736c7f9337', 'disabled' ],
224
+ [ 'b3247f75-fd94-4fef-97f9-5bfd162cc416', 'disabled' ],
225
+ ] ),
226
+ },
215
227
  derivedBlockEditingModes: new Map( [
216
228
  [ 'b26fc763-417d-4f01-b81c-2ec61e14a972', 'disabled' ],
217
229
  [ '9b9c5c3f-2e46-4f02-9e14-9fe9515b958f', 'disabled' ],
@@ -229,10 +241,13 @@ describe( 'private selectors', () => {
229
241
  it( 'should return false when top level block is disabled and there are non-disabled editing modes within it', () => {
230
242
  const state = {
231
243
  ...baseState,
232
- blockEditingModes: new Map( [
233
- [ 'ef45d5fd-5234-4fd5-ac4f-c3736c7f9337', 'disabled' ],
234
- [ 'b3247f75-fd94-4fef-97f9-5bfd162cc416', 'default' ],
235
- ] ),
244
+ blocks: {
245
+ ...baseState.blocks,
246
+ blockEditingModes: new Map( [
247
+ [ 'ef45d5fd-5234-4fd5-ac4f-c3736c7f9337', 'disabled' ],
248
+ [ 'b3247f75-fd94-4fef-97f9-5bfd162cc416', 'default' ],
249
+ ] ),
250
+ },
236
251
  derivedBlockEditingModes: new Map( [
237
252
  [ 'b26fc763-417d-4f01-b81c-2ec61e14a972', 'disabled' ],
238
253
  [ '9b9c5c3f-2e46-4f02-9e14-9fe9515b958f', 'disabled' ],
@@ -250,10 +265,13 @@ describe( 'private selectors', () => {
250
265
  it( 'should return false when top level block is disabled via inheritance and there are non-disabled editing modes within it', () => {
251
266
  const state = {
252
267
  ...baseState,
253
- blockEditingModes: new Map( [
254
- [ '', 'disabled' ],
255
- [ 'b3247f75-fd94-4fef-97f9-5bfd162cc416', 'default' ],
256
- ] ),
268
+ blocks: {
269
+ ...baseState.blocks,
270
+ blockEditingModes: new Map( [
271
+ [ '', 'disabled' ],
272
+ [ 'b3247f75-fd94-4fef-97f9-5bfd162cc416', 'default' ],
273
+ ] ),
274
+ },
257
275
  derivedBlockEditingModes: new Map( [
258
276
  [ '6cf70164-9097-4460-bcbf-200560546988', 'disabled' ],
259
277
  [ 'ef45d5fd-5234-4fd5-ac4f-c3736c7f9337', 'disabled' ],
@@ -343,7 +361,10 @@ describe( 'private selectors', () => {
343
361
  it( 'should return tree containing only clientId and innerBlocks', () => {
344
362
  const state = {
345
363
  ...baseState,
346
- blockEditingModes: new Map( [] ),
364
+ blocks: {
365
+ ...baseState.blocks,
366
+ blockEditingModes: new Map( [] ),
367
+ },
347
368
  derivedBlockEditingModes: new Map( [] ),
348
369
  };
349
370
  expect( getEnabledClientIdsTree( state ) ).toEqual( [
@@ -381,7 +402,10 @@ describe( 'private selectors', () => {
381
402
  it( 'should return a subtree when rootBlockClientId is given', () => {
382
403
  const state = {
383
404
  ...baseState,
384
- blockEditingModes: new Map( [] ),
405
+ blocks: {
406
+ ...baseState.blocks,
407
+ blockEditingModes: new Map( [] ),
408
+ },
385
409
  derivedBlockEditingModes: new Map( [] ),
386
410
  };
387
411
  expect(
@@ -413,11 +437,20 @@ describe( 'private selectors', () => {
413
437
  it( 'should filter out disabled blocks', () => {
414
438
  const state = {
415
439
  ...baseState,
416
- blockEditingModes: new Map( [
417
- [ '', 'disabled' ],
418
- [ 'b26fc763-417d-4f01-b81c-2ec61e14a972', 'contentOnly' ],
419
- [ '9b9c5c3f-2e46-4f02-9e14-9fe9515b958f', 'contentOnly' ],
420
- ] ),
440
+ blocks: {
441
+ ...baseState.blocks,
442
+ blockEditingModes: new Map( [
443
+ [ '', 'disabled' ],
444
+ [
445
+ 'b26fc763-417d-4f01-b81c-2ec61e14a972',
446
+ 'contentOnly',
447
+ ],
448
+ [
449
+ '9b9c5c3f-2e46-4f02-9e14-9fe9515b958f',
450
+ 'contentOnly',
451
+ ],
452
+ ] ),
453
+ },
421
454
  derivedBlockEditingModes: new Map( [
422
455
  [ '6cf70164-9097-4460-bcbf-200560546988', 'disabled' ],
423
456
  [ 'ef45d5fd-5234-4fd5-ac4f-c3736c7f9337', 'disabled' ],
@@ -457,8 +490,8 @@ describe( 'private selectors', () => {
457
490
  [ '6cf70164-9097-4460-bcbf-200560546988', [] ],
458
491
  [ '', [ '6cf70164-9097-4460-bcbf-200560546988' ] ],
459
492
  ] ),
493
+ blockEditingModes: new Map(),
460
494
  },
461
- blockEditingModes: new Map(),
462
495
  derivedBlockEditingModes: new Map(),
463
496
  };
464
497
  expect(
@@ -503,11 +536,11 @@ describe( 'private selectors', () => {
503
536
  [ '4c2b7140-fffd-44b4-b2a7-820c670a6514' ],
504
537
  ],
505
538
  ] ),
539
+ blockEditingModes: new Map( [
540
+ [ '', 'disabled' ],
541
+ [ 'e178812d-ce5e-48c7-a945-8ae4ffcbbb7c', 'default' ],
542
+ ] ),
506
543
  },
507
- blockEditingModes: new Map( [
508
- [ '', 'disabled' ],
509
- [ 'e178812d-ce5e-48c7-a945-8ae4ffcbbb7c', 'default' ],
510
- ] ),
511
544
  derivedBlockEditingModes: new Map( [
512
545
  [ 'ef45d5fd-5234-4fd5-ac4f-c3736c7f9337', 'disabled' ],
513
546
  [ '9b9c5c3f-2e46-4f02-9e14-9fe9515b958f', 'disabled' ],
@@ -556,11 +589,11 @@ describe( 'private selectors', () => {
556
589
  [ '4c2b7140-fffd-44b4-b2a7-820c670a6514' ],
557
590
  ],
558
591
  ] ),
592
+ blockEditingModes: new Map( [
593
+ [ '', 'disabled' ],
594
+ [ '9b9c5c3f-2e46-4f02-9e14-9fe9515b958f', 'default' ],
595
+ ] ),
559
596
  },
560
- blockEditingModes: new Map( [
561
- [ '', 'disabled' ],
562
- [ '9b9c5c3f-2e46-4f02-9e14-9fe9515b958f', 'default' ],
563
- ] ),
564
597
  derivedBlockEditingModes: new Map( [
565
598
  [ 'ef45d5fd-5234-4fd5-ac4f-c3736c7f9337', 'disabled' ],
566
599
  ] ),