@wordpress/block-editor 14.3.4 → 14.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +4 -0
  3. package/build/autocompleters/link.js +2 -1
  4. package/build/autocompleters/link.js.map +1 -1
  5. package/build/components/block-actions/index.js +1 -13
  6. package/build/components/block-actions/index.js.map +1 -1
  7. package/build/components/block-inspector/index.js +56 -75
  8. package/build/components/block-inspector/index.js.map +1 -1
  9. package/build/components/block-list/block.js +5 -19
  10. package/build/components/block-list/block.js.map +1 -1
  11. package/build/components/block-list/index.js +5 -8
  12. package/build/components/block-list/index.js.map +1 -1
  13. package/build/components/block-list/use-block-props/index.js +3 -11
  14. package/build/components/block-list/use-block-props/index.js.map +1 -1
  15. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -12
  16. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
  17. package/build/components/block-list/use-in-between-inserter.js +5 -3
  18. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  19. package/build/components/block-list/zoom-out-separator.js +14 -6
  20. package/build/components/block-list/zoom-out-separator.js.map +1 -1
  21. package/build/components/block-navigation/dropdown.js +2 -4
  22. package/build/components/block-navigation/dropdown.js.map +1 -1
  23. package/build/components/block-parent-selector/index.js +13 -10
  24. package/build/components/block-parent-selector/index.js.map +1 -1
  25. package/build/components/block-pattern-setup/setup-toolbar.js +10 -20
  26. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  27. package/build/components/block-patterns-paging/index.js +11 -13
  28. package/build/components/block-patterns-paging/index.js.map +1 -1
  29. package/build/components/block-quick-navigation/index.js +2 -4
  30. package/build/components/block-quick-navigation/index.js.map +1 -1
  31. package/build/components/block-settings-menu/block-settings-dropdown.js +79 -76
  32. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  33. package/build/components/block-settings-menu-controls/index.js +1 -6
  34. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  35. package/build/components/block-switcher/index.js +17 -14
  36. package/build/components/block-switcher/index.js.map +1 -1
  37. package/build/components/block-toolbar/index.js +16 -19
  38. package/build/components/block-toolbar/index.js.map +1 -1
  39. package/build/components/block-toolbar/use-has-block-toolbar.js +3 -5
  40. package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  41. package/build/components/block-tools/index.js +8 -11
  42. package/build/components/block-tools/index.js.map +1 -1
  43. package/build/components/block-tools/insertion-point.js +1 -4
  44. package/build/components/block-tools/insertion-point.js.map +1 -1
  45. package/build/components/block-tools/use-show-block-tools.js +2 -5
  46. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  47. package/build/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
  48. package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
  49. package/build/components/block-tools/zoom-out-mode-inserters.js +14 -17
  50. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  51. package/build/components/block-tools/zoom-out-toolbar.js +2 -12
  52. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  53. package/build/components/block-variation-picker/index.js +2 -4
  54. package/build/components/block-variation-picker/index.js.map +1 -1
  55. package/build/components/block-variation-transforms/index.js +3 -4
  56. package/build/components/block-variation-transforms/index.js.map +1 -1
  57. package/build/components/button-block-appender/index.js +2 -4
  58. package/build/components/button-block-appender/index.js.map +1 -1
  59. package/build/components/colors-gradients/dropdown.js +2 -4
  60. package/build/components/colors-gradients/dropdown.js.map +1 -1
  61. package/build/components/global-styles/border-panel.js +1 -1
  62. package/build/components/global-styles/border-panel.js.map +1 -1
  63. package/build/components/global-styles/color-panel.js +2 -4
  64. package/build/components/global-styles/color-panel.js.map +1 -1
  65. package/build/components/global-styles/dimensions-panel.js +3 -3
  66. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  67. package/build/components/global-styles/filters-panel.js +2 -4
  68. package/build/components/global-styles/filters-panel.js.map +1 -1
  69. package/build/components/global-styles/shadow-panel-components.js +24 -29
  70. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  71. package/build/components/inner-blocks/index.js +1 -9
  72. package/build/components/inner-blocks/index.js.map +1 -1
  73. package/build/components/inserter/block-types-tab.js +1 -1
  74. package/build/components/inserter/block-types-tab.js.map +1 -1
  75. package/build/components/inserter/hooks/use-block-types-state.js +24 -5
  76. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  77. package/build/components/inserter/hooks/use-insertion-point.js +22 -12
  78. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  79. package/build/components/inserter/hooks/use-patterns-state.js +23 -10
  80. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  81. package/build/components/inserter/media-tab/media-preview.js +35 -13
  82. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  83. package/build/components/inserter/menu.js +2 -2
  84. package/build/components/inserter/menu.js.map +1 -1
  85. package/build/components/inserter/mobile-tab-navigation.js +5 -5
  86. package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
  87. package/build/components/inserter/quick-inserter.js +4 -4
  88. package/build/components/inserter/quick-inserter.js.map +1 -1
  89. package/build/components/inspector-controls-tabs/index.js +11 -8
  90. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  91. package/build/components/inspector-popover-header/index.js +4 -8
  92. package/build/components/inspector-popover-header/index.js.map +1 -1
  93. package/build/components/link-control/index.js +5 -10
  94. package/build/components/link-control/index.js.map +1 -1
  95. package/build/components/link-control/settings-drawer.js +2 -4
  96. package/build/components/link-control/settings-drawer.js.map +1 -1
  97. package/build/components/list-view/block-contents.js +1 -25
  98. package/build/components/list-view/block-contents.js.map +1 -1
  99. package/build/components/list-view/block-select-button.js +1 -4
  100. package/build/components/list-view/block-select-button.js.map +1 -1
  101. package/build/components/media-placeholder/index.js +12 -24
  102. package/build/components/media-placeholder/index.js.map +1 -1
  103. package/build/components/skip-to-selected-block/index.js +2 -4
  104. package/build/components/skip-to-selected-block/index.js.map +1 -1
  105. package/build/components/tool-selector/index.js +13 -12
  106. package/build/components/tool-selector/index.js.map +1 -1
  107. package/build/components/url-input/button.js +14 -16
  108. package/build/components/url-input/button.js.map +1 -1
  109. package/build/components/url-input/index.js +2 -4
  110. package/build/components/url-input/index.js.map +1 -1
  111. package/build/components/use-block-commands/index.js +0 -61
  112. package/build/components/use-block-commands/index.js.map +1 -1
  113. package/build/components/writing-flow/use-tab-nav.js +2 -25
  114. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  115. package/build/hooks/duotone.js +4 -1
  116. package/build/hooks/duotone.js.map +1 -1
  117. package/build/hooks/layout-child.js +3 -1
  118. package/build/hooks/layout-child.js.map +1 -1
  119. package/build/hooks/position.js +3 -2
  120. package/build/hooks/position.js.map +1 -1
  121. package/build/layouts/flex.js +6 -38
  122. package/build/layouts/flex.js.map +1 -1
  123. package/build/store/actions.js +13 -14
  124. package/build/store/actions.js.map +1 -1
  125. package/build/store/private-actions.js +15 -0
  126. package/build/store/private-actions.js.map +1 -1
  127. package/build/store/private-selectors.js +104 -7
  128. package/build/store/private-selectors.js.map +1 -1
  129. package/build/store/reducer.js +22 -26
  130. package/build/store/reducer.js.map +1 -1
  131. package/build/store/selectors.js +127 -56
  132. package/build/store/selectors.js.map +1 -1
  133. package/build/store/utils.js +4 -3
  134. package/build/store/utils.js.map +1 -1
  135. package/build/utils/block-bindings.js +2 -0
  136. package/build/utils/block-bindings.js.map +1 -1
  137. package/build-module/autocompleters/link.js +2 -1
  138. package/build-module/autocompleters/link.js.map +1 -1
  139. package/build-module/components/block-actions/index.js +1 -13
  140. package/build-module/components/block-actions/index.js.map +1 -1
  141. package/build-module/components/block-inspector/index.js +57 -76
  142. package/build-module/components/block-inspector/index.js.map +1 -1
  143. package/build-module/components/block-list/block.js +5 -19
  144. package/build-module/components/block-list/block.js.map +1 -1
  145. package/build-module/components/block-list/index.js +5 -8
  146. package/build-module/components/block-list/index.js.map +1 -1
  147. package/build-module/components/block-list/use-block-props/index.js +3 -11
  148. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  149. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -12
  150. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
  151. package/build-module/components/block-list/use-in-between-inserter.js +5 -3
  152. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  153. package/build-module/components/block-list/zoom-out-separator.js +14 -6
  154. package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
  155. package/build-module/components/block-navigation/dropdown.js +2 -4
  156. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  157. package/build-module/components/block-parent-selector/index.js +13 -10
  158. package/build-module/components/block-parent-selector/index.js.map +1 -1
  159. package/build-module/components/block-pattern-setup/setup-toolbar.js +10 -20
  160. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  161. package/build-module/components/block-patterns-paging/index.js +11 -13
  162. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  163. package/build-module/components/block-quick-navigation/index.js +2 -4
  164. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  165. package/build-module/components/block-settings-menu/block-settings-dropdown.js +79 -76
  166. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  167. package/build-module/components/block-settings-menu-controls/index.js +2 -7
  168. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  169. package/build-module/components/block-switcher/index.js +17 -14
  170. package/build-module/components/block-switcher/index.js.map +1 -1
  171. package/build-module/components/block-toolbar/index.js +17 -20
  172. package/build-module/components/block-toolbar/index.js.map +1 -1
  173. package/build-module/components/block-toolbar/use-has-block-toolbar.js +3 -5
  174. package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  175. package/build-module/components/block-tools/index.js +8 -11
  176. package/build-module/components/block-tools/index.js.map +1 -1
  177. package/build-module/components/block-tools/insertion-point.js +1 -4
  178. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  179. package/build-module/components/block-tools/use-show-block-tools.js +2 -5
  180. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  181. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
  182. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
  183. package/build-module/components/block-tools/zoom-out-mode-inserters.js +14 -17
  184. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  185. package/build-module/components/block-tools/zoom-out-toolbar.js +2 -12
  186. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  187. package/build-module/components/block-variation-picker/index.js +2 -4
  188. package/build-module/components/block-variation-picker/index.js.map +1 -1
  189. package/build-module/components/block-variation-transforms/index.js +3 -4
  190. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  191. package/build-module/components/button-block-appender/index.js +2 -4
  192. package/build-module/components/button-block-appender/index.js.map +1 -1
  193. package/build-module/components/colors-gradients/dropdown.js +2 -4
  194. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  195. package/build-module/components/global-styles/border-panel.js +1 -1
  196. package/build-module/components/global-styles/border-panel.js.map +1 -1
  197. package/build-module/components/global-styles/color-panel.js +2 -4
  198. package/build-module/components/global-styles/color-panel.js.map +1 -1
  199. package/build-module/components/global-styles/dimensions-panel.js +1 -1
  200. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  201. package/build-module/components/global-styles/filters-panel.js +2 -4
  202. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  203. package/build-module/components/global-styles/shadow-panel-components.js +25 -30
  204. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  205. package/build-module/components/inner-blocks/index.js +1 -9
  206. package/build-module/components/inner-blocks/index.js.map +1 -1
  207. package/build-module/components/inserter/block-types-tab.js +1 -1
  208. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  209. package/build-module/components/inserter/hooks/use-block-types-state.js +27 -8
  210. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  211. package/build-module/components/inserter/hooks/use-insertion-point.js +22 -12
  212. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  213. package/build-module/components/inserter/hooks/use-patterns-state.js +23 -10
  214. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  215. package/build-module/components/inserter/media-tab/media-preview.js +35 -13
  216. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  217. package/build-module/components/inserter/menu.js +2 -2
  218. package/build-module/components/inserter/menu.js.map +1 -1
  219. package/build-module/components/inserter/mobile-tab-navigation.js +6 -6
  220. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
  221. package/build-module/components/inserter/quick-inserter.js +4 -4
  222. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  223. package/build-module/components/inspector-controls-tabs/index.js +12 -9
  224. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  225. package/build-module/components/inspector-popover-header/index.js +4 -8
  226. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  227. package/build-module/components/link-control/index.js +5 -10
  228. package/build-module/components/link-control/index.js.map +1 -1
  229. package/build-module/components/link-control/settings-drawer.js +2 -4
  230. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  231. package/build-module/components/list-view/block-contents.js +1 -25
  232. package/build-module/components/list-view/block-contents.js.map +1 -1
  233. package/build-module/components/list-view/block-select-button.js +2 -5
  234. package/build-module/components/list-view/block-select-button.js.map +1 -1
  235. package/build-module/components/media-placeholder/index.js +12 -24
  236. package/build-module/components/media-placeholder/index.js.map +1 -1
  237. package/build-module/components/skip-to-selected-block/index.js +2 -4
  238. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  239. package/build-module/components/tool-selector/index.js +13 -12
  240. package/build-module/components/tool-selector/index.js.map +1 -1
  241. package/build-module/components/url-input/button.js +15 -17
  242. package/build-module/components/url-input/button.js.map +1 -1
  243. package/build-module/components/url-input/index.js +2 -4
  244. package/build-module/components/url-input/index.js.map +1 -1
  245. package/build-module/components/use-block-commands/index.js +1 -62
  246. package/build-module/components/use-block-commands/index.js.map +1 -1
  247. package/build-module/components/writing-flow/use-tab-nav.js +3 -26
  248. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  249. package/build-module/hooks/duotone.js +4 -1
  250. package/build-module/hooks/duotone.js.map +1 -1
  251. package/build-module/hooks/layout-child.js +4 -1
  252. package/build-module/hooks/layout-child.js.map +1 -1
  253. package/build-module/hooks/position.js +4 -1
  254. package/build-module/hooks/position.js.map +1 -1
  255. package/build-module/layouts/flex.js +7 -39
  256. package/build-module/layouts/flex.js.map +1 -1
  257. package/build-module/store/actions.js +12 -12
  258. package/build-module/store/actions.js.map +1 -1
  259. package/build-module/store/private-actions.js +14 -0
  260. package/build-module/store/private-actions.js.map +1 -1
  261. package/build-module/store/private-selectors.js +98 -7
  262. package/build-module/store/private-selectors.js.map +1 -1
  263. package/build-module/store/reducer.js +21 -25
  264. package/build-module/store/reducer.js.map +1 -1
  265. package/build-module/store/selectors.js +129 -58
  266. package/build-module/store/selectors.js.map +1 -1
  267. package/build-module/store/utils.js +3 -2
  268. package/build-module/store/utils.js.map +1 -1
  269. package/build-module/utils/block-bindings.js +2 -0
  270. package/build-module/utils/block-bindings.js.map +1 -1
  271. package/build-style/content-rtl.css +14 -56
  272. package/build-style/content.css +14 -56
  273. package/build-style/default-editor-styles-rtl.css +10 -1
  274. package/build-style/default-editor-styles.css +10 -1
  275. package/build-style/style-rtl.css +51 -149
  276. package/build-style/style.css +51 -149
  277. package/package.json +32 -32
  278. package/src/autocompleters/link.js +2 -1
  279. package/src/components/block-actions/index.js +1 -13
  280. package/src/components/block-draggable/style.scss +2 -2
  281. package/src/components/block-inspector/index.js +79 -95
  282. package/src/components/block-inspector/style.scss +2 -0
  283. package/src/components/block-list/block.js +7 -28
  284. package/src/components/block-list/content.scss +1 -61
  285. package/src/components/block-list/index.js +21 -29
  286. package/src/components/block-list/use-block-props/index.js +3 -10
  287. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +19 -11
  288. package/src/components/block-list/use-in-between-inserter.js +5 -2
  289. package/src/components/block-list/zoom-out-separator.js +24 -8
  290. package/src/components/block-navigation/dropdown.js +1 -2
  291. package/src/components/block-parent-selector/index.js +13 -10
  292. package/src/components/block-pattern-setup/setup-toolbar.js +5 -10
  293. package/src/components/block-patterns-paging/index.js +8 -7
  294. package/src/components/block-patterns-paging/style.scss +10 -27
  295. package/src/components/block-quick-navigation/index.js +1 -2
  296. package/src/components/block-settings-menu/block-settings-dropdown.js +120 -106
  297. package/src/components/block-settings-menu-controls/index.js +0 -15
  298. package/src/components/block-switcher/index.js +37 -30
  299. package/src/components/block-toolbar/index.js +22 -34
  300. package/src/components/block-toolbar/style.scss +10 -1
  301. package/src/components/block-toolbar/use-has-block-toolbar.js +19 -31
  302. package/src/components/block-tools/index.js +7 -16
  303. package/src/components/block-tools/insertion-point.js +1 -4
  304. package/src/components/block-tools/style.scss +3 -88
  305. package/src/components/block-tools/use-show-block-tools.js +2 -12
  306. package/src/components/block-tools/zoom-out-mode-inserter-button.js +2 -17
  307. package/src/components/block-tools/zoom-out-mode-inserters.js +11 -19
  308. package/src/components/block-tools/zoom-out-toolbar.js +2 -13
  309. package/src/components/block-variation-picker/index.js +1 -2
  310. package/src/components/block-variation-transforms/index.js +2 -2
  311. package/src/components/button-block-appender/content.scss +0 -5
  312. package/src/components/button-block-appender/index.js +1 -2
  313. package/src/components/colors-gradients/dropdown.js +1 -5
  314. package/src/components/font-family/README.md +5 -1
  315. package/src/components/global-styles/border-panel.js +1 -1
  316. package/src/components/global-styles/color-panel.js +1 -5
  317. package/src/components/global-styles/dimensions-panel.js +1 -1
  318. package/src/components/global-styles/filters-panel.js +1 -2
  319. package/src/components/global-styles/shadow-panel-components.js +28 -33
  320. package/src/components/global-styles/style.scss +5 -0
  321. package/src/components/inner-blocks/index.js +1 -16
  322. package/src/components/inserter/block-types-tab.js +1 -1
  323. package/src/components/inserter/hooks/use-block-types-state.js +34 -14
  324. package/src/components/inserter/hooks/use-insertion-point.js +35 -13
  325. package/src/components/inserter/hooks/use-patterns-state.js +46 -9
  326. package/src/components/inserter/media-tab/media-preview.js +38 -12
  327. package/src/components/inserter/menu.js +2 -2
  328. package/src/components/inserter/mobile-tab-navigation.js +10 -13
  329. package/src/components/inserter/quick-inserter.js +5 -4
  330. package/src/components/inserter/style.scss +0 -28
  331. package/src/components/inspector-controls-tabs/index.js +21 -20
  332. package/src/components/inspector-controls-tabs/style.scss +2 -6
  333. package/src/components/inspector-popover-header/index.js +2 -4
  334. package/src/components/inspector-popover-header/style.scss +0 -13
  335. package/src/components/link-control/index.js +2 -5
  336. package/src/components/link-control/settings-drawer.js +1 -2
  337. package/src/components/list-view/block-contents.js +1 -28
  338. package/src/components/list-view/block-select-button.js +2 -5
  339. package/src/components/list-view/style.scss +18 -14
  340. package/src/components/media-placeholder/index.js +6 -12
  341. package/src/components/skip-to-selected-block/index.js +1 -2
  342. package/src/components/skip-to-selected-block/style.scss +0 -9
  343. package/src/components/tool-selector/index.js +14 -9
  344. package/src/components/tool-selector/style.scss +5 -0
  345. package/src/components/url-input/button.js +16 -12
  346. package/src/components/url-input/index.js +1 -2
  347. package/src/components/url-input/style.scss +0 -6
  348. package/src/components/use-block-commands/index.js +0 -58
  349. package/src/components/writing-flow/use-tab-nav.js +4 -36
  350. package/src/content.scss +0 -1
  351. package/src/hooks/duotone.js +4 -1
  352. package/src/hooks/layout-child.js +4 -1
  353. package/src/hooks/position.js +4 -1
  354. package/src/layouts/flex.js +10 -53
  355. package/src/store/actions.js +14 -13
  356. package/src/store/private-actions.js +14 -0
  357. package/src/store/private-selectors.js +120 -16
  358. package/src/store/reducer.js +22 -28
  359. package/src/store/selectors.js +203 -114
  360. package/src/store/test/private-actions.js +15 -0
  361. package/src/store/test/private-selectors.js +34 -0
  362. package/src/store/test/reducer.js +40 -4
  363. package/src/store/test/selectors.js +183 -20
  364. package/src/store/utils.js +4 -2
  365. package/src/utils/block-bindings.js +2 -0
  366. package/build/components/block-controls/use-has-block-controls.js +0 -43
  367. package/build/components/block-controls/use-has-block-controls.js.map +0 -1
  368. package/build/components/block-list/use-block-props/use-nav-mode-exit.js +0 -54
  369. package/build/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
  370. package/build/components/block-tools/block-selection-button.js +0 -259
  371. package/build/components/block-tools/block-selection-button.js.map +0 -1
  372. package/build/components/block-tools/block-toolbar-breadcrumb.js +0 -57
  373. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
  374. package/build/components/inserter/tabs.js +0 -78
  375. package/build/components/inserter/tabs.js.map +0 -1
  376. package/build-module/components/block-controls/use-has-block-controls.js +0 -34
  377. package/build-module/components/block-controls/use-has-block-controls.js.map +0 -1
  378. package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js +0 -48
  379. package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
  380. package/build-module/components/block-tools/block-selection-button.js +0 -254
  381. package/build-module/components/block-tools/block-selection-button.js.map +0 -1
  382. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +0 -49
  383. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
  384. package/build-module/components/inserter/tabs.js +0 -72
  385. package/build-module/components/inserter/tabs.js.map +0 -1
  386. package/src/components/block-controls/use-has-block-controls.js +0 -35
  387. package/src/components/block-list/use-block-props/use-nav-mode-exit.js +0 -46
  388. package/src/components/block-tools/block-selection-button.js +0 -302
  389. package/src/components/block-tools/block-toolbar-breadcrumb.js +0 -51
  390. package/src/components/inner-blocks/content.scss +0 -13
  391. package/src/components/inserter/tabs.js +0 -78
  392. package/src/components/inserter/test/block-types-tab.native.js +0 -67
@@ -58,7 +58,6 @@ export function BlockSettingsDropdown( {
58
58
  const firstBlockClientId = clientIds[ 0 ];
59
59
  const {
60
60
  firstParentClientId,
61
- onlyBlock,
62
61
  parentBlockType,
63
62
  previousBlockClientId,
64
63
  selectedBlockClientIds,
@@ -67,7 +66,6 @@ export function BlockSettingsDropdown( {
67
66
  } = useSelect(
68
67
  ( select ) => {
69
68
  const {
70
- getBlockCount,
71
69
  getBlockName,
72
70
  getBlockRootClientId,
73
71
  getPreviousBlockClientId,
@@ -86,7 +84,6 @@ export function BlockSettingsDropdown( {
86
84
 
87
85
  return {
88
86
  firstParentClientId: _firstParentClientId,
89
- onlyBlock: 1 === getBlockCount( _firstParentClientId ),
90
87
  parentBlockType:
91
88
  _firstParentClientId &&
92
89
  ( getActiveBlockVariation(
@@ -186,6 +183,9 @@ export function BlockSettingsDropdown( {
186
183
  }
187
184
  }
188
185
 
186
+ const shouldShowBlockParentMenuItem =
187
+ ! parentBlockIsSelected && !! firstParentClientId;
188
+
189
189
  return (
190
190
  <BlockActions
191
191
  clientIds={ clientIds }
@@ -195,7 +195,6 @@ export function BlockSettingsDropdown( {
195
195
  canCopyStyles,
196
196
  canDuplicate,
197
197
  canInsertBlock,
198
- canMove,
199
198
  canRemove,
200
199
  onDuplicate,
201
200
  onInsertAfter,
@@ -203,26 +202,39 @@ export function BlockSettingsDropdown( {
203
202
  onRemove,
204
203
  onCopy,
205
204
  onPasteStyles,
206
- onMoveTo,
207
- } ) => (
208
- <DropdownMenu
209
- icon={ moreVertical }
210
- label={ __( 'Options' ) }
211
- className="block-editor-block-settings-menu"
212
- popoverProps={ POPOVER_PROPS }
213
- open={ open }
214
- onToggle={ onToggle }
215
- noIcons
216
- { ...props }
217
- >
218
- { ( { onClose } ) => (
219
- <>
220
- <MenuGroup>
221
- <__unstableBlockSettingsMenuFirstItem.Slot
222
- fillProps={ { onClose } }
223
- />
224
- { ! parentBlockIsSelected &&
225
- !! firstParentClientId && (
205
+ } ) => {
206
+ // It is possible that some plugins register fills for this menu
207
+ // even if Core doesn't render anything in the block settings menu.
208
+ // in which case, we may want to render the menu anyway.
209
+ // That said for now, we can start more conservative.
210
+ const isEmpty =
211
+ ! canRemove &&
212
+ ! canDuplicate &&
213
+ ! canInsertBlock &&
214
+ isContentOnly;
215
+
216
+ if ( isEmpty ) {
217
+ return null;
218
+ }
219
+
220
+ return (
221
+ <DropdownMenu
222
+ icon={ moreVertical }
223
+ label={ __( 'Options' ) }
224
+ className="block-editor-block-settings-menu"
225
+ popoverProps={ POPOVER_PROPS }
226
+ open={ open }
227
+ onToggle={ onToggle }
228
+ noIcons
229
+ { ...props }
230
+ >
231
+ { ( { onClose } ) => (
232
+ <>
233
+ <MenuGroup>
234
+ <__unstableBlockSettingsMenuFirstItem.Slot
235
+ fillProps={ { onClose } }
236
+ />
237
+ { shouldShowBlockParentMenuItem && (
226
238
  <BlockParentSelectorMenuItem
227
239
  parentClientId={
228
240
  firstParentClientId
@@ -230,101 +242,103 @@ export function BlockSettingsDropdown( {
230
242
  parentBlockType={ parentBlockType }
231
243
  />
232
244
  ) }
233
- { count === 1 && (
234
- <BlockHTMLConvertButton
235
- clientId={ firstBlockClientId }
236
- />
237
- ) }
238
- { ! isContentOnly && (
239
- <CopyMenuItem
240
- clientIds={ clientIds }
241
- onCopy={ onCopy }
242
- shortcut={ displayShortcut.primary(
243
- 'c'
244
- ) }
245
- />
246
- ) }
247
- { canDuplicate && (
248
- <MenuItem
249
- onClick={ pipe(
250
- onClose,
251
- onDuplicate,
252
- updateSelectionAfterDuplicate
253
- ) }
254
- shortcut={ shortcuts.duplicate }
255
- >
256
- { __( 'Duplicate' ) }
257
- </MenuItem>
258
- ) }
259
- { canInsertBlock && ! isContentOnly && (
260
- <>
245
+ { count === 1 && (
246
+ <BlockHTMLConvertButton
247
+ clientId={ firstBlockClientId }
248
+ />
249
+ ) }
250
+ { ! isContentOnly && (
251
+ <CopyMenuItem
252
+ clientIds={ clientIds }
253
+ onCopy={ onCopy }
254
+ shortcut={ displayShortcut.primary(
255
+ 'c'
256
+ ) }
257
+ />
258
+ ) }
259
+ { canDuplicate && (
261
260
  <MenuItem
262
261
  onClick={ pipe(
263
262
  onClose,
264
- onInsertBefore
263
+ onDuplicate,
264
+ updateSelectionAfterDuplicate
265
265
  ) }
266
- shortcut={ shortcuts.insertBefore }
266
+ shortcut={ shortcuts.duplicate }
267
267
  >
268
- { __( 'Add before' ) }
268
+ { __( 'Duplicate' ) }
269
+ </MenuItem>
270
+ ) }
271
+ { canInsertBlock && ! isContentOnly && (
272
+ <>
273
+ <MenuItem
274
+ onClick={ pipe(
275
+ onClose,
276
+ onInsertBefore
277
+ ) }
278
+ shortcut={
279
+ shortcuts.insertBefore
280
+ }
281
+ >
282
+ { __( 'Add before' ) }
283
+ </MenuItem>
284
+ <MenuItem
285
+ onClick={ pipe(
286
+ onClose,
287
+ onInsertAfter
288
+ ) }
289
+ shortcut={
290
+ shortcuts.insertAfter
291
+ }
292
+ >
293
+ { __( 'Add after' ) }
294
+ </MenuItem>
295
+ </>
296
+ ) }
297
+ </MenuGroup>
298
+ { canCopyStyles && ! isContentOnly && (
299
+ <MenuGroup>
300
+ <CopyMenuItem
301
+ clientIds={ clientIds }
302
+ onCopy={ onCopy }
303
+ label={ __( 'Copy styles' ) }
304
+ />
305
+ <MenuItem onClick={ onPasteStyles }>
306
+ { __( 'Paste styles' ) }
269
307
  </MenuItem>
308
+ </MenuGroup>
309
+ ) }
310
+ <BlockSettingsMenuControls.Slot
311
+ fillProps={ {
312
+ onClose,
313
+ count,
314
+ firstBlockClientId,
315
+ } }
316
+ clientIds={ clientIds }
317
+ />
318
+ { typeof children === 'function'
319
+ ? children( { onClose } )
320
+ : Children.map( ( child ) =>
321
+ cloneElement( child, { onClose } )
322
+ ) }
323
+ { canRemove && (
324
+ <MenuGroup>
270
325
  <MenuItem
271
326
  onClick={ pipe(
272
327
  onClose,
273
- onInsertAfter
328
+ onRemove,
329
+ updateSelectionAfterRemove
274
330
  ) }
275
- shortcut={ shortcuts.insertAfter }
331
+ shortcut={ shortcuts.remove }
276
332
  >
277
- { __( 'Add after' ) }
333
+ { __( 'Delete' ) }
278
334
  </MenuItem>
279
- </>
335
+ </MenuGroup>
280
336
  ) }
281
- </MenuGroup>
282
- { canCopyStyles && ! isContentOnly && (
283
- <MenuGroup>
284
- <CopyMenuItem
285
- clientIds={ clientIds }
286
- onCopy={ onCopy }
287
- label={ __( 'Copy styles' ) }
288
- />
289
- <MenuItem onClick={ onPasteStyles }>
290
- { __( 'Paste styles' ) }
291
- </MenuItem>
292
- </MenuGroup>
293
- ) }
294
- <BlockSettingsMenuControls.Slot
295
- fillProps={ {
296
- onClose,
297
- canMove,
298
- onMoveTo,
299
- onlyBlock,
300
- count,
301
- firstBlockClientId,
302
- } }
303
- clientIds={ clientIds }
304
- />
305
- { typeof children === 'function'
306
- ? children( { onClose } )
307
- : Children.map( ( child ) =>
308
- cloneElement( child, { onClose } )
309
- ) }
310
- { canRemove && (
311
- <MenuGroup>
312
- <MenuItem
313
- onClick={ pipe(
314
- onClose,
315
- onRemove,
316
- updateSelectionAfterRemove
317
- ) }
318
- shortcut={ shortcuts.remove }
319
- >
320
- { __( 'Delete' ) }
321
- </MenuItem>
322
- </MenuGroup>
323
- ) }
324
- </>
325
- ) }
326
- </DropdownMenu>
327
- ) }
337
+ </>
338
+ ) }
339
+ </DropdownMenu>
340
+ );
341
+ } }
328
342
  </BlockActions>
329
343
  );
330
344
  }
@@ -4,12 +4,9 @@
4
4
  import {
5
5
  createSlotFill,
6
6
  MenuGroup,
7
- MenuItem,
8
7
  __experimentalStyleProvider as StyleProvider,
9
8
  } from '@wordpress/components';
10
9
  import { useSelect } from '@wordpress/data';
11
- import { pipe } from '@wordpress/compose';
12
- import { __ } from '@wordpress/i18n';
13
10
 
14
11
  /**
15
12
  * Internal dependencies
@@ -96,18 +93,6 @@ const BlockSettingsMenuControlsSlot = ( { fillProps, clientIds = null } ) => {
96
93
  />
97
94
  ) }
98
95
  { fills }
99
- { fillProps?.canMove &&
100
- ! fillProps?.onlyBlock &&
101
- ! isContentOnly && (
102
- <MenuItem
103
- onClick={ pipe(
104
- fillProps?.onClose,
105
- fillProps?.onMoveTo
106
- ) }
107
- >
108
- { __( 'Move to' ) }
109
- </MenuItem>
110
- ) }
111
96
  { selectedClientIds.length === 1 && (
112
97
  <ModifyContentLockMenuItem
113
98
  clientId={ selectedClientIds[ 0 ] }
@@ -35,36 +35,40 @@ function BlockSwitcherDropdownMenuContents( {
35
35
  clientIds,
36
36
  hasBlockStyles,
37
37
  canRemove,
38
- isUsingBindings,
39
38
  } ) {
40
39
  const { replaceBlocks, multiSelect, updateBlockAttributes } =
41
40
  useDispatch( blockEditorStore );
42
- const { possibleBlockTransformations, patterns, blocks } = useSelect(
43
- ( select ) => {
44
- const {
45
- getBlocksByClientId,
46
- getBlockRootClientId,
47
- getBlockTransformItems,
48
- __experimentalGetPatternTransformItems,
49
- } = select( blockEditorStore );
50
- const rootClientId = getBlockRootClientId(
51
- Array.isArray( clientIds ) ? clientIds[ 0 ] : clientIds
52
- );
53
- const _blocks = getBlocksByClientId( clientIds );
54
- return {
55
- blocks: _blocks,
56
- possibleBlockTransformations: getBlockTransformItems(
57
- _blocks,
58
- rootClientId
59
- ),
60
- patterns: __experimentalGetPatternTransformItems(
61
- _blocks,
62
- rootClientId
63
- ),
64
- };
65
- },
66
- [ clientIds ]
67
- );
41
+ const { possibleBlockTransformations, patterns, blocks, isUsingBindings } =
42
+ useSelect(
43
+ ( select ) => {
44
+ const {
45
+ getBlockAttributes,
46
+ getBlocksByClientId,
47
+ getBlockRootClientId,
48
+ getBlockTransformItems,
49
+ __experimentalGetPatternTransformItems,
50
+ } = select( blockEditorStore );
51
+ const rootClientId = getBlockRootClientId( clientIds[ 0 ] );
52
+ const _blocks = getBlocksByClientId( clientIds );
53
+ return {
54
+ blocks: _blocks,
55
+ possibleBlockTransformations: getBlockTransformItems(
56
+ _blocks,
57
+ rootClientId
58
+ ),
59
+ patterns: __experimentalGetPatternTransformItems(
60
+ _blocks,
61
+ rootClientId
62
+ ),
63
+ isUsingBindings: clientIds.every(
64
+ ( clientId ) =>
65
+ !! getBlockAttributes( clientId )?.metadata
66
+ ?.bindings
67
+ ),
68
+ };
69
+ },
70
+ [ clientIds ]
71
+ );
68
72
  const blockVariationTransformations = useBlockVariationTransforms( {
69
73
  clientIds,
70
74
  blocks,
@@ -196,7 +200,7 @@ const BlockIndicator = ( { icon, showTitle, blockTitle } ) => (
196
200
  </>
197
201
  );
198
202
 
199
- export const BlockSwitcher = ( { clientIds, disabled, isUsingBindings } ) => {
203
+ export const BlockSwitcher = ( { clientIds } ) => {
200
204
  const {
201
205
  hasContentOnlyLocking,
202
206
  canRemove,
@@ -205,6 +209,7 @@ export const BlockSwitcher = ( { clientIds, disabled, isUsingBindings } ) => {
205
209
  invalidBlocks,
206
210
  isReusable,
207
211
  isTemplate,
212
+ isDisabled,
208
213
  } = useSelect(
209
214
  ( select ) => {
210
215
  const {
@@ -212,6 +217,7 @@ export const BlockSwitcher = ( { clientIds, disabled, isUsingBindings } ) => {
212
217
  getBlocksByClientId,
213
218
  getBlockAttributes,
214
219
  canRemoveBlocks,
220
+ getBlockEditingMode,
215
221
  } = select( blockEditorStore );
216
222
  const { getBlockStyles, getBlockType, getActiveBlockVariation } =
217
223
  select( blocksStore );
@@ -222,6 +228,7 @@ export const BlockSwitcher = ( { clientIds, disabled, isUsingBindings } ) => {
222
228
  const [ { name: firstBlockName } ] = _blocks;
223
229
  const _isSingleBlockSelected = _blocks.length === 1;
224
230
  const blockType = getBlockType( firstBlockName );
231
+ const editingMode = getBlockEditingMode( clientIds[ 0 ] );
225
232
 
226
233
  let _icon;
227
234
  let _hasTemplateLock;
@@ -256,6 +263,7 @@ export const BlockSwitcher = ( { clientIds, disabled, isUsingBindings } ) => {
256
263
  isTemplate:
257
264
  _isSingleBlockSelected && isTemplatePart( _blocks[ 0 ] ),
258
265
  hasContentOnlyLocking: _hasTemplateLock,
266
+ isDisabled: editingMode !== 'default',
259
267
  };
260
268
  },
261
269
  [ clientIds ]
@@ -275,7 +283,7 @@ export const BlockSwitcher = ( { clientIds, disabled, isUsingBindings } ) => {
275
283
  : __( 'Multiple blocks selected' );
276
284
 
277
285
  const hideDropdown =
278
- disabled ||
286
+ isDisabled ||
279
287
  ( ! hasBlockStyles && ! canRemove ) ||
280
288
  hasContentOnlyLocking;
281
289
 
@@ -339,7 +347,6 @@ export const BlockSwitcher = ( { clientIds, disabled, isUsingBindings } ) => {
339
347
  clientIds={ clientIds }
340
348
  hasBlockStyles={ hasBlockStyles }
341
349
  canRemove={ canRemove }
342
- isUsingBindings={ isUsingBindings }
343
350
  />
344
351
  ) }
345
352
  </DropdownMenu>
@@ -35,6 +35,7 @@ import { store as blockEditorStore } from '../../store';
35
35
  import __unstableBlockNameContext from './block-name-context';
36
36
  import NavigableToolbar from '../navigable-toolbar';
37
37
  import { useHasBlockToolbar } from './use-has-block-toolbar';
38
+ import { unlock } from '../../lock-unlock';
38
39
 
39
40
  /**
40
41
  * Renders the block toolbar.
@@ -58,7 +59,6 @@ export function PrivateBlockToolbar( {
58
59
  const {
59
60
  blockClientId,
60
61
  blockClientIds,
61
- isContentOnlyEditingMode,
62
62
  isDefaultEditingMode,
63
63
  blockType,
64
64
  toolbarKey,
@@ -78,12 +78,14 @@ export function PrivateBlockToolbar( {
78
78
  getBlockAttributes,
79
79
  getBlockParentsByBlockName,
80
80
  getTemplateLock,
81
- } = select( blockEditorStore );
81
+ getParentSectionBlock,
82
+ } = unlock( select( blockEditorStore ) );
82
83
  const selectedBlockClientIds = getSelectedBlockClientIds();
83
84
  const selectedBlockClientId = selectedBlockClientIds[ 0 ];
84
85
  const parents = getBlockParents( selectedBlockClientId );
85
- const firstParentClientId = parents[ parents.length - 1 ];
86
- const parentBlockName = getBlockName( firstParentClientId );
86
+ const parentSection = getParentSectionBlock( selectedBlockClientId );
87
+ const parentClientId = parentSection ?? parents[ parents.length - 1 ];
88
+ const parentBlockName = getBlockName( parentClientId );
87
89
  const parentBlockType = getBlockType( parentBlockName );
88
90
  const editingMode = getBlockEditingMode( selectedBlockClientId );
89
91
  const _isDefaultEditingMode = editingMode === 'default';
@@ -112,21 +114,19 @@ export function PrivateBlockToolbar( {
112
114
  return {
113
115
  blockClientId: selectedBlockClientId,
114
116
  blockClientIds: selectedBlockClientIds,
115
- isContentOnlyEditingMode: editingMode === 'contentOnly',
116
117
  isDefaultEditingMode: _isDefaultEditingMode,
117
118
  blockType: selectedBlockClientId && getBlockType( _blockName ),
118
119
  shouldShowVisualToolbar: isValid && isVisual,
119
- toolbarKey: `${ selectedBlockClientId }${ firstParentClientId }`,
120
+ toolbarKey: `${ selectedBlockClientId }${ parentClientId }`,
120
121
  showParentSelector:
121
122
  parentBlockType &&
122
- getBlockEditingMode( firstParentClientId ) === 'default' &&
123
+ getBlockEditingMode( parentClientId ) !== 'disabled' &&
123
124
  hasBlockSupport(
124
125
  parentBlockType,
125
126
  '__experimentalParentSelector',
126
127
  true
127
128
  ) &&
128
- selectedBlockClientIds.length === 1 &&
129
- _isDefaultEditingMode,
129
+ selectedBlockClientIds.length === 1,
130
130
  isUsingBindings: _isUsingBindings,
131
131
  hasParentPattern: _hasParentPattern,
132
132
  hasContentOnlyLocking: _hasTemplateLock,
@@ -179,36 +179,26 @@ export function PrivateBlockToolbar( {
179
179
  key={ toolbarKey }
180
180
  >
181
181
  <div ref={ toolbarWrapperRef } className={ innerClasses }>
182
- { ! isMultiToolbar &&
183
- isLargeViewport &&
184
- isDefaultEditingMode && <BlockParentSelector /> }
182
+ { ! isMultiToolbar && isLargeViewport && (
183
+ <BlockParentSelector />
184
+ ) }
185
185
  { ( shouldShowVisualToolbar || isMultiToolbar ) &&
186
- ( isDefaultEditingMode ||
187
- ( isContentOnlyEditingMode && ! hasParentPattern ) ||
188
- isSynced ) && (
186
+ ! hasParentPattern && (
189
187
  <div
190
188
  ref={ nodeRef }
191
189
  { ...showHoveredOrFocusedGestures }
192
190
  >
193
191
  <ToolbarGroup className="block-editor-block-toolbar__block-controls">
194
- <BlockSwitcher
192
+ <BlockSwitcher clientIds={ blockClientIds } />
193
+ { ! isMultiToolbar && isDefaultEditingMode && (
194
+ <BlockLockToolbar
195
+ clientId={ blockClientId }
196
+ />
197
+ ) }
198
+ <BlockMover
195
199
  clientIds={ blockClientIds }
196
- disabled={ ! isDefaultEditingMode }
197
- isUsingBindings={ isUsingBindings }
200
+ hideDragHandle={ hideDragHandle }
198
201
  />
199
- { isDefaultEditingMode && (
200
- <>
201
- { ! isMultiToolbar && (
202
- <BlockLockToolbar
203
- clientId={ blockClientId }
204
- />
205
- ) }
206
- <BlockMover
207
- clientIds={ blockClientIds }
208
- hideDragHandle={ hideDragHandle }
209
- />
210
- </>
211
- ) }
212
202
  </ToolbarGroup>
213
203
  </div>
214
204
  ) }
@@ -242,9 +232,7 @@ export function PrivateBlockToolbar( {
242
232
  </>
243
233
  ) }
244
234
  <BlockEditVisuallyButton clientIds={ blockClientIds } />
245
- { isDefaultEditingMode && (
246
- <BlockSettingsMenu clientIds={ blockClientIds } />
247
- ) }
235
+ <BlockSettingsMenu clientIds={ blockClientIds } />
248
236
  </div>
249
237
  </NavigableToolbar>
250
238
  );
@@ -59,9 +59,18 @@
59
59
 
60
60
  > :last-child,
61
61
  > :last-child .components-toolbar-group,
62
- > :last-child .components-toolbar {
62
+ > :last-child .components-toolbar,
63
+ // If the last toolbar group is empty,
64
+ // we need to remove the double border from the penultimate one.
65
+ &:has(> :last-child:empty) > :nth-last-child(2),
66
+ &:has(> :last-child:empty) > :nth-last-child(2) .components-toolbar-group,
67
+ &:has(> :last-child:empty) > :nth-last-child(2) .components-toolbar {
63
68
  border-right: none;
64
69
  }
70
+
71
+ .components-toolbar-group:empty {
72
+ display: none;
73
+ }
65
74
  }
66
75
 
67
76
  .block-editor-block-contextual-toolbar {
@@ -7,7 +7,6 @@ import { getBlockType, hasBlockSupport } from '@wordpress/blocks';
7
7
  * Internal dependencies
8
8
  */
9
9
  import { store as blockEditorStore } from '../../store';
10
- import { useHasAnyBlockControls } from '../block-controls/use-has-block-controls';
11
10
 
12
11
  /**
13
12
  * Returns true if the block toolbar should be shown.
@@ -15,40 +14,29 @@ import { useHasAnyBlockControls } from '../block-controls/use-has-block-controls
15
14
  * @return {boolean} Whether the block toolbar component will be rendered.
16
15
  */
17
16
  export function useHasBlockToolbar() {
18
- const { isToolbarEnabled, isDefaultEditingMode } = useSelect(
19
- ( select ) => {
20
- const {
21
- getBlockEditingMode,
22
- getBlockName,
23
- getBlockSelectionStart,
24
- } = select( blockEditorStore );
17
+ const { isToolbarEnabled, isBlockDisabled } = useSelect( ( select ) => {
18
+ const { getBlockEditingMode, getBlockName, getBlockSelectionStart } =
19
+ select( blockEditorStore );
25
20
 
26
- // we only care about the 1st selected block
27
- // for the toolbar, so we use getBlockSelectionStart
28
- // instead of getSelectedBlockClientIds
29
- const selectedBlockClientId = getBlockSelectionStart();
21
+ // we only care about the 1st selected block
22
+ // for the toolbar, so we use getBlockSelectionStart
23
+ // instead of getSelectedBlockClientIds
24
+ const selectedBlockClientId = getBlockSelectionStart();
30
25
 
31
- const blockType =
32
- selectedBlockClientId &&
33
- getBlockType( getBlockName( selectedBlockClientId ) );
26
+ const blockType =
27
+ selectedBlockClientId &&
28
+ getBlockType( getBlockName( selectedBlockClientId ) );
34
29
 
35
- return {
36
- isToolbarEnabled:
37
- blockType &&
38
- hasBlockSupport( blockType, '__experimentalToolbar', true ),
39
- isDefaultEditingMode:
40
- getBlockEditingMode( selectedBlockClientId ) === 'default',
41
- };
42
- },
43
- []
44
- );
30
+ return {
31
+ isToolbarEnabled:
32
+ blockType &&
33
+ hasBlockSupport( blockType, '__experimentalToolbar', true ),
34
+ isBlockDisabled:
35
+ getBlockEditingMode( selectedBlockClientId ) === 'disabled',
36
+ };
37
+ }, [] );
45
38
 
46
- const hasAnyBlockControls = useHasAnyBlockControls();
47
-
48
- if (
49
- ! isToolbarEnabled ||
50
- ( ! isDefaultEditingMode && ! hasAnyBlockControls )
51
- ) {
39
+ if ( ! isToolbarEnabled || isBlockDisabled ) {
52
40
  return false;
53
41
  }
54
42