@wordpress/block-editor 14.1.0 → 14.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (630) 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 +8 -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 +4 -1
  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 +8 -2
  16. package/build/components/block-edit/multiple-usage-warning.js.map +1 -1
  17. package/build/components/block-inspector/index.js +27 -9
  18. package/build/components/block-inspector/index.js.map +1 -1
  19. package/build/components/block-list/block-invalid-warning.js +6 -3
  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/use-block-props/index.js +5 -1
  24. package/build/components/block-list/use-block-props/index.js.map +1 -1
  25. package/build/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  26. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  27. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +46 -0
  28. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
  29. package/build/components/block-lock/toolbar.js +3 -3
  30. package/build/components/block-lock/toolbar.js.map +1 -1
  31. package/build/components/block-mover/button.js +4 -1
  32. package/build/components/block-mover/button.js.map +1 -1
  33. package/build/components/block-mover/index.js +4 -1
  34. package/build/components/block-mover/index.js.map +1 -1
  35. package/build/components/block-navigation/dropdown.js +4 -1
  36. package/build/components/block-navigation/dropdown.js.map +1 -1
  37. package/build/components/block-pattern-setup/index.js +1 -4
  38. package/build/components/block-pattern-setup/index.js.map +1 -1
  39. package/build/components/block-pattern-setup/setup-toolbar.js +22 -7
  40. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  41. package/build/components/block-patterns-list/index.js +11 -14
  42. package/build/components/block-patterns-list/index.js.map +1 -1
  43. package/build/components/block-patterns-paging/index.js +12 -3
  44. package/build/components/block-patterns-paging/index.js.map +1 -1
  45. package/build/components/block-popover/index.js +2 -15
  46. package/build/components/block-popover/index.js.map +1 -1
  47. package/build/components/block-quick-navigation/index.js +4 -1
  48. package/build/components/block-quick-navigation/index.js.map +1 -1
  49. package/build/components/block-settings-menu-controls/index.js +4 -0
  50. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  51. package/build/components/block-switcher/index.js +22 -17
  52. package/build/components/block-switcher/index.js.map +1 -1
  53. package/build/components/block-switcher/pattern-transformations-menu.js +1 -4
  54. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  55. package/build/components/block-toolbar/index.js +12 -11
  56. package/build/components/block-toolbar/index.js.map +1 -1
  57. package/build/components/block-toolbar/shuffle.js +6 -2
  58. package/build/components/block-toolbar/shuffle.js.map +1 -1
  59. package/build/components/block-tools/block-selection-button.js +8 -2
  60. package/build/components/block-tools/block-selection-button.js.map +1 -1
  61. package/build/components/block-tools/block-toolbar-popover.js +10 -6
  62. package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
  63. package/build/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  64. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  65. package/build/components/block-tools/zoom-out-mode-inserters.js +4 -9
  66. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  67. package/build/components/block-tools/zoom-out-popover.js +3 -4
  68. package/build/components/block-tools/zoom-out-popover.js.map +1 -1
  69. package/build/components/block-tools/zoom-out-toolbar.js +14 -5
  70. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  71. package/build/components/block-variation-picker/index.js +4 -1
  72. package/build/components/block-variation-picker/index.js.map +1 -1
  73. package/build/components/block-variation-transforms/index.js +4 -1
  74. package/build/components/block-variation-transforms/index.js.map +1 -1
  75. package/build/components/button-block-appender/index.js +14 -3
  76. package/build/components/button-block-appender/index.js.map +1 -1
  77. package/build/components/colors-gradients/dropdown.js +4 -1
  78. package/build/components/colors-gradients/dropdown.js.map +1 -1
  79. package/build/components/content-lock/index.js +13 -0
  80. package/build/components/content-lock/index.js.map +1 -0
  81. package/build/components/content-lock/modify-content-lock-menu-item.js +64 -0
  82. package/build/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
  83. package/build/components/editor-styles/index.js +4 -3
  84. package/build/components/editor-styles/index.js.map +1 -1
  85. package/build/components/global-styles/background-panel.js +8 -12
  86. package/build/components/global-styles/background-panel.js.map +1 -1
  87. package/build/components/global-styles/color-panel.js +8 -5
  88. package/build/components/global-styles/color-panel.js.map +1 -1
  89. package/build/components/global-styles/color-panel.native.js +1 -1
  90. package/build/components/global-styles/color-panel.native.js.map +1 -1
  91. package/build/components/global-styles/dimensions-panel.js +34 -37
  92. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  93. package/build/components/global-styles/filters-panel.js +4 -1
  94. package/build/components/global-styles/filters-panel.js.map +1 -1
  95. package/build/components/global-styles/shadow-panel-components.js +13 -7
  96. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  97. package/build/components/global-styles/typography-utils.js +17 -6
  98. package/build/components/global-styles/typography-utils.js.map +1 -1
  99. package/build/components/global-styles/utils.js +4 -6
  100. package/build/components/global-styles/utils.js.map +1 -1
  101. package/build/components/grid/grid-item-movers.js +2 -2
  102. package/build/components/grid/grid-item-movers.js.map +1 -1
  103. package/build/components/iframe/index.js +5 -5
  104. package/build/components/iframe/index.js.map +1 -1
  105. package/build/components/inner-blocks/index.js +2 -4
  106. package/build/components/inner-blocks/index.js.map +1 -1
  107. package/build/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  108. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  109. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
  110. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  111. package/build/components/inserter/block-patterns-tab/index.js +4 -1
  112. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  113. package/build/components/inserter/library.js +2 -4
  114. package/build/components/inserter/library.js.map +1 -1
  115. package/build/components/inserter/media-tab/hooks.js +3 -3
  116. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  117. package/build/components/inserter/media-tab/media-list.js +1 -4
  118. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  119. package/build/components/inserter/media-tab/media-preview.js +8 -2
  120. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  121. package/build/components/inserter/media-tab/media-tab.js +4 -1
  122. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  123. package/build/components/inserter/menu.js +7 -24
  124. package/build/components/inserter/menu.js.map +1 -1
  125. package/build/components/inserter/quick-inserter.js +4 -1
  126. package/build/components/inserter/quick-inserter.js.map +1 -1
  127. package/build/components/inserter-list-item/index.js +4 -4
  128. package/build/components/inserter-list-item/index.js.map +1 -1
  129. package/build/components/inserter-listbox/index.js +3 -7
  130. package/build/components/inserter-listbox/index.js.map +1 -1
  131. package/build/components/inserter-listbox/item.js +4 -1
  132. package/build/components/inserter-listbox/item.js.map +1 -1
  133. package/build/components/inspector-controls/groups.js +2 -0
  134. package/build/components/inspector-controls/groups.js.map +1 -1
  135. package/build/components/inspector-controls-tabs/index.js +4 -1
  136. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  137. package/build/components/inspector-controls-tabs/settings-tab.js +3 -1
  138. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  139. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
  140. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  141. package/build/components/inspector-popover-header/index.js +8 -2
  142. package/build/components/inspector-popover-header/index.js.map +1 -1
  143. package/build/components/letter-spacing-control/index.js +7 -4
  144. package/build/components/letter-spacing-control/index.js.map +1 -1
  145. package/build/components/link-control/index.js +19 -10
  146. package/build/components/link-control/index.js.map +1 -1
  147. package/build/components/link-control/settings-drawer.js +4 -1
  148. package/build/components/link-control/settings-drawer.js.map +1 -1
  149. package/build/components/list-view/block-select-button.js +4 -1
  150. package/build/components/list-view/block-select-button.js.map +1 -1
  151. package/build/components/media-placeholder/index.js +28 -7
  152. package/build/components/media-placeholder/index.js.map +1 -1
  153. package/build/components/media-replace-flow/index.js +8 -1
  154. package/build/components/media-replace-flow/index.js.map +1 -1
  155. package/build/components/provider/use-block-sync.js +19 -19
  156. package/build/components/provider/use-block-sync.js.map +1 -1
  157. package/build/components/rich-text/event-listeners/paste-handler.js +12 -1
  158. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  159. package/build/components/rich-text/index.js +38 -30
  160. package/build/components/rich-text/index.js.map +1 -1
  161. package/build/components/rich-text/use-mark-persistent.js +5 -5
  162. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  163. package/build/components/skip-to-selected-block/index.js +4 -1
  164. package/build/components/skip-to-selected-block/index.js.map +1 -1
  165. package/build/components/tool-selector/index.js +4 -1
  166. package/build/components/tool-selector/index.js.map +1 -1
  167. package/build/components/url-input/button.js +12 -3
  168. package/build/components/url-input/button.js.map +1 -1
  169. package/build/components/url-input/index.js +4 -1
  170. package/build/components/url-input/index.js.map +1 -1
  171. package/build/components/use-block-drop-zone/index.js +4 -6
  172. package/build/components/use-block-drop-zone/index.js.map +1 -1
  173. package/build/components/writing-flow/index.js +2 -1
  174. package/build/components/writing-flow/index.js.map +1 -1
  175. package/build/components/writing-flow/use-arrow-nav.js +4 -1
  176. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  177. package/build/components/writing-flow/use-event-redirect.js +66 -0
  178. package/build/components/writing-flow/use-event-redirect.js.map +1 -0
  179. package/build/components/writing-flow/use-input.js +31 -1
  180. package/build/components/writing-flow/use-input.js.map +1 -1
  181. package/build/components/writing-flow/use-select-all.js +14 -1
  182. package/build/components/writing-flow/use-select-all.js.map +1 -1
  183. package/build/components/writing-flow/use-selection-observer.js +20 -6
  184. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  185. package/build/components/writing-flow/use-tab-nav.js +4 -4
  186. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  187. package/build/components/writing-flow/utils.js +27 -0
  188. package/build/components/writing-flow/utils.js.map +1 -1
  189. package/build/hooks/block-bindings.js +32 -29
  190. package/build/hooks/block-bindings.js.map +1 -1
  191. package/build/hooks/content-lock-ui.js +8 -26
  192. package/build/hooks/content-lock-ui.js.map +1 -1
  193. package/build/hooks/duotone.js +0 -4
  194. package/build/hooks/duotone.js.map +1 -1
  195. package/build/hooks/layout.js +4 -1
  196. package/build/hooks/layout.js.map +1 -1
  197. package/build/hooks/spacing-visualizer.js +3 -3
  198. package/build/hooks/spacing-visualizer.js.map +1 -1
  199. package/build/hooks/style.js +1 -5
  200. package/build/hooks/style.js.map +1 -1
  201. package/build/hooks/use-bindings-attributes.js +19 -20
  202. package/build/hooks/use-bindings-attributes.js.map +1 -1
  203. package/build/hooks/use-zoom-out.js +7 -7
  204. package/build/hooks/use-zoom-out.js.map +1 -1
  205. package/build/layouts/constrained.js +41 -41
  206. package/build/layouts/constrained.js.map +1 -1
  207. package/build/layouts/flex.js +4 -1
  208. package/build/layouts/flex.js.map +1 -1
  209. package/build/layouts/utils.js +1 -7
  210. package/build/layouts/utils.js.map +1 -1
  211. package/build/private-apis.js +2 -1
  212. package/build/private-apis.js.map +1 -1
  213. package/build/store/actions.js +2 -7
  214. package/build/store/actions.js.map +1 -1
  215. package/build/store/private-actions.js +1 -0
  216. package/build/store/private-actions.js.map +1 -1
  217. package/build/store/private-keys.js +2 -1
  218. package/build/store/private-keys.js.map +1 -1
  219. package/build/store/private-selectors.js +13 -15
  220. package/build/store/private-selectors.js.map +1 -1
  221. package/build/store/reducer.js +1 -8
  222. package/build/store/reducer.js.map +1 -1
  223. package/build/store/selectors.js +19 -43
  224. package/build/store/selectors.js.map +1 -1
  225. package/build/store/utils.js +48 -0
  226. package/build/store/utils.js.map +1 -1
  227. package/build/utils/block-bindings.js +16 -11
  228. package/build/utils/block-bindings.js.map +1 -1
  229. package/build/utils/dom.js +101 -0
  230. package/build/utils/dom.js.map +1 -1
  231. package/build/utils/get-font-styles-and-weights.js +4 -4
  232. package/build/utils/get-font-styles-and-weights.js.map +1 -1
  233. package/build/utils/transform-styles/index.js +120 -16
  234. package/build/utils/transform-styles/index.js.map +1 -1
  235. package/build-module/components/block-alignment-matrix-control/index.js +1 -1
  236. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  237. package/build-module/components/block-breadcrumb/index.js +8 -2
  238. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  239. package/build-module/components/block-canvas/index.js +9 -1
  240. package/build-module/components/block-canvas/index.js.map +1 -1
  241. package/build-module/components/block-compare/block-view.js +4 -1
  242. package/build-module/components/block-compare/block-view.js.map +1 -1
  243. package/build-module/components/block-draggable/index.js +4 -4
  244. package/build-module/components/block-draggable/index.js.map +1 -1
  245. package/build-module/components/block-draggable/use-scroll-when-dragging.js +25 -25
  246. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  247. package/build-module/components/block-edit/multiple-usage-warning.js +8 -2
  248. package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -1
  249. package/build-module/components/block-inspector/index.js +27 -9
  250. package/build-module/components/block-inspector/index.js.map +1 -1
  251. package/build-module/components/block-list/block-invalid-warning.js +6 -3
  252. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  253. package/build-module/components/block-list/block.js +5 -1
  254. package/build-module/components/block-list/block.js.map +1 -1
  255. package/build-module/components/block-list/use-block-props/index.js +5 -1
  256. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  257. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  258. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  259. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +40 -0
  260. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
  261. package/build-module/components/block-lock/toolbar.js +3 -3
  262. package/build-module/components/block-lock/toolbar.js.map +1 -1
  263. package/build-module/components/block-mover/button.js +4 -1
  264. package/build-module/components/block-mover/button.js.map +1 -1
  265. package/build-module/components/block-mover/index.js +4 -1
  266. package/build-module/components/block-mover/index.js.map +1 -1
  267. package/build-module/components/block-navigation/dropdown.js +4 -1
  268. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  269. package/build-module/components/block-pattern-setup/index.js +1 -4
  270. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  271. package/build-module/components/block-pattern-setup/setup-toolbar.js +23 -8
  272. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  273. package/build-module/components/block-patterns-list/index.js +11 -14
  274. package/build-module/components/block-patterns-list/index.js.map +1 -1
  275. package/build-module/components/block-patterns-paging/index.js +12 -3
  276. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  277. package/build-module/components/block-popover/index.js +2 -15
  278. package/build-module/components/block-popover/index.js.map +1 -1
  279. package/build-module/components/block-quick-navigation/index.js +4 -1
  280. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  281. package/build-module/components/block-settings-menu-controls/index.js +4 -0
  282. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  283. package/build-module/components/block-switcher/index.js +22 -17
  284. package/build-module/components/block-switcher/index.js.map +1 -1
  285. package/build-module/components/block-switcher/pattern-transformations-menu.js +1 -4
  286. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  287. package/build-module/components/block-toolbar/index.js +12 -11
  288. package/build-module/components/block-toolbar/index.js.map +1 -1
  289. package/build-module/components/block-toolbar/shuffle.js +6 -2
  290. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  291. package/build-module/components/block-tools/block-selection-button.js +8 -2
  292. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  293. package/build-module/components/block-tools/block-toolbar-popover.js +10 -6
  294. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
  295. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  296. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  297. package/build-module/components/block-tools/zoom-out-mode-inserters.js +4 -9
  298. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  299. package/build-module/components/block-tools/zoom-out-popover.js +3 -4
  300. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -1
  301. package/build-module/components/block-tools/zoom-out-toolbar.js +15 -6
  302. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  303. package/build-module/components/block-variation-picker/index.js +4 -1
  304. package/build-module/components/block-variation-picker/index.js.map +1 -1
  305. package/build-module/components/block-variation-transforms/index.js +4 -1
  306. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  307. package/build-module/components/button-block-appender/index.js +15 -4
  308. package/build-module/components/button-block-appender/index.js.map +1 -1
  309. package/build-module/components/colors-gradients/dropdown.js +4 -1
  310. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  311. package/build-module/components/content-lock/index.js +2 -0
  312. package/build-module/components/content-lock/index.js.map +1 -0
  313. package/build-module/components/content-lock/modify-content-lock-menu-item.js +57 -0
  314. package/build-module/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
  315. package/build-module/components/editor-styles/index.js +4 -3
  316. package/build-module/components/editor-styles/index.js.map +1 -1
  317. package/build-module/components/global-styles/background-panel.js +8 -12
  318. package/build-module/components/global-styles/background-panel.js.map +1 -1
  319. package/build-module/components/global-styles/color-panel.js +7 -4
  320. package/build-module/components/global-styles/color-panel.js.map +1 -1
  321. package/build-module/components/global-styles/color-panel.native.js +2 -2
  322. package/build-module/components/global-styles/color-panel.native.js.map +1 -1
  323. package/build-module/components/global-styles/dimensions-panel.js +36 -39
  324. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  325. package/build-module/components/global-styles/filters-panel.js +4 -1
  326. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  327. package/build-module/components/global-styles/shadow-panel-components.js +13 -7
  328. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  329. package/build-module/components/global-styles/typography-utils.js +17 -6
  330. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  331. package/build-module/components/global-styles/utils.js +4 -6
  332. package/build-module/components/global-styles/utils.js.map +1 -1
  333. package/build-module/components/grid/grid-item-movers.js +3 -3
  334. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  335. package/build-module/components/iframe/index.js +5 -5
  336. package/build-module/components/iframe/index.js.map +1 -1
  337. package/build-module/components/inner-blocks/index.js +2 -4
  338. package/build-module/components/inner-blocks/index.js.map +1 -1
  339. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  340. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  341. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
  342. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
  343. package/build-module/components/inserter/block-patterns-tab/index.js +4 -1
  344. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  345. package/build-module/components/inserter/library.js +2 -4
  346. package/build-module/components/inserter/library.js.map +1 -1
  347. package/build-module/components/inserter/media-tab/hooks.js +3 -3
  348. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  349. package/build-module/components/inserter/media-tab/media-list.js +1 -4
  350. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  351. package/build-module/components/inserter/media-tab/media-preview.js +8 -2
  352. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  353. package/build-module/components/inserter/media-tab/media-tab.js +4 -1
  354. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  355. package/build-module/components/inserter/menu.js +7 -24
  356. package/build-module/components/inserter/menu.js.map +1 -1
  357. package/build-module/components/inserter/quick-inserter.js +4 -1
  358. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  359. package/build-module/components/inserter-list-item/index.js +4 -4
  360. package/build-module/components/inserter-list-item/index.js.map +1 -1
  361. package/build-module/components/inserter-listbox/index.js +3 -7
  362. package/build-module/components/inserter-listbox/index.js.map +1 -1
  363. package/build-module/components/inserter-listbox/item.js +4 -1
  364. package/build-module/components/inserter-listbox/item.js.map +1 -1
  365. package/build-module/components/inspector-controls/groups.js +2 -0
  366. package/build-module/components/inspector-controls/groups.js.map +1 -1
  367. package/build-module/components/inspector-controls-tabs/index.js +4 -1
  368. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  369. package/build-module/components/inspector-controls-tabs/settings-tab.js +3 -1
  370. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  371. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
  372. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  373. package/build-module/components/inspector-popover-header/index.js +8 -2
  374. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  375. package/build-module/components/letter-spacing-control/index.js +7 -4
  376. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  377. package/build-module/components/link-control/index.js +19 -10
  378. package/build-module/components/link-control/index.js.map +1 -1
  379. package/build-module/components/link-control/settings-drawer.js +4 -1
  380. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  381. package/build-module/components/list-view/block-select-button.js +4 -1
  382. package/build-module/components/list-view/block-select-button.js.map +1 -1
  383. package/build-module/components/media-placeholder/index.js +28 -7
  384. package/build-module/components/media-placeholder/index.js.map +1 -1
  385. package/build-module/components/media-replace-flow/index.js +8 -1
  386. package/build-module/components/media-replace-flow/index.js.map +1 -1
  387. package/build-module/components/provider/use-block-sync.js +19 -19
  388. package/build-module/components/provider/use-block-sync.js.map +1 -1
  389. package/build-module/components/rich-text/event-listeners/paste-handler.js +12 -1
  390. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  391. package/build-module/components/rich-text/index.js +39 -31
  392. package/build-module/components/rich-text/index.js.map +1 -1
  393. package/build-module/components/rich-text/use-mark-persistent.js +5 -5
  394. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  395. package/build-module/components/skip-to-selected-block/index.js +4 -1
  396. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  397. package/build-module/components/tool-selector/index.js +4 -1
  398. package/build-module/components/tool-selector/index.js.map +1 -1
  399. package/build-module/components/url-input/button.js +12 -3
  400. package/build-module/components/url-input/button.js.map +1 -1
  401. package/build-module/components/url-input/index.js +4 -1
  402. package/build-module/components/url-input/index.js.map +1 -1
  403. package/build-module/components/use-block-drop-zone/index.js +4 -6
  404. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  405. package/build-module/components/writing-flow/index.js +2 -1
  406. package/build-module/components/writing-flow/index.js.map +1 -1
  407. package/build-module/components/writing-flow/use-arrow-nav.js +4 -1
  408. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  409. package/build-module/components/writing-flow/use-event-redirect.js +60 -0
  410. package/build-module/components/writing-flow/use-event-redirect.js.map +1 -0
  411. package/build-module/components/writing-flow/use-input.js +31 -1
  412. package/build-module/components/writing-flow/use-input.js.map +1 -1
  413. package/build-module/components/writing-flow/use-select-all.js +14 -1
  414. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  415. package/build-module/components/writing-flow/use-selection-observer.js +16 -2
  416. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  417. package/build-module/components/writing-flow/use-tab-nav.js +4 -4
  418. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  419. package/build-module/components/writing-flow/utils.js +26 -0
  420. package/build-module/components/writing-flow/utils.js.map +1 -1
  421. package/build-module/hooks/block-bindings.js +34 -31
  422. package/build-module/hooks/block-bindings.js.map +1 -1
  423. package/build-module/hooks/content-lock-ui.js +10 -30
  424. package/build-module/hooks/content-lock-ui.js.map +1 -1
  425. package/build-module/hooks/duotone.js +0 -4
  426. package/build-module/hooks/duotone.js.map +1 -1
  427. package/build-module/hooks/layout.js +4 -1
  428. package/build-module/hooks/layout.js.map +1 -1
  429. package/build-module/hooks/spacing-visualizer.js +3 -3
  430. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  431. package/build-module/hooks/style.js +1 -5
  432. package/build-module/hooks/style.js.map +1 -1
  433. package/build-module/hooks/use-bindings-attributes.js +19 -20
  434. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  435. package/build-module/hooks/use-zoom-out.js +7 -7
  436. package/build-module/hooks/use-zoom-out.js.map +1 -1
  437. package/build-module/layouts/constrained.js +43 -43
  438. package/build-module/layouts/constrained.js.map +1 -1
  439. package/build-module/layouts/flex.js +4 -1
  440. package/build-module/layouts/flex.js.map +1 -1
  441. package/build-module/layouts/utils.js +1 -7
  442. package/build-module/layouts/utils.js.map +1 -1
  443. package/build-module/private-apis.js +3 -2
  444. package/build-module/private-apis.js.map +1 -1
  445. package/build-module/store/actions.js +2 -7
  446. package/build-module/store/actions.js.map +1 -1
  447. package/build-module/store/private-actions.js +1 -0
  448. package/build-module/store/private-actions.js.map +1 -1
  449. package/build-module/store/private-keys.js +1 -0
  450. package/build-module/store/private-keys.js.map +1 -1
  451. package/build-module/store/private-selectors.js +12 -15
  452. package/build-module/store/private-selectors.js.map +1 -1
  453. package/build-module/store/reducer.js +1 -7
  454. package/build-module/store/reducer.js.map +1 -1
  455. package/build-module/store/selectors.js +22 -46
  456. package/build-module/store/selectors.js.map +1 -1
  457. package/build-module/store/utils.js +46 -0
  458. package/build-module/store/utils.js.map +1 -1
  459. package/build-module/utils/block-bindings.js +17 -12
  460. package/build-module/utils/block-bindings.js.map +1 -1
  461. package/build-module/utils/dom.js +99 -0
  462. package/build-module/utils/dom.js.map +1 -1
  463. package/build-module/utils/get-font-styles-and-weights.js +4 -4
  464. package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
  465. package/build-module/utils/transform-styles/index.js +120 -16
  466. package/build-module/utils/transform-styles/index.js.map +1 -1
  467. package/build-style/content-rtl.css +2 -11
  468. package/build-style/content.css +2 -11
  469. package/build-style/style-rtl.css +17 -38
  470. package/build-style/style.css +17 -38
  471. package/build-types/utils/dom.d.ts +25 -0
  472. package/build-types/utils/dom.d.ts.map +1 -1
  473. package/package.json +34 -32
  474. package/src/components/block-alignment-matrix-control/index.js +1 -1
  475. package/src/components/block-breadcrumb/index.js +4 -0
  476. package/src/components/block-breadcrumb/style.scss +1 -1
  477. package/src/components/block-canvas/index.js +9 -1
  478. package/src/components/block-compare/block-view.js +7 -1
  479. package/src/components/block-draggable/content.scss +1 -1
  480. package/src/components/block-draggable/index.js +4 -4
  481. package/src/components/block-draggable/style.scss +1 -1
  482. package/src/components/block-draggable/use-scroll-when-dragging.js +25 -25
  483. package/src/components/block-edit/multiple-usage-warning.js +4 -0
  484. package/src/components/block-inspector/index.js +22 -6
  485. package/src/components/block-list/block-invalid-warning.js +4 -2
  486. package/src/components/block-list/block.js +6 -2
  487. package/src/components/block-list/content.scss +2 -3
  488. package/src/components/block-list/use-block-props/index.js +3 -0
  489. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -0
  490. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +44 -0
  491. package/src/components/block-lock/style.scss +1 -1
  492. package/src/components/block-lock/toolbar.js +3 -3
  493. package/src/components/block-mover/button.js +2 -0
  494. package/src/components/block-mover/index.js +2 -0
  495. package/src/components/block-mover/style.scss +1 -1
  496. package/src/components/block-navigation/dropdown.js +2 -0
  497. package/src/components/block-pattern-setup/index.js +3 -7
  498. package/src/components/block-pattern-setup/setup-toolbar.js +17 -4
  499. package/src/components/block-pattern-setup/style.scss +2 -2
  500. package/src/components/block-patterns-list/index.js +15 -13
  501. package/src/components/block-patterns-list/style.scss +2 -2
  502. package/src/components/block-patterns-paging/index.js +6 -0
  503. package/src/components/block-popover/index.js +7 -28
  504. package/src/components/block-popover/style.scss +1 -1
  505. package/src/components/block-quick-navigation/index.js +2 -0
  506. package/src/components/block-settings-menu-controls/index.js +7 -1
  507. package/src/components/block-switcher/index.js +26 -20
  508. package/src/components/block-switcher/pattern-transformations-menu.js +3 -7
  509. package/src/components/block-switcher/style.scss +5 -6
  510. package/src/components/block-toolbar/index.js +17 -8
  511. package/src/components/block-toolbar/shuffle.js +9 -7
  512. package/src/components/block-tools/block-selection-button.js +4 -0
  513. package/src/components/block-tools/block-toolbar-popover.js +10 -6
  514. package/src/components/block-tools/style.scss +3 -4
  515. package/src/components/block-tools/use-block-toolbar-popover-props.js +2 -1
  516. package/src/components/block-tools/zoom-out-mode-inserters.js +2 -5
  517. package/src/components/block-tools/zoom-out-popover.js +3 -7
  518. package/src/components/block-tools/zoom-out-toolbar.js +20 -6
  519. package/src/components/block-variation-picker/README.md +2 -2
  520. package/src/components/block-variation-picker/index.js +6 -1
  521. package/src/components/block-variation-transforms/index.js +2 -0
  522. package/src/components/block-variation-transforms/style.scss +1 -1
  523. package/src/components/button-block-appender/content.scss +0 -1
  524. package/src/components/button-block-appender/index.js +14 -3
  525. package/src/components/color-palette/test/control.js +15 -2
  526. package/src/components/colors-gradients/dropdown.js +5 -1
  527. package/src/components/colors-gradients/style.scss +4 -4
  528. package/src/components/content-lock/index.js +1 -0
  529. package/src/components/content-lock/modify-content-lock-menu-item.js +58 -0
  530. package/src/components/default-block-appender/content.scss +0 -1
  531. package/src/components/editor-styles/index.js +4 -3
  532. package/src/components/global-styles/background-panel.js +6 -14
  533. package/src/components/global-styles/color-panel.js +8 -4
  534. package/src/components/global-styles/color-panel.native.js +2 -2
  535. package/src/components/global-styles/dimensions-panel.js +40 -40
  536. package/src/components/global-styles/filters-panel.js +5 -1
  537. package/src/components/global-styles/shadow-panel-components.js +12 -8
  538. package/src/components/global-styles/style.scss +3 -4
  539. package/src/components/global-styles/test/typography-utils.js +96 -5
  540. package/src/components/global-styles/test/utils.js +10 -0
  541. package/src/components/global-styles/typography-utils.js +22 -6
  542. package/src/components/global-styles/utils.js +4 -6
  543. package/src/components/grid/grid-item-movers.js +3 -3
  544. package/src/components/grid/style.scss +1 -1
  545. package/src/components/iframe/index.js +5 -5
  546. package/src/components/inner-blocks/index.js +2 -2
  547. package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -3
  548. package/src/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +2 -0
  549. package/src/components/inserter/block-patterns-tab/index.js +2 -0
  550. package/src/components/inserter/library.js +0 -2
  551. package/src/components/inserter/media-tab/hooks.js +3 -3
  552. package/src/components/inserter/media-tab/media-list.js +1 -4
  553. package/src/components/inserter/media-tab/media-preview.js +12 -2
  554. package/src/components/inserter/media-tab/media-tab.js +2 -0
  555. package/src/components/inserter/menu.js +15 -29
  556. package/src/components/inserter/quick-inserter.js +2 -0
  557. package/src/components/inserter/style.scss +6 -8
  558. package/src/components/inserter-list-item/index.js +4 -4
  559. package/src/components/inserter-list-item/style.scss +1 -3
  560. package/src/components/inserter-listbox/index.js +2 -8
  561. package/src/components/inserter-listbox/item.js +9 -1
  562. package/src/components/inspector-controls/groups.js +2 -0
  563. package/src/components/inspector-controls-tabs/index.js +2 -0
  564. package/src/components/inspector-controls-tabs/settings-tab.js +1 -0
  565. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +5 -2
  566. package/src/components/inspector-popover-header/index.js +4 -0
  567. package/src/components/letter-spacing-control/README.md +8 -1
  568. package/src/components/letter-spacing-control/index.js +7 -4
  569. package/src/components/link-control/index.js +17 -8
  570. package/src/components/link-control/settings-drawer.js +2 -0
  571. package/src/components/link-control/style.scss +1 -3
  572. package/src/components/list-view/block-select-button.js +2 -0
  573. package/src/components/list-view/style.scss +14 -16
  574. package/src/components/media-placeholder/index.js +14 -0
  575. package/src/components/media-replace-flow/index.js +12 -1
  576. package/src/components/provider/use-block-sync.js +20 -20
  577. package/src/components/responsive-block-control/README.md +3 -27
  578. package/src/components/rich-text/content.scss +1 -1
  579. package/src/components/rich-text/event-listeners/paste-handler.js +6 -1
  580. package/src/components/rich-text/index.js +54 -41
  581. package/src/components/rich-text/style.scss +1 -1
  582. package/src/components/rich-text/use-mark-persistent.js +5 -5
  583. package/src/components/skip-to-selected-block/index.js +2 -0
  584. package/src/components/spacing-sizes-control/style.scss +1 -0
  585. package/src/components/tool-selector/index.js +2 -0
  586. package/src/components/url-input/button.js +6 -0
  587. package/src/components/url-input/index.js +2 -0
  588. package/src/components/url-popover/stories/index.story.js +7 -1
  589. package/src/components/use-block-drop-zone/index.js +4 -4
  590. package/src/components/warning/content.scss +3 -10
  591. package/src/components/writing-flow/index.js +2 -0
  592. package/src/components/writing-flow/use-arrow-nav.js +9 -2
  593. package/src/components/writing-flow/use-event-redirect.js +72 -0
  594. package/src/components/writing-flow/use-input.js +36 -1
  595. package/src/components/writing-flow/use-select-all.js +18 -1
  596. package/src/components/writing-flow/use-selection-observer.js +23 -3
  597. package/src/components/writing-flow/use-tab-nav.js +4 -4
  598. package/src/components/writing-flow/utils.js +30 -0
  599. package/src/hooks/block-bindings.js +42 -43
  600. package/src/hooks/block-bindings.scss +1 -9
  601. package/src/hooks/content-lock-ui.js +11 -36
  602. package/src/hooks/duotone.js +0 -4
  603. package/src/hooks/layout.js +2 -0
  604. package/src/hooks/layout.scss +3 -11
  605. package/src/hooks/spacing-visualizer.js +3 -3
  606. package/src/hooks/style.js +1 -4
  607. package/src/hooks/use-bindings-attributes.js +23 -24
  608. package/src/hooks/use-zoom-out.js +7 -7
  609. package/src/layouts/constrained.js +50 -47
  610. package/src/layouts/flex.js +2 -0
  611. package/src/layouts/test/grid.js +2 -2
  612. package/src/layouts/test/utils.js +6 -8
  613. package/src/layouts/utils.js +1 -9
  614. package/src/private-apis.js +2 -0
  615. package/src/store/actions.js +4 -6
  616. package/src/store/private-actions.js +1 -0
  617. package/src/store/private-keys.js +1 -0
  618. package/src/store/private-selectors.js +12 -11
  619. package/src/store/reducer.js +0 -5
  620. package/src/store/selectors.js +32 -51
  621. package/src/store/utils.js +50 -0
  622. package/src/utils/block-bindings.js +15 -16
  623. package/src/utils/dom.js +117 -0
  624. package/src/utils/get-font-styles-and-weights.js +12 -4
  625. package/src/utils/test/get-font-styles-and-weights.js +148 -0
  626. package/src/utils/test/transform-styles.js +259 -50
  627. package/src/utils/transform-styles/index.js +132 -21
  628. package/tsconfig.json +1 -0
  629. package/tsconfig.tsbuildinfo +1 -1
  630. package/src/utils/test/__snapshots__/transform-styles.js.snap +0 -109
@@ -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,12 @@ import {
6
6
  __experimentalUnitControl as UnitControl,
7
7
  __experimentalToggleGroupControl as ToggleGroupControl,
8
8
  __experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,
9
+ __experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,
9
10
  } from '@wordpress/components';
10
11
  import { __ } from '@wordpress/i18n';
11
12
  import {
12
13
  Icon,
13
- positionCenter,
14
+ alignNone,
14
15
  stretchWide,
15
16
  justifyLeft,
16
17
  justifyCenter,
@@ -71,57 +72,59 @@ export default {
71
72
  return (
72
73
  <>
73
74
  { allowCustomContentAndWideSize && (
74
- <>
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>
75
+ <div className="block-editor-hooks__layout-controls-units">
76
+ <UnitControl
77
+ __next40pxDefaultSize
78
+ className="block-editor-hooks__layout-controls-unit-input"
79
+ label={ __( 'Content width' ) }
80
+ labelPosition="top"
81
+ value={ contentSize || wideSize || '' }
82
+ onChange={ ( nextWidth ) => {
83
+ nextWidth =
84
+ 0 > parseFloat( nextWidth )
85
+ ? '0'
86
+ : nextWidth;
87
+ onChange( {
88
+ ...layout,
89
+ contentSize: nextWidth,
90
+ } );
91
+ } }
92
+ units={ units }
93
+ prefix={
94
+ <InputControlPrefixWrapper variant="icon">
95
+ <Icon icon={ alignNone } />
96
+ </InputControlPrefixWrapper>
97
+ }
98
+ />
99
+ <UnitControl
100
+ __next40pxDefaultSize
101
+ className="block-editor-hooks__layout-controls-unit-input"
102
+ label={ __( 'Wide width' ) }
103
+ labelPosition="top"
104
+ value={ wideSize || contentSize || '' }
105
+ onChange={ ( nextWidth ) => {
106
+ nextWidth =
107
+ 0 > parseFloat( nextWidth )
108
+ ? '0'
109
+ : nextWidth;
110
+ onChange( {
111
+ ...layout,
112
+ wideSize: nextWidth,
113
+ } );
114
+ } }
115
+ units={ units }
116
+ prefix={
117
+ <InputControlPrefixWrapper variant="icon">
118
+ <Icon icon={ stretchWide } />
119
+ </InputControlPrefixWrapper>
120
+ }
121
+ />
119
122
  <p className="block-editor-hooks__layout-controls-helptext">
120
123
  { __(
121
124
  'Customize the width for all elements that are assigned to the center or wide columns.'
122
125
  ) }
123
126
  </p>
124
- </>
127
+ </div>
125
128
  ) }
126
129
  { allowJustification && (
127
130
  <ToggleGroupControl
@@ -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 }
@@ -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
  }
@@ -38,6 +38,7 @@ import {
38
38
  reusableBlocksSelectKey,
39
39
  globalStylesDataKey,
40
40
  globalStylesLinksDataKey,
41
+ sectionRootClientIdKey,
41
42
  } from './store/private-keys';
42
43
  import { requiresWrapperOnCopy } from './components/writing-flow/utils';
43
44
  import { PrivateRichText } from './components/rich-text/';
@@ -94,4 +95,5 @@ lock( privateApis, {
94
95
  __unstableBlockStyleVariationOverridesWithConfig,
95
96
  setBackgroundStyleDefaults,
96
97
  useBlockBindingsUtils,
98
+ sectionRootClientIdKey,
97
99
  } );
@@ -34,8 +34,6 @@ import {
34
34
  __experimentalUpdateSettings,
35
35
  privateRemoveBlocks,
36
36
  } from './private-actions';
37
- import { STORE_NAME } from './constants';
38
- import { unlock } from '../lock-unlock';
39
37
 
40
38
  /** @typedef {import('../components/use-on-block-drop/types').WPDropOperation} WPDropOperation */
41
39
 
@@ -1670,13 +1668,13 @@ export const setNavigationMode =
1670
1668
  */
1671
1669
  export const __unstableSetEditorMode =
1672
1670
  ( mode ) =>
1673
- ( { dispatch, select, registry } ) => {
1671
+ ( { dispatch, select } ) => {
1674
1672
  // When switching to zoom-out mode, we need to select the parent section
1675
1673
  if ( mode === 'zoom-out' ) {
1676
1674
  const firstSelectedClientId = select.getBlockSelectionStart();
1677
- const { sectionRootClientId } = unlock(
1678
- registry.select( STORE_NAME ).getSettings()
1679
- );
1675
+
1676
+ const sectionRootClientId = select.getSectionRootClientId();
1677
+
1680
1678
  if ( firstSelectedClientId ) {
1681
1679
  let sectionClientId;
1682
1680
 
@@ -367,6 +367,7 @@ export function expandBlock( clientId ) {
367
367
  export const modifyContentLockBlock =
368
368
  ( clientId ) =>
369
369
  ( { select, dispatch } ) => {
370
+ dispatch.selectBlock( clientId );
370
371
  dispatch.__unstableMarkNextChangeAsNotPersistent();
371
372
  dispatch.updateBlockAttributes( clientId, {
372
373
  templateLock: undefined,
@@ -2,3 +2,4 @@ export const globalStylesDataKey = Symbol( 'globalStylesDataKey' );
2
2
  export const globalStylesLinksDataKey = Symbol( 'globalStylesLinks' );
3
3
  export const selectBlockPatternsKey = Symbol( 'selectBlockPatternsKey' );
4
4
  export const reusableBlocksSelectKey = Symbol( 'reusableBlocksSelect' );
5
+ export const sectionRootClientIdKey = Symbol( 'sectionRootClientIdKey' );
@@ -20,6 +20,7 @@ import {
20
20
  checkAllowListRecursive,
21
21
  getAllPatternsDependants,
22
22
  getInsertBlockTypeDependants,
23
+ getGrammar,
23
24
  } from './utils';
24
25
  import { INSERTER_PATTERN_TYPES } from '../components/inserter/block-patterns-tab/utils';
25
26
  import { STORE_NAME } from './constants';
@@ -27,6 +28,7 @@ import { unlock } from '../lock-unlock';
27
28
  import {
28
29
  selectBlockPatternsKey,
29
30
  reusableBlocksSelectKey,
31
+ sectionRootClientIdKey,
30
32
  } from './private-keys';
31
33
 
32
34
  export { getBlockSettings } from './get-block-settings';
@@ -291,19 +293,18 @@ export const getInserterMediaCategories = createSelector(
291
293
  export const hasAllowedPatterns = createRegistrySelector( ( select ) =>
292
294
  createSelector(
293
295
  ( state, rootClientId = null ) => {
294
- const { getAllPatterns, __experimentalGetParsedPattern } = unlock(
295
- select( STORE_NAME )
296
- );
296
+ const { getAllPatterns } = unlock( select( STORE_NAME ) );
297
297
  const patterns = getAllPatterns();
298
298
  const { allowedBlockTypes } = getSettings( state );
299
- return patterns.some( ( { name, inserter = true } ) => {
299
+ return patterns.some( ( pattern ) => {
300
+ const { inserter = true } = pattern;
300
301
  if ( ! inserter ) {
301
302
  return false;
302
303
  }
303
- const { blocks } = __experimentalGetParsedPattern( name );
304
+ const grammar = getGrammar( pattern );
304
305
  return (
305
- checkAllowListRecursive( blocks, allowedBlockTypes ) &&
306
- blocks.every( ( { name: blockName } ) =>
306
+ checkAllowListRecursive( grammar, allowedBlockTypes ) &&
307
+ grammar.every( ( { name: blockName } ) =>
307
308
  canInsertBlockType( state, blockName, rootClientId )
308
309
  )
309
310
  );
@@ -512,10 +513,6 @@ export function getTemporarilyEditingFocusModeToRevert( state ) {
512
513
  return state.temporarilyEditingFocusModeRevert;
513
514
  }
514
515
 
515
- export function getInserterSearchInputRef( state ) {
516
- return state.inserterSearchInputRef;
517
- }
518
-
519
516
  /**
520
517
  * Returns the style attributes of multiple blocks.
521
518
  *
@@ -547,3 +544,7 @@ export const getBlockStyles = createSelector(
547
544
  export function isZoomOutMode( state ) {
548
545
  return state.editorMode === 'zoom-out';
549
546
  }
547
+
548
+ export function getSectionRootClientId( state ) {
549
+ return state.settings?.[ sectionRootClientIdKey ];
550
+ }
@@ -2087,10 +2087,6 @@ export function hoveredBlockClientId( state = false, action ) {
2087
2087
  return state;
2088
2088
  }
2089
2089
 
2090
- export function inserterSearchInputRef( state = { current: null } ) {
2091
- return state;
2092
- }
2093
-
2094
2090
  const combinedReducers = combineReducers( {
2095
2091
  blocks,
2096
2092
  isDragging,
@@ -2124,7 +2120,6 @@ const combinedReducers = combineReducers( {
2124
2120
  openedBlockSettingsMenu,
2125
2121
  registeredInserterMediaCategories,
2126
2122
  hoveredBlockClientId,
2127
- inserterSearchInputRef,
2128
2123
  } );
2129
2124
 
2130
2125
  function withAutomaticChangeReset( reducer ) {
@@ -7,7 +7,6 @@ import {
7
7
  getBlockVariations,
8
8
  hasBlockSupport,
9
9
  getPossibleBlockTransformations,
10
- parse,
11
10
  switchToBlockType,
12
11
  store as blocksStore,
13
12
  } from '@wordpress/blocks';
@@ -27,6 +26,8 @@ import {
27
26
  checkAllowList,
28
27
  getAllPatternsDependants,
29
28
  getInsertBlockTypeDependants,
29
+ getParsedPattern,
30
+ getGrammar,
30
31
  } from './utils';
31
32
  import { orderBy } from '../utils/sorting';
32
33
  import { STORE_NAME } from './constants';
@@ -36,6 +37,7 @@ import {
36
37
  getContentLockingParent,
37
38
  getTemporarilyEditingAsBlocks,
38
39
  getTemporarilyEditingFocusModeToRevert,
40
+ getSectionRootClientId,
39
41
  } from './private-selectors';
40
42
 
41
43
  /**
@@ -1752,7 +1754,7 @@ export function canRemoveBlocks( state, clientIds ) {
1752
1754
  * @param {Object} state Editor state.
1753
1755
  * @param {string} clientId The block client Id.
1754
1756
  *
1755
- * @return {boolean | undefined} Whether the given block is allowed to be moved.
1757
+ * @return {boolean} Whether the given block is allowed to be moved.
1756
1758
  */
1757
1759
  export function canMoveBlock( state, clientId ) {
1758
1760
  const attributes = getBlockAttributes( state, clientId );
@@ -2057,9 +2059,8 @@ export const getInserterItems = createRegistrySelector( ( select ) =>
2057
2059
  if ( ! item.rootClientId ) {
2058
2060
  let sectionRootClientId;
2059
2061
  try {
2060
- sectionRootClientId = unlock(
2061
- getSettings( state )
2062
- ).sectionRootClientId;
2062
+ sectionRootClientId =
2063
+ getSectionRootClientId( state );
2063
2064
  } catch ( e ) {}
2064
2065
  if (
2065
2066
  sectionRootClientId &&
@@ -2349,40 +2350,12 @@ export function __experimentalGetDirectInsertBlock(
2349
2350
  }
2350
2351
 
2351
2352
  export const __experimentalGetParsedPattern = createRegistrySelector(
2352
- ( select ) =>
2353
- createSelector(
2354
- ( state, patternName ) => {
2355
- const pattern = unlock( select( STORE_NAME ) ).getPatternBySlug(
2356
- patternName
2357
- );
2358
- if ( ! pattern ) {
2359
- return null;
2360
- }
2361
- const blocks = parse( pattern.content, {
2362
- __unstableSkipMigrationLogs: true,
2363
- } );
2364
- if ( blocks.length === 1 ) {
2365
- blocks[ 0 ].attributes = {
2366
- ...blocks[ 0 ].attributes,
2367
- metadata: {
2368
- ...( blocks[ 0 ].attributes.metadata || {} ),
2369
- categories: pattern.categories,
2370
- patternName: pattern.name,
2371
- name:
2372
- blocks[ 0 ].attributes.metadata?.name ||
2373
- pattern.title,
2374
- },
2375
- };
2376
- }
2377
- return {
2378
- ...pattern,
2379
- blocks,
2380
- };
2381
- },
2382
- ( state, patternName ) => [
2383
- unlock( select( STORE_NAME ) ).getPatternBySlug( patternName ),
2384
- ]
2385
- )
2353
+ ( select ) => ( state, patternName ) => {
2354
+ const pattern = unlock( select( STORE_NAME ) ).getPatternBySlug(
2355
+ patternName
2356
+ );
2357
+ return pattern ? getParsedPattern( pattern ) : null;
2358
+ }
2386
2359
  );
2387
2360
 
2388
2361
  const getAllowedPatternsDependants = ( select ) => ( state, rootClientId ) => [
@@ -2401,23 +2374,30 @@ const getAllowedPatternsDependants = ( select ) => ( state, rootClientId ) => [
2401
2374
  export const __experimentalGetAllowedPatterns = createRegistrySelector(
2402
2375
  ( select ) => {
2403
2376
  return createSelector( ( state, rootClientId = null ) => {
2404
- const {
2405
- getAllPatterns,
2406
- __experimentalGetParsedPattern: getParsedPattern,
2407
- } = unlock( select( STORE_NAME ) );
2377
+ const { getAllPatterns } = unlock( select( STORE_NAME ) );
2408
2378
  const patterns = getAllPatterns();
2409
2379
  const { allowedBlockTypes } = getSettings( state );
2410
-
2411
2380
  const parsedPatterns = patterns
2412
2381
  .filter( ( { inserter = true } ) => !! inserter )
2413
- .map( ( { name } ) => getParsedPattern( name ) );
2382
+ .map( ( pattern ) => {
2383
+ return {
2384
+ ...pattern,
2385
+ get blocks() {
2386
+ return getParsedPattern( pattern ).blocks;
2387
+ },
2388
+ };
2389
+ } );
2390
+
2414
2391
  const availableParsedPatterns = parsedPatterns.filter(
2415
- ( { blocks } ) =>
2416
- checkAllowListRecursive( blocks, allowedBlockTypes )
2392
+ ( pattern ) =>
2393
+ checkAllowListRecursive(
2394
+ getGrammar( pattern ),
2395
+ allowedBlockTypes
2396
+ )
2417
2397
  );
2418
2398
  const patternsAllowed = availableParsedPatterns.filter(
2419
- ( { blocks } ) =>
2420
- blocks.every( ( { name } ) =>
2399
+ ( pattern ) =>
2400
+ getGrammar( pattern ).every( ( { blockName: name } ) =>
2421
2401
  canInsertBlockType( state, name, rootClientId )
2422
2402
  )
2423
2403
  );
@@ -2858,7 +2838,7 @@ export function __unstableHasActiveBlockOverlayActive( state, clientId ) {
2858
2838
 
2859
2839
  // In zoom-out mode, the block overlay is always active for section level blocks.
2860
2840
  if ( editorMode === 'zoom-out' ) {
2861
- const { sectionRootClientId } = unlock( getSettings( state ) );
2841
+ const sectionRootClientId = getSectionRootClientId( state );
2862
2842
  if ( sectionRootClientId ) {
2863
2843
  const sectionClientIds = getBlockOrder(
2864
2844
  state,
@@ -2951,7 +2931,8 @@ export const getBlockEditingMode = createRegistrySelector(
2951
2931
  // sections.
2952
2932
  const editorMode = __unstableGetEditorMode( state );
2953
2933
  if ( editorMode === 'zoom-out' ) {
2954
- const { sectionRootClientId } = unlock( getSettings( state ) );
2934
+ const sectionRootClientId = getSectionRootClientId( state );
2935
+
2955
2936
  if ( clientId === '' /* ROOT_CONTAINER_CLIENT_ID */ ) {
2956
2937
  return sectionRootClientId ? 'disabled' : 'contentOnly';
2957
2938
  }
@@ -1,3 +1,9 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { parse } from '@wordpress/blocks';
5
+ import { parse as grammarParse } from '@wordpress/block-serialization-default-parser';
6
+
1
7
  /**
2
8
  * Internal dependencies
3
9
  */
@@ -7,6 +13,50 @@ import { STORE_NAME } from './constants';
7
13
 
8
14
  export const withRootClientIdOptionKey = Symbol( 'withRootClientId' );
9
15
 
16
+ const parsedPatternCache = new WeakMap();
17
+ const grammarMapCache = new WeakMap();
18
+
19
+ function parsePattern( pattern ) {
20
+ const blocks = parse( pattern.content, {
21
+ __unstableSkipMigrationLogs: true,
22
+ } );
23
+ if ( blocks.length === 1 ) {
24
+ blocks[ 0 ].attributes = {
25
+ ...blocks[ 0 ].attributes,
26
+ metadata: {
27
+ ...( blocks[ 0 ].attributes.metadata || {} ),
28
+ categories: pattern.categories,
29
+ patternName: pattern.name,
30
+ name: blocks[ 0 ].attributes.metadata?.name || pattern.title,
31
+ },
32
+ };
33
+ }
34
+ return {
35
+ ...pattern,
36
+ blocks,
37
+ };
38
+ }
39
+
40
+ export function getParsedPattern( pattern ) {
41
+ let parsedPattern = parsedPatternCache.get( pattern );
42
+ if ( ! parsedPattern ) {
43
+ parsedPattern = parsePattern( pattern );
44
+ parsedPatternCache.set( pattern, parsedPattern );
45
+ }
46
+ return parsedPattern;
47
+ }
48
+
49
+ export function getGrammar( pattern ) {
50
+ let grammarMap = grammarMapCache.get( pattern );
51
+ if ( ! grammarMap ) {
52
+ grammarMap = grammarParse( pattern.content );
53
+ // Block names are null only at the top level for whitespace.
54
+ grammarMap = grammarMap.filter( ( block ) => block.blockName !== null );
55
+ grammarMapCache.set( pattern, grammarMap );
56
+ }
57
+ return grammarMap;
58
+ }
59
+
10
60
  export const checkAllowList = ( list, item, defaultResult = null ) => {
11
61
  if ( typeof list === 'boolean' ) {
12
62
  return list;