@wordpress/block-editor 14.5.0 → 14.6.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 (431) hide show
  1. package/CHANGELOG.md +2 -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 +1 -1
  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-paging/index.js +1 -1
  26. package/build/components/block-patterns-paging/index.js.map +1 -1
  27. package/build/components/block-popover/index.js +2 -45
  28. package/build/components/block-popover/index.js.map +1 -1
  29. package/build/components/block-preview/index.js +2 -2
  30. package/build/components/block-preview/index.js.map +1 -1
  31. package/build/components/block-settings-menu/block-settings-dropdown.js +5 -0
  32. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  33. package/build/components/block-settings-menu/index.js +4 -3
  34. package/build/components/block-settings-menu/index.js.map +1 -1
  35. package/build/components/block-toolbar/change-design.js +122 -0
  36. package/build/components/block-toolbar/change-design.js.map +1 -0
  37. package/build/components/block-toolbar/index.js +19 -7
  38. package/build/components/block-toolbar/index.js.map +1 -1
  39. package/build/components/block-tools/index.js +4 -10
  40. package/build/components/block-tools/index.js.map +1 -1
  41. package/build/components/block-tools/insertion-point.js +4 -3
  42. package/build/components/block-tools/insertion-point.js.map +1 -1
  43. package/build/components/block-tools/use-show-block-tools.js +3 -9
  44. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  45. package/build/components/block-tools/zoom-out-mode-inserters.js +20 -29
  46. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  47. package/build/components/block-variation-transforms/index.js +2 -2
  48. package/build/components/block-variation-transforms/index.js.map +1 -1
  49. package/build/components/block-vertical-alignment-control/ui.js +6 -10
  50. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  51. package/build/components/border-radius-control/linked-button.js +7 -10
  52. package/build/components/border-radius-control/linked-button.js.map +1 -1
  53. package/build/components/collab/block-comment-icon-slot.js +18 -0
  54. package/build/components/collab/block-comment-icon-slot.js.map +1 -0
  55. package/build/components/collab/block-comment-icon-toolbar-slot.js +18 -0
  56. package/build/components/collab/block-comment-icon-toolbar-slot.js.map +1 -0
  57. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +7 -1
  58. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  59. package/build/components/convert-to-group-buttons/toolbar.js +4 -4
  60. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  61. package/build/components/global-styles/color-panel.js +1 -4
  62. package/build/components/global-styles/color-panel.js.map +1 -1
  63. package/build/components/global-styles/use-global-styles-context.native.js +6 -0
  64. package/build/components/global-styles/use-global-styles-context.native.js.map +1 -1
  65. package/build/components/iframe/index.js +17 -22
  66. package/build/components/iframe/index.js.map +1 -1
  67. package/build/components/image-size-control/index.js +61 -20
  68. package/build/components/image-size-control/index.js.map +1 -1
  69. package/build/components/inner-blocks/index.js +9 -5
  70. package/build/components/inner-blocks/index.js.map +1 -1
  71. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -2
  72. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  73. package/build/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  74. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  75. package/build/components/inserter/category-tabs/index.js +15 -2
  76. package/build/components/inserter/category-tabs/index.js.map +1 -1
  77. package/build/components/inserter/menu.js +4 -2
  78. package/build/components/inserter/menu.js.map +1 -1
  79. package/build/components/inserter-button/index.native.js +1 -1
  80. package/build/components/inserter-button/index.native.js.map +1 -1
  81. package/build/components/inspector-controls-tabs/index.js +0 -2
  82. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  83. package/build/components/inspector-controls-tabs/utils.js +3 -6
  84. package/build/components/inspector-controls-tabs/utils.js.map +1 -1
  85. package/build/components/link-control/link-preview.js +12 -9
  86. package/build/components/link-control/link-preview.js.map +1 -1
  87. package/build/components/list-view/appender.js +4 -3
  88. package/build/components/list-view/appender.js.map +1 -1
  89. package/build/components/list-view/branch.js +6 -5
  90. package/build/components/list-view/branch.js.map +1 -1
  91. package/build/components/list-view/index.js +1 -2
  92. package/build/components/list-view/index.js.map +1 -1
  93. package/build/components/provider/index.js +1 -1
  94. package/build/components/provider/index.js.map +1 -1
  95. package/build/components/rich-text/event-listeners/index.js +3 -1
  96. package/build/components/rich-text/event-listeners/index.js.map +1 -1
  97. package/build/components/rich-text/index.native.js +2 -6
  98. package/build/components/rich-text/index.native.js.map +1 -1
  99. package/build/components/spacing-sizes-control/index.js +2 -2
  100. package/build/components/spacing-sizes-control/index.js.map +1 -1
  101. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -3
  102. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  103. package/build/components/spacing-sizes-control/linked-button.js +1 -5
  104. package/build/components/spacing-sizes-control/linked-button.js.map +1 -1
  105. package/build/components/tool-selector/index.js +1 -4
  106. package/build/components/tool-selector/index.js.map +1 -1
  107. package/build/components/url-input/index.js +1 -1
  108. package/build/components/url-input/index.js.map +1 -1
  109. package/build/components/use-block-commands/index.js +1 -1
  110. package/build/components/use-block-commands/index.js.map +1 -1
  111. package/build/components/use-block-drop-zone/index.js +5 -5
  112. package/build/components/use-block-drop-zone/index.js.map +1 -1
  113. package/build/components/use-block-drop-zone/index.native.js +0 -1
  114. package/build/components/use-block-drop-zone/index.native.js.map +1 -1
  115. package/build/components/use-moving-animation/index.js +1 -3
  116. package/build/components/use-moving-animation/index.js.map +1 -1
  117. package/build/components/use-settings/index.js +1 -3
  118. package/build/components/use-settings/index.js.map +1 -1
  119. package/build/components/writing-flow/index.js +5 -3
  120. package/build/components/writing-flow/index.js.map +1 -1
  121. package/build/components/writing-flow/use-tab-nav.js +2 -3
  122. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  123. package/build/hooks/block-bindings.js +19 -8
  124. package/build/hooks/block-bindings.js.map +1 -1
  125. package/build/hooks/contrast-checker.js +0 -1
  126. package/build/hooks/contrast-checker.js.map +1 -1
  127. package/build/hooks/duotone.js +2 -2
  128. package/build/hooks/duotone.js.map +1 -1
  129. package/build/hooks/style.js +4 -1
  130. package/build/hooks/style.js.map +1 -1
  131. package/build/hooks/use-zoom-out.js +13 -22
  132. package/build/hooks/use-zoom-out.js.map +1 -1
  133. package/build/index.js +0 -7
  134. package/build/index.js.map +1 -1
  135. package/build/private-apis.js +6 -3
  136. package/build/private-apis.js.map +1 -1
  137. package/build/store/actions.js +2 -33
  138. package/build/store/actions.js.map +1 -1
  139. package/build/store/defaults.js +1 -1
  140. package/build/store/defaults.js.map +1 -1
  141. package/build/store/private-actions.js +57 -8
  142. package/build/store/private-actions.js.map +1 -1
  143. package/build/store/private-selectors.js +9 -21
  144. package/build/store/private-selectors.js.map +1 -1
  145. package/build/store/reducer.js +16 -6
  146. package/build/store/reducer.js.map +1 -1
  147. package/build/store/selectors.js +44 -7
  148. package/build/store/selectors.js.map +1 -1
  149. package/build/utils/dom.js +16 -1
  150. package/build/utils/dom.js.map +1 -1
  151. package/build/utils/get-font-styles-and-weights.js +1 -1
  152. package/build/utils/get-font-styles-and-weights.js.map +1 -1
  153. package/build/utils/transform-styles/index.js +4 -3
  154. package/build/utils/transform-styles/index.js.map +1 -1
  155. package/build-module/autocompleters/block.js +14 -6
  156. package/build-module/autocompleters/block.js.map +1 -1
  157. package/build-module/components/block-canvas/index.js +11 -1
  158. package/build-module/components/block-canvas/index.js.map +1 -1
  159. package/build-module/components/block-card/index.js +3 -3
  160. package/build-module/components/block-card/index.js.map +1 -1
  161. package/build-module/components/block-full-height-alignment-control/index.js +1 -1
  162. package/build-module/components/block-full-height-alignment-control/index.js.map +1 -1
  163. package/build-module/components/block-list/block.js +1 -1
  164. package/build-module/components/block-list/block.js.map +1 -1
  165. package/build-module/components/block-list/block.native.js +1 -7
  166. package/build-module/components/block-list/block.native.js.map +1 -1
  167. package/build-module/components/block-list/index.js +5 -5
  168. package/build-module/components/block-list/index.js.map +1 -1
  169. package/build-module/components/block-list/use-block-props/index.js +1 -2
  170. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  171. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -3
  172. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  173. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +3 -6
  174. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  175. package/build-module/components/block-list/use-in-between-inserter.js +1 -1
  176. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  177. package/build-module/components/block-patterns-paging/index.js +1 -1
  178. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  179. package/build-module/components/block-popover/index.js +2 -45
  180. package/build-module/components/block-popover/index.js.map +1 -1
  181. package/build-module/components/block-preview/index.js +2 -2
  182. package/build-module/components/block-preview/index.js.map +1 -1
  183. package/build-module/components/block-settings-menu/block-settings-dropdown.js +5 -0
  184. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  185. package/build-module/components/block-settings-menu/index.js +5 -4
  186. package/build-module/components/block-settings-menu/index.js.map +1 -1
  187. package/build-module/components/block-toolbar/change-design.js +114 -0
  188. package/build-module/components/block-toolbar/change-design.js.map +1 -0
  189. package/build-module/components/block-toolbar/index.js +19 -7
  190. package/build-module/components/block-toolbar/index.js.map +1 -1
  191. package/build-module/components/block-tools/index.js +4 -10
  192. package/build-module/components/block-tools/index.js.map +1 -1
  193. package/build-module/components/block-tools/insertion-point.js +4 -3
  194. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  195. package/build-module/components/block-tools/use-show-block-tools.js +3 -9
  196. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  197. package/build-module/components/block-tools/zoom-out-mode-inserters.js +20 -29
  198. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  199. package/build-module/components/block-variation-transforms/index.js +2 -2
  200. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  201. package/build-module/components/block-vertical-alignment-control/ui.js +6 -10
  202. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  203. package/build-module/components/border-radius-control/linked-button.js +8 -11
  204. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  205. package/build-module/components/collab/block-comment-icon-slot.js +11 -0
  206. package/build-module/components/collab/block-comment-icon-slot.js.map +1 -0
  207. package/build-module/components/collab/block-comment-icon-toolbar-slot.js +11 -0
  208. package/build-module/components/collab/block-comment-icon-toolbar-slot.js.map +1 -0
  209. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +7 -1
  210. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  211. package/build-module/components/convert-to-group-buttons/toolbar.js +4 -4
  212. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  213. package/build-module/components/global-styles/color-panel.js +2 -5
  214. package/build-module/components/global-styles/color-panel.js.map +1 -1
  215. package/build-module/components/global-styles/use-global-styles-context.native.js +6 -0
  216. package/build-module/components/global-styles/use-global-styles-context.native.js.map +1 -1
  217. package/build-module/components/iframe/index.js +17 -22
  218. package/build-module/components/iframe/index.js.map +1 -1
  219. package/build-module/components/image-size-control/index.js +62 -21
  220. package/build-module/components/image-size-control/index.js.map +1 -1
  221. package/build-module/components/inner-blocks/index.js +9 -5
  222. package/build-module/components/inner-blocks/index.js.map +1 -1
  223. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -2
  224. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  225. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  226. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  227. package/build-module/components/inserter/category-tabs/index.js +15 -2
  228. package/build-module/components/inserter/category-tabs/index.js.map +1 -1
  229. package/build-module/components/inserter/menu.js +5 -3
  230. package/build-module/components/inserter/menu.js.map +1 -1
  231. package/build-module/components/inserter-button/index.native.js +1 -1
  232. package/build-module/components/inserter-button/index.native.js.map +1 -1
  233. package/build-module/components/inspector-controls-tabs/index.js +0 -2
  234. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  235. package/build-module/components/inspector-controls-tabs/utils.js +3 -6
  236. package/build-module/components/inspector-controls-tabs/utils.js.map +1 -1
  237. package/build-module/components/link-control/link-preview.js +13 -10
  238. package/build-module/components/link-control/link-preview.js.map +1 -1
  239. package/build-module/components/list-view/appender.js +4 -3
  240. package/build-module/components/list-view/appender.js.map +1 -1
  241. package/build-module/components/list-view/branch.js +7 -6
  242. package/build-module/components/list-view/branch.js.map +1 -1
  243. package/build-module/components/list-view/index.js +1 -2
  244. package/build-module/components/list-view/index.js.map +1 -1
  245. package/build-module/components/provider/index.js +1 -1
  246. package/build-module/components/provider/index.js.map +1 -1
  247. package/build-module/components/rich-text/event-listeners/index.js +4 -2
  248. package/build-module/components/rich-text/event-listeners/index.js.map +1 -1
  249. package/build-module/components/rich-text/index.native.js +2 -6
  250. package/build-module/components/rich-text/index.native.js.map +1 -1
  251. package/build-module/components/spacing-sizes-control/index.js +3 -3
  252. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  253. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -4
  254. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  255. package/build-module/components/spacing-sizes-control/linked-button.js +2 -6
  256. package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -1
  257. package/build-module/components/tool-selector/index.js +1 -4
  258. package/build-module/components/tool-selector/index.js.map +1 -1
  259. package/build-module/components/url-input/index.js +1 -1
  260. package/build-module/components/url-input/index.js.map +1 -1
  261. package/build-module/components/use-block-commands/index.js +1 -1
  262. package/build-module/components/use-block-commands/index.js.map +1 -1
  263. package/build-module/components/use-block-drop-zone/index.js +5 -5
  264. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  265. package/build-module/components/use-block-drop-zone/index.native.js +0 -1
  266. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
  267. package/build-module/components/use-moving-animation/index.js +1 -3
  268. package/build-module/components/use-moving-animation/index.js.map +1 -1
  269. package/build-module/components/use-settings/index.js +1 -3
  270. package/build-module/components/use-settings/index.js.map +1 -1
  271. package/build-module/components/writing-flow/index.js +5 -3
  272. package/build-module/components/writing-flow/index.js.map +1 -1
  273. package/build-module/components/writing-flow/use-tab-nav.js +2 -3
  274. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  275. package/build-module/hooks/block-bindings.js +20 -9
  276. package/build-module/hooks/block-bindings.js.map +1 -1
  277. package/build-module/hooks/contrast-checker.js +0 -1
  278. package/build-module/hooks/contrast-checker.js.map +1 -1
  279. package/build-module/hooks/duotone.js +2 -2
  280. package/build-module/hooks/duotone.js.map +1 -1
  281. package/build-module/hooks/style.js +4 -1
  282. package/build-module/hooks/style.js.map +1 -1
  283. package/build-module/hooks/use-zoom-out.js +15 -23
  284. package/build-module/hooks/use-zoom-out.js.map +1 -1
  285. package/build-module/index.js +1 -1
  286. package/build-module/index.js.map +1 -1
  287. package/build-module/private-apis.js +7 -5
  288. package/build-module/private-apis.js.map +1 -1
  289. package/build-module/store/actions.js +2 -33
  290. package/build-module/store/actions.js.map +1 -1
  291. package/build-module/store/defaults.js +1 -1
  292. package/build-module/store/defaults.js.map +1 -1
  293. package/build-module/store/private-actions.js +54 -7
  294. package/build-module/store/private-actions.js.map +1 -1
  295. package/build-module/store/private-selectors.js +9 -20
  296. package/build-module/store/private-selectors.js.map +1 -1
  297. package/build-module/store/reducer.js +16 -6
  298. package/build-module/store/reducer.js.map +1 -1
  299. package/build-module/store/selectors.js +45 -8
  300. package/build-module/store/selectors.js.map +1 -1
  301. package/build-module/utils/dom.js +16 -1
  302. package/build-module/utils/dom.js.map +1 -1
  303. package/build-module/utils/get-font-styles-and-weights.js +2 -2
  304. package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
  305. package/build-module/utils/transform-styles/index.js +3 -2
  306. package/build-module/utils/transform-styles/index.js.map +1 -1
  307. package/build-style/content-rtl.css +9 -4
  308. package/build-style/content.css +9 -4
  309. package/build-style/style-rtl.css +33 -22
  310. package/build-style/style.css +33 -22
  311. package/build-types/utils/dom.d.ts.map +1 -1
  312. package/package.json +33 -32
  313. package/src/autocompleters/block.js +16 -7
  314. package/src/components/block-canvas/index.js +17 -1
  315. package/src/components/block-canvas/style.scss +2 -0
  316. package/src/components/block-card/index.js +3 -3
  317. package/src/components/block-full-height-alignment-control/index.js +1 -1
  318. package/src/components/block-inspector/style.scss +0 -6
  319. package/src/components/block-list/block.js +1 -2
  320. package/src/components/block-list/block.native.js +0 -4
  321. package/src/components/block-list/content.scss +1 -1
  322. package/src/components/block-list/index.js +4 -4
  323. package/src/components/block-list/use-block-props/index.js +0 -2
  324. package/src/components/block-list/use-block-props/use-focus-first-element.js +5 -3
  325. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +7 -20
  326. package/src/components/block-list/use-in-between-inserter.js +1 -1
  327. package/src/components/block-patterns-list/stories/fixtures.js +834 -0
  328. package/src/components/block-patterns-list/stories/index.story.js +81 -0
  329. package/src/components/block-patterns-list/style.scss +2 -0
  330. package/src/components/block-patterns-paging/index.js +1 -1
  331. package/src/components/block-popover/index.js +0 -62
  332. package/src/components/block-preview/index.js +2 -2
  333. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -0
  334. package/src/components/block-settings-menu/index.js +3 -0
  335. package/src/components/block-toolbar/change-design.js +133 -0
  336. package/src/components/block-toolbar/index.js +25 -8
  337. package/src/components/block-toolbar/style.scss +16 -0
  338. package/src/components/block-tools/index.js +4 -17
  339. package/src/components/block-tools/insertion-point.js +4 -3
  340. package/src/components/block-tools/style.scss +0 -20
  341. package/src/components/block-tools/use-show-block-tools.js +0 -13
  342. package/src/components/block-tools/zoom-out-mode-inserters.js +25 -40
  343. package/src/components/block-variation-transforms/index.js +2 -2
  344. package/src/components/block-vertical-alignment-control/ui.js +11 -15
  345. package/src/components/border-radius-control/linked-button.js +9 -11
  346. package/src/components/collab/block-comment-icon-slot.js +12 -0
  347. package/src/components/collab/block-comment-icon-toolbar-slot.js +12 -0
  348. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +7 -1
  349. package/src/components/convert-to-group-buttons/toolbar.js +4 -4
  350. package/src/components/global-styles/color-panel.js +2 -10
  351. package/src/components/global-styles/test/use-global-styles-context.native.js +1 -0
  352. package/src/components/global-styles/use-global-styles-context.native.js +6 -0
  353. package/src/components/iframe/content.scss +4 -9
  354. package/src/components/iframe/index.js +31 -34
  355. package/src/components/iframe/style.scss +2 -3
  356. package/src/components/image-size-control/index.js +74 -43
  357. package/src/components/image-size-control/test/index.js +5 -63
  358. package/src/components/inner-blocks/index.js +12 -6
  359. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -3
  360. package/src/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  361. package/src/components/inserter/category-tabs/index.js +16 -2
  362. package/src/components/inserter/menu.js +6 -4
  363. package/src/components/inserter/style.scss +13 -0
  364. package/src/components/inserter-button/index.native.js +1 -1
  365. package/src/components/inspector-controls-tabs/index.js +1 -6
  366. package/src/components/inspector-controls-tabs/utils.js +0 -3
  367. package/src/components/link-control/link-preview.js +15 -8
  368. package/src/components/link-control/test/index.js +63 -24
  369. package/src/components/list-view/appender.js +5 -6
  370. package/src/components/list-view/branch.js +8 -6
  371. package/src/components/list-view/index.js +1 -2
  372. package/src/components/provider/index.js +1 -3
  373. package/src/components/provider/test/experimental-provider.js +43 -1
  374. package/src/components/rich-text/event-listeners/index.js +4 -2
  375. package/src/components/rich-text/index.native.js +0 -2
  376. package/src/components/spacing-sizes-control/index.js +3 -3
  377. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -4
  378. package/src/components/spacing-sizes-control/linked-button.js +2 -12
  379. package/src/components/tool-selector/index.js +1 -5
  380. package/src/components/url-input/index.js +1 -1
  381. package/src/components/use-block-commands/index.js +1 -1
  382. package/src/components/use-block-drop-zone/index.js +5 -5
  383. package/src/components/use-block-drop-zone/index.native.js +0 -1
  384. package/src/components/use-moving-animation/index.js +0 -1
  385. package/src/components/use-settings/index.js +0 -1
  386. package/src/components/writing-flow/index.js +5 -3
  387. package/src/components/writing-flow/use-tab-nav.js +1 -2
  388. package/src/hooks/block-bindings.js +48 -31
  389. package/src/hooks/contrast-checker.js +0 -1
  390. package/src/hooks/duotone.js +2 -2
  391. package/src/hooks/style.js +7 -3
  392. package/src/hooks/use-zoom-out.js +14 -34
  393. package/src/index.js +0 -1
  394. package/src/private-apis.js +6 -3
  395. package/src/store/actions.js +3 -52
  396. package/src/store/defaults.js +2 -1
  397. package/src/store/private-actions.js +71 -8
  398. package/src/store/private-selectors.js +9 -19
  399. package/src/store/reducer.js +25 -11
  400. package/src/store/selectors.js +59 -8
  401. package/src/store/test/actions.js +41 -0
  402. package/src/store/test/reducer.js +23 -0
  403. package/src/utils/dom.js +22 -2
  404. package/src/utils/get-font-styles-and-weights.js +2 -2
  405. package/src/utils/transform-styles/index.js +3 -2
  406. package/tsconfig.tsbuildinfo +1 -1
  407. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +0 -57
  408. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +0 -1
  409. package/build/components/block-toolbar/shuffle.js +0 -110
  410. package/build/components/block-toolbar/shuffle.js.map +0 -1
  411. package/build/components/block-tools/zoom-out-popover.js +0 -58
  412. package/build/components/block-tools/zoom-out-popover.js.map +0 -1
  413. package/build/components/block-tools/zoom-out-toolbar.js +0 -132
  414. package/build/components/block-tools/zoom-out-toolbar.js.map +0 -1
  415. package/build/components/block-vertical-alignment-control/icons.js +0 -48
  416. package/build/components/block-vertical-alignment-control/icons.js.map +0 -1
  417. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +0 -51
  418. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +0 -1
  419. package/build-module/components/block-toolbar/shuffle.js +0 -103
  420. package/build-module/components/block-toolbar/shuffle.js.map +0 -1
  421. package/build-module/components/block-tools/zoom-out-popover.js +0 -49
  422. package/build-module/components/block-tools/zoom-out-popover.js.map +0 -1
  423. package/build-module/components/block-tools/zoom-out-toolbar.js +0 -124
  424. package/build-module/components/block-tools/zoom-out-toolbar.js.map +0 -1
  425. package/build-module/components/block-vertical-alignment-control/icons.js +0 -41
  426. package/build-module/components/block-vertical-alignment-control/icons.js.map +0 -1
  427. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +0 -65
  428. package/src/components/block-toolbar/shuffle.js +0 -111
  429. package/src/components/block-tools/zoom-out-popover.js +0 -47
  430. package/src/components/block-tools/zoom-out-toolbar.js +0 -135
  431. package/src/components/block-vertical-alignment-control/icons.js +0 -34
@@ -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(
@@ -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
  );
@@ -5,7 +5,7 @@ import { render } from '@testing-library/react';
5
5
  /**
6
6
  * WordPress dependencies
7
7
  */
8
- import { useRegistry } from '@wordpress/data';
8
+ import { useRegistry, useSelect } from '@wordpress/data';
9
9
 
10
10
  /**
11
11
  * Internal dependencies
@@ -21,6 +21,20 @@ const HasEditorSetting = ( props ) => {
21
21
  return <p>Test.</p>;
22
22
  };
23
23
 
24
+ const PreviewModeGetter = () => {
25
+ const previewModeKeys = useSelect( ( select ) => {
26
+ const { getSettings } = select( blockEditorStore );
27
+ const settings = getSettings();
28
+ return {
29
+ // This property will be removed in the future. There is a test that asserts we're throwing a deprecation warning.
30
+ __unstableIsPreviewMode: settings.__unstableIsPreviewMode,
31
+ isPreviewMode: settings.isPreviewMode,
32
+ };
33
+ }, [] );
34
+
35
+ return <>{ JSON.stringify( previewModeKeys ) }</>;
36
+ };
37
+
24
38
  describe( 'BlockEditorProvider', () => {
25
39
  let registry;
26
40
  const setRegistry = ( reg ) => {
@@ -58,6 +72,34 @@ describe( 'BlockEditorProvider', () => {
58
72
  const settings = registry.select( blockEditorStore ).getSettings();
59
73
  expect( settings ).toHaveProperty( 'stableSetting' );
60
74
  } );
75
+ it( 'preserves deprecated getters incoming from the settings reducer', async () => {
76
+ const consoleWarn = jest
77
+ .spyOn( global.console, 'warn' )
78
+ .mockImplementation();
79
+
80
+ const { container } = render(
81
+ <BlockEditorProvider
82
+ settings={ {
83
+ isPreviewMode: true,
84
+ } }
85
+ >
86
+ <PreviewModeGetter />
87
+ </BlockEditorProvider>
88
+ );
89
+
90
+ expect( container ).toHaveTextContent(
91
+ JSON.stringify( {
92
+ __unstableIsPreviewMode: true,
93
+ isPreviewMode: true,
94
+ } )
95
+ );
96
+
97
+ expect( consoleWarn ).toHaveBeenCalledWith(
98
+ '__unstableIsPreviewMode is deprecated since version 6.8. Please use isPreviewMode instead.'
99
+ );
100
+
101
+ consoleWarn.mockRestore();
102
+ } );
61
103
  } );
62
104
 
63
105
  describe( 'ExperimentalBlockEditorProvider', () => {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useMemo, useRef } from '@wordpress/element';
4
+ import { useMemo, useRef, useInsertionEffect } from '@wordpress/element';
5
5
  import { useRefEffect } from '@wordpress/compose';
6
6
 
7
7
  /**
@@ -35,7 +35,9 @@ const allEventListeners = [
35
35
 
36
36
  export function useEventListeners( props ) {
37
37
  const propsRef = useRef( props );
38
- propsRef.current = props;
38
+ useInsertionEffect( () => {
39
+ propsRef.current = props;
40
+ } );
39
41
  const refEffects = useMemo(
40
42
  () => allEventListeners.map( ( refEffect ) => refEffect( propsRef ) ),
41
43
  [ propsRef ]
@@ -212,7 +212,6 @@ export function RichTextWrapper(
212
212
  selectionChangeEnd
213
213
  );
214
214
  },
215
- // eslint-disable-next-line react-hooks/exhaustive-deps
216
215
  [ clientId, identifier ]
217
216
  );
218
217
 
@@ -368,7 +367,6 @@ export function RichTextWrapper(
368
367
  onChange( insert( value, '\n' ) );
369
368
  }
370
369
  },
371
- // eslint-disable-next-line react-hooks/exhaustive-deps
372
370
  [
373
371
  onReplace,
374
372
  onSplit,
@@ -7,7 +7,7 @@ import {
7
7
  __experimentalVStack as VStack,
8
8
  } from '@wordpress/components';
9
9
  import { useState } from '@wordpress/element';
10
- import { __, sprintf } from '@wordpress/i18n';
10
+ import { _x, sprintf } from '@wordpress/i18n';
11
11
 
12
12
  /**
13
13
  * Internal dependencies
@@ -89,8 +89,8 @@ export default function SpacingSizesControl( {
89
89
  ALL_SIDES.includes( view ) && showSideInLabel ? LABELS[ view ] : '';
90
90
 
91
91
  const label = sprintf(
92
- // translators: 2. Type of spacing being modified (Padding, margin, etc). 1: The side of the block being modified (top, bottom, left etc.).
93
- __( '%1$s %2$s' ),
92
+ // translators: 1: The side of the block being modified (top, bottom, left etc.). 2. Type of spacing being modified (padding, margin, etc).
93
+ _x( '%1$s %2$s', 'spacing' ),
94
94
  labelProp,
95
95
  sideLabel
96
96
  ).trim();
@@ -14,7 +14,7 @@ import {
14
14
  import { useSelect } from '@wordpress/data';
15
15
  import { useState, useMemo } from '@wordpress/element';
16
16
  import { usePrevious } from '@wordpress/compose';
17
- import { __, sprintf } from '@wordpress/i18n';
17
+ import { __, _x, sprintf } from '@wordpress/i18n';
18
18
  import { settings } from '@wordpress/icons';
19
19
 
20
20
  /**
@@ -124,7 +124,7 @@ export default function SpacingInputControl( {
124
124
  ...spacingSizes,
125
125
  {
126
126
  name: ! isMixed
127
- ? // translators: A custom measurement, eg. a number followed by a unit like 12px.
127
+ ? // translators: %s: A custom measurement, e.g. a number followed by a unit like 12px.
128
128
  sprintf( __( 'Custom (%s)' ), value )
129
129
  : __( 'Mixed' ),
130
130
  slug: 'custom',
@@ -200,8 +200,8 @@ export default function SpacingInputControl( {
200
200
  const typeLabel = showSideInLabel ? type?.toLowerCase() : type;
201
201
 
202
202
  const ariaLabel = sprintf(
203
- // translators: 1: The side of the block being modified (top, bottom, left, All sides etc.). 2. Type of spacing being modified (Padding, margin, etc)
204
- __( '%1$s %2$s' ),
203
+ // translators: 1: The side of the block being modified (top, bottom, left etc.). 2. Type of spacing being modified (padding, margin, etc).
204
+ _x( '%1$s %2$s', 'spacing' ),
205
205
  sideLabel,
206
206
  typeLabel
207
207
  ).trim();
@@ -3,20 +3,10 @@
3
3
  */
4
4
  import { Button, Tooltip } from '@wordpress/components';
5
5
  import { link, linkOff } from '@wordpress/icons';
6
- import { __, sprintf } from '@wordpress/i18n';
6
+ import { __ } from '@wordpress/i18n';
7
7
 
8
8
  export default function LinkedButton( { isLinked, ...props } ) {
9
- const label = isLinked
10
- ? sprintf(
11
- // translators: 1. Type of spacing being modified (padding, margin, etc).
12
- __( 'Unlink %1$s' ),
13
- props.label.toLowerCase()
14
- ).trim()
15
- : sprintf(
16
- // translators: 1. Type of spacing being modified (padding, margin, etc).
17
- __( 'Link %1$s' ),
18
- props.label.toLowerCase()
19
- ).trim();
9
+ const label = isLinked ? __( 'Unlink sides' ) : __( 'Link sides' );
20
10
 
21
11
  return (
22
12
  <Tooltip text={ label }>
@@ -18,7 +18,6 @@ import { Icon, edit as editIcon } from '@wordpress/icons';
18
18
  * Internal dependencies
19
19
  */
20
20
  import { store as blockEditorStore } from '../../store';
21
- import { unlock } from '../../lock-unlock';
22
21
 
23
22
  const selectIcon = (
24
23
  <SVG
@@ -36,9 +35,7 @@ function ToolSelector( props, ref ) {
36
35
  ( select ) => select( blockEditorStore ).__unstableGetEditorMode(),
37
36
  []
38
37
  );
39
- const { resetZoomLevel, __unstableSetEditorMode } = unlock(
40
- useDispatch( blockEditorStore )
41
- );
38
+ const { __unstableSetEditorMode } = useDispatch( blockEditorStore );
42
39
 
43
40
  return (
44
41
  <Dropdown
@@ -68,7 +65,6 @@ function ToolSelector( props, ref ) {
68
65
  mode === 'navigation' ? 'navigation' : 'edit'
69
66
  }
70
67
  onSelect={ ( newMode ) => {
71
- resetZoomLevel();
72
68
  __unstableSetEditorMode( newMode );
73
69
  } }
74
70
  choices={ [
@@ -196,7 +196,7 @@ class URLInput extends Component {
196
196
  if ( !! suggestions.length ) {
197
197
  this.props.debouncedSpeak(
198
198
  sprintf(
199
- /* translators: %s: number of results. */
199
+ /* translators: %d: number of results. */
200
200
  _n(
201
201
  '%d result found, use up and down arrow keys to navigate.',
202
202
  '%d results found, use up and down arrow keys to navigate.',
@@ -113,7 +113,7 @@ export const useTransformCommands = () => {
113
113
  const { name, title, icon } = transformation;
114
114
  return {
115
115
  name: 'core/block-editor/transform-to-' + name.replace( '/', '-' ),
116
- // translators: %s: block title/name.
116
+ /* translators: %s: Block or block variation name. */
117
117
  label: sprintf( __( 'Transform to %s' ), title ),
118
118
  icon: <BlockIcon icon={ icon } />,
119
119
  callback: ( { close } ) => {
@@ -287,7 +287,7 @@ function isInsertionPoint( targetToCheck, ownerDocument ) {
287
287
  return !! (
288
288
  defaultView &&
289
289
  targetToCheck instanceof defaultView.HTMLElement &&
290
- targetToCheck.dataset.isInsertionPoint
290
+ targetToCheck.closest( '[data-is-insertion-point]' )
291
291
  );
292
292
  }
293
293
 
@@ -330,7 +330,7 @@ export default function useBlockDropZone( {
330
330
  getAllowedBlocks,
331
331
  isDragging,
332
332
  isGroupable,
333
- isZoomOutMode,
333
+ isZoomOut,
334
334
  getSectionRootClientId,
335
335
  } = unlock( useSelect( blockEditorStore ) );
336
336
  const {
@@ -383,7 +383,7 @@ export default function useBlockDropZone( {
383
383
  // do not allow dropping as the drop target is not within the root (that which is
384
384
  // treated as "the content" by Zoom Out Mode).
385
385
  if (
386
- isZoomOutMode() &&
386
+ isZoomOut() &&
387
387
  sectionRootClientId !== targetRootClientId
388
388
  ) {
389
389
  return;
@@ -439,7 +439,7 @@ export default function useBlockDropZone( {
439
439
  const [ targetIndex, operation, nearestSide ] =
440
440
  dropTargetPosition;
441
441
 
442
- if ( isZoomOutMode() && operation !== 'insert' ) {
442
+ if ( isZoomOut() && operation !== 'insert' ) {
443
443
  return;
444
444
  }
445
445
 
@@ -514,7 +514,7 @@ export default function useBlockDropZone( {
514
514
  getDraggedBlockClientIds,
515
515
  getBlockType,
516
516
  getSectionRootClientId,
517
- isZoomOutMode,
517
+ isZoomOut,
518
518
  getBlocks,
519
519
  getBlockListSettings,
520
520
  dropZoneElement,
@@ -132,7 +132,6 @@ export default function useBlockDropZone( {
132
132
  const getSortedBlocksLayouts = useCallback( () => {
133
133
  return getBlockLayoutsOrderedByYCoord( blocksLayouts.current );
134
134
  // We use the value of `blocksLayouts` as the dependency.
135
- // eslint-disable-next-line react-hooks/exhaustive-deps
136
135
  }, [ blocksLayouts.current ] );
137
136
 
138
137
  const isRTL = getSettings().isRTL;
@@ -61,7 +61,6 @@ function useMovingAnimation( { triggerAnimationOnChange, clientId } ) {
61
61
  previous: ref.current && getAbsolutePosition( ref.current ),
62
62
  prevRect: ref.current && ref.current.getBoundingClientRect(),
63
63
  } ),
64
- // eslint-disable-next-line react-hooks/exhaustive-deps
65
64
  [ triggerAnimationOnChange ]
66
65
  );
67
66
 
@@ -32,7 +32,6 @@ export function useSettings( ...paths ) {
32
32
  clientId,
33
33
  ...paths
34
34
  ),
35
- // eslint-disable-next-line react-hooks/exhaustive-deps
36
35
  [ clientId, ...paths ]
37
36
  );
38
37
  }
@@ -47,19 +47,21 @@ export function useWritingFlow() {
47
47
  useRefEffect(
48
48
  ( node ) => {
49
49
  node.tabIndex = 0;
50
+ node.dataset.hasMultiSelection = hasMultiSelection;
50
51
 
51
52
  if ( ! hasMultiSelection ) {
52
- return;
53
+ return () => {
54
+ delete node.dataset.hasMultiSelection;
55
+ };
53
56
  }
54
57
 
55
- node.classList.add( 'has-multi-selection' );
56
58
  node.setAttribute(
57
59
  'aria-label',
58
60
  __( 'Multiple selected blocks' )
59
61
  );
60
62
 
61
63
  return () => {
62
- node.classList.remove( 'has-multi-selection' );
64
+ delete node.dataset.hasMultiSelection;
63
65
  node.removeAttribute( 'aria-label' );
64
66
  };
65
67
  },