@wordpress/block-editor 14.0.0 → 14.2.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 (807) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +10 -24
  3. package/build/autocompleters/block.js +1 -1
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-alignment-matrix-control/index.js +2 -2
  6. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  7. package/build/components/block-breadcrumb/index.js +8 -2
  8. package/build/components/block-breadcrumb/index.js.map +1 -1
  9. package/build/components/block-canvas/index.js +8 -1
  10. package/build/components/block-canvas/index.js.map +1 -1
  11. package/build/components/block-compare/block-view.js +4 -1
  12. package/build/components/block-compare/block-view.js.map +1 -1
  13. package/build/components/block-draggable/index.js +4 -4
  14. package/build/components/block-draggable/index.js.map +1 -1
  15. package/build/components/block-draggable/use-scroll-when-dragging.js +25 -25
  16. package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  17. package/build/components/block-edit/multiple-usage-warning.js +8 -2
  18. package/build/components/block-edit/multiple-usage-warning.js.map +1 -1
  19. package/build/components/block-inspector/index.js +27 -9
  20. package/build/components/block-inspector/index.js.map +1 -1
  21. package/build/components/block-list/block-invalid-warning.js +6 -3
  22. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  23. package/build/components/block-list/block.js +5 -1
  24. package/build/components/block-list/block.js.map +1 -1
  25. package/build/components/block-list/use-block-props/index.js +7 -3
  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 +46 -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/use-in-between-inserter.js +11 -4
  32. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  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 +4 -1
  36. package/build/components/block-mover/button.js.map +1 -1
  37. package/build/components/block-mover/index.js +4 -1
  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 +1 -4
  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 +11 -14
  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/block-mode-toggle.js +28 -34
  54. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  55. package/build/components/block-settings-menu-controls/index.js +4 -0
  56. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  57. package/build/components/block-switcher/index.js +22 -17
  58. package/build/components/block-switcher/index.js.map +1 -1
  59. package/build/components/block-switcher/pattern-transformations-menu.js +1 -4
  60. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  61. package/build/components/block-toolbar/index.js +12 -11
  62. package/build/components/block-toolbar/index.js.map +1 -1
  63. package/build/components/block-toolbar/shuffle.js +6 -2
  64. package/build/components/block-toolbar/shuffle.js.map +1 -1
  65. package/build/components/block-tools/block-selection-button.js +8 -2
  66. package/build/components/block-tools/block-selection-button.js.map +1 -1
  67. package/build/components/block-tools/block-toolbar-popover.js +10 -6
  68. package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
  69. package/build/components/block-tools/insertion-point.js +14 -3
  70. package/build/components/block-tools/insertion-point.js.map +1 -1
  71. package/build/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  72. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  73. package/build/components/block-tools/use-show-block-tools.js +2 -1
  74. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  75. package/build/components/block-tools/zoom-out-mode-inserters.js +4 -5
  76. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  77. package/build/components/block-tools/zoom-out-popover.js +3 -4
  78. package/build/components/block-tools/zoom-out-popover.js.map +1 -1
  79. package/build/components/block-tools/zoom-out-toolbar.js +14 -5
  80. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  81. package/build/components/block-variation-picker/index.js +4 -1
  82. package/build/components/block-variation-picker/index.js.map +1 -1
  83. package/build/components/block-variation-transforms/index.js +4 -1
  84. package/build/components/block-variation-transforms/index.js.map +1 -1
  85. package/build/components/border-radius-control/index.js +1 -0
  86. package/build/components/border-radius-control/index.js.map +1 -1
  87. package/build/components/button-block-appender/index.js +14 -3
  88. package/build/components/button-block-appender/index.js.map +1 -1
  89. package/build/components/colors-gradients/dropdown.js +4 -1
  90. package/build/components/colors-gradients/dropdown.js.map +1 -1
  91. package/build/components/content-lock/index.js +13 -0
  92. package/build/components/content-lock/index.js.map +1 -0
  93. package/build/components/content-lock/modify-content-lock-menu-item.js +64 -0
  94. package/build/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
  95. package/build/components/convert-to-group-buttons/index.js +1 -1
  96. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  97. package/build/components/date-format-picker/index.js +2 -0
  98. package/build/components/date-format-picker/index.js.map +1 -1
  99. package/build/components/editor-styles/index.js +4 -3
  100. package/build/components/editor-styles/index.js.map +1 -1
  101. package/build/components/font-appearance-control/index.js +3 -0
  102. package/build/components/font-appearance-control/index.js.map +1 -1
  103. package/build/components/font-family/index.js +3 -0
  104. package/build/components/font-family/index.js.map +1 -1
  105. package/build/components/global-styles/background-panel.js +118 -50
  106. package/build/components/global-styles/background-panel.js.map +1 -1
  107. package/build/components/global-styles/color-panel.js +8 -5
  108. package/build/components/global-styles/color-panel.js.map +1 -1
  109. package/build/components/global-styles/color-panel.native.js +1 -1
  110. package/build/components/global-styles/color-panel.native.js.map +1 -1
  111. package/build/components/global-styles/dimensions-panel.js +34 -37
  112. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  113. package/build/components/global-styles/filters-panel.js +4 -1
  114. package/build/components/global-styles/filters-panel.js.map +1 -1
  115. package/build/components/global-styles/get-global-styles-changes.js +3 -1
  116. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  117. package/build/components/global-styles/hooks.js +0 -7
  118. package/build/components/global-styles/hooks.js.map +1 -1
  119. package/build/components/global-styles/index.js +0 -6
  120. package/build/components/global-styles/index.js.map +1 -1
  121. package/build/components/global-styles/shadow-panel-components.js +13 -7
  122. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  123. package/build/components/global-styles/typography-utils.js +17 -6
  124. package/build/components/global-styles/typography-utils.js.map +1 -1
  125. package/build/components/global-styles/use-global-styles-output.js +3 -3
  126. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  127. package/build/components/global-styles/utils.js +11 -29
  128. package/build/components/global-styles/utils.js.map +1 -1
  129. package/build/components/grid/grid-item-movers.js +2 -2
  130. package/build/components/grid/grid-item-movers.js.map +1 -1
  131. package/build/components/grid/grid-visualizer.js +20 -5
  132. package/build/components/grid/grid-visualizer.js.map +1 -1
  133. package/build/components/height-control/index.js +1 -0
  134. package/build/components/height-control/index.js.map +1 -1
  135. package/build/components/iframe/index.js +8 -6
  136. package/build/components/iframe/index.js.map +1 -1
  137. package/build/components/image-editor/zoom-dropdown.js +11 -7
  138. package/build/components/image-editor/zoom-dropdown.js.map +1 -1
  139. package/build/components/inner-blocks/button-block-appender.js +8 -8
  140. package/build/components/inner-blocks/button-block-appender.js.map +1 -1
  141. package/build/components/inner-blocks/default-block-appender.js +7 -25
  142. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  143. package/build/components/inner-blocks/index.js +8 -12
  144. package/build/components/inner-blocks/index.js.map +1 -1
  145. package/build/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  146. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  147. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
  148. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  149. package/build/components/inserter/block-patterns-tab/index.js +4 -1
  150. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  151. package/build/components/inserter/media-tab/hooks.js +3 -3
  152. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  153. package/build/components/inserter/media-tab/media-list.js +1 -4
  154. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  155. package/build/components/inserter/media-tab/media-preview.js +8 -2
  156. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  157. package/build/components/inserter/media-tab/media-tab.js +4 -1
  158. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  159. package/build/components/inserter/menu.js +14 -13
  160. package/build/components/inserter/menu.js.map +1 -1
  161. package/build/components/inserter/quick-inserter.js +8 -1
  162. package/build/components/inserter/quick-inserter.js.map +1 -1
  163. package/build/components/inserter-list-item/index.js +4 -4
  164. package/build/components/inserter-list-item/index.js.map +1 -1
  165. package/build/components/inserter-listbox/index.js +3 -7
  166. package/build/components/inserter-listbox/index.js.map +1 -1
  167. package/build/components/inserter-listbox/item.js +4 -1
  168. package/build/components/inserter-listbox/item.js.map +1 -1
  169. package/build/components/inspector-controls/groups.js +2 -0
  170. package/build/components/inspector-controls/groups.js.map +1 -1
  171. package/build/components/inspector-controls-tabs/index.js +4 -1
  172. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  173. package/build/components/inspector-controls-tabs/settings-tab.js +3 -1
  174. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  175. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
  176. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  177. package/build/components/inspector-popover-header/index.js +8 -2
  178. package/build/components/inspector-popover-header/index.js.map +1 -1
  179. package/build/components/letter-spacing-control/index.js +7 -4
  180. package/build/components/letter-spacing-control/index.js.map +1 -1
  181. package/build/components/line-height-control/index.js +3 -0
  182. package/build/components/line-height-control/index.js.map +1 -1
  183. package/build/components/link-control/index.js +19 -10
  184. package/build/components/link-control/index.js.map +1 -1
  185. package/build/components/link-control/settings-drawer.js +4 -1
  186. package/build/components/link-control/settings-drawer.js.map +1 -1
  187. package/build/components/list-view/block-select-button.js +4 -1
  188. package/build/components/list-view/block-select-button.js.map +1 -1
  189. package/build/components/media-placeholder/index.js +36 -10
  190. package/build/components/media-placeholder/index.js.map +1 -1
  191. package/build/components/media-replace-flow/index.js +8 -1
  192. package/build/components/media-replace-flow/index.js.map +1 -1
  193. package/build/components/media-upload/index.native.js +4 -1
  194. package/build/components/media-upload/index.native.js.map +1 -1
  195. package/build/components/multi-selection-inspector/index.js +12 -12
  196. package/build/components/multi-selection-inspector/index.js.map +1 -1
  197. package/build/components/provider/use-block-sync.js +19 -19
  198. package/build/components/provider/use-block-sync.js.map +1 -1
  199. package/build/components/rich-text/event-listeners/paste-handler.js +12 -1
  200. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  201. package/build/components/rich-text/index.js +38 -30
  202. package/build/components/rich-text/index.js.map +1 -1
  203. package/build/components/rich-text/use-mark-persistent.js +5 -5
  204. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  205. package/build/components/skip-to-selected-block/index.js +4 -1
  206. package/build/components/skip-to-selected-block/index.js.map +1 -1
  207. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
  208. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  209. package/build/components/text-alignment-control/index.js +13 -8
  210. package/build/components/text-alignment-control/index.js.map +1 -1
  211. package/build/components/text-decoration-control/index.js +13 -8
  212. package/build/components/text-decoration-control/index.js.map +1 -1
  213. package/build/components/text-transform-control/index.js +13 -8
  214. package/build/components/text-transform-control/index.js.map +1 -1
  215. package/build/components/tool-selector/index.js +4 -1
  216. package/build/components/tool-selector/index.js.map +1 -1
  217. package/build/components/url-input/button.js +12 -3
  218. package/build/components/url-input/button.js.map +1 -1
  219. package/build/components/url-input/index.js +4 -1
  220. package/build/components/url-input/index.js.map +1 -1
  221. package/build/components/url-popover/image-url-input-ui.js +2 -0
  222. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  223. package/build/components/use-block-drop-zone/index.js +12 -2
  224. package/build/components/use-block-drop-zone/index.js.map +1 -1
  225. package/build/components/writing-flow/index.js +2 -1
  226. package/build/components/writing-flow/index.js.map +1 -1
  227. package/build/components/writing-flow/use-arrow-nav.js +4 -1
  228. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  229. package/build/components/writing-flow/use-event-redirect.js +66 -0
  230. package/build/components/writing-flow/use-event-redirect.js.map +1 -0
  231. package/build/components/writing-flow/use-input.js +31 -1
  232. package/build/components/writing-flow/use-input.js.map +1 -1
  233. package/build/components/writing-flow/use-select-all.js +14 -1
  234. package/build/components/writing-flow/use-select-all.js.map +1 -1
  235. package/build/components/writing-flow/use-selection-observer.js +20 -6
  236. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  237. package/build/components/writing-flow/use-tab-nav.js +4 -4
  238. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  239. package/build/components/writing-flow/utils.js +27 -0
  240. package/build/components/writing-flow/utils.js.map +1 -1
  241. package/build/components/writing-mode-control/index.js +13 -8
  242. package/build/components/writing-mode-control/index.js.map +1 -1
  243. package/build/hooks/background.js +19 -23
  244. package/build/hooks/background.js.map +1 -1
  245. package/build/hooks/block-bindings.js +64 -103
  246. package/build/hooks/block-bindings.js.map +1 -1
  247. package/build/hooks/content-lock-ui.js +8 -26
  248. package/build/hooks/content-lock-ui.js.map +1 -1
  249. package/build/hooks/duotone.js +0 -4
  250. package/build/hooks/duotone.js.map +1 -1
  251. package/build/hooks/layout.js +4 -1
  252. package/build/hooks/layout.js.map +1 -1
  253. package/build/hooks/spacing-visualizer.js +3 -3
  254. package/build/hooks/spacing-visualizer.js.map +1 -1
  255. package/build/hooks/style.js +1 -5
  256. package/build/hooks/style.js.map +1 -1
  257. package/build/hooks/use-bindings-attributes.js +19 -20
  258. package/build/hooks/use-bindings-attributes.js.map +1 -1
  259. package/build/hooks/use-zoom-out.js +7 -7
  260. package/build/hooks/use-zoom-out.js.map +1 -1
  261. package/build/layouts/constrained.js +42 -41
  262. package/build/layouts/constrained.js.map +1 -1
  263. package/build/layouts/flex.js +6 -1
  264. package/build/layouts/flex.js.map +1 -1
  265. package/build/layouts/grid.js +3 -0
  266. package/build/layouts/grid.js.map +1 -1
  267. package/build/layouts/utils.js +1 -7
  268. package/build/layouts/utils.js.map +1 -1
  269. package/build/private-apis.js +4 -1
  270. package/build/private-apis.js.map +1 -1
  271. package/build/store/actions.js +2 -7
  272. package/build/store/actions.js.map +1 -1
  273. package/build/store/private-actions.js +1 -0
  274. package/build/store/private-actions.js.map +1 -1
  275. package/build/store/private-keys.js +2 -1
  276. package/build/store/private-keys.js.map +1 -1
  277. package/build/store/private-selectors.js +39 -11
  278. package/build/store/private-selectors.js.map +1 -1
  279. package/build/store/reducer.js +2 -0
  280. package/build/store/reducer.js.map +1 -1
  281. package/build/store/selectors.js +19 -43
  282. package/build/store/selectors.js.map +1 -1
  283. package/build/store/utils.js +48 -0
  284. package/build/store/utils.js.map +1 -1
  285. package/build/utils/block-bindings.js +117 -0
  286. package/build/utils/block-bindings.js.map +1 -0
  287. package/build/utils/dom.js +101 -0
  288. package/build/utils/dom.js.map +1 -1
  289. package/build/utils/get-font-styles-and-weights.js +4 -4
  290. package/build/utils/get-font-styles-and-weights.js.map +1 -1
  291. package/build/utils/transform-styles/index.js +120 -16
  292. package/build/utils/transform-styles/index.js.map +1 -1
  293. package/build-module/autocompleters/block.js +1 -1
  294. package/build-module/autocompleters/block.js.map +1 -1
  295. package/build-module/components/block-alignment-matrix-control/index.js +1 -1
  296. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  297. package/build-module/components/block-breadcrumb/index.js +8 -2
  298. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  299. package/build-module/components/block-canvas/index.js +9 -1
  300. package/build-module/components/block-canvas/index.js.map +1 -1
  301. package/build-module/components/block-compare/block-view.js +4 -1
  302. package/build-module/components/block-compare/block-view.js.map +1 -1
  303. package/build-module/components/block-draggable/index.js +4 -4
  304. package/build-module/components/block-draggable/index.js.map +1 -1
  305. package/build-module/components/block-draggable/use-scroll-when-dragging.js +25 -25
  306. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  307. package/build-module/components/block-edit/multiple-usage-warning.js +8 -2
  308. package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -1
  309. package/build-module/components/block-inspector/index.js +27 -9
  310. package/build-module/components/block-inspector/index.js.map +1 -1
  311. package/build-module/components/block-list/block-invalid-warning.js +6 -3
  312. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  313. package/build-module/components/block-list/block.js +5 -1
  314. package/build-module/components/block-list/block.js.map +1 -1
  315. package/build-module/components/block-list/use-block-props/index.js +7 -3
  316. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  317. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  318. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  319. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +40 -0
  320. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
  321. package/build-module/components/block-list/use-in-between-inserter.js +11 -4
  322. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  323. package/build-module/components/block-lock/toolbar.js +3 -3
  324. package/build-module/components/block-lock/toolbar.js.map +1 -1
  325. package/build-module/components/block-mover/button.js +4 -1
  326. package/build-module/components/block-mover/button.js.map +1 -1
  327. package/build-module/components/block-mover/index.js +4 -1
  328. package/build-module/components/block-mover/index.js.map +1 -1
  329. package/build-module/components/block-navigation/dropdown.js +4 -1
  330. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  331. package/build-module/components/block-pattern-setup/index.js +1 -4
  332. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  333. package/build-module/components/block-pattern-setup/setup-toolbar.js +23 -8
  334. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  335. package/build-module/components/block-patterns-list/index.js +11 -14
  336. package/build-module/components/block-patterns-list/index.js.map +1 -1
  337. package/build-module/components/block-patterns-paging/index.js +12 -3
  338. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  339. package/build-module/components/block-popover/index.js +2 -15
  340. package/build-module/components/block-popover/index.js.map +1 -1
  341. package/build-module/components/block-quick-navigation/index.js +4 -1
  342. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  343. package/build-module/components/block-settings-menu/block-mode-toggle.js +29 -34
  344. package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  345. package/build-module/components/block-settings-menu-controls/index.js +4 -0
  346. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  347. package/build-module/components/block-switcher/index.js +22 -17
  348. package/build-module/components/block-switcher/index.js.map +1 -1
  349. package/build-module/components/block-switcher/pattern-transformations-menu.js +1 -4
  350. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  351. package/build-module/components/block-toolbar/index.js +12 -11
  352. package/build-module/components/block-toolbar/index.js.map +1 -1
  353. package/build-module/components/block-toolbar/shuffle.js +6 -2
  354. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  355. package/build-module/components/block-tools/block-selection-button.js +8 -2
  356. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  357. package/build-module/components/block-tools/block-toolbar-popover.js +10 -6
  358. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
  359. package/build-module/components/block-tools/insertion-point.js +14 -3
  360. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  361. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  362. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  363. package/build-module/components/block-tools/use-show-block-tools.js +2 -1
  364. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  365. package/build-module/components/block-tools/zoom-out-mode-inserters.js +4 -5
  366. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  367. package/build-module/components/block-tools/zoom-out-popover.js +3 -4
  368. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -1
  369. package/build-module/components/block-tools/zoom-out-toolbar.js +15 -6
  370. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  371. package/build-module/components/block-variation-picker/index.js +4 -1
  372. package/build-module/components/block-variation-picker/index.js.map +1 -1
  373. package/build-module/components/block-variation-transforms/index.js +4 -1
  374. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  375. package/build-module/components/border-radius-control/index.js +1 -0
  376. package/build-module/components/border-radius-control/index.js.map +1 -1
  377. package/build-module/components/button-block-appender/index.js +15 -4
  378. package/build-module/components/button-block-appender/index.js.map +1 -1
  379. package/build-module/components/colors-gradients/dropdown.js +4 -1
  380. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  381. package/build-module/components/content-lock/index.js +2 -0
  382. package/build-module/components/content-lock/index.js.map +1 -0
  383. package/build-module/components/content-lock/modify-content-lock-menu-item.js +57 -0
  384. package/build-module/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
  385. package/build-module/components/convert-to-group-buttons/index.js +1 -1
  386. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  387. package/build-module/components/date-format-picker/index.js +2 -0
  388. package/build-module/components/date-format-picker/index.js.map +1 -1
  389. package/build-module/components/editor-styles/index.js +4 -3
  390. package/build-module/components/editor-styles/index.js.map +1 -1
  391. package/build-module/components/font-appearance-control/index.js +3 -0
  392. package/build-module/components/font-appearance-control/index.js.map +1 -1
  393. package/build-module/components/font-family/index.js +3 -0
  394. package/build-module/components/font-family/index.js.map +1 -1
  395. package/build-module/components/global-styles/background-panel.js +121 -53
  396. package/build-module/components/global-styles/background-panel.js.map +1 -1
  397. package/build-module/components/global-styles/color-panel.js +7 -4
  398. package/build-module/components/global-styles/color-panel.js.map +1 -1
  399. package/build-module/components/global-styles/color-panel.native.js +2 -2
  400. package/build-module/components/global-styles/color-panel.native.js.map +1 -1
  401. package/build-module/components/global-styles/dimensions-panel.js +36 -39
  402. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  403. package/build-module/components/global-styles/filters-panel.js +4 -1
  404. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  405. package/build-module/components/global-styles/get-global-styles-changes.js +3 -1
  406. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  407. package/build-module/components/global-styles/hooks.js +0 -6
  408. package/build-module/components/global-styles/hooks.js.map +1 -1
  409. package/build-module/components/global-styles/index.js +1 -1
  410. package/build-module/components/global-styles/index.js.map +1 -1
  411. package/build-module/components/global-styles/shadow-panel-components.js +13 -7
  412. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  413. package/build-module/components/global-styles/typography-utils.js +17 -6
  414. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  415. package/build-module/components/global-styles/use-global-styles-output.js +5 -5
  416. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  417. package/build-module/components/global-styles/utils.js +11 -28
  418. package/build-module/components/global-styles/utils.js.map +1 -1
  419. package/build-module/components/grid/grid-item-movers.js +3 -3
  420. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  421. package/build-module/components/grid/grid-visualizer.js +20 -5
  422. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  423. package/build-module/components/height-control/index.js +1 -0
  424. package/build-module/components/height-control/index.js.map +1 -1
  425. package/build-module/components/iframe/index.js +8 -6
  426. package/build-module/components/iframe/index.js.map +1 -1
  427. package/build-module/components/image-editor/zoom-dropdown.js +12 -8
  428. package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
  429. package/build-module/components/inner-blocks/button-block-appender.js +7 -6
  430. package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
  431. package/build-module/components/inner-blocks/default-block-appender.js +6 -23
  432. package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
  433. package/build-module/components/inner-blocks/index.js +8 -12
  434. package/build-module/components/inner-blocks/index.js.map +1 -1
  435. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  436. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  437. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
  438. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  439. package/build-module/components/inserter/block-patterns-tab/index.js +4 -1
  440. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  441. package/build-module/components/inserter/media-tab/hooks.js +3 -3
  442. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  443. package/build-module/components/inserter/media-tab/media-list.js +1 -4
  444. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  445. package/build-module/components/inserter/media-tab/media-preview.js +8 -2
  446. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  447. package/build-module/components/inserter/media-tab/media-tab.js +4 -1
  448. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  449. package/build-module/components/inserter/menu.js +14 -13
  450. package/build-module/components/inserter/menu.js.map +1 -1
  451. package/build-module/components/inserter/quick-inserter.js +9 -2
  452. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  453. package/build-module/components/inserter-list-item/index.js +4 -4
  454. package/build-module/components/inserter-list-item/index.js.map +1 -1
  455. package/build-module/components/inserter-listbox/index.js +3 -7
  456. package/build-module/components/inserter-listbox/index.js.map +1 -1
  457. package/build-module/components/inserter-listbox/item.js +4 -1
  458. package/build-module/components/inserter-listbox/item.js.map +1 -1
  459. package/build-module/components/inspector-controls/groups.js +2 -0
  460. package/build-module/components/inspector-controls/groups.js.map +1 -1
  461. package/build-module/components/inspector-controls-tabs/index.js +4 -1
  462. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  463. package/build-module/components/inspector-controls-tabs/settings-tab.js +3 -1
  464. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  465. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
  466. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  467. package/build-module/components/inspector-popover-header/index.js +8 -2
  468. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  469. package/build-module/components/letter-spacing-control/index.js +7 -4
  470. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  471. package/build-module/components/line-height-control/index.js +3 -0
  472. package/build-module/components/line-height-control/index.js.map +1 -1
  473. package/build-module/components/link-control/index.js +19 -10
  474. package/build-module/components/link-control/index.js.map +1 -1
  475. package/build-module/components/link-control/settings-drawer.js +4 -1
  476. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  477. package/build-module/components/list-view/block-select-button.js +4 -1
  478. package/build-module/components/list-view/block-select-button.js.map +1 -1
  479. package/build-module/components/media-placeholder/index.js +36 -10
  480. package/build-module/components/media-placeholder/index.js.map +1 -1
  481. package/build-module/components/media-replace-flow/index.js +8 -1
  482. package/build-module/components/media-replace-flow/index.js.map +1 -1
  483. package/build-module/components/media-upload/index.native.js +4 -1
  484. package/build-module/components/media-upload/index.native.js.map +1 -1
  485. package/build-module/components/multi-selection-inspector/index.js +12 -12
  486. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  487. package/build-module/components/provider/use-block-sync.js +19 -19
  488. package/build-module/components/provider/use-block-sync.js.map +1 -1
  489. package/build-module/components/rich-text/event-listeners/paste-handler.js +12 -1
  490. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  491. package/build-module/components/rich-text/index.js +39 -31
  492. package/build-module/components/rich-text/index.js.map +1 -1
  493. package/build-module/components/rich-text/use-mark-persistent.js +5 -5
  494. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  495. package/build-module/components/skip-to-selected-block/index.js +4 -1
  496. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  497. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
  498. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  499. package/build-module/components/text-alignment-control/index.js +13 -8
  500. package/build-module/components/text-alignment-control/index.js.map +1 -1
  501. package/build-module/components/text-decoration-control/index.js +13 -8
  502. package/build-module/components/text-decoration-control/index.js.map +1 -1
  503. package/build-module/components/text-transform-control/index.js +13 -8
  504. package/build-module/components/text-transform-control/index.js.map +1 -1
  505. package/build-module/components/tool-selector/index.js +4 -1
  506. package/build-module/components/tool-selector/index.js.map +1 -1
  507. package/build-module/components/url-input/button.js +12 -3
  508. package/build-module/components/url-input/button.js.map +1 -1
  509. package/build-module/components/url-input/index.js +4 -1
  510. package/build-module/components/url-input/index.js.map +1 -1
  511. package/build-module/components/url-popover/image-url-input-ui.js +2 -0
  512. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  513. package/build-module/components/use-block-drop-zone/index.js +12 -2
  514. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  515. package/build-module/components/writing-flow/index.js +2 -1
  516. package/build-module/components/writing-flow/index.js.map +1 -1
  517. package/build-module/components/writing-flow/use-arrow-nav.js +4 -1
  518. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  519. package/build-module/components/writing-flow/use-event-redirect.js +60 -0
  520. package/build-module/components/writing-flow/use-event-redirect.js.map +1 -0
  521. package/build-module/components/writing-flow/use-input.js +31 -1
  522. package/build-module/components/writing-flow/use-input.js.map +1 -1
  523. package/build-module/components/writing-flow/use-select-all.js +14 -1
  524. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  525. package/build-module/components/writing-flow/use-selection-observer.js +16 -2
  526. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  527. package/build-module/components/writing-flow/use-tab-nav.js +4 -4
  528. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  529. package/build-module/components/writing-flow/utils.js +26 -0
  530. package/build-module/components/writing-flow/utils.js.map +1 -1
  531. package/build-module/components/writing-mode-control/index.js +13 -8
  532. package/build-module/components/writing-mode-control/index.js.map +1 -1
  533. package/build-module/hooks/background.js +19 -23
  534. package/build-module/hooks/background.js.map +1 -1
  535. package/build-module/hooks/block-bindings.js +66 -105
  536. package/build-module/hooks/block-bindings.js.map +1 -1
  537. package/build-module/hooks/content-lock-ui.js +10 -30
  538. package/build-module/hooks/content-lock-ui.js.map +1 -1
  539. package/build-module/hooks/duotone.js +0 -4
  540. package/build-module/hooks/duotone.js.map +1 -1
  541. package/build-module/hooks/layout.js +4 -1
  542. package/build-module/hooks/layout.js.map +1 -1
  543. package/build-module/hooks/spacing-visualizer.js +3 -3
  544. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  545. package/build-module/hooks/style.js +1 -5
  546. package/build-module/hooks/style.js.map +1 -1
  547. package/build-module/hooks/use-bindings-attributes.js +19 -20
  548. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  549. package/build-module/hooks/use-zoom-out.js +7 -7
  550. package/build-module/hooks/use-zoom-out.js.map +1 -1
  551. package/build-module/layouts/constrained.js +44 -43
  552. package/build-module/layouts/constrained.js.map +1 -1
  553. package/build-module/layouts/flex.js +6 -1
  554. package/build-module/layouts/flex.js.map +1 -1
  555. package/build-module/layouts/grid.js +3 -0
  556. package/build-module/layouts/grid.js.map +1 -1
  557. package/build-module/layouts/utils.js +1 -7
  558. package/build-module/layouts/utils.js.map +1 -1
  559. package/build-module/private-apis.js +5 -2
  560. package/build-module/private-apis.js.map +1 -1
  561. package/build-module/store/actions.js +2 -7
  562. package/build-module/store/actions.js.map +1 -1
  563. package/build-module/store/private-actions.js +1 -0
  564. package/build-module/store/private-actions.js.map +1 -1
  565. package/build-module/store/private-keys.js +1 -0
  566. package/build-module/store/private-keys.js.map +1 -1
  567. package/build-module/store/private-selectors.js +36 -12
  568. package/build-module/store/private-selectors.js.map +1 -1
  569. package/build-module/store/reducer.js +2 -0
  570. package/build-module/store/reducer.js.map +1 -1
  571. package/build-module/store/selectors.js +22 -46
  572. package/build-module/store/selectors.js.map +1 -1
  573. package/build-module/store/utils.js +46 -0
  574. package/build-module/store/utils.js.map +1 -1
  575. package/build-module/utils/block-bindings.js +110 -0
  576. package/build-module/utils/block-bindings.js.map +1 -0
  577. package/build-module/utils/dom.js +99 -0
  578. package/build-module/utils/dom.js.map +1 -1
  579. package/build-module/utils/get-font-styles-and-weights.js +4 -4
  580. package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
  581. package/build-module/utils/transform-styles/index.js +120 -16
  582. package/build-module/utils/transform-styles/index.js.map +1 -1
  583. package/build-style/content-rtl.css +9 -25
  584. package/build-style/content.css +9 -25
  585. package/build-style/default-editor-styles-rtl.css +2 -2
  586. package/build-style/default-editor-styles.css +2 -2
  587. package/build-style/style-rtl.css +53 -76
  588. package/build-style/style.css +53 -76
  589. package/build-types/utils/dom.d.ts +25 -0
  590. package/build-types/utils/dom.d.ts.map +1 -1
  591. package/package.json +34 -32
  592. package/src/autocompleters/block.js +2 -1
  593. package/src/components/block-alignment-matrix-control/index.js +1 -1
  594. package/src/components/block-breadcrumb/index.js +4 -0
  595. package/src/components/block-breadcrumb/style.scss +1 -1
  596. package/src/components/block-canvas/index.js +9 -1
  597. package/src/components/block-compare/block-view.js +7 -1
  598. package/src/components/block-draggable/content.scss +1 -1
  599. package/src/components/block-draggable/index.js +4 -4
  600. package/src/components/block-draggable/style.scss +1 -1
  601. package/src/components/block-draggable/use-scroll-when-dragging.js +25 -25
  602. package/src/components/block-edit/multiple-usage-warning.js +4 -0
  603. package/src/components/block-inspector/index.js +22 -6
  604. package/src/components/block-list/block-invalid-warning.js +4 -2
  605. package/src/components/block-list/block.js +6 -2
  606. package/src/components/block-list/content.scss +7 -16
  607. package/src/components/block-list/use-block-props/index.js +5 -2
  608. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  609. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +44 -0
  610. package/src/components/block-list/use-in-between-inserter.js +17 -5
  611. package/src/components/block-lock/style.scss +1 -1
  612. package/src/components/block-lock/toolbar.js +3 -3
  613. package/src/components/block-mover/button.js +2 -0
  614. package/src/components/block-mover/index.js +2 -0
  615. package/src/components/block-mover/style.scss +1 -1
  616. package/src/components/block-navigation/dropdown.js +2 -0
  617. package/src/components/block-pattern-setup/index.js +3 -7
  618. package/src/components/block-pattern-setup/setup-toolbar.js +17 -4
  619. package/src/components/block-pattern-setup/style.scss +2 -2
  620. package/src/components/block-patterns-list/index.js +15 -13
  621. package/src/components/block-patterns-list/style.scss +2 -2
  622. package/src/components/block-patterns-paging/index.js +6 -0
  623. package/src/components/block-popover/index.js +7 -28
  624. package/src/components/block-popover/style.scss +1 -1
  625. package/src/components/block-quick-navigation/index.js +2 -0
  626. package/src/components/block-settings-menu/block-mode-toggle.js +28 -31
  627. package/src/components/block-settings-menu/test/block-mode-toggle.js +26 -23
  628. package/src/components/block-settings-menu-controls/index.js +7 -1
  629. package/src/components/block-switcher/index.js +26 -20
  630. package/src/components/block-switcher/pattern-transformations-menu.js +3 -7
  631. package/src/components/block-switcher/style.scss +5 -6
  632. package/src/components/block-toolbar/index.js +17 -8
  633. package/src/components/block-toolbar/shuffle.js +9 -7
  634. package/src/components/block-tools/block-selection-button.js +4 -0
  635. package/src/components/block-tools/block-toolbar-popover.js +10 -6
  636. package/src/components/block-tools/insertion-point.js +11 -0
  637. package/src/components/block-tools/style.scss +4 -5
  638. package/src/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  639. package/src/components/block-tools/use-show-block-tools.js +4 -1
  640. package/src/components/block-tools/zoom-out-mode-inserters.js +5 -2
  641. package/src/components/block-tools/zoom-out-popover.js +3 -7
  642. package/src/components/block-tools/zoom-out-toolbar.js +20 -6
  643. package/src/components/block-variation-picker/README.md +2 -2
  644. package/src/components/block-variation-picker/index.js +6 -1
  645. package/src/components/block-variation-transforms/index.js +2 -0
  646. package/src/components/block-variation-transforms/style.scss +2 -2
  647. package/src/components/border-radius-control/index.js +1 -0
  648. package/src/components/border-radius-control/style.scss +0 -10
  649. package/src/components/button-block-appender/content.scss +0 -1
  650. package/src/components/button-block-appender/index.js +14 -3
  651. package/src/components/color-palette/test/control.js +15 -2
  652. package/src/components/colors-gradients/dropdown.js +5 -1
  653. package/src/components/colors-gradients/style.scss +4 -4
  654. package/src/components/content-lock/index.js +1 -0
  655. package/src/components/content-lock/modify-content-lock-menu-item.js +58 -0
  656. package/src/components/convert-to-group-buttons/index.js +1 -1
  657. package/src/components/date-format-picker/index.js +2 -0
  658. package/src/components/default-block-appender/content.scss +0 -1
  659. package/src/components/editor-styles/index.js +4 -3
  660. package/src/components/font-appearance-control/index.js +3 -0
  661. package/src/components/font-family/README.md +11 -2
  662. package/src/components/font-family/index.js +3 -0
  663. package/src/components/global-styles/background-panel.js +135 -64
  664. package/src/components/global-styles/color-panel.js +8 -4
  665. package/src/components/global-styles/color-panel.native.js +2 -2
  666. package/src/components/global-styles/dimensions-panel.js +40 -40
  667. package/src/components/global-styles/filters-panel.js +5 -1
  668. package/src/components/global-styles/get-global-styles-changes.js +4 -1
  669. package/src/components/global-styles/hooks.js +0 -5
  670. package/src/components/global-styles/index.js +0 -1
  671. package/src/components/global-styles/shadow-panel-components.js +12 -8
  672. package/src/components/global-styles/style.scss +16 -6
  673. package/src/components/global-styles/test/typography-utils.js +96 -5
  674. package/src/components/global-styles/test/use-global-styles-output.js +20 -4
  675. package/src/components/global-styles/test/utils.js +10 -0
  676. package/src/components/global-styles/typography-utils.js +22 -6
  677. package/src/components/global-styles/use-global-styles-output.js +5 -6
  678. package/src/components/global-styles/utils.js +11 -35
  679. package/src/components/grid/grid-item-movers.js +3 -3
  680. package/src/components/grid/grid-visualizer.js +22 -7
  681. package/src/components/grid/style.scss +1 -1
  682. package/src/components/height-control/index.js +1 -0
  683. package/src/components/iframe/index.js +8 -6
  684. package/src/components/image-editor/zoom-dropdown.js +17 -9
  685. package/src/components/inner-blocks/button-block-appender.js +5 -7
  686. package/src/components/inner-blocks/default-block-appender.js +4 -23
  687. package/src/components/inner-blocks/index.js +11 -10
  688. package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  689. package/src/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +2 -0
  690. package/src/components/inserter/block-patterns-tab/index.js +2 -0
  691. package/src/components/inserter/media-tab/hooks.js +3 -3
  692. package/src/components/inserter/media-tab/media-list.js +1 -4
  693. package/src/components/inserter/media-tab/media-preview.js +12 -2
  694. package/src/components/inserter/media-tab/media-tab.js +2 -0
  695. package/src/components/inserter/menu.js +13 -22
  696. package/src/components/inserter/quick-inserter.js +6 -1
  697. package/src/components/inserter/style.scss +7 -9
  698. package/src/components/inserter-list-item/index.js +4 -4
  699. package/src/components/inserter-list-item/style.scss +2 -3
  700. package/src/components/inserter-listbox/index.js +2 -8
  701. package/src/components/inserter-listbox/item.js +9 -1
  702. package/src/components/inspector-controls/groups.js +2 -0
  703. package/src/components/inspector-controls-tabs/index.js +2 -0
  704. package/src/components/inspector-controls-tabs/settings-tab.js +1 -0
  705. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +5 -2
  706. package/src/components/inspector-popover-header/index.js +4 -0
  707. package/src/components/letter-spacing-control/README.md +8 -1
  708. package/src/components/letter-spacing-control/index.js +7 -4
  709. package/src/components/line-height-control/README.md +7 -0
  710. package/src/components/line-height-control/index.js +3 -0
  711. package/src/components/link-control/index.js +17 -8
  712. package/src/components/link-control/settings-drawer.js +2 -0
  713. package/src/components/link-control/style.scss +2 -4
  714. package/src/components/list-view/block-select-button.js +2 -0
  715. package/src/components/list-view/style.scss +14 -16
  716. package/src/components/media-placeholder/index.js +26 -7
  717. package/src/components/media-replace-flow/index.js +12 -1
  718. package/src/components/media-upload/README.md +2 -0
  719. package/src/components/media-upload/index.native.js +2 -0
  720. package/src/components/multi-selection-inspector/index.js +8 -9
  721. package/src/components/provider/use-block-sync.js +20 -20
  722. package/src/components/responsive-block-control/README.md +3 -26
  723. package/src/components/responsive-block-control/test/index.js +1 -0
  724. package/src/components/rich-text/content.scss +1 -1
  725. package/src/components/rich-text/event-listeners/paste-handler.js +6 -1
  726. package/src/components/rich-text/index.js +54 -41
  727. package/src/components/rich-text/style.scss +1 -1
  728. package/src/components/rich-text/use-mark-persistent.js +5 -5
  729. package/src/components/skip-to-selected-block/index.js +2 -0
  730. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +8 -4
  731. package/src/components/spacing-sizes-control/style.scss +17 -16
  732. package/src/components/text-alignment-control/index.js +20 -8
  733. package/src/components/text-decoration-control/index.js +20 -8
  734. package/src/components/text-decoration-control/stories/index.story.js +0 -4
  735. package/src/components/text-transform-control/index.js +20 -8
  736. package/src/components/text-transform-control/stories/index.story.js +0 -4
  737. package/src/components/tool-selector/index.js +2 -0
  738. package/src/components/url-input/button.js +6 -0
  739. package/src/components/url-input/index.js +2 -0
  740. package/src/components/url-input/style.scss +2 -2
  741. package/src/components/url-popover/image-url-input-ui.js +2 -0
  742. package/src/components/url-popover/stories/index.story.js +7 -1
  743. package/src/components/use-block-drop-zone/index.js +21 -3
  744. package/src/components/warning/content.scss +3 -10
  745. package/src/components/writing-flow/index.js +2 -0
  746. package/src/components/writing-flow/use-arrow-nav.js +9 -2
  747. package/src/components/writing-flow/use-event-redirect.js +72 -0
  748. package/src/components/writing-flow/use-input.js +36 -1
  749. package/src/components/writing-flow/use-select-all.js +18 -1
  750. package/src/components/writing-flow/use-selection-observer.js +23 -3
  751. package/src/components/writing-flow/use-tab-nav.js +4 -4
  752. package/src/components/writing-flow/utils.js +30 -0
  753. package/src/components/writing-mode-control/index.js +20 -8
  754. package/src/hooks/background.js +21 -27
  755. package/src/hooks/block-bindings.js +64 -122
  756. package/src/hooks/block-bindings.scss +2 -10
  757. package/src/hooks/content-lock-ui.js +11 -36
  758. package/src/hooks/duotone.js +0 -4
  759. package/src/hooks/layout.js +2 -0
  760. package/src/hooks/layout.scss +3 -11
  761. package/src/hooks/spacing-visualizer.js +3 -3
  762. package/src/hooks/style.js +1 -4
  763. package/src/hooks/test/background.js +60 -0
  764. package/src/hooks/use-bindings-attributes.js +23 -24
  765. package/src/hooks/use-zoom-out.js +7 -7
  766. package/src/layouts/constrained.js +51 -47
  767. package/src/layouts/flex.js +4 -0
  768. package/src/layouts/grid.js +3 -0
  769. package/src/layouts/test/grid.js +2 -2
  770. package/src/layouts/test/utils.js +6 -8
  771. package/src/layouts/utils.js +1 -9
  772. package/src/private-apis.js +4 -0
  773. package/src/store/actions.js +4 -6
  774. package/src/store/private-actions.js +1 -0
  775. package/src/store/private-keys.js +1 -0
  776. package/src/store/private-selectors.js +44 -7
  777. package/src/store/reducer.js +2 -0
  778. package/src/store/selectors.js +32 -51
  779. package/src/store/test/private-selectors.js +89 -0
  780. package/src/store/utils.js +50 -0
  781. package/src/style.scss +0 -1
  782. package/src/utils/block-bindings.js +97 -0
  783. package/src/utils/dom.js +117 -0
  784. package/src/utils/get-font-styles-and-weights.js +12 -4
  785. package/src/utils/test/get-font-styles-and-weights.js +148 -0
  786. package/src/utils/test/transform-styles.js +284 -26
  787. package/src/utils/transform-styles/index.js +132 -21
  788. package/tsconfig.json +1 -0
  789. package/tsconfig.tsbuildinfo +1 -1
  790. package/build/components/global-styles/theme-file-uri-utils.js +0 -21
  791. package/build/components/global-styles/theme-file-uri-utils.js.map +0 -1
  792. package/build/components/inner-blocks/with-client-id.js +0 -28
  793. package/build/components/inner-blocks/with-client-id.js.map +0 -1
  794. package/build/components/segmented-text-control/index.js +0 -63
  795. package/build/components/segmented-text-control/index.js.map +0 -1
  796. package/build-module/components/global-styles/theme-file-uri-utils.js +0 -15
  797. package/build-module/components/global-styles/theme-file-uri-utils.js.map +0 -1
  798. package/build-module/components/inner-blocks/with-client-id.js +0 -21
  799. package/build-module/components/inner-blocks/with-client-id.js.map +0 -1
  800. package/build-module/components/segmented-text-control/index.js +0 -58
  801. package/build-module/components/segmented-text-control/index.js.map +0 -1
  802. package/src/components/global-styles/test/theme-file-uri-utils.js +0 -41
  803. package/src/components/global-styles/theme-file-uri-utils.js +0 -18
  804. package/src/components/inner-blocks/with-client-id.js +0 -19
  805. package/src/components/segmented-text-control/index.js +0 -63
  806. package/src/components/segmented-text-control/style.scss +0 -15
  807. package/src/utils/test/__snapshots__/transform-styles.js.snap +0 -109
@@ -32,6 +32,7 @@ function getShowTabs( blockName, tabSettings = {} ) {
32
32
  export default function useInspectorControlsTabs( blockName ) {
33
33
  const tabs = [];
34
34
  const {
35
+ bindings: bindingsGroup,
35
36
  border: borderGroup,
36
37
  color: colorGroup,
37
38
  default: defaultGroup,
@@ -64,8 +65,10 @@ export default function useInspectorControlsTabs( blockName ) {
64
65
  // (i.e. both list view and styles), check only the default and position
65
66
  // InspectorControls slots. If we have multiple tabs, we'll need to check
66
67
  // the advanced controls slot as well to ensure they are rendered.
67
- const advancedFills =
68
- useSlotFills( InspectorAdvancedControls.slotName ) || [];
68
+ const advancedFills = [
69
+ ...( useSlotFills( InspectorAdvancedControls.slotName ) || [] ),
70
+ ...( useSlotFills( bindingsGroup.Slot.__unstableName ) || [] ),
71
+ ];
69
72
 
70
73
  const settingsFills = [
71
74
  ...( useSlotFills( defaultGroup.Slot.__unstableName ) || [] ),
@@ -31,6 +31,8 @@ export default function InspectorPopoverHeader( {
31
31
  <Spacer />
32
32
  { actions.map( ( { label, icon, onClick } ) => (
33
33
  <Button
34
+ // TODO: Switch to `true` (40px size) if possible
35
+ __next40pxDefaultSize={ false }
34
36
  key={ label }
35
37
  className="block-editor-inspector-popover-header__action"
36
38
  label={ label }
@@ -43,6 +45,8 @@ export default function InspectorPopoverHeader( {
43
45
  ) ) }
44
46
  { onClose && (
45
47
  <Button
48
+ // TODO: Switch to `true` (40px size) if possible
49
+ __next40pxDefaultSize={ false }
46
50
  className="block-editor-inspector-popover-header__action"
47
51
  label={ __( 'Close' ) }
48
52
  icon={ closeSmall }
@@ -38,13 +38,20 @@ The current value of the letter spacing setting.
38
38
 
39
39
  A callback function invoked when the value is changed.
40
40
 
41
- ### `_unstableInputWidth`
41
+ ### `__unstableInputWidth`
42
42
 
43
43
  - **Type:** `string|number|undefined`
44
44
  - **Default:** `undefined`
45
45
 
46
46
  Input width to pass through to inner UnitControl. Should be a valid CSS value.
47
47
 
48
+ #### `__next40pxDefaultSize`
49
+
50
+ - **Type:** `boolean`
51
+ - **Default:** `false`
52
+
53
+ Start opting into the larger default height that will become the default size in a future version.
54
+
48
55
  ## Related components
49
56
 
50
57
  Block Editor components are components that can be used to compose the UI of your block editor. Thus, they can only be used under a [`BlockEditorProvider`](https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/provider/README.md) in the components tree.
@@ -15,14 +15,16 @@ import { useSettings } from '../../components/use-settings';
15
15
  /**
16
16
  * Control for letter-spacing.
17
17
  *
18
- * @param {Object} props Component props.
19
- * @param {string} props.value Currently selected letter-spacing.
20
- * @param {Function} props.onChange Handles change in letter-spacing selection.
21
- * @param {string|number|undefined} props.__unstableInputWidth Input width to pass through to inner UnitControl. Should be a valid CSS value.
18
+ * @param {Object} props Component props.
19
+ * @param {boolean} props.__next40pxDefaultSize Start opting into the larger default height that will become the default size in a future version.
20
+ * @param {string} props.value Currently selected letter-spacing.
21
+ * @param {Function} props.onChange Handles change in letter-spacing selection.
22
+ * @param {string|number|undefined} props.__unstableInputWidth Input width to pass through to inner UnitControl. Should be a valid CSS value.
22
23
  *
23
24
  * @return {Element} Letter-spacing control.
24
25
  */
25
26
  export default function LetterSpacingControl( {
27
+ __next40pxDefaultSize = false,
26
28
  value,
27
29
  onChange,
28
30
  __unstableInputWidth = '60px',
@@ -35,6 +37,7 @@ export default function LetterSpacingControl( {
35
37
  } );
36
38
  return (
37
39
  <UnitControl
40
+ __next40pxDefaultSize={ __next40pxDefaultSize }
38
41
  { ...otherProps }
39
42
  label={ __( 'Letter spacing' ) }
40
43
  value={ value }
@@ -36,6 +36,13 @@ The value of the line height.
36
36
 
37
37
  A callback function that handles the application of the line height value.
38
38
 
39
+ #### `__next40pxDefaultSize`
40
+
41
+ - **Type:** `boolean`
42
+ - **Default:** `false`
43
+
44
+ Start opting into the larger default height that will become the default size in a future version.
45
+
39
46
  ## Related components
40
47
 
41
48
  Block Editor components are components that can be used to compose the UI of your block editor. Thus, they can only be used under a [`BlockEditorProvider`](https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/provider/README.md) in the components tree.
@@ -16,6 +16,8 @@ import {
16
16
  } from './utils';
17
17
 
18
18
  const LineHeightControl = ( {
19
+ /** Start opting into the larger default height that will become the default size in a future version. */
20
+ __next40pxDefaultSize = false,
19
21
  value: lineHeight,
20
22
  onChange,
21
23
  __unstableInputWidth = '60px',
@@ -91,6 +93,7 @@ const LineHeightControl = ( {
91
93
  <div className="block-editor-line-height-control">
92
94
  <NumberControl
93
95
  { ...otherProps }
96
+ __next40pxDefaultSize={ __next40pxDefaultSize }
94
97
  __unstableInputWidth={ __unstableInputWidth }
95
98
  __unstableStateReducer={ stateReducer }
96
99
  onChange={ handleOnChange }
@@ -180,10 +180,10 @@ function LinkControl( {
180
180
  // Therefore a local state is used as a fallback.
181
181
  const isSettingsOpen = advancedSettingsPreference || settingsOpen;
182
182
 
183
- const isMounting = useRef( true );
183
+ const isMountingRef = useRef( true );
184
184
  const wrapperNode = useRef();
185
185
  const textInputRef = useRef();
186
- const isEndingEditWithFocus = useRef( false );
186
+ const isEndingEditWithFocusRef = useRef( false );
187
187
 
188
188
  const settingsKeys = settings.map( ( { id } ) => id );
189
189
 
@@ -219,7 +219,7 @@ function LinkControl( {
219
219
  // We don't auto focus into the Link UI on mount
220
220
  // because otherwise using the keyboard to select text
221
221
  // *within* the link format is not possible.
222
- if ( isMounting.current ) {
222
+ if ( isMountingRef.current ) {
223
223
  return;
224
224
  }
225
225
 
@@ -234,16 +234,16 @@ function LinkControl( {
234
234
 
235
235
  nextFocusTarget.focus();
236
236
 
237
- isEndingEditWithFocus.current = false;
237
+ isEndingEditWithFocusRef.current = false;
238
238
  }, [ isEditingLink, isCreatingPage ] );
239
239
 
240
240
  // The component mounting reference is maintained separately
241
241
  // to correctly reset values in `StrictMode`.
242
242
  useEffect( () => {
243
- isMounting.current = false;
243
+ isMountingRef.current = false;
244
244
 
245
245
  return () => {
246
- isMounting.current = true;
246
+ isMountingRef.current = true;
247
247
  };
248
248
  }, [] );
249
249
 
@@ -254,7 +254,7 @@ function LinkControl( {
254
254
  * the next render, if focus was within the wrapper when editing finished.
255
255
  */
256
256
  const stopEditing = () => {
257
- isEndingEditWithFocus.current = !! wrapperNode.current?.contains(
257
+ isEndingEditWithFocusRef.current = !! wrapperNode.current?.contains(
258
258
  wrapperNode.current.ownerDocument.activeElement
259
259
  );
260
260
 
@@ -408,6 +408,8 @@ function LinkControl( {
408
408
  { ! showActions && (
409
409
  <div className="block-editor-link-control__search-enter">
410
410
  <Button
411
+ // TODO: Switch to `true` (40px size) if possible
412
+ __next40pxDefaultSize={ false }
411
413
  onClick={ isDisabled ? noop : handleSubmit }
412
414
  label={ __( 'Submit' ) }
413
415
  icon={ keyboardReturn }
@@ -467,10 +469,17 @@ function LinkControl( {
467
469
  justify="right"
468
470
  className="block-editor-link-control__search-actions"
469
471
  >
470
- <Button variant="tertiary" onClick={ handleCancel }>
472
+ <Button
473
+ // TODO: Switch to `true` (40px size) if possible
474
+ __next40pxDefaultSize={ false }
475
+ variant="tertiary"
476
+ onClick={ handleCancel }
477
+ >
471
478
  { __( 'Cancel' ) }
472
479
  </Button>
473
480
  <Button
481
+ // TODO: Switch to `true` (40px size) if possible
482
+ __next40pxDefaultSize={ false }
474
483
  variant="primary"
475
484
  onClick={ isDisabled ? noop : handleSubmit }
476
485
  className="block-editor-link-control__search-submit"
@@ -25,6 +25,8 @@ function LinkSettingsDrawer( { children, settingsOpen, setSettingsOpen } ) {
25
25
  return (
26
26
  <>
27
27
  <Button
28
+ // TODO: Switch to `true` (40px size) if possible
29
+ __next40pxDefaultSize={ false }
28
30
  className="block-editor-link-control__drawer-toggle"
29
31
  aria-expanded={ settingsOpen }
30
32
  onClick={ () => setSettingsOpen( ! settingsOpen ) }
@@ -77,8 +77,7 @@ $block-editor-link-control-number-of-actions: 1;
77
77
  &.block-editor-url-input input[type="text"].block-editor-url-input__input {
78
78
  @include input-control;
79
79
  display: block;
80
- border: 1px solid $gray-600;
81
- border-radius: $radius-block-ui;
80
+ border: $border-width solid $gray-600;
82
81
  height: $button-size-next-default-40px; // components do not properly support unstable-large yet.
83
82
  margin: 0;
84
83
  padding: $grid-unit-10 $button-size-next-default-40px $grid-unit-10 $grid-unit-20;
@@ -230,7 +229,7 @@ $block-editor-link-control-number-of-actions: 1;
230
229
  background-color: $gray-100;
231
230
  width: $grid-unit-40;
232
231
  height: $grid-unit-40;
233
- border-radius: $radius-block-ui;
232
+ border-radius: $radius-small;
234
233
  }
235
234
 
236
235
  .block-editor-link-control__search-item-icon {
@@ -252,7 +251,6 @@ $block-editor-link-control-number-of-actions: 1;
252
251
  }
253
252
 
254
253
  .block-editor-link-control__search-item-title {
255
- border-radius: $radius-block-ui;
256
254
  line-height: 1.1;
257
255
 
258
256
 
@@ -83,6 +83,8 @@ function ListViewBlockSelectButton(
83
83
 
84
84
  return (
85
85
  <Button
86
+ // TODO: Switch to `true` (40px size) if possible
87
+ __next40pxDefaultSize={ false }
86
88
  className={ clsx(
87
89
  'block-editor-list-view-block-select-button',
88
90
  className
@@ -101,16 +101,16 @@
101
101
 
102
102
  // Border radius for corners of the selected item.
103
103
  &.is-first-selected td:first-child {
104
- border-top-left-radius: $radius-block-ui;
104
+ border-top-left-radius: $radius-small;
105
105
  }
106
106
  &.is-first-selected td:last-child {
107
- border-top-right-radius: $radius-block-ui;
107
+ border-top-right-radius: $radius-small;
108
108
  }
109
109
  &.is-last-selected td:first-child {
110
- border-bottom-left-radius: $radius-block-ui;
110
+ border-bottom-left-radius: $radius-small;
111
111
  }
112
112
  &.is-last-selected td:last-child {
113
- border-bottom-right-radius: $radius-block-ui;
113
+ border-bottom-right-radius: $radius-small;
114
114
  }
115
115
  &.is-branch-selected:not(.is-selected):not(.is-synced-branch) {
116
116
  background: rgba(var(--wp-admin-theme-color--rgb), 0.04);
@@ -119,23 +119,23 @@
119
119
  background: rgba(var(--wp-block-synced-color--rgb), 0.04);
120
120
  }
121
121
  &.is-branch-selected.is-first-selected td:first-child {
122
- border-top-left-radius: $radius-block-ui;
122
+ border-top-left-radius: $radius-small;
123
123
  }
124
124
  &.is-branch-selected.is-first-selected td:last-child {
125
- border-top-right-radius: $radius-block-ui;
125
+ border-top-right-radius: $radius-small;
126
126
  }
127
127
  &[data-expanded="false"] {
128
128
  &.is-branch-selected.is-first-selected td:first-child {
129
- border-top-left-radius: $radius-block-ui;
129
+ border-top-left-radius: $radius-small;
130
130
  }
131
131
  &.is-branch-selected.is-first-selected td:last-child {
132
- border-top-right-radius: $radius-block-ui;
132
+ border-top-right-radius: $radius-small;
133
133
  }
134
134
  &.is-branch-selected.is-last-selected td:first-child {
135
- border-bottom-left-radius: $radius-block-ui;
135
+ border-bottom-left-radius: $radius-small;
136
136
  }
137
137
  &.is-branch-selected.is-last-selected td:last-child {
138
- border-bottom-right-radius: $radius-block-ui;
138
+ border-bottom-right-radius: $radius-small;
139
139
  }
140
140
  }
141
141
  &.is-branch-selected:not(.is-selected) td {
@@ -214,7 +214,6 @@
214
214
  height: $grid-unit-40;
215
215
  padding: ($grid-unit-15 * 0.5) $grid-unit-05 ($grid-unit-15 * 0.5) 0;
216
216
  text-align: left;
217
- border-radius: $radius-block-ui;
218
217
  position: relative;
219
218
  white-space: nowrap;
220
219
 
@@ -406,7 +405,7 @@
406
405
  right: 0;
407
406
  transform: translateY(-50%);
408
407
  background: rgba($black, 0.1);
409
- border-radius: $radius-block-ui;
408
+ border-radius: $radius-x-small;
410
409
  padding: 2px 6px;
411
410
  max-width: 100%;
412
411
  box-sizing: border-box;
@@ -429,10 +428,10 @@
429
428
  background-size: cover;
430
429
  width: 18px;
431
430
  height: 18px;
432
- border-radius: $radius-block-ui;
431
+ border-radius: $radius-x-small;
433
432
 
434
433
  &:not(:only-child) {
435
- box-shadow: 0 0 0 $radius-block-ui $white;
434
+ box-shadow: 0 0 0 $radius-small $white;
436
435
  }
437
436
 
438
437
  &:not(:first-child) {
@@ -442,7 +441,7 @@
442
441
 
443
442
  &.is-selected .block-editor-list-view-block-select-button__image {
444
443
  &:not(:only-child) {
445
- box-shadow: 0 0 0 $radius-block-ui var(--wp-admin-theme-color);
444
+ box-shadow: 0 0 0 $radius-small var(--wp-admin-theme-color);
446
445
  }
447
446
  }
448
447
  }
@@ -553,7 +552,6 @@ svg {
553
552
  background-color: #1e1e1e;
554
553
  color: #fff;
555
554
  margin: $grid-unit-10 0 0 24px;
556
- border-radius: 2px;
557
555
  height: 24px;
558
556
  min-width: 24px;
559
557
  padding: 0;
@@ -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 }
@@ -382,6 +386,8 @@ export function MediaPlaceholder( {
382
386
  return (
383
387
  onCancel && (
384
388
  <Button
389
+ // TODO: Switch to `true` (40px size) if possible
390
+ __next40pxDefaultSize={ false }
385
391
  className="block-editor-media-placeholder__cancel-button"
386
392
  title={ __( 'Cancel' ) }
387
393
  variant="link"
@@ -410,6 +416,8 @@ export function MediaPlaceholder( {
410
416
  onToggleFeaturedImage && (
411
417
  <div className="block-editor-media-placeholder__url-input-container">
412
418
  <Button
419
+ // TODO: Switch to `true` (40px size) if possible
420
+ __next40pxDefaultSize={ false }
413
421
  className="block-editor-media-placeholder__button"
414
422
  onClick={ onToggleFeaturedImage }
415
423
  variant="secondary"
@@ -425,6 +433,8 @@ export function MediaPlaceholder( {
425
433
  const defaultButton = ( { open } ) => {
426
434
  return (
427
435
  <Button
436
+ // TODO: Switch to `true` (40px size) if possible
437
+ __next40pxDefaultSize={ false }
428
438
  variant="secondary"
429
439
  onClick={ () => {
430
440
  open();
@@ -464,6 +474,8 @@ export function MediaPlaceholder( {
464
474
  const content = (
465
475
  <>
466
476
  <Button
477
+ // TODO: Switch to `true` (40px size) if possible
478
+ __next40pxDefaultSize={ false }
467
479
  variant="primary"
468
480
  className={ clsx(
469
481
  'block-editor-media-placeholder__button',
@@ -491,17 +503,24 @@ export function MediaPlaceholder( {
491
503
  <>
492
504
  { renderDropZone() }
493
505
  <FormFileUpload
494
- variant="primary"
495
- className={ clsx(
496
- 'block-editor-media-placeholder__button',
497
- 'block-editor-media-placeholder__upload-button'
506
+ render={ ( { openFileDialog } ) => (
507
+ <Button
508
+ // TODO: Switch to `true` (40px size) if possible
509
+ __next40pxDefaultSize={ false }
510
+ onClick={ openFileDialog }
511
+ variant="primary"
512
+ className={ clsx(
513
+ 'block-editor-media-placeholder__button',
514
+ 'block-editor-media-placeholder__upload-button'
515
+ ) }
516
+ >
517
+ { __( 'Upload' ) }
518
+ </Button>
498
519
  ) }
499
520
  onChange={ onUpload }
500
521
  accept={ accept }
501
522
  multiple={ !! multiple }
502
- >
503
- { __( 'Upload' ) }
504
- </FormFileUpload>
523
+ />
505
524
  { uploadMediaLibraryButton }
506
525
  { renderUrlSelectionUI() }
507
526
  { renderFeaturedImageToggle() }
@@ -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 }
@@ -105,6 +105,8 @@ Callback called when the media modal is closed after media is selected.
105
105
 
106
106
  This is called subsequent to `onClose` when media is selected. The selected media are passed as an argument.
107
107
 
108
+ The `image.sizes.full` resolution does always exist. Other defined sizes are only available when the image is larger and thus could be scaled down.
109
+
108
110
  - Type: `Function`
109
111
  - Required: Yes
110
112
  - Platform: Web | Mobile
@@ -327,6 +327,8 @@ function URLInput( props ) {
327
327
  >
328
328
  <PanelBody style={ styles[ 'media-upload__link-input' ] }>
329
329
  <TextControl
330
+ // TODO: Switch to `true` (40px size) if possible
331
+ __next40pxDefaultSize={ false }
330
332
  // eslint-disable-next-line jsx-a11y/no-autofocus
331
333
  autoFocus
332
334
  autoCapitalize="none"
@@ -2,7 +2,7 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { sprintf, _n } from '@wordpress/i18n';
5
- import { withSelect } from '@wordpress/data';
5
+ import { useSelect } from '@wordpress/data';
6
6
  import { serialize } from '@wordpress/blocks';
7
7
  import { count as wordCount } from '@wordpress/wordcount';
8
8
  import { copy } from '@wordpress/icons';
@@ -13,7 +13,13 @@ import { copy } from '@wordpress/icons';
13
13
  import BlockIcon from '../block-icon';
14
14
  import { store as blockEditorStore } from '../../store';
15
15
 
16
- function MultiSelectionInspector( { blocks } ) {
16
+ export default function MultiSelectionInspector() {
17
+ const { blocks } = useSelect( ( select ) => {
18
+ const { getMultiSelectedBlocks } = select( blockEditorStore );
19
+ return {
20
+ blocks: getMultiSelectedBlocks(),
21
+ };
22
+ }, [] );
17
23
  const words = wordCount( serialize( blocks ), 'words' );
18
24
 
19
25
  return (
@@ -38,10 +44,3 @@ function MultiSelectionInspector( { blocks } ) {
38
44
  </div>
39
45
  );
40
46
  }
41
-
42
- export default withSelect( ( select ) => {
43
- const { getMultiSelectedBlocks } = select( blockEditorStore );
44
- return {
45
- blocks: getMultiSelectedBlocks(),
46
- };
47
- } )( MultiSelectionInspector );
@@ -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 ] );