@wordpress/edit-site 5.27.1 → 5.28.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 (362) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/actions/index.js +3 -6
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/add-new-template/add-custom-generic-template-modal-content.js +1 -2
  5. package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  6. package/build/components/add-new-template/add-custom-template-modal-content.js +1 -2
  7. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  8. package/build/components/block-editor/editor-canvas.js +1 -2
  9. package/build/components/block-editor/editor-canvas.js.map +1 -1
  10. package/build/components/block-editor/inserter-media-categories.js +1 -2
  11. package/build/components/block-editor/inserter-media-categories.js.map +1 -1
  12. package/build/components/block-editor/resizable-editor.js +1 -2
  13. package/build/components/block-editor/resizable-editor.js.map +1 -1
  14. package/build/components/block-editor/site-editor-canvas.js +12 -5
  15. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  16. package/build/components/block-editor/use-navigate-to-entity-record.js +32 -0
  17. package/build/components/block-editor/use-navigate-to-entity-record.js.map +1 -0
  18. package/build/components/block-editor/use-site-editor-settings.js +30 -4
  19. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  20. package/build/components/editor/index.js +13 -10
  21. package/build/components/editor/index.js.map +1 -1
  22. package/build/components/editor-canvas-container/index.js +1 -2
  23. package/build/components/editor-canvas-container/index.js.map +1 -1
  24. package/build/components/global-styles/block-preview-panel.js +1 -2
  25. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  26. package/build/components/global-styles/color-indicator-wrapper.js +1 -2
  27. package/build/components/global-styles/color-indicator-wrapper.js.map +1 -1
  28. package/build/components/global-styles/font-families.js +9 -5
  29. package/build/components/global-styles/font-families.js.map +1 -1
  30. package/build/components/global-styles/font-family-item.js +1 -2
  31. package/build/components/global-styles/font-family-item.js.map +1 -1
  32. package/build/components/global-styles/font-library-modal/collection-font-details.js +1 -2
  33. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
  34. package/build/components/global-styles/font-library-modal/collection-font-variant.js +13 -13
  35. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  36. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +1 -2
  37. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -1
  38. package/build/components/global-styles/font-library-modal/context.js +16 -4
  39. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  40. package/build/components/global-styles/font-library-modal/font-card.js +3 -3
  41. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
  42. package/build/components/global-styles/font-library-modal/font-collection.js +26 -40
  43. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  44. package/build/components/global-styles/font-library-modal/font-demo.js +6 -12
  45. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  46. package/build/components/global-styles/font-library-modal/fonts-grid.js +1 -2
  47. package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -1
  48. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +3 -4
  49. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  50. package/build/components/global-styles/font-library-modal/index.js +11 -5
  51. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  52. package/build/components/global-styles/font-library-modal/installed-fonts.js +14 -26
  53. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  54. package/build/components/global-styles/font-library-modal/library-font-card.js +2 -3
  55. package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  56. package/build/components/global-styles/font-library-modal/library-font-details.js +1 -2
  57. package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  58. package/build/components/global-styles/font-library-modal/library-font-variant.js +15 -15
  59. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  60. package/build/components/global-styles/font-library-modal/resolvers.js +1 -1
  61. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  62. package/build/components/global-styles/font-library-modal/tab-panel-layout.js +13 -4
  63. package/build/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
  64. package/build/components/global-styles/font-library-modal/upload-fonts.js +157 -6
  65. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  66. package/build/components/global-styles/font-library-modal/utils/constants.js +3 -6
  67. package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
  68. package/build/components/global-styles/font-library-modal/utils/index.js +37 -32
  69. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  70. package/build/components/global-styles/header.js +1 -2
  71. package/build/components/global-styles/header.js.map +1 -1
  72. package/build/components/global-styles/palette.js +1 -2
  73. package/build/components/global-styles/palette.js.map +1 -1
  74. package/build/components/global-styles/preview.js +1 -2
  75. package/build/components/global-styles/preview.js.map +1 -1
  76. package/build/components/global-styles/root-menu.js +1 -2
  77. package/build/components/global-styles/root-menu.js.map +1 -1
  78. package/build/components/global-styles/screen-block-list.js +1 -2
  79. package/build/components/global-styles/screen-block-list.js.map +1 -1
  80. package/build/components/global-styles/screen-block.js +1 -11
  81. package/build/components/global-styles/screen-block.js.map +1 -1
  82. package/build/components/global-styles/screen-color-palette.js +1 -2
  83. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  84. package/build/components/global-styles/screen-colors.js +1 -2
  85. package/build/components/global-styles/screen-colors.js.map +1 -1
  86. package/build/components/global-styles/screen-css.js +1 -2
  87. package/build/components/global-styles/screen-css.js.map +1 -1
  88. package/build/components/global-styles/screen-layout.js +1 -2
  89. package/build/components/global-styles/screen-layout.js.map +1 -1
  90. package/build/components/global-styles/screen-revisions/index.js +1 -2
  91. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  92. package/build/components/global-styles/screen-revisions/revisions-buttons.js +2 -3
  93. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  94. package/build/components/global-styles/screen-root.js +1 -2
  95. package/build/components/global-styles/screen-root.js.map +1 -1
  96. package/build/components/global-styles/screen-style-variations.js +1 -2
  97. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  98. package/build/components/global-styles/screen-typography-element.js +3 -6
  99. package/build/components/global-styles/screen-typography-element.js.map +1 -1
  100. package/build/components/global-styles/screen-typography.js +1 -2
  101. package/build/components/global-styles/screen-typography.js.map +1 -1
  102. package/build/components/global-styles/subtitle.js +1 -2
  103. package/build/components/global-styles/subtitle.js.map +1 -1
  104. package/build/components/global-styles/typogrphy-elements.js +1 -2
  105. package/build/components/global-styles/typogrphy-elements.js.map +1 -1
  106. package/build/components/global-styles/ui.js +3 -4
  107. package/build/components/global-styles/ui.js.map +1 -1
  108. package/build/components/header-edit-mode/mode-switcher/index.js +1 -2
  109. package/build/components/header-edit-mode/mode-switcher/index.js.map +1 -1
  110. package/build/components/header-edit-mode/more-menu/index.js +12 -21
  111. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  112. package/build/components/header-edit-mode/plugin-more-menu-item/index.js +1 -2
  113. package/build/components/header-edit-mode/plugin-more-menu-item/index.js.map +1 -1
  114. package/build/components/header-edit-mode/tools-more-menu-group/index.js +1 -2
  115. package/build/components/header-edit-mode/tools-more-menu-group/index.js.map +1 -1
  116. package/build/components/keyboard-shortcut-help-modal/config.js +1 -2
  117. package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  118. package/build/components/keyboard-shortcut-help-modal/index.js +1 -3
  119. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  120. package/build/components/keyboard-shortcuts/edit-mode.js +1 -2
  121. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  122. package/build/components/keyboard-shortcuts/global.js +1 -2
  123. package/build/components/keyboard-shortcuts/global.js.map +1 -1
  124. package/build/components/keyboard-shortcuts/register.js +1 -2
  125. package/build/components/keyboard-shortcuts/register.js.map +1 -1
  126. package/build/components/layout/index.js +0 -2
  127. package/build/components/layout/index.js.map +1 -1
  128. package/build/components/media/index.js +1 -2
  129. package/build/components/media/index.js.map +1 -1
  130. package/build/components/page-pages/index.js +27 -15
  131. package/build/components/page-pages/index.js.map +1 -1
  132. package/build/components/page-patterns/dataviews-pattern-actions.js +87 -32
  133. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  134. package/build/components/page-patterns/grid-item.js +2 -6
  135. package/build/components/page-patterns/grid-item.js.map +1 -1
  136. package/build/components/page-patterns/index.js +2 -1
  137. package/build/components/page-patterns/index.js.map +1 -1
  138. package/build/components/page-patterns/search-items.js +0 -1
  139. package/build/components/page-patterns/search-items.js.map +1 -1
  140. package/build/components/page-patterns/use-patterns.js +1 -2
  141. package/build/components/page-patterns/use-patterns.js.map +1 -1
  142. package/build/components/page-templates-template-parts/actions.js +2 -4
  143. package/build/components/page-templates-template-parts/actions.js.map +1 -1
  144. package/build/components/page-templates-template-parts/index.js +8 -5
  145. package/build/components/page-templates-template-parts/index.js.map +1 -1
  146. package/build/components/pattern-modal/index.js +1 -2
  147. package/build/components/pattern-modal/index.js.map +1 -1
  148. package/build/components/plugin-template-setting-panel/index.js +1 -2
  149. package/build/components/plugin-template-setting-panel/index.js.map +1 -1
  150. package/build/components/preferences-modal/index.js +1 -2
  151. package/build/components/preferences-modal/index.js.map +1 -1
  152. package/build/components/resizable-frame/index.js +1 -2
  153. package/build/components/resizable-frame/index.js.map +1 -1
  154. package/build/components/revisions/index.js +1 -2
  155. package/build/components/revisions/index.js.map +1 -1
  156. package/build/components/routes/link.js +3 -7
  157. package/build/components/routes/link.js.map +1 -1
  158. package/build/components/sidebar/index.js +3 -4
  159. package/build/components/sidebar/index.js.map +1 -1
  160. package/build/components/sidebar-dataviews/default-views.js +4 -6
  161. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  162. package/build/components/sidebar-edit-mode/constants.js +2 -4
  163. package/build/components/sidebar-edit-mode/constants.js.map +1 -1
  164. package/build/components/sidebar-edit-mode/index.js +97 -19
  165. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  166. package/build/components/sidebar-edit-mode/settings-header/index.js +22 -73
  167. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  168. package/build/components/sidebar-navigation-screen-navigation-menu/index.js +1 -2
  169. package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  170. package/build/components/sidebar-navigation-screen-navigation-menus/constants.js +1 -2
  171. package/build/components/sidebar-navigation-screen-navigation-menus/constants.js.map +1 -1
  172. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +1 -1
  173. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  174. package/build/components/site-hub/index.js +1 -2
  175. package/build/components/site-hub/index.js.map +1 -1
  176. package/build/components/site-icon/index.js +3 -4
  177. package/build/components/site-icon/index.js.map +1 -1
  178. package/build/components/style-book/index.js +1 -2
  179. package/build/components/style-book/index.js.map +1 -1
  180. package/build/components/template-part-converter/convert-to-template-part.js +0 -1
  181. package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
  182. package/build/components/welcome-guide/template.js +2 -2
  183. package/build/components/welcome-guide/template.js.map +1 -1
  184. package/build/hooks/commands/use-edit-mode-commands.js +16 -6
  185. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  186. package/build/hooks/navigation-menu-edit.js +1 -2
  187. package/build/hooks/navigation-menu-edit.js.map +1 -1
  188. package/build/hooks/template-part-edit.js +1 -2
  189. package/build/hooks/template-part-edit.js.map +1 -1
  190. package/build/store/actions.js +7 -2
  191. package/build/store/actions.js.map +1 -1
  192. package/build/store/constants.js +1 -2
  193. package/build/store/constants.js.map +1 -1
  194. package/build/store/index.js +4 -6
  195. package/build/store/index.js.map +1 -1
  196. package/build/store/reducer.js +1 -2
  197. package/build/store/reducer.js.map +1 -1
  198. package/build/store/selectors.js +9 -18
  199. package/build/store/selectors.js.map +1 -1
  200. package/build/store/utils.js +1 -2
  201. package/build/store/utils.js.map +1 -1
  202. package/build/utils/constants.js +13 -26
  203. package/build/utils/constants.js.map +1 -1
  204. package/build-module/components/block-editor/site-editor-canvas.js +13 -6
  205. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  206. package/build-module/components/block-editor/use-navigate-to-entity-record.js +25 -0
  207. package/build-module/components/block-editor/use-navigate-to-entity-record.js.map +1 -0
  208. package/build-module/components/block-editor/use-site-editor-settings.js +29 -4
  209. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  210. package/build-module/components/editor/index.js +13 -10
  211. package/build-module/components/editor/index.js.map +1 -1
  212. package/build-module/components/global-styles/font-families.js +8 -4
  213. package/build-module/components/global-styles/font-families.js.map +1 -1
  214. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +12 -11
  215. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  216. package/build-module/components/global-styles/font-library-modal/context.js +14 -0
  217. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  218. package/build-module/components/global-styles/font-library-modal/font-card.js +3 -2
  219. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
  220. package/build-module/components/global-styles/font-library-modal/font-collection.js +28 -41
  221. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  222. package/build-module/components/global-styles/font-library-modal/font-demo.js +5 -10
  223. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  224. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +2 -2
  225. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  226. package/build-module/components/global-styles/font-library-modal/index.js +10 -3
  227. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  228. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +14 -25
  229. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  230. package/build-module/components/global-styles/font-library-modal/library-font-card.js +1 -1
  231. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  232. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +14 -13
  233. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  234. package/build-module/components/global-styles/font-library-modal/resolvers.js +1 -1
  235. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  236. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js +13 -3
  237. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
  238. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +158 -6
  239. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  240. package/build-module/components/global-styles/font-library-modal/utils/index.js +36 -31
  241. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  242. package/build-module/components/global-styles/screen-block.js +0 -9
  243. package/build-module/components/global-styles/screen-block.js.map +1 -1
  244. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  245. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  246. package/build-module/components/global-styles/screen-typography-element.js +3 -5
  247. package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
  248. package/build-module/components/header-edit-mode/more-menu/index.js +12 -21
  249. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  250. package/build-module/components/keyboard-shortcut-help-modal/index.js +0 -1
  251. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  252. package/build-module/components/layout/index.js +0 -2
  253. package/build-module/components/layout/index.js.map +1 -1
  254. package/build-module/components/page-pages/index.js +25 -13
  255. package/build-module/components/page-pages/index.js.map +1 -1
  256. package/build-module/components/page-patterns/dataviews-pattern-actions.js +81 -20
  257. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  258. package/build-module/components/page-patterns/grid-item.js +1 -4
  259. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  260. package/build-module/components/page-patterns/index.js +2 -1
  261. package/build-module/components/page-patterns/index.js.map +1 -1
  262. package/build-module/components/page-patterns/search-items.js +0 -1
  263. package/build-module/components/page-patterns/search-items.js.map +1 -1
  264. package/build-module/components/page-templates-template-parts/index.js +6 -3
  265. package/build-module/components/page-templates-template-parts/index.js.map +1 -1
  266. package/build-module/components/routes/link.js +3 -6
  267. package/build-module/components/routes/link.js.map +1 -1
  268. package/build-module/components/sidebar-dataviews/default-views.js +3 -3
  269. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  270. package/build-module/components/sidebar-edit-mode/index.js +98 -19
  271. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  272. package/build-module/components/sidebar-edit-mode/settings-header/index.js +24 -73
  273. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  274. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +2 -2
  275. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  276. package/build-module/components/site-icon/index.js +2 -2
  277. package/build-module/components/site-icon/index.js.map +1 -1
  278. package/build-module/components/template-part-converter/convert-to-template-part.js +0 -1
  279. package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
  280. package/build-module/components/welcome-guide/template.js +2 -2
  281. package/build-module/components/welcome-guide/template.js.map +1 -1
  282. package/build-module/hooks/commands/use-edit-mode-commands.js +16 -6
  283. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  284. package/build-module/store/actions.js +7 -2
  285. package/build-module/store/actions.js.map +1 -1
  286. package/build-style/style-rtl.css +398 -224
  287. package/build-style/style.css +398 -224
  288. package/package.json +42 -42
  289. package/src/components/add-new-template/style.scss +0 -12
  290. package/src/components/block-editor/site-editor-canvas.js +23 -15
  291. package/src/components/block-editor/style.scss +2 -20
  292. package/src/components/block-editor/use-navigate-to-entity-record.js +25 -0
  293. package/src/components/block-editor/use-site-editor-settings.js +35 -4
  294. package/src/components/editor/index.js +11 -10
  295. package/src/components/global-styles/font-families.js +13 -4
  296. package/src/components/global-styles/font-library-modal/collection-font-variant.js +10 -8
  297. package/src/components/global-styles/font-library-modal/context.js +14 -0
  298. package/src/components/global-styles/font-library-modal/font-card.js +10 -4
  299. package/src/components/global-styles/font-library-modal/font-collection.js +25 -47
  300. package/src/components/global-styles/font-library-modal/font-demo.js +9 -10
  301. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +2 -2
  302. package/src/components/global-styles/font-library-modal/index.js +8 -3
  303. package/src/components/global-styles/font-library-modal/installed-fonts.js +20 -34
  304. package/src/components/global-styles/font-library-modal/library-font-card.js +1 -1
  305. package/src/components/global-styles/font-library-modal/library-font-variant.js +12 -10
  306. package/src/components/global-styles/font-library-modal/resolvers.js +1 -1
  307. package/src/components/global-styles/font-library-modal/style.scss +13 -27
  308. package/src/components/global-styles/font-library-modal/tab-panel-layout.js +17 -0
  309. package/src/components/global-styles/font-library-modal/upload-fonts.js +192 -6
  310. package/src/components/global-styles/font-library-modal/utils/index.js +46 -39
  311. package/src/components/global-styles/screen-block.js +0 -12
  312. package/src/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  313. package/src/components/global-styles/screen-revisions/style.scss +21 -15
  314. package/src/components/global-styles/screen-typography-element.js +2 -4
  315. package/src/components/global-styles/style.scss +4 -0
  316. package/src/components/header-edit-mode/more-menu/index.js +10 -18
  317. package/src/components/header-edit-mode/style.scss +54 -6
  318. package/src/components/layout/style.scss +2 -7
  319. package/src/components/page/style.scss +0 -1
  320. package/src/components/page-pages/index.js +32 -23
  321. package/src/components/page-pages/style.scss +28 -27
  322. package/src/components/page-patterns/dataviews-pattern-actions.js +106 -30
  323. package/src/components/page-patterns/grid-item.js +0 -2
  324. package/src/components/page-patterns/index.js +1 -0
  325. package/src/components/page-patterns/style.scss +4 -9
  326. package/src/components/page-templates-template-parts/index.js +23 -16
  327. package/src/components/page-templates-template-parts/style.scss +16 -0
  328. package/src/components/routes/link.js +3 -12
  329. package/src/components/sidebar-dataviews/default-views.js +3 -3
  330. package/src/components/sidebar-edit-mode/index.js +122 -29
  331. package/src/components/sidebar-edit-mode/settings-header/index.js +28 -88
  332. package/src/components/sidebar-edit-mode/settings-header/style.scss +0 -87
  333. package/src/components/sidebar-edit-mode/sidebar-card/style.scss +3 -0
  334. package/src/components/sidebar-edit-mode/style.scss +4 -0
  335. package/src/components/sidebar-navigation-screen/style.scss +2 -1
  336. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +9 -3
  337. package/src/components/site-hub/style.scss +0 -1
  338. package/src/components/site-icon/index.js +1 -1
  339. package/src/components/site-icon/style.scss +9 -1
  340. package/src/components/welcome-guide/template.js +2 -2
  341. package/src/hooks/commands/use-edit-mode-commands.js +26 -14
  342. package/src/store/actions.js +20 -3
  343. package/build/components/block-editor/back-button.js +0 -47
  344. package/build/components/block-editor/back-button.js.map +0 -1
  345. package/build/components/block-editor/use-post-link-props.js +0 -27
  346. package/build/components/block-editor/use-post-link-props.js.map +0 -1
  347. package/build/components/global-styles/font-library-modal/font-variant.js +0 -51
  348. package/build/components/global-styles/font-library-modal/font-variant.js.map +0 -1
  349. package/build/components/global-styles/font-library-modal/local-fonts.js +0 -196
  350. package/build/components/global-styles/font-library-modal/local-fonts.js.map +0 -1
  351. package/build-module/components/block-editor/back-button.js +0 -39
  352. package/build-module/components/block-editor/back-button.js.map +0 -1
  353. package/build-module/components/block-editor/use-post-link-props.js +0 -20
  354. package/build-module/components/block-editor/use-post-link-props.js.map +0 -1
  355. package/build-module/components/global-styles/font-library-modal/font-variant.js +0 -42
  356. package/build-module/components/global-styles/font-library-modal/font-variant.js.map +0 -1
  357. package/build-module/components/global-styles/font-library-modal/local-fonts.js +0 -187
  358. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +0 -1
  359. package/src/components/block-editor/back-button.js +0 -48
  360. package/src/components/block-editor/use-post-link-props.js +0 -20
  361. package/src/components/global-styles/font-library-modal/font-variant.js +0 -53
  362. package/src/components/global-styles/font-library-modal/local-fonts.js +0 -239
@@ -1,19 +1,205 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { __experimentalSpacer as Spacer } from '@wordpress/components';
4
+ import { __ } from '@wordpress/i18n';
5
+ import {
6
+ Button,
7
+ DropZone,
8
+ __experimentalSpacer as Spacer,
9
+ __experimentalText as Text,
10
+ __experimentalVStack as VStack,
11
+ FormFileUpload,
12
+ FlexItem,
13
+ privateApis as componentsPrivateApis,
14
+ } from '@wordpress/components';
15
+ import { useContext, useState } from '@wordpress/element';
5
16
 
6
17
  /**
7
18
  * Internal dependencies
8
19
  */
9
- import LocalFonts from './local-fonts';
20
+ import { ALLOWED_FILE_EXTENSIONS } from './utils/constants';
21
+ import { FontLibraryContext } from './context';
22
+ import { Font } from '../../../../lib/lib-font.browser';
23
+ import makeFamiliesFromFaces from './utils/make-families-from-faces';
24
+ import { loadFontFaceInBrowser } from './utils';
25
+ import TabPanelLayout from './tab-panel-layout';
26
+ import { unlock } from '../../../lock-unlock';
27
+
28
+ const { ProgressBar } = unlock( componentsPrivateApis );
10
29
 
11
30
  function UploadFonts() {
31
+ const { installFont, notice, setNotice } = useContext( FontLibraryContext );
32
+ const [ isUploading, setIsUploading ] = useState( false );
33
+
34
+ const handleDropZone = ( files ) => {
35
+ handleFilesUpload( files );
36
+ };
37
+ const onFilesUpload = ( event ) => {
38
+ handleFilesUpload( event.target.files );
39
+ };
40
+
41
+ /**
42
+ * Filters the selected files to only allow the ones with the allowed extensions
43
+ *
44
+ * @param {Array} files The files to be filtered
45
+ * @return {void}
46
+ */
47
+ const handleFilesUpload = ( files ) => {
48
+ setNotice( null );
49
+ setIsUploading( true );
50
+ const uniqueFilenames = new Set();
51
+ const selectedFiles = [ ...files ];
52
+ const allowedFiles = selectedFiles.filter( ( file ) => {
53
+ if ( uniqueFilenames.has( file.name ) ) {
54
+ return false; // Discard duplicates
55
+ }
56
+ // Eliminates files that are not allowed
57
+ const fileExtension = file.name.split( '.' ).pop().toLowerCase();
58
+ if ( ALLOWED_FILE_EXTENSIONS.includes( fileExtension ) ) {
59
+ uniqueFilenames.add( file.name );
60
+ return true; // Keep file if the extension is allowed
61
+ }
62
+ return false; // Discard file extension not allowed
63
+ } );
64
+ if ( allowedFiles.length > 0 ) {
65
+ loadFiles( allowedFiles );
66
+ }
67
+ };
68
+
69
+ /**
70
+ * Loads the selected files and reads the font metadata
71
+ *
72
+ * @param {Array} files The files to be loaded
73
+ * @return {void}
74
+ */
75
+ const loadFiles = async ( files ) => {
76
+ const fontFacesLoaded = await Promise.all(
77
+ files.map( async ( fontFile ) => {
78
+ const fontFaceData = await getFontFaceMetadata( fontFile );
79
+ await loadFontFaceInBrowser(
80
+ fontFaceData,
81
+ fontFaceData.file,
82
+ 'all'
83
+ );
84
+ return fontFaceData;
85
+ } )
86
+ );
87
+ handleInstall( fontFacesLoaded );
88
+ };
89
+
90
+ // Create a function to read the file as array buffer
91
+ async function readFileAsArrayBuffer( file ) {
92
+ return new Promise( ( resolve, reject ) => {
93
+ const reader = new window.FileReader();
94
+ reader.readAsArrayBuffer( file );
95
+ reader.onload = () => resolve( reader.result );
96
+ reader.onerror = reject;
97
+ } );
98
+ }
99
+
100
+ const getFontFaceMetadata = async ( fontFile ) => {
101
+ const buffer = await readFileAsArrayBuffer( fontFile );
102
+ const fontObj = new Font( 'Uploaded Font' );
103
+ fontObj.fromDataBuffer( buffer, fontFile.name );
104
+ // Assuming that fromDataBuffer triggers onload event and returning a Promise
105
+ const onloadEvent = await new Promise(
106
+ ( resolve ) => ( fontObj.onload = resolve )
107
+ );
108
+ const font = onloadEvent.detail.font;
109
+ const { name } = font.opentype.tables;
110
+ const fontName = name.get( 16 ) || name.get( 1 );
111
+ const isItalic = name.get( 2 ).toLowerCase().includes( 'italic' );
112
+ const fontWeight =
113
+ font.opentype.tables[ 'OS/2' ].usWeightClass || 'normal';
114
+ const isVariable = !! font.opentype.tables.fvar;
115
+ const weightAxis =
116
+ isVariable &&
117
+ font.opentype.tables.fvar.axes.find(
118
+ ( { tag } ) => tag === 'wght'
119
+ );
120
+ const weightRange = weightAxis
121
+ ? `${ weightAxis.minValue } ${ weightAxis.maxValue }`
122
+ : null;
123
+ return {
124
+ file: fontFile,
125
+ fontFamily: fontName,
126
+ fontStyle: isItalic ? 'italic' : 'normal',
127
+ fontWeight: weightRange || fontWeight,
128
+ };
129
+ };
130
+
131
+ /**
132
+ * Creates the font family definition and sends it to the server
133
+ *
134
+ * @param {Array} fontFaces The font faces to be installed
135
+ * @return {void}
136
+ */
137
+ const handleInstall = async ( fontFaces ) => {
138
+ const fontFamilies = makeFamiliesFromFaces( fontFaces );
139
+
140
+ if ( fontFamilies.length > 1 ) {
141
+ setNotice( {
142
+ type: 'error',
143
+ message: __(
144
+ 'Variants from only one font family can be uploaded at a time.'
145
+ ),
146
+ } );
147
+ setIsUploading( false );
148
+ return;
149
+ }
150
+
151
+ try {
152
+ await installFont( fontFamilies[ 0 ] );
153
+ setNotice( {
154
+ type: 'success',
155
+ message: __( 'Fonts were installed successfully.' ),
156
+ } );
157
+ } catch ( error ) {
158
+ setNotice( {
159
+ type: 'error',
160
+ message: error.message,
161
+ } );
162
+ }
163
+
164
+ setIsUploading( false );
165
+ };
166
+
12
167
  return (
13
- <>
14
- <Spacer margin={ 8 } />
15
- <LocalFonts />
16
- </>
168
+ <TabPanelLayout notice={ notice }>
169
+ <DropZone onFilesDrop={ handleDropZone } />
170
+ <VStack className="font-library-modal__local-fonts">
171
+ { isUploading && (
172
+ <FlexItem>
173
+ <div className="font-library-modal__upload-area">
174
+ <ProgressBar />
175
+ </div>
176
+ </FlexItem>
177
+ ) }
178
+ { ! isUploading && (
179
+ <FormFileUpload
180
+ accept={ ALLOWED_FILE_EXTENSIONS.map(
181
+ ( ext ) => `.${ ext }`
182
+ ).join( ',' ) }
183
+ multiple={ true }
184
+ onChange={ onFilesUpload }
185
+ render={ ( { openFileDialog } ) => (
186
+ <Button
187
+ className="font-library-modal__upload-area"
188
+ onClick={ openFileDialog }
189
+ >
190
+ { __( 'Upload font' ) }
191
+ </Button>
192
+ ) }
193
+ />
194
+ ) }
195
+ <Spacer margin={ 2 } />
196
+ <Text className="font-library-modal__upload-area__text">
197
+ { __(
198
+ 'Uploaded fonts appear in your library and can be used in your theme. Supported formats: .tff, .otf, .woff, and .woff2.'
199
+ ) }
200
+ </Text>
201
+ </VStack>
202
+ </TabPanelLayout>
17
203
  );
18
204
  }
19
205
 
@@ -161,23 +161,28 @@ export function makeFontFamilyFormData( fontFamily ) {
161
161
 
162
162
  export function makeFontFacesFormData( font ) {
163
163
  if ( font?.fontFace ) {
164
- const fontFacesFormData = font.fontFace.map( ( face, faceIndex ) => {
164
+ const fontFacesFormData = font.fontFace.map( ( item, faceIndex ) => {
165
+ const face = { ...item };
165
166
  const formData = new FormData();
166
167
  if ( face.file ) {
167
- // Slugified file name because the it might contain spaces or characters treated differently on the server.
168
- const fileId = `file-${ faceIndex }`;
169
- // Add the files to the formData
170
- formData.append( fileId, face.file, face.file.name );
171
- // remove the file object from the face object the file is referenced in src
172
- const { file, ...faceWithoutFileProperty } = face;
173
- const fontFaceSettings = {
174
- ...faceWithoutFileProperty,
175
- src: fileId,
176
- };
177
- formData.append(
178
- 'font_face_settings',
179
- JSON.stringify( fontFaceSettings )
180
- );
168
+ // Normalize to an array, since face.file may be a single file or an array of files.
169
+ const files = Array.isArray( face.file )
170
+ ? face.file
171
+ : [ face.file ];
172
+ const src = [];
173
+
174
+ files.forEach( ( file, key ) => {
175
+ // Slugified file name because the it might contain spaces or characters treated differently on the server.
176
+ const fileId = `file-${ faceIndex }-${ key }`;
177
+ // Add the files to the formData
178
+ formData.append( fileId, file, file.name );
179
+ src.push( fileId );
180
+ } );
181
+
182
+ face.src = src.length === 1 ? src[ 0 ] : src;
183
+ delete face.file;
184
+
185
+ formData.append( 'font_face_settings', JSON.stringify( face ) );
181
186
  } else {
182
187
  formData.append( 'font_face_settings', JSON.stringify( face ) );
183
188
  }
@@ -225,31 +230,33 @@ export async function batchInstallFontFaces( fontFamilyId, fontFacesData ) {
225
230
  /*
226
231
  * Downloads a font face asset from a URL to the client and returns a File object.
227
232
  */
228
- export async function downloadFontFaceAsset( url ) {
229
- return fetch( new Request( url ) )
230
- .then( ( response ) => {
231
- if ( ! response.ok ) {
232
- throw new Error(
233
- `Error downloading font face asset from ${ url }. Server responded with status: ${ response.status }`
234
- );
235
- }
236
- return response.blob();
237
- } )
238
- .then( ( blob ) => {
239
- const filename = url.split( '/' ).pop();
240
- const file = new File( [ blob ], filename, {
241
- type: blob.type,
242
- } );
243
- return file;
233
+ export async function downloadFontFaceAssets( src ) {
234
+ // Normalize to an array, since `src` could be a string or array.
235
+ src = Array.isArray( src ) ? src : [ src ];
236
+
237
+ const files = await Promise.all(
238
+ src.map( async ( url ) => {
239
+ return fetch( new Request( url ) )
240
+ .then( ( response ) => {
241
+ if ( ! response.ok ) {
242
+ throw new Error(
243
+ `Error downloading font face asset from ${ url }. Server responded with status: ${ response.status }`
244
+ );
245
+ }
246
+ return response.blob();
247
+ } )
248
+ .then( ( blob ) => {
249
+ const filename = url.split( '/' ).pop();
250
+ const file = new File( [ blob ], filename, {
251
+ type: blob.type,
252
+ } );
253
+ return file;
254
+ } );
244
255
  } )
245
- .catch( ( error ) => {
246
- // eslint-disable-next-line no-console
247
- console.error(
248
- `Error downloading font face asset from ${ url }:`,
249
- error
250
- );
251
- throw error;
252
- } );
256
+ );
257
+
258
+ // If we only have one file return it (not the array). Otherwise return all of them in the array.
259
+ return files.length === 1 ? files[ 0 ] : files;
253
260
  }
254
261
 
255
262
  /*
@@ -64,7 +64,6 @@ const {
64
64
  useGlobalSetting,
65
65
  useSettingsForBlockElement,
66
66
  useHasColorPanel,
67
- useHasEffectsPanel,
68
67
  useHasFiltersPanel,
69
68
  useHasImageSettingsPanel,
70
69
  useGlobalStyle,
@@ -72,7 +71,6 @@ const {
72
71
  ColorPanel: StylesColorPanel,
73
72
  TypographyPanel: StylesTypographyPanel,
74
73
  DimensionsPanel: StylesDimensionsPanel,
75
- EffectsPanel: StylesEffectsPanel,
76
74
  FiltersPanel: StylesFiltersPanel,
77
75
  ImageSettingsPanel,
78
76
  AdvancedPanel: StylesAdvancedPanel,
@@ -124,7 +122,6 @@ function ScreenBlock( { name, variation } ) {
124
122
  const hasColorPanel = useHasColorPanel( settings );
125
123
  const hasBorderPanel = useHasBorderPanel( settings );
126
124
  const hasDimensionsPanel = useHasDimensionsPanel( settings );
127
- const hasEffectsPanel = useHasEffectsPanel( settings );
128
125
  const hasFiltersPanel = useHasFiltersPanel( settings );
129
126
  const hasImageSettingsPanel = useHasImageSettingsPanel(
130
127
  name,
@@ -279,15 +276,6 @@ function ScreenBlock( { name, variation } ) {
279
276
  settings={ settings }
280
277
  />
281
278
  ) }
282
- { hasEffectsPanel && (
283
- <StylesEffectsPanel
284
- inheritedValue={ inheritedStyleWithLayout }
285
- value={ styleWithLayout }
286
- onChange={ setStyle }
287
- settings={ settings }
288
- includeLayoutControls
289
- />
290
- ) }
291
279
  { hasFiltersPanel && (
292
280
  <StylesFiltersPanel
293
281
  inheritedValue={ inheritedStyleWithLayout }
@@ -36,7 +36,7 @@ function ChangesSummary( { revision, previousRevision } ) {
36
36
  data-testid="global-styles-revision-changes"
37
37
  className="edit-site-global-styles-screen-revisions__changes"
38
38
  >
39
- { changes.join( ', ' ) }
39
+ { changes.join( ', ' ) }.
40
40
  </span>
41
41
  );
42
42
  }
@@ -41,6 +41,7 @@
41
41
  // This border serves as a background color in Windows High Contrast mode.
42
42
  border: 4px solid transparent;
43
43
  }
44
+
44
45
  &.is-selected {
45
46
  border-radius: $radius-block-ui;
46
47
 
@@ -48,9 +49,26 @@
48
49
  outline: 3px solid transparent;
49
50
  outline-offset: -2px;
50
51
 
52
+ color: var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));
53
+ background: rgba(var(--wp-admin-theme-color--rgb), 0.04);
54
+
55
+ .edit-site-global-styles-screen-revisions__revision-button {
56
+ opacity: 1;
57
+ }
58
+
59
+ .edit-site-global-styles-screen-revisions__date {
60
+ color: var(--wp-admin-theme-color);
61
+ }
62
+
51
63
  &::before {
52
64
  background: var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));
53
65
  }
66
+
67
+ .edit-site-global-styles-screen-revisions__changes,
68
+ .edit-site-global-styles-screen-revisions__meta,
69
+ .edit-site-global-styles-screen-revisions__applied-text {
70
+ color: $gray-900;
71
+ }
54
72
  }
55
73
 
56
74
  &::after {
@@ -81,17 +99,6 @@
81
99
  }
82
100
  }
83
101
 
84
- .is-selected {
85
- color: var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));
86
- background: rgba(var(--wp-admin-theme-color--rgb), 0.04);
87
- .edit-site-global-styles-screen-revisions__revision-button {
88
- opacity: 1;
89
- }
90
- .edit-site-global-styles-screen-revisions__date {
91
- color: var(--wp-admin-theme-color);
92
- }
93
- }
94
-
95
102
  .edit-site-global-styles-screen-revisions__apply-button.is-primary,
96
103
  .edit-site-global-styles-screen-revisions__applied-text {
97
104
  align-self: flex-start;
@@ -99,10 +106,11 @@
99
106
  margin: 0 $grid-unit-15 $grid-unit-15 $grid-unit-50;
100
107
  }
101
108
 
109
+ .edit-site-global-styles-screen-revisions__changes,
110
+ .edit-site-global-styles-screen-revisions__meta,
102
111
  .edit-site-global-styles-screen-revisions__applied-text {
103
- color: $gray-600;
112
+ color: $gray-700;
104
113
  font-size: 12px;
105
- font-style: italic;
106
114
  }
107
115
 
108
116
  .edit-site-global-styles-screen-revisions__description {
@@ -119,12 +127,10 @@
119
127
 
120
128
  .edit-site-global-styles-screen-revisions__changes,
121
129
  .edit-site-global-styles-screen-revisions__meta {
122
- color: $gray-600;
123
130
  display: flex;
124
131
  justify-content: start;
125
132
  width: 100%;
126
133
  align-items: flex-start;
127
- font-size: 12px;
128
134
  text-align: left;
129
135
  img {
130
136
  width: $grid-unit-20;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { __ } from '@wordpress/i18n';
4
+ import { __, _x } from '@wordpress/i18n';
5
5
  import {
6
6
  __experimentalToggleGroupControl as ToggleGroupControl,
7
7
  __experimentalToggleGroupControlOption as ToggleGroupControlOption,
@@ -67,9 +67,7 @@ function ScreenTypographyElement( { element } ) {
67
67
  >
68
68
  <ToggleGroupControlOption
69
69
  value="heading"
70
- /* translators: 'All' refers to selecting all heading levels
71
- and applying the same style to h1-h6. */
72
- label={ __( 'All' ) }
70
+ label={ _x( 'All', 'heading levels' ) }
73
71
  />
74
72
  <ToggleGroupControlOption
75
73
  value="h1"
@@ -46,6 +46,10 @@
46
46
  color: $gray-700;
47
47
  }
48
48
 
49
+ .edit-site-global-styles-font-families__add-fonts {
50
+ justify-content: center;
51
+ }
52
+
49
53
  .edit-site-global-styles-screen-colors {
50
54
  margin: $grid-unit-20;
51
55
 
@@ -2,7 +2,7 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { __, _x } from '@wordpress/i18n';
5
- import { useDispatch, useRegistry } from '@wordpress/data';
5
+ import { useSelect, useDispatch } from '@wordpress/data';
6
6
  import { displayShortcut } from '@wordpress/keycodes';
7
7
  import { external } from '@wordpress/icons';
8
8
  import { MenuGroup, MenuItem, VisuallyHidden } from '@wordpress/components';
@@ -15,7 +15,7 @@ import {
15
15
  PreferenceToggleMenuItem,
16
16
  store as preferencesStore,
17
17
  } from '@wordpress/preferences';
18
- import { store as editorStore } from '@wordpress/editor';
18
+ import { store as coreStore } from '@wordpress/core-data';
19
19
 
20
20
  /**
21
21
  * Internal dependencies
@@ -33,25 +33,16 @@ import SiteExport from './site-export';
33
33
  import WelcomeGuideMenuItem from './welcome-guide-menu-item';
34
34
  import CopyContentMenuItem from './copy-content-menu-item';
35
35
  import ModeSwitcher from '../mode-switcher';
36
- import { store as siteEditorStore } from '../../../store';
36
+ import { store as editSiteStore } from '../../../store';
37
37
 
38
38
  export default function MoreMenu( { showIconLabels } ) {
39
- const registry = useRegistry();
40
-
41
- const { closeGeneralSidebar } = useDispatch( siteEditorStore );
42
- const { setIsInserterOpened, setIsListViewOpened } =
43
- useDispatch( editorStore );
44
39
  const { openModal } = useDispatch( interfaceStore );
45
40
  const { set: setPreference } = useDispatch( preferencesStore );
41
+ const isBlockBasedTheme = useSelect( ( select ) => {
42
+ return select( coreStore ).getCurrentTheme().is_block_theme;
43
+ }, [] );
46
44
 
47
- const toggleDistractionFree = () => {
48
- registry.batch( () => {
49
- setPreference( 'core', 'fixedToolbar', true );
50
- setIsInserterOpened( false );
51
- setIsListViewOpened( false );
52
- closeGeneralSidebar();
53
- } );
54
- };
45
+ const { toggleDistractionFree } = useDispatch( editSiteStore );
55
46
 
56
47
  const turnOffDistractionFree = () => {
57
48
  setPreference( 'core', 'distractionFree', false );
@@ -86,9 +77,10 @@ export default function MoreMenu( { showIconLabels } ) {
86
77
  <PreferenceToggleMenuItem
87
78
  scope="core"
88
79
  name="distractionFree"
89
- onToggle={ toggleDistractionFree }
90
80
  label={ __( 'Distraction free' ) }
91
81
  info={ __( 'Write with calmness' ) }
82
+ handleToggling={ false }
83
+ onToggle={ toggleDistractionFree }
92
84
  messageActivated={ __(
93
85
  'Distraction free mode activated'
94
86
  ) }
@@ -120,7 +112,7 @@ export default function MoreMenu( { showIconLabels } ) {
120
112
  fillProps={ { onClick: onClose } }
121
113
  />
122
114
  <MenuGroup label={ __( 'Tools' ) }>
123
- <SiteExport />
115
+ { isBlockBasedTheme && <SiteExport /> }
124
116
  <MenuItem
125
117
  onClick={ () =>
126
118
  openModal(
@@ -86,7 +86,13 @@ $header-toolbar-min-width: 335px;
86
86
  .edit-site-header-edit-mode__actions {
87
87
  display: inline-flex;
88
88
  align-items: center;
89
- padding-right: $grid-unit-10;
89
+ flex-wrap: nowrap;
90
+ padding-right: $grid-unit-05;
91
+
92
+ @include break-small () {
93
+ padding-right: $grid-unit-10;
94
+ }
95
+
90
96
  gap: $grid-unit-10;
91
97
  }
92
98
 
@@ -149,9 +155,9 @@ $header-toolbar-min-width: 335px;
149
155
  &::before {
150
156
  content: "";
151
157
  width: $border-width;
152
- margin-top: $grid-unit-15;
153
- margin-bottom: $grid-unit-15;
158
+ height: $grid-unit-30;
154
159
  background-color: $gray-300;
160
+ margin-top: $grid-unit-05;
155
161
  margin-left: $grid-unit;
156
162
  }
157
163
 
@@ -168,10 +174,36 @@ $header-toolbar-min-width: 335px;
168
174
 
169
175
  .has-fixed-toolbar {
170
176
  .selected-block-tools-wrapper {
171
- overflow-x: scroll;
177
+ overflow: hidden;
178
+ display: flex;
179
+ align-items: center;
180
+ height: $header-height;
172
181
 
173
182
  .block-editor-block-contextual-toolbar {
174
183
  border-bottom: 0;
184
+ height: 100%;
185
+ }
186
+
187
+ // These rules ensure that icons are always positioned in a way that lines up with the rest of the icons in the toolbar.
188
+ .block-editor-block-toolbar {
189
+ height: 100%;
190
+ // Push down so that buttons are centered vertically.
191
+ // It should be 14px (60px header height - 32px compact button height = 28 / 2),
192
+ // but there is a -1px top-margin down the stack that affects this.
193
+ padding-top: math.div($header-height - $button-size-compact, 2) + 1;
194
+
195
+ // Match the height of other buttons in the header toolbar.
196
+ .components-button:not(.block-editor-block-mover-button) {
197
+ height: $button-size-compact;
198
+ }
199
+ }
200
+
201
+ &::after {
202
+ content: "";
203
+ width: $border-width;
204
+ height: $grid-unit-30;
205
+ background-color: $gray-300;
206
+ margin-left: $grid-unit;
175
207
  }
176
208
 
177
209
  // Modified group borders.
@@ -182,9 +214,9 @@ $header-toolbar-min-width: 335px;
182
214
  &::after {
183
215
  content: "";
184
216
  width: $border-width;
185
- margin-top: $grid-unit-15;
186
- margin-bottom: $grid-unit-15;
217
+ height: $grid-unit-30;
187
218
  background-color: $gray-300;
219
+ margin-top: $grid-unit-05;
188
220
  margin-left: $grid-unit;
189
221
  }
190
222
 
@@ -195,6 +227,22 @@ $header-toolbar-min-width: 335px;
195
227
  }
196
228
  }
197
229
 
230
+ .block-editor-block-mover {
231
+ // Match the height of other buttons in the header toolbar.
232
+ &.is-horizontal .block-editor-block-mover-button {
233
+ height: $button-size-compact;
234
+ overflow: visible;
235
+ }
236
+
237
+ // Move up a little to prevent the toolbar shift when focus is on the vertical movers.
238
+ @include break-small() {
239
+ &:not(.is-horizontal) .block-editor-block-mover__move-button-container {
240
+ position: relative;
241
+ top: -10px;
242
+ }
243
+ }
244
+ }
245
+
198
246
  &.is-collapsed {
199
247
  display: none;
200
248
  }
@@ -19,15 +19,10 @@
19
19
  }
20
20
 
21
21
  .edit-site-layout.is-full-canvas & {
22
- padding-right: $grid-unit-20;
22
+ padding-right: 0;
23
23
  border-radius: 0;
24
- width: 100vw;
24
+ width: $header-height;
25
25
  box-shadow: none;
26
-
27
- @include break-medium {
28
- width: $header-height;
29
- padding-right: 0;
30
- }
31
26
  }
32
27
  }
33
28
 
@@ -27,7 +27,6 @@
27
27
  .edit-site-page-content {
28
28
  height: 100%;
29
29
  display: flex;
30
- overflow: auto;
31
30
  flex-flow: column;
32
31
  position: relative;
33
32
  z-index: z-index(".edit-site-page-content");