@wordpress/block-editor 12.13.0 → 12.14.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 (344) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-heading-level-dropdown/index.js +1 -1
  3. package/build/components/block-heading-level-dropdown/index.js.map +1 -1
  4. package/build/components/block-list/index.js +2 -9
  5. package/build/components/block-list/index.js.map +1 -1
  6. package/build/components/block-list-appender/index.js +16 -3
  7. package/build/components/block-list-appender/index.js.map +1 -1
  8. package/build/components/block-quick-navigation/index.js +6 -4
  9. package/build/components/block-quick-navigation/index.js.map +1 -1
  10. package/build/components/block-styles/index.js +0 -8
  11. package/build/components/block-styles/index.js.map +1 -1
  12. package/build/components/block-switcher/pattern-transformations-menu.js +18 -14
  13. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  14. package/build/components/block-tools/back-compat.js +2 -2
  15. package/build/components/block-tools/back-compat.js.map +1 -1
  16. package/build/components/block-tools/block-contextual-toolbar.js +11 -81
  17. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  18. package/build/components/block-tools/empty-block-inserter.js +56 -0
  19. package/build/components/block-tools/empty-block-inserter.js.map +1 -0
  20. package/build/components/block-tools/index.js +48 -9
  21. package/build/components/block-tools/index.js.map +1 -1
  22. package/build/components/block-tools/selected-block-tools.js +113 -0
  23. package/build/components/block-tools/selected-block-tools.js.map +1 -0
  24. package/build/components/block-tools/use-selected-block-tool-props.js +56 -0
  25. package/build/components/block-tools/use-selected-block-tool-props.js.map +1 -0
  26. package/build/components/editable-text/index.js +1 -2
  27. package/build/components/editable-text/index.js.map +1 -1
  28. package/build/components/iframe/index.js +4 -3
  29. package/build/components/iframe/index.js.map +1 -1
  30. package/build/components/inserter/block-patterns-explorer/{explorer.js → index.js} +7 -7
  31. package/build/components/inserter/block-patterns-explorer/index.js.map +1 -0
  32. package/build/components/inserter/block-patterns-explorer/{sidebar.js → pattern-explorer-sidebar.js} +1 -1
  33. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -0
  34. package/build/components/inserter/block-patterns-explorer/{patterns-list.js → pattern-list.js} +4 -4
  35. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -0
  36. package/build/components/inserter/block-patterns-tab/index.js +75 -0
  37. package/build/components/inserter/block-patterns-tab/index.js.map +1 -0
  38. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +48 -0
  39. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -0
  40. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +108 -0
  41. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -0
  42. package/build/components/inserter/{block-patterns-filter.js → block-patterns-tab/patterns-filter.js} +18 -34
  43. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -0
  44. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +55 -0
  45. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -0
  46. package/build/components/inserter/block-patterns-tab/utils.js +70 -0
  47. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -0
  48. package/build/components/inserter/media-tab/media-list.js +9 -5
  49. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  50. package/build/components/inserter/media-tab/media-preview.js +15 -12
  51. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  52. package/build/components/inserter/menu.js +3 -4
  53. package/build/components/inserter/menu.js.map +1 -1
  54. package/build/components/link-control/index.js +6 -5
  55. package/build/components/link-control/index.js.map +1 -1
  56. package/build/components/list-view/block-select-button.js +39 -0
  57. package/build/components/list-view/block-select-button.js.map +1 -1
  58. package/build/components/list-view/block.js +16 -3
  59. package/build/components/list-view/block.js.map +1 -1
  60. package/build/components/list-view/index.js +3 -2
  61. package/build/components/list-view/index.js.map +1 -1
  62. package/build/components/navigable-toolbar/index.js +69 -18
  63. package/build/components/navigable-toolbar/index.js.map +1 -1
  64. package/build/components/provider/use-block-sync.js +1 -14
  65. package/build/components/provider/use-block-sync.js.map +1 -1
  66. package/build/components/rich-text/index.js +0 -1
  67. package/build/components/rich-text/index.js.map +1 -1
  68. package/build/components/rich-text/index.native.js +3 -1
  69. package/build/components/rich-text/index.native.js.map +1 -1
  70. package/build/components/rich-text/native/format-edit.js +45 -0
  71. package/build/components/rich-text/native/format-edit.js.map +1 -0
  72. package/build/components/rich-text/native/get-format-colors.native.js +41 -0
  73. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -0
  74. package/build/components/rich-text/native/index.js +9 -0
  75. package/build/components/rich-text/native/index.js.map +1 -0
  76. package/build/components/rich-text/native/index.native.js +1158 -0
  77. package/build/components/rich-text/native/index.native.js.map +1 -0
  78. package/build/components/rich-text/native/toolbar-button-with-options.native.js +58 -0
  79. package/build/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -0
  80. package/build/components/rich-text/native/use-format-types.js +111 -0
  81. package/build/components/rich-text/native/use-format-types.js.map +1 -0
  82. package/build/components/rich-text/use-paste-handler.js +2 -5
  83. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  84. package/build/components/url-popover/image-url-input-ui.js +2 -1
  85. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  86. package/build/components/writing-flow/use-tab-nav.js +7 -3
  87. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  88. package/build/hooks/align.js +10 -10
  89. package/build/hooks/align.js.map +1 -1
  90. package/build/hooks/align.native.js +2 -2
  91. package/build/hooks/align.native.js.map +1 -1
  92. package/build/hooks/anchor.js +7 -6
  93. package/build/hooks/anchor.js.map +1 -1
  94. package/build/hooks/background.js +16 -4
  95. package/build/hooks/background.js.map +1 -1
  96. package/build/hooks/block-hooks.js +7 -8
  97. package/build/hooks/block-hooks.js.map +1 -1
  98. package/build/hooks/block-rename-ui.js +7 -5
  99. package/build/hooks/block-rename-ui.js.map +1 -1
  100. package/build/hooks/content-lock-ui.js +5 -5
  101. package/build/hooks/content-lock-ui.js.map +1 -1
  102. package/build/hooks/custom-class-name.js +8 -7
  103. package/build/hooks/custom-class-name.js.map +1 -1
  104. package/build/hooks/custom-fields.js +4 -4
  105. package/build/hooks/custom-fields.js.map +1 -1
  106. package/build/hooks/duotone.js +9 -20
  107. package/build/hooks/duotone.js.map +1 -1
  108. package/build/hooks/layout.js +90 -86
  109. package/build/hooks/layout.js.map +1 -1
  110. package/build/hooks/position.js +10 -9
  111. package/build/hooks/position.js.map +1 -1
  112. package/build/hooks/style.js +10 -13
  113. package/build/hooks/style.js.map +1 -1
  114. package/build/hooks/utils.js +30 -0
  115. package/build/hooks/utils.js.map +1 -1
  116. package/build/private-apis.js +3 -0
  117. package/build/private-apis.js.map +1 -1
  118. package/build/store/actions.js +30 -37
  119. package/build/store/actions.js.map +1 -1
  120. package/build/store/reducer.js +18 -0
  121. package/build/store/reducer.js.map +1 -1
  122. package/build/store/selectors.js +16 -13
  123. package/build/store/selectors.js.map +1 -1
  124. package/build-module/components/block-heading-level-dropdown/index.js +1 -1
  125. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
  126. package/build-module/components/block-list/index.js +3 -10
  127. package/build-module/components/block-list/index.js.map +1 -1
  128. package/build-module/components/block-list-appender/index.js +16 -3
  129. package/build-module/components/block-list-appender/index.js.map +1 -1
  130. package/build-module/components/block-quick-navigation/index.js +7 -5
  131. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  132. package/build-module/components/block-styles/index.js +0 -8
  133. package/build-module/components/block-styles/index.js.map +1 -1
  134. package/build-module/components/block-switcher/pattern-transformations-menu.js +17 -13
  135. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  136. package/build-module/components/block-tools/back-compat.js +1 -1
  137. package/build-module/components/block-tools/back-compat.js.map +1 -1
  138. package/build-module/components/block-tools/block-contextual-toolbar.js +11 -80
  139. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  140. package/build-module/components/block-tools/empty-block-inserter.js +48 -0
  141. package/build-module/components/block-tools/empty-block-inserter.js.map +1 -0
  142. package/build-module/components/block-tools/index.js +48 -9
  143. package/build-module/components/block-tools/index.js.map +1 -1
  144. package/build-module/components/block-tools/selected-block-tools.js +105 -0
  145. package/build-module/components/block-tools/selected-block-tools.js.map +1 -0
  146. package/build-module/components/block-tools/use-selected-block-tool-props.js +50 -0
  147. package/build-module/components/block-tools/use-selected-block-tool-props.js.map +1 -0
  148. package/build-module/components/editable-text/index.js +1 -2
  149. package/build-module/components/editable-text/index.js.map +1 -1
  150. package/build-module/components/iframe/index.js +4 -3
  151. package/build-module/components/iframe/index.js.map +1 -1
  152. package/build-module/components/inserter/block-patterns-explorer/{explorer.js → index.js} +5 -5
  153. package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -0
  154. package/build-module/components/inserter/block-patterns-explorer/{sidebar.js → pattern-explorer-sidebar.js} +1 -1
  155. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -0
  156. package/build-module/components/inserter/block-patterns-explorer/{patterns-list.js → pattern-list.js} +2 -2
  157. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -0
  158. package/build-module/components/inserter/block-patterns-tab/index.js +66 -0
  159. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -0
  160. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +42 -0
  161. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -0
  162. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +100 -0
  163. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -0
  164. package/build-module/components/inserter/{block-patterns-filter.js → block-patterns-tab/patterns-filter.js} +7 -20
  165. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -0
  166. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +47 -0
  167. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -0
  168. package/build-module/components/inserter/block-patterns-tab/utils.js +58 -0
  169. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -0
  170. package/build-module/components/inserter/media-tab/media-list.js +9 -5
  171. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  172. package/build-module/components/inserter/media-tab/media-preview.js +15 -12
  173. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  174. package/build-module/components/inserter/menu.js +4 -3
  175. package/build-module/components/inserter/menu.js.map +1 -1
  176. package/build-module/components/link-control/index.js +7 -6
  177. package/build-module/components/link-control/index.js.map +1 -1
  178. package/build-module/components/list-view/block-select-button.js +39 -0
  179. package/build-module/components/list-view/block-select-button.js.map +1 -1
  180. package/build-module/components/list-view/block.js +16 -3
  181. package/build-module/components/list-view/block.js.map +1 -1
  182. package/build-module/components/list-view/index.js +3 -2
  183. package/build-module/components/list-view/index.js.map +1 -1
  184. package/build-module/components/navigable-toolbar/index.js +69 -17
  185. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  186. package/build-module/components/provider/use-block-sync.js +1 -14
  187. package/build-module/components/provider/use-block-sync.js.map +1 -1
  188. package/build-module/components/rich-text/index.js +0 -1
  189. package/build-module/components/rich-text/index.js.map +1 -1
  190. package/build-module/components/rich-text/index.native.js +3 -1
  191. package/build-module/components/rich-text/index.native.js.map +1 -1
  192. package/build-module/components/rich-text/native/format-edit.js +38 -0
  193. package/build-module/components/rich-text/native/format-edit.js.map +1 -0
  194. package/build-module/components/rich-text/native/get-format-colors.native.js +34 -0
  195. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -0
  196. package/build-module/components/rich-text/native/index.js +2 -0
  197. package/build-module/components/rich-text/native/index.js.map +1 -0
  198. package/build-module/components/rich-text/native/index.native.js +1148 -0
  199. package/build-module/components/rich-text/native/index.native.js.map +1 -0
  200. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js +51 -0
  201. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -0
  202. package/build-module/components/rich-text/native/use-format-types.js +104 -0
  203. package/build-module/components/rich-text/native/use-format-types.js.map +1 -0
  204. package/build-module/components/rich-text/use-paste-handler.js +2 -5
  205. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  206. package/build-module/components/url-popover/image-url-input-ui.js +2 -1
  207. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  208. package/build-module/components/writing-flow/use-tab-nav.js +7 -3
  209. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  210. package/build-module/hooks/align.js +8 -8
  211. package/build-module/hooks/align.js.map +1 -1
  212. package/build-module/hooks/align.native.js +2 -2
  213. package/build-module/hooks/align.native.js.map +1 -1
  214. package/build-module/hooks/anchor.js +5 -4
  215. package/build-module/hooks/anchor.js.map +1 -1
  216. package/build-module/hooks/background.js +17 -5
  217. package/build-module/hooks/background.js.map +1 -1
  218. package/build-module/hooks/block-hooks.js +5 -6
  219. package/build-module/hooks/block-hooks.js.map +1 -1
  220. package/build-module/hooks/block-rename-ui.js +5 -3
  221. package/build-module/hooks/block-rename-ui.js.map +1 -1
  222. package/build-module/hooks/content-lock-ui.js +3 -3
  223. package/build-module/hooks/content-lock-ui.js.map +1 -1
  224. package/build-module/hooks/custom-class-name.js +6 -5
  225. package/build-module/hooks/custom-class-name.js.map +1 -1
  226. package/build-module/hooks/custom-fields.js +4 -4
  227. package/build-module/hooks/custom-fields.js.map +1 -1
  228. package/build-module/hooks/duotone.js +10 -21
  229. package/build-module/hooks/duotone.js.map +1 -1
  230. package/build-module/hooks/layout.js +90 -86
  231. package/build-module/hooks/layout.js.map +1 -1
  232. package/build-module/hooks/position.js +11 -10
  233. package/build-module/hooks/position.js.map +1 -1
  234. package/build-module/hooks/style.js +10 -13
  235. package/build-module/hooks/style.js.map +1 -1
  236. package/build-module/hooks/utils.js +30 -1
  237. package/build-module/hooks/utils.js.map +1 -1
  238. package/build-module/private-apis.js +4 -1
  239. package/build-module/private-apis.js.map +1 -1
  240. package/build-module/store/actions.js +29 -37
  241. package/build-module/store/actions.js.map +1 -1
  242. package/build-module/store/reducer.js +17 -0
  243. package/build-module/store/reducer.js.map +1 -1
  244. package/build-module/store/selectors.js +15 -13
  245. package/build-module/store/selectors.js.map +1 -1
  246. package/build-style/style-rtl.css +16 -15
  247. package/build-style/style.css +16 -15
  248. package/package.json +31 -31
  249. package/src/components/block-heading-level-dropdown/index.js +1 -1
  250. package/src/components/block-list/index.js +4 -18
  251. package/src/components/block-list-appender/index.js +20 -4
  252. package/src/components/block-quick-navigation/index.js +11 -5
  253. package/src/components/block-styles/index.js +0 -10
  254. package/src/components/block-switcher/pattern-transformations-menu.js +20 -14
  255. package/src/components/block-toolbar/style.scss +8 -0
  256. package/src/components/block-tools/back-compat.js +1 -1
  257. package/src/components/block-tools/block-contextual-toolbar.js +11 -134
  258. package/src/components/block-tools/empty-block-inserter.js +56 -0
  259. package/src/components/block-tools/index.js +72 -16
  260. package/src/components/block-tools/selected-block-tools.js +127 -0
  261. package/src/components/block-tools/style.scss +0 -10
  262. package/src/components/block-tools/use-selected-block-tool-props.js +66 -0
  263. package/src/components/editable-text/index.js +1 -8
  264. package/src/components/iframe/index.js +4 -3
  265. package/src/components/inserter/block-patterns-explorer/{explorer.js → index.js} +4 -4
  266. package/src/components/inserter/block-patterns-explorer/{patterns-list.js → pattern-list.js} +4 -1
  267. package/src/components/inserter/block-patterns-tab/index.js +118 -0
  268. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +48 -0
  269. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +175 -0
  270. package/src/components/inserter/{block-patterns-filter.js → block-patterns-tab/patterns-filter.js} +15 -21
  271. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +96 -0
  272. package/src/components/inserter/block-patterns-tab/utils.js +76 -0
  273. package/src/components/inserter/media-tab/media-list.js +7 -7
  274. package/src/components/inserter/media-tab/media-preview.js +27 -22
  275. package/src/components/inserter/menu.js +4 -5
  276. package/src/components/link-control/README.md +2 -2
  277. package/src/components/link-control/index.js +15 -6
  278. package/src/components/link-control/style.scss +8 -5
  279. package/src/components/list-view/block-select-button.js +44 -1
  280. package/src/components/list-view/block.js +11 -11
  281. package/src/components/list-view/index.js +2 -0
  282. package/src/components/media-replace-flow/style.scss +2 -2
  283. package/src/components/navigable-toolbar/index.js +71 -25
  284. package/src/components/plain-text/README.md +3 -3
  285. package/src/components/provider/use-block-sync.js +2 -21
  286. package/src/components/rich-text/README.md +9 -8
  287. package/src/components/rich-text/index.js +0 -1
  288. package/src/components/rich-text/index.native.js +3 -1
  289. package/src/components/rich-text/native/format-edit.js +44 -0
  290. package/src/components/rich-text/native/get-format-colors.native.js +54 -0
  291. package/src/components/rich-text/native/index.js +1 -0
  292. package/src/components/rich-text/native/index.native.js +1363 -0
  293. package/src/components/rich-text/native/style.native.scss +28 -0
  294. package/src/components/rich-text/native/test/__snapshots__/index.native.js.snap +79 -0
  295. package/src/components/rich-text/native/test/index.native.js +278 -0
  296. package/src/components/rich-text/native/test/performance/rich-text.native.js +44 -0
  297. package/src/components/rich-text/native/toolbar-button-with-options.native.js +61 -0
  298. package/src/components/rich-text/native/use-format-types.js +146 -0
  299. package/src/components/rich-text/use-paste-handler.js +1 -6
  300. package/src/components/url-popover/image-url-input-ui.js +1 -0
  301. package/src/components/writing-flow/use-tab-nav.js +8 -3
  302. package/src/hooks/align.js +8 -8
  303. package/src/hooks/align.native.js +2 -2
  304. package/src/hooks/anchor.js +21 -23
  305. package/src/hooks/background.js +28 -6
  306. package/src/hooks/block-hooks.js +20 -16
  307. package/src/hooks/block-rename-ui.js +6 -4
  308. package/src/hooks/content-lock-ui.js +3 -3
  309. package/src/hooks/custom-class-name.js +7 -6
  310. package/src/hooks/custom-fields.js +5 -5
  311. package/src/hooks/duotone.js +23 -33
  312. package/src/hooks/layout.js +114 -105
  313. package/src/hooks/position.js +8 -21
  314. package/src/hooks/style.js +17 -31
  315. package/src/hooks/test/align.js +4 -4
  316. package/src/hooks/utils.js +33 -1
  317. package/src/private-apis.js +4 -1
  318. package/src/store/actions.js +26 -72
  319. package/src/store/reducer.js +19 -0
  320. package/src/store/selectors.js +13 -19
  321. package/build/components/block-tools/selected-block-popover.js +0 -221
  322. package/build/components/block-tools/selected-block-popover.js.map +0 -1
  323. package/build/components/inserter/block-patterns-explorer/explorer.js.map +0 -1
  324. package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +0 -1
  325. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +0 -1
  326. package/build/components/inserter/block-patterns-filter.js.map +0 -1
  327. package/build/components/inserter/block-patterns-tab.js +0 -270
  328. package/build/components/inserter/block-patterns-tab.js.map +0 -1
  329. package/build/store/utils.js +0 -22
  330. package/build/store/utils.js.map +0 -1
  331. package/build-module/components/block-tools/selected-block-popover.js +0 -213
  332. package/build-module/components/block-tools/selected-block-popover.js.map +0 -1
  333. package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +0 -1
  334. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +0 -1
  335. package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +0 -1
  336. package/build-module/components/inserter/block-patterns-filter.js.map +0 -1
  337. package/build-module/components/inserter/block-patterns-tab.js +0 -254
  338. package/build-module/components/inserter/block-patterns-tab.js.map +0 -1
  339. package/build-module/store/utils.js +0 -16
  340. package/build-module/store/utils.js.map +0 -1
  341. package/src/components/block-tools/selected-block-popover.js +0 -265
  342. package/src/components/inserter/block-patterns-tab.js +0 -448
  343. package/src/store/utils.js +0 -12
  344. /package/src/components/inserter/block-patterns-explorer/{sidebar.js → pattern-explorer-sidebar.js} +0 -0
@@ -290,14 +290,6 @@
290
290
  .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar {
291
291
  border-left-color: #e0e0e0;
292
292
  }
293
- .block-editor-block-contextual-toolbar.is-collapsed::after {
294
- content: "";
295
- position: absolute;
296
- right: 100%;
297
- width: 48px;
298
- height: 100%;
299
- background: linear-gradient(to left, #fff, transparent);
300
- }
301
293
  @media (min-width: 782px) {
302
294
  .block-editor-block-contextual-toolbar.is-fixed > .block-editor-block-toolbar {
303
295
  flex-grow: initial;
@@ -1890,6 +1882,9 @@
1890
1882
  .block-editor-link-control__field {
1891
1883
  margin: 16px;
1892
1884
  }
1885
+ .block-editor-link-control__field .components-base-control__label {
1886
+ color: #1e1e1e;
1887
+ }
1893
1888
  .block-editor-link-control__field input[type=text], .block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input {
1894
1889
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
1895
1890
  padding: 6px 8px;
@@ -1954,12 +1949,7 @@
1954
1949
  }
1955
1950
 
1956
1951
  .block-editor-link-control__search-actions {
1957
- display: flex;
1958
- flex-direction: row-reverse;
1959
- justify-content: flex-start;
1960
- gap: 8px;
1961
1952
  padding: 8px 16px 16px;
1962
- order: 20;
1963
1953
  }
1964
1954
 
1965
1955
  .block-editor-link-control__search-results-wrapper {
@@ -2224,6 +2214,9 @@
2224
2214
  .block-editor-link-control__setting .components-base-control__field {
2225
2215
  display: flex;
2226
2216
  }
2217
+ .block-editor-link-control__setting .components-base-control__field .components-checkbox-control__label {
2218
+ color: #1e1e1e;
2219
+ }
2227
2220
  .block-editor-link-control__setting input {
2228
2221
  margin-right: 0;
2229
2222
  }
@@ -2704,6 +2697,7 @@
2704
2697
  .block-editor-media-flow__url-input.has-siblings {
2705
2698
  border-top: 1px solid #1e1e1e;
2706
2699
  margin-top: 8px;
2700
+ padding-bottom: 8px;
2707
2701
  }
2708
2702
  .block-editor-media-flow__url-input .block-editor-media-replace-flow__image-url-label {
2709
2703
  display: block;
@@ -2735,8 +2729,7 @@
2735
2729
  width: 100%;
2736
2730
  }
2737
2731
  .block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-actions {
2738
- top: 0;
2739
- left: 4px;
2732
+ padding: 8px 0 0;
2740
2733
  }
2741
2734
 
2742
2735
  .block-editor-media-flow__error {
@@ -3425,6 +3418,14 @@
3425
3418
  border-left: none;
3426
3419
  }
3427
3420
 
3421
+ .block-editor-block-contextual-toolbar.is-fixed {
3422
+ position: sticky;
3423
+ top: 0;
3424
+ z-index: 31;
3425
+ display: block;
3426
+ width: 100%;
3427
+ }
3428
+
3428
3429
  @media (min-width: 782px) {
3429
3430
  .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group,
3430
3431
  .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar {
@@ -290,14 +290,6 @@
290
290
  .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar {
291
291
  border-right-color: #e0e0e0;
292
292
  }
293
- .block-editor-block-contextual-toolbar.is-collapsed::after {
294
- content: "";
295
- position: absolute;
296
- left: 100%;
297
- width: 48px;
298
- height: 100%;
299
- background: linear-gradient(to right, #fff, transparent);
300
- }
301
293
  @media (min-width: 782px) {
302
294
  .block-editor-block-contextual-toolbar.is-fixed > .block-editor-block-toolbar {
303
295
  flex-grow: initial;
@@ -1891,6 +1883,9 @@
1891
1883
  .block-editor-link-control__field {
1892
1884
  margin: 16px;
1893
1885
  }
1886
+ .block-editor-link-control__field .components-base-control__label {
1887
+ color: #1e1e1e;
1888
+ }
1894
1889
  .block-editor-link-control__field input[type=text], .block-editor-link-control__field.block-editor-url-input input[type=text].block-editor-url-input__input {
1895
1890
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
1896
1891
  padding: 6px 8px;
@@ -1955,12 +1950,7 @@
1955
1950
  }
1956
1951
 
1957
1952
  .block-editor-link-control__search-actions {
1958
- display: flex;
1959
- flex-direction: row-reverse;
1960
- justify-content: flex-start;
1961
- gap: 8px;
1962
1953
  padding: 8px 16px 16px;
1963
- order: 20;
1964
1954
  }
1965
1955
 
1966
1956
  .block-editor-link-control__search-results-wrapper {
@@ -2225,6 +2215,9 @@
2225
2215
  .block-editor-link-control__setting .components-base-control__field {
2226
2216
  display: flex;
2227
2217
  }
2218
+ .block-editor-link-control__setting .components-base-control__field .components-checkbox-control__label {
2219
+ color: #1e1e1e;
2220
+ }
2228
2221
  .block-editor-link-control__setting input {
2229
2222
  margin-left: 0;
2230
2223
  }
@@ -2705,6 +2698,7 @@
2705
2698
  .block-editor-media-flow__url-input.has-siblings {
2706
2699
  border-top: 1px solid #1e1e1e;
2707
2700
  margin-top: 8px;
2701
+ padding-bottom: 8px;
2708
2702
  }
2709
2703
  .block-editor-media-flow__url-input .block-editor-media-replace-flow__image-url-label {
2710
2704
  display: block;
@@ -2736,8 +2730,7 @@
2736
2730
  width: 100%;
2737
2731
  }
2738
2732
  .block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-actions {
2739
- top: 0;
2740
- right: 4px;
2733
+ padding: 8px 0 0;
2741
2734
  }
2742
2735
 
2743
2736
  .block-editor-media-flow__error {
@@ -3426,6 +3419,14 @@
3426
3419
  border-right: none;
3427
3420
  }
3428
3421
 
3422
+ .block-editor-block-contextual-toolbar.is-fixed {
3423
+ position: sticky;
3424
+ top: 0;
3425
+ z-index: 31;
3426
+ display: block;
3427
+ width: 100%;
3428
+ }
3429
+
3429
3430
  @media (min-width: 782px) {
3430
3431
  .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar-group,
3431
3432
  .block-editor-block-contextual-toolbar.is-fixed .block-editor-block-toolbar .components-toolbar {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-editor",
3
- "version": "12.13.0",
3
+ "version": "12.14.0",
4
4
  "description": "Generic block editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -35,35 +35,35 @@
35
35
  "@emotion/react": "^11.7.1",
36
36
  "@emotion/styled": "^11.6.0",
37
37
  "@react-spring/web": "^9.4.5",
38
- "@wordpress/a11y": "^3.45.0",
39
- "@wordpress/api-fetch": "^6.42.0",
40
- "@wordpress/blob": "^3.45.0",
41
- "@wordpress/blocks": "^12.22.0",
42
- "@wordpress/commands": "^0.16.0",
43
- "@wordpress/components": "^25.11.0",
44
- "@wordpress/compose": "^6.22.0",
45
- "@wordpress/data": "^9.15.0",
46
- "@wordpress/date": "^4.45.0",
47
- "@wordpress/deprecated": "^3.45.0",
48
- "@wordpress/dom": "^3.45.0",
49
- "@wordpress/element": "^5.22.0",
50
- "@wordpress/escape-html": "^2.45.0",
51
- "@wordpress/hooks": "^3.45.0",
52
- "@wordpress/html-entities": "^3.45.0",
53
- "@wordpress/i18n": "^4.45.0",
54
- "@wordpress/icons": "^9.36.0",
55
- "@wordpress/is-shallow-equal": "^4.45.0",
56
- "@wordpress/keyboard-shortcuts": "^4.22.0",
57
- "@wordpress/keycodes": "^3.45.0",
58
- "@wordpress/notices": "^4.13.0",
59
- "@wordpress/preferences": "^3.22.0",
60
- "@wordpress/private-apis": "^0.27.0",
61
- "@wordpress/rich-text": "^6.22.0",
62
- "@wordpress/style-engine": "^1.28.0",
63
- "@wordpress/token-list": "^2.45.0",
64
- "@wordpress/url": "^3.46.0",
65
- "@wordpress/warning": "^2.45.0",
66
- "@wordpress/wordcount": "^3.45.0",
38
+ "@wordpress/a11y": "^3.46.0",
39
+ "@wordpress/api-fetch": "^6.43.0",
40
+ "@wordpress/blob": "^3.46.0",
41
+ "@wordpress/blocks": "^12.23.0",
42
+ "@wordpress/commands": "^0.17.0",
43
+ "@wordpress/components": "^25.12.0",
44
+ "@wordpress/compose": "^6.23.0",
45
+ "@wordpress/data": "^9.16.0",
46
+ "@wordpress/date": "^4.46.0",
47
+ "@wordpress/deprecated": "^3.46.0",
48
+ "@wordpress/dom": "^3.46.0",
49
+ "@wordpress/element": "^5.23.0",
50
+ "@wordpress/escape-html": "^2.46.0",
51
+ "@wordpress/hooks": "^3.46.0",
52
+ "@wordpress/html-entities": "^3.46.0",
53
+ "@wordpress/i18n": "^4.46.0",
54
+ "@wordpress/icons": "^9.37.0",
55
+ "@wordpress/is-shallow-equal": "^4.46.0",
56
+ "@wordpress/keyboard-shortcuts": "^4.23.0",
57
+ "@wordpress/keycodes": "^3.46.0",
58
+ "@wordpress/notices": "^4.14.0",
59
+ "@wordpress/preferences": "^3.23.0",
60
+ "@wordpress/private-apis": "^0.28.0",
61
+ "@wordpress/rich-text": "^6.23.0",
62
+ "@wordpress/style-engine": "^1.29.0",
63
+ "@wordpress/token-list": "^2.46.0",
64
+ "@wordpress/url": "^3.47.0",
65
+ "@wordpress/warning": "^2.46.0",
66
+ "@wordpress/wordcount": "^3.46.0",
67
67
  "change-case": "^4.1.2",
68
68
  "classnames": "^2.3.1",
69
69
  "colord": "^2.7.0",
@@ -87,5 +87,5 @@
87
87
  "publishConfig": {
88
88
  "access": "public"
89
89
  },
90
- "gitHead": "2a00e87b57b9c27ed2b9b0fd8d423ef3cada72c1"
90
+ "gitHead": "839018ff6029ba749780e288e08ff9cd898e50e8"
91
91
  }
@@ -56,7 +56,7 @@ export default function HeadingLevelDropdown( {
56
56
  isPressed={ isActive }
57
57
  />
58
58
  ),
59
- label:
59
+ title:
60
60
  targetLevel === 0
61
61
  ? __( 'Paragraph' )
62
62
  : sprintf(
@@ -17,12 +17,7 @@ import {
17
17
  useMergeRefs,
18
18
  useDebounce,
19
19
  } from '@wordpress/compose';
20
- import {
21
- createContext,
22
- useState,
23
- useMemo,
24
- useCallback,
25
- } from '@wordpress/element';
20
+ import { createContext, useMemo, useCallback } from '@wordpress/element';
26
21
 
27
22
  /**
28
23
  * Internal dependencies
@@ -40,13 +35,10 @@ import {
40
35
  } from '../block-edit/context';
41
36
  import { useTypingObserver } from '../observe-typing';
42
37
 
43
- const elementContext = createContext();
44
-
45
38
  export const IntersectionObserver = createContext();
46
39
  const pendingBlockVisibilityUpdatesPerRegistry = new WeakMap();
47
40
 
48
41
  function Root( { className, ...settings } ) {
49
- const [ element, setElement ] = useState();
50
42
  const isLargeViewport = useViewportMatch( 'medium' );
51
43
  const { isOutlineMode, isFocusMode, editorMode } = useSelect(
52
44
  ( select ) => {
@@ -115,13 +107,9 @@ function Root( { className, ...settings } ) {
115
107
  settings
116
108
  );
117
109
  return (
118
- <elementContext.Provider value={ element }>
119
- <IntersectionObserver.Provider value={ intersectionObserver }>
120
- <div { ...innerBlocksProps } />
121
- { /* Ensure element and layout styles are always at the end of the document */ }
122
- <div ref={ setElement } />
123
- </IntersectionObserver.Provider>
124
- </elementContext.Provider>
110
+ <IntersectionObserver.Provider value={ intersectionObserver }>
111
+ <div { ...innerBlocksProps } />
112
+ </IntersectionObserver.Provider>
125
113
  );
126
114
  }
127
115
 
@@ -133,8 +121,6 @@ export default function BlockList( settings ) {
133
121
  );
134
122
  }
135
123
 
136
- BlockList.__unstableElementContext = elementContext;
137
-
138
124
  function Items( {
139
125
  placeholder,
140
126
  rootClientId,
@@ -49,10 +49,6 @@ function useAppender( rootClientId, CustomAppender ) {
49
49
  getBlockEditingMode,
50
50
  } = select( blockEditorStore );
51
51
 
52
- if ( CustomAppender === false ) {
53
- return false;
54
- }
55
-
56
52
  if ( ! CustomAppender ) {
57
53
  const selectedBlockClientId = getSelectedBlockClientId();
58
54
  const isParentSelected =
@@ -92,6 +88,26 @@ function BlockListAppender( {
92
88
  renderAppender,
93
89
  className,
94
90
  tagName: TagName = 'div',
91
+ } ) {
92
+ if ( renderAppender === false ) {
93
+ return null;
94
+ }
95
+
96
+ return (
97
+ <BlockListAppenderInner
98
+ rootClientId={ rootClientId }
99
+ renderAppender={ renderAppender }
100
+ className={ className }
101
+ tagName={ TagName }
102
+ />
103
+ );
104
+ }
105
+
106
+ function BlockListAppenderInner( {
107
+ rootClientId,
108
+ renderAppender,
109
+ className,
110
+ tagName: TagName,
95
111
  } ) {
96
112
  const appender = useAppender( rootClientId, renderAppender );
97
113
  const isDragOver = useSelect(
@@ -5,7 +5,9 @@ import { useSelect, useDispatch } from '@wordpress/data';
5
5
  import {
6
6
  Button,
7
7
  __experimentalVStack as VStack,
8
- __experimentalHStack as HStack,
8
+ __experimentalTruncate as Truncate,
9
+ Flex,
10
+ FlexBlock,
9
11
  FlexItem,
10
12
  } from '@wordpress/components';
11
13
  import {
@@ -72,10 +74,14 @@ function BlockQuickNavigationItem( { clientId } ) {
72
74
  isPressed={ isSelected }
73
75
  onClick={ () => selectBlock( clientId ) }
74
76
  >
75
- <HStack justify="flex-start">
76
- <BlockIcon icon={ icon } />
77
- <FlexItem>{ name }</FlexItem>
78
- </HStack>
77
+ <Flex>
78
+ <FlexItem>
79
+ <BlockIcon icon={ icon } />
80
+ </FlexItem>
81
+ <FlexBlock style={ { textAlign: 'left' } }>
82
+ <Truncate>{ name }</Truncate>
83
+ </FlexBlock>
84
+ </Flex>
79
85
  </Button>
80
86
  );
81
87
  }
@@ -13,7 +13,6 @@ import {
13
13
  __experimentalTruncate as Truncate,
14
14
  Popover,
15
15
  } from '@wordpress/components';
16
- import deprecated from '@wordpress/deprecated';
17
16
 
18
17
  /**
19
18
  * Internal dependencies
@@ -120,12 +119,3 @@ function BlockStyles( { clientId, onSwitch = noop, onHoverClassName = noop } ) {
120
119
  }
121
120
 
122
121
  export default BlockStyles;
123
-
124
- BlockStyles.Slot = () => {
125
- deprecated( 'BlockStyles.Slot', {
126
- version: '6.4',
127
- since: '6.2',
128
- } );
129
-
130
- return null;
131
- };
@@ -11,9 +11,7 @@ import {
11
11
  MenuItem,
12
12
  Popover,
13
13
  VisuallyHidden,
14
- __unstableComposite as Composite,
15
- __unstableUseCompositeState as useCompositeState,
16
- __unstableCompositeItem as CompositeItem,
14
+ privateApis as componentsPrivateApis,
17
15
  } from '@wordpress/components';
18
16
 
19
17
  /**
@@ -21,6 +19,13 @@ import {
21
19
  */
22
20
  import BlockPreview from '../block-preview';
23
21
  import useTransformedPatterns from './use-transformed-patterns';
22
+ import { unlock } from '../../lock-unlock';
23
+
24
+ const {
25
+ CompositeV2: Composite,
26
+ CompositeItemV2: CompositeItem,
27
+ useCompositeStoreV2: useCompositeStore,
28
+ } = unlock( componentsPrivateApis );
24
29
 
25
30
  function PatternTransformationsMenu( {
26
31
  blocks,
@@ -73,10 +78,10 @@ function PreviewPatternsPopover( { patterns, onSelect } ) {
73
78
  }
74
79
 
75
80
  function BlockPatternsList( { patterns, onSelect } ) {
76
- const composite = useCompositeState();
81
+ const composite = useCompositeStore();
77
82
  return (
78
83
  <Composite
79
- { ...composite }
84
+ store={ composite }
80
85
  role="listbox"
81
86
  className="block-editor-block-switcher__preview-patterns-container"
82
87
  aria-label={ __( 'Patterns list' ) }
@@ -86,14 +91,13 @@ function BlockPatternsList( { patterns, onSelect } ) {
86
91
  key={ pattern.name }
87
92
  pattern={ pattern }
88
93
  onSelect={ onSelect }
89
- composite={ composite }
90
94
  />
91
95
  ) ) }
92
96
  </Composite>
93
97
  );
94
98
  }
95
99
 
96
- function BlockPattern( { pattern, onSelect, composite } ) {
100
+ function BlockPattern( { pattern, onSelect } ) {
97
101
  // TODO check pattern/preview width...
98
102
  const baseClassName =
99
103
  'block-editor-block-switcher__preview-patterns-container';
@@ -104,14 +108,16 @@ function BlockPattern( { pattern, onSelect, composite } ) {
104
108
  return (
105
109
  <div className={ `${ baseClassName }-list__list-item` }>
106
110
  <CompositeItem
107
- role="option"
108
- as="div"
109
- { ...composite }
110
- aria-label={ pattern.title }
111
- aria-describedby={
112
- pattern.description ? descriptionId : undefined
111
+ render={
112
+ <div
113
+ role="option"
114
+ aria-label={ pattern.title }
115
+ aria-describedby={
116
+ pattern.description ? descriptionId : undefined
117
+ }
118
+ className={ `${ baseClassName }-list__item` }
119
+ />
113
120
  }
114
- className={ `${ baseClassName }-list__item` }
115
121
  onClick={ () => onSelect( pattern.transformedBlocks ) }
116
122
  >
117
123
  <BlockPreview
@@ -56,6 +56,14 @@
56
56
  }
57
57
  }
58
58
 
59
+ .block-editor-block-contextual-toolbar.is-fixed {
60
+ position: sticky;
61
+ top: 0;
62
+ z-index: z-index(".block-editor-block-popover");
63
+ display: block;
64
+ width: 100%;
65
+ }
66
+
59
67
  // on desktop browsers the fixed toolbar has tweaked borders
60
68
  @include break-medium() {
61
69
  .block-editor-block-contextual-toolbar.is-fixed {
@@ -9,7 +9,7 @@ import deprecated from '@wordpress/deprecated';
9
9
  * Internal dependencies
10
10
  */
11
11
  import InsertionPoint, { InsertionPointOpenRef } from './insertion-point';
12
- import BlockPopover from './selected-block-popover';
12
+ import BlockPopover from './selected-block-tools';
13
13
 
14
14
  export default function BlockToolsBackCompat( { children } ) {
15
15
  const openRef = useContext( InsertionPointOpenRef );
@@ -7,21 +7,8 @@ import classnames from 'classnames';
7
7
  * WordPress dependencies
8
8
  */
9
9
  import { __ } from '@wordpress/i18n';
10
- import {
11
- useLayoutEffect,
12
- useEffect,
13
- useRef,
14
- useState,
15
- } from '@wordpress/element';
16
10
  import { hasBlockSupport, store as blocksStore } from '@wordpress/blocks';
17
11
  import { useSelect } from '@wordpress/data';
18
- import {
19
- ToolbarItem,
20
- ToolbarButton,
21
- ToolbarGroup,
22
- } from '@wordpress/components';
23
- import { next, previous } from '@wordpress/icons';
24
- import { useViewportMatch } from '@wordpress/compose';
25
12
 
26
13
  /**
27
14
  * Internal dependencies
@@ -31,12 +18,11 @@ import BlockToolbar from '../block-toolbar';
31
18
  import { store as blockEditorStore } from '../../store';
32
19
  import { useHasAnyBlockControls } from '../block-controls/use-has-block-controls';
33
20
 
34
- function BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {
35
- // When the toolbar is fixed it can be collapsed
36
- const [ isCollapsed, setIsCollapsed ] = useState( false );
37
- const toolbarButtonRef = useRef();
38
-
39
- const isLargeViewport = useViewportMatch( 'medium' );
21
+ export default function BlockContextualToolbar( {
22
+ focusOnMount,
23
+ isFixed,
24
+ ...props
25
+ } ) {
40
26
  const {
41
27
  blockType,
42
28
  blockEditingMode,
@@ -78,94 +64,8 @@ function BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {
78
64
  };
79
65
  }, [] );
80
66
 
81
- useEffect( () => {
82
- setIsCollapsed( false );
83
- }, [ selectedBlockClientId ] );
84
-
85
- const isLargerThanTabletViewport = useViewportMatch( 'large', '>=' );
86
- const isFullscreen =
87
- document.body.classList.contains( 'is-fullscreen-mode' );
88
-
89
- /**
90
- * The following code is a workaround to fix the width of the toolbar
91
- * it should be removed when the toolbar will be rendered inline
92
- * FIXME: remove this layout effect when the toolbar is no longer
93
- * absolutely positioned
94
- */
95
- useLayoutEffect( () => {
96
- // don't do anything if not fixed toolbar
97
- if ( ! isFixed ) {
98
- return;
99
- }
100
-
101
- const blockToolbar = document.querySelector(
102
- '.block-editor-block-contextual-toolbar'
103
- );
104
-
105
- if ( ! blockToolbar ) {
106
- return;
107
- }
108
-
109
- if ( ! blockType ) {
110
- blockToolbar.style.width = 'initial';
111
- return;
112
- }
113
-
114
- if ( ! isLargerThanTabletViewport ) {
115
- // set the width of the toolbar to auto
116
- blockToolbar.style = {};
117
- return;
118
- }
119
-
120
- if ( isCollapsed ) {
121
- // set the width of the toolbar to auto
122
- blockToolbar.style.width = 'auto';
123
- return;
124
- }
125
-
126
- // get the width of the pinned items in the post editor or widget editor
127
- const pinnedItems = document.querySelector(
128
- '.edit-post-header__settings, .edit-widgets-header__actions'
129
- );
130
- // get the width of the left header in the site editor
131
- const leftHeader = document.querySelector(
132
- '.edit-site-header-edit-mode__end'
133
- );
134
-
135
- const computedToolbarStyle = window.getComputedStyle( blockToolbar );
136
- const computedPinnedItemsStyle = pinnedItems
137
- ? window.getComputedStyle( pinnedItems )
138
- : false;
139
- const computedLeftHeaderStyle = leftHeader
140
- ? window.getComputedStyle( leftHeader )
141
- : false;
142
-
143
- const marginLeft = parseFloat( computedToolbarStyle.marginLeft );
144
- const pinnedItemsWidth = computedPinnedItemsStyle
145
- ? parseFloat( computedPinnedItemsStyle.width )
146
- : 0;
147
- const leftHeaderWidth = computedLeftHeaderStyle
148
- ? parseFloat( computedLeftHeaderStyle.width )
149
- : 0;
150
-
151
- // set the new witdth of the toolbar
152
- blockToolbar.style.width = `calc(100% - ${
153
- leftHeaderWidth +
154
- pinnedItemsWidth +
155
- marginLeft +
156
- ( pinnedItems || leftHeader ? 2 : 0 ) + // Prevents button focus border from being cut off
157
- ( isFullscreen ? 0 : 160 ) // the width of the admin sidebar expanded
158
- }px)`;
159
- }, [
160
- isFixed,
161
- isLargerThanTabletViewport,
162
- isCollapsed,
163
- isFullscreen,
164
- blockType,
165
- ] );
166
-
167
67
  const isToolbarEnabled =
168
- ! blockType ||
68
+ blockType &&
169
69
  hasBlockSupport( blockType, '__experimentalToolbar', true );
170
70
  const hasAnyBlockControls = useHasAnyBlockControls();
171
71
  if (
@@ -179,45 +79,22 @@ function BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {
179
79
  const classes = classnames( 'block-editor-block-contextual-toolbar', {
180
80
  'has-parent': hasParents && showParentSelector,
181
81
  'is-fixed': isFixed,
182
- 'is-collapsed': isCollapsed,
183
82
  } );
184
83
 
185
84
  return (
186
85
  <NavigableToolbar
187
86
  focusOnMount={ focusOnMount }
87
+ focusEditorOnEscape
188
88
  className={ classes }
189
89
  /* translators: accessibility text for the block toolbar */
190
90
  aria-label={ __( 'Block tools' ) }
191
91
  variant={ isFixed ? 'unstyled' : undefined }
92
+ // Resets the index whenever the active block changes so
93
+ // this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169
94
+ key={ selectedBlockClientId }
192
95
  { ...props }
193
96
  >
194
- { ! isCollapsed && <BlockToolbar hideDragHandle={ isFixed } /> }
195
- { isFixed && isLargeViewport && blockType && (
196
- <ToolbarGroup
197
- className={
198
- isCollapsed
199
- ? 'block-editor-block-toolbar__group-expand-fixed-toolbar'
200
- : 'block-editor-block-toolbar__group-collapse-fixed-toolbar'
201
- }
202
- >
203
- <ToolbarItem
204
- as={ ToolbarButton }
205
- ref={ toolbarButtonRef }
206
- icon={ isCollapsed ? next : previous }
207
- onClick={ () => {
208
- setIsCollapsed( ( collapsed ) => ! collapsed );
209
- toolbarButtonRef.current.focus();
210
- } }
211
- label={
212
- isCollapsed
213
- ? __( 'Show block tools' )
214
- : __( 'Hide block tools' )
215
- }
216
- />
217
- </ToolbarGroup>
218
- ) }
97
+ <BlockToolbar hideDragHandle={ isFixed } />
219
98
  </NavigableToolbar>
220
99
  );
221
100
  }
222
-
223
- export default BlockContextualToolbar;