@wordpress/block-editor 14.5.0 → 14.7.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 (541) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +0 -8
  3. package/build/autocompleters/block.js +13 -5
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-canvas/index.js +10 -0
  6. package/build/components/block-canvas/index.js.map +1 -1
  7. package/build/components/block-card/index.js +2 -2
  8. package/build/components/block-card/index.js.map +1 -1
  9. package/build/components/block-full-height-alignment-control/index.js +1 -1
  10. package/build/components/block-full-height-alignment-control/index.js.map +1 -1
  11. package/build/components/block-list/block.js +15 -29
  12. package/build/components/block-list/block.js.map +1 -1
  13. package/build/components/block-list/block.native.js +1 -7
  14. package/build/components/block-list/block.native.js.map +1 -1
  15. package/build/components/block-list/index.js +5 -5
  16. package/build/components/block-list/index.js.map +1 -1
  17. package/build/components/block-list/use-block-props/index.js +1 -2
  18. package/build/components/block-list/use-block-props/index.js.map +1 -1
  19. package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -3
  20. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  21. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +3 -6
  22. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  23. package/build/components/block-list/use-in-between-inserter.js +1 -1
  24. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  25. package/build/components/block-patterns-list/index.js +23 -26
  26. package/build/components/block-patterns-list/index.js.map +1 -1
  27. package/build/components/block-patterns-paging/index.js +1 -1
  28. package/build/components/block-patterns-paging/index.js.map +1 -1
  29. package/build/components/block-popover/index.js +3 -46
  30. package/build/components/block-popover/index.js.map +1 -1
  31. package/build/components/block-preview/async.js +51 -0
  32. package/build/components/block-preview/async.js.map +1 -0
  33. package/build/components/block-preview/index.js +6 -3
  34. package/build/components/block-preview/index.js.map +1 -1
  35. package/build/components/block-settings-menu/block-settings-dropdown.js +5 -0
  36. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  37. package/build/components/block-settings-menu/index.js +4 -3
  38. package/build/components/block-settings-menu/index.js.map +1 -1
  39. package/build/components/block-toolbar/change-design.js +119 -0
  40. package/build/components/block-toolbar/change-design.js.map +1 -0
  41. package/build/components/block-toolbar/index.js +19 -7
  42. package/build/components/block-toolbar/index.js.map +1 -1
  43. package/build/components/block-tools/index.js +16 -19
  44. package/build/components/block-tools/index.js.map +1 -1
  45. package/build/components/block-tools/insertion-point.js +4 -3
  46. package/build/components/block-tools/insertion-point.js.map +1 -1
  47. package/build/components/block-tools/use-block-toolbar-popover-props.js +1 -1
  48. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  49. package/build/components/block-tools/use-show-block-tools.js +7 -10
  50. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  51. package/build/components/block-tools/zoom-out-mode-inserters.js +20 -29
  52. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  53. package/build/components/block-variation-transforms/index.js +2 -2
  54. package/build/components/block-variation-transforms/index.js.map +1 -1
  55. package/build/components/block-vertical-alignment-control/ui.js +6 -10
  56. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  57. package/build/components/border-radius-control/linked-button.js +7 -10
  58. package/build/components/border-radius-control/linked-button.js.map +1 -1
  59. package/build/components/collab/block-comment-icon-slot.js +18 -0
  60. package/build/components/collab/block-comment-icon-slot.js.map +1 -0
  61. package/build/components/collab/block-comment-icon-toolbar-slot.js +18 -0
  62. package/build/components/collab/block-comment-icon-toolbar-slot.js.map +1 -0
  63. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +7 -1
  64. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  65. package/build/components/convert-to-group-buttons/toolbar.js +4 -4
  66. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  67. package/build/components/global-styles/color-panel.js +1 -4
  68. package/build/components/global-styles/color-panel.js.map +1 -1
  69. package/build/components/global-styles/dimensions-panel.js +26 -14
  70. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  71. package/build/components/global-styles/use-global-styles-context.native.js +6 -0
  72. package/build/components/global-styles/use-global-styles-context.native.js.map +1 -1
  73. package/build/components/iframe/get-compatibility-styles.js +4 -4
  74. package/build/components/iframe/get-compatibility-styles.js.map +1 -1
  75. package/build/components/iframe/index.js +33 -22
  76. package/build/components/iframe/index.js.map +1 -1
  77. package/build/components/image-size-control/index.js +61 -20
  78. package/build/components/image-size-control/index.js.map +1 -1
  79. package/build/components/inner-blocks/index.js +9 -5
  80. package/build/components/inner-blocks/index.js.map +1 -1
  81. package/build/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  82. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  83. package/build/components/inserter/block-patterns-tab/index.js +1 -2
  84. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  85. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +5 -3
  86. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  87. package/build/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  88. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  89. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +3 -0
  90. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  91. package/build/components/inserter/block-patterns-tab/utils.js +5 -1
  92. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
  93. package/build/components/inserter/category-tabs/index.js +15 -2
  94. package/build/components/inserter/category-tabs/index.js.map +1 -1
  95. package/build/components/inserter/hooks/use-block-types-state.js +1 -1
  96. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  97. package/build/components/inserter/hooks/use-patterns-paging.js +0 -5
  98. package/build/components/inserter/hooks/use-patterns-paging.js.map +1 -1
  99. package/build/components/inserter/menu.js +4 -2
  100. package/build/components/inserter/menu.js.map +1 -1
  101. package/build/components/inserter/search-results.js +0 -2
  102. package/build/components/inserter/search-results.js.map +1 -1
  103. package/build/components/inserter-button/index.native.js +1 -1
  104. package/build/components/inserter-button/index.native.js.map +1 -1
  105. package/build/components/inspector-controls-tabs/index.js +0 -2
  106. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  107. package/build/components/inspector-controls-tabs/utils.js +3 -6
  108. package/build/components/inspector-controls-tabs/utils.js.map +1 -1
  109. package/build/components/link-control/link-preview.js +12 -9
  110. package/build/components/link-control/link-preview.js.map +1 -1
  111. package/build/components/list-view/appender.js +4 -3
  112. package/build/components/list-view/appender.js.map +1 -1
  113. package/build/components/list-view/branch.js +6 -5
  114. package/build/components/list-view/branch.js.map +1 -1
  115. package/build/components/list-view/index.js +1 -2
  116. package/build/components/list-view/index.js.map +1 -1
  117. package/build/components/media-placeholder/index.js +4 -4
  118. package/build/components/media-placeholder/index.js.map +1 -1
  119. package/build/components/provider/index.js +1 -1
  120. package/build/components/provider/index.js.map +1 -1
  121. package/build/components/rich-text/event-listeners/index.js +3 -1
  122. package/build/components/rich-text/event-listeners/index.js.map +1 -1
  123. package/build/components/rich-text/index.js +1 -1
  124. package/build/components/rich-text/index.js.map +1 -1
  125. package/build/components/rich-text/index.native.js +2 -6
  126. package/build/components/rich-text/index.native.js.map +1 -1
  127. package/build/components/spacing-sizes-control/index.js +2 -2
  128. package/build/components/spacing-sizes-control/index.js.map +1 -1
  129. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -3
  130. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  131. package/build/components/spacing-sizes-control/linked-button.js +1 -5
  132. package/build/components/spacing-sizes-control/linked-button.js.map +1 -1
  133. package/build/components/tabbed-sidebar/index.js +1 -1
  134. package/build/components/tabbed-sidebar/index.js.map +1 -1
  135. package/build/components/tool-selector/index.js +1 -4
  136. package/build/components/tool-selector/index.js.map +1 -1
  137. package/build/components/url-input/index.js +4 -2
  138. package/build/components/url-input/index.js.map +1 -1
  139. package/build/components/use-block-commands/index.js +6 -7
  140. package/build/components/use-block-commands/index.js.map +1 -1
  141. package/build/components/use-block-drop-zone/index.js +5 -5
  142. package/build/components/use-block-drop-zone/index.js.map +1 -1
  143. package/build/components/use-block-drop-zone/index.native.js +0 -1
  144. package/build/components/use-block-drop-zone/index.native.js.map +1 -1
  145. package/build/components/use-moving-animation/index.js +1 -3
  146. package/build/components/use-moving-animation/index.js.map +1 -1
  147. package/build/components/use-settings/index.js +1 -3
  148. package/build/components/use-settings/index.js.map +1 -1
  149. package/build/components/writing-flow/index.js +5 -3
  150. package/build/components/writing-flow/index.js.map +1 -1
  151. package/build/components/writing-flow/use-tab-nav.js +2 -3
  152. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  153. package/build/hooks/block-bindings.js +19 -8
  154. package/build/hooks/block-bindings.js.map +1 -1
  155. package/build/hooks/contrast-checker.js +0 -1
  156. package/build/hooks/contrast-checker.js.map +1 -1
  157. package/build/hooks/duotone.js +2 -2
  158. package/build/hooks/duotone.js.map +1 -1
  159. package/build/hooks/font-family.js +1 -1
  160. package/build/hooks/font-family.js.map +1 -1
  161. package/build/hooks/style.js +4 -1
  162. package/build/hooks/style.js.map +1 -1
  163. package/build/hooks/supports.js +6 -6
  164. package/build/hooks/supports.js.map +1 -1
  165. package/build/hooks/typography.js +5 -5
  166. package/build/hooks/typography.js.map +1 -1
  167. package/build/hooks/use-zoom-out.js +13 -22
  168. package/build/hooks/use-zoom-out.js.map +1 -1
  169. package/build/hooks/utils.js +2 -2
  170. package/build/hooks/utils.js.map +1 -1
  171. package/build/index.js +0 -7
  172. package/build/index.js.map +1 -1
  173. package/build/lock-unlock.js.map +1 -1
  174. package/build/private-apis.js +6 -3
  175. package/build/private-apis.js.map +1 -1
  176. package/build/store/actions.js +2 -33
  177. package/build/store/actions.js.map +1 -1
  178. package/build/store/defaults.js +1 -1
  179. package/build/store/defaults.js.map +1 -1
  180. package/build/store/private-actions.js +57 -8
  181. package/build/store/private-actions.js.map +1 -1
  182. package/build/store/private-selectors.js +10 -22
  183. package/build/store/private-selectors.js.map +1 -1
  184. package/build/store/reducer.js +16 -6
  185. package/build/store/reducer.js.map +1 -1
  186. package/build/store/selectors.js +53 -15
  187. package/build/store/selectors.js.map +1 -1
  188. package/build/store/utils.js +5 -4
  189. package/build/store/utils.js.map +1 -1
  190. package/build/utils/dom.js +37 -17
  191. package/build/utils/dom.js.map +1 -1
  192. package/build/utils/get-font-styles-and-weights.js +1 -1
  193. package/build/utils/get-font-styles-and-weights.js.map +1 -1
  194. package/build/utils/transform-styles/index.js +4 -3
  195. package/build/utils/transform-styles/index.js.map +1 -1
  196. package/build-module/autocompleters/block.js +14 -6
  197. package/build-module/autocompleters/block.js.map +1 -1
  198. package/build-module/components/block-canvas/index.js +11 -1
  199. package/build-module/components/block-canvas/index.js.map +1 -1
  200. package/build-module/components/block-card/index.js +3 -3
  201. package/build-module/components/block-card/index.js.map +1 -1
  202. package/build-module/components/block-full-height-alignment-control/index.js +1 -1
  203. package/build-module/components/block-full-height-alignment-control/index.js.map +1 -1
  204. package/build-module/components/block-list/block.js +16 -28
  205. package/build-module/components/block-list/block.js.map +1 -1
  206. package/build-module/components/block-list/block.native.js +1 -7
  207. package/build-module/components/block-list/block.native.js.map +1 -1
  208. package/build-module/components/block-list/index.js +5 -5
  209. package/build-module/components/block-list/index.js.map +1 -1
  210. package/build-module/components/block-list/use-block-props/index.js +1 -2
  211. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  212. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -3
  213. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  214. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +3 -6
  215. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  216. package/build-module/components/block-list/use-in-between-inserter.js +1 -1
  217. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  218. package/build-module/components/block-patterns-list/index.js +23 -26
  219. package/build-module/components/block-patterns-list/index.js.map +1 -1
  220. package/build-module/components/block-patterns-paging/index.js +1 -1
  221. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  222. package/build-module/components/block-popover/index.js +4 -47
  223. package/build-module/components/block-popover/index.js.map +1 -1
  224. package/build-module/components/block-preview/async.js +44 -0
  225. package/build-module/components/block-preview/async.js.map +1 -0
  226. package/build-module/components/block-preview/index.js +6 -3
  227. package/build-module/components/block-preview/index.js.map +1 -1
  228. package/build-module/components/block-settings-menu/block-settings-dropdown.js +5 -0
  229. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  230. package/build-module/components/block-settings-menu/index.js +5 -4
  231. package/build-module/components/block-settings-menu/index.js.map +1 -1
  232. package/build-module/components/block-toolbar/change-design.js +111 -0
  233. package/build-module/components/block-toolbar/change-design.js.map +1 -0
  234. package/build-module/components/block-toolbar/index.js +19 -7
  235. package/build-module/components/block-toolbar/index.js.map +1 -1
  236. package/build-module/components/block-tools/index.js +17 -20
  237. package/build-module/components/block-tools/index.js.map +1 -1
  238. package/build-module/components/block-tools/insertion-point.js +4 -3
  239. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  240. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +2 -2
  241. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  242. package/build-module/components/block-tools/use-show-block-tools.js +7 -10
  243. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  244. package/build-module/components/block-tools/zoom-out-mode-inserters.js +20 -29
  245. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  246. package/build-module/components/block-variation-transforms/index.js +2 -2
  247. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  248. package/build-module/components/block-vertical-alignment-control/ui.js +6 -10
  249. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  250. package/build-module/components/border-radius-control/linked-button.js +8 -11
  251. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  252. package/build-module/components/collab/block-comment-icon-slot.js +11 -0
  253. package/build-module/components/collab/block-comment-icon-slot.js.map +1 -0
  254. package/build-module/components/collab/block-comment-icon-toolbar-slot.js +11 -0
  255. package/build-module/components/collab/block-comment-icon-toolbar-slot.js.map +1 -0
  256. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +7 -1
  257. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  258. package/build-module/components/convert-to-group-buttons/toolbar.js +4 -4
  259. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  260. package/build-module/components/global-styles/color-panel.js +2 -5
  261. package/build-module/components/global-styles/color-panel.js.map +1 -1
  262. package/build-module/components/global-styles/dimensions-panel.js +26 -14
  263. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  264. package/build-module/components/global-styles/use-global-styles-context.native.js +6 -0
  265. package/build-module/components/global-styles/use-global-styles-context.native.js.map +1 -1
  266. package/build-module/components/iframe/get-compatibility-styles.js +4 -4
  267. package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
  268. package/build-module/components/iframe/index.js +33 -22
  269. package/build-module/components/iframe/index.js.map +1 -1
  270. package/build-module/components/image-size-control/index.js +62 -21
  271. package/build-module/components/image-size-control/index.js.map +1 -1
  272. package/build-module/components/inner-blocks/index.js +9 -5
  273. package/build-module/components/inner-blocks/index.js.map +1 -1
  274. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  275. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  276. package/build-module/components/inserter/block-patterns-tab/index.js +1 -2
  277. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  278. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +6 -4
  279. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  280. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  281. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  282. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +4 -1
  283. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  284. package/build-module/components/inserter/block-patterns-tab/utils.js +4 -0
  285. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
  286. package/build-module/components/inserter/category-tabs/index.js +15 -2
  287. package/build-module/components/inserter/category-tabs/index.js.map +1 -1
  288. package/build-module/components/inserter/hooks/use-block-types-state.js +1 -1
  289. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  290. package/build-module/components/inserter/hooks/use-patterns-paging.js +1 -6
  291. package/build-module/components/inserter/hooks/use-patterns-paging.js.map +1 -1
  292. package/build-module/components/inserter/menu.js +5 -3
  293. package/build-module/components/inserter/menu.js.map +1 -1
  294. package/build-module/components/inserter/search-results.js +0 -2
  295. package/build-module/components/inserter/search-results.js.map +1 -1
  296. package/build-module/components/inserter-button/index.native.js +1 -1
  297. package/build-module/components/inserter-button/index.native.js.map +1 -1
  298. package/build-module/components/inspector-controls-tabs/index.js +0 -2
  299. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  300. package/build-module/components/inspector-controls-tabs/utils.js +3 -6
  301. package/build-module/components/inspector-controls-tabs/utils.js.map +1 -1
  302. package/build-module/components/link-control/link-preview.js +13 -10
  303. package/build-module/components/link-control/link-preview.js.map +1 -1
  304. package/build-module/components/list-view/appender.js +4 -3
  305. package/build-module/components/list-view/appender.js.map +1 -1
  306. package/build-module/components/list-view/branch.js +7 -6
  307. package/build-module/components/list-view/branch.js.map +1 -1
  308. package/build-module/components/list-view/index.js +1 -2
  309. package/build-module/components/list-view/index.js.map +1 -1
  310. package/build-module/components/media-placeholder/index.js +4 -4
  311. package/build-module/components/media-placeholder/index.js.map +1 -1
  312. package/build-module/components/provider/index.js +1 -1
  313. package/build-module/components/provider/index.js.map +1 -1
  314. package/build-module/components/rich-text/event-listeners/index.js +4 -2
  315. package/build-module/components/rich-text/event-listeners/index.js.map +1 -1
  316. package/build-module/components/rich-text/index.js +1 -1
  317. package/build-module/components/rich-text/index.js.map +1 -1
  318. package/build-module/components/rich-text/index.native.js +2 -6
  319. package/build-module/components/rich-text/index.native.js.map +1 -1
  320. package/build-module/components/spacing-sizes-control/index.js +3 -3
  321. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  322. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -4
  323. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  324. package/build-module/components/spacing-sizes-control/linked-button.js +2 -6
  325. package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -1
  326. package/build-module/components/tabbed-sidebar/index.js +1 -1
  327. package/build-module/components/tabbed-sidebar/index.js.map +1 -1
  328. package/build-module/components/tool-selector/index.js +1 -4
  329. package/build-module/components/tool-selector/index.js.map +1 -1
  330. package/build-module/components/url-input/index.js +4 -2
  331. package/build-module/components/url-input/index.js.map +1 -1
  332. package/build-module/components/use-block-commands/index.js +5 -5
  333. package/build-module/components/use-block-commands/index.js.map +1 -1
  334. package/build-module/components/use-block-drop-zone/index.js +5 -5
  335. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  336. package/build-module/components/use-block-drop-zone/index.native.js +0 -1
  337. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
  338. package/build-module/components/use-moving-animation/index.js +1 -3
  339. package/build-module/components/use-moving-animation/index.js.map +1 -1
  340. package/build-module/components/use-settings/index.js +1 -3
  341. package/build-module/components/use-settings/index.js.map +1 -1
  342. package/build-module/components/writing-flow/index.js +5 -3
  343. package/build-module/components/writing-flow/index.js.map +1 -1
  344. package/build-module/components/writing-flow/use-tab-nav.js +2 -3
  345. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  346. package/build-module/hooks/block-bindings.js +20 -9
  347. package/build-module/hooks/block-bindings.js.map +1 -1
  348. package/build-module/hooks/contrast-checker.js +0 -1
  349. package/build-module/hooks/contrast-checker.js.map +1 -1
  350. package/build-module/hooks/duotone.js +2 -2
  351. package/build-module/hooks/duotone.js.map +1 -1
  352. package/build-module/hooks/font-family.js +1 -1
  353. package/build-module/hooks/font-family.js.map +1 -1
  354. package/build-module/hooks/style.js +4 -1
  355. package/build-module/hooks/style.js.map +1 -1
  356. package/build-module/hooks/supports.js +6 -6
  357. package/build-module/hooks/supports.js.map +1 -1
  358. package/build-module/hooks/typography.js +5 -5
  359. package/build-module/hooks/typography.js.map +1 -1
  360. package/build-module/hooks/use-zoom-out.js +15 -23
  361. package/build-module/hooks/use-zoom-out.js.map +1 -1
  362. package/build-module/hooks/utils.js +2 -2
  363. package/build-module/hooks/utils.js.map +1 -1
  364. package/build-module/index.js +1 -1
  365. package/build-module/index.js.map +1 -1
  366. package/build-module/lock-unlock.js.map +1 -1
  367. package/build-module/private-apis.js +7 -5
  368. package/build-module/private-apis.js.map +1 -1
  369. package/build-module/store/actions.js +2 -33
  370. package/build-module/store/actions.js.map +1 -1
  371. package/build-module/store/defaults.js +1 -1
  372. package/build-module/store/defaults.js.map +1 -1
  373. package/build-module/store/private-actions.js +54 -7
  374. package/build-module/store/private-actions.js.map +1 -1
  375. package/build-module/store/private-selectors.js +10 -21
  376. package/build-module/store/private-selectors.js.map +1 -1
  377. package/build-module/store/reducer.js +16 -6
  378. package/build-module/store/reducer.js.map +1 -1
  379. package/build-module/store/selectors.js +54 -16
  380. package/build-module/store/selectors.js.map +1 -1
  381. package/build-module/store/utils.js +3 -3
  382. package/build-module/store/utils.js.map +1 -1
  383. package/build-module/utils/dom.js +35 -16
  384. package/build-module/utils/dom.js.map +1 -1
  385. package/build-module/utils/get-font-styles-and-weights.js +2 -2
  386. package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
  387. package/build-module/utils/transform-styles/index.js +3 -2
  388. package/build-module/utils/transform-styles/index.js.map +1 -1
  389. package/build-style/content-rtl.css +16 -10
  390. package/build-style/content.css +16 -10
  391. package/build-style/style-rtl.css +47 -25
  392. package/build-style/style.css +47 -25
  393. package/build-types/utils/dom.d.ts +7 -9
  394. package/build-types/utils/dom.d.ts.map +1 -1
  395. package/package.json +34 -32
  396. package/src/autocompleters/block.js +16 -7
  397. package/src/components/block-canvas/index.js +17 -1
  398. package/src/components/block-canvas/style.scss +3 -1
  399. package/src/components/block-card/index.js +3 -3
  400. package/src/components/block-full-height-alignment-control/index.js +1 -1
  401. package/src/components/block-inspector/style.scss +2 -7
  402. package/src/components/block-list/block.js +29 -50
  403. package/src/components/block-list/block.native.js +0 -4
  404. package/src/components/block-list/content.scss +1 -1
  405. package/src/components/block-list/index.js +4 -4
  406. package/src/components/block-list/use-block-props/index.js +0 -2
  407. package/src/components/block-list/use-block-props/use-focus-first-element.js +5 -3
  408. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +7 -20
  409. package/src/components/block-list/use-in-between-inserter.js +1 -1
  410. package/src/components/block-patterns-list/README.md +8 -8
  411. package/src/components/block-patterns-list/index.js +35 -51
  412. package/src/components/block-patterns-list/stories/fixtures.js +834 -0
  413. package/src/components/block-patterns-list/stories/index.story.js +64 -0
  414. package/src/components/block-patterns-list/style.scss +2 -0
  415. package/src/components/block-patterns-paging/index.js +1 -1
  416. package/src/components/block-popover/index.js +4 -66
  417. package/src/components/block-preview/async.js +43 -0
  418. package/src/components/block-preview/index.js +8 -3
  419. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -0
  420. package/src/components/block-settings-menu/index.js +3 -0
  421. package/src/components/block-toolbar/change-design.js +127 -0
  422. package/src/components/block-toolbar/index.js +25 -8
  423. package/src/components/block-toolbar/style.scss +16 -0
  424. package/src/components/block-tools/index.js +30 -27
  425. package/src/components/block-tools/insertion-point.js +4 -3
  426. package/src/components/block-tools/style.scss +12 -20
  427. package/src/components/block-tools/use-block-toolbar-popover-props.js +2 -2
  428. package/src/components/block-tools/use-show-block-tools.js +3 -14
  429. package/src/components/block-tools/zoom-out-mode-inserters.js +25 -40
  430. package/src/components/block-variation-transforms/index.js +2 -2
  431. package/src/components/block-vertical-alignment-control/ui.js +11 -15
  432. package/src/components/border-radius-control/linked-button.js +9 -11
  433. package/src/components/collab/block-comment-icon-slot.js +12 -0
  434. package/src/components/collab/block-comment-icon-toolbar-slot.js +12 -0
  435. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +7 -1
  436. package/src/components/convert-to-group-buttons/toolbar.js +4 -4
  437. package/src/components/default-block-appender/content.scss +13 -19
  438. package/src/components/global-styles/color-panel.js +2 -10
  439. package/src/components/global-styles/dimensions-panel.js +22 -16
  440. package/src/components/global-styles/test/use-global-styles-context.native.js +1 -0
  441. package/src/components/global-styles/use-global-styles-context.native.js +6 -0
  442. package/src/components/iframe/content.scss +4 -9
  443. package/src/components/iframe/get-compatibility-styles.js +4 -9
  444. package/src/components/iframe/index.js +48 -34
  445. package/src/components/iframe/style.scss +2 -3
  446. package/src/components/image-size-control/index.js +74 -43
  447. package/src/components/image-size-control/test/index.js +5 -63
  448. package/src/components/inner-blocks/index.js +12 -6
  449. package/src/components/inserter/block-patterns-explorer/pattern-list.js +3 -6
  450. package/src/components/inserter/block-patterns-tab/index.js +0 -1
  451. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +10 -4
  452. package/src/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  453. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +8 -0
  454. package/src/components/inserter/block-patterns-tab/utils.js +5 -0
  455. package/src/components/inserter/category-tabs/index.js +16 -2
  456. package/src/components/inserter/hooks/use-block-types-state.js +6 -1
  457. package/src/components/inserter/hooks/use-patterns-paging.js +1 -6
  458. package/src/components/inserter/menu.js +6 -4
  459. package/src/components/inserter/search-results.js +0 -6
  460. package/src/components/inserter/style.scss +13 -0
  461. package/src/components/inserter-button/index.native.js +1 -1
  462. package/src/components/inspector-controls-tabs/index.js +1 -6
  463. package/src/components/inspector-controls-tabs/utils.js +0 -3
  464. package/src/components/link-control/link-preview.js +15 -8
  465. package/src/components/link-control/test/index.js +63 -24
  466. package/src/components/list-view/appender.js +5 -6
  467. package/src/components/list-view/branch.js +8 -6
  468. package/src/components/list-view/index.js +1 -2
  469. package/src/components/media-placeholder/index.js +4 -4
  470. package/src/components/provider/index.js +1 -3
  471. package/src/components/provider/test/experimental-provider.js +43 -1
  472. package/src/components/rich-text/event-listeners/index.js +4 -2
  473. package/src/components/rich-text/index.js +8 -1
  474. package/src/components/rich-text/index.native.js +0 -2
  475. package/src/components/spacing-sizes-control/index.js +3 -3
  476. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -4
  477. package/src/components/spacing-sizes-control/linked-button.js +2 -12
  478. package/src/components/tabbed-sidebar/index.js +1 -1
  479. package/src/components/tabbed-sidebar/style.scss +1 -1
  480. package/src/components/tool-selector/index.js +1 -5
  481. package/src/components/url-input/index.js +4 -5
  482. package/src/components/use-block-commands/index.js +245 -234
  483. package/src/components/use-block-drop-zone/index.js +5 -5
  484. package/src/components/use-block-drop-zone/index.native.js +0 -1
  485. package/src/components/use-moving-animation/index.js +0 -1
  486. package/src/components/use-settings/index.js +0 -1
  487. package/src/components/writing-flow/index.js +5 -3
  488. package/src/components/writing-flow/use-tab-nav.js +1 -2
  489. package/src/hooks/block-bindings.js +48 -31
  490. package/src/hooks/contrast-checker.js +0 -1
  491. package/src/hooks/duotone.js +2 -2
  492. package/src/hooks/font-family.js +1 -1
  493. package/src/hooks/style.js +7 -3
  494. package/src/hooks/supports.js +6 -6
  495. package/src/hooks/typography.js +5 -5
  496. package/src/hooks/use-zoom-out.js +14 -34
  497. package/src/hooks/utils.js +7 -2
  498. package/src/index.js +0 -1
  499. package/src/private-apis.js +6 -3
  500. package/src/store/actions.js +3 -52
  501. package/src/store/defaults.js +2 -1
  502. package/src/store/private-actions.js +71 -8
  503. package/src/store/private-selectors.js +14 -25
  504. package/src/store/reducer.js +25 -11
  505. package/src/store/selectors.js +116 -53
  506. package/src/store/test/actions.js +41 -0
  507. package/src/store/test/private-selectors.js +5 -0
  508. package/src/store/test/reducer.js +23 -0
  509. package/src/store/utils.js +12 -11
  510. package/src/utils/dom.js +42 -17
  511. package/src/utils/get-font-styles-and-weights.js +2 -2
  512. package/src/utils/test/dom.js +224 -0
  513. package/src/utils/transform-styles/index.js +3 -2
  514. package/tsconfig.json +1 -0
  515. package/tsconfig.tsbuildinfo +1 -1
  516. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +0 -57
  517. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +0 -1
  518. package/build/components/block-toolbar/shuffle.js +0 -110
  519. package/build/components/block-toolbar/shuffle.js.map +0 -1
  520. package/build/components/block-tools/zoom-out-popover.js +0 -58
  521. package/build/components/block-tools/zoom-out-popover.js.map +0 -1
  522. package/build/components/block-tools/zoom-out-toolbar.js +0 -132
  523. package/build/components/block-tools/zoom-out-toolbar.js.map +0 -1
  524. package/build/components/block-vertical-alignment-control/icons.js +0 -48
  525. package/build/components/block-vertical-alignment-control/icons.js.map +0 -1
  526. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +0 -51
  527. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +0 -1
  528. package/build-module/components/block-toolbar/shuffle.js +0 -103
  529. package/build-module/components/block-toolbar/shuffle.js.map +0 -1
  530. package/build-module/components/block-tools/zoom-out-popover.js +0 -49
  531. package/build-module/components/block-tools/zoom-out-popover.js.map +0 -1
  532. package/build-module/components/block-tools/zoom-out-toolbar.js +0 -124
  533. package/build-module/components/block-tools/zoom-out-toolbar.js.map +0 -1
  534. package/build-module/components/block-vertical-alignment-control/icons.js +0 -41
  535. package/build-module/components/block-vertical-alignment-control/icons.js.map +0 -1
  536. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +0 -65
  537. package/src/components/block-toolbar/shuffle.js +0 -111
  538. package/src/components/block-tools/zoom-out-popover.js +0 -47
  539. package/src/components/block-tools/zoom-out-toolbar.js +0 -135
  540. package/src/components/block-vertical-alignment-control/icons.js +0 -34
  541. /package/src/{lock-unlock.js → lock-unlock.ts} +0 -0
@@ -94,7 +94,12 @@ const useBlockTypesState = ( rootClientId, onInsert, isQuick ) => {
94
94
  destinationClientId
95
95
  );
96
96
  },
97
- [ onInsert, getClosestAllowedInsertionPoint, rootClientId ]
97
+ [
98
+ getClosestAllowedInsertionPoint,
99
+ rootClientId,
100
+ onInsert,
101
+ createErrorNotice,
102
+ ]
98
103
  );
99
104
 
100
105
  return [ items, categories, collections, onSelectItem ];
@@ -2,11 +2,10 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { useMemo, useState, useEffect } from '@wordpress/element';
5
- import { useAsyncList, usePrevious } from '@wordpress/compose';
5
+ import { usePrevious } from '@wordpress/compose';
6
6
  import { getScrollContainer } from '@wordpress/dom';
7
7
 
8
8
  const PAGE_SIZE = 20;
9
- const INITIAL_INSERTER_RESULTS = 5;
10
9
 
11
10
  /**
12
11
  * Supplies values needed to page the patterns list client side.
@@ -42,9 +41,6 @@ export default function usePatternsPaging(
42
41
  pageIndex * PAGE_SIZE + PAGE_SIZE
43
42
  );
44
43
  }, [ pageIndex, currentCategoryPatterns ] );
45
- const categoryPatternsAsyncList = useAsyncList( categoryPatterns, {
46
- step: INITIAL_INSERTER_RESULTS,
47
- } );
48
44
  const numPages = Math.ceil( currentCategoryPatterns.length / PAGE_SIZE );
49
45
  const changePage = ( page ) => {
50
46
  const scrollContainer = getScrollContainer(
@@ -68,7 +64,6 @@ export default function usePatternsPaging(
68
64
  return {
69
65
  totalItems,
70
66
  categoryPatterns,
71
- categoryPatternsAsyncList,
72
67
  numPages,
73
68
  changePage,
74
69
  currentPage,
@@ -16,7 +16,7 @@ import {
16
16
  } from '@wordpress/element';
17
17
  import { VisuallyHidden, SearchControl, Popover } from '@wordpress/components';
18
18
  import { __ } from '@wordpress/i18n';
19
- import { useDebouncedInput } from '@wordpress/compose';
19
+ import { useDebouncedInput, useViewportMatch } from '@wordpress/compose';
20
20
  import { useSelect } from '@wordpress/data';
21
21
 
22
22
  /**
@@ -33,6 +33,7 @@ import useInsertionPoint from './hooks/use-insertion-point';
33
33
  import { store as blockEditorStore } from '../../store';
34
34
  import TabbedSidebar from '../tabbed-sidebar';
35
35
  import { useZoomOut } from '../../hooks/use-zoom-out';
36
+ import { unlock } from '../../lock-unlock';
36
37
 
37
38
  const NOOP = () => {};
38
39
  function InserterMenu(
@@ -54,8 +55,7 @@ function InserterMenu(
54
55
  ref
55
56
  ) {
56
57
  const isZoomOutMode = useSelect(
57
- ( select ) =>
58
- select( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',
58
+ ( select ) => unlock( select( blockEditorStore ) ).isZoomOut(),
59
59
  []
60
60
  );
61
61
  const [ filterValue, setFilterValue, delayedFilterValue ] =
@@ -67,6 +67,8 @@ function InserterMenu(
67
67
  const [ patternFilter, setPatternFilter ] = useState( 'all' );
68
68
  const [ selectedMediaCategory, setSelectedMediaCategory ] =
69
69
  useState( null );
70
+ const isLargeViewport = useViewportMatch( 'large' );
71
+
70
72
  function getInitialTab() {
71
73
  if ( __experimentalInitialTab ) {
72
74
  return __experimentalInitialTab;
@@ -80,7 +82,7 @@ function InserterMenu(
80
82
 
81
83
  const shouldUseZoomOut =
82
84
  selectedTab === 'patterns' || selectedTab === 'media';
83
- useZoomOut( shouldUseZoomOut );
85
+ useZoomOut( shouldUseZoomOut && isLargeViewport );
84
86
 
85
87
  const [ destinationRootClientId, onInsertBlocks, onToggleInsertionPoint ] =
86
88
  useInsertionPoint( {
@@ -159,11 +159,6 @@ function InserterSearchResults( {
159
159
  const currentShownBlockTypes = useAsyncList( filteredBlockTypes, {
160
160
  step: INITIAL_INSERTER_RESULTS,
161
161
  } );
162
- const currentShownPatterns = useAsyncList(
163
- currentShownBlockTypes.length === filteredBlockTypes.length
164
- ? filteredBlockPatterns
165
- : EMPTY_ARRAY
166
- );
167
162
 
168
163
  const hasItems =
169
164
  filteredBlockTypes.length > 0 || filteredBlockPatterns.length > 0;
@@ -190,7 +185,6 @@ function InserterSearchResults( {
190
185
  >
191
186
  <div className="block-editor-inserter__quick-inserter-patterns">
192
187
  <BlockPatternsList
193
- shownPatterns={ currentShownPatterns }
194
188
  blockPatterns={ filteredBlockPatterns }
195
189
  onClickPattern={ onClickPattern }
196
190
  onHover={ onHoverPattern }
@@ -123,6 +123,12 @@ $block-inserter-tabs-height: 44px;
123
123
  }
124
124
 
125
125
  .block-editor-inserter__panel-header {
126
+ // Use `position: relative` to ensure any absolute positioned child elements are
127
+ // positioned relative to the panel header.
128
+ // This makes the overflow rule of the panel work correctly, particularly when the
129
+ // `VisuallyHidden` component is used within the inserter UI.
130
+ position: relative;
131
+
126
132
  display: inline-flex;
127
133
  align-items: center;
128
134
  padding: $grid-unit-20 $grid-unit-20 0;
@@ -260,6 +266,13 @@ $block-inserter-tabs-height: 44px;
260
266
  margin-top: $grid-unit-30;
261
267
  }
262
268
 
269
+ .block-editor-inserter__patterns-filter-help {
270
+ padding: $grid-unit-20;
271
+ border-top: $border-width solid $gray-300;
272
+ color: $gray-700;
273
+ min-width: 280px;
274
+ }
275
+
263
276
  .block-editor-inserter__media-list,
264
277
  .block-editor-block-patterns-list {
265
278
  overflow-y: auto;
@@ -54,7 +54,7 @@ class MenuItem extends Component {
54
54
  const accessibilityLabelFormat = blockIsNew
55
55
  ? // translators: Newly available block name. %s: The localized block name
56
56
  __( '%s block, newly available' )
57
- : // translators: Block name. %s: The localized block name
57
+ : // translators: %s: Block name e.g. "Image block"
58
58
  __( '%s block' );
59
59
  const accessibilityLabel = sprintf(
60
60
  accessibilityLabelFormat,
@@ -46,18 +46,13 @@ export default function InspectorControlsTabs( {
46
46
  <Tabs.TabList>
47
47
  { tabs.map( ( tab ) =>
48
48
  showIconLabels ? (
49
- <Tabs.Tab
50
- key={ tab.name }
51
- tabId={ tab.name }
52
- className={ tab.className }
53
- >
49
+ <Tabs.Tab key={ tab.name } tabId={ tab.name }>
54
50
  { tab.title }
55
51
  </Tabs.Tab>
56
52
  ) : (
57
53
  <Tooltip text={ tab.title } key={ tab.name }>
58
54
  <Tabs.Tab
59
55
  tabId={ tab.name }
60
- className={ tab.className }
61
56
  aria-label={ tab.title }
62
57
  >
63
58
  <Icon icon={ tab.icon } />
@@ -9,7 +9,6 @@ export const TAB_SETTINGS = {
9
9
  title: __( 'Settings' ),
10
10
  value: 'settings',
11
11
  icon: cog,
12
- className: 'block-editor-block-inspector__tab-item',
13
12
  };
14
13
 
15
14
  export const TAB_STYLES = {
@@ -17,7 +16,6 @@ export const TAB_STYLES = {
17
16
  title: __( 'Styles' ),
18
17
  value: 'styles',
19
18
  icon: styles,
20
- className: 'block-editor-block-inspector__tab-item',
21
19
  };
22
20
 
23
21
  export const TAB_LIST_VIEW = {
@@ -25,5 +23,4 @@ export const TAB_LIST_VIEW = {
25
23
  title: __( 'List View' ),
26
24
  value: 'list-view',
27
25
  icon: listView,
28
- className: 'block-editor-block-inspector__tab-item',
29
26
  };
@@ -6,7 +6,7 @@ import clsx from 'clsx';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { __, sprintf } from '@wordpress/i18n';
9
+ import { __ } from '@wordpress/i18n';
10
10
  import {
11
11
  Button,
12
12
  ExternalLink,
@@ -96,7 +96,8 @@ export default function LinkPreview( {
96
96
 
97
97
  return (
98
98
  <div
99
- aria-label={ __( 'Currently selected' ) }
99
+ role="group"
100
+ aria-label={ __( 'Manage link' ) }
100
101
  className={ clsx( 'block-editor-link-control__search-item', {
101
102
  'is-current': true,
102
103
  'is-rich': hasRichData,
@@ -107,7 +108,14 @@ export default function LinkPreview( {
107
108
  } ) }
108
109
  >
109
110
  <div className="block-editor-link-control__search-item-top">
110
- <span className="block-editor-link-control__search-item-header">
111
+ <span
112
+ className="block-editor-link-control__search-item-header"
113
+ role="figure"
114
+ aria-label={
115
+ /* translators: Accessibility text for the link preview when editing a link. */
116
+ __( 'Link information' )
117
+ }
118
+ >
111
119
  <span
112
120
  className={ clsx(
113
121
  'block-editor-link-control__search-item-icon',
@@ -149,6 +157,7 @@ export default function LinkPreview( {
149
157
  label={ __( 'Edit link' ) }
150
158
  onClick={ onEditClick }
151
159
  size="compact"
160
+ showTooltip={ ! showIconLabels }
152
161
  />
153
162
  { hasUnlinkControl && (
154
163
  <Button
@@ -156,19 +165,17 @@ export default function LinkPreview( {
156
165
  label={ __( 'Remove link' ) }
157
166
  onClick={ onRemove }
158
167
  size="compact"
168
+ showTooltip={ ! showIconLabels }
159
169
  />
160
170
  ) }
161
171
  <Button
162
172
  icon={ copySmall }
163
- label={ sprintf(
164
- // Translators: %s is a placeholder for the link URL and an optional colon, (if a Link URL is present).
165
- __( 'Copy link%s' ), // Ends up looking like "Copy link: https://example.com".
166
- isEmptyURL || showIconLabels ? '' : ': ' + value.url
167
- ) }
173
+ label={ __( 'Copy link' ) }
168
174
  ref={ ref }
169
175
  accessibleWhenDisabled
170
176
  disabled={ isEmptyURL }
171
177
  size="compact"
178
+ showTooltip={ ! showIconLabels }
172
179
  />
173
180
  <ViewerSlot fillProps={ value } />
174
181
  </div>
@@ -373,7 +373,9 @@ describe( 'Basic rendering', () => {
373
373
  />
374
374
  );
375
375
 
376
- const linkPreview = screen.getByLabelText( 'Currently selected' );
376
+ const linkPreview = screen.getByRole( 'group', {
377
+ name: 'Manage link',
378
+ } );
377
379
 
378
380
  const isPreviewError = linkPreview.classList.contains( 'is-error' );
379
381
  expect( isPreviewError ).toBe( true );
@@ -834,7 +836,9 @@ describe( 'Manual link entry', () => {
834
836
 
835
837
  render( <LinkControlConsumer /> );
836
838
 
837
- let linkPreview = screen.getByLabelText( 'Currently selected' );
839
+ let linkPreview = screen.getByRole( 'group', {
840
+ name: 'Manage link',
841
+ } );
838
842
 
839
843
  expect( linkPreview ).toBeInTheDocument();
840
844
 
@@ -868,7 +872,9 @@ describe( 'Manual link entry', () => {
868
872
  // Cancel the editing process.
869
873
  await user.click( cancelButton );
870
874
 
871
- linkPreview = screen.getByLabelText( 'Currently selected' );
875
+ linkPreview = screen.getByRole( 'group', {
876
+ name: 'Manage link',
877
+ } );
872
878
 
873
879
  expect( linkPreview ).toBeInTheDocument();
874
880
 
@@ -1076,7 +1082,9 @@ describe( 'Default search suggestions', () => {
1076
1082
 
1077
1083
  // Click the "Edit/Change" button and check initial suggestions are not
1078
1084
  // shown.
1079
- const currentLinkUI = screen.getByLabelText( 'Currently selected' );
1085
+ const currentLinkUI = screen.getByRole( 'group', {
1086
+ name: 'Manage link',
1087
+ } );
1080
1088
  const currentLinkBtn = within( currentLinkUI ).getByRole( 'button', {
1081
1089
  name: 'Edit link',
1082
1090
  } );
@@ -1230,8 +1238,9 @@ describe( 'Creating Entities (eg: Posts, Pages)', () => {
1230
1238
 
1231
1239
  // Check for loading indicator.
1232
1240
  const loadingIndicator = screen.getByText( 'Creating…' );
1233
- const currentLinkLabel =
1234
- screen.queryByLabelText( 'Currently selected' );
1241
+ const currentLinkLabel = screen.queryByRole( 'group', {
1242
+ name: 'Manage link',
1243
+ } );
1235
1244
 
1236
1245
  expect( currentLinkLabel ).not.toBeInTheDocument();
1237
1246
  expect( loadingIndicator ).toBeVisible();
@@ -1242,8 +1251,9 @@ describe( 'Creating Entities (eg: Posts, Pages)', () => {
1242
1251
  // Resolve the `createSuggestion` promise.
1243
1252
  resolver();
1244
1253
 
1245
- const currentLink =
1246
- await screen.findByLabelText( 'Currently selected' );
1254
+ const currentLink = await screen.findByRole( 'group', {
1255
+ name: 'Manage link',
1256
+ } );
1247
1257
 
1248
1258
  expect( currentLink ).toHaveTextContent( entityNameText );
1249
1259
  expect( currentLink ).toHaveTextContent( '/?p=123' );
@@ -1291,7 +1301,9 @@ describe( 'Creating Entities (eg: Posts, Pages)', () => {
1291
1301
 
1292
1302
  await user.click( createButton );
1293
1303
 
1294
- const currentLink = screen.getByLabelText( 'Currently selected' );
1304
+ const currentLink = screen.getByRole( 'group', {
1305
+ name: 'Manage link',
1306
+ } );
1295
1307
 
1296
1308
  expect( currentLink ).toHaveTextContent( 'Some new page to create' );
1297
1309
  expect( currentLink ).toHaveTextContent( '/?p=123' );
@@ -1350,7 +1362,9 @@ describe( 'Creating Entities (eg: Posts, Pages)', () => {
1350
1362
  triggerEnter( searchInput );
1351
1363
 
1352
1364
  expect(
1353
- await screen.findByLabelText( 'Currently selected' )
1365
+ await screen.findByRole( 'group', {
1366
+ name: 'Manage link',
1367
+ } )
1354
1368
  ).toHaveTextContent( entityNameText );
1355
1369
  } );
1356
1370
 
@@ -1529,7 +1543,9 @@ describe( 'Selecting links', () => {
1529
1543
 
1530
1544
  render( <LinkControlConsumer /> );
1531
1545
 
1532
- const currentLink = screen.getByLabelText( 'Currently selected' );
1546
+ const currentLink = screen.getByRole( 'group', {
1547
+ name: 'Manage link',
1548
+ } );
1533
1549
  const currentLinkAnchor = screen.getByRole( 'link', {
1534
1550
  name: `${ selectedLink.title } (opens in a new tab)`,
1535
1551
  } );
@@ -1559,7 +1575,9 @@ describe( 'Selecting links', () => {
1559
1575
  render( <LinkControlConsumer /> );
1560
1576
 
1561
1577
  // Required in order to select the button below.
1562
- let currentLinkUI = screen.getByLabelText( 'Currently selected' );
1578
+ let currentLinkUI = screen.getByRole( 'group', {
1579
+ name: 'Manage link',
1580
+ } );
1563
1581
  const currentLinkBtn = within( currentLinkUI ).getByRole( 'button', {
1564
1582
  name: 'Edit link',
1565
1583
  } );
@@ -1570,7 +1588,9 @@ describe( 'Selecting links', () => {
1570
1588
  const searchInput = screen.getByRole( 'combobox', {
1571
1589
  name: 'Search or type URL',
1572
1590
  } );
1573
- currentLinkUI = screen.queryByLabelText( 'Currently selected' );
1591
+ currentLinkUI = screen.queryByRole( 'group', {
1592
+ name: 'Manage link',
1593
+ } );
1574
1594
 
1575
1595
  // We should be back to showing the search input.
1576
1596
  expect( searchInput ).toBeVisible();
@@ -1733,8 +1753,9 @@ describe( 'Selecting links', () => {
1733
1753
  triggerEnter( searchInput );
1734
1754
 
1735
1755
  // Check that the suggestion selected via is now shown as selected.
1736
- const currentLink =
1737
- screen.getByLabelText( 'Currently selected' );
1756
+ const currentLink = screen.getByRole( 'group', {
1757
+ name: 'Manage link',
1758
+ } );
1738
1759
  const currentLinkAnchor = screen.getByRole( 'link', {
1739
1760
  name: `${ selectedLink.title } (opens in a new tab)`,
1740
1761
  } );
@@ -2127,7 +2148,9 @@ describe( 'Rich link previews', () => {
2127
2148
 
2128
2149
  render( <LinkControl value={ selectedLink } /> );
2129
2150
 
2130
- const linkPreview = screen.getByLabelText( 'Currently selected' );
2151
+ const linkPreview = screen.getByRole( 'group', {
2152
+ name: 'Manage link',
2153
+ } );
2131
2154
 
2132
2155
  const isRichLinkPreview = linkPreview.classList.contains( 'is-rich' );
2133
2156
 
@@ -2148,7 +2171,9 @@ describe( 'Rich link previews', () => {
2148
2171
 
2149
2172
  render( <LinkControl value={ selectedLink } hasRichPreviews /> );
2150
2173
 
2151
- const linkPreview = screen.getByLabelText( 'Currently selected' );
2174
+ const linkPreview = screen.getByRole( 'group', {
2175
+ name: 'Manage link',
2176
+ } );
2152
2177
 
2153
2178
  await waitFor( () => expect( linkPreview ).toHaveClass( 'is-rich' ) );
2154
2179
  } );
@@ -2165,7 +2190,9 @@ describe( 'Rich link previews', () => {
2165
2190
 
2166
2191
  render( <LinkControl value={ selectedLink } hasRichPreviews /> );
2167
2192
 
2168
- const linkPreview = screen.getByLabelText( 'Currently selected' );
2193
+ const linkPreview = screen.getByRole( 'group', {
2194
+ name: 'Manage link',
2195
+ } );
2169
2196
 
2170
2197
  await waitFor( () => expect( linkPreview ).toHaveClass( 'is-rich' ) );
2171
2198
 
@@ -2197,7 +2224,9 @@ describe( 'Rich link previews', () => {
2197
2224
 
2198
2225
  render( <LinkControl value={ selectedLink } hasRichPreviews /> );
2199
2226
 
2200
- const linkPreview = screen.getByLabelText( 'Currently selected' );
2227
+ const linkPreview = screen.getByRole( 'group', {
2228
+ name: 'Manage link',
2229
+ } );
2201
2230
 
2202
2231
  await waitFor( () => expect( linkPreview ).toHaveClass( 'is-rich' ) );
2203
2232
 
@@ -2221,7 +2250,9 @@ describe( 'Rich link previews', () => {
2221
2250
 
2222
2251
  render( <LinkControl value={ selectedLink } hasRichPreviews /> );
2223
2252
 
2224
- const linkPreview = screen.getByLabelText( 'Currently selected' );
2253
+ const linkPreview = screen.getByRole( 'group', {
2254
+ name: 'Manage link',
2255
+ } );
2225
2256
 
2226
2257
  await waitFor( () => expect( linkPreview ).toHaveClass( 'is-rich' ) );
2227
2258
 
@@ -2256,7 +2287,9 @@ describe( 'Rich link previews', () => {
2256
2287
 
2257
2288
  render( <LinkControl value={ selectedLink } hasRichPreviews /> );
2258
2289
 
2259
- const linkPreview = screen.getByLabelText( 'Currently selected' );
2290
+ const linkPreview = screen.getByRole( 'group', {
2291
+ name: 'Manage link',
2292
+ } );
2260
2293
 
2261
2294
  await waitFor( () =>
2262
2295
  expect( linkPreview ).toHaveClass( 'is-rich' )
@@ -2281,7 +2314,9 @@ describe( 'Rich link previews', () => {
2281
2314
 
2282
2315
  render( <LinkControl value={ selectedLink } hasRichPreviews /> );
2283
2316
 
2284
- const linkPreview = screen.getByLabelText( 'Currently selected' );
2317
+ const linkPreview = screen.getByRole( 'group', {
2318
+ name: 'Manage link',
2319
+ } );
2285
2320
 
2286
2321
  expect( linkPreview ).toHaveClass( 'is-fetching' );
2287
2322
 
@@ -2300,7 +2335,9 @@ describe( 'Rich link previews', () => {
2300
2335
 
2301
2336
  render( <LinkControl value={ selectedLink } hasRichPreviews /> );
2302
2337
 
2303
- const linkPreview = screen.getByLabelText( 'Currently selected' );
2338
+ const linkPreview = screen.getByRole( 'group', {
2339
+ name: 'Manage link',
2340
+ } );
2304
2341
 
2305
2342
  expect( linkPreview ).toHaveClass( 'is-fetching' );
2306
2343
  expect( linkPreview ).not.toHaveClass( 'is-rich' );
@@ -2313,7 +2350,9 @@ describe( 'Rich link previews', () => {
2313
2350
 
2314
2351
  render( <LinkControl value={ selectedLink } hasRichPreviews /> );
2315
2352
 
2316
- const linkPreview = screen.getByLabelText( 'Currently selected' );
2353
+ const linkPreview = screen.getByRole( 'group', {
2354
+ name: 'Manage link',
2355
+ } );
2317
2356
 
2318
2357
  expect( linkPreview ).toHaveClass( 'is-fetching' );
2319
2358
 
@@ -15,6 +15,7 @@ import useBlockDisplayTitle from '../block-title/use-block-display-title';
15
15
  import { useListViewContext } from './context';
16
16
  import Inserter from '../inserter';
17
17
  import AriaReferencedText from './aria-referenced-text';
18
+ import { unlock } from '../../lock-unlock';
18
19
 
19
20
  export const Appender = forwardRef(
20
21
  ( { nestingLevel, blockCount, clientId, ...props }, ref ) => {
@@ -23,13 +24,11 @@ export const Appender = forwardRef(
23
24
  const instanceId = useInstanceId( Appender );
24
25
  const hideInserter = useSelect(
25
26
  ( select ) => {
26
- const { getTemplateLock, __unstableGetEditorMode } =
27
- select( blockEditorStore );
28
-
29
- return (
30
- !! getTemplateLock( clientId ) ||
31
- __unstableGetEditorMode() === 'zoom-out'
27
+ const { getTemplateLock, isZoomOut } = unlock(
28
+ select( blockEditorStore )
32
29
  );
30
+
31
+ return !! getTemplateLock( clientId ) || isZoomOut();
33
32
  },
34
33
  [ clientId ]
35
34
  );
@@ -5,7 +5,7 @@ import {
5
5
  __experimentalTreeGridRow as TreeGridRow,
6
6
  __experimentalTreeGridCell as TreeGridCell,
7
7
  } from '@wordpress/components';
8
- import { memo } from '@wordpress/element';
8
+ import { memo, useRef } from '@wordpress/element';
9
9
  import { AsyncModeProvider, useSelect } from '@wordpress/data';
10
10
 
11
11
  /**
@@ -123,6 +123,8 @@ function ListViewBranch( props ) {
123
123
  draggedClientIds,
124
124
  } = useListViewContext();
125
125
 
126
+ const nextPositionRef = useRef();
127
+
126
128
  if ( ! canParentExpand ) {
127
129
  return null;
128
130
  }
@@ -133,7 +135,7 @@ function ListViewBranch( props ) {
133
135
  const blockCount = filteredBlocks.length;
134
136
  // The appender means an extra row in List View, so add 1 to the row count.
135
137
  const rowCount = showAppender ? blockCount + 1 : blockCount;
136
- let nextPosition = listPosition;
138
+ nextPositionRef.current = listPosition;
137
139
 
138
140
  return (
139
141
  <>
@@ -141,7 +143,7 @@ function ListViewBranch( props ) {
141
143
  const { clientId, innerBlocks } = block;
142
144
 
143
145
  if ( index > 0 ) {
144
- nextPosition += countBlocks(
146
+ nextPositionRef.current += countBlocks(
145
147
  filteredBlocks[ index - 1 ],
146
148
  expandedState,
147
149
  draggedClientIds,
@@ -165,7 +167,7 @@ function ListViewBranch( props ) {
165
167
  } );
166
168
 
167
169
  const { itemInView } = fixedListWindow;
168
- const blockInView = itemInView( nextPosition );
170
+ const blockInView = itemInView( nextPositionRef.current );
169
171
 
170
172
  const position = index + 1;
171
173
  const updatedPath =
@@ -218,7 +220,7 @@ function ListViewBranch( props ) {
218
220
  showBlockMovers={ showBlockMovers }
219
221
  path={ updatedPath }
220
222
  isExpanded={ isDragged ? false : shouldExpand }
221
- listPosition={ nextPosition }
223
+ listPosition={ nextPositionRef.current }
222
224
  selectedClientIds={ selectedClientIds }
223
225
  isSyncedBranch={ syncedBranch }
224
226
  displacement={ displacement }
@@ -239,7 +241,7 @@ function ListViewBranch( props ) {
239
241
  showBlockMovers={ showBlockMovers }
240
242
  level={ level + 1 }
241
243
  path={ updatedPath }
242
- listPosition={ nextPosition + 1 }
244
+ listPosition={ nextPositionRef.current + 1 }
243
245
  fixedListWindow={ fixedListWindow }
244
246
  isBranchSelected={ isSelectedBranch }
245
247
  selectedClientIds={ selectedClientIds }
@@ -185,8 +185,7 @@ function ListViewComponent(
185
185
  if ( selectedClientIds?.length ) {
186
186
  focusListItem( selectedClientIds[ 0 ], elementRef?.current );
187
187
  }
188
- // Disable reason: Only focus on the selected item when the list view is mounted.
189
- // eslint-disable-next-line react-hooks/exhaustive-deps
188
+ // Only focus on the selected item when the list view is mounted.
190
189
  }, [] );
191
190
 
192
191
  const expand = useCallback(
@@ -317,20 +317,20 @@ export function MediaPlaceholder( {
317
317
 
318
318
  if ( instructions === undefined && mediaUpload ) {
319
319
  instructions = __(
320
- 'Upload a media file or pick one from your media library.'
320
+ 'Drag and drop an image or video, upload, or choose from your library.'
321
321
  );
322
322
 
323
323
  if ( isAudio ) {
324
324
  instructions = __(
325
- 'Upload or drag an audio file here, or pick one from your library.'
325
+ 'Drag and drop an audio file, upload, or choose from your library.'
326
326
  );
327
327
  } else if ( isImage ) {
328
328
  instructions = __(
329
- 'Upload or drag an image file here, or pick one from your library.'
329
+ 'Drag and drop an image, upload, or choose from your library.'
330
330
  );
331
331
  } else if ( isVideo ) {
332
332
  instructions = __(
333
- 'Upload or drag a video file here, or pick one from your library.'
333
+ 'Drag and drop a video, upload, or choose from your library.'
334
334
  );
335
335
  }
336
336
  }
@@ -46,9 +46,7 @@ export const ExperimentalBlockEditorProvider = withRegistryProvider(
46
46
 
47
47
  return (
48
48
  <SlotFillProvider passthrough>
49
- { ! settings?.__unstableIsPreviewMode && (
50
- <KeyboardShortcuts.Register />
51
- ) }
49
+ { ! settings?.isPreviewMode && <KeyboardShortcuts.Register /> }
52
50
  <BlockRefsProvider>{ children }</BlockRefsProvider>
53
51
  </SlotFillProvider>
54
52
  );