@wordpress/block-editor 13.2.0 → 13.4.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 (538) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +0 -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 +12 -1
  10. package/build/components/block-breadcrumb/index.js.map +1 -1
  11. package/build/components/block-inspector/index.js +6 -3
  12. package/build/components/block-inspector/index.js.map +1 -1
  13. package/build/components/block-list/use-block-props/index.js +3 -1
  14. package/build/components/block-list/use-block-props/index.js.map +1 -1
  15. package/build/components/block-list/use-block-props/use-block-refs.js +9 -2
  16. package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  17. package/build/components/block-list/use-block-props/use-is-hovered.js +25 -9
  18. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  19. package/build/components/block-list/use-in-between-inserter.js +3 -2
  20. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  21. package/build/components/block-lock/modal.js +2 -0
  22. package/build/components/block-lock/modal.js.map +1 -1
  23. package/build/components/block-lock/toolbar.js +0 -1
  24. package/build/components/block-lock/toolbar.js.map +1 -1
  25. package/build/components/block-mover/button.js +1 -1
  26. package/build/components/block-mover/button.js.map +1 -1
  27. package/build/components/block-mover/index.js +1 -1
  28. package/build/components/block-mover/index.js.map +1 -1
  29. package/build/components/block-pattern-setup/setup-toolbar.js +2 -2
  30. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  31. package/build/components/block-patterns-paging/index.js +5 -7
  32. package/build/components/block-patterns-paging/index.js.map +1 -1
  33. package/build/components/block-quick-navigation/index.js +20 -17
  34. package/build/components/block-quick-navigation/index.js.map +1 -1
  35. package/build/components/block-removal-warning-modal/index.js +2 -0
  36. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  37. package/build/components/block-rename/modal.js +4 -12
  38. package/build/components/block-rename/modal.js.map +1 -1
  39. package/build/components/block-switcher/index.js +1 -1
  40. package/build/components/block-switcher/index.js.map +1 -1
  41. package/build/components/block-switcher/pattern-transformations-menu.js +11 -12
  42. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  43. package/build/components/block-switcher/preview-block-popover.js +20 -17
  44. package/build/components/block-switcher/preview-block-popover.js.map +1 -1
  45. package/build/components/block-toolbar/shuffle.js +6 -2
  46. package/build/components/block-toolbar/shuffle.js.map +1 -1
  47. package/build/components/block-tools/block-selection-button.js +7 -58
  48. package/build/components/block-tools/block-selection-button.js.map +1 -1
  49. package/build/components/block-tools/block-toolbar-breadcrumb.js +9 -2
  50. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  51. package/build/components/block-tools/index.js +14 -1
  52. package/build/components/block-tools/index.js.map +1 -1
  53. package/build/components/block-tools/use-show-block-tools.js +9 -8
  54. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  55. package/build/components/block-tools/zoom-out-mode-inserter-button.js +45 -0
  56. package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
  57. package/build/components/block-tools/zoom-out-mode-inserters.js +29 -28
  58. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  59. package/build/components/block-tools/zoom-out-popover.js +58 -0
  60. package/build/components/block-tools/zoom-out-popover.js.map +1 -0
  61. package/build/components/block-tools/zoom-out-toolbar.js +138 -0
  62. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -0
  63. package/build/components/button-block-appender/index.js +3 -1
  64. package/build/components/button-block-appender/index.js.map +1 -1
  65. package/build/components/child-layout-control/index.js +26 -18
  66. package/build/components/child-layout-control/index.js.map +1 -1
  67. package/build/components/date-format-picker/index.js +1 -1
  68. package/build/components/date-format-picker/index.js.map +1 -1
  69. package/build/components/default-block-appender/index.js +7 -4
  70. package/build/components/default-block-appender/index.js.map +1 -1
  71. package/build/components/dimensions-tool/index.js +6 -4
  72. package/build/components/dimensions-tool/index.js.map +1 -1
  73. package/build/components/font-appearance-control/index.js +22 -62
  74. package/build/components/font-appearance-control/index.js.map +1 -1
  75. package/build/components/global-styles/background-panel.js +185 -116
  76. package/build/components/global-styles/background-panel.js.map +1 -1
  77. package/build/components/global-styles/border-panel.js +2 -1
  78. package/build/components/global-styles/border-panel.js.map +1 -1
  79. package/build/components/global-styles/color-panel.js +2 -1
  80. package/build/components/global-styles/color-panel.js.map +1 -1
  81. package/build/components/global-styles/dimensions-panel.js +2 -1
  82. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  83. package/build/components/global-styles/filters-panel.js +2 -1
  84. package/build/components/global-styles/filters-panel.js.map +1 -1
  85. package/build/components/global-styles/hooks.js +13 -1
  86. package/build/components/global-styles/hooks.js.map +1 -1
  87. package/build/components/global-styles/image-settings-panel.js +2 -1
  88. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  89. package/build/components/global-styles/typography-panel.js +45 -24
  90. package/build/components/global-styles/typography-panel.js.map +1 -1
  91. package/build/components/global-styles/typography-utils.js +121 -0
  92. package/build/components/global-styles/typography-utils.js.map +1 -1
  93. package/build/components/global-styles/use-global-styles-output.js +47 -13
  94. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  95. package/build/components/global-styles/utils.js +17 -7
  96. package/build/components/global-styles/utils.js.map +1 -1
  97. package/build/components/grid/grid-item-movers.js +90 -48
  98. package/build/components/grid/grid-item-movers.js.map +1 -1
  99. package/build/components/grid/grid-item-resizer.js +2 -2
  100. package/build/components/grid/grid-item-resizer.js.map +1 -1
  101. package/build/components/grid/grid-visualizer.js +117 -37
  102. package/build/components/grid/grid-visualizer.js.map +1 -1
  103. package/build/components/grid/use-grid-layout-sync.js +60 -41
  104. package/build/components/grid/use-grid-layout-sync.js.map +1 -1
  105. package/build/components/index.js +1 -9
  106. package/build/components/index.js.map +1 -1
  107. package/build/components/inner-blocks/index.js +2 -2
  108. package/build/components/inner-blocks/index.js.map +1 -1
  109. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
  110. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  111. package/build/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
  112. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  113. package/build/components/inserter/media-tab/media-panel.js +1 -0
  114. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  115. package/build/components/inserter/menu.js +26 -4
  116. package/build/components/inserter/menu.js.map +1 -1
  117. package/build/components/inserter/preview-panel.js +20 -3
  118. package/build/components/inserter/preview-panel.js.map +1 -1
  119. package/build/components/inserter/quick-inserter.js +2 -1
  120. package/build/components/inserter/quick-inserter.js.map +1 -1
  121. package/build/components/inserter-draggable-blocks/index.js +10 -3
  122. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  123. package/build/components/inspector-controls/block-support-tools-panel.js +2 -1
  124. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  125. package/build/components/inspector-controls-tabs/settings-tab.js +1 -2
  126. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  127. package/build/components/link-control/link-preview.js +1 -1
  128. package/build/components/link-control/link-preview.js.map +1 -1
  129. package/build/components/list-view/block-select-button.js +2 -6
  130. package/build/components/list-view/block-select-button.js.map +1 -1
  131. package/build/components/list-view/block.js +2 -2
  132. package/build/components/list-view/block.js.map +1 -1
  133. package/build/components/list-view/utils.js +3 -1
  134. package/build/components/list-view/utils.js.map +1 -1
  135. package/build/components/media-placeholder/index.js +19 -23
  136. package/build/components/media-placeholder/index.js.map +1 -1
  137. package/build/components/navigable-toolbar/index.js +3 -1
  138. package/build/components/navigable-toolbar/index.js.map +1 -1
  139. package/build/components/rich-text/format-toolbar/index.js +1 -1
  140. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  141. package/build/components/rich-text/index.js +1 -1
  142. package/build/components/rich-text/index.js.map +1 -1
  143. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
  144. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  145. package/build/components/tabbed-sidebar/index.js +66 -0
  146. package/build/components/tabbed-sidebar/index.js.map +1 -0
  147. package/build/components/url-popover/image-url-input-ui.js +3 -3
  148. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  149. package/build/components/url-popover/index.js +3 -0
  150. package/build/components/url-popover/index.js.map +1 -1
  151. package/build/hooks/background.js +26 -4
  152. package/build/hooks/background.js.map +1 -1
  153. package/build/hooks/block-hooks.js +11 -17
  154. package/build/hooks/block-hooks.js.map +1 -1
  155. package/build/hooks/block-style-variation.js +169 -4
  156. package/build/hooks/block-style-variation.js.map +1 -1
  157. package/build/hooks/duotone.js +16 -11
  158. package/build/hooks/duotone.js.map +1 -1
  159. package/build/hooks/grid-visualizer.js +62 -0
  160. package/build/hooks/grid-visualizer.js.map +1 -0
  161. package/build/hooks/index.js +15 -2
  162. package/build/hooks/index.js.map +1 -1
  163. package/build/hooks/layout-child.js +47 -23
  164. package/build/hooks/layout-child.js.map +1 -1
  165. package/build/hooks/position.js +4 -15
  166. package/build/hooks/position.js.map +1 -1
  167. package/build/hooks/use-bindings-attributes.js +96 -55
  168. package/build/hooks/use-bindings-attributes.js.map +1 -1
  169. package/build/hooks/utils.js +2 -0
  170. package/build/hooks/utils.js.map +1 -1
  171. package/build/layouts/constrained.js +50 -4
  172. package/build/layouts/constrained.js.map +1 -1
  173. package/build/layouts/grid.js +92 -51
  174. package/build/layouts/grid.js.map +1 -1
  175. package/build/private-apis.js +6 -4
  176. package/build/private-apis.js.map +1 -1
  177. package/build/store/actions.js +18 -1
  178. package/build/store/actions.js.map +1 -1
  179. package/build/store/defaults.js +0 -2
  180. package/build/store/defaults.js.map +1 -1
  181. package/build/store/defaults.native.js +0 -3
  182. package/build/store/defaults.native.js.map +1 -1
  183. package/build/store/private-keys.js +2 -1
  184. package/build/store/private-keys.js.map +1 -1
  185. package/build/store/reducer.js +19 -1
  186. package/build/store/reducer.js.map +1 -1
  187. package/build/store/selectors.js +13 -1
  188. package/build/store/selectors.js.map +1 -1
  189. package/build/utils/format-font-style.js +45 -0
  190. package/build/utils/format-font-style.js.map +1 -0
  191. package/build/utils/format-font-weight.js +68 -0
  192. package/build/utils/format-font-weight.js.map +1 -0
  193. package/build/utils/get-editor-region.js +34 -0
  194. package/build/utils/get-editor-region.js.map +1 -0
  195. package/build/utils/get-font-styles-and-weights.js +167 -0
  196. package/build/utils/get-font-styles-and-weights.js.map +1 -0
  197. package/build/utils/pasting.js +5 -13
  198. package/build/utils/pasting.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 +12 -1
  206. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  207. package/build-module/components/block-inspector/index.js +6 -3
  208. package/build-module/components/block-inspector/index.js.map +1 -1
  209. package/build-module/components/block-list/use-block-props/index.js +3 -1
  210. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  211. package/build-module/components/block-list/use-block-props/use-block-refs.js +11 -4
  212. package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  213. package/build-module/components/block-list/use-block-props/use-is-hovered.js +26 -9
  214. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  215. package/build-module/components/block-list/use-in-between-inserter.js +3 -2
  216. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  217. package/build-module/components/block-lock/modal.js +2 -0
  218. package/build-module/components/block-lock/modal.js.map +1 -1
  219. package/build-module/components/block-lock/toolbar.js +0 -1
  220. package/build-module/components/block-lock/toolbar.js.map +1 -1
  221. package/build-module/components/block-mover/button.js +1 -1
  222. package/build-module/components/block-mover/button.js.map +1 -1
  223. package/build-module/components/block-mover/index.js +1 -1
  224. package/build-module/components/block-mover/index.js.map +1 -1
  225. package/build-module/components/block-pattern-setup/setup-toolbar.js +2 -2
  226. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  227. package/build-module/components/block-patterns-paging/index.js +5 -7
  228. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  229. package/build-module/components/block-quick-navigation/index.js +20 -17
  230. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  231. package/build-module/components/block-removal-warning-modal/index.js +2 -0
  232. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  233. package/build-module/components/block-rename/modal.js +5 -13
  234. package/build-module/components/block-rename/modal.js.map +1 -1
  235. package/build-module/components/block-switcher/index.js +1 -1
  236. package/build-module/components/block-switcher/index.js.map +1 -1
  237. package/build-module/components/block-switcher/pattern-transformations-menu.js +12 -13
  238. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  239. package/build-module/components/block-switcher/preview-block-popover.js +20 -17
  240. package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
  241. package/build-module/components/block-toolbar/shuffle.js +6 -2
  242. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  243. package/build-module/components/block-tools/block-selection-button.js +10 -61
  244. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  245. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +9 -2
  246. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  247. package/build-module/components/block-tools/index.js +14 -1
  248. package/build-module/components/block-tools/index.js.map +1 -1
  249. package/build-module/components/block-tools/use-show-block-tools.js +9 -8
  250. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  251. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +37 -0
  252. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
  253. package/build-module/components/block-tools/zoom-out-mode-inserters.js +30 -29
  254. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  255. package/build-module/components/block-tools/zoom-out-popover.js +49 -0
  256. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -0
  257. package/build-module/components/block-tools/zoom-out-toolbar.js +131 -0
  258. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -0
  259. package/build-module/components/button-block-appender/index.js +3 -1
  260. package/build-module/components/button-block-appender/index.js.map +1 -1
  261. package/build-module/components/child-layout-control/index.js +27 -19
  262. package/build-module/components/child-layout-control/index.js.map +1 -1
  263. package/build-module/components/date-format-picker/index.js +2 -2
  264. package/build-module/components/date-format-picker/index.js.map +1 -1
  265. package/build-module/components/default-block-appender/index.js +7 -4
  266. package/build-module/components/default-block-appender/index.js.map +1 -1
  267. package/build-module/components/dimensions-tool/index.js +6 -4
  268. package/build-module/components/dimensions-tool/index.js.map +1 -1
  269. package/build-module/components/font-appearance-control/index.js +24 -62
  270. package/build-module/components/font-appearance-control/index.js.map +1 -1
  271. package/build-module/components/global-styles/background-panel.js +188 -119
  272. package/build-module/components/global-styles/background-panel.js.map +1 -1
  273. package/build-module/components/global-styles/border-panel.js +3 -2
  274. package/build-module/components/global-styles/border-panel.js.map +1 -1
  275. package/build-module/components/global-styles/color-panel.js +3 -2
  276. package/build-module/components/global-styles/color-panel.js.map +1 -1
  277. package/build-module/components/global-styles/dimensions-panel.js +3 -2
  278. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  279. package/build-module/components/global-styles/filters-panel.js +3 -2
  280. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  281. package/build-module/components/global-styles/hooks.js +13 -1
  282. package/build-module/components/global-styles/hooks.js.map +1 -1
  283. package/build-module/components/global-styles/image-settings-panel.js +3 -2
  284. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  285. package/build-module/components/global-styles/typography-panel.js +47 -26
  286. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  287. package/build-module/components/global-styles/typography-utils.js +117 -0
  288. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  289. package/build-module/components/global-styles/use-global-styles-output.js +47 -13
  290. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  291. package/build-module/components/global-styles/utils.js +15 -6
  292. package/build-module/components/global-styles/utils.js.map +1 -1
  293. package/build-module/components/grid/grid-item-movers.js +93 -50
  294. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  295. package/build-module/components/grid/grid-item-resizer.js +2 -2
  296. package/build-module/components/grid/grid-item-resizer.js.map +1 -1
  297. package/build-module/components/grid/grid-visualizer.js +118 -38
  298. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  299. package/build-module/components/grid/use-grid-layout-sync.js +61 -42
  300. package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
  301. package/build-module/components/index.js +0 -5
  302. package/build-module/components/index.js.map +1 -1
  303. package/build-module/components/inner-blocks/index.js +2 -2
  304. package/build-module/components/inner-blocks/index.js.map +1 -1
  305. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
  306. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  307. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
  308. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  309. package/build-module/components/inserter/media-tab/media-panel.js +1 -0
  310. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  311. package/build-module/components/inserter/menu.js +26 -4
  312. package/build-module/components/inserter/menu.js.map +1 -1
  313. package/build-module/components/inserter/preview-panel.js +20 -3
  314. package/build-module/components/inserter/preview-panel.js.map +1 -1
  315. package/build-module/components/inserter/quick-inserter.js +2 -1
  316. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  317. package/build-module/components/inserter-draggable-blocks/index.js +10 -3
  318. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  319. package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -2
  320. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  321. package/build-module/components/inspector-controls-tabs/settings-tab.js +1 -2
  322. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  323. package/build-module/components/link-control/link-preview.js +1 -1
  324. package/build-module/components/link-control/link-preview.js.map +1 -1
  325. package/build-module/components/list-view/block-select-button.js +3 -7
  326. package/build-module/components/list-view/block-select-button.js.map +1 -1
  327. package/build-module/components/list-view/block.js +2 -2
  328. package/build-module/components/list-view/block.js.map +1 -1
  329. package/build-module/components/list-view/utils.js +3 -1
  330. package/build-module/components/list-view/utils.js.map +1 -1
  331. package/build-module/components/media-placeholder/index.js +19 -23
  332. package/build-module/components/media-placeholder/index.js.map +1 -1
  333. package/build-module/components/navigable-toolbar/index.js +3 -1
  334. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  335. package/build-module/components/rich-text/format-toolbar/index.js +1 -1
  336. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  337. package/build-module/components/rich-text/index.js +1 -1
  338. package/build-module/components/rich-text/index.js.map +1 -1
  339. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
  340. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  341. package/build-module/components/tabbed-sidebar/index.js +60 -0
  342. package/build-module/components/tabbed-sidebar/index.js.map +1 -0
  343. package/build-module/components/url-popover/image-url-input-ui.js +3 -3
  344. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  345. package/build-module/components/url-popover/index.js +3 -0
  346. package/build-module/components/url-popover/index.js.map +1 -1
  347. package/build-module/hooks/background.js +26 -4
  348. package/build-module/hooks/background.js.map +1 -1
  349. package/build-module/hooks/block-hooks.js +11 -17
  350. package/build-module/hooks/block-hooks.js.map +1 -1
  351. package/build-module/hooks/block-style-variation.js +168 -4
  352. package/build-module/hooks/block-style-variation.js.map +1 -1
  353. package/build-module/hooks/duotone.js +16 -11
  354. package/build-module/hooks/duotone.js.map +1 -1
  355. package/build-module/hooks/grid-visualizer.js +61 -0
  356. package/build-module/hooks/grid-visualizer.js.map +1 -0
  357. package/build-module/hooks/index.js +3 -0
  358. package/build-module/hooks/index.js.map +1 -1
  359. package/build-module/hooks/layout-child.js +47 -23
  360. package/build-module/hooks/layout-child.js.map +1 -1
  361. package/build-module/hooks/position.js +4 -15
  362. package/build-module/hooks/position.js.map +1 -1
  363. package/build-module/hooks/use-bindings-attributes.js +96 -56
  364. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  365. package/build-module/hooks/utils.js +2 -0
  366. package/build-module/hooks/utils.js.map +1 -1
  367. package/build-module/layouts/constrained.js +50 -4
  368. package/build-module/layouts/constrained.js.map +1 -1
  369. package/build-module/layouts/grid.js +92 -51
  370. package/build-module/layouts/grid.js.map +1 -1
  371. package/build-module/private-apis.js +8 -6
  372. package/build-module/private-apis.js.map +1 -1
  373. package/build-module/store/actions.js +15 -0
  374. package/build-module/store/actions.js.map +1 -1
  375. package/build-module/store/defaults.js +0 -2
  376. package/build-module/store/defaults.js.map +1 -1
  377. package/build-module/store/defaults.native.js +0 -3
  378. package/build-module/store/defaults.native.js.map +1 -1
  379. package/build-module/store/private-keys.js +1 -0
  380. package/build-module/store/private-keys.js.map +1 -1
  381. package/build-module/store/reducer.js +18 -1
  382. package/build-module/store/reducer.js.map +1 -1
  383. package/build-module/store/selectors.js +10 -0
  384. package/build-module/store/selectors.js.map +1 -1
  385. package/build-module/utils/format-font-style.js +39 -0
  386. package/build-module/utils/format-font-style.js.map +1 -0
  387. package/build-module/utils/format-font-weight.js +62 -0
  388. package/build-module/utils/format-font-weight.js.map +1 -0
  389. package/build-module/utils/get-editor-region.js +28 -0
  390. package/build-module/utils/get-editor-region.js.map +1 -0
  391. package/build-module/utils/get-font-styles-and-weights.js +160 -0
  392. package/build-module/utils/get-font-styles-and-weights.js.map +1 -0
  393. package/build-module/utils/pasting.js +5 -13
  394. package/build-module/utils/pasting.js.map +1 -1
  395. package/build-style/content-rtl.css +7 -6
  396. package/build-style/content.css +7 -6
  397. package/build-style/style-rtl.css +356 -181
  398. package/build-style/style.css +356 -181
  399. package/build-types/components/block-context/index.d.ts +2 -2
  400. package/build-types/components/block-context/index.d.ts.map +1 -1
  401. package/build-types/utils/dom.d.ts.map +1 -1
  402. package/package.json +32 -32
  403. package/src/components/alignment-control/ui.js +2 -2
  404. package/src/components/block-alignment-control/ui.js +1 -1
  405. package/src/components/block-alignment-control/ui.native.js +1 -1
  406. package/src/components/block-breadcrumb/index.js +16 -1
  407. package/src/components/block-context/README.md +4 -4
  408. package/src/components/block-inspector/index.js +8 -4
  409. package/src/components/block-list/content.scss +2 -16
  410. package/src/components/block-list/use-block-props/index.js +1 -1
  411. package/src/components/block-list/use-block-props/use-block-refs.js +19 -3
  412. package/src/components/block-list/use-block-props/use-is-hovered.js +26 -11
  413. package/src/components/block-list/use-in-between-inserter.js +5 -1
  414. package/src/components/block-lock/modal.js +10 -2
  415. package/src/components/block-lock/style.scss +4 -8
  416. package/src/components/block-lock/toolbar.js +0 -1
  417. package/src/components/block-mover/button.js +1 -1
  418. package/src/components/block-mover/index.js +1 -1
  419. package/src/components/block-pattern-setup/setup-toolbar.js +2 -2
  420. package/src/components/block-patterns-paging/index.js +8 -11
  421. package/src/components/block-patterns-paging/style.scss +0 -5
  422. package/src/components/block-quick-navigation/index.js +21 -28
  423. package/src/components/block-removal-warning-modal/index.js +10 -2
  424. package/src/components/block-rename/modal.js +2 -8
  425. package/src/components/block-switcher/index.js +1 -1
  426. package/src/components/block-switcher/pattern-transformations-menu.js +17 -15
  427. package/src/components/block-switcher/preview-block-popover.js +20 -14
  428. package/src/components/block-switcher/style.scss +8 -17
  429. package/src/components/block-switcher/test/index.js +6 -6
  430. package/src/components/block-toolbar/shuffle.js +9 -1
  431. package/src/components/block-toolbar/style.scss +1 -11
  432. package/src/components/block-tools/block-selection-button.js +11 -83
  433. package/src/components/block-tools/block-toolbar-breadcrumb.js +9 -4
  434. package/src/components/block-tools/index.js +21 -1
  435. package/src/components/block-tools/style.scss +23 -0
  436. package/src/components/block-tools/use-show-block-tools.js +21 -10
  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 +44 -33
  439. package/src/components/block-tools/zoom-out-popover.js +50 -0
  440. package/src/components/block-tools/zoom-out-toolbar.js +140 -0
  441. package/src/components/button-block-appender/index.js +2 -1
  442. package/src/components/child-layout-control/index.js +41 -23
  443. package/src/components/date-format-picker/index.js +2 -2
  444. package/src/components/date-format-picker/style.scss +0 -9
  445. package/src/components/default-block-appender/index.js +11 -4
  446. package/src/components/dimensions-tool/index.js +97 -89
  447. package/src/components/font-appearance-control/index.js +24 -82
  448. package/src/components/font-appearance-control/style.scss +3 -5
  449. package/src/components/global-styles/background-panel.js +266 -167
  450. package/src/components/global-styles/border-panel.js +3 -2
  451. package/src/components/global-styles/color-panel.js +3 -2
  452. package/src/components/global-styles/dimensions-panel.js +3 -2
  453. package/src/components/global-styles/filters-panel.js +3 -2
  454. package/src/components/global-styles/hooks.js +14 -1
  455. package/src/components/global-styles/image-settings-panel.js +3 -2
  456. package/src/components/global-styles/style.scss +116 -19
  457. package/src/components/global-styles/test/typography-utils.js +594 -0
  458. package/src/components/global-styles/test/use-global-styles-output.js +3 -1
  459. package/src/components/global-styles/typography-panel.js +56 -27
  460. package/src/components/global-styles/typography-utils.js +159 -0
  461. package/src/components/global-styles/use-global-styles-output.js +45 -10
  462. package/src/components/global-styles/utils.js +17 -6
  463. package/src/components/grid/grid-item-movers.js +140 -86
  464. package/src/components/grid/grid-item-resizer.js +3 -2
  465. package/src/components/grid/grid-visualizer.js +172 -55
  466. package/src/components/grid/style.scss +157 -8
  467. package/src/components/grid/use-grid-layout-sync.js +88 -46
  468. package/src/components/iframe/content.scss +2 -1
  469. package/src/components/index.js +0 -5
  470. package/src/components/inner-blocks/index.js +6 -2
  471. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -16
  472. package/src/components/inserter/block-patterns-tab/patterns-filter.js +40 -44
  473. package/src/components/inserter/media-tab/media-panel.js +1 -0
  474. package/src/components/inserter/menu.js +47 -13
  475. package/src/components/inserter/preview-panel.js +27 -4
  476. package/src/components/inserter/quick-inserter.js +6 -1
  477. package/src/components/inserter/style.scss +58 -92
  478. package/src/components/inserter-draggable-blocks/index.js +11 -3
  479. package/src/components/inspector-controls/block-support-tools-panel.js +3 -3
  480. package/src/components/inspector-controls-tabs/settings-tab.js +0 -2
  481. package/src/components/inspector-controls-tabs/style.scss +0 -21
  482. package/src/components/link-control/link-preview.js +1 -1
  483. package/src/components/list-view/block-select-button.js +3 -13
  484. package/src/components/list-view/block.js +10 -3
  485. package/src/components/list-view/style.scss +2 -1
  486. package/src/components/list-view/utils.js +13 -2
  487. package/src/components/media-placeholder/index.js +22 -32
  488. package/src/components/navigable-toolbar/index.js +3 -1
  489. package/src/components/rich-text/format-toolbar/index.js +1 -1
  490. package/src/components/rich-text/index.js +1 -1
  491. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -2
  492. package/src/components/tabbed-sidebar/README.md +76 -0
  493. package/src/components/tabbed-sidebar/index.js +70 -0
  494. package/src/components/tabbed-sidebar/style.scss +53 -0
  495. package/src/components/url-popover/image-url-input-ui.js +3 -3
  496. package/src/components/url-popover/index.js +3 -0
  497. package/src/components/url-popover/style.scss +1 -0
  498. package/src/hooks/background.js +25 -10
  499. package/src/hooks/block-hooks.js +9 -16
  500. package/src/hooks/block-style-variation.js +202 -3
  501. package/src/hooks/duotone.js +16 -12
  502. package/src/hooks/grid-visualizer.js +62 -0
  503. package/src/hooks/index.js +3 -0
  504. package/src/hooks/layout-child.js +64 -39
  505. package/src/hooks/position.js +3 -20
  506. package/src/hooks/test/get-variation-styles-with-ref-values.js +91 -0
  507. package/src/hooks/use-bindings-attributes.js +107 -63
  508. package/src/hooks/utils.js +2 -0
  509. package/src/layouts/constrained.js +53 -4
  510. package/src/layouts/grid.js +148 -51
  511. package/src/private-apis.js +12 -7
  512. package/src/store/actions.js +15 -0
  513. package/src/store/defaults.js +0 -2
  514. package/src/store/defaults.native.js +0 -3
  515. package/src/store/private-keys.js +1 -0
  516. package/src/store/reducer.js +18 -0
  517. package/src/store/selectors.js +10 -0
  518. package/src/style.scss +1 -1
  519. package/src/utils/format-font-style.js +40 -0
  520. package/src/utils/format-font-weight.js +63 -0
  521. package/src/utils/get-editor-region.js +31 -0
  522. package/src/utils/get-font-styles-and-weights.js +191 -0
  523. package/src/utils/pasting.js +5 -12
  524. package/src/utils/test/format-font-style.js +34 -0
  525. package/src/utils/test/format-font-weight.js +66 -0
  526. package/src/utils/test/get-font-styles-and-weights.js +513 -0
  527. package/tsconfig.tsbuildinfo +1 -1
  528. package/build/components/inserter/reusable-block-rename-hint.js +0 -71
  529. package/build/components/inserter/reusable-block-rename-hint.js.map +0 -1
  530. package/build/components/inspector-controls-tabs/settings-tab-hint.js +0 -53
  531. package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
  532. package/build-module/components/inserter/reusable-block-rename-hint.js +0 -64
  533. package/build-module/components/inserter/reusable-block-rename-hint.js.map +0 -1
  534. package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +0 -47
  535. package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
  536. package/src/components/inserter/reusable-block-rename-hint.js +0 -69
  537. package/src/components/inspector-controls-tabs/settings-tab-hint.js +0 -52
  538. package/src/hooks/position.scss +0 -18
@@ -7,7 +7,7 @@
7
7
  */
8
8
  export function BlockContextProvider({ value, children }: BlockContextProviderProps): import("react").JSX.Element;
9
9
  export default Context;
10
- export type ReactNode = import('react').ReactNode;
10
+ export type ReactNode = import("react").ReactNode;
11
11
  export type BlockContextProviderProps = {
12
12
  /**
13
13
  * Context value to merge with current
@@ -28,5 +28,5 @@ export type BlockContextProviderProps = {
28
28
  * @property {ReactNode} children Component children.
29
29
  */
30
30
  /** @type {import('react').Context<Record<string,*>>} */
31
- declare const Context: import('react').Context<Record<string, any>>;
31
+ declare const Context: import("react").Context<Record<string, any>>;
32
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/block-context/index.js"],"names":[],"mappings":"AAkBA;;;;;;GAMG;AACH,0DAFW,yBAAyB,+BAUnC;;wBA5Ba,OAAO,OAAO,EAAE,SAAS;;;;;;WAKzB,OAAO,MAAM,MAAG;;;;cAEhB,SAAS;;AAPvB,qDAAqD;AAErD;;;;;;GAMG;AAEH,wDAAwD;AACxD,uBADW,OAAO,OAAO,EAAE,OAAO,CAAC,OAAO,MAAM,MAAG,CAAC,CAChB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/block-context/index.js"],"names":[],"mappings":"AAkBA;;;;;;GAMG;AACH,0DAFW,yBAAyB,+BAUnC;;wBA5Ba,OAAO,OAAO,EAAE,SAAS;;;;;;WAKzB,MAAM,CAAC,MAAM,EAAC,GAAC,CAAC;;;;cAEhB,SAAS;;AAPvB,qDAAqD;AAErD;;;;;;GAMG;AAEH,wDAAwD;AACxD,uBADW,OAAO,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAC,GAAC,CAAC,CAAC,CAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/utils/dom.js"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,iCALW,OAAO,KACP,OAAO,GAEN,OAAO,CAIlB;AAED;;;;;;;;;GASG;AACH,gDANW,OAAO,WACP,OAAO,GAEN,OAAO,CAQlB;AAED;;;;;;;GAOG;AACH,uCALW,IAAI,UAEH,MAAM,GAAC,SAAS,CAoB3B"}
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/utils/dom.js"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,iCALW,OAAO,KACP,OAAO,GAEN,OAAO,CAIlB;AAED;;;;;;;;;GASG;AACH,gDANW,OAAO,WACP,OAAO,GAEN,OAAO,CAQlB;AAED;;;;;;;GAOG;AACH,uCALW,IAAI,OAAC,GAEJ,MAAM,GAAC,SAAS,CAoB3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-editor",
3
- "version": "13.2.0",
3
+ "version": "13.4.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.2.0",
40
- "@wordpress/api-fetch": "^7.2.0",
41
- "@wordpress/blob": "^4.2.0",
42
- "@wordpress/blocks": "^13.2.0",
43
- "@wordpress/commands": "^1.2.0",
44
- "@wordpress/components": "^28.2.0",
45
- "@wordpress/compose": "^7.2.0",
46
- "@wordpress/data": "^10.2.0",
47
- "@wordpress/date": "^5.2.0",
48
- "@wordpress/deprecated": "^4.2.0",
49
- "@wordpress/dom": "^4.2.0",
50
- "@wordpress/element": "^6.2.0",
51
- "@wordpress/escape-html": "^3.2.0",
52
- "@wordpress/hooks": "^4.2.0",
53
- "@wordpress/html-entities": "^4.2.0",
54
- "@wordpress/i18n": "^5.2.0",
55
- "@wordpress/icons": "^10.2.0",
56
- "@wordpress/is-shallow-equal": "^5.2.0",
57
- "@wordpress/keyboard-shortcuts": "^5.2.0",
58
- "@wordpress/keycodes": "^4.2.0",
59
- "@wordpress/notices": "^5.2.0",
60
- "@wordpress/preferences": "^4.2.0",
61
- "@wordpress/private-apis": "^1.2.0",
62
- "@wordpress/rich-text": "^7.2.0",
63
- "@wordpress/style-engine": "^2.2.0",
64
- "@wordpress/token-list": "^3.2.0",
65
- "@wordpress/url": "^4.2.0",
66
- "@wordpress/warning": "^3.2.0",
67
- "@wordpress/wordcount": "^4.2.0",
39
+ "@wordpress/a11y": "^4.4.0",
40
+ "@wordpress/api-fetch": "^7.4.0",
41
+ "@wordpress/blob": "^4.4.0",
42
+ "@wordpress/blocks": "^13.4.0",
43
+ "@wordpress/commands": "^1.4.0",
44
+ "@wordpress/components": "^28.4.0",
45
+ "@wordpress/compose": "^7.4.0",
46
+ "@wordpress/data": "^10.4.0",
47
+ "@wordpress/date": "^5.4.0",
48
+ "@wordpress/deprecated": "^4.4.0",
49
+ "@wordpress/dom": "^4.4.0",
50
+ "@wordpress/element": "^6.4.0",
51
+ "@wordpress/escape-html": "^3.4.0",
52
+ "@wordpress/hooks": "^4.4.0",
53
+ "@wordpress/html-entities": "^4.4.0",
54
+ "@wordpress/i18n": "^5.4.0",
55
+ "@wordpress/icons": "^10.4.0",
56
+ "@wordpress/is-shallow-equal": "^5.4.0",
57
+ "@wordpress/keyboard-shortcuts": "^5.4.0",
58
+ "@wordpress/keycodes": "^4.4.0",
59
+ "@wordpress/notices": "^5.4.0",
60
+ "@wordpress/preferences": "^4.4.0",
61
+ "@wordpress/private-apis": "^1.4.0",
62
+ "@wordpress/rich-text": "^7.4.0",
63
+ "@wordpress/style-engine": "^2.4.0",
64
+ "@wordpress/token-list": "^3.4.0",
65
+ "@wordpress/url": "^4.4.0",
66
+ "@wordpress/warning": "^3.4.0",
67
+ "@wordpress/wordcount": "^4.4.0",
68
68
  "change-case": "^4.1.2",
69
69
  "clsx": "^2.1.1",
70
70
  "colord": "^2.7.0",
@@ -74,7 +74,7 @@
74
74
  "memize": "^2.1.0",
75
75
  "postcss": "^8.4.21",
76
76
  "postcss-prefixwrap": "^1.41.0",
77
- "postcss-urlrebase": "^1.0.0",
77
+ "postcss-urlrebase": "^1.4.0",
78
78
  "react-autosize-textarea": "^7.1.0",
79
79
  "react-easy-crop": "^5.0.6",
80
80
  "remove-accents": "^0.5.0"
@@ -86,5 +86,5 @@
86
86
  "publishConfig": {
87
87
  "access": "public"
88
88
  },
89
- "gitHead": "aa5b14bb5bdbb8d8a02914e154c3bc1c2f18ace6"
89
+ "gitHead": "363edb39b8dda8727f652e42cbb8497732693ed2"
90
90
  }
@@ -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 } />;
@@ -12,6 +12,8 @@ import { chevronRightSmall, Icon } from '@wordpress/icons';
12
12
  import BlockTitle from '../block-title';
13
13
  import { store as blockEditorStore } from '../../store';
14
14
  import { unlock } from '../../lock-unlock';
15
+ import { __unstableUseBlockRef as useBlockRef } from '../block-list/use-block-props/use-block-refs';
16
+ import getEditorRegion from '../../utils/get-editor-region';
15
17
 
16
18
  /**
17
19
  * Block breadcrumb component, displaying the hierarchy of the current block selection as a breadcrumb.
@@ -37,6 +39,10 @@ function BlockBreadcrumb( { rootLabelText } ) {
37
39
  }, [] );
38
40
  const rootLabel = rootLabelText || __( 'Document' );
39
41
 
42
+ // We don't care about this specific ref, but this is a way
43
+ // to get a ref within the editor canvas so we can focus it later.
44
+ const blockRef = useBlockRef( clientId );
45
+
40
46
  /*
41
47
  * Disable reason: The `list` ARIA role is redundant but
42
48
  * Safari+VoiceOver won't announce the list otherwise.
@@ -60,7 +66,16 @@ function BlockBreadcrumb( { rootLabelText } ) {
60
66
  <Button
61
67
  className="block-editor-block-breadcrumb__button"
62
68
  variant="tertiary"
63
- onClick={ clearSelectedBlock }
69
+ onClick={ () => {
70
+ // Find the block editor wrapper for the selected block
71
+ const blockEditor = blockRef.current?.closest(
72
+ '.editor-styles-wrapper'
73
+ );
74
+
75
+ clearSelectedBlock();
76
+
77
+ getEditorRegion( blockEditor )?.focus();
78
+ } }
64
79
  >
65
80
  { rootLabel }
66
81
  </Button>
@@ -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
 
@@ -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,14 @@
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 {
5
+ useContext,
6
+ useMemo,
7
+ useRef,
8
+ useState,
9
+ useLayoutEffect,
10
+ } from '@wordpress/element';
11
+ import { useRefEffect } from '@wordpress/compose';
6
12
 
7
13
  /**
8
14
  * Internal dependencies
@@ -67,7 +73,17 @@ function useBlockRef( clientId ) {
67
73
  */
68
74
  function useBlockElement( clientId ) {
69
75
  const { refsMap } = useContext( BlockRefs );
70
- return useObservableValue( refsMap, clientId ) ?? null;
76
+ const [ blockElement, setBlockElement ] = useState( null );
77
+ // Delay setting the resulting `blockElement` until an effect. If the block element
78
+ // changes (i.e., the block is unmounted and re-mounted), this allows enough time
79
+ // for the ref callbacks to clean up the old element and set the new one.
80
+ useLayoutEffect( () => {
81
+ setBlockElement( refsMap.get( clientId ) );
82
+ return refsMap.subscribe( clientId, () =>
83
+ setBlockElement( refsMap.get( clientId ) )
84
+ );
85
+ }, [ refsMap, clientId ] );
86
+ return blockElement;
71
87
  }
72
88
 
73
89
  export { useBlockRef as __unstableUseBlockRef };
@@ -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 {
@@ -47,7 +47,6 @@ export default function BlockLockToolbar( { clientId } ) {
47
47
  <>
48
48
  <ToolbarGroup className="block-editor-block-lock-toolbar">
49
49
  <ToolbarButton
50
- accessibleWhenDisabled
51
50
  disabled={ ! canLock }
52
51
  icon={ isLocked ? lock : unlock }
53
52
  label={ label }
@@ -143,7 +143,7 @@ const BlockMoverButton = forwardRef(
143
143
  { ...props }
144
144
  onClick={ isDisabled ? null : onClick }
145
145
  disabled={ isDisabled }
146
- __experimentalIsFocusable
146
+ accessibleWhenDisabled
147
147
  />
148
148
  <VisuallyHidden id={ descriptionId }>
149
149
  { getBlockMoverDescription(
@@ -62,7 +62,7 @@ function BlockMover( {
62
62
  orientation: getBlockListSettings( _rootClientId )?.orientation,
63
63
  isManualGrid:
64
64
  layout.type === 'grid' &&
65
- !! layout.columnCount &&
65
+ layout.isManualPlacement &&
66
66
  window.__experimentalEnableGridInteractivity,
67
67
  };
68
68
  },
@@ -35,14 +35,14 @@ const CarouselNavigation = ( {
35
35
  label={ __( 'Previous pattern' ) }
36
36
  onClick={ handlePrevious }
37
37
  disabled={ activeSlide === 0 }
38
- __experimentalIsFocusable
38
+ accessibleWhenDisabled
39
39
  />
40
40
  <Button
41
41
  icon={ chevronRight }
42
42
  label={ __( 'Next pattern' ) }
43
43
  onClick={ handleNext }
44
44
  disabled={ activeSlide === totalSlides - 1 }
45
- __experimentalIsFocusable
45
+ accessibleWhenDisabled
46
46
  />
47
47
  </div>
48
48
  );
@@ -18,14 +18,11 @@ export default function Pagination( {
18
18
  return (
19
19
  <VStack className="block-editor-patterns__grid-pagination-wrapper">
20
20
  <Text variant="muted">
21
- {
21
+ { sprintf(
22
22
  // translators: %s: Total number of patterns.
23
- sprintf(
24
- // translators: %s: Total number of patterns.
25
- _n( '%s item', '%s items', totalItems ),
26
- totalItems
27
- )
28
- }
23
+ _n( '%s item', '%s items', totalItems ),
24
+ totalItems
25
+ ) }
29
26
  </Text>
30
27
 
31
28
  { numPages > 1 && (
@@ -45,7 +42,7 @@ export default function Pagination( {
45
42
  onClick={ () => changePage( 1 ) }
46
43
  disabled={ currentPage === 1 }
47
44
  aria-label={ __( 'First page' ) }
48
- __experimentalIsFocusable
45
+ accessibleWhenDisabled
49
46
  >
50
47
  <span>«</span>
51
48
  </Button>
@@ -54,7 +51,7 @@ export default function Pagination( {
54
51
  onClick={ () => changePage( currentPage - 1 ) }
55
52
  disabled={ currentPage === 1 }
56
53
  aria-label={ __( 'Previous page' ) }
57
- __experimentalIsFocusable
54
+ accessibleWhenDisabled
58
55
  >
59
56
  <span>‹</span>
60
57
  </Button>
@@ -77,7 +74,7 @@ export default function Pagination( {
77
74
  onClick={ () => changePage( currentPage + 1 ) }
78
75
  disabled={ currentPage === numPages }
79
76
  aria-label={ __( 'Next page' ) }
80
- __experimentalIsFocusable
77
+ accessibleWhenDisabled
81
78
  >
82
79
  <span>›</span>
83
80
  </Button>
@@ -87,7 +84,7 @@ export default function Pagination( {
87
84
  disabled={ currentPage === numPages }
88
85
  aria-label={ __( 'Last page' ) }
89
86
  size="default"
90
- __experimentalIsFocusable
87
+ accessibleWhenDisabled
91
88
  >
92
89
  <span>»</span>
93
90
  </Button>
@@ -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...