@wordpress/edit-site 5.3.4 → 5.3.6

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 (178) hide show
  1. package/build/components/add-new-template/add-custom-template-modal.js +12 -3
  2. package/build/components/add-new-template/add-custom-template-modal.js.map +1 -1
  3. package/build/components/add-new-template/new-template-part.js +8 -7
  4. package/build/components/add-new-template/new-template-part.js.map +1 -1
  5. package/build/components/add-new-template/new-template.js +3 -6
  6. package/build/components/add-new-template/new-template.js.map +1 -1
  7. package/build/components/editor/index.js +3 -3
  8. package/build/components/editor/index.js.map +1 -1
  9. package/build/components/global-styles/screen-border.js +1 -1
  10. package/build/components/global-styles/screen-border.js.map +1 -1
  11. package/build/components/global-styles/screen-variations.js +1 -1
  12. package/build/components/global-styles/screen-variations.js.map +1 -1
  13. package/build/components/global-styles/shadow-panel.js +6 -4
  14. package/build/components/global-styles/shadow-panel.js.map +1 -1
  15. package/build/components/global-styles/ui.js +1 -1
  16. package/build/components/global-styles/ui.js.map +1 -1
  17. package/build/components/keyboard-shortcuts/edit-mode.js +124 -0
  18. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -0
  19. package/build/components/keyboard-shortcuts/global.js +48 -0
  20. package/build/components/keyboard-shortcuts/global.js.map +1 -0
  21. package/build/components/keyboard-shortcuts/register.js +153 -0
  22. package/build/components/keyboard-shortcuts/register.js.map +1 -0
  23. package/build/components/layout/index.js +5 -1
  24. package/build/components/layout/index.js.map +1 -1
  25. package/build/components/list/added-by.js +41 -42
  26. package/build/components/list/added-by.js.map +1 -1
  27. package/build/components/list/table.js +3 -2
  28. package/build/components/list/table.js.map +1 -1
  29. package/build/components/navigation-inspector/navigation-menu.js +4 -2
  30. package/build/components/navigation-inspector/navigation-menu.js.map +1 -1
  31. package/build/components/save-button/index.js +5 -2
  32. package/build/components/save-button/index.js.map +1 -1
  33. package/build/components/save-panel/index.js +11 -1
  34. package/build/components/save-panel/index.js.map +1 -1
  35. package/build/components/sidebar/index.js +28 -35
  36. package/build/components/sidebar/index.js.map +1 -1
  37. package/build/components/sidebar-button/index.js +30 -0
  38. package/build/components/sidebar-button/index.js.map +1 -0
  39. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +8 -2
  40. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  41. package/build/components/sidebar-navigation-screen/index.js +10 -10
  42. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  43. package/build/components/sidebar-navigation-screen-main/index.js +3 -3
  44. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  45. package/build/components/sidebar-navigation-screen-navigation-item/index.js +17 -16
  46. package/build/components/sidebar-navigation-screen-navigation-item/index.js.map +1 -1
  47. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +1 -3
  48. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  49. package/build/components/sidebar-navigation-screen-template/index.js +9 -19
  50. package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
  51. package/build/components/sidebar-navigation-screen-templates/index.js +25 -15
  52. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  53. package/build/components/sidebar-navigation-screen-templates-browse/index.js +8 -7
  54. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  55. package/build/components/style-book/index.js +17 -2
  56. package/build/components/style-book/index.js.map +1 -1
  57. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +36 -34
  58. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  59. package/build/components/sync-state-with-url/use-sync-path-with-url.js +65 -18
  60. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  61. package/build/components/template-details/index.js +7 -9
  62. package/build/components/template-details/index.js.map +1 -1
  63. package/build/index.js +10 -22
  64. package/build/index.js.map +1 -1
  65. package/build/utils/get-is-list-page.js +1 -1
  66. package/build/utils/get-is-list-page.js.map +1 -1
  67. package/build-module/components/add-new-template/add-custom-template-modal.js +13 -4
  68. package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -1
  69. package/build-module/components/add-new-template/new-template-part.js +8 -7
  70. package/build-module/components/add-new-template/new-template-part.js.map +1 -1
  71. package/build-module/components/add-new-template/new-template.js +3 -6
  72. package/build-module/components/add-new-template/new-template.js.map +1 -1
  73. package/build-module/components/editor/index.js +3 -3
  74. package/build-module/components/editor/index.js.map +1 -1
  75. package/build-module/components/global-styles/screen-border.js +1 -1
  76. package/build-module/components/global-styles/screen-border.js.map +1 -1
  77. package/build-module/components/global-styles/screen-variations.js +1 -1
  78. package/build-module/components/global-styles/screen-variations.js.map +1 -1
  79. package/build-module/components/global-styles/shadow-panel.js +6 -4
  80. package/build-module/components/global-styles/shadow-panel.js.map +1 -1
  81. package/build-module/components/global-styles/ui.js +1 -1
  82. package/build-module/components/global-styles/ui.js.map +1 -1
  83. package/build-module/components/keyboard-shortcuts/edit-mode.js +108 -0
  84. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -0
  85. package/build-module/components/keyboard-shortcuts/global.js +37 -0
  86. package/build-module/components/keyboard-shortcuts/global.js.map +1 -0
  87. package/build-module/components/keyboard-shortcuts/register.js +141 -0
  88. package/build-module/components/keyboard-shortcuts/register.js.map +1 -0
  89. package/build-module/components/layout/index.js +3 -1
  90. package/build-module/components/layout/index.js.map +1 -1
  91. package/build-module/components/list/added-by.js +43 -44
  92. package/build-module/components/list/added-by.js.map +1 -1
  93. package/build-module/components/list/table.js +3 -2
  94. package/build-module/components/list/table.js.map +1 -1
  95. package/build-module/components/navigation-inspector/navigation-menu.js +4 -2
  96. package/build-module/components/navigation-inspector/navigation-menu.js.map +1 -1
  97. package/build-module/components/save-button/index.js +5 -2
  98. package/build-module/components/save-button/index.js.map +1 -1
  99. package/build-module/components/save-panel/index.js +8 -1
  100. package/build-module/components/save-panel/index.js.map +1 -1
  101. package/build-module/components/sidebar/index.js +25 -35
  102. package/build-module/components/sidebar/index.js.map +1 -1
  103. package/build-module/components/sidebar-button/index.js +18 -0
  104. package/build-module/components/sidebar-button/index.js.map +1 -0
  105. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +8 -2
  106. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  107. package/build-module/components/sidebar-navigation-screen/index.js +8 -11
  108. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  109. package/build-module/components/sidebar-navigation-screen-main/index.js +3 -3
  110. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  111. package/build-module/components/sidebar-navigation-screen-navigation-item/index.js +16 -17
  112. package/build-module/components/sidebar-navigation-screen-navigation-item/index.js.map +1 -1
  113. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +1 -3
  114. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  115. package/build-module/components/sidebar-navigation-screen-template/index.js +8 -18
  116. package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
  117. package/build-module/components/sidebar-navigation-screen-templates/index.js +23 -16
  118. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  119. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +7 -7
  120. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  121. package/build-module/components/style-book/index.js +17 -3
  122. package/build-module/components/style-book/index.js.map +1 -1
  123. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +36 -34
  124. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  125. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +63 -18
  126. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  127. package/build-module/components/template-details/index.js +7 -8
  128. package/build-module/components/template-details/index.js.map +1 -1
  129. package/build-module/index.js +12 -22
  130. package/build-module/index.js.map +1 -1
  131. package/build-module/utils/get-is-list-page.js +1 -1
  132. package/build-module/utils/get-is-list-page.js.map +1 -1
  133. package/build-style/style-rtl.css +41 -38
  134. package/build-style/style.css +41 -38
  135. package/package.json +21 -21
  136. package/src/components/add-new-template/add-custom-template-modal.js +14 -10
  137. package/src/components/add-new-template/new-template-part.js +7 -9
  138. package/src/components/add-new-template/new-template.js +3 -6
  139. package/src/components/add-new-template/style.scss +0 -5
  140. package/src/components/block-editor/style.scss +1 -1
  141. package/src/components/editor/index.js +4 -3
  142. package/src/components/editor/style.scss +0 -6
  143. package/src/components/global-styles/screen-border.js +1 -1
  144. package/src/components/global-styles/screen-variations.js +0 -1
  145. package/src/components/global-styles/shadow-panel.js +4 -3
  146. package/src/components/global-styles/ui.js +1 -1
  147. package/src/components/keyboard-shortcuts/edit-mode.js +116 -0
  148. package/src/components/keyboard-shortcuts/global.js +35 -0
  149. package/src/components/keyboard-shortcuts/register.js +157 -0
  150. package/src/components/layout/index.js +4 -0
  151. package/src/components/layout/style.scss +8 -1
  152. package/src/components/list/added-by.js +48 -55
  153. package/src/components/list/style.scss +5 -13
  154. package/src/components/list/table.js +4 -5
  155. package/src/components/navigation-inspector/navigation-menu.js +8 -2
  156. package/src/components/save-button/index.js +2 -2
  157. package/src/components/save-panel/index.js +8 -1
  158. package/src/components/sidebar/index.js +34 -29
  159. package/src/components/sidebar-button/index.js +21 -0
  160. package/src/components/sidebar-button/style.scss +23 -0
  161. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +3 -7
  162. package/src/components/sidebar-edit-mode/style.scss +16 -0
  163. package/src/components/sidebar-navigation-screen/index.js +31 -38
  164. package/src/components/sidebar-navigation-screen/style.scss +1 -9
  165. package/src/components/sidebar-navigation-screen-main/index.js +3 -3
  166. package/src/components/sidebar-navigation-screen-navigation-item/index.js +24 -20
  167. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +0 -2
  168. package/src/components/sidebar-navigation-screen-template/index.js +7 -19
  169. package/src/components/sidebar-navigation-screen-templates/index.js +22 -14
  170. package/src/components/sidebar-navigation-screen-templates/style.scss +0 -5
  171. package/src/components/sidebar-navigation-screen-templates-browse/index.js +6 -11
  172. package/src/components/style-book/index.js +25 -1
  173. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +28 -23
  174. package/src/components/sync-state-with-url/use-sync-path-with-url.js +72 -17
  175. package/src/components/template-details/index.js +5 -6
  176. package/src/index.js +6 -21
  177. package/src/style.scss +1 -0
  178. package/src/utils/get-is-list-page.js +1 -1
@@ -12,8 +12,8 @@ import { useLocation } from '../routes';
12
12
  import { store as editSiteStore } from '../../store';
13
13
 
14
14
  export default function useInitEditedEntityFromURL() {
15
- const { params: { postId, postType, path = '/' } = {} } = useLocation();
16
- const { isRequestingSite, homepageId } = useSelect( ( select ) => {
15
+ const { params: { postId, postType } = {} } = useLocation();
16
+ const { isRequestingSite, homepageId, url } = useSelect( ( select ) => {
17
17
  const { getSite } = select( coreDataStore );
18
18
  const siteData = getSite();
19
19
 
@@ -23,6 +23,7 @@ export default function useInitEditedEntityFromURL() {
23
23
  siteData?.show_on_front === 'page'
24
24
  ? siteData.page_on_front
25
25
  : null,
26
+ url: siteData?.url,
26
27
  };
27
28
  }, [] );
28
29
 
@@ -30,33 +31,37 @@ export default function useInitEditedEntityFromURL() {
30
31
  useDispatch( editSiteStore );
31
32
 
32
33
  useEffect( () => {
33
- switch ( path ) {
34
- case '/templates/single':
35
- setTemplate( postId );
36
- break;
37
- case '/template-parts/single':
38
- setTemplatePart( postId );
39
- break;
40
- case '/navigation/single':
41
- setPage( {
42
- context: { postType, postId },
43
- } );
44
- break;
45
- default: {
46
- if ( homepageId ) {
34
+ if ( postType && postId ) {
35
+ switch ( postType ) {
36
+ case 'wp_template':
37
+ setTemplate( postId );
38
+ break;
39
+ case 'wp_template_part':
40
+ setTemplatePart( postId );
41
+ break;
42
+ default:
47
43
  setPage( {
48
- context: { postType: 'page', postId: homepageId },
44
+ context: { postType, postId },
49
45
  } );
50
- } else if ( ! isRequestingSite ) {
51
- setPage( {
52
- path: '/',
53
- } );
54
- }
55
46
  }
47
+
48
+ return;
49
+ }
50
+
51
+ // In all other cases, we need to set the home page in the site editor view.
52
+ if ( homepageId ) {
53
+ setPage( {
54
+ context: { postType: 'page', postId: homepageId },
55
+ } );
56
+ } else if ( ! isRequestingSite ) {
57
+ setPage( {
58
+ path: url,
59
+ } );
56
60
  }
57
61
  }, [
58
- path,
62
+ url,
59
63
  postId,
64
+ postType,
60
65
  homepageId,
61
66
  isRequestingSite,
62
67
  setPage,
@@ -9,28 +9,83 @@ import { useEffect, useRef } from '@wordpress/element';
9
9
  */
10
10
  import { useLocation, useHistory } from '../routes';
11
11
 
12
+ export function getPathFromURL( urlParams ) {
13
+ let path = urlParams?.path ?? '/';
14
+
15
+ // Compute the navigator path based on the URL params.
16
+ if ( urlParams?.postType && urlParams?.postId ) {
17
+ switch ( urlParams.postType ) {
18
+ case 'wp_template':
19
+ case 'wp_template_part':
20
+ path = `/${ encodeURIComponent(
21
+ urlParams.postType
22
+ ) }/${ encodeURIComponent( urlParams.postId ) }`;
23
+ break;
24
+ default:
25
+ path = `/navigation/${ encodeURIComponent(
26
+ urlParams.postType
27
+ ) }/${ encodeURIComponent( urlParams.postId ) }`;
28
+ }
29
+ }
30
+
31
+ return path;
32
+ }
33
+
12
34
  export default function useSyncPathWithURL() {
13
35
  const history = useHistory();
14
- const { params } = useLocation();
15
- const { path = '/' } = params;
16
- const { location, goTo } = useNavigator();
17
- const currentPath = useRef( path );
18
- const currentNavigatorLocation = useRef( location.path );
36
+ const { params: urlParams } = useLocation();
37
+ const {
38
+ location: navigatorLocation,
39
+ params: navigatorParams,
40
+ goTo,
41
+ } = useNavigator();
42
+ const currentUrlParams = useRef( urlParams );
43
+ const currentPath = useRef( navigatorLocation.path );
44
+
19
45
  useEffect( () => {
20
- currentPath.current = path;
21
- if ( path !== currentNavigatorLocation.current ) {
22
- goTo( path );
46
+ function updateUrlParams( newUrlParams ) {
47
+ if (
48
+ Object.entries( newUrlParams ).every( ( [ key, value ] ) => {
49
+ return currentUrlParams.current[ key ] === value;
50
+ } )
51
+ ) {
52
+ return;
53
+ }
54
+ const updatedParams = {
55
+ ...currentUrlParams.current,
56
+ ...newUrlParams,
57
+ };
58
+ currentUrlParams.current = updatedParams;
59
+ history.push( updatedParams );
23
60
  }
24
- }, [ path ] );
25
- useEffect( () => {
26
- currentNavigatorLocation.current = location.path;
27
- if ( location.path !== currentPath.current ) {
28
- history.push( {
29
- ...params,
30
- path: location.path,
61
+
62
+ if ( navigatorParams?.postType && navigatorParams?.postId ) {
63
+ updateUrlParams( {
64
+ postType: navigatorParams?.postType,
65
+ postId: navigatorParams?.postId,
66
+ path: undefined,
67
+ } );
68
+ } else if ( navigatorParams?.postType && ! navigatorParams?.postId ) {
69
+ updateUrlParams( {
70
+ postType: navigatorParams?.postType,
71
+ path: navigatorLocation.path,
72
+ postId: undefined,
73
+ } );
74
+ } else {
75
+ updateUrlParams( {
76
+ postType: undefined,
77
+ postId: undefined,
78
+ path: navigatorLocation.path,
31
79
  } );
32
80
  }
33
- }, [ location.path, history ] );
81
+ }, [ navigatorLocation?.path, navigatorParams, history ] );
34
82
 
35
- return path;
83
+ useEffect( () => {
84
+ currentUrlParams.current = urlParams;
85
+ const path = getPathFromURL( urlParams );
86
+ if ( currentPath.current !== path ) {
87
+ currentPath.current = path;
88
+ goTo( path );
89
+ }
90
+ }, [ urlParams, goTo ] );
36
91
  }
@@ -18,7 +18,6 @@ import { decodeEntities } from '@wordpress/html-entities';
18
18
  */
19
19
  import isTemplateRevertable from '../../utils/is-template-revertable';
20
20
  import { store as editSiteStore } from '../../store';
21
- import TemplateAreas from './template-areas';
22
21
  import EditTemplateTitle from './edit-template-title';
23
22
  import { useLink } from '../routes/link';
24
23
  import TemplatePartAreaSelector from './template-part-area-selector';
@@ -31,10 +30,12 @@ export default function TemplateDetails( { template, onClose } ) {
31
30
  );
32
31
  const { revertTemplate } = useDispatch( editSiteStore );
33
32
 
33
+ // TODO: We should update this to filter by template part's areas as well.
34
34
  const browseAllLinkProps = useLink( {
35
- // TODO: We should update this to filter by template part's areas as well.
35
+ canvas: 'view',
36
36
  postType: template.type,
37
37
  postId: undefined,
38
+ path: '/' + template.type + '/all',
38
39
  } );
39
40
 
40
41
  const isTemplatePart = template.type === 'wp_template_part';
@@ -87,8 +88,6 @@ export default function TemplateDetails( { template, onClose } ) {
87
88
  </div>
88
89
  ) }
89
90
 
90
- <TemplateAreas closeTemplateDetailsDropdown={ onClose } />
91
-
92
91
  { isTemplateRevertable( template ) && (
93
92
  <MenuGroup className="edit-site-template-details__group edit-site-template-details__revert">
94
93
  <MenuItem
@@ -108,8 +107,8 @@ export default function TemplateDetails( { template, onClose } ) {
108
107
  { ...browseAllLinkProps }
109
108
  >
110
109
  { template?.type === 'wp_template'
111
- ? __( 'Browse all templates' )
112
- : __( 'Browse all template parts' ) }
110
+ ? __( 'Manage all templates' )
111
+ : __( 'Manage all template parts' ) }
113
112
  </Button>
114
113
  </div>
115
114
  );
package/src/index.js CHANGED
@@ -4,6 +4,7 @@
4
4
  import { store as blocksStore } from '@wordpress/blocks';
5
5
  import {
6
6
  registerCoreBlocks,
7
+ __experimentalGetCoreBlocks,
7
8
  __experimentalRegisterExperimentalCoreBlocks,
8
9
  } from '@wordpress/block-library';
9
10
  import { dispatch } from '@wordpress/data';
@@ -16,7 +17,6 @@ import {
16
17
  import { store as editorStore } from '@wordpress/editor';
17
18
  import { store as interfaceStore } from '@wordpress/interface';
18
19
  import { store as preferencesStore } from '@wordpress/preferences';
19
- import { addFilter } from '@wordpress/hooks';
20
20
  import { registerLegacyWidgetBlock } from '@wordpress/widgets';
21
21
 
22
22
  /**
@@ -41,32 +41,17 @@ export function initializeEditor( id, settings ) {
41
41
  settings.__experimentalFetchRichUrlData = fetchUrlData;
42
42
 
43
43
  dispatch( blocksStore ).__experimentalReapplyBlockTypeFilters();
44
- registerCoreBlocks();
44
+ const coreBlocks = __experimentalGetCoreBlocks().filter(
45
+ ( { name } ) => name !== 'core/freeform'
46
+ );
47
+ registerCoreBlocks( coreBlocks );
48
+ dispatch( blocksStore ).setFreeformFallbackBlockName( 'core/html' );
45
49
  registerLegacyWidgetBlock( { inserter: false } );
46
50
  if ( process.env.IS_GUTENBERG_PLUGIN ) {
47
51
  __experimentalRegisterExperimentalCoreBlocks( {
48
52
  enableFSEBlocks: true,
49
53
  } );
50
54
  }
51
- /*
52
- * Prevent adding the Clasic block in the site editor.
53
- * Only add the filter when the site editor is initialized, not imported.
54
- * Also only add the filter(s) after registerCoreBlocks()
55
- * so that common filters in the block library are not overwritten.
56
- *
57
- * This usage here is inspired by previous usage of the filter in the post editor:
58
- * https://github.com/WordPress/gutenberg/pull/37157
59
- */
60
- addFilter(
61
- 'blockEditor.__unstableCanInsertBlockType',
62
- 'removeClassicBlockFromInserter',
63
- ( canInsert, blockType ) => {
64
- if ( blockType.name === 'core/freeform' ) {
65
- return false;
66
- }
67
- return canInsert;
68
- }
69
- );
70
55
 
71
56
  // We dispatch actions and update the store synchronously before rendering
72
57
  // so that we won't trigger unnecessary re-renders with useEffect.
package/src/style.scss CHANGED
@@ -21,6 +21,7 @@
21
21
  @import "./components/layout/style.scss";
22
22
  @import "./components/save-panel/style.scss";
23
23
  @import "./components/sidebar/style.scss";
24
+ @import "./components/sidebar-button/style.scss";
24
25
  @import "./components/sidebar-navigation-item/style.scss";
25
26
  @import "./components/sidebar-navigation-screen/style.scss";
26
27
  @import "./components/sidebar-navigation-screen-templates/style.scss";
@@ -7,5 +7,5 @@
7
7
  * @return {boolean} Is list page or not.
8
8
  */
9
9
  export default function getIsListPage( { path } ) {
10
- return path === '/templates/all' || path === '/template-parts/all';
10
+ return path === '/wp_template/all' || path === '/wp_template_part/all';
11
11
  }