@wordpress/editor 13.29.0 → 13.31.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 (183) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/bindings/index.js +5 -3
  3. package/build/bindings/index.js.map +1 -1
  4. package/build/bindings/post-meta.js +2 -1
  5. package/build/bindings/post-meta.js.map +1 -1
  6. package/build/components/block-removal-warnings/index.js +70 -0
  7. package/build/components/block-removal-warnings/index.js.map +1 -0
  8. package/build/components/commands/index.js +22 -14
  9. package/build/components/commands/index.js.map +1 -1
  10. package/build/components/document-bar/index.js +2 -2
  11. package/build/components/document-bar/index.js.map +1 -1
  12. package/build/components/document-outline/check.js +8 -7
  13. package/build/components/document-outline/check.js.map +1 -1
  14. package/build/components/document-outline/index.js +27 -28
  15. package/build/components/document-outline/index.js.map +1 -1
  16. package/build/components/document-tools/index.js +5 -3
  17. package/build/components/document-tools/index.js.map +1 -1
  18. package/build/components/editor-help/intro-to-blocks.native.js.map +1 -1
  19. package/build/components/entities-saved-states/entity-type-list.js.map +1 -1
  20. package/build/components/entities-saved-states/hooks/use-is-dirty.js +10 -16
  21. package/build/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
  22. package/build/components/entities-saved-states/index.js +17 -3
  23. package/build/components/entities-saved-states/index.js.map +1 -1
  24. package/build/components/error-boundary/index.native.js +133 -0
  25. package/build/components/error-boundary/index.native.js.map +1 -0
  26. package/build/components/index.js +9 -8
  27. package/build/components/index.js.map +1 -1
  28. package/build/components/index.native.js +9 -1
  29. package/build/components/index.native.js.map +1 -1
  30. package/build/components/list-view-sidebar/index.js +1 -1
  31. package/build/components/list-view-sidebar/index.js.map +1 -1
  32. package/build/components/plugin-document-setting-panel/index.js +123 -0
  33. package/build/components/plugin-document-setting-panel/index.js.map +1 -0
  34. package/build/components/post-featured-image/index.js +3 -8
  35. package/build/components/post-featured-image/index.js.map +1 -1
  36. package/build/components/post-featured-image/panel.js +7 -3
  37. package/build/components/post-featured-image/panel.js.map +1 -1
  38. package/build/components/post-locked-modal/index.js.map +1 -1
  39. package/build/components/post-preview-button/index.js +2 -1
  40. package/build/components/post-preview-button/index.js.map +1 -1
  41. package/build/components/post-publish-button/index.js +2 -1
  42. package/build/components/post-publish-button/index.js.map +1 -1
  43. package/build/components/post-publish-panel/index.js.map +1 -1
  44. package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  45. package/build/components/post-sync-status/index.js +0 -72
  46. package/build/components/post-sync-status/index.js.map +1 -1
  47. package/build/components/post-taxonomies/flat-term-selector.js +7 -3
  48. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  49. package/build/components/post-taxonomies/hierarchical-term-selector.js +3 -0
  50. package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  51. package/build/components/post-title/index.native.js.map +1 -1
  52. package/build/components/post-title/post-title-raw.js.map +1 -1
  53. package/build/components/post-view-link/index.js +2 -1
  54. package/build/components/post-view-link/index.js.map +1 -1
  55. package/build/components/provider/disable-non-page-content-blocks.js +23 -30
  56. package/build/components/provider/disable-non-page-content-blocks.js.map +1 -1
  57. package/build/components/provider/index.js +3 -2
  58. package/build/components/provider/index.js.map +1 -1
  59. package/build/components/provider/use-hide-blocks-from-inserter.js +4 -3
  60. package/build/components/provider/use-hide-blocks-from-inserter.js.map +1 -1
  61. package/build/hooks/index.js +1 -1
  62. package/build/hooks/index.js.map +1 -1
  63. package/build/hooks/{pattern-partial-syncing.js → pattern-overrides.js} +13 -9
  64. package/build/hooks/pattern-overrides.js.map +1 -0
  65. package/build/private-apis.js +0 -2
  66. package/build/private-apis.js.map +1 -1
  67. package/build-module/bindings/index.js +5 -3
  68. package/build-module/bindings/index.js.map +1 -1
  69. package/build-module/bindings/post-meta.js +2 -1
  70. package/build-module/bindings/post-meta.js.map +1 -1
  71. package/build-module/components/block-removal-warnings/index.js +64 -0
  72. package/build-module/components/block-removal-warnings/index.js.map +1 -0
  73. package/build-module/components/commands/index.js +22 -14
  74. package/build-module/components/commands/index.js.map +1 -1
  75. package/build-module/components/document-bar/index.js +2 -2
  76. package/build-module/components/document-bar/index.js.map +1 -1
  77. package/build-module/components/document-outline/check.js +9 -8
  78. package/build-module/components/document-outline/check.js.map +1 -1
  79. package/build-module/components/document-outline/index.js +27 -27
  80. package/build-module/components/document-outline/index.js.map +1 -1
  81. package/build-module/components/document-tools/index.js +5 -3
  82. package/build-module/components/document-tools/index.js.map +1 -1
  83. package/build-module/components/editor-help/intro-to-blocks.native.js.map +1 -1
  84. package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
  85. package/build-module/components/entities-saved-states/hooks/use-is-dirty.js +10 -16
  86. package/build-module/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
  87. package/build-module/components/entities-saved-states/index.js +18 -4
  88. package/build-module/components/entities-saved-states/index.js.map +1 -1
  89. package/build-module/components/error-boundary/index.native.js +125 -0
  90. package/build-module/components/error-boundary/index.native.js.map +1 -0
  91. package/build-module/components/index.js +2 -1
  92. package/build-module/components/index.js.map +1 -1
  93. package/build-module/components/index.native.js +1 -0
  94. package/build-module/components/index.native.js.map +1 -1
  95. package/build-module/components/list-view-sidebar/index.js +1 -1
  96. package/build-module/components/list-view-sidebar/index.js.map +1 -1
  97. package/build-module/components/plugin-document-setting-panel/index.js +115 -0
  98. package/build-module/components/plugin-document-setting-panel/index.js.map +1 -0
  99. package/build-module/components/post-featured-image/index.js +4 -9
  100. package/build-module/components/post-featured-image/index.js.map +1 -1
  101. package/build-module/components/post-featured-image/panel.js +6 -2
  102. package/build-module/components/post-featured-image/panel.js.map +1 -1
  103. package/build-module/components/post-locked-modal/index.js.map +1 -1
  104. package/build-module/components/post-preview-button/index.js +2 -1
  105. package/build-module/components/post-preview-button/index.js.map +1 -1
  106. package/build-module/components/post-publish-button/index.js +2 -1
  107. package/build-module/components/post-publish-button/index.js.map +1 -1
  108. package/build-module/components/post-publish-panel/index.js.map +1 -1
  109. package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  110. package/build-module/components/post-sync-status/index.js +2 -73
  111. package/build-module/components/post-sync-status/index.js.map +1 -1
  112. package/build-module/components/post-taxonomies/flat-term-selector.js +7 -3
  113. package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
  114. package/build-module/components/post-taxonomies/hierarchical-term-selector.js +3 -0
  115. package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  116. package/build-module/components/post-title/index.native.js.map +1 -1
  117. package/build-module/components/post-title/post-title-raw.js.map +1 -1
  118. package/build-module/components/post-view-link/index.js +2 -1
  119. package/build-module/components/post-view-link/index.js.map +1 -1
  120. package/build-module/components/provider/disable-non-page-content-blocks.js +24 -31
  121. package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -1
  122. package/build-module/components/provider/index.js +3 -2
  123. package/build-module/components/provider/index.js.map +1 -1
  124. package/build-module/components/provider/use-hide-blocks-from-inserter.js +4 -3
  125. package/build-module/components/provider/use-hide-blocks-from-inserter.js.map +1 -1
  126. package/build-module/hooks/index.js +1 -1
  127. package/build-module/hooks/index.js.map +1 -1
  128. package/build-module/hooks/{pattern-partial-syncing.js → pattern-overrides.js} +13 -9
  129. package/build-module/hooks/pattern-overrides.js.map +1 -0
  130. package/build-module/private-apis.js +0 -2
  131. package/build-module/private-apis.js.map +1 -1
  132. package/build-style/style-rtl.css +9 -8
  133. package/build-style/style.css +9 -8
  134. package/package.json +34 -32
  135. package/src/bindings/index.js +6 -3
  136. package/src/bindings/post-meta.js +4 -1
  137. package/src/components/block-removal-warnings/index.js +92 -0
  138. package/src/components/commands/index.js +21 -13
  139. package/src/components/document-bar/index.js +3 -2
  140. package/src/components/document-outline/check.js +8 -10
  141. package/src/components/document-outline/index.js +20 -24
  142. package/src/components/document-outline/test/index.js +26 -7
  143. package/src/components/document-tools/index.js +3 -3
  144. package/src/components/editor-help/intro-to-blocks.native.js +1 -1
  145. package/src/components/entities-saved-states/entity-type-list.js +1 -1
  146. package/src/components/entities-saved-states/hooks/use-is-dirty.js +18 -22
  147. package/src/components/entities-saved-states/index.js +33 -8
  148. package/src/components/entities-saved-states/test/use-is-dirty.js +3 -0
  149. package/src/components/error-boundary/index.native.js +192 -0
  150. package/src/components/error-boundary/style.native.scss +116 -0
  151. package/src/components/index.js +2 -4
  152. package/src/components/index.native.js +1 -0
  153. package/src/components/list-view-sidebar/index.js +1 -1
  154. package/src/components/plugin-document-setting-panel/index.js +121 -0
  155. package/src/components/post-featured-image/index.js +6 -15
  156. package/src/components/post-featured-image/panel.js +9 -3
  157. package/src/components/post-featured-image/style.scss +8 -13
  158. package/src/components/post-locked-modal/index.js +1 -1
  159. package/src/components/post-preview-button/index.js +1 -0
  160. package/src/components/post-publish-button/index.js +1 -0
  161. package/src/components/post-publish-panel/index.js +1 -1
  162. package/src/components/post-publish-panel/maybe-upload-media.js +1 -1
  163. package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +3 -3
  164. package/src/components/post-sync-status/index.js +1 -94
  165. package/src/components/post-taxonomies/flat-term-selector.js +13 -8
  166. package/src/components/post-taxonomies/hierarchical-term-selector.js +3 -0
  167. package/src/components/post-title/index.native.js +2 -2
  168. package/src/components/post-title/post-title-raw.js +1 -1
  169. package/src/components/post-view-link/index.js +1 -0
  170. package/src/components/provider/disable-non-page-content-blocks.js +34 -36
  171. package/src/components/provider/index.js +3 -1
  172. package/src/components/provider/test/disable-non-page-content-blocks.js +90 -0
  173. package/src/components/provider/use-hide-blocks-from-inserter.js +5 -3
  174. package/src/hooks/index.js +1 -1
  175. package/src/hooks/{pattern-partial-syncing.js → pattern-overrides.js} +16 -10
  176. package/src/private-apis.js +0 -2
  177. package/build/components/provider/constants.js +0 -8
  178. package/build/components/provider/constants.js.map +0 -1
  179. package/build/hooks/pattern-partial-syncing.js.map +0 -1
  180. package/build-module/components/provider/constants.js +0 -2
  181. package/build-module/components/provider/constants.js.map +0 -1
  182. package/build-module/hooks/pattern-partial-syncing.js.map +0 -1
  183. package/src/components/provider/constants.js +0 -5
@@ -70,7 +70,7 @@ function PostTitleRaw( _, forwardedRef ) {
70
70
  label={ placeholder }
71
71
  className={ className }
72
72
  placeholder={ decodedPlaceholder }
73
- hideLabelFromVision={ true }
73
+ hideLabelFromVision
74
74
  autoComplete="off"
75
75
  dir="auto"
76
76
  rows={ 1 }
@@ -42,6 +42,7 @@ export default function PostViewLink() {
42
42
  href={ permalink }
43
43
  target="_blank"
44
44
  showTooltip={ ! showIconLabels }
45
+ size="compact"
45
46
  />
46
47
  );
47
48
  }
@@ -2,39 +2,46 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { useSelect, useDispatch } from '@wordpress/data';
5
- import {
6
- useBlockEditingMode,
7
- store as blockEditorStore,
8
- } from '@wordpress/block-editor';
5
+ import { store as blockEditorStore } from '@wordpress/block-editor';
9
6
  import { useEffect } from '@wordpress/element';
10
7
 
11
- /**
12
- * Internal dependencies
13
- */
14
- import { PAGE_CONTENT_BLOCK_TYPES } from './constants';
8
+ const PAGE_CONTENT_BLOCKS = [
9
+ 'core/post-title',
10
+ 'core/post-featured-image',
11
+ 'core/post-content',
12
+ ];
13
+
14
+ function useDisableNonPageContentBlocks() {
15
+ const contentIds = useSelect( ( select ) => {
16
+ const { getBlocksByName, getBlockParents, getBlockName } =
17
+ select( blockEditorStore );
18
+ return getBlocksByName( PAGE_CONTENT_BLOCKS ).filter( ( clientId ) =>
19
+ getBlockParents( clientId ).every( ( parentClientId ) => {
20
+ const parentBlockName = getBlockName( parentClientId );
21
+ return (
22
+ parentBlockName !== 'core/query' &&
23
+ ! PAGE_CONTENT_BLOCKS.includes( parentBlockName )
24
+ );
25
+ } )
26
+ );
27
+ }, [] );
15
28
 
16
- function DisableBlock( { clientId } ) {
17
- const isDescendentOfQueryLoop = useSelect(
18
- ( select ) => {
19
- const { getBlockParentsByBlockName } = select( blockEditorStore );
20
- return (
21
- getBlockParentsByBlockName( clientId, 'core/query' ).length !==
22
- 0
23
- );
24
- },
25
- [ clientId ]
26
- );
27
- const mode = isDescendentOfQueryLoop ? undefined : 'contentOnly';
28
29
  const { setBlockEditingMode, unsetBlockEditingMode } =
29
30
  useDispatch( blockEditorStore );
31
+
30
32
  useEffect( () => {
31
- if ( mode ) {
32
- setBlockEditingMode( clientId, mode );
33
- return () => {
34
- unsetBlockEditingMode( clientId );
35
- };
33
+ setBlockEditingMode( '', 'disabled' ); // Disable editing at the root level.
34
+
35
+ for ( const contentId of contentIds ) {
36
+ setBlockEditingMode( contentId, 'contentOnly' ); // Re-enable each content block.
36
37
  }
37
- }, [ clientId, mode, setBlockEditingMode, unsetBlockEditingMode ] );
38
+ return () => {
39
+ unsetBlockEditingMode( '' );
40
+ for ( const contentId of contentIds ) {
41
+ unsetBlockEditingMode( contentId );
42
+ }
43
+ };
44
+ }, [ contentIds, setBlockEditingMode, unsetBlockEditingMode ] );
38
45
  }
39
46
 
40
47
  /**
@@ -42,14 +49,5 @@ function DisableBlock( { clientId } ) {
42
49
  * page content to be edited.
43
50
  */
44
51
  export default function DisableNonPageContentBlocks() {
45
- useBlockEditingMode( 'disabled' );
46
- const clientIds = useSelect( ( select ) => {
47
- return select( blockEditorStore ).getBlocksByName(
48
- PAGE_CONTENT_BLOCK_TYPES
49
- );
50
- }, [] );
51
-
52
- return clientIds.map( ( clientId ) => {
53
- return <DisableBlock key={ clientId } clientId={ clientId } />;
54
- } );
52
+ useDisableNonPageContentBlocks();
55
53
  }
@@ -25,6 +25,7 @@ import DisableNonPageContentBlocks from './disable-non-page-content-blocks';
25
25
  import NavigationBlockEditingMode from './navigation-block-editing-mode';
26
26
  import { useHideBlocksFromInserter } from './use-hide-blocks-from-inserter';
27
27
  import useCommands from '../commands';
28
+ import BlockRemovalWarnings from '../block-removal-warnings';
28
29
 
29
30
  const { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );
30
31
  const { PatternsMenuItems } = unlock( editPatternsPrivateApis );
@@ -231,7 +232,7 @@ export const ExperimentalEditorProvider = withRegistryProvider(
231
232
  setRenderingMode( settings.defaultRenderingMode ?? 'post-only' );
232
233
  }, [ settings.defaultRenderingMode, setRenderingMode ] );
233
234
 
234
- useHideBlocksFromInserter( post.type );
235
+ useHideBlocksFromInserter( post.type, mode );
235
236
 
236
237
  // Register the editor commands.
237
238
  useCommands();
@@ -264,6 +265,7 @@ export const ExperimentalEditorProvider = withRegistryProvider(
264
265
  { type === 'wp_navigation' && (
265
266
  <NavigationBlockEditingMode />
266
267
  ) }
268
+ <BlockRemovalWarnings />
267
269
  </BlockEditorProviderComponent>
268
270
  </BlockContextProvider>
269
271
  </EntityProvider>
@@ -0,0 +1,90 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import { render } from '@testing-library/react';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { createRegistry, RegistryProvider } from '@wordpress/data';
10
+
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+ import DisableNonPageContentBlocks from '../disable-non-page-content-blocks';
15
+
16
+ describe( 'DisableNonPageContentBlocks', () => {
17
+ it( 'disables page content blocks', () => {
18
+ const testBlocks = {
19
+ 0: 'core/template-part',
20
+ /**/ '00': 'core/site-title',
21
+ /**/ '01': 'core/navigation',
22
+ 1: 'core/group',
23
+ /**/ 10: 'core/post-title',
24
+ /**/ 11: 'core/post-featured-image',
25
+ /**/ 12: 'core/post-content',
26
+ /**/ /**/ 120: 'core/paragraph',
27
+ /**/ /**/ 121: 'core/post-featured-image',
28
+ 2: 'core/query',
29
+ /**/ 20: 'core/post-title',
30
+ /**/ 21: 'core/post-featured-image',
31
+ /**/ 22: 'core/post-content',
32
+ 3: 'core/template-part',
33
+ /**/ 30: 'core/paragraph',
34
+ };
35
+
36
+ const setBlockEditingMode = jest.fn( () => ( {
37
+ type: 'SET_BLOCK_EDITING_MODE',
38
+ } ) );
39
+ const unsetBlockEditingMode = jest.fn( () => ( {
40
+ type: 'UNSET_BLOCK_EDITING_MODE',
41
+ } ) );
42
+
43
+ const registry = createRegistry( {
44
+ 'core/block-editor': {
45
+ reducer: () => {},
46
+ selectors: {
47
+ getBlocksByName( state, blockNames ) {
48
+ return Object.keys( testBlocks ).filter( ( clientId ) =>
49
+ blockNames.includes( testBlocks[ clientId ] )
50
+ );
51
+ },
52
+ getBlockParents( state, clientId ) {
53
+ return clientId.slice( 0, -1 ).split( '' );
54
+ },
55
+ getBlockName( state, clientId ) {
56
+ return testBlocks[ clientId ];
57
+ },
58
+ },
59
+ actions: {
60
+ setBlockEditingMode,
61
+ unsetBlockEditingMode,
62
+ },
63
+ },
64
+ } );
65
+
66
+ const { unmount } = render(
67
+ <RegistryProvider value={ registry }>
68
+ <DisableNonPageContentBlocks />
69
+ </RegistryProvider>
70
+ );
71
+
72
+ expect( setBlockEditingMode.mock.calls ).toEqual( [
73
+ [ '', 'disabled' ], // root
74
+ [ '10', 'contentOnly' ], // post-title
75
+ [ '11', 'contentOnly' ], // post-featured-image
76
+ [ '12', 'contentOnly' ], // post-content
77
+ // NOT the post-featured-image nested within post-content
78
+ // NOT any of the content blocks within query
79
+ ] );
80
+
81
+ unmount();
82
+
83
+ expect( unsetBlockEditingMode.mock.calls ).toEqual( [
84
+ [ '' ], // root
85
+ [ '10' ], // post-title
86
+ [ '11' ], // post-featured-image
87
+ [ '12' ], // post-content
88
+ ] );
89
+ } );
90
+ } );
@@ -18,8 +18,9 @@ const POST_TYPES_ALLOWING_POST_CONTENT_TEMPLATE_PART = [
18
18
  * the template part and post content blocks need to be hidden.
19
19
  *
20
20
  * @param {string} postType Post Type
21
+ * @param {string} mode Rendering mode
21
22
  */
22
- export function useHideBlocksFromInserter( postType ) {
23
+ export function useHideBlocksFromInserter( postType, mode ) {
23
24
  useEffect( () => {
24
25
  /*
25
26
  * Prevent adding template part in the editor.
@@ -32,7 +33,8 @@ export function useHideBlocksFromInserter( postType ) {
32
33
  ! POST_TYPES_ALLOWING_POST_CONTENT_TEMPLATE_PART.includes(
33
34
  postType
34
35
  ) &&
35
- blockType.name === 'core/template-part'
36
+ blockType.name === 'core/template-part' &&
37
+ mode === 'post-only'
36
38
  ) {
37
39
  return false;
38
40
  }
@@ -77,5 +79,5 @@ export function useHideBlocksFromInserter( postType ) {
77
79
  'removePostContentFromInserter'
78
80
  );
79
81
  };
80
- }, [ postType ] );
82
+ }, [ postType, mode ] );
81
83
  }
@@ -3,4 +3,4 @@
3
3
  */
4
4
  import './custom-sources-backwards-compatibility';
5
5
  import './default-autocompleters';
6
- import './pattern-partial-syncing';
6
+ import './pattern-overrides';
@@ -14,7 +14,7 @@ import { store as editorStore } from '../store';
14
14
  import { unlock } from '../lock-unlock';
15
15
 
16
16
  const {
17
- PartialSyncingControls,
17
+ useSetPatternBindings,
18
18
  ResetOverridesControl,
19
19
  PATTERN_TYPES,
20
20
  PARTIAL_SYNCING_SUPPORTED_BLOCKS,
@@ -29,7 +29,7 @@ const {
29
29
  *
30
30
  * @return {Component} Wrapped component.
31
31
  */
32
- const withPartialSyncingControls = createHigherOrderComponent(
32
+ const withPatternOverrideControls = createHigherOrderComponent(
33
33
  ( BlockEdit ) => ( props ) => {
34
34
  const isSupportedBlock = Object.keys(
35
35
  PARTIAL_SYNCING_SUPPORTED_BLOCKS
@@ -38,6 +38,7 @@ const withPartialSyncingControls = createHigherOrderComponent(
38
38
  return (
39
39
  <>
40
40
  <BlockEdit { ...props } />
41
+ { isSupportedBlock && <BindingUpdater { ...props } /> }
41
42
  { props.isSelected && isSupportedBlock && (
42
43
  <ControlsWithStoreSubscription { ...props } />
43
44
  ) }
@@ -46,6 +47,15 @@ const withPartialSyncingControls = createHigherOrderComponent(
46
47
  }
47
48
  );
48
49
 
50
+ function BindingUpdater( props ) {
51
+ const postType = useSelect(
52
+ ( select ) => select( editorStore ).getCurrentPostType(),
53
+ []
54
+ );
55
+ useSetPatternBindings( props, postType );
56
+ return null;
57
+ }
58
+
49
59
  // Split into a separate component to avoid a store subscription
50
60
  // on every block.
51
61
  function ControlsWithStoreSubscription( props ) {
@@ -55,6 +65,7 @@ function ControlsWithStoreSubscription( props ) {
55
65
  select( editorStore ).getCurrentPostType() === PATTERN_TYPES.user,
56
66
  []
57
67
  );
68
+
58
69
  const bindings = props.attributes.metadata?.bindings;
59
70
  const hasPatternBindings =
60
71
  !! bindings &&
@@ -62,19 +73,14 @@ function ControlsWithStoreSubscription( props ) {
62
73
  ( binding ) => binding.source === 'core/pattern-overrides'
63
74
  );
64
75
 
65
- const shouldShowPartialSyncingControls =
66
- isEditingPattern && blockEditingMode === 'default';
67
76
  const shouldShowResetOverridesControl =
68
77
  ! isEditingPattern &&
69
- !! props.attributes.metadata?.id &&
78
+ !! props.attributes.metadata?.name &&
70
79
  blockEditingMode !== 'disabled' &&
71
80
  hasPatternBindings;
72
81
 
73
82
  return (
74
83
  <>
75
- { shouldShowPartialSyncingControls && (
76
- <PartialSyncingControls { ...props } />
77
- ) }
78
84
  { shouldShowResetOverridesControl && (
79
85
  <ResetOverridesControl { ...props } />
80
86
  ) }
@@ -84,6 +90,6 @@ function ControlsWithStoreSubscription( props ) {
84
90
 
85
91
  addFilter(
86
92
  'editor.BlockEdit',
87
- 'core/editor/with-partial-syncing-controls',
88
- withPartialSyncingControls
93
+ 'core/editor/with-pattern-override-controls',
94
+ withPatternOverrideControls
89
95
  );
@@ -4,7 +4,6 @@
4
4
  import EditorCanvas from './components/editor-canvas';
5
5
  import { ExperimentalEditorProvider } from './components/provider';
6
6
  import { lock } from './lock-unlock';
7
- import EnablePluginDocumentSettingPanelOption from './components/preferences-modal/enable-plugin-document-setting-panel';
8
7
  import { EntitiesSavedStatesExtensible } from './components/entities-saved-states';
9
8
  import useBlockEditorSettings from './components/provider/use-block-editor-settings';
10
9
  import DocumentTools from './components/document-tools';
@@ -22,7 +21,6 @@ lock( privateApis, {
22
21
  DocumentTools,
23
22
  EditorCanvas,
24
23
  ExperimentalEditorProvider,
25
- EnablePluginDocumentSettingPanelOption,
26
24
  EntitiesSavedStatesExtensible,
27
25
  InserterSidebar,
28
26
  ListViewSidebar,
@@ -1,8 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.PAGE_CONTENT_BLOCK_TYPES = void 0;
7
- const PAGE_CONTENT_BLOCK_TYPES = exports.PAGE_CONTENT_BLOCK_TYPES = ['core/post-title', 'core/post-featured-image', 'core/post-content'];
8
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["PAGE_CONTENT_BLOCK_TYPES","exports"],"sources":["@wordpress/editor/src/components/provider/constants.js"],"sourcesContent":["export const PAGE_CONTENT_BLOCK_TYPES = [\n\t'core/post-title',\n\t'core/post-featured-image',\n\t'core/post-content',\n];\n"],"mappings":";;;;;;AAAO,MAAMA,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,GAAG,CACvC,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,CACnB"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["_hooks","require","_patterns","_compose","_blockEditor","_data","_store","_lockUnlock","PartialSyncingControls","ResetOverridesControl","PATTERN_TYPES","PARTIAL_SYNCING_SUPPORTED_BLOCKS","unlock","patternsPrivateApis","withPartialSyncingControls","createHigherOrderComponent","BlockEdit","props","isSupportedBlock","Object","keys","includes","name","_react","createElement","Fragment","isSelected","ControlsWithStoreSubscription","blockEditingMode","useBlockEditingMode","isEditingPattern","useSelect","select","editorStore","getCurrentPostType","user","bindings","attributes","metadata","hasPatternBindings","values","some","binding","source","shouldShowPartialSyncingControls","shouldShowResetOverridesControl","id","addFilter"],"sources":["@wordpress/editor/src/hooks/pattern-partial-syncing.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useBlockEditingMode } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../store';\nimport { unlock } from '../lock-unlock';\n\nconst {\n\tPartialSyncingControls,\n\tResetOverridesControl,\n\tPATTERN_TYPES,\n\tPARTIAL_SYNCING_SUPPORTED_BLOCKS,\n} = unlock( patternsPrivateApis );\n\n/**\n * Override the default edit UI to include a new block inspector control for\n * assigning a partial syncing controls to supported blocks in the pattern editor.\n * Currently, only the `core/paragraph` block is supported.\n *\n * @param {Component} BlockEdit Original component.\n *\n * @return {Component} Wrapped component.\n */\nconst withPartialSyncingControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst isSupportedBlock = Object.keys(\n\t\t\tPARTIAL_SYNCING_SUPPORTED_BLOCKS\n\t\t).includes( props.name );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit { ...props } />\n\t\t\t\t{ props.isSelected && isSupportedBlock && (\n\t\t\t\t\t<ControlsWithStoreSubscription { ...props } />\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}\n);\n\n// Split into a separate component to avoid a store subscription\n// on every block.\nfunction ControlsWithStoreSubscription( props ) {\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst isEditingPattern = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).getCurrentPostType() === PATTERN_TYPES.user,\n\t\t[]\n\t);\n\tconst bindings = props.attributes.metadata?.bindings;\n\tconst hasPatternBindings =\n\t\t!! bindings &&\n\t\tObject.values( bindings ).some(\n\t\t\t( binding ) => binding.source === 'core/pattern-overrides'\n\t\t);\n\n\tconst shouldShowPartialSyncingControls =\n\t\tisEditingPattern && blockEditingMode === 'default';\n\tconst shouldShowResetOverridesControl =\n\t\t! isEditingPattern &&\n\t\t!! props.attributes.metadata?.id &&\n\t\tblockEditingMode !== 'disabled' &&\n\t\thasPatternBindings;\n\n\treturn (\n\t\t<>\n\t\t\t{ shouldShowPartialSyncingControls && (\n\t\t\t\t<PartialSyncingControls { ...props } />\n\t\t\t) }\n\t\t\t{ shouldShowResetOverridesControl && (\n\t\t\t\t<ResetOverridesControl { ...props } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/with-partial-syncing-controls',\n\twithPartialSyncingControls\n);\n"],"mappings":";;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAKA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAbA;AACA;AACA;;AAOA;AACA;AACA;;AAIA,MAAM;EACLO,sBAAsB;EACtBC,qBAAqB;EACrBC,aAAa;EACbC;AACD,CAAC,GAAG,IAAAC,kBAAM,EAAEC,qBAAoB,CAAC;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,0BAA0B,GAAG,IAAAC,mCAA0B,EAC1DC,SAAS,IAAQC,KAAK,IAAM;EAC7B,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CACnCT,gCACD,CAAC,CAACU,QAAQ,CAAEJ,KAAK,CAACK,IAAK,CAAC;EAExB,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACR,SAAS;IAAA,GAAMC;EAAK,CAAI,CAAC,EACxBA,KAAK,CAACS,UAAU,IAAIR,gBAAgB,IACrC,IAAAK,MAAA,CAAAC,aAAA,EAACG,6BAA6B;IAAA,GAAMV;EAAK,CAAI,CAE7C,CAAC;AAEL,CACD,CAAC;;AAED;AACA;AACA,SAASU,6BAA6BA,CAAEV,KAAK,EAAG;EAC/C,MAAMW,gBAAgB,GAAG,IAAAC,gCAAmB,EAAC,CAAC;EAC9C,MAAMC,gBAAgB,GAAG,IAAAC,eAAS,EAC/BC,MAAM,IACPA,MAAM,CAAEC,YAAY,CAAC,CAACC,kBAAkB,CAAC,CAAC,KAAKxB,aAAa,CAACyB,IAAI,EAClE,EACD,CAAC;EACD,MAAMC,QAAQ,GAAGnB,KAAK,CAACoB,UAAU,CAACC,QAAQ,EAAEF,QAAQ;EACpD,MAAMG,kBAAkB,GACvB,CAAC,CAAEH,QAAQ,IACXjB,MAAM,CAACqB,MAAM,CAAEJ,QAAS,CAAC,CAACK,IAAI,CAC3BC,OAAO,IAAMA,OAAO,CAACC,MAAM,KAAK,wBACnC,CAAC;EAEF,MAAMC,gCAAgC,GACrCd,gBAAgB,IAAIF,gBAAgB,KAAK,SAAS;EACnD,MAAMiB,+BAA+B,GACpC,CAAEf,gBAAgB,IAClB,CAAC,CAAEb,KAAK,CAACoB,UAAU,CAACC,QAAQ,EAAEQ,EAAE,IAChClB,gBAAgB,KAAK,UAAU,IAC/BW,kBAAkB;EAEnB,OACC,IAAAhB,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACGmB,gCAAgC,IACjC,IAAArB,MAAA,CAAAC,aAAA,EAAChB,sBAAsB;IAAA,GAAMS;EAAK,CAAI,CACtC,EACC4B,+BAA+B,IAChC,IAAAtB,MAAA,CAAAC,aAAA,EAACf,qBAAqB;IAAA,GAAMQ;EAAK,CAAI,CAErC,CAAC;AAEL;AAEA,IAAA8B,gBAAS,EACR,kBAAkB,EAClB,2CAA2C,EAC3CjC,0BACD,CAAC"}
@@ -1,2 +0,0 @@
1
- export const PAGE_CONTENT_BLOCK_TYPES = ['core/post-title', 'core/post-featured-image', 'core/post-content'];
2
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["PAGE_CONTENT_BLOCK_TYPES"],"sources":["@wordpress/editor/src/components/provider/constants.js"],"sourcesContent":["export const PAGE_CONTENT_BLOCK_TYPES = [\n\t'core/post-title',\n\t'core/post-featured-image',\n\t'core/post-content',\n];\n"],"mappings":"AAAA,OAAO,MAAMA,wBAAwB,GAAG,CACvC,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,CACnB"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["addFilter","privateApis","patternsPrivateApis","createHigherOrderComponent","useBlockEditingMode","useSelect","store","editorStore","unlock","PartialSyncingControls","ResetOverridesControl","PATTERN_TYPES","PARTIAL_SYNCING_SUPPORTED_BLOCKS","withPartialSyncingControls","BlockEdit","props","isSupportedBlock","Object","keys","includes","name","createElement","Fragment","isSelected","ControlsWithStoreSubscription","blockEditingMode","isEditingPattern","select","getCurrentPostType","user","bindings","attributes","metadata","hasPatternBindings","values","some","binding","source","shouldShowPartialSyncingControls","shouldShowResetOverridesControl","id"],"sources":["@wordpress/editor/src/hooks/pattern-partial-syncing.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useBlockEditingMode } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../store';\nimport { unlock } from '../lock-unlock';\n\nconst {\n\tPartialSyncingControls,\n\tResetOverridesControl,\n\tPATTERN_TYPES,\n\tPARTIAL_SYNCING_SUPPORTED_BLOCKS,\n} = unlock( patternsPrivateApis );\n\n/**\n * Override the default edit UI to include a new block inspector control for\n * assigning a partial syncing controls to supported blocks in the pattern editor.\n * Currently, only the `core/paragraph` block is supported.\n *\n * @param {Component} BlockEdit Original component.\n *\n * @return {Component} Wrapped component.\n */\nconst withPartialSyncingControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst isSupportedBlock = Object.keys(\n\t\t\tPARTIAL_SYNCING_SUPPORTED_BLOCKS\n\t\t).includes( props.name );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit { ...props } />\n\t\t\t\t{ props.isSelected && isSupportedBlock && (\n\t\t\t\t\t<ControlsWithStoreSubscription { ...props } />\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}\n);\n\n// Split into a separate component to avoid a store subscription\n// on every block.\nfunction ControlsWithStoreSubscription( props ) {\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst isEditingPattern = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).getCurrentPostType() === PATTERN_TYPES.user,\n\t\t[]\n\t);\n\tconst bindings = props.attributes.metadata?.bindings;\n\tconst hasPatternBindings =\n\t\t!! bindings &&\n\t\tObject.values( bindings ).some(\n\t\t\t( binding ) => binding.source === 'core/pattern-overrides'\n\t\t);\n\n\tconst shouldShowPartialSyncingControls =\n\t\tisEditingPattern && blockEditingMode === 'default';\n\tconst shouldShowResetOverridesControl =\n\t\t! isEditingPattern &&\n\t\t!! props.attributes.metadata?.id &&\n\t\tblockEditingMode !== 'disabled' &&\n\t\thasPatternBindings;\n\n\treturn (\n\t\t<>\n\t\t\t{ shouldShowPartialSyncingControls && (\n\t\t\t\t<PartialSyncingControls { ...props } />\n\t\t\t) }\n\t\t\t{ shouldShowResetOverridesControl && (\n\t\t\t\t<ResetOverridesControl { ...props } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/with-partial-syncing-controls',\n\twithPartialSyncingControls\n);\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,WAAW,IAAIC,mBAAmB,QAAQ,qBAAqB;AACxE,SAASC,0BAA0B,QAAQ,oBAAoB;AAC/D,SAASC,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,WAAW,QAAQ,UAAU;AAC/C,SAASC,MAAM,QAAQ,gBAAgB;AAEvC,MAAM;EACLC,sBAAsB;EACtBC,qBAAqB;EACrBC,aAAa;EACbC;AACD,CAAC,GAAGJ,MAAM,CAAEN,mBAAoB,CAAC;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMW,0BAA0B,GAAGV,0BAA0B,CAC1DW,SAAS,IAAQC,KAAK,IAAM;EAC7B,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CACnCN,gCACD,CAAC,CAACO,QAAQ,CAAEJ,KAAK,CAACK,IAAK,CAAC;EAExB,OACCC,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACP,SAAS;IAAA,GAAMC;EAAK,CAAI,CAAC,EACxBA,KAAK,CAACQ,UAAU,IAAIP,gBAAgB,IACrCK,aAAA,CAACG,6BAA6B;IAAA,GAAMT;EAAK,CAAI,CAE7C,CAAC;AAEL,CACD,CAAC;;AAED;AACA;AACA,SAASS,6BAA6BA,CAAET,KAAK,EAAG;EAC/C,MAAMU,gBAAgB,GAAGrB,mBAAmB,CAAC,CAAC;EAC9C,MAAMsB,gBAAgB,GAAGrB,SAAS,CAC/BsB,MAAM,IACPA,MAAM,CAAEpB,WAAY,CAAC,CAACqB,kBAAkB,CAAC,CAAC,KAAKjB,aAAa,CAACkB,IAAI,EAClE,EACD,CAAC;EACD,MAAMC,QAAQ,GAAGf,KAAK,CAACgB,UAAU,CAACC,QAAQ,EAAEF,QAAQ;EACpD,MAAMG,kBAAkB,GACvB,CAAC,CAAEH,QAAQ,IACXb,MAAM,CAACiB,MAAM,CAAEJ,QAAS,CAAC,CAACK,IAAI,CAC3BC,OAAO,IAAMA,OAAO,CAACC,MAAM,KAAK,wBACnC,CAAC;EAEF,MAAMC,gCAAgC,GACrCZ,gBAAgB,IAAID,gBAAgB,KAAK,SAAS;EACnD,MAAMc,+BAA+B,GACpC,CAAEb,gBAAgB,IAClB,CAAC,CAAEX,KAAK,CAACgB,UAAU,CAACC,QAAQ,EAAEQ,EAAE,IAChCf,gBAAgB,KAAK,UAAU,IAC/BQ,kBAAkB;EAEnB,OACCZ,aAAA,CAAAC,QAAA,QACGgB,gCAAgC,IACjCjB,aAAA,CAACZ,sBAAsB;IAAA,GAAMM;EAAK,CAAI,CACtC,EACCwB,+BAA+B,IAChClB,aAAA,CAACX,qBAAqB;IAAA,GAAMK;EAAK,CAAI,CAErC,CAAC;AAEL;AAEAf,SAAS,CACR,kBAAkB,EAClB,2CAA2C,EAC3Ca,0BACD,CAAC"}
@@ -1,5 +0,0 @@
1
- export const PAGE_CONTENT_BLOCK_TYPES = [
2
- 'core/post-title',
3
- 'core/post-featured-image',
4
- 'core/post-content',
5
- ];