@wordpress/block-editor 11.1.0 → 11.3.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 (765) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE.md +1 -1
  3. package/README.md +28 -4
  4. package/build/components/alignment-control/ui.js +1 -1
  5. package/build/components/alignment-control/ui.js.map +1 -1
  6. package/build/components/autocomplete/index.js +2 -7
  7. package/build/components/autocomplete/index.js.map +1 -1
  8. package/build/components/block-actions/index.js +9 -0
  9. package/build/components/block-actions/index.js.map +1 -1
  10. package/build/components/block-alignment-matrix-control/index.js +2 -2
  11. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  12. package/build/components/block-card/index.js +2 -4
  13. package/build/components/block-card/index.js.map +1 -1
  14. package/build/components/block-edit/index.js +8 -0
  15. package/build/components/block-edit/index.js.map +1 -1
  16. package/build/components/block-inspector/index.js +18 -15
  17. package/build/components/block-inspector/index.js.map +1 -1
  18. package/build/components/block-list/use-in-between-inserter.js +5 -0
  19. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  20. package/build/components/block-lock/modal.js +0 -1
  21. package/build/components/block-lock/modal.js.map +1 -1
  22. package/build/components/block-mover/mover-description.js +2 -2
  23. package/build/components/block-mover/mover-description.js.map +1 -1
  24. package/build/components/block-navigation/dropdown.js +3 -1
  25. package/build/components/block-navigation/dropdown.js.map +1 -1
  26. package/build/components/block-pattern-setup/index.js +1 -1
  27. package/build/components/block-pattern-setup/index.js.map +1 -1
  28. package/build/components/block-pattern-setup/use-patterns-setup.js +2 -2
  29. package/build/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  30. package/build/components/block-patterns-list/index.js +31 -3
  31. package/build/components/block-patterns-list/index.js.map +1 -1
  32. package/build/components/block-preview/auto.js +9 -14
  33. package/build/components/block-preview/auto.js.map +1 -1
  34. package/build/components/block-preview/index.js +32 -8
  35. package/build/components/block-preview/index.js.map +1 -1
  36. package/build/components/block-selection-clearer/index.js +1 -1
  37. package/build/components/block-selection-clearer/index.js.map +1 -1
  38. package/build/components/block-settings/container.native.js +7 -33
  39. package/build/components/block-settings/container.native.js.map +1 -1
  40. package/build/components/block-settings-menu/block-settings-dropdown.js +12 -3
  41. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  42. package/build/components/block-settings-menu-controls/index.js +2 -8
  43. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  44. package/build/components/block-styles/index.js +3 -1
  45. package/build/components/block-styles/index.js.map +1 -1
  46. package/build/components/block-switcher/utils.js +1 -1
  47. package/build/components/block-switcher/utils.js.map +1 -1
  48. package/build/components/block-tools/selected-block-popover.js +55 -47
  49. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  50. package/build/components/block-tools/use-block-toolbar-popover-props.js +43 -10
  51. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  52. package/build/components/block-vertical-alignment-control/icons.js +15 -1
  53. package/build/components/block-vertical-alignment-control/icons.js.map +1 -1
  54. package/build/components/block-vertical-alignment-control/ui.js +9 -4
  55. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  56. package/build/components/color-style-selector/index.js +3 -1
  57. package/build/components/color-style-selector/index.js.map +1 -1
  58. package/build/components/date-format-picker/index.js +3 -4
  59. package/build/components/date-format-picker/index.js.map +1 -1
  60. package/build/components/default-style-picker/index.js +1 -0
  61. package/build/components/default-style-picker/index.js.map +1 -1
  62. package/build/components/font-family/index.js +1 -7
  63. package/build/components/font-family/index.js.map +1 -1
  64. package/build/components/font-sizes/fluid-utils.js +1 -1
  65. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  66. package/build/components/font-sizes/utils.js +1 -1
  67. package/build/components/font-sizes/utils.js.map +1 -1
  68. package/build/components/font-sizes/with-font-sizes.js +5 -8
  69. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  70. package/build/components/global-styles/context.js +22 -0
  71. package/build/components/global-styles/context.js.map +1 -0
  72. package/build/components/global-styles/hooks.js +142 -0
  73. package/build/components/global-styles/hooks.js.map +1 -0
  74. package/build/components/global-styles/index.js +42 -0
  75. package/build/components/global-styles/index.js.map +1 -0
  76. package/build/components/global-styles/typography-utils.js +92 -0
  77. package/build/components/global-styles/typography-utils.js.map +1 -0
  78. package/build/components/global-styles/use-global-styles-output.js +974 -0
  79. package/build/components/global-styles/use-global-styles-output.js.map +1 -0
  80. package/build/components/global-styles/utils.js +340 -0
  81. package/build/components/global-styles/utils.js.map +1 -0
  82. package/build/components/height-control/index.js +13 -1
  83. package/build/components/height-control/index.js.map +1 -1
  84. package/build/components/iframe/index.js +37 -8
  85. package/build/components/iframe/index.js.map +1 -1
  86. package/build/components/iframe/use-compatibility-styles.js +6 -1
  87. package/build/components/iframe/use-compatibility-styles.js.map +1 -1
  88. package/build/components/image-editor/constants.js +1 -1
  89. package/build/components/image-editor/constants.js.map +1 -1
  90. package/build/components/image-editor/context.js +1 -2
  91. package/build/components/image-editor/context.js.map +1 -1
  92. package/build/components/image-editor/cropper.js +3 -1
  93. package/build/components/image-editor/cropper.js.map +1 -1
  94. package/build/components/image-editor/index.js +13 -9
  95. package/build/components/image-editor/index.js.map +1 -1
  96. package/build/components/image-editor/use-transform-image.js +11 -35
  97. package/build/components/image-editor/use-transform-image.js.map +1 -1
  98. package/build/components/image-size-control/index.js +2 -7
  99. package/build/components/image-size-control/index.js.map +1 -1
  100. package/build/components/index.js +8 -24
  101. package/build/components/index.js.map +1 -1
  102. package/build/components/inner-blocks/index.js +22 -32
  103. package/build/components/inner-blocks/index.js.map +1 -1
  104. package/build/components/inner-blocks/index.native.js +8 -23
  105. package/build/components/inner-blocks/index.native.js.map +1 -1
  106. package/build/components/inner-blocks/use-block-context.js +53 -0
  107. package/build/components/inner-blocks/use-block-context.js.map +1 -0
  108. package/build/components/inserter/block-patterns-explorer/explorer.js +0 -1
  109. package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  110. package/build/components/inserter/block-patterns-tab.js +11 -5
  111. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  112. package/build/components/inserter/block-types-tab.js +2 -2
  113. package/build/components/inserter/block-types-tab.js.map +1 -1
  114. package/build/components/inserter/hooks/use-patterns-state.js +1 -7
  115. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  116. package/build/components/inserter/index.js +8 -6
  117. package/build/components/inserter/index.js.map +1 -1
  118. package/build/components/inserter/media-tab/hooks.js +142 -56
  119. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  120. package/build/components/inserter/media-tab/media-list.js +74 -21
  121. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  122. package/build/components/inserter/media-tab/media-panel.js +11 -13
  123. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  124. package/build/components/inserter/media-tab/media-tab.js +6 -3
  125. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  126. package/build/components/inserter/media-tab/utils.js +26 -15
  127. package/build/components/inserter/media-tab/utils.js.map +1 -1
  128. package/build/components/inserter/menu.js +12 -5
  129. package/build/components/inserter/menu.js.map +1 -1
  130. package/build/components/inserter/preview-panel.js +5 -3
  131. package/build/components/inserter/preview-panel.js.map +1 -1
  132. package/build/components/inserter/search-results.js +2 -7
  133. package/build/components/inserter/search-results.js.map +1 -1
  134. package/build/components/inserter-list-item/index.js +1 -9
  135. package/build/components/inserter-list-item/index.js.map +1 -1
  136. package/build/components/inspector-controls/fill.js +15 -2
  137. package/build/components/inspector-controls/fill.js.map +1 -1
  138. package/build/components/inspector-controls/fill.native.js +14 -1
  139. package/build/components/inspector-controls/fill.native.js.map +1 -1
  140. package/build/components/inspector-controls/groups.js +7 -1
  141. package/build/components/inspector-controls/groups.js.map +1 -1
  142. package/build/components/inspector-controls/index.js +2 -2
  143. package/build/components/inspector-controls/index.js.map +1 -1
  144. package/build/components/inspector-controls/slot.js +14 -1
  145. package/build/components/inspector-controls/slot.js.map +1 -1
  146. package/build/components/inspector-controls/slot.native.js +14 -1
  147. package/build/components/inspector-controls/slot.native.js.map +1 -1
  148. package/build/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
  149. package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
  150. package/build/components/inspector-controls-tabs/index.js +2 -2
  151. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  152. package/build/components/inspector-controls-tabs/position-controls-panel.js +46 -0
  153. package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -0
  154. package/build/components/inspector-controls-tabs/settings-tab.js +3 -1
  155. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  156. package/build/components/inspector-controls-tabs/styles-tab.js +6 -4
  157. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  158. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +20 -22
  159. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  160. package/build/components/justify-content-control/ui.js +8 -1
  161. package/build/components/justify-content-control/ui.js.map +1 -1
  162. package/build/components/link-control/index.js +45 -17
  163. package/build/components/link-control/index.js.map +1 -1
  164. package/build/components/link-control/search-input.js +1 -0
  165. package/build/components/link-control/search-input.js.map +1 -1
  166. package/build/components/list-view/block.js +1 -1
  167. package/build/components/list-view/block.js.map +1 -1
  168. package/build/components/list-view/use-list-view-drop-zone.js +1 -1
  169. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  170. package/build/components/media-upload/index.native.js +4 -1
  171. package/build/components/media-upload/index.native.js.map +1 -1
  172. package/build/components/off-canvas-editor/appender.js +49 -38
  173. package/build/components/off-canvas-editor/appender.js.map +1 -1
  174. package/build/components/off-canvas-editor/block-contents.js +38 -5
  175. package/build/components/off-canvas-editor/block-contents.js.map +1 -1
  176. package/build/components/off-canvas-editor/block-select-button.js +10 -4
  177. package/build/components/off-canvas-editor/block-select-button.js.map +1 -1
  178. package/build/components/off-canvas-editor/block.js +13 -52
  179. package/build/components/off-canvas-editor/block.js.map +1 -1
  180. package/build/components/off-canvas-editor/branch.js +25 -10
  181. package/build/components/off-canvas-editor/branch.js.map +1 -1
  182. package/build/components/off-canvas-editor/index.js +15 -17
  183. package/build/components/off-canvas-editor/index.js.map +1 -1
  184. package/build/components/off-canvas-editor/link-ui.js +2 -2
  185. package/build/components/off-canvas-editor/link-ui.js.map +1 -1
  186. package/build/components/off-canvas-editor/use-list-view-drop-zone.js +1 -1
  187. package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -1
  188. package/build/components/provider/index.js +22 -8
  189. package/build/components/provider/index.js.map +1 -1
  190. package/build/components/provider/index.native.js +5 -6
  191. package/build/components/provider/index.native.js.map +1 -1
  192. package/build/components/rich-text/use-before-input-rules.js +11 -3
  193. package/build/components/rich-text/use-before-input-rules.js.map +1 -1
  194. package/build/components/rich-text/use-enter.js +4 -5
  195. package/build/components/rich-text/use-enter.js.map +1 -1
  196. package/build/components/rich-text/utils.js +1 -1
  197. package/build/components/rich-text/utils.js.map +1 -1
  198. package/build/components/spacing-sizes-control/utils.js +2 -8
  199. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  200. package/build/components/tool-selector/index.js +3 -1
  201. package/build/components/tool-selector/index.js.map +1 -1
  202. package/build/components/url-input/button.js +1 -0
  203. package/build/components/url-input/button.js.map +1 -1
  204. package/build/components/url-input/index.js +15 -1
  205. package/build/components/url-input/index.js.map +1 -1
  206. package/build/components/url-popover/image-url-input-ui.js +7 -8
  207. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  208. package/build/components/url-popover/link-editor.js +1 -0
  209. package/build/components/url-popover/link-editor.js.map +1 -1
  210. package/build/components/use-block-display-information/index.js +1 -1
  211. package/build/components/use-block-display-information/index.js.map +1 -1
  212. package/build/components/use-paste-styles/index.js +188 -0
  213. package/build/components/use-paste-styles/index.js.map +1 -0
  214. package/build/components/writing-flow/use-arrow-nav.js +22 -29
  215. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  216. package/build/experiments.js +45 -0
  217. package/build/experiments.js.map +1 -0
  218. package/build/experiments.native.js +40 -0
  219. package/build/experiments.native.js.map +1 -0
  220. package/build/hooks/anchor.js +2 -1
  221. package/build/hooks/anchor.js.map +1 -1
  222. package/build/hooks/border.js +1 -1
  223. package/build/hooks/border.js.map +1 -1
  224. package/build/hooks/child-layout.js +5 -1
  225. package/build/hooks/child-layout.js.map +1 -1
  226. package/build/hooks/color-panel.js +1 -1
  227. package/build/hooks/color-panel.js.map +1 -1
  228. package/build/hooks/color.js +3 -3
  229. package/build/hooks/color.js.map +1 -1
  230. package/build/hooks/custom-class-name.js +2 -1
  231. package/build/hooks/custom-class-name.js.map +1 -1
  232. package/build/hooks/dimensions.js +7 -5
  233. package/build/hooks/dimensions.js.map +1 -1
  234. package/build/hooks/index.js +2 -0
  235. package/build/hooks/index.js.map +1 -1
  236. package/build/hooks/margin.js +1 -0
  237. package/build/hooks/margin.js.map +1 -1
  238. package/build/hooks/metadata.js +1 -1
  239. package/build/hooks/metadata.js.map +1 -1
  240. package/build/hooks/padding.js +1 -0
  241. package/build/hooks/padding.js.map +1 -1
  242. package/build/hooks/position.js +395 -0
  243. package/build/hooks/position.js.map +1 -0
  244. package/build/hooks/supports.js +328 -0
  245. package/build/hooks/supports.js.map +1 -0
  246. package/build/hooks/typography.js +1 -1
  247. package/build/hooks/typography.js.map +1 -1
  248. package/build/hooks/use-color-props.js +3 -3
  249. package/build/hooks/use-color-props.js.map +1 -1
  250. package/build/hooks/utils.js +69 -3
  251. package/build/hooks/utils.js.map +1 -1
  252. package/build/index.js +10 -1
  253. package/build/index.js.map +1 -1
  254. package/build/layouts/constrained.js +3 -0
  255. package/build/layouts/constrained.js.map +1 -1
  256. package/build/layouts/flex.js +59 -9
  257. package/build/layouts/flex.js.map +1 -1
  258. package/build/layouts/flow.js +0 -18
  259. package/build/layouts/flow.js.map +1 -1
  260. package/build/store/actions.js +3 -30
  261. package/build/store/actions.js.map +1 -1
  262. package/build/store/defaults.js +5 -2
  263. package/build/store/defaults.js.map +1 -1
  264. package/build/store/index.js +11 -2
  265. package/build/store/index.js.map +1 -1
  266. package/build/store/private-actions.js +78 -0
  267. package/build/store/private-actions.js.map +1 -0
  268. package/build/store/private-selectors.js +18 -0
  269. package/build/store/private-selectors.js.map +1 -0
  270. package/build/store/reducer.js +7 -3
  271. package/build/store/reducer.js.map +1 -1
  272. package/build/store/selectors.js +68 -40
  273. package/build/store/selectors.js.map +1 -1
  274. package/build/utils/block-variation-transforms.js +1 -1
  275. package/build/utils/block-variation-transforms.js.map +1 -1
  276. package/build/utils/parse-css-unit-to-px.js +1 -1
  277. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  278. package/build/utils/transform-styles/index.js +1 -7
  279. package/build/utils/transform-styles/index.js.map +1 -1
  280. package/build-module/components/alignment-control/ui.js +1 -1
  281. package/build-module/components/alignment-control/ui.js.map +1 -1
  282. package/build-module/components/autocomplete/index.js +2 -6
  283. package/build-module/components/autocomplete/index.js.map +1 -1
  284. package/build-module/components/block-actions/index.js +6 -0
  285. package/build-module/components/block-actions/index.js.map +1 -1
  286. package/build-module/components/block-alignment-matrix-control/index.js +2 -2
  287. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  288. package/build-module/components/block-card/index.js +2 -4
  289. package/build-module/components/block-card/index.js.map +1 -1
  290. package/build-module/components/block-edit/index.js +7 -0
  291. package/build-module/components/block-edit/index.js.map +1 -1
  292. package/build-module/components/block-inspector/index.js +17 -15
  293. package/build-module/components/block-inspector/index.js.map +1 -1
  294. package/build-module/components/block-list/use-in-between-inserter.js +5 -0
  295. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  296. package/build-module/components/block-lock/modal.js +0 -1
  297. package/build-module/components/block-lock/modal.js.map +1 -1
  298. package/build-module/components/block-mover/mover-description.js +2 -2
  299. package/build-module/components/block-mover/mover-description.js.map +1 -1
  300. package/build-module/components/block-navigation/dropdown.js +3 -1
  301. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  302. package/build-module/components/block-pattern-setup/index.js +1 -1
  303. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  304. package/build-module/components/block-pattern-setup/use-patterns-setup.js +2 -2
  305. package/build-module/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  306. package/build-module/components/block-patterns-list/index.js +32 -3
  307. package/build-module/components/block-patterns-list/index.js.map +1 -1
  308. package/build-module/components/block-preview/auto.js +9 -14
  309. package/build-module/components/block-preview/auto.js.map +1 -1
  310. package/build-module/components/block-preview/index.js +31 -8
  311. package/build-module/components/block-preview/index.js.map +1 -1
  312. package/build-module/components/block-selection-clearer/index.js +1 -1
  313. package/build-module/components/block-selection-clearer/index.js.map +1 -1
  314. package/build-module/components/block-settings/container.native.js +6 -30
  315. package/build-module/components/block-settings/container.native.js.map +1 -1
  316. package/build-module/components/block-settings-menu/block-settings-dropdown.js +12 -3
  317. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  318. package/build-module/components/block-settings-menu-controls/index.js +2 -7
  319. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  320. package/build-module/components/block-styles/index.js +2 -1
  321. package/build-module/components/block-styles/index.js.map +1 -1
  322. package/build-module/components/block-switcher/utils.js +1 -1
  323. package/build-module/components/block-switcher/utils.js.map +1 -1
  324. package/build-module/components/block-tools/selected-block-popover.js +55 -48
  325. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  326. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +42 -11
  327. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  328. package/build-module/components/block-vertical-alignment-control/icons.js +12 -0
  329. package/build-module/components/block-vertical-alignment-control/icons.js.map +1 -1
  330. package/build-module/components/block-vertical-alignment-control/ui.js +10 -5
  331. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  332. package/build-module/components/color-style-selector/index.js +3 -1
  333. package/build-module/components/color-style-selector/index.js.map +1 -1
  334. package/build-module/components/date-format-picker/index.js +4 -5
  335. package/build-module/components/date-format-picker/index.js.map +1 -1
  336. package/build-module/components/default-style-picker/index.js +1 -0
  337. package/build-module/components/default-style-picker/index.js.map +1 -1
  338. package/build-module/components/font-family/index.js +1 -6
  339. package/build-module/components/font-family/index.js.map +1 -1
  340. package/build-module/components/font-sizes/fluid-utils.js +1 -1
  341. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  342. package/build-module/components/font-sizes/utils.js +1 -1
  343. package/build-module/components/font-sizes/utils.js.map +1 -1
  344. package/build-module/components/font-sizes/with-font-sizes.js +5 -7
  345. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  346. package/build-module/components/global-styles/context.js +12 -0
  347. package/build-module/components/global-styles/context.js.map +1 -0
  348. package/build-module/components/global-styles/hooks.js +121 -0
  349. package/build-module/components/global-styles/hooks.js.map +1 -0
  350. package/build-module/components/global-styles/index.js +4 -0
  351. package/build-module/components/global-styles/index.js.map +1 -0
  352. package/build-module/components/global-styles/typography-utils.js +84 -0
  353. package/build-module/components/global-styles/typography-utils.js.map +1 -0
  354. package/build-module/components/global-styles/use-global-styles-output.js +930 -0
  355. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -0
  356. package/build-module/components/global-styles/utils.js +321 -0
  357. package/build-module/components/global-styles/utils.js.map +1 -0
  358. package/build-module/components/height-control/index.js +14 -1
  359. package/build-module/components/height-control/index.js.map +1 -1
  360. package/build-module/components/iframe/index.js +36 -9
  361. package/build-module/components/iframe/index.js.map +1 -1
  362. package/build-module/components/iframe/use-compatibility-styles.js +6 -1
  363. package/build-module/components/iframe/use-compatibility-styles.js.map +1 -1
  364. package/build-module/components/image-editor/constants.js +1 -1
  365. package/build-module/components/image-editor/constants.js.map +1 -1
  366. package/build-module/components/image-editor/context.js +1 -2
  367. package/build-module/components/image-editor/context.js.map +1 -1
  368. package/build-module/components/image-editor/cropper.js +3 -1
  369. package/build-module/components/image-editor/cropper.js.map +1 -1
  370. package/build-module/components/image-editor/index.js +13 -3
  371. package/build-module/components/image-editor/index.js.map +1 -1
  372. package/build-module/components/image-editor/use-transform-image.js +12 -37
  373. package/build-module/components/image-editor/use-transform-image.js.map +1 -1
  374. package/build-module/components/image-size-control/index.js +2 -6
  375. package/build-module/components/image-size-control/index.js.map +1 -1
  376. package/build-module/components/index.js +2 -3
  377. package/build-module/components/index.js.map +1 -1
  378. package/build-module/components/inner-blocks/index.js +21 -32
  379. package/build-module/components/inner-blocks/index.js.map +1 -1
  380. package/build-module/components/inner-blocks/index.native.js +9 -22
  381. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  382. package/build-module/components/inner-blocks/use-block-context.js +43 -0
  383. package/build-module/components/inner-blocks/use-block-context.js.map +1 -0
  384. package/build-module/components/inserter/block-patterns-explorer/explorer.js +0 -1
  385. package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  386. package/build-module/components/inserter/block-patterns-tab.js +11 -5
  387. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  388. package/build-module/components/inserter/block-types-tab.js +3 -3
  389. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  390. package/build-module/components/inserter/hooks/use-patterns-state.js +1 -6
  391. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  392. package/build-module/components/inserter/index.js +8 -6
  393. package/build-module/components/inserter/index.js.map +1 -1
  394. package/build-module/components/inserter/media-tab/hooks.js +145 -56
  395. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  396. package/build-module/components/inserter/media-tab/media-list.js +74 -24
  397. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  398. package/build-module/components/inserter/media-tab/media-panel.js +14 -14
  399. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  400. package/build-module/components/inserter/media-tab/media-tab.js +7 -4
  401. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  402. package/build-module/components/inserter/media-tab/utils.js +27 -15
  403. package/build-module/components/inserter/media-tab/utils.js.map +1 -1
  404. package/build-module/components/inserter/menu.js +12 -5
  405. package/build-module/components/inserter/menu.js.map +1 -1
  406. package/build-module/components/inserter/preview-panel.js +5 -3
  407. package/build-module/components/inserter/preview-panel.js.map +1 -1
  408. package/build-module/components/inserter/search-results.js +2 -6
  409. package/build-module/components/inserter/search-results.js.map +1 -1
  410. package/build-module/components/inserter-list-item/index.js +1 -9
  411. package/build-module/components/inserter-list-item/index.js.map +1 -1
  412. package/build-module/components/inspector-controls/fill.js +14 -2
  413. package/build-module/components/inspector-controls/fill.js.map +1 -1
  414. package/build-module/components/inspector-controls/fill.native.js +13 -1
  415. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  416. package/build-module/components/inspector-controls/groups.js +7 -1
  417. package/build-module/components/inspector-controls/groups.js.map +1 -1
  418. package/build-module/components/inspector-controls/index.js +2 -2
  419. package/build-module/components/inspector-controls/index.js.map +1 -1
  420. package/build-module/components/inspector-controls/slot.js +13 -1
  421. package/build-module/components/inspector-controls/slot.js.map +1 -1
  422. package/build-module/components/inspector-controls/slot.native.js +13 -1
  423. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  424. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
  425. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
  426. package/build-module/components/inspector-controls-tabs/index.js +2 -2
  427. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  428. package/build-module/components/inspector-controls-tabs/position-controls-panel.js +33 -0
  429. package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -0
  430. package/build-module/components/inspector-controls-tabs/settings-tab.js +2 -1
  431. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  432. package/build-module/components/inspector-controls-tabs/styles-tab.js +6 -4
  433. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  434. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +20 -22
  435. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  436. package/build-module/components/justify-content-control/ui.js +9 -2
  437. package/build-module/components/justify-content-control/ui.js.map +1 -1
  438. package/build-module/components/link-control/index.js +45 -16
  439. package/build-module/components/link-control/index.js.map +1 -1
  440. package/build-module/components/link-control/search-input.js +1 -0
  441. package/build-module/components/link-control/search-input.js.map +1 -1
  442. package/build-module/components/list-view/block.js +1 -1
  443. package/build-module/components/list-view/block.js.map +1 -1
  444. package/build-module/components/list-view/use-list-view-drop-zone.js +1 -1
  445. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  446. package/build-module/components/media-upload/index.native.js +4 -1
  447. package/build-module/components/media-upload/index.native.js.map +1 -1
  448. package/build-module/components/off-canvas-editor/appender.js +46 -36
  449. package/build-module/components/off-canvas-editor/appender.js.map +1 -1
  450. package/build-module/components/off-canvas-editor/block-contents.js +37 -7
  451. package/build-module/components/off-canvas-editor/block-contents.js.map +1 -1
  452. package/build-module/components/off-canvas-editor/block-select-button.js +9 -4
  453. package/build-module/components/off-canvas-editor/block-select-button.js.map +1 -1
  454. package/build-module/components/off-canvas-editor/block.js +15 -52
  455. package/build-module/components/off-canvas-editor/block.js.map +1 -1
  456. package/build-module/components/off-canvas-editor/branch.js +23 -11
  457. package/build-module/components/off-canvas-editor/branch.js.map +1 -1
  458. package/build-module/components/off-canvas-editor/index.js +15 -16
  459. package/build-module/components/off-canvas-editor/index.js.map +1 -1
  460. package/build-module/components/off-canvas-editor/link-ui.js +2 -2
  461. package/build-module/components/off-canvas-editor/link-ui.js.map +1 -1
  462. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +1 -1
  463. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -1
  464. package/build-module/components/provider/index.js +17 -8
  465. package/build-module/components/provider/index.js.map +1 -1
  466. package/build-module/components/provider/index.native.js +4 -4
  467. package/build-module/components/provider/index.native.js.map +1 -1
  468. package/build-module/components/rich-text/use-before-input-rules.js +10 -2
  469. package/build-module/components/rich-text/use-before-input-rules.js.map +1 -1
  470. package/build-module/components/rich-text/use-enter.js +4 -5
  471. package/build-module/components/rich-text/use-enter.js.map +1 -1
  472. package/build-module/components/rich-text/utils.js +1 -1
  473. package/build-module/components/rich-text/utils.js.map +1 -1
  474. package/build-module/components/spacing-sizes-control/utils.js +2 -7
  475. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  476. package/build-module/components/tool-selector/index.js +3 -1
  477. package/build-module/components/tool-selector/index.js.map +1 -1
  478. package/build-module/components/url-input/button.js +1 -0
  479. package/build-module/components/url-input/button.js.map +1 -1
  480. package/build-module/components/url-input/index.js +14 -1
  481. package/build-module/components/url-input/index.js.map +1 -1
  482. package/build-module/components/url-popover/image-url-input-ui.js +8 -8
  483. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  484. package/build-module/components/url-popover/link-editor.js +1 -0
  485. package/build-module/components/url-popover/link-editor.js.map +1 -1
  486. package/build-module/components/use-block-display-information/index.js +1 -1
  487. package/build-module/components/use-block-display-information/index.js.map +1 -1
  488. package/build-module/components/use-paste-styles/index.js +174 -0
  489. package/build-module/components/use-paste-styles/index.js.map +1 -0
  490. package/build-module/components/writing-flow/use-arrow-nav.js +22 -29
  491. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  492. package/build-module/experiments.js +25 -0
  493. package/build-module/experiments.js.map +1 -0
  494. package/build-module/experiments.native.js +23 -0
  495. package/build-module/experiments.native.js.map +1 -0
  496. package/build-module/hooks/anchor.js +2 -1
  497. package/build-module/hooks/anchor.js.map +1 -1
  498. package/build-module/hooks/border.js +1 -1
  499. package/build-module/hooks/border.js.map +1 -1
  500. package/build-module/hooks/child-layout.js +5 -1
  501. package/build-module/hooks/child-layout.js.map +1 -1
  502. package/build-module/hooks/color-panel.js +1 -1
  503. package/build-module/hooks/color-panel.js.map +1 -1
  504. package/build-module/hooks/color.js +3 -3
  505. package/build-module/hooks/color.js.map +1 -1
  506. package/build-module/hooks/custom-class-name.js +2 -1
  507. package/build-module/hooks/custom-class-name.js.map +1 -1
  508. package/build-module/hooks/dimensions.js +6 -5
  509. package/build-module/hooks/dimensions.js.map +1 -1
  510. package/build-module/hooks/index.js +1 -0
  511. package/build-module/hooks/index.js.map +1 -1
  512. package/build-module/hooks/margin.js +1 -0
  513. package/build-module/hooks/margin.js.map +1 -1
  514. package/build-module/hooks/metadata.js +1 -1
  515. package/build-module/hooks/metadata.js.map +1 -1
  516. package/build-module/hooks/padding.js +1 -0
  517. package/build-module/hooks/padding.js.map +1 -1
  518. package/build-module/hooks/position.js +354 -0
  519. package/build-module/hooks/position.js.map +1 -0
  520. package/build-module/hooks/supports.js +257 -0
  521. package/build-module/hooks/supports.js.map +1 -0
  522. package/build-module/hooks/typography.js +1 -1
  523. package/build-module/hooks/typography.js.map +1 -1
  524. package/build-module/hooks/use-color-props.js +3 -3
  525. package/build-module/hooks/use-color-props.js.map +1 -1
  526. package/build-module/hooks/utils.js +70 -4
  527. package/build-module/hooks/utils.js.map +1 -1
  528. package/build-module/index.js +1 -0
  529. package/build-module/index.js.map +1 -1
  530. package/build-module/layouts/constrained.js +3 -0
  531. package/build-module/layouts/constrained.js.map +1 -1
  532. package/build-module/layouts/flex.js +60 -10
  533. package/build-module/layouts/flex.js.map +1 -1
  534. package/build-module/layouts/flow.js +0 -18
  535. package/build-module/layouts/flow.js.map +1 -1
  536. package/build-module/store/actions.js +2 -26
  537. package/build-module/store/actions.js.map +1 -1
  538. package/build-module/store/defaults.js +5 -2
  539. package/build-module/store/defaults.js.map +1 -1
  540. package/build-module/store/index.js +8 -2
  541. package/build-module/store/index.js.map +1 -1
  542. package/build-module/store/private-actions.js +66 -0
  543. package/build-module/store/private-actions.js.map +1 -0
  544. package/build-module/store/private-selectors.js +11 -0
  545. package/build-module/store/private-selectors.js.map +1 -0
  546. package/build-module/store/reducer.js +7 -3
  547. package/build-module/store/reducer.js.map +1 -1
  548. package/build-module/store/selectors.js +55 -30
  549. package/build-module/store/selectors.js.map +1 -1
  550. package/build-module/utils/block-variation-transforms.js +1 -1
  551. package/build-module/utils/block-variation-transforms.js.map +1 -1
  552. package/build-module/utils/parse-css-unit-to-px.js +1 -1
  553. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  554. package/build-module/utils/transform-styles/index.js +1 -6
  555. package/build-module/utils/transform-styles/index.js.map +1 -1
  556. package/build-style/content-rtl.css +340 -3
  557. package/build-style/content.css +340 -3
  558. package/build-style/style-rtl.css +125 -272
  559. package/build-style/style.css +125 -272
  560. package/package.json +30 -29
  561. package/src/components/alignment-control/test/__snapshots__/index.js.snap +3 -3
  562. package/src/components/alignment-control/test/index.js +5 -15
  563. package/src/components/alignment-control/ui.js +1 -1
  564. package/src/components/autocomplete/index.js +3 -6
  565. package/src/components/block-actions/index.js +5 -0
  566. package/src/components/block-alignment-control/test/index.js +3 -11
  567. package/src/components/block-alignment-matrix-control/index.js +1 -2
  568. package/src/components/block-card/index.js +1 -4
  569. package/src/components/block-content-overlay/content.scss +4 -4
  570. package/src/components/block-edit/index.js +15 -1
  571. package/src/components/block-icon/content.scss +31 -0
  572. package/src/components/block-inspector/index.js +15 -17
  573. package/src/components/block-list/use-in-between-inserter.js +5 -0
  574. package/src/components/block-lock/modal.js +0 -1
  575. package/src/components/block-mover/mover-description.js +2 -2
  576. package/src/components/block-mover/stories/index.js +3 -3
  577. package/src/components/block-navigation/dropdown.js +1 -1
  578. package/src/components/block-pattern-setup/index.js +1 -4
  579. package/src/components/block-pattern-setup/use-patterns-setup.js +2 -5
  580. package/src/components/block-patterns-list/index.js +29 -3
  581. package/src/components/block-preview/README.md +9 -9
  582. package/src/components/block-preview/auto.js +10 -14
  583. package/src/components/block-preview/content.scss +23 -0
  584. package/src/components/block-preview/index.js +40 -10
  585. package/src/components/block-preview/style.scss +0 -23
  586. package/src/components/block-selection-clearer/index.js +1 -1
  587. package/src/components/block-selection-clearer/test/index.js +6 -6
  588. package/src/components/block-settings/container.native.js +7 -26
  589. package/src/components/block-settings-menu/block-settings-dropdown.js +14 -2
  590. package/src/components/block-settings-menu-controls/index.js +2 -10
  591. package/src/components/block-styles/index.js +4 -1
  592. package/src/components/block-switcher/test/index.js +43 -44
  593. package/src/components/block-switcher/utils.js +1 -1
  594. package/src/components/block-tools/selected-block-popover.js +77 -80
  595. package/src/components/block-tools/style.scss +0 -1
  596. package/src/components/block-tools/use-block-toolbar-popover-props.js +68 -12
  597. package/src/components/block-variation-picker/{style.scss → content.scss} +0 -0
  598. package/src/components/block-vertical-alignment-control/icons.js +12 -0
  599. package/src/components/block-vertical-alignment-control/test/index.js +3 -11
  600. package/src/components/block-vertical-alignment-control/ui.js +16 -6
  601. package/src/components/button-block-appender/{style.scss → content.scss} +0 -0
  602. package/src/components/color-style-selector/index.js +1 -1
  603. package/src/components/colors/test/with-colors.js +2 -8
  604. package/src/components/date-format-picker/index.js +23 -24
  605. package/src/components/date-format-picker/style.scss +0 -6
  606. package/src/components/default-block-appender/content.scss +18 -0
  607. package/src/components/default-block-appender/test/index.js +2 -8
  608. package/src/components/default-style-picker/index.js +1 -0
  609. package/src/components/font-family/index.js +1 -6
  610. package/src/components/font-sizes/fluid-utils.js +1 -1
  611. package/src/components/font-sizes/utils.js +1 -1
  612. package/src/components/font-sizes/with-font-sizes.js +33 -33
  613. package/src/components/global-styles/README.md +77 -0
  614. package/src/components/global-styles/context.js +15 -0
  615. package/src/components/global-styles/hooks.js +145 -0
  616. package/src/components/global-styles/index.js +7 -0
  617. package/src/components/global-styles/test/typography-utils.js +393 -0
  618. package/src/components/global-styles/test/use-global-styles-output.js +814 -0
  619. package/src/components/global-styles/test/utils.js +206 -0
  620. package/src/components/global-styles/typography-utils.js +87 -0
  621. package/src/components/global-styles/use-global-styles-output.js +1088 -0
  622. package/src/components/global-styles/utils.js +373 -0
  623. package/src/components/height-control/README.md +55 -0
  624. package/src/components/height-control/index.js +13 -1
  625. package/src/components/iframe/index.js +52 -19
  626. package/src/components/iframe/use-compatibility-styles.js +6 -0
  627. package/src/components/image-editor/constants.js +1 -1
  628. package/src/components/image-editor/context.js +5 -9
  629. package/src/components/image-editor/cropper.js +3 -1
  630. package/src/components/image-editor/index.js +13 -4
  631. package/src/components/image-editor/use-transform-image.js +14 -55
  632. package/src/components/image-size-control/index.js +2 -6
  633. package/src/components/index.js +2 -6
  634. package/src/components/inner-blocks/index.js +29 -33
  635. package/src/components/inner-blocks/index.native.js +27 -47
  636. package/src/components/inner-blocks/use-block-context.js +47 -0
  637. package/src/components/inserter/block-patterns-explorer/explorer.js +0 -1
  638. package/src/components/inserter/block-patterns-tab.js +14 -4
  639. package/src/components/inserter/block-types-tab.js +3 -4
  640. package/src/components/inserter/hooks/use-patterns-state.js +1 -6
  641. package/src/components/inserter/index.js +46 -42
  642. package/src/components/inserter/media-tab/hooks.js +167 -65
  643. package/src/components/inserter/media-tab/media-list.js +94 -26
  644. package/src/components/inserter/media-tab/media-panel.js +9 -20
  645. package/src/components/inserter/media-tab/media-tab.js +12 -4
  646. package/src/components/inserter/media-tab/utils.js +20 -10
  647. package/src/components/inserter/menu.js +9 -4
  648. package/src/components/inserter/preview-panel.js +4 -2
  649. package/src/components/inserter/search-results.js +2 -6
  650. package/src/components/inserter/stories/index.js +9 -9
  651. package/src/components/inserter/style.scss +58 -11
  652. package/src/components/inserter/test/__snapshots__/index.native.js.snap +117 -0
  653. package/src/components/inserter/test/index.native.js +255 -1
  654. package/src/components/inserter-list-item/index.js +0 -7
  655. package/src/components/inspector-controls/README.md +3 -7
  656. package/src/components/inspector-controls/fill.js +15 -1
  657. package/src/components/inspector-controls/fill.native.js +14 -1
  658. package/src/components/inspector-controls/groups.js +5 -0
  659. package/src/components/inspector-controls/index.js +2 -6
  660. package/src/components/inspector-controls/slot.js +14 -1
  661. package/src/components/inspector-controls/slot.native.js +14 -1
  662. package/src/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
  663. package/src/components/inspector-controls-tabs/index.js +2 -4
  664. package/src/components/inspector-controls-tabs/position-controls-panel.js +37 -0
  665. package/src/components/inspector-controls-tabs/settings-tab.js +2 -0
  666. package/src/components/inspector-controls-tabs/style.scss +15 -0
  667. package/src/components/inspector-controls-tabs/styles-tab.js +5 -7
  668. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +24 -18
  669. package/src/components/justify-content-control/ui.js +9 -0
  670. package/src/components/link-control/index.js +59 -23
  671. package/src/components/link-control/search-input.js +1 -0
  672. package/src/components/link-control/style.scss +8 -24
  673. package/src/components/link-control/test/index.js +134 -5
  674. package/src/components/list-view/block.js +1 -1
  675. package/src/components/list-view/style.scss +13 -3
  676. package/src/components/list-view/use-list-view-drop-zone.js +1 -1
  677. package/src/components/media-replace-flow/test/index.js +4 -12
  678. package/src/components/media-upload/index.native.js +2 -2
  679. package/src/components/off-canvas-editor/README.md +2 -2
  680. package/src/components/off-canvas-editor/appender.js +82 -76
  681. package/src/components/off-canvas-editor/block-contents.js +84 -23
  682. package/src/components/off-canvas-editor/block-select-button.js +12 -1
  683. package/src/components/off-canvas-editor/block.js +31 -102
  684. package/src/components/off-canvas-editor/branch.js +32 -5
  685. package/src/components/off-canvas-editor/index.js +19 -24
  686. package/src/components/off-canvas-editor/link-ui.js +2 -2
  687. package/src/components/off-canvas-editor/style.scss +5 -1
  688. package/src/components/off-canvas-editor/use-list-view-drop-zone.js +1 -1
  689. package/src/components/provider/index.js +33 -11
  690. package/src/components/provider/index.native.js +4 -3
  691. package/src/components/provider/test/experimental-provider.js +94 -0
  692. package/src/components/provider/test/use-block-sync.js +10 -0
  693. package/src/components/responsive-block-control/test/index.js +1 -5
  694. package/src/components/rich-text/use-before-input-rules.js +10 -2
  695. package/src/components/rich-text/use-enter.js +4 -4
  696. package/src/components/rich-text/utils.js +1 -1
  697. package/src/components/spacing-sizes-control/utils.js +2 -7
  698. package/src/components/tool-selector/index.js +1 -1
  699. package/src/components/url-input/README.md +5 -0
  700. package/src/components/url-input/button.js +1 -0
  701. package/src/components/url-input/index.js +15 -1
  702. package/src/components/url-input/test/button.js +24 -24
  703. package/src/components/url-popover/image-url-input-ui.js +7 -8
  704. package/src/components/url-popover/link-editor.js +1 -0
  705. package/src/components/url-popover/style.scss +0 -10
  706. package/src/components/use-block-display-information/index.js +1 -1
  707. package/src/components/use-paste-styles/index.js +230 -0
  708. package/src/components/warning/{style.scss → content.scss} +0 -0
  709. package/src/components/warning/test/index.js +1 -5
  710. package/src/components/writing-flow/use-arrow-nav.js +20 -28
  711. package/src/content.scss +8 -0
  712. package/src/experiments.js +27 -0
  713. package/src/experiments.native.js +25 -0
  714. package/src/hooks/anchor.js +2 -1
  715. package/src/hooks/border.js +1 -1
  716. package/src/hooks/child-layout.js +6 -1
  717. package/src/hooks/color-panel.js +1 -1
  718. package/src/hooks/color.js +3 -3
  719. package/src/hooks/custom-class-name.js +2 -1
  720. package/src/hooks/dimensions.js +6 -6
  721. package/src/hooks/index.js +1 -0
  722. package/src/hooks/layout.scss +4 -0
  723. package/src/hooks/margin.js +1 -0
  724. package/src/hooks/metadata.js +1 -2
  725. package/src/hooks/padding.js +1 -0
  726. package/src/hooks/position.js +391 -0
  727. package/src/hooks/position.scss +18 -0
  728. package/src/hooks/supports.js +302 -0
  729. package/src/hooks/test/__snapshots__/align.native.js.snap +73 -0
  730. package/src/hooks/test/align.native.js +133 -0
  731. package/src/hooks/test/utils.js +104 -0
  732. package/src/hooks/typography.js +1 -1
  733. package/src/hooks/use-color-props.js +3 -3
  734. package/src/hooks/utils.js +68 -2
  735. package/src/index.js +1 -0
  736. package/src/layouts/constrained.js +3 -0
  737. package/src/layouts/flex.js +66 -14
  738. package/src/layouts/flow.js +0 -9
  739. package/src/store/actions.js +2 -26
  740. package/src/store/defaults.js +7 -2
  741. package/src/store/index.js +8 -2
  742. package/src/store/private-actions.js +65 -0
  743. package/src/store/private-selectors.js +10 -0
  744. package/src/store/reducer.js +8 -3
  745. package/src/store/selectors.js +108 -57
  746. package/src/store/test/actions.js +0 -18
  747. package/src/store/test/private-actions.js +22 -0
  748. package/src/store/test/private-selectors.js +24 -0
  749. package/src/store/test/reducer.js +45 -3
  750. package/src/store/test/selectors.js +64 -39
  751. package/src/style.scss +5 -6
  752. package/src/utils/block-variation-transforms.js +1 -1
  753. package/src/utils/parse-css-unit-to-px.js +3 -1
  754. package/src/utils/test/parse-css-unit-to-px.js +16 -24
  755. package/src/utils/transform-styles/index.js +1 -6
  756. package/build/components/inner-blocks/get-block-context.js +0 -45
  757. package/build/components/inner-blocks/get-block-context.js.map +0 -1
  758. package/build/components/off-canvas-editor/block-edit-button.js +0 -50
  759. package/build/components/off-canvas-editor/block-edit-button.js.map +0 -1
  760. package/build-module/components/inner-blocks/get-block-context.js +0 -37
  761. package/build-module/components/inner-blocks/get-block-context.js.map +0 -1
  762. package/build-module/components/off-canvas-editor/block-edit-button.js +0 -35
  763. package/build-module/components/off-canvas-editor/block-edit-button.js.map +0 -1
  764. package/src/components/inner-blocks/get-block-context.js +0 -39
  765. package/src/components/off-canvas-editor/block-edit-button.js +0 -27
@@ -6,11 +6,10 @@ import classnames from 'classnames';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { createBlock, hasBlockSupport } from '@wordpress/blocks';
9
+ import { hasBlockSupport } from '@wordpress/blocks';
10
10
  import {
11
11
  __experimentalTreeGridCell as TreeGridCell,
12
12
  __experimentalTreeGridItem as TreeGridItem,
13
- MenuItem,
14
13
  } from '@wordpress/components';
15
14
  import { useInstanceId } from '@wordpress/compose';
16
15
  import { moreVertical } from '@wordpress/icons';
@@ -34,7 +33,6 @@ import {
34
33
  } from '../block-mover/button';
35
34
  import ListViewBlockContents from './block-contents';
36
35
  import BlockSettingsDropdown from '../block-settings-menu/block-settings-dropdown';
37
- import BlockEditButton from './block-edit-button';
38
36
  import { useListViewContext } from './context';
39
37
  import { getBlockPositionDescription } from './utils';
40
38
  import { store as blockEditorStore } from '../../store';
@@ -56,7 +54,6 @@ function ListViewBlock( {
56
54
  isExpanded,
57
55
  selectedClientIds,
58
56
  preventAnnouncement,
59
- selectBlockInCanvas,
60
57
  } ) {
61
58
  const cellRef = useRef( null );
62
59
  const [ isHovered, setIsHovered ] = useState( false );
@@ -86,8 +83,7 @@ function ListViewBlock( {
86
83
  ( isSelected &&
87
84
  selectedClientIds[ selectedClientIds.length - 1 ] === clientId );
88
85
 
89
- const { insertBlock, replaceBlock, toggleBlockHighlight } =
90
- useDispatch( blockEditorStore );
86
+ const { toggleBlockHighlight } = useDispatch( blockEditorStore );
91
87
 
92
88
  const blockInformation = useBlockDisplayInformation( clientId );
93
89
  const block = useSelect(
@@ -128,7 +124,8 @@ function ListViewBlock( {
128
124
  [ selectBlock ]
129
125
  );
130
126
 
131
- const { isTreeGridMounted, expand, collapse } = useListViewContext();
127
+ const { isTreeGridMounted, expand, collapse, LeafMoreMenu } =
128
+ useListViewContext();
132
129
 
133
130
  const toggleExpanded = useCallback(
134
131
  ( event ) => {
@@ -187,15 +184,6 @@ function ListViewBlock( {
187
184
  )
188
185
  : __( 'Options' );
189
186
 
190
- const editAriaLabel = blockInformation
191
- ? sprintf(
192
- // translators: %s: The title of the block.
193
- __( 'Edit %s block' ),
194
- blockInformation.title
195
- )
196
- : __( 'Edit' );
197
-
198
- const isEditable = !! block && block.name !== 'core/page-list-item';
199
187
  const hasSiblings = siblingBlockCount > 0;
200
188
  const hasRenderedMovers = showBlockMovers && hasSiblings;
201
189
  const moverCellClassName = classnames(
@@ -208,16 +196,11 @@ function ListViewBlock( {
208
196
  { 'is-visible': isHovered || isFirstSelectedBlock }
209
197
  );
210
198
 
211
- const listViewBlockEditClassName = classnames(
212
- 'block-editor-list-view-block__menu-cell',
213
- { 'is-visible': isHovered || isFirstSelectedBlock }
214
- );
215
-
216
199
  let colSpan;
217
200
  if ( hasRenderedMovers ) {
218
- colSpan = 2;
201
+ colSpan = 1;
219
202
  } else if ( ! showBlockActions ) {
220
- colSpan = 3;
203
+ colSpan = 2;
221
204
  }
222
205
 
223
206
  const classes = classnames( {
@@ -237,6 +220,10 @@ function ListViewBlock( {
237
220
  ? selectedClientIds
238
221
  : [ clientId ];
239
222
 
223
+ const MoreMenuComponent = LeafMoreMenu
224
+ ? LeafMoreMenu
225
+ : BlockSettingsDropdown;
226
+
240
227
  return (
241
228
  <ListViewLeaf
242
229
  className={ classes }
@@ -266,13 +253,7 @@ function ListViewBlock( {
266
253
  <div className="block-editor-list-view-block__contents-container">
267
254
  <ListViewBlockContents
268
255
  block={ block }
269
- onClick={
270
- selectBlockInCanvas
271
- ? selectEditorBlock
272
- : ( event ) => {
273
- event.preventDefault();
274
- }
275
- }
256
+ onClick={ selectEditorBlock }
276
257
  onToggleExpanded={ toggleExpanded }
277
258
  isSelected={ isSelected }
278
259
  position={ position }
@@ -328,85 +309,33 @@ function ListViewBlock( {
328
309
 
329
310
  { showBlockActions && (
330
311
  <>
331
- { isEditable && (
332
- <TreeGridCell
333
- className={ listViewBlockEditClassName }
334
- aria-selected={
335
- !! isSelected || forceSelectionContentLock
336
- }
337
- >
338
- { ( props ) => (
339
- <BlockEditButton
340
- { ...props }
341
- label={ editAriaLabel }
342
- clientId={ clientId }
343
- />
344
- ) }
345
- </TreeGridCell>
346
- ) }
347
312
  <TreeGridCell
348
313
  className={ listViewBlockSettingsClassName }
349
314
  aria-selected={
350
315
  !! isSelected || forceSelectionContentLock
351
316
  }
352
- colSpan={ isEditable ? 1 : 2 } // When an item is not editable then we don't output the cell for the edit button, so we need to adjust the colspan so that the HTML is valid.
353
317
  >
354
318
  { ( { ref, tabIndex, onFocus } ) => (
355
- <BlockSettingsDropdown
356
- clientIds={ dropdownClientIds }
357
- icon={ moreVertical }
358
- label={ settingsAriaLabel }
359
- toggleProps={ {
360
- ref,
361
- className:
362
- 'block-editor-list-view-block__menu',
363
- tabIndex,
364
- onFocus,
365
- } }
366
- disableOpenOnArrowDown
367
- __experimentalSelectBlock={ updateSelection }
368
- >
369
- { ( { onClose } ) => (
370
- <MenuItem
371
- onClick={ () => {
372
- const newLink = createBlock(
373
- 'core/navigation-link'
374
- );
375
- if (
376
- block.name ===
377
- 'core/navigation-submenu'
378
- ) {
379
- const updateSelectionOnInsert = false;
380
- insertBlock(
381
- newLink,
382
- block.innerBlocks.length,
383
- clientId,
384
- updateSelectionOnInsert
385
- );
386
- } else {
387
- // Convert to a submenu if the block currently isn't one.
388
- const newSubmenu = createBlock(
389
- 'core/navigation-submenu',
390
- block.attributes,
391
- block.innerBlocks
392
- ? [
393
- ...block.innerBlocks,
394
- newLink,
395
- ]
396
- : [ newLink ]
397
- );
398
- replaceBlock(
399
- clientId,
400
- newSubmenu
401
- );
402
- }
403
- onClose();
404
- } }
405
- >
406
- { __( 'Add submenu item' ) }
407
- </MenuItem>
408
- ) }
409
- </BlockSettingsDropdown>
319
+ <>
320
+ <MoreMenuComponent
321
+ clientIds={ dropdownClientIds }
322
+ block={ block }
323
+ clientId={ clientId }
324
+ icon={ moreVertical }
325
+ label={ settingsAriaLabel }
326
+ toggleProps={ {
327
+ ref,
328
+ className:
329
+ 'block-editor-list-view-block__menu',
330
+ tabIndex,
331
+ onFocus,
332
+ } }
333
+ disableOpenOnArrowDown
334
+ __experimentalSelectBlock={
335
+ updateSelection
336
+ }
337
+ />
338
+ </>
410
339
  ) }
411
340
  </TreeGridCell>
412
341
  </>
@@ -1,12 +1,18 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { memo } from '@wordpress/element';
4
+ import {
5
+ __experimentalTreeGridRow as TreeGridRow,
6
+ __experimentalTreeGridCell as TreeGridCell,
7
+ } from '@wordpress/components';
5
8
  import { AsyncModeProvider, useSelect } from '@wordpress/data';
9
+ import { memo } from '@wordpress/element';
6
10
 
7
11
  /**
8
12
  * Internal dependencies
9
13
  */
14
+
15
+ import { Appender } from './appender';
10
16
  import ListViewBlock from './block';
11
17
  import { useListViewContext } from './context';
12
18
  import { isClientIdSelected } from './utils';
@@ -91,7 +97,6 @@ function ListViewBranch( props ) {
91
97
  isExpanded,
92
98
  parentId,
93
99
  shouldShowInnerBlocks = true,
94
- selectBlockInCanvas,
95
100
  } = props;
96
101
 
97
102
  const isContentLocked = useSelect(
@@ -111,8 +116,14 @@ function ListViewBranch( props ) {
111
116
  return null;
112
117
  }
113
118
 
119
+ // Only show the appender at the first level.
120
+ const showAppender = level === 1;
121
+
114
122
  const filteredBlocks = blocks.filter( Boolean );
115
123
  const blockCount = filteredBlocks.length;
124
+
125
+ // The appender means an extra row in List View, so add 1 to the row count.
126
+ const rowCount = showAppender ? blockCount + 1 : blockCount;
116
127
  let nextPosition = listPosition;
117
128
 
118
129
  return (
@@ -167,14 +178,13 @@ function ListViewBranch( props ) {
167
178
  isDragged={ isDragged }
168
179
  level={ level }
169
180
  position={ position }
170
- rowCount={ blockCount }
181
+ rowCount={ rowCount }
171
182
  siblingBlockCount={ blockCount }
172
183
  showBlockMovers={ showBlockMovers }
173
184
  path={ updatedPath }
174
185
  isExpanded={ shouldExpand }
175
186
  listPosition={ nextPosition }
176
187
  selectedClientIds={ selectedClientIds }
177
- selectBlockInCanvas={ selectBlockInCanvas }
178
188
  />
179
189
  ) }
180
190
  { ! showBlock && (
@@ -195,12 +205,29 @@ function ListViewBranch( props ) {
195
205
  isBranchSelected={ isSelectedBranch }
196
206
  selectedClientIds={ selectedClientIds }
197
207
  isExpanded={ isExpanded }
198
- selectBlockInCanvas={ selectBlockInCanvas }
199
208
  />
200
209
  ) }
201
210
  </AsyncModeProvider>
202
211
  );
203
212
  } ) }
213
+ { showAppender && (
214
+ <TreeGridRow
215
+ level={ level }
216
+ setSize={ rowCount }
217
+ positionInSet={ rowCount }
218
+ isExpanded={ true }
219
+ >
220
+ <TreeGridCell>
221
+ { ( treeGridCellProps ) => (
222
+ <Appender
223
+ nestingLevel={ level }
224
+ blockCount={ blockCount }
225
+ { ...treeGridCellProps }
226
+ />
227
+ ) }
228
+ </TreeGridCell>
229
+ </TreeGridRow>
230
+ ) }
204
231
  </>
205
232
  );
206
233
  }
@@ -32,7 +32,6 @@ import useListViewClientIds from './use-list-view-client-ids';
32
32
  import useListViewDropZone from './use-list-view-drop-zone';
33
33
  import useListViewExpandSelectedItem from './use-list-view-expand-selected-item';
34
34
  import { store as blockEditorStore } from '../../store';
35
- import { Appender } from './appender';
36
35
 
37
36
  const expanded = ( state, action ) => {
38
37
  if ( Array.isArray( action.clientIds ) ) {
@@ -55,22 +54,16 @@ export const BLOCK_LIST_ITEM_HEIGHT = 36;
55
54
  /**
56
55
  * Show a hierarchical list of blocks.
57
56
  *
58
- * @param {Object} props Components props.
59
- * @param {string} props.id An HTML element id for the root element of ListView.
60
- * @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.
61
- * @param {boolean} props.showBlockMovers Flag to enable block movers
62
- * @param {boolean} props.isExpanded Flag to determine whether nested levels are expanded by default.
63
- * @param {boolean} props.selectBlockInCanvas Flag to determine whether the list view should be a block selection mechanism,.
64
- * @param {Object} ref Forwarded ref
57
+ * @param {Object} props Components props.
58
+ * @param {string} props.id An HTML element id for the root element of ListView.
59
+ * @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.
60
+ * @param {boolean} props.showBlockMovers Flag to enable block movers
61
+ * @param {boolean} props.isExpanded Flag to determine whether nested levels are expanded by default.
62
+ * @param {Object} props.LeafMoreMenu Optional more menu substitution.
63
+ * @param {Object} ref Forwarded ref
65
64
  */
66
- function __ExperimentalOffCanvasEditor(
67
- {
68
- id,
69
- blocks,
70
- showBlockMovers = false,
71
- isExpanded = false,
72
- selectBlockInCanvas = true,
73
- },
65
+ function OffCanvasEditor(
66
+ { id, blocks, showBlockMovers = false, isExpanded = false, LeafMoreMenu },
74
67
  ref
75
68
  ) {
76
69
  const { clientIdsTree, draggedClientIds, selectedClientIds } =
@@ -188,8 +181,16 @@ function __ExperimentalOffCanvasEditor(
188
181
  expandedState,
189
182
  expand,
190
183
  collapse,
184
+ LeafMoreMenu,
191
185
  } ),
192
- [ isMounted.current, draggedClientIds, expandedState, expand, collapse ]
186
+ [
187
+ isMounted.current,
188
+ draggedClientIds,
189
+ expandedState,
190
+ expand,
191
+ collapse,
192
+ LeafMoreMenu,
193
+ ]
193
194
  );
194
195
 
195
196
  return (
@@ -218,7 +219,6 @@ function __ExperimentalOffCanvasEditor(
218
219
  selectedClientIds={ selectedClientIds }
219
220
  isExpanded={ isExpanded }
220
221
  shouldShowInnerBlocks={ shouldShowInnerBlocks }
221
- selectBlockInCanvas={ selectBlockInCanvas }
222
222
  />
223
223
  <TreeGridRow
224
224
  level={ 1 }
@@ -226,11 +226,6 @@ function __ExperimentalOffCanvasEditor(
226
226
  positionInSet={ 1 }
227
227
  isExpanded={ true }
228
228
  >
229
- <TreeGridCell>
230
- { ( treeGridCellProps ) => (
231
- <Appender { ...treeGridCellProps } />
232
- ) }
233
- </TreeGridCell>
234
229
  { ! clientIdsTree.length && (
235
230
  <TreeGridCell withoutGridItem>
236
231
  <div className="offcanvas-editor-list-view-is-empty">
@@ -248,4 +243,4 @@ function __ExperimentalOffCanvasEditor(
248
243
  );
249
244
  }
250
245
 
251
- export default forwardRef( __ExperimentalOffCanvasEditor );
246
+ export default forwardRef( OffCanvasEditor );
@@ -99,10 +99,10 @@ function LinkControlTransforms( { clientId } ) {
99
99
  { __( 'Transform' ) }
100
100
  </h3>
101
101
  <div className="link-control-transform__items">
102
- { transforms.map( ( item, index ) => {
102
+ { transforms.map( ( item ) => {
103
103
  return (
104
104
  <Button
105
- key={ `transform-${ index }` }
105
+ key={ `transform-${ item.name }` }
106
106
  onClick={ () =>
107
107
  replaceBlock(
108
108
  clientId,
@@ -1,4 +1,4 @@
1
- .offcanvas-editor__appender .block-editor-inserter__toggle {
1
+ .offcanvas-editor-appender .block-editor-inserter__toggle {
2
2
  background-color: #1e1e1e;
3
3
  color: #fff;
4
4
  margin: $grid-unit-10 0 0 24px;
@@ -14,6 +14,10 @@
14
14
  }
15
15
  }
16
16
 
17
+ .offcanvas-editor-appender__description {
18
+ display: none;
19
+ }
20
+
17
21
  .offcanvas-editor-list-view-tree-wrapper {
18
22
  max-width: 100%;
19
23
  overflow-x: auto;
@@ -76,7 +76,7 @@ const ALLOWED_DROP_EDGES = [ 'top', 'bottom' ];
76
76
  * @param {WPListViewDropZoneBlocks} blocksData Data about the blocks in list view.
77
77
  * @param {WPPoint} position The point representing the cursor position when dragging.
78
78
  *
79
- * @return {WPListViewDropZoneTarget} An object containing data about the drop target.
79
+ * @return {WPListViewDropZoneTarget | undefined} An object containing data about the drop target.
80
80
  */
81
81
  function getListViewDropTarget( blocksData, position ) {
82
82
  let candidateEdge;
@@ -11,21 +11,43 @@ import withRegistryProvider from './with-registry-provider';
11
11
  import useBlockSync from './use-block-sync';
12
12
  import { store as blockEditorStore } from '../../store';
13
13
  import { BlockRefsProvider } from './block-refs-provider';
14
+ import { unlock } from '../../experiments';
14
15
 
15
16
  /** @typedef {import('@wordpress/data').WPDataRegistry} WPDataRegistry */
16
17
 
17
- function BlockEditorProvider( props ) {
18
- const { children, settings } = props;
18
+ export const ExperimentalBlockEditorProvider = withRegistryProvider(
19
+ ( props ) => {
20
+ const { children, settings, stripExperimentalSettings = false } = props;
19
21
 
20
- const { updateSettings } = useDispatch( blockEditorStore );
21
- useEffect( () => {
22
- updateSettings( settings );
23
- }, [ settings ] );
22
+ const { __experimentalUpdateSettings } = unlock(
23
+ useDispatch( blockEditorStore )
24
+ );
25
+ useEffect( () => {
26
+ __experimentalUpdateSettings(
27
+ {
28
+ ...settings,
29
+ __internalIsInitialized: true,
30
+ },
31
+ stripExperimentalSettings
32
+ );
33
+ }, [ settings ] );
24
34
 
25
- // Syncs the entity provider with changes in the block-editor store.
26
- useBlockSync( props );
35
+ // Syncs the entity provider with changes in the block-editor store.
36
+ useBlockSync( props );
27
37
 
28
- return <BlockRefsProvider>{ children }</BlockRefsProvider>;
29
- }
38
+ return <BlockRefsProvider>{ children }</BlockRefsProvider>;
39
+ }
40
+ );
30
41
 
31
- export default withRegistryProvider( BlockEditorProvider );
42
+ export const BlockEditorProvider = ( props ) => {
43
+ return (
44
+ <ExperimentalBlockEditorProvider
45
+ { ...props }
46
+ stripExperimentalSettings={ true }
47
+ >
48
+ { props.children }
49
+ </ExperimentalBlockEditorProvider>
50
+ );
51
+ };
52
+
53
+ export default BlockEditorProvider;
@@ -14,7 +14,7 @@ import { BlockRefsProvider } from './block-refs-provider';
14
14
 
15
15
  /** @typedef {import('@wordpress/data').WPDataRegistry} WPDataRegistry */
16
16
 
17
- function BlockEditorProvider( props ) {
17
+ const BlockEditorProvider = withRegistryProvider( function ( props ) {
18
18
  const { children, settings } = props;
19
19
 
20
20
  const { updateSettings } = useDispatch( blockEditorStore );
@@ -26,6 +26,7 @@ function BlockEditorProvider( props ) {
26
26
  useBlockSync( props );
27
27
 
28
28
  return <BlockRefsProvider>{ children }</BlockRefsProvider>;
29
- }
29
+ } );
30
30
 
31
- export default withRegistryProvider( BlockEditorProvider );
31
+ export default BlockEditorProvider;
32
+ export { BlockEditorProvider as ExperimentalBlockEditorProvider };
@@ -0,0 +1,94 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import { render } from '@testing-library/react';
5
+ /**
6
+ * WordPress dependencies
7
+ */
8
+ import { useRegistry } from '@wordpress/data';
9
+
10
+ /**
11
+ * Internal dependencies
12
+ */
13
+ import { BlockEditorProvider, ExperimentalBlockEditorProvider } from '../';
14
+ import { store as blockEditorStore } from '../../../store';
15
+
16
+ const HasEditorSetting = ( props ) => {
17
+ const registry = useRegistry();
18
+ if ( props.setRegistry ) {
19
+ props.setRegistry( registry );
20
+ }
21
+ return <p>Test.</p>;
22
+ };
23
+
24
+ describe( 'BlockEditorProvider', () => {
25
+ let registry;
26
+ const setRegistry = ( reg ) => {
27
+ registry = reg;
28
+ };
29
+ beforeEach( () => {
30
+ registry = undefined;
31
+ } );
32
+ it( 'should strip experimental settings', async () => {
33
+ render(
34
+ <BlockEditorProvider
35
+ settings={ {
36
+ inserterMediaCategories: true,
37
+ } }
38
+ >
39
+ <HasEditorSetting setRegistry={ setRegistry } />
40
+ </BlockEditorProvider>
41
+ );
42
+ const settings = registry.select( blockEditorStore ).getSettings();
43
+ expect( settings ).not.toHaveProperty( 'inserterMediaCategories' );
44
+ } );
45
+ it( 'should preserve stable settings', async () => {
46
+ render(
47
+ <BlockEditorProvider
48
+ settings={ {
49
+ stableSetting: 'https://example.com',
50
+ } }
51
+ >
52
+ <HasEditorSetting setRegistry={ setRegistry } />
53
+ </BlockEditorProvider>
54
+ );
55
+ const settings = registry.select( blockEditorStore ).getSettings();
56
+ expect( settings ).toHaveProperty( 'stableSetting' );
57
+ } );
58
+ } );
59
+
60
+ describe( 'ExperimentalBlockEditorProvider', () => {
61
+ let registry;
62
+ const setRegistry = ( reg ) => {
63
+ registry = reg;
64
+ };
65
+ beforeEach( () => {
66
+ registry = undefined;
67
+ } );
68
+ it( 'should preserve experimental settings', async () => {
69
+ render(
70
+ <ExperimentalBlockEditorProvider
71
+ settings={ {
72
+ inserterMediaCategories: true,
73
+ } }
74
+ >
75
+ <HasEditorSetting setRegistry={ setRegistry } />
76
+ </ExperimentalBlockEditorProvider>
77
+ );
78
+ const settings = registry.select( blockEditorStore ).getSettings();
79
+ expect( settings ).toHaveProperty( 'inserterMediaCategories' );
80
+ } );
81
+ it( 'should preserve stable settings', async () => {
82
+ render(
83
+ <ExperimentalBlockEditorProvider
84
+ settings={ {
85
+ stableSetting: 'https://example.com',
86
+ } }
87
+ >
88
+ <HasEditorSetting setRegistry={ setRegistry } />
89
+ </ExperimentalBlockEditorProvider>
90
+ );
91
+ const settings = registry.select( blockEditorStore ).getSettings();
92
+ expect( settings ).toHaveProperty( 'stableSetting' );
93
+ } );
94
+ } );
@@ -14,7 +14,17 @@ import { render } from '@testing-library/react';
14
14
  import useBlockSync from '../use-block-sync';
15
15
  import withRegistryProvider from '../with-registry-provider';
16
16
  import * as blockEditorActions from '../../../store/actions';
17
+
17
18
  import { store as blockEditorStore } from '../../../store';
19
+ jest.mock( '../../../store/actions', () => {
20
+ const actions = jest.requireActual( '../../../store/actions' );
21
+ return {
22
+ ...actions,
23
+ resetBlocks: jest.fn( actions.resetBlocks ),
24
+ replaceInnerBlocks: jest.fn( actions.replaceInnerBlocks ),
25
+ setHasControlledInnerBlocks: jest.fn( actions.replaceInnerBlocks ),
26
+ };
27
+ } );
18
28
 
19
29
  const TestWrapper = withRegistryProvider( ( props ) => {
20
30
  if ( props.setRegistry ) {
@@ -15,8 +15,6 @@ import { SelectControl } from '@wordpress/components';
15
15
  */
16
16
  import ResponsiveBlockControl from '../index';
17
17
 
18
- jest.useFakeTimers();
19
-
20
18
  const inputId = 'input-12345678';
21
19
 
22
20
  const sizeOptions = [
@@ -246,9 +244,7 @@ describe( 'Default and Responsive modes', () => {
246
244
  } );
247
245
 
248
246
  it( 'should switch between default and responsive modes when interacting with toggle control', async () => {
249
- const user = userEvent.setup( {
250
- advanceTimers: jest.advanceTimersByTime,
251
- } );
247
+ const user = userEvent.setup();
252
248
  const ResponsiveBlockControlConsumer = () => {
253
249
  const [ isResponsive, setIsResponsive ] = useState( false );
254
250
 
@@ -77,9 +77,17 @@ export function useBeforeInputRules( props ) {
77
77
  const { defaultView } = ownerDocument;
78
78
  const newEvent = new defaultView.InputEvent( 'input', init );
79
79
 
80
- // Dispatch an input event with the new data. This will trigger the
80
+ // Dispatch an `input` event with the new data. This will trigger the
81
81
  // input rules.
82
- event.target.dispatchEvent( newEvent );
82
+ // Postpone the `input` to the next event loop tick so that the dispatch
83
+ // doesn't happen synchronously in the middle of `beforeinput` dispatch.
84
+ // This is closer to how native `input` event would be timed, and also
85
+ // makes sure that the `input` event is dispatched only after the `onChange`
86
+ // call few lines above has fully updated the data store state and rerendered
87
+ // all affected components.
88
+ window.queueMicrotask( () => {
89
+ event.target.dispatchEvent( newEvent );
90
+ } );
83
91
  event.preventDefault();
84
92
  }
85
93
 
@@ -28,6 +28,10 @@ export function useEnter( props ) {
28
28
  return;
29
29
  }
30
30
 
31
+ if ( event.keyCode !== ENTER ) {
32
+ return;
33
+ }
34
+
31
35
  const {
32
36
  removeEditorOnlyFormats,
33
37
  value,
@@ -40,10 +44,6 @@ export function useEnter( props ) {
40
44
  onSplitAtEnd,
41
45
  } = propsRef.current;
42
46
 
43
- if ( event.keyCode !== ENTER ) {
44
- return;
45
- }
46
-
47
47
  event.preventDefault();
48
48
 
49
49
  const _value = { ...value };
@@ -23,7 +23,7 @@ export function addActiveFormats( value, activeFormats ) {
23
23
  *
24
24
  * @param {?(string|boolean)} multiline The multiline prop.
25
25
  *
26
- * @return {?string} The multiline tag.
26
+ * @return {string | undefined} The multiline tag.
27
27
  */
28
28
  export function getMultilineTag( multiline ) {
29
29
  if ( multiline !== true && multiline !== 'p' && multiline !== 'li' ) {