@wordpress/block-editor 14.1.0 → 14.2.1-next.5368f64a9.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 (679) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -10
  3. package/build/components/block-alignment-matrix-control/index.js +2 -2
  4. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  5. package/build/components/block-breadcrumb/index.js +2 -2
  6. package/build/components/block-breadcrumb/index.js.map +1 -1
  7. package/build/components/block-canvas/index.js +8 -1
  8. package/build/components/block-canvas/index.js.map +1 -1
  9. package/build/components/block-compare/block-view.js +1 -0
  10. package/build/components/block-compare/block-view.js.map +1 -1
  11. package/build/components/block-draggable/index.js +4 -4
  12. package/build/components/block-draggable/index.js.map +1 -1
  13. package/build/components/block-draggable/use-scroll-when-dragging.js +25 -25
  14. package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  15. package/build/components/block-edit/multiple-usage-warning.js +2 -0
  16. package/build/components/block-edit/multiple-usage-warning.js.map +1 -1
  17. package/build/components/block-inspector/index.js +27 -11
  18. package/build/components/block-inspector/index.js.map +1 -1
  19. package/build/components/block-list/block-invalid-warning.js +3 -2
  20. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  21. package/build/components/block-list/block.js +5 -1
  22. package/build/components/block-list/block.js.map +1 -1
  23. package/build/components/block-list/index.js +14 -3
  24. package/build/components/block-list/index.js.map +1 -1
  25. package/build/components/block-list/use-block-props/index.js +5 -1
  26. package/build/components/block-list/use-block-props/index.js.map +1 -1
  27. package/build/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  28. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  29. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +53 -0
  30. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
  31. package/build/components/block-list/zoom-out-separator.js +98 -0
  32. package/build/components/block-list/zoom-out-separator.js.map +1 -0
  33. package/build/components/block-lock/toolbar.js +3 -3
  34. package/build/components/block-lock/toolbar.js.map +1 -1
  35. package/build/components/block-mover/button.js +1 -0
  36. package/build/components/block-mover/button.js.map +1 -1
  37. package/build/components/block-mover/index.js +1 -0
  38. package/build/components/block-mover/index.js.map +1 -1
  39. package/build/components/block-navigation/dropdown.js +4 -1
  40. package/build/components/block-navigation/dropdown.js.map +1 -1
  41. package/build/components/block-pattern-setup/index.js +2 -10
  42. package/build/components/block-pattern-setup/index.js.map +1 -1
  43. package/build/components/block-pattern-setup/setup-toolbar.js +22 -7
  44. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  45. package/build/components/block-patterns-list/index.js +12 -20
  46. package/build/components/block-patterns-list/index.js.map +1 -1
  47. package/build/components/block-patterns-paging/index.js +12 -3
  48. package/build/components/block-patterns-paging/index.js.map +1 -1
  49. package/build/components/block-popover/index.js +2 -15
  50. package/build/components/block-popover/index.js.map +1 -1
  51. package/build/components/block-quick-navigation/index.js +4 -1
  52. package/build/components/block-quick-navigation/index.js.map +1 -1
  53. package/build/components/block-settings-menu-controls/index.js +4 -0
  54. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  55. package/build/components/block-switcher/index.js +30 -19
  56. package/build/components/block-switcher/index.js.map +1 -1
  57. package/build/components/block-switcher/pattern-transformations-menu.js +2 -10
  58. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  59. package/build/components/block-toolbar/index.js +19 -12
  60. package/build/components/block-toolbar/index.js.map +1 -1
  61. package/build/components/block-toolbar/shuffle.js +6 -2
  62. package/build/components/block-toolbar/shuffle.js.map +1 -1
  63. package/build/components/block-tools/block-selection-button.js +8 -2
  64. package/build/components/block-tools/block-selection-button.js.map +1 -1
  65. package/build/components/block-tools/block-toolbar-popover.js +10 -6
  66. package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
  67. package/build/components/block-tools/index.js +1 -1
  68. package/build/components/block-tools/index.js.map +1 -1
  69. package/build/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  70. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  71. package/build/components/block-tools/zoom-out-mode-inserters.js +7 -21
  72. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  73. package/build/components/block-tools/zoom-out-popover.js +3 -4
  74. package/build/components/block-tools/zoom-out-popover.js.map +1 -1
  75. package/build/components/block-tools/zoom-out-toolbar.js +26 -7
  76. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  77. package/build/components/block-variation-picker/index.js +4 -1
  78. package/build/components/block-variation-picker/index.js.map +1 -1
  79. package/build/components/block-variation-transforms/index.js +4 -1
  80. package/build/components/block-variation-transforms/index.js.map +1 -1
  81. package/build/components/button-block-appender/index.js +20 -23
  82. package/build/components/button-block-appender/index.js.map +1 -1
  83. package/build/components/colors-gradients/dropdown.js +4 -1
  84. package/build/components/colors-gradients/dropdown.js.map +1 -1
  85. package/build/components/content-lock/index.js +13 -0
  86. package/build/components/content-lock/index.js.map +1 -0
  87. package/build/components/content-lock/modify-content-lock-menu-item.js +64 -0
  88. package/build/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
  89. package/build/components/editor-styles/index.js +4 -3
  90. package/build/components/editor-styles/index.js.map +1 -1
  91. package/build/components/global-styles/background-panel.js +8 -12
  92. package/build/components/global-styles/background-panel.js.map +1 -1
  93. package/build/components/global-styles/color-panel.js +8 -5
  94. package/build/components/global-styles/color-panel.js.map +1 -1
  95. package/build/components/global-styles/color-panel.native.js +1 -1
  96. package/build/components/global-styles/color-panel.native.js.map +1 -1
  97. package/build/components/global-styles/dimensions-panel.js +34 -37
  98. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  99. package/build/components/global-styles/filters-panel.js +4 -1
  100. package/build/components/global-styles/filters-panel.js.map +1 -1
  101. package/build/components/global-styles/shadow-panel-components.js +14 -17
  102. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  103. package/build/components/global-styles/typography-utils.js +17 -6
  104. package/build/components/global-styles/typography-utils.js.map +1 -1
  105. package/build/components/global-styles/utils.js +4 -6
  106. package/build/components/global-styles/utils.js.map +1 -1
  107. package/build/components/grid/grid-item-movers.js +2 -2
  108. package/build/components/grid/grid-item-movers.js.map +1 -1
  109. package/build/components/iframe/get-compatibility-styles.js +1 -1
  110. package/build/components/iframe/get-compatibility-styles.js.map +1 -1
  111. package/build/components/iframe/index.js +5 -5
  112. package/build/components/iframe/index.js.map +1 -1
  113. package/build/components/inner-blocks/index.js +2 -4
  114. package/build/components/inner-blocks/index.js.map +1 -1
  115. package/build/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  116. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  117. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
  118. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  119. package/build/components/inserter/block-patterns-tab/index.js +4 -1
  120. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  121. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +23 -13
  122. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  123. package/build/components/inserter/index.js +4 -11
  124. package/build/components/inserter/index.js.map +1 -1
  125. package/build/components/inserter/library.js +2 -4
  126. package/build/components/inserter/library.js.map +1 -1
  127. package/build/components/inserter/media-tab/hooks.js +3 -3
  128. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  129. package/build/components/inserter/media-tab/media-list.js +1 -8
  130. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  131. package/build/components/inserter/media-tab/media-preview.js +9 -7
  132. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  133. package/build/components/inserter/media-tab/media-tab.js +4 -1
  134. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  135. package/build/components/inserter/menu.js +7 -24
  136. package/build/components/inserter/menu.js.map +1 -1
  137. package/build/components/inserter/quick-inserter.js +4 -5
  138. package/build/components/inserter/quick-inserter.js.map +1 -1
  139. package/build/components/inserter-list-item/index.js +4 -4
  140. package/build/components/inserter-list-item/index.js.map +1 -1
  141. package/build/components/inserter-listbox/index.js +3 -13
  142. package/build/components/inserter-listbox/index.js.map +1 -1
  143. package/build/components/inserter-listbox/item.js +6 -11
  144. package/build/components/inserter-listbox/item.js.map +1 -1
  145. package/build/components/inserter-listbox/row.js +1 -9
  146. package/build/components/inserter-listbox/row.js.map +1 -1
  147. package/build/components/inspector-controls/groups.js +2 -0
  148. package/build/components/inspector-controls/groups.js.map +1 -1
  149. package/build/components/inspector-controls-tabs/index.js +4 -1
  150. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  151. package/build/components/inspector-controls-tabs/settings-tab.js +3 -1
  152. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  153. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
  154. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  155. package/build/components/inspector-popover-header/index.js +8 -2
  156. package/build/components/inspector-popover-header/index.js.map +1 -1
  157. package/build/components/letter-spacing-control/index.js +7 -4
  158. package/build/components/letter-spacing-control/index.js.map +1 -1
  159. package/build/components/link-control/index.js +19 -10
  160. package/build/components/link-control/index.js.map +1 -1
  161. package/build/components/link-control/settings-drawer.js +4 -1
  162. package/build/components/link-control/settings-drawer.js.map +1 -1
  163. package/build/components/list-view/block-select-button.js +4 -1
  164. package/build/components/list-view/block-select-button.js.map +1 -1
  165. package/build/components/list-view/index.js +3 -7
  166. package/build/components/list-view/index.js.map +1 -1
  167. package/build/components/media-placeholder/index.js +32 -11
  168. package/build/components/media-placeholder/index.js.map +1 -1
  169. package/build/components/media-replace-flow/index.js +8 -1
  170. package/build/components/media-replace-flow/index.js.map +1 -1
  171. package/build/components/provider/use-block-sync.js +19 -19
  172. package/build/components/provider/use-block-sync.js.map +1 -1
  173. package/build/components/rich-text/event-listeners/paste-handler.js +12 -1
  174. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  175. package/build/components/rich-text/index.js +38 -30
  176. package/build/components/rich-text/index.js.map +1 -1
  177. package/build/components/rich-text/use-mark-persistent.js +5 -5
  178. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  179. package/build/components/skip-to-selected-block/index.js +4 -1
  180. package/build/components/skip-to-selected-block/index.js.map +1 -1
  181. package/build/components/tool-selector/index.js +4 -1
  182. package/build/components/tool-selector/index.js.map +1 -1
  183. package/build/components/url-input/button.js +12 -3
  184. package/build/components/url-input/button.js.map +1 -1
  185. package/build/components/url-input/index.js +4 -1
  186. package/build/components/url-input/index.js.map +1 -1
  187. package/build/components/use-block-drop-zone/index.js +31 -7
  188. package/build/components/use-block-drop-zone/index.js.map +1 -1
  189. package/build/components/writing-flow/index.js +2 -1
  190. package/build/components/writing-flow/index.js.map +1 -1
  191. package/build/components/writing-flow/use-arrow-nav.js +4 -1
  192. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  193. package/build/components/writing-flow/use-event-redirect.js +66 -0
  194. package/build/components/writing-flow/use-event-redirect.js.map +1 -0
  195. package/build/components/writing-flow/use-input.js +31 -1
  196. package/build/components/writing-flow/use-input.js.map +1 -1
  197. package/build/components/writing-flow/use-select-all.js +14 -1
  198. package/build/components/writing-flow/use-select-all.js.map +1 -1
  199. package/build/components/writing-flow/use-selection-observer.js +20 -6
  200. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  201. package/build/components/writing-flow/use-tab-nav.js +4 -4
  202. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  203. package/build/components/writing-flow/utils.js +27 -0
  204. package/build/components/writing-flow/utils.js.map +1 -1
  205. package/build/hooks/block-bindings.js +32 -29
  206. package/build/hooks/block-bindings.js.map +1 -1
  207. package/build/hooks/content-lock-ui.js +8 -26
  208. package/build/hooks/content-lock-ui.js.map +1 -1
  209. package/build/hooks/duotone.js +0 -4
  210. package/build/hooks/duotone.js.map +1 -1
  211. package/build/hooks/layout.js +4 -2
  212. package/build/hooks/layout.js.map +1 -1
  213. package/build/hooks/spacing-visualizer.js +3 -3
  214. package/build/hooks/spacing-visualizer.js.map +1 -1
  215. package/build/hooks/style.js +1 -5
  216. package/build/hooks/style.js.map +1 -1
  217. package/build/hooks/use-bindings-attributes.js +19 -20
  218. package/build/hooks/use-bindings-attributes.js.map +1 -1
  219. package/build/hooks/use-zoom-out.js +7 -7
  220. package/build/hooks/use-zoom-out.js.map +1 -1
  221. package/build/layouts/constrained.js +41 -42
  222. package/build/layouts/constrained.js.map +1 -1
  223. package/build/layouts/flex.js +4 -1
  224. package/build/layouts/flex.js.map +1 -1
  225. package/build/layouts/grid.js +19 -16
  226. package/build/layouts/grid.js.map +1 -1
  227. package/build/layouts/utils.js +1 -7
  228. package/build/layouts/utils.js.map +1 -1
  229. package/build/private-apis.js +2 -3
  230. package/build/private-apis.js.map +1 -1
  231. package/build/store/actions.js +2 -7
  232. package/build/store/actions.js.map +1 -1
  233. package/build/store/private-actions.js +1 -0
  234. package/build/store/private-actions.js.map +1 -1
  235. package/build/store/private-keys.js +2 -1
  236. package/build/store/private-keys.js.map +1 -1
  237. package/build/store/private-selectors.js +16 -18
  238. package/build/store/private-selectors.js.map +1 -1
  239. package/build/store/reducer.js +1 -10
  240. package/build/store/reducer.js.map +1 -1
  241. package/build/store/selectors.js +19 -43
  242. package/build/store/selectors.js.map +1 -1
  243. package/build/store/utils.js +48 -0
  244. package/build/store/utils.js.map +1 -1
  245. package/build/utils/block-bindings.js +16 -11
  246. package/build/utils/block-bindings.js.map +1 -1
  247. package/build/utils/dom.js +101 -0
  248. package/build/utils/dom.js.map +1 -1
  249. package/build/utils/get-font-styles-and-weights.js +4 -4
  250. package/build/utils/get-font-styles-and-weights.js.map +1 -1
  251. package/build/utils/transform-styles/index.js +120 -16
  252. package/build/utils/transform-styles/index.js.map +1 -1
  253. package/build-module/components/block-alignment-matrix-control/index.js +1 -1
  254. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  255. package/build-module/components/block-breadcrumb/index.js +2 -2
  256. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  257. package/build-module/components/block-canvas/index.js +9 -1
  258. package/build-module/components/block-canvas/index.js.map +1 -1
  259. package/build-module/components/block-compare/block-view.js +1 -0
  260. package/build-module/components/block-compare/block-view.js.map +1 -1
  261. package/build-module/components/block-draggable/index.js +4 -4
  262. package/build-module/components/block-draggable/index.js.map +1 -1
  263. package/build-module/components/block-draggable/use-scroll-when-dragging.js +25 -25
  264. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  265. package/build-module/components/block-edit/multiple-usage-warning.js +2 -0
  266. package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -1
  267. package/build-module/components/block-inspector/index.js +27 -11
  268. package/build-module/components/block-inspector/index.js.map +1 -1
  269. package/build-module/components/block-list/block-invalid-warning.js +3 -2
  270. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  271. package/build-module/components/block-list/block.js +5 -1
  272. package/build-module/components/block-list/block.js.map +1 -1
  273. package/build-module/components/block-list/index.js +14 -3
  274. package/build-module/components/block-list/index.js.map +1 -1
  275. package/build-module/components/block-list/use-block-props/index.js +5 -1
  276. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  277. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  278. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  279. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +47 -0
  280. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
  281. package/build-module/components/block-list/zoom-out-separator.js +90 -0
  282. package/build-module/components/block-list/zoom-out-separator.js.map +1 -0
  283. package/build-module/components/block-lock/toolbar.js +3 -3
  284. package/build-module/components/block-lock/toolbar.js.map +1 -1
  285. package/build-module/components/block-mover/button.js +1 -0
  286. package/build-module/components/block-mover/button.js.map +1 -1
  287. package/build-module/components/block-mover/index.js +1 -0
  288. package/build-module/components/block-mover/index.js.map +1 -1
  289. package/build-module/components/block-navigation/dropdown.js +4 -1
  290. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  291. package/build-module/components/block-pattern-setup/index.js +2 -10
  292. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  293. package/build-module/components/block-pattern-setup/setup-toolbar.js +23 -8
  294. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  295. package/build-module/components/block-patterns-list/index.js +12 -20
  296. package/build-module/components/block-patterns-list/index.js.map +1 -1
  297. package/build-module/components/block-patterns-paging/index.js +12 -3
  298. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  299. package/build-module/components/block-popover/index.js +2 -15
  300. package/build-module/components/block-popover/index.js.map +1 -1
  301. package/build-module/components/block-quick-navigation/index.js +4 -1
  302. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  303. package/build-module/components/block-settings-menu-controls/index.js +4 -0
  304. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  305. package/build-module/components/block-switcher/index.js +30 -19
  306. package/build-module/components/block-switcher/index.js.map +1 -1
  307. package/build-module/components/block-switcher/pattern-transformations-menu.js +2 -10
  308. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  309. package/build-module/components/block-toolbar/index.js +19 -12
  310. package/build-module/components/block-toolbar/index.js.map +1 -1
  311. package/build-module/components/block-toolbar/shuffle.js +6 -2
  312. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  313. package/build-module/components/block-tools/block-selection-button.js +8 -2
  314. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  315. package/build-module/components/block-tools/block-toolbar-popover.js +10 -6
  316. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
  317. package/build-module/components/block-tools/index.js +1 -1
  318. package/build-module/components/block-tools/index.js.map +1 -1
  319. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  320. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  321. package/build-module/components/block-tools/zoom-out-mode-inserters.js +7 -22
  322. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  323. package/build-module/components/block-tools/zoom-out-popover.js +3 -4
  324. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -1
  325. package/build-module/components/block-tools/zoom-out-toolbar.js +27 -8
  326. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  327. package/build-module/components/block-variation-picker/index.js +4 -1
  328. package/build-module/components/block-variation-picker/index.js.map +1 -1
  329. package/build-module/components/block-variation-transforms/index.js +4 -1
  330. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  331. package/build-module/components/button-block-appender/index.js +22 -26
  332. package/build-module/components/button-block-appender/index.js.map +1 -1
  333. package/build-module/components/colors-gradients/dropdown.js +4 -1
  334. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  335. package/build-module/components/content-lock/index.js +2 -0
  336. package/build-module/components/content-lock/index.js.map +1 -0
  337. package/build-module/components/content-lock/modify-content-lock-menu-item.js +57 -0
  338. package/build-module/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
  339. package/build-module/components/editor-styles/index.js +4 -3
  340. package/build-module/components/editor-styles/index.js.map +1 -1
  341. package/build-module/components/global-styles/background-panel.js +8 -12
  342. package/build-module/components/global-styles/background-panel.js.map +1 -1
  343. package/build-module/components/global-styles/color-panel.js +7 -4
  344. package/build-module/components/global-styles/color-panel.js.map +1 -1
  345. package/build-module/components/global-styles/color-panel.native.js +2 -2
  346. package/build-module/components/global-styles/color-panel.native.js.map +1 -1
  347. package/build-module/components/global-styles/dimensions-panel.js +36 -39
  348. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  349. package/build-module/components/global-styles/filters-panel.js +4 -1
  350. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  351. package/build-module/components/global-styles/shadow-panel-components.js +14 -17
  352. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  353. package/build-module/components/global-styles/typography-utils.js +17 -6
  354. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  355. package/build-module/components/global-styles/utils.js +4 -6
  356. package/build-module/components/global-styles/utils.js.map +1 -1
  357. package/build-module/components/grid/grid-item-movers.js +3 -3
  358. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  359. package/build-module/components/iframe/get-compatibility-styles.js +1 -1
  360. package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
  361. package/build-module/components/iframe/index.js +5 -5
  362. package/build-module/components/iframe/index.js.map +1 -1
  363. package/build-module/components/inner-blocks/index.js +2 -4
  364. package/build-module/components/inner-blocks/index.js.map +1 -1
  365. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  366. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  367. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
  368. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  369. package/build-module/components/inserter/block-patterns-tab/index.js +4 -1
  370. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  371. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +23 -13
  372. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  373. package/build-module/components/inserter/index.js +4 -11
  374. package/build-module/components/inserter/index.js.map +1 -1
  375. package/build-module/components/inserter/library.js +2 -4
  376. package/build-module/components/inserter/library.js.map +1 -1
  377. package/build-module/components/inserter/media-tab/hooks.js +3 -3
  378. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  379. package/build-module/components/inserter/media-tab/media-list.js +1 -8
  380. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  381. package/build-module/components/inserter/media-tab/media-preview.js +10 -8
  382. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  383. package/build-module/components/inserter/media-tab/media-tab.js +4 -1
  384. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  385. package/build-module/components/inserter/menu.js +7 -24
  386. package/build-module/components/inserter/menu.js.map +1 -1
  387. package/build-module/components/inserter/quick-inserter.js +5 -6
  388. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  389. package/build-module/components/inserter-list-item/index.js +4 -4
  390. package/build-module/components/inserter-list-item/index.js.map +1 -1
  391. package/build-module/components/inserter-listbox/index.js +3 -11
  392. package/build-module/components/inserter-listbox/index.js.map +1 -1
  393. package/build-module/components/inserter-listbox/item.js +7 -12
  394. package/build-module/components/inserter-listbox/item.js.map +1 -1
  395. package/build-module/components/inserter-listbox/row.js +2 -10
  396. package/build-module/components/inserter-listbox/row.js.map +1 -1
  397. package/build-module/components/inspector-controls/groups.js +2 -0
  398. package/build-module/components/inspector-controls/groups.js.map +1 -1
  399. package/build-module/components/inspector-controls-tabs/index.js +4 -1
  400. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  401. package/build-module/components/inspector-controls-tabs/settings-tab.js +3 -1
  402. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  403. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
  404. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  405. package/build-module/components/inspector-popover-header/index.js +8 -2
  406. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  407. package/build-module/components/letter-spacing-control/index.js +7 -4
  408. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  409. package/build-module/components/link-control/index.js +19 -10
  410. package/build-module/components/link-control/index.js.map +1 -1
  411. package/build-module/components/link-control/settings-drawer.js +4 -1
  412. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  413. package/build-module/components/list-view/block-select-button.js +4 -1
  414. package/build-module/components/list-view/block-select-button.js.map +1 -1
  415. package/build-module/components/list-view/index.js +3 -7
  416. package/build-module/components/list-view/index.js.map +1 -1
  417. package/build-module/components/media-placeholder/index.js +32 -11
  418. package/build-module/components/media-placeholder/index.js.map +1 -1
  419. package/build-module/components/media-replace-flow/index.js +8 -1
  420. package/build-module/components/media-replace-flow/index.js.map +1 -1
  421. package/build-module/components/provider/use-block-sync.js +19 -19
  422. package/build-module/components/provider/use-block-sync.js.map +1 -1
  423. package/build-module/components/rich-text/event-listeners/paste-handler.js +12 -1
  424. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  425. package/build-module/components/rich-text/index.js +39 -31
  426. package/build-module/components/rich-text/index.js.map +1 -1
  427. package/build-module/components/rich-text/use-mark-persistent.js +5 -5
  428. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  429. package/build-module/components/skip-to-selected-block/index.js +4 -1
  430. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  431. package/build-module/components/tool-selector/index.js +4 -1
  432. package/build-module/components/tool-selector/index.js.map +1 -1
  433. package/build-module/components/url-input/button.js +12 -3
  434. package/build-module/components/url-input/button.js.map +1 -1
  435. package/build-module/components/url-input/index.js +4 -1
  436. package/build-module/components/url-input/index.js.map +1 -1
  437. package/build-module/components/use-block-drop-zone/index.js +31 -7
  438. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  439. package/build-module/components/writing-flow/index.js +2 -1
  440. package/build-module/components/writing-flow/index.js.map +1 -1
  441. package/build-module/components/writing-flow/use-arrow-nav.js +4 -1
  442. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  443. package/build-module/components/writing-flow/use-event-redirect.js +60 -0
  444. package/build-module/components/writing-flow/use-event-redirect.js.map +1 -0
  445. package/build-module/components/writing-flow/use-input.js +31 -1
  446. package/build-module/components/writing-flow/use-input.js.map +1 -1
  447. package/build-module/components/writing-flow/use-select-all.js +14 -1
  448. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  449. package/build-module/components/writing-flow/use-selection-observer.js +16 -2
  450. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  451. package/build-module/components/writing-flow/use-tab-nav.js +4 -4
  452. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  453. package/build-module/components/writing-flow/utils.js +26 -0
  454. package/build-module/components/writing-flow/utils.js.map +1 -1
  455. package/build-module/hooks/block-bindings.js +34 -31
  456. package/build-module/hooks/block-bindings.js.map +1 -1
  457. package/build-module/hooks/content-lock-ui.js +10 -30
  458. package/build-module/hooks/content-lock-ui.js.map +1 -1
  459. package/build-module/hooks/duotone.js +0 -4
  460. package/build-module/hooks/duotone.js.map +1 -1
  461. package/build-module/hooks/layout.js +4 -2
  462. package/build-module/hooks/layout.js.map +1 -1
  463. package/build-module/hooks/spacing-visualizer.js +3 -3
  464. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  465. package/build-module/hooks/style.js +1 -5
  466. package/build-module/hooks/style.js.map +1 -1
  467. package/build-module/hooks/use-bindings-attributes.js +19 -20
  468. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  469. package/build-module/hooks/use-zoom-out.js +7 -7
  470. package/build-module/hooks/use-zoom-out.js.map +1 -1
  471. package/build-module/layouts/constrained.js +44 -45
  472. package/build-module/layouts/constrained.js.map +1 -1
  473. package/build-module/layouts/flex.js +4 -1
  474. package/build-module/layouts/flex.js.map +1 -1
  475. package/build-module/layouts/grid.js +21 -18
  476. package/build-module/layouts/grid.js.map +1 -1
  477. package/build-module/layouts/utils.js +1 -7
  478. package/build-module/layouts/utils.js.map +1 -1
  479. package/build-module/private-apis.js +3 -4
  480. package/build-module/private-apis.js.map +1 -1
  481. package/build-module/store/actions.js +2 -7
  482. package/build-module/store/actions.js.map +1 -1
  483. package/build-module/store/private-actions.js +1 -0
  484. package/build-module/store/private-actions.js.map +1 -1
  485. package/build-module/store/private-keys.js +1 -0
  486. package/build-module/store/private-keys.js.map +1 -1
  487. package/build-module/store/private-selectors.js +15 -18
  488. package/build-module/store/private-selectors.js.map +1 -1
  489. package/build-module/store/reducer.js +1 -9
  490. package/build-module/store/reducer.js.map +1 -1
  491. package/build-module/store/selectors.js +22 -46
  492. package/build-module/store/selectors.js.map +1 -1
  493. package/build-module/store/utils.js +46 -0
  494. package/build-module/store/utils.js.map +1 -1
  495. package/build-module/utils/block-bindings.js +17 -12
  496. package/build-module/utils/block-bindings.js.map +1 -1
  497. package/build-module/utils/dom.js +99 -0
  498. package/build-module/utils/dom.js.map +1 -1
  499. package/build-module/utils/get-font-styles-and-weights.js +4 -4
  500. package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
  501. package/build-module/utils/transform-styles/index.js +120 -16
  502. package/build-module/utils/transform-styles/index.js.map +1 -1
  503. package/build-style/content-rtl.css +19 -11
  504. package/build-style/content.css +19 -11
  505. package/build-style/style-rtl.css +27 -108
  506. package/build-style/style.css +27 -108
  507. package/build-types/utils/dom.d.ts +25 -0
  508. package/build-types/utils/dom.d.ts.map +1 -1
  509. package/package.json +34 -32
  510. package/src/components/block-alignment-matrix-control/index.js +1 -1
  511. package/src/components/block-breadcrumb/index.js +2 -2
  512. package/src/components/block-breadcrumb/style.scss +1 -30
  513. package/src/components/block-canvas/index.js +9 -1
  514. package/src/components/block-compare/block-view.js +6 -1
  515. package/src/components/block-compare/test/__snapshots__/block-view.js.snap +1 -1
  516. package/src/components/block-draggable/content.scss +1 -1
  517. package/src/components/block-draggable/index.js +4 -4
  518. package/src/components/block-draggable/style.scss +1 -1
  519. package/src/components/block-draggable/use-scroll-when-dragging.js +25 -25
  520. package/src/components/block-edit/multiple-usage-warning.js +2 -0
  521. package/src/components/block-inspector/index.js +22 -7
  522. package/src/components/block-inspector/style.scss +2 -4
  523. package/src/components/block-list/block-invalid-warning.js +3 -2
  524. package/src/components/block-list/block.js +6 -2
  525. package/src/components/block-list/content.scss +23 -3
  526. package/src/components/block-list/index.js +59 -38
  527. package/src/components/block-list/use-block-props/index.js +3 -0
  528. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  529. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +56 -0
  530. package/src/components/block-list/zoom-out-separator.js +110 -0
  531. package/src/components/block-lock/style.scss +1 -1
  532. package/src/components/block-lock/toolbar.js +3 -3
  533. package/src/components/block-mover/button.js +1 -0
  534. package/src/components/block-mover/index.js +1 -0
  535. package/src/components/block-mover/style.scss +1 -1
  536. package/src/components/block-navigation/dropdown.js +2 -0
  537. package/src/components/block-pattern-setup/index.js +3 -15
  538. package/src/components/block-pattern-setup/setup-toolbar.js +17 -4
  539. package/src/components/block-pattern-setup/style.scss +2 -2
  540. package/src/components/block-patterns-list/index.js +15 -18
  541. package/src/components/block-patterns-list/style.scss +2 -2
  542. package/src/components/block-patterns-paging/index.js +6 -0
  543. package/src/components/block-popover/index.js +7 -28
  544. package/src/components/block-popover/style.scss +1 -1
  545. package/src/components/block-quick-navigation/index.js +2 -0
  546. package/src/components/block-settings-menu-controls/index.js +7 -1
  547. package/src/components/block-switcher/index.js +45 -23
  548. package/src/components/block-switcher/pattern-transformations-menu.js +3 -12
  549. package/src/components/block-switcher/style.scss +5 -30
  550. package/src/components/block-toolbar/index.js +27 -11
  551. package/src/components/block-toolbar/shuffle.js +9 -7
  552. package/src/components/block-toolbar/style.scss +4 -1
  553. package/src/components/block-tools/block-selection-button.js +4 -0
  554. package/src/components/block-tools/block-toolbar-popover.js +10 -6
  555. package/src/components/block-tools/index.js +1 -1
  556. package/src/components/block-tools/style.scss +3 -4
  557. package/src/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  558. package/src/components/block-tools/zoom-out-mode-inserters.js +2 -17
  559. package/src/components/block-tools/zoom-out-popover.js +3 -7
  560. package/src/components/block-tools/zoom-out-toolbar.js +31 -6
  561. package/src/components/block-variation-picker/README.md +2 -2
  562. package/src/components/block-variation-picker/index.js +6 -1
  563. package/src/components/block-variation-transforms/index.js +2 -0
  564. package/src/components/block-variation-transforms/style.scss +1 -1
  565. package/src/components/button-block-appender/content.scss +0 -1
  566. package/src/components/button-block-appender/index.js +30 -28
  567. package/src/components/color-palette/test/control.js +15 -2
  568. package/src/components/colors-gradients/dropdown.js +5 -1
  569. package/src/components/colors-gradients/style.scss +4 -4
  570. package/src/components/content-lock/index.js +1 -0
  571. package/src/components/content-lock/modify-content-lock-menu-item.js +58 -0
  572. package/src/components/default-block-appender/content.scss +0 -1
  573. package/src/components/editor-styles/index.js +4 -3
  574. package/src/components/global-styles/background-panel.js +6 -14
  575. package/src/components/global-styles/color-panel.js +8 -4
  576. package/src/components/global-styles/color-panel.native.js +2 -2
  577. package/src/components/global-styles/dimensions-panel.js +40 -40
  578. package/src/components/global-styles/filters-panel.js +5 -1
  579. package/src/components/global-styles/shadow-panel-components.js +11 -15
  580. package/src/components/global-styles/style.scss +3 -4
  581. package/src/components/global-styles/test/typography-utils.js +96 -5
  582. package/src/components/global-styles/test/utils.js +10 -0
  583. package/src/components/global-styles/typography-utils.js +22 -6
  584. package/src/components/global-styles/utils.js +4 -6
  585. package/src/components/grid/grid-item-movers.js +3 -3
  586. package/src/components/grid/style.scss +1 -1
  587. package/src/components/iframe/get-compatibility-styles.js +6 -1
  588. package/src/components/iframe/index.js +5 -5
  589. package/src/components/inner-blocks/index.js +2 -2
  590. package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  591. package/src/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +2 -0
  592. package/src/components/inserter/block-patterns-tab/index.js +2 -0
  593. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +32 -15
  594. package/src/components/inserter/index.js +4 -10
  595. package/src/components/inserter/library.js +0 -2
  596. package/src/components/inserter/media-tab/hooks.js +3 -3
  597. package/src/components/inserter/media-tab/media-list.js +1 -7
  598. package/src/components/inserter/media-tab/media-preview.js +15 -8
  599. package/src/components/inserter/media-tab/media-tab.js +2 -0
  600. package/src/components/inserter/menu.js +15 -29
  601. package/src/components/inserter/quick-inserter.js +3 -4
  602. package/src/components/inserter/style.scss +10 -8
  603. package/src/components/inserter-list-item/index.js +4 -4
  604. package/src/components/inserter-list-item/style.scss +1 -3
  605. package/src/components/inserter-listbox/index.js +2 -11
  606. package/src/components/inserter-listbox/item.js +12 -14
  607. package/src/components/inserter-listbox/row.js +2 -9
  608. package/src/components/inspector-controls/groups.js +2 -0
  609. package/src/components/inspector-controls-tabs/index.js +2 -0
  610. package/src/components/inspector-controls-tabs/settings-tab.js +1 -0
  611. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +5 -2
  612. package/src/components/inspector-popover-header/index.js +4 -0
  613. package/src/components/letter-spacing-control/README.md +8 -1
  614. package/src/components/letter-spacing-control/index.js +7 -4
  615. package/src/components/link-control/index.js +17 -8
  616. package/src/components/link-control/settings-drawer.js +2 -0
  617. package/src/components/link-control/style.scss +1 -3
  618. package/src/components/list-view/block-select-button.js +2 -0
  619. package/src/components/list-view/index.js +3 -8
  620. package/src/components/list-view/style.scss +14 -16
  621. package/src/components/media-placeholder/README.md +2 -2
  622. package/src/components/media-placeholder/index.js +21 -4
  623. package/src/components/media-replace-flow/index.js +12 -1
  624. package/src/components/provider/use-block-sync.js +20 -20
  625. package/src/components/responsive-block-control/README.md +3 -27
  626. package/src/components/rich-text/content.scss +1 -1
  627. package/src/components/rich-text/event-listeners/paste-handler.js +6 -1
  628. package/src/components/rich-text/index.js +54 -41
  629. package/src/components/rich-text/style.scss +1 -1
  630. package/src/components/rich-text/use-mark-persistent.js +5 -5
  631. package/src/components/skip-to-selected-block/index.js +2 -0
  632. package/src/components/spacing-sizes-control/style.scss +1 -0
  633. package/src/components/tool-selector/index.js +2 -0
  634. package/src/components/url-input/button.js +6 -0
  635. package/src/components/url-input/index.js +2 -0
  636. package/src/components/url-popover/stories/index.story.js +7 -1
  637. package/src/components/use-block-drop-zone/index.js +37 -5
  638. package/src/components/warning/content.scss +3 -10
  639. package/src/components/writing-flow/index.js +2 -0
  640. package/src/components/writing-flow/use-arrow-nav.js +9 -2
  641. package/src/components/writing-flow/use-event-redirect.js +72 -0
  642. package/src/components/writing-flow/use-input.js +36 -1
  643. package/src/components/writing-flow/use-select-all.js +18 -1
  644. package/src/components/writing-flow/use-selection-observer.js +23 -3
  645. package/src/components/writing-flow/use-tab-nav.js +4 -4
  646. package/src/components/writing-flow/utils.js +30 -0
  647. package/src/hooks/block-bindings.js +42 -43
  648. package/src/hooks/block-bindings.scss +1 -9
  649. package/src/hooks/content-lock-ui.js +11 -36
  650. package/src/hooks/duotone.js +0 -4
  651. package/src/hooks/layout.js +2 -1
  652. package/src/hooks/layout.scss +5 -27
  653. package/src/hooks/spacing-visualizer.js +3 -3
  654. package/src/hooks/style.js +1 -4
  655. package/src/hooks/use-bindings-attributes.js +23 -24
  656. package/src/hooks/use-zoom-out.js +7 -7
  657. package/src/layouts/constrained.js +53 -48
  658. package/src/layouts/flex.js +2 -0
  659. package/src/layouts/grid.js +29 -22
  660. package/src/layouts/test/grid.js +2 -2
  661. package/src/layouts/test/utils.js +6 -8
  662. package/src/layouts/utils.js +1 -9
  663. package/src/private-apis.js +2 -2
  664. package/src/store/actions.js +4 -6
  665. package/src/store/private-actions.js +1 -0
  666. package/src/store/private-keys.js +1 -0
  667. package/src/store/private-selectors.js +18 -14
  668. package/src/store/reducer.js +0 -7
  669. package/src/store/selectors.js +32 -51
  670. package/src/store/utils.js +50 -0
  671. package/src/utils/block-bindings.js +15 -16
  672. package/src/utils/dom.js +117 -0
  673. package/src/utils/get-font-styles-and-weights.js +12 -4
  674. package/src/utils/test/get-font-styles-and-weights.js +148 -0
  675. package/src/utils/test/transform-styles.js +259 -50
  676. package/src/utils/transform-styles/index.js +132 -21
  677. package/tsconfig.json +1 -0
  678. package/tsconfig.tsbuildinfo +1 -1
  679. package/src/utils/test/__snapshots__/transform-styles.js.snap +0 -109
@@ -51,6 +51,8 @@ const InsertFromURLPopover = ( {
51
51
  value={ src }
52
52
  />
53
53
  <Button
54
+ // TODO: Switch to `true` (40px size) if possible
55
+ __next40pxDefaultSize={ false }
54
56
  className="block-editor-media-placeholder__url-input-submit-button"
55
57
  icon={ keyboardReturn }
56
58
  label={ __( 'Apply' ) }
@@ -85,6 +87,8 @@ const URLSelectionUI = ( { src, onChangeSrc, onSelectURL } ) => {
85
87
  return (
86
88
  <div className="block-editor-media-placeholder__url-input-container">
87
89
  <Button
90
+ // TODO: Switch to `true` (40px size) if possible
91
+ __next40pxDefaultSize={ false }
88
92
  className="block-editor-media-placeholder__button"
89
93
  onClick={ openURLInput }
90
94
  isPressed={ isURLInputVisible }
@@ -168,7 +172,10 @@ export function MediaPlaceholder( {
168
172
  };
169
173
 
170
174
  const onFilesUpload = ( files ) => {
171
- if ( ! handleUpload ) {
175
+ if (
176
+ ! handleUpload ||
177
+ ( typeof handleUpload === 'function' && ! handleUpload( files ) )
178
+ ) {
172
179
  return onSelect( files );
173
180
  }
174
181
  onFilesPreUpload( files );
@@ -316,15 +323,15 @@ export function MediaPlaceholder( {
316
323
 
317
324
  if ( isAudio ) {
318
325
  instructions = __(
319
- 'Upload an audio file, pick one from your media library, or add one with a URL.'
326
+ 'Upload or drag an audio file here, or pick one from your library.'
320
327
  );
321
328
  } else if ( isImage ) {
322
329
  instructions = __(
323
- 'Upload an image file, pick one from your media library, or add one with a URL.'
330
+ 'Upload or drag an image file here, or pick one from your library.'
324
331
  );
325
332
  } else if ( isVideo ) {
326
333
  instructions = __(
327
- 'Upload a video file, pick one from your media library, or add one with a URL.'
334
+ 'Upload or drag a video file here, or pick one from your library.'
328
335
  );
329
336
  }
330
337
  }
@@ -382,6 +389,8 @@ export function MediaPlaceholder( {
382
389
  return (
383
390
  onCancel && (
384
391
  <Button
392
+ // TODO: Switch to `true` (40px size) if possible
393
+ __next40pxDefaultSize={ false }
385
394
  className="block-editor-media-placeholder__cancel-button"
386
395
  title={ __( 'Cancel' ) }
387
396
  variant="link"
@@ -410,6 +419,8 @@ export function MediaPlaceholder( {
410
419
  onToggleFeaturedImage && (
411
420
  <div className="block-editor-media-placeholder__url-input-container">
412
421
  <Button
422
+ // TODO: Switch to `true` (40px size) if possible
423
+ __next40pxDefaultSize={ false }
413
424
  className="block-editor-media-placeholder__button"
414
425
  onClick={ onToggleFeaturedImage }
415
426
  variant="secondary"
@@ -425,6 +436,8 @@ export function MediaPlaceholder( {
425
436
  const defaultButton = ( { open } ) => {
426
437
  return (
427
438
  <Button
439
+ // TODO: Switch to `true` (40px size) if possible
440
+ __next40pxDefaultSize={ false }
428
441
  variant="secondary"
429
442
  onClick={ () => {
430
443
  open();
@@ -464,6 +477,8 @@ export function MediaPlaceholder( {
464
477
  const content = (
465
478
  <>
466
479
  <Button
480
+ // TODO: Switch to `true` (40px size) if possible
481
+ __next40pxDefaultSize={ false }
467
482
  variant="primary"
468
483
  className={ clsx(
469
484
  'block-editor-media-placeholder__button',
@@ -493,6 +508,8 @@ export function MediaPlaceholder( {
493
508
  <FormFileUpload
494
509
  render={ ( { openFileDialog } ) => (
495
510
  <Button
511
+ // TODO: Switch to `true` (40px size) if possible
512
+ __next40pxDefaultSize={ false }
496
513
  onClick={ openFileDialog }
497
514
  variant="primary"
498
515
  className={ clsx(
@@ -48,6 +48,7 @@ const MediaReplaceFlow = ( {
48
48
  onError,
49
49
  onSelect,
50
50
  onSelectURL,
51
+ onReset,
51
52
  onToggleFeaturedImage,
52
53
  useFeaturedImage,
53
54
  onFilesUpload = noop,
@@ -75,7 +76,7 @@ const MediaReplaceFlow = ( {
75
76
  }
76
77
  // We need to set a timeout for showing the notice
77
78
  // so that VoiceOver and possibly other screen readers
78
- // can announce the error afer the toolbar button
79
+ // can announce the error after the toolbar button
79
80
  // regains focus once the upload dialog closes.
80
81
  // Otherwise VO simply skips over the notice and announces
81
82
  // the focused element and the open menu.
@@ -202,6 +203,16 @@ const MediaReplaceFlow = ( {
202
203
  { __( 'Use featured image' ) }
203
204
  </MenuItem>
204
205
  ) }
206
+ { mediaURL && onReset && (
207
+ <MenuItem
208
+ onClick={ () => {
209
+ onReset();
210
+ onClose();
211
+ } }
212
+ >
213
+ { __( 'Reset' ) }
214
+ </MenuItem>
215
+ ) }
205
216
  { typeof children === 'function'
206
217
  ? children( { onClose } )
207
218
  : children }
@@ -91,8 +91,8 @@ export default function useBlockSync( {
91
91
  [ clientId ]
92
92
  );
93
93
 
94
- const pendingChanges = useRef( { incoming: null, outgoing: [] } );
95
- const subscribed = useRef( false );
94
+ const pendingChangesRef = useRef( { incoming: null, outgoing: [] } );
95
+ const subscribedRef = useRef( false );
96
96
 
97
97
  const setControlledBlocks = () => {
98
98
  if ( ! controlledBlocks ) {
@@ -113,15 +113,15 @@ export default function useBlockSync( {
113
113
  const storeBlocks = controlledBlocks.map( ( block ) =>
114
114
  cloneBlock( block )
115
115
  );
116
- if ( subscribed.current ) {
117
- pendingChanges.current.incoming = storeBlocks;
116
+ if ( subscribedRef.current ) {
117
+ pendingChangesRef.current.incoming = storeBlocks;
118
118
  }
119
119
  __unstableMarkNextChangeAsNotPersistent();
120
120
  replaceInnerBlocks( clientId, storeBlocks );
121
121
  } );
122
122
  } else {
123
- if ( subscribed.current ) {
124
- pendingChanges.current.incoming = controlledBlocks;
123
+ if ( subscribedRef.current ) {
124
+ pendingChangesRef.current.incoming = controlledBlocks;
125
125
  }
126
126
  resetBlocks( controlledBlocks );
127
127
  }
@@ -153,7 +153,7 @@ export default function useBlockSync( {
153
153
 
154
154
  // Determine if blocks need to be reset when they change.
155
155
  useEffect( () => {
156
- if ( pendingChanges.current.outgoing.includes( controlledBlocks ) ) {
156
+ if ( pendingChangesRef.current.outgoing.includes( controlledBlocks ) ) {
157
157
  // Skip block reset if the value matches expected outbound sync
158
158
  // triggered by this component by a preceding change detection.
159
159
  // Only skip if the value matches expectation, since a reset should
@@ -161,18 +161,18 @@ export default function useBlockSync( {
161
161
  // to allow that the consumer may apply modifications to reflect
162
162
  // back on the editor.
163
163
  if (
164
- pendingChanges.current.outgoing[
165
- pendingChanges.current.outgoing.length - 1
164
+ pendingChangesRef.current.outgoing[
165
+ pendingChangesRef.current.outgoing.length - 1
166
166
  ] === controlledBlocks
167
167
  ) {
168
- pendingChanges.current.outgoing = [];
168
+ pendingChangesRef.current.outgoing = [];
169
169
  }
170
170
  } else if ( getBlocks( clientId ) !== controlledBlocks ) {
171
171
  // Reset changing value in all other cases than the sync described
172
172
  // above. Since this can be reached in an update following an out-
173
173
  // bound sync, unset the outbound value to avoid considering it in
174
174
  // subsequent renders.
175
- pendingChanges.current.outgoing = [];
175
+ pendingChangesRef.current.outgoing = [];
176
176
  setControlledBlocks();
177
177
 
178
178
  if ( controlledSelection ) {
@@ -185,19 +185,19 @@ export default function useBlockSync( {
185
185
  }
186
186
  }, [ controlledBlocks, clientId ] );
187
187
 
188
- const isMounted = useRef( false );
188
+ const isMountedRef = useRef( false );
189
189
 
190
190
  useEffect( () => {
191
191
  // On mount, controlled blocks are already set in the effect above.
192
- if ( ! isMounted.current ) {
193
- isMounted.current = true;
192
+ if ( ! isMountedRef.current ) {
193
+ isMountedRef.current = true;
194
194
  return;
195
195
  }
196
196
 
197
197
  // When the block becomes uncontrolled, it means its inner state has been reset
198
198
  // we need to take the blocks again from the external value property.
199
199
  if ( ! isControlled ) {
200
- pendingChanges.current.outgoing = [];
200
+ pendingChangesRef.current.outgoing = [];
201
201
  setControlledBlocks();
202
202
  }
203
203
  }, [ isControlled ] );
@@ -214,7 +214,7 @@ export default function useBlockSync( {
214
214
  let isPersistent = isLastBlockChangePersistent();
215
215
  let previousAreBlocksDifferent = false;
216
216
 
217
- subscribed.current = true;
217
+ subscribedRef.current = true;
218
218
  const unsubscribe = registry.subscribe( () => {
219
219
  // Sometimes, when changing block lists, lingering subscriptions
220
220
  // might trigger before they are cleaned up. If the block for which
@@ -243,10 +243,10 @@ export default function useBlockSync( {
243
243
  blocks = newBlocks;
244
244
  if (
245
245
  areBlocksDifferent &&
246
- ( pendingChanges.current.incoming ||
246
+ ( pendingChangesRef.current.incoming ||
247
247
  __unstableIsLastBlockChangeIgnored() )
248
248
  ) {
249
- pendingChanges.current.incoming = null;
249
+ pendingChangesRef.current.incoming = null;
250
250
  isPersistent = newIsPersistent;
251
251
  return;
252
252
  }
@@ -266,7 +266,7 @@ export default function useBlockSync( {
266
266
  // We need to be aware that it was caused by an outgoing change
267
267
  // so that we do not treat it as an incoming change later on,
268
268
  // which would cause a block reset.
269
- pendingChanges.current.outgoing.push( blocks );
269
+ pendingChangesRef.current.outgoing.push( blocks );
270
270
 
271
271
  // Inform the controlling entity that changes have been made to
272
272
  // the block-editor store they should be aware about.
@@ -286,7 +286,7 @@ export default function useBlockSync( {
286
286
  }, blockEditorStore );
287
287
 
288
288
  return () => {
289
- subscribed.current = false;
289
+ subscribedRef.current = false;
290
290
  unsubscribe();
291
291
  };
292
292
  }, [ registry, clientId ] );
@@ -27,9 +27,6 @@ import {
27
27
  InspectorControls,
28
28
  __experimentalResponsiveBlockControl as ResponsiveBlockControl,
29
29
  } from '@wordpress/block-editor';
30
- import {
31
- DimensionControl,
32
- } from '@wordpress/components';
33
30
 
34
31
  registerBlockType( 'my-plugin/my-block', {
35
32
  // ...
@@ -37,34 +34,13 @@ registerBlockType( 'my-plugin/my-block', {
37
34
  edit( { attributes, setAttributes } ) {
38
35
 
39
36
  const [ isResponsive, setIsResponsive ] = useState( false );
40
-
41
- // Used for example purposes only
42
- const sizeOptions = [
43
- {
44
- label: 'Small',
45
- value: 'small',
46
- },
47
- {
48
- label: 'Medium',
49
- value: 'medium',
50
- },
51
- {
52
- label: 'Large',
53
- value: 'large',
54
- },
55
- ];
56
-
57
37
  const { paddingSize } = attributes;
58
38
 
59
-
60
39
  // Your custom control can be anything you'd like to use.
61
- // You are not restricted to `DimensionControl`s, but this
62
- // makes life easier if dealing with standard CSS values.
63
- // see `packages/components/src/dimension-control/README.md`
64
40
  const paddingControl = ( labelComponent, viewport ) => {
65
41
  return (
66
- <DimensionControl
67
- __nextHasNoMarginBottom
42
+ <input
43
+ type="number"
68
44
  label={ viewport.label }
69
45
  onChange={ // handle update to padding value here }
70
46
  value={ paddingSize }
@@ -155,7 +131,7 @@ const renderDefaultControl = ( labelComponent, viewport ) => {
155
131
  // id: 'small',
156
132
  // label: 'All'
157
133
  // }
158
- return <DimensionControl label={ labelComponent } />;
134
+ return <SelectControl label={ labelComponent } />;
159
135
  };
160
136
  ```
161
137
 
@@ -15,7 +15,7 @@
15
15
  outline: none;
16
16
 
17
17
  [data-rich-text-format-boundary] {
18
- border-radius: 2px;
18
+ border-radius: $radius-small;
19
19
  }
20
20
  }
21
21
  }
@@ -26,10 +26,15 @@ export default ( props ) => ( element ) => {
26
26
  preserveWhiteSpace,
27
27
  pastePlainText,
28
28
  } = props.current;
29
+ const { ownerDocument } = element;
30
+ const { defaultView } = ownerDocument;
31
+ const { anchorNode, focusNode } = defaultView.getSelection();
32
+ const containsSelection =
33
+ element.contains( anchorNode ) && element.contains( focusNode );
29
34
 
30
35
  // The event listener is attached to the window, so we need to check if
31
36
  // the target is the element.
32
- if ( event.target !== element ) {
37
+ if ( ! containsSelection ) {
33
38
  return;
34
39
  }
35
40
 
@@ -20,8 +20,9 @@ import {
20
20
  removeFormat,
21
21
  } from '@wordpress/rich-text';
22
22
  import { Popover } from '@wordpress/components';
23
- import { getBlockType, store as blocksStore } from '@wordpress/blocks';
23
+ import { store as blocksStore } from '@wordpress/blocks';
24
24
  import deprecated from '@wordpress/deprecated';
25
+ import { __, sprintf } from '@wordpress/i18n';
25
26
 
26
27
  /**
27
28
  * Internal dependencies
@@ -163,49 +164,47 @@ export function RichTextWrapper(
163
164
  isBlockSelected,
164
165
  ] );
165
166
 
166
- const disableBoundBlocks = useSelect(
167
+ const { disableBoundBlock, bindingsPlaceholder } = useSelect(
167
168
  ( select ) => {
168
- // Disable Rich Text editing if block bindings specify that.
169
- let _disableBoundBlocks = false;
170
- if ( blockBindings && canBindBlock( blockName ) ) {
171
- const blockTypeAttributes =
172
- getBlockType( blockName ).attributes;
173
- const { getBlockBindingsSource } = unlock(
174
- select( blocksStore )
175
- );
176
- for ( const [ attribute, binding ] of Object.entries(
177
- blockBindings
178
- ) ) {
179
- if (
180
- blockTypeAttributes?.[ attribute ]?.source !==
181
- 'rich-text'
182
- ) {
183
- break;
184
- }
185
-
186
- // If the source is not defined, or if its value of `canUserEditValue` is `false`, disable it.
187
- const blockBindingsSource = getBlockBindingsSource(
188
- binding.source
189
- );
190
- if (
191
- ! blockBindingsSource?.canUserEditValue?.( {
192
- select,
193
- context: blockContext,
194
- args: binding.args,
195
- } )
196
- ) {
197
- _disableBoundBlocks = true;
198
- break;
199
- }
200
- }
169
+ if (
170
+ ! blockBindings?.[ identifier ] ||
171
+ ! canBindBlock( blockName )
172
+ ) {
173
+ return {};
201
174
  }
202
175
 
203
- return _disableBoundBlocks;
176
+ const relatedBinding = blockBindings[ identifier ];
177
+ const { getBlockBindingsSource } = unlock( select( blocksStore ) );
178
+ const blockBindingsSource = getBlockBindingsSource(
179
+ relatedBinding.source
180
+ );
181
+
182
+ const _disableBoundBlock =
183
+ ! blockBindingsSource?.canUserEditValue?.( {
184
+ select,
185
+ context: blockContext,
186
+ args: relatedBinding.args,
187
+ } );
188
+
189
+ const _bindingsPlaceholder = _disableBoundBlock
190
+ ? relatedBinding?.args?.key || blockBindingsSource?.label
191
+ : sprintf(
192
+ /* translators: %s: source label or key */
193
+ __( 'Add %s' ),
194
+ relatedBinding?.args?.key || blockBindingsSource?.label
195
+ );
196
+
197
+ return {
198
+ disableBoundBlock: _disableBoundBlock,
199
+ bindingsPlaceholder:
200
+ ( ! adjustedValue || adjustedValue.length === 0 ) &&
201
+ _bindingsPlaceholder,
202
+ };
204
203
  },
205
- [ blockBindings, blockName ]
204
+ [ blockBindings, identifier, blockName, blockContext, adjustedValue ]
206
205
  );
207
206
 
208
- const shouldDisableEditing = readOnly || disableBoundBlocks;
207
+ const shouldDisableEditing = readOnly || disableBoundBlock;
209
208
 
210
209
  const { getSelectionStart, getSelectionEnd, getBlockRootClientId } =
211
210
  useSelect( blockEditorStore );
@@ -335,7 +334,7 @@ export function RichTextWrapper(
335
334
  selectionStart,
336
335
  selectionEnd,
337
336
  onSelectionChange,
338
- placeholder,
337
+ placeholder: bindingsPlaceholder || placeholder,
339
338
  __unstableIsSelected: isSelected,
340
339
  __unstableDisableFormats: disableFormats,
341
340
  preserveWhiteSpace,
@@ -357,7 +356,19 @@ export function RichTextWrapper(
357
356
  const inputEvents = useRef( new Set() );
358
357
 
359
358
  function onFocus() {
360
- anchorRef.current?.focus();
359
+ let element = anchorRef.current;
360
+
361
+ if ( ! element ) {
362
+ return;
363
+ }
364
+
365
+ // Writing flow might be editable, so we should make sure focus goes to
366
+ // the root editable element.
367
+ while ( element.parentElement?.isContentEditable ) {
368
+ element = element.parentElement;
369
+ }
370
+
371
+ element.focus();
361
372
  }
362
373
 
363
374
  const registry = useRegistry();
@@ -392,9 +403,11 @@ export function RichTextWrapper(
392
403
  // Overridable props.
393
404
  role="textbox"
394
405
  aria-multiline={ ! disableLineBreaks }
395
- aria-label={ placeholder }
396
406
  aria-readonly={ shouldDisableEditing }
397
407
  { ...props }
408
+ aria-label={
409
+ bindingsPlaceholder || props[ 'aria-label' ] || placeholder
410
+ }
398
411
  { ...autocompleteProps }
399
412
  ref={ useMergeRefs( [
400
413
  // Rich text ref must be first because its focus listener
@@ -12,7 +12,7 @@
12
12
  }
13
13
 
14
14
  .components-toolbar {
15
- border-radius: $radius-block-ui;
15
+ border-radius: $radius-small;
16
16
  }
17
17
 
18
18
  .components-toolbar__control,
@@ -10,7 +10,7 @@ import { useDispatch } from '@wordpress/data';
10
10
  import { store as blockEditorStore } from '../../store';
11
11
 
12
12
  export function useMarkPersistent( { html, value } ) {
13
- const previousText = useRef();
13
+ const previousTextRef = useRef();
14
14
  const hasActiveFormats = !! value.activeFormats?.length;
15
15
  const { __unstableMarkLastChangeAsPersistent } =
16
16
  useDispatch( blockEditorStore );
@@ -18,18 +18,18 @@ export function useMarkPersistent( { html, value } ) {
18
18
  // Must be set synchronously to make sure it applies to the last change.
19
19
  useLayoutEffect( () => {
20
20
  // Ignore mount.
21
- if ( ! previousText.current ) {
22
- previousText.current = value.text;
21
+ if ( ! previousTextRef.current ) {
22
+ previousTextRef.current = value.text;
23
23
  return;
24
24
  }
25
25
 
26
26
  // Text input, so don't create an undo level for every character.
27
27
  // Create an undo level after 1 second of no input.
28
- if ( previousText.current !== value.text ) {
28
+ if ( previousTextRef.current !== value.text ) {
29
29
  const timeout = window.setTimeout( () => {
30
30
  __unstableMarkLastChangeAsPersistent();
31
31
  }, 1000 );
32
- previousText.current = value.text;
32
+ previousTextRef.current = value.text;
33
33
  return () => {
34
34
  window.clearTimeout( timeout );
35
35
  };
@@ -28,6 +28,8 @@ export default function SkipToSelectedBlock() {
28
28
 
29
29
  return selectedBlockClientId ? (
30
30
  <Button
31
+ // TODO: Switch to `true` (40px size) if possible
32
+ __next40pxDefaultSize={ false }
31
33
  variant="secondary"
32
34
  className="block-editor-skip-to-selected-block"
33
35
  onClick={ onClick }
@@ -19,6 +19,7 @@
19
19
  .spacing-sizes-control__range-control,
20
20
  .spacing-sizes-control__custom-value-range {
21
21
  flex: 1;
22
+ margin-bottom: 0; // Needed for some instances of the range control, such as the Spacer block.
22
23
  }
23
24
 
24
25
  .components-range-control__mark {
@@ -41,6 +41,8 @@ function ToolSelector( props, ref ) {
41
41
  <Dropdown
42
42
  renderToggle={ ( { isOpen, onToggle } ) => (
43
43
  <Button
44
+ // TODO: Switch to `true` (40px size) if possible
45
+ __next40pxDefaultSize={ false }
44
46
  { ...props }
45
47
  ref={ ref }
46
48
  icon={ mode === 'navigation' ? selectIcon : editIcon }
@@ -38,6 +38,8 @@ class URLInputButton extends Component {
38
38
  return (
39
39
  <div className="block-editor-url-input__button">
40
40
  <Button
41
+ // TODO: Switch to `true` (40px size) if possible
42
+ __next40pxDefaultSize={ false }
41
43
  icon={ link }
42
44
  label={ buttonLabel }
43
45
  onClick={ this.toggle }
@@ -51,6 +53,8 @@ class URLInputButton extends Component {
51
53
  >
52
54
  <div className="block-editor-url-input__button-modal-line">
53
55
  <Button
56
+ // TODO: Switch to `true` (40px size) if possible
57
+ __next40pxDefaultSize={ false }
54
58
  className="block-editor-url-input__back"
55
59
  icon={ arrowLeft }
56
60
  label={ __( 'Close' ) }
@@ -61,6 +65,8 @@ class URLInputButton extends Component {
61
65
  onChange={ onChange }
62
66
  />
63
67
  <Button
68
+ // TODO: Switch to `true` (40px size) if possible
69
+ __next40pxDefaultSize={ false }
64
70
  icon={ keyboardReturn }
65
71
  label={ __( 'Submit' ) }
66
72
  type="submit"
@@ -539,6 +539,8 @@ class URLInput extends Component {
539
539
  >
540
540
  { suggestions.map( ( suggestion, index ) => (
541
541
  <Button
542
+ // TODO: Switch to `true` (40px size) if possible
543
+ __next40pxDefaultSize={ false }
542
544
  { ...buildSuggestionItemProps( suggestion, index ) }
543
545
  key={ suggestion.id }
544
546
  className={ clsx(
@@ -22,7 +22,12 @@ const TestURLPopover = () => {
22
22
 
23
23
  return (
24
24
  <>
25
- <Button onClick={ () => setVisiblility( true ) }>Edit URL</Button>
25
+ <Button
26
+ __next40pxDefaultSize
27
+ onClick={ () => setVisiblility( true ) }
28
+ >
29
+ Edit URL
30
+ </Button>
26
31
  { isVisible && (
27
32
  <URLPopover
28
33
  onClose={ close }
@@ -37,6 +42,7 @@ const TestURLPopover = () => {
37
42
  <form onSubmit={ close }>
38
43
  <input type="url" value={ url } onChange={ setUrl } />
39
44
  <Button
45
+ __next40pxDefaultSize
40
46
  icon={ keyboardReturn }
41
47
  label={ __( 'Apply' ) }
42
48
  type="submit"