@wordpress/block-editor 10.5.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/build/autocompleters/block.js +2 -6
  3. package/build/autocompleters/block.js.map +1 -1
  4. package/build/autocompleters/link.js +2 -0
  5. package/build/autocompleters/link.js.map +1 -1
  6. package/build/components/block-card/index.js +51 -3
  7. package/build/components/block-card/index.js.map +1 -1
  8. package/build/components/block-draggable/index.native.js +46 -39
  9. package/build/components/block-draggable/index.native.js.map +1 -1
  10. package/build/components/block-edit/edit.js +4 -3
  11. package/build/components/block-edit/edit.js.map +1 -1
  12. package/build/components/block-edit/edit.native.js +4 -7
  13. package/build/components/block-edit/edit.native.js.map +1 -1
  14. package/build/components/block-inspector/index.js +35 -33
  15. package/build/components/block-inspector/index.js.map +1 -1
  16. package/build/components/block-list/block-list-context.native.js +5 -8
  17. package/build/components/block-list/block-list-context.native.js.map +1 -1
  18. package/build/components/block-list/block.js +55 -24
  19. package/build/components/block-list/block.js.map +1 -1
  20. package/build/components/block-list/block.native.js +61 -28
  21. package/build/components/block-list/block.native.js.map +1 -1
  22. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +12 -4
  23. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  24. package/build/components/block-pattern-setup/index.js +3 -2
  25. package/build/components/block-pattern-setup/index.js.map +1 -1
  26. package/build/components/block-patterns-list/index.js +33 -11
  27. package/build/components/block-patterns-list/index.js.map +1 -1
  28. package/build/components/block-preview/auto.js +9 -3
  29. package/build/components/block-preview/auto.js.map +1 -1
  30. package/build/components/block-preview/index.js +5 -9
  31. package/build/components/block-preview/index.js.map +1 -1
  32. package/build/components/block-settings-menu/block-settings-dropdown.js +5 -2
  33. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  34. package/build/components/block-toolbar/index.js +5 -1
  35. package/build/components/block-toolbar/index.js.map +1 -1
  36. package/build/components/block-tools/insertion-point.js +8 -49
  37. package/build/components/block-tools/insertion-point.js.map +1 -1
  38. package/build/components/block-variation-picker/index.js +1 -2
  39. package/build/components/block-variation-picker/index.js.map +1 -1
  40. package/build/components/height-control/index.js +115 -0
  41. package/build/components/height-control/index.js.map +1 -0
  42. package/build/components/iframe/index.js +11 -8
  43. package/build/components/iframe/index.js.map +1 -1
  44. package/build/components/image-editor/use-save-image.js +2 -0
  45. package/build/components/image-editor/use-save-image.js.map +1 -1
  46. package/build/components/image-editor/zoom-dropdown.js +1 -0
  47. package/build/components/image-editor/zoom-dropdown.js.map +1 -1
  48. package/build/components/index.js +9 -0
  49. package/build/components/index.js.map +1 -1
  50. package/build/components/inner-blocks/index.js +20 -6
  51. package/build/components/inner-blocks/index.js.map +1 -1
  52. package/build/components/inner-blocks/use-inner-block-template-sync.js +25 -10
  53. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  54. package/build/components/inserter/block-patterns-explorer/sidebar.js +1 -0
  55. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  56. package/build/components/inserter/block-patterns-tab.js +25 -46
  57. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  58. package/build/components/inserter/block-types-tab.js +3 -1
  59. package/build/components/inserter/block-types-tab.js.map +1 -1
  60. package/build/components/inserter/hooks/use-debounced-input.js +27 -0
  61. package/build/components/inserter/hooks/use-debounced-input.js.map +1 -0
  62. package/build/components/inserter/index.js +8 -3
  63. package/build/components/inserter/index.js.map +1 -1
  64. package/build/components/inserter/index.native.js +3 -4
  65. package/build/components/inserter/index.native.js.map +1 -1
  66. package/build/components/inserter/media-tab/hooks.js +103 -0
  67. package/build/components/inserter/media-tab/hooks.js.map +1 -0
  68. package/build/components/inserter/media-tab/index.js +32 -0
  69. package/build/components/inserter/media-tab/index.js.map +1 -0
  70. package/build/components/inserter/media-tab/media-list.js +100 -0
  71. package/build/components/inserter/media-tab/media-list.js.map +1 -0
  72. package/build/components/inserter/media-tab/media-panel.js +96 -0
  73. package/build/components/inserter/media-tab/media-panel.js.map +1 -0
  74. package/build/components/inserter/media-tab/media-tab.js +120 -0
  75. package/build/components/inserter/media-tab/media-tab.js.map +1 -0
  76. package/build/components/inserter/media-tab/utils.js +54 -0
  77. package/build/components/inserter/media-tab/utils.js.map +1 -0
  78. package/build/components/inserter/menu.js +35 -12
  79. package/build/components/inserter/menu.js.map +1 -1
  80. package/build/components/inserter/mobile-tab-navigation.js +70 -0
  81. package/build/components/inserter/mobile-tab-navigation.js.map +1 -0
  82. package/build/components/inserter/quick-inserter.js +1 -0
  83. package/build/components/inserter/quick-inserter.js.map +1 -1
  84. package/build/components/inserter/search-results.js +3 -1
  85. package/build/components/inserter/search-results.js.map +1 -1
  86. package/build/components/inserter/tabs.js +16 -2
  87. package/build/components/inserter/tabs.js.map +1 -1
  88. package/build/components/inserter-list-item/index.js +4 -1
  89. package/build/components/inserter-list-item/index.js.map +1 -1
  90. package/build/components/inspector-controls/groups.js +2 -0
  91. package/build/components/inspector-controls/groups.js.map +1 -1
  92. package/build/components/inspector-controls-tabs/advanced-controls-panel.js +46 -0
  93. package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -0
  94. package/build/components/inspector-controls-tabs/index.js +71 -0
  95. package/build/components/inspector-controls-tabs/index.js.map +1 -0
  96. package/build/components/inspector-controls-tabs/settings-tab.js +28 -0
  97. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -0
  98. package/build/components/inspector-controls-tabs/styles-tab.js +61 -0
  99. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -0
  100. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +97 -0
  101. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -0
  102. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +18 -0
  103. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -0
  104. package/build/components/inspector-controls-tabs/utils.js +37 -0
  105. package/build/components/inspector-controls-tabs/utils.js.map +1 -0
  106. package/build/components/link-control/index.js +1 -0
  107. package/build/components/link-control/index.js.map +1 -1
  108. package/build/components/link-control/search-input.js +0 -1
  109. package/build/components/link-control/search-input.js.map +1 -1
  110. package/build/components/link-control/use-internal-input-value.js +3 -3
  111. package/build/components/link-control/use-internal-input-value.js.map +1 -1
  112. package/build/components/list-view/block.js +5 -2
  113. package/build/components/list-view/block.js.map +1 -1
  114. package/build/components/list-view/branch.js +13 -12
  115. package/build/components/list-view/branch.js.map +1 -1
  116. package/build/components/media-upload/index.native.js +2 -3
  117. package/build/components/media-upload/index.native.js.map +1 -1
  118. package/build/components/off-canvas-editor/appender.js +104 -0
  119. package/build/components/off-canvas-editor/appender.js.map +1 -0
  120. package/build/components/off-canvas-editor/block-edit-button.js +50 -0
  121. package/build/components/off-canvas-editor/block-edit-button.js.map +1 -0
  122. package/build/components/off-canvas-editor/block.js +36 -4
  123. package/build/components/off-canvas-editor/block.js.map +1 -1
  124. package/build/components/off-canvas-editor/branch.js +3 -5
  125. package/build/components/off-canvas-editor/branch.js.map +1 -1
  126. package/build/components/off-canvas-editor/index.js +20 -11
  127. package/build/components/off-canvas-editor/index.js.map +1 -1
  128. package/build/components/off-canvas-editor/leaf.js +1 -1
  129. package/build/components/off-canvas-editor/leaf.js.map +1 -1
  130. package/build/components/off-canvas-editor/link-ui.js +185 -0
  131. package/build/components/off-canvas-editor/link-ui.js.map +1 -0
  132. package/build/components/off-canvas-editor/update-attributes.js +108 -0
  133. package/build/components/off-canvas-editor/update-attributes.js.map +1 -0
  134. package/build/components/rich-text/format-toolbar/index.js +8 -4
  135. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  136. package/build/components/rich-text/index.js +3 -3
  137. package/build/components/rich-text/index.js.map +1 -1
  138. package/build/components/rich-text/index.native.js +0 -2
  139. package/build/components/rich-text/index.native.js.map +1 -1
  140. package/build/components/rich-text/use-insert-replacement-text.js +43 -0
  141. package/build/components/rich-text/use-insert-replacement-text.js.map +1 -0
  142. package/build/components/rich-text/use-undo-automatic-change.js +9 -1
  143. package/build/components/rich-text/use-undo-automatic-change.js.map +1 -1
  144. package/build/components/rich-text/utils.js +1 -19
  145. package/build/components/rich-text/utils.js.map +1 -1
  146. package/build/components/spacing-sizes-control/spacing-input-control.js +12 -3
  147. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  148. package/build/components/ungroup-button/index.native.js +4 -2
  149. package/build/components/ungroup-button/index.native.js.map +1 -1
  150. package/build/components/url-input/index.js +46 -43
  151. package/build/components/url-input/index.js.map +1 -1
  152. package/build/components/use-block-display-information/index.js +8 -4
  153. package/build/components/use-block-display-information/index.js.map +1 -1
  154. package/build/components/use-setting/index.js +9 -1
  155. package/build/components/use-setting/index.js.map +1 -1
  156. package/build/hooks/child-layout.js +209 -0
  157. package/build/hooks/child-layout.js.map +1 -0
  158. package/build/hooks/content-lock-ui.js +1 -1
  159. package/build/hooks/content-lock-ui.js.map +1 -1
  160. package/build/hooks/dimensions.js +25 -7
  161. package/build/hooks/dimensions.js.map +1 -1
  162. package/build/hooks/layout.js +57 -1
  163. package/build/hooks/layout.js.map +1 -1
  164. package/build/hooks/min-height.js +4 -10
  165. package/build/hooks/min-height.js.map +1 -1
  166. package/build/store/reducer.js +393 -270
  167. package/build/store/reducer.js.map +1 -1
  168. package/build/store/selectors.js +57 -47
  169. package/build/store/selectors.js.map +1 -1
  170. package/build/utils/sorting.js +63 -0
  171. package/build/utils/sorting.js.map +1 -0
  172. package/build-module/autocompleters/block.js +2 -6
  173. package/build-module/autocompleters/block.js.map +1 -1
  174. package/build-module/autocompleters/link.js +2 -0
  175. package/build-module/autocompleters/link.js.map +1 -1
  176. package/build-module/components/block-card/index.js +45 -3
  177. package/build-module/components/block-card/index.js.map +1 -1
  178. package/build-module/components/block-draggable/index.native.js +40 -31
  179. package/build-module/components/block-draggable/index.native.js.map +1 -1
  180. package/build-module/components/block-edit/edit.js +4 -2
  181. package/build-module/components/block-edit/edit.js.map +1 -1
  182. package/build-module/components/block-edit/edit.native.js +4 -6
  183. package/build-module/components/block-edit/edit.native.js.map +1 -1
  184. package/build-module/components/block-inspector/index.js +32 -30
  185. package/build-module/components/block-inspector/index.js.map +1 -1
  186. package/build-module/components/block-list/block-list-context.native.js +5 -8
  187. package/build-module/components/block-list/block-list-context.native.js.map +1 -1
  188. package/build-module/components/block-list/block.js +55 -25
  189. package/build-module/components/block-list/block.js.map +1 -1
  190. package/build-module/components/block-list/block.native.js +61 -28
  191. package/build-module/components/block-list/block.native.js.map +1 -1
  192. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +13 -6
  193. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  194. package/build-module/components/block-pattern-setup/index.js +3 -2
  195. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  196. package/build-module/components/block-patterns-list/index.js +35 -13
  197. package/build-module/components/block-patterns-list/index.js.map +1 -1
  198. package/build-module/components/block-preview/auto.js +9 -3
  199. package/build-module/components/block-preview/auto.js.map +1 -1
  200. package/build-module/components/block-preview/index.js +5 -8
  201. package/build-module/components/block-preview/index.js.map +1 -1
  202. package/build-module/components/block-settings-menu/block-settings-dropdown.js +5 -2
  203. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  204. package/build-module/components/block-toolbar/index.js +6 -2
  205. package/build-module/components/block-toolbar/index.js.map +1 -1
  206. package/build-module/components/block-tools/insertion-point.js +8 -49
  207. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  208. package/build-module/components/block-variation-picker/index.js +1 -2
  209. package/build-module/components/block-variation-picker/index.js.map +1 -1
  210. package/build-module/components/height-control/index.js +103 -0
  211. package/build-module/components/height-control/index.js.map +1 -0
  212. package/build-module/components/iframe/index.js +11 -8
  213. package/build-module/components/iframe/index.js.map +1 -1
  214. package/build-module/components/image-editor/use-save-image.js +2 -0
  215. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  216. package/build-module/components/image-editor/zoom-dropdown.js +1 -0
  217. package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
  218. package/build-module/components/index.js +1 -0
  219. package/build-module/components/index.js.map +1 -1
  220. package/build-module/components/inner-blocks/index.js +22 -8
  221. package/build-module/components/inner-blocks/index.js.map +1 -1
  222. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +23 -10
  223. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  224. package/build-module/components/inserter/block-patterns-explorer/sidebar.js +1 -0
  225. package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  226. package/build-module/components/inserter/block-patterns-tab.js +27 -49
  227. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  228. package/build-module/components/inserter/block-types-tab.js +3 -2
  229. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  230. package/build-module/components/inserter/hooks/use-debounced-input.js +18 -0
  231. package/build-module/components/inserter/hooks/use-debounced-input.js.map +1 -0
  232. package/build-module/components/inserter/index.js +8 -3
  233. package/build-module/components/inserter/index.js.map +1 -1
  234. package/build-module/components/inserter/index.native.js +3 -5
  235. package/build-module/components/inserter/index.native.js.map +1 -1
  236. package/build-module/components/inserter/media-tab/hooks.js +89 -0
  237. package/build-module/components/inserter/media-tab/hooks.js.map +1 -0
  238. package/build-module/components/inserter/media-tab/index.js +4 -0
  239. package/build-module/components/inserter/media-tab/index.js.map +1 -0
  240. package/build-module/components/inserter/media-tab/media-list.js +86 -0
  241. package/build-module/components/inserter/media-tab/media-list.js.map +1 -0
  242. package/build-module/components/inserter/media-tab/media-panel.js +77 -0
  243. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -0
  244. package/build-module/components/inserter/media-tab/media-tab.js +100 -0
  245. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -0
  246. package/build-module/components/inserter/media-tab/utils.js +45 -0
  247. package/build-module/components/inserter/media-tab/utils.js.map +1 -0
  248. package/build-module/components/inserter/menu.js +33 -12
  249. package/build-module/components/inserter/menu.js.map +1 -1
  250. package/build-module/components/inserter/mobile-tab-navigation.js +61 -0
  251. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -0
  252. package/build-module/components/inserter/quick-inserter.js +1 -0
  253. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  254. package/build-module/components/inserter/search-results.js +3 -2
  255. package/build-module/components/inserter/search-results.js.map +1 -1
  256. package/build-module/components/inserter/tabs.js +15 -2
  257. package/build-module/components/inserter/tabs.js.map +1 -1
  258. package/build-module/components/inserter-list-item/index.js +5 -2
  259. package/build-module/components/inserter-list-item/index.js.map +1 -1
  260. package/build-module/components/inspector-controls/groups.js +2 -0
  261. package/build-module/components/inspector-controls/groups.js.map +1 -1
  262. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js +32 -0
  263. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -0
  264. package/build-module/components/inspector-controls-tabs/index.js +56 -0
  265. package/build-module/components/inspector-controls-tabs/index.js.map +1 -0
  266. package/build-module/components/inspector-controls-tabs/settings-tab.js +17 -0
  267. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -0
  268. package/build-module/components/inspector-controls-tabs/styles-tab.js +46 -0
  269. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -0
  270. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +81 -0
  271. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -0
  272. package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +8 -0
  273. package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -0
  274. package/build-module/components/inspector-controls-tabs/utils.js +26 -0
  275. package/build-module/components/inspector-controls-tabs/utils.js.map +1 -0
  276. package/build-module/components/link-control/index.js +1 -0
  277. package/build-module/components/link-control/index.js.map +1 -1
  278. package/build-module/components/link-control/search-input.js +0 -1
  279. package/build-module/components/link-control/search-input.js.map +1 -1
  280. package/build-module/components/link-control/use-internal-input-value.js +3 -3
  281. package/build-module/components/link-control/use-internal-input-value.js.map +1 -1
  282. package/build-module/components/list-view/block.js +5 -2
  283. package/build-module/components/list-view/block.js.map +1 -1
  284. package/build-module/components/list-view/branch.js +12 -11
  285. package/build-module/components/list-view/branch.js.map +1 -1
  286. package/build-module/components/media-upload/index.native.js +2 -4
  287. package/build-module/components/media-upload/index.native.js.map +1 -1
  288. package/build-module/components/off-canvas-editor/appender.js +89 -0
  289. package/build-module/components/off-canvas-editor/appender.js.map +1 -0
  290. package/build-module/components/off-canvas-editor/block-edit-button.js +35 -0
  291. package/build-module/components/off-canvas-editor/block-edit-button.js.map +1 -0
  292. package/build-module/components/off-canvas-editor/block.js +36 -6
  293. package/build-module/components/off-canvas-editor/block.js.map +1 -1
  294. package/build-module/components/off-canvas-editor/branch.js +3 -4
  295. package/build-module/components/off-canvas-editor/branch.js.map +1 -1
  296. package/build-module/components/off-canvas-editor/index.js +20 -12
  297. package/build-module/components/off-canvas-editor/index.js.map +1 -1
  298. package/build-module/components/off-canvas-editor/leaf.js +1 -1
  299. package/build-module/components/off-canvas-editor/leaf.js.map +1 -1
  300. package/build-module/components/off-canvas-editor/link-ui.js +165 -0
  301. package/build-module/components/off-canvas-editor/link-ui.js.map +1 -0
  302. package/build-module/components/off-canvas-editor/update-attributes.js +97 -0
  303. package/build-module/components/off-canvas-editor/update-attributes.js.map +1 -0
  304. package/build-module/components/rich-text/format-toolbar/index.js +6 -2
  305. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  306. package/build-module/components/rich-text/index.js +2 -3
  307. package/build-module/components/rich-text/index.js.map +1 -1
  308. package/build-module/components/rich-text/index.native.js +0 -2
  309. package/build-module/components/rich-text/index.native.js.map +1 -1
  310. package/build-module/components/rich-text/use-insert-replacement-text.js +33 -0
  311. package/build-module/components/rich-text/use-insert-replacement-text.js.map +1 -0
  312. package/build-module/components/rich-text/use-undo-automatic-change.js +9 -1
  313. package/build-module/components/rich-text/use-undo-automatic-change.js.map +1 -1
  314. package/build-module/components/rich-text/utils.js +1 -16
  315. package/build-module/components/rich-text/utils.js.map +1 -1
  316. package/build-module/components/spacing-sizes-control/spacing-input-control.js +12 -3
  317. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  318. package/build-module/components/ungroup-button/index.native.js +3 -2
  319. package/build-module/components/ungroup-button/index.native.js.map +1 -1
  320. package/build-module/components/url-input/index.js +46 -43
  321. package/build-module/components/url-input/index.js.map +1 -1
  322. package/build-module/components/use-block-display-information/index.js +9 -5
  323. package/build-module/components/use-block-display-information/index.js.map +1 -1
  324. package/build-module/components/use-setting/index.js +8 -1
  325. package/build-module/components/use-setting/index.js.map +1 -1
  326. package/build-module/hooks/child-layout.js +189 -0
  327. package/build-module/hooks/child-layout.js.map +1 -0
  328. package/build-module/hooks/content-lock-ui.js +1 -1
  329. package/build-module/hooks/content-lock-ui.js.map +1 -1
  330. package/build-module/hooks/dimensions.js +25 -8
  331. package/build-module/hooks/dimensions.js.map +1 -1
  332. package/build-module/hooks/layout.js +55 -0
  333. package/build-module/hooks/layout.js.map +1 -1
  334. package/build-module/hooks/min-height.js +3 -9
  335. package/build-module/hooks/min-height.js.map +1 -1
  336. package/build-module/store/reducer.js +391 -271
  337. package/build-module/store/reducer.js.map +1 -1
  338. package/build-module/store/selectors.js +54 -47
  339. package/build-module/store/selectors.js.map +1 -1
  340. package/build-module/utils/sorting.js +56 -0
  341. package/build-module/utils/sorting.js.map +1 -0
  342. package/build-style/content-rtl.css +701 -0
  343. package/build-style/content.css +701 -0
  344. package/build-style/default-editor-styles-rtl.css +14 -0
  345. package/build-style/default-editor-styles.css +14 -0
  346. package/build-style/style-rtl.css +286 -662
  347. package/build-style/style.css +286 -662
  348. package/package.json +32 -30
  349. package/src/autocompleters/block.js +2 -6
  350. package/src/autocompleters/link.js +2 -0
  351. package/src/components/alignment-control/test/index.js +4 -1
  352. package/src/components/block-alignment-control/test/index.js +4 -1
  353. package/src/components/block-card/index.js +46 -2
  354. package/src/components/block-card/style.scss +4 -0
  355. package/src/components/block-content-overlay/{style.scss → content.scss} +7 -1
  356. package/src/components/block-draggable/content.scss +20 -0
  357. package/src/components/block-draggable/index.native.js +54 -40
  358. package/src/components/block-draggable/style.scss +0 -21
  359. package/src/components/block-draggable/test/helpers.native.js +7 -9
  360. package/src/components/block-draggable/test/index.native.js +35 -45
  361. package/src/components/block-edit/edit.js +5 -2
  362. package/src/components/block-edit/edit.native.js +5 -6
  363. package/src/components/block-inspector/index.js +96 -81
  364. package/src/components/block-inspector/style.scss +9 -1
  365. package/src/components/block-list/block-list-context.native.js +5 -8
  366. package/src/components/block-list/block.js +74 -23
  367. package/src/components/block-list/block.native.js +78 -23
  368. package/src/components/block-list/{style.scss → content.scss} +1 -15
  369. package/src/components/block-list-appender/{style.scss → content.scss} +0 -0
  370. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +24 -6
  371. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +0 -2
  372. package/src/components/block-pattern-setup/index.js +2 -1
  373. package/src/components/block-patterns-list/index.js +47 -24
  374. package/src/components/block-preview/README.md +15 -10
  375. package/src/components/block-preview/auto.js +7 -1
  376. package/src/components/block-preview/content.scss +4 -0
  377. package/src/components/block-preview/index.js +7 -12
  378. package/src/components/block-preview/style.scss +0 -7
  379. package/src/components/block-preview/test/index.js +18 -35
  380. package/src/components/block-selection-clearer/test/index.js +12 -12
  381. package/src/components/block-settings-menu/block-settings-dropdown.js +32 -20
  382. package/src/components/block-switcher/test/index.js +4 -0
  383. package/src/components/block-toolbar/index.js +12 -5
  384. package/src/components/block-toolbar/style.scss +10 -0
  385. package/src/components/block-tools/insertion-point.js +3 -47
  386. package/src/components/block-tools/style.scss +12 -5
  387. package/src/components/block-variation-picker/index.js +1 -4
  388. package/src/components/block-vertical-alignment-control/test/index.js +4 -1
  389. package/src/components/default-block-appender/{style.scss → content.scss} +0 -0
  390. package/src/components/height-control/index.js +123 -0
  391. package/src/components/height-control/stories/index.js +21 -0
  392. package/src/components/height-control/style.scss +5 -0
  393. package/src/components/iframe/index.js +25 -18
  394. package/src/components/image-editor/use-save-image.js +2 -0
  395. package/src/components/image-editor/zoom-dropdown.js +1 -0
  396. package/src/components/index.js +1 -0
  397. package/src/components/inner-blocks/{style.scss → content.scss} +0 -0
  398. package/src/components/inner-blocks/index.js +23 -6
  399. package/src/components/inner-blocks/use-inner-block-template-sync.js +28 -10
  400. package/src/components/inserter/block-patterns-explorer/sidebar.js +1 -0
  401. package/src/components/inserter/block-patterns-tab.js +28 -71
  402. package/src/components/inserter/block-types-tab.js +3 -2
  403. package/src/components/inserter/hooks/use-debounced-input.js +17 -0
  404. package/src/components/inserter/index.js +10 -2
  405. package/src/components/inserter/index.native.js +1 -1
  406. package/src/components/inserter/media-tab/hooks.js +88 -0
  407. package/src/components/inserter/media-tab/index.js +3 -0
  408. package/src/components/inserter/media-tab/media-list.js +93 -0
  409. package/src/components/inserter/media-tab/media-panel.js +83 -0
  410. package/src/components/inserter/media-tab/media-tab.js +135 -0
  411. package/src/components/inserter/media-tab/utils.js +37 -0
  412. package/src/components/inserter/menu.js +55 -13
  413. package/src/components/inserter/mobile-tab-navigation.js +85 -0
  414. package/src/components/inserter/quick-inserter.js +1 -0
  415. package/src/components/inserter/search-results.js +3 -2
  416. package/src/components/inserter/stories/index.js +1 -1
  417. package/src/components/inserter/stories/{fixtures.js → utils/fixtures.js} +0 -0
  418. package/src/components/inserter/style.scss +176 -11
  419. package/src/components/inserter/tabs.js +12 -1
  420. package/src/components/inserter-list-item/index.js +11 -1
  421. package/src/components/inserter-list-item/style.scss +26 -0
  422. package/src/components/inspector-controls/groups.js +2 -0
  423. package/src/components/inspector-controls-tabs/advanced-controls-panel.js +37 -0
  424. package/src/components/inspector-controls-tabs/index.js +62 -0
  425. package/src/components/inspector-controls-tabs/settings-tab.js +18 -0
  426. package/src/components/inspector-controls-tabs/styles-tab.js +51 -0
  427. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +89 -0
  428. package/src/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +9 -0
  429. package/src/components/inspector-controls-tabs/utils.js +28 -0
  430. package/src/components/line-height-control/test/index.js +5 -5
  431. package/src/components/link-control/README.md +1 -1
  432. package/src/components/link-control/index.js +1 -0
  433. package/src/components/link-control/search-input.js +0 -1
  434. package/src/components/link-control/test/index.js +188 -401
  435. package/src/components/link-control/use-internal-input-value.js +3 -3
  436. package/src/components/list-view/block.js +3 -0
  437. package/src/components/list-view/branch.js +10 -8
  438. package/src/components/list-view/style.scss +20 -9
  439. package/src/components/media-placeholder/{style.scss → content.scss} +0 -0
  440. package/src/components/media-replace-flow/test/index.js +37 -9
  441. package/src/components/media-upload/test/index.native.js +2 -0
  442. package/src/components/off-canvas-editor/appender.js +93 -0
  443. package/src/components/off-canvas-editor/block-edit-button.js +27 -0
  444. package/src/components/off-canvas-editor/block.js +88 -22
  445. package/src/components/off-canvas-editor/branch.js +3 -5
  446. package/src/components/off-canvas-editor/index.js +59 -33
  447. package/src/components/off-canvas-editor/leaf.js +5 -1
  448. package/src/components/off-canvas-editor/link-ui.js +166 -0
  449. package/src/components/off-canvas-editor/style.scss +17 -388
  450. package/src/components/off-canvas-editor/update-attributes.js +99 -0
  451. package/src/components/plain-text/{style.scss → content.scss} +0 -0
  452. package/src/components/recursion-provider/test/index.js +27 -29
  453. package/src/components/rich-text/content.scss +42 -0
  454. package/src/components/rich-text/format-toolbar/index.js +6 -4
  455. package/src/components/rich-text/index.js +2 -2
  456. package/src/components/rich-text/index.native.js +0 -2
  457. package/src/components/rich-text/style.scss +0 -43
  458. package/src/components/rich-text/use-insert-replacement-text.js +31 -0
  459. package/src/components/rich-text/use-undo-automatic-change.js +7 -1
  460. package/src/components/rich-text/utils.js +2 -21
  461. package/src/components/spacing-sizes-control/spacing-input-control.js +9 -0
  462. package/src/components/ungroup-button/index.native.js +6 -2
  463. package/src/components/url-input/index.js +57 -73
  464. package/src/components/url-popover/test/__snapshots__/index.js.snap +8 -6
  465. package/src/components/url-popover/test/index.js +21 -9
  466. package/src/components/use-block-display-information/index.js +14 -5
  467. package/src/components/use-setting/index.js +13 -1
  468. package/src/components/use-setting/test/index.js +99 -0
  469. package/src/content.scss +10 -0
  470. package/src/hooks/child-layout.js +190 -0
  471. package/src/hooks/content-lock-ui.js +1 -1
  472. package/src/hooks/dimensions.js +45 -7
  473. package/src/hooks/layout.js +60 -0
  474. package/src/hooks/min-height.js +2 -19
  475. package/src/store/reducer.js +459 -423
  476. package/src/store/selectors.js +56 -57
  477. package/src/store/test/performance.js +71 -0
  478. package/src/store/test/reducer.js +623 -491
  479. package/src/store/test/selectors.js +1820 -1306
  480. package/src/style.scss +4 -7
  481. package/src/utils/sorting.js +54 -0
  482. package/src/utils/test/sorting.js +49 -0
  483. package/tsconfig.tsbuildinfo +1 -1
  484. package/build/components/block-preview/live.js +0 -30
  485. package/build/components/block-preview/live.js.map +0 -1
  486. package/build-module/components/block-preview/live.js +0 -20
  487. package/build-module/components/block-preview/live.js.map +0 -1
  488. package/src/components/block-preview/live.js +0 -19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-editor",
3
- "version": "10.5.0",
3
+ "version": "11.0.0",
4
4
  "description": "Generic block editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -33,37 +33,39 @@
33
33
  "dependencies": {
34
34
  "@babel/runtime": "^7.16.0",
35
35
  "@react-spring/web": "^9.4.5",
36
- "@wordpress/a11y": "^3.22.0",
37
- "@wordpress/api-fetch": "^6.19.0",
38
- "@wordpress/blob": "^3.22.0",
39
- "@wordpress/blocks": "^11.21.0",
40
- "@wordpress/components": "^22.1.0",
41
- "@wordpress/compose": "^5.20.0",
42
- "@wordpress/data": "^7.6.0",
43
- "@wordpress/date": "^4.22.0",
44
- "@wordpress/deprecated": "^3.22.0",
45
- "@wordpress/dom": "^3.22.0",
46
- "@wordpress/element": "^4.20.0",
47
- "@wordpress/hooks": "^3.22.0",
48
- "@wordpress/html-entities": "^3.22.0",
49
- "@wordpress/i18n": "^4.22.0",
50
- "@wordpress/icons": "^9.13.0",
51
- "@wordpress/is-shallow-equal": "^4.22.0",
52
- "@wordpress/keyboard-shortcuts": "^3.20.0",
53
- "@wordpress/keycodes": "^3.22.0",
54
- "@wordpress/notices": "^3.22.0",
55
- "@wordpress/rich-text": "^5.20.0",
56
- "@wordpress/shortcode": "^3.22.0",
57
- "@wordpress/style-engine": "^1.5.0",
58
- "@wordpress/token-list": "^2.22.0",
59
- "@wordpress/url": "^3.23.0",
60
- "@wordpress/warning": "^2.22.0",
61
- "@wordpress/wordcount": "^3.22.0",
36
+ "@wordpress/a11y": "^3.23.0",
37
+ "@wordpress/api-fetch": "^6.20.0",
38
+ "@wordpress/blob": "^3.23.0",
39
+ "@wordpress/blocks": "^12.0.0",
40
+ "@wordpress/components": "^23.0.0",
41
+ "@wordpress/compose": "^6.0.0",
42
+ "@wordpress/data": "^8.0.0",
43
+ "@wordpress/date": "^4.23.0",
44
+ "@wordpress/deprecated": "^3.23.0",
45
+ "@wordpress/dom": "^3.23.0",
46
+ "@wordpress/element": "^5.0.0",
47
+ "@wordpress/escape-html": "^2.23.0",
48
+ "@wordpress/hooks": "^3.23.0",
49
+ "@wordpress/html-entities": "^3.23.0",
50
+ "@wordpress/i18n": "^4.23.0",
51
+ "@wordpress/icons": "^9.14.0",
52
+ "@wordpress/is-shallow-equal": "^4.23.0",
53
+ "@wordpress/keyboard-shortcuts": "^4.0.0",
54
+ "@wordpress/keycodes": "^3.23.0",
55
+ "@wordpress/notices": "^3.23.0",
56
+ "@wordpress/rich-text": "^6.0.0",
57
+ "@wordpress/shortcode": "^3.23.0",
58
+ "@wordpress/style-engine": "^1.6.0",
59
+ "@wordpress/token-list": "^2.23.0",
60
+ "@wordpress/url": "^3.24.0",
61
+ "@wordpress/warning": "^2.23.0",
62
+ "@wordpress/wordcount": "^3.23.0",
62
63
  "change-case": "^4.1.2",
63
64
  "classnames": "^2.3.1",
64
65
  "colord": "^2.7.0",
65
66
  "diff": "^4.0.2",
66
67
  "dom-scroll-into-view": "^1.2.1",
68
+ "fast-deep-equal": "^3.1.3",
67
69
  "inherits": "^2.0.3",
68
70
  "lodash": "^4.17.21",
69
71
  "react-autosize-textarea": "^7.1.0",
@@ -73,11 +75,11 @@
73
75
  "traverse": "^0.6.6"
74
76
  },
75
77
  "peerDependencies": {
76
- "react": "^17.0.0",
77
- "react-dom": "^17.0.0"
78
+ "react": "^18.0.0",
79
+ "react-dom": "^18.0.0"
78
80
  },
79
81
  "publishConfig": {
80
82
  "access": "public"
81
83
  },
82
- "gitHead": "7ac04f446242452d3cb24372f9ca58f0cae97715"
84
+ "gitHead": "1eb65aabe6738097f4c062e78f69ae8f05879848"
83
85
  }
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { orderBy } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -20,6 +15,7 @@ import { searchBlockItems } from '../components/inserter/search-items';
20
15
  import useBlockTypesState from '../components/inserter/hooks/use-block-types-state';
21
16
  import BlockIcon from '../components/block-icon';
22
17
  import { store as blockEditorStore } from '../store';
18
+ import { orderBy } from '../utils/sorting';
23
19
 
24
20
  const noop = () => {};
25
21
  const SHOWN_BLOCK_TYPES = 9;
@@ -68,7 +64,7 @@ function createBlockCompleter() {
68
64
  collections,
69
65
  filterValue
70
66
  )
71
- : orderBy( items, [ 'frecency' ], [ 'desc' ] );
67
+ : orderBy( items, 'frecency', 'desc' );
72
68
 
73
69
  return initialFilteredItems
74
70
  .filter( ( item ) => item.name !== selectedBlockName )
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
+ // Disable Reason: Needs to be refactored.
5
+ // eslint-disable-next-line no-restricted-imports
4
6
  import apiFetch from '@wordpress/api-fetch';
5
7
  import { addQueryArgs } from '@wordpress/url';
6
8
  import { Icon, page, post } from '@wordpress/icons';
@@ -52,7 +52,7 @@ describe( 'AlignmentUI', () => {
52
52
  advanceTimers: jest.advanceTimersByTime,
53
53
  } );
54
54
 
55
- render(
55
+ const { unmount } = render(
56
56
  <AlignmentUI
57
57
  isToolbar
58
58
  value={ alignment }
@@ -77,6 +77,9 @@ describe( 'AlignmentUI', () => {
77
77
  name: /^Align text \w+$/,
78
78
  } )
79
79
  ).toHaveLength( 3 );
80
+
81
+ // Cancel running effects, like delayed dropdown menu popover positioning.
82
+ unmount();
80
83
  } );
81
84
 
82
85
  test( 'should call on change with undefined when a control is already active', async () => {
@@ -47,7 +47,7 @@ describe( 'BlockAlignmentUI', () => {
47
47
  advanceTimers: jest.advanceTimersByTime,
48
48
  } );
49
49
 
50
- render(
50
+ const { unmount } = render(
51
51
  <BlockAlignmentUI
52
52
  value={ alignment }
53
53
  onChange={ onChange }
@@ -72,6 +72,9 @@ describe( 'BlockAlignmentUI', () => {
72
72
  name: /^Align \w+$/,
73
73
  } )
74
74
  ).toHaveLength( 3 );
75
+
76
+ // Cancel running effects, like delayed dropdown menu popover positioning.
77
+ unmount();
75
78
  } );
76
79
 
77
80
  test( 'should call onChange with undefined, when the control is already active', async () => {
@@ -1,14 +1,24 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import classnames from 'classnames';
5
+
1
6
  /**
2
7
  * WordPress dependencies
3
8
  */
4
9
  import deprecated from '@wordpress/deprecated';
10
+ import { Button } from '@wordpress/components';
11
+ import { chevronLeft, chevronRight } from '@wordpress/icons';
12
+ import { __, isRTL } from '@wordpress/i18n';
13
+ import { useSelect, useDispatch } from '@wordpress/data';
5
14
 
6
15
  /**
7
16
  * Internal dependencies
8
17
  */
9
18
  import BlockIcon from '../block-icon';
19
+ import { store as blockEditorStore } from '../../store';
10
20
 
11
- function BlockCard( { title, icon, description, blockType } ) {
21
+ function BlockCard( { title, icon, description, blockType, className } ) {
12
22
  if ( blockType ) {
13
23
  deprecated( '`blockType` property in `BlockCard component`', {
14
24
  since: '5.7',
@@ -16,8 +26,42 @@ function BlockCard( { title, icon, description, blockType } ) {
16
26
  } );
17
27
  ( { title, icon, description } = blockType );
18
28
  }
29
+
30
+ const isOffCanvasNavigationEditorEnabled =
31
+ window?.__experimentalEnableOffCanvasNavigationEditor === true;
32
+
33
+ const { parentNavBlockClientId } = useSelect( ( select ) => {
34
+ const { getSelectedBlockClientId, getBlockParentsByBlockName } =
35
+ select( blockEditorStore );
36
+
37
+ const _selectedBlockClientId = getSelectedBlockClientId();
38
+
39
+ return {
40
+ parentNavBlockClientId: getBlockParentsByBlockName(
41
+ _selectedBlockClientId,
42
+ 'core/navigation',
43
+ true
44
+ )[ 0 ],
45
+ };
46
+ }, [] );
47
+
48
+ const { selectBlock } = useDispatch( blockEditorStore );
49
+
19
50
  return (
20
- <div className="block-editor-block-card">
51
+ <div className={ classnames( 'block-editor-block-card', className ) }>
52
+ { isOffCanvasNavigationEditorEnabled && parentNavBlockClientId && (
53
+ <Button
54
+ onClick={ () => selectBlock( parentNavBlockClientId ) }
55
+ label={ __( 'Go to parent Navigation block' ) }
56
+ style={
57
+ // TODO: This style override is also used in ToolsPanelHeader.
58
+ // It should be supported out-of-the-box by Button.
59
+ { minWidth: 24, padding: 0 }
60
+ }
61
+ icon={ isRTL() ? chevronRight : chevronLeft }
62
+ isSmall
63
+ />
64
+ ) }
21
65
  <BlockIcon icon={ icon } showColors />
22
66
  <div className="block-editor-block-card__content">
23
67
  <h2 className="block-editor-block-card__title">{ title }</h2>
@@ -28,3 +28,7 @@
28
28
  width: $button-size-small;
29
29
  height: $button-size-small;
30
30
  }
31
+
32
+ .block-editor-block-card.is-synced .block-editor-block-icon {
33
+ color: var(--wp-block-synced-color);
34
+ }
@@ -19,10 +19,16 @@
19
19
  }
20
20
 
21
21
  &:hover:not(.is-dragging-blocks)::before {
22
- background: rgba(var(--wp-admin-theme-color--rgb), 0.3);
22
+ background: rgba(var(--wp-admin-theme-color--rgb), 0.04);
23
23
  box-shadow: 0 0 0 $border-width var(--wp-admin-theme-color) inset;
24
24
  }
25
25
 
26
+ &.is-reusable:hover:not(.is-dragging-blocks)::before,
27
+ &.wp-block-template-part:hover:not(.is-dragging-blocks)::before {
28
+ background: rgba(var(--wp-block-synced-color--rgb), 0.04);
29
+ box-shadow: 0 0 0 $border-width var(--wp-block-synced-color) inset;
30
+ }
31
+
26
32
  &.is-selected:not(.is-dragging-blocks)::before {
27
33
  box-shadow: 0 0 0 $border-width var(--wp-admin-theme-color) inset;
28
34
  }
@@ -0,0 +1,20 @@
1
+ // This creates a "slot" where the block you're dragging appeared.
2
+ // We use !important as one of the rules are meant to be overriden.
3
+ .block-editor-block-list__layout .is-dragging {
4
+ background-color: currentColor !important;
5
+ opacity: 0.05 !important;
6
+ border-radius: $radius-block-ui !important;
7
+
8
+ // Disabling pointer events during the drag event is necessary,
9
+ // lest the block might affect your drag operation.
10
+ pointer-events: none !important;
11
+
12
+ // Hide the multi selection indicator when dragging.
13
+ &::selection {
14
+ background: transparent !important;
15
+ }
16
+
17
+ &::after {
18
+ content: none !important;
19
+ }
20
+ }
@@ -285,6 +285,58 @@ const BlockDraggableWrapper = ( { children, isRTL } ) => {
285
285
  );
286
286
  };
287
287
 
288
+ function useIsScreenReaderEnabled() {
289
+ const [ isScreenReaderEnabled, setIsScreenReaderEnabled ] =
290
+ useState( false );
291
+
292
+ useEffect( () => {
293
+ let mounted = true;
294
+
295
+ const changeListener = AccessibilityInfo.addEventListener(
296
+ 'screenReaderChanged',
297
+ ( enabled ) => setIsScreenReaderEnabled( enabled )
298
+ );
299
+
300
+ AccessibilityInfo.isScreenReaderEnabled().then(
301
+ ( screenReaderEnabled ) => {
302
+ if ( mounted && screenReaderEnabled ) {
303
+ setIsScreenReaderEnabled( screenReaderEnabled );
304
+ }
305
+ }
306
+ );
307
+
308
+ return () => {
309
+ mounted = false;
310
+
311
+ changeListener.remove();
312
+ };
313
+ }, [] );
314
+
315
+ return isScreenReaderEnabled;
316
+ }
317
+
318
+ function useIsEditingText() {
319
+ const [ isEditingText, setIsEditingText ] = useState( () =>
320
+ RCTAztecView.InputState.isFocused()
321
+ );
322
+
323
+ useEffect( () => {
324
+ const onFocusChangeAztec = ( { isFocused } ) => {
325
+ setIsEditingText( isFocused );
326
+ };
327
+
328
+ RCTAztecView.InputState.addFocusChangeListener( onFocusChangeAztec );
329
+
330
+ return () => {
331
+ RCTAztecView.InputState.removeFocusChangeListener(
332
+ onFocusChangeAztec
333
+ );
334
+ };
335
+ }, [] );
336
+
337
+ return isEditingText;
338
+ }
339
+
288
340
  /**
289
341
  * Block draggable component
290
342
  *
@@ -308,9 +360,8 @@ const BlockDraggable = ( {
308
360
  testID,
309
361
  } ) => {
310
362
  const wasBeingDragged = useRef( false );
311
- const [ isEditingText, setIsEditingText ] = useState( false );
312
- const [ isScreenReaderEnabled, setIsScreenReaderEnabled ] =
313
- useState( false );
363
+ const isEditingText = useIsEditingText();
364
+ const isScreenReaderEnabled = useIsScreenReaderEnabled();
314
365
 
315
366
  const draggingAnimation = {
316
367
  opacity: useSharedValue( 1 ),
@@ -365,43 +416,6 @@ const BlockDraggable = ( {
365
416
  wasBeingDragged.current = isBeingDragged;
366
417
  }, [ isBeingDragged ] );
367
418
 
368
- const onFocusChangeAztec = useCallback( ( { isFocused } ) => {
369
- setIsEditingText( isFocused );
370
- }, [] );
371
-
372
- useEffect( () => {
373
- let mounted = true;
374
-
375
- const isAnyAztecInputFocused = RCTAztecView.InputState.isFocused();
376
- if ( isAnyAztecInputFocused ) {
377
- setIsEditingText( isAnyAztecInputFocused );
378
- }
379
-
380
- RCTAztecView.InputState.addFocusChangeListener( onFocusChangeAztec );
381
-
382
- const screenReaderChangedListener = AccessibilityInfo.addEventListener(
383
- 'screenReaderChanged',
384
- setIsScreenReaderEnabled
385
- );
386
- AccessibilityInfo.isScreenReaderEnabled().then(
387
- ( screenReaderEnabled ) => {
388
- if ( mounted ) {
389
- setIsScreenReaderEnabled( screenReaderEnabled );
390
- }
391
- }
392
- );
393
-
394
- return () => {
395
- mounted = false;
396
-
397
- RCTAztecView.InputState.removeFocusChangeListener(
398
- onFocusChangeAztec
399
- );
400
-
401
- screenReaderChangedListener.remove();
402
- };
403
- }, [] );
404
-
405
419
  const onLongPressDraggable = useCallback( () => {
406
420
  // Ensure that no text input is focused when starting the dragging gesture in order to prevent conflicts with text editing.
407
421
  RCTAztecView.InputState.blurCurrentFocusedElement();
@@ -44,24 +44,3 @@
44
44
  font-size: $default-font-size;
45
45
  }
46
46
  }
47
-
48
- // This creates a "slot" where the block you're dragging appeared.
49
- // We use !important as one of the rules are meant to be overriden.
50
- .block-editor-block-list__layout .is-dragging {
51
- background-color: currentColor !important;
52
- opacity: 0.05 !important;
53
- border-radius: $radius-block-ui !important;
54
-
55
- // Disabling pointer events during the drag event is necessary,
56
- // lest the block might affect your drag operation.
57
- pointer-events: none !important;
58
-
59
- // Hide the multi selection indicator when dragging.
60
- &::selection {
61
- background: transparent !important;
62
- }
63
-
64
- &::after {
65
- content: none !important;
66
- }
67
- }
@@ -53,14 +53,14 @@ export const initializeWithBlocksLayouts = async ( blocks ) => {
53
53
  const initialHtml = blocks.map( ( block ) => block.html ).join( '\n' );
54
54
 
55
55
  const screen = await initializeEditor( { initialHtml } );
56
- const { getByLabelText } = screen;
56
+ const { getAllByLabelText } = screen;
57
57
 
58
58
  const waitPromises = [];
59
59
  blocks.forEach( ( block, index ) => {
60
60
  const a11yLabel = new RegExp(
61
61
  `${ block.name } Block\\. Row ${ index + 1 }`
62
62
  );
63
- const element = getByLabelText( a11yLabel );
63
+ const [ element ] = getAllByLabelText( a11yLabel );
64
64
  // "onLayout" event will populate the blocks layouts data.
65
65
  fireEvent( element, 'layout', {
66
66
  nativeEvent: { layout: block.layout },
@@ -91,13 +91,11 @@ export const initializeWithBlocksLayouts = async ( blocks ) => {
91
91
  const nestedA11yLabel = new RegExp(
92
92
  `${ nestedBlock.name } Block\\. Row ${ nestedIndex + 1 }`
93
93
  );
94
- fireEvent(
95
- within( element ).getByLabelText( nestedA11yLabel ),
96
- 'layout',
97
- {
98
- nativeEvent: { layout: nestedBlock.layout },
99
- }
100
- );
94
+ const [ nestedElement ] =
95
+ within( element ).getAllByLabelText( nestedA11yLabel );
96
+ fireEvent( nestedElement, 'layout', {
97
+ nativeEvent: { layout: nestedBlock.layout },
98
+ } );
101
99
  } );
102
100
  }
103
101
  } );
@@ -93,11 +93,13 @@ describe( 'BlockDraggable', () => {
93
93
  it( 'enables drag mode when unselected', async () =>
94
94
  withReanimatedTimer( async () => {
95
95
  const screen = await initializeWithBlocksLayouts( BLOCKS );
96
- const { getByLabelText } = screen;
97
96
 
98
97
  // Start dragging from block's content
98
+ const [ paragraphBlock ] = screen.getAllByLabelText(
99
+ /Paragraph Block\. Row 1/
100
+ );
99
101
  fireLongPress(
100
- getByLabelText( /Paragraph Block\. Row 1/ ),
102
+ paragraphBlock,
101
103
  'draggable-trigger-content'
102
104
  );
103
105
  expect( getDraggableChip( screen ) ).toBeVisible();
@@ -112,12 +114,12 @@ describe( 'BlockDraggable', () => {
112
114
  it( 'enables drag mode when selected', async () =>
113
115
  withReanimatedTimer( async () => {
114
116
  const screen = await initializeWithBlocksLayouts( BLOCKS );
115
- const { getByLabelText } = screen;
117
+
116
118
  const blockDraggableWrapper = getByGestureTestId(
117
119
  'block-draggable-wrapper'
118
120
  );
119
121
 
120
- const paragraphBlock = getByLabelText(
122
+ const [ paragraphBlock ] = screen.getAllByLabelText(
121
123
  /Paragraph Block\. Row 1/
122
124
  );
123
125
  fireEvent.press( paragraphBlock );
@@ -146,9 +148,8 @@ describe( 'BlockDraggable', () => {
146
148
  it( 'does not enable drag mode when selected and editing text', async () =>
147
149
  withReanimatedTimer( async () => {
148
150
  const screen = await initializeWithBlocksLayouts( BLOCKS );
149
- const { getByLabelText } = screen;
150
151
 
151
- const paragraphBlock = getByLabelText(
152
+ const [ paragraphBlock ] = screen.getAllByLabelText(
152
153
  /Paragraph Block\. Row 1/
153
154
  );
154
155
 
@@ -178,13 +179,12 @@ describe( 'BlockDraggable', () => {
178
179
  it( 'finishes editing text and enables drag mode when long-pressing over a different block', async () =>
179
180
  withReanimatedTimer( async () => {
180
181
  const screen = await initializeWithBlocksLayouts( BLOCKS );
181
- const { getByLabelText } = screen;
182
182
 
183
- const paragraphBlock = getByLabelText(
183
+ const [ paragraphBlock ] = screen.getAllByLabelText(
184
184
  /Paragraph Block\. Row 1/
185
185
  );
186
- const spacerBlock =
187
- getByLabelText( /Spacer Block\. Row 3/ );
186
+ const [ spacerBlock ] =
187
+ screen.getAllByLabelText( /Spacer Block\. Row 3/ );
188
188
 
189
189
  // Select Paragraph block and start editing text
190
190
  fireEvent.press( paragraphBlock );
@@ -208,12 +208,11 @@ describe( 'BlockDraggable', () => {
208
208
  it( 'enables drag mode when unselected', async () =>
209
209
  withReanimatedTimer( async () => {
210
210
  const screen = await initializeWithBlocksLayouts( BLOCKS );
211
- const { getAllByLabelText } = screen;
212
211
 
213
212
  // We select the first Image block as the Gallery block
214
213
  // also contains Image blocks.
215
- const imageBlock =
216
- getAllByLabelText( /Image Block\. Row 2/ )[ 0 ];
214
+ const [ imageBlock ] =
215
+ screen.getAllByLabelText( /Image Block\. Row 2/ );
217
216
  // Start dragging from block's content
218
217
  fireLongPress( imageBlock, 'draggable-trigger-content' );
219
218
  expect( getDraggableChip( screen ) ).toBeVisible();
@@ -228,15 +227,14 @@ describe( 'BlockDraggable', () => {
228
227
  it( 'enables drag mode when selected', async () =>
229
228
  withReanimatedTimer( async () => {
230
229
  const screen = await initializeWithBlocksLayouts( BLOCKS );
231
- const { getAllByLabelText } = screen;
232
230
  const blockDraggableWrapper = getByGestureTestId(
233
231
  'block-draggable-wrapper'
234
232
  );
235
233
 
236
234
  // We select the first Image block as the Gallery block
237
235
  // also contains Image blocks.
238
- const imageBlock =
239
- getAllByLabelText( /Image Block\. Row 2/ )[ 0 ];
236
+ const [ imageBlock ] =
237
+ screen.getAllByLabelText( /Image Block\. Row 2/ );
240
238
  fireEvent.press( imageBlock );
241
239
 
242
240
  // Start dragging from block's content
@@ -262,15 +260,15 @@ describe( 'BlockDraggable', () => {
262
260
  it( 'enables drag mode when unselected', async () =>
263
261
  withReanimatedTimer( async () => {
264
262
  const screen = await initializeWithBlocksLayouts( BLOCKS );
265
- const { getByLabelText } = screen;
266
263
 
267
264
  // Start dragging from block's content, specifically the first
268
265
  // trigger index, which corresponds to the Gallery block content.
269
- fireLongPress(
270
- getByLabelText( /Gallery Block\. Row 4/ ),
271
- 'draggable-trigger-content',
272
- { triggerIndex: 0 }
266
+ const [ galleryBlock ] = screen.getAllByLabelText(
267
+ /Gallery Block\. Row 4/
273
268
  );
269
+ fireLongPress( galleryBlock, 'draggable-trigger-content', {
270
+ triggerIndex: 0,
271
+ } );
274
272
  expect( getDraggableChip( screen ) ).toBeVisible();
275
273
 
276
274
  // "firePanGesture" finishes the dragging gesture
@@ -283,12 +281,11 @@ describe( 'BlockDraggable', () => {
283
281
  it( 'enables drag mode when selected', async () =>
284
282
  withReanimatedTimer( async () => {
285
283
  const screen = await initializeWithBlocksLayouts( BLOCKS );
286
- const { getByLabelText } = screen;
287
284
  const blockDraggableWrapper = getByGestureTestId(
288
285
  'block-draggable-wrapper'
289
286
  );
290
287
 
291
- const galleryBlock = getByLabelText(
288
+ const [ galleryBlock ] = screen.getAllByLabelText(
292
289
  /Gallery Block\. Row 4/
293
290
  );
294
291
  await waitForStoreResolvers( () =>
@@ -319,16 +316,15 @@ describe( 'BlockDraggable', () => {
319
316
  it( 'enables drag mode when nested block is selected', async () =>
320
317
  withReanimatedTimer( async () => {
321
318
  const screen = await initializeWithBlocksLayouts( BLOCKS );
322
- const { getByLabelText } = screen;
323
319
  const blockDraggableWrapper = getByGestureTestId(
324
320
  'block-draggable-wrapper'
325
321
  );
326
322
 
327
- const galleryBlock = getByLabelText(
323
+ const [ galleryBlock ] = screen.getAllByLabelText(
328
324
  /Gallery Block\. Row 4/
329
325
  );
330
- const galleryItem =
331
- within( galleryBlock ).getByLabelText(
326
+ const [ galleryItem ] =
327
+ within( galleryBlock ).getAllByLabelText(
332
328
  /Image Block\. Row 2/
333
329
  );
334
330
  fireEvent.press( galleryBlock );
@@ -361,13 +357,11 @@ describe( 'BlockDraggable', () => {
361
357
  it( 'enables drag mode when unselected', async () =>
362
358
  withReanimatedTimer( async () => {
363
359
  const screen = await initializeWithBlocksLayouts( BLOCKS );
364
- const { getByLabelText } = screen;
365
360
 
366
361
  // Start dragging from block's content
367
- fireLongPress(
368
- getByLabelText( /Spacer Block\. Row 3/ ),
369
- 'draggable-trigger-content'
370
- );
362
+ const [ spacerBlock ] =
363
+ screen.getAllByLabelText( /Spacer Block\. Row 3/ );
364
+ fireLongPress( spacerBlock, 'draggable-trigger-content' );
371
365
  expect( getDraggableChip( screen ) ).toBeVisible();
372
366
 
373
367
  // "firePanGesture" finishes the dragging gesture
@@ -380,13 +374,12 @@ describe( 'BlockDraggable', () => {
380
374
  it( 'enables drag mode when selected', async () =>
381
375
  withReanimatedTimer( async () => {
382
376
  const screen = await initializeWithBlocksLayouts( BLOCKS );
383
- const { getByLabelText } = screen;
384
377
  const blockDraggableWrapper = getByGestureTestId(
385
378
  'block-draggable-wrapper'
386
379
  );
387
380
 
388
- const spacerBlock =
389
- getByLabelText( /Spacer Block\. Row 3/ );
381
+ const [ spacerBlock ] =
382
+ screen.getAllByLabelText( /Spacer Block\. Row 3/ );
390
383
  await waitForStoreResolvers( () =>
391
384
  fireEvent.press( spacerBlock )
392
385
  );
@@ -413,9 +406,7 @@ describe( 'BlockDraggable', () => {
413
406
 
414
407
  it( 'moves blocks', async () =>
415
408
  withReanimatedTimer( async () => {
416
- const { getByLabelText } = await initializeWithBlocksLayouts(
417
- BLOCKS
418
- );
409
+ const screen = await initializeWithBlocksLayouts( BLOCKS );
419
410
  const blockDraggableWrapper = getByGestureTestId(
420
411
  'block-draggable-wrapper'
421
412
  );
@@ -423,10 +414,10 @@ describe( 'BlockDraggable', () => {
423
414
  expect( getEditorHtml() ).toMatchSnapshot( 'Initial order' );
424
415
 
425
416
  // Move Paragraph block from first to second position
426
- fireLongPress(
427
- getByLabelText( /Paragraph Block\. Row 1/ ),
428
- 'draggable-trigger-content'
417
+ const [ paragraphBlock ] = screen.getAllByLabelText(
418
+ /Paragraph Block\. Row 1/
429
419
  );
420
+ fireLongPress( paragraphBlock, 'draggable-trigger-content' );
430
421
  firePanGesture( blockDraggableWrapper, [
431
422
  {
432
423
  id: TOUCH_EVENT_ID,
@@ -453,10 +444,9 @@ describe( 'BlockDraggable', () => {
453
444
  );
454
445
 
455
446
  // Move Spacer block from third to first position
456
- fireLongPress(
457
- getByLabelText( /Spacer Block\. Row 3/ ),
458
- 'draggable-trigger-content'
459
- );
447
+ const [ spacerBlock ] =
448
+ screen.getAllByLabelText( /Spacer Block\. Row 3/ );
449
+ fireLongPress( spacerBlock, 'draggable-trigger-content' );
460
450
  firePanGesture( blockDraggableWrapper, [
461
451
  {
462
452
  id: TOUCH_EVENT_ID,