@wordpress/block-editor 13.2.0 → 13.4.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 (538) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +0 -5
  3. package/build/components/alignment-control/ui.js +2 -2
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/block-alignment-control/ui.js +1 -1
  6. package/build/components/block-alignment-control/ui.js.map +1 -1
  7. package/build/components/block-alignment-control/ui.native.js +1 -1
  8. package/build/components/block-alignment-control/ui.native.js.map +1 -1
  9. package/build/components/block-breadcrumb/index.js +12 -1
  10. package/build/components/block-breadcrumb/index.js.map +1 -1
  11. package/build/components/block-inspector/index.js +6 -3
  12. package/build/components/block-inspector/index.js.map +1 -1
  13. package/build/components/block-list/use-block-props/index.js +3 -1
  14. package/build/components/block-list/use-block-props/index.js.map +1 -1
  15. package/build/components/block-list/use-block-props/use-block-refs.js +9 -2
  16. package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  17. package/build/components/block-list/use-block-props/use-is-hovered.js +25 -9
  18. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  19. package/build/components/block-list/use-in-between-inserter.js +3 -2
  20. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  21. package/build/components/block-lock/modal.js +2 -0
  22. package/build/components/block-lock/modal.js.map +1 -1
  23. package/build/components/block-lock/toolbar.js +0 -1
  24. package/build/components/block-lock/toolbar.js.map +1 -1
  25. package/build/components/block-mover/button.js +1 -1
  26. package/build/components/block-mover/button.js.map +1 -1
  27. package/build/components/block-mover/index.js +1 -1
  28. package/build/components/block-mover/index.js.map +1 -1
  29. package/build/components/block-pattern-setup/setup-toolbar.js +2 -2
  30. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  31. package/build/components/block-patterns-paging/index.js +5 -7
  32. package/build/components/block-patterns-paging/index.js.map +1 -1
  33. package/build/components/block-quick-navigation/index.js +20 -17
  34. package/build/components/block-quick-navigation/index.js.map +1 -1
  35. package/build/components/block-removal-warning-modal/index.js +2 -0
  36. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  37. package/build/components/block-rename/modal.js +4 -12
  38. package/build/components/block-rename/modal.js.map +1 -1
  39. package/build/components/block-switcher/index.js +1 -1
  40. package/build/components/block-switcher/index.js.map +1 -1
  41. package/build/components/block-switcher/pattern-transformations-menu.js +11 -12
  42. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  43. package/build/components/block-switcher/preview-block-popover.js +20 -17
  44. package/build/components/block-switcher/preview-block-popover.js.map +1 -1
  45. package/build/components/block-toolbar/shuffle.js +6 -2
  46. package/build/components/block-toolbar/shuffle.js.map +1 -1
  47. package/build/components/block-tools/block-selection-button.js +7 -58
  48. package/build/components/block-tools/block-selection-button.js.map +1 -1
  49. package/build/components/block-tools/block-toolbar-breadcrumb.js +9 -2
  50. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  51. package/build/components/block-tools/index.js +14 -1
  52. package/build/components/block-tools/index.js.map +1 -1
  53. package/build/components/block-tools/use-show-block-tools.js +9 -8
  54. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  55. package/build/components/block-tools/zoom-out-mode-inserter-button.js +45 -0
  56. package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
  57. package/build/components/block-tools/zoom-out-mode-inserters.js +29 -28
  58. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  59. package/build/components/block-tools/zoom-out-popover.js +58 -0
  60. package/build/components/block-tools/zoom-out-popover.js.map +1 -0
  61. package/build/components/block-tools/zoom-out-toolbar.js +138 -0
  62. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -0
  63. package/build/components/button-block-appender/index.js +3 -1
  64. package/build/components/button-block-appender/index.js.map +1 -1
  65. package/build/components/child-layout-control/index.js +26 -18
  66. package/build/components/child-layout-control/index.js.map +1 -1
  67. package/build/components/date-format-picker/index.js +1 -1
  68. package/build/components/date-format-picker/index.js.map +1 -1
  69. package/build/components/default-block-appender/index.js +7 -4
  70. package/build/components/default-block-appender/index.js.map +1 -1
  71. package/build/components/dimensions-tool/index.js +6 -4
  72. package/build/components/dimensions-tool/index.js.map +1 -1
  73. package/build/components/font-appearance-control/index.js +22 -62
  74. package/build/components/font-appearance-control/index.js.map +1 -1
  75. package/build/components/global-styles/background-panel.js +185 -116
  76. package/build/components/global-styles/background-panel.js.map +1 -1
  77. package/build/components/global-styles/border-panel.js +2 -1
  78. package/build/components/global-styles/border-panel.js.map +1 -1
  79. package/build/components/global-styles/color-panel.js +2 -1
  80. package/build/components/global-styles/color-panel.js.map +1 -1
  81. package/build/components/global-styles/dimensions-panel.js +2 -1
  82. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  83. package/build/components/global-styles/filters-panel.js +2 -1
  84. package/build/components/global-styles/filters-panel.js.map +1 -1
  85. package/build/components/global-styles/hooks.js +13 -1
  86. package/build/components/global-styles/hooks.js.map +1 -1
  87. package/build/components/global-styles/image-settings-panel.js +2 -1
  88. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  89. package/build/components/global-styles/typography-panel.js +45 -24
  90. package/build/components/global-styles/typography-panel.js.map +1 -1
  91. package/build/components/global-styles/typography-utils.js +121 -0
  92. package/build/components/global-styles/typography-utils.js.map +1 -1
  93. package/build/components/global-styles/use-global-styles-output.js +47 -13
  94. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  95. package/build/components/global-styles/utils.js +17 -7
  96. package/build/components/global-styles/utils.js.map +1 -1
  97. package/build/components/grid/grid-item-movers.js +90 -48
  98. package/build/components/grid/grid-item-movers.js.map +1 -1
  99. package/build/components/grid/grid-item-resizer.js +2 -2
  100. package/build/components/grid/grid-item-resizer.js.map +1 -1
  101. package/build/components/grid/grid-visualizer.js +117 -37
  102. package/build/components/grid/grid-visualizer.js.map +1 -1
  103. package/build/components/grid/use-grid-layout-sync.js +60 -41
  104. package/build/components/grid/use-grid-layout-sync.js.map +1 -1
  105. package/build/components/index.js +1 -9
  106. package/build/components/index.js.map +1 -1
  107. package/build/components/inner-blocks/index.js +2 -2
  108. package/build/components/inner-blocks/index.js.map +1 -1
  109. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
  110. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  111. package/build/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
  112. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  113. package/build/components/inserter/media-tab/media-panel.js +1 -0
  114. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  115. package/build/components/inserter/menu.js +26 -4
  116. package/build/components/inserter/menu.js.map +1 -1
  117. package/build/components/inserter/preview-panel.js +20 -3
  118. package/build/components/inserter/preview-panel.js.map +1 -1
  119. package/build/components/inserter/quick-inserter.js +2 -1
  120. package/build/components/inserter/quick-inserter.js.map +1 -1
  121. package/build/components/inserter-draggable-blocks/index.js +10 -3
  122. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  123. package/build/components/inspector-controls/block-support-tools-panel.js +2 -1
  124. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  125. package/build/components/inspector-controls-tabs/settings-tab.js +1 -2
  126. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  127. package/build/components/link-control/link-preview.js +1 -1
  128. package/build/components/link-control/link-preview.js.map +1 -1
  129. package/build/components/list-view/block-select-button.js +2 -6
  130. package/build/components/list-view/block-select-button.js.map +1 -1
  131. package/build/components/list-view/block.js +2 -2
  132. package/build/components/list-view/block.js.map +1 -1
  133. package/build/components/list-view/utils.js +3 -1
  134. package/build/components/list-view/utils.js.map +1 -1
  135. package/build/components/media-placeholder/index.js +19 -23
  136. package/build/components/media-placeholder/index.js.map +1 -1
  137. package/build/components/navigable-toolbar/index.js +3 -1
  138. package/build/components/navigable-toolbar/index.js.map +1 -1
  139. package/build/components/rich-text/format-toolbar/index.js +1 -1
  140. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  141. package/build/components/rich-text/index.js +1 -1
  142. package/build/components/rich-text/index.js.map +1 -1
  143. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
  144. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  145. package/build/components/tabbed-sidebar/index.js +66 -0
  146. package/build/components/tabbed-sidebar/index.js.map +1 -0
  147. package/build/components/url-popover/image-url-input-ui.js +3 -3
  148. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  149. package/build/components/url-popover/index.js +3 -0
  150. package/build/components/url-popover/index.js.map +1 -1
  151. package/build/hooks/background.js +26 -4
  152. package/build/hooks/background.js.map +1 -1
  153. package/build/hooks/block-hooks.js +11 -17
  154. package/build/hooks/block-hooks.js.map +1 -1
  155. package/build/hooks/block-style-variation.js +169 -4
  156. package/build/hooks/block-style-variation.js.map +1 -1
  157. package/build/hooks/duotone.js +16 -11
  158. package/build/hooks/duotone.js.map +1 -1
  159. package/build/hooks/grid-visualizer.js +62 -0
  160. package/build/hooks/grid-visualizer.js.map +1 -0
  161. package/build/hooks/index.js +15 -2
  162. package/build/hooks/index.js.map +1 -1
  163. package/build/hooks/layout-child.js +47 -23
  164. package/build/hooks/layout-child.js.map +1 -1
  165. package/build/hooks/position.js +4 -15
  166. package/build/hooks/position.js.map +1 -1
  167. package/build/hooks/use-bindings-attributes.js +96 -55
  168. package/build/hooks/use-bindings-attributes.js.map +1 -1
  169. package/build/hooks/utils.js +2 -0
  170. package/build/hooks/utils.js.map +1 -1
  171. package/build/layouts/constrained.js +50 -4
  172. package/build/layouts/constrained.js.map +1 -1
  173. package/build/layouts/grid.js +92 -51
  174. package/build/layouts/grid.js.map +1 -1
  175. package/build/private-apis.js +6 -4
  176. package/build/private-apis.js.map +1 -1
  177. package/build/store/actions.js +18 -1
  178. package/build/store/actions.js.map +1 -1
  179. package/build/store/defaults.js +0 -2
  180. package/build/store/defaults.js.map +1 -1
  181. package/build/store/defaults.native.js +0 -3
  182. package/build/store/defaults.native.js.map +1 -1
  183. package/build/store/private-keys.js +2 -1
  184. package/build/store/private-keys.js.map +1 -1
  185. package/build/store/reducer.js +19 -1
  186. package/build/store/reducer.js.map +1 -1
  187. package/build/store/selectors.js +13 -1
  188. package/build/store/selectors.js.map +1 -1
  189. package/build/utils/format-font-style.js +45 -0
  190. package/build/utils/format-font-style.js.map +1 -0
  191. package/build/utils/format-font-weight.js +68 -0
  192. package/build/utils/format-font-weight.js.map +1 -0
  193. package/build/utils/get-editor-region.js +34 -0
  194. package/build/utils/get-editor-region.js.map +1 -0
  195. package/build/utils/get-font-styles-and-weights.js +167 -0
  196. package/build/utils/get-font-styles-and-weights.js.map +1 -0
  197. package/build/utils/pasting.js +5 -13
  198. package/build/utils/pasting.js.map +1 -1
  199. package/build-module/components/alignment-control/ui.js +2 -2
  200. package/build-module/components/alignment-control/ui.js.map +1 -1
  201. package/build-module/components/block-alignment-control/ui.js +1 -1
  202. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  203. package/build-module/components/block-alignment-control/ui.native.js +1 -1
  204. package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
  205. package/build-module/components/block-breadcrumb/index.js +12 -1
  206. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  207. package/build-module/components/block-inspector/index.js +6 -3
  208. package/build-module/components/block-inspector/index.js.map +1 -1
  209. package/build-module/components/block-list/use-block-props/index.js +3 -1
  210. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  211. package/build-module/components/block-list/use-block-props/use-block-refs.js +11 -4
  212. package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  213. package/build-module/components/block-list/use-block-props/use-is-hovered.js +26 -9
  214. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  215. package/build-module/components/block-list/use-in-between-inserter.js +3 -2
  216. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  217. package/build-module/components/block-lock/modal.js +2 -0
  218. package/build-module/components/block-lock/modal.js.map +1 -1
  219. package/build-module/components/block-lock/toolbar.js +0 -1
  220. package/build-module/components/block-lock/toolbar.js.map +1 -1
  221. package/build-module/components/block-mover/button.js +1 -1
  222. package/build-module/components/block-mover/button.js.map +1 -1
  223. package/build-module/components/block-mover/index.js +1 -1
  224. package/build-module/components/block-mover/index.js.map +1 -1
  225. package/build-module/components/block-pattern-setup/setup-toolbar.js +2 -2
  226. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  227. package/build-module/components/block-patterns-paging/index.js +5 -7
  228. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  229. package/build-module/components/block-quick-navigation/index.js +20 -17
  230. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  231. package/build-module/components/block-removal-warning-modal/index.js +2 -0
  232. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  233. package/build-module/components/block-rename/modal.js +5 -13
  234. package/build-module/components/block-rename/modal.js.map +1 -1
  235. package/build-module/components/block-switcher/index.js +1 -1
  236. package/build-module/components/block-switcher/index.js.map +1 -1
  237. package/build-module/components/block-switcher/pattern-transformations-menu.js +12 -13
  238. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  239. package/build-module/components/block-switcher/preview-block-popover.js +20 -17
  240. package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
  241. package/build-module/components/block-toolbar/shuffle.js +6 -2
  242. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  243. package/build-module/components/block-tools/block-selection-button.js +10 -61
  244. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  245. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +9 -2
  246. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  247. package/build-module/components/block-tools/index.js +14 -1
  248. package/build-module/components/block-tools/index.js.map +1 -1
  249. package/build-module/components/block-tools/use-show-block-tools.js +9 -8
  250. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  251. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +37 -0
  252. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
  253. package/build-module/components/block-tools/zoom-out-mode-inserters.js +30 -29
  254. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  255. package/build-module/components/block-tools/zoom-out-popover.js +49 -0
  256. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -0
  257. package/build-module/components/block-tools/zoom-out-toolbar.js +131 -0
  258. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -0
  259. package/build-module/components/button-block-appender/index.js +3 -1
  260. package/build-module/components/button-block-appender/index.js.map +1 -1
  261. package/build-module/components/child-layout-control/index.js +27 -19
  262. package/build-module/components/child-layout-control/index.js.map +1 -1
  263. package/build-module/components/date-format-picker/index.js +2 -2
  264. package/build-module/components/date-format-picker/index.js.map +1 -1
  265. package/build-module/components/default-block-appender/index.js +7 -4
  266. package/build-module/components/default-block-appender/index.js.map +1 -1
  267. package/build-module/components/dimensions-tool/index.js +6 -4
  268. package/build-module/components/dimensions-tool/index.js.map +1 -1
  269. package/build-module/components/font-appearance-control/index.js +24 -62
  270. package/build-module/components/font-appearance-control/index.js.map +1 -1
  271. package/build-module/components/global-styles/background-panel.js +188 -119
  272. package/build-module/components/global-styles/background-panel.js.map +1 -1
  273. package/build-module/components/global-styles/border-panel.js +3 -2
  274. package/build-module/components/global-styles/border-panel.js.map +1 -1
  275. package/build-module/components/global-styles/color-panel.js +3 -2
  276. package/build-module/components/global-styles/color-panel.js.map +1 -1
  277. package/build-module/components/global-styles/dimensions-panel.js +3 -2
  278. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  279. package/build-module/components/global-styles/filters-panel.js +3 -2
  280. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  281. package/build-module/components/global-styles/hooks.js +13 -1
  282. package/build-module/components/global-styles/hooks.js.map +1 -1
  283. package/build-module/components/global-styles/image-settings-panel.js +3 -2
  284. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  285. package/build-module/components/global-styles/typography-panel.js +47 -26
  286. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  287. package/build-module/components/global-styles/typography-utils.js +117 -0
  288. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  289. package/build-module/components/global-styles/use-global-styles-output.js +47 -13
  290. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  291. package/build-module/components/global-styles/utils.js +15 -6
  292. package/build-module/components/global-styles/utils.js.map +1 -1
  293. package/build-module/components/grid/grid-item-movers.js +93 -50
  294. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  295. package/build-module/components/grid/grid-item-resizer.js +2 -2
  296. package/build-module/components/grid/grid-item-resizer.js.map +1 -1
  297. package/build-module/components/grid/grid-visualizer.js +118 -38
  298. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  299. package/build-module/components/grid/use-grid-layout-sync.js +61 -42
  300. package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
  301. package/build-module/components/index.js +0 -5
  302. package/build-module/components/index.js.map +1 -1
  303. package/build-module/components/inner-blocks/index.js +2 -2
  304. package/build-module/components/inner-blocks/index.js.map +1 -1
  305. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
  306. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  307. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
  308. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  309. package/build-module/components/inserter/media-tab/media-panel.js +1 -0
  310. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  311. package/build-module/components/inserter/menu.js +26 -4
  312. package/build-module/components/inserter/menu.js.map +1 -1
  313. package/build-module/components/inserter/preview-panel.js +20 -3
  314. package/build-module/components/inserter/preview-panel.js.map +1 -1
  315. package/build-module/components/inserter/quick-inserter.js +2 -1
  316. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  317. package/build-module/components/inserter-draggable-blocks/index.js +10 -3
  318. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  319. package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -2
  320. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  321. package/build-module/components/inspector-controls-tabs/settings-tab.js +1 -2
  322. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  323. package/build-module/components/link-control/link-preview.js +1 -1
  324. package/build-module/components/link-control/link-preview.js.map +1 -1
  325. package/build-module/components/list-view/block-select-button.js +3 -7
  326. package/build-module/components/list-view/block-select-button.js.map +1 -1
  327. package/build-module/components/list-view/block.js +2 -2
  328. package/build-module/components/list-view/block.js.map +1 -1
  329. package/build-module/components/list-view/utils.js +3 -1
  330. package/build-module/components/list-view/utils.js.map +1 -1
  331. package/build-module/components/media-placeholder/index.js +19 -23
  332. package/build-module/components/media-placeholder/index.js.map +1 -1
  333. package/build-module/components/navigable-toolbar/index.js +3 -1
  334. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  335. package/build-module/components/rich-text/format-toolbar/index.js +1 -1
  336. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  337. package/build-module/components/rich-text/index.js +1 -1
  338. package/build-module/components/rich-text/index.js.map +1 -1
  339. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
  340. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  341. package/build-module/components/tabbed-sidebar/index.js +60 -0
  342. package/build-module/components/tabbed-sidebar/index.js.map +1 -0
  343. package/build-module/components/url-popover/image-url-input-ui.js +3 -3
  344. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  345. package/build-module/components/url-popover/index.js +3 -0
  346. package/build-module/components/url-popover/index.js.map +1 -1
  347. package/build-module/hooks/background.js +26 -4
  348. package/build-module/hooks/background.js.map +1 -1
  349. package/build-module/hooks/block-hooks.js +11 -17
  350. package/build-module/hooks/block-hooks.js.map +1 -1
  351. package/build-module/hooks/block-style-variation.js +168 -4
  352. package/build-module/hooks/block-style-variation.js.map +1 -1
  353. package/build-module/hooks/duotone.js +16 -11
  354. package/build-module/hooks/duotone.js.map +1 -1
  355. package/build-module/hooks/grid-visualizer.js +61 -0
  356. package/build-module/hooks/grid-visualizer.js.map +1 -0
  357. package/build-module/hooks/index.js +3 -0
  358. package/build-module/hooks/index.js.map +1 -1
  359. package/build-module/hooks/layout-child.js +47 -23
  360. package/build-module/hooks/layout-child.js.map +1 -1
  361. package/build-module/hooks/position.js +4 -15
  362. package/build-module/hooks/position.js.map +1 -1
  363. package/build-module/hooks/use-bindings-attributes.js +96 -56
  364. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  365. package/build-module/hooks/utils.js +2 -0
  366. package/build-module/hooks/utils.js.map +1 -1
  367. package/build-module/layouts/constrained.js +50 -4
  368. package/build-module/layouts/constrained.js.map +1 -1
  369. package/build-module/layouts/grid.js +92 -51
  370. package/build-module/layouts/grid.js.map +1 -1
  371. package/build-module/private-apis.js +8 -6
  372. package/build-module/private-apis.js.map +1 -1
  373. package/build-module/store/actions.js +15 -0
  374. package/build-module/store/actions.js.map +1 -1
  375. package/build-module/store/defaults.js +0 -2
  376. package/build-module/store/defaults.js.map +1 -1
  377. package/build-module/store/defaults.native.js +0 -3
  378. package/build-module/store/defaults.native.js.map +1 -1
  379. package/build-module/store/private-keys.js +1 -0
  380. package/build-module/store/private-keys.js.map +1 -1
  381. package/build-module/store/reducer.js +18 -1
  382. package/build-module/store/reducer.js.map +1 -1
  383. package/build-module/store/selectors.js +10 -0
  384. package/build-module/store/selectors.js.map +1 -1
  385. package/build-module/utils/format-font-style.js +39 -0
  386. package/build-module/utils/format-font-style.js.map +1 -0
  387. package/build-module/utils/format-font-weight.js +62 -0
  388. package/build-module/utils/format-font-weight.js.map +1 -0
  389. package/build-module/utils/get-editor-region.js +28 -0
  390. package/build-module/utils/get-editor-region.js.map +1 -0
  391. package/build-module/utils/get-font-styles-and-weights.js +160 -0
  392. package/build-module/utils/get-font-styles-and-weights.js.map +1 -0
  393. package/build-module/utils/pasting.js +5 -13
  394. package/build-module/utils/pasting.js.map +1 -1
  395. package/build-style/content-rtl.css +7 -6
  396. package/build-style/content.css +7 -6
  397. package/build-style/style-rtl.css +356 -181
  398. package/build-style/style.css +356 -181
  399. package/build-types/components/block-context/index.d.ts +2 -2
  400. package/build-types/components/block-context/index.d.ts.map +1 -1
  401. package/build-types/utils/dom.d.ts.map +1 -1
  402. package/package.json +32 -32
  403. package/src/components/alignment-control/ui.js +2 -2
  404. package/src/components/block-alignment-control/ui.js +1 -1
  405. package/src/components/block-alignment-control/ui.native.js +1 -1
  406. package/src/components/block-breadcrumb/index.js +16 -1
  407. package/src/components/block-context/README.md +4 -4
  408. package/src/components/block-inspector/index.js +8 -4
  409. package/src/components/block-list/content.scss +2 -16
  410. package/src/components/block-list/use-block-props/index.js +1 -1
  411. package/src/components/block-list/use-block-props/use-block-refs.js +19 -3
  412. package/src/components/block-list/use-block-props/use-is-hovered.js +26 -11
  413. package/src/components/block-list/use-in-between-inserter.js +5 -1
  414. package/src/components/block-lock/modal.js +10 -2
  415. package/src/components/block-lock/style.scss +4 -8
  416. package/src/components/block-lock/toolbar.js +0 -1
  417. package/src/components/block-mover/button.js +1 -1
  418. package/src/components/block-mover/index.js +1 -1
  419. package/src/components/block-pattern-setup/setup-toolbar.js +2 -2
  420. package/src/components/block-patterns-paging/index.js +8 -11
  421. package/src/components/block-patterns-paging/style.scss +0 -5
  422. package/src/components/block-quick-navigation/index.js +21 -28
  423. package/src/components/block-removal-warning-modal/index.js +10 -2
  424. package/src/components/block-rename/modal.js +2 -8
  425. package/src/components/block-switcher/index.js +1 -1
  426. package/src/components/block-switcher/pattern-transformations-menu.js +17 -15
  427. package/src/components/block-switcher/preview-block-popover.js +20 -14
  428. package/src/components/block-switcher/style.scss +8 -17
  429. package/src/components/block-switcher/test/index.js +6 -6
  430. package/src/components/block-toolbar/shuffle.js +9 -1
  431. package/src/components/block-toolbar/style.scss +1 -11
  432. package/src/components/block-tools/block-selection-button.js +11 -83
  433. package/src/components/block-tools/block-toolbar-breadcrumb.js +9 -4
  434. package/src/components/block-tools/index.js +21 -1
  435. package/src/components/block-tools/style.scss +23 -0
  436. package/src/components/block-tools/use-show-block-tools.js +21 -10
  437. package/src/components/block-tools/zoom-out-mode-inserter-button.js +47 -0
  438. package/src/components/block-tools/zoom-out-mode-inserters.js +44 -33
  439. package/src/components/block-tools/zoom-out-popover.js +50 -0
  440. package/src/components/block-tools/zoom-out-toolbar.js +140 -0
  441. package/src/components/button-block-appender/index.js +2 -1
  442. package/src/components/child-layout-control/index.js +41 -23
  443. package/src/components/date-format-picker/index.js +2 -2
  444. package/src/components/date-format-picker/style.scss +0 -9
  445. package/src/components/default-block-appender/index.js +11 -4
  446. package/src/components/dimensions-tool/index.js +97 -89
  447. package/src/components/font-appearance-control/index.js +24 -82
  448. package/src/components/font-appearance-control/style.scss +3 -5
  449. package/src/components/global-styles/background-panel.js +266 -167
  450. package/src/components/global-styles/border-panel.js +3 -2
  451. package/src/components/global-styles/color-panel.js +3 -2
  452. package/src/components/global-styles/dimensions-panel.js +3 -2
  453. package/src/components/global-styles/filters-panel.js +3 -2
  454. package/src/components/global-styles/hooks.js +14 -1
  455. package/src/components/global-styles/image-settings-panel.js +3 -2
  456. package/src/components/global-styles/style.scss +116 -19
  457. package/src/components/global-styles/test/typography-utils.js +594 -0
  458. package/src/components/global-styles/test/use-global-styles-output.js +3 -1
  459. package/src/components/global-styles/typography-panel.js +56 -27
  460. package/src/components/global-styles/typography-utils.js +159 -0
  461. package/src/components/global-styles/use-global-styles-output.js +45 -10
  462. package/src/components/global-styles/utils.js +17 -6
  463. package/src/components/grid/grid-item-movers.js +140 -86
  464. package/src/components/grid/grid-item-resizer.js +3 -2
  465. package/src/components/grid/grid-visualizer.js +172 -55
  466. package/src/components/grid/style.scss +157 -8
  467. package/src/components/grid/use-grid-layout-sync.js +88 -46
  468. package/src/components/iframe/content.scss +2 -1
  469. package/src/components/index.js +0 -5
  470. package/src/components/inner-blocks/index.js +6 -2
  471. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -16
  472. package/src/components/inserter/block-patterns-tab/patterns-filter.js +40 -44
  473. package/src/components/inserter/media-tab/media-panel.js +1 -0
  474. package/src/components/inserter/menu.js +47 -13
  475. package/src/components/inserter/preview-panel.js +27 -4
  476. package/src/components/inserter/quick-inserter.js +6 -1
  477. package/src/components/inserter/style.scss +58 -92
  478. package/src/components/inserter-draggable-blocks/index.js +11 -3
  479. package/src/components/inspector-controls/block-support-tools-panel.js +3 -3
  480. package/src/components/inspector-controls-tabs/settings-tab.js +0 -2
  481. package/src/components/inspector-controls-tabs/style.scss +0 -21
  482. package/src/components/link-control/link-preview.js +1 -1
  483. package/src/components/list-view/block-select-button.js +3 -13
  484. package/src/components/list-view/block.js +10 -3
  485. package/src/components/list-view/style.scss +2 -1
  486. package/src/components/list-view/utils.js +13 -2
  487. package/src/components/media-placeholder/index.js +22 -32
  488. package/src/components/navigable-toolbar/index.js +3 -1
  489. package/src/components/rich-text/format-toolbar/index.js +1 -1
  490. package/src/components/rich-text/index.js +1 -1
  491. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -2
  492. package/src/components/tabbed-sidebar/README.md +76 -0
  493. package/src/components/tabbed-sidebar/index.js +70 -0
  494. package/src/components/tabbed-sidebar/style.scss +53 -0
  495. package/src/components/url-popover/image-url-input-ui.js +3 -3
  496. package/src/components/url-popover/index.js +3 -0
  497. package/src/components/url-popover/style.scss +1 -0
  498. package/src/hooks/background.js +25 -10
  499. package/src/hooks/block-hooks.js +9 -16
  500. package/src/hooks/block-style-variation.js +202 -3
  501. package/src/hooks/duotone.js +16 -12
  502. package/src/hooks/grid-visualizer.js +62 -0
  503. package/src/hooks/index.js +3 -0
  504. package/src/hooks/layout-child.js +64 -39
  505. package/src/hooks/position.js +3 -20
  506. package/src/hooks/test/get-variation-styles-with-ref-values.js +91 -0
  507. package/src/hooks/use-bindings-attributes.js +107 -63
  508. package/src/hooks/utils.js +2 -0
  509. package/src/layouts/constrained.js +53 -4
  510. package/src/layouts/grid.js +148 -51
  511. package/src/private-apis.js +12 -7
  512. package/src/store/actions.js +15 -0
  513. package/src/store/defaults.js +0 -2
  514. package/src/store/defaults.native.js +0 -3
  515. package/src/store/private-keys.js +1 -0
  516. package/src/store/reducer.js +18 -0
  517. package/src/store/selectors.js +10 -0
  518. package/src/style.scss +1 -1
  519. package/src/utils/format-font-style.js +40 -0
  520. package/src/utils/format-font-weight.js +63 -0
  521. package/src/utils/get-editor-region.js +31 -0
  522. package/src/utils/get-font-styles-and-weights.js +191 -0
  523. package/src/utils/pasting.js +5 -12
  524. package/src/utils/test/format-font-style.js +34 -0
  525. package/src/utils/test/format-font-weight.js +66 -0
  526. package/src/utils/test/get-font-styles-and-weights.js +513 -0
  527. package/tsconfig.tsbuildinfo +1 -1
  528. package/build/components/inserter/reusable-block-rename-hint.js +0 -71
  529. package/build/components/inserter/reusable-block-rename-hint.js.map +0 -1
  530. package/build/components/inspector-controls-tabs/settings-tab-hint.js +0 -53
  531. package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
  532. package/build-module/components/inserter/reusable-block-rename-hint.js +0 -64
  533. package/build-module/components/inserter/reusable-block-rename-hint.js.map +0 -1
  534. package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +0 -47
  535. package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
  536. package/src/components/inserter/reusable-block-rename-hint.js +0 -69
  537. package/src/components/inspector-controls-tabs/settings-tab-hint.js +0 -52
  538. package/src/hooks/position.scss +0 -18
@@ -30,8 +30,9 @@ import { PatternCategoryPreviewPanel } from './block-patterns-tab/pattern-catego
30
30
  import { MediaTab, MediaCategoryPanel } from './media-tab';
31
31
  import InserterSearchResults from './search-results';
32
32
  import useInsertionPoint from './hooks/use-insertion-point';
33
- import InserterTabs from './tabs';
34
33
  import { store as blockEditorStore } from '../../store';
34
+ import TabbedSidebar from '../tabbed-sidebar';
35
+ import { useZoomOut } from '../../hooks/use-zoom-out';
35
36
 
36
37
  const NOOP = () => {};
37
38
  function InserterMenu(
@@ -88,7 +89,7 @@ function InserterMenu(
88
89
  shouldForceFocusBlock,
89
90
  _rootClientId
90
91
  );
91
- onSelect();
92
+ onSelect( blocks );
92
93
 
93
94
  // Check for focus loss due to filtering blocks by selected block type
94
95
  window.requestAnimationFrame( () => {
@@ -145,6 +146,11 @@ function InserterMenu(
145
146
 
146
147
  const showMediaPanel = selectedTab === 'media' && !! selectedMediaCategory;
147
148
 
149
+ const showZoomOut =
150
+ showPatternPanel && !! window.__experimentalEnableZoomedOutPatternsTab;
151
+
152
+ useZoomOut( showZoomOut );
153
+
148
154
  const inserterSearch = useMemo( () => {
149
155
  if ( selectedTab === 'media' ) {
150
156
  return null;
@@ -315,21 +321,49 @@ function InserterMenu(
315
321
  ref={ ref }
316
322
  >
317
323
  <div className="block-editor-inserter__main-area">
318
- <InserterTabs
324
+ <TabbedSidebar
319
325
  ref={ tabsRef }
320
326
  onSelect={ handleSetSelectedTab }
321
327
  onClose={ onClose }
322
328
  selectedTab={ selectedTab }
323
- >
324
- { inserterSearch }
325
- { selectedTab === 'blocks' &&
326
- ! delayedFilterValue &&
327
- blocksTab }
328
- { selectedTab === 'patterns' &&
329
- ! delayedFilterValue &&
330
- patternsTab }
331
- { selectedTab === 'media' && mediaTab }
332
- </InserterTabs>
329
+ closeButtonLabel={ __( 'Close block inserter' ) }
330
+ tabs={ [
331
+ {
332
+ name: 'blocks',
333
+ title: __( 'Blocks' ),
334
+ panel: (
335
+ <>
336
+ { inserterSearch }
337
+ { selectedTab === 'blocks' &&
338
+ ! delayedFilterValue &&
339
+ blocksTab }
340
+ </>
341
+ ),
342
+ },
343
+ {
344
+ name: 'patterns',
345
+ title: __( 'Patterns' ),
346
+ panel: (
347
+ <>
348
+ { inserterSearch }
349
+ { selectedTab === 'patterns' &&
350
+ ! delayedFilterValue &&
351
+ patternsTab }
352
+ </>
353
+ ),
354
+ },
355
+ {
356
+ name: 'media',
357
+ title: __( 'Media' ),
358
+ panel: (
359
+ <>
360
+ { inserterSearch }
361
+ { mediaTab }
362
+ </>
363
+ ),
364
+ },
365
+ ] }
366
+ />
333
367
  </div>
334
368
  { showInserterHelpPanel && hoveredItem && (
335
369
  <Popover
@@ -30,6 +30,15 @@ function InserterPreviewPanel( { item } ) {
30
30
  innerBlocks: example.innerBlocks,
31
31
  } );
32
32
  }, [ name, example, initialAttributes ] );
33
+ // Same as height of BlockPreviewPanel.
34
+ const previewHeight = 144;
35
+ const sidebarWidth = 280;
36
+ const viewportWidth = example?.viewportWidth ?? 500;
37
+ const scale = sidebarWidth / viewportWidth;
38
+ const minHeight =
39
+ scale !== 0 && scale < 1 && previewHeight
40
+ ? previewHeight / scale
41
+ : previewHeight;
33
42
 
34
43
  return (
35
44
  <div className="block-editor-inserter__preview-container">
@@ -38,10 +47,24 @@ function InserterPreviewPanel( { item } ) {
38
47
  <div className="block-editor-inserter__preview-content">
39
48
  <BlockPreview
40
49
  blocks={ blocks }
41
- viewportWidth={ example?.viewportWidth ?? 500 }
42
- additionalStyles={ [
43
- { css: 'body { padding: 24px; }' },
44
- ] }
50
+ viewportWidth={ viewportWidth }
51
+ minHeight={ previewHeight }
52
+ additionalStyles={
53
+ //We want this CSS to be in sync with the one in BlockPreviewPanel.
54
+ [
55
+ {
56
+ css: `
57
+ body {
58
+ padding: 24px;
59
+ min-height:${ Math.round( minHeight ) }px;
60
+ display:flex;
61
+ align-items:center;
62
+ }
63
+ .is-root-container { width: 100%; }
64
+ `,
65
+ },
66
+ ]
67
+ }
45
68
  />
46
69
  </div>
47
70
  ) : (
@@ -85,7 +85,12 @@ export default function QuickInserter( {
85
85
  // When clicking Browse All select the appropriate block so as
86
86
  // the insertion point can work as expected.
87
87
  const onBrowseAll = () => {
88
- setInserterIsOpened( { rootClientId, insertionIndex, filterValue } );
88
+ setInserterIsOpened( {
89
+ rootClientId,
90
+ insertionIndex,
91
+ filterValue,
92
+ onSelect,
93
+ } );
89
94
  };
90
95
 
91
96
  let maxBlockPatterns = 0;
@@ -17,19 +17,13 @@ $block-inserter-tabs-height: 44px;
17
17
  }
18
18
 
19
19
  .block-editor-inserter__main-area {
20
- position: relative;
21
- display: flex;
22
- flex-direction: column;
23
20
  height: 100%;
24
21
  gap: $grid-unit-20;
22
+ position: relative;
25
23
 
26
24
  &.show-as-tabs {
27
25
  gap: 0;
28
26
  }
29
-
30
- @include break-medium {
31
- width: $block-inserter-width;
32
- }
33
27
  }
34
28
 
35
29
  .block-editor-inserter__popover.is-quick {
@@ -109,48 +103,6 @@ $block-inserter-tabs-height: 44px;
109
103
  padding: $grid-unit-20 $grid-unit-20 0 $grid-unit-20;
110
104
  }
111
105
 
112
- .block-editor-inserter__tabs {
113
- flex-grow: 1;
114
- display: flex;
115
- flex-direction: column;
116
- overflow: hidden;
117
-
118
- .block-editor-inserter__tablist-and-close-button {
119
- border-bottom: $border-width solid $gray-300;
120
- padding-right: $grid-unit-15;
121
- display: flex;
122
- justify-content: space-between;
123
- }
124
-
125
- .block-editor-inserter__close-button {
126
- /* stylelint-disable-next-line property-disallowed-list -- This should be refactored to avoid order if possible */
127
- order: 1;
128
- align-self: center;
129
- }
130
-
131
- .block-editor-inserter__tablist {
132
- width: 100%;
133
- margin-bottom: -$border-width;
134
-
135
- button[role="tab"] {
136
- flex-grow: 1;
137
- &[id$="reusable"] {
138
- flex-grow: inherit;
139
- // These are to align the `reusable` icon with the search icon.
140
- padding-left: $grid-unit-20;
141
- padding-right: $grid-unit-20;
142
- }
143
- }
144
- }
145
-
146
- .block-editor-inserter__tabpanel {
147
- display: flex;
148
- flex-grow: 1;
149
- flex-direction: column;
150
- overflow-y: auto;
151
- }
152
- }
153
-
154
106
  .block-editor-inserter__no-tab-container {
155
107
  overflow-y: auto;
156
108
  flex-grow: 1;
@@ -276,6 +228,13 @@ $block-inserter-tabs-height: 44px;
276
228
  margin-top: auto;
277
229
  }
278
230
 
231
+ // Temporarily disable the component's indicator animation.
232
+ // TODO: remove in favor of using the native component's styles and behavior,
233
+ // see https://github.com/WordPress/gutenberg/pull/62879#issuecomment-2219720582
234
+ &[aria-orientation="vertical"]::after {
235
+ content: none;
236
+ }
237
+
279
238
  .block-editor-inserter__category-tab {
280
239
  // Account for the icon on the right so that it's visually balanced.
281
240
  padding: $grid-unit-10 $grid-unit-05 $grid-unit-10 $grid-unit-15;
@@ -332,34 +291,35 @@ $block-inserter-tabs-height: 44px;
332
291
  }
333
292
 
334
293
  .block-editor-inserter__category-panel {
335
- background: $gray-100;
336
- border-top: $border-width solid $gray-200;
337
- box-shadow: $border-width $border-width 0 0 rgba($color: #000, $alpha: 0.133); // 0.133 = $gray-200 but with alpha.
338
294
  outline: 1px solid transparent; // Shown for Windows 10 High Contrast mode.
339
- position: absolute;
340
- top: -$border-width;
341
- left: 0;
342
- height: calc(100% + #{$border-width});
343
- width: 100%;
344
- padding: 0 $grid-unit-20;
345
295
  display: flex;
346
296
  flex-direction: column;
297
+ padding: 0 $grid-unit-20;
347
298
 
348
299
  @include break-medium {
349
300
  border-left: $border-width solid $gray-200;
350
301
  padding: 0;
351
302
  left: 100%;
352
303
  width: 300px;
353
- }
354
-
355
- .block-editor-inserter__media-list,
356
- .block-editor-block-patterns-list {
357
- padding: 0 $grid-unit-30 $grid-unit-20;
304
+ position: absolute;
305
+ top: -$border-width;
306
+ height: calc(100% + #{$border-width});
307
+ background: $gray-100;
308
+ border-top: $border-width solid $gray-200;
309
+ box-shadow: $border-width $border-width 0 0 rgba($color: #000, $alpha: 0.133); // 0.133 = $gray-200 but with alpha.
310
+
311
+ .block-editor-inserter__media-list,
312
+ .block-editor-block-patterns-list {
313
+ padding: 0 $grid-unit-30 $grid-unit-20;
314
+ }
358
315
  }
359
316
  }
360
317
 
361
318
  .block-editor-inserter__patterns-category-panel-header {
362
- padding: $grid-unit-10 $grid-unit-30;
319
+ padding: $grid-unit-10 0;
320
+ @include break-medium {
321
+ padding: $grid-unit-10 $grid-unit-30;
322
+ }
363
323
  }
364
324
 
365
325
  .block-editor-inserter__patterns-category-no-results {
@@ -374,7 +334,6 @@ $block-inserter-tabs-height: 44px;
374
334
  }
375
335
 
376
336
  .block-editor-inserter__preview-content {
377
- min-height: $grid-unit-60 * 3;
378
337
  background: $gray-100;
379
338
  display: grid;
380
339
  flex-grow: 1;
@@ -564,10 +523,15 @@ $block-inserter-tabs-height: 44px;
564
523
  }
565
524
 
566
525
  .block-editor-inserter__media-panel-search {
567
- padding: $grid-unit-20 $grid-unit-30 $grid-unit-10;
526
+ margin-bottom: $grid-unit-30;
568
527
  // TODO: Consider using the Theme component to automatically adapt to a gray background.
569
- &:not(:focus-within) {
570
- --wp-components-color-background: #{$white};
528
+ @include break-medium() {
529
+ margin-bottom: 0;
530
+ padding: $grid-unit-20 $grid-unit-30 $grid-unit-20;
531
+
532
+ &:not(:focus-within) {
533
+ --wp-components-color-background: #{$white};
534
+ }
571
535
  }
572
536
  }
573
537
  }
@@ -691,30 +655,6 @@ $block-inserter-tabs-height: 44px;
691
655
  margin: $grid-unit-20 $grid-unit-20 0;
692
656
  }
693
657
 
694
- .reusable-blocks-menu-items__rename-hint {
695
- align-items: top;
696
- background: $gray-100;
697
- border-radius: $radius-block-ui;
698
- color: $gray-900;
699
- display: flex;
700
- flex-direction: row;
701
- max-width: 380px;
702
- }
703
-
704
- .reusable-blocks-menu-items__rename-hint-content {
705
- margin: $grid-unit-15 0 $grid-unit-15 $grid-unit-15;
706
- }
707
-
708
- .reusable-blocks-menu-items__rename-hint-dismiss {
709
- // The dismiss button has a lot of empty space through its padding.
710
- // Apply margin to visually align the icon with the top of the text to its left.
711
- margin: $grid-unit-05 $grid-unit-05 $grid-unit-05 0;
712
- }
713
-
714
- .components-menu-group .reusable-blocks-menu-items__rename-hint {
715
- margin: 0;
716
- }
717
-
718
658
  .block-editor-patterns__sync-status-filter {
719
659
  .components-input-control__container {
720
660
  select.components-select-control__input {
@@ -739,4 +679,30 @@ $block-inserter-tabs-height: 44px;
739
679
  height: 100%;
740
680
  }
741
681
  }
682
+
683
+ // Remove doubled-up shadow that occurs when categories panel is opened, only in zoom out.
684
+ // Shadow cannot be removed from the source, as it is required when not zoomed out.
685
+ .block-editor-inserter__category-panel {
686
+ box-shadow: none;
687
+ }
688
+ }
689
+
690
+ .show-icon-labels {
691
+ @media (max-width: #{ ($break-large - 1) }) {
692
+ .block-editor-block-patterns-explorer .block-editor-patterns__grid-pagination {
693
+ flex-direction: column;
694
+ .block-editor-patterns__grid-pagination-previous,
695
+ .block-editor-patterns__grid-pagination-next {
696
+ flex-direction: column;
697
+ }
698
+ }
699
+ }
700
+
701
+ .block-editor-inserter__category-panel .block-editor-patterns__grid-pagination {
702
+ flex-direction: column;
703
+ .block-editor-patterns__grid-pagination-previous,
704
+ .block-editor-patterns__grid-pagination-next {
705
+ flex-direction: column;
706
+ }
707
+ }
742
708
  }
@@ -43,6 +43,14 @@ const InserterDraggableBlocks = ( {
43
43
  useDispatch( blockEditorStore )
44
44
  );
45
45
 
46
+ if ( ! isEnabled ) {
47
+ return children( {
48
+ draggable: false,
49
+ onDragStart: undefined,
50
+ onDragEnd: undefined,
51
+ } );
52
+ }
53
+
46
54
  return (
47
55
  <Draggable
48
56
  __experimentalTransferDataType="wp-blocks"
@@ -72,9 +80,9 @@ const InserterDraggableBlocks = ( {
72
80
  >
73
81
  { ( { onDraggableStart, onDraggableEnd } ) => {
74
82
  return children( {
75
- draggable: isEnabled,
76
- onDragStart: isEnabled ? onDraggableStart : undefined,
77
- onDragEnd: isEnabled ? onDraggableEnd : undefined,
83
+ draggable: true,
84
+ onDragStart: onDraggableStart,
85
+ onDragEnd: onDraggableEnd,
78
86
  } );
79
87
  } }
80
88
  </Draggable>
@@ -10,7 +10,7 @@ import { useCallback } from '@wordpress/element';
10
10
  */
11
11
  import { store as blockEditorStore } from '../../store';
12
12
  import { cleanEmptyObject } from '../../hooks/utils';
13
- import { TOOLSPANEL_DROPDOWNMENU_PROPS } from '../global-styles/utils';
13
+ import { useToolsPanelDropdownMenuProps } from '../global-styles/utils';
14
14
 
15
15
  export default function BlockSupportToolsPanel( { children, group, label } ) {
16
16
  const { updateBlockAttributes } = useDispatch( blockEditorStore );
@@ -20,7 +20,7 @@ export default function BlockSupportToolsPanel( { children, group, label } ) {
20
20
  getSelectedBlockClientId,
21
21
  hasMultiSelection,
22
22
  } = useSelect( blockEditorStore );
23
-
23
+ const dropdownMenuProps = useToolsPanelDropdownMenuProps();
24
24
  const panelId = getSelectedBlockClientId();
25
25
  const resetAll = useCallback(
26
26
  ( resetFilters = [] ) => {
@@ -72,7 +72,7 @@ export default function BlockSupportToolsPanel( { children, group, label } ) {
72
72
  shouldRenderPlaceholderItems // Required to maintain fills ordering.
73
73
  __experimentalFirstVisibleItemClass="first"
74
74
  __experimentalLastVisibleItemClass="last"
75
- dropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }
75
+ dropdownMenuProps={ dropdownMenuProps }
76
76
  >
77
77
  { children }
78
78
  </ToolsPanel>
@@ -4,7 +4,6 @@
4
4
  import AdvancedControls from './advanced-controls-panel';
5
5
  import PositionControls from './position-controls-panel';
6
6
  import { default as InspectorControls } from '../inspector-controls';
7
- import SettingsTabHint from './settings-tab-hint';
8
7
 
9
8
  const SettingsTab = ( { showAdvancedControls = false } ) => (
10
9
  <>
@@ -15,7 +14,6 @@ const SettingsTab = ( { showAdvancedControls = false } ) => (
15
14
  <AdvancedControls />
16
15
  </div>
17
16
  ) }
18
- <SettingsTabHint />
19
17
  </>
20
18
  );
21
19
 
@@ -5,24 +5,3 @@
5
5
  }
6
6
  }
7
7
  }
8
-
9
- .block-editor-inspector-controls-tabs__hint {
10
- align-items: flex-start;
11
- background: $gray-100;
12
- border-radius: $radius-block-ui;
13
- color: $gray-900;
14
- display: flex;
15
- flex-direction: row;
16
- margin: $grid-unit-20;
17
- font-size: $default-font-size;
18
- }
19
-
20
- .block-editor-inspector-controls-tabs__hint-content {
21
- margin: $grid-unit-15 0 $grid-unit-15 $grid-unit-15;
22
- }
23
-
24
- .block-editor-inspector-controls-tabs__hint-dismiss {
25
- // The dismiss button has a lot of empty space through its padding.
26
- // Apply margin to visually align the icon with the top of the text to its left.
27
- margin: $grid-unit-05 $grid-unit-05 $grid-unit-05 0;
28
- }
@@ -166,7 +166,7 @@ export default function LinkPreview( {
166
166
  isEmptyURL || showIconLabels ? '' : ': ' + value.url
167
167
  ) }
168
168
  ref={ ref }
169
- __experimentalIsFocusable
169
+ accessibleWhenDisabled
170
170
  disabled={ isEmptyURL }
171
171
  size="compact"
172
172
  />
@@ -10,12 +10,10 @@ import {
10
10
  Button,
11
11
  __experimentalHStack as HStack,
12
12
  __experimentalTruncate as Truncate,
13
- Tooltip,
14
13
  } from '@wordpress/components';
15
14
  import { forwardRef } from '@wordpress/element';
16
15
  import { Icon, lockSmall as lock, pinSmall } from '@wordpress/icons';
17
16
  import { SPACE, ENTER } from '@wordpress/keycodes';
18
- import { __, sprintf } from '@wordpress/i18n';
19
17
  import { useSelect } from '@wordpress/data';
20
18
 
21
19
  /**
@@ -65,14 +63,6 @@ function ListViewBlockSelectButton(
65
63
  const isSticky = blockInformation?.positionType === 'sticky';
66
64
  const images = useListViewImages( { clientId, isExpanded } );
67
65
 
68
- const positionLabel = blockInformation?.positionLabel
69
- ? sprintf(
70
- // translators: 1: Position of selected block, e.g. "Sticky" or "Fixed".
71
- __( 'Position: %1$s' ),
72
- blockInformation.positionLabel
73
- )
74
- : '';
75
-
76
66
  // The `href` attribute triggers the browser's native HTML drag operations.
77
67
  // When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.
78
68
  // We need to clear any HTML drag data to prevent `pasteHandler` from firing
@@ -136,10 +126,10 @@ function ListViewBlockSelectButton(
136
126
  </Truncate>
137
127
  </span>
138
128
  ) }
139
- { positionLabel && isSticky && (
140
- <Tooltip text={ positionLabel }>
129
+ { isSticky && (
130
+ <span className="block-editor-list-view-block-select-button__sticky">
141
131
  <Icon icon={ pinSmall } />
142
- </Tooltip>
132
+ </span>
143
133
  ) }
144
134
  { images.length ? (
145
135
  <span
@@ -465,8 +465,10 @@ function ListViewBlock( {
465
465
  level
466
466
  );
467
467
 
468
- const blockPropertiesDescription =
469
- getBlockPropertiesDescription( isLocked );
468
+ const blockPropertiesDescription = getBlockPropertiesDescription(
469
+ blockInformation,
470
+ isLocked
471
+ );
470
472
 
471
473
  const hasSiblings = siblingBlockCount > 0;
472
474
  const hasRenderedMovers = showBlockMovers && hasSiblings;
@@ -562,7 +564,12 @@ function ListViewBlock( {
562
564
  ariaDescribedBy={ descriptionId }
563
565
  />
564
566
  <AriaReferencedText id={ descriptionId }>
565
- { `${ blockPositionDescription } ${ blockPropertiesDescription }` }
567
+ { [
568
+ blockPositionDescription,
569
+ blockPropertiesDescription,
570
+ ]
571
+ .filter( Boolean )
572
+ .join( ' ' ) }
566
573
  </AriaReferencedText>
567
574
  </div>
568
575
  ) }
@@ -416,7 +416,8 @@
416
416
  background: rgba($black, 0.3);
417
417
  }
418
418
 
419
- .block-editor-list-view-block-select-button__lock {
419
+ .block-editor-list-view-block-select-button__lock,
420
+ .block-editor-list-view-block-select-button__sticky {
420
421
  line-height: 0;
421
422
  }
422
423
 
@@ -13,8 +13,19 @@ export const getBlockPositionDescription = ( position, siblingCount, level ) =>
13
13
  level
14
14
  );
15
15
 
16
- export const getBlockPropertiesDescription = ( isLocked ) =>
17
- isLocked ? __( 'This block is locked.' ) : '';
16
+ export const getBlockPropertiesDescription = ( blockInformation, isLocked ) =>
17
+ [
18
+ blockInformation?.positionLabel
19
+ ? `${ sprintf(
20
+ // translators: %s: Position of selected block, e.g. "Sticky" or "Fixed".
21
+ __( 'Position: %s' ),
22
+ blockInformation.positionLabel
23
+ ) }.`
24
+ : undefined,
25
+ isLocked ? __( 'This block is locked.' ) : undefined,
26
+ ]
27
+ .filter( Boolean )
28
+ .join( ' ' );
18
29
 
19
30
  /**
20
31
  * Returns true if the client ID occurs within the block selection or multi-selection,
@@ -60,28 +60,37 @@ const InsertFromURLPopover = ( {
60
60
  </URLPopover>
61
61
  );
62
62
 
63
- const URLSelectionUI = ( {
64
- isURLInputVisible,
65
- src,
66
- onChangeSrc,
67
- onSubmitSrc,
68
- openURLInput,
69
- closeURLInput,
70
- } ) => {
63
+ const URLSelectionUI = ( { src, onChangeSrc, onSelectURL } ) => {
71
64
  // Use internal state instead of a ref to make sure that the component
72
65
  // re-renders when the popover's anchor updates.
73
66
  const [ popoverAnchor, setPopoverAnchor ] = useState( null );
67
+ const [ isURLInputVisible, setIsURLInputVisible ] = useState( false );
68
+
69
+ const openURLInput = () => {
70
+ setIsURLInputVisible( true );
71
+ };
72
+ const closeURLInput = () => {
73
+ setIsURLInputVisible( false );
74
+ popoverAnchor?.focus();
75
+ };
76
+
77
+ const onSubmitSrc = ( event ) => {
78
+ event.preventDefault();
79
+ if ( src && onSelectURL ) {
80
+ onSelectURL( src );
81
+ closeURLInput();
82
+ }
83
+ };
74
84
 
75
85
  return (
76
- <div
77
- className="block-editor-media-placeholder__url-input-container"
78
- ref={ setPopoverAnchor }
79
- >
86
+ <div className="block-editor-media-placeholder__url-input-container">
80
87
  <Button
81
88
  className="block-editor-media-placeholder__button"
82
89
  onClick={ openURLInput }
83
90
  isPressed={ isURLInputVisible }
84
91
  variant="secondary"
92
+ aria-haspopup="dialog"
93
+ ref={ setPopoverAnchor }
85
94
  >
86
95
  { __( 'Insert from URL' ) }
87
96
  </Button>
@@ -138,7 +147,6 @@ export function MediaPlaceholder( {
138
147
  return getSettings().mediaUpload;
139
148
  }, [] );
140
149
  const [ src, setSrc ] = useState( '' );
141
- const [ isURLInputVisible, setIsURLInputVisible ] = useState( false );
142
150
 
143
151
  useEffect( () => {
144
152
  setSrc( value?.src ?? '' );
@@ -159,21 +167,6 @@ export function MediaPlaceholder( {
159
167
  setSrc( event.target.value );
160
168
  };
161
169
 
162
- const openURLInput = () => {
163
- setIsURLInputVisible( true );
164
- };
165
- const closeURLInput = () => {
166
- setIsURLInputVisible( false );
167
- };
168
-
169
- const onSubmitSrc = ( event ) => {
170
- event.preventDefault();
171
- if ( src && onSelectURL ) {
172
- onSelectURL( src );
173
- closeURLInput();
174
- }
175
- };
176
-
177
170
  const onFilesUpload = ( files ) => {
178
171
  if ( ! handleUpload ) {
179
172
  return onSelect( files );
@@ -404,12 +397,9 @@ export function MediaPlaceholder( {
404
397
  return (
405
398
  onSelectURL && (
406
399
  <URLSelectionUI
407
- isURLInputVisible={ isURLInputVisible }
408
400
  src={ src }
409
401
  onChangeSrc={ onChangeSrc }
410
- onSubmitSrc={ onSubmitSrc }
411
- openURLInput={ openURLInput }
412
- closeURLInput={ closeURLInput }
402
+ onSelectURL={ onSelectURL }
413
403
  />
414
404
  )
415
405
  );