@wordpress/edit-post 7.24.1 → 7.26.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 (267) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE.md +1 -1
  3. package/build/components/browser-url/index.js +3 -2
  4. package/build/components/browser-url/index.js.map +1 -1
  5. package/build/components/header/index.js +35 -33
  6. package/build/components/header/index.js.map +1 -1
  7. package/build/components/header/mode-switcher/index.js +1 -1
  8. package/build/components/header/mode-switcher/index.js.map +1 -1
  9. package/build/components/header/more-menu/index.js +2 -1
  10. package/build/components/header/more-menu/index.js.map +1 -1
  11. package/build/components/header/writing-menu/index.js +22 -18
  12. package/build/components/header/writing-menu/index.js.map +1 -1
  13. package/build/components/keyboard-shortcuts/index.js +1 -20
  14. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  15. package/build/components/layout/index.js +45 -38
  16. package/build/components/layout/index.js.map +1 -1
  17. package/build/components/layout/index.native.js +3 -1
  18. package/build/components/layout/index.native.js.map +1 -1
  19. package/build/components/meta-boxes/meta-box-visibility.js +2 -6
  20. package/build/components/meta-boxes/meta-box-visibility.js.map +1 -1
  21. package/build/components/preferences-modal/index.js +87 -54
  22. package/build/components/preferences-modal/index.js.map +1 -1
  23. package/build/components/preferences-modal/options/enable-feature.js +23 -23
  24. package/build/components/preferences-modal/options/enable-feature.js.map +1 -1
  25. package/build/components/preferences-modal/options/enable-panel.js +3 -6
  26. package/build/components/preferences-modal/options/enable-panel.js.map +1 -1
  27. package/build/components/sidebar/plugin-document-setting-panel/index.js +3 -3
  28. package/build/components/sidebar/plugin-document-setting-panel/index.js.map +1 -1
  29. package/build/components/sidebar/plugin-sidebar/index.js +2 -10
  30. package/build/components/sidebar/plugin-sidebar/index.js.map +1 -1
  31. package/build/components/sidebar/post-status/index.js +3 -5
  32. package/build/components/sidebar/post-status/index.js.map +1 -1
  33. package/build/components/sidebar/settings-header/index.js +17 -43
  34. package/build/components/sidebar/settings-header/index.js.map +1 -1
  35. package/build/components/sidebar/settings-sidebar/index.js +80 -26
  36. package/build/components/sidebar/settings-sidebar/index.js.map +1 -1
  37. package/build/components/start-page-options/index.js +3 -3
  38. package/build/components/start-page-options/index.js.map +1 -1
  39. package/build/components/visual-editor/index.js +20 -257
  40. package/build/components/visual-editor/index.js.map +1 -1
  41. package/build/components/welcome-guide/index.js +6 -3
  42. package/build/components/welcome-guide/index.js.map +1 -1
  43. package/build/editor.js +20 -30
  44. package/build/editor.js.map +1 -1
  45. package/build/editor.native.js +3 -11
  46. package/build/editor.native.js.map +1 -1
  47. package/build/hooks/commands/use-common-commands.js +16 -12
  48. package/build/hooks/commands/use-common-commands.js.map +1 -1
  49. package/build/hooks/use-post-history.js +79 -0
  50. package/build/hooks/use-post-history.js.map +1 -0
  51. package/build/index.js +24 -20
  52. package/build/index.js.map +1 -1
  53. package/build/index.native.js +7 -1
  54. package/build/index.native.js.map +1 -1
  55. package/build/plugins/welcome-guide-menu-item/index.js +2 -6
  56. package/build/plugins/welcome-guide-menu-item/index.js.map +1 -1
  57. package/build/store/actions.js +94 -112
  58. package/build/store/actions.js.map +1 -1
  59. package/build/store/reducer.js +1 -95
  60. package/build/store/reducer.js.map +1 -1
  61. package/build/store/selectors.js +86 -48
  62. package/build/store/selectors.js.map +1 -1
  63. package/build-module/components/browser-url/index.js +3 -2
  64. package/build-module/components/browser-url/index.js.map +1 -1
  65. package/build-module/components/header/index.js +37 -35
  66. package/build-module/components/header/index.js.map +1 -1
  67. package/build-module/components/header/mode-switcher/index.js +1 -1
  68. package/build-module/components/header/mode-switcher/index.js.map +1 -1
  69. package/build-module/components/header/more-menu/index.js +2 -1
  70. package/build-module/components/header/more-menu/index.js.map +1 -1
  71. package/build-module/components/header/writing-menu/index.js +23 -19
  72. package/build-module/components/header/writing-menu/index.js.map +1 -1
  73. package/build-module/components/keyboard-shortcuts/index.js +1 -20
  74. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  75. package/build-module/components/layout/index.js +46 -38
  76. package/build-module/components/layout/index.js.map +1 -1
  77. package/build-module/components/layout/index.native.js +4 -2
  78. package/build-module/components/layout/index.native.js.map +1 -1
  79. package/build-module/components/meta-boxes/meta-box-visibility.js +2 -6
  80. package/build-module/components/meta-boxes/meta-box-visibility.js.map +1 -1
  81. package/build-module/components/preferences-modal/index.js +87 -54
  82. package/build-module/components/preferences-modal/index.js.map +1 -1
  83. package/build-module/components/preferences-modal/options/enable-feature.js +22 -23
  84. package/build-module/components/preferences-modal/options/enable-feature.js.map +1 -1
  85. package/build-module/components/preferences-modal/options/enable-panel.js +3 -7
  86. package/build-module/components/preferences-modal/options/enable-panel.js.map +1 -1
  87. package/build-module/components/sidebar/plugin-document-setting-panel/index.js +3 -3
  88. package/build-module/components/sidebar/plugin-document-setting-panel/index.js.map +1 -1
  89. package/build-module/components/sidebar/plugin-sidebar/index.js +2 -10
  90. package/build-module/components/sidebar/plugin-sidebar/index.js.map +1 -1
  91. package/build-module/components/sidebar/post-status/index.js +4 -6
  92. package/build-module/components/sidebar/post-status/index.js.map +1 -1
  93. package/build-module/components/sidebar/settings-header/index.js +20 -46
  94. package/build-module/components/sidebar/settings-header/index.js.map +1 -1
  95. package/build-module/components/sidebar/settings-sidebar/index.js +80 -27
  96. package/build-module/components/sidebar/settings-sidebar/index.js.map +1 -1
  97. package/build-module/components/start-page-options/index.js +3 -3
  98. package/build-module/components/start-page-options/index.js.map +1 -1
  99. package/build-module/components/visual-editor/index.js +24 -261
  100. package/build-module/components/visual-editor/index.js.map +1 -1
  101. package/build-module/components/welcome-guide/index.js +6 -3
  102. package/build-module/components/welcome-guide/index.js.map +1 -1
  103. package/build-module/editor.js +20 -30
  104. package/build-module/editor.js.map +1 -1
  105. package/build-module/editor.native.js +3 -11
  106. package/build-module/editor.native.js.map +1 -1
  107. package/build-module/hooks/commands/use-common-commands.js +16 -12
  108. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  109. package/build-module/hooks/use-post-history.js +73 -0
  110. package/build-module/hooks/use-post-history.js.map +1 -0
  111. package/build-module/index.js +19 -12
  112. package/build-module/index.js.map +1 -1
  113. package/build-module/index.native.js +7 -1
  114. package/build-module/index.native.js.map +1 -1
  115. package/build-module/plugins/welcome-guide-menu-item/index.js +2 -6
  116. package/build-module/plugins/welcome-guide-menu-item/index.js.map +1 -1
  117. package/build-module/store/actions.js +86 -105
  118. package/build-module/store/actions.js.map +1 -1
  119. package/build-module/store/reducer.js +1 -92
  120. package/build-module/store/reducer.js.map +1 -1
  121. package/build-module/store/selectors.js +76 -38
  122. package/build-module/store/selectors.js.map +1 -1
  123. package/build-style/style-rtl.css +65 -473
  124. package/build-style/style.css +65 -473
  125. package/package.json +32 -32
  126. package/src/components/browser-url/index.js +4 -2
  127. package/src/components/header/index.js +45 -46
  128. package/src/components/header/mode-switcher/index.js +2 -1
  129. package/src/components/header/more-menu/index.js +1 -0
  130. package/src/components/header/style.scss +63 -37
  131. package/src/components/header/writing-menu/index.js +24 -24
  132. package/src/components/keyboard-shortcut-help-modal/test/index.js +0 -15
  133. package/src/components/keyboard-shortcuts/index.js +1 -23
  134. package/src/components/layout/index.js +31 -39
  135. package/src/components/layout/index.native.js +9 -1
  136. package/src/components/meta-boxes/meta-box-visibility.js +2 -8
  137. package/src/components/preferences-modal/index.js +128 -97
  138. package/src/components/preferences-modal/options/enable-feature.js +26 -21
  139. package/src/components/preferences-modal/options/enable-panel.js +3 -7
  140. package/src/components/preferences-modal/test/__snapshots__/meta-boxes-section.js.snap +187 -175
  141. package/src/components/preferences-modal/test/index.js +1 -52
  142. package/src/components/sidebar/plugin-document-setting-panel/index.js +3 -3
  143. package/src/components/sidebar/plugin-sidebar/index.js +1 -9
  144. package/src/components/sidebar/post-status/index.js +5 -5
  145. package/src/components/sidebar/settings-header/index.js +19 -71
  146. package/src/components/sidebar/settings-sidebar/index.js +125 -60
  147. package/src/components/sidebar/style.scss +4 -12
  148. package/src/components/start-page-options/index.js +3 -3
  149. package/src/components/text-editor/style.scss +0 -6
  150. package/src/components/visual-editor/index.js +26 -359
  151. package/src/components/visual-editor/style.scss +0 -15
  152. package/src/components/welcome-guide/index.js +4 -2
  153. package/src/editor.js +36 -35
  154. package/src/editor.native.js +2 -23
  155. package/src/hooks/commands/use-common-commands.js +14 -16
  156. package/src/hooks/use-post-history.js +73 -0
  157. package/src/index.js +24 -13
  158. package/src/index.native.js +8 -1
  159. package/src/plugins/welcome-guide-menu-item/index.js +3 -6
  160. package/src/store/actions.js +80 -131
  161. package/src/store/reducer.js +0 -93
  162. package/src/store/selectors.js +97 -55
  163. package/src/store/test/actions.js +10 -131
  164. package/src/store/test/reducer.js +1 -108
  165. package/src/store/test/selectors.js +0 -50
  166. package/src/style.scss +1 -8
  167. package/src/test/__snapshots__/editor.native.js.snap +21 -0
  168. package/src/test/editor.native.js +107 -56
  169. package/build/components/device-preview/index.js +0 -72
  170. package/build/components/device-preview/index.js.map +0 -1
  171. package/build/components/header/document-actions/index.js +0 -82
  172. package/build/components/header/document-actions/index.js.map +0 -1
  173. package/build/components/header/header-toolbar/index.js +0 -156
  174. package/build/components/header/header-toolbar/index.js.map +0 -1
  175. package/build/components/secondary-sidebar/inserter-sidebar.js +0 -73
  176. package/build/components/secondary-sidebar/inserter-sidebar.js.map +0 -1
  177. package/build/components/secondary-sidebar/list-view-outline.js +0 -112
  178. package/build/components/secondary-sidebar/list-view-outline.js.map +0 -1
  179. package/build/components/secondary-sidebar/list-view-sidebar.js +0 -148
  180. package/build/components/secondary-sidebar/list-view-sidebar.js.map +0 -1
  181. package/build/components/sidebar/discussion-panel/index.js +0 -59
  182. package/build/components/sidebar/discussion-panel/index.js.map +0 -1
  183. package/build/components/sidebar/featured-image/index.js +0 -70
  184. package/build/components/sidebar/featured-image/index.js.map +0 -1
  185. package/build/components/sidebar/last-revision/index.js +0 -21
  186. package/build/components/sidebar/last-revision/index.js.map +0 -1
  187. package/build/components/sidebar/page-attributes/index.js +0 -65
  188. package/build/components/sidebar/page-attributes/index.js.map +0 -1
  189. package/build/components/sidebar/plugin-post-excerpt/index.js +0 -72
  190. package/build/components/sidebar/plugin-post-excerpt/index.js.map +0 -1
  191. package/build/components/sidebar/post-excerpt/index.js +0 -54
  192. package/build/components/sidebar/post-excerpt/index.js.map +0 -1
  193. package/build/components/sidebar/post-taxonomies/index.js +0 -30
  194. package/build/components/sidebar/post-taxonomies/index.js.map +0 -1
  195. package/build/components/sidebar/post-taxonomies/taxonomy-panel.js +0 -56
  196. package/build/components/sidebar/post-taxonomies/taxonomy-panel.js.map +0 -1
  197. package/build/components/sidebar/post-template/create-modal.js +0 -99
  198. package/build/components/sidebar/post-template/create-modal.js.map +0 -1
  199. package/build/components/sidebar/post-template/form.js +0 -110
  200. package/build/components/sidebar/post-template/form.js.map +0 -1
  201. package/build/components/sidebar/post-template/index.js +0 -106
  202. package/build/components/sidebar/post-template/index.js.map +0 -1
  203. package/build/components/view-link/index.js +0 -53
  204. package/build/components/view-link/index.js.map +0 -1
  205. package/build-module/components/device-preview/index.js +0 -65
  206. package/build-module/components/device-preview/index.js.map +0 -1
  207. package/build-module/components/header/document-actions/index.js +0 -74
  208. package/build-module/components/header/document-actions/index.js.map +0 -1
  209. package/build-module/components/header/header-toolbar/index.js +0 -148
  210. package/build-module/components/header/header-toolbar/index.js.map +0 -1
  211. package/build-module/components/secondary-sidebar/inserter-sidebar.js +0 -66
  212. package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +0 -1
  213. package/build-module/components/secondary-sidebar/list-view-outline.js +0 -105
  214. package/build-module/components/secondary-sidebar/list-view-outline.js.map +0 -1
  215. package/build-module/components/secondary-sidebar/list-view-sidebar.js +0 -140
  216. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +0 -1
  217. package/build-module/components/sidebar/discussion-panel/index.js +0 -52
  218. package/build-module/components/sidebar/discussion-panel/index.js.map +0 -1
  219. package/build-module/components/sidebar/featured-image/index.js +0 -63
  220. package/build-module/components/sidebar/featured-image/index.js.map +0 -1
  221. package/build-module/components/sidebar/last-revision/index.js +0 -13
  222. package/build-module/components/sidebar/last-revision/index.js.map +0 -1
  223. package/build-module/components/sidebar/page-attributes/index.js +0 -57
  224. package/build-module/components/sidebar/page-attributes/index.js.map +0 -1
  225. package/build-module/components/sidebar/plugin-post-excerpt/index.js +0 -64
  226. package/build-module/components/sidebar/plugin-post-excerpt/index.js.map +0 -1
  227. package/build-module/components/sidebar/post-excerpt/index.js +0 -47
  228. package/build-module/components/sidebar/post-excerpt/index.js.map +0 -1
  229. package/build-module/components/sidebar/post-taxonomies/index.js +0 -21
  230. package/build-module/components/sidebar/post-taxonomies/index.js.map +0 -1
  231. package/build-module/components/sidebar/post-taxonomies/taxonomy-panel.js +0 -48
  232. package/build-module/components/sidebar/post-taxonomies/taxonomy-panel.js.map +0 -1
  233. package/build-module/components/sidebar/post-template/create-modal.js +0 -92
  234. package/build-module/components/sidebar/post-template/create-modal.js.map +0 -1
  235. package/build-module/components/sidebar/post-template/form.js +0 -102
  236. package/build-module/components/sidebar/post-template/form.js.map +0 -1
  237. package/build-module/components/sidebar/post-template/index.js +0 -98
  238. package/build-module/components/sidebar/post-template/index.js.map +0 -1
  239. package/build-module/components/view-link/index.js +0 -46
  240. package/build-module/components/view-link/index.js.map +0 -1
  241. package/src/components/device-preview/index.js +0 -73
  242. package/src/components/header/document-actions/index.js +0 -82
  243. package/src/components/header/document-actions/style.scss +0 -64
  244. package/src/components/header/header-toolbar/index.js +0 -182
  245. package/src/components/header/header-toolbar/style.scss +0 -114
  246. package/src/components/keyboard-shortcut-help-modal/test/__snapshots__/index.js.snap +0 -929
  247. package/src/components/secondary-sidebar/inserter-sidebar.js +0 -71
  248. package/src/components/secondary-sidebar/list-view-outline.js +0 -98
  249. package/src/components/secondary-sidebar/list-view-sidebar.js +0 -170
  250. package/src/components/secondary-sidebar/style.scss +0 -120
  251. package/src/components/sidebar/discussion-panel/index.js +0 -62
  252. package/src/components/sidebar/featured-image/index.js +0 -67
  253. package/src/components/sidebar/last-revision/index.js +0 -17
  254. package/src/components/sidebar/last-revision/style.scss +0 -10
  255. package/src/components/sidebar/page-attributes/index.js +0 -65
  256. package/src/components/sidebar/plugin-post-excerpt/index.js +0 -61
  257. package/src/components/sidebar/plugin-post-excerpt/test/index.js +0 -36
  258. package/src/components/sidebar/post-excerpt/index.js +0 -59
  259. package/src/components/sidebar/post-taxonomies/index.js +0 -30
  260. package/src/components/sidebar/post-taxonomies/taxonomy-panel.js +0 -48
  261. package/src/components/sidebar/post-template/create-modal.js +0 -140
  262. package/src/components/sidebar/post-template/form.js +0 -141
  263. package/src/components/sidebar/post-template/index.js +0 -120
  264. package/src/components/sidebar/post-template/style.scss +0 -22
  265. package/src/components/sidebar/settings-header/style.scss +0 -74
  266. package/src/components/sidebar/template/style.scss +0 -35
  267. package/src/components/view-link/index.js +0 -48
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/edit-post",
3
- "version": "7.24.1",
3
+ "version": "7.26.0",
4
4
  "description": "Edit Post module for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -27,36 +27,36 @@
27
27
  "react-native": "src/index",
28
28
  "dependencies": {
29
29
  "@babel/runtime": "^7.16.0",
30
- "@wordpress/a11y": "^3.47.0",
31
- "@wordpress/api-fetch": "^6.44.0",
32
- "@wordpress/block-editor": "^12.15.0",
33
- "@wordpress/block-library": "^8.24.1",
34
- "@wordpress/blocks": "^12.24.0",
35
- "@wordpress/commands": "^0.18.0",
36
- "@wordpress/components": "^25.13.0",
37
- "@wordpress/compose": "^6.24.0",
38
- "@wordpress/core-commands": "^0.16.0",
39
- "@wordpress/core-data": "^6.24.0",
40
- "@wordpress/data": "^9.17.0",
41
- "@wordpress/deprecated": "^3.47.0",
42
- "@wordpress/dom": "^3.47.0",
43
- "@wordpress/editor": "^13.24.1",
44
- "@wordpress/element": "^5.24.0",
45
- "@wordpress/hooks": "^3.47.0",
46
- "@wordpress/i18n": "^4.47.0",
47
- "@wordpress/icons": "^9.38.0",
48
- "@wordpress/interface": "^5.24.0",
49
- "@wordpress/keyboard-shortcuts": "^4.24.0",
50
- "@wordpress/keycodes": "^3.47.0",
51
- "@wordpress/media-utils": "^4.38.0",
52
- "@wordpress/notices": "^4.15.0",
53
- "@wordpress/plugins": "^6.15.0",
54
- "@wordpress/preferences": "^3.24.0",
55
- "@wordpress/private-apis": "^0.29.0",
56
- "@wordpress/url": "^3.48.0",
57
- "@wordpress/viewport": "^5.24.0",
58
- "@wordpress/warning": "^2.47.0",
59
- "@wordpress/widgets": "^3.24.0",
30
+ "@wordpress/a11y": "^3.49.0",
31
+ "@wordpress/api-fetch": "^6.46.0",
32
+ "@wordpress/block-editor": "^12.17.0",
33
+ "@wordpress/block-library": "^8.26.0",
34
+ "@wordpress/blocks": "^12.26.0",
35
+ "@wordpress/commands": "^0.20.0",
36
+ "@wordpress/components": "^25.15.0",
37
+ "@wordpress/compose": "^6.26.0",
38
+ "@wordpress/core-commands": "^0.18.0",
39
+ "@wordpress/core-data": "^6.26.0",
40
+ "@wordpress/data": "^9.19.0",
41
+ "@wordpress/deprecated": "^3.49.0",
42
+ "@wordpress/dom": "^3.49.0",
43
+ "@wordpress/editor": "^13.26.0",
44
+ "@wordpress/element": "^5.26.0",
45
+ "@wordpress/hooks": "^3.49.0",
46
+ "@wordpress/i18n": "^4.49.0",
47
+ "@wordpress/icons": "^9.40.0",
48
+ "@wordpress/interface": "^5.26.0",
49
+ "@wordpress/keyboard-shortcuts": "^4.26.0",
50
+ "@wordpress/keycodes": "^3.49.0",
51
+ "@wordpress/media-utils": "^4.40.0",
52
+ "@wordpress/notices": "^4.17.0",
53
+ "@wordpress/plugins": "^6.17.0",
54
+ "@wordpress/preferences": "^3.26.0",
55
+ "@wordpress/private-apis": "^0.31.0",
56
+ "@wordpress/url": "^3.50.0",
57
+ "@wordpress/viewport": "^5.26.0",
58
+ "@wordpress/warning": "^2.49.0",
59
+ "@wordpress/widgets": "^3.26.0",
60
60
  "classnames": "^2.3.1",
61
61
  "memize": "^2.1.0",
62
62
  "rememo": "^4.0.2"
@@ -68,5 +68,5 @@
68
68
  "publishConfig": {
69
69
  "access": "public"
70
70
  },
71
- "gitHead": "12b897d7feff1cb00ddbf9016b62c1177d9c0081"
71
+ "gitHead": "5e6f9caa205d3bfdbac131952b7bf9c6ec60569b"
72
72
  }
@@ -43,7 +43,8 @@ export class BrowserURL extends Component {
43
43
  }
44
44
 
45
45
  componentDidUpdate( prevProps ) {
46
- const { postId, postStatus, postType, isSavingPost } = this.props;
46
+ const { postId, postStatus, postType, isSavingPost, hasHistory } =
47
+ this.props;
47
48
  const { historyId } = this.state;
48
49
 
49
50
  // Posts are still dirty while saving so wait for saving to finish
@@ -56,7 +57,8 @@ export class BrowserURL extends Component {
56
57
  if (
57
58
  ( postId !== prevProps.postId || postId !== historyId ) &&
58
59
  postStatus !== 'auto-draft' &&
59
- postId
60
+ postId &&
61
+ ! hasHistory
60
62
  ) {
61
63
  this.setBrowserURL( postId );
62
64
  }
@@ -7,10 +7,16 @@ import classnames from 'classnames';
7
7
  * WordPress dependencies
8
8
  */
9
9
  import {
10
- privateApis as blockEditorPrivateApis,
10
+ BlockToolbar,
11
11
  store as blockEditorStore,
12
12
  } from '@wordpress/block-editor';
13
- import { PostSavedState, PostPreviewButton } from '@wordpress/editor';
13
+ import {
14
+ PostSavedState,
15
+ PostPreviewButton,
16
+ store as editorStore,
17
+ DocumentBar,
18
+ privateApis as editorPrivateApis,
19
+ } from '@wordpress/editor';
14
20
  import { useEffect, useRef, useState } from '@wordpress/element';
15
21
  import { useSelect } from '@wordpress/data';
16
22
  import { __ } from '@wordpress/i18n';
@@ -28,17 +34,14 @@ import { store as preferencesStore } from '@wordpress/preferences';
28
34
  * Internal dependencies
29
35
  */
30
36
  import FullscreenModeClose from './fullscreen-mode-close';
31
- import HeaderToolbar from './header-toolbar';
32
37
  import MoreMenu from './more-menu';
33
38
  import PostPublishButtonOrToggle from './post-publish-button-or-toggle';
34
- import { default as DevicePreview } from '../device-preview';
35
- import ViewLink from '../view-link';
36
39
  import MainDashboardButton from './main-dashboard-button';
37
40
  import { store as editPostStore } from '../../store';
38
- import DocumentActions from './document-actions';
39
41
  import { unlock } from '../../lock-unlock';
40
42
 
41
- const { BlockContextualToolbar } = unlock( blockEditorPrivateApis );
43
+ const { DocumentTools, PostViewLink, PreviewDropdown } =
44
+ unlock( editorPrivateApis );
42
45
 
43
46
  const slideY = {
44
47
  hidden: { y: '-50px' },
@@ -52,47 +55,47 @@ const slideX = {
52
55
  hover: { x: 0, transition: { type: 'tween', delay: 0.2 } },
53
56
  };
54
57
 
55
- function Header( {
56
- setEntitiesSavedStatesCallback,
57
- setListViewToggleElement,
58
- } ) {
58
+ function Header( { setEntitiesSavedStatesCallback } ) {
59
59
  const isWideViewport = useViewportMatch( 'large' );
60
60
  const isLargeViewport = useViewportMatch( 'medium' );
61
61
  const blockToolbarRef = useRef();
62
62
  const {
63
- blockSelectionStart,
63
+ isTextEditor,
64
+ hasBlockSelection,
64
65
  hasActiveMetaboxes,
65
66
  hasFixedToolbar,
66
67
  isEditingTemplate,
67
68
  isPublishSidebarOpened,
68
69
  showIconLabels,
70
+ hasHistory,
69
71
  } = useSelect( ( select ) => {
70
72
  const { get: getPreference } = select( preferencesStore );
73
+ const { getEditorMode } = select( editPostStore );
71
74
 
72
75
  return {
73
- blockSelectionStart:
74
- select( blockEditorStore ).getBlockSelectionStart(),
76
+ isTextEditor: getEditorMode() === 'text',
77
+ hasBlockSelection:
78
+ !! select( blockEditorStore ).getBlockSelectionStart(),
75
79
  hasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),
76
- isEditingTemplate: select( editPostStore ).isEditingTemplate(),
80
+ hasHistory: !! select( editorStore ).getEditorSettings().goBack,
81
+ isEditingTemplate:
82
+ select( editorStore ).getRenderingMode() === 'template-only',
77
83
  isPublishSidebarOpened:
78
84
  select( editPostStore ).isPublishSidebarOpened(),
79
- hasFixedToolbar: getPreference( 'core/edit-post', 'fixedToolbar' ),
80
- showIconLabels:
81
- select( editPostStore ).isFeatureActive( 'showIconLabels' ),
85
+ hasFixedToolbar: getPreference( 'core', 'fixedToolbar' ),
86
+ showIconLabels: getPreference( 'core', 'showIconLabels' ),
82
87
  };
83
88
  }, [] );
84
89
 
85
90
  const [ isBlockToolsCollapsed, setIsBlockToolsCollapsed ] =
86
91
  useState( true );
87
92
 
88
- const hasBlockSelected = !! blockSelectionStart;
89
-
90
93
  useEffect( () => {
91
94
  // If we have a new block selection, show the block tools
92
- if ( blockSelectionStart ) {
95
+ if ( hasBlockSelection ) {
93
96
  setIsBlockToolsCollapsed( false );
94
97
  }
95
- }, [ blockSelectionStart ] );
98
+ }, [ hasBlockSelection ] );
96
99
 
97
100
  return (
98
101
  <div className="edit-post-header">
@@ -109,27 +112,26 @@ function Header( {
109
112
  transition={ { type: 'tween', delay: 0.8 } }
110
113
  className="edit-post-header__toolbar"
111
114
  >
112
- <HeaderToolbar
113
- hasFixedToolbar={ hasFixedToolbar }
114
- setListViewToggleElement={ setListViewToggleElement }
115
- />
115
+ <DocumentTools disableBlockTools={ isTextEditor } />
116
116
  { hasFixedToolbar && isLargeViewport && (
117
117
  <>
118
118
  <div
119
119
  className={ classnames(
120
120
  'selected-block-tools-wrapper',
121
121
  {
122
- 'is-collapsed': isBlockToolsCollapsed,
122
+ 'is-collapsed':
123
+ isEditingTemplate &&
124
+ isBlockToolsCollapsed,
123
125
  }
124
126
  ) }
125
127
  >
126
- <BlockContextualToolbar isFixed />
128
+ <BlockToolbar hideDragHandle />
127
129
  </div>
128
130
  <Popover.Slot
129
131
  ref={ blockToolbarRef }
130
132
  name="block-toolbar"
131
133
  />
132
- { isEditingTemplate && hasBlockSelected && (
134
+ { isEditingTemplate && hasBlockSelection && (
133
135
  <Button
134
136
  className="edit-post-header__block-tools-toggle"
135
137
  icon={ isBlockToolsCollapsed ? next : previous }
@@ -150,12 +152,14 @@ function Header( {
150
152
  <div
151
153
  className={ classnames( 'edit-post-header__center', {
152
154
  'is-collapsed':
155
+ isEditingTemplate &&
156
+ hasBlockSelection &&
153
157
  ! isBlockToolsCollapsed &&
154
- isLargeViewport &&
155
- isEditingTemplate,
158
+ hasFixedToolbar &&
159
+ isLargeViewport,
156
160
  } ) }
157
161
  >
158
- { isEditingTemplate && <DocumentActions /> }
162
+ { ( isEditingTemplate || hasHistory ) && <DocumentBar /> }
159
163
  </div>
160
164
  </motion.div>
161
165
  <motion.div
@@ -169,14 +173,14 @@ function Header( {
169
173
  // we want to prevent mounting/unmounting the PostPublishButtonOrToggle DOM node.
170
174
  // We track that DOM node to return focus to the PostPublishButtonOrToggle
171
175
  // when the publish sidebar has been closed.
172
- <PostSavedState
173
- forceIsDirty={ hasActiveMetaboxes }
174
- showIconLabels={ showIconLabels }
175
- />
176
+ <PostSavedState forceIsDirty={ hasActiveMetaboxes } />
176
177
  ) }
177
- <DevicePreview />
178
- <PostPreviewButton forceIsAutosaveable={ hasActiveMetaboxes } />
179
- <ViewLink />
178
+ <PreviewDropdown forceIsAutosaveable={ hasActiveMetaboxes } />
179
+ <PostPreviewButton
180
+ className="edit-post-header__post-preview-button"
181
+ forceIsAutosaveable={ hasActiveMetaboxes }
182
+ />
183
+ <PostViewLink />
180
184
  <PostPublishButtonOrToggle
181
185
  forceIsDirty={ hasActiveMetaboxes }
182
186
  setEntitiesSavedStatesCallback={
@@ -184,14 +188,9 @@ function Header( {
184
188
  }
185
189
  />
186
190
  { ( isWideViewport || ! showIconLabels ) && (
187
- <>
188
- <PinnedItems.Slot scope="core/edit-post" />
189
- <MoreMenu showIconLabels={ showIconLabels } />
190
- </>
191
- ) }
192
- { showIconLabels && ! isWideViewport && (
193
- <MoreMenu showIconLabels={ showIconLabels } />
191
+ <PinnedItems.Slot scope="core/edit-post" />
194
192
  ) }
193
+ <MoreMenu showIconLabels={ showIconLabels } />
195
194
  </motion.div>
196
195
  </div>
197
196
  );
@@ -44,7 +44,8 @@ function ModeSwitcher() {
44
44
  select( editorStore ).getEditorSettings().richEditingEnabled,
45
45
  isCodeEditingEnabled:
46
46
  select( editorStore ).getEditorSettings().codeEditingEnabled,
47
- isEditingTemplate: select( editPostStore ).isEditingTemplate(),
47
+ isEditingTemplate:
48
+ select( editorStore ).getRenderingMode() === 'template-only',
48
49
  mode: select( editPostStore ).getEditorMode(),
49
50
  } ),
50
51
  []
@@ -26,6 +26,7 @@ const MoreMenu = ( { showIconLabels } ) => {
26
26
  toggleProps={ {
27
27
  showTooltip: ! showIconLabels,
28
28
  ...( showIconLabels && { variant: 'tertiary' } ),
29
+ size: 'compact',
29
30
  } }
30
31
  >
31
32
  { ( { onClose } ) => (
@@ -52,12 +52,43 @@
52
52
  }
53
53
  }
54
54
 
55
- .block-editor-block-contextual-toolbar.is-fixed {
56
- border: none;
57
- }
58
-
59
55
  .selected-block-tools-wrapper {
60
56
  overflow-x: hidden;
57
+ display: flex;
58
+
59
+ .block-editor-block-contextual-toolbar {
60
+ border-bottom: 0;
61
+ }
62
+
63
+ &::after {
64
+ content: "";
65
+ width: $border-width;
66
+ margin-top: $grid-unit + $grid-unit-05;
67
+ margin-bottom: $grid-unit + $grid-unit-05;
68
+ background-color: $gray-300;
69
+ margin-left: $grid-unit;
70
+ }
71
+
72
+ // Modified group borders
73
+ .components-toolbar-group,
74
+ .components-toolbar {
75
+ border-right: none;
76
+
77
+ &::after {
78
+ content: "";
79
+ width: $border-width;
80
+ margin-top: $grid-unit + $grid-unit-05;
81
+ margin-bottom: $grid-unit + $grid-unit-05;
82
+ background-color: $gray-300;
83
+ margin-left: $grid-unit;
84
+ }
85
+
86
+ & .components-toolbar-group.components-toolbar-group {
87
+ &::after {
88
+ display: none;
89
+ }
90
+ }
91
+ }
61
92
 
62
93
  &.is-collapsed {
63
94
  display: none;
@@ -93,34 +124,7 @@
93
124
  padding-right: $grid-unit-20 - ($grid-unit-15 * 0.5);
94
125
  }
95
126
 
96
- gap: $grid-unit-05;
97
-
98
- @include break-small() {
99
- gap: $grid-unit-10;
100
- }
101
- }
102
-
103
- .edit-post-header-preview__grouping-external {
104
- display: flex;
105
- position: relative;
106
- padding-bottom: 0;
107
- }
108
-
109
- .edit-post-header-preview__button-external {
110
- padding-left: $grid-unit-10;
111
-
112
- margin-right: auto;
113
- width: 100%;
114
- display: flex;
115
- justify-content: flex-start;
116
-
117
- svg {
118
- margin-left: auto;
119
- }
120
- }
121
-
122
- .edit-post-post-preview-dropdown .components-popover__content {
123
- padding-bottom: 0;
127
+ gap: $grid-unit-10;
124
128
  }
125
129
 
126
130
  /**
@@ -170,7 +174,7 @@
170
174
  .components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon {
171
175
  display: block;
172
176
  }
173
- .edit-post-header-toolbar__inserter-toggle.edit-post-header-toolbar__inserter-toggle,
177
+ .editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,
174
178
  .interface-pinned-items .components-button {
175
179
  padding-left: $grid-unit;
176
180
  padding-right: $grid-unit;
@@ -189,6 +193,22 @@
189
193
  }
190
194
  }
191
195
 
196
+ .show-icon-labels {
197
+
198
+ .edit-post-header__toolbar .block-editor-block-mover {
199
+ border-left: none;
200
+
201
+ &::before {
202
+ content: "";
203
+ width: $border-width;
204
+ margin-top: $grid-unit + $grid-unit-05;
205
+ margin-bottom: $grid-unit + $grid-unit-05;
206
+ background-color: $gray-300;
207
+ margin-left: $grid-unit;
208
+ }
209
+ }
210
+ }
211
+
192
212
  .edit-post-header__dropdown {
193
213
  .components-menu-item__button.components-menu-item__button,
194
214
  .components-button.editor-history__undo,
@@ -231,6 +251,12 @@
231
251
  }
232
252
  }
233
253
 
254
+ .edit-post-header__post-preview-button {
255
+ @include break-small {
256
+ display: none;
257
+ }
258
+ }
259
+
234
260
  .is-distraction-free {
235
261
  .interface-interface-skeleton__header {
236
262
  border-bottom: none;
@@ -245,13 +271,13 @@
245
271
 
246
272
 
247
273
  // hide some parts
248
- & > .edit-post-header__settings > .editor-post-preview {
274
+ & > .edit-post-header__settings > .edit-post-header__post-preview-button {
249
275
  visibility: hidden;
250
276
  }
251
277
 
252
- & > .edit-post-header__toolbar .edit-post-header-toolbar__inserter-toggle,
253
- & > .edit-post-header__toolbar .edit-post-header-toolbar__document-overview-toggle,
254
- & > .edit-post-header__settings > .block-editor-post-preview__dropdown,
278
+ & > .edit-post-header__toolbar .editor-document-tools__inserter-toggle,
279
+ & > .edit-post-header__toolbar .editor-document-tools__document-overview-toggle,
280
+ & > .edit-post-header__settings > .editor-preview-dropdown,
255
281
  & > .edit-post-header__settings > .interface-pinned-items {
256
282
  display: none;
257
283
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useSelect, useDispatch, useRegistry } from '@wordpress/data';
4
+ import { useDispatch, useRegistry } from '@wordpress/data';
5
5
  import { MenuGroup } from '@wordpress/components';
6
6
  import { __, _x } from '@wordpress/i18n';
7
7
  import { useViewportMatch } from '@wordpress/compose';
@@ -10,7 +10,7 @@ import {
10
10
  PreferenceToggleMenuItem,
11
11
  store as preferencesStore,
12
12
  } from '@wordpress/preferences';
13
- import { store as blockEditorStore } from '@wordpress/block-editor';
13
+ import { store as editorStore } from '@wordpress/editor';
14
14
 
15
15
  /**
16
16
  * Internal dependencies
@@ -19,25 +19,25 @@ import { store as postEditorStore } from '../../../store';
19
19
 
20
20
  function WritingMenu() {
21
21
  const registry = useRegistry();
22
- const isDistractionFree = useSelect(
23
- ( select ) =>
24
- select( blockEditorStore ).getSettings().isDistractionFree,
25
- []
26
- );
27
22
 
28
- const { setIsInserterOpened, setIsListViewOpened, closeGeneralSidebar } =
29
- useDispatch( postEditorStore );
23
+ const { closeGeneralSidebar } = useDispatch( postEditorStore );
30
24
  const { set: setPreference } = useDispatch( preferencesStore );
25
+ const { setIsInserterOpened, setIsListViewOpened } =
26
+ useDispatch( editorStore );
31
27
 
32
28
  const toggleDistractionFree = () => {
33
29
  registry.batch( () => {
34
- setPreference( 'core/edit-post', 'fixedToolbar', true );
30
+ setPreference( 'core', 'fixedToolbar', true );
35
31
  setIsInserterOpened( false );
36
32
  setIsListViewOpened( false );
37
33
  closeGeneralSidebar();
38
34
  } );
39
35
  };
40
36
 
37
+ const turnOffDistractionFree = () => {
38
+ setPreference( 'core', 'distractionFree', false );
39
+ };
40
+
41
41
  const isLargeViewport = useViewportMatch( 'medium' );
42
42
  if ( ! isLargeViewport ) {
43
43
  return null;
@@ -46,9 +46,9 @@ function WritingMenu() {
46
46
  return (
47
47
  <MenuGroup label={ _x( 'View', 'noun' ) }>
48
48
  <PreferenceToggleMenuItem
49
- scope="core/edit-post"
50
- disabled={ isDistractionFree }
49
+ scope="core"
51
50
  name="fixedToolbar"
51
+ onToggle={ turnOffDistractionFree }
52
52
  label={ __( 'Top toolbar' ) }
53
53
  info={ __(
54
54
  'Access all block and document tools in a single place'
@@ -57,7 +57,17 @@ function WritingMenu() {
57
57
  messageDeactivated={ __( 'Top toolbar deactivated' ) }
58
58
  />
59
59
  <PreferenceToggleMenuItem
60
- scope="core/edit-post"
60
+ scope="core"
61
+ name="distractionFree"
62
+ onToggle={ toggleDistractionFree }
63
+ label={ __( 'Distraction free' ) }
64
+ info={ __( 'Write with calmness' ) }
65
+ messageActivated={ __( 'Distraction free mode activated' ) }
66
+ messageDeactivated={ __( 'Distraction free mode deactivated' ) }
67
+ shortcut={ displayShortcut.primaryShift( '\\' ) }
68
+ />
69
+ <PreferenceToggleMenuItem
70
+ scope="core"
61
71
  name="focusMode"
62
72
  label={ __( 'Spotlight mode' ) }
63
73
  info={ __( 'Focus on one block at a time' ) }
@@ -68,21 +78,11 @@ function WritingMenu() {
68
78
  scope="core/edit-post"
69
79
  name="fullscreenMode"
70
80
  label={ __( 'Fullscreen mode' ) }
71
- info={ __( 'Show and hide admin UI' ) }
81
+ info={ __( 'Show and hide the admin user interface' ) }
72
82
  messageActivated={ __( 'Fullscreen mode activated' ) }
73
83
  messageDeactivated={ __( 'Fullscreen mode deactivated' ) }
74
84
  shortcut={ displayShortcut.secondary( 'f' ) }
75
85
  />
76
- <PreferenceToggleMenuItem
77
- scope="core/edit-post"
78
- name="distractionFree"
79
- onToggle={ toggleDistractionFree }
80
- label={ __( 'Distraction free' ) }
81
- info={ __( 'Write with calmness' ) }
82
- messageActivated={ __( 'Distraction free mode activated' ) }
83
- messageDeactivated={ __( 'Distraction free mode deactivated' ) }
84
- shortcut={ displayShortcut.primaryShift( '\\' ) }
85
- />
86
86
  </MenuGroup>
87
87
  );
88
88
  }
@@ -16,21 +16,6 @@ import { KeyboardShortcutHelpModal } from '../index';
16
16
  const noop = () => {};
17
17
 
18
18
  describe( 'KeyboardShortcutHelpModal', () => {
19
- it( 'should match snapshot when the modal is active', () => {
20
- render(
21
- <>
22
- <EditorKeyboardShortcutsRegister />
23
- <KeyboardShortcutHelpModal isModalActive toggleModal={ noop } />
24
- </>
25
- );
26
-
27
- expect(
28
- screen.getByRole( 'dialog', {
29
- name: 'Keyboard shortcuts',
30
- } )
31
- ).toMatchSnapshot();
32
- } );
33
-
34
19
  it( 'should not render the modal when inactive', () => {
35
20
  render(
36
21
  <>
@@ -18,24 +18,20 @@ import { createBlock } from '@wordpress/blocks';
18
18
  import { store as editPostStore } from '../../store';
19
19
 
20
20
  function KeyboardShortcuts() {
21
- const { getEditorMode, isEditorSidebarOpened, isListViewOpened } =
22
- useSelect( editPostStore );
21
+ const { getEditorMode, isEditorSidebarOpened } = useSelect( editPostStore );
23
22
  const isModeToggleDisabled = useSelect( ( select ) => {
24
23
  const { richEditingEnabled, codeEditingEnabled } =
25
24
  select( editorStore ).getEditorSettings();
26
25
  return ! richEditingEnabled || ! codeEditingEnabled;
27
26
  }, [] );
28
-
29
27
  const {
30
28
  switchEditorMode,
31
29
  openGeneralSidebar,
32
30
  closeGeneralSidebar,
33
31
  toggleFeature,
34
- setIsListViewOpened,
35
32
  toggleDistractionFree,
36
33
  } = useDispatch( editPostStore );
37
34
  const { registerShortcut } = useDispatch( keyboardShortcutsStore );
38
-
39
35
  const { replaceBlocks } = useDispatch( blockEditorStore );
40
36
  const {
41
37
  getBlockName,
@@ -103,16 +99,6 @@ function KeyboardShortcuts() {
103
99
  },
104
100
  } );
105
101
 
106
- registerShortcut( {
107
- name: 'core/edit-post/toggle-list-view',
108
- category: 'global',
109
- description: __( 'Open the block list view.' ),
110
- keyCombination: {
111
- modifier: 'access',
112
- character: 'o',
113
- },
114
- } );
115
-
116
102
  registerShortcut( {
117
103
  name: 'core/edit-post/toggle-sidebar',
118
104
  category: 'global',
@@ -227,14 +213,6 @@ function KeyboardShortcuts() {
227
213
  }
228
214
  } );
229
215
 
230
- // Only opens the list view. Other functionality for this shortcut happens in the rendered sidebar.
231
- useShortcut( 'core/edit-post/toggle-list-view', ( event ) => {
232
- if ( ! isListViewOpened() ) {
233
- event.preventDefault();
234
- setIsListViewOpened( true );
235
- }
236
- } );
237
-
238
216
  useShortcut( 'core/edit-post/transform-heading-to-paragraph', ( event ) =>
239
217
  handleTextLevelShortcut( event, 0 )
240
218
  );