@wordpress/block-editor 12.14.0 → 12.16.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 (664) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +10 -5
  3. package/build/components/block-canvas/index.js +22 -6
  4. package/build/components/block-canvas/index.js.map +1 -1
  5. package/build/components/block-card/index.js +1 -1
  6. package/build/components/block-card/index.js.map +1 -1
  7. package/build/components/block-controls/hook.js +3 -23
  8. package/build/components/block-controls/hook.js.map +1 -1
  9. package/build/components/block-edit/context.js +5 -1
  10. package/build/components/block-edit/context.js.map +1 -1
  11. package/build/components/block-edit/index.js +18 -9
  12. package/build/components/block-edit/index.js.map +1 -1
  13. package/build/components/block-info-slot-fill/index.js +3 -4
  14. package/build/components/block-info-slot-fill/index.js.map +1 -1
  15. package/build/components/block-list/block.js +28 -9
  16. package/build/components/block-list/block.js.map +1 -1
  17. package/build/components/block-list/block.native.js +16 -5
  18. package/build/components/block-list/block.native.js.map +1 -1
  19. package/build/components/block-list/use-block-props/index.js +61 -18
  20. package/build/components/block-list/use-block-props/index.js.map +1 -1
  21. package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  22. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  23. package/build/components/block-list/use-block-props/use-is-hovered.js +4 -14
  24. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  25. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  26. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  27. package/build/components/block-parent-selector/index.js +1 -1
  28. package/build/components/block-parent-selector/index.js.map +1 -1
  29. package/build/components/block-pattern-setup/index.js +25 -16
  30. package/build/components/block-pattern-setup/index.js.map +1 -1
  31. package/build/components/block-pattern-setup/setup-toolbar.js +4 -2
  32. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  33. package/build/components/block-patterns-list/index.js +37 -20
  34. package/build/components/block-patterns-list/index.js.map +1 -1
  35. package/build/components/block-removal-warning-modal/index.js +2 -9
  36. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  37. package/build/components/block-rename/index.js +28 -0
  38. package/build/components/block-rename/index.js.map +1 -0
  39. package/build/components/block-rename/is-empty-string.js +10 -0
  40. package/build/components/block-rename/is-empty-string.js.map +1 -0
  41. package/build/components/block-rename/modal.js +90 -0
  42. package/build/components/block-rename/modal.js.map +1 -0
  43. package/build/components/block-rename/rename-control.js +74 -0
  44. package/build/components/block-rename/rename-control.js.map +1 -0
  45. package/build/components/block-rename/use-block-rename.js +17 -0
  46. package/build/components/block-rename/use-block-rename.js.map +1 -0
  47. package/build/components/block-settings/container.native.js +6 -4
  48. package/build/components/block-settings/container.native.js.map +1 -1
  49. package/build/components/block-settings-menu/block-settings-dropdown.js +33 -20
  50. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  51. package/build/components/block-settings-menu-controls/index.js +7 -0
  52. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  53. package/build/components/block-styles/index.js +1 -1
  54. package/build/components/block-styles/index.js.map +1 -1
  55. package/build/components/block-styles/index.native.js +3 -2
  56. package/build/components/block-styles/index.native.js.map +1 -1
  57. package/build/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  58. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  59. package/build/components/block-toolbar/index.js +89 -27
  60. package/build/components/block-toolbar/index.js.map +1 -1
  61. package/build/components/block-tools/block-toolbar-breadcrumb.js +49 -0
  62. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  63. package/build/components/block-tools/block-toolbar-popover.js +86 -0
  64. package/build/components/block-tools/block-toolbar-popover.js.map +1 -0
  65. package/build/components/block-tools/index.js +27 -24
  66. package/build/components/block-tools/index.js.map +1 -1
  67. package/build/components/block-types-list/index.js +6 -2
  68. package/build/components/block-types-list/index.js.map +1 -1
  69. package/build/components/block-types-list/index.native.js +4 -3
  70. package/build/components/block-types-list/index.native.js.map +1 -1
  71. package/build/components/block-variation-picker/index.native.js +2 -1
  72. package/build/components/block-variation-picker/index.native.js.map +1 -1
  73. package/build/components/colors-gradients/control.js +28 -17
  74. package/build/components/colors-gradients/control.js.map +1 -1
  75. package/build/components/date-format-picker/index.js +8 -1
  76. package/build/components/date-format-picker/index.js.map +1 -1
  77. package/build/components/duotone-control/index.js +1 -4
  78. package/build/components/duotone-control/index.js.map +1 -1
  79. package/build/components/global-styles/advanced-panel.js +1 -1
  80. package/build/components/global-styles/advanced-panel.js.map +1 -1
  81. package/build/components/global-styles/color-panel.js +22 -20
  82. package/build/components/global-styles/color-panel.js.map +1 -1
  83. package/build/components/global-styles/filters-panel.js +9 -3
  84. package/build/components/global-styles/filters-panel.js.map +1 -1
  85. package/build/components/global-styles/typography-panel.js +20 -31
  86. package/build/components/global-styles/typography-panel.js.map +1 -1
  87. package/build/components/image-link-destinations/index.native.js +118 -0
  88. package/build/components/image-link-destinations/index.native.js.map +1 -0
  89. package/build/components/image-size-control/index.js +0 -5
  90. package/build/components/image-size-control/index.js.map +1 -1
  91. package/build/components/index.native.js +8 -0
  92. package/build/components/index.native.js.map +1 -1
  93. package/build/components/inner-blocks/index.js +3 -1
  94. package/build/components/inner-blocks/index.js.map +1 -1
  95. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js +29 -31
  96. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  97. package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
  98. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  99. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
  100. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  101. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -1
  102. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  103. package/build/components/inserter/block-patterns-tab/utils.js +3 -4
  104. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
  105. package/build/components/inserter/hooks/use-patterns-state.js +2 -1
  106. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  107. package/build/components/inserter/media-tab/media-panel.js +2 -2
  108. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  109. package/build/components/inserter/menu.js +14 -7
  110. package/build/components/inserter/menu.js.map +1 -1
  111. package/build/components/inserter/preview-panel.js +2 -2
  112. package/build/components/inserter/preview-panel.js.map +1 -1
  113. package/build/components/inserter-button/index.native.js +98 -0
  114. package/build/components/inserter-button/index.native.js.map +1 -0
  115. package/build/components/inserter-button/sparkles.js +23 -0
  116. package/build/components/inserter-button/sparkles.js.map +1 -0
  117. package/build/components/inserter-draggable-blocks/index.js +8 -4
  118. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  119. package/build/components/inserter-listbox/index.js +11 -6
  120. package/build/components/inserter-listbox/index.js.map +1 -1
  121. package/build/components/inserter-listbox/item.js +24 -23
  122. package/build/components/inserter-listbox/item.js.map +1 -1
  123. package/build/components/inserter-listbox/row.js +5 -5
  124. package/build/components/inserter-listbox/row.js.map +1 -1
  125. package/build/components/inspector-controls/fill.js +3 -3
  126. package/build/components/inspector-controls/fill.js.map +1 -1
  127. package/build/components/inspector-controls/fill.native.js +3 -3
  128. package/build/components/inspector-controls/fill.native.js.map +1 -1
  129. package/build/components/list-view/use-list-view-expand-selected-item.js +2 -3
  130. package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  131. package/build/components/navigable-toolbar/index.js +2 -2
  132. package/build/components/navigable-toolbar/index.js.map +1 -1
  133. package/build/components/preview-options/index.js +6 -60
  134. package/build/components/preview-options/index.js.map +1 -1
  135. package/build/components/rich-text/content.js +26 -23
  136. package/build/components/rich-text/content.js.map +1 -1
  137. package/build/components/rich-text/get-rich-text-values.js +2 -1
  138. package/build/components/rich-text/get-rich-text-values.js.map +1 -1
  139. package/build/components/rich-text/index.js +2 -30
  140. package/build/components/rich-text/index.js.map +1 -1
  141. package/build/components/rich-text/index.native.js +10 -17
  142. package/build/components/rich-text/index.native.js.map +1 -1
  143. package/build/components/rich-text/native/get-format-colors.native.js +22 -24
  144. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  145. package/build/components/rich-text/native/index.native.js +41 -37
  146. package/build/components/rich-text/native/index.native.js.map +1 -1
  147. package/build/components/rich-text/use-input-rules.js +35 -2
  148. package/build/components/rich-text/use-input-rules.js.map +1 -1
  149. package/build/components/rich-text/with-deprecations.js +50 -0
  150. package/build/components/rich-text/with-deprecations.js.map +1 -0
  151. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  152. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  153. package/build/components/use-block-drop-zone/index.js +74 -9
  154. package/build/components/use-block-drop-zone/index.js.map +1 -1
  155. package/build/components/use-moving-animation/index.js +2 -1
  156. package/build/components/use-moving-animation/index.js.map +1 -1
  157. package/build/components/use-on-block-drop/index.js +1 -1
  158. package/build/components/use-on-block-drop/index.js.map +1 -1
  159. package/build/components/use-resize-canvas/index.js +4 -1
  160. package/build/components/use-resize-canvas/index.js.map +1 -1
  161. package/build/components/use-settings/index.js +16 -2
  162. package/build/components/use-settings/index.js.map +1 -1
  163. package/build/hooks/align.js +20 -68
  164. package/build/hooks/align.js.map +1 -1
  165. package/build/hooks/align.native.js +11 -1
  166. package/build/hooks/align.native.js.map +1 -1
  167. package/build/hooks/anchor.js +13 -29
  168. package/build/hooks/anchor.js.map +1 -1
  169. package/build/hooks/background.js +28 -31
  170. package/build/hooks/background.js.map +1 -1
  171. package/build/hooks/block-hooks.js +24 -32
  172. package/build/hooks/block-hooks.js.map +1 -1
  173. package/build/hooks/block-renaming.js +38 -0
  174. package/build/hooks/block-renaming.js.map +1 -1
  175. package/build/hooks/border.js +58 -80
  176. package/build/hooks/border.js.map +1 -1
  177. package/build/hooks/color.js +76 -89
  178. package/build/hooks/color.js.map +1 -1
  179. package/build/hooks/content-lock-ui.js +29 -29
  180. package/build/hooks/content-lock-ui.js.map +1 -1
  181. package/build/hooks/custom-class-name.js +12 -29
  182. package/build/hooks/custom-class-name.js.map +1 -1
  183. package/build/hooks/custom-fields.js +64 -73
  184. package/build/hooks/custom-fields.js.map +1 -1
  185. package/build/hooks/dimensions.js +21 -17
  186. package/build/hooks/dimensions.js.map +1 -1
  187. package/build/hooks/duotone.js +31 -61
  188. package/build/hooks/duotone.js.map +1 -1
  189. package/build/hooks/font-family.js +16 -25
  190. package/build/hooks/font-family.js.map +1 -1
  191. package/build/hooks/font-size.js +51 -119
  192. package/build/hooks/font-size.js.map +1 -1
  193. package/build/hooks/index.js +25 -15
  194. package/build/hooks/index.js.map +1 -1
  195. package/build/hooks/index.native.js +10 -3
  196. package/build/hooks/index.native.js.map +1 -1
  197. package/build/hooks/layout-child.js +68 -0
  198. package/build/hooks/layout-child.js.map +1 -0
  199. package/build/hooks/layout.js +29 -108
  200. package/build/hooks/layout.js.map +1 -1
  201. package/build/hooks/padding.js +2 -2
  202. package/build/hooks/padding.js.map +1 -1
  203. package/build/hooks/position.js +40 -62
  204. package/build/hooks/position.js.map +1 -1
  205. package/build/hooks/style.js +51 -88
  206. package/build/hooks/style.js.map +1 -1
  207. package/build/hooks/typography.js +34 -14
  208. package/build/hooks/typography.js.map +1 -1
  209. package/build/hooks/utils.js +154 -7
  210. package/build/hooks/utils.js.map +1 -1
  211. package/build/layouts/constrained.js +4 -3
  212. package/build/layouts/constrained.js.map +1 -1
  213. package/build/private-apis.js +0 -2
  214. package/build/private-apis.js.map +1 -1
  215. package/build/store/private-actions.js +8 -0
  216. package/build/store/private-actions.js.map +1 -1
  217. package/build/store/private-selectors.js +34 -0
  218. package/build/store/private-selectors.js.map +1 -1
  219. package/build/store/reducer.js +8 -0
  220. package/build/store/reducer.js.map +1 -1
  221. package/build/store/selectors.js +10 -58
  222. package/build/store/selectors.js.map +1 -1
  223. package/build/store/utils.js +66 -0
  224. package/build/store/utils.js.map +1 -0
  225. package/build/utils/object.js +21 -61
  226. package/build/utils/object.js.map +1 -1
  227. package/build/utils/selection.js +9 -1
  228. package/build/utils/selection.js.map +1 -1
  229. package/build/utils/transform-styles/index.js +26 -6
  230. package/build/utils/transform-styles/index.js.map +1 -1
  231. package/build-module/components/block-canvas/index.js +23 -7
  232. package/build-module/components/block-canvas/index.js.map +1 -1
  233. package/build-module/components/block-card/index.js +1 -1
  234. package/build-module/components/block-card/index.js.map +1 -1
  235. package/build-module/components/block-controls/hook.js +4 -24
  236. package/build-module/components/block-controls/hook.js.map +1 -1
  237. package/build-module/components/block-edit/context.js +2 -0
  238. package/build-module/components/block-edit/context.js.map +1 -1
  239. package/build-module/components/block-edit/index.js +19 -10
  240. package/build-module/components/block-edit/index.js.map +1 -1
  241. package/build-module/components/block-info-slot-fill/index.js +3 -3
  242. package/build-module/components/block-info-slot-fill/index.js.map +1 -1
  243. package/build-module/components/block-list/block.js +29 -10
  244. package/build-module/components/block-list/block.js.map +1 -1
  245. package/build-module/components/block-list/block.native.js +16 -5
  246. package/build-module/components/block-list/block.native.js.map +1 -1
  247. package/build-module/components/block-list/use-block-props/index.js +62 -19
  248. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  249. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  250. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  251. package/build-module/components/block-list/use-block-props/use-is-hovered.js +4 -14
  252. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  253. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  254. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  255. package/build-module/components/block-parent-selector/index.js +1 -1
  256. package/build-module/components/block-parent-selector/index.js.map +1 -1
  257. package/build-module/components/block-pattern-setup/index.js +24 -15
  258. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  259. package/build-module/components/block-pattern-setup/setup-toolbar.js +4 -2
  260. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  261. package/build-module/components/block-patterns-list/index.js +37 -20
  262. package/build-module/components/block-patterns-list/index.js.map +1 -1
  263. package/build-module/components/block-removal-warning-modal/index.js +3 -10
  264. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  265. package/build-module/components/block-rename/index.js +4 -0
  266. package/build-module/components/block-rename/index.js.map +1 -0
  267. package/build-module/components/block-rename/is-empty-string.js +4 -0
  268. package/build-module/components/block-rename/is-empty-string.js.map +1 -0
  269. package/build-module/components/block-rename/modal.js +82 -0
  270. package/build-module/components/block-rename/modal.js.map +1 -0
  271. package/build-module/components/block-rename/rename-control.js +66 -0
  272. package/build-module/components/block-rename/rename-control.js.map +1 -0
  273. package/build-module/components/block-rename/use-block-rename.js +10 -0
  274. package/build-module/components/block-rename/use-block-rename.js.map +1 -0
  275. package/build-module/components/block-settings/container.native.js +4 -2
  276. package/build-module/components/block-settings/container.native.js.map +1 -1
  277. package/build-module/components/block-settings-menu/block-settings-dropdown.js +34 -21
  278. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  279. package/build-module/components/block-settings-menu-controls/index.js +7 -0
  280. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  281. package/build-module/components/block-styles/index.js +1 -1
  282. package/build-module/components/block-styles/index.js.map +1 -1
  283. package/build-module/components/block-styles/index.native.js +3 -2
  284. package/build-module/components/block-styles/index.native.js.map +1 -1
  285. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  286. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  287. package/build-module/components/block-toolbar/index.js +88 -25
  288. package/build-module/components/block-toolbar/index.js.map +1 -1
  289. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +41 -0
  290. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  291. package/build-module/components/block-tools/block-toolbar-popover.js +76 -0
  292. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -0
  293. package/build-module/components/block-tools/index.js +27 -24
  294. package/build-module/components/block-tools/index.js.map +1 -1
  295. package/build-module/components/block-types-list/index.js +6 -2
  296. package/build-module/components/block-types-list/index.js.map +1 -1
  297. package/build-module/components/block-types-list/index.native.js +2 -1
  298. package/build-module/components/block-types-list/index.native.js.map +1 -1
  299. package/build-module/components/block-variation-picker/index.native.js +2 -1
  300. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  301. package/build-module/components/colors-gradients/control.js +29 -18
  302. package/build-module/components/colors-gradients/control.js.map +1 -1
  303. package/build-module/components/date-format-picker/index.js +8 -1
  304. package/build-module/components/date-format-picker/index.js.map +1 -1
  305. package/build-module/components/duotone-control/index.js +1 -4
  306. package/build-module/components/duotone-control/index.js.map +1 -1
  307. package/build-module/components/global-styles/advanced-panel.js +1 -1
  308. package/build-module/components/global-styles/advanced-panel.js.map +1 -1
  309. package/build-module/components/global-styles/color-panel.js +23 -21
  310. package/build-module/components/global-styles/color-panel.js.map +1 -1
  311. package/build-module/components/global-styles/filters-panel.js +10 -4
  312. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  313. package/build-module/components/global-styles/typography-panel.js +20 -31
  314. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  315. package/build-module/components/image-link-destinations/index.native.js +109 -0
  316. package/build-module/components/image-link-destinations/index.native.js.map +1 -0
  317. package/build-module/components/image-size-control/index.js +0 -5
  318. package/build-module/components/image-size-control/index.js.map +1 -1
  319. package/build-module/components/index.native.js +1 -0
  320. package/build-module/components/index.native.js.map +1 -1
  321. package/build-module/components/inner-blocks/index.js +3 -1
  322. package/build-module/components/inner-blocks/index.js.map +1 -1
  323. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +30 -32
  324. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  325. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  326. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  327. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -4
  328. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  329. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +2 -2
  330. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  331. package/build-module/components/inserter/block-patterns-tab/utils.js +3 -4
  332. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
  333. package/build-module/components/inserter/hooks/use-patterns-state.js +2 -1
  334. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  335. package/build-module/components/inserter/media-tab/media-panel.js +1 -1
  336. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  337. package/build-module/components/inserter/menu.js +14 -7
  338. package/build-module/components/inserter/menu.js.map +1 -1
  339. package/build-module/components/inserter/preview-panel.js +2 -2
  340. package/build-module/components/inserter/preview-panel.js.map +1 -1
  341. package/build-module/components/inserter-button/index.native.js +89 -0
  342. package/build-module/components/inserter-button/index.native.js.map +1 -0
  343. package/build-module/components/inserter-button/sparkles.js +15 -0
  344. package/build-module/components/inserter-button/sparkles.js.map +1 -0
  345. package/build-module/components/inserter-draggable-blocks/index.js +9 -5
  346. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  347. package/build-module/components/inserter-listbox/index.js +13 -8
  348. package/build-module/components/inserter-listbox/index.js.map +1 -1
  349. package/build-module/components/inserter-listbox/item.js +25 -23
  350. package/build-module/components/inserter-listbox/item.js.map +1 -1
  351. package/build-module/components/inserter-listbox/row.js +6 -5
  352. package/build-module/components/inserter-listbox/row.js.map +1 -1
  353. package/build-module/components/inspector-controls/fill.js +3 -3
  354. package/build-module/components/inspector-controls/fill.js.map +1 -1
  355. package/build-module/components/inspector-controls/fill.native.js +3 -3
  356. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  357. package/build-module/components/list-view/use-list-view-expand-selected-item.js +2 -3
  358. package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  359. package/build-module/components/navigable-toolbar/index.js +2 -2
  360. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  361. package/build-module/components/preview-options/index.js +6 -60
  362. package/build-module/components/preview-options/index.js.map +1 -1
  363. package/build-module/components/rich-text/content.js +25 -21
  364. package/build-module/components/rich-text/content.js.map +1 -1
  365. package/build-module/components/rich-text/get-rich-text-values.js +2 -1
  366. package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
  367. package/build-module/components/rich-text/index.js +4 -32
  368. package/build-module/components/rich-text/index.js.map +1 -1
  369. package/build-module/components/rich-text/index.native.js +11 -19
  370. package/build-module/components/rich-text/index.native.js.map +1 -1
  371. package/build-module/components/rich-text/native/get-format-colors.native.js +22 -24
  372. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  373. package/build-module/components/rich-text/native/index.native.js +41 -37
  374. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  375. package/build-module/components/rich-text/use-input-rules.js +36 -3
  376. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  377. package/build-module/components/rich-text/with-deprecations.js +42 -0
  378. package/build-module/components/rich-text/with-deprecations.js.map +1 -0
  379. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  380. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  381. package/build-module/components/use-block-drop-zone/index.js +73 -9
  382. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  383. package/build-module/components/use-moving-animation/index.js +2 -1
  384. package/build-module/components/use-moving-animation/index.js.map +1 -1
  385. package/build-module/components/use-on-block-drop/index.js +1 -1
  386. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  387. package/build-module/components/use-resize-canvas/index.js +4 -1
  388. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  389. package/build-module/components/use-settings/index.js +15 -3
  390. package/build-module/components/use-settings/index.js.map +1 -1
  391. package/build-module/hooks/align.js +19 -66
  392. package/build-module/hooks/align.js.map +1 -1
  393. package/build-module/hooks/align.native.js +1 -0
  394. package/build-module/hooks/align.native.js.map +1 -1
  395. package/build-module/hooks/anchor.js +11 -26
  396. package/build-module/hooks/anchor.js.map +1 -1
  397. package/build-module/hooks/background.js +26 -28
  398. package/build-module/hooks/background.js.map +1 -1
  399. package/build-module/hooks/block-hooks.js +22 -30
  400. package/build-module/hooks/block-hooks.js.map +1 -1
  401. package/build-module/hooks/block-renaming.js +36 -0
  402. package/build-module/hooks/block-renaming.js.map +1 -1
  403. package/build-module/hooks/border.js +57 -78
  404. package/build-module/hooks/border.js.map +1 -1
  405. package/build-module/hooks/color.js +74 -86
  406. package/build-module/hooks/color.js.map +1 -1
  407. package/build-module/hooks/content-lock-ui.js +27 -27
  408. package/build-module/hooks/content-lock-ui.js.map +1 -1
  409. package/build-module/hooks/custom-class-name.js +11 -27
  410. package/build-module/hooks/custom-class-name.js.map +1 -1
  411. package/build-module/hooks/custom-fields.js +60 -74
  412. package/build-module/hooks/custom-fields.js.map +1 -1
  413. package/build-module/hooks/dimensions.js +21 -16
  414. package/build-module/hooks/dimensions.js.map +1 -1
  415. package/build-module/hooks/duotone.js +30 -61
  416. package/build-module/hooks/duotone.js.map +1 -1
  417. package/build-module/hooks/font-family.js +14 -23
  418. package/build-module/hooks/font-family.js.map +1 -1
  419. package/build-module/hooks/font-size.js +49 -119
  420. package/build-module/hooks/font-size.js.map +1 -1
  421. package/build-module/hooks/index.js +18 -15
  422. package/build-module/hooks/index.js.map +1 -1
  423. package/build-module/hooks/index.native.js +5 -3
  424. package/build-module/hooks/index.native.js.map +1 -1
  425. package/build-module/hooks/layout-child.js +60 -0
  426. package/build-module/hooks/layout-child.js.map +1 -0
  427. package/build-module/hooks/layout.js +26 -105
  428. package/build-module/hooks/layout.js.map +1 -1
  429. package/build-module/hooks/padding.js +2 -2
  430. package/build-module/hooks/padding.js.map +1 -1
  431. package/build-module/hooks/position.js +38 -59
  432. package/build-module/hooks/position.js.map +1 -1
  433. package/build-module/hooks/style.js +51 -84
  434. package/build-module/hooks/style.js.map +1 -1
  435. package/build-module/hooks/typography.js +33 -12
  436. package/build-module/hooks/typography.js.map +1 -1
  437. package/build-module/hooks/utils.js +149 -6
  438. package/build-module/hooks/utils.js.map +1 -1
  439. package/build-module/layouts/constrained.js +4 -3
  440. package/build-module/layouts/constrained.js.map +1 -1
  441. package/build-module/private-apis.js +0 -2
  442. package/build-module/private-apis.js.map +1 -1
  443. package/build-module/store/private-actions.js +7 -0
  444. package/build-module/store/private-actions.js.map +1 -1
  445. package/build-module/store/private-selectors.js +33 -1
  446. package/build-module/store/private-selectors.js.map +1 -1
  447. package/build-module/store/reducer.js +8 -0
  448. package/build-module/store/reducer.js.map +1 -1
  449. package/build-module/store/selectors.js +3 -51
  450. package/build-module/store/selectors.js.map +1 -1
  451. package/build-module/store/utils.js +56 -0
  452. package/build-module/store/utils.js.map +1 -0
  453. package/build-module/utils/object.js +21 -60
  454. package/build-module/utils/object.js.map +1 -1
  455. package/build-module/utils/selection.js +9 -1
  456. package/build-module/utils/selection.js.map +1 -1
  457. package/build-module/utils/transform-styles/index.js +24 -7
  458. package/build-module/utils/transform-styles/index.js.map +1 -1
  459. package/build-style/content-rtl.css +6 -6
  460. package/build-style/content.css +6 -6
  461. package/build-style/style-rtl.css +123 -298
  462. package/build-style/style.css +123 -298
  463. package/package.json +31 -31
  464. package/src/components/block-canvas/index.js +31 -17
  465. package/src/components/block-caption/README.md +2 -2
  466. package/src/components/block-card/index.js +5 -3
  467. package/src/components/block-card/style.scss +7 -3
  468. package/src/components/block-controls/hook.js +8 -30
  469. package/src/components/block-controls/test/index.js +3 -3
  470. package/src/components/block-edit/context.js +3 -0
  471. package/src/components/block-edit/index.js +36 -10
  472. package/src/components/block-info-slot-fill/index.js +6 -3
  473. package/src/components/block-inspector/style.scss +0 -4
  474. package/src/components/block-list/block.js +39 -5
  475. package/src/components/block-list/block.native.js +20 -4
  476. package/src/components/block-list/use-block-props/index.js +74 -21
  477. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -34
  478. package/src/components/block-list/use-block-props/use-is-hovered.js +2 -13
  479. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +1 -5
  480. package/src/components/block-parent-selector/index.js +1 -1
  481. package/src/components/block-pattern-setup/index.js +38 -22
  482. package/src/components/block-pattern-setup/setup-toolbar.js +2 -0
  483. package/src/components/block-pattern-setup/style.scss +4 -1
  484. package/src/components/block-patterns-list/README.md +4 -4
  485. package/src/components/block-patterns-list/index.js +61 -35
  486. package/src/components/block-patterns-list/style.scss +7 -0
  487. package/src/components/block-removal-warning-modal/index.js +7 -14
  488. package/src/components/block-rename/index.js +3 -0
  489. package/src/components/block-rename/is-empty-string.js +3 -0
  490. package/src/components/block-rename/modal.js +121 -0
  491. package/src/components/block-rename/rename-control.js +80 -0
  492. package/src/components/block-rename/use-block-rename.js +10 -0
  493. package/src/components/block-settings/container.native.js +3 -5
  494. package/src/components/block-settings-menu/block-settings-dropdown.js +38 -34
  495. package/src/components/block-settings-menu-controls/index.js +9 -0
  496. package/src/components/block-styles/index.js +1 -1
  497. package/src/components/block-styles/index.native.js +4 -2
  498. package/src/components/block-styles/style.scss +0 -11
  499. package/src/components/block-switcher/test/__snapshots__/index.js.snap +3 -1
  500. package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -4
  501. package/src/components/block-toolbar/index.js +180 -95
  502. package/src/components/block-toolbar/style.scss +50 -66
  503. package/src/components/block-tools/block-toolbar-breadcrumb.js +46 -0
  504. package/src/components/block-tools/block-toolbar-popover.js +90 -0
  505. package/src/components/block-tools/index.js +42 -29
  506. package/src/components/block-tools/style.scss +60 -172
  507. package/src/components/block-types-list/index.js +5 -4
  508. package/src/components/block-types-list/index.native.js +2 -1
  509. package/src/components/block-variation-picker/index.native.js +1 -1
  510. package/src/components/button-block-appender/content.scss +2 -2
  511. package/src/components/colors-gradients/control.js +49 -30
  512. package/src/components/colors-gradients/style.scss +0 -7
  513. package/src/components/date-format-picker/index.js +7 -0
  514. package/src/components/duotone-control/index.js +2 -5
  515. package/src/components/duotone-control/style.scss +1 -6
  516. package/src/components/editable-text/README.md +0 -36
  517. package/src/components/global-styles/advanced-panel.js +1 -1
  518. package/src/components/global-styles/color-panel.js +34 -25
  519. package/src/components/global-styles/filters-panel.js +8 -4
  520. package/src/components/global-styles/typography-panel.js +23 -43
  521. package/src/components/image-link-destinations/index.native.js +152 -0
  522. package/src/components/image-link-destinations/style.native.scss +16 -0
  523. package/src/components/image-size-control/index.js +0 -6
  524. package/src/components/index.native.js +1 -0
  525. package/src/components/inner-blocks/README.md +13 -2
  526. package/src/components/inner-blocks/index.js +6 -2
  527. package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +57 -33
  528. package/src/components/inserter/block-patterns-explorer/pattern-list.js +5 -1
  529. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +7 -3
  530. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +6 -1
  531. package/src/components/inserter/block-patterns-tab/utils.js +6 -4
  532. package/src/components/inserter/hooks/use-patterns-state.js +3 -1
  533. package/src/components/inserter/media-tab/media-panel.js +1 -1
  534. package/src/components/inserter/menu.js +16 -8
  535. package/src/components/inserter/preview-panel.js +2 -2
  536. package/src/components/inserter/style.scss +15 -17
  537. package/src/components/inserter-button/README.md +62 -0
  538. package/src/components/inserter-button/index.native.js +116 -0
  539. package/src/components/inserter-button/sparkles.js +15 -0
  540. package/src/components/inserter-button/style.native.scss +72 -0
  541. package/src/components/inserter-draggable-blocks/index.js +18 -5
  542. package/src/components/inserter-listbox/index.js +11 -7
  543. package/src/components/inserter-listbox/item.js +11 -12
  544. package/src/components/inserter-listbox/row.js +6 -12
  545. package/src/components/inspector-controls/fill.js +6 -3
  546. package/src/components/inspector-controls/fill.native.js +6 -3
  547. package/src/components/link-control/style.scss +1 -1
  548. package/src/components/link-control/test/index.js +1 -1
  549. package/src/components/list-view/use-list-view-expand-selected-item.js +7 -8
  550. package/src/components/navigable-toolbar/README.md +2 -0
  551. package/src/components/navigable-toolbar/index.js +2 -2
  552. package/src/components/plain-text/README.md +0 -28
  553. package/src/components/preview-options/index.js +6 -84
  554. package/src/components/rich-text/README.md +0 -58
  555. package/src/components/rich-text/content.js +27 -20
  556. package/src/components/rich-text/get-rich-text-values.js +6 -1
  557. package/src/components/rich-text/index.js +5 -46
  558. package/src/components/rich-text/index.native.js +9 -26
  559. package/src/components/rich-text/native/get-format-colors.native.js +33 -40
  560. package/src/components/rich-text/native/index.native.js +52 -50
  561. package/src/components/rich-text/use-input-rules.js +36 -3
  562. package/src/components/rich-text/with-deprecations.js +51 -0
  563. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  564. package/src/components/url-input/README.md +1 -74
  565. package/src/components/use-block-drop-zone/index.js +118 -15
  566. package/src/components/use-moving-animation/index.js +1 -1
  567. package/src/components/use-on-block-drop/index.js +2 -1
  568. package/src/components/use-resize-canvas/README.md +3 -3
  569. package/src/components/use-resize-canvas/index.js +4 -1
  570. package/src/components/use-settings/index.js +17 -3
  571. package/src/components/use-settings/test/index.js +1 -1
  572. package/src/hooks/align.js +15 -76
  573. package/src/hooks/align.native.js +1 -0
  574. package/src/hooks/anchor.js +13 -33
  575. package/src/hooks/background.js +28 -23
  576. package/src/hooks/block-hooks.js +22 -51
  577. package/src/hooks/block-renaming.js +33 -0
  578. package/src/hooks/border.js +67 -118
  579. package/src/hooks/color.js +100 -132
  580. package/src/hooks/content-lock-ui.js +110 -122
  581. package/src/hooks/custom-class-name.js +8 -40
  582. package/src/hooks/custom-fields.js +70 -94
  583. package/src/hooks/dimensions.js +20 -16
  584. package/src/hooks/duotone.js +70 -127
  585. package/src/hooks/font-family.js +10 -29
  586. package/src/hooks/font-size.js +66 -162
  587. package/src/hooks/index.js +42 -15
  588. package/src/hooks/index.native.js +6 -3
  589. package/src/hooks/layout-child.js +53 -0
  590. package/src/hooks/layout.js +25 -110
  591. package/src/hooks/padding.js +2 -2
  592. package/src/hooks/position.js +50 -90
  593. package/src/hooks/style.js +117 -187
  594. package/src/hooks/test/__snapshots__/align.native.js.snap +5 -5
  595. package/src/hooks/test/align.js +1 -178
  596. package/src/hooks/typography.js +20 -16
  597. package/src/hooks/utils.js +187 -6
  598. package/src/layouts/constrained.js +57 -50
  599. package/src/private-apis.js +0 -2
  600. package/src/store/private-actions.js +8 -0
  601. package/src/store/private-selectors.js +45 -0
  602. package/src/store/reducer.js +8 -0
  603. package/src/store/selectors.js +5 -67
  604. package/src/store/utils.js +74 -0
  605. package/src/style.scss +1 -3
  606. package/src/utils/object.js +18 -69
  607. package/src/utils/selection.js +9 -2
  608. package/src/utils/test/transform-styles.js +49 -0
  609. package/src/utils/transform-styles/index.js +39 -13
  610. package/build/components/block-list/use-block-props/use-block-class-names.js +0 -67
  611. package/build/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  612. package/build/components/block-list/use-block-props/use-block-custom-class-name.js +0 -46
  613. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  614. package/build/components/block-list/use-block-props/use-block-default-class-name.js +0 -37
  615. package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  616. package/build/components/block-tools/back-compat.js +0 -45
  617. package/build/components/block-tools/back-compat.js.map +0 -1
  618. package/build/components/block-tools/block-contextual-toolbar.js +0 -91
  619. package/build/components/block-tools/block-contextual-toolbar.js.map +0 -1
  620. package/build/components/block-tools/selected-block-tools.js +0 -113
  621. package/build/components/block-tools/selected-block-tools.js.map +0 -1
  622. package/build/components/inserter/hooks/use-debounced-input.js +0 -22
  623. package/build/components/inserter/hooks/use-debounced-input.js.map +0 -1
  624. package/build/components/use-display-block-controls/index.js +0 -39
  625. package/build/components/use-display-block-controls/index.js.map +0 -1
  626. package/build/components/use-display-block-controls/index.native.js +0 -39
  627. package/build/components/use-display-block-controls/index.native.js.map +0 -1
  628. package/build/hooks/block-rename-ui.js +0 -167
  629. package/build/hooks/block-rename-ui.js.map +0 -1
  630. package/build-module/components/block-list/use-block-props/use-block-class-names.js +0 -60
  631. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  632. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +0 -40
  633. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  634. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +0 -31
  635. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  636. package/build-module/components/block-tools/back-compat.js +0 -35
  637. package/build-module/components/block-tools/back-compat.js.map +0 -1
  638. package/build-module/components/block-tools/block-contextual-toolbar.js +0 -83
  639. package/build-module/components/block-tools/block-contextual-toolbar.js.map +0 -1
  640. package/build-module/components/block-tools/selected-block-tools.js +0 -105
  641. package/build-module/components/block-tools/selected-block-tools.js.map +0 -1
  642. package/build-module/components/inserter/hooks/use-debounced-input.js +0 -15
  643. package/build-module/components/inserter/hooks/use-debounced-input.js.map +0 -1
  644. package/build-module/components/use-display-block-controls/index.js +0 -32
  645. package/build-module/components/use-display-block-controls/index.js.map +0 -1
  646. package/build-module/components/use-display-block-controls/index.native.js +0 -32
  647. package/build-module/components/use-display-block-controls/index.native.js.map +0 -1
  648. package/build-module/hooks/block-rename-ui.js +0 -159
  649. package/build-module/hooks/block-rename-ui.js.map +0 -1
  650. package/src/components/block-list/use-block-props/use-block-class-names.js +0 -66
  651. package/src/components/block-list/use-block-props/use-block-custom-class-name.js +0 -44
  652. package/src/components/block-list/use-block-props/use-block-default-class-name.js +0 -35
  653. package/src/components/block-parent-selector/style.scss +0 -11
  654. package/src/components/block-tools/back-compat.js +0 -35
  655. package/src/components/block-tools/block-contextual-toolbar.js +0 -100
  656. package/src/components/block-tools/selected-block-tools.js +0 -127
  657. package/src/components/inserter/hooks/use-debounced-input.js +0 -18
  658. package/src/components/preview-options/README.md +0 -94
  659. package/src/components/preview-options/style.scss +0 -64
  660. package/src/components/use-display-block-controls/index.js +0 -36
  661. package/src/components/use-display-block-controls/index.native.js +0 -37
  662. package/src/hooks/block-rename-ui.js +0 -228
  663. package/src/hooks/test/color.js +0 -112
  664. /package/src/{hooks/block-rename-ui.scss → components/block-rename/style.scss} +0 -0
@@ -36,41 +36,6 @@ This prop is passed directly to the `URLInput` component.
36
36
 
37
37
  ## Example
38
38
 
39
- {% codetabs %}
40
- {% ES5 %}
41
-
42
- ```js
43
- wp.blocks.registerBlockType( /* ... */, {
44
- // ...
45
-
46
- attributes: {
47
- url: {
48
- type: 'string'
49
- },
50
- text: {
51
- type: 'string'
52
- }
53
- },
54
-
55
- edit: function( props ) {
56
- return React.createElement( wp.blockEditor.URLInputButton, {
57
- className: props.className,
58
- url: props.attributes.url,
59
- onChange: function( url, post ) {
60
- props.setAttributes( { url: url, text: (post && post.title) || 'Click here' } );
61
- }
62
- } );
63
- },
64
-
65
- save: function( props ) {
66
- return React.createElement( 'a', {
67
- href: props.attributes.url,
68
- }, props.attributes.text );
69
- }
70
- } );
71
- ```
72
-
73
- {% ESNext %}
74
39
 
75
40
  ```js
76
41
  import { registerBlockType } from '@wordpress/blocks';
@@ -103,7 +68,6 @@ registerBlockType( /* ... */, {
103
68
  } );
104
69
  ```
105
70
 
106
- {% end %}
107
71
 
108
72
  # `URLInput`
109
73
 
@@ -139,7 +103,7 @@ _Required._ Called when the value changes. The second parameter is `null` unless
139
103
  }
140
104
  ```
141
105
 
142
- ### `onKeydown`: `( event: KeyboardEvent ) => void`
106
+ ### `onKeyDown`: `( event: KeyboardEvent ) => void`
143
107
 
144
108
  A callback invoked on the keydown event.
145
109
 
@@ -172,41 +136,6 @@ Start opting into the new margin-free styles that will become the default in a f
172
136
 
173
137
  ## Example
174
138
 
175
- {% codetabs %}
176
- {% ES5 %}
177
-
178
- ```js
179
- wp.blocks.registerBlockType( /* ... */, {
180
- // ...
181
-
182
- attributes: {
183
- url: {
184
- type: 'string'
185
- },
186
- text: {
187
- type: 'string'
188
- }
189
- },
190
-
191
- edit: function( props ) {
192
- return React.createElement( wp.blockEditor.URLInput, {
193
- className: props.className,
194
- value: props.attributes.url,
195
- onChange: function( url, post ) {
196
- props.setAttributes( { url: url, text: (post && post.title) || 'Click here' } );
197
- }
198
- } );
199
- },
200
-
201
- save: function( props ) {
202
- return React.createElement( 'a', {
203
- href: props.attributes.url,
204
- }, props.attributes.text );
205
- }
206
- } );
207
- ```
208
-
209
- {% ESNext %}
210
139
 
211
140
  ```js
212
141
  import { registerBlockType } from '@wordpress/blocks';
@@ -240,5 +169,3 @@ registerBlockType( /* ... */, {
240
169
  }
241
170
  } );
242
171
  ```
243
-
244
- {% end %}
@@ -20,6 +20,10 @@ import {
20
20
  } from '../../utils/math';
21
21
  import { store as blockEditorStore } from '../../store';
22
22
 
23
+ const THRESHOLD_DISTANCE = 30;
24
+ const MINIMUM_HEIGHT_FOR_THRESHOLD = 120;
25
+ const MINIMUM_WIDTH_FOR_THRESHOLD = 120;
26
+
23
27
  /** @typedef {import('../../utils/math').WPPoint} WPPoint */
24
28
  /** @typedef {import('../use-on-block-drop/types').WPDropOperation} WPDropOperation */
25
29
 
@@ -48,24 +52,86 @@ import { store as blockEditorStore } from '../../store';
48
52
  * @param {WPBlockData[]} blocksData The block data list.
49
53
  * @param {WPPoint} position The position of the item being dragged.
50
54
  * @param {WPBlockListOrientation} orientation The orientation of the block list.
55
+ * @param {Object} options Additional options.
51
56
  * @return {[number, WPDropOperation]} The drop target position.
52
57
  */
53
58
  export function getDropTargetPosition(
54
59
  blocksData,
55
60
  position,
56
- orientation = 'vertical'
61
+ orientation = 'vertical',
62
+ options = {}
57
63
  ) {
58
64
  const allowedEdges =
59
65
  orientation === 'horizontal'
60
66
  ? [ 'left', 'right' ]
61
67
  : [ 'top', 'bottom' ];
62
68
 
63
- const isRightToLeft = isRTL();
64
-
65
69
  let nearestIndex = 0;
66
70
  let insertPosition = 'before';
67
71
  let minDistance = Infinity;
68
72
 
73
+ const {
74
+ dropZoneElement,
75
+ parentBlockOrientation,
76
+ rootBlockIndex = 0,
77
+ } = options;
78
+
79
+ // Allow before/after when dragging over the top/bottom edges of the drop zone.
80
+ if ( dropZoneElement && parentBlockOrientation !== 'horizontal' ) {
81
+ const rect = dropZoneElement.getBoundingClientRect();
82
+ const [ distance, edge ] = getDistanceToNearestEdge( position, rect, [
83
+ 'top',
84
+ 'bottom',
85
+ ] );
86
+
87
+ // If dragging over the top or bottom of the drop zone, insert the block
88
+ // before or after the parent block. This only applies to blocks that use
89
+ // a drop zone element, typically container blocks such as Group or Cover.
90
+ if (
91
+ rect.height > MINIMUM_HEIGHT_FOR_THRESHOLD &&
92
+ distance < THRESHOLD_DISTANCE
93
+ ) {
94
+ if ( edge === 'top' ) {
95
+ return [ rootBlockIndex, 'before' ];
96
+ }
97
+ if ( edge === 'bottom' ) {
98
+ return [ rootBlockIndex + 1, 'after' ];
99
+ }
100
+ }
101
+ }
102
+
103
+ const isRightToLeft = isRTL();
104
+
105
+ // Allow before/after when dragging over the left/right edges of the drop zone.
106
+ if ( dropZoneElement && parentBlockOrientation === 'horizontal' ) {
107
+ const rect = dropZoneElement.getBoundingClientRect();
108
+ const [ distance, edge ] = getDistanceToNearestEdge( position, rect, [
109
+ 'left',
110
+ 'right',
111
+ ] );
112
+
113
+ // If dragging over the left or right of the drop zone, insert the block
114
+ // before or after the parent block. This only applies to blocks that use
115
+ // a drop zone element, typically container blocks such as Group.
116
+ if (
117
+ rect.width > MINIMUM_WIDTH_FOR_THRESHOLD &&
118
+ distance < THRESHOLD_DISTANCE
119
+ ) {
120
+ if (
121
+ ( isRightToLeft && edge === 'right' ) ||
122
+ ( ! isRightToLeft && edge === 'left' )
123
+ ) {
124
+ return [ rootBlockIndex, 'before' ];
125
+ }
126
+ if (
127
+ ( isRightToLeft && edge === 'left' ) ||
128
+ ( ! isRightToLeft && edge === 'right' )
129
+ ) {
130
+ return [ rootBlockIndex + 1, 'after' ];
131
+ }
132
+ }
133
+ }
134
+
69
135
  blocksData.forEach(
70
136
  ( { isUnmodifiedDefaultBlock, getBoundingClientRect, blockIndex } ) => {
71
137
  const rect = getBoundingClientRect();
@@ -127,7 +193,8 @@ export function getDropTargetPosition(
127
193
 
128
194
  /**
129
195
  * @typedef {Object} WPBlockDropZoneConfig
130
- * @property {string} rootClientId The root client id for the block list.
196
+ * @property {?HTMLElement} dropZoneElement Optional element to be used as the drop zone.
197
+ * @property {string} rootClientId The root client id for the block list.
131
198
  */
132
199
 
133
200
  /**
@@ -136,6 +203,7 @@ export function getDropTargetPosition(
136
203
  * @param {WPBlockDropZoneConfig} dropZoneConfig configuration data for the drop zone.
137
204
  */
138
205
  export default function useBlockDropZone( {
206
+ dropZoneElement,
139
207
  // An undefined value represents a top-level block. Default to an empty
140
208
  // string for this so that `targetRootClientId` can be easily compared to
141
209
  // values returned by the `getRootBlockClientId` selector, which also uses
@@ -148,19 +216,27 @@ export default function useBlockDropZone( {
148
216
  operation: 'insert',
149
217
  } );
150
218
 
151
- const isDisabled = useSelect(
219
+ const { isDisabled, parentBlockClientId, rootBlockIndex } = useSelect(
152
220
  ( select ) => {
153
221
  const {
154
222
  __unstableIsWithinBlockOverlay,
155
223
  __unstableHasActiveBlockOverlayActive,
224
+ getBlockIndex,
225
+ getBlockParents,
156
226
  getBlockEditingMode,
157
227
  } = select( blockEditorStore );
158
228
  const blockEditingMode = getBlockEditingMode( targetRootClientId );
159
- return (
160
- blockEditingMode !== 'default' ||
161
- __unstableHasActiveBlockOverlayActive( targetRootClientId ) ||
162
- __unstableIsWithinBlockOverlay( targetRootClientId )
163
- );
229
+ return {
230
+ parentBlockClientId:
231
+ getBlockParents( targetRootClientId, true )[ 0 ] || '',
232
+ rootBlockIndex: getBlockIndex( targetRootClientId ),
233
+ isDisabled:
234
+ blockEditingMode !== 'default' ||
235
+ __unstableHasActiveBlockOverlayActive(
236
+ targetRootClientId
237
+ ) ||
238
+ __unstableIsWithinBlockOverlay( targetRootClientId ),
239
+ };
164
240
  },
165
241
  [ targetRootClientId ]
166
242
  );
@@ -170,9 +246,15 @@ export default function useBlockDropZone( {
170
246
  const { showInsertionPoint, hideInsertionPoint } =
171
247
  useDispatch( blockEditorStore );
172
248
 
173
- const onBlockDrop = useOnBlockDrop( targetRootClientId, dropTarget.index, {
174
- operation: dropTarget.operation,
175
- } );
249
+ const onBlockDrop = useOnBlockDrop(
250
+ dropTarget.operation === 'before' || dropTarget.operation === 'after'
251
+ ? parentBlockClientId
252
+ : targetRootClientId,
253
+ dropTarget.index,
254
+ {
255
+ operation: dropTarget.operation,
256
+ }
257
+ );
176
258
  const throttled = useThrottle(
177
259
  useCallback(
178
260
  ( event, ownerDocument ) => {
@@ -209,7 +291,16 @@ export default function useBlockDropZone( {
209
291
  const [ targetIndex, operation ] = getDropTargetPosition(
210
292
  blocksData,
211
293
  { x: event.clientX, y: event.clientY },
212
- getBlockListSettings( targetRootClientId )?.orientation
294
+ getBlockListSettings( targetRootClientId )?.orientation,
295
+ {
296
+ dropZoneElement,
297
+ parentBlockClientId,
298
+ parentBlockOrientation: parentBlockClientId
299
+ ? getBlockListSettings( parentBlockClientId )
300
+ ?.orientation
301
+ : undefined,
302
+ rootBlockIndex,
303
+ }
213
304
  );
214
305
 
215
306
  registry.batch( () => {
@@ -217,24 +308,36 @@ export default function useBlockDropZone( {
217
308
  index: targetIndex,
218
309
  operation,
219
310
  } );
220
- showInsertionPoint( targetRootClientId, targetIndex, {
311
+
312
+ const insertionPointClientId = [
313
+ 'before',
314
+ 'after',
315
+ ].includes( operation )
316
+ ? parentBlockClientId
317
+ : targetRootClientId;
318
+
319
+ showInsertionPoint( insertionPointClientId, targetIndex, {
221
320
  operation,
222
321
  } );
223
322
  } );
224
323
  },
225
324
  [
325
+ dropZoneElement,
226
326
  getBlocks,
227
327
  targetRootClientId,
228
328
  getBlockListSettings,
229
329
  registry,
230
330
  showInsertionPoint,
231
331
  getBlockIndex,
332
+ parentBlockClientId,
333
+ rootBlockIndex,
232
334
  ]
233
335
  ),
234
336
  200
235
337
  );
236
338
 
237
339
  return useDropZone( {
340
+ dropZoneElement,
238
341
  isDisabled,
239
342
  onDrop: onBlockDrop,
240
343
  onDragOver( event ) {
@@ -129,7 +129,7 @@ function useMovingAnimation( {
129
129
  const finishedMoving = x === 0 && y === 0;
130
130
  ref.current.style.transformOrigin = 'center center';
131
131
  ref.current.style.transform = finishedMoving
132
- ? undefined
132
+ ? null // Set to `null` to explicitly remove the transform.
133
133
  : `translate3d(${ x }px,${ y }px,0)`;
134
134
  ref.current.style.zIndex = isSelected ? '1' : '';
135
135
 
@@ -292,9 +292,10 @@ export default function useOnBlockDrop(
292
292
  operation,
293
293
  getBlockOrder,
294
294
  getBlocksByClientId,
295
- insertBlocks,
296
295
  moveBlocksToPosition,
296
+ registry,
297
297
  removeBlocks,
298
+ replaceBlocks,
298
299
  targetBlockIndex,
299
300
  targetRootClientId,
300
301
  ]
@@ -1,6 +1,6 @@
1
1
  # useResizeCanvas
2
2
 
3
- This React hook generates inline CSS suitable for resizing a container to fit a device's dimensions. It adjusts the CSS according to the current device dimensions. It has no effect on desktop.
3
+ This React hook generates inline CSS suitable for resizing a container to fit a device's dimensions. It adjusts the CSS according to the current device dimensions.
4
4
 
5
5
  On-page CSS media queries are also updated to match the width of the device.
6
6
 
@@ -14,14 +14,14 @@ Note that this is currently experimental, and is available as `__experimentalUse
14
14
 
15
15
  ### Usage
16
16
 
17
- The hook returns a style object which can be applied to a container. It is passed the current device type, which can be obtained from `__experimentalGetPreviewDeviceType`.
17
+ The hook returns a style object which can be applied to a container. It is passed the current device type, which can be obtained from `getDeviceType`.
18
18
 
19
19
  ```jsx
20
20
  import { __experimentalUseResizeCanvas as useResizeCanvas } from '@wordpress/block-editor';
21
21
 
22
22
  function ResizedContainer() {
23
23
  const deviceType = useSelect( ( select ) => {
24
- return select( 'core/edit-post' ).__experimentalGetPreviewDeviceType();
24
+ return select( 'core/editor' ).getDeviceType();
25
25
  }, [] );
26
26
  const inlineStyles = useResizeCanvas( deviceType );
27
27
 
@@ -67,7 +67,10 @@ export default function useResizeCanvas( deviceType ) {
67
67
  overflowY: 'auto',
68
68
  };
69
69
  default:
70
- return null;
70
+ return {
71
+ marginLeft: marginHorizontal,
72
+ marginRight: marginHorizontal,
73
+ };
71
74
  }
72
75
  };
73
76
 
@@ -103,7 +103,7 @@ const removeCustomPrefixes = ( path ) => {
103
103
  * @param {Object} value Object to merge
104
104
  * @return {Array} Array of merged items
105
105
  */
106
- function mergeOrigins( value ) {
106
+ export function mergeOrigins( value ) {
107
107
  let result = mergeCache.get( value );
108
108
  if ( ! result ) {
109
109
  result = [ 'default', 'theme', 'custom' ].flatMap(
@@ -115,6 +115,20 @@ function mergeOrigins( value ) {
115
115
  }
116
116
  const mergeCache = new WeakMap();
117
117
 
118
+ /**
119
+ * For settings like `color.palette`, which have a value that is an object
120
+ * with `default`, `theme`, `custom`, with field values that are arrays of
121
+ * items, see if any of the three origins have values.
122
+ *
123
+ * @param {Object} value Object to check
124
+ * @return {boolean} Whether the object has values in any of the three origins
125
+ */
126
+ export function hasMergedOrigins( value ) {
127
+ return [ 'default', 'theme', 'custom' ].some(
128
+ ( key ) => value?.[ key ]?.length
129
+ );
130
+ }
131
+
118
132
  /**
119
133
  * Hook that retrieves the given settings for the block instance in use.
120
134
  *
@@ -254,7 +268,7 @@ export function useSettings( ...paths ) {
254
268
  *
255
269
  * @param {string} path The path to the setting.
256
270
  * @return {any} Returns the value defined for the setting.
257
- * @deprecated 6.4.0 Use useSettings instead.
271
+ * @deprecated 6.5.0 Use useSettings instead.
258
272
  * @example
259
273
  * ```js
260
274
  * const isEnabled = useSetting( 'typography.dropCap' );
@@ -262,7 +276,7 @@ export function useSettings( ...paths ) {
262
276
  */
263
277
  export function useSetting( path ) {
264
278
  deprecated( 'wp.blockEditor.useSetting', {
265
- since: '6.4',
279
+ since: '6.5',
266
280
  alternative: 'wp.blockEditor.useSettings',
267
281
  note: 'The new useSettings function can retrieve multiple settings at once, with better performance.',
268
282
  } );
@@ -135,7 +135,7 @@ describe( 'useSettings', () => {
135
135
  const result = runHook( () => useSetting( 'layout.contentSize' ) );
136
136
  expect( result ).toBe( '840px' );
137
137
  expect( console ).toHaveWarnedWith(
138
- 'wp.blockEditor.useSetting is deprecated since version 6.4. Please use wp.blockEditor.useSettings instead.'
138
+ 'wp.blockEditor.useSetting is deprecated since version 6.5. Please use wp.blockEditor.useSettings instead.'
139
139
  );
140
140
  } );
141
141
  } );
@@ -6,7 +6,6 @@ import classnames from 'classnames';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { createHigherOrderComponent } from '@wordpress/compose';
10
9
  import { addFilter } from '@wordpress/hooks';
11
10
  import {
12
11
  getBlockSupport,
@@ -108,9 +107,9 @@ export function addAttribute( settings ) {
108
107
  return settings;
109
108
  }
110
109
 
111
- function BlockEditAlignmentToolbarControls( {
112
- blockName,
113
- attributes,
110
+ function BlockEditAlignmentToolbarControlsPure( {
111
+ name: blockName,
112
+ align,
114
113
  setAttributes,
115
114
  } ) {
116
115
  // Compute the block valid alignments by taking into account,
@@ -144,7 +143,7 @@ function BlockEditAlignmentToolbarControls( {
144
143
  return (
145
144
  <BlockControls group="block" __experimentalShareWithChildBlocks>
146
145
  <BlockAlignmentControl
147
- value={ attributes.align }
146
+ value={ align }
148
147
  onChange={ updateAlignment }
149
148
  controls={ validAlignments }
150
149
  />
@@ -152,80 +151,30 @@ function BlockEditAlignmentToolbarControls( {
152
151
  );
153
152
  }
154
153
 
155
- /**
156
- * Override the default edit UI to include new toolbar controls for block
157
- * alignment, if block defines support.
158
- *
159
- * @param {Function} BlockEdit Original component.
160
- *
161
- * @return {Function} Wrapped component.
162
- */
163
- export const withAlignmentControls = createHigherOrderComponent(
164
- ( BlockEdit ) => ( props ) => {
165
- const hasAlignmentSupport = hasBlockSupport(
166
- props.name,
167
- 'align',
168
- false
169
- );
170
-
171
- return (
172
- <>
173
- { hasAlignmentSupport && (
174
- <BlockEditAlignmentToolbarControls
175
- blockName={ props.name }
176
- attributes={ props.attributes }
177
- setAttributes={ props.setAttributes }
178
- />
179
- ) }
180
- <BlockEdit key="edit" { ...props } />
181
- </>
182
- );
154
+ export default {
155
+ shareWithChildBlocks: true,
156
+ edit: BlockEditAlignmentToolbarControlsPure,
157
+ useBlockProps,
158
+ attributeKeys: [ 'align' ],
159
+ hasSupport( name ) {
160
+ return hasBlockSupport( name, 'align', false );
183
161
  },
184
- 'withAlignmentControls'
185
- );
162
+ };
186
163
 
187
- function BlockListBlockWithDataAlign( { block: BlockListBlock, props } ) {
188
- const { name, attributes } = props;
189
- const { align } = attributes;
164
+ function useBlockProps( { name, align } ) {
190
165
  const blockAllowedAlignments = getValidAlignments(
191
166
  getBlockSupport( name, 'align' ),
192
167
  hasBlockSupport( name, 'alignWide', true )
193
168
  );
194
169
  const validAlignments = useAvailableAlignments( blockAllowedAlignments );
195
170
 
196
- let wrapperProps = props.wrapperProps;
197
171
  if ( validAlignments.some( ( alignment ) => alignment.name === align ) ) {
198
- wrapperProps = { ...wrapperProps, 'data-align': align };
172
+ return { 'data-align': align };
199
173
  }
200
174
 
201
- return <BlockListBlock { ...props } wrapperProps={ wrapperProps } />;
175
+ return {};
202
176
  }
203
177
 
204
- /**
205
- * Override the default block element to add alignment wrapper props.
206
- *
207
- * @param {Function} BlockListBlock Original component.
208
- *
209
- * @return {Function} Wrapped component.
210
- */
211
- export const withDataAlign = createHigherOrderComponent(
212
- ( BlockListBlock ) => ( props ) => {
213
- // If an alignment is not assigned, there's no need to go through the
214
- // effort to validate or assign its value.
215
- if ( props.attributes.align === undefined ) {
216
- return <BlockListBlock { ...props } />;
217
- }
218
-
219
- return (
220
- <BlockListBlockWithDataAlign
221
- block={ BlockListBlock }
222
- props={ props }
223
- />
224
- );
225
- },
226
- 'withDataAlign'
227
- );
228
-
229
178
  /**
230
179
  * Override props assigned to save component to inject alignment class name if
231
180
  * block supports it.
@@ -260,16 +209,6 @@ addFilter(
260
209
  'core/editor/align/addAttribute',
261
210
  addAttribute
262
211
  );
263
- addFilter(
264
- 'editor.BlockListBlock',
265
- 'core/editor/align/with-data-align',
266
- withDataAlign
267
- );
268
- addFilter(
269
- 'editor.BlockEdit',
270
- 'core/editor/align/with-toolbar-controls',
271
- withAlignmentControls
272
- );
273
212
  addFilter(
274
213
  'blocks.getSaveContent.extraProps',
275
214
  'core/editor/align/addAssignedAlign',
@@ -8,6 +8,7 @@ import { WIDE_ALIGNMENTS } from '@wordpress/components';
8
8
  const ALIGNMENTS = [ 'left', 'center', 'right' ];
9
9
 
10
10
  export * from './align.js';
11
+ export { default } from './align.js';
11
12
 
12
13
  // Used to filter out blocks that don't support wide/full alignment on mobile
13
14
  addFilter(
@@ -5,7 +5,6 @@ import { addFilter } from '@wordpress/hooks';
5
5
  import { PanelBody, TextControl, ExternalLink } from '@wordpress/components';
6
6
  import { __ } from '@wordpress/i18n';
7
7
  import { hasBlockSupport } from '@wordpress/blocks';
8
- import { createHigherOrderComponent } from '@wordpress/compose';
9
8
  import { Platform } from '@wordpress/element';
10
9
 
11
10
  /**
@@ -52,7 +51,11 @@ export function addAttribute( settings ) {
52
51
  return settings;
53
52
  }
54
53
 
55
- function BlockEditAnchorControl( { blockName, attributes, setAttributes } ) {
54
+ function BlockEditAnchorControlPure( {
55
+ name: blockName,
56
+ anchor,
57
+ setAttributes,
58
+ } ) {
56
59
  const blockEditingMode = useBlockEditingMode();
57
60
 
58
61
  const isWeb = Platform.OS === 'web';
@@ -79,7 +82,7 @@ function BlockEditAnchorControl( { blockName, attributes, setAttributes } ) {
79
82
  ) }
80
83
  </>
81
84
  }
82
- value={ attributes.anchor || '' }
85
+ value={ anchor || '' }
83
86
  placeholder={ ! isWeb ? __( 'Add an anchor' ) : null }
84
87
  onChange={ ( nextValue ) => {
85
88
  nextValue = nextValue.replace( ANCHOR_REGEX, '-' );
@@ -116,31 +119,13 @@ function BlockEditAnchorControl( { blockName, attributes, setAttributes } ) {
116
119
  );
117
120
  }
118
121
 
119
- /**
120
- * Override the default edit UI to include a new block inspector control for
121
- * assigning the anchor ID, if block supports anchor.
122
- *
123
- * @param {Component} BlockEdit Original component.
124
- *
125
- * @return {Component} Wrapped component.
126
- */
127
- export const withAnchorControls = createHigherOrderComponent( ( BlockEdit ) => {
128
- return ( props ) => {
129
- return (
130
- <>
131
- <BlockEdit { ...props } />
132
- { props.isSelected &&
133
- hasBlockSupport( props.name, 'anchor' ) && (
134
- <BlockEditAnchorControl
135
- blockName={ props.name }
136
- attributes={ props.attributes }
137
- setAttributes={ props.setAttributes }
138
- />
139
- ) }
140
- </>
141
- );
142
- };
143
- }, 'withAnchorControls' );
122
+ export default {
123
+ edit: BlockEditAnchorControlPure,
124
+ attributeKeys: [ 'anchor' ],
125
+ hasSupport( name ) {
126
+ return hasBlockSupport( name, 'anchor' );
127
+ },
128
+ };
144
129
 
145
130
  /**
146
131
  * Override props assigned to save component to inject anchor ID, if block
@@ -162,11 +147,6 @@ export function addSaveProps( extraProps, blockType, attributes ) {
162
147
  }
163
148
 
164
149
  addFilter( 'blocks.registerBlockType', 'core/anchor/attribute', addAttribute );
165
- addFilter(
166
- 'editor.BlockEdit',
167
- 'core/editor/anchor/with-inspector-controls',
168
- withAnchorControls
169
- );
170
150
  addFilter(
171
151
  'blocks.getSaveContent.extraProps',
172
152
  'core/editor/anchor/save-props',