@wordpress/block-editor 10.2.0 → 10.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 (482) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +41 -0
  3. package/build/components/alignment-control/ui.js +1 -1
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/block-alignment-control/constants.js +1 -1
  6. package/build/components/block-alignment-control/constants.js.map +1 -1
  7. package/build/components/block-alignment-matrix-control/index.js +1 -1
  8. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  9. package/build/components/block-compare/index.js +1 -3
  10. package/build/components/block-compare/index.js.map +1 -1
  11. package/build/components/block-draggable/draggable-chip.js +4 -2
  12. package/build/components/block-draggable/draggable-chip.js.map +1 -1
  13. package/build/components/block-edit/index.js +4 -2
  14. package/build/components/block-edit/index.js.map +1 -1
  15. package/build/components/block-inspector/index.js +4 -4
  16. package/build/components/block-inspector/index.js.map +1 -1
  17. package/build/components/block-list/block-list-compact.native.js +1 -0
  18. package/build/components/block-list/block-list-compact.native.js.map +1 -1
  19. package/build/components/block-list/block.js +75 -15
  20. package/build/components/block-list/block.js.map +1 -1
  21. package/build/components/block-list/block.native.js +79 -12
  22. package/build/components/block-list/block.native.js.map +1 -1
  23. package/build/components/block-list/use-in-between-inserter.js +7 -23
  24. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  25. package/build/components/block-lock/modal.js +9 -6
  26. package/build/components/block-lock/modal.js.map +1 -1
  27. package/build/components/block-parent-selector/index.js +3 -3
  28. package/build/components/block-parent-selector/index.js.map +1 -1
  29. package/build/components/block-patterns-list/index.js +5 -4
  30. package/build/components/block-patterns-list/index.js.map +1 -1
  31. package/build/components/block-popover/drop-zone.js +85 -0
  32. package/build/components/block-popover/drop-zone.js.map +1 -0
  33. package/build/components/block-popover/inbetween.js +2 -1
  34. package/build/components/block-popover/inbetween.js.map +1 -1
  35. package/build/components/block-popover/index.js +4 -2
  36. package/build/components/block-popover/index.js.map +1 -1
  37. package/build/components/block-preview/auto.js +2 -2
  38. package/build/components/block-preview/auto.js.map +1 -1
  39. package/build/components/block-preview/index.js +8 -13
  40. package/build/components/block-preview/index.js.map +1 -1
  41. package/build/components/block-preview/live.js +3 -7
  42. package/build/components/block-preview/live.js.map +1 -1
  43. package/build/components/block-selection-clearer/index.js +9 -1
  44. package/build/components/block-selection-clearer/index.js.map +1 -1
  45. package/build/components/block-settings-menu/block-settings-dropdown.js +19 -19
  46. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  47. package/build/components/block-styles/index.js +18 -42
  48. package/build/components/block-styles/index.js.map +1 -1
  49. package/build/components/block-switcher/index.js +2 -8
  50. package/build/components/block-switcher/index.js.map +1 -1
  51. package/build/components/block-switcher/preview-block-popover.js +1 -1
  52. package/build/components/block-switcher/preview-block-popover.js.map +1 -1
  53. package/build/components/block-toolbar/index.js +4 -4
  54. package/build/components/block-toolbar/index.js.map +1 -1
  55. package/build/components/block-tools/back-compat.js +2 -1
  56. package/build/components/block-tools/back-compat.js.map +1 -1
  57. package/build/components/block-tools/insertion-point.js +56 -16
  58. package/build/components/block-tools/insertion-point.js.map +1 -1
  59. package/build/components/block-tools/selected-block-popover.js +15 -3
  60. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  61. package/build/components/block-vertical-alignment-control/ui.js +1 -1
  62. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  63. package/build/components/border-radius-control/all-input-control.js +2 -1
  64. package/build/components/border-radius-control/all-input-control.js.map +1 -1
  65. package/build/components/border-radius-control/index.js +2 -1
  66. package/build/components/border-radius-control/index.js.map +1 -1
  67. package/build/components/border-radius-control/input-controls.js +2 -1
  68. package/build/components/border-radius-control/input-controls.js.map +1 -1
  69. package/build/components/colors-gradients/control.js +1 -1
  70. package/build/components/colors-gradients/control.js.map +1 -1
  71. package/build/components/colors-gradients/panel-color-gradient-settings.js +2 -2
  72. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  73. package/build/components/duotone-control/index.js +1 -1
  74. package/build/components/duotone-control/index.js.map +1 -1
  75. package/build/components/font-sizes/fluid-utils.js +256 -0
  76. package/build/components/font-sizes/fluid-utils.js.map +1 -0
  77. package/build/components/font-sizes/index.js +8 -0
  78. package/build/components/font-sizes/index.js.map +1 -1
  79. package/build/components/font-sizes/with-font-sizes.js +1 -1
  80. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  81. package/build/components/iframe/index.js +1 -1
  82. package/build/components/iframe/index.js.map +1 -1
  83. package/build/components/image-editor/constants.js +1 -1
  84. package/build/components/image-editor/constants.js.map +1 -1
  85. package/build/components/index.js +0 -9
  86. package/build/components/index.js.map +1 -1
  87. package/build/components/inner-blocks/index.js +6 -2
  88. package/build/components/inner-blocks/index.js.map +1 -1
  89. package/build/components/inner-blocks/use-inner-block-template-sync.js +3 -2
  90. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  91. package/build/components/inserter/block-patterns-tab.js +151 -78
  92. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  93. package/build/components/inserter/hooks/use-insertion-point.js +2 -7
  94. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  95. package/build/components/inserter/menu.js +14 -3
  96. package/build/components/inserter/menu.js.map +1 -1
  97. package/build/components/inserter/search-items.js +23 -2
  98. package/build/components/inserter/search-items.js.map +1 -1
  99. package/build/components/inserter-draggable-blocks/index.js +4 -2
  100. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  101. package/build/components/line-height-control/index.js +2 -1
  102. package/build/components/line-height-control/index.js.map +1 -1
  103. package/build/components/list-view/drop-indicator.js +2 -1
  104. package/build/components/list-view/drop-indicator.js.map +1 -1
  105. package/build/components/list-view/use-list-view-drop-zone.js +1 -14
  106. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  107. package/build/components/media-replace-flow/index.js +1 -1
  108. package/build/components/media-replace-flow/index.js.map +1 -1
  109. package/build/components/preview-options/index.js +2 -3
  110. package/build/components/preview-options/index.js.map +1 -1
  111. package/build/components/rich-text/format-toolbar/index.js +1 -1
  112. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  113. package/build/components/rich-text/format-toolbar-container.js +1 -1
  114. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  115. package/build/components/rich-text/use-paste-handler.js +1 -1
  116. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  117. package/build/components/spacing-sizes-control/all-input-control.js +6 -2
  118. package/build/components/spacing-sizes-control/all-input-control.js.map +1 -1
  119. package/build/components/spacing-sizes-control/axial-input-controls.js +6 -2
  120. package/build/components/spacing-sizes-control/axial-input-controls.js.map +1 -1
  121. package/build/components/spacing-sizes-control/index.js +6 -2
  122. package/build/components/spacing-sizes-control/index.js.map +1 -1
  123. package/build/components/spacing-sizes-control/input-controls.js +6 -2
  124. package/build/components/spacing-sizes-control/input-controls.js.map +1 -1
  125. package/build/components/spacing-sizes-control/spacing-input-control.js +45 -8
  126. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  127. package/build/components/url-input/index.js +1 -1
  128. package/build/components/url-input/index.js.map +1 -1
  129. package/build/components/use-block-drop-zone/index.js +98 -57
  130. package/build/components/use-block-drop-zone/index.js.map +1 -1
  131. package/build/components/use-on-block-drop/index.js +12 -12
  132. package/build/components/use-on-block-drop/index.js.map +1 -1
  133. package/build/components/use-on-block-drop/types.js +6 -0
  134. package/build/components/use-on-block-drop/types.js.map +1 -0
  135. package/build/hooks/align.js +1 -3
  136. package/build/hooks/align.js.map +1 -1
  137. package/build/hooks/align.native.js +1 -7
  138. package/build/hooks/align.native.js.map +1 -1
  139. package/build/hooks/border.js +1 -0
  140. package/build/hooks/border.js.map +1 -1
  141. package/build/hooks/dimensions.js +32 -4
  142. package/build/hooks/dimensions.js.map +1 -1
  143. package/build/hooks/font-size.js +61 -0
  144. package/build/hooks/font-size.js.map +1 -1
  145. package/build/hooks/layout.js +4 -3
  146. package/build/hooks/layout.js.map +1 -1
  147. package/build/hooks/margin.js +24 -17
  148. package/build/hooks/margin.js.map +1 -1
  149. package/build/hooks/padding.js +20 -12
  150. package/build/hooks/padding.js.map +1 -1
  151. package/build/hooks/style.js +126 -4
  152. package/build/hooks/style.js.map +1 -1
  153. package/build/hooks/use-typography-props.js +17 -3
  154. package/build/hooks/use-typography-props.js.map +1 -1
  155. package/build/hooks/utils.js +8 -7
  156. package/build/hooks/utils.js.map +1 -1
  157. package/build/layouts/constrained.js +0 -1
  158. package/build/layouts/constrained.js.map +1 -1
  159. package/build/layouts/flex.js +1 -1
  160. package/build/layouts/flex.js.map +1 -1
  161. package/build/store/actions.js +63 -45
  162. package/build/store/actions.js.map +1 -1
  163. package/build/store/array.js +1 -7
  164. package/build/store/array.js.map +1 -1
  165. package/build/store/defaults.js +3 -0
  166. package/build/store/defaults.js.map +1 -1
  167. package/build/store/reducer.js +31 -15
  168. package/build/store/reducer.js.map +1 -1
  169. package/build/store/selectors.js +46 -29
  170. package/build/store/selectors.js.map +1 -1
  171. package/build/utils/math.js +14 -0
  172. package/build/utils/math.js.map +1 -1
  173. package/build/utils/pre-parse-patterns.js +19 -2
  174. package/build/utils/pre-parse-patterns.js.map +1 -1
  175. package/build-module/components/alignment-control/ui.js +1 -1
  176. package/build-module/components/alignment-control/ui.js.map +1 -1
  177. package/build-module/components/block-alignment-control/constants.js +1 -1
  178. package/build-module/components/block-alignment-control/constants.js.map +1 -1
  179. package/build-module/components/block-alignment-matrix-control/index.js +1 -1
  180. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  181. package/build-module/components/block-compare/index.js +2 -3
  182. package/build-module/components/block-compare/index.js.map +1 -1
  183. package/build-module/components/block-draggable/draggable-chip.js +7 -3
  184. package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
  185. package/build-module/components/block-edit/index.js +4 -2
  186. package/build-module/components/block-edit/index.js.map +1 -1
  187. package/build-module/components/block-inspector/index.js +4 -4
  188. package/build-module/components/block-inspector/index.js.map +1 -1
  189. package/build-module/components/block-list/block-list-compact.native.js +1 -0
  190. package/build-module/components/block-list/block-list-compact.native.js.map +1 -1
  191. package/build-module/components/block-list/block.js +75 -15
  192. package/build-module/components/block-list/block.js.map +1 -1
  193. package/build-module/components/block-list/block.native.js +80 -13
  194. package/build-module/components/block-list/block.native.js.map +1 -1
  195. package/build-module/components/block-list/use-in-between-inserter.js +8 -24
  196. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  197. package/build-module/components/block-lock/modal.js +10 -8
  198. package/build-module/components/block-lock/modal.js.map +1 -1
  199. package/build-module/components/block-parent-selector/index.js +3 -3
  200. package/build-module/components/block-parent-selector/index.js.map +1 -1
  201. package/build-module/components/block-patterns-list/index.js +5 -4
  202. package/build-module/components/block-patterns-list/index.js.map +1 -1
  203. package/build-module/components/block-popover/drop-zone.js +70 -0
  204. package/build-module/components/block-popover/drop-zone.js.map +1 -0
  205. package/build-module/components/block-popover/inbetween.js +2 -1
  206. package/build-module/components/block-popover/inbetween.js.map +1 -1
  207. package/build-module/components/block-popover/index.js +4 -2
  208. package/build-module/components/block-popover/index.js.map +1 -1
  209. package/build-module/components/block-preview/auto.js +1 -1
  210. package/build-module/components/block-preview/auto.js.map +1 -1
  211. package/build-module/components/block-preview/index.js +8 -12
  212. package/build-module/components/block-preview/index.js.map +1 -1
  213. package/build-module/components/block-preview/live.js +3 -6
  214. package/build-module/components/block-preview/live.js.map +1 -1
  215. package/build-module/components/block-selection-clearer/index.js +9 -1
  216. package/build-module/components/block-selection-clearer/index.js.map +1 -1
  217. package/build-module/components/block-settings-menu/block-settings-dropdown.js +20 -19
  218. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  219. package/build-module/components/block-styles/index.js +19 -44
  220. package/build-module/components/block-styles/index.js.map +1 -1
  221. package/build-module/components/block-switcher/index.js +2 -7
  222. package/build-module/components/block-switcher/index.js.map +1 -1
  223. package/build-module/components/block-switcher/preview-block-popover.js +1 -1
  224. package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
  225. package/build-module/components/block-toolbar/index.js +4 -4
  226. package/build-module/components/block-toolbar/index.js.map +1 -1
  227. package/build-module/components/block-tools/back-compat.js +2 -1
  228. package/build-module/components/block-tools/back-compat.js.map +1 -1
  229. package/build-module/components/block-tools/insertion-point.js +54 -16
  230. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  231. package/build-module/components/block-tools/selected-block-popover.js +15 -3
  232. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  233. package/build-module/components/block-vertical-alignment-control/ui.js +1 -1
  234. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  235. package/build-module/components/border-radius-control/all-input-control.js +2 -1
  236. package/build-module/components/border-radius-control/all-input-control.js.map +1 -1
  237. package/build-module/components/border-radius-control/index.js +2 -1
  238. package/build-module/components/border-radius-control/index.js.map +1 -1
  239. package/build-module/components/border-radius-control/input-controls.js +2 -1
  240. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  241. package/build-module/components/colors-gradients/control.js +2 -2
  242. package/build-module/components/colors-gradients/control.js.map +1 -1
  243. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +3 -3
  244. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  245. package/build-module/components/duotone-control/index.js +1 -1
  246. package/build-module/components/duotone-control/index.js.map +1 -1
  247. package/build-module/components/font-sizes/fluid-utils.js +245 -0
  248. package/build-module/components/font-sizes/fluid-utils.js.map +1 -0
  249. package/build-module/components/font-sizes/index.js +1 -0
  250. package/build-module/components/font-sizes/index.js.map +1 -1
  251. package/build-module/components/font-sizes/with-font-sizes.js +2 -2
  252. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  253. package/build-module/components/iframe/index.js +1 -1
  254. package/build-module/components/iframe/index.js.map +1 -1
  255. package/build-module/components/image-editor/constants.js +1 -1
  256. package/build-module/components/image-editor/constants.js.map +1 -1
  257. package/build-module/components/index.js +0 -1
  258. package/build-module/components/index.js.map +1 -1
  259. package/build-module/components/inner-blocks/index.js +6 -2
  260. package/build-module/components/inner-blocks/index.js.map +1 -1
  261. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +3 -2
  262. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  263. package/build-module/components/inserter/block-patterns-tab.js +148 -81
  264. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  265. package/build-module/components/inserter/hooks/use-insertion-point.js +2 -6
  266. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  267. package/build-module/components/inserter/menu.js +10 -3
  268. package/build-module/components/inserter/menu.js.map +1 -1
  269. package/build-module/components/inserter/search-items.js +23 -3
  270. package/build-module/components/inserter/search-items.js.map +1 -1
  271. package/build-module/components/inserter-draggable-blocks/index.js +4 -2
  272. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  273. package/build-module/components/line-height-control/index.js +2 -1
  274. package/build-module/components/line-height-control/index.js.map +1 -1
  275. package/build-module/components/list-view/drop-indicator.js +2 -1
  276. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  277. package/build-module/components/list-view/use-list-view-drop-zone.js +1 -14
  278. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  279. package/build-module/components/media-replace-flow/index.js +1 -1
  280. package/build-module/components/media-replace-flow/index.js.map +1 -1
  281. package/build-module/components/preview-options/index.js +2 -3
  282. package/build-module/components/preview-options/index.js.map +1 -1
  283. package/build-module/components/rich-text/format-toolbar/index.js +1 -1
  284. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  285. package/build-module/components/rich-text/format-toolbar-container.js +1 -1
  286. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  287. package/build-module/components/rich-text/use-paste-handler.js +1 -1
  288. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  289. package/build-module/components/spacing-sizes-control/all-input-control.js +6 -2
  290. package/build-module/components/spacing-sizes-control/all-input-control.js.map +1 -1
  291. package/build-module/components/spacing-sizes-control/axial-input-controls.js +6 -2
  292. package/build-module/components/spacing-sizes-control/axial-input-controls.js.map +1 -1
  293. package/build-module/components/spacing-sizes-control/index.js +6 -2
  294. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  295. package/build-module/components/spacing-sizes-control/input-controls.js +6 -2
  296. package/build-module/components/spacing-sizes-control/input-controls.js.map +1 -1
  297. package/build-module/components/spacing-sizes-control/spacing-input-control.js +44 -8
  298. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  299. package/build-module/components/url-input/index.js +1 -1
  300. package/build-module/components/url-input/index.js.map +1 -1
  301. package/build-module/components/use-block-drop-zone/index.js +98 -58
  302. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  303. package/build-module/components/use-on-block-drop/index.js +12 -12
  304. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  305. package/build-module/components/use-on-block-drop/types.js +2 -0
  306. package/build-module/components/use-on-block-drop/types.js.map +1 -0
  307. package/build-module/hooks/align.js +1 -2
  308. package/build-module/hooks/align.js.map +1 -1
  309. package/build-module/hooks/align.native.js +1 -6
  310. package/build-module/hooks/align.native.js.map +1 -1
  311. package/build-module/hooks/border.js +1 -0
  312. package/build-module/hooks/border.js.map +1 -1
  313. package/build-module/hooks/dimensions.js +32 -4
  314. package/build-module/hooks/dimensions.js.map +1 -1
  315. package/build-module/hooks/font-size.js +60 -1
  316. package/build-module/hooks/font-size.js.map +1 -1
  317. package/build-module/hooks/layout.js +5 -4
  318. package/build-module/hooks/layout.js.map +1 -1
  319. package/build-module/hooks/margin.js +25 -18
  320. package/build-module/hooks/margin.js.map +1 -1
  321. package/build-module/hooks/padding.js +21 -13
  322. package/build-module/hooks/padding.js.map +1 -1
  323. package/build-module/hooks/style.js +124 -3
  324. package/build-module/hooks/style.js.map +1 -1
  325. package/build-module/hooks/use-typography-props.js +17 -4
  326. package/build-module/hooks/use-typography-props.js.map +1 -1
  327. package/build-module/hooks/utils.js +8 -8
  328. package/build-module/hooks/utils.js.map +1 -1
  329. package/build-module/layouts/constrained.js +0 -1
  330. package/build-module/layouts/constrained.js.map +1 -1
  331. package/build-module/layouts/flex.js +1 -1
  332. package/build-module/layouts/flex.js.map +1 -1
  333. package/build-module/store/actions.js +59 -42
  334. package/build-module/store/actions.js.map +1 -1
  335. package/build-module/store/array.js +1 -6
  336. package/build-module/store/array.js.map +1 -1
  337. package/build-module/store/defaults.js +3 -0
  338. package/build-module/store/defaults.js.map +1 -1
  339. package/build-module/store/reducer.js +32 -16
  340. package/build-module/store/reducer.js.map +1 -1
  341. package/build-module/store/selectors.js +47 -30
  342. package/build-module/store/selectors.js.map +1 -1
  343. package/build-module/utils/math.js +12 -0
  344. package/build-module/utils/math.js.map +1 -1
  345. package/build-module/utils/pre-parse-patterns.js +19 -2
  346. package/build-module/utils/pre-parse-patterns.js.map +1 -1
  347. package/build-style/style-rtl.css +292 -206
  348. package/build-style/style.css +288 -202
  349. package/package.json +29 -28
  350. package/src/components/alignment-control/ui.js +1 -1
  351. package/src/components/block-alignment-control/constants.js +1 -1
  352. package/src/components/block-alignment-matrix-control/index.js +1 -1
  353. package/src/components/block-breadcrumb/test/__snapshots__/index.js.snap +13 -11
  354. package/src/components/block-breadcrumb/test/index.js +2 -2
  355. package/src/components/block-compare/index.js +3 -2
  356. package/src/components/block-draggable/draggable-chip.js +4 -2
  357. package/src/components/block-edit/index.js +2 -1
  358. package/src/components/block-inspector/index.js +8 -7
  359. package/src/components/block-list/block-list-compact.native.js +1 -0
  360. package/src/components/block-list/block.js +113 -7
  361. package/src/components/block-list/block.native.js +123 -9
  362. package/src/components/block-list/style.scss +93 -126
  363. package/src/components/block-list/use-in-between-inserter.js +8 -19
  364. package/src/components/block-lock/modal.js +12 -7
  365. package/src/components/block-mover/stories/index.js +1 -1
  366. package/src/components/block-mover/style.scss +35 -1
  367. package/src/components/block-parent-selector/index.js +3 -3
  368. package/src/components/block-patterns-list/index.js +9 -5
  369. package/src/components/block-patterns-list/style.scss +7 -3
  370. package/src/components/block-popover/README.md +8 -0
  371. package/src/components/block-popover/drop-zone.js +63 -0
  372. package/src/components/block-popover/inbetween.js +1 -0
  373. package/src/components/block-popover/index.js +3 -1
  374. package/src/components/block-popover/style.scss +17 -5
  375. package/src/components/block-preview/auto.js +1 -1
  376. package/src/components/block-preview/index.js +15 -11
  377. package/src/components/block-preview/live.js +2 -7
  378. package/src/components/block-preview/test/index.js +1 -7
  379. package/src/components/block-selection-clearer/index.js +7 -2
  380. package/src/components/block-selection-clearer/test/index.js +118 -0
  381. package/src/components/block-settings-menu/block-settings-dropdown.js +29 -18
  382. package/src/components/block-settings-menu/test/block-mode-toggle.js +17 -17
  383. package/src/components/block-styles/index.js +26 -49
  384. package/src/components/block-switcher/index.js +2 -7
  385. package/src/components/block-switcher/preview-block-popover.js +1 -1
  386. package/src/components/block-switcher/test/index.js +2 -2
  387. package/src/components/block-toolbar/index.js +4 -6
  388. package/src/components/block-toolbar/style.scss +38 -14
  389. package/src/components/block-tools/back-compat.js +1 -0
  390. package/src/components/block-tools/insertion-point.js +49 -15
  391. package/src/components/block-tools/selected-block-popover.js +14 -1
  392. package/src/components/block-variation-picker/README.md +1 -1
  393. package/src/components/block-vertical-alignment-control/ui.js +1 -1
  394. package/src/components/border-radius-control/all-input-control.js +1 -0
  395. package/src/components/border-radius-control/index.js +1 -0
  396. package/src/components/border-radius-control/input-controls.js +1 -0
  397. package/src/components/border-radius-control/style.scss +15 -24
  398. package/src/components/button-block-appender/style.scss +4 -2
  399. package/src/components/color-palette/test/__snapshots__/control.js.snap +86 -104
  400. package/src/components/color-palette/test/control.js +11 -15
  401. package/src/components/colors-gradients/control.js +2 -2
  402. package/src/components/colors-gradients/panel-color-gradient-settings.js +3 -4
  403. package/src/components/colors-gradients/test/control.js +49 -77
  404. package/src/components/duotone-control/index.js +1 -1
  405. package/src/components/font-sizes/fluid-utils.js +296 -0
  406. package/src/components/font-sizes/index.js +1 -0
  407. package/src/components/font-sizes/test/fluid-utils.js +168 -0
  408. package/src/components/font-sizes/with-font-sizes.js +2 -3
  409. package/src/components/iframe/index.js +1 -1
  410. package/src/components/image-editor/constants.js +1 -1
  411. package/src/components/image-size-control/test/index.js +47 -60
  412. package/src/components/index.js +0 -1
  413. package/src/components/inner-blocks/index.js +5 -1
  414. package/src/components/inner-blocks/test/index.js +4 -0
  415. package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -2
  416. package/src/components/inserter/block-patterns-tab.js +232 -98
  417. package/src/components/inserter/hooks/use-insertion-point.js +3 -11
  418. package/src/components/inserter/menu.js +15 -2
  419. package/src/components/inserter/search-items.js +23 -3
  420. package/src/components/inserter/style.scss +94 -9
  421. package/src/components/inserter/test/reusable-blocks-tab.js +6 -6
  422. package/src/components/inserter/test/search-items.js +6 -0
  423. package/src/components/inserter-draggable-blocks/index.js +12 -2
  424. package/src/components/inserter-list-item/style.scss +22 -1
  425. package/src/components/letter-spacing-control/README.md +55 -0
  426. package/src/components/line-height-control/index.js +1 -0
  427. package/src/components/link-control/README.md +3 -3
  428. package/src/components/link-control/test/index.js +1 -1
  429. package/src/components/list-view/drop-indicator.js +1 -0
  430. package/src/components/list-view/style.scss +1 -36
  431. package/src/components/list-view/use-list-view-drop-zone.js +4 -18
  432. package/src/components/media-replace-flow/index.js +1 -1
  433. package/src/components/media-replace-flow/test/index.js +69 -51
  434. package/src/components/panel-color-settings/test/index.js +4 -4
  435. package/src/components/preview-options/index.js +2 -2
  436. package/src/components/preview-options/style.scss +1 -1
  437. package/src/components/provider/test/use-block-sync.js +131 -165
  438. package/src/components/responsive-block-control/test/index.js +4 -4
  439. package/src/components/rich-text/format-toolbar/index.js +1 -1
  440. package/src/components/rich-text/format-toolbar-container.js +1 -1
  441. package/src/components/rich-text/use-paste-handler.js +1 -1
  442. package/src/components/spacing-sizes-control/all-input-control.js +4 -0
  443. package/src/components/spacing-sizes-control/axial-input-controls.js +4 -0
  444. package/src/components/spacing-sizes-control/index.js +4 -0
  445. package/src/components/spacing-sizes-control/input-controls.js +4 -0
  446. package/src/components/spacing-sizes-control/spacing-input-control.js +26 -3
  447. package/src/components/spacing-sizes-control/style.scss +27 -19
  448. package/src/components/url-input/index.js +1 -1
  449. package/src/components/use-block-drop-zone/index.js +136 -79
  450. package/src/components/use-block-drop-zone/test/index.js +333 -81
  451. package/src/components/use-on-block-drop/index.js +11 -12
  452. package/src/components/use-on-block-drop/types.ts +1 -0
  453. package/src/hooks/align.js +3 -2
  454. package/src/hooks/align.native.js +5 -8
  455. package/src/hooks/border.js +1 -0
  456. package/src/hooks/dimensions.js +32 -5
  457. package/src/hooks/font-size.js +76 -0
  458. package/src/hooks/layout.js +7 -9
  459. package/src/hooks/margin.js +20 -14
  460. package/src/hooks/padding.js +20 -16
  461. package/src/hooks/style.js +122 -3
  462. package/src/hooks/test/align.js +96 -72
  463. package/src/hooks/test/style.js +206 -1
  464. package/src/hooks/test/use-typography-props.js +22 -0
  465. package/src/hooks/use-typography-props.js +18 -3
  466. package/src/hooks/utils.js +10 -7
  467. package/src/layouts/constrained.js +0 -1
  468. package/src/layouts/flex.js +1 -1
  469. package/src/store/actions.js +24 -12
  470. package/src/store/array.js +1 -6
  471. package/src/store/defaults.js +3 -0
  472. package/src/store/reducer.js +31 -24
  473. package/src/store/selectors.js +28 -21
  474. package/src/store/test/actions.js +0 -9
  475. package/src/store/test/selectors.js +1 -1
  476. package/src/utils/math.js +17 -0
  477. package/src/utils/pre-parse-patterns.js +12 -7
  478. package/build/components/inserter/pattern-panel.js +0 -87
  479. package/build/components/inserter/pattern-panel.js.map +0 -1
  480. package/build-module/components/inserter/pattern-panel.js +0 -74
  481. package/build-module/components/inserter/pattern-panel.js.map +0 -1
  482. package/src/components/inserter/pattern-panel.js +0 -93
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { render, fireEvent } from '@testing-library/react';
4
+ import { render, screen } from '@testing-library/react';
5
+ import userEvent from '@testing-library/user-event';
5
6
 
6
7
  /**
7
8
  * WordPress dependencies
@@ -31,80 +32,97 @@ function TestWrapper() {
31
32
  );
32
33
  }
33
34
 
34
- function setUpMediaReplaceFlow() {
35
- const { container } = render( <TestWrapper /> );
36
- return container;
37
- }
38
-
39
35
  describe( 'General media replace flow', () => {
40
36
  it( 'renders successfully', () => {
41
- const container = setUpMediaReplaceFlow();
42
-
43
- const mediaReplaceButton = container.querySelector(
44
- 'button[aria-expanded="false"]'
45
- );
46
-
47
- expect( mediaReplaceButton ).not.toBeNull();
37
+ render( <TestWrapper /> );
38
+
39
+ expect(
40
+ screen.getByRole( 'button', {
41
+ expanded: false,
42
+ name: 'Replace',
43
+ } )
44
+ ).toBeVisible();
48
45
  } );
49
46
 
50
- it( 'renders replace menu', () => {
51
- const container = setUpMediaReplaceFlow();
47
+ it( 'renders replace menu', async () => {
48
+ const user = userEvent.setup( {
49
+ advanceTimers: jest.advanceTimersByTime,
50
+ } );
52
51
 
53
- const mediaReplaceButton = container.querySelector(
54
- 'button[aria-expanded="false"]'
55
- );
56
- mediaReplaceButton.click();
52
+ render( <TestWrapper /> );
57
53
 
58
- const uploadMenu = container.querySelector(
59
- '.block-editor-media-replace-flow__media-upload-menu'
54
+ await user.click(
55
+ screen.getByRole( 'button', {
56
+ expanded: false,
57
+ name: 'Replace',
58
+ } )
60
59
  );
61
60
 
62
- expect( uploadMenu ).not.toBeNull();
61
+ const uploadMenu = screen.getByRole( 'menu' );
62
+
63
+ expect( uploadMenu ).toBeInTheDocument();
64
+ expect( uploadMenu ).not.toBeVisible();
63
65
  } );
64
66
 
65
- it( 'displays media URL', () => {
66
- const container = setUpMediaReplaceFlow();
67
+ it( 'displays media URL', async () => {
68
+ const user = userEvent.setup( {
69
+ advanceTimers: jest.advanceTimersByTime,
70
+ } );
67
71
 
68
- const mediaReplaceButton = container.querySelector(
69
- 'button[aria-expanded="false"]'
70
- );
71
- mediaReplaceButton.click();
72
+ render( <TestWrapper /> );
72
73
 
73
- const mediaURL = container.querySelector( '.components-external-link' );
74
+ await user.click(
75
+ screen.getByRole( 'button', {
76
+ expanded: false,
77
+ name: 'Replace',
78
+ } )
79
+ );
74
80
 
75
- expect( mediaURL.href ).toEqual( 'https://example.media/' );
81
+ expect(
82
+ screen.getByRole( 'link', {
83
+ name: 'example.media (opens in a new tab)',
84
+ } )
85
+ ).toHaveAttribute( 'href', 'https://example.media' );
76
86
  } );
77
87
 
78
- it( 'edits media URL', () => {
79
- const container = setUpMediaReplaceFlow();
88
+ it( 'edits media URL', async () => {
89
+ const user = userEvent.setup( {
90
+ advanceTimers: jest.advanceTimersByTime,
91
+ } );
80
92
 
81
- const mediaReplaceButton = container.querySelector(
82
- 'button[aria-expanded="false"]'
83
- );
84
- mediaReplaceButton.click();
93
+ render( <TestWrapper /> );
85
94
 
86
- const editMediaURL = container.querySelector(
87
- '.block-editor-link-control__search-item-action'
95
+ await user.click(
96
+ screen.getByRole( 'button', {
97
+ expanded: false,
98
+ name: 'Replace',
99
+ } )
88
100
  );
89
101
 
90
- editMediaURL.click();
91
-
92
- const mediaURLInput = container.querySelector(
93
- '.block-editor-url-input__input'
102
+ await user.click(
103
+ screen.getByRole( 'button', {
104
+ name: 'Edit',
105
+ } )
94
106
  );
95
107
 
96
- fireEvent.change( mediaURLInput, {
97
- target: { value: 'https://new.example.media' },
108
+ const mediaURLInput = screen.getByRole( 'combobox', {
109
+ name: 'URL',
110
+ expanded: false,
98
111
  } );
99
112
 
100
- const saveMediaURLButton = container.querySelector(
101
- '.block-editor-link-control__search-submit'
102
- );
103
-
104
- saveMediaURLButton.click();
113
+ await user.clear( mediaURLInput );
114
+ await user.type( mediaURLInput, 'https://new.example.media' );
105
115
 
106
- const mediaURL = container.querySelector( '.components-external-link' );
116
+ await user.click(
117
+ screen.getByRole( 'button', {
118
+ name: 'Submit',
119
+ } )
120
+ );
107
121
 
108
- expect( mediaURL.href ).toEqual( 'https://new.example.media/' );
122
+ expect(
123
+ screen.getByRole( 'link', {
124
+ name: 'new.example.media (opens in a new tab)',
125
+ } )
126
+ ).toHaveAttribute( 'href', 'https://new.example.media' );
109
127
  } );
110
128
  } );
@@ -31,7 +31,7 @@ describe( 'PanelColorSettings', () => {
31
31
  ] }
32
32
  />
33
33
  );
34
- expect( container.innerHTML ).toBe( '' );
34
+ expect( container ).toBeEmptyDOMElement();
35
35
  } );
36
36
 
37
37
  it( 'should render a color panel if at least one setting supports custom colors', async () => {
@@ -55,7 +55,7 @@ describe( 'PanelColorSettings', () => {
55
55
  ] }
56
56
  />
57
57
  );
58
- expect( container.innerHTML ).not.toBe( '' );
58
+ expect( container ).not.toBeEmptyDOMElement();
59
59
  } );
60
60
 
61
61
  it( 'should render a color panel if at least one setting specifies some colors to choose', async () => {
@@ -85,7 +85,7 @@ describe( 'PanelColorSettings', () => {
85
85
  ] }
86
86
  />
87
87
  );
88
- expect( container.innerHTML ).not.toBe( '' );
88
+ expect( container ).not.toBeEmptyDOMElement();
89
89
  } );
90
90
 
91
91
  it( 'should not render anything if none of the setting panels has colors to choose', async () => {
@@ -112,6 +112,6 @@ describe( 'PanelColorSettings', () => {
112
112
  ] }
113
113
  />
114
114
  );
115
- expect( container.innerHTML ).not.toBe( '' );
115
+ expect( container ).not.toBeEmptyDOMElement();
116
116
  } );
117
117
  } );
@@ -13,6 +13,7 @@ import { check } from '@wordpress/icons';
13
13
 
14
14
  export default function PreviewOptions( {
15
15
  children,
16
+ viewLabel,
16
17
  className,
17
18
  isEnabled = true,
18
19
  deviceType,
@@ -32,8 +33,7 @@ export default function PreviewOptions( {
32
33
  variant: 'tertiary',
33
34
  className: 'block-editor-post-preview__button-toggle',
34
35
  disabled: ! isEnabled,
35
- /* translators: button label text should, if possible, be under 16 characters. */
36
- children: __( 'View' ),
36
+ children: viewLabel,
37
37
  };
38
38
  const menuProps = {
39
39
  'aria-label': __( 'View options' ),
@@ -28,7 +28,7 @@
28
28
  }
29
29
 
30
30
  .edit-post-header__settings,
31
- .edit-site-header__actions {
31
+ .edit-site-header-edit-mode__actions {
32
32
  @include break-small () {
33
33
  .editor-post-preview {
34
34
  display: none;
@@ -6,7 +6,7 @@ import { registerBlockType } from '@wordpress/blocks';
6
6
  /**
7
7
  * External dependencies
8
8
  */
9
- import { create, act } from 'react-test-renderer';
9
+ import { render } from '@testing-library/react';
10
10
 
11
11
  /**
12
12
  * Internal dependencies
@@ -48,16 +48,13 @@ describe( 'useBlockSync hook', () => {
48
48
  const onChange = jest.fn();
49
49
  const onInput = jest.fn();
50
50
 
51
- let root;
52
- await act( async () => {
53
- root = create(
54
- <TestWrapper
55
- value={ fakeBlocks }
56
- onChange={ onChange }
57
- onInput={ onInput }
58
- />
59
- );
60
- } );
51
+ const { rerender } = render(
52
+ <TestWrapper
53
+ value={ fakeBlocks }
54
+ onChange={ onChange }
55
+ onInput={ onInput }
56
+ />
57
+ );
61
58
 
62
59
  // Reset blocks should be called on mount.
63
60
  expect( onChange ).not.toHaveBeenCalled();
@@ -68,15 +65,13 @@ describe( 'useBlockSync hook', () => {
68
65
  const testBlocks = [
69
66
  { clientId: 'a', innerBlocks: [], attributes: { foo: 1 } },
70
67
  ];
71
- await act( async () => {
72
- root.update(
73
- <TestWrapper
74
- value={ testBlocks }
75
- onChange={ onChange }
76
- onInput={ onInput }
77
- />
78
- );
79
- } );
68
+ rerender(
69
+ <TestWrapper
70
+ value={ testBlocks }
71
+ onChange={ onChange }
72
+ onInput={ onInput }
73
+ />
74
+ );
80
75
 
81
76
  // Reset blocks should be called when the incoming value changes.
82
77
  expect( onChange ).not.toHaveBeenCalled();
@@ -95,17 +90,14 @@ describe( 'useBlockSync hook', () => {
95
90
  const onChange = jest.fn();
96
91
  const onInput = jest.fn();
97
92
 
98
- let root;
99
- await act( async () => {
100
- root = create(
101
- <TestWrapper
102
- clientId="test"
103
- value={ fakeBlocks }
104
- onChange={ onChange }
105
- onInput={ onInput }
106
- />
107
- );
108
- } );
93
+ const { rerender } = render(
94
+ <TestWrapper
95
+ clientId="test"
96
+ value={ fakeBlocks }
97
+ onChange={ onChange }
98
+ onInput={ onInput }
99
+ />
100
+ );
109
101
 
110
102
  expect( resetBlocks ).not.toHaveBeenCalled();
111
103
  expect( onChange ).not.toHaveBeenCalled();
@@ -123,16 +115,14 @@ describe( 'useBlockSync hook', () => {
123
115
  attributes: { foo: 1 },
124
116
  },
125
117
  ];
126
- await act( async () => {
127
- root.update(
128
- <TestWrapper
129
- clientId="test"
130
- value={ testBlocks }
131
- onChange={ onChange }
132
- onInput={ onInput }
133
- />
134
- );
135
- } );
118
+ rerender(
119
+ <TestWrapper
120
+ clientId="test"
121
+ value={ testBlocks }
122
+ onChange={ onChange }
123
+ onInput={ onInput }
124
+ />
125
+ );
136
126
 
137
127
  // Reset blocks should be called when the incoming value changes.
138
128
  expect( onChange ).not.toHaveBeenCalled();
@@ -158,22 +148,20 @@ describe( 'useBlockSync hook', () => {
158
148
  attributes: { foo: 1 },
159
149
  },
160
150
  ];
161
- let root;
151
+
162
152
  let registry;
163
153
  const setRegistry = ( reg ) => {
164
154
  registry = reg;
165
155
  };
166
- await act( async () => {
167
- root = create(
168
- <TestWrapper
169
- setRegistry={ setRegistry }
170
- clientId="test"
171
- value={ value1 }
172
- onChange={ onChange }
173
- onInput={ onInput }
174
- />
175
- );
176
- } );
156
+ const { rerender } = render(
157
+ <TestWrapper
158
+ setRegistry={ setRegistry }
159
+ clientId="test"
160
+ value={ value1 }
161
+ onChange={ onChange }
162
+ onInput={ onInput }
163
+ />
164
+ );
177
165
 
178
166
  registry
179
167
  .dispatch( blockEditorStore )
@@ -188,16 +176,14 @@ describe( 'useBlockSync hook', () => {
188
176
  // triggered once more.
189
177
  expect( newBlockValue ).not.toBe( value1 );
190
178
 
191
- await act( async () => {
192
- root.update(
193
- <TestWrapper
194
- clientId="test"
195
- value={ newBlockValue }
196
- onChange={ onChange }
197
- onInput={ onInput }
198
- />
199
- );
200
- } );
179
+ rerender(
180
+ <TestWrapper
181
+ clientId="test"
182
+ value={ newBlockValue }
183
+ onChange={ onChange }
184
+ onInput={ onInput }
185
+ />
186
+ );
201
187
 
202
188
  // replaceInnerBlocks should not be called when the controlling
203
189
  // block value is the same as what already exists in the store.
@@ -210,16 +196,14 @@ describe( 'useBlockSync hook', () => {
210
196
  'setHasControlledInnerBlocks'
211
197
  );
212
198
 
213
- await act( async () => {
214
- create(
215
- <TestWrapper
216
- clientId="test"
217
- value={ [] }
218
- onChange={ jest.fn() }
219
- onInput={ jest.fn() }
220
- />
221
- );
222
- } );
199
+ render(
200
+ <TestWrapper
201
+ clientId="test"
202
+ value={ [] }
203
+ onChange={ jest.fn() }
204
+ onInput={ jest.fn() }
205
+ />
206
+ );
223
207
  expect( setAsController ).toHaveBeenCalledWith( 'test', true );
224
208
  } );
225
209
 
@@ -233,16 +217,14 @@ describe( 'useBlockSync hook', () => {
233
217
  const setRegistry = ( reg ) => {
234
218
  registry = reg;
235
219
  };
236
- await act( async () => {
237
- create(
238
- <TestWrapper
239
- setRegistry={ setRegistry }
240
- value={ value1 }
241
- onChange={ onChange }
242
- onInput={ onInput }
243
- />
244
- );
245
- } );
220
+ render(
221
+ <TestWrapper
222
+ setRegistry={ setRegistry }
223
+ value={ value1 }
224
+ onChange={ onChange }
225
+ onInput={ onInput }
226
+ />
227
+ );
246
228
  onChange.mockClear();
247
229
  onInput.mockClear();
248
230
 
@@ -278,16 +260,14 @@ describe( 'useBlockSync hook', () => {
278
260
  const setRegistry = ( reg ) => {
279
261
  registry = reg;
280
262
  };
281
- await act( async () => {
282
- create(
283
- <TestWrapper
284
- setRegistry={ setRegistry }
285
- value={ value1 }
286
- onChange={ onChange }
287
- onInput={ onInput }
288
- />
289
- );
290
- } );
263
+ render(
264
+ <TestWrapper
265
+ setRegistry={ setRegistry }
266
+ value={ value1 }
267
+ onChange={ onChange }
268
+ onInput={ onInput }
269
+ />
270
+ );
291
271
  onChange.mockClear();
292
272
  onInput.mockClear();
293
273
 
@@ -327,30 +307,26 @@ describe( 'useBlockSync hook', () => {
327
307
  },
328
308
  ];
329
309
 
330
- await act( async () => {
331
- create(
332
- <TestWrapper
333
- clientId="test"
334
- value={ value1 }
335
- onChange={ onChange }
336
- onInput={ onInput }
337
- />
338
- );
339
- } );
310
+ const { rerender } = render(
311
+ <TestWrapper
312
+ clientId="test"
313
+ value={ value1 }
314
+ onChange={ onChange }
315
+ onInput={ onInput }
316
+ />
317
+ );
340
318
  onChange.mockClear();
341
319
  onInput.mockClear();
342
320
  replaceInnerBlocks.mockClear();
343
321
 
344
- await act( async () => {
345
- create(
346
- <TestWrapper
347
- clientId="test"
348
- value={ [] }
349
- onChange={ onChange }
350
- onInput={ onInput }
351
- />
352
- );
353
- } );
322
+ rerender(
323
+ <TestWrapper
324
+ clientId="test"
325
+ value={ [] }
326
+ onChange={ onChange }
327
+ onInput={ onInput }
328
+ />
329
+ );
354
330
 
355
331
  expect( replaceInnerBlocks ).toHaveBeenCalledWith( 'test', [] );
356
332
  expect( onChange ).not.toHaveBeenCalled();
@@ -379,16 +355,14 @@ describe( 'useBlockSync hook', () => {
379
355
  const setRegistry = ( reg ) => {
380
356
  registry = reg;
381
357
  };
382
- await act( async () => {
383
- create(
384
- <TestWrapper
385
- setRegistry={ setRegistry }
386
- value={ value1 }
387
- onChange={ onChange }
388
- onInput={ onInput }
389
- />
390
- );
391
- } );
358
+ render(
359
+ <TestWrapper
360
+ setRegistry={ setRegistry }
361
+ value={ value1 }
362
+ onChange={ onChange }
363
+ onInput={ onInput }
364
+ />
365
+ );
392
366
  onChange.mockClear();
393
367
  onInput.mockClear();
394
368
  replaceInnerBlocks.mockClear();
@@ -429,17 +403,15 @@ describe( 'useBlockSync hook', () => {
429
403
  const setRegistry = ( reg ) => {
430
404
  registry = reg;
431
405
  };
432
- let root;
433
- await act( async () => {
434
- root = create(
435
- <TestWrapper
436
- setRegistry={ setRegistry }
437
- value={ fakeBlocks }
438
- onChange={ onChange1 }
439
- onInput={ onInput }
440
- />
441
- );
442
- } );
406
+
407
+ const { rerender } = render(
408
+ <TestWrapper
409
+ setRegistry={ setRegistry }
410
+ value={ fakeBlocks }
411
+ onChange={ onChange1 }
412
+ onInput={ onInput }
413
+ />
414
+ );
443
415
 
444
416
  // Create a persistent change.
445
417
  registry
@@ -468,16 +440,14 @@ describe( 'useBlockSync hook', () => {
468
440
 
469
441
  // Update the component to point at a "different entity" (e.g. different
470
442
  // blocks and onChange handler.)
471
- await act( async () => {
472
- root.update(
473
- <TestWrapper
474
- setRegistry={ setRegistry }
475
- value={ newBlocks }
476
- onChange={ onChange2 }
477
- onInput={ onInput }
478
- />
479
- );
480
- } );
443
+ rerender(
444
+ <TestWrapper
445
+ setRegistry={ setRegistry }
446
+ value={ newBlocks }
447
+ onChange={ onChange2 }
448
+ onInput={ onInput }
449
+ />
450
+ );
481
451
 
482
452
  // Create a persistent change.
483
453
  registry
@@ -511,17 +481,15 @@ describe( 'useBlockSync hook', () => {
511
481
  const setRegistry = ( reg ) => {
512
482
  registry = reg;
513
483
  };
514
- let root;
515
- await act( async () => {
516
- root = create(
517
- <TestWrapper
518
- setRegistry={ setRegistry }
519
- value={ fakeBlocks }
520
- onChange={ onChange1 }
521
- onInput={ onInput }
522
- />
523
- );
524
- } );
484
+
485
+ const { rerender } = render(
486
+ <TestWrapper
487
+ setRegistry={ setRegistry }
488
+ value={ fakeBlocks }
489
+ onChange={ onChange1 }
490
+ onInput={ onInput }
491
+ />
492
+ );
525
493
 
526
494
  const newBlocks = [
527
495
  { clientId: 'b', innerBlocks: [], attributes: { foo: 1 } },
@@ -531,16 +499,14 @@ describe( 'useBlockSync hook', () => {
531
499
 
532
500
  // Update the component to point at a "different entity" (e.g. different
533
501
  // blocks and onChange handler.)
534
- await act( async () => {
535
- root.update(
536
- <TestWrapper
537
- setRegistry={ setRegistry }
538
- value={ newBlocks }
539
- onChange={ onChange2 }
540
- onInput={ onInput }
541
- />
542
- );
543
- } );
502
+ rerender(
503
+ <TestWrapper
504
+ setRegistry={ setRegistry }
505
+ value={ newBlocks }
506
+ onChange={ onChange2 }
507
+ onInput={ onInput }
508
+ />
509
+ );
544
510
 
545
511
  // Create a persistent change.
546
512
  registry
@@ -90,7 +90,7 @@ describe( 'Basic rendering', () => {
90
90
  '.block-editor-responsive-block-control__group.is-responsive'
91
91
  );
92
92
 
93
- expect( container.innerHTML ).not.toBe( '' );
93
+ expect( container ).not.toBeEmptyDOMElement();
94
94
 
95
95
  expect( defaultControlGroup ).not.toBeNull();
96
96
  expect( responsiveControlGroup ).toBeNull();
@@ -110,7 +110,7 @@ describe( 'Basic rendering', () => {
110
110
  />
111
111
  );
112
112
 
113
- expect( container.innerHTML ).toBe( '' );
113
+ expect( container ).toBeEmptyDOMElement();
114
114
  } );
115
115
 
116
116
  it( 'should not render without valid property', () => {
@@ -121,7 +121,7 @@ describe( 'Basic rendering', () => {
121
121
  />
122
122
  );
123
123
 
124
- expect( container.innerHTML ).toBe( '' );
124
+ expect( container ).toBeEmptyDOMElement();
125
125
  } );
126
126
 
127
127
  it( 'should not render without valid default control render prop', () => {
@@ -129,7 +129,7 @@ describe( 'Basic rendering', () => {
129
129
  <ResponsiveBlockControl title="Padding" property="padding" />
130
130
  );
131
131
 
132
- expect( container.innerHTML ).toBe( '' );
132
+ expect( container ).toBeEmptyDOMElement();
133
133
  } );
134
134
 
135
135
  it( 'should render with custom label for toggle control when provided', () => {
@@ -15,7 +15,7 @@ import { chevronDown } from '@wordpress/icons';
15
15
 
16
16
  const POPOVER_PROPS = {
17
17
  position: 'bottom right',
18
- isAlternate: true,
18
+ variant: 'toolbar',
19
19
  };
20
20
 
21
21
  const FormatToolbar = () => {