@wordpress/edit-site 5.12.6 → 5.14.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 (190) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/add-new-page/index.js +1 -7
  3. package/build/components/add-new-page/index.js.map +1 -1
  4. package/build/components/add-new-pattern/index.js +2 -2
  5. package/build/components/add-new-pattern/index.js.map +1 -1
  6. package/build/components/add-new-template/add-custom-generic-template-modal-content.js +2 -2
  7. package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  8. package/build/components/block-editor/inserter-media-categories.js +1 -22
  9. package/build/components/block-editor/inserter-media-categories.js.map +1 -1
  10. package/build/components/block-editor/site-editor-canvas.js +29 -32
  11. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  12. package/build/components/block-editor/use-site-editor-settings.js +9 -12
  13. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  14. package/build/components/canvas-spinner/index.js +1 -18
  15. package/build/components/canvas-spinner/index.js.map +1 -1
  16. package/build/components/create-pattern-modal/index.js +1 -1
  17. package/build/components/create-pattern-modal/index.js.map +1 -1
  18. package/build/components/editor/index.js +10 -1
  19. package/build/components/editor/index.js.map +1 -1
  20. package/build/components/global-styles/palette.js +1 -1
  21. package/build/components/global-styles/palette.js.map +1 -1
  22. package/build/components/header-edit-mode/index.js +6 -2
  23. package/build/components/header-edit-mode/index.js.map +1 -1
  24. package/build/components/layout/index.js +26 -23
  25. package/build/components/layout/index.js.map +1 -1
  26. package/build/components/page/header.js +1 -1
  27. package/build/components/page/header.js.map +1 -1
  28. package/build/components/page-actions/delete-page-menu-item.js +2 -1
  29. package/build/components/page-actions/delete-page-menu-item.js.map +1 -1
  30. package/build/components/page-patterns/grid-item.js +2 -3
  31. package/build/components/page-patterns/grid-item.js.map +1 -1
  32. package/build/components/page-patterns/patterns-list.js +3 -1
  33. package/build/components/page-patterns/patterns-list.js.map +1 -1
  34. package/build/components/page-patterns/use-patterns.js +1 -1
  35. package/build/components/page-patterns/use-patterns.js.map +1 -1
  36. package/build/components/page-template-parts/index.js +1 -0
  37. package/build/components/page-template-parts/index.js.map +1 -1
  38. package/build/components/page-templates/index.js +1 -0
  39. package/build/components/page-templates/index.js.map +1 -1
  40. package/build/components/sidebar-navigation-screen-global-styles/index.js +57 -17
  41. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  42. package/build/components/sidebar-navigation-screen-navigation-menu/delete-modal.js +7 -16
  43. package/build/components/sidebar-navigation-screen-navigation-menu/delete-modal.js.map +1 -1
  44. package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js +10 -11
  45. package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
  46. package/build/components/sidebar-navigation-screen-navigation-menu/index.js +3 -1
  47. package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  48. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +9 -3
  49. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  50. package/build/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js +29 -0
  51. package/build/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js.map +1 -0
  52. package/build/components/sidebar-navigation-screen-page/page-details.js +11 -4
  53. package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  54. package/build/components/sidebar-navigation-screen-page/status-label.js +1 -1
  55. package/build/components/sidebar-navigation-screen-page/status-label.js.map +1 -1
  56. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +1 -1
  57. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  58. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +1 -1
  59. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  60. package/build/components/site-hub/index.js +1 -1
  61. package/build/components/site-hub/index.js.map +1 -1
  62. package/build/components/template-actions/index.js +22 -6
  63. package/build/components/template-actions/index.js.map +1 -1
  64. package/build/components/welcome-guide/page.js +2 -2
  65. package/build/components/welcome-guide/page.js.map +1 -1
  66. package/build/components/welcome-guide/template.js +2 -2
  67. package/build/components/welcome-guide/template.js.map +1 -1
  68. package/build/hooks/commands/use-edit-mode-commands.js +1 -2
  69. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  70. package/build/index.js +6 -0
  71. package/build/index.js.map +1 -1
  72. package/build/utils/template-part-create.js +2 -2
  73. package/build/utils/template-part-create.js.map +1 -1
  74. package/build-module/components/add-new-page/index.js +1 -6
  75. package/build-module/components/add-new-page/index.js.map +1 -1
  76. package/build-module/components/add-new-pattern/index.js +3 -3
  77. package/build-module/components/add-new-pattern/index.js.map +1 -1
  78. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js +1 -1
  79. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  80. package/build-module/components/block-editor/inserter-media-categories.js +1 -22
  81. package/build-module/components/block-editor/inserter-media-categories.js.map +1 -1
  82. package/build-module/components/block-editor/site-editor-canvas.js +29 -32
  83. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  84. package/build-module/components/block-editor/use-site-editor-settings.js +9 -12
  85. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  86. package/build-module/components/canvas-spinner/index.js +1 -15
  87. package/build-module/components/canvas-spinner/index.js.map +1 -1
  88. package/build-module/components/create-pattern-modal/index.js +1 -1
  89. package/build-module/components/create-pattern-modal/index.js.map +1 -1
  90. package/build-module/components/editor/index.js +10 -1
  91. package/build-module/components/editor/index.js.map +1 -1
  92. package/build-module/components/global-styles/palette.js +1 -1
  93. package/build-module/components/global-styles/palette.js.map +1 -1
  94. package/build-module/components/header-edit-mode/index.js +6 -2
  95. package/build-module/components/header-edit-mode/index.js.map +1 -1
  96. package/build-module/components/layout/index.js +26 -23
  97. package/build-module/components/layout/index.js.map +1 -1
  98. package/build-module/components/page/header.js +1 -1
  99. package/build-module/components/page/header.js.map +1 -1
  100. package/build-module/components/page-actions/delete-page-menu-item.js +2 -1
  101. package/build-module/components/page-actions/delete-page-menu-item.js.map +1 -1
  102. package/build-module/components/page-patterns/grid-item.js +3 -4
  103. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  104. package/build-module/components/page-patterns/patterns-list.js +3 -1
  105. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  106. package/build-module/components/page-patterns/use-patterns.js +1 -1
  107. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  108. package/build-module/components/page-template-parts/index.js +1 -0
  109. package/build-module/components/page-template-parts/index.js.map +1 -1
  110. package/build-module/components/page-templates/index.js +1 -0
  111. package/build-module/components/page-templates/index.js.map +1 -1
  112. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +57 -17
  113. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  114. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-modal.js +8 -17
  115. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-modal.js.map +1 -1
  116. package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js +10 -9
  117. package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
  118. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js +2 -1
  119. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  120. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +8 -4
  121. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  122. package/build-module/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js +20 -0
  123. package/build-module/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js.map +1 -0
  124. package/build-module/components/sidebar-navigation-screen-page/page-details.js +11 -4
  125. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  126. package/build-module/components/sidebar-navigation-screen-page/status-label.js +1 -1
  127. package/build-module/components/sidebar-navigation-screen-page/status-label.js.map +1 -1
  128. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +1 -1
  129. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  130. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +1 -1
  131. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  132. package/build-module/components/site-hub/index.js +1 -1
  133. package/build-module/components/site-hub/index.js.map +1 -1
  134. package/build-module/components/template-actions/index.js +24 -7
  135. package/build-module/components/template-actions/index.js.map +1 -1
  136. package/build-module/components/welcome-guide/page.js +2 -2
  137. package/build-module/components/welcome-guide/page.js.map +1 -1
  138. package/build-module/components/welcome-guide/template.js +2 -2
  139. package/build-module/components/welcome-guide/template.js.map +1 -1
  140. package/build-module/hooks/commands/use-edit-mode-commands.js +1 -2
  141. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  142. package/build-module/index.js +1 -0
  143. package/build-module/index.js.map +1 -1
  144. package/build-module/utils/template-part-create.js +1 -1
  145. package/build-module/utils/template-part-create.js.map +1 -1
  146. package/build-style/style-rtl.css +18 -7
  147. package/build-style/style.css +18 -7
  148. package/package.json +39 -39
  149. package/src/components/add-new-page/index.js +1 -6
  150. package/src/components/add-new-pattern/index.js +3 -3
  151. package/src/components/add-new-template/add-custom-generic-template-modal-content.js +1 -1
  152. package/src/components/block-editor/inserter-media-categories.js +1 -21
  153. package/src/components/block-editor/site-editor-canvas.js +7 -1
  154. package/src/components/block-editor/use-site-editor-settings.js +8 -12
  155. package/src/components/canvas-spinner/index.js +1 -11
  156. package/src/components/canvas-spinner/style.scss +4 -0
  157. package/src/components/create-pattern-modal/index.js +1 -1
  158. package/src/components/editor/index.js +15 -1
  159. package/src/components/global-styles/palette.js +10 -9
  160. package/src/components/global-styles/stories/index.js +1 -0
  161. package/src/components/header-edit-mode/document-actions/style.scss +8 -0
  162. package/src/components/header-edit-mode/index.js +17 -9
  163. package/src/components/layout/index.js +39 -44
  164. package/src/components/layout/style.scss +0 -11
  165. package/src/components/page/header.js +1 -1
  166. package/src/components/page-actions/delete-page-menu-item.js +1 -0
  167. package/src/components/page-patterns/grid-item.js +7 -8
  168. package/src/components/page-patterns/patterns-list.js +7 -3
  169. package/src/components/page-patterns/style.scss +1 -1
  170. package/src/components/page-patterns/use-patterns.js +1 -1
  171. package/src/components/page-template-parts/index.js +1 -1
  172. package/src/components/page-templates/index.js +1 -1
  173. package/src/components/sidebar-navigation-screen/style.scss +5 -1
  174. package/src/components/sidebar-navigation-screen-global-styles/index.js +56 -39
  175. package/src/components/sidebar-navigation-screen-navigation-menu/delete-modal.js +14 -35
  176. package/src/components/sidebar-navigation-screen-navigation-menu/edit-button.js +8 -11
  177. package/src/components/sidebar-navigation-screen-navigation-menu/index.js +6 -1
  178. package/src/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +16 -7
  179. package/src/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js +24 -0
  180. package/src/components/sidebar-navigation-screen-page/page-details.js +8 -3
  181. package/src/components/sidebar-navigation-screen-page/status-label.js +1 -1
  182. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +1 -1
  183. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +1 -1
  184. package/src/components/site-hub/index.js +1 -1
  185. package/src/components/template-actions/index.js +38 -8
  186. package/src/components/welcome-guide/page.js +2 -2
  187. package/src/components/welcome-guide/template.js +2 -2
  188. package/src/hooks/commands/use-edit-mode-commands.js +0 -1
  189. package/src/index.js +1 -0
  190. package/src/utils/template-part-create.js +1 -1
@@ -4,4 +4,8 @@
4
4
  display: flex;
5
5
  align-items: center;
6
6
  justify-content: center;
7
+
8
+ circle {
9
+ stroke: rgba($black, 0.3);
10
+ }
7
11
  }
@@ -56,7 +56,7 @@ export default function CreatePatternModal( {
56
56
  status: 'publish',
57
57
  meta:
58
58
  syncType === SYNC_TYPES.unsynced
59
- ? { sync_status: syncType }
59
+ ? { wp_pattern_sync_status: syncType }
60
60
  : undefined,
61
61
  },
62
62
  { throwOnError: true }
@@ -63,6 +63,18 @@ const typeLabels = {
63
63
  wp_block: __( 'Pattern' ),
64
64
  };
65
65
 
66
+ // Prevent accidental removal of certain blocks, asking the user for
67
+ // confirmation.
68
+ const blockRemovalRules = {
69
+ 'core/query': __( 'Query Loop displays a list of posts or pages.' ),
70
+ 'core/post-content': __(
71
+ 'Post Content displays the content of a post or page.'
72
+ ),
73
+ 'core/footnotes': __(
74
+ 'The Footnotes block displays all footnotes found in the content. Note that any footnotes in the content will persist after removing this block.'
75
+ ),
76
+ };
77
+
66
78
  export default function Editor( { isLoading } ) {
67
79
  const {
68
80
  record: editedPost,
@@ -197,7 +209,9 @@ export default function Editor( { isLoading } ) {
197
209
  { showVisualEditor && editedPost && (
198
210
  <>
199
211
  <BlockEditor />
200
- <BlockRemovalWarningModal />
212
+ <BlockRemovalWarningModal
213
+ rules={ blockRemovalRules }
214
+ />
201
215
  </>
202
216
  ) }
203
217
  { editorMode === 'text' &&
@@ -91,15 +91,16 @@ function Palette( { name } ) {
91
91
  </HStack>
92
92
  </NavigationButtonAsItem>
93
93
  </ItemGroup>
94
- { themeColors?.length > 0 && (
95
- <Button
96
- variant="secondary"
97
- icon={ shuffle }
98
- onClick={ randomizeThemeColors }
99
- >
100
- { __( 'Randomize colors' ) }
101
- </Button>
102
- ) }
94
+ { window.__experimentalEnableColorRandomizer &&
95
+ themeColors?.length > 0 && (
96
+ <Button
97
+ variant="secondary"
98
+ icon={ shuffle }
99
+ onClick={ randomizeThemeColors }
100
+ >
101
+ { __( 'Randomize colors' ) }
102
+ </Button>
103
+ ) }
103
104
  </VStack>
104
105
  );
105
106
  }
@@ -367,6 +367,7 @@ const BASE_SETTINGS = {
367
367
  textColumns: false,
368
368
  textDecoration: true,
369
369
  textTransform: true,
370
+ writingMode: false,
370
371
  fluid: true,
371
372
  fontFamilies: {
372
373
  theme: [
@@ -16,6 +16,14 @@
16
16
  color: currentColor;
17
17
  background: $gray-200;
18
18
  }
19
+
20
+ @include break-medium() {
21
+ width: 50%;
22
+ }
23
+
24
+ @include break-large() {
25
+ width: min(100%, 450px);
26
+ }
19
27
  }
20
28
 
21
29
  .edit-site-document-actions__command {
@@ -108,6 +108,9 @@ export default function HeaderEditMode() {
108
108
  };
109
109
  }, [] );
110
110
 
111
+ const { get: getPreference } = useSelect( preferencesStore );
112
+ const hasFixedToolbar = getPreference( editSiteStore.name, 'fixedToolbar' );
113
+
111
114
  const {
112
115
  __experimentalSetPreviewDeviceType: setPreviewDeviceType,
113
116
  setIsInserterOpened,
@@ -213,14 +216,18 @@ export default function HeaderEditMode() {
213
216
  ) }
214
217
  { isLargeViewport && (
215
218
  <>
216
- <ToolbarItem
217
- as={ ToolSelector }
218
- showTooltip={ ! showIconLabels }
219
- variant={
220
- showIconLabels ? 'tertiary' : undefined
221
- }
222
- disabled={ ! isVisualMode }
223
- />
219
+ { ! hasFixedToolbar && (
220
+ <ToolbarItem
221
+ as={ ToolSelector }
222
+ showTooltip={ ! showIconLabels }
223
+ variant={
224
+ showIconLabels
225
+ ? 'tertiary'
226
+ : undefined
227
+ }
228
+ disabled={ ! isVisualMode }
229
+ />
230
+ ) }
224
231
  <ToolbarItem
225
232
  as={ UndoButton }
226
233
  showTooltip={ ! showIconLabels }
@@ -257,7 +264,8 @@ export default function HeaderEditMode() {
257
264
  />
258
265
  ) }
259
266
  { isZoomedOutViewExperimentEnabled &&
260
- ! isDistractionFree && (
267
+ ! isDistractionFree &&
268
+ ! hasFixedToolbar && (
261
269
  <ToolbarItem
262
270
  as={ Button }
263
271
  className="edit-site-header-edit-mode__zoom-out-view-toggle"
@@ -143,7 +143,7 @@ export default function Layout() {
143
143
  headerAnimationState = canvasMode; // edit, view, init
144
144
  }
145
145
 
146
- // Sets the right context for the command center
146
+ // Sets the right context for the command palette
147
147
  const commandContext =
148
148
  canvasMode === 'edit' && isEditorPage
149
149
  ? 'site-editor-edit'
@@ -224,14 +224,25 @@ export default function Layout() {
224
224
  <AnimatePresence initial={ false }>
225
225
  { isEditorPage && isEditing && (
226
226
  <NavigableRegion
227
+ key="header"
227
228
  className="edit-site-layout__header"
228
229
  ariaLabel={ __( 'Editor top bar' ) }
229
230
  as={ motion.div }
230
231
  variants={ {
231
- isDistractionFree: { opacity: 0 },
232
- isDistractionFreeHovering: { opacity: 1 },
233
- view: { opacity: 1 },
234
- edit: { opacity: 1 },
232
+ isDistractionFree: { opacity: 0, y: 0 },
233
+ isDistractionFreeHovering: {
234
+ opacity: 1,
235
+ y: 0,
236
+ },
237
+ view: { opacity: 1, y: '-100%' },
238
+ edit: { opacity: 1, y: 0 },
239
+ } }
240
+ exit={ {
241
+ y: '-100%',
242
+ } }
243
+ initial={ {
244
+ opacity: isDistractionFree ? 1 : 0,
245
+ y: isDistractionFree ? 0 : '-100%',
235
246
  } }
236
247
  transition={ {
237
248
  type: 'tween',
@@ -239,51 +250,35 @@ export default function Layout() {
239
250
  ease: 'easeOut',
240
251
  } }
241
252
  >
242
- { isEditing && <Header /> }
253
+ <Header />
243
254
  </NavigableRegion>
244
255
  ) }
245
256
  </AnimatePresence>
246
257
  </motion.div>
247
258
 
248
259
  <div className="edit-site-layout__content">
249
- <AnimatePresence initial={ false }>
250
- {
251
- <motion.div
252
- initial={ {
253
- opacity: 0,
254
- } }
255
- animate={
256
- showSidebar
257
- ? { opacity: 1, display: 'block' }
258
- : {
259
- opacity: 0,
260
- transitionEnd: {
261
- display: 'none',
262
- },
263
- }
264
- }
265
- exit={ {
266
- opacity: 0,
267
- } }
268
- transition={ {
269
- type: 'tween',
270
- duration:
271
- // Disable transition in mobile to emulate a full page transition.
272
- disableMotion || isMobileViewport
273
- ? 0
274
- : ANIMATION_DURATION,
275
- ease: 'easeOut',
276
- } }
277
- className="edit-site-layout__sidebar"
278
- >
279
- <NavigableRegion
280
- ariaLabel={ __( 'Navigation' ) }
281
- >
282
- <Sidebar />
283
- </NavigableRegion>
284
- </motion.div>
285
- }
286
- </AnimatePresence>
260
+ <motion.div
261
+ // The sidebar is needed for routing on mobile
262
+ // (https://github.com/WordPress/gutenberg/pull/51558/files#r1231763003),
263
+ // so we can't remove the element entirely. Using `inert` will make
264
+ // it inaccessible to screen readers and keyboard navigation.
265
+ inert={ showSidebar ? undefined : 'inert' }
266
+ animate={ { opacity: showSidebar ? 1 : 0 } }
267
+ transition={ {
268
+ type: 'tween',
269
+ duration:
270
+ // Disable transition in mobile to emulate a full page transition.
271
+ disableMotion || isMobileViewport
272
+ ? 0
273
+ : ANIMATION_DURATION,
274
+ ease: 'easeOut',
275
+ } }
276
+ className="edit-site-layout__sidebar"
277
+ >
278
+ <NavigableRegion ariaLabel={ __( 'Navigation' ) }>
279
+ <Sidebar />
280
+ </NavigableRegion>
281
+ </motion.div>
287
282
 
288
283
  <SavePanel />
289
284
 
@@ -4,17 +4,6 @@
4
4
  color: $gray-400;
5
5
  display: flex;
6
6
  flex-direction: column;
7
-
8
- // Expand the fixed block toolbar to cover the document title control.
9
- .block-editor-block-contextual-toolbar {
10
- @include break-medium() {
11
- &.is-fixed {
12
- // the combined with of the tools at the right of the header and the margin left
13
- width: calc(100% - 240px - #{$grid-unit-80} - #{$grid-unit-70});
14
- }
15
- }
16
- }
17
-
18
7
  }
19
8
 
20
9
  .edit-site-layout__hub {
@@ -18,7 +18,7 @@ export default function Header( { title, subTitle, actions } ) {
18
18
  <HStack as="header" alignment="left" className="edit-site-page-header">
19
19
  <FlexBlock className="edit-site-page-header__page-title">
20
20
  <Heading
21
- as="h1"
21
+ as="h2"
22
22
  level={ 4 }
23
23
  className="edit-site-page-header__title"
24
24
  >
@@ -63,6 +63,7 @@ export default function DeletePageMenuItem( { postId, onRemove } ) {
63
63
  isOpen={ isModalOpen }
64
64
  onConfirm={ removePage }
65
65
  onCancel={ () => setIsModalOpen( false ) }
66
+ confirmButtonText={ __( 'Delete' ) }
66
67
  >
67
68
  { __( 'Are you sure you want to delete this page?' ) }
68
69
  </ConfirmDialog>
@@ -12,7 +12,6 @@ import {
12
12
  DropdownMenu,
13
13
  MenuGroup,
14
14
  MenuItem,
15
- __experimentalHeading as Heading,
16
15
  __experimentalHStack as HStack,
17
16
  __unstableCompositeItem as CompositeItem,
18
17
  Tooltip,
@@ -122,7 +121,12 @@ export default function GridItem( { categoryId, composite, icon, item } ) {
122
121
  aria-label={ item.title }
123
122
  aria-describedby={
124
123
  ariaDescriptions.length
125
- ? ariaDescriptions.join( ' ' )
124
+ ? ariaDescriptions
125
+ .map(
126
+ ( _, index ) =>
127
+ `${ descriptionId }-${ index }`
128
+ )
129
+ .join( ' ' )
126
130
  : undefined
127
131
  }
128
132
  >
@@ -155,12 +159,7 @@ export default function GridItem( { categoryId, composite, icon, item } ) {
155
159
  icon={ itemIcon }
156
160
  />
157
161
  ) }
158
- <Flex
159
- as={ Heading }
160
- level={ 5 }
161
- gap={ 0 }
162
- justify="left"
163
- >
162
+ <Flex as="span" gap={ 0 } justify="left">
164
163
  { item.title }
165
164
  { item.type === PATTERNS && (
166
165
  <Tooltip
@@ -76,7 +76,9 @@ export default function PatternsList( { categoryId, type } ) {
76
76
  { ! isResolving && !! syncedPatterns.length && (
77
77
  <>
78
78
  <VStack className="edit-site-patterns__section-header">
79
- <Heading level={ 4 }>{ __( 'Synced' ) }</Heading>
79
+ <Heading as="h2" level={ 4 }>
80
+ { __( 'Synced' ) }
81
+ </Heading>
80
82
  <Text variant="muted" as="p">
81
83
  { __(
82
84
  'Patterns that are kept in sync across your site'
@@ -86,7 +88,7 @@ export default function PatternsList( { categoryId, type } ) {
86
88
  <Grid
87
89
  icon={ symbol }
88
90
  categoryId={ categoryId }
89
- label={ __( 'Synced patterns' ) }
91
+ label={ __( 'Synced' ) }
90
92
  items={ syncedPatterns }
91
93
  />
92
94
  </>
@@ -94,7 +96,9 @@ export default function PatternsList( { categoryId, type } ) {
94
96
  { ! isResolving && !! unsyncedPatterns.length && (
95
97
  <>
96
98
  <VStack className="edit-site-patterns__section-header">
97
- <Heading level={ 4 }>{ __( 'Standard' ) }</Heading>
99
+ <Heading as="h2" level={ 4 }>
100
+ { __( 'Standard' ) }
101
+ </Heading>
98
102
  <Text variant="muted" as="p">
99
103
  { __(
100
104
  'Patterns that can be changed freely without affecting your site'
@@ -91,7 +91,7 @@
91
91
  }
92
92
 
93
93
  .edit-site-patterns__pattern-title {
94
- color: $gray-600;
94
+ color: $gray-200;
95
95
 
96
96
  .edit-site-patterns__pattern-icon {
97
97
  border-radius: $grid-unit-05;
@@ -154,7 +154,7 @@ const reusableBlockToPattern = ( reusableBlock ) => ( {
154
154
  categories: reusableBlock.wp_pattern,
155
155
  id: reusableBlock.id,
156
156
  name: reusableBlock.slug,
157
- syncStatus: reusableBlock.meta?.sync_status || SYNC_TYPES.full,
157
+ syncStatus: reusableBlock.wp_pattern_sync_status || SYNC_TYPES.full,
158
158
  title: reusableBlock.title.raw,
159
159
  type: reusableBlock.type,
160
160
  reusableBlock,
@@ -45,7 +45,7 @@ export default function PageTemplateParts() {
45
45
  header: __( 'Template Part' ),
46
46
  cell: ( templatePart ) => (
47
47
  <VStack>
48
- <Heading level={ 5 }>
48
+ <Heading as="h3" level={ 5 }>
49
49
  <Link
50
50
  params={ {
51
51
  postId: templatePart.id,
@@ -46,7 +46,7 @@ export default function PageTemplates() {
46
46
  header: __( 'Template' ),
47
47
  cell: ( template ) => (
48
48
  <VStack>
49
- <Heading level={ 5 }>
49
+ <Heading as="h3" level={ 5 }>
50
50
  <Link
51
51
  params={ {
52
52
  postId: template.id,
@@ -107,7 +107,11 @@
107
107
  .edit-site-sidebar-navigation-screen__input-control {
108
108
  width: 100%;
109
109
  .components-input-control__container {
110
- background: transparent;
110
+ background: $gray-800;
111
+
112
+ .components-button {
113
+ color: $gray-200 !important;
114
+ }
111
115
  }
112
116
  .components-input-control__input {
113
117
  color: $gray-200 !important;
@@ -37,17 +37,27 @@ export function SidebarNavigationItemGlobalStyles( props ) {
37
37
  const { setCanvasMode } = unlock( useDispatch( editSiteStore ) );
38
38
  const { createNotice } = useDispatch( noticesStore );
39
39
  const { set: setPreference } = useDispatch( preferencesStore );
40
- const { hasGlobalStyleVariations, isDistractionFree } = useSelect(
41
- ( select ) => ( {
42
- hasGlobalStyleVariations:
43
- !! select(
44
- coreStore
45
- ).__experimentalGetCurrentThemeGlobalStylesVariations()?.length,
46
- isDistractionFree: select( preferencesStore ).get(
47
- editSiteStore.name,
48
- 'distractionFree'
49
- ),
50
- } ),
40
+ const { get: getPrefference } = useSelect( preferencesStore );
41
+
42
+ const turnOffDistractionFreeMode = useCallback( () => {
43
+ const isDistractionFree = getPrefference(
44
+ editSiteStore.name,
45
+ 'distractionFree'
46
+ );
47
+ if ( ! isDistractionFree ) {
48
+ return;
49
+ }
50
+ setPreference( editSiteStore.name, 'distractionFree', false );
51
+ createNotice( 'info', __( 'Distraction free mode turned off' ), {
52
+ isDismissible: true,
53
+ type: 'snackbar',
54
+ } );
55
+ }, [ createNotice, setPreference, getPrefference ] );
56
+ const hasGlobalStyleVariations = useSelect(
57
+ ( select ) =>
58
+ !! select(
59
+ coreStore
60
+ ).__experimentalGetCurrentThemeGlobalStylesVariations()?.length,
51
61
  []
52
62
  );
53
63
  if ( hasGlobalStyleVariations ) {
@@ -63,19 +73,7 @@ export function SidebarNavigationItemGlobalStyles( props ) {
63
73
  <SidebarNavigationItem
64
74
  { ...props }
65
75
  onClick={ () => {
66
- // Disable distraction free mode.
67
- if ( isDistractionFree ) {
68
- setPreference(
69
- editSiteStore.name,
70
- 'distractionFree',
71
- false
72
- );
73
- createNotice(
74
- 'info',
75
- __( 'Distraction free mode turned off.' ),
76
- { type: 'snackbar' }
77
- );
78
- }
76
+ turnOffDistractionFreeMode();
79
77
  // Switch to edit mode.
80
78
  setCanvasMode( 'edit' );
81
79
  // Open global styles sidebar.
@@ -170,22 +168,41 @@ export default function SidebarNavigationScreenGlobalStyles() {
170
168
  const { setCanvasMode, setEditorCanvasContainerView } = unlock(
171
169
  useDispatch( editSiteStore )
172
170
  );
171
+ const { createNotice } = useDispatch( noticesStore );
172
+ const { set: setPreference } = useDispatch( preferencesStore );
173
+ const { get: getPrefference } = useSelect( preferencesStore );
174
+ const { isViewMode, isStyleBookOpened } = useSelect( ( select ) => {
175
+ const { getCanvasMode, getEditorCanvasContainerView } = unlock(
176
+ select( editSiteStore )
177
+ );
178
+ return {
179
+ isViewMode: 'view' === getCanvasMode(),
180
+ isStyleBookOpened: 'style-book' === getEditorCanvasContainerView(),
181
+ };
182
+ }, [] );
173
183
 
174
- const isStyleBookOpened = useSelect(
175
- ( select ) =>
176
- 'style-book' ===
177
- unlock( select( editSiteStore ) ).getEditorCanvasContainerView(),
178
- []
179
- );
184
+ const turnOffDistractionFreeMode = useCallback( () => {
185
+ const isDistractionFree = getPrefference(
186
+ editSiteStore.name,
187
+ 'distractionFree'
188
+ );
189
+ if ( ! isDistractionFree ) {
190
+ return;
191
+ }
192
+ setPreference( editSiteStore.name, 'distractionFree', false );
193
+ createNotice( 'info', __( 'Distraction free mode turned off' ), {
194
+ isDismissible: true,
195
+ type: 'snackbar',
196
+ } );
197
+ }, [ createNotice, setPreference, getPrefference ] );
180
198
 
181
- const openGlobalStyles = useCallback(
182
- async () =>
183
- Promise.all( [
184
- setCanvasMode( 'edit' ),
185
- openGeneralSidebar( 'edit-site/global-styles' ),
186
- ] ),
187
- [ setCanvasMode, openGeneralSidebar ]
188
- );
199
+ const openGlobalStyles = useCallback( async () => {
200
+ turnOffDistractionFreeMode();
201
+ return Promise.all( [
202
+ setCanvasMode( 'edit' ),
203
+ openGeneralSidebar( 'edit-site/global-styles' ),
204
+ ] );
205
+ }, [ setCanvasMode, openGeneralSidebar, turnOffDistractionFreeMode ] );
189
206
 
190
207
  const openStyleBook = useCallback( async () => {
191
208
  await openGlobalStyles();
@@ -246,7 +263,7 @@ export default function SidebarNavigationScreenGlobalStyles() {
246
263
  </>
247
264
  }
248
265
  />
249
- { isStyleBookOpened && ! isMobileViewport && (
266
+ { isStyleBookOpened && ! isMobileViewport && isViewMode && (
250
267
  <StyleBook
251
268
  enableResizing={ false }
252
269
  isSelected={ () => false }
@@ -1,45 +1,24 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import {
5
- __experimentalHStack as HStack,
6
- __experimentalVStack as VStack,
7
- Button,
8
- Modal,
9
- } from '@wordpress/components';
4
+ import { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';
10
5
  import { __ } from '@wordpress/i18n';
11
6
 
12
7
  export default function RenameModal( { onClose, onConfirm } ) {
13
8
  return (
14
- <Modal title={ __( 'Delete' ) } onRequestClose={ onClose }>
15
- <form>
16
- <VStack spacing="3">
17
- <p>
18
- { __(
19
- 'Are you sure you want to delete this Navigation menu?'
20
- ) }
21
- </p>
22
- <HStack justify="right">
23
- <Button variant="tertiary" onClick={ onClose }>
24
- { __( 'Cancel' ) }
25
- </Button>
9
+ <ConfirmDialog
10
+ isOpen={ true }
11
+ onConfirm={ ( e ) => {
12
+ e.preventDefault();
13
+ onConfirm();
26
14
 
27
- <Button
28
- variant="primary"
29
- type="submit"
30
- onClick={ ( e ) => {
31
- e.preventDefault();
32
- onConfirm();
33
-
34
- // Immediate close avoids ability to hit delete multiple times.
35
- onClose();
36
- } }
37
- >
38
- { __( 'Delete' ) }
39
- </Button>
40
- </HStack>
41
- </VStack>
42
- </form>
43
- </Modal>
15
+ // Immediate close avoids ability to hit delete multiple times.
16
+ onClose();
17
+ } }
18
+ onCancel={ onClose }
19
+ confirmButtonText={ __( 'Delete' ) }
20
+ >
21
+ { __( 'Are you sure you want to delete this Navigation menu?' ) }
22
+ </ConfirmDialog>
44
23
  );
45
24
  }
@@ -2,23 +2,20 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { __ } from '@wordpress/i18n';
5
- import { useDispatch } from '@wordpress/data';
6
5
  import { pencil } from '@wordpress/icons';
7
6
  /**
8
7
  * Internal dependencies
9
8
  */
10
- import { store as editSiteStore } from '../../store';
11
9
  import SidebarButton from '../sidebar-button';
12
- import { unlock } from '../../lock-unlock';
13
-
14
- export default function EditButton() {
15
- const { setCanvasMode } = unlock( useDispatch( editSiteStore ) );
10
+ import { useLink } from '../routes/link';
16
11
 
12
+ export default function EditButton( { postId } ) {
13
+ const linkInfo = useLink( {
14
+ postId,
15
+ postType: 'wp_navigation',
16
+ canvas: 'edit',
17
+ } );
17
18
  return (
18
- <SidebarButton
19
- onClick={ () => setCanvasMode( 'edit' ) }
20
- label={ __( 'Edit' ) }
21
- icon={ pencil }
22
- />
19
+ <SidebarButton { ...linkInfo } label={ __( 'Edit' ) } icon={ pencil } />
23
20
  );
24
21
  }
@@ -17,6 +17,7 @@ import { SidebarNavigationScreenWrapper } from '../sidebar-navigation-screen-nav
17
17
  import ScreenNavigationMoreMenu from './more-menu';
18
18
  import SingleNavigationMenu from './single-navigation-menu';
19
19
  import useNavigationMenuHandlers from './use-navigation-menu-handlers';
20
+ import buildNavigationLabel from '../sidebar-navigation-screen-navigation-menus/build-navigation-label';
20
21
 
21
22
  export const postType = `wp_navigation`;
22
23
 
@@ -90,7 +91,11 @@ export default function SidebarNavigationScreenNavigationMenu() {
90
91
  onDuplicate={ _handleDuplicate }
91
92
  />
92
93
  }
93
- title={ decodeEntities( menuTitle ) }
94
+ title={ buildNavigationLabel(
95
+ navigationMenu?.title,
96
+ navigationMenu?.id,
97
+ navigationMenu?.status
98
+ ) }
94
99
  description={ __( 'This Navigation Menu is empty.' ) }
95
100
  />
96
101
  );