@wordpress/block-editor 13.4.0 → 14.1.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 (533) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +20 -15
  3. package/build/autocompleters/block.js +1 -1
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-breadcrumb/index.js +3 -1
  6. package/build/components/block-breadcrumb/index.js.map +1 -1
  7. package/build/components/block-draggable/index.js +2 -2
  8. package/build/components/block-draggable/index.js.map +1 -1
  9. package/build/components/block-list/use-block-props/index.js +2 -2
  10. package/build/components/block-list/use-block-props/index.js.map +1 -1
  11. package/build/components/block-list/use-block-props/use-block-refs.js +24 -32
  12. package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  13. package/build/components/block-list/use-in-between-inserter.js +11 -4
  14. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  15. package/build/components/block-mover/index.js +1 -2
  16. package/build/components/block-mover/index.js.map +1 -1
  17. package/build/components/block-popover/cover.js +1 -1
  18. package/build/components/block-popover/cover.js.map +1 -1
  19. package/build/components/block-popover/inbetween.js +2 -2
  20. package/build/components/block-popover/inbetween.js.map +1 -1
  21. package/build/components/block-popover/index.js +2 -2
  22. package/build/components/block-popover/index.js.map +1 -1
  23. package/build/components/block-settings-menu/block-mode-toggle.js +28 -34
  24. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  25. package/build/components/block-tools/block-selection-button.js +1 -2
  26. package/build/components/block-tools/block-selection-button.js.map +1 -1
  27. package/build/components/block-tools/index.js +1 -1
  28. package/build/components/block-tools/index.js.map +1 -1
  29. package/build/components/block-tools/insertion-point.js +14 -3
  30. package/build/components/block-tools/insertion-point.js.map +1 -1
  31. package/build/components/block-tools/use-block-toolbar-popover-props.js +1 -1
  32. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  33. package/build/components/block-tools/use-show-block-tools.js +2 -1
  34. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  35. package/build/components/block-tools/zoom-out-mode-inserters.js +22 -19
  36. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  37. package/build/components/block-tools/zoom-out-toolbar.js +0 -1
  38. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  39. package/build/components/border-radius-control/index.js +1 -0
  40. package/build/components/border-radius-control/index.js.map +1 -1
  41. package/build/components/child-layout-control/index.js +3 -1
  42. package/build/components/child-layout-control/index.js.map +1 -1
  43. package/build/components/convert-to-group-buttons/index.js +1 -1
  44. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  45. package/build/components/date-format-picker/index.js +2 -0
  46. package/build/components/date-format-picker/index.js.map +1 -1
  47. package/build/components/dimensions-tool/scale-tool.js +1 -0
  48. package/build/components/dimensions-tool/scale-tool.js.map +1 -1
  49. package/build/components/font-appearance-control/index.js +3 -0
  50. package/build/components/font-appearance-control/index.js.map +1 -1
  51. package/build/components/font-family/index.js +15 -0
  52. package/build/components/font-family/index.js.map +1 -1
  53. package/build/components/global-styles/background-panel.js +153 -77
  54. package/build/components/global-styles/background-panel.js.map +1 -1
  55. package/build/components/global-styles/get-global-styles-changes.js +3 -1
  56. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  57. package/build/components/global-styles/hooks.js +0 -7
  58. package/build/components/global-styles/hooks.js.map +1 -1
  59. package/build/components/global-styles/image-settings-panel.js +1 -0
  60. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  61. package/build/components/global-styles/index.js +0 -6
  62. package/build/components/global-styles/index.js.map +1 -1
  63. package/build/components/global-styles/typography-panel.js +0 -1
  64. package/build/components/global-styles/typography-panel.js.map +1 -1
  65. package/build/components/global-styles/use-global-styles-output.js +59 -40
  66. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  67. package/build/components/global-styles/utils.js +80 -0
  68. package/build/components/global-styles/utils.js.map +1 -1
  69. package/build/components/grid/grid-item-movers.js +30 -26
  70. package/build/components/grid/grid-item-movers.js.map +1 -1
  71. package/build/components/grid/grid-item-resizer.js +14 -15
  72. package/build/components/grid/grid-item-resizer.js.map +1 -1
  73. package/build/components/grid/grid-visualizer.js +21 -6
  74. package/build/components/grid/grid-visualizer.js.map +1 -1
  75. package/build/components/grid/use-grid-layout-sync.js +56 -20
  76. package/build/components/grid/use-grid-layout-sync.js.map +1 -1
  77. package/build/components/height-control/index.js +1 -0
  78. package/build/components/height-control/index.js.map +1 -1
  79. package/build/components/iframe/index.js +2 -4
  80. package/build/components/iframe/index.js.map +1 -1
  81. package/build/components/image-editor/zoom-dropdown.js +11 -7
  82. package/build/components/image-editor/zoom-dropdown.js.map +1 -1
  83. package/build/components/inner-blocks/button-block-appender.js +8 -8
  84. package/build/components/inner-blocks/button-block-appender.js.map +1 -1
  85. package/build/components/inner-blocks/default-block-appender.js +7 -25
  86. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  87. package/build/components/inner-blocks/index.js +9 -11
  88. package/build/components/inner-blocks/index.js.map +1 -1
  89. package/build/components/inserter/category-tabs/index.js +29 -2
  90. package/build/components/inserter/category-tabs/index.js.map +1 -1
  91. package/build/components/inserter/library.js +4 -2
  92. package/build/components/inserter/library.js.map +1 -1
  93. package/build/components/inserter/menu.js +32 -14
  94. package/build/components/inserter/menu.js.map +1 -1
  95. package/build/components/inserter/quick-inserter.js +4 -0
  96. package/build/components/inserter/quick-inserter.js.map +1 -1
  97. package/build/components/line-height-control/index.js +3 -15
  98. package/build/components/line-height-control/index.js.map +1 -1
  99. package/build/components/link-control/search-input.js +0 -1
  100. package/build/components/link-control/search-input.js.map +1 -1
  101. package/build/components/media-placeholder/index.js +9 -4
  102. package/build/components/media-placeholder/index.js.map +1 -1
  103. package/build/components/media-replace-flow/index.js +3 -1
  104. package/build/components/media-replace-flow/index.js.map +1 -1
  105. package/build/components/media-upload/index.native.js +4 -1
  106. package/build/components/media-upload/index.native.js.map +1 -1
  107. package/build/components/multi-selection-inspector/index.js +12 -12
  108. package/build/components/multi-selection-inspector/index.js.map +1 -1
  109. package/build/components/resolution-tool/index.js +1 -0
  110. package/build/components/resolution-tool/index.js.map +1 -1
  111. package/build/components/skip-to-selected-block/index.js +4 -2
  112. package/build/components/skip-to-selected-block/index.js.map +1 -1
  113. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +8 -8
  114. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  115. package/build/components/text-alignment-control/index.js +13 -8
  116. package/build/components/text-alignment-control/index.js.map +1 -1
  117. package/build/components/text-decoration-control/index.js +13 -8
  118. package/build/components/text-decoration-control/index.js.map +1 -1
  119. package/build/components/text-transform-control/index.js +13 -8
  120. package/build/components/text-transform-control/index.js.map +1 -1
  121. package/build/components/url-input/button.js +0 -1
  122. package/build/components/url-input/button.js.map +1 -1
  123. package/build/components/url-input/index.js +1 -11
  124. package/build/components/url-input/index.js.map +1 -1
  125. package/build/components/url-popover/image-url-input-ui.js +2 -0
  126. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  127. package/build/components/url-popover/link-editor.js +0 -1
  128. package/build/components/url-popover/link-editor.js.map +1 -1
  129. package/build/components/use-block-drop-zone/index.js +42 -4
  130. package/build/components/use-block-drop-zone/index.js.map +1 -1
  131. package/build/components/use-on-block-drop/index.js +3 -6
  132. package/build/components/use-on-block-drop/index.js.map +1 -1
  133. package/build/components/use-resize-canvas/index.js +1 -3
  134. package/build/components/use-resize-canvas/index.js.map +1 -1
  135. package/build/components/use-settings/index.js +2 -1
  136. package/build/components/use-settings/index.js.map +1 -1
  137. package/build/components/writing-mode-control/index.js +13 -8
  138. package/build/components/writing-mode-control/index.js.map +1 -1
  139. package/build/hooks/background.js +19 -23
  140. package/build/hooks/background.js.map +1 -1
  141. package/build/hooks/block-bindings.js +209 -39
  142. package/build/hooks/block-bindings.js.map +1 -1
  143. package/build/hooks/block-hooks.js +1 -0
  144. package/build/hooks/block-hooks.js.map +1 -1
  145. package/build/hooks/block-style-variation.js +2 -2
  146. package/build/hooks/block-style-variation.js.map +1 -1
  147. package/build/hooks/contrast-checker.js +6 -6
  148. package/build/hooks/contrast-checker.js.map +1 -1
  149. package/build/hooks/duotone.js +3 -3
  150. package/build/hooks/duotone.js.map +1 -1
  151. package/build/hooks/index.js +7 -1
  152. package/build/hooks/index.js.map +1 -1
  153. package/build/hooks/line-height.js +0 -1
  154. package/build/hooks/line-height.js.map +1 -1
  155. package/build/hooks/spacing-visualizer.js +1 -1
  156. package/build/hooks/spacing-visualizer.js.map +1 -1
  157. package/build/hooks/use-bindings-attributes.js +4 -0
  158. package/build/hooks/use-bindings-attributes.js.map +1 -1
  159. package/build/hooks/use-zoom-out.js +1 -1
  160. package/build/hooks/use-zoom-out.js.map +1 -1
  161. package/build/hooks/utils.js +20 -0
  162. package/build/hooks/utils.js.map +1 -1
  163. package/build/index.js +7 -0
  164. package/build/index.js.map +1 -1
  165. package/build/layouts/constrained.js +1 -0
  166. package/build/layouts/constrained.js.map +1 -1
  167. package/build/layouts/flex.js +2 -0
  168. package/build/layouts/flex.js.map +1 -1
  169. package/build/layouts/grid.js +3 -0
  170. package/build/layouts/grid.js.map +1 -1
  171. package/build/private-apis.js +3 -2
  172. package/build/private-apis.js.map +1 -1
  173. package/build/store/actions.js +9 -1
  174. package/build/store/actions.js.map +1 -1
  175. package/build/store/private-selectors.js +30 -0
  176. package/build/store/private-selectors.js.map +1 -1
  177. package/build/store/reducer.js +10 -1
  178. package/build/store/reducer.js.map +1 -1
  179. package/build/store/selectors.js +4 -4
  180. package/build/store/selectors.js.map +1 -1
  181. package/build/utils/block-bindings.js +112 -0
  182. package/build/utils/block-bindings.js.map +1 -0
  183. package/build/utils/get-editor-region.js +1 -1
  184. package/build/utils/get-editor-region.js.map +1 -1
  185. package/build/utils/get-px-from-css-unit.js +1 -1
  186. package/build/utils/get-px-from-css-unit.js.map +1 -1
  187. package/build-module/autocompleters/block.js +1 -1
  188. package/build-module/autocompleters/block.js.map +1 -1
  189. package/build-module/components/block-breadcrumb/index.js +4 -2
  190. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  191. package/build-module/components/block-draggable/index.js +3 -3
  192. package/build-module/components/block-draggable/index.js.map +1 -1
  193. package/build-module/components/block-list/use-block-props/index.js +2 -2
  194. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  195. package/build-module/components/block-list/use-block-props/use-block-refs.js +24 -34
  196. package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  197. package/build-module/components/block-list/use-in-between-inserter.js +11 -4
  198. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  199. package/build-module/components/block-mover/index.js +1 -2
  200. package/build-module/components/block-mover/index.js.map +1 -1
  201. package/build-module/components/block-popover/cover.js +1 -1
  202. package/build-module/components/block-popover/cover.js.map +1 -1
  203. package/build-module/components/block-popover/inbetween.js +1 -1
  204. package/build-module/components/block-popover/inbetween.js.map +1 -1
  205. package/build-module/components/block-popover/index.js +1 -1
  206. package/build-module/components/block-popover/index.js.map +1 -1
  207. package/build-module/components/block-settings-menu/block-mode-toggle.js +29 -34
  208. package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  209. package/build-module/components/block-tools/block-selection-button.js +1 -2
  210. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  211. package/build-module/components/block-tools/index.js +1 -1
  212. package/build-module/components/block-tools/index.js.map +1 -1
  213. package/build-module/components/block-tools/insertion-point.js +14 -3
  214. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  215. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +1 -1
  216. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  217. package/build-module/components/block-tools/use-show-block-tools.js +2 -1
  218. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  219. package/build-module/components/block-tools/zoom-out-mode-inserters.js +23 -20
  220. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  221. package/build-module/components/block-tools/zoom-out-toolbar.js +0 -1
  222. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  223. package/build-module/components/border-radius-control/index.js +1 -0
  224. package/build-module/components/border-radius-control/index.js.map +1 -1
  225. package/build-module/components/child-layout-control/index.js +3 -1
  226. package/build-module/components/child-layout-control/index.js.map +1 -1
  227. package/build-module/components/convert-to-group-buttons/index.js +1 -1
  228. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  229. package/build-module/components/date-format-picker/index.js +2 -0
  230. package/build-module/components/date-format-picker/index.js.map +1 -1
  231. package/build-module/components/dimensions-tool/scale-tool.js +1 -0
  232. package/build-module/components/dimensions-tool/scale-tool.js.map +1 -1
  233. package/build-module/components/font-appearance-control/index.js +3 -0
  234. package/build-module/components/font-appearance-control/index.js.map +1 -1
  235. package/build-module/components/font-family/index.js +14 -0
  236. package/build-module/components/font-family/index.js.map +1 -1
  237. package/build-module/components/global-styles/background-panel.js +156 -80
  238. package/build-module/components/global-styles/background-panel.js.map +1 -1
  239. package/build-module/components/global-styles/get-global-styles-changes.js +3 -1
  240. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  241. package/build-module/components/global-styles/hooks.js +0 -6
  242. package/build-module/components/global-styles/hooks.js.map +1 -1
  243. package/build-module/components/global-styles/image-settings-panel.js +1 -0
  244. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  245. package/build-module/components/global-styles/index.js +1 -1
  246. package/build-module/components/global-styles/index.js.map +1 -1
  247. package/build-module/components/global-styles/typography-panel.js +0 -1
  248. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  249. package/build-module/components/global-styles/use-global-styles-output.js +61 -42
  250. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  251. package/build-module/components/global-styles/utils.js +77 -0
  252. package/build-module/components/global-styles/utils.js.map +1 -1
  253. package/build-module/components/grid/grid-item-movers.js +30 -26
  254. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  255. package/build-module/components/grid/grid-item-resizer.js +14 -15
  256. package/build-module/components/grid/grid-item-resizer.js.map +1 -1
  257. package/build-module/components/grid/grid-visualizer.js +21 -6
  258. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  259. package/build-module/components/grid/use-grid-layout-sync.js +56 -20
  260. package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
  261. package/build-module/components/height-control/index.js +1 -0
  262. package/build-module/components/height-control/index.js.map +1 -1
  263. package/build-module/components/iframe/index.js +2 -4
  264. package/build-module/components/iframe/index.js.map +1 -1
  265. package/build-module/components/image-editor/zoom-dropdown.js +12 -8
  266. package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
  267. package/build-module/components/inner-blocks/button-block-appender.js +7 -6
  268. package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
  269. package/build-module/components/inner-blocks/default-block-appender.js +6 -23
  270. package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
  271. package/build-module/components/inner-blocks/index.js +9 -11
  272. package/build-module/components/inner-blocks/index.js.map +1 -1
  273. package/build-module/components/inserter/category-tabs/index.js +30 -3
  274. package/build-module/components/inserter/category-tabs/index.js.map +1 -1
  275. package/build-module/components/inserter/library.js +4 -2
  276. package/build-module/components/inserter/library.js.map +1 -1
  277. package/build-module/components/inserter/menu.js +32 -14
  278. package/build-module/components/inserter/menu.js.map +1 -1
  279. package/build-module/components/inserter/quick-inserter.js +5 -1
  280. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  281. package/build-module/components/line-height-control/index.js +3 -14
  282. package/build-module/components/line-height-control/index.js.map +1 -1
  283. package/build-module/components/link-control/search-input.js +0 -1
  284. package/build-module/components/link-control/search-input.js.map +1 -1
  285. package/build-module/components/media-placeholder/index.js +9 -4
  286. package/build-module/components/media-placeholder/index.js.map +1 -1
  287. package/build-module/components/media-replace-flow/index.js +3 -1
  288. package/build-module/components/media-replace-flow/index.js.map +1 -1
  289. package/build-module/components/media-upload/index.native.js +4 -1
  290. package/build-module/components/media-upload/index.native.js.map +1 -1
  291. package/build-module/components/multi-selection-inspector/index.js +12 -12
  292. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  293. package/build-module/components/resolution-tool/index.js +1 -0
  294. package/build-module/components/resolution-tool/index.js.map +1 -1
  295. package/build-module/components/skip-to-selected-block/index.js +5 -3
  296. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  297. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +8 -8
  298. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  299. package/build-module/components/text-alignment-control/index.js +13 -8
  300. package/build-module/components/text-alignment-control/index.js.map +1 -1
  301. package/build-module/components/text-decoration-control/index.js +13 -8
  302. package/build-module/components/text-decoration-control/index.js.map +1 -1
  303. package/build-module/components/text-transform-control/index.js +13 -8
  304. package/build-module/components/text-transform-control/index.js.map +1 -1
  305. package/build-module/components/url-input/button.js +0 -1
  306. package/build-module/components/url-input/button.js.map +1 -1
  307. package/build-module/components/url-input/index.js +1 -11
  308. package/build-module/components/url-input/index.js.map +1 -1
  309. package/build-module/components/url-popover/image-url-input-ui.js +2 -0
  310. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  311. package/build-module/components/url-popover/link-editor.js +0 -1
  312. package/build-module/components/url-popover/link-editor.js.map +1 -1
  313. package/build-module/components/use-block-drop-zone/index.js +42 -4
  314. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  315. package/build-module/components/use-on-block-drop/index.js +3 -6
  316. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  317. package/build-module/components/use-resize-canvas/index.js +1 -3
  318. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  319. package/build-module/components/use-settings/index.js +2 -1
  320. package/build-module/components/use-settings/index.js.map +1 -1
  321. package/build-module/components/writing-mode-control/index.js +13 -8
  322. package/build-module/components/writing-mode-control/index.js.map +1 -1
  323. package/build-module/hooks/background.js +19 -23
  324. package/build-module/hooks/background.js.map +1 -1
  325. package/build-module/hooks/block-bindings.js +214 -43
  326. package/build-module/hooks/block-bindings.js.map +1 -1
  327. package/build-module/hooks/block-hooks.js +1 -0
  328. package/build-module/hooks/block-hooks.js.map +1 -1
  329. package/build-module/hooks/block-style-variation.js +3 -3
  330. package/build-module/hooks/block-style-variation.js.map +1 -1
  331. package/build-module/hooks/contrast-checker.js +7 -7
  332. package/build-module/hooks/contrast-checker.js.map +1 -1
  333. package/build-module/hooks/duotone.js +4 -4
  334. package/build-module/hooks/duotone.js.map +1 -1
  335. package/build-module/hooks/index.js +2 -1
  336. package/build-module/hooks/index.js.map +1 -1
  337. package/build-module/hooks/line-height.js +0 -1
  338. package/build-module/hooks/line-height.js.map +1 -1
  339. package/build-module/hooks/spacing-visualizer.js +1 -1
  340. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  341. package/build-module/hooks/use-bindings-attributes.js +3 -0
  342. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  343. package/build-module/hooks/use-zoom-out.js +1 -1
  344. package/build-module/hooks/use-zoom-out.js.map +1 -1
  345. package/build-module/hooks/utils.js +19 -0
  346. package/build-module/hooks/utils.js.map +1 -1
  347. package/build-module/index.js +1 -1
  348. package/build-module/index.js.map +1 -1
  349. package/build-module/layouts/constrained.js +1 -0
  350. package/build-module/layouts/constrained.js.map +1 -1
  351. package/build-module/layouts/flex.js +2 -0
  352. package/build-module/layouts/flex.js.map +1 -1
  353. package/build-module/layouts/grid.js +3 -0
  354. package/build-module/layouts/grid.js.map +1 -1
  355. package/build-module/private-apis.js +4 -3
  356. package/build-module/private-apis.js.map +1 -1
  357. package/build-module/store/actions.js +9 -1
  358. package/build-module/store/actions.js.map +1 -1
  359. package/build-module/store/private-selectors.js +27 -0
  360. package/build-module/store/private-selectors.js.map +1 -1
  361. package/build-module/store/reducer.js +9 -1
  362. package/build-module/store/reducer.js.map +1 -1
  363. package/build-module/store/selectors.js +4 -4
  364. package/build-module/store/selectors.js.map +1 -1
  365. package/build-module/utils/block-bindings.js +105 -0
  366. package/build-module/utils/block-bindings.js.map +1 -0
  367. package/build-module/utils/get-editor-region.js +1 -1
  368. package/build-module/utils/get-editor-region.js.map +1 -1
  369. package/build-module/utils/get-px-from-css-unit.js +1 -1
  370. package/build-module/utils/get-px-from-css-unit.js.map +1 -1
  371. package/build-style/content-rtl.css +12 -26
  372. package/build-style/content.css +12 -26
  373. package/build-style/default-editor-styles-rtl.css +5 -2
  374. package/build-style/default-editor-styles.css +5 -2
  375. package/build-style/style-rtl.css +123 -83
  376. package/build-style/style.css +123 -83
  377. package/package.json +32 -32
  378. package/src/autocompleters/block.js +2 -1
  379. package/src/autocompleters/style.scss +4 -0
  380. package/src/components/block-breadcrumb/index.js +4 -2
  381. package/src/components/block-canvas/style.scss +1 -0
  382. package/src/components/block-draggable/index.js +3 -3
  383. package/src/components/block-list/content.scss +5 -13
  384. package/src/components/block-list/use-block-props/index.js +2 -2
  385. package/src/components/block-list/use-block-props/use-block-refs.js +27 -43
  386. package/src/components/block-list/use-in-between-inserter.js +17 -5
  387. package/src/components/block-mover/index.js +5 -2
  388. package/src/components/block-popover/cover.js +1 -1
  389. package/src/components/block-popover/inbetween.js +1 -1
  390. package/src/components/block-popover/index.js +1 -1
  391. package/src/components/block-settings-menu/block-mode-toggle.js +28 -31
  392. package/src/components/block-settings-menu/test/block-mode-toggle.js +26 -23
  393. package/src/components/block-tools/block-selection-button.js +1 -2
  394. package/src/components/block-tools/index.js +5 -6
  395. package/src/components/block-tools/insertion-point.js +11 -0
  396. package/src/components/block-tools/style.scss +1 -1
  397. package/src/components/block-tools/use-block-toolbar-popover-props.js +1 -1
  398. package/src/components/block-tools/use-show-block-tools.js +4 -1
  399. package/src/components/block-tools/zoom-out-mode-inserters.js +21 -19
  400. package/src/components/block-tools/zoom-out-toolbar.js +0 -1
  401. package/src/components/block-variation-transforms/style.scss +1 -1
  402. package/src/components/border-radius-control/index.js +1 -0
  403. package/src/components/border-radius-control/style.scss +0 -10
  404. package/src/components/button-block-appender/content.scss +1 -1
  405. package/src/components/child-layout-control/index.js +2 -0
  406. package/src/components/color-palette/test/__snapshots__/control.js.snap +2 -2
  407. package/src/components/colors-gradients/test/control.js +3 -2
  408. package/src/components/convert-to-group-buttons/index.js +1 -1
  409. package/src/components/date-format-picker/index.js +2 -0
  410. package/src/components/dimensions-tool/scale-tool.js +1 -0
  411. package/src/components/font-appearance-control/index.js +3 -0
  412. package/src/components/font-family/README.md +17 -0
  413. package/src/components/font-family/index.js +19 -0
  414. package/src/components/font-family/stories/index.story.js +54 -0
  415. package/src/components/global-styles/background-panel.js +180 -93
  416. package/src/components/global-styles/get-global-styles-changes.js +4 -1
  417. package/src/components/global-styles/hooks.js +0 -5
  418. package/src/components/global-styles/image-settings-panel.js +1 -0
  419. package/src/components/global-styles/index.js +0 -1
  420. package/src/components/global-styles/style.scss +13 -12
  421. package/src/components/global-styles/test/use-global-styles-output.js +68 -7
  422. package/src/components/global-styles/test/utils.js +120 -0
  423. package/src/components/global-styles/typography-panel.js +0 -1
  424. package/src/components/global-styles/use-global-styles-output.js +71 -53
  425. package/src/components/global-styles/utils.js +90 -0
  426. package/src/components/grid/grid-item-movers.js +46 -44
  427. package/src/components/grid/grid-item-resizer.js +11 -17
  428. package/src/components/grid/grid-visualizer.js +23 -8
  429. package/src/components/grid/style.scss +60 -10
  430. package/src/components/grid/use-grid-layout-sync.js +68 -14
  431. package/src/components/height-control/index.js +1 -0
  432. package/src/components/iframe/content.scss +2 -2
  433. package/src/components/iframe/index.js +1 -3
  434. package/src/components/image-editor/zoom-dropdown.js +17 -9
  435. package/src/components/inner-blocks/button-block-appender.js +5 -7
  436. package/src/components/inner-blocks/default-block-appender.js +4 -23
  437. package/src/components/inner-blocks/index.js +10 -9
  438. package/src/components/inserter/category-tabs/index.js +35 -2
  439. package/src/components/inserter/library.js +2 -0
  440. package/src/components/inserter/menu.js +34 -29
  441. package/src/components/inserter/quick-inserter.js +4 -1
  442. package/src/components/inserter/style.scss +17 -12
  443. package/src/components/inserter-list-item/style.scss +1 -0
  444. package/src/components/inspector-controls/README.md +5 -0
  445. package/src/components/line-height-control/README.md +4 -5
  446. package/src/components/line-height-control/index.js +4 -21
  447. package/src/components/line-height-control/stories/index.story.js +0 -1
  448. package/src/components/line-height-control/test/index.js +1 -7
  449. package/src/components/link-control/search-input.js +0 -1
  450. package/src/components/link-control/style.scss +1 -1
  451. package/src/components/media-placeholder/index.js +12 -7
  452. package/src/components/media-replace-flow/README.md +7 -0
  453. package/src/components/media-replace-flow/index.js +3 -1
  454. package/src/components/media-upload/README.md +2 -0
  455. package/src/components/media-upload/index.native.js +2 -0
  456. package/src/components/multi-selection-inspector/index.js +8 -9
  457. package/src/components/resolution-tool/index.js +1 -0
  458. package/src/components/responsive-block-control/README.md +1 -0
  459. package/src/components/responsive-block-control/test/index.js +6 -1
  460. package/src/components/skip-to-selected-block/index.js +5 -3
  461. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +11 -10
  462. package/src/components/spacing-sizes-control/style.scss +16 -16
  463. package/src/components/tabbed-sidebar/style.scss +1 -19
  464. package/src/components/text-alignment-control/index.js +20 -8
  465. package/src/components/text-decoration-control/index.js +20 -8
  466. package/src/components/text-decoration-control/stories/index.story.js +0 -4
  467. package/src/components/text-transform-control/index.js +20 -8
  468. package/src/components/text-transform-control/stories/index.story.js +0 -4
  469. package/src/components/url-input/README.md +0 -5
  470. package/src/components/url-input/button.js +0 -1
  471. package/src/components/url-input/index.js +1 -15
  472. package/src/components/url-input/style.scss +2 -2
  473. package/src/components/url-popover/image-url-input-ui.js +2 -0
  474. package/src/components/url-popover/link-editor.js +0 -1
  475. package/src/components/use-block-drop-zone/index.js +86 -16
  476. package/src/components/use-on-block-drop/index.js +1 -9
  477. package/src/components/use-resize-canvas/index.js +1 -3
  478. package/src/components/use-settings/index.js +2 -1
  479. package/src/components/writing-mode-control/index.js +20 -8
  480. package/src/hooks/background.js +21 -27
  481. package/src/hooks/block-bindings.js +248 -54
  482. package/src/hooks/block-bindings.scss +13 -2
  483. package/src/hooks/block-hooks.js +1 -0
  484. package/src/hooks/block-hooks.scss +1 -0
  485. package/src/hooks/block-style-variation.js +3 -3
  486. package/src/hooks/contrast-checker.js +7 -7
  487. package/src/hooks/duotone.js +4 -4
  488. package/src/hooks/index.js +2 -1
  489. package/src/hooks/line-height.js +0 -1
  490. package/src/hooks/spacing-visualizer.js +1 -1
  491. package/src/hooks/test/background.js +60 -0
  492. package/src/hooks/use-bindings-attributes.js +4 -0
  493. package/src/hooks/use-editor-wrapper-styles.native.scss +1 -0
  494. package/src/hooks/use-zoom-out.js +1 -1
  495. package/src/hooks/utils.js +14 -1
  496. package/src/index.js +1 -0
  497. package/src/layouts/constrained.js +1 -0
  498. package/src/layouts/flex.js +2 -0
  499. package/src/layouts/grid.js +3 -0
  500. package/src/private-apis.js +3 -2
  501. package/src/store/actions.js +13 -5
  502. package/src/store/private-selectors.js +36 -0
  503. package/src/store/reducer.js +7 -0
  504. package/src/store/selectors.js +4 -4
  505. package/src/store/test/private-selectors.js +89 -0
  506. package/src/style.scss +1 -2
  507. package/src/utils/block-bindings.js +98 -0
  508. package/src/utils/get-editor-region.js +1 -1
  509. package/src/utils/get-px-from-css-unit.js +1 -1
  510. package/src/utils/test/transform-styles.js +49 -0
  511. package/tsconfig.tsbuildinfo +1 -1
  512. package/build/components/global-styles/theme-file-uri-utils.js +0 -80
  513. package/build/components/global-styles/theme-file-uri-utils.js.map +0 -1
  514. package/build/components/inner-blocks/with-client-id.js +0 -28
  515. package/build/components/inner-blocks/with-client-id.js.map +0 -1
  516. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +0 -30
  517. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +0 -1
  518. package/build/components/segmented-text-control/index.js +0 -63
  519. package/build/components/segmented-text-control/index.js.map +0 -1
  520. package/build-module/components/global-styles/theme-file-uri-utils.js +0 -73
  521. package/build-module/components/global-styles/theme-file-uri-utils.js.map +0 -1
  522. package/build-module/components/inner-blocks/with-client-id.js +0 -21
  523. package/build-module/components/inner-blocks/with-client-id.js.map +0 -1
  524. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +0 -23
  525. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +0 -1
  526. package/build-module/components/segmented-text-control/index.js +0 -58
  527. package/build-module/components/segmented-text-control/index.js.map +0 -1
  528. package/src/components/global-styles/test/theme-file-uri-utils.js +0 -66
  529. package/src/components/global-styles/theme-file-uri-utils.js +0 -77
  530. package/src/components/inner-blocks/with-client-id.js +0 -19
  531. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +0 -25
  532. package/src/components/segmented-text-control/index.js +0 -63
  533. package/src/components/segmented-text-control/style.scss +0 -15
@@ -44,6 +44,7 @@ export default function ResolutionTool( {
44
44
  panelId={ panelId }
45
45
  >
46
46
  <SelectControl
47
+ __nextHasNoMarginBottom
47
48
  label={ __( 'Resolution' ) }
48
49
  value={ displayValue }
49
50
  options={ options }
@@ -64,6 +64,7 @@ registerBlockType( 'my-plugin/my-block', {
64
64
  const paddingControl = ( labelComponent, viewport ) => {
65
65
  return (
66
66
  <DimensionControl
67
+ __nextHasNoMarginBottom
67
68
  label={ viewport.label }
68
69
  onChange={ // handle update to padding value here }
69
70
  value={ paddingSize }
@@ -39,7 +39,12 @@ const sizeOptions = [
39
39
  const renderTestDefaultControlComponent = ( labelComponent, device ) => {
40
40
  return (
41
41
  <>
42
- <SelectControl label={ labelComponent } options={ sizeOptions } />
42
+ <SelectControl
43
+ __next40pxDefaultSize
44
+ label={ labelComponent }
45
+ options={ sizeOptions }
46
+ __nextHasNoMarginBottom
47
+ />
43
48
  <p id={ device.id }>
44
49
  { device.label } is used here for testing purposes to ensure we
45
50
  have access to details about the device.
@@ -4,12 +4,13 @@
4
4
  import { useSelect } from '@wordpress/data';
5
5
  import { __ } from '@wordpress/i18n';
6
6
  import { Button } from '@wordpress/components';
7
+ import { useRef } from '@wordpress/element';
7
8
 
8
9
  /**
9
10
  * Internal dependencies
10
11
  */
11
12
  import { store as blockEditorStore } from '../../store';
12
- import { __unstableUseBlockRef as useBlockRef } from '../block-list/use-block-props/use-block-refs';
13
+ import { useBlockElementRef } from '../block-list/use-block-props/use-block-refs';
13
14
 
14
15
  /**
15
16
  * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/skip-to-selected-block/README.md
@@ -19,9 +20,10 @@ export default function SkipToSelectedBlock() {
19
20
  ( select ) => select( blockEditorStore ).getBlockSelectionStart(),
20
21
  []
21
22
  );
22
- const ref = useBlockRef( selectedBlockClientId );
23
+ const ref = useRef();
24
+ useBlockElementRef( selectedBlockClientId, ref );
23
25
  const onClick = () => {
24
- ref.current.focus();
26
+ ref.current?.focus();
25
27
  };
26
28
 
27
29
  return selectedBlockClientId ? (
@@ -9,7 +9,7 @@ import {
9
9
  __experimentalUnitControl as UnitControl,
10
10
  __experimentalUseCustomUnits as useCustomUnits,
11
11
  __experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,
12
- privateApis as componentsPrivateApis,
12
+ CustomSelectControl,
13
13
  } from '@wordpress/components';
14
14
  import { useSelect } from '@wordpress/data';
15
15
  import { useState, useMemo } from '@wordpress/element';
@@ -31,11 +31,6 @@ import {
31
31
  getPresetValueFromCustomValue,
32
32
  isValueSpacingPreset,
33
33
  } from '../utils';
34
- import { unlock } from '../../../lock-unlock';
35
-
36
- const { CustomSelectControlV2Legacy: CustomSelectControl } = unlock(
37
- componentsPrivateApis
38
- );
39
34
 
40
35
  const CUSTOM_VALUE_SETTINGS = {
41
36
  px: { max: 300, steps: 1 },
@@ -193,10 +188,12 @@ export default function SpacingInputControl( {
193
188
  name: size.name,
194
189
  } ) );
195
190
 
196
- const marks = spacingSizes.map( ( _newValue, index ) => ( {
197
- value: index,
198
- label: undefined,
199
- } ) );
191
+ const marks = spacingSizes
192
+ .slice( 1, spacingSizes.length - 1 )
193
+ .map( ( _newValue, index ) => ( {
194
+ value: index + 1,
195
+ label: undefined,
196
+ } ) );
200
197
 
201
198
  const sideLabel =
202
199
  ALL_SIDES.includes( side ) && showSideInLabel ? LABELS[ side ] : '';
@@ -252,6 +249,7 @@ export default function SpacingInputControl( {
252
249
  } }
253
250
  />
254
251
  <RangeControl
252
+ __next40pxDefaultSize
255
253
  onMouseOver={ onMouseOver }
256
254
  onMouseOut={ onMouseOut }
257
255
  onFocus={ onMouseOver }
@@ -266,11 +264,14 @@ export default function SpacingInputControl( {
266
264
  onChange={ handleCustomValueSliderChange }
267
265
  className="spacing-sizes-control__custom-value-range"
268
266
  __nextHasNoMarginBottom
267
+ label={ ariaLabel }
268
+ hideLabelFromVision
269
269
  />
270
270
  </>
271
271
  ) }
272
272
  { showRangeControl && ! showCustomValueControl && (
273
273
  <RangeControl
274
+ __next40pxDefaultSize
274
275
  onMouseOver={ onMouseOver }
275
276
  onMouseOut={ onMouseOut }
276
277
  className="spacing-sizes-control__range-control"
@@ -4,34 +4,34 @@
4
4
  margin-bottom: 0;
5
5
  }
6
6
 
7
+ .is-marked {
8
+ .components-range-control__track {
9
+ transition: width ease 0.1s;
10
+ @include reduce-motion("transition");
11
+ }
12
+
13
+ .components-range-control__thumb-wrapper {
14
+ transition: left ease 0.1s;
15
+ @include reduce-motion("transition");
16
+ }
17
+ }
18
+
7
19
  .spacing-sizes-control__range-control,
8
20
  .spacing-sizes-control__custom-value-range {
9
- height: 40px;
10
- /* Vertically center the RangeControl until it has true 40px height. */
11
- display: flex;
12
- align-items: center;
13
- margin-bottom: 0;
14
21
  flex: 1;
15
-
16
- > .components-base-control__field {
17
- /* Fixes RangeControl contents when the outer wrapper is flex */
18
- flex: 1;
19
- }
20
22
  }
21
23
 
22
24
  .components-range-control__mark {
25
+ transform: translateX(-50%);
23
26
  height: $grid-unit-05;
24
- width: 3px;
25
- background-color: #fff;
27
+ width: math.div($grid-unit-05, 2);
28
+ background-color: $white;
26
29
  z-index: 1;
30
+ top: -#{$grid-unit-05};
27
31
  }
28
32
 
29
33
  .components-range-control__marks {
30
34
  margin-top: 17px;
31
-
32
- :first-child {
33
- display: none;
34
- }
35
35
  }
36
36
 
37
37
  .components-range-control__thumb-wrapper {
@@ -1,13 +1,10 @@
1
1
  .block-editor-tabbed-sidebar {
2
+ background-color: $white;
2
3
  height: 100%;
3
4
  display: flex;
4
5
  flex-direction: column;
5
6
  flex-grow: 1;
6
7
  overflow: hidden;
7
-
8
- @include break-medium() {
9
- width: 350px;
10
- }
11
8
  }
12
9
 
13
10
  .block-editor-tabbed-sidebar__tablist-and-close-button {
@@ -26,22 +23,7 @@
26
23
  }
27
24
 
28
25
  .block-editor-tabbed-sidebar__tablist {
29
- box-sizing: border-box;
30
- flex-grow: 1;
31
26
  margin-bottom: -$border-width;
32
- width: 100%;
33
- }
34
-
35
- .block-editor-tabbed-sidebar__tab {
36
- flex-grow: 1;
37
- margin-bottom: -$border-width;
38
-
39
- &[id$="reusable"] {
40
- flex-grow: inherit;
41
- // These are to align the `reusable` icon with the search icon.
42
- padding-left: $grid-unit-20;
43
- padding-right: $grid-unit-20;
44
- }
45
27
  }
46
28
 
47
29
  .block-editor-tabbed-sidebar__tabpanel {
@@ -14,11 +14,10 @@ import {
14
14
  alignJustify,
15
15
  } from '@wordpress/icons';
16
16
  import { useMemo } from '@wordpress/element';
17
-
18
- /**
19
- * Internal dependencies
20
- */
21
- import SegmentedTextControl from '../segmented-text-control';
17
+ import {
18
+ __experimentalToggleGroupControl as ToggleGroupControl,
19
+ __experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,
20
+ } from '@wordpress/components';
22
21
 
23
22
  const TEXT_ALIGNMENT_OPTIONS = [
24
23
  {
@@ -75,9 +74,11 @@ export default function TextAlignmentControl( {
75
74
  }
76
75
 
77
76
  return (
78
- <SegmentedTextControl
77
+ <ToggleGroupControl
78
+ isDeselectable
79
+ __nextHasNoMarginBottom
80
+ __next40pxDefaultSize
79
81
  label={ __( 'Text alignment' ) }
80
- options={ validOptions }
81
82
  className={ clsx(
82
83
  'block-editor-text-alignment-control',
83
84
  className
@@ -86,6 +87,17 @@ export default function TextAlignmentControl( {
86
87
  onChange={ ( newValue ) => {
87
88
  onChange( newValue === value ? undefined : newValue );
88
89
  } }
89
- />
90
+ >
91
+ { validOptions.map( ( option ) => {
92
+ return (
93
+ <ToggleGroupControlOptionIcon
94
+ key={ option.value }
95
+ value={ option.value }
96
+ icon={ option.icon }
97
+ label={ option.label }
98
+ />
99
+ );
100
+ } ) }
101
+ </ToggleGroupControl>
90
102
  );
91
103
  }
@@ -8,11 +8,10 @@ import clsx from 'clsx';
8
8
  */
9
9
  import { reset, formatStrikethrough, formatUnderline } from '@wordpress/icons';
10
10
  import { __ } from '@wordpress/i18n';
11
-
12
- /**
13
- * Internal dependencies
14
- */
15
- import SegmentedTextControl from '../segmented-text-control';
11
+ import {
12
+ __experimentalToggleGroupControl as ToggleGroupControl,
13
+ __experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,
14
+ } from '@wordpress/components';
16
15
 
17
16
  const TEXT_DECORATIONS = [
18
17
  {
@@ -48,9 +47,11 @@ export default function TextDecorationControl( {
48
47
  className,
49
48
  } ) {
50
49
  return (
51
- <SegmentedTextControl
50
+ <ToggleGroupControl
51
+ isDeselectable
52
+ __nextHasNoMarginBottom
53
+ __next40pxDefaultSize
52
54
  label={ __( 'Decoration' ) }
53
- options={ TEXT_DECORATIONS }
54
55
  className={ clsx(
55
56
  'block-editor-text-decoration-control',
56
57
  className
@@ -59,6 +60,17 @@ export default function TextDecorationControl( {
59
60
  onChange={ ( newValue ) => {
60
61
  onChange( newValue === value ? undefined : newValue );
61
62
  } }
62
- />
63
+ >
64
+ { TEXT_DECORATIONS.map( ( option ) => {
65
+ return (
66
+ <ToggleGroupControlOptionIcon
67
+ key={ option.value }
68
+ value={ option.value }
69
+ icon={ option.icon }
70
+ label={ option.label }
71
+ />
72
+ );
73
+ } ) }
74
+ </ToggleGroupControl>
63
75
  );
64
76
  }
@@ -13,10 +13,6 @@ export default {
13
13
  component: TextDecorationControl,
14
14
  argTypes: {
15
15
  onChange: { action: 'onChange' },
16
- size: {
17
- options: [ 'default', '__unstable-large' ],
18
- control: { type: 'radio' },
19
- },
20
16
  },
21
17
  };
22
18
 
@@ -13,11 +13,10 @@ import {
13
13
  formatLowercase,
14
14
  formatUppercase,
15
15
  } from '@wordpress/icons';
16
-
17
- /**
18
- * Internal dependencies
19
- */
20
- import SegmentedTextControl from '../segmented-text-control';
16
+ import {
17
+ __experimentalToggleGroupControl as ToggleGroupControl,
18
+ __experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,
19
+ } from '@wordpress/components';
21
20
 
22
21
  const TEXT_TRANSFORMS = [
23
22
  {
@@ -54,9 +53,11 @@ const TEXT_TRANSFORMS = [
54
53
  */
55
54
  export default function TextTransformControl( { className, value, onChange } ) {
56
55
  return (
57
- <SegmentedTextControl
56
+ <ToggleGroupControl
57
+ isDeselectable
58
+ __nextHasNoMarginBottom
59
+ __next40pxDefaultSize
58
60
  label={ __( 'Letter case' ) }
59
- options={ TEXT_TRANSFORMS }
60
61
  className={ clsx(
61
62
  'block-editor-text-transform-control',
62
63
  className
@@ -65,6 +66,17 @@ export default function TextTransformControl( { className, value, onChange } ) {
65
66
  onChange={ ( newValue ) => {
66
67
  onChange( newValue === value ? undefined : newValue );
67
68
  } }
68
- />
69
+ >
70
+ { TEXT_TRANSFORMS.map( ( option ) => {
71
+ return (
72
+ <ToggleGroupControlOptionIcon
73
+ key={ option.value }
74
+ value={ option.value }
75
+ icon={ option.icon }
76
+ label={ option.label }
77
+ />
78
+ );
79
+ } ) }
80
+ </ToggleGroupControl>
69
81
  );
70
82
  }
@@ -13,10 +13,6 @@ export default {
13
13
  component: TextTransformControl,
14
14
  argTypes: {
15
15
  onChange: { action: 'onChange' },
16
- size: {
17
- options: [ 'default', '__unstable-large' ],
18
- control: { type: 'radio' },
19
- },
20
16
  },
21
17
  };
22
18
 
@@ -130,10 +130,6 @@ When hiding the URLInput using CSS (as is sometimes done for accessibility purpo
130
130
 
131
131
  This prop allows the suggestions list to be programmatically not rendered by passing a boolean—it can be `true` to make sure suggestions aren't rendered, or `false`/`undefined` to fall back to the default behaviour of showing suggestions when matching autocompletion items are found.
132
132
 
133
- ### `__nextHasNoMarginBottom: Boolean`
134
-
135
- Start opting into the new margin-free styles that will become the default in a future version, currently scheduled to be WordPress 6.4. (The prop can be safely removed once this happens.)
136
-
137
133
  ## Example
138
134
 
139
135
 
@@ -156,7 +152,6 @@ registerBlockType( /* ... */, {
156
152
  edit( { className, attributes, setAttributes } ) {
157
153
  return (
158
154
  <URLInput
159
- __nextHasNoMarginBottom
160
155
  className={ className }
161
156
  value={ attributes.url }
162
157
  onChange={ ( url, post ) => setAttributes( { url, text: (post && post.title) || 'Click here' } ) }
@@ -57,7 +57,6 @@ class URLInputButton extends Component {
57
57
  onClick={ this.toggle }
58
58
  />
59
59
  <URLInput
60
- __nextHasNoMarginBottom
61
60
  value={ url || '' }
62
61
  onChange={ onChange }
63
62
  />
@@ -6,7 +6,6 @@ import clsx from 'clsx';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import deprecated from '@wordpress/deprecated';
10
9
  import { __, sprintf, _n } from '@wordpress/i18n';
11
10
  import { Component, createRef } from '@wordpress/element';
12
11
  import { UP, DOWN, ENTER, TAB } from '@wordpress/keycodes';
@@ -416,8 +415,6 @@ class URLInput extends Component {
416
415
 
417
416
  renderControl() {
418
417
  const {
419
- /** Start opting into the new margin-free styles that will become the default in a future version. */
420
- __nextHasNoMarginBottom = false,
421
418
  label = null,
422
419
  className,
423
420
  isFullWidth,
@@ -473,19 +470,8 @@ class URLInput extends Component {
473
470
  return renderControl( controlProps, inputProps, loading );
474
471
  }
475
472
 
476
- if ( ! __nextHasNoMarginBottom ) {
477
- deprecated( 'Bottom margin styles for wp.blockEditor.URLInput', {
478
- since: '6.2',
479
- version: '6.5',
480
- hint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version',
481
- } );
482
- }
483
-
484
473
  return (
485
- <BaseControl
486
- __nextHasNoMarginBottom={ __nextHasNoMarginBottom }
487
- { ...controlProps }
488
- >
474
+ <BaseControl __nextHasNoMarginBottom { ...controlProps }>
489
475
  <input { ...inputProps } />
490
476
  { loading && <Spinner /> }
491
477
  </BaseControl>
@@ -120,8 +120,8 @@ $input-size: 300px;
120
120
  }
121
121
 
122
122
  .block-editor-url-input__button-modal {
123
- box-shadow: $shadow-popover;
124
- border: 1px solid $gray-300;
123
+ box-shadow: $elevation-x-small;
124
+ border: $border-width solid $gray-300;
125
125
  background: $white;
126
126
  }
127
127
 
@@ -227,12 +227,14 @@ const ImageURLInputUI = ( {
227
227
  checked={ linkTarget === '_blank' }
228
228
  />
229
229
  <TextControl
230
+ __next40pxDefaultSize
230
231
  __nextHasNoMarginBottom
231
232
  label={ __( 'Link rel' ) }
232
233
  value={ rel ?? '' }
233
234
  onChange={ onSetLinkRel }
234
235
  />
235
236
  <TextControl
237
+ __next40pxDefaultSize
236
238
  __nextHasNoMarginBottom
237
239
  label={ __( 'Link CSS class' ) }
238
240
  value={ linkClass || '' }
@@ -31,7 +31,6 @@ export default function LinkEditor( {
31
31
  { ...props }
32
32
  >
33
33
  <URLInput
34
- __nextHasNoMarginBottom
35
34
  value={ value }
36
35
  onChange={ onChangeInputValue }
37
36
  autocompleteRef={ autocompleteRef }
@@ -301,8 +301,10 @@ export default function useBlockDropZone( {
301
301
  operation: 'insert',
302
302
  } );
303
303
 
304
- const { getBlockType } = useSelect( blocksStore );
304
+ const { getBlockType, getBlockVariations, getGroupingBlockName } =
305
+ useSelect( blocksStore );
305
306
  const {
307
+ canInsertBlockType,
306
308
  getBlockListSettings,
307
309
  getBlocks,
308
310
  getBlockIndex,
@@ -310,6 +312,9 @@ export default function useBlockDropZone( {
310
312
  getBlockNamesByClientId,
311
313
  getAllowedBlocks,
312
314
  isDragging,
315
+ isGroupable,
316
+ getSettings,
317
+ isZoomOutMode,
313
318
  } = unlock( useSelect( blockEditorStore ) );
314
319
  const {
315
320
  showInsertionPoint,
@@ -340,6 +345,7 @@ export default function useBlockDropZone( {
340
345
  const targetBlockName = getBlockNamesByClientId( [
341
346
  targetRootClientId,
342
347
  ] )[ 0 ];
348
+
343
349
  const draggedBlockNames = getBlockNamesByClientId(
344
350
  getDraggedBlockClientIds()
345
351
  );
@@ -349,10 +355,23 @@ export default function useBlockDropZone( {
349
355
  draggedBlockNames,
350
356
  targetBlockName
351
357
  );
358
+
352
359
  if ( ! isBlockDroppingAllowed ) {
353
360
  return;
354
361
  }
355
362
 
363
+ const { sectionRootClientId } = unlock( getSettings() );
364
+
365
+ // In Zoom Out mode, if the target is not the section root provided by settings then
366
+ // do not allow dropping as the drop target is not within the root (that which is
367
+ // treated as "the content" by Zoom Out Mode).
368
+ if (
369
+ isZoomOutMode() &&
370
+ sectionRootClientId !== targetRootClientId
371
+ ) {
372
+ return;
373
+ }
374
+
356
375
  const blocks = getBlocks( targetRootClientId );
357
376
 
358
377
  // The block list is empty, don't show the insertion point but still allow dropping.
@@ -385,21 +404,66 @@ export default function useBlockDropZone( {
385
404
  };
386
405
  } );
387
406
 
407
+ const dropTargetPosition = getDropTargetPosition(
408
+ blocksData,
409
+ { x: event.clientX, y: event.clientY },
410
+ getBlockListSettings( targetRootClientId )?.orientation,
411
+ {
412
+ dropZoneElement,
413
+ parentBlockClientId,
414
+ parentBlockOrientation: parentBlockClientId
415
+ ? getBlockListSettings( parentBlockClientId )
416
+ ?.orientation
417
+ : undefined,
418
+ rootBlockIndex: getBlockIndex( targetRootClientId ),
419
+ }
420
+ );
421
+
388
422
  const [ targetIndex, operation, nearestSide ] =
389
- getDropTargetPosition(
390
- blocksData,
391
- { x: event.clientX, y: event.clientY },
392
- getBlockListSettings( targetRootClientId )?.orientation,
393
- {
394
- dropZoneElement,
395
- parentBlockClientId,
396
- parentBlockOrientation: parentBlockClientId
397
- ? getBlockListSettings( parentBlockClientId )
398
- ?.orientation
399
- : undefined,
400
- rootBlockIndex: getBlockIndex( targetRootClientId ),
401
- }
423
+ dropTargetPosition;
424
+
425
+ if ( operation === 'group' ) {
426
+ const targetBlock = blocks[ targetIndex ];
427
+ const areAllImages = [
428
+ targetBlock.name,
429
+ ...draggedBlockNames,
430
+ ].every( ( name ) => name === 'core/image' );
431
+ const canInsertGalleryBlock = canInsertBlockType(
432
+ 'core/gallery',
433
+ targetRootClientId
434
+ );
435
+ const areGroupableBlocks = isGroupable( [
436
+ targetBlock.clientId,
437
+ getDraggedBlockClientIds(),
438
+ ] );
439
+ const groupBlockVariations = getBlockVariations(
440
+ getGroupingBlockName(),
441
+ 'block'
402
442
  );
443
+ const canInsertRow =
444
+ groupBlockVariations &&
445
+ groupBlockVariations.find(
446
+ ( { name } ) => name === 'group-row'
447
+ );
448
+
449
+ // If the dragged blocks and the target block are all images,
450
+ // check if it is creatable either a Row variation or a Gallery block.
451
+ if (
452
+ areAllImages &&
453
+ ! canInsertGalleryBlock &&
454
+ ( ! areGroupableBlocks || ! canInsertRow )
455
+ ) {
456
+ return;
457
+ }
458
+ // If the dragged blocks and the target block are not all images,
459
+ // check if it is creatable a Row variation.
460
+ if (
461
+ ! areAllImages &&
462
+ ( ! areGroupableBlocks || ! canInsertRow )
463
+ ) {
464
+ return;
465
+ }
466
+ }
403
467
 
404
468
  registry.batch( () => {
405
469
  setDropTarget( {
@@ -422,6 +486,7 @@ export default function useBlockDropZone( {
422
486
  } );
423
487
  },
424
488
  [
489
+ isDragging,
425
490
  getAllowedBlocks,
426
491
  targetRootClientId,
427
492
  getBlockNamesByClientId,
@@ -433,9 +498,14 @@ export default function useBlockDropZone( {
433
498
  parentBlockClientId,
434
499
  getBlockIndex,
435
500
  registry,
436
- showInsertionPoint,
437
- isDragging,
438
501
  startDragging,
502
+ showInsertionPoint,
503
+ canInsertBlockType,
504
+ isGroupable,
505
+ getBlockVariations,
506
+ getGroupingBlockName,
507
+ getSettings,
508
+ isZoomOutMode,
439
509
  ]
440
510
  ),
441
511
  200
@@ -232,7 +232,6 @@ export default function useOnBlockDrop(
232
232
  getBlocksByClientId,
233
233
  getSettings,
234
234
  getBlock,
235
- isGroupable,
236
235
  } = useSelect( blockEditorStore );
237
236
  const { getGroupingBlockName } = useSelect( blocksStore );
238
237
  const {
@@ -255,17 +254,11 @@ export default function useOnBlockDrop(
255
254
  if ( ! Array.isArray( blocks ) ) {
256
255
  blocks = [ blocks ];
257
256
  }
258
-
259
257
  const clientIds = getBlockOrder( targetRootClientId );
260
258
  const clientId = clientIds[ targetBlockIndex ];
261
- const blocksClientIds = blocks.map( ( block ) => block.clientId );
262
- const areGroupableBlocks = isGroupable( [
263
- ...blocksClientIds,
264
- clientId,
265
- ] );
266
259
  if ( operation === 'replace' ) {
267
260
  replaceBlocks( clientId, blocks, undefined, initialPosition );
268
- } else if ( operation === 'group' && areGroupableBlocks ) {
261
+ } else if ( operation === 'group' ) {
269
262
  const targetBlock = getBlock( clientId );
270
263
  if ( nearestSide === 'left' ) {
271
264
  blocks.push( targetBlock );
@@ -325,7 +318,6 @@ export default function useOnBlockDrop(
325
318
  getBlockOrder,
326
319
  targetRootClientId,
327
320
  targetBlockIndex,
328
- isGroupable,
329
321
  operation,
330
322
  replaceBlocks,
331
323
  getBlock,