@wordpress/edit-site 5.33.0 → 5.34.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 (272) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-page/index.js +3 -0
  3. package/build/components/add-new-page/index.js.map +1 -1
  4. package/build/components/add-new-pattern/index.js +8 -7
  5. package/build/components/add-new-pattern/index.js.map +1 -1
  6. package/build/components/add-new-template/add-custom-generic-template-modal-content.js +3 -0
  7. package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  8. package/build/components/add-new-template/add-custom-template-modal-content.js +3 -1
  9. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  10. package/build/components/block-editor/resize-handle.js +20 -5
  11. package/build/components/block-editor/resize-handle.js.map +1 -1
  12. package/build/components/create-template-part-modal/index.js +3 -0
  13. package/build/components/create-template-part-modal/index.js.map +1 -1
  14. package/build/components/editor/index.js +28 -5
  15. package/build/components/editor/index.js.map +1 -1
  16. package/build/components/global-styles/font-library-modal/context.js +9 -3
  17. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/font-collection.js +7 -2
  19. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/installed-fonts.js +22 -20
  21. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  22. package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js +6 -2
  23. package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -1
  24. package/build/components/global-styles/style-variations-container.js +8 -2
  25. package/build/components/global-styles/style-variations-container.js.map +1 -1
  26. package/build/components/header-edit-mode/index.js +33 -49
  27. package/build/components/header-edit-mode/index.js.map +1 -1
  28. package/build/components/header-edit-mode/more-menu/index.js +3 -97
  29. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  30. package/build/components/keyboard-shortcuts/register.js +0 -49
  31. package/build/components/keyboard-shortcuts/register.js.map +1 -1
  32. package/build/components/layout/index.js +7 -4
  33. package/build/components/layout/index.js.map +1 -1
  34. package/build/components/layout/router.js +9 -38
  35. package/build/components/layout/router.js.map +1 -1
  36. package/build/components/page-pages/index.js +4 -3
  37. package/build/components/page-pages/index.js.map +1 -1
  38. package/build/components/page-patterns/dataviews-pattern-actions.js +11 -7
  39. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  40. package/build/components/page-patterns/header.js +3 -1
  41. package/build/components/page-patterns/header.js.map +1 -1
  42. package/build/components/page-patterns/index.js +20 -49
  43. package/build/components/page-patterns/index.js.map +1 -1
  44. package/build/components/page-patterns/use-patterns.js +1 -0
  45. package/build/components/page-patterns/use-patterns.js.map +1 -1
  46. package/build/components/page-templates/hooks.js.map +1 -0
  47. package/build/components/{page-templates-template-parts → page-templates}/index.js +67 -80
  48. package/build/components/page-templates/index.js.map +1 -0
  49. package/build/components/pattern-modal/duplicate.js +7 -5
  50. package/build/components/pattern-modal/duplicate.js.map +1 -1
  51. package/build/components/plugin-template-setting-panel/index.js +9 -0
  52. package/build/components/plugin-template-setting-panel/index.js.map +1 -1
  53. package/build/components/resizable-frame/index.js +9 -6
  54. package/build/components/resizable-frame/index.js.map +1 -1
  55. package/build/components/sidebar-edit-mode/index.js +3 -2
  56. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  57. package/build/components/sidebar-edit-mode/page-panels/index.js +40 -9
  58. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  59. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +24 -17
  60. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  61. package/build/components/sidebar-edit-mode/template-panel/index.js +2 -5
  62. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  63. package/build/components/sidebar-navigation-screen-page/index.js +39 -8
  64. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  65. package/build/components/sidebar-navigation-screen-pattern/index.js +6 -13
  66. package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  67. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +3 -1
  68. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +1 -1
  69. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +1 -1
  70. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  71. package/build/components/sidebar-navigation-screen-patterns/category-item.js +3 -2
  72. package/build/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -1
  73. package/build/components/sidebar-navigation-screen-patterns/index.js +34 -28
  74. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  75. package/build/components/sidebar-navigation-screen-template/index.js +1 -1
  76. package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
  77. package/build/components/sidebar-navigation-screen-templates-browse/content.js +3 -3
  78. package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  79. package/build/components/sidebar-navigation-screen-templates-browse/index.js +5 -35
  80. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  81. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +0 -8
  82. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  83. package/build/components/template-actions/index.js +1 -1
  84. package/build/components/template-actions/index.js.map +1 -1
  85. package/build/deprecated.js +55 -0
  86. package/build/deprecated.js.map +1 -0
  87. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +35 -4
  88. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  89. package/build/index.js +18 -18
  90. package/build/index.js.map +1 -1
  91. package/build/utils/constants.js +1 -2
  92. package/build/utils/constants.js.map +1 -1
  93. package/build-module/components/add-new-page/index.js +3 -0
  94. package/build-module/components/add-new-page/index.js.map +1 -1
  95. package/build-module/components/add-new-pattern/index.js +8 -7
  96. package/build-module/components/add-new-pattern/index.js.map +1 -1
  97. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js +3 -0
  98. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  99. package/build-module/components/add-new-template/add-custom-template-modal-content.js +3 -1
  100. package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  101. package/build-module/components/block-editor/resize-handle.js +21 -6
  102. package/build-module/components/block-editor/resize-handle.js.map +1 -1
  103. package/build-module/components/create-template-part-modal/index.js +3 -0
  104. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  105. package/build-module/components/editor/index.js +28 -5
  106. package/build-module/components/editor/index.js.map +1 -1
  107. package/build-module/components/global-styles/font-library-modal/context.js +9 -3
  108. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  109. package/build-module/components/global-styles/font-library-modal/font-collection.js +7 -2
  110. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  111. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +22 -20
  112. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  113. package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js +6 -2
  114. package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -1
  115. package/build-module/components/global-styles/style-variations-container.js +8 -2
  116. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  117. package/build-module/components/header-edit-mode/index.js +39 -55
  118. package/build-module/components/header-edit-mode/index.js.map +1 -1
  119. package/build-module/components/header-edit-mode/more-menu/index.js +5 -99
  120. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  121. package/build-module/components/keyboard-shortcuts/register.js +0 -49
  122. package/build-module/components/keyboard-shortcuts/register.js.map +1 -1
  123. package/build-module/components/layout/index.js +7 -4
  124. package/build-module/components/layout/index.js.map +1 -1
  125. package/build-module/components/layout/router.js +9 -38
  126. package/build-module/components/layout/router.js.map +1 -1
  127. package/build-module/components/page-pages/index.js +5 -4
  128. package/build-module/components/page-pages/index.js.map +1 -1
  129. package/build-module/components/page-patterns/dataviews-pattern-actions.js +11 -7
  130. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  131. package/build-module/components/page-patterns/header.js +3 -1
  132. package/build-module/components/page-patterns/header.js.map +1 -1
  133. package/build-module/components/page-patterns/index.js +22 -51
  134. package/build-module/components/page-patterns/index.js.map +1 -1
  135. package/build-module/components/page-patterns/use-patterns.js +1 -0
  136. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  137. package/build-module/components/page-templates/hooks.js.map +1 -0
  138. package/build-module/components/{page-templates-template-parts → page-templates}/index.js +67 -80
  139. package/build-module/components/page-templates/index.js.map +1 -0
  140. package/build-module/components/pattern-modal/duplicate.js +7 -5
  141. package/build-module/components/pattern-modal/duplicate.js.map +1 -1
  142. package/build-module/components/plugin-template-setting-panel/index.js +8 -0
  143. package/build-module/components/plugin-template-setting-panel/index.js.map +1 -1
  144. package/build-module/components/resizable-frame/index.js +9 -6
  145. package/build-module/components/resizable-frame/index.js.map +1 -1
  146. package/build-module/components/sidebar-edit-mode/index.js +4 -3
  147. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  148. package/build-module/components/sidebar-edit-mode/page-panels/index.js +43 -12
  149. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  150. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +25 -17
  151. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  152. package/build-module/components/sidebar-edit-mode/template-panel/index.js +3 -6
  153. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  154. package/build-module/components/sidebar-navigation-screen-page/index.js +40 -9
  155. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  156. package/build-module/components/sidebar-navigation-screen-pattern/index.js +6 -13
  157. package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  158. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +3 -1
  159. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +1 -1
  160. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +1 -1
  161. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  162. package/build-module/components/sidebar-navigation-screen-patterns/category-item.js +3 -2
  163. package/build-module/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -1
  164. package/build-module/components/sidebar-navigation-screen-patterns/index.js +35 -29
  165. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  166. package/build-module/components/sidebar-navigation-screen-template/index.js +1 -1
  167. package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
  168. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +3 -3
  169. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  170. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +5 -35
  171. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  172. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +0 -8
  173. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  174. package/build-module/components/template-actions/index.js +1 -1
  175. package/build-module/components/template-actions/index.js.map +1 -1
  176. package/build-module/deprecated.js +45 -0
  177. package/build-module/deprecated.js.map +1 -0
  178. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +34 -4
  179. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  180. package/build-module/index.js +2 -4
  181. package/build-module/index.js.map +1 -1
  182. package/build-module/utils/constants.js +0 -1
  183. package/build-module/utils/constants.js.map +1 -1
  184. package/build-style/style-rtl.css +79 -125
  185. package/build-style/style.css +79 -125
  186. package/package.json +42 -42
  187. package/src/components/add-new-page/index.js +7 -1
  188. package/src/components/add-new-pattern/index.js +15 -12
  189. package/src/components/add-new-template/add-custom-generic-template-modal-content.js +3 -0
  190. package/src/components/add-new-template/add-custom-template-modal-content.js +3 -1
  191. package/src/components/block-editor/resize-handle.js +30 -11
  192. package/src/components/block-editor/style.scss +10 -15
  193. package/src/components/create-template-part-modal/index.js +3 -0
  194. package/src/components/editor/index.js +42 -3
  195. package/src/components/editor/style.scss +6 -1
  196. package/src/components/global-styles/font-library-modal/context.js +9 -3
  197. package/src/components/global-styles/font-library-modal/font-collection.js +31 -12
  198. package/src/components/global-styles/font-library-modal/installed-fonts.js +82 -54
  199. package/src/components/global-styles/font-library-modal/style.scss +17 -0
  200. package/src/components/global-styles/font-library-modal/utils/sort-font-faces.js +6 -2
  201. package/src/components/global-styles/style-variations-container.js +11 -2
  202. package/src/components/header-edit-mode/index.js +56 -76
  203. package/src/components/header-edit-mode/more-menu/index.js +8 -145
  204. package/src/components/header-edit-mode/style.scss +13 -85
  205. package/src/components/keyboard-shortcuts/register.js +0 -58
  206. package/src/components/layout/index.js +11 -2
  207. package/src/components/layout/router.js +9 -49
  208. package/src/components/page-pages/index.js +14 -4
  209. package/src/components/page-pages/style.scss +11 -0
  210. package/src/components/page-patterns/dataviews-pattern-actions.js +8 -9
  211. package/src/components/page-patterns/header.js +3 -1
  212. package/src/components/page-patterns/index.js +17 -76
  213. package/src/components/page-patterns/style.scss +14 -1
  214. package/src/components/page-patterns/use-patterns.js +1 -0
  215. package/src/components/{page-templates-template-parts → page-templates}/index.js +23 -46
  216. package/src/components/{page-templates-template-parts → page-templates}/style.scss +2 -2
  217. package/src/components/pattern-modal/duplicate.js +4 -3
  218. package/src/components/plugin-template-setting-panel/index.js +8 -0
  219. package/src/components/resizable-frame/index.js +4 -3
  220. package/src/components/sidebar-edit-mode/index.js +13 -2
  221. package/src/components/sidebar-edit-mode/page-panels/index.js +49 -21
  222. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +31 -19
  223. package/src/components/sidebar-edit-mode/template-panel/index.js +2 -12
  224. package/src/components/sidebar-navigation-screen-page/index.js +48 -9
  225. package/src/components/sidebar-navigation-screen-pattern/index.js +6 -11
  226. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +3 -1
  227. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +1 -1
  228. package/src/components/sidebar-navigation-screen-patterns/category-item.js +2 -1
  229. package/src/components/sidebar-navigation-screen-patterns/index.js +30 -38
  230. package/src/components/sidebar-navigation-screen-template/index.js +1 -1
  231. package/src/components/sidebar-navigation-screen-templates-browse/content.js +3 -3
  232. package/src/components/sidebar-navigation-screen-templates-browse/index.js +7 -39
  233. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +0 -4
  234. package/src/components/template-actions/index.js +1 -1
  235. package/src/deprecated.js +42 -0
  236. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +69 -16
  237. package/src/index.js +2 -9
  238. package/src/style.scss +1 -5
  239. package/src/utils/constants.js +1 -1
  240. package/build/components/header-edit-mode/more-menu/copy-content-menu-item.js +0 -59
  241. package/build/components/header-edit-mode/more-menu/copy-content-menu-item.js.map +0 -1
  242. package/build/components/header-edit-mode/tools-more-menu-group/index.js +0 -23
  243. package/build/components/header-edit-mode/tools-more-menu-group/index.js.map +0 -1
  244. package/build/components/keyboard-shortcuts/edit-mode.js +0 -56
  245. package/build/components/keyboard-shortcuts/edit-mode.js.map +0 -1
  246. package/build/components/page-templates-template-parts/add-new-template-part.js +0 -65
  247. package/build/components/page-templates-template-parts/add-new-template-part.js.map +0 -1
  248. package/build/components/page-templates-template-parts/hooks.js.map +0 -1
  249. package/build/components/page-templates-template-parts/index.js.map +0 -1
  250. package/build/components/sidebar-edit-mode/page-panels/page-status.js +0 -188
  251. package/build/components/sidebar-edit-mode/page-panels/page-status.js.map +0 -1
  252. package/build-module/components/header-edit-mode/more-menu/copy-content-menu-item.js +0 -52
  253. package/build-module/components/header-edit-mode/more-menu/copy-content-menu-item.js.map +0 -1
  254. package/build-module/components/header-edit-mode/tools-more-menu-group/index.js +0 -16
  255. package/build-module/components/header-edit-mode/tools-more-menu-group/index.js.map +0 -1
  256. package/build-module/components/keyboard-shortcuts/edit-mode.js +0 -49
  257. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +0 -1
  258. package/build-module/components/page-templates-template-parts/add-new-template-part.js +0 -57
  259. package/build-module/components/page-templates-template-parts/add-new-template-part.js.map +0 -1
  260. package/build-module/components/page-templates-template-parts/hooks.js.map +0 -1
  261. package/build-module/components/page-templates-template-parts/index.js.map +0 -1
  262. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js +0 -180
  263. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +0 -1
  264. package/src/components/header-edit-mode/more-menu/copy-content-menu-item.js +0 -51
  265. package/src/components/header-edit-mode/tools-more-menu-group/index.js +0 -16
  266. package/src/components/keyboard-shortcuts/edit-mode.js +0 -59
  267. package/src/components/page-templates-template-parts/add-new-template-part.js +0 -62
  268. package/src/components/sidebar-edit-mode/page-panels/page-status.js +0 -249
  269. package/src/components/sidebar-edit-mode/page-panels/style.scss +0 -34
  270. /package/build/components/{page-templates-template-parts → page-templates}/hooks.js +0 -0
  271. /package/build-module/components/{page-templates-template-parts → page-templates}/hooks.js +0 -0
  272. /package/src/components/{page-templates-template-parts → page-templates}/hooks.js +0 -0
@@ -7,23 +7,14 @@ import classnames from 'classnames';
7
7
  * WordPress dependencies
8
8
  */
9
9
  import { useViewportMatch, useReducedMotion } from '@wordpress/compose';
10
- import {
11
- BlockToolbar,
12
- privateApis as blockEditorPrivateApis,
13
- store as blockEditorStore,
14
- } from '@wordpress/block-editor';
10
+ import { store as blockEditorStore } from '@wordpress/block-editor';
15
11
  import { useSelect } from '@wordpress/data';
16
- import { useEffect, useRef, useState } from '@wordpress/element';
17
- import { __ } from '@wordpress/i18n';
18
- import { next, previous } from '@wordpress/icons';
19
- import {
20
- Button,
21
- __unstableMotion as motion,
22
- Popover,
23
- } from '@wordpress/components';
12
+ import { useState } from '@wordpress/element';
13
+ import { __unstableMotion as motion } from '@wordpress/components';
24
14
  import { store as preferencesStore } from '@wordpress/preferences';
25
15
  import {
26
16
  DocumentBar,
17
+ PostSavedState,
27
18
  store as editorStore,
28
19
  privateApis as editorPrivateApis,
29
20
  } from '@wordpress/editor';
@@ -31,7 +22,7 @@ import {
31
22
  /**
32
23
  * Internal dependencies
33
24
  */
34
- import MoreMenu from './more-menu';
25
+ import SiteEditorMoreMenuItems from './more-menu';
35
26
  import SaveButton from '../save-button';
36
27
  import DocumentTools from './document-tools';
37
28
  import { store as editSiteStore } from '../../store';
@@ -41,23 +32,29 @@ import {
41
32
  } from '../editor-canvas-container';
42
33
  import { unlock } from '../../lock-unlock';
43
34
  import { FOCUSABLE_ENTITIES } from '../../utils/constants';
44
-
45
- const { useShowBlockTools } = unlock( blockEditorPrivateApis );
46
- const { PostViewLink, PreviewDropdown, PinnedItems } =
47
- unlock( editorPrivateApis );
48
-
49
- export default function HeaderEditMode() {
35
+ import { isPreviewingTheme } from '../../utils/is-previewing-theme';
36
+
37
+ const {
38
+ CollapsableBlockToolbar,
39
+ MoreMenu,
40
+ PostViewLink,
41
+ PreviewDropdown,
42
+ PinnedItems,
43
+ PostPublishButtonOrToggle,
44
+ } = unlock( editorPrivateApis );
45
+
46
+ export default function HeaderEditMode( { setEntitiesSavedStatesCallback } ) {
50
47
  const {
51
48
  templateType,
52
49
  isDistractionFree,
53
50
  blockEditorMode,
54
- blockSelectionStart,
55
51
  showIconLabels,
56
52
  editorCanvasView,
53
+ isFixedToolbar,
54
+ isPublishSidebarOpened,
57
55
  } = useSelect( ( select ) => {
58
56
  const { getEditedPostType } = select( editSiteStore );
59
- const { getBlockSelectionStart, __unstableGetEditorMode } =
60
- select( blockEditorStore );
57
+ const { __unstableGetEditorMode } = select( blockEditorStore );
61
58
  const { get: getPreference } = select( preferencesStore );
62
59
  const { getDeviceType } = select( editorStore );
63
60
 
@@ -65,19 +62,20 @@ export default function HeaderEditMode() {
65
62
  deviceType: getDeviceType(),
66
63
  templateType: getEditedPostType(),
67
64
  blockEditorMode: __unstableGetEditorMode(),
68
- blockSelectionStart: getBlockSelectionStart(),
69
65
  showIconLabels: getPreference( 'core', 'showIconLabels' ),
70
66
  editorCanvasView: unlock(
71
67
  select( editSiteStore )
72
68
  ).getEditorCanvasContainerView(),
73
69
  isDistractionFree: getPreference( 'core', 'distractionFree' ),
70
+ isFixedToolbar: getPreference( 'core', 'fixedToolbar' ),
71
+ isPublishSidebarOpened:
72
+ select( editorStore ).isPublishSidebarOpened(),
74
73
  };
75
74
  }, [] );
76
75
 
77
76
  const isLargeViewport = useViewportMatch( 'medium' );
78
- const { showFixedToolbar } = useShowBlockTools();
79
- const showTopToolbar = isLargeViewport && showFixedToolbar;
80
- const blockToolbarRef = useRef();
77
+ const showTopToolbar =
78
+ isLargeViewport && isFixedToolbar && blockEditorMode !== 'zoom-out';
81
79
  const disableMotion = useReducedMotion();
82
80
 
83
81
  const hasDefaultEditorCanvasView = ! useHasEditorCanvasContainer();
@@ -89,13 +87,6 @@ export default function HeaderEditMode() {
89
87
  const [ isBlockToolsCollapsed, setIsBlockToolsCollapsed ] =
90
88
  useState( true );
91
89
 
92
- useEffect( () => {
93
- // If we have a new block selection, show the block tools
94
- if ( blockSelectionStart ) {
95
- setIsBlockToolsCollapsed( false );
96
- }
97
- }, [ blockSelectionStart ] );
98
-
99
90
  const toolbarVariants = {
100
91
  isDistractionFree: { y: '-50px' },
101
92
  isDistractionFreeHovering: { y: 0 },
@@ -109,10 +100,12 @@ export default function HeaderEditMode() {
109
100
  ease: 'easeOut',
110
101
  };
111
102
 
103
+ const _isPreviewingTheme = isPreviewingTheme();
112
104
  return (
113
105
  <div
114
106
  className={ classnames( 'edit-site-header-edit-mode', {
115
107
  'show-icon-labels': showIconLabels,
108
+ 'show-block-toolbar': ! isBlockToolsCollapsed && showTopToolbar,
116
109
  } ) }
117
110
  >
118
111
  { hasDefaultEditorCanvasView && (
@@ -126,51 +119,16 @@ export default function HeaderEditMode() {
126
119
  isDistractionFree={ isDistractionFree }
127
120
  />
128
121
  { showTopToolbar && (
129
- <>
130
- <div
131
- className={ classnames(
132
- 'selected-block-tools-wrapper',
133
- {
134
- 'is-collapsed': isBlockToolsCollapsed,
135
- }
136
- ) }
137
- >
138
- <BlockToolbar hideDragHandle />
139
- </div>
140
- <Popover.Slot
141
- ref={ blockToolbarRef }
142
- name="block-toolbar"
143
- />
144
- <Button
145
- className="edit-site-header-edit-mode__block-tools-toggle"
146
- icon={ isBlockToolsCollapsed ? next : previous }
147
- onClick={ () => {
148
- setIsBlockToolsCollapsed(
149
- ( collapsed ) => ! collapsed
150
- );
151
- } }
152
- label={
153
- isBlockToolsCollapsed
154
- ? __( 'Show block tools' )
155
- : __( 'Hide block tools' )
156
- }
157
- size="compact"
158
- />
159
- </>
122
+ <CollapsableBlockToolbar
123
+ isCollapsed={ isBlockToolsCollapsed }
124
+ onToggle={ setIsBlockToolsCollapsed }
125
+ />
160
126
  ) }
161
127
  </motion.div>
162
128
  ) }
163
129
 
164
130
  { ! isDistractionFree && (
165
- <div
166
- className={ classnames(
167
- 'edit-site-header-edit-mode__center',
168
- {
169
- 'is-collapsed':
170
- ! isBlockToolsCollapsed && showTopToolbar,
171
- }
172
- ) }
173
- >
131
+ <div className="edit-site-header-edit-mode__center">
174
132
  { ! hasDefaultEditorCanvasView ? (
175
133
  getEditorCanvasContainerTitle( editorCanvasView )
176
134
  ) : (
@@ -200,9 +158,31 @@ export default function HeaderEditMode() {
200
158
  </div>
201
159
  ) }
202
160
  <PostViewLink />
203
- <SaveButton size="compact" />
161
+ {
162
+ // TODO: For now we conditionally render the Save/Publish buttons based on
163
+ // some specific site editor extra handling. Examples are when we're previewing
164
+ // a theme, handling of global styles changes or when we're in 'view' mode,
165
+ // which opens the save panel in a Modal.
166
+ }
167
+ { ! _isPreviewingTheme && ! isPublishSidebarOpened && (
168
+ // This button isn't completely hidden by the publish sidebar.
169
+ // We can't hide the whole toolbar when the publish sidebar is open because
170
+ // we want to prevent mounting/unmounting the PostPublishButtonOrToggle DOM node.
171
+ // We track that DOM node to return focus to the PostPublishButtonOrToggle
172
+ // when the publish sidebar has been closed.
173
+ <PostSavedState />
174
+ ) }
175
+ { ! _isPreviewingTheme && (
176
+ <PostPublishButtonOrToggle
177
+ setEntitiesSavedStatesCallback={
178
+ setEntitiesSavedStatesCallback
179
+ }
180
+ />
181
+ ) }
182
+ { _isPreviewingTheme && <SaveButton size="compact" /> }
204
183
  { ! isDistractionFree && <PinnedItems.Slot scope="core" /> }
205
- <MoreMenu showIconLabels={ showIconLabels } />
184
+ <MoreMenu />
185
+ <SiteEditorMoreMenuItems />
206
186
  </motion.div>
207
187
  </div>
208
188
  </div>
@@ -1,167 +1,30 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { __, _x } from '@wordpress/i18n';
5
- import { useSelect, useDispatch } from '@wordpress/data';
6
- import { displayShortcut } from '@wordpress/keycodes';
7
- import { external, moreVertical } from '@wordpress/icons';
8
- import {
9
- MenuGroup,
10
- MenuItem,
11
- VisuallyHidden,
12
- DropdownMenu,
13
- } from '@wordpress/components';
14
- import {
15
- PreferenceToggleMenuItem,
16
- store as preferencesStore,
17
- } from '@wordpress/preferences';
4
+ import { useSelect } from '@wordpress/data';
18
5
  import { store as coreStore } from '@wordpress/core-data';
19
- import {
20
- store as editorStore,
21
- privateApis as editorPrivateApis,
22
- } from '@wordpress/editor';
6
+ import { privateApis as editorPrivateApis } from '@wordpress/editor';
23
7
 
24
8
  /**
25
9
  * Internal dependencies
26
10
  */
27
- import ToolsMoreMenuGroup from '../tools-more-menu-group';
28
11
  import SiteExport from './site-export';
29
12
  import WelcomeGuideMenuItem from './welcome-guide-menu-item';
30
- import CopyContentMenuItem from './copy-content-menu-item';
31
13
  import { unlock } from '../../../lock-unlock';
32
14
 
33
- const { ModeSwitcher, ActionItem, interfaceStore, PreferencesModal } =
34
- unlock( editorPrivateApis );
15
+ const { ToolsMoreMenuGroup, PreferencesModal } = unlock( editorPrivateApis );
35
16
 
36
- export default function MoreMenu( { showIconLabels } ) {
37
- const { openModal } = useDispatch( interfaceStore );
38
- const { set: setPreference } = useDispatch( preferencesStore );
17
+ export default function MoreMenu() {
39
18
  const isBlockBasedTheme = useSelect( ( select ) => {
40
19
  return select( coreStore ).getCurrentTheme().is_block_theme;
41
20
  }, [] );
42
21
 
43
- const { toggleDistractionFree } = useDispatch( editorStore );
44
-
45
- const turnOffDistractionFree = () => {
46
- setPreference( 'core', 'distractionFree', false );
47
- };
48
-
49
22
  return (
50
23
  <>
51
- <DropdownMenu
52
- icon={ moreVertical }
53
- label={ __( 'Options' ) }
54
- popoverProps={ {
55
- placement: 'bottom-end',
56
- className: 'more-menu-dropdown__content',
57
- } }
58
- toggleProps={ {
59
- showTooltip: ! showIconLabels,
60
- ...( showIconLabels && { variant: 'tertiary' } ),
61
- tooltipPosition: 'bottom',
62
- size: 'compact',
63
- } }
64
- >
65
- { ( { onClose } ) => (
66
- <>
67
- <MenuGroup label={ _x( 'View', 'noun' ) }>
68
- <PreferenceToggleMenuItem
69
- scope="core"
70
- name="fixedToolbar"
71
- onToggle={ turnOffDistractionFree }
72
- label={ __( 'Top toolbar' ) }
73
- info={ __(
74
- 'Access all block and document tools in a single place'
75
- ) }
76
- messageActivated={ __(
77
- 'Top toolbar activated'
78
- ) }
79
- messageDeactivated={ __(
80
- 'Top toolbar deactivated'
81
- ) }
82
- />
83
- <PreferenceToggleMenuItem
84
- scope="core"
85
- name="distractionFree"
86
- label={ __( 'Distraction free' ) }
87
- info={ __( 'Write with calmness' ) }
88
- handleToggling={ false }
89
- onToggle={ toggleDistractionFree }
90
- messageActivated={ __(
91
- 'Distraction free mode activated'
92
- ) }
93
- messageDeactivated={ __(
94
- 'Distraction free mode deactivated'
95
- ) }
96
- shortcut={ displayShortcut.primaryShift(
97
- '\\'
98
- ) }
99
- />
100
- <PreferenceToggleMenuItem
101
- scope="core"
102
- name="focusMode"
103
- label={ __( 'Spotlight mode' ) }
104
- info={ __( 'Focus on one block at a time' ) }
105
- messageActivated={ __(
106
- 'Spotlight mode activated'
107
- ) }
108
- messageDeactivated={ __(
109
- 'Spotlight mode deactivated'
110
- ) }
111
- />
112
- </MenuGroup>
113
- <ModeSwitcher />
114
- <ActionItem.Slot
115
- name="core/plugin-more-menu"
116
- label={ __( 'Plugins' ) }
117
- as={ MenuGroup }
118
- fillProps={ { onClick: onClose } }
119
- />
120
- <MenuGroup label={ __( 'Tools' ) }>
121
- { isBlockBasedTheme && <SiteExport /> }
122
- <MenuItem
123
- onClick={ () =>
124
- openModal( 'editor/keyboard-shortcut-help' )
125
- }
126
- shortcut={ displayShortcut.access( 'h' ) }
127
- >
128
- { __( 'Keyboard shortcuts' ) }
129
- </MenuItem>
130
- <WelcomeGuideMenuItem />
131
- <CopyContentMenuItem />
132
- <MenuItem
133
- icon={ external }
134
- role="menuitem"
135
- href={ __(
136
- 'https://wordpress.org/documentation/article/site-editor/'
137
- ) }
138
- target="_blank"
139
- rel="noopener noreferrer"
140
- >
141
- { __( 'Help' ) }
142
- <VisuallyHidden as="span">
143
- {
144
- /* translators: accessibility text */
145
- __( '(opens in a new tab)' )
146
- }
147
- </VisuallyHidden>
148
- </MenuItem>
149
- <ToolsMoreMenuGroup.Slot
150
- fillProps={ { onClose } }
151
- />
152
- </MenuGroup>
153
- <MenuGroup>
154
- <MenuItem
155
- onClick={ () =>
156
- openModal( 'editor/preferences' )
157
- }
158
- >
159
- { __( 'Preferences' ) }
160
- </MenuItem>
161
- </MenuGroup>
162
- </>
163
- ) }
164
- </DropdownMenu>
24
+ <ToolsMoreMenuGroup>
25
+ { isBlockBasedTheme && <SiteExport /> }
26
+ <WelcomeGuideMenuItem />
27
+ </ToolsMoreMenuGroup>
165
28
  <PreferencesModal />
166
29
  </>
167
30
  );
@@ -10,6 +10,19 @@
10
10
  border-bottom: $border-width solid $gray-200;
11
11
  padding-left: $header-height;
12
12
 
13
+ // When top toolbar is engaged and should expand fully.
14
+ &.show-block-toolbar {
15
+
16
+ .edit-site-header-edit-mode__start,
17
+ .edit-site-header-edit-mode__end {
18
+ flex-basis: auto;
19
+ }
20
+
21
+ .edit-site-header-edit-mode__center {
22
+ display: none;
23
+ }
24
+ }
25
+
13
26
  .edit-site-header-edit-mode__start {
14
27
  display: flex;
15
28
  border: none;
@@ -183,91 +196,6 @@
183
196
  }
184
197
  }
185
198
 
186
- .has-fixed-toolbar {
187
- .selected-block-tools-wrapper {
188
- overflow: hidden;
189
- display: flex;
190
- align-items: center;
191
- height: $header-height;
192
-
193
- .block-editor-block-contextual-toolbar {
194
- border-bottom: 0;
195
- height: 100%;
196
- }
197
-
198
- // These rules ensure that icons are always positioned in a way that lines up with the rest of the icons in the toolbar.
199
- .block-editor-block-toolbar {
200
- height: 100%;
201
- // Push down so that buttons are centered vertically.
202
- // It should be 14px (60px header height - 32px compact button height = 28 / 2),
203
- // but there is a -1px top-margin down the stack that affects this.
204
- padding-top: math.div($header-height - $button-size-compact, 2) + 1;
205
-
206
- // Match the height of other buttons in the header toolbar.
207
- .components-button:not(.block-editor-block-mover-button) {
208
- height: $button-size-compact;
209
- }
210
- }
211
-
212
- &::after {
213
- content: "";
214
- width: $border-width;
215
- height: $grid-unit-30;
216
- background-color: $gray-300;
217
- margin-left: $grid-unit;
218
- }
219
-
220
- // Modified group borders.
221
- .components-toolbar-group,
222
- .components-toolbar {
223
- border-right: none;
224
-
225
- &::after {
226
- content: "";
227
- width: $border-width;
228
- height: $grid-unit-30;
229
- background-color: $gray-300;
230
- margin-top: $grid-unit-05;
231
- margin-left: $grid-unit;
232
- }
233
-
234
- & .components-toolbar-group.components-toolbar-group {
235
- &::after {
236
- display: none;
237
- }
238
- }
239
- }
240
-
241
- .block-editor-block-mover {
242
- // Match the height of other buttons in the header toolbar.
243
- &.is-horizontal .block-editor-block-mover-button {
244
- height: $button-size-compact;
245
- overflow: visible;
246
- }
247
-
248
- // Move up a little to prevent the toolbar shift when focus is on the vertical movers.
249
- @include break-small() {
250
- &:not(.is-horizontal) .block-editor-block-mover__move-button-container {
251
- position: relative;
252
- top: -10px;
253
- }
254
- }
255
- }
256
-
257
- &.is-collapsed {
258
- display: none;
259
- }
260
- }
261
-
262
- .edit-site-header-edit-mode__center.is-collapsed {
263
- display: none;
264
- }
265
- }
266
-
267
- .edit-site-header-edit-mode__block-tools-toggle {
268
- margin-left: 2px; // Allow focus ring to be fully visible
269
- }
270
-
271
199
  .components-popover.more-menu-dropdown__content {
272
200
  z-index: z-index(".components-popover.more-menu__content");
273
201
  }
@@ -19,64 +19,6 @@ function KeyboardShortcutsRegister() {
19
19
  character: 's',
20
20
  },
21
21
  } );
22
-
23
- registerShortcut( {
24
- name: 'core/edit-site/next-region',
25
- category: 'global',
26
- description: __( 'Navigate to the next part of the editor.' ),
27
- keyCombination: {
28
- modifier: 'ctrl',
29
- character: '`',
30
- },
31
- aliases: [
32
- {
33
- modifier: 'access',
34
- character: 'n',
35
- },
36
- ],
37
- } );
38
-
39
- registerShortcut( {
40
- name: 'core/edit-site/previous-region',
41
- category: 'global',
42
- description: __( 'Navigate to the previous part of the editor.' ),
43
- keyCombination: {
44
- modifier: 'ctrlShift',
45
- character: '`',
46
- },
47
- aliases: [
48
- {
49
- modifier: 'access',
50
- character: 'p',
51
- },
52
- {
53
- modifier: 'ctrlShift',
54
- character: '~',
55
- },
56
- ],
57
- } );
58
-
59
- registerShortcut( {
60
- name: 'core/edit-site/transform-heading-to-paragraph',
61
- category: 'block-library',
62
- description: __( 'Transform heading to paragraph.' ),
63
- keyCombination: {
64
- modifier: 'access',
65
- character: `0`,
66
- },
67
- } );
68
-
69
- [ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {
70
- registerShortcut( {
71
- name: `core/edit-site/transform-paragraph-to-heading-${ level }`,
72
- category: 'block-library',
73
- description: __( 'Transform paragraph to heading.' ),
74
- keyCombination: {
75
- modifier: 'access',
76
- character: `${ level }`,
77
- },
78
- } );
79
- } );
80
22
  }, [ registerShortcut ] );
81
23
 
82
24
  return null;
@@ -78,6 +78,7 @@ export default function Layout() {
78
78
  canvasMode,
79
79
  previousShortcut,
80
80
  nextShortcut,
81
+ hasBlockBreadcrumbs,
81
82
  } = useSelect( ( select ) => {
82
83
  const { getAllShortcutKeyCombinations } = select(
83
84
  keyboardShortcutsStore
@@ -86,10 +87,10 @@ export default function Layout() {
86
87
  return {
87
88
  canvasMode: getCanvasMode(),
88
89
  previousShortcut: getAllShortcutKeyCombinations(
89
- 'core/edit-site/previous-region'
90
+ 'core/editor/previous-region'
90
91
  ),
91
92
  nextShortcut: getAllShortcutKeyCombinations(
92
- 'core/edit-site/next-region'
93
+ 'core/editor/next-region'
93
94
  ),
94
95
  hasFixedToolbar: select( preferencesStore ).get(
95
96
  'core',
@@ -99,6 +100,10 @@ export default function Layout() {
99
100
  'core',
100
101
  'distractionFree'
101
102
  ),
103
+ hasBlockBreadcrumbs: select( preferencesStore ).get(
104
+ 'core',
105
+ 'showBlockBreadcrumbs'
106
+ ),
102
107
  isZoomOutMode:
103
108
  select( blockEditorStore ).__unstableGetEditorMode() ===
104
109
  'zoom-out',
@@ -182,6 +187,10 @@ export default function Layout() {
182
187
  'has-fixed-toolbar': hasFixedToolbar,
183
188
  'is-block-toolbar-visible': hasBlockSelected,
184
189
  'is-zoom-out': isZoomOutMode,
190
+ 'has-block-breadcrumbs':
191
+ hasBlockBreadcrumbs &&
192
+ ! isDistractionFree &&
193
+ canvasMode === 'edit',
185
194
  }
186
195
  ) }
187
196
  >
@@ -12,7 +12,7 @@ import { useIsSiteEditorLoading } from './hooks';
12
12
  import Editor from '../editor';
13
13
  import PagePages from '../page-pages';
14
14
  import PagePatterns from '../page-patterns';
15
- import PageTemplatesTemplateParts from '../page-templates-template-parts';
15
+ import PageTemplates from '../page-templates';
16
16
  import SidebarNavigationScreen from '../sidebar-navigation-screen';
17
17
  import SidebarNavigationScreenGlobalStyles from '../sidebar-navigation-screen-global-styles';
18
18
  import SidebarNavigationScreenMain from '../sidebar-navigation-screen-main';
@@ -24,10 +24,6 @@ import SidebarNavigationScreenPattern from '../sidebar-navigation-screen-pattern
24
24
  import SidebarNavigationScreenPatterns from '../sidebar-navigation-screen-patterns';
25
25
  import SidebarNavigationScreenNavigationMenu from '../sidebar-navigation-screen-navigation-menu';
26
26
  import DataViewsSidebarContent from '../sidebar-dataviews';
27
- import {
28
- TEMPLATE_POST_TYPE,
29
- TEMPLATE_PART_POST_TYPE,
30
- } from '../../utils/constants';
31
27
 
32
28
  const { useLocation, useHistory } = unlock( routerPrivateApis );
33
29
 
@@ -108,51 +104,12 @@ export default function useLayoutAreas() {
108
104
  return {
109
105
  key: 'templates-list',
110
106
  areas: {
111
- sidebar: (
112
- <SidebarNavigationScreenTemplatesBrowse postType="wp_template" />
113
- ),
114
- content: (
115
- <PageTemplatesTemplateParts
116
- postType={ TEMPLATE_POST_TYPE }
117
- />
118
- ),
107
+ sidebar: <SidebarNavigationScreenTemplatesBrowse />,
108
+ content: <PageTemplates />,
119
109
  preview: isListLayout && (
120
110
  <Editor isLoading={ isSiteEditorLoading } />
121
111
  ),
122
- mobile: (
123
- <PageTemplatesTemplateParts
124
- postType={ TEMPLATE_POST_TYPE }
125
- />
126
- ),
127
- },
128
- widths: {
129
- content: isListLayout ? 380 : undefined,
130
- },
131
- };
132
- }
133
-
134
- // Template parts
135
- if ( path === '/wp_template_part/all' ) {
136
- const isListLayout = isCustom !== 'true' && layout === 'list';
137
- return {
138
- key: 'template-parts',
139
- areas: {
140
- sidebar: (
141
- <SidebarNavigationScreenTemplatesBrowse postType="wp_template_part" />
142
- ),
143
- content: (
144
- <PageTemplatesTemplateParts
145
- postType={ TEMPLATE_PART_POST_TYPE }
146
- />
147
- ),
148
- preview: isListLayout && (
149
- <Editor isLoading={ isSiteEditorLoading } />
150
- ),
151
- mobile: (
152
- <PageTemplatesTemplateParts
153
- postType={ TEMPLATE_PART_POST_TYPE }
154
- />
155
- ),
112
+ mobile: <PageTemplates />,
156
113
  },
157
114
  widths: {
158
115
  content: isListLayout ? 380 : undefined,
@@ -160,8 +117,11 @@ export default function useLayoutAreas() {
160
117
  };
161
118
  }
162
119
 
163
- // Patterns
164
- if ( path === '/patterns' ) {
120
+ /* Patterns and Template Parts
121
+ * `/wp_template_part/all` path is no longer used, but uses Patterns page screens for
122
+ * backwards compatibility.
123
+ */
124
+ if ( path === '/patterns' || path === '/wp_template_part/all' ) {
165
125
  return {
166
126
  key: 'patterns',
167
127
  areas: {