@wordpress/edit-site 5.28.1 → 5.28.3

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 (130) hide show
  1. package/build/components/add-new-pattern/index.js +18 -8
  2. package/build/components/add-new-pattern/index.js.map +1 -1
  3. package/build/components/editor/index.js +1 -1
  4. package/build/components/editor/index.js.map +1 -1
  5. package/build/components/global-styles/block-preview-panel.js +2 -2
  6. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  7. package/build/components/global-styles/font-library-modal/collection-font-details.js +1 -1
  8. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
  9. package/build/components/global-styles/font-library-modal/context.js +1 -1
  10. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  11. package/build/components/global-styles/font-library-modal/font-collection.js +84 -7
  12. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  13. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
  14. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  15. package/build/components/global-styles/font-library-modal/installed-fonts.js +10 -7
  16. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  17. package/build/components/global-styles/font-library-modal/utils/index.js +1 -1
  18. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  19. package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js +14 -1
  20. package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -1
  21. package/build/components/global-styles/font-library-modal/utils/preview-styles.js +64 -8
  22. package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  23. package/build/components/global-styles/screen-revisions/revisions-buttons.js +6 -4
  24. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  25. package/build/components/layout/index.js +8 -3
  26. package/build/components/layout/index.js.map +1 -1
  27. package/build/components/layout/router.js +26 -5
  28. package/build/components/layout/router.js.map +1 -1
  29. package/build/components/media/index.js +3 -3
  30. package/build/components/media/index.js.map +1 -1
  31. package/build/components/page-patterns/use-patterns.js +10 -5
  32. package/build/components/page-patterns/use-patterns.js.map +1 -1
  33. package/build/components/page-templates-template-parts/index.js +1 -0
  34. package/build/components/page-templates-template-parts/index.js.map +1 -1
  35. package/build/components/sidebar/index.js +10 -3
  36. package/build/components/sidebar/index.js.map +1 -1
  37. package/build/components/sidebar-dataviews/default-views.js +1 -1
  38. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  39. package/build/components/sidebar-navigation-screen-pages/index.js +3 -1
  40. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  41. package/build/hooks/commands/use-edit-mode-commands.js +8 -8
  42. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  43. package/build/store/private-actions.js +3 -1
  44. package/build/store/private-actions.js.map +1 -1
  45. package/build-module/components/add-new-pattern/index.js +18 -8
  46. package/build-module/components/add-new-pattern/index.js.map +1 -1
  47. package/build-module/components/editor/index.js +1 -1
  48. package/build-module/components/editor/index.js.map +1 -1
  49. package/build-module/components/global-styles/block-preview-panel.js +2 -2
  50. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  51. package/build-module/components/global-styles/font-library-modal/collection-font-details.js +1 -1
  52. package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
  53. package/build-module/components/global-styles/font-library-modal/context.js +1 -1
  54. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  55. package/build-module/components/global-styles/font-library-modal/font-collection.js +87 -10
  56. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  57. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
  58. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  59. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +11 -8
  60. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  61. package/build-module/components/global-styles/font-library-modal/utils/index.js +2 -2
  62. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  63. package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js +13 -1
  64. package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -1
  65. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +63 -8
  66. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  67. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +6 -4
  68. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  69. package/build-module/components/layout/index.js +8 -3
  70. package/build-module/components/layout/index.js.map +1 -1
  71. package/build-module/components/layout/router.js +26 -5
  72. package/build-module/components/layout/router.js.map +1 -1
  73. package/build-module/components/media/index.js +3 -3
  74. package/build-module/components/media/index.js.map +1 -1
  75. package/build-module/components/page-patterns/use-patterns.js +10 -5
  76. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  77. package/build-module/components/page-templates-template-parts/index.js +1 -0
  78. package/build-module/components/page-templates-template-parts/index.js.map +1 -1
  79. package/build-module/components/sidebar/index.js +10 -3
  80. package/build-module/components/sidebar/index.js.map +1 -1
  81. package/build-module/components/sidebar-dataviews/default-views.js +2 -2
  82. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  83. package/build-module/components/sidebar-navigation-screen-pages/index.js +3 -1
  84. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  85. package/build-module/hooks/commands/use-edit-mode-commands.js +8 -8
  86. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  87. package/build-module/store/private-actions.js +3 -1
  88. package/build-module/store/private-actions.js.map +1 -1
  89. package/build-style/style-rtl.css +33 -11
  90. package/build-style/style.css +33 -11
  91. package/package.json +42 -42
  92. package/src/components/add-new-pattern/index.js +27 -11
  93. package/src/components/editor/index.js +1 -0
  94. package/src/components/global-styles/block-preview-panel.js +2 -2
  95. package/src/components/global-styles/font-library-modal/collection-font-details.js +1 -1
  96. package/src/components/global-styles/font-library-modal/context.js +1 -1
  97. package/src/components/global-styles/font-library-modal/font-collection.js +118 -13
  98. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
  99. package/src/components/global-styles/font-library-modal/installed-fonts.js +25 -23
  100. package/src/components/global-styles/font-library-modal/style.scss +2 -5
  101. package/src/components/global-styles/font-library-modal/utils/index.js +2 -2
  102. package/src/components/global-styles/font-library-modal/utils/make-families-from-faces.js +13 -1
  103. package/src/components/global-styles/font-library-modal/utils/preview-styles.js +72 -15
  104. package/src/components/global-styles/font-library-modal/utils/test/preview-styles.spec.js +60 -5
  105. package/src/components/global-styles/screen-revisions/revisions-buttons.js +7 -5
  106. package/src/components/global-styles/screen-revisions/style.scss +11 -6
  107. package/src/components/layout/index.js +47 -30
  108. package/src/components/layout/router.js +31 -2
  109. package/src/components/layout/style.scss +7 -0
  110. package/src/components/media/index.js +7 -9
  111. package/src/components/page-patterns/style.scss +10 -0
  112. package/src/components/page-patterns/use-patterns.js +13 -5
  113. package/src/components/page-templates-template-parts/index.js +1 -0
  114. package/src/components/page-templates-template-parts/style.scss +6 -0
  115. package/src/components/sidebar/index.js +14 -5
  116. package/src/components/sidebar-dataviews/default-views.js +2 -2
  117. package/src/components/sidebar-edit-mode/page-panels/style.scss +0 -1
  118. package/src/components/sidebar-navigation-screen-pages/index.js +10 -6
  119. package/src/hooks/commands/use-edit-mode-commands.js +14 -14
  120. package/src/store/private-actions.js +4 -0
  121. package/build/components/global-styles/font-library-modal/fonts-grid.js +0 -57
  122. package/build/components/global-styles/font-library-modal/fonts-grid.js.map +0 -1
  123. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js +0 -92
  124. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js.map +0 -1
  125. package/build-module/components/global-styles/font-library-modal/fonts-grid.js +0 -50
  126. package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +0 -1
  127. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js +0 -84
  128. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js.map +0 -1
  129. package/src/components/global-styles/font-library-modal/fonts-grid.js +0 -59
  130. package/src/components/sidebar-navigation-screen-pages-dataviews/index.js +0 -103
@@ -25,19 +25,20 @@ function ChangesSummary( { revision, previousRevision } ) {
25
25
  const changes = getGlobalStylesChanges( revision, previousRevision, {
26
26
  maxResults: 7,
27
27
  } );
28
- const changesLength = changes.length;
29
28
 
30
- if ( ! changesLength ) {
29
+ if ( ! changes.length ) {
31
30
  return null;
32
31
  }
33
32
 
34
33
  return (
35
- <span
34
+ <ul
36
35
  data-testid="global-styles-revision-changes"
37
36
  className="edit-site-global-styles-screen-revisions__changes"
38
37
  >
39
- { changes.join( ', ' ) }.
40
- </span>
38
+ { changes.map( ( change ) => (
39
+ <li key={ change }>{ change }</li>
40
+ ) ) }
41
+ </ul>
41
42
  );
42
43
  }
43
44
 
@@ -219,6 +220,7 @@ function RevisionsButtons( {
219
220
  ) : (
220
221
  <Button
221
222
  disabled={ areStylesEqual }
223
+ size="compact"
222
224
  variant="primary"
223
225
  className="edit-site-global-styles-screen-revisions__apply-button"
224
226
  onClick={ onApplyRevision }
@@ -64,7 +64,7 @@
64
64
  background: var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));
65
65
  }
66
66
 
67
- .edit-site-global-styles-screen-revisions__changes,
67
+ .edit-site-global-styles-screen-revisions__changes > li,
68
68
  .edit-site-global-styles-screen-revisions__meta,
69
69
  .edit-site-global-styles-screen-revisions__applied-text {
70
70
  color: $gray-900;
@@ -92,7 +92,7 @@
92
92
  width: 100%;
93
93
  height: auto;
94
94
  display: block;
95
- padding: $grid-unit-15 $grid-unit-15 $grid-unit-10 $grid-unit-50;
95
+ padding: $grid-unit-15 $grid-unit-15 $grid-unit-05 $grid-unit-50;
96
96
  z-index: 1;
97
97
  position: relative;
98
98
  outline-offset: -2px;
@@ -103,7 +103,7 @@
103
103
  .edit-site-global-styles-screen-revisions__applied-text {
104
104
  align-self: flex-start;
105
105
  // Left margin = left padding of .edit-site-global-styles-screen-revisions__revision-button.
106
- margin: 0 $grid-unit-15 $grid-unit-15 $grid-unit-50;
106
+ margin: $grid-unit-05 $grid-unit-15 $grid-unit-15 $grid-unit-50;
107
107
  }
108
108
 
109
109
  .edit-site-global-styles-screen-revisions__changes,
@@ -125,13 +125,14 @@
125
125
  }
126
126
  }
127
127
 
128
- .edit-site-global-styles-screen-revisions__changes,
129
128
  .edit-site-global-styles-screen-revisions__meta {
130
129
  display: flex;
131
130
  justify-content: start;
132
131
  width: 100%;
133
132
  align-items: flex-start;
134
133
  text-align: left;
134
+ margin-bottom: $grid-unit-05;
135
+
135
136
  img {
136
137
  width: $grid-unit-20;
137
138
  height: $grid-unit-20;
@@ -145,10 +146,14 @@
145
146
  }
146
147
 
147
148
  .edit-site-global-styles-screen-revisions__changes {
148
- margin-bottom: $grid-unit-05;
149
149
  text-align: left;
150
- color: $gray-900;
151
150
  line-height: $default-line-height;
151
+ margin-left: $grid-unit-15;
152
+ list-style: disc;
153
+
154
+ li {
155
+ margin-bottom: $grid-unit-05;
156
+ }
152
157
  }
153
158
 
154
159
  .edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination {
@@ -251,47 +251,64 @@ export default function Layout() {
251
251
  The NavigableRegion must always be rendered and not use
252
252
  `inert` otherwise `useNavigateRegions` will fail.
253
253
  */ }
254
- <NavigableRegion
255
- ariaLabel={ __( 'Navigation' ) }
256
- className="edit-site-layout__sidebar-region"
257
- >
258
- <AnimatePresence>
259
- { canvasMode === 'view' && (
260
- <motion.div
261
- initial={ { opacity: 0 } }
262
- animate={ { opacity: 1 } }
263
- exit={ { opacity: 0 } }
264
- transition={ {
265
- type: 'tween',
266
- duration:
267
- // Disable transition in mobile to emulate a full page transition.
268
- disableMotion || isMobileViewport
269
- ? 0
270
- : ANIMATION_DURATION,
271
- ease: 'easeOut',
272
- } }
273
- className="edit-site-layout__sidebar"
274
- >
275
- <Sidebar />
276
- </motion.div>
277
- ) }
278
- </AnimatePresence>
279
- </NavigableRegion>
254
+ { ( ! isMobileViewport ||
255
+ ( isMobileViewport && ! areas.mobile ) ) && (
256
+ <NavigableRegion
257
+ ariaLabel={ __( 'Navigation' ) }
258
+ className="edit-site-layout__sidebar-region"
259
+ >
260
+ <AnimatePresence>
261
+ { canvasMode === 'view' && (
262
+ <motion.div
263
+ initial={ { opacity: 0 } }
264
+ animate={ { opacity: 1 } }
265
+ exit={ { opacity: 0 } }
266
+ transition={ {
267
+ type: 'tween',
268
+ duration:
269
+ // Disable transition in mobile to emulate a full page transition.
270
+ disableMotion ||
271
+ isMobileViewport
272
+ ? 0
273
+ : ANIMATION_DURATION,
274
+ ease: 'easeOut',
275
+ } }
276
+ className="edit-site-layout__sidebar"
277
+ >
278
+ <Sidebar />
279
+ </motion.div>
280
+ ) }
281
+ </AnimatePresence>
282
+ </NavigableRegion>
283
+ ) }
280
284
 
281
285
  <SavePanel />
282
286
 
283
- { areas.content && canvasMode !== 'edit' && (
287
+ { isMobileViewport && areas.mobile && (
284
288
  <div
285
- className="edit-site-layout__area"
289
+ className="edit-site-layout__mobile"
286
290
  style={ {
287
291
  maxWidth: widths?.content,
288
292
  } }
289
293
  >
290
- { areas.content }
294
+ { areas.mobile }
291
295
  </div>
292
296
  ) }
293
297
 
294
- { areas.preview && (
298
+ { ! isMobileViewport &&
299
+ areas.content &&
300
+ canvasMode !== 'edit' && (
301
+ <div
302
+ className="edit-site-layout__area"
303
+ style={ {
304
+ maxWidth: widths?.content,
305
+ } }
306
+ >
307
+ { areas.content }
308
+ </div>
309
+ ) }
310
+
311
+ { ! isMobileViewport && areas.preview && (
295
312
  <div className="edit-site-layout__canvas-container">
296
313
  { canvasResizer }
297
314
  { !! canvasSize.width && (
@@ -23,13 +23,21 @@ const { useLocation } = unlock( routerPrivateApis );
23
23
  export default function useLayoutAreas() {
24
24
  const isSiteEditorLoading = useIsSiteEditorLoading();
25
25
  const { params } = useLocation();
26
- const { postType, postId, path, layout, isCustom } = params ?? {};
26
+ const { postType, postId, path, layout, isCustom, canvas } = params ?? {};
27
+
28
+ // Note: Since "sidebar" is not yet supported here,
29
+ // returning undefined from "mobile" means show the sidebar.
30
+
27
31
  // Regular page
28
32
  if ( path === '/page' ) {
29
33
  return {
30
34
  areas: {
31
35
  content: undefined,
32
36
  preview: <Editor isLoading={ isSiteEditorLoading } />,
37
+ mobile:
38
+ canvas === 'edit' ? (
39
+ <Editor isLoading={ isSiteEditorLoading } />
40
+ ) : undefined,
33
41
  },
34
42
  widths: {
35
43
  content: undefined,
@@ -63,6 +71,10 @@ export default function useLayoutAreas() {
63
71
  return {
64
72
  areas: {
65
73
  preview: <Editor isLoading={ isSiteEditorLoading } />,
74
+ mobile:
75
+ canvas === 'edit' ? (
76
+ <Editor isLoading={ isSiteEditorLoading } />
77
+ ) : undefined,
66
78
  },
67
79
  };
68
80
  }
@@ -79,6 +91,11 @@ export default function useLayoutAreas() {
79
91
  preview: isListLayout && (
80
92
  <Editor isLoading={ isSiteEditorLoading } />
81
93
  ),
94
+ mobile: (
95
+ <PageTemplatesTemplateParts
96
+ postType={ TEMPLATE_POST_TYPE }
97
+ />
98
+ ),
82
99
  },
83
100
  widths: {
84
101
  content: isListLayout ? 380 : undefined,
@@ -98,6 +115,11 @@ export default function useLayoutAreas() {
98
115
  preview: isListLayout && (
99
116
  <Editor isLoading={ isSiteEditorLoading } />
100
117
  ),
118
+ mobile: (
119
+ <PageTemplatesTemplateParts
120
+ postType={ TEMPLATE_PART_POST_TYPE }
121
+ />
122
+ ),
101
123
  },
102
124
  widths: {
103
125
  content: isListLayout ? 380 : undefined,
@@ -110,12 +132,19 @@ export default function useLayoutAreas() {
110
132
  return {
111
133
  areas: {
112
134
  content: <PagePatterns />,
135
+ mobile: <PagePatterns />,
113
136
  },
114
137
  };
115
138
  }
116
139
 
117
140
  // Fallback shows the home page preview
118
141
  return {
119
- areas: { preview: <Editor isLoading={ isSiteEditorLoading } /> },
142
+ areas: {
143
+ preview: <Editor isLoading={ isSiteEditorLoading } />,
144
+ mobile:
145
+ canvas === 'edit' ? (
146
+ <Editor isLoading={ isSiteEditorLoading } />
147
+ ) : undefined,
148
+ },
120
149
  };
121
150
  }
@@ -83,6 +83,12 @@
83
83
  flex-direction: column;
84
84
  }
85
85
 
86
+ .edit-site-layout__mobile {
87
+ position: relative;
88
+ width: 100%;
89
+ z-index: z-index(".edit-site-layout__canvas-container");
90
+ }
91
+
86
92
  .edit-site-layout__canvas-container {
87
93
  position: relative;
88
94
  flex-grow: 1;
@@ -147,6 +153,7 @@
147
153
  }
148
154
 
149
155
  // This shouldn't be necessary (we should have a way to say that a skeletton is relative
156
+ .edit-site-layout__mobile .interface-interface-skeleton,
150
157
  .edit-site-layout__canvas .interface-interface-skeleton,
151
158
  .edit-site-template-pages-preview .interface-interface-skeleton {
152
159
  position: relative !important;
@@ -8,18 +8,16 @@ function Media( { id, size = [ 'large', 'medium', 'thumbnail' ], ...props } ) {
8
8
  const currentSize = size.find(
9
9
  ( s ) => !! media?.media_details?.sizes[ s ]
10
10
  );
11
- const mediaDetails = media?.media_details?.sizes[ currentSize ];
12
- if ( ! mediaDetails ) {
11
+
12
+ const mediaUrl =
13
+ media?.media_details?.sizes[ currentSize ]?.source_url ||
14
+ media?.source_url;
15
+
16
+ if ( ! mediaUrl ) {
13
17
  return null;
14
18
  }
15
19
 
16
- return (
17
- <img
18
- { ...props }
19
- src={ mediaDetails.source_url }
20
- alt={ media.alt_text }
21
- />
22
- );
20
+ return <img { ...props } src={ mediaUrl } alt={ media.alt_text } />;
23
21
  }
24
22
 
25
23
  export default Media;
@@ -225,6 +225,12 @@
225
225
  * TODO: when this becomes stable, consolidate styles with the above.
226
226
  */
227
227
  .edit-site-page-patterns-dataviews {
228
+ margin-top: 60px;
229
+
230
+ @include break-medium {
231
+ margin-top: 0;
232
+ }
233
+
228
234
  .page-patterns-preview-field {
229
235
  display: flex;
230
236
  flex-direction: column;
@@ -283,6 +289,10 @@
283
289
  text-overflow: ellipsis;
284
290
  color: inherit;
285
291
  }
292
+
293
+ .dataviews-pagination {
294
+ z-index: z-index(".edit-site-patterns__dataviews-list-pagination");
295
+ }
286
296
  }
287
297
 
288
298
  .dataviews-action-modal__duplicate-pattern {
@@ -111,6 +111,7 @@ const selectTemplatePartsAsPatterns = createSelector(
111
111
  const selectThemePatterns = createSelector(
112
112
  ( select ) => {
113
113
  const { getSettings } = unlock( select( editSiteStore ) );
114
+ const { getIsResolving } = select( coreStore );
114
115
  const settings = getSettings();
115
116
  const blockPatterns =
116
117
  settings.__experimentalAdditionalBlockPatterns ??
@@ -136,19 +137,23 @@ const selectThemePatterns = createSelector(
136
137
  __unstableSkipMigrationLogs: true,
137
138
  } ),
138
139
  } ) );
139
-
140
- return { patterns, isResolving: false };
140
+ return { patterns, isResolving: getIsResolving( 'getBlockPatterns' ) };
141
141
  },
142
142
  ( select ) => [
143
143
  select( coreStore ).getBlockPatterns(),
144
+ select( coreStore ).getIsResolving( 'getBlockPatterns' ),
144
145
  unlock( select( editSiteStore ) ).getSettings(),
145
146
  ]
146
147
  );
147
148
 
148
149
  const selectPatterns = createSelector(
149
150
  ( select, categoryId, syncStatus, search = '' ) => {
150
- const { patterns: themePatterns } = selectThemePatterns( select );
151
- const { patterns: userPatterns } = selectUserPatterns( select );
151
+ const {
152
+ patterns: themePatterns,
153
+ isResolving: isResolvingThemePatterns,
154
+ } = selectThemePatterns( select );
155
+ const { patterns: userPatterns, isResolving: isResolvingUserPatterns } =
156
+ selectUserPatterns( select );
152
157
 
153
158
  let patterns = [
154
159
  ...( themePatterns || [] ),
@@ -176,7 +181,10 @@ const selectPatterns = createSelector(
176
181
  hasCategory: ( item ) => ! item.hasOwnProperty( 'categories' ),
177
182
  } );
178
183
  }
179
- return { patterns, isResolving: false };
184
+ return {
185
+ patterns,
186
+ isResolving: isResolvingThemePatterns || isResolvingUserPatterns,
187
+ };
180
188
  },
181
189
  ( select ) => [
182
190
  selectThemePatterns( select ),
@@ -429,6 +429,7 @@ export default function PageTemplatesTemplateParts( { postType } ) {
429
429
 
430
430
  return (
431
431
  <Page
432
+ className="edit-site-page-template-template-parts-dataviews"
432
433
  title={
433
434
  postType === TEMPLATE_POST_TYPE
434
435
  ? __( 'Templates' )
@@ -58,3 +58,9 @@
58
58
  .page-templates-description {
59
59
  white-space: normal;
60
60
  }
61
+
62
+ .edit-site-page-template-template-parts-dataviews {
63
+ .dataviews-pagination {
64
+ z-index: z-index(".edit-site-templates__dataviews-list-pagination");
65
+ }
66
+ }
@@ -12,6 +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
+ import { useViewportMatch } from '@wordpress/compose';
15
17
 
16
18
  /**
17
19
  * Internal dependencies
@@ -31,7 +33,8 @@ import SidebarNavigationScreenTemplatesBrowse from '../sidebar-navigation-screen
31
33
  import SaveHub from '../save-hub';
32
34
  import { unlock } from '../../lock-unlock';
33
35
  import SidebarNavigationScreenPages from '../sidebar-navigation-screen-pages';
34
- import SidebarNavigationScreenPagesDataViews from '../sidebar-navigation-screen-pages-dataviews';
36
+ import SidebarNavigationScreen from '../sidebar-navigation-screen';
37
+ import DataViewsSidebarContent from '../sidebar-dataviews';
35
38
  import SidebarNavigationScreenPage from '../sidebar-navigation-screen-page';
36
39
 
37
40
  const { useLocation } = unlock( routerPrivateApis );
@@ -50,6 +53,7 @@ function SidebarScreenWrapper( { className, ...props } ) {
50
53
 
51
54
  function SidebarScreens() {
52
55
  useSyncPathWithURL();
56
+ const isMobileViewport = useViewportMatch( 'medium', '<' );
53
57
 
54
58
  return (
55
59
  <>
@@ -69,7 +73,10 @@ function SidebarScreens() {
69
73
  <SidebarNavigationScreenPages />
70
74
  </SidebarScreenWrapper>
71
75
  <SidebarScreenWrapper path="/pages">
72
- <SidebarNavigationScreenPagesDataViews />
76
+ <SidebarNavigationScreen
77
+ title={ __( 'Pages' ) }
78
+ content={ <DataViewsSidebarContent /> }
79
+ />
73
80
  </SidebarScreenWrapper>
74
81
  <SidebarScreenWrapper path="/page/:postId">
75
82
  <SidebarNavigationScreenPage />
@@ -77,9 +84,11 @@ function SidebarScreens() {
77
84
  <SidebarScreenWrapper path="/:postType(wp_template)">
78
85
  <SidebarNavigationScreenTemplates />
79
86
  </SidebarScreenWrapper>
80
- <SidebarScreenWrapper path="/patterns">
81
- <SidebarNavigationScreenPatterns />
82
- </SidebarScreenWrapper>
87
+ { ! isMobileViewport && (
88
+ <SidebarScreenWrapper path="/patterns">
89
+ <SidebarNavigationScreenPatterns />
90
+ </SidebarScreenWrapper>
91
+ ) }
83
92
  <SidebarScreenWrapper path="/:postType(wp_template|wp_template_part)/all">
84
93
  <SidebarNavigationScreenTemplatesBrowse />
85
94
  </SidebarScreenWrapper>
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { __, _x } from '@wordpress/i18n';
4
+ import { __ } from '@wordpress/i18n';
5
5
  import { trash } from '@wordpress/icons';
6
6
 
7
7
  /**
@@ -49,7 +49,7 @@ const DEFAULT_PAGE_BASE = {
49
49
  export const DEFAULT_VIEWS = {
50
50
  page: [
51
51
  {
52
- title: _x( 'All', 'pages' ),
52
+ title: __( 'All pages' ),
53
53
  slug: 'all',
54
54
  view: DEFAULT_PAGE_BASE,
55
55
  },
@@ -18,7 +18,6 @@
18
18
  label {
19
19
  .components-text {
20
20
  display: block;
21
- margin-left: $radio-input-size + 6;
22
21
  }
23
22
  }
24
23
  }
@@ -14,6 +14,7 @@ import { decodeEntities } from '@wordpress/html-entities';
14
14
  import { privateApis as routerPrivateApis } from '@wordpress/router';
15
15
  import { layout, page, home, verse, plus } from '@wordpress/icons';
16
16
  import { useSelect } from '@wordpress/data';
17
+ import { useViewportMatch } from '@wordpress/compose';
17
18
 
18
19
  /**
19
20
  * Internal dependencies
@@ -42,6 +43,7 @@ const PageItem = ( { postType = 'page', postId, ...props } ) => {
42
43
  };
43
44
 
44
45
  export default function SidebarNavigationScreenPages() {
46
+ const isMobileViewport = useViewportMatch( 'medium', '<' );
45
47
  const { records: pages, isResolving: isLoadingPages } = useEntityRecords(
46
48
  'postType',
47
49
  'page',
@@ -220,12 +222,14 @@ export default function SidebarNavigationScreenPages() {
220
222
  </Truncate>
221
223
  </PageItem>
222
224
  ) ) }
223
- <SidebarNavigationItem
224
- className="edit-site-sidebar-navigation-screen-pages__see-all"
225
- { ...pagesLink }
226
- >
227
- { __( 'Manage all pages' ) }
228
- </SidebarNavigationItem>
225
+ { ! isMobileViewport && (
226
+ <SidebarNavigationItem
227
+ className="edit-site-sidebar-navigation-screen-pages__see-all"
228
+ { ...pagesLink }
229
+ >
230
+ { __( 'Manage all pages' ) }
231
+ </SidebarNavigationItem>
232
+ ) }
229
233
  </VStack>
230
234
  }
231
235
  />
@@ -77,9 +77,9 @@ function usePageContentFocusCommands() {
77
77
  if ( currentPostType !== 'wp_template' ) {
78
78
  commands.push( {
79
79
  name: 'core/switch-to-template-focus',
80
- /* translators: %1$s: template title */
81
80
  label: sprintf(
82
- 'Edit template: %s',
81
+ /* translators: %s: template title */
82
+ __( 'Edit template: %s' ),
83
83
  decodeEntities( template.title )
84
84
  ),
85
85
  icon: layout,
@@ -154,14 +154,14 @@ function useManipulateDocumentCommands() {
154
154
  if ( isTemplateRevertable( template ) && ! isEditingPage ) {
155
155
  const label =
156
156
  template.type === TEMPLATE_POST_TYPE
157
- ? /* translators: %1$s: template title */
158
- sprintf(
159
- 'Reset template: %s',
157
+ ? sprintf(
158
+ /* translators: %s: template title */
159
+ __( 'Reset template: %s' ),
160
160
  decodeEntities( template.title )
161
161
  )
162
- : /* translators: %1$s: template part title */
163
- sprintf(
164
- 'Reset template part: %s',
162
+ : sprintf(
163
+ /* translators: %s: template part title */
164
+ __( 'Reset template part: %s' ),
165
165
  decodeEntities( template.title )
166
166
  );
167
167
  commands.push( {
@@ -178,14 +178,14 @@ function useManipulateDocumentCommands() {
178
178
  if ( isTemplateRemovable( template ) && ! isEditingPage ) {
179
179
  const label =
180
180
  template.type === TEMPLATE_POST_TYPE
181
- ? /* translators: %1$s: template title */
182
- sprintf(
183
- 'Delete template: %s',
181
+ ? sprintf(
182
+ /* translators: %s: template title */
183
+ __( 'Delete template: %s' ),
184
184
  decodeEntities( template.title )
185
185
  )
186
- : /* translators: %1$s: template part title */
187
- sprintf(
188
- 'Delete template part: %s',
186
+ : sprintf(
187
+ /* translators: %s: template part title */
188
+ __( 'Delete template part: %s' ),
189
189
  decodeEntities( template.title )
190
190
  );
191
191
  const path =
@@ -22,6 +22,8 @@ import { TEMPLATE_POST_TYPE } from '../utils/constants';
22
22
  export const setCanvasMode =
23
23
  ( mode ) =>
24
24
  ( { registry, dispatch } ) => {
25
+ const isMediumOrBigger =
26
+ window.matchMedia( '(min-width: 782px)' ).matches;
25
27
  registry.dispatch( blockEditorStore ).__unstableSetEditorMode( 'edit' );
26
28
  dispatch( {
27
29
  type: 'SET_CANVAS_MODE',
@@ -29,7 +31,9 @@ export const setCanvasMode =
29
31
  } );
30
32
  // Check if the block list view should be open by default.
31
33
  // If `distractionFree` mode is enabled, the block list view should not be open.
34
+ // This behavior is disabled for small viewports.
32
35
  if (
36
+ isMediumOrBigger &&
33
37
  mode === 'edit' &&
34
38
  registry
35
39
  .select( preferencesStore )
@@ -1,57 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _react = require("react");
8
- var _components = require("@wordpress/components");
9
- var _element = require("@wordpress/element");
10
- /**
11
- * WordPress dependencies
12
- */
13
-
14
- function FontsGrid({
15
- title,
16
- children,
17
- pageSize = 32
18
- }) {
19
- const [lastItem, setLastItem] = (0, _element.useState)(null);
20
- const [page, setPage] = (0, _element.useState)(1);
21
- const itemsLimit = page * pageSize;
22
- const items = children.slice(0, itemsLimit);
23
- (0, _element.useEffect)(() => {
24
- if (lastItem) {
25
- const observer = new window.IntersectionObserver(([entry]) => {
26
- if (entry.isIntersecting) {
27
- setPage(prevPage => prevPage + 1);
28
- }
29
- });
30
- observer.observe(lastItem);
31
- return () => observer.disconnect();
32
- }
33
- }, [lastItem]);
34
- return (0, _react.createElement)("div", {
35
- className: "font-library-modal__fonts-grid"
36
- }, (0, _react.createElement)(_components.__experimentalVStack, {
37
- spacing: 0
38
- }, title && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.__experimentalText, {
39
- className: "font-library-modal__subtitle"
40
- }, title), (0, _react.createElement)(_components.__experimentalSpacer, {
41
- margin: 2
42
- })), (0, _react.createElement)("div", {
43
- className: "font-library-modal__fonts-grid__main"
44
- }, items.map((child, i) => {
45
- if (i === itemsLimit - 1) {
46
- return (0, _react.createElement)("div", {
47
- key: child.key,
48
- ref: setLastItem
49
- }, child);
50
- }
51
- return (0, _react.createElement)("div", {
52
- key: child.key
53
- }, child);
54
- }))));
55
- }
56
- var _default = exports.default = FontsGrid;
57
- //# sourceMappingURL=fonts-grid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_components","require","_element","FontsGrid","title","children","pageSize","lastItem","setLastItem","useState","page","setPage","itemsLimit","items","slice","useEffect","observer","window","IntersectionObserver","entry","isIntersecting","prevPage","observe","disconnect","_react","createElement","className","__experimentalVStack","spacing","Fragment","__experimentalText","__experimentalSpacer","margin","map","child","i","key","ref","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/fonts-grid.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalText as Text,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\n\nfunction FontsGrid( { title, children, pageSize = 32 } ) {\n\tconst [ lastItem, setLastItem ] = useState( null );\n\tconst [ page, setPage ] = useState( 1 );\n\tconst itemsLimit = page * pageSize;\n\tconst items = children.slice( 0, itemsLimit );\n\n\tuseEffect( () => {\n\t\tif ( lastItem ) {\n\t\t\tconst observer = new window.IntersectionObserver( ( [ entry ] ) => {\n\t\t\t\tif ( entry.isIntersecting ) {\n\t\t\t\t\tsetPage( ( prevPage ) => prevPage + 1 );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tobserver.observe( lastItem );\n\n\t\t\treturn () => observer.disconnect();\n\t\t}\n\t}, [ lastItem ] );\n\n\treturn (\n\t\t<div className=\"font-library-modal__fonts-grid\">\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t{ title && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<div className=\"font-library-modal__fonts-grid__main\">\n\t\t\t\t\t{ items.map( ( child, i ) => {\n\t\t\t\t\t\tif ( i === itemsLimit - 1 ) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<div key={ child.key } ref={ setLastItem }>\n\t\t\t\t\t\t\t\t\t{ child }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn <div key={ child.key }>{ child }</div>;\n\t\t\t\t\t} ) }\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default FontsGrid;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AARA;AACA;AACA;;AAQA,SAASE,SAASA,CAAE;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,QAAQ,GAAG;AAAG,CAAC,EAAG;EACxD,MAAM,CAAEC,QAAQ,EAAEC,WAAW,CAAE,GAAG,IAAAC,iBAAQ,EAAE,IAAK,CAAC;EAClD,MAAM,CAAEC,IAAI,EAAEC,OAAO,CAAE,GAAG,IAAAF,iBAAQ,EAAE,CAAE,CAAC;EACvC,MAAMG,UAAU,GAAGF,IAAI,GAAGJ,QAAQ;EAClC,MAAMO,KAAK,GAAGR,QAAQ,CAACS,KAAK,CAAE,CAAC,EAAEF,UAAW,CAAC;EAE7C,IAAAG,kBAAS,EAAE,MAAM;IAChB,IAAKR,QAAQ,EAAG;MACf,MAAMS,QAAQ,GAAG,IAAIC,MAAM,CAACC,oBAAoB,CAAE,CAAE,CAAEC,KAAK,CAAE,KAAM;QAClE,IAAKA,KAAK,CAACC,cAAc,EAAG;UAC3BT,OAAO,CAAIU,QAAQ,IAAMA,QAAQ,GAAG,CAAE,CAAC;QACxC;MACD,CAAE,CAAC;MAEHL,QAAQ,CAACM,OAAO,CAAEf,QAAS,CAAC;MAE5B,OAAO,MAAMS,QAAQ,CAACO,UAAU,CAAC,CAAC;IACnC;EACD,CAAC,EAAE,CAAEhB,QAAQ,CAAG,CAAC;EAEjB,OACC,IAAAiB,MAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAAgC,GAC9C,IAAAF,MAAA,CAAAC,aAAA,EAACzB,WAAA,CAAA2B,oBAAM;IAACC,OAAO,EAAG;EAAG,GAClBxB,KAAK,IACN,IAAAoB,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAK,QAAA,QACC,IAAAL,MAAA,CAAAC,aAAA,EAACzB,WAAA,CAAA8B,kBAAI;IAACJ,SAAS,EAAC;EAA8B,GAC3CtB,KACG,CAAC,EACP,IAAAoB,MAAA,CAAAC,aAAA,EAACzB,WAAA,CAAA+B,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CACrB,CACF,EACD,IAAAR,MAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAAsC,GAClDb,KAAK,CAACoB,GAAG,CAAE,CAAEC,KAAK,EAAEC,CAAC,KAAM;IAC5B,IAAKA,CAAC,KAAKvB,UAAU,GAAG,CAAC,EAAG;MAC3B,OACC,IAAAY,MAAA,CAAAC,aAAA;QAAKW,GAAG,EAAGF,KAAK,CAACE,GAAK;QAACC,GAAG,EAAG7B;MAAa,GACvC0B,KACE,CAAC;IAER;IACA,OAAO,IAAAV,MAAA,CAAAC,aAAA;MAAKW,GAAG,EAAGF,KAAK,CAACE;IAAK,GAAGF,KAAY,CAAC;EAC9C,CAAE,CACE,CACE,CACJ,CAAC;AAER;AAAC,IAAAI,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcrC,SAAS"}