@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
@@ -15,7 +15,6 @@ import { SIDEBAR_BLOCK } from '../sidebar-edit-mode/constants';
15
15
  import { STORE_NAME } from '../../store/constants';
16
16
 
17
17
  function KeyboardShortcutsEditMode() {
18
- const { getEditorMode } = useSelect( editSiteStore );
19
18
  const isBlockInspectorOpen = useSelect(
20
19
  ( select ) =>
21
20
  select( interfaceStore ).getActiveComplementaryArea(
@@ -23,8 +22,6 @@ function KeyboardShortcutsEditMode() {
23
22
  ) === SIDEBAR_BLOCK,
24
23
  []
25
24
  );
26
- const { switchEditorMode, toggleDistractionFree } =
27
- useDispatch( editSiteStore );
28
25
  const { enableComplementaryArea, disableComplementaryArea } =
29
26
  useDispatch( interfaceStore );
30
27
  const { replaceBlocks } = useDispatch( blockEditorStore );
@@ -71,10 +68,6 @@ function KeyboardShortcutsEditMode() {
71
68
  }
72
69
  } );
73
70
 
74
- useShortcut( 'core/edit-site/toggle-mode', () => {
75
- switchEditorMode( getEditorMode() === 'visual' ? 'text' : 'visual' );
76
- } );
77
-
78
71
  useShortcut( 'core/edit-site/transform-heading-to-paragraph', ( event ) =>
79
72
  handleTextLevelShortcut( event, 0 )
80
73
  );
@@ -89,10 +82,6 @@ function KeyboardShortcutsEditMode() {
89
82
  );
90
83
  } );
91
84
 
92
- useShortcut( 'core/edit-site/toggle-distraction-free', () => {
93
- toggleDistractionFree();
94
- } );
95
-
96
85
  return null;
97
86
  }
98
87
 
@@ -75,15 +75,6 @@ function KeyboardShortcutsRegister() {
75
75
  },
76
76
  ],
77
77
  } );
78
- registerShortcut( {
79
- name: 'core/edit-site/toggle-mode',
80
- category: 'global',
81
- description: __( 'Switch between visual editor and code editor.' ),
82
- keyCombination: {
83
- modifier: 'secondary',
84
- character: 'm',
85
- },
86
- } );
87
78
 
88
79
  registerShortcut( {
89
80
  name: 'core/edit-site/transform-heading-to-paragraph',
@@ -106,16 +97,6 @@ function KeyboardShortcutsRegister() {
106
97
  },
107
98
  } );
108
99
  } );
109
-
110
- registerShortcut( {
111
- name: 'core/edit-site/toggle-distraction-free',
112
- category: 'global',
113
- description: __( 'Toggle distraction free mode.' ),
114
- keyCombination: {
115
- modifier: 'primaryShift',
116
- character: '\\',
117
- },
118
- } );
119
100
  }, [ registerShortcut ] );
120
101
 
121
102
  return null;
@@ -28,7 +28,6 @@ import {
28
28
  import { store as preferencesStore } from '@wordpress/preferences';
29
29
  import {
30
30
  privateApis as blockEditorPrivateApis,
31
- useBlockCommands,
32
31
  store as blockEditorStore,
33
32
  } from '@wordpress/block-editor';
34
33
  import { privateApis as coreCommandsPrivateApis } from '@wordpress/core-commands';
@@ -66,7 +65,6 @@ export default function Layout() {
66
65
  useCommands();
67
66
  useEditModeCommands();
68
67
  useCommonCommands();
69
- useBlockCommands();
70
68
 
71
69
  const isMobileViewport = useViewportMatch( 'medium', '<' );
72
70
 
@@ -2,6 +2,7 @@
2
2
  * External dependencies
3
3
  */
4
4
  import { paramCase as kebabCase } from 'change-case';
5
+ import { downloadZip } from 'client-zip';
5
6
 
6
7
  /**
7
8
  * WordPress dependencies
@@ -41,21 +42,51 @@ const { useHistory } = unlock( routerPrivateApis );
41
42
  const { CreatePatternModalContents, useDuplicatePatternProps } =
42
43
  unlock( patternsPrivateApis );
43
44
 
44
- export const exportJSONaction = {
45
- id: 'export-pattern',
46
- label: __( 'Export as JSON' ),
47
- isEligible: ( item ) => item.type === PATTERN_TYPES.user,
48
- callback: ( [ item ] ) => {
49
- const json = {
45
+ function getJsonFromItem( item ) {
46
+ return JSON.stringify(
47
+ {
50
48
  __file: item.type,
51
49
  title: item.title || item.name,
52
50
  content: item.patternPost.content.raw,
53
51
  syncStatus: item.patternPost.wp_pattern_sync_status,
54
- };
52
+ },
53
+ null,
54
+ 2
55
+ );
56
+ }
57
+
58
+ export const exportJSONaction = {
59
+ id: 'export-pattern',
60
+ label: __( 'Export as JSON' ),
61
+ supportsBulk: true,
62
+ isEligible: ( item ) => item.type === PATTERN_TYPES.user,
63
+ callback: async ( items ) => {
64
+ if ( items.length === 1 ) {
65
+ return downloadBlob(
66
+ `${ kebabCase( items[ 0 ].title || items[ 0 ].name ) }.json`,
67
+ getJsonFromItem( items[ 0 ] ),
68
+ 'application/json'
69
+ );
70
+ }
71
+ const nameCount = {};
72
+ const filesToZip = items.map( ( item ) => {
73
+ const name = kebabCase( item.title || item.name );
74
+ nameCount[ name ] = ( nameCount[ name ] || 0 ) + 1;
75
+ return {
76
+ name: `${
77
+ name +
78
+ ( nameCount[ name ] > 1
79
+ ? '-' + ( nameCount[ name ] - 1 )
80
+ : '' )
81
+ }.json`,
82
+ lastModified: new Date(),
83
+ input: getJsonFromItem( item ),
84
+ };
85
+ } );
55
86
  return downloadBlob(
56
- `${ kebabCase( item.title || item.name ) }.json`,
57
- JSON.stringify( json, null, 2 ),
58
- 'application/json'
87
+ __( 'patterns-export' ) + '.zip',
88
+ await downloadZip( filesToZip ).blob(),
89
+ 'application/zip'
59
90
  );
60
91
  },
61
92
  };
@@ -69,6 +69,7 @@ export default function PatternsHeader( {
69
69
  __( 'Action menu for %s pattern category' ),
70
70
  title
71
71
  ),
72
+ size: 'compact',
72
73
  } }
73
74
  >
74
75
  { ( { onClose } ) => (
@@ -391,7 +391,6 @@ export default function DataviewsPatterns() {
391
391
  // Wrap everything in a block editor provider.
392
392
  // This ensures 'styles' that are needed for the previews are synced
393
393
  // from the site editor store to the block editor store.
394
- // TODO: check if I add the provider in every preview like in templates...
395
394
  return (
396
395
  <ExperimentalBlockEditorProvider settings={ settings }>
397
396
  <Page
@@ -1,70 +1,3 @@
1
- .edit-site-patterns {
2
- background: #1e1e1e;
3
- border-left: 1px solid $gray-800;
4
- margin: $header-height 0 0;
5
- border-radius: 0;
6
- padding: 0;
7
- overflow-x: auto;
8
- min-height: 100%;
9
-
10
- .components-base-control {
11
- width: 100%;
12
- @include break-medium {
13
- width: auto;
14
- }
15
- }
16
-
17
- .components-text {
18
- color: $gray-600;
19
- }
20
-
21
- .components-heading {
22
- color: $gray-200;
23
- }
24
-
25
- @include break-medium {
26
- margin: 0;
27
- }
28
-
29
- .edit-site-patterns__search-block {
30
- min-width: fit-content;
31
- flex-grow: 1;
32
- }
33
-
34
- // TODO: Consider using the Theme component to automatically adapt to a dark background.
35
- .edit-site-patterns__search {
36
- --wp-components-color-foreground: #{$gray-200};
37
-
38
- .components-input-control__container {
39
- background: $gray-800;
40
- }
41
-
42
- svg {
43
- fill: $gray-600;
44
- }
45
- }
46
-
47
- .edit-site-patterns__sync-status-filter {
48
- background: $gray-800;
49
- border: none;
50
- height: $button-size-next-default-40px;
51
- min-width: max-content;
52
- width: 100%;
53
- max-width: 100%;
54
-
55
- @include break-medium {
56
- width: 300px;
57
- }
58
- }
59
- .edit-site-patterns__sync-status-filter-option:not([aria-checked="true"]) {
60
- color: $gray-600;
61
- }
62
- .edit-site-patterns__sync-status-filter-option:active {
63
- background: $gray-700;
64
- color: $gray-100;
65
- }
66
- }
67
-
68
1
  .edit-site-patterns__header {
69
2
  position: sticky;
70
3
  top: 0;
@@ -77,97 +10,13 @@
77
10
  }
78
11
  }
79
12
 
80
- .edit-site-patterns__section {
81
- padding: $grid-unit-30 $grid-unit-40;
82
- flex: 1;
83
- }
84
-
85
13
  .edit-site-patterns__section-header {
86
14
  .screen-reader-shortcut:focus {
87
15
  top: 0;
88
16
  }
89
17
  }
90
18
 
91
- .edit-site-patterns__grid {
92
- display: grid;
93
- grid-template-columns: 1fr;
94
- gap: $grid-unit-40;
95
- margin-top: 0;
96
- margin-bottom: 0;
97
- @include break-large {
98
- grid-template-columns: 1fr 1fr;
99
- }
100
- @include break-huge {
101
- grid-template-columns: 1fr 1fr 1fr;
102
- }
103
- @include break-xhuge {
104
- grid-template-columns: 1fr 1fr 1fr 1fr;
105
- }
106
- .edit-site-patterns__pattern {
107
- break-inside: avoid-column;
108
- display: flex;
109
- flex-direction: column;
110
- .edit-site-patterns__preview {
111
- box-shadow: none;
112
- border: none;
113
- padding: 0;
114
- background-color: unset;
115
- box-sizing: border-box;
116
- border-radius: 4px;
117
- cursor: pointer;
118
- overflow: hidden;
119
-
120
- &:focus {
121
- box-shadow: inset 0 0 0 0 $white, 0 0 0 2px var(--wp-admin-theme-color);
122
- // Windows High Contrast mode will show this outline, but not the box-shadow.
123
- outline: 2px solid transparent;
124
- }
125
-
126
- &.is-inactive {
127
- cursor: default;
128
- }
129
- &.is-inactive:focus {
130
- box-shadow: 0 0 0 var(--wp-admin-border-width-focus) $gray-800;
131
- opacity: 0.8;
132
- }
133
- }
134
-
135
- .edit-site-patterns__footer,
136
- .edit-site-patterns__button {
137
- color: $gray-600;
138
- }
139
-
140
- .edit-site-patterns__dropdown {
141
- flex-shrink: 0;
142
- }
143
-
144
- &.is-placeholder .edit-site-patterns__preview {
145
- min-height: $grid-unit-80;
146
- color: $gray-600;
147
- border: 1px dashed $gray-800;
148
- display: flex;
149
- align-items: center;
150
- justify-content: center;
151
-
152
- &:focus {
153
- box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
154
- }
155
- }
156
- }
157
-
158
- .edit-site-patterns__preview {
159
- flex: 0 1 auto;
160
- margin-bottom: $grid-unit-15;
161
- }
162
- }
163
-
164
- .edit-site-patterns__load-more {
165
- align-self: center;
166
- }
167
-
168
19
  .edit-site-patterns__pattern-title {
169
- color: $gray-200;
170
-
171
20
  .is-link {
172
21
  text-decoration: none;
173
22
  color: $gray-200;
@@ -189,41 +38,10 @@
189
38
  }
190
39
  }
191
40
 
192
- .edit-site-patterns__no-results {
193
- color: $gray-600;
194
- }
195
-
196
41
  .edit-site-patterns__delete-modal {
197
42
  width: $modal-width-small;
198
43
  }
199
44
 
200
- .edit-site-patterns__pagination {
201
- padding: $grid-unit-30 $grid-unit-40;
202
- border-top: 1px solid $gray-800;
203
- background: $gray-900;
204
- position: sticky;
205
- bottom: 0;
206
- color: $gray-100;
207
- z-index: z-index(".edit-site-patterns__grid-pagination");
208
- .components-button.is-tertiary {
209
- background-color: $gray-800;
210
- color: $gray-100;
211
-
212
- &:disabled {
213
- color: $gray-600;
214
- background: none;
215
- }
216
-
217
- &:hover:not(:disabled) {
218
- background-color: $gray-700;
219
- }
220
- }
221
- }
222
-
223
- /**
224
- * DataViews patterns styles.
225
- * TODO: when this becomes stable, consolidate styles with the above.
226
- */
227
45
  .edit-site-page-patterns-dataviews {
228
46
  margin-top: 60px;
229
47
 
@@ -22,6 +22,7 @@ export default function SaveButton( {
22
22
  showTooltip = true,
23
23
  defaultLabel,
24
24
  icon,
25
+ size,
25
26
  __next40pxDefaultSize = false,
26
27
  } ) {
27
28
  const { isDirty, isSaving, isSaveViewOpen, previewingThemeName } =
@@ -119,7 +120,7 @@ export default function SaveButton( {
119
120
  showTooltip={ showTooltip }
120
121
  icon={ icon }
121
122
  __next40pxDefaultSize={ __next40pxDefaultSize }
122
- size="compact"
123
+ size={ size }
123
124
  >
124
125
  { label }
125
126
  </Button>
@@ -3,7 +3,7 @@
3
3
  border-top: 1px solid $gray-800;
4
4
  flex-shrink: 0;
5
5
  margin: 0;
6
- padding: $grid-unit-20 + $grid-unit-05 $canvas-padding;
6
+ padding: $grid-unit-20 $canvas-padding;
7
7
  }
8
8
 
9
9
  .edit-site-save-hub__button {
@@ -12,8 +12,8 @@ import {
12
12
  __experimentalNavigatorScreen as NavigatorScreen,
13
13
  } from '@wordpress/components';
14
14
  import { privateApis as routerPrivateApis } from '@wordpress/router';
15
- import { __ } from '@wordpress/i18n';
16
15
  import { useViewportMatch } from '@wordpress/compose';
16
+ import { __ } from '@wordpress/i18n';
17
17
 
18
18
  /**
19
19
  * Internal dependencies
@@ -76,6 +76,7 @@ function SidebarScreens() {
76
76
  <SidebarNavigationScreen
77
77
  title={ __( 'Pages' ) }
78
78
  content={ <DataViewsSidebarContent /> }
79
+ backPath="/page"
79
80
  />
80
81
  </SidebarScreenWrapper>
81
82
  <SidebarScreenWrapper path="/page/:postId">
@@ -10,7 +10,7 @@
10
10
  &:focus-visible:not(:disabled) {
11
11
  box-shadow:
12
12
  0 0 0 var(--wp-admin-border-width-focus)
13
- var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));
13
+ var(--wp-admin-theme-color);
14
14
  outline: 3px solid transparent;
15
15
  }
16
16
 
@@ -41,7 +41,7 @@ export default function GlobalStylesSidebar() {
41
41
  );
42
42
  const canvasContainerView = getEditorCanvasContainerView();
43
43
  const _isVisualEditorMode =
44
- 'visual' === select( editSiteStore ).getEditorMode();
44
+ 'visual' === select( editorStore ).getEditorMode();
45
45
  const _isEditCanvasMode = 'edit' === getCanvasMode();
46
46
  const _showListViewByDefault = select( preferencesStore ).get(
47
47
  'core',
@@ -132,13 +132,11 @@ export default function GlobalStylesSidebar() {
132
132
  closeLabel={ __( 'Close Styles' ) }
133
133
  panelClassName="edit-site-global-styles-sidebar__panel"
134
134
  header={
135
- <Flex
136
- className="edit-site-global-styles-sidebar__header"
137
- role="menubar"
138
- aria-label={ __( 'Styles actions' ) }
139
- >
135
+ <Flex className="edit-site-global-styles-sidebar__header">
140
136
  <FlexBlock style={ { minWidth: 'min-content' } }>
141
- <strong>{ __( 'Styles' ) }</strong>
137
+ <h2 className="edit-site-global-styles-sidebar__header-title">
138
+ { __( 'Styles' ) }
139
+ </h2>
142
140
  </FlexBlock>
143
141
  <FlexItem>
144
142
  <Button
@@ -34,6 +34,10 @@
34
34
  }
35
35
  }
36
36
 
37
+ .edit-site-global-styles-sidebar .edit-site-global-styles-sidebar__header-title {
38
+ margin: 0;
39
+ }
40
+
37
41
  .edit-site-global-styles-sidebar .interface-complementary-area-header .components-button.has-icon {
38
42
  margin-left: 0;
39
43
  }
@@ -36,7 +36,14 @@ function injectThemeAttributeInBlockTemplateContent(
36
36
  return block;
37
37
  }
38
38
 
39
- function preparePatterns( patterns, template, currentThemeStylesheet ) {
39
+ /**
40
+ * Filter all patterns and return only the ones that are compatible with the current template.
41
+ *
42
+ * @param {Array} patterns An array of patterns.
43
+ * @param {Object} template The current template.
44
+ * @return {Array} Array of patterns that are compatible with the current template.
45
+ */
46
+ function filterPatterns( patterns, template ) {
40
47
  // Filter out duplicates.
41
48
  const filterOutDuplicatesByName = ( currentItem, index, items ) =>
42
49
  index === items.findIndex( ( item ) => currentItem.name === item.name );
@@ -45,30 +52,35 @@ function preparePatterns( patterns, template, currentThemeStylesheet ) {
45
52
  const filterOutExcludedPatternSources = ( pattern ) =>
46
53
  ! EXCLUDED_PATTERN_SOURCES.includes( pattern.source );
47
54
 
48
- // Filter only the patterns that are compatible with the current template.
55
+ // Looks for patterns that have the same template type as the current template,
56
+ // or have a block type that matches the current template area.
49
57
  const filterCompatiblePatterns = ( pattern ) =>
50
- pattern.templateTypes?.includes( template.slug );
58
+ pattern.templateTypes?.includes( template.slug ) ||
59
+ pattern.blockTypes?.includes( 'core/template-part/' + template.area );
60
+
61
+ return patterns.filter( ( pattern, index, items ) => {
62
+ return (
63
+ filterOutDuplicatesByName( pattern, index, items ) &&
64
+ filterOutExcludedPatternSources( pattern ) &&
65
+ filterCompatiblePatterns( pattern )
66
+ );
67
+ } );
68
+ }
51
69
 
52
- return patterns
53
- .filter(
54
- ( pattern, index, items ) =>
55
- filterOutExcludedPatternSources( pattern ) &&
56
- filterOutDuplicatesByName( pattern, index, items ) &&
57
- filterCompatiblePatterns( pattern )
58
- )
59
- .map( ( pattern ) => ( {
60
- ...pattern,
61
- keywords: pattern.keywords || [],
62
- type: PATTERN_TYPES.theme,
63
- blocks: parse( pattern.content, {
64
- __unstableSkipMigrationLogs: true,
65
- } ).map( ( block ) =>
66
- injectThemeAttributeInBlockTemplateContent(
67
- block,
68
- currentThemeStylesheet
69
- )
70
- ),
71
- } ) );
70
+ function preparePatterns( patterns, template, currentThemeStylesheet ) {
71
+ return patterns.map( ( pattern ) => ( {
72
+ ...pattern,
73
+ keywords: pattern.keywords || [],
74
+ type: PATTERN_TYPES.theme,
75
+ blocks: parse( pattern.content, {
76
+ __unstableSkipMigrationLogs: true,
77
+ } ).map( ( block ) =>
78
+ injectThemeAttributeInBlockTemplateContent(
79
+ block,
80
+ currentThemeStylesheet
81
+ )
82
+ ),
83
+ } ) );
72
84
  }
73
85
 
74
86
  export function useAvailablePatterns( template ) {
@@ -92,8 +104,9 @@ export function useAvailablePatterns( template ) {
92
104
  ...( blockPatterns || [] ),
93
105
  ...( restBlockPatterns || [] ),
94
106
  ];
107
+ const filteredPatterns = filterPatterns( mergedPatterns, template );
95
108
  return preparePatterns(
96
- mergedPatterns,
109
+ filteredPatterns,
97
110
  template,
98
111
  currentThemeStylesheet
99
112
  );