@wordpress/block-editor 14.1.0 → 14.2.1-next.1f6eadc42.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 (705) 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/grid/grid-item-resizer.js +2 -2
  110. package/build/components/grid/grid-item-resizer.js.map +1 -1
  111. package/build/components/iframe/get-compatibility-styles.js +1 -1
  112. package/build/components/iframe/get-compatibility-styles.js.map +1 -1
  113. package/build/components/iframe/index.js +5 -5
  114. package/build/components/iframe/index.js.map +1 -1
  115. package/build/components/inner-blocks/index.js +2 -4
  116. package/build/components/inner-blocks/index.js.map +1 -1
  117. package/build/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  118. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  119. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
  120. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  121. package/build/components/inserter/block-patterns-tab/index.js +4 -1
  122. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  123. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +23 -13
  124. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  125. package/build/components/inserter/index.js +4 -11
  126. package/build/components/inserter/index.js.map +1 -1
  127. package/build/components/inserter/library.js +2 -4
  128. package/build/components/inserter/library.js.map +1 -1
  129. package/build/components/inserter/media-tab/hooks.js +3 -3
  130. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  131. package/build/components/inserter/media-tab/media-list.js +1 -8
  132. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  133. package/build/components/inserter/media-tab/media-preview.js +9 -7
  134. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  135. package/build/components/inserter/media-tab/media-tab.js +4 -1
  136. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  137. package/build/components/inserter/menu.js +7 -24
  138. package/build/components/inserter/menu.js.map +1 -1
  139. package/build/components/inserter/quick-inserter.js +4 -5
  140. package/build/components/inserter/quick-inserter.js.map +1 -1
  141. package/build/components/inserter-list-item/index.js +4 -4
  142. package/build/components/inserter-list-item/index.js.map +1 -1
  143. package/build/components/inserter-listbox/index.js +3 -13
  144. package/build/components/inserter-listbox/index.js.map +1 -1
  145. package/build/components/inserter-listbox/item.js +6 -11
  146. package/build/components/inserter-listbox/item.js.map +1 -1
  147. package/build/components/inserter-listbox/row.js +1 -9
  148. package/build/components/inserter-listbox/row.js.map +1 -1
  149. package/build/components/inspector-controls/groups.js +2 -0
  150. package/build/components/inspector-controls/groups.js.map +1 -1
  151. package/build/components/inspector-controls-tabs/index.js +4 -1
  152. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  153. package/build/components/inspector-controls-tabs/settings-tab.js +3 -1
  154. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  155. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
  156. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  157. package/build/components/inspector-popover-header/index.js +8 -2
  158. package/build/components/inspector-popover-header/index.js.map +1 -1
  159. package/build/components/letter-spacing-control/index.js +7 -4
  160. package/build/components/letter-spacing-control/index.js.map +1 -1
  161. package/build/components/link-control/index.js +19 -10
  162. package/build/components/link-control/index.js.map +1 -1
  163. package/build/components/link-control/settings-drawer.js +4 -1
  164. package/build/components/link-control/settings-drawer.js.map +1 -1
  165. package/build/components/list-view/block-select-button.js +4 -1
  166. package/build/components/list-view/block-select-button.js.map +1 -1
  167. package/build/components/list-view/index.js +3 -7
  168. package/build/components/list-view/index.js.map +1 -1
  169. package/build/components/media-placeholder/index.js +32 -11
  170. package/build/components/media-placeholder/index.js.map +1 -1
  171. package/build/components/media-replace-flow/index.js +8 -1
  172. package/build/components/media-replace-flow/index.js.map +1 -1
  173. package/build/components/provider/use-block-sync.js +19 -19
  174. package/build/components/provider/use-block-sync.js.map +1 -1
  175. package/build/components/rich-text/event-listeners/paste-handler.js +12 -1
  176. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  177. package/build/components/rich-text/index.js +38 -30
  178. package/build/components/rich-text/index.js.map +1 -1
  179. package/build/components/rich-text/use-mark-persistent.js +5 -5
  180. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  181. package/build/components/skip-to-selected-block/index.js +4 -1
  182. package/build/components/skip-to-selected-block/index.js.map +1 -1
  183. package/build/components/spacing-sizes-control/index.js +8 -9
  184. package/build/components/spacing-sizes-control/index.js.map +1 -1
  185. package/build/components/spacing-sizes-control/linked-button.js +35 -0
  186. package/build/components/spacing-sizes-control/linked-button.js.map +1 -0
  187. package/build/components/spacing-sizes-control/utils.js +4 -15
  188. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  189. package/build/components/tool-selector/index.js +4 -1
  190. package/build/components/tool-selector/index.js.map +1 -1
  191. package/build/components/url-input/button.js +12 -3
  192. package/build/components/url-input/button.js.map +1 -1
  193. package/build/components/url-input/index.js +4 -1
  194. package/build/components/url-input/index.js.map +1 -1
  195. package/build/components/use-block-drop-zone/index.js +31 -7
  196. package/build/components/use-block-drop-zone/index.js.map +1 -1
  197. package/build/components/writing-flow/index.js +2 -1
  198. package/build/components/writing-flow/index.js.map +1 -1
  199. package/build/components/writing-flow/use-arrow-nav.js +4 -1
  200. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  201. package/build/components/writing-flow/use-event-redirect.js +66 -0
  202. package/build/components/writing-flow/use-event-redirect.js.map +1 -0
  203. package/build/components/writing-flow/use-input.js +31 -1
  204. package/build/components/writing-flow/use-input.js.map +1 -1
  205. package/build/components/writing-flow/use-select-all.js +14 -1
  206. package/build/components/writing-flow/use-select-all.js.map +1 -1
  207. package/build/components/writing-flow/use-selection-observer.js +20 -6
  208. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  209. package/build/components/writing-flow/use-tab-nav.js +4 -4
  210. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  211. package/build/components/writing-flow/utils.js +27 -0
  212. package/build/components/writing-flow/utils.js.map +1 -1
  213. package/build/hooks/block-bindings.js +33 -29
  214. package/build/hooks/block-bindings.js.map +1 -1
  215. package/build/hooks/content-lock-ui.js +8 -26
  216. package/build/hooks/content-lock-ui.js.map +1 -1
  217. package/build/hooks/duotone.js +0 -4
  218. package/build/hooks/duotone.js.map +1 -1
  219. package/build/hooks/layout.js +4 -2
  220. package/build/hooks/layout.js.map +1 -1
  221. package/build/hooks/spacing-visualizer.js +3 -3
  222. package/build/hooks/spacing-visualizer.js.map +1 -1
  223. package/build/hooks/style.js +1 -5
  224. package/build/hooks/style.js.map +1 -1
  225. package/build/hooks/use-bindings-attributes.js +19 -20
  226. package/build/hooks/use-bindings-attributes.js.map +1 -1
  227. package/build/hooks/use-zoom-out.js +7 -7
  228. package/build/hooks/use-zoom-out.js.map +1 -1
  229. package/build/layouts/constrained.js +41 -42
  230. package/build/layouts/constrained.js.map +1 -1
  231. package/build/layouts/flex.js +4 -1
  232. package/build/layouts/flex.js.map +1 -1
  233. package/build/layouts/grid.js +19 -16
  234. package/build/layouts/grid.js.map +1 -1
  235. package/build/layouts/utils.js +1 -7
  236. package/build/layouts/utils.js.map +1 -1
  237. package/build/private-apis.js +2 -3
  238. package/build/private-apis.js.map +1 -1
  239. package/build/store/actions.js +2 -7
  240. package/build/store/actions.js.map +1 -1
  241. package/build/store/private-actions.js +1 -0
  242. package/build/store/private-actions.js.map +1 -1
  243. package/build/store/private-keys.js +2 -1
  244. package/build/store/private-keys.js.map +1 -1
  245. package/build/store/private-selectors.js +16 -18
  246. package/build/store/private-selectors.js.map +1 -1
  247. package/build/store/reducer.js +1 -10
  248. package/build/store/reducer.js.map +1 -1
  249. package/build/store/selectors.js +19 -43
  250. package/build/store/selectors.js.map +1 -1
  251. package/build/store/utils.js +48 -0
  252. package/build/store/utils.js.map +1 -1
  253. package/build/utils/block-bindings.js +16 -11
  254. package/build/utils/block-bindings.js.map +1 -1
  255. package/build/utils/dom.js +101 -0
  256. package/build/utils/dom.js.map +1 -1
  257. package/build/utils/get-font-styles-and-weights.js +4 -4
  258. package/build/utils/get-font-styles-and-weights.js.map +1 -1
  259. package/build/utils/transform-styles/index.js +120 -16
  260. package/build/utils/transform-styles/index.js.map +1 -1
  261. package/build-module/components/block-alignment-matrix-control/index.js +1 -1
  262. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  263. package/build-module/components/block-breadcrumb/index.js +2 -2
  264. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  265. package/build-module/components/block-canvas/index.js +9 -1
  266. package/build-module/components/block-canvas/index.js.map +1 -1
  267. package/build-module/components/block-compare/block-view.js +1 -0
  268. package/build-module/components/block-compare/block-view.js.map +1 -1
  269. package/build-module/components/block-draggable/index.js +4 -4
  270. package/build-module/components/block-draggable/index.js.map +1 -1
  271. package/build-module/components/block-draggable/use-scroll-when-dragging.js +25 -25
  272. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  273. package/build-module/components/block-edit/multiple-usage-warning.js +2 -0
  274. package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -1
  275. package/build-module/components/block-inspector/index.js +27 -11
  276. package/build-module/components/block-inspector/index.js.map +1 -1
  277. package/build-module/components/block-list/block-invalid-warning.js +3 -2
  278. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  279. package/build-module/components/block-list/block.js +5 -1
  280. package/build-module/components/block-list/block.js.map +1 -1
  281. package/build-module/components/block-list/index.js +14 -3
  282. package/build-module/components/block-list/index.js.map +1 -1
  283. package/build-module/components/block-list/use-block-props/index.js +5 -1
  284. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  285. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  286. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  287. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +47 -0
  288. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
  289. package/build-module/components/block-list/zoom-out-separator.js +90 -0
  290. package/build-module/components/block-list/zoom-out-separator.js.map +1 -0
  291. package/build-module/components/block-lock/toolbar.js +3 -3
  292. package/build-module/components/block-lock/toolbar.js.map +1 -1
  293. package/build-module/components/block-mover/button.js +1 -0
  294. package/build-module/components/block-mover/button.js.map +1 -1
  295. package/build-module/components/block-mover/index.js +1 -0
  296. package/build-module/components/block-mover/index.js.map +1 -1
  297. package/build-module/components/block-navigation/dropdown.js +4 -1
  298. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  299. package/build-module/components/block-pattern-setup/index.js +2 -10
  300. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  301. package/build-module/components/block-pattern-setup/setup-toolbar.js +23 -8
  302. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  303. package/build-module/components/block-patterns-list/index.js +12 -20
  304. package/build-module/components/block-patterns-list/index.js.map +1 -1
  305. package/build-module/components/block-patterns-paging/index.js +12 -3
  306. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  307. package/build-module/components/block-popover/index.js +2 -15
  308. package/build-module/components/block-popover/index.js.map +1 -1
  309. package/build-module/components/block-quick-navigation/index.js +4 -1
  310. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  311. package/build-module/components/block-settings-menu-controls/index.js +4 -0
  312. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  313. package/build-module/components/block-switcher/index.js +30 -19
  314. package/build-module/components/block-switcher/index.js.map +1 -1
  315. package/build-module/components/block-switcher/pattern-transformations-menu.js +2 -10
  316. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  317. package/build-module/components/block-toolbar/index.js +19 -12
  318. package/build-module/components/block-toolbar/index.js.map +1 -1
  319. package/build-module/components/block-toolbar/shuffle.js +6 -2
  320. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  321. package/build-module/components/block-tools/block-selection-button.js +8 -2
  322. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  323. package/build-module/components/block-tools/block-toolbar-popover.js +10 -6
  324. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
  325. package/build-module/components/block-tools/index.js +1 -1
  326. package/build-module/components/block-tools/index.js.map +1 -1
  327. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  328. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  329. package/build-module/components/block-tools/zoom-out-mode-inserters.js +7 -22
  330. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  331. package/build-module/components/block-tools/zoom-out-popover.js +3 -4
  332. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -1
  333. package/build-module/components/block-tools/zoom-out-toolbar.js +27 -8
  334. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  335. package/build-module/components/block-variation-picker/index.js +4 -1
  336. package/build-module/components/block-variation-picker/index.js.map +1 -1
  337. package/build-module/components/block-variation-transforms/index.js +4 -1
  338. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  339. package/build-module/components/button-block-appender/index.js +22 -26
  340. package/build-module/components/button-block-appender/index.js.map +1 -1
  341. package/build-module/components/colors-gradients/dropdown.js +4 -1
  342. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  343. package/build-module/components/content-lock/index.js +2 -0
  344. package/build-module/components/content-lock/index.js.map +1 -0
  345. package/build-module/components/content-lock/modify-content-lock-menu-item.js +57 -0
  346. package/build-module/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
  347. package/build-module/components/editor-styles/index.js +4 -3
  348. package/build-module/components/editor-styles/index.js.map +1 -1
  349. package/build-module/components/global-styles/background-panel.js +8 -12
  350. package/build-module/components/global-styles/background-panel.js.map +1 -1
  351. package/build-module/components/global-styles/color-panel.js +7 -4
  352. package/build-module/components/global-styles/color-panel.js.map +1 -1
  353. package/build-module/components/global-styles/color-panel.native.js +2 -2
  354. package/build-module/components/global-styles/color-panel.native.js.map +1 -1
  355. package/build-module/components/global-styles/dimensions-panel.js +36 -39
  356. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  357. package/build-module/components/global-styles/filters-panel.js +4 -1
  358. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  359. package/build-module/components/global-styles/shadow-panel-components.js +14 -17
  360. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  361. package/build-module/components/global-styles/typography-utils.js +17 -6
  362. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  363. package/build-module/components/global-styles/utils.js +4 -6
  364. package/build-module/components/global-styles/utils.js.map +1 -1
  365. package/build-module/components/grid/grid-item-movers.js +3 -3
  366. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  367. package/build-module/components/grid/grid-item-resizer.js +2 -2
  368. package/build-module/components/grid/grid-item-resizer.js.map +1 -1
  369. package/build-module/components/iframe/get-compatibility-styles.js +1 -1
  370. package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
  371. package/build-module/components/iframe/index.js +5 -5
  372. package/build-module/components/iframe/index.js.map +1 -1
  373. package/build-module/components/inner-blocks/index.js +2 -4
  374. package/build-module/components/inner-blocks/index.js.map +1 -1
  375. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  376. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  377. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
  378. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  379. package/build-module/components/inserter/block-patterns-tab/index.js +4 -1
  380. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  381. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +23 -13
  382. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  383. package/build-module/components/inserter/index.js +4 -11
  384. package/build-module/components/inserter/index.js.map +1 -1
  385. package/build-module/components/inserter/library.js +2 -4
  386. package/build-module/components/inserter/library.js.map +1 -1
  387. package/build-module/components/inserter/media-tab/hooks.js +3 -3
  388. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  389. package/build-module/components/inserter/media-tab/media-list.js +1 -8
  390. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  391. package/build-module/components/inserter/media-tab/media-preview.js +10 -8
  392. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  393. package/build-module/components/inserter/media-tab/media-tab.js +4 -1
  394. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  395. package/build-module/components/inserter/menu.js +7 -24
  396. package/build-module/components/inserter/menu.js.map +1 -1
  397. package/build-module/components/inserter/quick-inserter.js +5 -6
  398. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  399. package/build-module/components/inserter-list-item/index.js +4 -4
  400. package/build-module/components/inserter-list-item/index.js.map +1 -1
  401. package/build-module/components/inserter-listbox/index.js +3 -11
  402. package/build-module/components/inserter-listbox/index.js.map +1 -1
  403. package/build-module/components/inserter-listbox/item.js +7 -12
  404. package/build-module/components/inserter-listbox/item.js.map +1 -1
  405. package/build-module/components/inserter-listbox/row.js +2 -10
  406. package/build-module/components/inserter-listbox/row.js.map +1 -1
  407. package/build-module/components/inspector-controls/groups.js +2 -0
  408. package/build-module/components/inspector-controls/groups.js.map +1 -1
  409. package/build-module/components/inspector-controls-tabs/index.js +4 -1
  410. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  411. package/build-module/components/inspector-controls-tabs/settings-tab.js +3 -1
  412. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  413. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
  414. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  415. package/build-module/components/inspector-popover-header/index.js +8 -2
  416. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  417. package/build-module/components/letter-spacing-control/index.js +7 -4
  418. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  419. package/build-module/components/link-control/index.js +19 -10
  420. package/build-module/components/link-control/index.js.map +1 -1
  421. package/build-module/components/link-control/settings-drawer.js +4 -1
  422. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  423. package/build-module/components/list-view/block-select-button.js +4 -1
  424. package/build-module/components/list-view/block-select-button.js.map +1 -1
  425. package/build-module/components/list-view/index.js +3 -7
  426. package/build-module/components/list-view/index.js.map +1 -1
  427. package/build-module/components/media-placeholder/index.js +32 -11
  428. package/build-module/components/media-placeholder/index.js.map +1 -1
  429. package/build-module/components/media-replace-flow/index.js +8 -1
  430. package/build-module/components/media-replace-flow/index.js.map +1 -1
  431. package/build-module/components/provider/use-block-sync.js +19 -19
  432. package/build-module/components/provider/use-block-sync.js.map +1 -1
  433. package/build-module/components/rich-text/event-listeners/paste-handler.js +12 -1
  434. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  435. package/build-module/components/rich-text/index.js +39 -31
  436. package/build-module/components/rich-text/index.js.map +1 -1
  437. package/build-module/components/rich-text/use-mark-persistent.js +5 -5
  438. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  439. package/build-module/components/skip-to-selected-block/index.js +4 -1
  440. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  441. package/build-module/components/spacing-sizes-control/index.js +9 -10
  442. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  443. package/build-module/components/spacing-sizes-control/linked-button.js +28 -0
  444. package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -0
  445. package/build-module/components/spacing-sizes-control/utils.js +4 -15
  446. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  447. package/build-module/components/tool-selector/index.js +4 -1
  448. package/build-module/components/tool-selector/index.js.map +1 -1
  449. package/build-module/components/url-input/button.js +12 -3
  450. package/build-module/components/url-input/button.js.map +1 -1
  451. package/build-module/components/url-input/index.js +4 -1
  452. package/build-module/components/url-input/index.js.map +1 -1
  453. package/build-module/components/use-block-drop-zone/index.js +31 -7
  454. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  455. package/build-module/components/writing-flow/index.js +2 -1
  456. package/build-module/components/writing-flow/index.js.map +1 -1
  457. package/build-module/components/writing-flow/use-arrow-nav.js +4 -1
  458. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  459. package/build-module/components/writing-flow/use-event-redirect.js +60 -0
  460. package/build-module/components/writing-flow/use-event-redirect.js.map +1 -0
  461. package/build-module/components/writing-flow/use-input.js +31 -1
  462. package/build-module/components/writing-flow/use-input.js.map +1 -1
  463. package/build-module/components/writing-flow/use-select-all.js +14 -1
  464. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  465. package/build-module/components/writing-flow/use-selection-observer.js +16 -2
  466. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  467. package/build-module/components/writing-flow/use-tab-nav.js +4 -4
  468. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  469. package/build-module/components/writing-flow/utils.js +26 -0
  470. package/build-module/components/writing-flow/utils.js.map +1 -1
  471. package/build-module/hooks/block-bindings.js +35 -31
  472. package/build-module/hooks/block-bindings.js.map +1 -1
  473. package/build-module/hooks/content-lock-ui.js +10 -30
  474. package/build-module/hooks/content-lock-ui.js.map +1 -1
  475. package/build-module/hooks/duotone.js +0 -4
  476. package/build-module/hooks/duotone.js.map +1 -1
  477. package/build-module/hooks/layout.js +4 -2
  478. package/build-module/hooks/layout.js.map +1 -1
  479. package/build-module/hooks/spacing-visualizer.js +3 -3
  480. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  481. package/build-module/hooks/style.js +1 -5
  482. package/build-module/hooks/style.js.map +1 -1
  483. package/build-module/hooks/use-bindings-attributes.js +19 -20
  484. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  485. package/build-module/hooks/use-zoom-out.js +7 -7
  486. package/build-module/hooks/use-zoom-out.js.map +1 -1
  487. package/build-module/layouts/constrained.js +44 -45
  488. package/build-module/layouts/constrained.js.map +1 -1
  489. package/build-module/layouts/flex.js +4 -1
  490. package/build-module/layouts/flex.js.map +1 -1
  491. package/build-module/layouts/grid.js +21 -18
  492. package/build-module/layouts/grid.js.map +1 -1
  493. package/build-module/layouts/utils.js +1 -7
  494. package/build-module/layouts/utils.js.map +1 -1
  495. package/build-module/private-apis.js +3 -4
  496. package/build-module/private-apis.js.map +1 -1
  497. package/build-module/store/actions.js +2 -7
  498. package/build-module/store/actions.js.map +1 -1
  499. package/build-module/store/private-actions.js +1 -0
  500. package/build-module/store/private-actions.js.map +1 -1
  501. package/build-module/store/private-keys.js +1 -0
  502. package/build-module/store/private-keys.js.map +1 -1
  503. package/build-module/store/private-selectors.js +15 -18
  504. package/build-module/store/private-selectors.js.map +1 -1
  505. package/build-module/store/reducer.js +1 -9
  506. package/build-module/store/reducer.js.map +1 -1
  507. package/build-module/store/selectors.js +22 -46
  508. package/build-module/store/selectors.js.map +1 -1
  509. package/build-module/store/utils.js +46 -0
  510. package/build-module/store/utils.js.map +1 -1
  511. package/build-module/utils/block-bindings.js +17 -12
  512. package/build-module/utils/block-bindings.js.map +1 -1
  513. package/build-module/utils/dom.js +99 -0
  514. package/build-module/utils/dom.js.map +1 -1
  515. package/build-module/utils/get-font-styles-and-weights.js +4 -4
  516. package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
  517. package/build-module/utils/transform-styles/index.js +120 -16
  518. package/build-module/utils/transform-styles/index.js.map +1 -1
  519. package/build-style/content-rtl.css +19 -11
  520. package/build-style/content.css +19 -11
  521. package/build-style/style-rtl.css +27 -117
  522. package/build-style/style.css +27 -117
  523. package/build-types/utils/dom.d.ts +25 -0
  524. package/build-types/utils/dom.d.ts.map +1 -1
  525. package/package.json +34 -32
  526. package/src/components/block-alignment-matrix-control/index.js +1 -1
  527. package/src/components/block-breadcrumb/index.js +2 -2
  528. package/src/components/block-breadcrumb/style.scss +1 -30
  529. package/src/components/block-canvas/index.js +9 -1
  530. package/src/components/block-compare/block-view.js +6 -1
  531. package/src/components/block-compare/test/__snapshots__/block-view.js.snap +1 -1
  532. package/src/components/block-draggable/content.scss +1 -1
  533. package/src/components/block-draggable/index.js +4 -4
  534. package/src/components/block-draggable/style.scss +1 -1
  535. package/src/components/block-draggable/use-scroll-when-dragging.js +25 -25
  536. package/src/components/block-edit/multiple-usage-warning.js +2 -0
  537. package/src/components/block-inspector/index.js +22 -7
  538. package/src/components/block-inspector/style.scss +2 -4
  539. package/src/components/block-list/block-invalid-warning.js +3 -2
  540. package/src/components/block-list/block.js +6 -2
  541. package/src/components/block-list/content.scss +23 -3
  542. package/src/components/block-list/index.js +59 -38
  543. package/src/components/block-list/use-block-props/index.js +3 -0
  544. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  545. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +56 -0
  546. package/src/components/block-list/zoom-out-separator.js +110 -0
  547. package/src/components/block-lock/style.scss +1 -1
  548. package/src/components/block-lock/toolbar.js +3 -3
  549. package/src/components/block-mover/button.js +1 -0
  550. package/src/components/block-mover/index.js +1 -0
  551. package/src/components/block-mover/style.scss +1 -1
  552. package/src/components/block-navigation/dropdown.js +2 -0
  553. package/src/components/block-pattern-setup/index.js +3 -15
  554. package/src/components/block-pattern-setup/setup-toolbar.js +17 -4
  555. package/src/components/block-pattern-setup/style.scss +2 -2
  556. package/src/components/block-patterns-list/index.js +15 -18
  557. package/src/components/block-patterns-list/style.scss +2 -2
  558. package/src/components/block-patterns-paging/index.js +6 -0
  559. package/src/components/block-popover/index.js +7 -28
  560. package/src/components/block-popover/style.scss +1 -1
  561. package/src/components/block-quick-navigation/index.js +2 -0
  562. package/src/components/block-settings-menu-controls/index.js +7 -1
  563. package/src/components/block-switcher/index.js +45 -23
  564. package/src/components/block-switcher/pattern-transformations-menu.js +3 -12
  565. package/src/components/block-switcher/style.scss +5 -30
  566. package/src/components/block-toolbar/index.js +27 -11
  567. package/src/components/block-toolbar/shuffle.js +9 -7
  568. package/src/components/block-toolbar/style.scss +4 -1
  569. package/src/components/block-tools/block-selection-button.js +4 -0
  570. package/src/components/block-tools/block-toolbar-popover.js +10 -6
  571. package/src/components/block-tools/index.js +1 -1
  572. package/src/components/block-tools/style.scss +3 -4
  573. package/src/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  574. package/src/components/block-tools/zoom-out-mode-inserters.js +2 -17
  575. package/src/components/block-tools/zoom-out-popover.js +3 -7
  576. package/src/components/block-tools/zoom-out-toolbar.js +31 -6
  577. package/src/components/block-variation-picker/README.md +2 -2
  578. package/src/components/block-variation-picker/index.js +6 -1
  579. package/src/components/block-variation-transforms/index.js +2 -0
  580. package/src/components/block-variation-transforms/style.scss +1 -1
  581. package/src/components/button-block-appender/content.scss +0 -1
  582. package/src/components/button-block-appender/index.js +30 -28
  583. package/src/components/color-palette/test/control.js +15 -2
  584. package/src/components/colors-gradients/dropdown.js +5 -1
  585. package/src/components/colors-gradients/style.scss +4 -4
  586. package/src/components/content-lock/index.js +1 -0
  587. package/src/components/content-lock/modify-content-lock-menu-item.js +58 -0
  588. package/src/components/default-block-appender/content.scss +0 -1
  589. package/src/components/editor-styles/index.js +4 -3
  590. package/src/components/global-styles/background-panel.js +6 -14
  591. package/src/components/global-styles/color-panel.js +8 -4
  592. package/src/components/global-styles/color-panel.native.js +2 -2
  593. package/src/components/global-styles/dimensions-panel.js +40 -40
  594. package/src/components/global-styles/filters-panel.js +5 -1
  595. package/src/components/global-styles/shadow-panel-components.js +11 -15
  596. package/src/components/global-styles/style.scss +3 -4
  597. package/src/components/global-styles/test/typography-utils.js +96 -5
  598. package/src/components/global-styles/test/utils.js +10 -0
  599. package/src/components/global-styles/typography-utils.js +22 -6
  600. package/src/components/global-styles/utils.js +4 -6
  601. package/src/components/grid/grid-item-movers.js +3 -3
  602. package/src/components/grid/grid-item-resizer.js +2 -2
  603. package/src/components/grid/style.scss +1 -1
  604. package/src/components/iframe/get-compatibility-styles.js +6 -1
  605. package/src/components/iframe/index.js +5 -5
  606. package/src/components/inner-blocks/index.js +2 -2
  607. package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  608. package/src/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +2 -0
  609. package/src/components/inserter/block-patterns-tab/index.js +2 -0
  610. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +32 -15
  611. package/src/components/inserter/index.js +4 -10
  612. package/src/components/inserter/library.js +0 -2
  613. package/src/components/inserter/media-tab/hooks.js +3 -3
  614. package/src/components/inserter/media-tab/media-list.js +1 -7
  615. package/src/components/inserter/media-tab/media-preview.js +15 -8
  616. package/src/components/inserter/media-tab/media-tab.js +2 -0
  617. package/src/components/inserter/menu.js +15 -29
  618. package/src/components/inserter/quick-inserter.js +3 -4
  619. package/src/components/inserter/style.scss +10 -17
  620. package/src/components/inserter-list-item/index.js +4 -4
  621. package/src/components/inserter-list-item/style.scss +1 -3
  622. package/src/components/inserter-listbox/index.js +2 -11
  623. package/src/components/inserter-listbox/item.js +12 -14
  624. package/src/components/inserter-listbox/row.js +2 -9
  625. package/src/components/inspector-controls/groups.js +2 -0
  626. package/src/components/inspector-controls-tabs/index.js +2 -0
  627. package/src/components/inspector-controls-tabs/settings-tab.js +1 -0
  628. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +5 -2
  629. package/src/components/inspector-popover-header/index.js +4 -0
  630. package/src/components/letter-spacing-control/README.md +8 -1
  631. package/src/components/letter-spacing-control/index.js +7 -4
  632. package/src/components/link-control/index.js +17 -8
  633. package/src/components/link-control/settings-drawer.js +2 -0
  634. package/src/components/link-control/style.scss +1 -3
  635. package/src/components/list-view/block-select-button.js +2 -0
  636. package/src/components/list-view/index.js +3 -8
  637. package/src/components/list-view/style.scss +14 -16
  638. package/src/components/media-placeholder/README.md +2 -2
  639. package/src/components/media-placeholder/index.js +21 -4
  640. package/src/components/media-replace-flow/index.js +12 -1
  641. package/src/components/provider/use-block-sync.js +20 -20
  642. package/src/components/responsive-block-control/README.md +3 -27
  643. package/src/components/rich-text/content.scss +1 -1
  644. package/src/components/rich-text/event-listeners/paste-handler.js +6 -1
  645. package/src/components/rich-text/index.js +54 -41
  646. package/src/components/rich-text/style.scss +1 -1
  647. package/src/components/rich-text/use-mark-persistent.js +5 -5
  648. package/src/components/skip-to-selected-block/index.js +2 -0
  649. package/src/components/spacing-sizes-control/index.js +10 -13
  650. package/src/components/spacing-sizes-control/linked-button.js +32 -0
  651. package/src/components/spacing-sizes-control/style.scss +1 -0
  652. package/src/components/spacing-sizes-control/test/utils.js +14 -15
  653. package/src/components/spacing-sizes-control/utils.js +5 -18
  654. package/src/components/tool-selector/index.js +2 -0
  655. package/src/components/url-input/button.js +6 -0
  656. package/src/components/url-input/index.js +2 -0
  657. package/src/components/url-popover/stories/index.story.js +7 -1
  658. package/src/components/use-block-drop-zone/index.js +37 -5
  659. package/src/components/warning/content.scss +3 -10
  660. package/src/components/writing-flow/index.js +2 -0
  661. package/src/components/writing-flow/use-arrow-nav.js +9 -2
  662. package/src/components/writing-flow/use-event-redirect.js +72 -0
  663. package/src/components/writing-flow/use-input.js +36 -1
  664. package/src/components/writing-flow/use-select-all.js +18 -1
  665. package/src/components/writing-flow/use-selection-observer.js +23 -3
  666. package/src/components/writing-flow/use-tab-nav.js +4 -4
  667. package/src/components/writing-flow/utils.js +30 -0
  668. package/src/hooks/block-bindings.js +42 -43
  669. package/src/hooks/block-bindings.scss +1 -9
  670. package/src/hooks/content-lock-ui.js +11 -36
  671. package/src/hooks/duotone.js +0 -4
  672. package/src/hooks/layout.js +2 -1
  673. package/src/hooks/layout.scss +5 -27
  674. package/src/hooks/spacing-visualizer.js +3 -3
  675. package/src/hooks/style.js +1 -4
  676. package/src/hooks/use-bindings-attributes.js +23 -24
  677. package/src/hooks/use-zoom-out.js +7 -7
  678. package/src/layouts/constrained.js +53 -48
  679. package/src/layouts/flex.js +2 -0
  680. package/src/layouts/grid.js +29 -22
  681. package/src/layouts/test/grid.js +2 -2
  682. package/src/layouts/test/utils.js +6 -8
  683. package/src/layouts/utils.js +1 -9
  684. package/src/private-apis.js +2 -2
  685. package/src/store/actions.js +4 -6
  686. package/src/store/private-actions.js +1 -0
  687. package/src/store/private-keys.js +1 -0
  688. package/src/store/private-selectors.js +18 -14
  689. package/src/store/reducer.js +0 -7
  690. package/src/store/selectors.js +32 -51
  691. package/src/store/utils.js +50 -0
  692. package/src/utils/block-bindings.js +15 -16
  693. package/src/utils/dom.js +117 -0
  694. package/src/utils/get-font-styles-and-weights.js +12 -4
  695. package/src/utils/test/get-font-styles-and-weights.js +148 -0
  696. package/src/utils/test/transform-styles.js +259 -50
  697. package/src/utils/transform-styles/index.js +132 -21
  698. package/tsconfig.json +1 -0
  699. package/tsconfig.tsbuildinfo +1 -1
  700. package/build/components/spacing-sizes-control/sides-dropdown/index.js +0 -86
  701. package/build/components/spacing-sizes-control/sides-dropdown/index.js.map +0 -1
  702. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js +0 -81
  703. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js.map +0 -1
  704. package/src/components/spacing-sizes-control/sides-dropdown/index.js +0 -91
  705. package/src/utils/test/__snapshots__/transform-styles.js.snap +0 -109
@@ -9,11 +9,10 @@ import {
9
9
  __experimentalText as Text,
10
10
  __experimentalToolsPanel as ToolsPanel,
11
11
  __experimentalToolsPanelItem as ToolsPanelItem,
12
- __experimentalTruncate as Truncate,
13
12
  __experimentalVStack as VStack,
14
13
  privateApis as componentsPrivateApis,
15
14
  } from '@wordpress/components';
16
- import { useRegistry } from '@wordpress/data';
15
+ import { useRegistry, useSelect } from '@wordpress/data';
17
16
  import { useContext, Fragment } from '@wordpress/element';
18
17
  import { useViewportMatch } from '@wordpress/compose';
19
18
 
@@ -28,15 +27,9 @@ import { unlock } from '../lock-unlock';
28
27
  import InspectorControls from '../components/inspector-controls';
29
28
  import BlockContext from '../components/block-context';
30
29
  import { useBlockBindingsUtils } from '../utils/block-bindings';
30
+ import { store as blockEditorStore } from '../store';
31
31
 
32
- const {
33
- DropdownMenuV2: DropdownMenu,
34
- DropdownMenuGroupV2: DropdownMenuGroup,
35
- DropdownMenuRadioItemV2: DropdownMenuRadioItem,
36
- DropdownMenuItemLabelV2: DropdownMenuItemLabel,
37
- DropdownMenuItemHelpTextV2: DropdownMenuItemHelpText,
38
- DropdownMenuSeparatorV2: DropdownMenuSeparator,
39
- } = unlock( componentsPrivateApis );
32
+ const { DropdownMenuV2 } = unlock( componentsPrivateApis );
40
33
 
41
34
  const useToolsPanelDropdownMenuProps = () => {
42
35
  const isMobile = useViewportMatch( 'medium', '<' );
@@ -60,19 +53,14 @@ function BlockBindingsPanelDropdown( { fieldsList, attribute, binding } ) {
60
53
  <>
61
54
  { Object.entries( fieldsList ).map( ( [ name, fields ], i ) => (
62
55
  <Fragment key={ name }>
63
- <DropdownMenuGroup>
56
+ <DropdownMenuV2.Group>
64
57
  { Object.keys( fieldsList ).length > 1 && (
65
- <Text
66
- className="block-editor-bindings__source-label"
67
- upperCase
68
- variant="muted"
69
- aria-hidden
70
- >
58
+ <DropdownMenuV2.GroupLabel>
71
59
  { registeredSources[ name ].label }
72
- </Text>
60
+ </DropdownMenuV2.GroupLabel>
73
61
  ) }
74
62
  { Object.entries( fields ).map( ( [ key, value ] ) => (
75
- <DropdownMenuRadioItem
63
+ <DropdownMenuV2.RadioItem
76
64
  key={ key }
77
65
  onChange={ () =>
78
66
  updateBlockBindings( {
@@ -86,17 +74,17 @@ function BlockBindingsPanelDropdown( { fieldsList, attribute, binding } ) {
86
74
  value={ key }
87
75
  checked={ key === currentKey }
88
76
  >
89
- <DropdownMenuItemLabel>
77
+ <DropdownMenuV2.ItemLabel>
90
78
  { key }
91
- </DropdownMenuItemLabel>
92
- <DropdownMenuItemHelpText>
79
+ </DropdownMenuV2.ItemLabel>
80
+ <DropdownMenuV2.ItemHelpText>
93
81
  { value }
94
- </DropdownMenuItemHelpText>
95
- </DropdownMenuRadioItem>
82
+ </DropdownMenuV2.ItemHelpText>
83
+ </DropdownMenuV2.RadioItem>
96
84
  ) ) }
97
- </DropdownMenuGroup>
85
+ </DropdownMenuV2.Group>
98
86
  { i !== Object.keys( fieldsList ).length - 1 && (
99
- <DropdownMenuSeparator />
87
+ <DropdownMenuV2.Separator />
100
88
  ) }
101
89
  </Fragment>
102
90
  ) ) }
@@ -108,17 +96,19 @@ function BlockBindingsAttribute( { attribute, binding } ) {
108
96
  const { source: sourceName, args } = binding || {};
109
97
  const sourceProps =
110
98
  unlock( blocksPrivateApis ).getBlockBindingsSource( sourceName );
99
+ const isSourceInvalid = ! sourceProps;
111
100
  return (
112
- <VStack>
113
- <Truncate>{ attribute }</Truncate>
101
+ <VStack className="block-editor-bindings__item" spacing={ 0 }>
102
+ <Text truncate>{ attribute }</Text>
114
103
  { !! binding && (
115
104
  <Text
116
- variant="muted"
117
- className="block-editor-bindings__item-explanation"
105
+ truncate
106
+ variant={ ! isSourceInvalid && 'muted' }
107
+ isDestructive={ isSourceInvalid }
118
108
  >
119
- <Truncate>
120
- { args?.key || sourceProps?.label || sourceName }
121
- </Truncate>
109
+ { isSourceInvalid
110
+ ? __( 'Invalid source' )
111
+ : args?.key || sourceProps?.label || sourceName }
122
112
  </Text>
123
113
  ) }
124
114
  </VStack>
@@ -162,12 +152,11 @@ function EditableBlockBindingsPanelItems( {
162
152
  } );
163
153
  } }
164
154
  >
165
- <DropdownMenu
155
+ <DropdownMenuV2
166
156
  placement={
167
157
  isMobile ? 'bottom-start' : 'left-start'
168
158
  }
169
159
  gutter={ isMobile ? 8 : 36 }
170
- className="block-editor-bindings__popover"
171
160
  trigger={
172
161
  <Item>
173
162
  <BlockBindingsAttribute
@@ -182,7 +171,7 @@ function EditableBlockBindingsPanelItems( {
182
171
  attribute={ attribute }
183
172
  binding={ binding }
184
173
  />
185
- </DropdownMenu>
174
+ </DropdownMenuV2>
186
175
  </ToolsPanelItem>
187
176
  );
188
177
  } ) }
@@ -208,6 +197,13 @@ export const BlockBindingsPanel = ( { name: blockName, metadata } ) => {
208
197
  }
209
198
  } );
210
199
 
200
+ const { canUpdateBlockBindings } = useSelect( ( select ) => {
201
+ return {
202
+ canUpdateBlockBindings:
203
+ select( blockEditorStore ).getSettings().canUpdateBlockBindings,
204
+ };
205
+ }, [] );
206
+
211
207
  if ( ! bindableAttributes || bindableAttributes.length === 0 ) {
212
208
  return null;
213
209
  }
@@ -243,17 +239,16 @@ export const BlockBindingsPanel = ( { name: blockName, metadata } ) => {
243
239
  }
244
240
  } );
245
241
 
246
- // Lock the UI when the experiment is not enabled or there are no fields to connect to.
242
+ // Lock the UI when the user can't update bindings or there are no fields to connect to.
247
243
  const readOnly =
248
- ! window.__experimentalBlockBindingsUI ||
249
- ! Object.keys( fieldsList ).length;
244
+ ! canUpdateBlockBindings || ! Object.keys( fieldsList ).length;
250
245
 
251
246
  if ( readOnly && Object.keys( filteredBindings ).length === 0 ) {
252
247
  return null;
253
248
  }
254
249
 
255
250
  return (
256
- <InspectorControls>
251
+ <InspectorControls group="bindings">
257
252
  <ToolsPanel
258
253
  label={ __( 'Attributes' ) }
259
254
  resetAll={ () => {
@@ -275,9 +270,13 @@ export const BlockBindingsPanel = ( { name: blockName, metadata } ) => {
275
270
  />
276
271
  ) }
277
272
  </ItemGroup>
278
- <Text variant="muted">
279
- { __( 'Attributes connected to various sources.' ) }
280
- </Text>
273
+ <ItemGroup>
274
+ <Text variant="muted">
275
+ { __(
276
+ 'Attributes connected to custom fields or other dynamic data.'
277
+ ) }
278
+ </Text>
279
+ </ItemGroup>
281
280
  </ToolsPanel>
282
281
  </InspectorControls>
283
282
  );
@@ -1,14 +1,6 @@
1
1
  div.block-editor-bindings__panel {
2
2
  grid-template-columns: repeat(auto-fit, minmax(100%, 1fr));
3
- button:hover .block-editor-bindings__item-explanation {
3
+ button:hover .block-editor-bindings__item span {
4
4
  color: inherit;
5
5
  }
6
6
  }
7
-
8
- .block-editor-bindings__popover {
9
- // This won't be needed if `DropdownMenuGroup` component handles the label.
10
- .block-editor-bindings__source-label {
11
- grid-column: 2;
12
- margin: $grid-unit-10 0;
13
- }
14
- }
@@ -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 }