@wordpress/block-editor 12.20.0 → 12.22.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 (558) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/block-actions/index.js +47 -36
  3. package/build/components/block-actions/index.js.map +1 -1
  4. package/build/components/block-bindings-toolbar-indicator/index.js +25 -0
  5. package/build/components/block-bindings-toolbar-indicator/index.js.map +1 -0
  6. package/build/components/block-edit/context.js +2 -1
  7. package/build/components/block-edit/context.js.map +1 -1
  8. package/build/components/block-edit/index.js +8 -3
  9. package/build/components/block-edit/index.js.map +1 -1
  10. package/build/components/block-heading-level-dropdown/index.js +5 -5
  11. package/build/components/block-heading-level-dropdown/index.js.map +1 -1
  12. package/build/components/block-heading-level-dropdown/index.native.js +5 -4
  13. package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
  14. package/build/components/block-inspector/index.js +5 -4
  15. package/build/components/block-inspector/index.js.map +1 -1
  16. package/build/components/block-list/block-crash-boundary.native.js +49 -0
  17. package/build/components/block-list/block-crash-boundary.native.js.map +1 -0
  18. package/build/components/block-list/block-crash-warning.native.js +24 -0
  19. package/build/components/block-list/block-crash-warning.native.js.map +1 -0
  20. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  21. package/build/components/block-list/block-list-item.native.js +1 -1
  22. package/build/components/block-list/block-list-item.native.js.map +1 -1
  23. package/build/components/block-list/block-outline.native.js +23 -7
  24. package/build/components/block-list/block-outline.native.js.map +1 -1
  25. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  26. package/build/components/block-list/block.native.js +7 -5
  27. package/build/components/block-list/block.native.js.map +1 -1
  28. package/build/components/block-list/use-block-props/index.js +8 -1
  29. package/build/components/block-list/use-block-props/index.js.map +1 -1
  30. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +3 -3
  31. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  32. package/build/components/block-mover/index.native.js.map +1 -1
  33. package/build/components/block-popover/cover.js +68 -0
  34. package/build/components/block-popover/cover.js.map +1 -0
  35. package/build/components/block-popover/drop-zone.js +2 -3
  36. package/build/components/block-popover/drop-zone.js.map +1 -1
  37. package/build/components/block-popover/index.js +1 -19
  38. package/build/components/block-popover/index.js.map +1 -1
  39. package/build/components/block-preview/index.js +2 -1
  40. package/build/components/block-preview/index.js.map +1 -1
  41. package/build/components/block-removal-warning-modal/index.js +2 -4
  42. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  43. package/build/components/block-rename/modal.js.map +1 -1
  44. package/build/components/block-settings/container.native.js +2 -1
  45. package/build/components/block-settings/container.native.js.map +1 -1
  46. package/build/components/block-settings-menu/block-settings-dropdown.js +41 -39
  47. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  48. package/build/components/block-settings-menu-controls/index.js +1 -3
  49. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  50. package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  51. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  52. package/build/components/block-toolbar/index.js +24 -11
  53. package/build/components/block-toolbar/index.js.map +1 -1
  54. package/build/components/block-toolbar/shuffle.js +89 -0
  55. package/build/components/block-toolbar/shuffle.js.map +1 -0
  56. package/build/components/block-toolbar/use-has-block-toolbar.js +43 -0
  57. package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -0
  58. package/build/components/block-tools/block-selection-button.js +5 -1
  59. package/build/components/block-tools/block-selection-button.js.map +1 -1
  60. package/build/components/block-tools/empty-block-inserter.js +2 -5
  61. package/build/components/block-tools/empty-block-inserter.js.map +1 -1
  62. package/build/components/block-tools/index.js +9 -26
  63. package/build/components/block-tools/index.js.map +1 -1
  64. package/build/components/block-tools/use-show-block-tools.js +60 -0
  65. package/build/components/block-tools/use-show-block-tools.js.map +1 -0
  66. package/build/components/caption/index.native.js.map +1 -1
  67. package/build/components/child-layout-control/index.js +108 -11
  68. package/build/components/child-layout-control/index.js.map +1 -1
  69. package/build/components/color-palette/control.js.map +1 -1
  70. package/build/components/colors-gradients/control.js +1 -1
  71. package/build/components/colors-gradients/control.js.map +1 -1
  72. package/build/components/convert-to-group-buttons/toolbar.js +11 -0
  73. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  74. package/build/components/global-styles/border-panel.js +21 -8
  75. package/build/components/global-styles/border-panel.js.map +1 -1
  76. package/build/components/global-styles/color-panel.js +1 -1
  77. package/build/components/global-styles/color-panel.js.map +1 -1
  78. package/build/components/global-styles/dimensions-panel.js +8 -33
  79. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  80. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  81. package/build/components/global-styles/index.js +6 -0
  82. package/build/components/global-styles/index.js.map +1 -1
  83. package/build/components/global-styles/shadow-panel-components.js +80 -23
  84. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  85. package/build/components/global-styles/typography-utils.js +7 -5
  86. package/build/components/global-styles/typography-utils.js.map +1 -1
  87. package/build/components/global-styles/use-global-styles-output.js +16 -16
  88. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  89. package/build/components/global-styles/utils.js +2 -4
  90. package/build/components/global-styles/utils.js.map +1 -1
  91. package/build/components/grid-visualizer/grid-item-resizer.js +77 -0
  92. package/build/components/grid-visualizer/grid-item-resizer.js.map +1 -0
  93. package/build/components/grid-visualizer/grid-visualizer.js +81 -0
  94. package/build/components/grid-visualizer/grid-visualizer.js.map +1 -0
  95. package/build/components/grid-visualizer/index.js +20 -0
  96. package/build/components/grid-visualizer/index.js.map +1 -0
  97. package/build/components/grid-visualizer/utils.js +10 -0
  98. package/build/components/grid-visualizer/utils.js.map +1 -0
  99. package/build/components/iframe/index.js +66 -17
  100. package/build/components/iframe/index.js.map +1 -1
  101. package/build/components/index.native.js +7 -0
  102. package/build/components/index.native.js.map +1 -1
  103. package/build/components/inner-blocks/use-nested-settings-update.js +8 -2
  104. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  105. package/build/components/inserter/block-patterns-explorer/index.js +3 -6
  106. package/build/components/inserter/block-patterns-explorer/index.js.map +1 -1
  107. package/build/components/inserter/block-patterns-explorer/pattern-list.js +3 -1
  108. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  109. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  110. package/build/components/inserter/menu.native.js.map +1 -1
  111. package/build/components/inserter/mobile-tab-navigation.js +2 -2
  112. package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
  113. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  114. package/build/components/inspector-controls-tabs/advanced-controls-panel.native.js +36 -0
  115. package/build/components/inspector-controls-tabs/advanced-controls-panel.native.js.map +1 -0
  116. package/build/components/inspector-controls-tabs/index.js +1 -1
  117. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  118. package/build/components/inspector-controls-tabs/styles-tab.js +1 -1
  119. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  120. package/build/components/link-control/link-preview.js +4 -1
  121. package/build/components/link-control/link-preview.js.map +1 -1
  122. package/build/components/link-control/search-input.js.map +1 -1
  123. package/build/components/list-view/block-select-button.js +0 -2
  124. package/build/components/list-view/block-select-button.js.map +1 -1
  125. package/build/components/list-view/block.js +4 -11
  126. package/build/components/list-view/block.js.map +1 -1
  127. package/build/components/list-view/branch.js.map +1 -1
  128. package/build/components/list-view/drop-indicator.js.map +1 -1
  129. package/build/components/list-view/index.js.map +1 -1
  130. package/build/components/list-view/use-clipboard-handler.js +2 -1
  131. package/build/components/list-view/use-clipboard-handler.js.map +1 -1
  132. package/build/components/list-view/utils.js +5 -3
  133. package/build/components/list-view/utils.js.map +1 -1
  134. package/build/components/panel-color-settings/index.js.map +1 -1
  135. package/build/components/provider/index.js.map +1 -1
  136. package/build/components/resizable-box-popover/index.js +3 -5
  137. package/build/components/resizable-box-popover/index.js.map +1 -1
  138. package/build/components/responsive-block-control/index.js +1 -1
  139. package/build/components/responsive-block-control/index.js.map +1 -1
  140. package/build/components/rich-text/index.js +46 -26
  141. package/build/components/rich-text/index.js.map +1 -1
  142. package/build/components/rich-text/use-enter.js +3 -0
  143. package/build/components/rich-text/use-enter.js.map +1 -1
  144. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  145. package/build/components/spacing-sizes-control/sides-dropdown/index.js +1 -1
  146. package/build/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
  147. package/build/components/url-popover/index.js +3 -3
  148. package/build/components/url-popover/index.js.map +1 -1
  149. package/build/components/use-moving-animation/index.js +4 -0
  150. package/build/components/use-moving-animation/index.js.map +1 -1
  151. package/build/components/warning/index.native.js +9 -4
  152. package/build/components/warning/index.native.js.map +1 -1
  153. package/build/components/writing-flow/use-clipboard-handler.js +2 -1
  154. package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
  155. package/build/components/writing-flow/utils.js +23 -6
  156. package/build/components/writing-flow/utils.js.map +1 -1
  157. package/build/hooks/anchor.js +7 -8
  158. package/build/hooks/anchor.js.map +1 -1
  159. package/build/hooks/background.js +39 -2
  160. package/build/hooks/background.js.map +1 -1
  161. package/build/hooks/block-hooks.js +34 -8
  162. package/build/hooks/block-hooks.js.map +1 -1
  163. package/build/hooks/border.js +6 -4
  164. package/build/hooks/border.js.map +1 -1
  165. package/build/hooks/dimensions.js +3 -4
  166. package/build/hooks/dimensions.js.map +1 -1
  167. package/build/hooks/font-size.js +6 -7
  168. package/build/hooks/font-size.js.map +1 -1
  169. package/build/hooks/index.js +3 -2
  170. package/build/hooks/index.js.map +1 -1
  171. package/build/hooks/layout-child.js +67 -6
  172. package/build/hooks/layout-child.js.map +1 -1
  173. package/build/hooks/layout.js +32 -14
  174. package/build/hooks/layout.js.map +1 -1
  175. package/build/hooks/line-height.js.map +1 -1
  176. package/build/hooks/position.js +1 -1
  177. package/build/hooks/position.js.map +1 -1
  178. package/build/hooks/spacing-visualizer.js +115 -0
  179. package/build/hooks/spacing-visualizer.js.map +1 -0
  180. package/build/hooks/use-bindings-attributes.js +171 -48
  181. package/build/hooks/use-bindings-attributes.js.map +1 -1
  182. package/build/hooks/use-typography-props.js +1 -2
  183. package/build/hooks/use-typography-props.js.map +1 -1
  184. package/build/layouts/grid.js +6 -2
  185. package/build/layouts/grid.js.map +1 -1
  186. package/build/private-apis.js +7 -3
  187. package/build/private-apis.js.map +1 -1
  188. package/build/private-apis.native.js +3 -1
  189. package/build/private-apis.native.js.map +1 -1
  190. package/build/store/actions.js +42 -12
  191. package/build/store/actions.js.map +1 -1
  192. package/build/store/private-actions.js +29 -55
  193. package/build/store/private-actions.js.map +1 -1
  194. package/build/store/private-selectors.js +0 -8
  195. package/build/store/private-selectors.js.map +1 -1
  196. package/build/store/reducer.js +34 -46
  197. package/build/store/reducer.js.map +1 -1
  198. package/build/store/selectors.js +27 -15
  199. package/build/store/selectors.js.map +1 -1
  200. package/build-module/components/block-actions/index.js +47 -36
  201. package/build-module/components/block-actions/index.js.map +1 -1
  202. package/build-module/components/block-bindings-toolbar-indicator/index.js +18 -0
  203. package/build-module/components/block-bindings-toolbar-indicator/index.js.map +1 -0
  204. package/build-module/components/block-edit/context.js +1 -0
  205. package/build-module/components/block-edit/context.js.map +1 -1
  206. package/build-module/components/block-edit/index.js +9 -4
  207. package/build-module/components/block-edit/index.js.map +1 -1
  208. package/build-module/components/block-heading-level-dropdown/index.js +5 -5
  209. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
  210. package/build-module/components/block-heading-level-dropdown/index.native.js +5 -4
  211. package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
  212. package/build-module/components/block-inspector/index.js +6 -5
  213. package/build-module/components/block-inspector/index.js.map +1 -1
  214. package/build-module/components/block-list/block-crash-boundary.native.js +42 -0
  215. package/build-module/components/block-list/block-crash-boundary.native.js.map +1 -0
  216. package/build-module/components/block-list/block-crash-warning.native.js +15 -0
  217. package/build-module/components/block-list/block-crash-warning.native.js.map +1 -0
  218. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  219. package/build-module/components/block-list/block-list-item.native.js +1 -1
  220. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  221. package/build-module/components/block-list/block-outline.native.js +23 -7
  222. package/build-module/components/block-list/block-outline.native.js.map +1 -1
  223. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  224. package/build-module/components/block-list/block.native.js +7 -5
  225. package/build-module/components/block-list/block.native.js.map +1 -1
  226. package/build-module/components/block-list/use-block-props/index.js +9 -2
  227. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  228. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +3 -3
  229. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  230. package/build-module/components/block-mover/index.native.js.map +1 -1
  231. package/build-module/components/block-popover/cover.js +60 -0
  232. package/build-module/components/block-popover/cover.js.map +1 -0
  233. package/build-module/components/block-popover/drop-zone.js +2 -3
  234. package/build-module/components/block-popover/drop-zone.js.map +1 -1
  235. package/build-module/components/block-popover/index.js +1 -19
  236. package/build-module/components/block-popover/index.js.map +1 -1
  237. package/build-module/components/block-preview/index.js +2 -1
  238. package/build-module/components/block-preview/index.js.map +1 -1
  239. package/build-module/components/block-removal-warning-modal/index.js +3 -5
  240. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  241. package/build-module/components/block-rename/modal.js.map +1 -1
  242. package/build-module/components/block-settings/container.native.js +3 -2
  243. package/build-module/components/block-settings/container.native.js.map +1 -1
  244. package/build-module/components/block-settings-menu/block-settings-dropdown.js +42 -40
  245. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  246. package/build-module/components/block-settings-menu-controls/index.js +1 -3
  247. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  248. package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  249. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  250. package/build-module/components/block-toolbar/index.js +24 -12
  251. package/build-module/components/block-toolbar/index.js.map +1 -1
  252. package/build-module/components/block-toolbar/shuffle.js +82 -0
  253. package/build-module/components/block-toolbar/shuffle.js.map +1 -0
  254. package/build-module/components/block-toolbar/use-has-block-toolbar.js +36 -0
  255. package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -0
  256. package/build-module/components/block-tools/block-selection-button.js +5 -1
  257. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  258. package/build-module/components/block-tools/empty-block-inserter.js +2 -5
  259. package/build-module/components/block-tools/empty-block-inserter.js.map +1 -1
  260. package/build-module/components/block-tools/index.js +9 -26
  261. package/build-module/components/block-tools/index.js.map +1 -1
  262. package/build-module/components/block-tools/use-show-block-tools.js +54 -0
  263. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -0
  264. package/build-module/components/caption/index.native.js.map +1 -1
  265. package/build-module/components/child-layout-control/index.js +109 -12
  266. package/build-module/components/child-layout-control/index.js.map +1 -1
  267. package/build-module/components/color-palette/control.js.map +1 -1
  268. package/build-module/components/colors-gradients/control.js +1 -1
  269. package/build-module/components/colors-gradients/control.js.map +1 -1
  270. package/build-module/components/convert-to-group-buttons/toolbar.js +12 -1
  271. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  272. package/build-module/components/global-styles/border-panel.js +22 -10
  273. package/build-module/components/global-styles/border-panel.js.map +1 -1
  274. package/build-module/components/global-styles/color-panel.js +1 -1
  275. package/build-module/components/global-styles/color-panel.js.map +1 -1
  276. package/build-module/components/global-styles/dimensions-panel.js +9 -34
  277. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  278. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  279. package/build-module/components/global-styles/index.js +1 -1
  280. package/build-module/components/global-styles/index.js.map +1 -1
  281. package/build-module/components/global-styles/shadow-panel-components.js +82 -24
  282. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  283. package/build-module/components/global-styles/typography-utils.js +7 -5
  284. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  285. package/build-module/components/global-styles/use-global-styles-output.js +17 -17
  286. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  287. package/build-module/components/global-styles/utils.js +2 -4
  288. package/build-module/components/global-styles/utils.js.map +1 -1
  289. package/build-module/components/grid-visualizer/grid-item-resizer.js +69 -0
  290. package/build-module/components/grid-visualizer/grid-item-resizer.js.map +1 -0
  291. package/build-module/components/grid-visualizer/grid-visualizer.js +73 -0
  292. package/build-module/components/grid-visualizer/grid-visualizer.js.map +1 -0
  293. package/build-module/components/grid-visualizer/index.js +3 -0
  294. package/build-module/components/grid-visualizer/index.js.map +1 -0
  295. package/build-module/components/grid-visualizer/utils.js +4 -0
  296. package/build-module/components/grid-visualizer/utils.js.map +1 -0
  297. package/build-module/components/iframe/index.js +66 -17
  298. package/build-module/components/iframe/index.js.map +1 -1
  299. package/build-module/components/index.native.js +1 -1
  300. package/build-module/components/index.native.js.map +1 -1
  301. package/build-module/components/inner-blocks/use-nested-settings-update.js +8 -2
  302. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  303. package/build-module/components/inserter/block-patterns-explorer/index.js +3 -6
  304. package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -1
  305. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +3 -1
  306. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  307. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  308. package/build-module/components/inserter/menu.native.js.map +1 -1
  309. package/build-module/components/inserter/mobile-tab-navigation.js +2 -2
  310. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
  311. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  312. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.native.js +28 -0
  313. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.native.js.map +1 -0
  314. package/build-module/components/inspector-controls-tabs/index.js +1 -1
  315. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  316. package/build-module/components/inspector-controls-tabs/styles-tab.js +2 -2
  317. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  318. package/build-module/components/link-control/link-preview.js +5 -2
  319. package/build-module/components/link-control/link-preview.js.map +1 -1
  320. package/build-module/components/link-control/search-input.js.map +1 -1
  321. package/build-module/components/list-view/block-select-button.js +0 -2
  322. package/build-module/components/list-view/block-select-button.js.map +1 -1
  323. package/build-module/components/list-view/block.js +6 -13
  324. package/build-module/components/list-view/block.js.map +1 -1
  325. package/build-module/components/list-view/branch.js.map +1 -1
  326. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  327. package/build-module/components/list-view/index.js.map +1 -1
  328. package/build-module/components/list-view/use-clipboard-handler.js +3 -2
  329. package/build-module/components/list-view/use-clipboard-handler.js.map +1 -1
  330. package/build-module/components/list-view/utils.js +2 -1
  331. package/build-module/components/list-view/utils.js.map +1 -1
  332. package/build-module/components/panel-color-settings/index.js.map +1 -1
  333. package/build-module/components/provider/index.js.map +1 -1
  334. package/build-module/components/resizable-box-popover/index.js +3 -5
  335. package/build-module/components/resizable-box-popover/index.js.map +1 -1
  336. package/build-module/components/responsive-block-control/index.js +1 -1
  337. package/build-module/components/responsive-block-control/index.js.map +1 -1
  338. package/build-module/components/rich-text/index.js +47 -28
  339. package/build-module/components/rich-text/index.js.map +1 -1
  340. package/build-module/components/rich-text/use-enter.js +3 -0
  341. package/build-module/components/rich-text/use-enter.js.map +1 -1
  342. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  343. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js +1 -1
  344. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
  345. package/build-module/components/url-popover/index.js +3 -3
  346. package/build-module/components/url-popover/index.js.map +1 -1
  347. package/build-module/components/use-moving-animation/index.js +4 -0
  348. package/build-module/components/use-moving-animation/index.js.map +1 -1
  349. package/build-module/components/warning/index.native.js +9 -4
  350. package/build-module/components/warning/index.native.js.map +1 -1
  351. package/build-module/components/writing-flow/use-clipboard-handler.js +3 -2
  352. package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
  353. package/build-module/components/writing-flow/utils.js +22 -7
  354. package/build-module/components/writing-flow/utils.js.map +1 -1
  355. package/build-module/hooks/anchor.js +8 -9
  356. package/build-module/hooks/anchor.js.map +1 -1
  357. package/build-module/hooks/background.js +38 -1
  358. package/build-module/hooks/background.js.map +1 -1
  359. package/build-module/hooks/block-hooks.js +34 -8
  360. package/build-module/hooks/block-hooks.js.map +1 -1
  361. package/build-module/hooks/border.js +7 -5
  362. package/build-module/hooks/border.js.map +1 -1
  363. package/build-module/hooks/dimensions.js +1 -2
  364. package/build-module/hooks/dimensions.js.map +1 -1
  365. package/build-module/hooks/font-size.js +7 -8
  366. package/build-module/hooks/font-size.js.map +1 -1
  367. package/build-module/hooks/index.js +3 -2
  368. package/build-module/hooks/index.js.map +1 -1
  369. package/build-module/hooks/layout-child.js +67 -6
  370. package/build-module/hooks/layout-child.js.map +1 -1
  371. package/build-module/hooks/layout.js +32 -14
  372. package/build-module/hooks/layout.js.map +1 -1
  373. package/build-module/hooks/line-height.js.map +1 -1
  374. package/build-module/hooks/position.js +1 -1
  375. package/build-module/hooks/position.js.map +1 -1
  376. package/build-module/hooks/spacing-visualizer.js +106 -0
  377. package/build-module/hooks/spacing-visualizer.js.map +1 -0
  378. package/build-module/hooks/use-bindings-attributes.js +172 -49
  379. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  380. package/build-module/hooks/use-typography-props.js +2 -3
  381. package/build-module/hooks/use-typography-props.js.map +1 -1
  382. package/build-module/layouts/grid.js +6 -2
  383. package/build-module/layouts/grid.js.map +1 -1
  384. package/build-module/private-apis.js +7 -3
  385. package/build-module/private-apis.js.map +1 -1
  386. package/build-module/private-apis.native.js +3 -1
  387. package/build-module/private-apis.native.js.map +1 -1
  388. package/build-module/store/actions.js +42 -12
  389. package/build-module/store/actions.js.map +1 -1
  390. package/build-module/store/private-actions.js +29 -54
  391. package/build-module/store/private-actions.js.map +1 -1
  392. package/build-module/store/private-selectors.js +0 -6
  393. package/build-module/store/private-selectors.js.map +1 -1
  394. package/build-module/store/reducer.js +34 -46
  395. package/build-module/store/reducer.js.map +1 -1
  396. package/build-module/store/selectors.js +23 -13
  397. package/build-module/store/selectors.js.map +1 -1
  398. package/build-style/content-rtl.css +22 -2
  399. package/build-style/content.css +22 -2
  400. package/build-style/default-editor-styles-rtl.css +1 -0
  401. package/build-style/default-editor-styles.css +1 -0
  402. package/build-style/style-rtl.css +106 -27
  403. package/build-style/style.css +106 -27
  404. package/package.json +31 -31
  405. package/src/components/block-actions/index.js +59 -55
  406. package/src/components/block-bindings-toolbar-indicator/index.js +20 -0
  407. package/src/components/block-bindings-toolbar-indicator/style.scss +16 -0
  408. package/src/components/block-draggable/test/index.native.js +2 -2
  409. package/src/components/block-edit/context.js +1 -0
  410. package/src/components/block-edit/index.js +5 -1
  411. package/src/components/block-heading-level-dropdown/README.md +5 -5
  412. package/src/components/block-heading-level-dropdown/index.js +5 -5
  413. package/src/components/block-heading-level-dropdown/index.native.js +5 -4
  414. package/src/components/block-inspector/index.js +7 -5
  415. package/src/components/block-list/block-crash-boundary.native.js +43 -0
  416. package/src/components/block-list/block-crash-warning.native.js +19 -0
  417. package/src/components/block-list/block-invalid-warning.native.js +1 -1
  418. package/src/components/block-list/block-list-item.native.js +1 -1
  419. package/src/components/block-list/block-outline.native.js +36 -21
  420. package/src/components/block-list/block-selection-button.native.js +1 -3
  421. package/src/components/block-list/block.native.js +14 -10
  422. package/src/components/block-list/content.scss +21 -1
  423. package/src/components/block-list/test/block-outline.native.js +255 -0
  424. package/src/components/block-list/use-block-props/index.js +12 -2
  425. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +3 -7
  426. package/src/components/block-mover/index.native.js +1 -1
  427. package/src/components/block-popover/cover.js +63 -0
  428. package/src/components/block-popover/drop-zone.js +3 -4
  429. package/src/components/block-popover/index.js +1 -28
  430. package/src/components/block-preview/index.js +3 -1
  431. package/src/components/block-removal-warning-modal/index.js +5 -19
  432. package/src/components/block-rename/modal.js +1 -1
  433. package/src/components/block-settings/container.native.js +5 -1
  434. package/src/components/block-settings-menu/block-settings-dropdown.js +53 -65
  435. package/src/components/block-settings-menu-controls/README.md +0 -9
  436. package/src/components/block-settings-menu-controls/index.js +1 -6
  437. package/src/components/block-switcher/block-transformations-menu.native.js +1 -1
  438. package/src/components/block-toolbar/block-toolbar-menu.native.js +2 -2
  439. package/src/components/block-toolbar/index.js +22 -16
  440. package/src/components/block-toolbar/shuffle.js +93 -0
  441. package/src/components/block-toolbar/test/index.native.js +1 -7
  442. package/src/components/block-toolbar/use-has-block-toolbar.js +49 -0
  443. package/src/components/block-tools/block-selection-button.js +4 -0
  444. package/src/components/block-tools/empty-block-inserter.js +3 -6
  445. package/src/components/block-tools/index.js +13 -36
  446. package/src/components/block-tools/use-show-block-tools.js +73 -0
  447. package/src/components/caption/index.native.js +1 -1
  448. package/src/components/child-layout-control/index.js +148 -36
  449. package/src/components/color-palette/control.js +1 -1
  450. package/src/components/colors-gradients/control.js +1 -1
  451. package/src/components/colors-gradients/test/control.js +2 -2
  452. package/src/components/contrast-checker/test/index.js +10 -10
  453. package/src/components/convert-to-group-buttons/toolbar.js +13 -1
  454. package/src/components/default-block-appender/content.scss +5 -2
  455. package/src/components/global-styles/border-panel.js +35 -24
  456. package/src/components/global-styles/color-panel.js +1 -1
  457. package/src/components/global-styles/dimensions-panel.js +9 -34
  458. package/src/components/global-styles/image-settings-panel.js +1 -1
  459. package/src/components/global-styles/index.js +5 -1
  460. package/src/components/global-styles/shadow-panel-components.js +92 -23
  461. package/src/components/global-styles/style.scss +33 -10
  462. package/src/components/global-styles/test/typography-utils.js +231 -81
  463. package/src/components/global-styles/test/use-global-styles-output.js +31 -0
  464. package/src/components/global-styles/typography-utils.js +10 -7
  465. package/src/components/global-styles/use-global-styles-output.js +17 -17
  466. package/src/components/global-styles/utils.js +2 -26
  467. package/src/components/grid-visualizer/grid-item-resizer.js +100 -0
  468. package/src/components/grid-visualizer/grid-visualizer.js +81 -0
  469. package/src/components/grid-visualizer/index.js +2 -0
  470. package/src/components/grid-visualizer/style.scss +33 -0
  471. package/src/components/grid-visualizer/utils.js +5 -0
  472. package/src/components/iframe/index.js +89 -26
  473. package/src/components/index.native.js +1 -0
  474. package/src/components/inner-blocks/use-nested-settings-update.js +12 -2
  475. package/src/components/inserter/block-patterns-explorer/index.js +2 -9
  476. package/src/components/inserter/block-patterns-explorer/pattern-list.js +7 -1
  477. package/src/components/inserter/media-tab/media-preview.js +1 -1
  478. package/src/components/inserter/menu.native.js +3 -3
  479. package/src/components/inserter/mobile-tab-navigation.js +2 -2
  480. package/src/components/inserter/style.scss +10 -0
  481. package/src/components/inspector-controls/block-support-tools-panel.js +2 -2
  482. package/src/components/inspector-controls-tabs/advanced-controls-panel.native.js +31 -0
  483. package/src/components/inspector-controls-tabs/index.js +1 -1
  484. package/src/components/inspector-controls-tabs/styles-tab.js +2 -2
  485. package/src/components/line-height-control/test/index.js +1 -1
  486. package/src/components/link-control/link-preview.js +9 -2
  487. package/src/components/link-control/search-input.js +1 -1
  488. package/src/components/link-control/style.scss +9 -5
  489. package/src/components/list-view/block-select-button.js +0 -2
  490. package/src/components/list-view/block.js +12 -21
  491. package/src/components/list-view/branch.js +1 -1
  492. package/src/components/list-view/drop-indicator.js +1 -1
  493. package/src/components/list-view/index.js +1 -1
  494. package/src/components/list-view/style.scss +34 -16
  495. package/src/components/list-view/use-clipboard-handler.js +3 -2
  496. package/src/components/list-view/utils.js +4 -1
  497. package/src/components/panel-color-settings/index.js +1 -1
  498. package/src/components/panel-color-settings/test/index.js +3 -3
  499. package/src/components/provider/index.js +1 -4
  500. package/src/components/resizable-box-popover/index.js +4 -6
  501. package/src/components/responsive-block-control/README.md +4 -4
  502. package/src/components/responsive-block-control/index.js +1 -1
  503. package/src/components/responsive-block-control/test/index.js +5 -5
  504. package/src/components/rich-text/README.md +6 -0
  505. package/src/components/rich-text/index.js +76 -53
  506. package/src/components/rich-text/use-enter.js +4 -0
  507. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -4
  508. package/src/components/spacing-sizes-control/sides-dropdown/index.js +1 -1
  509. package/src/components/url-popover/index.js +5 -5
  510. package/src/components/url-popover/style.scss +1 -0
  511. package/src/components/use-moving-animation/index.js +1 -0
  512. package/src/components/warning/index.native.js +19 -15
  513. package/src/components/writing-flow/use-clipboard-handler.js +3 -2
  514. package/src/components/writing-flow/utils.js +31 -16
  515. package/src/hooks/anchor.js +41 -61
  516. package/src/hooks/background.js +49 -4
  517. package/src/hooks/block-hooks.js +47 -9
  518. package/src/hooks/block-hooks.scss +6 -0
  519. package/src/hooks/border.js +16 -4
  520. package/src/hooks/dimensions.js +1 -2
  521. package/src/hooks/font-size.js +7 -12
  522. package/src/hooks/index.js +3 -0
  523. package/src/hooks/layout-child.js +82 -8
  524. package/src/hooks/layout.js +34 -19
  525. package/src/hooks/line-height.js +1 -1
  526. package/src/hooks/position.js +1 -1
  527. package/src/hooks/spacing-visualizer.js +126 -0
  528. package/src/hooks/{padding.scss → spacing.scss} +1 -1
  529. package/src/hooks/test/__snapshots__/anchor.native.js.snap +7 -0
  530. package/src/hooks/test/anchor.native.js +32 -0
  531. package/src/hooks/use-bindings-attributes.js +215 -65
  532. package/src/hooks/use-typography-props.js +2 -8
  533. package/src/layouts/grid.js +8 -3
  534. package/src/private-apis.js +6 -2
  535. package/src/private-apis.native.js +2 -0
  536. package/src/store/actions.js +56 -18
  537. package/src/store/private-actions.js +34 -79
  538. package/src/store/private-selectors.js +0 -8
  539. package/src/store/reducer.js +43 -64
  540. package/src/store/selectors.js +41 -46
  541. package/src/store/test/actions.js +0 -4
  542. package/src/style.scss +3 -1
  543. package/tsconfig.json +1 -0
  544. package/build/hooks/margin.js +0 -86
  545. package/build/hooks/margin.js.map +0 -1
  546. package/build/hooks/padding.js +0 -78
  547. package/build/hooks/padding.js.map +0 -1
  548. package/build/utils/use-can-block-toolbar-be-focused.js +0 -46
  549. package/build/utils/use-can-block-toolbar-be-focused.js.map +0 -1
  550. package/build-module/hooks/margin.js +0 -78
  551. package/build-module/hooks/margin.js.map +0 -1
  552. package/build-module/hooks/padding.js +0 -70
  553. package/build-module/hooks/padding.js.map +0 -1
  554. package/build-module/utils/use-can-block-toolbar-be-focused.js +0 -40
  555. package/build-module/utils/use-can-block-toolbar-be-focused.js.map +0 -1
  556. package/src/hooks/margin.js +0 -91
  557. package/src/hooks/padding.js +0 -82
  558. package/src/utils/use-can-block-toolbar-be-focused.js +0 -48
@@ -0,0 +1,255 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import { render, screen } from 'test/helpers';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import BlockOutline from '../block-outline';
10
+
11
+ describe( 'BlockOutline', () => {
12
+ describe( 'containing an unselected block', () => {
13
+ it( 'should not render an outline', async () => {
14
+ render(
15
+ <BlockOutline
16
+ isSelected={ false }
17
+ blockCategory="design"
18
+ name="core/group"
19
+ />
20
+ );
21
+
22
+ expect( screen.queryByTestId( 'block-outline' ) ).toBeNull();
23
+ } );
24
+ } );
25
+
26
+ describe( 'containing a block with inner blocks', () => {
27
+ it( 'should render an outline', async () => {
28
+ render(
29
+ <BlockOutline
30
+ isSelected
31
+ blockCategory="design"
32
+ name="core/group"
33
+ hasInnerBlocks
34
+ />
35
+ );
36
+
37
+ expect( screen.getByTestId( 'block-outline' ) ).toBeVisible();
38
+ } );
39
+ } );
40
+
41
+ describe( 'containing a design category block', () => {
42
+ it( 'should render an outline', async () => {
43
+ render(
44
+ <BlockOutline
45
+ isSelected
46
+ blockCategory="design"
47
+ name="core/group"
48
+ />
49
+ );
50
+
51
+ expect( screen.getByTestId( 'block-outline' ) ).toBeVisible();
52
+ } );
53
+ } );
54
+
55
+ describe( 'containing a text category block', () => {
56
+ it( 'should not render an outline', async () => {
57
+ render(
58
+ <BlockOutline
59
+ isSelected
60
+ blockCategory="text"
61
+ name="core/paragraph"
62
+ />
63
+ );
64
+
65
+ expect( screen.queryByTestId( 'block-outline' ) ).toBeNull();
66
+ } );
67
+
68
+ describe( 'with inner blocks', () => {
69
+ it( 'should render an outline', async () => {
70
+ render(
71
+ <BlockOutline
72
+ isSelected
73
+ blockCategory="text"
74
+ name="core/list"
75
+ hasInnerBlocks
76
+ />
77
+ );
78
+
79
+ expect( screen.getByTestId( 'block-outline' ) ).toBeVisible();
80
+ } );
81
+ } );
82
+ } );
83
+
84
+ describe( 'containing a widget category block', () => {
85
+ it( 'should render an outline', async () => {
86
+ render(
87
+ <BlockOutline
88
+ isSelected
89
+ blockCategory="widgets"
90
+ name="core/latest-posts"
91
+ />
92
+ );
93
+
94
+ expect( screen.getByTestId( 'block-outline' ) ).toBeVisible();
95
+ } );
96
+ } );
97
+
98
+ describe( 'containing a spacer block', () => {
99
+ it( 'should not render an outline', async () => {
100
+ render(
101
+ <BlockOutline
102
+ isSelected
103
+ blockCategory="design"
104
+ name="core/spacer"
105
+ />
106
+ );
107
+
108
+ expect( screen.queryByTestId( 'block-outline' ) ).toBeNull();
109
+ } );
110
+ } );
111
+
112
+ describe( 'containing a button block', () => {
113
+ it( 'should not render an outline', async () => {
114
+ render(
115
+ <BlockOutline
116
+ isSelected
117
+ blockCategory="design"
118
+ name="core/button"
119
+ />
120
+ );
121
+
122
+ expect( screen.queryByTestId( 'block-outline' ) ).toBeNull();
123
+ } );
124
+ } );
125
+
126
+ describe( 'containing a social link block', () => {
127
+ it( 'should render an outline', async () => {
128
+ render(
129
+ <BlockOutline
130
+ isSelected
131
+ blockCategory="embed"
132
+ name="core/social-link"
133
+ />
134
+ );
135
+
136
+ expect( screen.getByTestId( 'block-outline' ) ).toBeVisible();
137
+ } );
138
+
139
+ describe( 'when platform specific', () => {
140
+ it( 'should render an outline', async () => {
141
+ render(
142
+ <BlockOutline
143
+ isSelected
144
+ blockCategory="embed"
145
+ name="core/social-link-amazon"
146
+ />
147
+ );
148
+
149
+ expect( screen.getByTestId( 'block-outline' ) ).toBeVisible();
150
+ } );
151
+ } );
152
+ } );
153
+
154
+ describe( 'containing a media block', () => {
155
+ it( 'should not render an outline', async () => {
156
+ render(
157
+ <BlockOutline
158
+ isSelected
159
+ blockCategory="media"
160
+ name="core/image"
161
+ />
162
+ );
163
+
164
+ expect( screen.queryByTestId( 'block-outline' ) ).toBeNull();
165
+ } );
166
+
167
+ describe( 'with inner blocks', () => {
168
+ it( 'should render an outline', async () => {
169
+ render(
170
+ <BlockOutline
171
+ isSelected
172
+ blockCategory="media"
173
+ name="core/gallery"
174
+ hasInnerBlocks
175
+ />
176
+ );
177
+
178
+ expect( screen.getByTestId( 'block-outline' ) ).toBeVisible();
179
+ } );
180
+
181
+ describe( 'when cover block', () => {
182
+ it( 'should not render an outline', async () => {
183
+ render(
184
+ <BlockOutline
185
+ isSelected
186
+ blockCategory="media"
187
+ name="core/cover"
188
+ hasInnerBlocks
189
+ />
190
+ );
191
+
192
+ expect(
193
+ screen.queryByTestId( 'block-outline' )
194
+ ).toBeNull();
195
+ } );
196
+ } );
197
+ } );
198
+
199
+ describe( 'when a file block', () => {
200
+ it( 'should render an outline', async () => {
201
+ render(
202
+ <BlockOutline
203
+ isSelected
204
+ blockCategory="media"
205
+ name="core/file"
206
+ />
207
+ );
208
+
209
+ expect( screen.getByTestId( 'block-outline' ) ).toBeVisible();
210
+ } );
211
+ } );
212
+
213
+ describe( 'when an audio block', () => {
214
+ it( 'should render an outline', async () => {
215
+ render(
216
+ <BlockOutline
217
+ isSelected
218
+ blockCategory="media"
219
+ name="core/audio"
220
+ />
221
+ );
222
+
223
+ expect( screen.getByTestId( 'block-outline' ) ).toBeVisible();
224
+ } );
225
+ } );
226
+ } );
227
+
228
+ describe( 'containing a freeform block', () => {
229
+ it( 'should render an outline', async () => {
230
+ render(
231
+ <BlockOutline
232
+ isSelected
233
+ blockCategory="text"
234
+ name="core/freeform"
235
+ />
236
+ );
237
+
238
+ expect( screen.getByTestId( 'block-outline' ) ).toBeVisible();
239
+ } );
240
+ } );
241
+
242
+ describe( 'containing a missing block', () => {
243
+ it( 'should render an outline', async () => {
244
+ render(
245
+ <BlockOutline
246
+ isSelected
247
+ blockCategory="text"
248
+ name="core/missing"
249
+ />
250
+ );
251
+
252
+ expect( screen.getByTestId( 'block-outline' ) ).toBeVisible();
253
+ } );
254
+ } );
255
+ } );
@@ -19,13 +19,17 @@ import useMovingAnimation from '../../use-moving-animation';
19
19
  import { PrivateBlockContext } from '../private-block-context';
20
20
  import { useFocusFirstElement } from './use-focus-first-element';
21
21
  import { useIsHovered } from './use-is-hovered';
22
- import { useBlockEditContext } from '../../block-edit/context';
22
+ import {
23
+ blockBindingsKey,
24
+ useBlockEditContext,
25
+ } from '../../block-edit/context';
23
26
  import { useFocusHandler } from './use-focus-handler';
24
27
  import { useEventHandlers } from './use-selected-block-event-handlers';
25
28
  import { useNavModeExit } from './use-nav-mode-exit';
26
29
  import { useBlockRefProvider } from './use-block-refs';
27
30
  import { useIntersectionObserver } from './use-intersection-observer';
28
31
  import { useFlashEditableBlocks } from '../../use-flash-editable-blocks';
32
+ import { canBindBlock } from '../../../hooks/use-bindings-attributes';
29
33
 
30
34
  /**
31
35
  * This hook is used to lightly mark an element as a block element. The element
@@ -123,6 +127,12 @@ export function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {
123
127
  ] );
124
128
 
125
129
  const blockEditContext = useBlockEditContext();
130
+ const hasBlockBindings = !! blockEditContext[ blockBindingsKey ];
131
+ const bindingsStyle =
132
+ hasBlockBindings && canBindBlock( name )
133
+ ? { '--wp-admin-theme-color': 'var(--wp-bound-block-color)' }
134
+ : {};
135
+
126
136
  // Ensures it warns only inside the `edit` implementation for the block.
127
137
  if ( blockApiVersion < 2 && clientId === blockEditContext.clientId ) {
128
138
  warning(
@@ -168,7 +178,7 @@ export function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {
168
178
  wrapperProps.className,
169
179
  defaultClassName
170
180
  ),
171
- style: { ...wrapperProps.style, ...props.style },
181
+ style: { ...wrapperProps.style, ...props.style, ...bindingsStyle },
172
182
  };
173
183
  }
174
184
 
@@ -22,7 +22,7 @@ import { store as blockEditorStore } from '../../../store';
22
22
  export function useEventHandlers( { clientId, isSelected } ) {
23
23
  const { getBlockRootClientId, getBlockIndex } =
24
24
  useSelect( blockEditorStore );
25
- const { insertDefaultBlock, removeBlock } = useDispatch( blockEditorStore );
25
+ const { insertAfterBlock, removeBlock } = useDispatch( blockEditorStore );
26
26
 
27
27
  return useRefEffect(
28
28
  ( node ) => {
@@ -57,11 +57,7 @@ export function useEventHandlers( { clientId, isSelected } ) {
57
57
  event.preventDefault();
58
58
 
59
59
  if ( keyCode === ENTER ) {
60
- insertDefaultBlock(
61
- {},
62
- getBlockRootClientId( clientId ),
63
- getBlockIndex( clientId ) + 1
64
- );
60
+ insertAfterBlock( clientId );
65
61
  } else {
66
62
  removeBlock( clientId );
67
63
  }
@@ -90,7 +86,7 @@ export function useEventHandlers( { clientId, isSelected } ) {
90
86
  isSelected,
91
87
  getBlockRootClientId,
92
88
  getBlockIndex,
93
- insertDefaultBlock,
89
+ insertAfterBlock,
94
90
  removeBlock,
95
91
  ]
96
92
  );
@@ -133,7 +133,7 @@ export const BlockMover = ( {
133
133
  options={ blockPageMoverOptions }
134
134
  onChange={ onPickerSelect }
135
135
  title={ __( 'Change block position' ) }
136
- leftAlign={ true }
136
+ leftAlign
137
137
  hideCancelButton={ Platform.OS !== 'ios' }
138
138
  />
139
139
  </ToolbarGroup>
@@ -0,0 +1,63 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useEffect, useState, useMemo, forwardRef } from '@wordpress/element';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';
10
+ import BlockPopover from '.';
11
+
12
+ function BlockPopoverCover(
13
+ { clientId, bottomClientId, children, shift = false, ...props },
14
+ ref
15
+ ) {
16
+ bottomClientId ??= clientId;
17
+
18
+ const selectedElement = useBlockElement( clientId );
19
+
20
+ return (
21
+ <BlockPopover
22
+ ref={ ref }
23
+ clientId={ clientId }
24
+ bottomClientId={ bottomClientId }
25
+ shift={ shift }
26
+ { ...props }
27
+ >
28
+ { selectedElement && clientId === bottomClientId ? (
29
+ <CoverContainer selectedElement={ selectedElement }>
30
+ { children }
31
+ </CoverContainer>
32
+ ) : (
33
+ children
34
+ ) }
35
+ </BlockPopover>
36
+ );
37
+ }
38
+
39
+ function CoverContainer( { selectedElement, children } ) {
40
+ const [ width, setWidth ] = useState( selectedElement.offsetWidth );
41
+ const [ height, setHeight ] = useState( selectedElement.offsetHeight );
42
+
43
+ useEffect( () => {
44
+ const observer = new window.ResizeObserver( () => {
45
+ setWidth( selectedElement.offsetWidth );
46
+ setHeight( selectedElement.offsetHeight );
47
+ } );
48
+ observer.observe( selectedElement, { box: 'border-box' } );
49
+ return () => observer.disconnect();
50
+ }, [ selectedElement ] );
51
+
52
+ const style = useMemo( () => {
53
+ return {
54
+ position: 'absolute',
55
+ width,
56
+ height,
57
+ };
58
+ }, [ width, height ] );
59
+
60
+ return <div style={ style }>{ children }</div>;
61
+ }
62
+
63
+ export default forwardRef( BlockPopoverCover );
@@ -9,7 +9,7 @@ import { __unstableMotion as motion } from '@wordpress/components';
9
9
  * Internal dependencies
10
10
  */
11
11
  import { store as blockEditorStore } from '../../store';
12
- import BlockPopover from './index';
12
+ import BlockPopoverCover from './cover';
13
13
 
14
14
  const animateVariants = {
15
15
  hide: { opacity: 0, scaleY: 0.75 },
@@ -38,9 +38,8 @@ function BlockDropZonePopover( {
38
38
  const reducedMotion = useReducedMotion();
39
39
 
40
40
  return (
41
- <BlockPopover
41
+ <BlockPopoverCover
42
42
  clientId={ clientId }
43
- __unstableCoverTarget
44
43
  __unstablePopoverSlot={ __unstablePopoverSlot }
45
44
  __unstableContentRef={ __unstableContentRef }
46
45
  className="block-editor-block-popover__drop-zone"
@@ -56,7 +55,7 @@ function BlockDropZonePopover( {
56
55
  }
57
56
  className="block-editor-block-popover__drop-zone-foreground"
58
57
  />
59
- </BlockPopover>
58
+ </BlockPopoverCover>
60
59
  );
61
60
  }
62
61
 
@@ -28,8 +28,6 @@ function BlockPopover(
28
28
  clientId,
29
29
  bottomClientId,
30
30
  children,
31
- __unstableRefreshSize,
32
- __unstableCoverTarget = false,
33
31
  __unstablePopoverSlot,
34
32
  __unstableContentRef,
35
33
  shift = true,
@@ -75,30 +73,6 @@ function BlockPopover(
75
73
  };
76
74
  }, [ selectedElement ] );
77
75
 
78
- const style = useMemo( () => {
79
- if (
80
- // popoverDimensionsRecomputeCounter is by definition always equal or greater
81
- // than 0. This check is only there to satisfy the correctness of the
82
- // exhaustive-deps rule for the `useMemo` hook.
83
- popoverDimensionsRecomputeCounter < 0 ||
84
- ! selectedElement ||
85
- lastSelectedElement !== selectedElement
86
- ) {
87
- return {};
88
- }
89
-
90
- return {
91
- position: 'absolute',
92
- width: selectedElement.offsetWidth,
93
- height: selectedElement.offsetHeight,
94
- };
95
- }, [
96
- selectedElement,
97
- lastSelectedElement,
98
- __unstableRefreshSize,
99
- popoverDimensionsRecomputeCounter,
100
- ] );
101
-
102
76
  const popoverAnchor = useMemo( () => {
103
77
  if (
104
78
  // popoverDimensionsRecomputeCounter is by definition always equal or greater
@@ -176,8 +150,7 @@ function BlockPopover(
176
150
  ) }
177
151
  variant="unstyled"
178
152
  >
179
- { __unstableCoverTarget && <div style={ style }>{ children }</div> }
180
- { ! __unstableCoverTarget && children }
153
+ { children }
181
154
  </Popover>
182
155
  );
183
156
  }
@@ -20,11 +20,13 @@ import EditorStyles from '../editor-styles';
20
20
  import { store as blockEditorStore } from '../../store';
21
21
  import { BlockListItems } from '../block-list';
22
22
 
23
+ const EMPTY_ADDITIONAL_STYLES = [];
24
+
23
25
  export function BlockPreview( {
24
26
  blocks,
25
27
  viewportWidth = 1200,
26
28
  minHeight,
27
- additionalStyles = [],
29
+ additionalStyles = EMPTY_ADDITIONAL_STYLES,
28
30
  // Deprecated props:
29
31
  __experimentalMinHeight,
30
32
  __experimentalPadding,
@@ -8,7 +8,7 @@ import {
8
8
  Button,
9
9
  __experimentalHStack as HStack,
10
10
  } from '@wordpress/components';
11
- import { __, _n } from '@wordpress/i18n';
11
+ import { __ } from '@wordpress/i18n';
12
12
 
13
13
  /**
14
14
  * Internal dependencies
@@ -17,10 +17,9 @@ import { store as blockEditorStore } from '../../store';
17
17
  import { unlock } from '../../lock-unlock';
18
18
 
19
19
  export function BlockRemovalWarningModal( { rules } ) {
20
- const { clientIds, selectPrevious, blockNamesForPrompt, messageType } =
21
- useSelect( ( select ) =>
22
- unlock( select( blockEditorStore ) ).getRemovalPromptData()
23
- );
20
+ const { clientIds, selectPrevious, message } = useSelect( ( select ) =>
21
+ unlock( select( blockEditorStore ) ).getRemovalPromptData()
22
+ );
24
23
 
25
24
  const {
26
25
  clearBlockRemovalPrompt,
@@ -37,23 +36,10 @@ export function BlockRemovalWarningModal( { rules } ) {
37
36
  };
38
37
  }, [ rules, setBlockRemovalRules ] );
39
38
 
40
- if ( ! blockNamesForPrompt ) {
39
+ if ( ! message ) {
41
40
  return;
42
41
  }
43
42
 
44
- const message =
45
- messageType === 'templates'
46
- ? _n(
47
- 'Deleting this block will stop your post or page content from displaying on this template. It is not recommended.',
48
- 'Deleting these blocks will stop your post or page content from displaying on this template. It is not recommended.',
49
- blockNamesForPrompt.length
50
- )
51
- : _n(
52
- 'Deleting this block could break patterns on your site that have content linked to it. Are you sure you want to delete it?',
53
- 'Deleting these blocks could break patterns on your site that have content linked to them. Are you sure you want to delete them?',
54
- blockNamesForPrompt.length
55
- );
56
-
57
43
  const onConfirmRemoval = () => {
58
44
  privateRemoveBlocks( clientIds, selectPrevious, /* force */ true );
59
45
  clearBlockRemovalPrompt();
@@ -91,7 +91,7 @@ export default function BlockRenameModal( {
91
91
  __next40pxDefaultSize
92
92
  value={ editedBlockName }
93
93
  label={ __( 'Block name' ) }
94
- hideLabelFromVision={ true }
94
+ hideLabelFromVision
95
95
  placeholder={ originalBlockName }
96
96
  onChange={ setEditedBlockName }
97
97
  onFocus={ autoSelectInputText }
@@ -16,6 +16,7 @@ import styles from './container.native.scss';
16
16
  import InspectorControls from '../inspector-controls';
17
17
  import ImageLinkDestinationsScreen from '../image-link-destinations';
18
18
  import useMultipleOriginColorsAndGradients from '../colors-gradients/use-multiple-origin-colors-and-gradients';
19
+ import AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';
19
20
 
20
21
  export const blockSettingsScreens = {
21
22
  settings: 'Settings',
@@ -46,7 +47,10 @@ export default function BottomSheetSettings( props ) {
46
47
  <BottomSheet.NavigationScreen
47
48
  name={ blockSettingsScreens.settings }
48
49
  >
49
- <InspectorControls.Slot />
50
+ <>
51
+ <InspectorControls.Slot />
52
+ <AdvancedControls />
53
+ </>
50
54
  </BottomSheet.NavigationScreen>
51
55
  <BottomSheet.NavigationScreen
52
56
  name={ BottomSheet.SubSheet.screenName }