@wordpress/block-editor 9.7.1-next.d6164808d3.0 → 10.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 (556) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +13 -1
  3. package/build/components/alignment-control/ui.js +6 -5
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/block-actions/index.js +5 -9
  6. package/build/components/block-actions/index.js.map +1 -1
  7. package/build/components/block-alignment-control/ui.js +5 -5
  8. package/build/components/block-alignment-control/ui.js.map +1 -1
  9. package/build/components/block-content-overlay/index.js +2 -4
  10. package/build/components/block-content-overlay/index.js.map +1 -1
  11. package/build/components/block-draggable/draggable-chip.js +2 -1
  12. package/build/components/block-draggable/draggable-chip.js.map +1 -1
  13. package/build/components/block-edit/edit.js +1 -1
  14. package/build/components/block-edit/edit.js.map +1 -1
  15. package/build/components/block-inspector/index.js +125 -17
  16. package/build/components/block-inspector/index.js.map +1 -1
  17. package/build/components/block-list/block-list-compact.native.js +73 -0
  18. package/build/components/block-list/block-list-compact.native.js.map +1 -0
  19. package/build/components/block-list/block.js +40 -9
  20. package/build/components/block-list/block.js.map +1 -1
  21. package/build/components/block-list/index.js +4 -4
  22. package/build/components/block-list/index.js.map +1 -1
  23. package/build/components/block-list/use-block-props/index.js +14 -11
  24. package/build/components/block-list/use-block-props/index.js.map +1 -1
  25. package/build/components/block-list/use-block-props/use-block-class-names.js +3 -2
  26. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  27. package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -10
  28. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  29. package/build/components/block-list/use-block-props/use-is-hovered.js +1 -2
  30. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  31. package/build/components/block-list/use-in-between-inserter.js +7 -12
  32. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  33. package/build/components/block-list-appender/index.js +20 -21
  34. package/build/components/block-list-appender/index.js.map +1 -1
  35. package/build/components/block-list-appender/index.native.js +1 -7
  36. package/build/components/block-list-appender/index.native.js.map +1 -1
  37. package/build/components/block-lock/use-block-lock.js +3 -1
  38. package/build/components/block-lock/use-block-lock.js.map +1 -1
  39. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +20 -10
  40. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  41. package/build/components/block-mover/button.js +4 -6
  42. package/build/components/block-mover/button.js.map +1 -1
  43. package/build/components/block-mover/index.js +4 -6
  44. package/build/components/block-mover/index.js.map +1 -1
  45. package/build/components/block-mover/index.native.js +24 -8
  46. package/build/components/block-mover/index.native.js.map +1 -1
  47. package/build/components/block-popover/inbetween.js +58 -16
  48. package/build/components/block-popover/inbetween.js.map +1 -1
  49. package/build/components/block-popover/index.js +14 -9
  50. package/build/components/block-popover/index.js.map +1 -1
  51. package/build/components/block-preview/auto.js +4 -2
  52. package/build/components/block-preview/auto.js.map +1 -1
  53. package/build/components/block-settings-menu/block-settings-dropdown.js +3 -1
  54. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  55. package/build/components/block-settings-menu-controls/index.js +3 -1
  56. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  57. package/build/components/block-styles/preview-panel.js +7 -1
  58. package/build/components/block-styles/preview-panel.js.map +1 -1
  59. package/build/components/block-switcher/block-transformations-menu.js +114 -25
  60. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  61. package/build/components/block-toolbar/index.js +9 -8
  62. package/build/components/block-toolbar/index.js.map +1 -1
  63. package/build/components/block-tools/block-contextual-toolbar.js +3 -2
  64. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  65. package/build/components/block-tools/block-selection-button.js +13 -5
  66. package/build/components/block-tools/block-selection-button.js.map +1 -1
  67. package/build/components/block-tools/index.js +33 -15
  68. package/build/components/block-tools/index.js.map +1 -1
  69. package/build/components/block-tools/insertion-point.js +4 -9
  70. package/build/components/block-tools/insertion-point.js.map +1 -1
  71. package/build/components/block-tools/selected-block-popover.js +19 -10
  72. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  73. package/build/components/block-tools/use-block-toolbar-popover-props.js +131 -0
  74. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -0
  75. package/build/components/block-tools/zoom-out-mode-inserters.js +71 -0
  76. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
  77. package/build/components/block-vertical-alignment-control/ui.js +5 -2
  78. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  79. package/build/components/colors-gradients/control.js +1 -0
  80. package/build/components/colors-gradients/control.js.map +1 -1
  81. package/build/components/colors-gradients/dropdown.js +1 -1
  82. package/build/components/colors-gradients/dropdown.js.map +1 -1
  83. package/build/components/iframe/index.js +31 -4
  84. package/build/components/iframe/index.js.map +1 -1
  85. package/build/components/inner-blocks/default-block-appender.js +1 -7
  86. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  87. package/build/components/inner-blocks/index.js +2 -2
  88. package/build/components/inner-blocks/index.js.map +1 -1
  89. package/build/components/inner-blocks/index.native.js +6 -2
  90. package/build/components/inner-blocks/index.native.js.map +1 -1
  91. package/build/components/inner-blocks/use-inner-block-template-sync.js +5 -5
  92. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  93. package/build/components/inner-blocks/use-nested-settings-update.js +1 -1
  94. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  95. package/build/components/inserter/index.js +3 -6
  96. package/build/components/inserter/index.js.map +1 -1
  97. package/build/components/inserter/library.js +14 -3
  98. package/build/components/inserter/library.js.map +1 -1
  99. package/build/components/inserter/menu.js +21 -8
  100. package/build/components/inserter/menu.js.map +1 -1
  101. package/build/components/inserter/preview-panel.js +1 -1
  102. package/build/components/inserter/preview-panel.js.map +1 -1
  103. package/build/components/inserter/tabs.js +11 -4
  104. package/build/components/inserter/tabs.js.map +1 -1
  105. package/build/components/link-control/link-preview.js +1 -1
  106. package/build/components/link-control/link-preview.js.map +1 -1
  107. package/build/components/link-control/search-input.js +6 -3
  108. package/build/components/link-control/search-input.js.map +1 -1
  109. package/build/components/link-control/search-item.js +36 -5
  110. package/build/components/link-control/search-item.js.map +1 -1
  111. package/build/components/list-view/block.js +23 -11
  112. package/build/components/list-view/block.js.map +1 -1
  113. package/build/components/list-view/branch.js +19 -2
  114. package/build/components/list-view/branch.js.map +1 -1
  115. package/build/components/list-view/index.js +8 -4
  116. package/build/components/list-view/index.js.map +1 -1
  117. package/build/components/list-view/use-block-selection.js +0 -1
  118. package/build/components/list-view/use-block-selection.js.map +1 -1
  119. package/build/components/provider/use-block-sync.js +1 -7
  120. package/build/components/provider/use-block-sync.js.map +1 -1
  121. package/build/components/publish-date-time-picker/index.js +1 -1
  122. package/build/components/publish-date-time-picker/index.js.map +1 -1
  123. package/build/components/rich-text/index.js +37 -19
  124. package/build/components/rich-text/index.js.map +1 -1
  125. package/build/components/rich-text/index.native.js +11 -20
  126. package/build/components/rich-text/index.native.js.map +1 -1
  127. package/build/components/spacing-sizes-control/spacing-input-control.js +6 -1
  128. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  129. package/build/components/spacing-sizes-control/utils.js +32 -1
  130. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  131. package/build/components/text-decoration-control/index.js +28 -17
  132. package/build/components/text-decoration-control/index.js.map +1 -1
  133. package/build/components/text-transform-control/index.js +21 -14
  134. package/build/components/text-transform-control/index.js.map +1 -1
  135. package/build/components/tool-selector/index.js +6 -11
  136. package/build/components/tool-selector/index.js.map +1 -1
  137. package/build/components/url-popover/index.js +1 -1
  138. package/build/components/url-popover/index.js.map +1 -1
  139. package/build/components/use-block-drop-zone/index.js +7 -4
  140. package/build/components/use-block-drop-zone/index.js.map +1 -1
  141. package/build/components/use-moving-animation/index.js +9 -28
  142. package/build/components/use-moving-animation/index.js.map +1 -1
  143. package/build/components/writing-flow/index.js +2 -0
  144. package/build/components/writing-flow/index.js.map +1 -1
  145. package/build/components/writing-flow/use-select-all.js +7 -16
  146. package/build/components/writing-flow/use-select-all.js.map +1 -1
  147. package/build/hooks/align.js +17 -3
  148. package/build/hooks/align.js.map +1 -1
  149. package/build/hooks/anchor.js +3 -7
  150. package/build/hooks/anchor.js.map +1 -1
  151. package/build/hooks/color-panel.js +2 -1
  152. package/build/hooks/color-panel.js.map +1 -1
  153. package/build/hooks/content-lock-ui.js +145 -0
  154. package/build/hooks/content-lock-ui.js.map +1 -0
  155. package/build/hooks/dimensions.js +6 -6
  156. package/build/hooks/dimensions.js.map +1 -1
  157. package/build/hooks/duotone.js +8 -1
  158. package/build/hooks/duotone.js.map +1 -1
  159. package/build/hooks/font-appearance.js +2 -1
  160. package/build/hooks/font-appearance.js.map +1 -1
  161. package/build/hooks/font-family.js +3 -1
  162. package/build/hooks/font-family.js.map +1 -1
  163. package/build/hooks/font-size.js +3 -1
  164. package/build/hooks/font-size.js.map +1 -1
  165. package/build/hooks/gap.js +23 -6
  166. package/build/hooks/gap.js.map +1 -1
  167. package/build/hooks/index.js +14 -0
  168. package/build/hooks/index.js.map +1 -1
  169. package/build/hooks/layout.js +14 -10
  170. package/build/hooks/layout.js.map +1 -1
  171. package/build/hooks/letter-spacing.js +2 -1
  172. package/build/hooks/letter-spacing.js.map +1 -1
  173. package/build/hooks/line-height.js +2 -1
  174. package/build/hooks/line-height.js.map +1 -1
  175. package/build/hooks/lock.js +3 -7
  176. package/build/hooks/lock.js.map +1 -1
  177. package/build/hooks/metadata-name.js +55 -0
  178. package/build/hooks/metadata-name.js.map +1 -0
  179. package/build/hooks/metadata.js +65 -0
  180. package/build/hooks/metadata.js.map +1 -0
  181. package/build/hooks/text-decoration.js +2 -1
  182. package/build/hooks/text-decoration.js.map +1 -1
  183. package/build/hooks/text-transform.js +2 -1
  184. package/build/hooks/text-transform.js.map +1 -1
  185. package/build/hooks/use-typography-props.js +51 -0
  186. package/build/hooks/use-typography-props.js.map +1 -0
  187. package/build/hooks/utils.js +3 -1
  188. package/build/hooks/utils.js.map +1 -1
  189. package/build/index.js +7 -0
  190. package/build/index.js.map +1 -1
  191. package/build/layouts/constrained.js +71 -22
  192. package/build/layouts/constrained.js.map +1 -1
  193. package/build/layouts/flow.js +30 -2
  194. package/build/layouts/flow.js.map +1 -1
  195. package/build/store/actions.js +65 -21
  196. package/build/store/actions.js.map +1 -1
  197. package/build/store/reducer.js +39 -18
  198. package/build/store/reducer.js.map +1 -1
  199. package/build/store/selectors.js +95 -9
  200. package/build/store/selectors.js.map +1 -1
  201. package/build/utils/parse-css-unit-to-px.js +1 -1
  202. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  203. package/build-module/components/alignment-control/ui.js +6 -5
  204. package/build-module/components/alignment-control/ui.js.map +1 -1
  205. package/build-module/components/block-actions/index.js +5 -8
  206. package/build-module/components/block-actions/index.js.map +1 -1
  207. package/build-module/components/block-alignment-control/ui.js +5 -5
  208. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  209. package/build-module/components/block-content-overlay/index.js +2 -4
  210. package/build-module/components/block-content-overlay/index.js.map +1 -1
  211. package/build-module/components/block-draggable/draggable-chip.js +2 -1
  212. package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
  213. package/build-module/components/block-edit/edit.js +1 -1
  214. package/build-module/components/block-edit/edit.js.map +1 -1
  215. package/build-module/components/block-inspector/index.js +127 -19
  216. package/build-module/components/block-inspector/index.js.map +1 -1
  217. package/build-module/components/block-list/block-list-compact.native.js +58 -0
  218. package/build-module/components/block-list/block-list-compact.native.js.map +1 -0
  219. package/build-module/components/block-list/block.js +41 -9
  220. package/build-module/components/block-list/block.js.map +1 -1
  221. package/build-module/components/block-list/index.js +4 -4
  222. package/build-module/components/block-list/index.js.map +1 -1
  223. package/build-module/components/block-list/use-block-props/index.js +13 -11
  224. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  225. package/build-module/components/block-list/use-block-props/use-block-class-names.js +3 -2
  226. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  227. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -9
  228. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  229. package/build-module/components/block-list/use-block-props/use-is-hovered.js +1 -2
  230. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  231. package/build-module/components/block-list/use-in-between-inserter.js +7 -12
  232. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  233. package/build-module/components/block-list-appender/index.js +20 -20
  234. package/build-module/components/block-list-appender/index.js.map +1 -1
  235. package/build-module/components/block-list-appender/index.native.js +1 -6
  236. package/build-module/components/block-list-appender/index.native.js.map +1 -1
  237. package/build-module/components/block-lock/use-block-lock.js +3 -1
  238. package/build-module/components/block-lock/use-block-lock.js.map +1 -1
  239. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +20 -9
  240. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  241. package/build-module/components/block-mover/button.js +4 -5
  242. package/build-module/components/block-mover/button.js.map +1 -1
  243. package/build-module/components/block-mover/index.js +4 -5
  244. package/build-module/components/block-mover/index.js.map +1 -1
  245. package/build-module/components/block-mover/index.native.js +24 -7
  246. package/build-module/components/block-mover/index.native.js.map +1 -1
  247. package/build-module/components/block-popover/inbetween.js +59 -17
  248. package/build-module/components/block-popover/inbetween.js.map +1 -1
  249. package/build-module/components/block-popover/index.js +12 -9
  250. package/build-module/components/block-popover/index.js.map +1 -1
  251. package/build-module/components/block-preview/auto.js +4 -2
  252. package/build-module/components/block-preview/auto.js.map +1 -1
  253. package/build-module/components/block-settings-menu/block-settings-dropdown.js +3 -1
  254. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  255. package/build-module/components/block-settings-menu-controls/index.js +3 -1
  256. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  257. package/build-module/components/block-styles/preview-panel.js +6 -1
  258. package/build-module/components/block-styles/preview-panel.js.map +1 -1
  259. package/build-module/components/block-switcher/block-transformations-menu.js +115 -27
  260. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  261. package/build-module/components/block-toolbar/index.js +9 -8
  262. package/build-module/components/block-toolbar/index.js.map +1 -1
  263. package/build-module/components/block-tools/block-contextual-toolbar.js +3 -2
  264. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  265. package/build-module/components/block-tools/block-selection-button.js +12 -5
  266. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  267. package/build-module/components/block-tools/index.js +30 -15
  268. package/build-module/components/block-tools/index.js.map +1 -1
  269. package/build-module/components/block-tools/insertion-point.js +4 -9
  270. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  271. package/build-module/components/block-tools/selected-block-popover.js +17 -10
  272. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  273. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +119 -0
  274. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -0
  275. package/build-module/components/block-tools/zoom-out-mode-inserters.js +59 -0
  276. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
  277. package/build-module/components/block-vertical-alignment-control/ui.js +5 -2
  278. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  279. package/build-module/components/colors-gradients/control.js +1 -0
  280. package/build-module/components/colors-gradients/control.js.map +1 -1
  281. package/build-module/components/colors-gradients/dropdown.js +1 -1
  282. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  283. package/build-module/components/iframe/index.js +32 -5
  284. package/build-module/components/iframe/index.js.map +1 -1
  285. package/build-module/components/inner-blocks/default-block-appender.js +1 -6
  286. package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
  287. package/build-module/components/inner-blocks/index.js +2 -2
  288. package/build-module/components/inner-blocks/index.js.map +1 -1
  289. package/build-module/components/inner-blocks/index.native.js +5 -2
  290. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  291. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +5 -5
  292. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  293. package/build-module/components/inner-blocks/use-nested-settings-update.js +1 -1
  294. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  295. package/build-module/components/inserter/index.js +3 -6
  296. package/build-module/components/inserter/index.js.map +1 -1
  297. package/build-module/components/inserter/library.js +14 -3
  298. package/build-module/components/inserter/library.js.map +1 -1
  299. package/build-module/components/inserter/menu.js +20 -8
  300. package/build-module/components/inserter/menu.js.map +1 -1
  301. package/build-module/components/inserter/preview-panel.js +1 -1
  302. package/build-module/components/inserter/preview-panel.js.map +1 -1
  303. package/build-module/components/inserter/tabs.js +11 -4
  304. package/build-module/components/inserter/tabs.js.map +1 -1
  305. package/build-module/components/link-control/link-preview.js +1 -1
  306. package/build-module/components/link-control/link-preview.js.map +1 -1
  307. package/build-module/components/link-control/search-input.js +6 -2
  308. package/build-module/components/link-control/search-input.js.map +1 -1
  309. package/build-module/components/link-control/search-item.js +37 -6
  310. package/build-module/components/link-control/search-item.js.map +1 -1
  311. package/build-module/components/list-view/block.js +23 -11
  312. package/build-module/components/list-view/block.js.map +1 -1
  313. package/build-module/components/list-view/branch.js +19 -3
  314. package/build-module/components/list-view/branch.js.map +1 -1
  315. package/build-module/components/list-view/index.js +8 -4
  316. package/build-module/components/list-view/index.js.map +1 -1
  317. package/build-module/components/list-view/use-block-selection.js +0 -1
  318. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  319. package/build-module/components/provider/use-block-sync.js +1 -6
  320. package/build-module/components/provider/use-block-sync.js.map +1 -1
  321. package/build-module/components/publish-date-time-picker/index.js +1 -1
  322. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  323. package/build-module/components/rich-text/index.js +37 -18
  324. package/build-module/components/rich-text/index.js.map +1 -1
  325. package/build-module/components/rich-text/index.native.js +11 -18
  326. package/build-module/components/rich-text/index.native.js.map +1 -1
  327. package/build-module/components/spacing-sizes-control/spacing-input-control.js +7 -2
  328. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  329. package/build-module/components/spacing-sizes-control/utils.js +30 -1
  330. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  331. package/build-module/components/text-decoration-control/index.js +25 -18
  332. package/build-module/components/text-decoration-control/index.js.map +1 -1
  333. package/build-module/components/text-transform-control/index.js +19 -15
  334. package/build-module/components/text-transform-control/index.js.map +1 -1
  335. package/build-module/components/tool-selector/index.js +6 -11
  336. package/build-module/components/tool-selector/index.js.map +1 -1
  337. package/build-module/components/url-popover/index.js +1 -1
  338. package/build-module/components/url-popover/index.js.map +1 -1
  339. package/build-module/components/use-block-drop-zone/index.js +7 -4
  340. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  341. package/build-module/components/use-moving-animation/index.js +9 -28
  342. package/build-module/components/use-moving-animation/index.js.map +1 -1
  343. package/build-module/components/writing-flow/index.js +2 -0
  344. package/build-module/components/writing-flow/index.js.map +1 -1
  345. package/build-module/components/writing-flow/use-select-all.js +7 -15
  346. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  347. package/build-module/hooks/align.js +16 -4
  348. package/build-module/hooks/align.js.map +1 -1
  349. package/build-module/hooks/anchor.js +3 -6
  350. package/build-module/hooks/anchor.js.map +1 -1
  351. package/build-module/hooks/color-panel.js +2 -1
  352. package/build-module/hooks/color-panel.js.map +1 -1
  353. package/build-module/hooks/content-lock-ui.js +128 -0
  354. package/build-module/hooks/content-lock-ui.js.map +1 -0
  355. package/build-module/hooks/dimensions.js +6 -6
  356. package/build-module/hooks/dimensions.js.map +1 -1
  357. package/build-module/hooks/duotone.js +6 -1
  358. package/build-module/hooks/duotone.js.map +1 -1
  359. package/build-module/hooks/font-appearance.js +2 -1
  360. package/build-module/hooks/font-appearance.js.map +1 -1
  361. package/build-module/hooks/font-family.js +3 -1
  362. package/build-module/hooks/font-family.js.map +1 -1
  363. package/build-module/hooks/font-size.js +3 -1
  364. package/build-module/hooks/font-size.js.map +1 -1
  365. package/build-module/hooks/gap.js +22 -6
  366. package/build-module/hooks/gap.js.map +1 -1
  367. package/build-module/hooks/index.js +4 -0
  368. package/build-module/hooks/index.js.map +1 -1
  369. package/build-module/hooks/layout.js +15 -11
  370. package/build-module/hooks/layout.js.map +1 -1
  371. package/build-module/hooks/letter-spacing.js +2 -1
  372. package/build-module/hooks/letter-spacing.js.map +1 -1
  373. package/build-module/hooks/line-height.js +2 -1
  374. package/build-module/hooks/line-height.js.map +1 -1
  375. package/build-module/hooks/lock.js +3 -6
  376. package/build-module/hooks/lock.js.map +1 -1
  377. package/build-module/hooks/metadata-name.js +45 -0
  378. package/build-module/hooks/metadata-name.js.map +1 -0
  379. package/build-module/hooks/metadata.js +50 -0
  380. package/build-module/hooks/metadata.js.map +1 -0
  381. package/build-module/hooks/text-decoration.js +2 -1
  382. package/build-module/hooks/text-decoration.js.map +1 -1
  383. package/build-module/hooks/text-transform.js +2 -1
  384. package/build-module/hooks/text-transform.js.map +1 -1
  385. package/build-module/hooks/use-typography-props.js +38 -0
  386. package/build-module/hooks/use-typography-props.js.map +1 -0
  387. package/build-module/hooks/utils.js +4 -2
  388. package/build-module/hooks/utils.js.map +1 -1
  389. package/build-module/index.js +1 -1
  390. package/build-module/index.js.map +1 -1
  391. package/build-module/layouts/constrained.js +74 -25
  392. package/build-module/layouts/constrained.js.map +1 -1
  393. package/build-module/layouts/flow.js +31 -3
  394. package/build-module/layouts/flow.js.map +1 -1
  395. package/build-module/store/actions.js +58 -20
  396. package/build-module/store/actions.js.map +1 -1
  397. package/build-module/store/reducer.js +37 -18
  398. package/build-module/store/reducer.js.map +1 -1
  399. package/build-module/store/selectors.js +80 -9
  400. package/build-module/store/selectors.js.map +1 -1
  401. package/build-module/utils/parse-css-unit-to-px.js +1 -1
  402. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  403. package/build-style/style-rtl.css +137 -86
  404. package/build-style/style.css +137 -86
  405. package/package.json +28 -28
  406. package/src/components/alignment-control/test/__snapshots__/index.js.snap +137 -108
  407. package/src/components/alignment-control/test/index.js +124 -33
  408. package/src/components/alignment-control/ui.js +8 -3
  409. package/src/components/block-actions/index.js +9 -8
  410. package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +108 -65
  411. package/src/components/block-alignment-control/test/index.js +95 -31
  412. package/src/components/block-alignment-control/ui.js +2 -2
  413. package/src/components/block-compare/test/__snapshots__/block-view.js.snap +28 -26
  414. package/src/components/block-compare/test/block-view.js +3 -3
  415. package/src/components/block-content-overlay/index.js +2 -6
  416. package/src/components/block-content-overlay/style.scss +24 -3
  417. package/src/components/block-draggable/draggable-chip.js +4 -1
  418. package/src/components/block-edit/edit.js +5 -1
  419. package/src/components/block-edit/test/edit.js +23 -21
  420. package/src/components/block-icon/test/__snapshots__/index.js.snap +22 -0
  421. package/src/components/block-icon/test/index.js +31 -16
  422. package/src/components/block-inspector/index.js +126 -12
  423. package/src/components/block-inspector/style.scss +7 -1
  424. package/src/components/block-list/block-list-compact.native.js +62 -0
  425. package/src/components/block-list/block.js +53 -13
  426. package/src/components/block-list/index.js +4 -4
  427. package/src/components/block-list/style.scss +68 -18
  428. package/src/components/block-list/test/block-list-context.native.js +11 -13
  429. package/src/components/block-list/use-block-props/index.js +10 -10
  430. package/src/components/block-list/use-block-props/use-block-class-names.js +4 -1
  431. package/src/components/block-list/use-block-props/use-focus-first-element.js +4 -9
  432. package/src/components/block-list/use-block-props/use-is-hovered.js +2 -2
  433. package/src/components/block-list/use-in-between-inserter.js +11 -13
  434. package/src/components/block-list-appender/index.js +27 -18
  435. package/src/components/block-list-appender/index.native.js +3 -6
  436. package/src/components/block-lock/use-block-lock.js +2 -0
  437. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +15 -9
  438. package/src/components/block-mover/button.js +6 -5
  439. package/src/components/block-mover/index.js +8 -7
  440. package/src/components/block-mover/index.native.js +20 -13
  441. package/src/components/block-popover/inbetween.js +85 -21
  442. package/src/components/block-popover/index.js +25 -17
  443. package/src/components/block-popover/style.scss +3 -4
  444. package/src/components/block-preview/auto.js +4 -2
  445. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -0
  446. package/src/components/block-settings-menu-controls/README.md +9 -0
  447. package/src/components/block-settings-menu-controls/index.js +13 -2
  448. package/src/components/block-styles/preview-panel.js +3 -0
  449. package/src/components/block-switcher/block-transformations-menu.js +127 -33
  450. package/src/components/block-switcher/style.scss +4 -2
  451. package/src/components/block-switcher/test/index.js +1 -2
  452. package/src/components/block-title/test/index.js +28 -25
  453. package/src/components/block-toolbar/index.js +27 -17
  454. package/src/components/block-tools/block-contextual-toolbar.js +10 -3
  455. package/src/components/block-tools/block-selection-button.js +35 -16
  456. package/src/components/block-tools/index.js +40 -24
  457. package/src/components/block-tools/insertion-point.js +3 -7
  458. package/src/components/block-tools/selected-block-popover.js +16 -7
  459. package/src/components/block-tools/style.scss +5 -0
  460. package/src/components/block-tools/use-block-toolbar-popover-props.js +136 -0
  461. package/src/components/block-tools/zoom-out-mode-inserters.js +57 -0
  462. package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +91 -51
  463. package/src/components/block-vertical-alignment-control/test/index.js +92 -23
  464. package/src/components/block-vertical-alignment-control/ui.js +3 -2
  465. package/src/components/button-block-appender/style.scss +23 -0
  466. package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -12
  467. package/src/components/colors/test/with-colors.js +37 -12
  468. package/src/components/colors-gradients/control.js +1 -0
  469. package/src/components/colors-gradients/dropdown.js +1 -1
  470. package/src/components/contrast-checker/test/index.js +135 -116
  471. package/src/components/default-block-appender/test/__snapshots__/index.js.snap +39 -57
  472. package/src/components/default-block-appender/test/index.js +32 -18
  473. package/src/components/font-sizes/README.MD +9 -0
  474. package/src/components/iframe/index.js +64 -5
  475. package/src/components/inner-blocks/README.md +2 -1
  476. package/src/components/inner-blocks/default-block-appender.js +1 -6
  477. package/src/components/inner-blocks/index.js +3 -2
  478. package/src/components/inner-blocks/index.native.js +5 -1
  479. package/src/components/inner-blocks/use-inner-block-template-sync.js +9 -5
  480. package/src/components/inner-blocks/use-nested-settings-update.js +3 -1
  481. package/src/components/inserter/index.js +2 -8
  482. package/src/components/inserter/library.js +11 -5
  483. package/src/components/inserter/menu.js +42 -29
  484. package/src/components/inserter/preview-panel.js +1 -1
  485. package/src/components/inserter/stories/fixtures.js +44 -0
  486. package/src/components/inserter/stories/index.js +90 -0
  487. package/src/components/inserter/style.scss +21 -27
  488. package/src/components/inserter/tabs.js +8 -4
  489. package/src/components/link-control/link-preview.js +5 -3
  490. package/src/components/link-control/search-input.js +2 -2
  491. package/src/components/link-control/search-item.js +39 -7
  492. package/src/components/list-view/block.js +29 -10
  493. package/src/components/list-view/branch.js +27 -4
  494. package/src/components/list-view/index.js +8 -3
  495. package/src/components/list-view/use-block-selection.js +0 -1
  496. package/src/components/media-placeholder/test/index.js +2 -2
  497. package/src/components/media-replace-flow/README.md +1 -1
  498. package/src/components/provider/use-block-sync.js +3 -6
  499. package/src/components/publish-date-time-picker/index.js +1 -1
  500. package/src/components/rich-text/index.js +33 -35
  501. package/src/components/rich-text/index.native.js +8 -21
  502. package/src/components/spacing-sizes-control/spacing-input-control.js +5 -0
  503. package/src/components/spacing-sizes-control/test/utils.js +26 -0
  504. package/src/components/spacing-sizes-control/utils.js +36 -9
  505. package/src/components/text-decoration-control/index.js +41 -30
  506. package/src/components/text-decoration-control/stories/index.js +37 -0
  507. package/src/components/text-transform-control/index.js +27 -27
  508. package/src/components/text-transform-control/stories/index.js +37 -0
  509. package/src/components/tool-selector/index.js +9 -11
  510. package/src/components/url-input/test/button.js +145 -71
  511. package/src/components/url-popover/index.js +1 -1
  512. package/src/components/url-popover/test/__snapshots__/index.js.snap +108 -80
  513. package/src/components/url-popover/test/index.js +14 -12
  514. package/src/components/use-block-drop-zone/index.js +15 -4
  515. package/src/components/use-moving-animation/index.js +9 -24
  516. package/src/components/warning/test/__snapshots__/index.js.snap +11 -14
  517. package/src/components/warning/test/index.js +32 -29
  518. package/src/components/writing-flow/index.js +2 -0
  519. package/src/components/writing-flow/use-select-all.js +13 -18
  520. package/src/hooks/align.js +24 -15
  521. package/src/hooks/anchor.js +1 -6
  522. package/src/hooks/color-panel.js +2 -1
  523. package/src/hooks/content-lock-ui.js +161 -0
  524. package/src/hooks/dimensions.js +7 -8
  525. package/src/hooks/duotone.js +13 -1
  526. package/src/hooks/font-appearance.js +1 -0
  527. package/src/hooks/font-family.js +2 -0
  528. package/src/hooks/font-size.js +2 -0
  529. package/src/hooks/gap.js +43 -25
  530. package/src/hooks/index.js +4 -0
  531. package/src/hooks/layout.js +27 -21
  532. package/src/hooks/layout.scss +7 -1
  533. package/src/hooks/letter-spacing.js +1 -0
  534. package/src/hooks/line-height.js +1 -0
  535. package/src/hooks/lock.js +1 -6
  536. package/src/hooks/metadata-name.js +48 -0
  537. package/src/hooks/metadata.js +64 -0
  538. package/src/hooks/test/gap.js +16 -22
  539. package/src/hooks/test/use-typography-props.js +28 -0
  540. package/src/hooks/text-decoration.js +1 -0
  541. package/src/hooks/text-transform.js +1 -0
  542. package/src/hooks/typography.scss +0 -6
  543. package/src/hooks/use-typography-props.js +41 -0
  544. package/src/hooks/utils.js +2 -11
  545. package/src/index.js +1 -0
  546. package/src/layouts/constrained.js +85 -33
  547. package/src/layouts/flow.js +21 -10
  548. package/src/store/actions.js +45 -4
  549. package/src/store/reducer.js +33 -21
  550. package/src/store/selectors.js +98 -19
  551. package/src/store/test/reducer.js +8 -5
  552. package/src/style.scss +0 -2
  553. package/src/utils/parse-css-unit-to-px.js +1 -1
  554. package/src/components/colors/test/__snapshots__/with-colors.js.snap +0 -23
  555. package/src/components/text-decoration-control/style.scss +0 -18
  556. package/src/components/text-transform-control/style.scss +0 -18
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { cloneDeep } from 'lodash';
5
-
6
1
  /**
7
2
  * Internal dependencies
8
3
  */
@@ -19,6 +14,9 @@ import {
19
14
  ROOT_LEVEL_ID,
20
15
  } from './fixtures/block-list-context.native';
21
16
 
17
+ // Deep clone an object to avoid mutating it later.
18
+ const cloneObject = ( obj ) => JSON.parse( JSON.stringify( obj ) );
19
+
22
20
  describe( 'findBlockLayoutByClientId', () => {
23
21
  it( "finds a block's layout data at root level", () => {
24
22
  const { findBlockLayoutByClientId } = DEFAULT_BLOCK_LIST_CONTEXT;
@@ -66,7 +64,7 @@ describe( 'findBlockLayoutByClientId', () => {
66
64
  describe( 'deleteBlockLayoutByClientId', () => {
67
65
  it( "deletes a block's layout data at root level", () => {
68
66
  const { findBlockLayoutByClientId } = DEFAULT_BLOCK_LIST_CONTEXT;
69
- const defaultBlockLayouts = cloneDeep( BLOCKS_LAYOUTS_DATA );
67
+ const defaultBlockLayouts = cloneObject( BLOCKS_LAYOUTS_DATA );
70
68
  const currentBlockLayouts = deleteBlockLayoutByClientId(
71
69
  defaultBlockLayouts,
72
70
  ROOT_LEVEL_ID
@@ -82,7 +80,7 @@ describe( 'deleteBlockLayoutByClientId', () => {
82
80
 
83
81
  it( "deletes a nested block's layout data with inner blocks", () => {
84
82
  const { findBlockLayoutByClientId } = DEFAULT_BLOCK_LIST_CONTEXT;
85
- const defaultBlockLayouts = cloneDeep( BLOCKS_LAYOUTS_DATA );
83
+ const defaultBlockLayouts = cloneObject( BLOCKS_LAYOUTS_DATA );
86
84
  const currentBlockLayouts = deleteBlockLayoutByClientId(
87
85
  defaultBlockLayouts,
88
86
  NESTED_WITH_INNER_BLOCKS_ID
@@ -98,7 +96,7 @@ describe( 'deleteBlockLayoutByClientId', () => {
98
96
 
99
97
  it( "deletes a deep nested block's layout data", () => {
100
98
  const { findBlockLayoutByClientId } = DEFAULT_BLOCK_LIST_CONTEXT;
101
- const defaultBlockLayouts = cloneDeep( BLOCKS_LAYOUTS_DATA );
99
+ const defaultBlockLayouts = cloneObject( BLOCKS_LAYOUTS_DATA );
102
100
  const currentBlockLayouts = deleteBlockLayoutByClientId(
103
101
  defaultBlockLayouts,
104
102
  DEEP_NESTED_ID
@@ -120,7 +118,7 @@ describe( 'updateBlocksLayouts', () => {
120
118
  findBlockLayoutByClientId,
121
119
  updateBlocksLayouts,
122
120
  } = DEFAULT_BLOCK_LIST_CONTEXT;
123
- const currentBlockLayouts = cloneDeep( blocksLayouts );
121
+ const currentBlockLayouts = cloneObject( blocksLayouts );
124
122
  const BLOCK_CLIENT_ID = PARAGRAPH_BLOCK_LAYOUT_DATA.clientId;
125
123
 
126
124
  updateBlocksLayouts( currentBlockLayouts, PARAGRAPH_BLOCK_LAYOUT_DATA );
@@ -142,7 +140,7 @@ describe( 'updateBlocksLayouts', () => {
142
140
  const { findBlockLayoutByClientId, updateBlocksLayouts } =
143
141
  DEFAULT_BLOCK_LIST_CONTEXT;
144
142
  const currentBlockLayouts = {
145
- current: cloneDeep( BLOCKS_LAYOUTS_DATA ),
143
+ current: cloneObject( BLOCKS_LAYOUTS_DATA ),
146
144
  };
147
145
  const PARENT_BLOCK_CLIENT_ID = GROUP_BLOCK_LAYOUT_DATA.clientId;
148
146
 
@@ -181,7 +179,7 @@ describe( 'updateBlocksLayouts', () => {
181
179
  const { findBlockLayoutByClientId, updateBlocksLayouts } =
182
180
  DEFAULT_BLOCK_LIST_CONTEXT;
183
181
  const currentBlockLayouts = {
184
- current: cloneDeep( BLOCKS_LAYOUTS_DATA ),
182
+ current: cloneObject( BLOCKS_LAYOUTS_DATA ),
185
183
  };
186
184
 
187
185
  // Add block layout data to it's parents inner blocks
@@ -207,7 +205,7 @@ describe( 'updateBlocksLayouts', () => {
207
205
  const { findBlockLayoutByClientId, updateBlocksLayouts } =
208
206
  DEFAULT_BLOCK_LIST_CONTEXT;
209
207
  const currentBlockLayouts = {
210
- current: cloneDeep( BLOCKS_LAYOUTS_DATA ),
208
+ current: cloneObject( BLOCKS_LAYOUTS_DATA ),
211
209
  };
212
210
 
213
211
  updateBlocksLayouts( currentBlockLayouts, {
@@ -227,7 +225,7 @@ describe( 'updateBlocksLayouts', () => {
227
225
  const { findBlockLayoutByClientId, updateBlocksLayouts } =
228
226
  DEFAULT_BLOCK_LIST_CONTEXT;
229
227
  const currentBlockLayouts = {
230
- current: cloneDeep( BLOCKS_LAYOUTS_DATA ),
228
+ current: cloneObject( BLOCKS_LAYOUTS_DATA ),
231
229
  };
232
230
 
233
231
  updateBlocksLayouts( currentBlockLayouts, {
@@ -34,6 +34,7 @@ import { useNavModeExit } from './use-nav-mode-exit';
34
34
  import { useBlockRefProvider } from './use-block-refs';
35
35
  import { useIntersectionObserver } from './use-intersection-observer';
36
36
  import { store as blockEditorStore } from '../../../store';
37
+ import useBlockOverlayActive from '../../block-content-overlay';
37
38
 
38
39
  /**
39
40
  * If the block count exceeds the threshold, we disable the reordering animation
@@ -50,18 +51,14 @@ const BLOCK_ANIMATION_THRESHOLD = 200;
50
51
  * also pass any other props through this hook, and they will be merged and
51
52
  * returned.
52
53
  *
53
- * @param {Object} props Optional. Props to pass to the element. Must contain
54
- * the ref if one is defined.
55
- * @param {Object} options Options for internal use only.
54
+ * @param {Object} props Optional. Props to pass to the element. Must contain
55
+ * the ref if one is defined.
56
+ * @param {Object} options Options for internal use only.
56
57
  * @param {boolean} options.__unstableIsHtml
57
- * @param {boolean} options.__unstableIsDisabled Whether the block should be disabled.
58
58
  *
59
59
  * @return {Object} Props to pass to the element to mark as a block.
60
60
  */
61
- export function useBlockProps(
62
- props = {},
63
- { __unstableIsHtml, __unstableIsDisabled = false } = {}
64
- ) {
61
+ export function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {
65
62
  const {
66
63
  clientId,
67
64
  className,
@@ -114,6 +111,8 @@ export function useBlockProps(
114
111
  [ clientId ]
115
112
  );
116
113
 
114
+ const hasOverlay = useBlockOverlayActive( clientId );
115
+
117
116
  // translators: %s: Type of block (i.e. Text, Image etc)
118
117
  const blockLabel = sprintf( __( 'Block: %s' ), blockTitle );
119
118
  const htmlSuffix = mode === 'html' && ! __unstableIsHtml ? '-visual' : '';
@@ -132,7 +131,7 @@ export function useBlockProps(
132
131
  enableAnimation,
133
132
  triggerAnimationOnChange: index,
134
133
  } ),
135
- useDisabled( { isDisabled: ! __unstableIsDisabled } ),
134
+ useDisabled( { isDisabled: ! hasOverlay } ),
136
135
  ] );
137
136
 
138
137
  const blockEditContext = useBlockEditContext();
@@ -144,11 +143,11 @@ export function useBlockProps(
144
143
  }
145
144
 
146
145
  return {
146
+ tabIndex: 0,
147
147
  ...wrapperProps,
148
148
  ...props,
149
149
  ref: mergedRefs,
150
150
  id: `block-${ clientId }${ htmlSuffix }`,
151
- tabIndex: 0,
152
151
  role: 'document',
153
152
  'aria-label': blockLabel,
154
153
  'data-block': clientId,
@@ -158,6 +157,7 @@ export function useBlockProps(
158
157
  // The wp-block className is important for editor styles.
159
158
  classnames( 'block-editor-block-list__block', {
160
159
  'wp-block': ! isAligned,
160
+ 'has-block-overlay': hasOverlay,
161
161
  } ),
162
162
  className,
163
163
  props.className,
@@ -34,6 +34,7 @@ export function useBlockClassNames( clientId ) {
34
34
  hasSelectedInnerBlock,
35
35
  isTyping,
36
36
  __unstableIsFullySelected,
37
+ __unstableSelectionHasUnmergeableBlock,
37
38
  } = select( blockEditorStore );
38
39
  const { outlineMode } = getSettings();
39
40
  const isDragging = isBlockBeingDragged( clientId );
@@ -51,7 +52,9 @@ export function useBlockClassNames( clientId ) {
51
52
  'is-highlighted': isBlockHighlighted( clientId ),
52
53
  'is-multi-selected': isMultiSelected,
53
54
  'is-partially-selected':
54
- isMultiSelected && ! __unstableIsFullySelected(),
55
+ isMultiSelected &&
56
+ ! __unstableIsFullySelected() &&
57
+ ! __unstableSelectionHasUnmergeableBlock(),
55
58
  'is-reusable': isReusableBlock( getBlockType( name ) ),
56
59
  'is-dragging': isDragging,
57
60
  'has-child-selected': isAncestorOfSelectedBlock,
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { first, last } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -36,7 +31,7 @@ function useInitialPosition( clientId ) {
36
31
  ( select ) => {
37
32
  const {
38
33
  getSelectedBlocksInitialCaretPosition,
39
- isNavigationMode,
34
+ __unstableGetEditorMode,
40
35
  isBlockSelected,
41
36
  } = select( blockEditorStore );
42
37
 
@@ -44,7 +39,7 @@ function useInitialPosition( clientId ) {
44
39
  return;
45
40
  }
46
41
 
47
- if ( isNavigationMode() ) {
42
+ if ( __unstableGetEditorMode() !== 'edit' ) {
48
43
  return;
49
44
  }
50
45
 
@@ -85,7 +80,7 @@ export function useFocusFirstElement( clientId ) {
85
80
  const { ownerDocument } = ref.current;
86
81
 
87
82
  // Do not focus the block if it already contains the active element.
88
- if ( ref.current.contains( ownerDocument.activeElement ) ) {
83
+ if ( isInsideRootBlock( ref.current, ownerDocument.activeElement ) ) {
89
84
  return;
90
85
  }
91
86
 
@@ -98,7 +93,7 @@ export function useFocusFirstElement( clientId ) {
98
93
  // tabbables.
99
94
  const isReverse = -1 === initialPosition;
100
95
  const target =
101
- ( isReverse ? last : first )( textInputs ) || ref.current;
96
+ textInputs[ isReverse ? textInputs.length - 1 : 0 ] || ref.current;
102
97
 
103
98
  if ( ! isInsideRootBlock( ref.current, target ) ) {
104
99
  ref.current.focus();
@@ -26,8 +26,8 @@ function listener( event ) {
26
26
  */
27
27
  export function useIsHovered() {
28
28
  const isEnabled = useSelect( ( select ) => {
29
- const { isNavigationMode, getSettings } = select( blockEditorStore );
30
- return isNavigationMode() || getSettings().outlineMode;
29
+ const { getSettings } = select( blockEditorStore );
30
+ return getSettings().outlineMode;
31
31
  }, [] );
32
32
 
33
33
  return useRefEffect(
@@ -14,8 +14,10 @@ import { InsertionPointOpenRef } from '../block-tools/insertion-point';
14
14
 
15
15
  export function useInBetweenInserter() {
16
16
  const openRef = useContext( InsertionPointOpenRef );
17
- const hasReducedUI = useSelect(
18
- ( select ) => select( blockEditorStore ).getSettings().hasReducedUI,
17
+ const isInBetweenInserterDisabled = useSelect(
18
+ ( select ) =>
19
+ select( blockEditorStore ).getSettings().hasReducedUI ||
20
+ select( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',
19
21
  []
20
22
  );
21
23
  const {
@@ -26,13 +28,14 @@ export function useInBetweenInserter() {
26
28
  isMultiSelecting,
27
29
  getSelectedBlockClientIds,
28
30
  getTemplateLock,
31
+ __unstableIsWithinBlockOverlay,
29
32
  } = useSelect( blockEditorStore );
30
33
  const { showInsertionPoint, hideInsertionPoint } =
31
34
  useDispatch( blockEditorStore );
32
35
 
33
36
  return useRefEffect(
34
37
  ( node ) => {
35
- if ( hasReducedUI ) {
38
+ if ( isInBetweenInserterDisabled ) {
36
39
  return;
37
40
  }
38
41
 
@@ -108,16 +111,11 @@ export function useInBetweenInserter() {
108
111
 
109
112
  // Don't show the insertion point if a parent block has an "overlay"
110
113
  // See https://github.com/WordPress/gutenberg/pull/34012#pullrequestreview-727762337
111
- const parentOverlay = element.parentElement?.closest(
112
- '.block-editor-block-content-overlay'
113
- );
114
- if ( parentOverlay ) {
115
- return;
116
- }
117
-
118
114
  const clientId = element.id.slice( 'block-'.length );
119
-
120
- if ( ! clientId ) {
115
+ if (
116
+ ! clientId ||
117
+ __unstableIsWithinBlockOverlay( clientId )
118
+ ) {
121
119
  return;
122
120
  }
123
121
 
@@ -126,7 +124,6 @@ export function useInBetweenInserter() {
126
124
  if ( getSelectedBlockClientIds().includes( clientId ) ) {
127
125
  return;
128
126
  }
129
-
130
127
  const elementRect = element.getBoundingClientRect();
131
128
 
132
129
  if (
@@ -175,6 +172,7 @@ export function useInBetweenInserter() {
175
172
  showInsertionPoint,
176
173
  hideInsertionPoint,
177
174
  getSelectedBlockClientIds,
175
+ isInBetweenInserterDisabled,
178
176
  ]
179
177
  );
180
178
  }
@@ -6,7 +6,7 @@ import classnames from 'classnames';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { withSelect } from '@wordpress/data';
9
+ import { useSelect } from '@wordpress/data';
10
10
  import { getDefaultBlockName } from '@wordpress/blocks';
11
11
 
12
12
  /**
@@ -18,14 +18,35 @@ import { store as blockEditorStore } from '../../store';
18
18
 
19
19
  function BlockListAppender( {
20
20
  rootClientId,
21
- canInsertDefaultBlock,
22
- isLocked,
23
21
  renderAppender: CustomAppender,
24
22
  className,
25
- selectedBlockClientId,
26
23
  tagName: TagName = 'div',
27
24
  } ) {
28
- if ( isLocked || CustomAppender === false ) {
25
+ const { hideInserter, canInsertDefaultBlock, selectedBlockClientId } =
26
+ useSelect(
27
+ ( select ) => {
28
+ const {
29
+ canInsertBlockType,
30
+ getTemplateLock,
31
+ getSelectedBlockClientId,
32
+ __unstableGetEditorMode,
33
+ } = select( blockEditorStore );
34
+
35
+ return {
36
+ hideInserter:
37
+ !! getTemplateLock( rootClientId ) ||
38
+ __unstableGetEditorMode() === 'zoom-out',
39
+ canInsertDefaultBlock: canInsertBlockType(
40
+ getDefaultBlockName(),
41
+ rootClientId
42
+ ),
43
+ selectedBlockClientId: getSelectedBlockClientId(),
44
+ };
45
+ },
46
+ [ rootClientId ]
47
+ );
48
+
49
+ if ( hideInserter || CustomAppender === false ) {
29
50
  return null;
30
51
  }
31
52
 
@@ -92,16 +113,4 @@ function BlockListAppender( {
92
113
  );
93
114
  }
94
115
 
95
- export default withSelect( ( select, { rootClientId } ) => {
96
- const { canInsertBlockType, getTemplateLock, getSelectedBlockClientId } =
97
- select( blockEditorStore );
98
-
99
- return {
100
- isLocked: !! getTemplateLock( rootClientId ),
101
- canInsertDefaultBlock: canInsertBlockType(
102
- getDefaultBlockName(),
103
- rootClientId
104
- ),
105
- selectedBlockClientId: getSelectedBlockClientId(),
106
- };
107
- } )( BlockListAppender );
116
+ export default BlockListAppender;
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { last } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -36,7 +31,9 @@ function BlockListAppender( {
36
31
  return (
37
32
  <DefaultBlockAppender
38
33
  rootClientId={ rootClientId }
39
- lastBlockClientId={ last( blockClientIds ) }
34
+ lastBlockClientId={
35
+ blockClientIds[ blockClientIds.length - 1 ]
36
+ }
40
37
  containerStyle={ styles.blockListAppender }
41
38
  placeholder={ blockClientIds.length > 0 ? '' : null }
42
39
  showSeparator={ showSeparator }
@@ -25,6 +25,7 @@ export default function useBlockLock( clientId ) {
25
25
  canLockBlockType,
26
26
  getBlockName,
27
27
  getBlockRootClientId,
28
+ getTemplateLock,
28
29
  } = select( blockEditorStore );
29
30
  const rootClientId = getBlockRootClientId( clientId );
30
31
 
@@ -37,6 +38,7 @@ export default function useBlockLock( clientId ) {
37
38
  canMove,
38
39
  canRemove,
39
40
  canLock: canLockBlockType( getBlockName( clientId ) ),
41
+ isContentLocked: getTemplateLock( clientId ) === 'noContent',
40
42
  isLocked: ! canEdit || ! canMove || ! canRemove,
41
43
  };
42
44
  },
@@ -2,7 +2,7 @@
2
2
  * External dependencies
3
3
  */
4
4
  import { Platform, findNodeHandle } from 'react-native';
5
- import { partial, first, castArray, last, every } from 'lodash';
5
+
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
@@ -307,21 +307,25 @@ export default compose(
307
307
  canInsertBlockType,
308
308
  getTemplateLock,
309
309
  } = select( blockEditorStore );
310
- const normalizedClientIds = castArray( clientIds );
310
+ const normalizedClientIds = Array.isArray( clientIds )
311
+ ? clientIds
312
+ : [ clientIds ];
311
313
  const block = getBlock( normalizedClientIds );
312
314
  const blockName = getBlockName( normalizedClientIds );
313
315
  const blockType = getBlockType( blockName );
314
316
  const blockTitle = blockType?.title;
315
- const firstClientId = first( normalizedClientIds );
317
+ const firstClientId = normalizedClientIds[ 0 ];
316
318
  const rootClientId = getBlockRootClientId( firstClientId );
317
319
  const blockOrder = getBlockOrder( rootClientId );
318
320
 
319
321
  const firstIndex = getBlockIndex( firstClientId );
320
- const lastIndex = getBlockIndex( last( normalizedClientIds ) );
322
+ const lastIndex = getBlockIndex(
323
+ normalizedClientIds[ normalizedClientIds.length - 1 ]
324
+ );
321
325
 
322
326
  const innerBlocks = getBlocksByClientId( clientIds );
323
327
 
324
- const canDuplicate = every( innerBlocks, ( innerBlock ) => {
328
+ const canDuplicate = innerBlocks.every( ( innerBlock ) => {
325
329
  return (
326
330
  !! innerBlock &&
327
331
  hasBlockSupport( innerBlock.name, 'multiple', true ) &&
@@ -336,9 +340,9 @@ export default compose(
336
340
  isExactlyOneBlock && isDefaultBlock && isEmptyContent;
337
341
  const isLocked = !! getTemplateLock( rootClientId );
338
342
 
339
- const selectedBlockClientId = first( getSelectedBlockClientIds() );
343
+ const selectedBlockClientId = getSelectedBlockClientIds()[ 0 ];
340
344
  const selectedBlock = selectedBlockClientId
341
- ? first( getBlocksByClientId( selectedBlockClientId ) )
345
+ ? getBlocksByClientId( selectedBlockClientId )[ 0 ]
342
346
  : undefined;
343
347
  const selectedBlockPossibleTransformations = selectedBlock
344
348
  ? getBlockTransformItems( [ selectedBlock ], rootClientId )
@@ -406,8 +410,10 @@ export default compose(
406
410
  duplicateBlock() {
407
411
  return duplicateBlocks( clientIds );
408
412
  },
409
- onMoveDown: partial( moveBlocksDown, clientIds, rootClientId ),
410
- onMoveUp: partial( moveBlocksUp, clientIds, rootClientId ),
413
+ onMoveDown: ( ...args ) =>
414
+ moveBlocksDown( clientIds, rootClientId, ...args ),
415
+ onMoveUp: ( ...args ) =>
416
+ moveBlocksUp( clientIds, rootClientId, ...args ),
411
417
  openGeneralSidebar: () =>
412
418
  openGeneralSidebar( 'edit-post/block' ),
413
419
  pasteBlock: ( clipboardBlock ) => {
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import classnames from 'classnames';
5
- import { castArray, first, last } from 'lodash';
6
5
 
7
6
  /**
8
7
  * WordPress dependencies
@@ -62,7 +61,10 @@ const BlockMoverButton = forwardRef(
62
61
  ref
63
62
  ) => {
64
63
  const instanceId = useInstanceId( BlockMoverButton );
65
- const blocksCount = castArray( clientIds ).length;
64
+ const normalizedClientIds = Array.isArray( clientIds )
65
+ ? clientIds
66
+ : [ clientIds ];
67
+ const blocksCount = normalizedClientIds.length;
66
68
 
67
69
  const {
68
70
  blockType,
@@ -81,12 +83,11 @@ const BlockMoverButton = forwardRef(
81
83
  getBlock,
82
84
  getBlockListSettings,
83
85
  } = select( blockEditorStore );
84
- const normalizedClientIds = castArray( clientIds );
85
- const firstClientId = first( normalizedClientIds );
86
+ const firstClientId = normalizedClientIds[ 0 ];
86
87
  const blockRootClientId = getBlockRootClientId( firstClientId );
87
88
  const firstBlockIndex = getBlockIndex( firstClientId );
88
89
  const lastBlockIndex = getBlockIndex(
89
- last( normalizedClientIds )
90
+ normalizedClientIds[ normalizedClientIds.length - 1 ]
90
91
  );
91
92
  const blockOrder = getBlockOrder( blockRootClientId );
92
93
  const block = getBlock( firstClientId );
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { first, last, castArray } from 'lodash';
5
4
  import classnames from 'classnames';
6
5
 
7
6
  /**
@@ -30,13 +29,15 @@ function BlockMover( { clientIds, hideDragHandle } ) {
30
29
  getBlockOrder,
31
30
  getBlockRootClientId,
32
31
  } = select( blockEditorStore );
33
- const normalizedClientIds = castArray( clientIds );
34
- const firstClientId = first( normalizedClientIds );
35
- const _rootClientId = getBlockRootClientId(
36
- first( normalizedClientIds )
37
- );
32
+ const normalizedClientIds = Array.isArray( clientIds )
33
+ ? clientIds
34
+ : [ clientIds ];
35
+ const firstClientId = normalizedClientIds[ 0 ];
36
+ const _rootClientId = getBlockRootClientId( firstClientId );
38
37
  const firstIndex = getBlockIndex( firstClientId );
39
- const lastIndex = getBlockIndex( last( normalizedClientIds ) );
38
+ const lastIndex = getBlockIndex(
39
+ normalizedClientIds[ normalizedClientIds.length - 1 ]
40
+ );
40
41
  const blockOrder = getBlockOrder( _rootClientId );
41
42
 
42
43
  return {
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { first, last, partial, castArray } from 'lodash';
5
4
  import { Platform } from 'react-native';
6
5
 
7
6
  /**
@@ -149,12 +148,16 @@ export default compose(
149
148
  getBlockRootClientId,
150
149
  getBlockOrder,
151
150
  } = select( blockEditorStore );
152
- const normalizedClientIds = castArray( clientIds );
153
- const firstClientId = first( normalizedClientIds );
151
+ const normalizedClientIds = Array.isArray( clientIds )
152
+ ? clientIds
153
+ : [ clientIds ];
154
+ const firstClientId = normalizedClientIds[ 0 ];
154
155
  const rootClientId = getBlockRootClientId( firstClientId );
155
156
  const blockOrder = getBlockOrder( rootClientId );
156
157
  const firstIndex = getBlockIndex( firstClientId );
157
- const lastIndex = getBlockIndex( last( normalizedClientIds ) );
158
+ const lastIndex = getBlockIndex(
159
+ normalizedClientIds[ normalizedClientIds.length - 1 ]
160
+ );
158
161
 
159
162
  return {
160
163
  firstIndex,
@@ -169,15 +172,19 @@ export default compose(
169
172
  const { moveBlocksDown, moveBlocksUp, moveBlocksToPosition } =
170
173
  dispatch( blockEditorStore );
171
174
  return {
172
- onMoveDown: partial( moveBlocksDown, clientIds, rootClientId ),
173
- onMoveUp: partial( moveBlocksUp, clientIds, rootClientId ),
174
- onLongMove: ( targetIndex ) =>
175
- partial(
176
- moveBlocksToPosition,
177
- clientIds,
178
- rootClientId,
179
- targetIndex
180
- ),
175
+ onMoveDown: ( ...args ) =>
176
+ moveBlocksDown( clientIds, rootClientId, ...args ),
177
+ onMoveUp: ( ...args ) =>
178
+ moveBlocksUp( clientIds, rootClientId, ...args ),
179
+ onLongMove:
180
+ ( targetIndex ) =>
181
+ ( ...args ) =>
182
+ moveBlocksToPosition(
183
+ clientIds,
184
+ rootClientId,
185
+ targetIndex,
186
+ ...args
187
+ ),
181
188
  };
182
189
  } ),
183
190
  withInstanceId