@wordpress/editor 14.33.4 → 14.33.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/build/components/collab-sidebar/add-comment.js +10 -12
  2. package/build/components/collab-sidebar/add-comment.js.map +2 -2
  3. package/build/components/collab-sidebar/comment-menu-item.js +36 -6
  4. package/build/components/collab-sidebar/comment-menu-item.js.map +3 -3
  5. package/build/components/collab-sidebar/comments.js +316 -318
  6. package/build/components/collab-sidebar/comments.js.map +3 -3
  7. package/build/components/collab-sidebar/index.js +38 -25
  8. package/build/components/collab-sidebar/index.js.map +3 -3
  9. package/build/components/collab-sidebar/utils.js +1 -1
  10. package/build/components/collab-sidebar/utils.js.map +2 -2
  11. package/build/components/editor/index.js +2 -2
  12. package/build/components/editor/index.js.map +3 -3
  13. package/build/components/post-excerpt/panel.js +1 -6
  14. package/build/components/post-excerpt/panel.js.map +2 -2
  15. package/build/components/post-template/block-theme.js +4 -32
  16. package/build/components/post-template/block-theme.js.map +3 -3
  17. package/build/components/post-template/create-new-template-modal.js +1 -2
  18. package/build/components/post-template/create-new-template-modal.js.map +2 -2
  19. package/build/components/post-template/hooks.js +1 -3
  20. package/build/components/post-template/hooks.js.map +2 -2
  21. package/build/components/preferences-modal/index.js +1 -1
  22. package/build/components/preferences-modal/index.js.map +1 -1
  23. package/build/components/provider/index.js +2 -3
  24. package/build/components/provider/index.js.map +2 -2
  25. package/build/components/start-page-options/index.js +4 -5
  26. package/build/components/start-page-options/index.js.map +2 -2
  27. package/build/dataviews/store/private-actions.js +3 -9
  28. package/build/dataviews/store/private-actions.js.map +2 -2
  29. package/build/store/actions.js +2 -67
  30. package/build/store/actions.js.map +2 -2
  31. package/build-module/components/collab-sidebar/add-comment.js +10 -12
  32. package/build-module/components/collab-sidebar/add-comment.js.map +2 -2
  33. package/build-module/components/collab-sidebar/comment-menu-item.js +40 -7
  34. package/build-module/components/collab-sidebar/comment-menu-item.js.map +2 -2
  35. package/build-module/components/collab-sidebar/comments.js +316 -318
  36. package/build-module/components/collab-sidebar/comments.js.map +2 -2
  37. package/build-module/components/collab-sidebar/index.js +38 -25
  38. package/build-module/components/collab-sidebar/index.js.map +2 -2
  39. package/build-module/components/collab-sidebar/utils.js +1 -1
  40. package/build-module/components/collab-sidebar/utils.js.map +2 -2
  41. package/build-module/components/editor/index.js +2 -2
  42. package/build-module/components/editor/index.js.map +2 -2
  43. package/build-module/components/post-excerpt/panel.js +1 -6
  44. package/build-module/components/post-excerpt/panel.js.map +2 -2
  45. package/build-module/components/post-template/block-theme.js +4 -32
  46. package/build-module/components/post-template/block-theme.js.map +2 -2
  47. package/build-module/components/post-template/create-new-template-modal.js +1 -2
  48. package/build-module/components/post-template/create-new-template-modal.js.map +2 -2
  49. package/build-module/components/post-template/hooks.js +1 -3
  50. package/build-module/components/post-template/hooks.js.map +2 -2
  51. package/build-module/components/preferences-modal/index.js +1 -1
  52. package/build-module/components/preferences-modal/index.js.map +1 -1
  53. package/build-module/components/provider/index.js +2 -3
  54. package/build-module/components/provider/index.js.map +2 -2
  55. package/build-module/components/start-page-options/index.js +5 -6
  56. package/build-module/components/start-page-options/index.js.map +2 -2
  57. package/build-module/dataviews/store/private-actions.js +3 -9
  58. package/build-module/dataviews/store/private-actions.js.map +2 -2
  59. package/build-module/store/actions.js +3 -68
  60. package/build-module/store/actions.js.map +2 -2
  61. package/build-style/style-rtl.css +14 -2
  62. package/build-style/style.css +14 -2
  63. package/build-types/components/collab-sidebar/add-comment.d.ts +3 -3
  64. package/build-types/components/collab-sidebar/add-comment.d.ts.map +1 -1
  65. package/build-types/components/collab-sidebar/comment-menu-item.d.ts +3 -2
  66. package/build-types/components/collab-sidebar/comment-menu-item.d.ts.map +1 -1
  67. package/build-types/components/collab-sidebar/comments.d.ts +4 -4
  68. package/build-types/components/collab-sidebar/comments.d.ts.map +1 -1
  69. package/build-types/components/collab-sidebar/index.d.ts.map +1 -1
  70. package/build-types/components/collab-sidebar/utils.d.ts.map +1 -1
  71. package/build-types/components/post-excerpt/panel.d.ts.map +1 -1
  72. package/build-types/components/post-template/block-theme.d.ts.map +1 -1
  73. package/build-types/components/post-template/create-new-template-modal.d.ts.map +1 -1
  74. package/build-types/components/post-template/hooks.d.ts.map +1 -1
  75. package/build-types/components/provider/index.d.ts.map +1 -1
  76. package/build-types/components/start-page-options/index.d.ts.map +1 -1
  77. package/build-types/dataviews/store/private-actions.d.ts.map +1 -1
  78. package/build-types/store/actions.d.ts.map +1 -1
  79. package/package.json +14 -14
  80. package/src/components/collab-sidebar/add-comment.js +10 -12
  81. package/src/components/collab-sidebar/comment-menu-item.js +51 -11
  82. package/src/components/collab-sidebar/comments.js +53 -56
  83. package/src/components/collab-sidebar/index.js +66 -46
  84. package/src/components/collab-sidebar/style.scss +16 -0
  85. package/src/components/collab-sidebar/utils.js +3 -2
  86. package/src/components/editor/index.js +1 -1
  87. package/src/components/post-excerpt/panel.js +1 -11
  88. package/src/components/post-template/block-theme.js +3 -45
  89. package/src/components/post-template/create-new-template-modal.js +0 -1
  90. package/src/components/post-template/hooks.js +1 -3
  91. package/src/components/preferences-modal/index.js +1 -1
  92. package/src/components/provider/index.js +2 -5
  93. package/src/components/start-page-options/index.js +5 -6
  94. package/src/components/start-page-options/style.scss +1 -1
  95. package/src/dataviews/store/private-actions.ts +7 -16
  96. package/src/store/actions.js +3 -100
  97. package/tsconfig.tsbuildinfo +1 -1
@@ -163,8 +163,24 @@
163
163
  border-style: solid;
164
164
  padding: var(--wp-admin-border-width-focus);
165
165
  background: $white;
166
+ box-sizing: border-box;
166
167
 
167
168
  &:first-child {
168
169
  margin-left: 0;
169
170
  }
170
171
  }
172
+
173
+ .show-icon-labels {
174
+ .comment-avatar-indicator {
175
+ width: auto;
176
+ // Hide the user avatars container when labels are set to display...
177
+ div {
178
+ display: none;
179
+ }
180
+ // ... and display labels.
181
+ &::after {
182
+ content: attr(aria-label);
183
+ font-size: $helptext-font-size;
184
+ }
185
+ }
186
+ }
@@ -109,8 +109,8 @@ export function focusCommentThread( commentId, container, additionalSelector ) {
109
109
 
110
110
  // A thread without a commentId is a new comment thread.
111
111
  const threadSelector = commentId
112
- ? `[role=listitem][id="comment-thread-${ commentId }"]`
113
- : '[role=listitem]:not([id])';
112
+ ? `[role=treeitem][id="comment-thread-${ commentId }"]`
113
+ : '[role=treeitem]:not([id])';
114
114
  const selector = additionalSelector
115
115
  ? `${ threadSelector } ${ additionalSelector }`
116
116
  : threadSelector;
@@ -129,6 +129,7 @@ export function focusCommentThread( commentId, container, additionalSelector ) {
129
129
  resolve( container.querySelector( selector ) );
130
130
  }
131
131
  } );
132
+
132
133
  observer.observe( container, {
133
134
  childList: true,
134
135
  subtree: true,
@@ -87,11 +87,11 @@ function Editor( {
87
87
  { extraContent }
88
88
  </EditorInterface>
89
89
  { children }
90
- <NotesSidebar />
91
90
  <Sidebar
92
91
  onActionPerformed={ onActionPerformed }
93
92
  extraPanels={ extraSidebarPanels }
94
93
  />
94
+ <NotesSidebar />
95
95
  </ExperimentalEditorProvider>
96
96
  ) }
97
97
  </>
@@ -23,7 +23,6 @@ import PostExcerptCheck from './check';
23
23
  import PluginPostExcerpt from './plugin';
24
24
  import { TEMPLATE_ORIGINS } from '../../store/constants';
25
25
  import { store as editorStore } from '../../store';
26
- import { getTemplateInfo } from '../../utils/get-template-info';
27
26
 
28
27
  /**
29
28
  * Module Constants
@@ -133,22 +132,13 @@ function PrivateExcerpt() {
133
132
  postType,
134
133
  getCurrentPostId()
135
134
  );
136
- const fallback =
137
- ! _excerpt && isTemplateOrTemplatePart
138
- ? getTemplateInfo( {
139
- template,
140
- templateTypes:
141
- select( coreStore ).getCurrentTheme()
142
- ?.default_template_types,
143
- } )?.description
144
- : undefined;
145
135
  // For post types that use excerpt as description, we do not abide
146
136
  // by the `isEnabled` panel flag in order to render them as text.
147
137
  const _shouldRender =
148
138
  isEditorPanelEnabled( PANEL_NAME ) ||
149
139
  _shouldBeUsedAsDescription;
150
140
  return {
151
- excerpt: _excerpt ?? fallback,
141
+ excerpt: _excerpt,
152
142
  shouldRender: _shouldRender,
153
143
  shouldBeUsedAsDescription: _shouldBeUsedAsDescription,
154
144
  // If we should render, allow editing for all post types that are not used as description.
@@ -31,15 +31,10 @@ export default function BlockThemeControl( { id } ) {
31
31
  onNavigateToEntityRecord,
32
32
  getEditorSettings,
33
33
  hasGoBack,
34
- hasSpecificTemplate,
35
34
  } = useSelect( ( select ) => {
36
- const {
37
- getRenderingMode,
38
- getEditorSettings: _getEditorSettings,
39
- getCurrentPost,
40
- } = unlock( select( editorStore ) );
35
+ const { getRenderingMode, getEditorSettings: _getEditorSettings } =
36
+ unlock( select( editorStore ) );
41
37
  const editorSettings = _getEditorSettings();
42
- const currentPost = getCurrentPost();
43
38
  return {
44
39
  isTemplateHidden: getRenderingMode() === 'post-only',
45
40
  onNavigateToEntityRecord: editorSettings.onNavigateToEntityRecord,
@@ -47,7 +42,6 @@ export default function BlockThemeControl( { id } ) {
47
42
  hasGoBack: editorSettings.hasOwnProperty(
48
43
  'onNavigateToPreviousEntityRecord'
49
44
  ),
50
- hasSpecificTemplate: !! currentPost.template,
51
45
  };
52
46
  }, [] );
53
47
 
@@ -58,8 +52,6 @@ export default function BlockThemeControl( { id } ) {
58
52
  'wp_template',
59
53
  id
60
54
  );
61
- const { getEntityRecord } = useSelect( coreStore );
62
- const { editEntityRecord } = useDispatch( coreStore );
63
55
  const { createSuccessNotice } = useDispatch( noticesStore );
64
56
  const { setRenderingMode, setDefaultRenderingMode } = unlock(
65
57
  useDispatch( editorStore )
@@ -134,45 +126,11 @@ export default function BlockThemeControl( { id } ) {
134
126
  <MenuGroup>
135
127
  { canCreateTemplate && (
136
128
  <MenuItem
137
- onClick={ async () => {
129
+ onClick={ () => {
138
130
  onNavigateToEntityRecord( {
139
131
  postId: template.id,
140
132
  postType: 'wp_template',
141
133
  } );
142
- // When editing a global template,
143
- // activate the auto-draft. This is not
144
- // immediately live (we're not saving
145
- // site options), and when nothing is
146
- // saved, the setting will be ignored.
147
- // In the future, we should make the
148
- // duplication explicit, so there
149
- // wouldn't be an "edit" button for
150
- // static theme templates.
151
- if ( ! hasSpecificTemplate ) {
152
- const activeTemplates =
153
- await getEntityRecord(
154
- 'root',
155
- 'site'
156
- ).active_templates;
157
- if (
158
- activeTemplates[
159
- template.slug
160
- ] !== template.id
161
- ) {
162
- editEntityRecord(
163
- 'root',
164
- 'site',
165
- undefined,
166
- {
167
- active_templates: {
168
- ...activeTemplates,
169
- [ template.slug ]:
170
- template.id,
171
- },
172
- }
173
- );
174
- }
175
- }
176
134
  onClose();
177
135
  mayShowTemplateEditNotice();
178
136
  } }
@@ -99,7 +99,6 @@ export default function CreateNewTemplateModal( { onClose } ) {
99
99
  slug: kebabCase( title || DEFAULT_TITLE ) || 'wp-custom-template',
100
100
  content: newTemplateContent,
101
101
  title: title || DEFAULT_TITLE,
102
- status: 'publish',
103
102
  } );
104
103
 
105
104
  setIsBusy( false );
@@ -57,8 +57,6 @@ function useTemplates( postType ) {
57
57
  select( coreStore ).getEntityRecords( 'postType', 'wp_template', {
58
58
  per_page: -1,
59
59
  post_type: postType,
60
- // We look at the combined templates for now (old endpoint)
61
- // because posts only accept slugs for templates, not IDs.
62
60
  } ),
63
61
  [ postType ]
64
62
  );
@@ -73,7 +71,7 @@ export function useAvailableTemplates( postType ) {
73
71
  allowSwitchingTemplate &&
74
72
  templates?.filter(
75
73
  ( template ) =>
76
- ( template.is_custom || template.type === 'wp_template' ) &&
74
+ template.is_custom &&
77
75
  template.slug !== currentTemplateSlug &&
78
76
  !! template.content.raw // Skip empty templates.
79
77
  ),
@@ -116,7 +116,7 @@ function PreferencesModalContents( { extraSections = {} } ) {
116
116
  scope="core"
117
117
  featureName="enableChoosePatternModal"
118
118
  help={ __(
119
- 'Shows starter patterns when creating a new page.'
119
+ 'Pick from starter content when creating a new page.'
120
120
  ) }
121
121
  label={ __( 'Show starter patterns' ) }
122
122
  />
@@ -282,8 +282,7 @@ export const ExperimentalEditorProvider = withRegistryProvider(
282
282
  setEditedPost,
283
283
  setRenderingMode,
284
284
  } = unlock( useDispatch( editorStore ) );
285
- const { createWarningNotice, removeNotice } =
286
- useDispatch( noticesStore );
285
+ const { createWarningNotice } = useDispatch( noticesStore );
287
286
 
288
287
  // Ideally this should be synced on each change and not just something you do once.
289
288
  useLayoutEffect( () => {
@@ -319,9 +318,7 @@ export const ExperimentalEditorProvider = withRegistryProvider(
319
318
  // Synchronizes the active post with the state
320
319
  useEffect( () => {
321
320
  setEditedPost( post.type, post.id );
322
- // Clear any notices dependent on the post context.
323
- removeNotice( 'template-activate-notice' );
324
- }, [ post.type, post.id, setEditedPost, removeNotice ] );
321
+ }, [ post.type, post.id, setEditedPost ] );
325
322
 
326
323
  // Synchronize the editor settings as they change.
327
324
  useEffect( () => {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { Flex, FlexItem, Modal, ToggleControl } from '@wordpress/components';
4
+ import { Flex, FlexItem, Modal, CheckboxControl } from '@wordpress/components';
5
5
  import { __ } from '@wordpress/i18n';
6
6
  import { useState, useMemo, useEffect } from '@wordpress/element';
7
7
  import {
@@ -119,16 +119,15 @@ function StartPageOptionsModal( { onClose } ) {
119
119
  </div>
120
120
  <Flex
121
121
  className="editor-start-page-options__modal__actions"
122
- justify="flex-end"
122
+ justify="flex-start"
123
123
  expanded={ false }
124
124
  >
125
125
  <FlexItem>
126
- <ToggleControl
126
+ <CheckboxControl
127
127
  __nextHasNoMarginBottom
128
128
  checked={ showStartPatterns }
129
- label={ __( 'Show starter patterns' ) }
130
- help={ __(
131
- 'Shows starter patterns when creating a new page.'
129
+ label={ __(
130
+ 'Always show starter patterns for new pages'
132
131
  ) }
133
132
  onChange={ ( newValue ) => {
134
133
  setShowStartPatterns( newValue );
@@ -3,7 +3,7 @@
3
3
  @use "@wordpress/base-styles/variables" as *;
4
4
  @use "@wordpress/base-styles/z-index" as *;
5
5
 
6
- $actions-height: 92px;
6
+ $actions-height: 72px;
7
7
 
8
8
  .editor-start-page-options__modal {
9
9
  .editor-start-page-options__modal__actions {
@@ -133,28 +133,19 @@ export const registerPostTypeSchema =
133
133
  .resolveSelect( coreStore )
134
134
  .getCurrentTheme();
135
135
 
136
- let canDuplicate =
137
- ! [ 'wp_block', 'wp_template_part' ].includes(
138
- postTypeConfig.slug
139
- ) &&
140
- canCreate &&
141
- duplicatePost;
142
-
143
- // @ts-ignore
144
- if ( ! globalThis.IS_GUTENBERG_PLUGIN ) {
145
- // Outside Gutenberg, disable duplication except for wp_template.
146
- if ( 'wp_template' !== postTypeConfig.slug ) {
147
- canDuplicate = undefined;
148
- }
149
- }
150
-
151
136
  const actions = [
152
137
  postTypeConfig.viewable ? viewPost : undefined,
153
138
  !! postTypeConfig.supports?.revisions
154
139
  ? viewPostRevisions
155
140
  : undefined,
156
141
  // @ts-ignore
157
- canDuplicate,
142
+ globalThis.IS_GUTENBERG_PLUGIN
143
+ ? ! [ 'wp_template', 'wp_block', 'wp_template_part' ].includes(
144
+ postTypeConfig.slug
145
+ ) &&
146
+ canCreate &&
147
+ duplicatePost
148
+ : undefined,
158
149
  postTypeConfig.slug === 'wp_template_part' &&
159
150
  canCreate &&
160
151
  currentTheme?.is_block_theme
@@ -18,7 +18,7 @@ import {
18
18
  doActionAsync,
19
19
  } from '@wordpress/hooks';
20
20
  import { store as preferencesStore } from '@wordpress/preferences';
21
- import { __, sprintf } from '@wordpress/i18n';
21
+ import { __ } from '@wordpress/i18n';
22
22
 
23
23
  /**
24
24
  * Internal dependencies
@@ -264,7 +264,7 @@ export const savePost =
264
264
  try {
265
265
  await doActionAsync(
266
266
  'editor.savePost',
267
- { id: previousRecord.id, type: previousRecord.type },
267
+ { id: previousRecord.id },
268
268
  options
269
269
  );
270
270
  } catch ( err ) {
@@ -273,15 +273,6 @@ export const savePost =
273
273
  }
274
274
  dispatch( { type: 'REQUEST_POST_UPDATE_FINISH', options } );
275
275
 
276
- if (
277
- ! options.isAutosave &&
278
- previousRecord.type === 'wp_template' &&
279
- ( typeof previousRecord.id === 'number' ||
280
- /^\d+$/.test( previousRecord.id ) )
281
- ) {
282
- templateActivationNotice( { select, dispatch, registry } );
283
- }
284
-
285
276
  if ( error ) {
286
277
  const args = getNotificationArgumentsForSaveFail( {
287
278
  post: previousRecord,
@@ -316,91 +307,6 @@ export const savePost =
316
307
  }
317
308
  };
318
309
 
319
- async function templateActivationNotice( { select, registry } ) {
320
- const editorSettings = select.getEditorSettings();
321
-
322
- // Don't open for focused entity.
323
- if ( editorSettings.onNavigateToPreviousEntityRecord ) {
324
- return;
325
- }
326
-
327
- const { id, slug } = select.getCurrentPost();
328
- const site = await registry
329
- .select( coreStore )
330
- .getEntityRecord( 'root', 'site' );
331
-
332
- // Already active.
333
- if ( site.active_templates[ slug ] === id ) {
334
- return;
335
- }
336
-
337
- const currentTheme = await registry
338
- .resolveSelect( coreStore )
339
- .getCurrentTheme();
340
- const templateType = currentTheme?.default_template_types.find(
341
- ( type ) => type.slug === slug
342
- );
343
-
344
- await registry.dispatch( noticesStore ).createNotice(
345
- 'info',
346
- sprintf(
347
- // translators: %s: The name (or slug) of the type of template.
348
- __( 'Do you want to activate this "%s" template?' ),
349
- templateType?.title ?? slug
350
- ),
351
- {
352
- id: 'template-activate-notice',
353
- actions: [
354
- {
355
- label: __( 'Activate' ),
356
- onClick: async () => {
357
- await registry
358
- .dispatch( noticesStore )
359
- .createNotice(
360
- 'info',
361
- __( 'Activating template…' ),
362
- { id: 'template-activate-notice' }
363
- );
364
- try {
365
- const currentSite = await registry
366
- .select( coreStore )
367
- .getEntityRecord( 'root', 'site' );
368
- await registry
369
- .dispatch( coreStore )
370
- .saveEntityRecord(
371
- 'root',
372
- 'site',
373
- {
374
- active_templates: {
375
- ...currentSite.active_templates,
376
- [ slug ]: id,
377
- },
378
- },
379
- { throwOnError: true }
380
- );
381
- await registry
382
- .dispatch( noticesStore )
383
- .createSuccessNotice(
384
- __( 'Template activated.' ),
385
- { id: 'template-activate-notice' }
386
- );
387
- } catch ( error ) {
388
- await registry
389
- .dispatch( noticesStore )
390
- .createErrorNotice(
391
- __( 'Template activation failed.' ),
392
- { id: 'template-activate-notice' }
393
- );
394
- // Rethrow for debugging.
395
- throw error;
396
- }
397
- },
398
- },
399
- ],
400
- }
401
- );
402
- }
403
-
404
310
  /**
405
311
  * Action for refreshing the current post.
406
312
  *
@@ -734,10 +640,7 @@ export function updateEditorSettings( settings ) {
734
640
  export const setRenderingMode =
735
641
  ( mode ) =>
736
642
  ( { dispatch, registry, select } ) => {
737
- if (
738
- select.__unstableIsEditorReady() &&
739
- ! select.getEditorSettings().isPreviewMode
740
- ) {
643
+ if ( select.__unstableIsEditorReady() ) {
741
644
  // We clear the block selection but we also need to clear the selection from the core store.
742
645
  registry.dispatch( blockEditorStore ).clearSelectedBlock();
743
646
  dispatch.editPost( { selection: undefined }, { undoIgnore: true } );