@wordpress/edit-site 5.28.3 → 5.29.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 (195) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-editor/use-site-editor-settings.js +2 -1
  3. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  4. package/build/components/code-editor/index.js +3 -2
  5. package/build/components/code-editor/index.js.map +1 -1
  6. package/build/components/editor/index.js +4 -4
  7. package/build/components/editor/index.js.map +1 -1
  8. package/build/components/editor-canvas-container/index.js +1 -1
  9. package/build/components/editor-canvas-container/index.js.map +1 -1
  10. package/build/components/header-edit-mode/document-tools/index.js +1 -2
  11. package/build/components/header-edit-mode/document-tools/index.js.map +1 -1
  12. package/build/components/header-edit-mode/index.js +3 -1
  13. package/build/components/header-edit-mode/index.js.map +1 -1
  14. package/build/components/header-edit-mode/more-menu/index.js +7 -4
  15. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  16. package/build/components/keyboard-shortcuts/edit-mode.js +0 -13
  17. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  18. package/build/components/keyboard-shortcuts/register.js +0 -18
  19. package/build/components/keyboard-shortcuts/register.js.map +1 -1
  20. package/build/components/layout/index.js +0 -1
  21. package/build/components/layout/index.js.map +1 -1
  22. package/build/components/page-patterns/dataviews-pattern-actions.js +25 -8
  23. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  24. package/build/components/page-patterns/header.js +2 -1
  25. package/build/components/page-patterns/header.js.map +1 -1
  26. package/build/components/page-patterns/index.js +0 -1
  27. package/build/components/page-patterns/index.js.map +1 -1
  28. package/build/components/save-button/index.js +2 -1
  29. package/build/components/save-button/index.js.map +1 -1
  30. package/build/components/sidebar/index.js +3 -2
  31. package/build/components/sidebar/index.js.map +1 -1
  32. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +5 -5
  33. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  34. package/build/components/sidebar-edit-mode/template-panel/hooks.js +20 -5
  35. package/build/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  36. package/build/components/sidebar-edit-mode/template-panel/index.js +48 -5
  37. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  38. package/build/components/sidebar-edit-mode/template-panel/template-actions.js +2 -9
  39. package/build/components/sidebar-edit-mode/template-panel/template-actions.js.map +1 -1
  40. package/build/components/sidebar-navigation-screen-global-styles/index.js +6 -2
  41. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  42. package/build/components/style-book/index.js +2 -0
  43. package/build/components/style-book/index.js.map +1 -1
  44. package/build/hooks/commands/use-edit-mode-commands.js +3 -171
  45. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  46. package/build/hooks/index.js +0 -1
  47. package/build/hooks/index.js.map +1 -1
  48. package/build/hooks/push-changes-to-global-styles/index.js +4 -5
  49. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  50. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +91 -0
  51. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -0
  52. package/build/store/actions.js +19 -50
  53. package/build/store/actions.js.map +1 -1
  54. package/build/utils/clone-deep.js +15 -0
  55. package/build/utils/clone-deep.js.map +1 -0
  56. package/build-module/components/block-editor/use-site-editor-settings.js +2 -1
  57. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  58. package/build-module/components/code-editor/index.js +3 -2
  59. package/build-module/components/code-editor/index.js.map +1 -1
  60. package/build-module/components/editor/index.js +4 -4
  61. package/build-module/components/editor/index.js.map +1 -1
  62. package/build-module/components/editor-canvas-container/index.js +2 -2
  63. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  64. package/build-module/components/header-edit-mode/document-tools/index.js +1 -2
  65. package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -1
  66. package/build-module/components/header-edit-mode/index.js +3 -1
  67. package/build-module/components/header-edit-mode/index.js.map +1 -1
  68. package/build-module/components/header-edit-mode/more-menu/index.js +6 -3
  69. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  70. package/build-module/components/keyboard-shortcuts/edit-mode.js +0 -13
  71. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  72. package/build-module/components/keyboard-shortcuts/register.js +0 -18
  73. package/build-module/components/keyboard-shortcuts/register.js.map +1 -1
  74. package/build-module/components/layout/index.js +1 -2
  75. package/build-module/components/layout/index.js.map +1 -1
  76. package/build-module/components/page-patterns/dataviews-pattern-actions.js +25 -8
  77. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  78. package/build-module/components/page-patterns/header.js +2 -1
  79. package/build-module/components/page-patterns/header.js.map +1 -1
  80. package/build-module/components/page-patterns/index.js +0 -1
  81. package/build-module/components/page-patterns/index.js.map +1 -1
  82. package/build-module/components/save-button/index.js +2 -1
  83. package/build-module/components/save-button/index.js.map +1 -1
  84. package/build-module/components/sidebar/index.js +3 -2
  85. package/build-module/components/sidebar/index.js.map +1 -1
  86. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +5 -5
  87. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  88. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js +20 -5
  89. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  90. package/build-module/components/sidebar-edit-mode/template-panel/index.js +50 -7
  91. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  92. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js +2 -9
  93. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js.map +1 -1
  94. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +6 -2
  95. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  96. package/build-module/components/style-book/index.js +2 -0
  97. package/build-module/components/style-book/index.js.map +1 -1
  98. package/build-module/hooks/commands/use-edit-mode-commands.js +4 -172
  99. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  100. package/build-module/hooks/index.js +0 -1
  101. package/build-module/hooks/index.js.map +1 -1
  102. package/build-module/hooks/push-changes-to-global-styles/index.js +1 -3
  103. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  104. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +82 -0
  105. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -0
  106. package/build-module/store/actions.js +19 -50
  107. package/build-module/store/actions.js.map +1 -1
  108. package/build-module/utils/clone-deep.js +9 -0
  109. package/build-module/utils/clone-deep.js.map +1 -0
  110. package/build-style/style-rtl.css +24 -208
  111. package/build-style/style.css +24 -208
  112. package/package.json +43 -42
  113. package/src/components/block-editor/use-site-editor-settings.js +1 -0
  114. package/src/components/code-editor/index.js +3 -2
  115. package/src/components/editor/index.js +10 -7
  116. package/src/components/editor-canvas-container/index.js +2 -5
  117. package/src/components/{test → error-boundary/test}/error-boundary.js +7 -5
  118. package/src/components/global-styles/screen-revisions/style.scss +2 -2
  119. package/src/components/global-styles/style.scss +1 -1
  120. package/src/components/header-edit-mode/document-tools/index.js +1 -2
  121. package/src/components/header-edit-mode/index.js +1 -1
  122. package/src/components/header-edit-mode/more-menu/index.js +8 -3
  123. package/src/components/keyboard-shortcuts/edit-mode.js +0 -11
  124. package/src/components/keyboard-shortcuts/register.js +0 -19
  125. package/src/components/layout/index.js +0 -2
  126. package/src/components/page-patterns/dataviews-pattern-actions.js +41 -10
  127. package/src/components/page-patterns/header.js +1 -0
  128. package/src/components/page-patterns/index.js +0 -1
  129. package/src/components/page-patterns/style.scss +0 -182
  130. package/src/components/save-button/index.js +2 -1
  131. package/src/components/save-hub/style.scss +1 -1
  132. package/src/components/sidebar/index.js +2 -1
  133. package/src/components/sidebar-button/style.scss +1 -1
  134. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +5 -7
  135. package/src/components/sidebar-edit-mode/style.scss +4 -0
  136. package/src/components/sidebar-edit-mode/template-panel/hooks.js +37 -24
  137. package/src/components/sidebar-edit-mode/template-panel/index.js +76 -18
  138. package/src/components/sidebar-edit-mode/template-panel/style.scss +5 -14
  139. package/src/components/sidebar-edit-mode/template-panel/template-actions.js +1 -12
  140. package/src/components/sidebar-navigation-screen-global-styles/index.js +4 -1
  141. package/src/components/style-book/index.js +5 -1
  142. package/src/hooks/commands/use-edit-mode-commands.js +3 -184
  143. package/src/hooks/index.js +0 -1
  144. package/src/hooks/push-changes-to-global-styles/index.js +1 -4
  145. package/src/hooks/use-theme-style-variations/test/use-theme-style-variations-by-property.js +964 -0
  146. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +92 -0
  147. package/src/store/actions.js +21 -85
  148. package/src/store/test/actions.js +0 -75
  149. package/src/style.scss +1 -6
  150. package/src/utils/clone-deep.js +8 -0
  151. package/build/components/header-edit-mode/mode-switcher/index.js +0 -62
  152. package/build/components/header-edit-mode/mode-switcher/index.js.map +0 -1
  153. package/build/components/page-patterns/duplicate-menu-item.js +0 -93
  154. package/build/components/page-patterns/duplicate-menu-item.js.map +0 -1
  155. package/build/components/page-patterns/grid-item.js +0 -223
  156. package/build/components/page-patterns/grid-item.js.map +0 -1
  157. package/build/components/page-patterns/grid.js +0 -31
  158. package/build/components/page-patterns/grid.js.map +0 -1
  159. package/build/components/page-patterns/no-patterns.js +0 -18
  160. package/build/components/page-patterns/no-patterns.js.map +0 -1
  161. package/build/components/page-patterns/patterns-list.js +0 -168
  162. package/build/components/page-patterns/patterns-list.js.map +0 -1
  163. package/build/components/page-patterns/rename-menu-item.js +0 -105
  164. package/build/components/page-patterns/rename-menu-item.js.map +0 -1
  165. package/build/components/sidebar-edit-mode/template-panel/replace-template-button.js +0 -83
  166. package/build/components/sidebar-edit-mode/template-panel/replace-template-button.js.map +0 -1
  167. package/build/hooks/navigation-menu-edit.js +0 -82
  168. package/build/hooks/navigation-menu-edit.js.map +0 -1
  169. package/build-module/components/header-edit-mode/mode-switcher/index.js +0 -56
  170. package/build-module/components/header-edit-mode/mode-switcher/index.js.map +0 -1
  171. package/build-module/components/page-patterns/duplicate-menu-item.js +0 -85
  172. package/build-module/components/page-patterns/duplicate-menu-item.js.map +0 -1
  173. package/build-module/components/page-patterns/grid-item.js +0 -215
  174. package/build-module/components/page-patterns/grid-item.js.map +0 -1
  175. package/build-module/components/page-patterns/grid.js +0 -23
  176. package/build-module/components/page-patterns/grid.js.map +0 -1
  177. package/build-module/components/page-patterns/no-patterns.js +0 -11
  178. package/build-module/components/page-patterns/no-patterns.js.map +0 -1
  179. package/build-module/components/page-patterns/patterns-list.js +0 -160
  180. package/build-module/components/page-patterns/patterns-list.js.map +0 -1
  181. package/build-module/components/page-patterns/rename-menu-item.js +0 -98
  182. package/build-module/components/page-patterns/rename-menu-item.js.map +0 -1
  183. package/build-module/components/sidebar-edit-mode/template-panel/replace-template-button.js +0 -76
  184. package/build-module/components/sidebar-edit-mode/template-panel/replace-template-button.js.map +0 -1
  185. package/build-module/hooks/navigation-menu-edit.js +0 -75
  186. package/build-module/hooks/navigation-menu-edit.js.map +0 -1
  187. package/src/components/header-edit-mode/mode-switcher/index.js +0 -60
  188. package/src/components/page-patterns/duplicate-menu-item.js +0 -105
  189. package/src/components/page-patterns/grid-item.js +0 -331
  190. package/src/components/page-patterns/grid.js +0 -22
  191. package/src/components/page-patterns/no-patterns.js +0 -12
  192. package/src/components/page-patterns/patterns-list.js +0 -229
  193. package/src/components/page-patterns/rename-menu-item.js +0 -132
  194. package/src/components/sidebar-edit-mode/template-panel/replace-template-button.js +0 -89
  195. package/src/hooks/navigation-menu-edit.js +0 -92
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useSelect } from '@wordpress/data';
5
- import { PanelBody } from '@wordpress/components';
4
+ import { useSelect, useDispatch } from '@wordpress/data';
5
+ import { PanelBody, PanelRow } from '@wordpress/components';
6
6
  import {
7
7
  PageAttributesPanel,
8
8
  PostDiscussionPanel,
@@ -15,6 +15,10 @@ import {
15
15
  import { store as coreStore } from '@wordpress/core-data';
16
16
  import { decodeEntities } from '@wordpress/html-entities';
17
17
  import { navigation, symbol } from '@wordpress/icons';
18
+ import { __ } from '@wordpress/i18n';
19
+ import { useAsyncList } from '@wordpress/compose';
20
+ import { serialize } from '@wordpress/blocks';
21
+ import { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';
18
22
 
19
23
  /**
20
24
  * Internal dependencies
@@ -23,36 +27,71 @@ import { store as editSiteStore } from '../../../store';
23
27
  import TemplateActions from './template-actions';
24
28
  import TemplateAreas from './template-areas';
25
29
  import SidebarCard from '../sidebar-card';
30
+ import { useAvailablePatterns } from './hooks';
31
+ import { TEMPLATE_PART_POST_TYPE } from '../../../utils/constants';
26
32
 
27
33
  const CARD_ICONS = {
28
34
  wp_block: symbol,
29
35
  wp_navigation: navigation,
30
36
  };
31
37
 
38
+ function TemplatesList( { availableTemplates, onSelect } ) {
39
+ const shownTemplates = useAsyncList( availableTemplates );
40
+ if ( ! availableTemplates || availableTemplates?.length === 0 ) {
41
+ return null;
42
+ }
43
+
44
+ return (
45
+ <BlockPatternsList
46
+ label={ __( 'Templates' ) }
47
+ blockPatterns={ availableTemplates }
48
+ shownPatterns={ shownTemplates }
49
+ onClickPattern={ onSelect }
50
+ showTitlesAsTooltip={ true }
51
+ />
52
+ );
53
+ }
54
+
32
55
  export default function TemplatePanel() {
33
- const { title, description, icon, record } = useSelect( ( select ) => {
34
- const { getEditedPostType, getEditedPostId } = select( editSiteStore );
35
- const { getEditedEntityRecord } = select( coreStore );
36
- const { __experimentalGetTemplateInfo: getTemplateInfo } =
37
- select( editorStore );
56
+ const { title, description, icon, record, postType, postId } = useSelect(
57
+ ( select ) => {
58
+ const { getEditedPostType, getEditedPostId } =
59
+ select( editSiteStore );
60
+ const { getEditedEntityRecord } = select( coreStore );
61
+ const { __experimentalGetTemplateInfo: getTemplateInfo } =
62
+ select( editorStore );
63
+
64
+ const type = getEditedPostType();
65
+ const _postId = getEditedPostId();
66
+ const _record = getEditedEntityRecord( 'postType', type, _postId );
67
+ const info = getTemplateInfo( _record );
38
68
 
39
- const type = getEditedPostType();
40
- const postId = getEditedPostId();
41
- const _record = getEditedEntityRecord( 'postType', type, postId );
42
- const info = getTemplateInfo( _record );
69
+ return {
70
+ title: info.title,
71
+ description: info.description,
72
+ icon: info.icon,
73
+ record: _record,
74
+ postType: type,
75
+ postId: _postId,
76
+ };
77
+ },
78
+ []
79
+ );
43
80
 
44
- return {
45
- title: info.title,
46
- description: info.description,
47
- icon: info.icon,
48
- record: _record,
49
- };
50
- }, [] );
81
+ const availablePatterns = useAvailablePatterns( record );
82
+ const { editEntityRecord } = useDispatch( coreStore );
51
83
 
52
84
  if ( ! title && ! description ) {
53
85
  return null;
54
86
  }
55
87
 
88
+ const onTemplateSelect = async ( selectedTemplate ) => {
89
+ await editEntityRecord( 'postType', postType, postId, {
90
+ blocks: selectedTemplate.blocks,
91
+ content: serialize( selectedTemplate.blocks ),
92
+ } );
93
+ };
94
+
56
95
  return (
57
96
  <>
58
97
  <PanelBody>
@@ -66,6 +105,25 @@ export default function TemplatePanel() {
66
105
  <TemplateAreas />
67
106
  </SidebarCard>
68
107
  </PanelBody>
108
+ { availablePatterns?.length > 0 && (
109
+ <PanelBody
110
+ title={ __( 'Transform into:' ) }
111
+ initialOpen={ postType === TEMPLATE_PART_POST_TYPE }
112
+ >
113
+ <PanelRow>
114
+ <p>
115
+ { __(
116
+ 'Choose a predefined pattern to switch up the look of your template.' // TODO - make this dynamic?
117
+ ) }
118
+ </p>
119
+ </PanelRow>
120
+
121
+ <TemplatesList
122
+ availableTemplates={ availablePatterns }
123
+ onSelect={ onTemplateSelect }
124
+ />
125
+ </PanelBody>
126
+ ) }
69
127
  <PostLastRevisionPanel />
70
128
  <PostTaxonomiesPanel />
71
129
  <PostFeaturedImagePanel />
@@ -34,20 +34,11 @@ h3.edit-site-template-card__template-areas-title {
34
34
  margin: 0 0 $grid-unit-10;
35
35
  }
36
36
 
37
-
38
- .edit-site-template-panel__replace-template-modal {
39
- z-index: z-index(".edit-site-template-panel__replace-template-modal");
37
+ .edit-site-template-card__templates-list {
38
+ margin-top: $grid-unit-20;
40
39
  }
41
40
 
42
- .edit-site-template-panel__replace-template-modal__content {
43
- column-count: 2;
44
- column-gap: $grid-unit-30;
45
-
46
- @include break-medium() {
47
- column-count: 3;
48
- }
49
-
50
- @include break-wide() {
51
- column-count: 4;
52
- }
41
+ .edit-site-template-panel .block-editor-block-preview__container {
42
+ border-radius: 2px;
43
+ box-shadow: none;
53
44
  }
@@ -11,18 +11,12 @@ import { moreVertical } from '@wordpress/icons';
11
11
  */
12
12
  import { store as editSiteStore } from '../../../store';
13
13
  import isTemplateRevertable from '../../../utils/is-template-revertable';
14
- import ReplaceTemplateButton from './replace-template-button';
15
- import { useAvailablePatterns } from './hooks';
16
14
 
17
15
  export default function Actions( { template } ) {
18
- const availablePatterns = useAvailablePatterns( template );
19
16
  const { revertTemplate } = useDispatch( editSiteStore );
20
17
  const isRevertable = isTemplateRevertable( template );
21
18
 
22
- if (
23
- ! isRevertable &&
24
- ( ! availablePatterns.length || availablePatterns.length < 1 )
25
- ) {
19
+ if ( ! isRevertable ) {
26
20
  return null;
27
21
  }
28
22
 
@@ -48,11 +42,6 @@ export default function Actions( { template } ) {
48
42
  { __( 'Clear customizations' ) }
49
43
  </MenuItem>
50
44
  ) }
51
- <ReplaceTemplateButton
52
- availableTemplates={ availablePatterns }
53
- template={ template }
54
- onClick={ onClose }
55
- />
56
45
  </MenuGroup>
57
46
  ) }
58
47
  </DropdownMenu>
@@ -10,6 +10,7 @@ import { useViewportMatch } from '@wordpress/compose';
10
10
  import { BlockEditorProvider } from '@wordpress/block-editor';
11
11
  import { useCallback } from '@wordpress/element';
12
12
  import { store as editorStore } from '@wordpress/editor';
13
+ import { store as preferencesStore } from '@wordpress/preferences';
13
14
 
14
15
  /**
15
16
  * Internal dependencies
@@ -115,13 +116,15 @@ export default function SidebarNavigationScreenGlobalStyles() {
115
116
  },
116
117
  []
117
118
  );
119
+ const { set: setPreference } = useDispatch( preferencesStore );
118
120
 
119
121
  const openGlobalStyles = useCallback( async () => {
120
122
  return Promise.all( [
123
+ setPreference( 'core', 'distractionFree', false ),
121
124
  setCanvasMode( 'edit' ),
122
125
  openGeneralSidebar( 'edit-site/global-styles' ),
123
126
  ] );
124
- }, [ setCanvasMode, openGeneralSidebar ] );
127
+ }, [ setCanvasMode, openGeneralSidebar, setPreference ] );
125
128
 
126
129
  const openStyleBook = useCallback( async () => {
127
130
  await openGlobalStyles();
@@ -425,7 +425,11 @@ const Example = ( { id, title, blocks, isSelected, onClick } ) => {
425
425
  []
426
426
  );
427
427
  const settings = useMemo(
428
- () => ( { ...originalSettings, __unstableIsPreviewMode: true } ),
428
+ () => ( {
429
+ ...originalSettings,
430
+ focusMode: false, // Disable "Spotlight mode".
431
+ __unstableIsPreviewMode: true,
432
+ } ),
429
433
  [ originalSettings ]
430
434
  );
431
435
 
@@ -13,17 +13,13 @@ import {
13
13
  drawerLeft,
14
14
  drawerRight,
15
15
  blockDefault,
16
- code,
17
16
  keyboard,
18
- listView,
19
17
  symbol,
20
18
  } from '@wordpress/icons';
21
19
  import { useCommandLoader } from '@wordpress/commands';
22
20
  import { decodeEntities } from '@wordpress/html-entities';
23
21
  import { privateApis as routerPrivateApis } from '@wordpress/router';
24
- import { store as preferencesStore } from '@wordpress/preferences';
25
22
  import { store as interfaceStore } from '@wordpress/interface';
26
- import { store as noticesStore } from '@wordpress/notices';
27
23
  import { store as editorStore } from '@wordpress/editor';
28
24
 
29
25
  /**
@@ -103,37 +99,6 @@ function usePageContentFocusCommands() {
103
99
  return { isLoading: false, commands };
104
100
  }
105
101
 
106
- function useEditorModeCommands() {
107
- const { switchEditorMode } = useDispatch( editSiteStore );
108
- const { canvasMode, editorMode } = useSelect(
109
- ( select ) => ( {
110
- canvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),
111
- editorMode: select( editSiteStore ).getEditorMode(),
112
- } ),
113
- []
114
- );
115
-
116
- if ( canvasMode !== 'edit' || editorMode !== 'text' ) {
117
- return { isLoading: false, commands: [] };
118
- }
119
-
120
- const commands = [];
121
-
122
- if ( editorMode === 'text' ) {
123
- commands.push( {
124
- name: 'core/exit-code-editor',
125
- label: __( 'Exit code editor' ),
126
- icon: code,
127
- callback: ( { close } ) => {
128
- switchEditorMode( 'visual' );
129
- close();
130
- },
131
- } );
132
- }
133
-
134
- return { isLoading: false, commands };
135
- }
136
-
137
102
  function useManipulateDocumentCommands() {
138
103
  const { isLoaded, record: template } = useEditedEntityRecord();
139
104
  const { removeTemplate, revertTemplate } = useDispatch( editSiteStore );
@@ -214,42 +179,17 @@ function useManipulateDocumentCommands() {
214
179
  }
215
180
 
216
181
  function useEditUICommands() {
217
- const {
218
- openGeneralSidebar,
219
- closeGeneralSidebar,
220
- toggleDistractionFree,
221
- setIsListViewOpened,
222
- switchEditorMode,
223
- } = useDispatch( editSiteStore );
224
- const {
225
- canvasMode,
226
- editorMode,
227
- activeSidebar,
228
- showBlockBreadcrumbs,
229
- isListViewOpen,
230
- isDistractionFree,
231
- isTopToolbar,
232
- isFocusMode,
233
- } = useSelect( ( select ) => {
234
- const { get } = select( preferencesStore );
235
- const { getEditorMode } = select( editSiteStore );
236
- const { isListViewOpened } = select( editorStore );
182
+ const { openGeneralSidebar, closeGeneralSidebar } =
183
+ useDispatch( editSiteStore );
184
+ const { canvasMode, activeSidebar } = useSelect( ( select ) => {
237
185
  return {
238
186
  canvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),
239
- editorMode: getEditorMode(),
240
187
  activeSidebar: select( interfaceStore ).getActiveComplementaryArea(
241
188
  editSiteStore.name
242
189
  ),
243
- showBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),
244
- isListViewOpen: isListViewOpened(),
245
- isDistractionFree: get( 'core', 'distractionFree' ),
246
- isFocusMode: get( 'core', 'focusMode' ),
247
- isTopToolbar: get( 'core', 'fixedToolbar' ),
248
190
  };
249
191
  }, [] );
250
192
  const { openModal } = useDispatch( interfaceStore );
251
- const { toggle } = useDispatch( preferencesStore );
252
- const { createInfoNotice } = useDispatch( noticesStore );
253
193
 
254
194
  if ( canvasMode !== 'edit' ) {
255
195
  return { isLoading: false, commands: [] };
@@ -285,82 +225,6 @@ function useEditUICommands() {
285
225
  },
286
226
  } );
287
227
 
288
- commands.push( {
289
- name: 'core/toggle-spotlight-mode',
290
- label: __( 'Toggle spotlight' ),
291
- callback: ( { close } ) => {
292
- toggle( 'core', 'focusMode' );
293
- close();
294
- createInfoNotice(
295
- isFocusMode ? __( 'Spotlight off.' ) : __( 'Spotlight on.' ),
296
- {
297
- id: 'core/edit-site/toggle-spotlight-mode/notice',
298
- type: 'snackbar',
299
- actions: [
300
- {
301
- label: __( 'Undo' ),
302
- onClick: () => {
303
- toggle( 'core', 'focusMode' );
304
- },
305
- },
306
- ],
307
- }
308
- );
309
- },
310
- } );
311
-
312
- commands.push( {
313
- name: 'core/toggle-distraction-free',
314
- label: isDistractionFree
315
- ? __( 'Exit Distraction Free' )
316
- : __( 'Enter Distraction Free ' ),
317
- callback: ( { close } ) => {
318
- toggleDistractionFree();
319
- close();
320
- },
321
- } );
322
-
323
- commands.push( {
324
- name: 'core/toggle-top-toolbar',
325
- label: __( 'Toggle top toolbar' ),
326
- callback: ( { close } ) => {
327
- toggle( 'core', 'fixedToolbar' );
328
- if ( isDistractionFree ) {
329
- toggleDistractionFree();
330
- }
331
- close();
332
- createInfoNotice(
333
- isTopToolbar
334
- ? __( 'Top toolbar off.' )
335
- : __( 'Top toolbar on.' ),
336
- {
337
- id: 'core/edit-site/toggle-top-toolbar/notice',
338
- type: 'snackbar',
339
- actions: [
340
- {
341
- label: __( 'Undo' ),
342
- onClick: () => {
343
- toggle( 'core', 'fixedToolbar' );
344
- },
345
- },
346
- ],
347
- }
348
- );
349
- },
350
- } );
351
-
352
- if ( editorMode === 'visual' ) {
353
- commands.push( {
354
- name: 'core/toggle-code-editor',
355
- label: __( 'Open code editor' ),
356
- icon: code,
357
- callback: ( { close } ) => {
358
- switchEditorMode( 'text' );
359
- close();
360
- },
361
- } );
362
- }
363
-
364
228
  commands.push( {
365
229
  name: 'core/open-preferences',
366
230
  label: __( 'Editor preferences' ),
@@ -378,45 +242,6 @@ function useEditUICommands() {
378
242
  },
379
243
  } );
380
244
 
381
- commands.push( {
382
- name: 'core/toggle-breadcrumbs',
383
- label: showBlockBreadcrumbs
384
- ? __( 'Hide block breadcrumbs' )
385
- : __( 'Show block breadcrumbs' ),
386
- callback: ( { close } ) => {
387
- toggle( 'core', 'showBlockBreadcrumbs' );
388
- close();
389
- createInfoNotice(
390
- showBlockBreadcrumbs
391
- ? __( 'Breadcrumbs hidden.' )
392
- : __( 'Breadcrumbs visible.' ),
393
- {
394
- id: 'core/edit-site/toggle-breadcrumbs/notice',
395
- type: 'snackbar',
396
- }
397
- );
398
- },
399
- } );
400
-
401
- commands.push( {
402
- name: 'core/toggle-list-view',
403
- label: isListViewOpen
404
- ? __( 'Close List View' )
405
- : __( 'Open List View' ),
406
- icon: listView,
407
- callback: ( { close } ) => {
408
- setIsListViewOpened( ! isListViewOpen );
409
- close();
410
- createInfoNotice(
411
- isListViewOpen ? __( 'List View off.' ) : __( 'List View on.' ),
412
- {
413
- id: 'core/edit-site/toggle-list-view/notice',
414
- type: 'snackbar',
415
- }
416
- );
417
- },
418
- } );
419
-
420
245
  return {
421
246
  isLoading: false,
422
247
  commands,
@@ -458,12 +283,6 @@ function usePatternCommands() {
458
283
  }
459
284
 
460
285
  export function useEditModeCommands() {
461
- useCommandLoader( {
462
- name: 'core/exit-code-editor',
463
- hook: useEditorModeCommands,
464
- context: 'site-editor-edit',
465
- } );
466
-
467
286
  useCommandLoader( {
468
287
  name: 'core/edit-site/page-content-focus',
469
288
  hook: usePageContentFocusCommands,
@@ -4,4 +4,3 @@
4
4
  import './components';
5
5
  import './push-changes-to-global-styles';
6
6
  import './template-part-edit';
7
- import './navigation-menu-edit';
@@ -26,6 +26,7 @@ import { store as coreStore } from '@wordpress/core-data';
26
26
  */
27
27
  import { useSupportedStyles } from '../../components/global-styles/hooks';
28
28
  import { unlock } from '../../lock-unlock';
29
+ import cloneDeep from '../../utils/clone-deep';
29
30
 
30
31
  const { cleanEmptyObject, GlobalStylesContext } = unlock(
31
32
  blockEditorPrivateApis
@@ -275,10 +276,6 @@ function setNestedValue( object, path, value ) {
275
276
  return object;
276
277
  }
277
278
 
278
- function cloneDeep( object ) {
279
- return ! object ? {} : JSON.parse( JSON.stringify( object ) );
280
- }
281
-
282
279
  function PushChangesToGlobalStylesControl( {
283
280
  name,
284
281
  attributes,