@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
@@ -16,11 +16,13 @@ import {
16
16
  EditorSnackbars,
17
17
  PostSyncStatusModal,
18
18
  store as editorStore,
19
+ privateApis as editorPrivateApis,
19
20
  } from '@wordpress/editor';
20
21
  import { useSelect, useDispatch } from '@wordpress/data';
21
22
  import {
22
23
  useBlockCommands,
23
24
  BlockBreadcrumb,
25
+ BlockToolbar,
24
26
  privateApis as blockEditorPrivateApis,
25
27
  store as blockEditorStore,
26
28
  } from '@wordpress/block-editor';
@@ -37,13 +39,10 @@ import {
37
39
  import { useState, useEffect, useCallback, useMemo } from '@wordpress/element';
38
40
  import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
39
41
  import { store as noticesStore } from '@wordpress/notices';
40
-
42
+ import { store as preferencesStore } from '@wordpress/preferences';
41
43
  import { privateApis as commandsPrivateApis } from '@wordpress/commands';
42
44
  import { privateApis as coreCommandsPrivateApis } from '@wordpress/core-commands';
43
45
 
44
- const { useCommands } = unlock( coreCommandsPrivateApis );
45
- const { useCommandContext } = unlock( commandsPrivateApis );
46
-
47
46
  /**
48
47
  * Internal dependencies
49
48
  */
@@ -54,8 +53,6 @@ import KeyboardShortcutHelpModal from '../keyboard-shortcut-help-modal';
54
53
  import EditPostPreferencesModal from '../preferences-modal';
55
54
  import BrowserURL from '../browser-url';
56
55
  import Header from '../header';
57
- import InserterSidebar from '../secondary-sidebar/inserter-sidebar';
58
- import ListViewSidebar from '../secondary-sidebar/list-view-sidebar';
59
56
  import SettingsSidebar from '../sidebar/settings-sidebar';
60
57
  import MetaBoxes from '../meta-boxes';
61
58
  import WelcomeGuide from '../welcome-guide';
@@ -66,6 +63,9 @@ import { unlock } from '../../lock-unlock';
66
63
  import useCommonCommands from '../../hooks/commands/use-common-commands';
67
64
 
68
65
  const { getLayoutStyles } = unlock( blockEditorPrivateApis );
66
+ const { useCommands } = unlock( coreCommandsPrivateApis );
67
+ const { useCommandContext } = unlock( commandsPrivateApis );
68
+ const { InserterSidebar, ListViewSidebar } = unlock( editorPrivateApis );
69
69
 
70
70
  const interfaceLabels = {
71
71
  /* translators: accessibility text for the editor top bar landmark region. */
@@ -138,17 +138,19 @@ function Layout() {
138
138
 
139
139
  const isMobileViewport = useViewportMatch( 'medium', '<' );
140
140
  const isHugeViewport = useViewportMatch( 'huge', '>=' );
141
- const isLargeViewport = useViewportMatch( 'large' );
142
- const { openGeneralSidebar, closeGeneralSidebar, setIsInserterOpened } =
141
+ const isWideViewport = useViewportMatch( 'large' );
142
+ const isLargeViewport = useViewportMatch( 'medium' );
143
+
144
+ const { openGeneralSidebar, closeGeneralSidebar } =
143
145
  useDispatch( editPostStore );
144
146
  const { createErrorNotice } = useDispatch( noticesStore );
147
+ const { setIsInserterOpened } = useDispatch( editorStore );
145
148
  const {
146
149
  mode,
147
150
  isFullscreenActive,
148
151
  isRichEditingEnabled,
149
152
  sidebarIsOpened,
150
153
  hasActiveMetaboxes,
151
- hasFixedToolbar,
152
154
  previousShortcut,
153
155
  nextShortcut,
154
156
  hasBlockSelected,
@@ -157,17 +159,18 @@ function Layout() {
157
159
  showIconLabels,
158
160
  isDistractionFree,
159
161
  showBlockBreadcrumbs,
160
- isTemplateMode,
162
+ showMetaBoxes,
161
163
  documentLabel,
164
+ hasHistory,
162
165
  } = useSelect( ( select ) => {
166
+ const { get } = select( preferencesStore );
163
167
  const { getEditorSettings, getPostTypeLabel } = select( editorStore );
164
168
  const editorSettings = getEditorSettings();
165
169
  const postTypeLabel = getPostTypeLabel();
166
170
 
167
171
  return {
168
- isTemplateMode: select( editPostStore ).isEditingTemplate(),
169
- hasFixedToolbar:
170
- select( editPostStore ).isFeatureActive( 'fixedToolbar' ),
172
+ showMetaBoxes:
173
+ select( editorStore ).getRenderingMode() === 'post-only',
171
174
  sidebarIsOpened: !! (
172
175
  select( interfaceStore ).getActiveComplementaryArea(
173
176
  editPostStore.name
@@ -175,8 +178,8 @@ function Layout() {
175
178
  ),
176
179
  isFullscreenActive:
177
180
  select( editPostStore ).isFeatureActive( 'fullscreenMode' ),
178
- isInserterOpened: select( editPostStore ).isInserterOpened(),
179
- isListViewOpened: select( editPostStore ).isListViewOpened(),
181
+ isInserterOpened: select( editorStore ).isInserterOpened(),
182
+ isListViewOpened: select( editorStore ).isListViewOpened(),
180
183
  mode: select( editPostStore ).getEditorMode(),
181
184
  isRichEditingEnabled: editorSettings.richEditingEnabled,
182
185
  hasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),
@@ -186,17 +189,14 @@ function Layout() {
186
189
  nextShortcut: select(
187
190
  keyboardShortcutsStore
188
191
  ).getAllShortcutKeyCombinations( 'core/edit-post/next-region' ),
189
- showIconLabels:
190
- select( editPostStore ).isFeatureActive( 'showIconLabels' ),
191
- isDistractionFree:
192
- select( editPostStore ).isFeatureActive( 'distractionFree' ),
193
- showBlockBreadcrumbs: select( editPostStore ).isFeatureActive(
194
- 'showBlockBreadcrumbs'
195
- ),
192
+ showIconLabels: get( 'core', 'showIconLabels' ),
193
+ isDistractionFree: get( 'core', 'distractionFree' ),
194
+ showBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),
196
195
  // translators: Default label for the Document in the Block Breadcrumb.
197
196
  documentLabel: postTypeLabel || _x( 'Document', 'noun' ),
198
197
  hasBlockSelected:
199
- select( blockEditorStore ).getBlockSelectionStart(),
198
+ !! select( blockEditorStore ).getBlockSelectionStart(),
199
+ hasHistory: !! getEditorSettings().goBack,
200
200
  };
201
201
  }, [] );
202
202
 
@@ -218,21 +218,18 @@ function Layout() {
218
218
  if ( sidebarIsOpened && ! isHugeViewport ) {
219
219
  setIsInserterOpened( false );
220
220
  }
221
- }, [ sidebarIsOpened, isHugeViewport ] );
221
+ }, [ isHugeViewport, setIsInserterOpened, sidebarIsOpened ] );
222
222
  useEffect( () => {
223
223
  if ( isInserterOpened && ! isHugeViewport ) {
224
224
  closeGeneralSidebar();
225
225
  }
226
- }, [ isInserterOpened, isHugeViewport ] );
226
+ }, [ closeGeneralSidebar, isInserterOpened, isHugeViewport ] );
227
227
 
228
228
  // Local state for save panel.
229
229
  // Note 'truthy' callback implies an open panel.
230
230
  const [ entitiesSavedStatesCallback, setEntitiesSavedStatesCallback ] =
231
231
  useState( false );
232
232
 
233
- const [ listViewToggleElement, setListViewToggleElement ] =
234
- useState( null );
235
-
236
233
  const closeEntitiesSavedStates = useCallback(
237
234
  ( arg ) => {
238
235
  if ( typeof entitiesSavedStatesCallback === 'function' ) {
@@ -252,9 +249,8 @@ function Layout() {
252
249
 
253
250
  const className = classnames( 'edit-post-layout', 'is-mode-' + mode, {
254
251
  'is-sidebar-opened': sidebarIsOpened,
255
- 'has-fixed-toolbar': hasFixedToolbar,
256
252
  'has-metaboxes': hasActiveMetaboxes,
257
- 'is-distraction-free': isDistractionFree && isLargeViewport,
253
+ 'is-distraction-free': isDistractionFree && isWideViewport,
258
254
  'is-entity-save-view-open': !! entitiesSavedStatesCallback,
259
255
  } );
260
256
 
@@ -267,11 +263,7 @@ function Layout() {
267
263
  return <InserterSidebar />;
268
264
  }
269
265
  if ( mode === 'visual' && isListViewOpened ) {
270
- return (
271
- <ListViewSidebar
272
- listViewToggleElement={ listViewToggleElement }
273
- />
274
- );
266
+ return <ListViewSidebar />;
275
267
  }
276
268
 
277
269
  return null;
@@ -292,7 +284,7 @@ function Layout() {
292
284
  return (
293
285
  <>
294
286
  <FullscreenMode isActive={ isFullscreenActive } />
295
- <BrowserURL />
287
+ <BrowserURL hasHistory={ hasHistory } />
296
288
  <UnsavedChangesWarning />
297
289
  <AutosaveMonitor />
298
290
  <LocalAutosaveMonitor />
@@ -301,7 +293,7 @@ function Layout() {
301
293
  <EditorKeyboardShortcuts />
302
294
 
303
295
  <InterfaceSkeleton
304
- isDistractionFree={ isDistractionFree && isLargeViewport }
296
+ isDistractionFree={ isDistractionFree && isWideViewport }
305
297
  className={ className }
306
298
  labels={ {
307
299
  ...interfaceLabels,
@@ -312,7 +304,6 @@ function Layout() {
312
304
  setEntitiesSavedStatesCallback={
313
305
  setEntitiesSavedStatesCallback
314
306
  }
315
- setListViewToggleElement={ setListViewToggleElement }
316
307
  />
317
308
  }
318
309
  editorNotices={ <EditorNotices /> }
@@ -345,10 +336,11 @@ function Layout() {
345
336
  { ( mode === 'text' || ! isRichEditingEnabled ) && (
346
337
  <TextEditor />
347
338
  ) }
339
+ { ! isLargeViewport && <BlockToolbar hideDragHandle /> }
348
340
  { isRichEditingEnabled && mode === 'visual' && (
349
341
  <VisualEditor styles={ styles } />
350
342
  ) }
351
- { ! isDistractionFree && ! isTemplateMode && (
343
+ { ! isDistractionFree && showMetaBoxes && (
352
344
  <div className="edit-post-layout__metaboxes">
353
345
  <MetaBoxes location="normal" />
354
346
  <MetaBoxes location="advanced" />
@@ -22,7 +22,11 @@ import {
22
22
  Tooltip,
23
23
  __unstableAutocompletionItemsSlot as AutocompletionItemsSlot,
24
24
  } from '@wordpress/components';
25
- import { AutosaveMonitor, store as editorStore } from '@wordpress/editor';
25
+ import {
26
+ AutosaveMonitor,
27
+ OfflineStatus,
28
+ store as editorStore,
29
+ } from '@wordpress/editor';
26
30
  import { sendNativeEditorDidLayout } from '@wordpress/react-native-bridge';
27
31
 
28
32
  /**
@@ -148,6 +152,10 @@ class Layout extends Component {
148
152
  onLayout={ this.onRootViewLayout }
149
153
  >
150
154
  <AutosaveMonitor disableIntervalChecks />
155
+ {
156
+ // eslint-disable-next-line no-undef
157
+ __DEV__ && <OfflineStatus />
158
+ }
151
159
  <View style={ editorStyles }>
152
160
  { isHtmlView ? this.renderHTML() : this.renderVisual() }
153
161
  { ! isHtmlView && Platform.OS === 'android' && (
@@ -3,11 +3,7 @@
3
3
  */
4
4
  import { Component } from '@wordpress/element';
5
5
  import { withSelect } from '@wordpress/data';
6
-
7
- /**
8
- * Internal dependencies
9
- */
10
- import { store as editPostStore } from '../../store';
6
+ import { store as editorStore } from '@wordpress/editor';
11
7
 
12
8
  class MetaBoxVisibility extends Component {
13
9
  componentDidMount() {
@@ -41,7 +37,5 @@ class MetaBoxVisibility extends Component {
41
37
  }
42
38
 
43
39
  export default withSelect( ( select, { id } ) => ( {
44
- isVisible: select( editPostStore ).isEditorPanelEnabled(
45
- `meta-box-${ id }`
46
- ),
40
+ isVisible: select( editorStore ).isEditorPanelEnabled( `meta-box-${ id }` ),
47
41
  } ) )( MetaBoxVisibility );
@@ -44,14 +44,14 @@ export default function EditPostPreferencesModal() {
44
44
  const [ isModalActive, showBlockBreadcrumbsOption ] = useSelect(
45
45
  ( select ) => {
46
46
  const { getEditorSettings } = select( editorStore );
47
- const { getEditorMode, isFeatureActive } = select( editPostStore );
47
+ const { getEditorMode } = select( editPostStore );
48
+ const { get } = select( preferencesStore );
48
49
  const modalActive = select( interfaceStore ).isModalActive(
49
50
  PREFERENCES_MODAL_NAME
50
51
  );
51
52
  const mode = getEditorMode();
52
53
  const isRichEditingEnabled = getEditorSettings().richEditingEnabled;
53
- const isDistractionFreeEnabled =
54
- isFeatureActive( 'distractionFree' );
54
+ const isDistractionFreeEnabled = get( 'core', 'distractionFree' );
55
55
  return [
56
56
  modalActive,
57
57
  ! isDistractionFreeEnabled &&
@@ -64,18 +64,22 @@ export default function EditPostPreferencesModal() {
64
64
  [ isLargeViewport ]
65
65
  );
66
66
 
67
- const { closeGeneralSidebar, setIsListViewOpened, setIsInserterOpened } =
68
- useDispatch( editPostStore );
69
-
67
+ const { closeGeneralSidebar } = useDispatch( editPostStore );
68
+ const { setIsListViewOpened, setIsInserterOpened } =
69
+ useDispatch( editorStore );
70
70
  const { set: setPreference } = useDispatch( preferencesStore );
71
71
 
72
72
  const toggleDistractionFree = () => {
73
- setPreference( 'core/edit-post', 'fixedToolbar', true );
73
+ setPreference( 'core', 'fixedToolbar', true );
74
74
  setIsInserterOpened( false );
75
75
  setIsListViewOpened( false );
76
76
  closeGeneralSidebar();
77
77
  };
78
78
 
79
+ const turnOffDistractionFree = () => {
80
+ setPreference( 'core', 'distractionFree', false );
81
+ };
82
+
79
83
  const sections = useMemo(
80
84
  () => [
81
85
  {
@@ -86,124 +90,49 @@ export default function EditPostPreferencesModal() {
86
90
  { isLargeViewport && (
87
91
  <PreferencesModalSection
88
92
  title={ __( 'Publishing' ) }
89
- description={ __(
90
- 'Change options related to publishing.'
91
- ) }
92
93
  >
93
94
  <EnablePublishSidebarOption
94
95
  help={ __(
95
96
  'Review settings, such as visibility and tags.'
96
97
  ) }
97
- label={ __(
98
- 'Include pre-publish checklist'
99
- ) }
98
+ label={ __( 'Enable pre-publish checks' ) }
100
99
  />
101
100
  </PreferencesModalSection>
102
101
  ) }
103
-
104
- <PreferencesModalSection
105
- title={ __( 'Appearance' ) }
106
- description={ __(
107
- 'Customize options related to the block editor interface and editing flow.'
108
- ) }
109
- >
110
- <EnableFeature
111
- featureName="distractionFree"
112
- onToggle={ toggleDistractionFree }
113
- help={ __(
114
- 'Reduce visual distractions by hiding the toolbar and other elements to focus on writing.'
115
- ) }
116
- label={ __( 'Distraction free' ) }
117
- />
118
- <EnableFeature
119
- featureName="focusMode"
120
- help={ __(
121
- 'Highlights the current block and fades other content.'
122
- ) }
123
- label={ __( 'Spotlight mode' ) }
124
- />
125
- <EnableFeature
126
- featureName="showIconLabels"
127
- label={ __( 'Show button text labels' ) }
128
- help={ __(
129
- 'Show text instead of icons on buttons.'
130
- ) }
131
- />
102
+ <PreferencesModalSection title={ __( 'Interface' ) }>
132
103
  <EnableFeature
104
+ scope="core"
133
105
  featureName="showListViewByDefault"
134
106
  help={ __(
135
107
  'Opens the block list view sidebar by default.'
136
108
  ) }
137
109
  label={ __( 'Always open list view' ) }
138
110
  />
139
- <EnableFeature
140
- featureName="themeStyles"
141
- help={ __(
142
- 'Make the editor look like your theme.'
143
- ) }
144
- label={ __( 'Use theme styles' ) }
145
- />
146
111
  { showBlockBreadcrumbsOption && (
147
112
  <EnableFeature
113
+ scope="core"
148
114
  featureName="showBlockBreadcrumbs"
149
115
  help={ __(
150
- 'Shows block breadcrumbs at the bottom of the editor.'
116
+ 'Display the block hierarchy trail at the bottom of the editor.'
151
117
  ) }
152
- label={ __( 'Display block breadcrumbs' ) }
118
+ label={ __( 'Show block breadcrumbs' ) }
153
119
  />
154
120
  ) }
155
- </PreferencesModalSection>
156
- </>
157
- ),
158
- },
159
- {
160
- name: 'blocks',
161
- tabLabel: __( 'Blocks' ),
162
- content: (
163
- <>
164
- <PreferencesModalSection
165
- title={ __( 'Block interactions' ) }
166
- description={ __(
167
- 'Customize how you interact with blocks in the block library and editing canvas.'
168
- ) }
169
- >
170
- <EnableFeature
171
- featureName="mostUsedBlocks"
172
- help={ __(
173
- 'Places the most frequent blocks in the block library.'
174
- ) }
175
- label={ __( 'Show most used blocks' ) }
176
- />
177
121
  <EnableFeature
178
- featureName="keepCaretInsideBlock"
122
+ scope="core"
123
+ featureName="allowRightClickOverrides"
179
124
  help={ __(
180
- 'Aids screen readers by stopping text caret from leaving blocks.'
125
+ 'Allows contextual list view menus via right-click, overriding browser defaults.'
181
126
  ) }
182
127
  label={ __(
183
- 'Contain text cursor inside block'
128
+ 'Allow right-click contextual menus'
184
129
  ) }
185
130
  />
186
131
  </PreferencesModalSection>
187
- <PreferencesModalSection
188
- title={ __( 'Visible blocks' ) }
189
- description={ __(
190
- "Disable blocks that you don't want to appear in the inserter. They can always be toggled back on later."
191
- ) }
192
- >
193
- <BlockManager />
194
- </PreferencesModalSection>
195
- </>
196
- ),
197
- },
198
- {
199
- name: 'panels',
200
- tabLabel: __( 'Panels' ),
201
- content: (
202
- <>
203
132
  <PreferencesModalSection
204
133
  title={ __( 'Document settings' ) }
205
134
  description={ __(
206
- 'Choose what displays in the panel.'
135
+ 'Select what settings are shown in the document panel.'
207
136
  ) }
208
137
  >
209
138
  <EnablePluginDocumentSettingPanelOption.Slot />
@@ -242,12 +171,114 @@ export default function EditPostPreferencesModal() {
242
171
  />
243
172
  </PageAttributesCheck>
244
173
  </PreferencesModalSection>
245
- <MetaBoxesSection
246
- title={ __( 'Additional' ) }
247
- description={ __(
248
- 'Add extra areas to the editor.'
174
+ <MetaBoxesSection title={ __( 'Advanced' ) } />
175
+ </>
176
+ ),
177
+ },
178
+ {
179
+ name: 'appearance',
180
+ tabLabel: __( 'Appearance' ),
181
+ content: (
182
+ <PreferencesModalSection
183
+ title={ __( 'Appearance' ) }
184
+ description={ __(
185
+ 'Customize the editor interface to suit your needs.'
186
+ ) }
187
+ >
188
+ <EnableFeature
189
+ scope="core"
190
+ featureName="fixedToolbar"
191
+ onToggle={ turnOffDistractionFree }
192
+ help={ __(
193
+ 'Access all block and document tools in a single place.'
249
194
  ) }
195
+ label={ __( 'Top toolbar' ) }
250
196
  />
197
+ <EnableFeature
198
+ scope="core"
199
+ featureName="distractionFree"
200
+ onToggle={ toggleDistractionFree }
201
+ help={ __(
202
+ 'Reduce visual distractions by hiding the toolbar and other elements to focus on writing.'
203
+ ) }
204
+ label={ __( 'Distraction free' ) }
205
+ />
206
+ <EnableFeature
207
+ scope="core"
208
+ featureName="focusMode"
209
+ help={ __(
210
+ 'Highlights the current block and fades other content.'
211
+ ) }
212
+ label={ __( 'Spotlight mode' ) }
213
+ />
214
+ <EnableFeature
215
+ featureName="themeStyles"
216
+ help={ __(
217
+ 'Make the editor look like your theme.'
218
+ ) }
219
+ label={ __( 'Use theme styles' ) }
220
+ />
221
+ </PreferencesModalSection>
222
+ ),
223
+ },
224
+ {
225
+ name: 'accessibility',
226
+ tabLabel: __( 'Accessibility' ),
227
+ content: (
228
+ <>
229
+ <PreferencesModalSection
230
+ title={ __( 'Navigation' ) }
231
+ description={ __(
232
+ 'Optimize the editing experience for enhanced control.'
233
+ ) }
234
+ >
235
+ <EnableFeature
236
+ scope="core"
237
+ featureName="keepCaretInsideBlock"
238
+ help={ __(
239
+ 'Keeps the text cursor within the block boundaries, aiding users with screen readers by preventing unintentional cursor movement outside the block.'
240
+ ) }
241
+ label={ __(
242
+ 'Contain text cursor inside block'
243
+ ) }
244
+ />
245
+ </PreferencesModalSection>
246
+ <PreferencesModalSection title={ __( 'Interface' ) }>
247
+ <EnableFeature
248
+ scope="core"
249
+ featureName="showIconLabels"
250
+ label={ __( 'Show button text labels' ) }
251
+ help={ __(
252
+ 'Show text instead of icons on buttons across the interface.'
253
+ ) }
254
+ />
255
+ </PreferencesModalSection>
256
+ </>
257
+ ),
258
+ },
259
+ {
260
+ name: 'blocks',
261
+ tabLabel: __( 'Blocks' ),
262
+ content: (
263
+ <>
264
+ <PreferencesModalSection title={ __( 'Inserter' ) }>
265
+ <EnableFeature
266
+ scope="core"
267
+ featureName="mostUsedBlocks"
268
+ help={ __(
269
+ 'Adds a category with the most frequently used blocks in the inserter.'
270
+ ) }
271
+ label={ __( 'Show most used blocks' ) }
272
+ />
273
+ </PreferencesModalSection>
274
+ <PreferencesModalSection
275
+ title={ __( 'Manage block visibility' ) }
276
+ description={ __(
277
+ "Disable blocks that you don't want to appear in the inserter. They can always be toggled back on later."
278
+ ) }
279
+ >
280
+ <BlockManager />
281
+ </PreferencesModalSection>
251
282
  </>
252
283
  ),
253
284
  },
@@ -1,26 +1,31 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { compose } from '@wordpress/compose';
5
- import { withSelect, withDispatch } from '@wordpress/data';
4
+ import { useSelect, useDispatch } from '@wordpress/data';
6
5
  import { ___unstablePreferencesModalBaseOption as BaseOption } from '@wordpress/interface';
6
+ import { store as preferencesStore } from '@wordpress/preferences';
7
7
 
8
- /**
9
- * Internal dependencies
10
- */
11
- import { store as editPostStore } from '../../../store';
12
-
13
- export default compose(
14
- withSelect( ( select, { featureName } ) => {
15
- const { isFeatureActive } = select( editPostStore );
16
- return {
17
- isChecked: isFeatureActive( featureName ),
18
- };
19
- } ),
20
- withDispatch( ( dispatch, { featureName, onToggle = () => {} } ) => ( {
21
- onChange: () => {
22
- onToggle();
23
- dispatch( editPostStore ).toggleFeature( featureName );
24
- },
25
- } ) )
26
- )( BaseOption );
8
+ export default function EnableFeature( props ) {
9
+ const {
10
+ scope = 'core/edit-post',
11
+ featureName,
12
+ onToggle = () => {},
13
+ ...remainingProps
14
+ } = props;
15
+ const isChecked = useSelect(
16
+ ( select ) => !! select( preferencesStore ).get( scope, featureName ),
17
+ [ scope, featureName ]
18
+ );
19
+ const { toggle } = useDispatch( preferencesStore );
20
+ const onChange = () => {
21
+ onToggle();
22
+ toggle( scope, featureName );
23
+ };
24
+ return (
25
+ <BaseOption
26
+ onChange={ onChange }
27
+ isChecked={ isChecked }
28
+ { ...remainingProps }
29
+ />
30
+ );
31
+ }
@@ -4,16 +4,12 @@
4
4
  import { compose, ifCondition } from '@wordpress/compose';
5
5
  import { withSelect, withDispatch } from '@wordpress/data';
6
6
  import { ___unstablePreferencesModalBaseOption as BaseOption } from '@wordpress/interface';
7
-
8
- /**
9
- * Internal dependencies
10
- */
11
- import { store as editPostStore } from '../../../store';
7
+ import { store as editorStore } from '@wordpress/editor';
12
8
 
13
9
  export default compose(
14
10
  withSelect( ( select, { panelName } ) => {
15
11
  const { isEditorPanelEnabled, isEditorPanelRemoved } =
16
- select( editPostStore );
12
+ select( editorStore );
17
13
  return {
18
14
  isRemoved: isEditorPanelRemoved( panelName ),
19
15
  isChecked: isEditorPanelEnabled( panelName ),
@@ -22,6 +18,6 @@ export default compose(
22
18
  ifCondition( ( { isRemoved } ) => ! isRemoved ),
23
19
  withDispatch( ( dispatch, { panelName } ) => ( {
24
20
  onChange: () =>
25
- dispatch( editPostStore ).toggleEditorPanelEnabled( panelName ),
21
+ dispatch( editorStore ).toggleEditorPanelEnabled( panelName ),
26
22
  } ) )
27
23
  )( BaseOption );