@wordpress/block-editor 13.3.0 → 14.0.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 (554) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +11 -5
  3. package/build/components/alignment-control/ui.js +2 -2
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/block-alignment-control/ui.js +1 -1
  6. package/build/components/block-alignment-control/ui.js.map +1 -1
  7. package/build/components/block-alignment-control/ui.native.js +1 -1
  8. package/build/components/block-alignment-control/ui.native.js.map +1 -1
  9. package/build/components/block-breadcrumb/index.js +3 -1
  10. package/build/components/block-breadcrumb/index.js.map +1 -1
  11. package/build/components/block-draggable/index.js +2 -2
  12. package/build/components/block-draggable/index.js.map +1 -1
  13. package/build/components/block-inspector/index.js +6 -3
  14. package/build/components/block-inspector/index.js.map +1 -1
  15. package/build/components/block-list/use-block-props/index.js +3 -1
  16. package/build/components/block-list/use-block-props/index.js.map +1 -1
  17. package/build/components/block-list/use-block-props/use-block-refs.js +26 -27
  18. package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  19. package/build/components/block-list/use-block-props/use-is-hovered.js +25 -9
  20. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  21. package/build/components/block-list/use-in-between-inserter.js +3 -2
  22. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  23. package/build/components/block-lock/modal.js +2 -0
  24. package/build/components/block-lock/modal.js.map +1 -1
  25. package/build/components/block-mover/index.js +1 -2
  26. package/build/components/block-mover/index.js.map +1 -1
  27. package/build/components/block-popover/cover.js +1 -1
  28. package/build/components/block-popover/cover.js.map +1 -1
  29. package/build/components/block-popover/inbetween.js +2 -2
  30. package/build/components/block-popover/inbetween.js.map +1 -1
  31. package/build/components/block-popover/index.js +2 -2
  32. package/build/components/block-popover/index.js.map +1 -1
  33. package/build/components/block-removal-warning-modal/index.js +2 -0
  34. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  35. package/build/components/block-switcher/index.js +1 -1
  36. package/build/components/block-switcher/index.js.map +1 -1
  37. package/build/components/block-switcher/pattern-transformations-menu.js +11 -12
  38. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  39. package/build/components/block-switcher/preview-block-popover.js +20 -17
  40. package/build/components/block-switcher/preview-block-popover.js.map +1 -1
  41. package/build/components/block-toolbar/shuffle.js +5 -2
  42. package/build/components/block-toolbar/shuffle.js.map +1 -1
  43. package/build/components/block-tools/block-selection-button.js +1 -2
  44. package/build/components/block-tools/block-selection-button.js.map +1 -1
  45. package/build/components/block-tools/index.js +1 -1
  46. package/build/components/block-tools/index.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 -8
  50. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  51. package/build/components/block-tools/zoom-out-mode-inserter-button.js +45 -0
  52. package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
  53. package/build/components/block-tools/zoom-out-mode-inserters.js +35 -36
  54. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  55. package/build/components/block-tools/zoom-out-popover.js +2 -1
  56. package/build/components/block-tools/zoom-out-popover.js.map +1 -1
  57. package/build/components/block-tools/zoom-out-toolbar.js +1 -2
  58. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  59. package/build/components/child-layout-control/index.js +3 -1
  60. package/build/components/child-layout-control/index.js.map +1 -1
  61. package/build/components/date-format-picker/index.js +2 -11
  62. package/build/components/date-format-picker/index.js.map +1 -1
  63. package/build/components/default-block-appender/index.js +7 -4
  64. package/build/components/default-block-appender/index.js.map +1 -1
  65. package/build/components/dimensions-tool/scale-tool.js +1 -0
  66. package/build/components/dimensions-tool/scale-tool.js.map +1 -1
  67. package/build/components/font-appearance-control/index.js +2 -7
  68. package/build/components/font-appearance-control/index.js.map +1 -1
  69. package/build/components/font-family/index.js +12 -0
  70. package/build/components/font-family/index.js.map +1 -1
  71. package/build/components/global-styles/background-panel.js +63 -52
  72. package/build/components/global-styles/background-panel.js.map +1 -1
  73. package/build/components/global-styles/hooks.js +5 -1
  74. package/build/components/global-styles/hooks.js.map +1 -1
  75. package/build/components/global-styles/image-settings-panel.js +1 -0
  76. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  77. package/build/components/global-styles/theme-file-uri-utils.js +0 -59
  78. package/build/components/global-styles/theme-file-uri-utils.js.map +1 -1
  79. package/build/components/global-styles/typography-panel.js +26 -44
  80. package/build/components/global-styles/typography-panel.js.map +1 -1
  81. package/build/components/global-styles/typography-utils.js +78 -7
  82. package/build/components/global-styles/typography-utils.js.map +1 -1
  83. package/build/components/global-styles/use-global-styles-output.js +82 -44
  84. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  85. package/build/components/global-styles/utils.js +96 -0
  86. package/build/components/global-styles/utils.js.map +1 -1
  87. package/build/components/grid/grid-item-movers.js +93 -44
  88. package/build/components/grid/grid-item-movers.js.map +1 -1
  89. package/build/components/grid/grid-item-resizer.js +14 -15
  90. package/build/components/grid/grid-item-resizer.js.map +1 -1
  91. package/build/components/grid/grid-visualizer.js +2 -2
  92. package/build/components/grid/grid-visualizer.js.map +1 -1
  93. package/build/components/grid/use-grid-layout-sync.js +93 -45
  94. package/build/components/grid/use-grid-layout-sync.js.map +1 -1
  95. package/build/components/iframe/index.js +4 -8
  96. package/build/components/iframe/index.js.map +1 -1
  97. package/build/components/index.js +1 -9
  98. package/build/components/index.js.map +1 -1
  99. package/build/components/inner-blocks/index.js +1 -1
  100. package/build/components/inner-blocks/index.js.map +1 -1
  101. package/build/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
  102. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  103. package/build/components/inserter/category-tabs/index.js +29 -2
  104. package/build/components/inserter/category-tabs/index.js.map +1 -1
  105. package/build/components/inserter/media-tab/media-panel.js +1 -0
  106. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  107. package/build/components/inserter/menu.js +3 -3
  108. package/build/components/inserter/menu.js.map +1 -1
  109. package/build/components/inserter/preview-panel.js +20 -3
  110. package/build/components/inserter/preview-panel.js.map +1 -1
  111. package/build/components/inserter-draggable-blocks/index.js +10 -3
  112. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  113. package/build/components/inspector-controls-tabs/settings-tab.js +1 -2
  114. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  115. package/build/components/line-height-control/index.js +0 -15
  116. package/build/components/line-height-control/index.js.map +1 -1
  117. package/build/components/link-control/search-input.js +0 -1
  118. package/build/components/link-control/search-input.js.map +1 -1
  119. package/build/components/list-view/block-select-button.js +2 -6
  120. package/build/components/list-view/block-select-button.js.map +1 -1
  121. package/build/components/list-view/block.js +2 -2
  122. package/build/components/list-view/block.js.map +1 -1
  123. package/build/components/list-view/utils.js +3 -1
  124. package/build/components/list-view/utils.js.map +1 -1
  125. package/build/components/media-replace-flow/index.js +3 -1
  126. package/build/components/media-replace-flow/index.js.map +1 -1
  127. package/build/components/resolution-tool/index.js +1 -0
  128. package/build/components/resolution-tool/index.js.map +1 -1
  129. package/build/components/rich-text/format-toolbar/index.js +1 -1
  130. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  131. package/build/components/rich-text/index.js +1 -1
  132. package/build/components/rich-text/index.js.map +1 -1
  133. package/build/components/skip-to-selected-block/index.js +4 -2
  134. package/build/components/skip-to-selected-block/index.js.map +1 -1
  135. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +8 -8
  136. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  137. package/build/components/url-input/button.js +0 -1
  138. package/build/components/url-input/button.js.map +1 -1
  139. package/build/components/url-input/index.js +1 -11
  140. package/build/components/url-input/index.js.map +1 -1
  141. package/build/components/url-popover/image-url-input-ui.js +3 -3
  142. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  143. package/build/components/url-popover/link-editor.js +0 -1
  144. package/build/components/url-popover/link-editor.js.map +1 -1
  145. package/build/components/use-block-drop-zone/index.js +30 -4
  146. package/build/components/use-block-drop-zone/index.js.map +1 -1
  147. package/build/components/use-on-block-drop/index.js +3 -6
  148. package/build/components/use-on-block-drop/index.js.map +1 -1
  149. package/build/components/use-resize-canvas/index.js +1 -3
  150. package/build/components/use-resize-canvas/index.js.map +1 -1
  151. package/build/components/use-settings/index.js +2 -1
  152. package/build/components/use-settings/index.js.map +1 -1
  153. package/build/hooks/block-bindings.js +248 -36
  154. package/build/hooks/block-bindings.js.map +1 -1
  155. package/build/hooks/block-hooks.js +1 -0
  156. package/build/hooks/block-hooks.js.map +1 -1
  157. package/build/hooks/block-style-variation.js +2 -2
  158. package/build/hooks/block-style-variation.js.map +1 -1
  159. package/build/hooks/contrast-checker.js +6 -6
  160. package/build/hooks/contrast-checker.js.map +1 -1
  161. package/build/hooks/duotone.js +3 -3
  162. package/build/hooks/duotone.js.map +1 -1
  163. package/build/hooks/grid-visualizer.js +5 -8
  164. package/build/hooks/grid-visualizer.js.map +1 -1
  165. package/build/hooks/index.js +7 -1
  166. package/build/hooks/index.js.map +1 -1
  167. package/build/hooks/layout-child.js +9 -2
  168. package/build/hooks/layout-child.js.map +1 -1
  169. package/build/hooks/line-height.js +0 -1
  170. package/build/hooks/line-height.js.map +1 -1
  171. package/build/hooks/position.js +3 -7
  172. package/build/hooks/position.js.map +1 -1
  173. package/build/hooks/spacing-visualizer.js +1 -1
  174. package/build/hooks/spacing-visualizer.js.map +1 -1
  175. package/build/hooks/use-bindings-attributes.js +85 -50
  176. package/build/hooks/use-bindings-attributes.js.map +1 -1
  177. package/build/hooks/use-zoom-out.js +1 -1
  178. package/build/hooks/use-zoom-out.js.map +1 -1
  179. package/build/hooks/utils.js +20 -0
  180. package/build/hooks/utils.js.map +1 -1
  181. package/build/index.js +7 -0
  182. package/build/index.js.map +1 -1
  183. package/build/layouts/constrained.js +6 -2
  184. package/build/layouts/constrained.js.map +1 -1
  185. package/build/layouts/grid.js +2 -0
  186. package/build/layouts/grid.js.map +1 -1
  187. package/build/private-apis.js +0 -4
  188. package/build/private-apis.js.map +1 -1
  189. package/build/store/actions.js +27 -2
  190. package/build/store/actions.js.map +1 -1
  191. package/build/store/reducer.js +19 -1
  192. package/build/store/reducer.js.map +1 -1
  193. package/build/store/selectors.js +17 -5
  194. package/build/store/selectors.js.map +1 -1
  195. package/build/utils/get-editor-region.js +1 -1
  196. package/build/utils/get-editor-region.js.map +1 -1
  197. package/build/utils/get-px-from-css-unit.js +1 -1
  198. package/build/utils/get-px-from-css-unit.js.map +1 -1
  199. package/build-module/components/alignment-control/ui.js +2 -2
  200. package/build-module/components/alignment-control/ui.js.map +1 -1
  201. package/build-module/components/block-alignment-control/ui.js +1 -1
  202. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  203. package/build-module/components/block-alignment-control/ui.native.js +1 -1
  204. package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
  205. package/build-module/components/block-breadcrumb/index.js +4 -2
  206. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  207. package/build-module/components/block-draggable/index.js +3 -3
  208. package/build-module/components/block-draggable/index.js.map +1 -1
  209. package/build-module/components/block-inspector/index.js +6 -3
  210. package/build-module/components/block-inspector/index.js.map +1 -1
  211. package/build-module/components/block-list/use-block-props/index.js +3 -1
  212. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  213. package/build-module/components/block-list/use-block-props/use-block-refs.js +27 -30
  214. package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  215. package/build-module/components/block-list/use-block-props/use-is-hovered.js +26 -9
  216. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  217. package/build-module/components/block-list/use-in-between-inserter.js +3 -2
  218. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  219. package/build-module/components/block-lock/modal.js +2 -0
  220. package/build-module/components/block-lock/modal.js.map +1 -1
  221. package/build-module/components/block-mover/index.js +1 -2
  222. package/build-module/components/block-mover/index.js.map +1 -1
  223. package/build-module/components/block-popover/cover.js +1 -1
  224. package/build-module/components/block-popover/cover.js.map +1 -1
  225. package/build-module/components/block-popover/inbetween.js +1 -1
  226. package/build-module/components/block-popover/inbetween.js.map +1 -1
  227. package/build-module/components/block-popover/index.js +1 -1
  228. package/build-module/components/block-popover/index.js.map +1 -1
  229. package/build-module/components/block-removal-warning-modal/index.js +2 -0
  230. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  231. package/build-module/components/block-switcher/index.js +1 -1
  232. package/build-module/components/block-switcher/index.js.map +1 -1
  233. package/build-module/components/block-switcher/pattern-transformations-menu.js +12 -13
  234. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  235. package/build-module/components/block-switcher/preview-block-popover.js +20 -17
  236. package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
  237. package/build-module/components/block-toolbar/shuffle.js +5 -2
  238. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  239. package/build-module/components/block-tools/block-selection-button.js +1 -2
  240. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  241. package/build-module/components/block-tools/index.js +1 -1
  242. package/build-module/components/block-tools/index.js.map +1 -1
  243. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +1 -1
  244. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  245. package/build-module/components/block-tools/use-show-block-tools.js +7 -8
  246. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  247. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +37 -0
  248. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
  249. package/build-module/components/block-tools/zoom-out-mode-inserters.js +37 -38
  250. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  251. package/build-module/components/block-tools/zoom-out-popover.js +2 -1
  252. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -1
  253. package/build-module/components/block-tools/zoom-out-toolbar.js +1 -2
  254. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  255. package/build-module/components/child-layout-control/index.js +3 -1
  256. package/build-module/components/child-layout-control/index.js.map +1 -1
  257. package/build-module/components/date-format-picker/index.js +4 -12
  258. package/build-module/components/date-format-picker/index.js.map +1 -1
  259. package/build-module/components/default-block-appender/index.js +7 -4
  260. package/build-module/components/default-block-appender/index.js.map +1 -1
  261. package/build-module/components/dimensions-tool/scale-tool.js +1 -0
  262. package/build-module/components/dimensions-tool/scale-tool.js.map +1 -1
  263. package/build-module/components/font-appearance-control/index.js +3 -6
  264. package/build-module/components/font-appearance-control/index.js.map +1 -1
  265. package/build-module/components/font-family/index.js +11 -0
  266. package/build-module/components/font-family/index.js.map +1 -1
  267. package/build-module/components/global-styles/background-panel.js +63 -52
  268. package/build-module/components/global-styles/background-panel.js.map +1 -1
  269. package/build-module/components/global-styles/hooks.js +5 -1
  270. package/build-module/components/global-styles/hooks.js.map +1 -1
  271. package/build-module/components/global-styles/image-settings-panel.js +1 -0
  272. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  273. package/build-module/components/global-styles/theme-file-uri-utils.js +0 -58
  274. package/build-module/components/global-styles/theme-file-uri-utils.js.map +1 -1
  275. package/build-module/components/global-styles/typography-panel.js +27 -45
  276. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  277. package/build-module/components/global-styles/typography-utils.js +76 -7
  278. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  279. package/build-module/components/global-styles/use-global-styles-output.js +81 -43
  280. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  281. package/build-module/components/global-styles/utils.js +92 -0
  282. package/build-module/components/global-styles/utils.js.map +1 -1
  283. package/build-module/components/grid/grid-item-movers.js +96 -46
  284. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  285. package/build-module/components/grid/grid-item-resizer.js +14 -15
  286. package/build-module/components/grid/grid-item-resizer.js.map +1 -1
  287. package/build-module/components/grid/grid-visualizer.js +2 -2
  288. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  289. package/build-module/components/grid/use-grid-layout-sync.js +94 -46
  290. package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
  291. package/build-module/components/iframe/index.js +4 -8
  292. package/build-module/components/iframe/index.js.map +1 -1
  293. package/build-module/components/index.js +0 -5
  294. package/build-module/components/index.js.map +1 -1
  295. package/build-module/components/inner-blocks/index.js +1 -1
  296. package/build-module/components/inner-blocks/index.js.map +1 -1
  297. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
  298. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  299. package/build-module/components/inserter/category-tabs/index.js +30 -3
  300. package/build-module/components/inserter/category-tabs/index.js.map +1 -1
  301. package/build-module/components/inserter/media-tab/media-panel.js +1 -0
  302. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  303. package/build-module/components/inserter/menu.js +3 -3
  304. package/build-module/components/inserter/menu.js.map +1 -1
  305. package/build-module/components/inserter/preview-panel.js +20 -3
  306. package/build-module/components/inserter/preview-panel.js.map +1 -1
  307. package/build-module/components/inserter-draggable-blocks/index.js +10 -3
  308. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  309. package/build-module/components/inspector-controls-tabs/settings-tab.js +1 -2
  310. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  311. package/build-module/components/line-height-control/index.js +0 -14
  312. package/build-module/components/line-height-control/index.js.map +1 -1
  313. package/build-module/components/link-control/search-input.js +0 -1
  314. package/build-module/components/link-control/search-input.js.map +1 -1
  315. package/build-module/components/list-view/block-select-button.js +3 -7
  316. package/build-module/components/list-view/block-select-button.js.map +1 -1
  317. package/build-module/components/list-view/block.js +2 -2
  318. package/build-module/components/list-view/block.js.map +1 -1
  319. package/build-module/components/list-view/utils.js +3 -1
  320. package/build-module/components/list-view/utils.js.map +1 -1
  321. package/build-module/components/media-replace-flow/index.js +3 -1
  322. package/build-module/components/media-replace-flow/index.js.map +1 -1
  323. package/build-module/components/resolution-tool/index.js +1 -0
  324. package/build-module/components/resolution-tool/index.js.map +1 -1
  325. package/build-module/components/rich-text/format-toolbar/index.js +1 -1
  326. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  327. package/build-module/components/rich-text/index.js +1 -1
  328. package/build-module/components/rich-text/index.js.map +1 -1
  329. package/build-module/components/skip-to-selected-block/index.js +5 -3
  330. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  331. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +8 -8
  332. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  333. package/build-module/components/url-input/button.js +0 -1
  334. package/build-module/components/url-input/button.js.map +1 -1
  335. package/build-module/components/url-input/index.js +1 -11
  336. package/build-module/components/url-input/index.js.map +1 -1
  337. package/build-module/components/url-popover/image-url-input-ui.js +3 -3
  338. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  339. package/build-module/components/url-popover/link-editor.js +0 -1
  340. package/build-module/components/url-popover/link-editor.js.map +1 -1
  341. package/build-module/components/use-block-drop-zone/index.js +30 -4
  342. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  343. package/build-module/components/use-on-block-drop/index.js +3 -6
  344. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  345. package/build-module/components/use-resize-canvas/index.js +1 -3
  346. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  347. package/build-module/components/use-settings/index.js +2 -1
  348. package/build-module/components/use-settings/index.js.map +1 -1
  349. package/build-module/hooks/block-bindings.js +253 -40
  350. package/build-module/hooks/block-bindings.js.map +1 -1
  351. package/build-module/hooks/block-hooks.js +1 -0
  352. package/build-module/hooks/block-hooks.js.map +1 -1
  353. package/build-module/hooks/block-style-variation.js +3 -3
  354. package/build-module/hooks/block-style-variation.js.map +1 -1
  355. package/build-module/hooks/contrast-checker.js +7 -7
  356. package/build-module/hooks/contrast-checker.js.map +1 -1
  357. package/build-module/hooks/duotone.js +4 -4
  358. package/build-module/hooks/duotone.js.map +1 -1
  359. package/build-module/hooks/grid-visualizer.js +5 -8
  360. package/build-module/hooks/grid-visualizer.js.map +1 -1
  361. package/build-module/hooks/index.js +2 -1
  362. package/build-module/hooks/index.js.map +1 -1
  363. package/build-module/hooks/layout-child.js +9 -2
  364. package/build-module/hooks/layout-child.js.map +1 -1
  365. package/build-module/hooks/line-height.js +0 -1
  366. package/build-module/hooks/line-height.js.map +1 -1
  367. package/build-module/hooks/position.js +3 -7
  368. package/build-module/hooks/position.js.map +1 -1
  369. package/build-module/hooks/spacing-visualizer.js +1 -1
  370. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  371. package/build-module/hooks/use-bindings-attributes.js +84 -51
  372. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  373. package/build-module/hooks/use-zoom-out.js +1 -1
  374. package/build-module/hooks/use-zoom-out.js.map +1 -1
  375. package/build-module/hooks/utils.js +19 -0
  376. package/build-module/hooks/utils.js.map +1 -1
  377. package/build-module/index.js +1 -1
  378. package/build-module/index.js.map +1 -1
  379. package/build-module/layouts/constrained.js +6 -2
  380. package/build-module/layouts/constrained.js.map +1 -1
  381. package/build-module/layouts/grid.js +2 -0
  382. package/build-module/layouts/grid.js.map +1 -1
  383. package/build-module/private-apis.js +1 -5
  384. package/build-module/private-apis.js.map +1 -1
  385. package/build-module/store/actions.js +24 -1
  386. package/build-module/store/actions.js.map +1 -1
  387. package/build-module/store/reducer.js +18 -1
  388. package/build-module/store/reducer.js.map +1 -1
  389. package/build-module/store/selectors.js +14 -4
  390. package/build-module/store/selectors.js.map +1 -1
  391. package/build-module/utils/get-editor-region.js +1 -1
  392. package/build-module/utils/get-editor-region.js.map +1 -1
  393. package/build-module/utils/get-px-from-css-unit.js +1 -1
  394. package/build-module/utils/get-px-from-css-unit.js.map +1 -1
  395. package/build-style/content-rtl.css +11 -18
  396. package/build-style/content.css +11 -18
  397. package/build-style/default-editor-styles-rtl.css +3 -0
  398. package/build-style/default-editor-styles.css +3 -0
  399. package/build-style/style-rtl.css +242 -136
  400. package/build-style/style.css +242 -136
  401. package/build-types/components/block-context/index.d.ts +2 -2
  402. package/build-types/components/block-context/index.d.ts.map +1 -1
  403. package/build-types/utils/dom.d.ts.map +1 -1
  404. package/package.json +31 -31
  405. package/src/autocompleters/style.scss +4 -0
  406. package/src/components/alignment-control/ui.js +2 -2
  407. package/src/components/block-alignment-control/ui.js +1 -1
  408. package/src/components/block-alignment-control/ui.native.js +1 -1
  409. package/src/components/block-breadcrumb/index.js +4 -2
  410. package/src/components/block-canvas/style.scss +1 -0
  411. package/src/components/block-context/README.md +4 -4
  412. package/src/components/block-draggable/index.js +3 -3
  413. package/src/components/block-inspector/index.js +8 -4
  414. package/src/components/block-list/content.scss +2 -16
  415. package/src/components/block-list/use-block-props/index.js +1 -1
  416. package/src/components/block-list/use-block-props/use-block-refs.js +30 -30
  417. package/src/components/block-list/use-block-props/use-is-hovered.js +26 -11
  418. package/src/components/block-list/use-in-between-inserter.js +5 -1
  419. package/src/components/block-lock/modal.js +10 -2
  420. package/src/components/block-lock/style.scss +4 -8
  421. package/src/components/block-mover/index.js +5 -2
  422. package/src/components/block-patterns-paging/style.scss +0 -23
  423. package/src/components/block-popover/cover.js +1 -1
  424. package/src/components/block-popover/inbetween.js +1 -1
  425. package/src/components/block-popover/index.js +1 -1
  426. package/src/components/block-removal-warning-modal/index.js +10 -2
  427. package/src/components/block-switcher/index.js +1 -1
  428. package/src/components/block-switcher/pattern-transformations-menu.js +17 -15
  429. package/src/components/block-switcher/preview-block-popover.js +20 -14
  430. package/src/components/block-switcher/style.scss +8 -17
  431. package/src/components/block-toolbar/shuffle.js +8 -1
  432. package/src/components/block-tools/block-selection-button.js +1 -2
  433. package/src/components/block-tools/index.js +5 -6
  434. package/src/components/block-tools/style.scss +8 -0
  435. package/src/components/block-tools/use-block-toolbar-popover-props.js +1 -1
  436. package/src/components/block-tools/use-show-block-tools.js +12 -9
  437. package/src/components/block-tools/zoom-out-mode-inserter-button.js +47 -0
  438. package/src/components/block-tools/zoom-out-mode-inserters.js +48 -42
  439. package/src/components/block-tools/zoom-out-popover.js +1 -0
  440. package/src/components/block-tools/zoom-out-toolbar.js +1 -2
  441. package/src/components/button-block-appender/content.scss +1 -1
  442. package/src/components/child-layout-control/index.js +2 -0
  443. package/src/components/color-palette/test/__snapshots__/control.js.snap +2 -2
  444. package/src/components/colors-gradients/test/control.js +3 -2
  445. package/src/components/date-format-picker/index.js +2 -11
  446. package/src/components/default-block-appender/index.js +11 -4
  447. package/src/components/dimensions-tool/scale-tool.js +1 -0
  448. package/src/components/font-appearance-control/index.js +1 -5
  449. package/src/components/font-family/README.md +8 -0
  450. package/src/components/font-family/index.js +16 -0
  451. package/src/components/font-family/stories/index.story.js +54 -0
  452. package/src/components/global-styles/background-panel.js +90 -62
  453. package/src/components/global-styles/hooks.js +5 -1
  454. package/src/components/global-styles/image-settings-panel.js +1 -0
  455. package/src/components/global-styles/style.scss +11 -9
  456. package/src/components/global-styles/test/theme-file-uri-utils.js +1 -26
  457. package/src/components/global-styles/test/typography-utils.js +325 -0
  458. package/src/components/global-styles/test/use-global-styles-output.js +52 -5
  459. package/src/components/global-styles/test/utils.js +120 -0
  460. package/src/components/global-styles/theme-file-uri-utils.js +0 -59
  461. package/src/components/global-styles/typography-panel.js +36 -45
  462. package/src/components/global-styles/typography-utils.js +103 -7
  463. package/src/components/global-styles/use-global-styles-output.js +89 -50
  464. package/src/components/global-styles/utils.js +112 -0
  465. package/src/components/grid/grid-item-movers.js +141 -69
  466. package/src/components/grid/grid-item-resizer.js +11 -17
  467. package/src/components/grid/grid-visualizer.js +2 -2
  468. package/src/components/grid/style.scss +164 -0
  469. package/src/components/grid/use-grid-layout-sync.js +133 -40
  470. package/src/components/iframe/content.scss +3 -3
  471. package/src/components/iframe/index.js +3 -7
  472. package/src/components/index.js +0 -5
  473. package/src/components/inner-blocks/index.js +4 -1
  474. package/src/components/inserter/block-patterns-tab/patterns-filter.js +40 -44
  475. package/src/components/inserter/category-tabs/index.js +35 -2
  476. package/src/components/inserter/media-tab/media-panel.js +1 -0
  477. package/src/components/inserter/menu.js +3 -3
  478. package/src/components/inserter/preview-panel.js +27 -4
  479. package/src/components/inserter/style.scss +66 -47
  480. package/src/components/inserter-draggable-blocks/index.js +11 -3
  481. package/src/components/inspector-controls/README.md +5 -0
  482. package/src/components/inspector-controls-tabs/settings-tab.js +0 -2
  483. package/src/components/inspector-controls-tabs/style.scss +0 -21
  484. package/src/components/line-height-control/README.md +0 -8
  485. package/src/components/line-height-control/index.js +1 -21
  486. package/src/components/line-height-control/stories/index.story.js +0 -1
  487. package/src/components/line-height-control/test/index.js +1 -7
  488. package/src/components/link-control/search-input.js +0 -1
  489. package/src/components/list-view/block-select-button.js +3 -13
  490. package/src/components/list-view/block.js +10 -3
  491. package/src/components/list-view/style.scss +2 -1
  492. package/src/components/list-view/utils.js +13 -2
  493. package/src/components/media-replace-flow/README.md +7 -0
  494. package/src/components/media-replace-flow/index.js +3 -1
  495. package/src/components/resolution-tool/index.js +1 -0
  496. package/src/components/responsive-block-control/test/index.js +5 -1
  497. package/src/components/rich-text/format-toolbar/index.js +1 -1
  498. package/src/components/rich-text/index.js +1 -1
  499. package/src/components/skip-to-selected-block/index.js +5 -3
  500. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +6 -7
  501. package/src/components/tabbed-sidebar/style.scss +1 -19
  502. package/src/components/url-input/README.md +0 -5
  503. package/src/components/url-input/button.js +0 -1
  504. package/src/components/url-input/index.js +1 -15
  505. package/src/components/url-popover/image-url-input-ui.js +3 -3
  506. package/src/components/url-popover/link-editor.js +0 -1
  507. package/src/components/url-popover/style.scss +1 -0
  508. package/src/components/use-block-drop-zone/index.js +66 -14
  509. package/src/components/use-on-block-drop/index.js +1 -9
  510. package/src/components/use-resize-canvas/index.js +1 -3
  511. package/src/components/use-settings/index.js +2 -1
  512. package/src/hooks/block-bindings.js +303 -52
  513. package/src/hooks/block-bindings.scss +13 -2
  514. package/src/hooks/block-hooks.js +1 -0
  515. package/src/hooks/block-hooks.scss +1 -0
  516. package/src/hooks/block-style-variation.js +3 -3
  517. package/src/hooks/contrast-checker.js +7 -7
  518. package/src/hooks/duotone.js +4 -4
  519. package/src/hooks/grid-visualizer.js +5 -7
  520. package/src/hooks/index.js +2 -1
  521. package/src/hooks/layout-child.js +12 -3
  522. package/src/hooks/line-height.js +0 -1
  523. package/src/hooks/position.js +3 -13
  524. package/src/hooks/spacing-visualizer.js +1 -1
  525. package/src/hooks/use-bindings-attributes.js +93 -59
  526. package/src/hooks/use-editor-wrapper-styles.native.scss +1 -0
  527. package/src/hooks/use-zoom-out.js +1 -1
  528. package/src/hooks/utils.js +14 -1
  529. package/src/index.js +1 -0
  530. package/src/layouts/constrained.js +10 -2
  531. package/src/layouts/grid.js +2 -0
  532. package/src/private-apis.js +1 -8
  533. package/src/store/actions.js +28 -5
  534. package/src/store/reducer.js +18 -0
  535. package/src/store/selectors.js +14 -4
  536. package/src/style.scss +1 -1
  537. package/src/utils/get-editor-region.js +1 -1
  538. package/src/utils/get-px-from-css-unit.js +1 -1
  539. package/tsconfig.tsbuildinfo +1 -1
  540. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +0 -30
  541. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +0 -1
  542. package/build/components/inserter/reusable-block-rename-hint.js +0 -71
  543. package/build/components/inserter/reusable-block-rename-hint.js.map +0 -1
  544. package/build/components/inspector-controls-tabs/settings-tab-hint.js +0 -53
  545. package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
  546. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +0 -23
  547. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +0 -1
  548. package/build-module/components/inserter/reusable-block-rename-hint.js +0 -64
  549. package/build-module/components/inserter/reusable-block-rename-hint.js.map +0 -1
  550. package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +0 -47
  551. package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
  552. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +0 -25
  553. package/src/components/inserter/reusable-block-rename-hint.js +0 -69
  554. package/src/components/inspector-controls-tabs/settings-tab-hint.js +0 -52
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-editor",
3
- "version": "13.3.0",
3
+ "version": "14.0.0",
4
4
  "description": "Generic block editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -36,35 +36,35 @@
36
36
  "@emotion/react": "^11.7.1",
37
37
  "@emotion/styled": "^11.6.0",
38
38
  "@react-spring/web": "^9.4.5",
39
- "@wordpress/a11y": "^4.3.0",
40
- "@wordpress/api-fetch": "^7.3.0",
41
- "@wordpress/blob": "^4.3.0",
42
- "@wordpress/blocks": "^13.3.0",
43
- "@wordpress/commands": "^1.3.0",
44
- "@wordpress/components": "^28.3.0",
45
- "@wordpress/compose": "^7.3.0",
46
- "@wordpress/data": "^10.3.0",
47
- "@wordpress/date": "^5.3.0",
48
- "@wordpress/deprecated": "^4.3.0",
49
- "@wordpress/dom": "^4.3.0",
50
- "@wordpress/element": "^6.3.0",
51
- "@wordpress/escape-html": "^3.3.0",
52
- "@wordpress/hooks": "^4.3.0",
53
- "@wordpress/html-entities": "^4.3.0",
54
- "@wordpress/i18n": "^5.3.0",
55
- "@wordpress/icons": "^10.3.0",
56
- "@wordpress/is-shallow-equal": "^5.3.0",
57
- "@wordpress/keyboard-shortcuts": "^5.3.0",
58
- "@wordpress/keycodes": "^4.3.0",
59
- "@wordpress/notices": "^5.3.0",
60
- "@wordpress/preferences": "^4.3.0",
61
- "@wordpress/private-apis": "^1.3.0",
62
- "@wordpress/rich-text": "^7.3.0",
63
- "@wordpress/style-engine": "^2.3.0",
64
- "@wordpress/token-list": "^3.3.0",
65
- "@wordpress/url": "^4.3.0",
66
- "@wordpress/warning": "^3.3.0",
67
- "@wordpress/wordcount": "^4.3.0",
39
+ "@wordpress/a11y": "^4.5.0",
40
+ "@wordpress/api-fetch": "^7.5.0",
41
+ "@wordpress/blob": "^4.5.0",
42
+ "@wordpress/blocks": "^13.5.0",
43
+ "@wordpress/commands": "^1.5.0",
44
+ "@wordpress/components": "^28.5.0",
45
+ "@wordpress/compose": "^7.5.0",
46
+ "@wordpress/data": "^10.5.0",
47
+ "@wordpress/date": "^5.5.0",
48
+ "@wordpress/deprecated": "^4.5.0",
49
+ "@wordpress/dom": "^4.5.0",
50
+ "@wordpress/element": "^6.5.0",
51
+ "@wordpress/escape-html": "^3.5.0",
52
+ "@wordpress/hooks": "^4.5.0",
53
+ "@wordpress/html-entities": "^4.5.0",
54
+ "@wordpress/i18n": "^5.5.0",
55
+ "@wordpress/icons": "^10.5.0",
56
+ "@wordpress/is-shallow-equal": "^5.5.0",
57
+ "@wordpress/keyboard-shortcuts": "^5.5.0",
58
+ "@wordpress/keycodes": "^4.5.0",
59
+ "@wordpress/notices": "^5.5.0",
60
+ "@wordpress/preferences": "^4.5.0",
61
+ "@wordpress/private-apis": "^1.5.0",
62
+ "@wordpress/rich-text": "^7.5.0",
63
+ "@wordpress/style-engine": "^2.5.0",
64
+ "@wordpress/token-list": "^3.5.0",
65
+ "@wordpress/url": "^4.5.0",
66
+ "@wordpress/warning": "^3.5.0",
67
+ "@wordpress/wordcount": "^4.5.0",
68
68
  "change-case": "^4.1.2",
69
69
  "clsx": "^2.1.1",
70
70
  "colord": "^2.7.0",
@@ -86,5 +86,5 @@
86
86
  "publishConfig": {
87
87
  "access": "public"
88
88
  },
89
- "gitHead": "122867d355ca4edc63d3a3bbd9411d3a2e1458df"
89
+ "gitHead": "c3101ab024e2bfc85d525c6d247e0d57cafc9fd9"
90
90
  }
@@ -4,6 +4,10 @@
4
4
  .block-editor-block-icon {
5
5
  margin-right: $grid-unit-10;
6
6
  }
7
+
8
+ &[aria-selected="true"] .block-editor-block-icon {
9
+ color: inherit !important;
10
+ }
7
11
  }
8
12
 
9
13
  .block-editor-autocompleters__link {
@@ -32,7 +32,7 @@ function AlignmentUI( {
32
32
  onChange,
33
33
  alignmentControls = DEFAULT_ALIGNMENT_CONTROLS,
34
34
  label = __( 'Align text' ),
35
- describedBy = __( 'Change text alignment' ),
35
+ description = __( 'Change text alignment' ),
36
36
  isCollapsed = true,
37
37
  isToolbar,
38
38
  } ) {
@@ -56,7 +56,7 @@ function AlignmentUI( {
56
56
  ? { isCollapsed }
57
57
  : {
58
58
  toggleProps: {
59
- describedBy,
59
+ description,
60
60
  },
61
61
  popoverProps: POPOVER_PROPS,
62
62
  };
@@ -64,7 +64,7 @@ function BlockAlignmentUI( {
64
64
  } ),
65
65
  }
66
66
  : {
67
- toggleProps: { describedBy: __( 'Change alignment' ) },
67
+ toggleProps: { description: __( 'Change alignment' ) },
68
68
  children: ( { onClose } ) => {
69
69
  return (
70
70
  <>
@@ -77,7 +77,7 @@ function BlockAlignmentUI( {
77
77
  };
78
78
  } ),
79
79
  popoverProps: POPOVER_PROPS,
80
- toggleProps: { describedBy: __( 'Change alignment' ) },
80
+ toggleProps: { description: __( 'Change alignment' ) },
81
81
  };
82
82
 
83
83
  return <UIComponent { ...commonProps } { ...extraProps } />;
@@ -5,6 +5,7 @@ import { Button } from '@wordpress/components';
5
5
  import { useSelect, useDispatch } from '@wordpress/data';
6
6
  import { __ } from '@wordpress/i18n';
7
7
  import { chevronRightSmall, Icon } from '@wordpress/icons';
8
+ import { useRef } from '@wordpress/element';
8
9
 
9
10
  /**
10
11
  * Internal dependencies
@@ -12,7 +13,7 @@ import { chevronRightSmall, Icon } from '@wordpress/icons';
12
13
  import BlockTitle from '../block-title';
13
14
  import { store as blockEditorStore } from '../../store';
14
15
  import { unlock } from '../../lock-unlock';
15
- import { __unstableUseBlockRef as useBlockRef } from '../block-list/use-block-props/use-block-refs';
16
+ import { useBlockElementRef } from '../block-list/use-block-props/use-block-refs';
16
17
  import getEditorRegion from '../../utils/get-editor-region';
17
18
 
18
19
  /**
@@ -41,7 +42,8 @@ function BlockBreadcrumb( { rootLabelText } ) {
41
42
 
42
43
  // We don't care about this specific ref, but this is a way
43
44
  // to get a ref within the editor canvas so we can focus it later.
44
- const blockRef = useBlockRef( clientId );
45
+ const blockRef = useRef();
46
+ useBlockElementRef( clientId, blockRef );
45
47
 
46
48
  /*
47
49
  * Disable reason: The `list` ARIA role is redundant but
@@ -4,4 +4,5 @@ iframe[name="editor-canvas"] {
4
4
  height: 100%;
5
5
  display: block;
6
6
  background-color: transparent;
7
+ @include editor-canvas-resize-animation;
7
8
  }
@@ -1,12 +1,12 @@
1
1
  # Block Context
2
2
 
3
- Block Context is a React implementation of WordPress's block context. Block context, much like [React's context](https://reactjs.org/docs/context.html), is a method for passing and inheriting values deeply through a hierarchy of blocks. Because of the similarities with React's context, the client-side implementation here is quite minimal. It is complemented by equivalent behaviors in the server-side rendering of a block.
3
+ Block Context is a React implementation of WordPress's block context. Block context, much like [React's context](https://react.dev/learn/passing-data-deeply-with-context), is a method for passing and inheriting values deeply through a hierarchy of blocks. Because of the similarities with React's context, the client-side implementation here is quite minimal. It is complemented by equivalent behaviors in the server-side rendering of a block.
4
4
 
5
5
  Note that the implementation of Block Context is distinct from [the `BlockEdit` context](../block-edit). While it is true that both provide context relevant for the editing of a block, Block Context is implemented separately so as to prioritize it as most identifiable amongst the machinery of block context, and not amongst other client-side editing context of a block.
6
6
 
7
7
  ## Usage
8
8
 
9
- Currently, only the [Provider component](https://reactjs.org/docs/context.html#contextprovider) is made available on the public interface of the `@wordpress/block-editor` module. This can be used to add or override context which can then be consumed by blocks rendered within that context in the block editor.
9
+ Currently, only the [Provider component](https://react.dev/reference/react/createContext#provider) is made available on the public interface of the `@wordpress/block-editor` module. This can be used to add or override context which can then be consumed by blocks rendered within that context in the block editor.
10
10
 
11
11
  ```js
12
12
  import { BlockContextProvider } from '@wordpress/block-editor';
@@ -20,7 +20,7 @@ function MyCustomPostEditor() {
20
20
  }
21
21
  ```
22
22
 
23
- Internal to the `@wordpress/block-editor` module, a component can access the [full Context object](https://reactjs.org/docs/context.html#api), typically for use in combination with [`useContext`](https://reactjs.org/docs/hooks-reference.html#usecontext).
23
+ Internal to the `@wordpress/block-editor` module, a component can access the [full Context object](https://react.dev/reference/react/createContext), typically for use in combination with [`useContext`](https://react.dev/reference/react/useContext).
24
24
 
25
25
  ```js
26
26
  import { useContext } from 'react';
@@ -39,7 +39,7 @@ The reason `BlockContext` is only internally available within the `@wordpress/bl
39
39
 
40
40
  ## Props
41
41
 
42
- `BlockContextProvider` behaves like a standard [`Context.Provider` component](https://reactjs.org/docs/context.html#contextprovider). It receives `value` and `children` props. The `value` is merged with the current block context value.
42
+ `BlockContextProvider` behaves like a standard [`Context.Provider` component](https://react.dev/reference/react/createContext#provider). It receives `value` and `children` props. The `value` is merged with the current block context value.
43
43
 
44
44
  ### `value`
45
45
 
@@ -13,7 +13,7 @@ import { throttle } from '@wordpress/compose';
13
13
  import BlockDraggableChip from './draggable-chip';
14
14
  import useScrollWhenDragging from './use-scroll-when-dragging';
15
15
  import { store as blockEditorStore } from '../../store';
16
- import { __unstableUseBlockRef as useBlockRef } from '../block-list/use-block-props/use-block-refs';
16
+ import { useBlockElement } from '../block-list/use-block-props/use-block-refs';
17
17
  import { isDropTargetValid } from '../use-block-drop-zone';
18
18
 
19
19
  const BlockDraggable = ( {
@@ -82,8 +82,8 @@ const BlockDraggable = ( {
82
82
  }, [] );
83
83
 
84
84
  // Find the root of the editor iframe.
85
- const blockRef = useBlockRef( clientIds[ 0 ] );
86
- const editorRoot = blockRef.current?.closest( 'body' );
85
+ const blockEl = useBlockElement( clientIds[ 0 ] );
86
+ const editorRoot = blockEl?.closest( 'body' );
87
87
 
88
88
  /*
89
89
  * Add a dragover event listener to the editor root to track the blocks being dragged over.
@@ -132,6 +132,10 @@ const BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {
132
132
  label={ __( 'Color' ) }
133
133
  className="color-block-support-panel__inner-wrapper"
134
134
  />
135
+ <InspectorControls.Slot
136
+ group="background"
137
+ label={ __( 'Background image' ) }
138
+ />
135
139
  <InspectorControls.Slot
136
140
  group="typography"
137
141
  label={ __( 'Typography' ) }
@@ -285,6 +289,10 @@ const BlockInspectorSingleBlock = ( { clientId, blockName } ) => {
285
289
  label={ __( 'Color' ) }
286
290
  className="color-block-support-panel__inner-wrapper"
287
291
  />
292
+ <InspectorControls.Slot
293
+ group="background"
294
+ label={ __( 'Background image' ) }
295
+ />
288
296
  <InspectorControls.Slot
289
297
  group="typography"
290
298
  label={ __( 'Typography' ) }
@@ -298,10 +306,6 @@ const BlockInspectorSingleBlock = ( { clientId, blockName } ) => {
298
306
  label={ borderPanelLabel }
299
307
  />
300
308
  <InspectorControls.Slot group="styles" />
301
- <InspectorControls.Slot
302
- group="background"
303
- label={ __( 'Background image' ) }
304
- />
305
309
  <PositionControls />
306
310
  <div>
307
311
  <AdvancedControls />
@@ -17,20 +17,6 @@
17
17
  }
18
18
  }
19
19
 
20
- @mixin selectedOutline() {
21
- content: "";
22
- position: absolute;
23
- pointer-events: none;
24
- top: 0;
25
- right: 0;
26
- bottom: 0;
27
- left: 0;
28
- outline-color: var(--wp-admin-theme-color);
29
- outline-style: solid;
30
- outline-width: calc(var(--wp-admin-border-width-focus) / var(--wp-block-editor-iframe-zoom-out-scale, 1));
31
- outline-offset: calc((-1 * var(--wp-admin-border-width-focus)) / var(--wp-block-editor-iframe-zoom-out-scale, 1));
32
- }
33
-
34
20
  // Hide selections on this element, otherwise Safari will include it stacked
35
21
  // under your actual selection.
36
22
  // This uses a CSS hack to show the rules to Safari only. Failing here is okay,
@@ -101,7 +87,7 @@ _::-webkit-full-page-media, _:future, :root .has-multi-selection .block-editor-b
101
87
  // We're using a pseudo element to overflow placeholder borders
102
88
  // and any border inside the block itself.
103
89
  &::after {
104
- @include selectedOutline();
90
+ @include selected-block-focus();
105
91
  z-index: 1;
106
92
 
107
93
  // Show a light color for dark themes.
@@ -281,7 +267,7 @@ _::-webkit-full-page-media, _:future, :root .has-multi-selection .block-editor-b
281
267
  &:not(.rich-text):not([contenteditable="true"]).is-selected {
282
268
 
283
269
  &::after {
284
- @include selectedOutline();
270
+ @include selected-block-focus();
285
271
  }
286
272
  }
287
273
  }
@@ -115,7 +115,7 @@ export function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {
115
115
  useFocusHandler( clientId ),
116
116
  useEventHandlers( { clientId, isSelected } ),
117
117
  useNavModeExit( clientId ),
118
- useIsHovered(),
118
+ useIsHovered( { clientId } ),
119
119
  useIntersectionObserver(),
120
120
  useMovingAnimation( { triggerAnimationOnChange: index, clientId } ),
121
121
  useDisabled( { isDisabled: ! hasOverlay } ),
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useContext, useMemo, useRef } from '@wordpress/element';
5
- import { useRefEffect, useObservableValue } from '@wordpress/compose';
4
+ import { useContext, useState, useLayoutEffect } from '@wordpress/element';
5
+ import { useRefEffect } from '@wordpress/compose';
6
6
 
7
7
  /**
8
8
  * Internal dependencies
@@ -10,7 +10,7 @@ import { useRefEffect, useObservableValue } from '@wordpress/compose';
10
10
  import { BlockRefs } from '../../provider/block-refs-provider';
11
11
 
12
12
  /** @typedef {import('@wordpress/element').RefCallback} RefCallback */
13
- /** @typedef {import('@wordpress/element').RefObject} RefObject */
13
+ /** @typedef {import('@wordpress/element').Ref} Ref */
14
14
 
15
15
  /**
16
16
  * Provides a ref to the BlockRefs context.
@@ -30,31 +30,33 @@ export function useBlockRefProvider( clientId ) {
30
30
  );
31
31
  }
32
32
 
33
+ function assignRef( ref, value ) {
34
+ if ( typeof ref === 'function' ) {
35
+ ref( value );
36
+ } else if ( ref ) {
37
+ ref.current = value;
38
+ }
39
+ }
40
+
33
41
  /**
34
- * Gets a ref pointing to the current block element. Continues to return the same
35
- * stable ref object even if the `clientId` argument changes. This hook is not
36
- * reactive, i.e., it won't trigger a rerender of the calling component if the
37
- * ref value changes. For reactive use cases there is the `useBlockElement` hook.
42
+ * Tracks the DOM element for the block identified by `clientId` and assigns it to the `ref`
43
+ * whenever it changes.
38
44
  *
39
- * @param {string} clientId The client ID to get a ref for.
40
- *
41
- * @return {RefObject} A ref containing the element.
45
+ * @param {string} clientId The client ID to track.
46
+ * @param {Ref} ref The ref object/callback to assign to.
42
47
  */
43
- function useBlockRef( clientId ) {
48
+ export function useBlockElementRef( clientId, ref ) {
44
49
  const { refsMap } = useContext( BlockRefs );
45
- const latestClientId = useRef();
46
- latestClientId.current = clientId;
47
-
48
- // Always return an object, even if no ref exists for a given client ID, so
49
- // that `current` works at a later point.
50
- return useMemo(
51
- () => ( {
52
- get current() {
53
- return refsMap.get( latestClientId.current ) ?? null;
54
- },
55
- } ),
56
- [ refsMap ]
57
- );
50
+ useLayoutEffect( () => {
51
+ assignRef( ref, refsMap.get( clientId ) );
52
+ const unsubscribe = refsMap.subscribe( clientId, () =>
53
+ assignRef( ref, refsMap.get( clientId ) )
54
+ );
55
+ return () => {
56
+ unsubscribe();
57
+ assignRef( ref, null );
58
+ };
59
+ }, [ refsMap, clientId, ref ] );
58
60
  }
59
61
 
60
62
  /**
@@ -65,10 +67,8 @@ function useBlockRef( clientId ) {
65
67
  *
66
68
  * @return {Element|null} The block's wrapper element.
67
69
  */
68
- function useBlockElement( clientId ) {
69
- const { refsMap } = useContext( BlockRefs );
70
- return useObservableValue( refsMap, clientId ) ?? null;
70
+ export function useBlockElement( clientId ) {
71
+ const [ blockElement, setBlockElement ] = useState( null );
72
+ useBlockElementRef( clientId, setBlockElement );
73
+ return blockElement;
71
74
  }
72
-
73
- export { useBlockRef as __unstableUseBlockRef };
74
- export { useBlockElement as __unstableUseBlockElement };
@@ -2,23 +2,37 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { useRefEffect } from '@wordpress/compose';
5
+ import { useDispatch } from '@wordpress/data';
5
6
 
6
- function listener( event ) {
7
- if ( event.defaultPrevented ) {
8
- return;
9
- }
10
-
11
- const action = event.type === 'mouseover' ? 'add' : 'remove';
12
-
13
- event.preventDefault();
14
- event.currentTarget.classList[ action ]( 'is-hovered' );
15
- }
7
+ /**
8
+ * Internal dependencies
9
+ */
10
+ import { store as blockEditorStore } from '../../../store';
16
11
 
17
12
  /*
18
13
  * Adds `is-hovered` class when the block is hovered and in navigation or
19
14
  * outline mode.
20
15
  */
21
- export function useIsHovered() {
16
+ export function useIsHovered( { clientId } ) {
17
+ const { hoverBlock } = useDispatch( blockEditorStore );
18
+
19
+ function listener( event ) {
20
+ if ( event.defaultPrevented ) {
21
+ return;
22
+ }
23
+
24
+ const action = event.type === 'mouseover' ? 'add' : 'remove';
25
+
26
+ event.preventDefault();
27
+ event.currentTarget.classList[ action ]( 'is-hovered' );
28
+
29
+ if ( action === 'add' ) {
30
+ hoverBlock( clientId );
31
+ } else {
32
+ hoverBlock( null );
33
+ }
34
+ }
35
+
22
36
  return useRefEffect( ( node ) => {
23
37
  node.addEventListener( 'mouseout', listener );
24
38
  node.addEventListener( 'mouseover', listener );
@@ -29,6 +43,7 @@ export function useIsHovered() {
29
43
 
30
44
  // Remove class in case it lingers.
31
45
  node.classList.remove( 'is-hovered' );
46
+ hoverBlock( null );
32
47
  };
33
48
  }, [] );
34
49
  }
@@ -29,6 +29,7 @@ export function useInBetweenInserter() {
29
29
  __unstableIsWithinBlockOverlay,
30
30
  getBlockEditingMode,
31
31
  getBlockName,
32
+ getBlockAttributes,
32
33
  } = useSelect( blockEditorStore );
33
34
  const { showInsertionPoint, hideInsertionPoint } =
34
35
  useDispatch( blockEditorStore );
@@ -79,7 +80,10 @@ export function useInBetweenInserter() {
79
80
  if (
80
81
  getTemplateLock( rootClientId ) ||
81
82
  getBlockEditingMode( rootClientId ) === 'disabled' ||
82
- getBlockName( rootClientId ) === 'core/block'
83
+ getBlockName( rootClientId ) === 'core/block' ||
84
+ ( rootClientId &&
85
+ getBlockAttributes( rootClientId ).layout
86
+ ?.isManualPlacement )
83
87
  ) {
84
88
  return;
85
89
  }
@@ -217,12 +217,20 @@ export default function BlockLockModal( { clientId, onClose } ) {
217
217
  expanded={ false }
218
218
  >
219
219
  <FlexItem>
220
- <Button variant="tertiary" onClick={ onClose }>
220
+ <Button
221
+ variant="tertiary"
222
+ onClick={ onClose }
223
+ __next40pxDefaultSize
224
+ >
221
225
  { __( 'Cancel' ) }
222
226
  </Button>
223
227
  </FlexItem>
224
228
  <FlexItem>
225
- <Button variant="primary" type="submit">
229
+ <Button
230
+ variant="primary"
231
+ type="submit"
232
+ __next40pxDefaultSize
233
+ >
226
234
  { __( 'Apply' ) }
227
235
  </Button>
228
236
  </FlexItem>
@@ -8,13 +8,9 @@
8
8
  }
9
9
  }
10
10
 
11
- .block-editor-block-lock-modal__options {
12
- margin-top: $grid-unit-20;
13
-
14
- legend {
15
- margin-bottom: $grid-unit-20;
16
- padding: 0;
17
- }
11
+ .block-editor-block-lock-modal__options legend {
12
+ margin-bottom: $grid-unit-20;
13
+ padding: 0;
18
14
  }
19
15
 
20
16
  .block-editor-block-lock-modal__checklist {
@@ -52,7 +48,7 @@
52
48
  .block-editor-block-lock-modal__template-lock {
53
49
  border-top: $border-width solid $gray-300;
54
50
  margin-top: $grid-unit-20;
55
- padding: $grid-unit-15 0;
51
+ padding-top: $grid-unit-20;
56
52
  }
57
53
 
58
54
  .block-editor-block-lock-modal__actions {
@@ -69,7 +69,11 @@ function BlockMover( {
69
69
  [ clientIds ]
70
70
  );
71
71
 
72
- if ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {
72
+ if (
73
+ ! canMove ||
74
+ ( isFirst && isLast && ! rootClientId ) ||
75
+ ( hideDragHandle && isManualGrid )
76
+ ) {
73
77
  return null;
74
78
  }
75
79
 
@@ -85,7 +89,6 @@ function BlockMover( {
85
89
  <Button
86
90
  icon={ dragHandle }
87
91
  className="block-editor-block-mover__drag-handle"
88
- aria-hidden="true"
89
92
  label={ __( 'Drag' ) }
90
93
  // Should not be able to tab to drag handle as this
91
94
  // button can only be used with a pointer device.
@@ -24,11 +24,6 @@
24
24
 
25
25
  .show-icon-labels {
26
26
  .block-editor-patterns__grid-pagination {
27
- flex-direction: column;
28
- .block-editor-patterns__grid-pagination-previous,
29
- .block-editor-patterns__grid-pagination-next {
30
- flex-direction: column;
31
- }
32
27
  .components-button {
33
28
  width: auto;
34
29
  // Hide the button icons when labels are set to display...
@@ -42,22 +37,4 @@
42
37
  }
43
38
  }
44
39
  }
45
-
46
- @media screen and (min-width: $break-large) {
47
- .block-editor-patterns__grid-pagination {
48
- flex-direction: row;
49
- .block-editor-patterns__grid-pagination-previous,
50
- .block-editor-patterns__grid-pagination-next {
51
- flex-direction: row;
52
- }
53
- }
54
- }
55
- }
56
-
57
- .block-editor-block-patterns-list .block-editor-patterns__grid-pagination {
58
- flex-direction: column;
59
- .block-editor-patterns__grid-pagination-previous,
60
- .block-editor-patterns__grid-pagination-next {
61
- flex-direction: column;
62
- }
63
40
  }
@@ -6,7 +6,7 @@ import { useEffect, useState, useMemo, forwardRef } from '@wordpress/element';
6
6
  /**
7
7
  * Internal dependencies
8
8
  */
9
- import { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';
9
+ import { useBlockElement } from '../block-list/use-block-props/use-block-refs';
10
10
  import { PrivateBlockPopover } from '.';
11
11
 
12
12
  function BlockPopoverCover(
@@ -20,7 +20,7 @@ import { isRTL } from '@wordpress/i18n';
20
20
  * Internal dependencies
21
21
  */
22
22
  import { store as blockEditorStore } from '../../store';
23
- import { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';
23
+ import { useBlockElement } from '../block-list/use-block-props/use-block-refs';
24
24
  import usePopoverScroll from './use-popover-scroll';
25
25
 
26
26
  const MAX_POPOVER_RECOMPUTE_COUNTER = Number.MAX_SAFE_INTEGER;
@@ -18,7 +18,7 @@ import {
18
18
  /**
19
19
  * Internal dependencies
20
20
  */
21
- import { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';
21
+ import { useBlockElement } from '../block-list/use-block-props/use-block-refs';
22
22
  import usePopoverScroll from './use-popover-scroll';
23
23
 
24
24
  const MAX_POPOVER_RECOMPUTE_COUNTER = Number.MAX_SAFE_INTEGER;
@@ -53,10 +53,18 @@ export function BlockRemovalWarningModal( { rules } ) {
53
53
  >
54
54
  <p>{ message }</p>
55
55
  <HStack justify="right">
56
- <Button variant="tertiary" onClick={ clearBlockRemovalPrompt }>
56
+ <Button
57
+ variant="tertiary"
58
+ onClick={ clearBlockRemovalPrompt }
59
+ __next40pxDefaultSize
60
+ >
57
61
  { __( 'Cancel' ) }
58
62
  </Button>
59
- <Button variant="primary" onClick={ onConfirmRemoval }>
63
+ <Button
64
+ variant="primary"
65
+ onClick={ onConfirmRemoval }
66
+ __next40pxDefaultSize
67
+ >
60
68
  { __( 'Delete' ) }
61
69
  </Button>
62
70
  </HStack>
@@ -306,7 +306,7 @@ export const BlockSwitcher = ( { clientIds, disabled, isUsingBindings } ) => {
306
306
  </>
307
307
  }
308
308
  toggleProps={ {
309
- describedBy: blockSwitcherDescription,
309
+ description: blockSwitcherDescription,
310
310
  ...toggleProps,
311
311
  } }
312
312
  menuProps={ { orientation: 'both' } }