@wordpress/block-editor 14.1.0 → 14.2.1-next.1f6eadc42.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 (705) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -10
  3. package/build/components/block-alignment-matrix-control/index.js +2 -2
  4. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  5. package/build/components/block-breadcrumb/index.js +2 -2
  6. package/build/components/block-breadcrumb/index.js.map +1 -1
  7. package/build/components/block-canvas/index.js +8 -1
  8. package/build/components/block-canvas/index.js.map +1 -1
  9. package/build/components/block-compare/block-view.js +1 -0
  10. package/build/components/block-compare/block-view.js.map +1 -1
  11. package/build/components/block-draggable/index.js +4 -4
  12. package/build/components/block-draggable/index.js.map +1 -1
  13. package/build/components/block-draggable/use-scroll-when-dragging.js +25 -25
  14. package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  15. package/build/components/block-edit/multiple-usage-warning.js +2 -0
  16. package/build/components/block-edit/multiple-usage-warning.js.map +1 -1
  17. package/build/components/block-inspector/index.js +27 -11
  18. package/build/components/block-inspector/index.js.map +1 -1
  19. package/build/components/block-list/block-invalid-warning.js +3 -2
  20. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  21. package/build/components/block-list/block.js +5 -1
  22. package/build/components/block-list/block.js.map +1 -1
  23. package/build/components/block-list/index.js +14 -3
  24. package/build/components/block-list/index.js.map +1 -1
  25. package/build/components/block-list/use-block-props/index.js +5 -1
  26. package/build/components/block-list/use-block-props/index.js.map +1 -1
  27. package/build/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  28. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  29. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +53 -0
  30. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
  31. package/build/components/block-list/zoom-out-separator.js +98 -0
  32. package/build/components/block-list/zoom-out-separator.js.map +1 -0
  33. package/build/components/block-lock/toolbar.js +3 -3
  34. package/build/components/block-lock/toolbar.js.map +1 -1
  35. package/build/components/block-mover/button.js +1 -0
  36. package/build/components/block-mover/button.js.map +1 -1
  37. package/build/components/block-mover/index.js +1 -0
  38. package/build/components/block-mover/index.js.map +1 -1
  39. package/build/components/block-navigation/dropdown.js +4 -1
  40. package/build/components/block-navigation/dropdown.js.map +1 -1
  41. package/build/components/block-pattern-setup/index.js +2 -10
  42. package/build/components/block-pattern-setup/index.js.map +1 -1
  43. package/build/components/block-pattern-setup/setup-toolbar.js +22 -7
  44. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  45. package/build/components/block-patterns-list/index.js +12 -20
  46. package/build/components/block-patterns-list/index.js.map +1 -1
  47. package/build/components/block-patterns-paging/index.js +12 -3
  48. package/build/components/block-patterns-paging/index.js.map +1 -1
  49. package/build/components/block-popover/index.js +2 -15
  50. package/build/components/block-popover/index.js.map +1 -1
  51. package/build/components/block-quick-navigation/index.js +4 -1
  52. package/build/components/block-quick-navigation/index.js.map +1 -1
  53. package/build/components/block-settings-menu-controls/index.js +4 -0
  54. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  55. package/build/components/block-switcher/index.js +30 -19
  56. package/build/components/block-switcher/index.js.map +1 -1
  57. package/build/components/block-switcher/pattern-transformations-menu.js +2 -10
  58. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  59. package/build/components/block-toolbar/index.js +19 -12
  60. package/build/components/block-toolbar/index.js.map +1 -1
  61. package/build/components/block-toolbar/shuffle.js +6 -2
  62. package/build/components/block-toolbar/shuffle.js.map +1 -1
  63. package/build/components/block-tools/block-selection-button.js +8 -2
  64. package/build/components/block-tools/block-selection-button.js.map +1 -1
  65. package/build/components/block-tools/block-toolbar-popover.js +10 -6
  66. package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
  67. package/build/components/block-tools/index.js +1 -1
  68. package/build/components/block-tools/index.js.map +1 -1
  69. package/build/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  70. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  71. package/build/components/block-tools/zoom-out-mode-inserters.js +7 -21
  72. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  73. package/build/components/block-tools/zoom-out-popover.js +3 -4
  74. package/build/components/block-tools/zoom-out-popover.js.map +1 -1
  75. package/build/components/block-tools/zoom-out-toolbar.js +26 -7
  76. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  77. package/build/components/block-variation-picker/index.js +4 -1
  78. package/build/components/block-variation-picker/index.js.map +1 -1
  79. package/build/components/block-variation-transforms/index.js +4 -1
  80. package/build/components/block-variation-transforms/index.js.map +1 -1
  81. package/build/components/button-block-appender/index.js +20 -23
  82. package/build/components/button-block-appender/index.js.map +1 -1
  83. package/build/components/colors-gradients/dropdown.js +4 -1
  84. package/build/components/colors-gradients/dropdown.js.map +1 -1
  85. package/build/components/content-lock/index.js +13 -0
  86. package/build/components/content-lock/index.js.map +1 -0
  87. package/build/components/content-lock/modify-content-lock-menu-item.js +64 -0
  88. package/build/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
  89. package/build/components/editor-styles/index.js +4 -3
  90. package/build/components/editor-styles/index.js.map +1 -1
  91. package/build/components/global-styles/background-panel.js +8 -12
  92. package/build/components/global-styles/background-panel.js.map +1 -1
  93. package/build/components/global-styles/color-panel.js +8 -5
  94. package/build/components/global-styles/color-panel.js.map +1 -1
  95. package/build/components/global-styles/color-panel.native.js +1 -1
  96. package/build/components/global-styles/color-panel.native.js.map +1 -1
  97. package/build/components/global-styles/dimensions-panel.js +34 -37
  98. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  99. package/build/components/global-styles/filters-panel.js +4 -1
  100. package/build/components/global-styles/filters-panel.js.map +1 -1
  101. package/build/components/global-styles/shadow-panel-components.js +14 -17
  102. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  103. package/build/components/global-styles/typography-utils.js +17 -6
  104. package/build/components/global-styles/typography-utils.js.map +1 -1
  105. package/build/components/global-styles/utils.js +4 -6
  106. package/build/components/global-styles/utils.js.map +1 -1
  107. package/build/components/grid/grid-item-movers.js +2 -2
  108. package/build/components/grid/grid-item-movers.js.map +1 -1
  109. package/build/components/grid/grid-item-resizer.js +2 -2
  110. package/build/components/grid/grid-item-resizer.js.map +1 -1
  111. package/build/components/iframe/get-compatibility-styles.js +1 -1
  112. package/build/components/iframe/get-compatibility-styles.js.map +1 -1
  113. package/build/components/iframe/index.js +5 -5
  114. package/build/components/iframe/index.js.map +1 -1
  115. package/build/components/inner-blocks/index.js +2 -4
  116. package/build/components/inner-blocks/index.js.map +1 -1
  117. package/build/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  118. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  119. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
  120. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  121. package/build/components/inserter/block-patterns-tab/index.js +4 -1
  122. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  123. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +23 -13
  124. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  125. package/build/components/inserter/index.js +4 -11
  126. package/build/components/inserter/index.js.map +1 -1
  127. package/build/components/inserter/library.js +2 -4
  128. package/build/components/inserter/library.js.map +1 -1
  129. package/build/components/inserter/media-tab/hooks.js +3 -3
  130. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  131. package/build/components/inserter/media-tab/media-list.js +1 -8
  132. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  133. package/build/components/inserter/media-tab/media-preview.js +9 -7
  134. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  135. package/build/components/inserter/media-tab/media-tab.js +4 -1
  136. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  137. package/build/components/inserter/menu.js +7 -24
  138. package/build/components/inserter/menu.js.map +1 -1
  139. package/build/components/inserter/quick-inserter.js +4 -5
  140. package/build/components/inserter/quick-inserter.js.map +1 -1
  141. package/build/components/inserter-list-item/index.js +4 -4
  142. package/build/components/inserter-list-item/index.js.map +1 -1
  143. package/build/components/inserter-listbox/index.js +3 -13
  144. package/build/components/inserter-listbox/index.js.map +1 -1
  145. package/build/components/inserter-listbox/item.js +6 -11
  146. package/build/components/inserter-listbox/item.js.map +1 -1
  147. package/build/components/inserter-listbox/row.js +1 -9
  148. package/build/components/inserter-listbox/row.js.map +1 -1
  149. package/build/components/inspector-controls/groups.js +2 -0
  150. package/build/components/inspector-controls/groups.js.map +1 -1
  151. package/build/components/inspector-controls-tabs/index.js +4 -1
  152. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  153. package/build/components/inspector-controls-tabs/settings-tab.js +3 -1
  154. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  155. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
  156. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  157. package/build/components/inspector-popover-header/index.js +8 -2
  158. package/build/components/inspector-popover-header/index.js.map +1 -1
  159. package/build/components/letter-spacing-control/index.js +7 -4
  160. package/build/components/letter-spacing-control/index.js.map +1 -1
  161. package/build/components/link-control/index.js +19 -10
  162. package/build/components/link-control/index.js.map +1 -1
  163. package/build/components/link-control/settings-drawer.js +4 -1
  164. package/build/components/link-control/settings-drawer.js.map +1 -1
  165. package/build/components/list-view/block-select-button.js +4 -1
  166. package/build/components/list-view/block-select-button.js.map +1 -1
  167. package/build/components/list-view/index.js +3 -7
  168. package/build/components/list-view/index.js.map +1 -1
  169. package/build/components/media-placeholder/index.js +32 -11
  170. package/build/components/media-placeholder/index.js.map +1 -1
  171. package/build/components/media-replace-flow/index.js +8 -1
  172. package/build/components/media-replace-flow/index.js.map +1 -1
  173. package/build/components/provider/use-block-sync.js +19 -19
  174. package/build/components/provider/use-block-sync.js.map +1 -1
  175. package/build/components/rich-text/event-listeners/paste-handler.js +12 -1
  176. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  177. package/build/components/rich-text/index.js +38 -30
  178. package/build/components/rich-text/index.js.map +1 -1
  179. package/build/components/rich-text/use-mark-persistent.js +5 -5
  180. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  181. package/build/components/skip-to-selected-block/index.js +4 -1
  182. package/build/components/skip-to-selected-block/index.js.map +1 -1
  183. package/build/components/spacing-sizes-control/index.js +8 -9
  184. package/build/components/spacing-sizes-control/index.js.map +1 -1
  185. package/build/components/spacing-sizes-control/linked-button.js +35 -0
  186. package/build/components/spacing-sizes-control/linked-button.js.map +1 -0
  187. package/build/components/spacing-sizes-control/utils.js +4 -15
  188. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  189. package/build/components/tool-selector/index.js +4 -1
  190. package/build/components/tool-selector/index.js.map +1 -1
  191. package/build/components/url-input/button.js +12 -3
  192. package/build/components/url-input/button.js.map +1 -1
  193. package/build/components/url-input/index.js +4 -1
  194. package/build/components/url-input/index.js.map +1 -1
  195. package/build/components/use-block-drop-zone/index.js +31 -7
  196. package/build/components/use-block-drop-zone/index.js.map +1 -1
  197. package/build/components/writing-flow/index.js +2 -1
  198. package/build/components/writing-flow/index.js.map +1 -1
  199. package/build/components/writing-flow/use-arrow-nav.js +4 -1
  200. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  201. package/build/components/writing-flow/use-event-redirect.js +66 -0
  202. package/build/components/writing-flow/use-event-redirect.js.map +1 -0
  203. package/build/components/writing-flow/use-input.js +31 -1
  204. package/build/components/writing-flow/use-input.js.map +1 -1
  205. package/build/components/writing-flow/use-select-all.js +14 -1
  206. package/build/components/writing-flow/use-select-all.js.map +1 -1
  207. package/build/components/writing-flow/use-selection-observer.js +20 -6
  208. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  209. package/build/components/writing-flow/use-tab-nav.js +4 -4
  210. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  211. package/build/components/writing-flow/utils.js +27 -0
  212. package/build/components/writing-flow/utils.js.map +1 -1
  213. package/build/hooks/block-bindings.js +33 -29
  214. package/build/hooks/block-bindings.js.map +1 -1
  215. package/build/hooks/content-lock-ui.js +8 -26
  216. package/build/hooks/content-lock-ui.js.map +1 -1
  217. package/build/hooks/duotone.js +0 -4
  218. package/build/hooks/duotone.js.map +1 -1
  219. package/build/hooks/layout.js +4 -2
  220. package/build/hooks/layout.js.map +1 -1
  221. package/build/hooks/spacing-visualizer.js +3 -3
  222. package/build/hooks/spacing-visualizer.js.map +1 -1
  223. package/build/hooks/style.js +1 -5
  224. package/build/hooks/style.js.map +1 -1
  225. package/build/hooks/use-bindings-attributes.js +19 -20
  226. package/build/hooks/use-bindings-attributes.js.map +1 -1
  227. package/build/hooks/use-zoom-out.js +7 -7
  228. package/build/hooks/use-zoom-out.js.map +1 -1
  229. package/build/layouts/constrained.js +41 -42
  230. package/build/layouts/constrained.js.map +1 -1
  231. package/build/layouts/flex.js +4 -1
  232. package/build/layouts/flex.js.map +1 -1
  233. package/build/layouts/grid.js +19 -16
  234. package/build/layouts/grid.js.map +1 -1
  235. package/build/layouts/utils.js +1 -7
  236. package/build/layouts/utils.js.map +1 -1
  237. package/build/private-apis.js +2 -3
  238. package/build/private-apis.js.map +1 -1
  239. package/build/store/actions.js +2 -7
  240. package/build/store/actions.js.map +1 -1
  241. package/build/store/private-actions.js +1 -0
  242. package/build/store/private-actions.js.map +1 -1
  243. package/build/store/private-keys.js +2 -1
  244. package/build/store/private-keys.js.map +1 -1
  245. package/build/store/private-selectors.js +16 -18
  246. package/build/store/private-selectors.js.map +1 -1
  247. package/build/store/reducer.js +1 -10
  248. package/build/store/reducer.js.map +1 -1
  249. package/build/store/selectors.js +19 -43
  250. package/build/store/selectors.js.map +1 -1
  251. package/build/store/utils.js +48 -0
  252. package/build/store/utils.js.map +1 -1
  253. package/build/utils/block-bindings.js +16 -11
  254. package/build/utils/block-bindings.js.map +1 -1
  255. package/build/utils/dom.js +101 -0
  256. package/build/utils/dom.js.map +1 -1
  257. package/build/utils/get-font-styles-and-weights.js +4 -4
  258. package/build/utils/get-font-styles-and-weights.js.map +1 -1
  259. package/build/utils/transform-styles/index.js +120 -16
  260. package/build/utils/transform-styles/index.js.map +1 -1
  261. package/build-module/components/block-alignment-matrix-control/index.js +1 -1
  262. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  263. package/build-module/components/block-breadcrumb/index.js +2 -2
  264. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  265. package/build-module/components/block-canvas/index.js +9 -1
  266. package/build-module/components/block-canvas/index.js.map +1 -1
  267. package/build-module/components/block-compare/block-view.js +1 -0
  268. package/build-module/components/block-compare/block-view.js.map +1 -1
  269. package/build-module/components/block-draggable/index.js +4 -4
  270. package/build-module/components/block-draggable/index.js.map +1 -1
  271. package/build-module/components/block-draggable/use-scroll-when-dragging.js +25 -25
  272. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  273. package/build-module/components/block-edit/multiple-usage-warning.js +2 -0
  274. package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -1
  275. package/build-module/components/block-inspector/index.js +27 -11
  276. package/build-module/components/block-inspector/index.js.map +1 -1
  277. package/build-module/components/block-list/block-invalid-warning.js +3 -2
  278. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  279. package/build-module/components/block-list/block.js +5 -1
  280. package/build-module/components/block-list/block.js.map +1 -1
  281. package/build-module/components/block-list/index.js +14 -3
  282. package/build-module/components/block-list/index.js.map +1 -1
  283. package/build-module/components/block-list/use-block-props/index.js +5 -1
  284. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  285. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  286. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  287. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +47 -0
  288. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
  289. package/build-module/components/block-list/zoom-out-separator.js +90 -0
  290. package/build-module/components/block-list/zoom-out-separator.js.map +1 -0
  291. package/build-module/components/block-lock/toolbar.js +3 -3
  292. package/build-module/components/block-lock/toolbar.js.map +1 -1
  293. package/build-module/components/block-mover/button.js +1 -0
  294. package/build-module/components/block-mover/button.js.map +1 -1
  295. package/build-module/components/block-mover/index.js +1 -0
  296. package/build-module/components/block-mover/index.js.map +1 -1
  297. package/build-module/components/block-navigation/dropdown.js +4 -1
  298. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  299. package/build-module/components/block-pattern-setup/index.js +2 -10
  300. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  301. package/build-module/components/block-pattern-setup/setup-toolbar.js +23 -8
  302. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  303. package/build-module/components/block-patterns-list/index.js +12 -20
  304. package/build-module/components/block-patterns-list/index.js.map +1 -1
  305. package/build-module/components/block-patterns-paging/index.js +12 -3
  306. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  307. package/build-module/components/block-popover/index.js +2 -15
  308. package/build-module/components/block-popover/index.js.map +1 -1
  309. package/build-module/components/block-quick-navigation/index.js +4 -1
  310. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  311. package/build-module/components/block-settings-menu-controls/index.js +4 -0
  312. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  313. package/build-module/components/block-switcher/index.js +30 -19
  314. package/build-module/components/block-switcher/index.js.map +1 -1
  315. package/build-module/components/block-switcher/pattern-transformations-menu.js +2 -10
  316. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  317. package/build-module/components/block-toolbar/index.js +19 -12
  318. package/build-module/components/block-toolbar/index.js.map +1 -1
  319. package/build-module/components/block-toolbar/shuffle.js +6 -2
  320. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  321. package/build-module/components/block-tools/block-selection-button.js +8 -2
  322. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  323. package/build-module/components/block-tools/block-toolbar-popover.js +10 -6
  324. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
  325. package/build-module/components/block-tools/index.js +1 -1
  326. package/build-module/components/block-tools/index.js.map +1 -1
  327. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  328. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  329. package/build-module/components/block-tools/zoom-out-mode-inserters.js +7 -22
  330. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  331. package/build-module/components/block-tools/zoom-out-popover.js +3 -4
  332. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -1
  333. package/build-module/components/block-tools/zoom-out-toolbar.js +27 -8
  334. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  335. package/build-module/components/block-variation-picker/index.js +4 -1
  336. package/build-module/components/block-variation-picker/index.js.map +1 -1
  337. package/build-module/components/block-variation-transforms/index.js +4 -1
  338. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  339. package/build-module/components/button-block-appender/index.js +22 -26
  340. package/build-module/components/button-block-appender/index.js.map +1 -1
  341. package/build-module/components/colors-gradients/dropdown.js +4 -1
  342. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  343. package/build-module/components/content-lock/index.js +2 -0
  344. package/build-module/components/content-lock/index.js.map +1 -0
  345. package/build-module/components/content-lock/modify-content-lock-menu-item.js +57 -0
  346. package/build-module/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
  347. package/build-module/components/editor-styles/index.js +4 -3
  348. package/build-module/components/editor-styles/index.js.map +1 -1
  349. package/build-module/components/global-styles/background-panel.js +8 -12
  350. package/build-module/components/global-styles/background-panel.js.map +1 -1
  351. package/build-module/components/global-styles/color-panel.js +7 -4
  352. package/build-module/components/global-styles/color-panel.js.map +1 -1
  353. package/build-module/components/global-styles/color-panel.native.js +2 -2
  354. package/build-module/components/global-styles/color-panel.native.js.map +1 -1
  355. package/build-module/components/global-styles/dimensions-panel.js +36 -39
  356. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  357. package/build-module/components/global-styles/filters-panel.js +4 -1
  358. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  359. package/build-module/components/global-styles/shadow-panel-components.js +14 -17
  360. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  361. package/build-module/components/global-styles/typography-utils.js +17 -6
  362. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  363. package/build-module/components/global-styles/utils.js +4 -6
  364. package/build-module/components/global-styles/utils.js.map +1 -1
  365. package/build-module/components/grid/grid-item-movers.js +3 -3
  366. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  367. package/build-module/components/grid/grid-item-resizer.js +2 -2
  368. package/build-module/components/grid/grid-item-resizer.js.map +1 -1
  369. package/build-module/components/iframe/get-compatibility-styles.js +1 -1
  370. package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
  371. package/build-module/components/iframe/index.js +5 -5
  372. package/build-module/components/iframe/index.js.map +1 -1
  373. package/build-module/components/inner-blocks/index.js +2 -4
  374. package/build-module/components/inner-blocks/index.js.map +1 -1
  375. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  376. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  377. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
  378. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  379. package/build-module/components/inserter/block-patterns-tab/index.js +4 -1
  380. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  381. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +23 -13
  382. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  383. package/build-module/components/inserter/index.js +4 -11
  384. package/build-module/components/inserter/index.js.map +1 -1
  385. package/build-module/components/inserter/library.js +2 -4
  386. package/build-module/components/inserter/library.js.map +1 -1
  387. package/build-module/components/inserter/media-tab/hooks.js +3 -3
  388. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  389. package/build-module/components/inserter/media-tab/media-list.js +1 -8
  390. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  391. package/build-module/components/inserter/media-tab/media-preview.js +10 -8
  392. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  393. package/build-module/components/inserter/media-tab/media-tab.js +4 -1
  394. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  395. package/build-module/components/inserter/menu.js +7 -24
  396. package/build-module/components/inserter/menu.js.map +1 -1
  397. package/build-module/components/inserter/quick-inserter.js +5 -6
  398. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  399. package/build-module/components/inserter-list-item/index.js +4 -4
  400. package/build-module/components/inserter-list-item/index.js.map +1 -1
  401. package/build-module/components/inserter-listbox/index.js +3 -11
  402. package/build-module/components/inserter-listbox/index.js.map +1 -1
  403. package/build-module/components/inserter-listbox/item.js +7 -12
  404. package/build-module/components/inserter-listbox/item.js.map +1 -1
  405. package/build-module/components/inserter-listbox/row.js +2 -10
  406. package/build-module/components/inserter-listbox/row.js.map +1 -1
  407. package/build-module/components/inspector-controls/groups.js +2 -0
  408. package/build-module/components/inspector-controls/groups.js.map +1 -1
  409. package/build-module/components/inspector-controls-tabs/index.js +4 -1
  410. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  411. package/build-module/components/inspector-controls-tabs/settings-tab.js +3 -1
  412. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  413. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
  414. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  415. package/build-module/components/inspector-popover-header/index.js +8 -2
  416. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  417. package/build-module/components/letter-spacing-control/index.js +7 -4
  418. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  419. package/build-module/components/link-control/index.js +19 -10
  420. package/build-module/components/link-control/index.js.map +1 -1
  421. package/build-module/components/link-control/settings-drawer.js +4 -1
  422. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  423. package/build-module/components/list-view/block-select-button.js +4 -1
  424. package/build-module/components/list-view/block-select-button.js.map +1 -1
  425. package/build-module/components/list-view/index.js +3 -7
  426. package/build-module/components/list-view/index.js.map +1 -1
  427. package/build-module/components/media-placeholder/index.js +32 -11
  428. package/build-module/components/media-placeholder/index.js.map +1 -1
  429. package/build-module/components/media-replace-flow/index.js +8 -1
  430. package/build-module/components/media-replace-flow/index.js.map +1 -1
  431. package/build-module/components/provider/use-block-sync.js +19 -19
  432. package/build-module/components/provider/use-block-sync.js.map +1 -1
  433. package/build-module/components/rich-text/event-listeners/paste-handler.js +12 -1
  434. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  435. package/build-module/components/rich-text/index.js +39 -31
  436. package/build-module/components/rich-text/index.js.map +1 -1
  437. package/build-module/components/rich-text/use-mark-persistent.js +5 -5
  438. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  439. package/build-module/components/skip-to-selected-block/index.js +4 -1
  440. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  441. package/build-module/components/spacing-sizes-control/index.js +9 -10
  442. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  443. package/build-module/components/spacing-sizes-control/linked-button.js +28 -0
  444. package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -0
  445. package/build-module/components/spacing-sizes-control/utils.js +4 -15
  446. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  447. package/build-module/components/tool-selector/index.js +4 -1
  448. package/build-module/components/tool-selector/index.js.map +1 -1
  449. package/build-module/components/url-input/button.js +12 -3
  450. package/build-module/components/url-input/button.js.map +1 -1
  451. package/build-module/components/url-input/index.js +4 -1
  452. package/build-module/components/url-input/index.js.map +1 -1
  453. package/build-module/components/use-block-drop-zone/index.js +31 -7
  454. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  455. package/build-module/components/writing-flow/index.js +2 -1
  456. package/build-module/components/writing-flow/index.js.map +1 -1
  457. package/build-module/components/writing-flow/use-arrow-nav.js +4 -1
  458. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  459. package/build-module/components/writing-flow/use-event-redirect.js +60 -0
  460. package/build-module/components/writing-flow/use-event-redirect.js.map +1 -0
  461. package/build-module/components/writing-flow/use-input.js +31 -1
  462. package/build-module/components/writing-flow/use-input.js.map +1 -1
  463. package/build-module/components/writing-flow/use-select-all.js +14 -1
  464. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  465. package/build-module/components/writing-flow/use-selection-observer.js +16 -2
  466. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  467. package/build-module/components/writing-flow/use-tab-nav.js +4 -4
  468. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  469. package/build-module/components/writing-flow/utils.js +26 -0
  470. package/build-module/components/writing-flow/utils.js.map +1 -1
  471. package/build-module/hooks/block-bindings.js +35 -31
  472. package/build-module/hooks/block-bindings.js.map +1 -1
  473. package/build-module/hooks/content-lock-ui.js +10 -30
  474. package/build-module/hooks/content-lock-ui.js.map +1 -1
  475. package/build-module/hooks/duotone.js +0 -4
  476. package/build-module/hooks/duotone.js.map +1 -1
  477. package/build-module/hooks/layout.js +4 -2
  478. package/build-module/hooks/layout.js.map +1 -1
  479. package/build-module/hooks/spacing-visualizer.js +3 -3
  480. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  481. package/build-module/hooks/style.js +1 -5
  482. package/build-module/hooks/style.js.map +1 -1
  483. package/build-module/hooks/use-bindings-attributes.js +19 -20
  484. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  485. package/build-module/hooks/use-zoom-out.js +7 -7
  486. package/build-module/hooks/use-zoom-out.js.map +1 -1
  487. package/build-module/layouts/constrained.js +44 -45
  488. package/build-module/layouts/constrained.js.map +1 -1
  489. package/build-module/layouts/flex.js +4 -1
  490. package/build-module/layouts/flex.js.map +1 -1
  491. package/build-module/layouts/grid.js +21 -18
  492. package/build-module/layouts/grid.js.map +1 -1
  493. package/build-module/layouts/utils.js +1 -7
  494. package/build-module/layouts/utils.js.map +1 -1
  495. package/build-module/private-apis.js +3 -4
  496. package/build-module/private-apis.js.map +1 -1
  497. package/build-module/store/actions.js +2 -7
  498. package/build-module/store/actions.js.map +1 -1
  499. package/build-module/store/private-actions.js +1 -0
  500. package/build-module/store/private-actions.js.map +1 -1
  501. package/build-module/store/private-keys.js +1 -0
  502. package/build-module/store/private-keys.js.map +1 -1
  503. package/build-module/store/private-selectors.js +15 -18
  504. package/build-module/store/private-selectors.js.map +1 -1
  505. package/build-module/store/reducer.js +1 -9
  506. package/build-module/store/reducer.js.map +1 -1
  507. package/build-module/store/selectors.js +22 -46
  508. package/build-module/store/selectors.js.map +1 -1
  509. package/build-module/store/utils.js +46 -0
  510. package/build-module/store/utils.js.map +1 -1
  511. package/build-module/utils/block-bindings.js +17 -12
  512. package/build-module/utils/block-bindings.js.map +1 -1
  513. package/build-module/utils/dom.js +99 -0
  514. package/build-module/utils/dom.js.map +1 -1
  515. package/build-module/utils/get-font-styles-and-weights.js +4 -4
  516. package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
  517. package/build-module/utils/transform-styles/index.js +120 -16
  518. package/build-module/utils/transform-styles/index.js.map +1 -1
  519. package/build-style/content-rtl.css +19 -11
  520. package/build-style/content.css +19 -11
  521. package/build-style/style-rtl.css +27 -117
  522. package/build-style/style.css +27 -117
  523. package/build-types/utils/dom.d.ts +25 -0
  524. package/build-types/utils/dom.d.ts.map +1 -1
  525. package/package.json +34 -32
  526. package/src/components/block-alignment-matrix-control/index.js +1 -1
  527. package/src/components/block-breadcrumb/index.js +2 -2
  528. package/src/components/block-breadcrumb/style.scss +1 -30
  529. package/src/components/block-canvas/index.js +9 -1
  530. package/src/components/block-compare/block-view.js +6 -1
  531. package/src/components/block-compare/test/__snapshots__/block-view.js.snap +1 -1
  532. package/src/components/block-draggable/content.scss +1 -1
  533. package/src/components/block-draggable/index.js +4 -4
  534. package/src/components/block-draggable/style.scss +1 -1
  535. package/src/components/block-draggable/use-scroll-when-dragging.js +25 -25
  536. package/src/components/block-edit/multiple-usage-warning.js +2 -0
  537. package/src/components/block-inspector/index.js +22 -7
  538. package/src/components/block-inspector/style.scss +2 -4
  539. package/src/components/block-list/block-invalid-warning.js +3 -2
  540. package/src/components/block-list/block.js +6 -2
  541. package/src/components/block-list/content.scss +23 -3
  542. package/src/components/block-list/index.js +59 -38
  543. package/src/components/block-list/use-block-props/index.js +3 -0
  544. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  545. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +56 -0
  546. package/src/components/block-list/zoom-out-separator.js +110 -0
  547. package/src/components/block-lock/style.scss +1 -1
  548. package/src/components/block-lock/toolbar.js +3 -3
  549. package/src/components/block-mover/button.js +1 -0
  550. package/src/components/block-mover/index.js +1 -0
  551. package/src/components/block-mover/style.scss +1 -1
  552. package/src/components/block-navigation/dropdown.js +2 -0
  553. package/src/components/block-pattern-setup/index.js +3 -15
  554. package/src/components/block-pattern-setup/setup-toolbar.js +17 -4
  555. package/src/components/block-pattern-setup/style.scss +2 -2
  556. package/src/components/block-patterns-list/index.js +15 -18
  557. package/src/components/block-patterns-list/style.scss +2 -2
  558. package/src/components/block-patterns-paging/index.js +6 -0
  559. package/src/components/block-popover/index.js +7 -28
  560. package/src/components/block-popover/style.scss +1 -1
  561. package/src/components/block-quick-navigation/index.js +2 -0
  562. package/src/components/block-settings-menu-controls/index.js +7 -1
  563. package/src/components/block-switcher/index.js +45 -23
  564. package/src/components/block-switcher/pattern-transformations-menu.js +3 -12
  565. package/src/components/block-switcher/style.scss +5 -30
  566. package/src/components/block-toolbar/index.js +27 -11
  567. package/src/components/block-toolbar/shuffle.js +9 -7
  568. package/src/components/block-toolbar/style.scss +4 -1
  569. package/src/components/block-tools/block-selection-button.js +4 -0
  570. package/src/components/block-tools/block-toolbar-popover.js +10 -6
  571. package/src/components/block-tools/index.js +1 -1
  572. package/src/components/block-tools/style.scss +3 -4
  573. package/src/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  574. package/src/components/block-tools/zoom-out-mode-inserters.js +2 -17
  575. package/src/components/block-tools/zoom-out-popover.js +3 -7
  576. package/src/components/block-tools/zoom-out-toolbar.js +31 -6
  577. package/src/components/block-variation-picker/README.md +2 -2
  578. package/src/components/block-variation-picker/index.js +6 -1
  579. package/src/components/block-variation-transforms/index.js +2 -0
  580. package/src/components/block-variation-transforms/style.scss +1 -1
  581. package/src/components/button-block-appender/content.scss +0 -1
  582. package/src/components/button-block-appender/index.js +30 -28
  583. package/src/components/color-palette/test/control.js +15 -2
  584. package/src/components/colors-gradients/dropdown.js +5 -1
  585. package/src/components/colors-gradients/style.scss +4 -4
  586. package/src/components/content-lock/index.js +1 -0
  587. package/src/components/content-lock/modify-content-lock-menu-item.js +58 -0
  588. package/src/components/default-block-appender/content.scss +0 -1
  589. package/src/components/editor-styles/index.js +4 -3
  590. package/src/components/global-styles/background-panel.js +6 -14
  591. package/src/components/global-styles/color-panel.js +8 -4
  592. package/src/components/global-styles/color-panel.native.js +2 -2
  593. package/src/components/global-styles/dimensions-panel.js +40 -40
  594. package/src/components/global-styles/filters-panel.js +5 -1
  595. package/src/components/global-styles/shadow-panel-components.js +11 -15
  596. package/src/components/global-styles/style.scss +3 -4
  597. package/src/components/global-styles/test/typography-utils.js +96 -5
  598. package/src/components/global-styles/test/utils.js +10 -0
  599. package/src/components/global-styles/typography-utils.js +22 -6
  600. package/src/components/global-styles/utils.js +4 -6
  601. package/src/components/grid/grid-item-movers.js +3 -3
  602. package/src/components/grid/grid-item-resizer.js +2 -2
  603. package/src/components/grid/style.scss +1 -1
  604. package/src/components/iframe/get-compatibility-styles.js +6 -1
  605. package/src/components/iframe/index.js +5 -5
  606. package/src/components/inner-blocks/index.js +2 -2
  607. package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  608. package/src/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +2 -0
  609. package/src/components/inserter/block-patterns-tab/index.js +2 -0
  610. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +32 -15
  611. package/src/components/inserter/index.js +4 -10
  612. package/src/components/inserter/library.js +0 -2
  613. package/src/components/inserter/media-tab/hooks.js +3 -3
  614. package/src/components/inserter/media-tab/media-list.js +1 -7
  615. package/src/components/inserter/media-tab/media-preview.js +15 -8
  616. package/src/components/inserter/media-tab/media-tab.js +2 -0
  617. package/src/components/inserter/menu.js +15 -29
  618. package/src/components/inserter/quick-inserter.js +3 -4
  619. package/src/components/inserter/style.scss +10 -17
  620. package/src/components/inserter-list-item/index.js +4 -4
  621. package/src/components/inserter-list-item/style.scss +1 -3
  622. package/src/components/inserter-listbox/index.js +2 -11
  623. package/src/components/inserter-listbox/item.js +12 -14
  624. package/src/components/inserter-listbox/row.js +2 -9
  625. package/src/components/inspector-controls/groups.js +2 -0
  626. package/src/components/inspector-controls-tabs/index.js +2 -0
  627. package/src/components/inspector-controls-tabs/settings-tab.js +1 -0
  628. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +5 -2
  629. package/src/components/inspector-popover-header/index.js +4 -0
  630. package/src/components/letter-spacing-control/README.md +8 -1
  631. package/src/components/letter-spacing-control/index.js +7 -4
  632. package/src/components/link-control/index.js +17 -8
  633. package/src/components/link-control/settings-drawer.js +2 -0
  634. package/src/components/link-control/style.scss +1 -3
  635. package/src/components/list-view/block-select-button.js +2 -0
  636. package/src/components/list-view/index.js +3 -8
  637. package/src/components/list-view/style.scss +14 -16
  638. package/src/components/media-placeholder/README.md +2 -2
  639. package/src/components/media-placeholder/index.js +21 -4
  640. package/src/components/media-replace-flow/index.js +12 -1
  641. package/src/components/provider/use-block-sync.js +20 -20
  642. package/src/components/responsive-block-control/README.md +3 -27
  643. package/src/components/rich-text/content.scss +1 -1
  644. package/src/components/rich-text/event-listeners/paste-handler.js +6 -1
  645. package/src/components/rich-text/index.js +54 -41
  646. package/src/components/rich-text/style.scss +1 -1
  647. package/src/components/rich-text/use-mark-persistent.js +5 -5
  648. package/src/components/skip-to-selected-block/index.js +2 -0
  649. package/src/components/spacing-sizes-control/index.js +10 -13
  650. package/src/components/spacing-sizes-control/linked-button.js +32 -0
  651. package/src/components/spacing-sizes-control/style.scss +1 -0
  652. package/src/components/spacing-sizes-control/test/utils.js +14 -15
  653. package/src/components/spacing-sizes-control/utils.js +5 -18
  654. package/src/components/tool-selector/index.js +2 -0
  655. package/src/components/url-input/button.js +6 -0
  656. package/src/components/url-input/index.js +2 -0
  657. package/src/components/url-popover/stories/index.story.js +7 -1
  658. package/src/components/use-block-drop-zone/index.js +37 -5
  659. package/src/components/warning/content.scss +3 -10
  660. package/src/components/writing-flow/index.js +2 -0
  661. package/src/components/writing-flow/use-arrow-nav.js +9 -2
  662. package/src/components/writing-flow/use-event-redirect.js +72 -0
  663. package/src/components/writing-flow/use-input.js +36 -1
  664. package/src/components/writing-flow/use-select-all.js +18 -1
  665. package/src/components/writing-flow/use-selection-observer.js +23 -3
  666. package/src/components/writing-flow/use-tab-nav.js +4 -4
  667. package/src/components/writing-flow/utils.js +30 -0
  668. package/src/hooks/block-bindings.js +42 -43
  669. package/src/hooks/block-bindings.scss +1 -9
  670. package/src/hooks/content-lock-ui.js +11 -36
  671. package/src/hooks/duotone.js +0 -4
  672. package/src/hooks/layout.js +2 -1
  673. package/src/hooks/layout.scss +5 -27
  674. package/src/hooks/spacing-visualizer.js +3 -3
  675. package/src/hooks/style.js +1 -4
  676. package/src/hooks/use-bindings-attributes.js +23 -24
  677. package/src/hooks/use-zoom-out.js +7 -7
  678. package/src/layouts/constrained.js +53 -48
  679. package/src/layouts/flex.js +2 -0
  680. package/src/layouts/grid.js +29 -22
  681. package/src/layouts/test/grid.js +2 -2
  682. package/src/layouts/test/utils.js +6 -8
  683. package/src/layouts/utils.js +1 -9
  684. package/src/private-apis.js +2 -2
  685. package/src/store/actions.js +4 -6
  686. package/src/store/private-actions.js +1 -0
  687. package/src/store/private-keys.js +1 -0
  688. package/src/store/private-selectors.js +18 -14
  689. package/src/store/reducer.js +0 -7
  690. package/src/store/selectors.js +32 -51
  691. package/src/store/utils.js +50 -0
  692. package/src/utils/block-bindings.js +15 -16
  693. package/src/utils/dom.js +117 -0
  694. package/src/utils/get-font-styles-and-weights.js +12 -4
  695. package/src/utils/test/get-font-styles-and-weights.js +148 -0
  696. package/src/utils/test/transform-styles.js +259 -50
  697. package/src/utils/transform-styles/index.js +132 -21
  698. package/tsconfig.json +1 -0
  699. package/tsconfig.tsbuildinfo +1 -1
  700. package/build/components/spacing-sizes-control/sides-dropdown/index.js +0 -86
  701. package/build/components/spacing-sizes-control/sides-dropdown/index.js.map +0 -1
  702. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js +0 -81
  703. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js.map +0 -1
  704. package/src/components/spacing-sizes-control/sides-dropdown/index.js +0 -91
  705. package/src/utils/test/__snapshots__/transform-styles.js.snap +0 -109
@@ -34,7 +34,6 @@ import { useShowHoveredOrFocusedGestures } from './utils';
34
34
  import { store as blockEditorStore } from '../../store';
35
35
  import __unstableBlockNameContext from './block-name-context';
36
36
  import NavigableToolbar from '../navigable-toolbar';
37
- import Shuffle from './shuffle';
38
37
  import { useHasBlockToolbar } from './use-has-block-toolbar';
39
38
 
40
39
  /**
@@ -59,12 +58,15 @@ export function PrivateBlockToolbar( {
59
58
  const {
60
59
  blockClientId,
61
60
  blockClientIds,
61
+ isContentOnlyEditingMode,
62
62
  isDefaultEditingMode,
63
63
  blockType,
64
64
  toolbarKey,
65
65
  shouldShowVisualToolbar,
66
66
  showParentSelector,
67
67
  isUsingBindings,
68
+ hasParentPattern,
69
+ hasContentOnlyLocking,
68
70
  } = useSelect( ( select ) => {
69
71
  const {
70
72
  getBlockName,
@@ -72,19 +74,19 @@ export function PrivateBlockToolbar( {
72
74
  getBlockParents,
73
75
  getSelectedBlockClientIds,
74
76
  isBlockValid,
75
- getBlockRootClientId,
76
77
  getBlockEditingMode,
77
78
  getBlockAttributes,
79
+ getBlockParentsByBlockName,
80
+ getTemplateLock,
78
81
  } = select( blockEditorStore );
79
82
  const selectedBlockClientIds = getSelectedBlockClientIds();
80
83
  const selectedBlockClientId = selectedBlockClientIds[ 0 ];
81
- const blockRootClientId = getBlockRootClientId( selectedBlockClientId );
82
84
  const parents = getBlockParents( selectedBlockClientId );
83
85
  const firstParentClientId = parents[ parents.length - 1 ];
84
86
  const parentBlockName = getBlockName( firstParentClientId );
85
87
  const parentBlockType = getBlockType( parentBlockName );
86
- const _isDefaultEditingMode =
87
- getBlockEditingMode( selectedBlockClientId ) === 'default';
88
+ const editingMode = getBlockEditingMode( selectedBlockClientId );
89
+ const _isDefaultEditingMode = editingMode === 'default';
88
90
  const _blockName = getBlockName( selectedBlockClientId );
89
91
  const isValid = selectedBlockClientIds.every( ( id ) =>
90
92
  isBlockValid( id )
@@ -96,13 +98,24 @@ export function PrivateBlockToolbar( {
96
98
  ( clientId ) =>
97
99
  !! getBlockAttributes( clientId )?.metadata?.bindings
98
100
  );
101
+
102
+ const _hasParentPattern = selectedBlockClientIds.every(
103
+ ( clientId ) =>
104
+ getBlockParentsByBlockName( clientId, 'core/block', true )
105
+ .length > 0
106
+ );
107
+
108
+ // If one or more selected blocks are locked, do not show the BlockGroupToolbar.
109
+ const _hasTemplateLock = selectedBlockClientIds.some(
110
+ ( id ) => getTemplateLock( id ) === 'contentOnly'
111
+ );
99
112
  return {
100
113
  blockClientId: selectedBlockClientId,
101
114
  blockClientIds: selectedBlockClientIds,
115
+ isContentOnlyEditingMode: editingMode === 'contentOnly',
102
116
  isDefaultEditingMode: _isDefaultEditingMode,
103
117
  blockType: selectedBlockClientId && getBlockType( _blockName ),
104
118
  shouldShowVisualToolbar: isValid && isVisual,
105
- rootClientId: blockRootClientId,
106
119
  toolbarKey: `${ selectedBlockClientId }${ firstParentClientId }`,
107
120
  showParentSelector:
108
121
  parentBlockType &&
@@ -115,6 +128,8 @@ export function PrivateBlockToolbar( {
115
128
  selectedBlockClientIds.length === 1 &&
116
129
  _isDefaultEditingMode,
117
130
  isUsingBindings: _isUsingBindings,
131
+ hasParentPattern: _hasParentPattern,
132
+ hasContentOnlyLocking: _hasTemplateLock,
118
133
  };
119
134
  }, [] );
120
135
 
@@ -168,7 +183,9 @@ export function PrivateBlockToolbar( {
168
183
  isLargeViewport &&
169
184
  isDefaultEditingMode && <BlockParentSelector /> }
170
185
  { ( shouldShowVisualToolbar || isMultiToolbar ) &&
171
- ( isDefaultEditingMode || isSynced ) && (
186
+ ( isDefaultEditingMode ||
187
+ ( isContentOnlyEditingMode && ! hasParentPattern ) ||
188
+ isSynced ) && (
172
189
  <div
173
190
  ref={ nodeRef }
174
191
  { ...showHoveredOrFocusedGestures }
@@ -195,10 +212,9 @@ export function PrivateBlockToolbar( {
195
212
  </ToolbarGroup>
196
213
  </div>
197
214
  ) }
198
- <Shuffle clientId={ blockClientId } />
199
- { shouldShowVisualToolbar && isMultiToolbar && (
200
- <BlockGroupToolbar />
201
- ) }
215
+ { ! hasContentOnlyLocking &&
216
+ shouldShowVisualToolbar &&
217
+ isMultiToolbar && <BlockGroupToolbar /> }
202
218
  { shouldShowVisualToolbar && (
203
219
  <>
204
220
  <BlockControls.Slot
@@ -34,7 +34,14 @@ export default function Shuffle( { clientId, as = Container } ) {
34
34
  const _categories = attributes?.metadata?.categories || EMPTY_ARRAY;
35
35
  const _patternName = attributes?.metadata?.patternName;
36
36
  const rootBlock = getBlockRootClientId( clientId );
37
- const _patterns = __experimentalGetAllowedPatterns( rootBlock );
37
+
38
+ // Calling `__experimentalGetAllowedPatterns` is expensive.
39
+ // Checking if the block can be shuffled prevents unnecessary selector calls.
40
+ // See: https://github.com/WordPress/gutenberg/pull/64736.
41
+ const _patterns =
42
+ _categories.length > 0
43
+ ? __experimentalGetAllowedPatterns( rootBlock )
44
+ : EMPTY_ARRAY;
38
45
  return {
39
46
  categories: _categories,
40
47
  patterns: _patterns,
@@ -45,12 +52,7 @@ export default function Shuffle( { clientId, as = Container } ) {
45
52
  );
46
53
  const { replaceBlocks } = useDispatch( blockEditorStore );
47
54
  const sameCategoryPatternsWithSingleWrapper = useMemo( () => {
48
- if (
49
- ! categories ||
50
- categories.length === 0 ||
51
- ! patterns ||
52
- patterns.length === 0
53
- ) {
55
+ if ( categories.length === 0 || ! patterns || patterns.length === 0 ) {
54
56
  return EMPTY_ARRAY;
55
57
  }
56
58
  return patterns.filter( ( pattern ) => {
@@ -70,10 +70,13 @@
70
70
  // Raise the specificity.
71
71
  &.components-accessible-toolbar {
72
72
  border: none;
73
- border-bottom: $border-width solid $gray-200;
74
73
  border-radius: 0;
75
74
  }
76
75
 
76
+ &.is-unstyled {
77
+ box-shadow: 0 $border-width 0 0 rgba($color: #000, $alpha: 0.133); // 0.133 = $gray-200 but with alpha.
78
+ }
79
+
77
80
  .block-editor-block-toolbar {
78
81
  overflow: auto;
79
82
  overflow-y: hidden;
@@ -257,6 +257,8 @@ function BlockSelectionButton( { clientId, rootClientId }, ref ) {
257
257
  <BlockDraggable clientIds={ [ clientId ] }>
258
258
  { ( draggableProps ) => (
259
259
  <Button
260
+ // TODO: Switch to `true` (40px size) if possible
261
+ __next40pxDefaultSize={ false }
260
262
  icon={ dragHandle }
261
263
  className="block-selection-button_drag-handle"
262
264
  label={ dragHandleLabel }
@@ -272,6 +274,8 @@ function BlockSelectionButton( { clientId, rootClientId }, ref ) {
272
274
  { editorMode === 'navigation' && (
273
275
  <FlexItem>
274
276
  <Button
277
+ // TODO: Switch to `true` (40px size) if possible
278
+ __next40pxDefaultSize={ false }
275
279
  ref={ ref }
276
280
  onClick={
277
281
  editorMode === 'navigation'
@@ -36,26 +36,30 @@ export default function BlockToolbarPopover( {
36
36
  }, [ clientId ] );
37
37
 
38
38
  const { stopTyping } = useDispatch( blockEditorStore );
39
- const isToolbarForced = useRef( false );
39
+ const isToolbarForcedRef = useRef( false );
40
40
 
41
41
  useShortcut( 'core/block-editor/focus-toolbar', () => {
42
- isToolbarForced.current = true;
42
+ isToolbarForcedRef.current = true;
43
43
  stopTyping( true );
44
44
  } );
45
45
 
46
46
  useEffect( () => {
47
- isToolbarForced.current = false;
47
+ isToolbarForcedRef.current = false;
48
48
  } );
49
49
 
50
+ // If the block has a parent with __experimentalCaptureToolbars enabled,
51
+ // the toolbar should be positioned over the topmost capturing parent.
52
+ const clientIdToPositionOver = capturingClientId || clientId;
53
+
50
54
  const popoverProps = useBlockToolbarPopoverProps( {
51
55
  contentElement: __unstableContentRef?.current,
52
- clientId,
56
+ clientId: clientIdToPositionOver,
53
57
  } );
54
58
 
55
59
  return (
56
60
  ! isTyping && (
57
61
  <BlockPopover
58
- clientId={ capturingClientId || clientId }
62
+ clientId={ clientIdToPositionOver }
59
63
  bottomClientId={ lastClientId }
60
64
  className={ clsx( 'block-editor-block-list__block-popover', {
61
65
  'is-insertion-point-visible': isInsertionPointVisible,
@@ -66,7 +70,7 @@ export default function BlockToolbarPopover( {
66
70
  <PrivateBlockToolbar
67
71
  // If the toolbar is being shown because of being forced
68
72
  // it should focus the toolbar right after the mount.
69
- focusOnMount={ isToolbarForced.current }
73
+ focusOnMount={ isToolbarForcedRef.current }
70
74
  __experimentalInitialIndex={
71
75
  initialToolbarItemIndexRef.current
72
76
  }
@@ -202,7 +202,7 @@ export default function BlockTools( {
202
202
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
203
203
  <div { ...props } onKeyDown={ onKeyDown }>
204
204
  <InsertionPointOpenRef.Provider value={ useRef( false ) }>
205
- { ! isTyping && (
205
+ { ! isTyping && ! isZoomOutMode && (
206
206
  <InsertionPoint
207
207
  __unstableContentRef={ __unstableContentRef }
208
208
  />
@@ -13,7 +13,7 @@
13
13
  .block-editor-block-list__insertion-point-indicator {
14
14
  position: absolute;
15
15
  background: var(--wp-admin-theme-color);
16
- border-radius: 2px;
16
+ border-radius: $radius-small;
17
17
  transform-origin: center;
18
18
  opacity: 0;
19
19
  will-change: transform, opacity;
@@ -63,7 +63,6 @@
63
63
  .block-editor-inserter__toggle.components-button.has-icon {
64
64
  // Basic look
65
65
  background: $gray-900;
66
- border-radius: $radius-block-ui;
67
66
  color: $white;
68
67
  padding: 0;
69
68
 
@@ -95,7 +94,7 @@
95
94
  z-index: z-index(".block-editor-block-list__block-selection-button");
96
95
 
97
96
  // Dark block UI appearance.
98
- border-radius: $radius-block-ui;
97
+ border-radius: $radius-small;
99
98
  background-color: $gray-900;
100
99
 
101
100
  font-size: $default-font-size;
@@ -188,7 +187,7 @@
188
187
 
189
188
  .block-editor-block-contextual-toolbar {
190
189
  border: $border-width solid $gray-900;
191
- border-radius: $radius-block-ui;
190
+ border-radius: $radius-small;
192
191
  overflow: visible; // allow the parent selector to be visible
193
192
  position: static;
194
193
  width: auto;
@@ -17,6 +17,7 @@ import {
17
17
  import { store as blockEditorStore } from '../../store';
18
18
  import { useBlockElement } from '../block-list/use-block-props/use-block-refs';
19
19
  import { hasStickyOrFixedPositionValue } from '../../hooks/position';
20
+ import { getVisibleElementBounds } from '../../utils/dom';
20
21
 
21
22
  const COMMON_PROPS = {
22
23
  placement: 'top-start',
@@ -67,7 +68,7 @@ function getProps(
67
68
  // Get how far the content area has been scrolled.
68
69
  const scrollTop = scrollContainer?.scrollTop || 0;
69
70
 
70
- const blockRect = selectedBlockElement.getBoundingClientRect();
71
+ const blockRect = getVisibleElementBounds( selectedBlockElement );
71
72
  const contentRect = contentElement.getBoundingClientRect();
72
73
 
73
74
  // Get the vertical position of top of the visible content area.
@@ -23,7 +23,6 @@ function ZoomOutModeInserters() {
23
23
  sectionRootClientId,
24
24
  selectedBlockClientId,
25
25
  hoveredBlockClientId,
26
- inserterSearchInputRef,
27
26
  } = useSelect( ( select ) => {
28
27
  const {
29
28
  getSettings,
@@ -33,10 +32,10 @@ function ZoomOutModeInserters() {
33
32
  getSelectedBlockClientId,
34
33
  getHoveredBlockClientId,
35
34
  isBlockInsertionPointVisible,
36
- getInserterSearchInputRef,
35
+ getSectionRootClientId,
37
36
  } = unlock( select( blockEditorStore ) );
38
37
 
39
- const { sectionRootClientId: root } = unlock( getSettings() );
38
+ const root = getSectionRootClientId();
40
39
 
41
40
  return {
42
41
  hasSelection: !! getSelectionStart().clientId,
@@ -48,7 +47,6 @@ function ZoomOutModeInserters() {
48
47
  getSettings().__experimentalSetIsInserterOpened,
49
48
  selectedBlockClientId: getSelectedBlockClientId(),
50
49
  hoveredBlockClientId: getHoveredBlockClientId(),
51
- inserterSearchInputRef: getInserterSearchInputRef(),
52
50
  };
53
51
  }, [] );
54
52
 
@@ -90,18 +88,6 @@ function ZoomOutModeInserters() {
90
88
  previousClientId={ previousClientId }
91
89
  nextClientId={ nextClientId }
92
90
  >
93
- { shouldRenderInsertionPoint && (
94
- <div
95
- style={ {
96
- borderRadius: '0',
97
- height: '12px',
98
- opacity: 1,
99
- transform: 'translateY(-50%)',
100
- width: '100%',
101
- } }
102
- className="block-editor-block-list__insertion-point-indicator"
103
- />
104
- ) }
105
91
  { ! shouldRenderInsertionPoint && (
106
92
  <ZoomOutModeInserterButton
107
93
  isVisible={ isSelected || isHovered }
@@ -115,7 +101,6 @@ function ZoomOutModeInserters() {
115
101
  showInsertionPoint( sectionRootClientId, index, {
116
102
  operation: 'insert',
117
103
  } );
118
- inserterSearchInputRef?.current?.focus();
119
104
  } }
120
105
  />
121
106
  ) }
@@ -11,12 +11,8 @@ import useSelectedBlockToolProps from './use-selected-block-tool-props';
11
11
  import ZoomOutToolbar from './zoom-out-toolbar';
12
12
 
13
13
  export default function ZoomOutPopover( { clientId, __unstableContentRef } ) {
14
- const {
15
- capturingClientId,
16
- isInsertionPointVisible,
17
- lastClientId,
18
- rootClientId,
19
- } = useSelectedBlockToolProps( clientId );
14
+ const { capturingClientId, isInsertionPointVisible, lastClientId } =
15
+ useSelectedBlockToolProps( clientId );
20
16
 
21
17
  const popoverProps = useBlockToolbarPopoverProps( {
22
18
  contentElement: __unstableContentRef?.current,
@@ -42,8 +38,8 @@ export default function ZoomOutPopover( { clientId, __unstableContentRef } ) {
42
38
  { ...props }
43
39
  >
44
40
  <ZoomOutToolbar
41
+ __unstableContentRef={ __unstableContentRef }
45
42
  clientId={ clientId }
46
- rootClientId={ rootClientId }
47
43
  />
48
44
  </BlockPopover>
49
45
  );
@@ -6,7 +6,7 @@ import clsx from 'clsx';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { dragHandle, trash } from '@wordpress/icons';
9
+ import { dragHandle, trash, edit } from '@wordpress/icons';
10
10
  import { Button, ToolbarButton } from '@wordpress/components';
11
11
  import { useSelect, useDispatch } from '@wordpress/data';
12
12
  import { store as blocksStore } from '@wordpress/blocks';
@@ -21,7 +21,7 @@ import BlockMover from '../block-mover';
21
21
  import Shuffle from '../block-toolbar/shuffle';
22
22
  import NavigableToolbar from '../navigable-toolbar';
23
23
 
24
- export default function ZoomOutToolbar( { clientId, rootClientId } ) {
24
+ export default function ZoomOutToolbar( { clientId, __unstableContentRef } ) {
25
25
  const selected = useSelect(
26
26
  ( select ) => {
27
27
  const {
@@ -31,7 +31,12 @@ export default function ZoomOutToolbar( { clientId, rootClientId } ) {
31
31
  getPreviousBlockClientId,
32
32
  canRemoveBlock,
33
33
  canMoveBlock,
34
+ getSettings,
34
35
  } = select( blockEditorStore );
36
+
37
+ const { __experimentalSetIsInserterOpened: setIsInserterOpened } =
38
+ getSettings();
39
+
35
40
  const { getBlockType } = select( blocksStore );
36
41
  const { name } = getBlock( clientId );
37
42
  const blockType = getBlockType( name );
@@ -61,11 +66,12 @@ export default function ZoomOutToolbar( { clientId, rootClientId } ) {
61
66
  isBlockTemplatePart,
62
67
  isNextBlockTemplatePart,
63
68
  isPrevBlockTemplatePart,
64
- canRemove: canRemoveBlock( clientId, rootClientId ),
65
- canMove: canMoveBlock( clientId, rootClientId ),
69
+ canRemove: canRemoveBlock( clientId ),
70
+ canMove: canMoveBlock( clientId ),
71
+ setIsInserterOpened,
66
72
  };
67
73
  },
68
- [ clientId, rootClientId ]
74
+ [ clientId ]
69
75
  );
70
76
 
71
77
  const {
@@ -75,9 +81,11 @@ export default function ZoomOutToolbar( { clientId, rootClientId } ) {
75
81
  isPrevBlockTemplatePart,
76
82
  canRemove,
77
83
  canMove,
84
+ setIsInserterOpened,
78
85
  } = selected;
79
86
 
80
- const { removeBlock } = useDispatch( blockEditorStore );
87
+ const { removeBlock, __unstableSetEditorMode } =
88
+ useDispatch( blockEditorStore );
81
89
 
82
90
  const classNames = clsx( 'zoom-out-toolbar', {
83
91
  'is-block-moving-mode': !! blockMovingMode,
@@ -124,6 +132,23 @@ export default function ZoomOutToolbar( { clientId, rootClientId } ) {
124
132
  { canMove && canRemove && (
125
133
  <Shuffle clientId={ clientId } as={ ToolbarButton } />
126
134
  ) }
135
+
136
+ { ! isBlockTemplatePart && (
137
+ <ToolbarButton
138
+ className="zoom-out-toolbar-button"
139
+ icon={ edit }
140
+ label={ __( 'Edit' ) }
141
+ onClick={ () => {
142
+ // Setting may be undefined.
143
+ if ( typeof setIsInserterOpened === 'function' ) {
144
+ setIsInserterOpened( false );
145
+ }
146
+ __unstableSetEditorMode( 'edit' );
147
+ __unstableContentRef.current?.focus();
148
+ } }
149
+ />
150
+ ) }
151
+
127
152
  { canRemove && ! isBlockTemplatePart && (
128
153
  <ToolbarButton
129
154
  className="zoom-out-toolbar-button"
@@ -19,9 +19,9 @@ Renders the variations of a block.
19
19
  ```jsx
20
20
  import { useSelect } from '@wordpress/data';
21
21
  import {
22
- __experimentalBlockVariationPicker as BlockVariationPicker,
23
- store as blockEditorStore,
22
+ __experimentalBlockVariationPicker as BlockVariationPicker
24
23
  } from '@wordpress/block-editor';
24
+ import { store as blocksStore } from '@wordpress/blocks';
25
25
 
26
26
  const MyBlockVariationPicker = ( { blockName } ) => {
27
27
  const variations = useSelect(
@@ -63,7 +63,12 @@ function BlockVariationPicker( {
63
63
  { /* eslint-enable jsx-a11y/no-redundant-roles */ }
64
64
  { allowSkip && (
65
65
  <div className="block-editor-block-variation-picker__skip">
66
- <Button variant="link" onClick={ () => onSelect() }>
66
+ <Button
67
+ // TODO: Switch to `true` (40px size) if possible
68
+ __next40pxDefaultSize={ false }
69
+ variant="link"
70
+ onClick={ () => onSelect() }
71
+ >
67
72
  { __( 'Skip' ) }
68
73
  </Button>
69
74
  </div>
@@ -35,6 +35,8 @@ function VariationsButtons( {
35
35
  </VisuallyHidden>
36
36
  { variations.map( ( variation ) => (
37
37
  <Button
38
+ // TODO: Switch to `true` (40px size) if possible
39
+ __next40pxDefaultSize={ false }
38
40
  key={ variation.name }
39
41
  icon={ <BlockIcon icon={ variation.icon } showColors /> }
40
42
  isPressed={ selectedValue === variation.name }
@@ -4,7 +4,7 @@
4
4
 
5
5
  .components-dropdown-menu__toggle {
6
6
  border: $border-width solid $gray-700;
7
- border-radius: $radius-block-ui;
7
+ border-radius: $radius-small;
8
8
  min-height: 30px;
9
9
  width: 100%;
10
10
  position: relative;
@@ -52,7 +52,6 @@
52
52
  left: 0;
53
53
  pointer-events: none;
54
54
  border: $border-width dashed currentColor;
55
- border-radius: $radius-block-ui;
56
55
  }
57
56
 
58
57
  .block-editor-inserter {
@@ -6,8 +6,8 @@ import clsx from 'clsx';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { Button, Tooltip, VisuallyHidden } from '@wordpress/components';
10
- import { forwardRef } from '@wordpress/element';
9
+ import { Button } from '@wordpress/components';
10
+ import { forwardRef, useRef } from '@wordpress/element';
11
11
  import { _x, sprintf } from '@wordpress/i18n';
12
12
  import { Icon, plus } from '@wordpress/icons';
13
13
  import deprecated from '@wordpress/deprecated';
@@ -16,17 +16,26 @@ import deprecated from '@wordpress/deprecated';
16
16
  * Internal dependencies
17
17
  */
18
18
  import Inserter from '../inserter';
19
+ import { useMergeRefs } from '@wordpress/compose';
19
20
 
20
21
  function ButtonBlockAppender(
21
22
  { rootClientId, className, onFocus, tabIndex, onSelect },
22
23
  ref
23
24
  ) {
25
+ const inserterButtonRef = useRef();
26
+
27
+ const mergedInserterButtonRef = useMergeRefs( [ inserterButtonRef, ref ] );
24
28
  return (
25
29
  <Inserter
26
30
  position="bottom center"
27
31
  rootClientId={ rootClientId }
28
32
  __experimentalIsQuick
29
- onSelectOrClose={ onSelect }
33
+ onSelectOrClose={ ( ...args ) => {
34
+ if ( onSelect && typeof onSelect === 'function' ) {
35
+ onSelect( ...args );
36
+ }
37
+ inserterButtonRef.current?.focus();
38
+ } }
30
39
  renderToggle={ ( {
31
40
  onToggle,
32
41
  disabled,
@@ -34,24 +43,26 @@ function ButtonBlockAppender(
34
43
  blockTitle,
35
44
  hasSingleBlockType,
36
45
  } ) => {
37
- let label;
38
- if ( hasSingleBlockType ) {
39
- label = sprintf(
40
- // translators: %s: the name of the block when there is only one
41
- _x( 'Add %s', 'directly add the only allowed block' ),
42
- blockTitle
43
- );
44
- } else {
45
- label = _x(
46
- 'Add block',
47
- 'Generic label for block inserter button'
48
- );
49
- }
50
46
  const isToggleButton = ! hasSingleBlockType;
47
+ const label = hasSingleBlockType
48
+ ? sprintf(
49
+ // translators: %s: the name of the block when there is only one
50
+ _x(
51
+ 'Add %s',
52
+ 'directly add the only allowed block'
53
+ ),
54
+ blockTitle
55
+ )
56
+ : _x(
57
+ 'Add block',
58
+ 'Generic label for block inserter button'
59
+ );
51
60
 
52
- let inserterButton = (
61
+ return (
53
62
  <Button
54
- ref={ ref }
63
+ // TODO: Switch to `true` (40px size) if possible
64
+ __next40pxDefaultSize={ false }
65
+ ref={ mergedInserterButtonRef }
55
66
  onFocus={ onFocus }
56
67
  tabIndex={ tabIndex }
57
68
  className={ clsx(
@@ -65,20 +76,11 @@ function ButtonBlockAppender(
65
76
  // eslint-disable-next-line no-restricted-syntax
66
77
  disabled={ disabled }
67
78
  label={ label }
79
+ showTooltip
68
80
  >
69
- { ! hasSingleBlockType && (
70
- <VisuallyHidden as="span">{ label }</VisuallyHidden>
71
- ) }
72
81
  <Icon icon={ plus } />
73
82
  </Button>
74
83
  );
75
-
76
- if ( isToggleButton || hasSingleBlockType ) {
77
- inserterButton = (
78
- <Tooltip text={ label }>{ inserterButton }</Tooltip>
79
- );
80
- }
81
- return inserterButton;
82
84
  } }
83
85
  isAppender
84
86
  />
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { render } from '@testing-library/react';
4
+ import { render, waitFor, queryByAttribute } from '@testing-library/react';
5
5
 
6
6
  /**
7
7
  * Internal dependencies
@@ -10,9 +10,22 @@ import ColorPaletteControl from '../control';
10
10
 
11
11
  const noop = () => {};
12
12
 
13
+ async function renderAndValidate( ...renderArgs ) {
14
+ const view = render( ...renderArgs );
15
+ await waitFor( () => {
16
+ const activeButton = queryByAttribute(
17
+ 'data-active-item',
18
+ view.baseElement,
19
+ 'true'
20
+ );
21
+ expect( activeButton ).not.toBeNull();
22
+ } );
23
+ return view;
24
+ }
25
+
13
26
  describe( 'ColorPaletteControl', () => {
14
27
  it( 'matches the snapshot', async () => {
15
- const { container } = render(
28
+ const { container } = await renderAndValidate(
16
29
  <ColorPaletteControl
17
30
  label="Test Color"
18
31
  value="#f00"
@@ -88,7 +88,11 @@ const renderToggle =
88
88
  };
89
89
 
90
90
  return (
91
- <Button { ...toggleProps }>
91
+ <Button
92
+ // TODO: Switch to `true` (40px size) if possible
93
+ __next40pxDefaultSize={ false }
94
+ { ...toggleProps }
95
+ >
92
96
  <LabeledColorIndicator
93
97
  colorValue={ colorValue }
94
98
  label={ label }
@@ -73,15 +73,15 @@ $swatch-gap: 12px;
73
73
  // Identify the first visible instance as placeholder items will not have this class.
74
74
  &:nth-child(1 of &) {
75
75
  margin-top: $grid-unit-30;
76
- border-top-left-radius: $radius-block-ui;
77
- border-top-right-radius: $radius-block-ui;
76
+ border-top-left-radius: $radius-small;
77
+ border-top-right-radius: $radius-small;
78
78
  border-top: 1px solid $gray-300;
79
79
  }
80
80
 
81
81
  // Identify the last visible instance as placeholder items will not have this class.
82
82
  &:nth-last-child(1 of &) {
83
- border-bottom-left-radius: $radius-block-ui;
84
- border-bottom-right-radius: $radius-block-ui;
83
+ border-bottom-left-radius: $radius-small;
84
+ border-bottom-right-radius: $radius-small;
85
85
  }
86
86
 
87
87
  > div,
@@ -0,0 +1 @@
1
+ export { ModifyContentLockMenuItem } from './modify-content-lock-menu-item';