@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
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { ToolbarButton, MenuItem } from '@wordpress/components';
4
+ import { ToolbarButton } from '@wordpress/components';
5
5
  import { useDispatch, useSelect } from '@wordpress/data';
6
6
  import { __ } from '@wordpress/i18n';
7
7
  import { useCallback } from '@wordpress/element';
@@ -10,7 +10,7 @@ import { useCallback } from '@wordpress/element';
10
10
  * Internal dependencies
11
11
  */
12
12
  import { store as blockEditorStore } from '../store';
13
- import { BlockControls, BlockSettingsMenuControls } from '../components';
13
+ import { BlockControls } from '../components';
14
14
  import { unlock } from '../lock-unlock';
15
15
 
16
16
  // The implementation of content locking is mainly in this file, although the mechanism
@@ -19,7 +19,7 @@ import { unlock } from '../lock-unlock';
19
19
  // Besides the components on this file and the file referenced above the implementation
20
20
  // also includes artifacts on the store (actions, reducers, and selector).
21
21
 
22
- function ContentLockControlsPure( { clientId, isSelected } ) {
22
+ function ContentLockControlsPure( { clientId } ) {
23
23
  const { templateLock, isLockedByParent, isEditingAsBlocks } = useSelect(
24
24
  ( select ) => {
25
25
  const {
@@ -36,9 +36,7 @@ function ContentLockControlsPure( { clientId, isSelected } ) {
36
36
  [ clientId ]
37
37
  );
38
38
 
39
- const { stopEditingAsBlocks, modifyContentLockBlock } = unlock(
40
- useDispatch( blockEditorStore )
41
- );
39
+ const { stopEditingAsBlocks } = unlock( useDispatch( blockEditorStore ) );
42
40
  const isContentLocked =
43
41
  ! isLockedByParent && templateLock === 'contentOnly';
44
42
 
@@ -51,38 +49,15 @@ function ContentLockControlsPure( { clientId, isSelected } ) {
51
49
  }
52
50
 
53
51
  const showStopEditingAsBlocks = isEditingAsBlocks && ! isContentLocked;
54
- const showStartEditingAsBlocks =
55
- ! isEditingAsBlocks && isContentLocked && isSelected;
56
52
 
57
53
  return (
58
- <>
59
- { showStopEditingAsBlocks && (
60
- <>
61
- <BlockControls group="other">
62
- <ToolbarButton onClick={ stopEditingAsBlockCallback }>
63
- { __( 'Done' ) }
64
- </ToolbarButton>
65
- </BlockControls>
66
- </>
67
- ) }
68
- { showStartEditingAsBlocks && (
69
- <BlockSettingsMenuControls>
70
- { ( { selectedClientIds, onClose } ) =>
71
- selectedClientIds.length === 1 &&
72
- selectedClientIds[ 0 ] === clientId && (
73
- <MenuItem
74
- onClick={ () => {
75
- modifyContentLockBlock( clientId );
76
- onClose();
77
- } }
78
- >
79
- { __( 'Modify' ) }
80
- </MenuItem>
81
- )
82
- }
83
- </BlockSettingsMenuControls>
84
- ) }
85
- </>
54
+ showStopEditingAsBlocks && (
55
+ <BlockControls group="other">
56
+ <ToolbarButton onClick={ stopEditingAsBlockCallback }>
57
+ { __( 'Done' ) }
58
+ </ToolbarButton>
59
+ </BlockControls>
60
+ )
86
61
  );
87
62
  }
88
63
 
@@ -251,10 +251,6 @@ function useDuotoneStyles( {
251
251
  const selectors = duotoneSelector.split( ',' );
252
252
 
253
253
  const selectorsScoped = selectors.map( ( selectorPart ) => {
254
- // Extra .editor-styles-wrapper specificity is needed in the editor
255
- // since we're not using inline styles to apply the filter. We need to
256
- // override duotone applied by global styles and theme.json.
257
-
258
254
  // Assuming the selector part is a subclass selector (not a tag name)
259
255
  // so we can prepend the filter id class. If we want to support elements
260
256
  // such as `img` or namespaces, we'll need to add a case for that here.
@@ -233,7 +233,6 @@ function LayoutPanelPure( {
233
233
  <>
234
234
  <ToggleControl
235
235
  __nextHasNoMarginBottom
236
- className="block-editor-hooks__toggle-control"
237
236
  label={ __( 'Inner blocks use content width' ) }
238
237
  checked={
239
238
  layoutType?.name === 'constrained' ||
@@ -320,6 +319,8 @@ function LayoutTypeSwitcher( { type, onChange } ) {
320
319
  { getLayoutTypes().map( ( { name, label } ) => {
321
320
  return (
322
321
  <Button
322
+ // TODO: Switch to `true` (40px size) if possible
323
+ __next40pxDefaultSize={ false }
323
324
  key={ name }
324
325
  isPressed={ type === name }
325
326
  onClick={ () => onChange( name ) }
@@ -1,31 +1,13 @@
1
- .block-editor-hooks__layout-controls {
2
- display: flex;
3
- margin-bottom: $grid-unit-10;
4
-
5
- .block-editor-hooks__layout-controls-unit {
6
- display: flex;
7
- margin-right: $grid-unit-30;
8
-
9
- svg {
10
- margin: auto 0 $grid-unit-05 $grid-unit-10;
11
- }
1
+ .block-editor-hooks__layout-constrained {
2
+ .components-base-control {
3
+ margin-bottom: 0; // Cancel out margins added by block inspector
12
4
  }
13
5
  }
14
6
 
15
- .block-editor-block-inspector .block-editor-hooks__layout-controls-unit-input {
16
- margin-bottom: 0;
17
- }
18
-
19
- .block-editor-hooks__layout-controls-reset {
20
- display: flex;
21
- justify-content: flex-end;
22
- margin-bottom: $grid-unit-30;
23
- }
24
-
25
- .block-editor-hooks__layout-controls-helptext {
7
+ .block-editor-hooks__layout-constrained-helptext {
26
8
  color: $gray-700;
27
9
  font-size: $helptext-font-size;
28
- margin-bottom: $grid-unit-20;
10
+ margin-bottom: 0; // Cancel out margins added by common.css
29
11
  }
30
12
 
31
13
  .block-editor-hooks__flex-layout-justification-controls,
@@ -35,7 +17,3 @@
35
17
  margin-bottom: $grid-unit-10;
36
18
  }
37
19
  }
38
-
39
- .block-editor-hooks__toggle-control.block-editor-hooks__toggle-control {
40
- margin-bottom: $grid-unit-20;
41
- }
@@ -36,16 +36,16 @@ function SpacingVisualizer( { clientId, value, computeStyle, forceShow } ) {
36
36
  );
37
37
  }, [ blockElement, value ] );
38
38
 
39
- const previousValue = useRef( value );
39
+ const previousValueRef = useRef( value );
40
40
  const [ isActive, setIsActive ] = useState( false );
41
41
 
42
42
  useEffect( () => {
43
- if ( isShallowEqual( value, previousValue.current ) || forceShow ) {
43
+ if ( isShallowEqual( value, previousValueRef.current ) || forceShow ) {
44
44
  return;
45
45
  }
46
46
 
47
47
  setIsActive( true );
48
- previousValue.current = value;
48
+ previousValueRef.current = value;
49
49
 
50
50
  const timeout = setTimeout( () => {
51
51
  setIsActive( false );
@@ -381,10 +381,7 @@ function useBlockProps( { name, style } ) {
381
381
  useBlockProps
382
382
  ) }`;
383
383
 
384
- // The .editor-styles-wrapper selector is required on elements styles. As it is
385
- // added to all other editor styles, not providing it causes reset and global
386
- // styles to override element styles because of higher specificity.
387
- const baseElementSelector = `.editor-styles-wrapper .${ blockElementsContainerIdentifier }`;
384
+ const baseElementSelector = `.${ blockElementsContainerIdentifier }`;
388
385
  const blockElementStyles = style?.elements;
389
386
 
390
387
  const styles = useMemo( () => {
@@ -10,6 +10,7 @@ import { addFilter } from '@wordpress/hooks';
10
10
  /**
11
11
  * Internal dependencies
12
12
  */
13
+ import isURLLike from '../components/link-control/is-url-like';
13
14
  import { unlock } from '../lock-unlock';
14
15
  import BlockContext from '../components/block-context';
15
16
 
@@ -134,10 +135,7 @@ export const withBlockBindingSupport = createHigherOrderComponent(
134
135
  ) ) {
135
136
  const { source: sourceName, args: sourceArgs } = binding;
136
137
  const source = sources[ sourceName ];
137
- if (
138
- ! source?.getValues ||
139
- ! canBindAttribute( name, attributeName )
140
- ) {
138
+ if ( ! source || ! canBindAttribute( name, attributeName ) ) {
141
139
  continue;
142
140
  }
143
141
 
@@ -161,29 +159,30 @@ export const withBlockBindingSupport = createHigherOrderComponent(
161
159
  }
162
160
 
163
161
  // Get values in batch if the source supports it.
164
- const values = source.getValues( {
165
- registry,
166
- context,
167
- clientId,
168
- bindings,
169
- } );
162
+ let values = {};
163
+ if ( ! source.getValues ) {
164
+ Object.keys( bindings ).forEach( ( attr ) => {
165
+ // Default to the `key` or the source label when `getValues` doesn't exist
166
+ values[ attr ] =
167
+ bindings[ attr ].args?.key || source.label;
168
+ } );
169
+ } else {
170
+ values = source.getValues( {
171
+ registry,
172
+ context,
173
+ clientId,
174
+ bindings,
175
+ } );
176
+ }
170
177
  for ( const [ attributeName, value ] of Object.entries(
171
178
  values
172
179
  ) ) {
173
- // Use placeholder when value is undefined.
174
- if ( value === undefined ) {
175
- if ( attributeName === 'url' ) {
176
- attributes[ attributeName ] = null;
177
- } else {
178
- attributes[ attributeName ] =
179
- source.getPlaceholder?.( {
180
- registry,
181
- context,
182
- clientId,
183
- attributeName,
184
- args: bindings[ attributeName ].args,
185
- } );
186
- }
180
+ if (
181
+ attributeName === 'url' &&
182
+ ( ! value || ! isURLLike( value ) )
183
+ ) {
184
+ // Return null if value is not a valid URL.
185
+ attributes[ attributeName ] = null;
187
186
  } else {
188
187
  attributes[ attributeName ] = value;
189
188
  }
@@ -18,22 +18,22 @@ export function useZoomOut( zoomOut = true ) {
18
18
  const { __unstableSetEditorMode } = useDispatch( blockEditorStore );
19
19
  const { __unstableGetEditorMode } = useSelect( blockEditorStore );
20
20
 
21
- const originalEditingMode = useRef( null );
21
+ const originalEditingModeRef = useRef( null );
22
22
  const mode = __unstableGetEditorMode();
23
23
 
24
24
  useEffect( () => {
25
25
  // Only set this on mount so we know what to return to when we unmount.
26
- if ( ! originalEditingMode.current ) {
27
- originalEditingMode.current = mode;
26
+ if ( ! originalEditingModeRef.current ) {
27
+ originalEditingModeRef.current = mode;
28
28
  }
29
29
 
30
30
  return () => {
31
31
  // We need to use __unstableGetEditorMode() here and not `mode`, as mode may not update on unmount
32
32
  if (
33
33
  __unstableGetEditorMode() === 'zoom-out' &&
34
- __unstableGetEditorMode() !== originalEditingMode.current
34
+ __unstableGetEditorMode() !== originalEditingModeRef.current
35
35
  ) {
36
- __unstableSetEditorMode( originalEditingMode.current );
36
+ __unstableSetEditorMode( originalEditingModeRef.current );
37
37
  }
38
38
  };
39
39
  }, [] );
@@ -45,9 +45,9 @@ export function useZoomOut( zoomOut = true ) {
45
45
  } else if (
46
46
  ! zoomOut &&
47
47
  __unstableGetEditorMode() === 'zoom-out' &&
48
- originalEditingMode.current !== mode
48
+ originalEditingModeRef.current !== mode
49
49
  ) {
50
- __unstableSetEditorMode( originalEditingMode.current );
50
+ __unstableSetEditorMode( originalEditingModeRef.current );
51
51
  }
52
52
  }, [ __unstableGetEditorMode, __unstableSetEditorMode, zoomOut ] ); // Mode is deliberately excluded from the dependencies so that the effect does not run when mode changes.
53
53
  }
@@ -6,11 +6,13 @@ import {
6
6
  __experimentalUnitControl as UnitControl,
7
7
  __experimentalToggleGroupControl as ToggleGroupControl,
8
8
  __experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,
9
+ __experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,
10
+ __experimentalVStack as VStack,
9
11
  } from '@wordpress/components';
10
12
  import { __ } from '@wordpress/i18n';
11
13
  import {
12
14
  Icon,
13
- positionCenter,
15
+ alignNone,
14
16
  stretchWide,
15
17
  justifyLeft,
16
18
  justifyCenter,
@@ -69,54 +71,57 @@ export default {
69
71
  availableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],
70
72
  } );
71
73
  return (
72
- <>
74
+ <VStack
75
+ spacing={ 4 }
76
+ className="block-editor-hooks__layout-constrained"
77
+ >
73
78
  { allowCustomContentAndWideSize && (
74
79
  <>
75
- <div className="block-editor-hooks__layout-controls">
76
- <div className="block-editor-hooks__layout-controls-unit">
77
- <UnitControl
78
- className="block-editor-hooks__layout-controls-unit-input"
79
- label={ __( 'Content' ) }
80
- labelPosition="top"
81
- __unstableInputWidth="80px"
82
- value={ contentSize || wideSize || '' }
83
- onChange={ ( nextWidth ) => {
84
- nextWidth =
85
- 0 > parseFloat( nextWidth )
86
- ? '0'
87
- : nextWidth;
88
- onChange( {
89
- ...layout,
90
- contentSize: nextWidth,
91
- } );
92
- } }
93
- units={ units }
94
- />
95
- <Icon icon={ positionCenter } />
96
- </div>
97
- <div className="block-editor-hooks__layout-controls-unit">
98
- <UnitControl
99
- className="block-editor-hooks__layout-controls-unit-input"
100
- label={ __( 'Wide' ) }
101
- labelPosition="top"
102
- __unstableInputWidth="80px"
103
- value={ wideSize || contentSize || '' }
104
- onChange={ ( nextWidth ) => {
105
- nextWidth =
106
- 0 > parseFloat( nextWidth )
107
- ? '0'
108
- : nextWidth;
109
- onChange( {
110
- ...layout,
111
- wideSize: nextWidth,
112
- } );
113
- } }
114
- units={ units }
115
- />
116
- <Icon icon={ stretchWide } />
117
- </div>
118
- </div>
119
- <p className="block-editor-hooks__layout-controls-helptext">
80
+ <UnitControl
81
+ __next40pxDefaultSize
82
+ label={ __( 'Content width' ) }
83
+ labelPosition="top"
84
+ value={ contentSize || wideSize || '' }
85
+ onChange={ ( nextWidth ) => {
86
+ nextWidth =
87
+ 0 > parseFloat( nextWidth )
88
+ ? '0'
89
+ : nextWidth;
90
+ onChange( {
91
+ ...layout,
92
+ contentSize: nextWidth,
93
+ } );
94
+ } }
95
+ units={ units }
96
+ prefix={
97
+ <InputControlPrefixWrapper variant="icon">
98
+ <Icon icon={ alignNone } />
99
+ </InputControlPrefixWrapper>
100
+ }
101
+ />
102
+ <UnitControl
103
+ __next40pxDefaultSize
104
+ label={ __( 'Wide width' ) }
105
+ labelPosition="top"
106
+ value={ wideSize || contentSize || '' }
107
+ onChange={ ( nextWidth ) => {
108
+ nextWidth =
109
+ 0 > parseFloat( nextWidth )
110
+ ? '0'
111
+ : nextWidth;
112
+ onChange( {
113
+ ...layout,
114
+ wideSize: nextWidth,
115
+ } );
116
+ } }
117
+ units={ units }
118
+ prefix={
119
+ <InputControlPrefixWrapper variant="icon">
120
+ <Icon icon={ stretchWide } />
121
+ </InputControlPrefixWrapper>
122
+ }
123
+ />
124
+ <p className="block-editor-hooks__layout-constrained-helptext">
120
125
  { __(
121
126
  'Customize the width for all elements that are assigned to the center or wide columns.'
122
127
  ) }
@@ -145,7 +150,7 @@ export default {
145
150
  ) }
146
151
  </ToggleGroupControl>
147
152
  ) }
148
- </>
153
+ </VStack>
149
154
  );
150
155
  },
151
156
  toolBarControls: function DefaultLayoutToolbarControls( {
@@ -246,6 +246,8 @@ function FlexLayoutVerticalAlignmentControl( {
246
246
  { verticalAlignmentOptions.map( ( value, icon, label ) => {
247
247
  return (
248
248
  <Button
249
+ // TODO: Switch to `true` (40px size) if possible
250
+ __next40pxDefaultSize={ false }
249
251
  key={ value }
250
252
  label={ label }
251
253
  icon={ icon }
@@ -13,6 +13,7 @@ import {
13
13
  __experimentalToggleGroupControlOption as ToggleGroupControlOption,
14
14
  __experimentalUnitControl as UnitControl,
15
15
  __experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,
16
+ __experimentalVStack as VStack,
16
17
  } from '@wordpress/components';
17
18
  import { useState } from '@wordpress/element';
18
19
 
@@ -74,7 +75,8 @@ export default {
74
75
  // In the experiment we want to also show column control in Auto mode, and
75
76
  // the minimum width control in Manual mode.
76
77
  const showColumnsControl =
77
- window.__experimentalEnableGridInteractivity || layout?.columnCount;
78
+ window.__experimentalEnableGridInteractivity ||
79
+ !! layout?.columnCount;
78
80
  const showMinWidthControl =
79
81
  window.__experimentalEnableGridInteractivity ||
80
82
  ! layout?.columnCount;
@@ -84,19 +86,21 @@ export default {
84
86
  layout={ layout }
85
87
  onChange={ onChange }
86
88
  />
87
- { showColumnsControl && (
88
- <GridLayoutColumnsAndRowsControl
89
- layout={ layout }
90
- onChange={ onChange }
91
- allowSizingOnChildren={ allowSizingOnChildren }
92
- />
93
- ) }
94
- { showMinWidthControl && (
95
- <GridLayoutMinimumWidthControl
96
- layout={ layout }
97
- onChange={ onChange }
98
- />
99
- ) }
89
+ <VStack spacing={ 4 }>
90
+ { showColumnsControl && (
91
+ <GridLayoutColumnsAndRowsControl
92
+ layout={ layout }
93
+ onChange={ onChange }
94
+ allowSizingOnChildren={ allowSizingOnChildren }
95
+ />
96
+ ) }
97
+ { showMinWidthControl && (
98
+ <GridLayoutMinimumWidthControl
99
+ layout={ layout }
100
+ onChange={ onChange }
101
+ />
102
+ ) }
103
+ </VStack>
100
104
  </>
101
105
  );
102
106
  },
@@ -317,7 +321,7 @@ function GridLayoutColumnsAndRowsControl( {
317
321
  const defaultNewColumnCount =
318
322
  isManualPlacement ? 1 : undefined;
319
323
  const newColumnCount =
320
- value === ''
324
+ value === '' || value === '0'
321
325
  ? defaultNewColumnCount
322
326
  : parseInt( value, 10 );
323
327
  onChange( {
@@ -327,7 +331,7 @@ function GridLayoutColumnsAndRowsControl( {
327
331
  } else {
328
332
  // Don't allow unsetting the column count.
329
333
  const newColumnCount =
330
- value === ''
334
+ value === '' || value === '0'
331
335
  ? 1
332
336
  : parseInt( value, 10 );
333
337
  onChange( {
@@ -337,7 +341,7 @@ function GridLayoutColumnsAndRowsControl( {
337
341
  }
338
342
  } }
339
343
  value={ columnCount }
340
- min={ 0 }
344
+ min={ 1 }
341
345
  label={ __( 'Columns' ) }
342
346
  hideLabelFromVision={
343
347
  ! window.__experimentalEnableGridInteractivity ||
@@ -355,7 +359,7 @@ function GridLayoutColumnsAndRowsControl( {
355
359
  onChange={ ( value ) => {
356
360
  // Don't allow unsetting the row count.
357
361
  const newRowCount =
358
- value === ''
362
+ value === '' || value === '0'
359
363
  ? 1
360
364
  : parseInt( value, 10 );
361
365
  onChange( {
@@ -364,21 +368,24 @@ function GridLayoutColumnsAndRowsControl( {
364
368
  } );
365
369
  } }
366
370
  value={ rowCount }
367
- min={ 0 }
371
+ min={ 1 }
368
372
  label={ __( 'Rows' ) }
369
373
  />
370
374
  ) : (
371
375
  <RangeControl
372
376
  __next40pxDefaultSize
373
377
  __nextHasNoMarginBottom
374
- value={ columnCount ?? 0 }
378
+ value={ columnCount ?? 1 }
375
379
  onChange={ ( value ) =>
376
380
  onChange( {
377
381
  ...layout,
378
- columnCount: value,
382
+ columnCount:
383
+ value === '' || value === '0'
384
+ ? 1
385
+ : value,
379
386
  } )
380
387
  }
381
- min={ 0 }
388
+ min={ 1 }
382
389
  max={ 16 }
383
390
  withInputField={ false }
384
391
  label={ __( 'Columns' ) }
@@ -5,7 +5,7 @@ import grid from '../grid';
5
5
 
6
6
  describe( 'getLayoutStyle', () => {
7
7
  it( 'should return only `grid-template-columns` and `container-type` properties if no non-default params are provided', () => {
8
- const expected = `.editor-styles-wrapper .my-container { grid-template-columns: repeat(auto-fill, minmax(min(12rem, 100%), 1fr)); container-type: inline-size; }`;
8
+ const expected = `.my-container { grid-template-columns: repeat(auto-fill, minmax(min(12rem, 100%), 1fr)); container-type: inline-size; }`;
9
9
 
10
10
  const result = grid.getLayoutStyle( {
11
11
  selector: '.my-container',
@@ -19,7 +19,7 @@ describe( 'getLayoutStyle', () => {
19
19
  expect( result ).toBe( expected );
20
20
  } );
21
21
  it( 'should return only `grid-template-columns` if columnCount property is provided', () => {
22
- const expected = `.editor-styles-wrapper .my-container { grid-template-columns: repeat(3, minmax(0, 1fr)); }`;
22
+ const expected = `.my-container { grid-template-columns: repeat(3, minmax(0, 1fr)); }`;
23
23
 
24
24
  const result = grid.getLayoutStyle( {
25
25
  selector: '.my-container',
@@ -37,7 +37,7 @@ const layoutDefinitions = {
37
37
  describe( 'getBlockGapCSS', () => {
38
38
  it( 'should output default blockGap rules', () => {
39
39
  const expected =
40
- '.editor-styles-wrapper .my-container > * { margin-block-start: 0; margin-block-end: 0; }.editor-styles-wrapper .my-container > * + * { margin-block-start: 3em; margin-block-end: 0; }';
40
+ '.my-container > * { margin-block-start: 0; margin-block-end: 0; }.my-container > * + * { margin-block-start: 3em; margin-block-end: 0; }';
41
41
 
42
42
  const result = getBlockGapCSS(
43
43
  '.my-container',
@@ -50,7 +50,7 @@ describe( 'getBlockGapCSS', () => {
50
50
  } );
51
51
 
52
52
  it( 'should output flex blockGap rules', () => {
53
- const expected = '.editor-styles-wrapper .my-container { gap: 3em; }';
53
+ const expected = '.my-container { gap: 3em; }';
54
54
 
55
55
  const result = getBlockGapCSS(
56
56
  '.my-container',
@@ -97,7 +97,7 @@ describe( 'getBlockGapCSS', () => {
97
97
  } );
98
98
 
99
99
  it( 'should treat a blockGap string containing 0 as a valid value', () => {
100
- const expected = '.editor-styles-wrapper .my-container { gap: 0; }';
100
+ const expected = '.my-container { gap: 0; }';
101
101
 
102
102
  const result = getBlockGapCSS(
103
103
  '.my-container',
@@ -113,21 +113,19 @@ describe( 'getBlockGapCSS', () => {
113
113
  describe( 'appendSelectors', () => {
114
114
  it( 'should append a subselector without an appended selector', () => {
115
115
  expect( appendSelectors( '.original-selector' ) ).toBe(
116
- '.editor-styles-wrapper .original-selector'
116
+ '.original-selector'
117
117
  );
118
118
  } );
119
119
 
120
120
  it( 'should append a subselector to a single selector', () => {
121
121
  expect( appendSelectors( '.original-selector', '.appended' ) ).toBe(
122
- '.editor-styles-wrapper .original-selector .appended'
122
+ '.original-selector .appended'
123
123
  );
124
124
  } );
125
125
 
126
126
  it( 'should append a subselector to multiple selectors', () => {
127
127
  expect(
128
128
  appendSelectors( '.first-selector,.second-selector', '.appended' )
129
- ).toBe(
130
- '.editor-styles-wrapper .first-selector .appended,.editor-styles-wrapper .second-selector .appended'
131
- );
129
+ ).toBe( '.first-selector .appended,.second-selector .appended' );
132
130
  } );
133
131
  } );
@@ -17,19 +17,11 @@ import { LAYOUT_DEFINITIONS } from './definitions';
17
17
  * @return {string} - CSS selector.
18
18
  */
19
19
  export function appendSelectors( selectors, append = '' ) {
20
- // Ideally we shouldn't need the `.editor-styles-wrapper` increased specificity here
21
- // The problem though is that we have a `.editor-styles-wrapper p { margin: reset; }` style
22
- // it's used to reset the default margin added by wp-admin to paragraphs
23
- // so we need this to be higher speficity otherwise, it won't be applied to paragraphs inside containers
24
- // When the post editor is fully iframed, this extra classname could be removed.
25
-
26
20
  return selectors
27
21
  .split( ',' )
28
22
  .map(
29
23
  ( subselector ) =>
30
- `.editor-styles-wrapper ${ subselector }${
31
- append ? ` ${ append }` : ''
32
- }`
24
+ `${ subselector }${ append ? ` ${ append }` : '' }`
33
25
  )
34
26
  .join( ',' );
35
27
  }