@wordpress/editor 12.20.0 → 13.0.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 (132) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/build/components/document-outline/check.js +1 -7
  3. package/build/components/document-outline/check.js.map +1 -1
  4. package/build/components/editor-notices/index.js +12 -12
  5. package/build/components/editor-notices/index.js.map +1 -1
  6. package/build/components/editor-snackbars/index.js +5 -8
  7. package/build/components/editor-snackbars/index.js.map +1 -1
  8. package/build/components/entities-saved-states/entity-record-item.js +1 -0
  9. package/build/components/entities-saved-states/entity-record-item.js.map +1 -1
  10. package/build/components/page-attributes/parent.js +2 -1
  11. package/build/components/page-attributes/parent.js.map +1 -1
  12. package/build/components/post-author/combobox.js +1 -0
  13. package/build/components/post-author/combobox.js.map +1 -1
  14. package/build/components/post-comments/index.js +1 -0
  15. package/build/components/post-comments/index.js.map +1 -1
  16. package/build/components/post-format/index.js +1 -7
  17. package/build/components/post-format/index.js.map +1 -1
  18. package/build/components/post-pending-status/index.js +1 -0
  19. package/build/components/post-pending-status/index.js.map +1 -1
  20. package/build/components/post-pingbacks/index.js +1 -0
  21. package/build/components/post-pingbacks/index.js.map +1 -1
  22. package/build/components/post-publish-button/index.js +10 -1
  23. package/build/components/post-publish-button/index.js.map +1 -1
  24. package/build/components/post-publish-panel/index.js +1 -0
  25. package/build/components/post-publish-panel/index.js.map +1 -1
  26. package/build/components/post-publish-panel/maybe-category-panel.js +10 -5
  27. package/build/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  28. package/build/components/post-publish-panel/maybe-post-format-panel.js +1 -1
  29. package/build/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  30. package/build/components/post-saved-state/index.js +19 -5
  31. package/build/components/post-saved-state/index.js.map +1 -1
  32. package/build/components/post-sticky/index.js +1 -0
  33. package/build/components/post-sticky/index.js.map +1 -1
  34. package/build/components/post-taxonomies/flat-term-selector.js +2 -2
  35. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  36. package/build/components/post-taxonomies/hierarchical-term-selector.js +2 -1
  37. package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  38. package/build/components/post-taxonomies/index.js +2 -8
  39. package/build/components/post-taxonomies/index.js.map +1 -1
  40. package/build/components/post-title/index.js +4 -2
  41. package/build/components/post-title/index.js.map +1 -1
  42. package/build/components/post-title/index.native.js +2 -4
  43. package/build/components/post-title/index.native.js.map +1 -1
  44. package/build/components/post-url/index.js +6 -2
  45. package/build/components/post-url/index.js.map +1 -1
  46. package/build/components/provider/index.native.js.map +1 -1
  47. package/build/components/provider/use-block-editor-settings.js +10 -9
  48. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  49. package/build/components/provider/use-block-editor-settings.native.js +3 -1
  50. package/build/components/provider/use-block-editor-settings.native.js.map +1 -1
  51. package/build-module/components/document-outline/check.js +1 -6
  52. package/build-module/components/document-outline/check.js.map +1 -1
  53. package/build-module/components/editor-notices/index.js +12 -11
  54. package/build-module/components/editor-notices/index.js.map +1 -1
  55. package/build-module/components/editor-snackbars/index.js +5 -7
  56. package/build-module/components/editor-snackbars/index.js.map +1 -1
  57. package/build-module/components/entities-saved-states/entity-record-item.js +1 -0
  58. package/build-module/components/entities-saved-states/entity-record-item.js.map +1 -1
  59. package/build-module/components/page-attributes/parent.js +3 -2
  60. package/build-module/components/page-attributes/parent.js.map +1 -1
  61. package/build-module/components/post-author/combobox.js +1 -0
  62. package/build-module/components/post-author/combobox.js.map +1 -1
  63. package/build-module/components/post-comments/index.js +1 -0
  64. package/build-module/components/post-comments/index.js.map +1 -1
  65. package/build-module/components/post-format/index.js +1 -6
  66. package/build-module/components/post-format/index.js.map +1 -1
  67. package/build-module/components/post-pending-status/index.js +1 -0
  68. package/build-module/components/post-pending-status/index.js.map +1 -1
  69. package/build-module/components/post-pingbacks/index.js +1 -0
  70. package/build-module/components/post-pingbacks/index.js.map +1 -1
  71. package/build-module/components/post-publish-button/index.js +10 -1
  72. package/build-module/components/post-publish-button/index.js.map +1 -1
  73. package/build-module/components/post-publish-panel/index.js +1 -0
  74. package/build-module/components/post-publish-panel/index.js.map +1 -1
  75. package/build-module/components/post-publish-panel/maybe-category-panel.js +10 -5
  76. package/build-module/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  77. package/build-module/components/post-publish-panel/maybe-post-format-panel.js +2 -2
  78. package/build-module/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  79. package/build-module/components/post-saved-state/index.js +19 -5
  80. package/build-module/components/post-saved-state/index.js.map +1 -1
  81. package/build-module/components/post-sticky/index.js +1 -0
  82. package/build-module/components/post-sticky/index.js.map +1 -1
  83. package/build-module/components/post-taxonomies/flat-term-selector.js +3 -3
  84. package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
  85. package/build-module/components/post-taxonomies/hierarchical-term-selector.js +3 -2
  86. package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  87. package/build-module/components/post-taxonomies/index.js +2 -7
  88. package/build-module/components/post-taxonomies/index.js.map +1 -1
  89. package/build-module/components/post-title/index.js +3 -2
  90. package/build-module/components/post-title/index.js.map +1 -1
  91. package/build-module/components/post-title/index.native.js +2 -3
  92. package/build-module/components/post-title/index.native.js.map +1 -1
  93. package/build-module/components/post-url/index.js +6 -2
  94. package/build-module/components/post-url/index.js.map +1 -1
  95. package/build-module/components/provider/index.native.js +2 -1
  96. package/build-module/components/provider/index.native.js.map +1 -1
  97. package/build-module/components/provider/use-block-editor-settings.js +10 -8
  98. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  99. package/build-module/components/provider/use-block-editor-settings.native.js +2 -1
  100. package/build-module/components/provider/use-block-editor-settings.native.js.map +1 -1
  101. package/build-style/style-rtl.css +17 -3
  102. package/build-style/style.css +17 -3
  103. package/package.json +31 -30
  104. package/src/components/document-outline/check.js +1 -7
  105. package/src/components/editor-help/test/index.native.js +2 -2
  106. package/src/components/editor-notices/index.js +6 -13
  107. package/src/components/editor-snackbars/index.js +3 -8
  108. package/src/components/entities-saved-states/entity-record-item.js +1 -0
  109. package/src/components/page-attributes/parent.js +3 -3
  110. package/src/components/post-author/combobox.js +1 -0
  111. package/src/components/post-comments/index.js +1 -0
  112. package/src/components/post-format/index.js +1 -7
  113. package/src/components/post-pending-status/index.js +1 -0
  114. package/src/components/post-pingbacks/index.js +1 -0
  115. package/src/components/post-publish-button/index.js +11 -1
  116. package/src/components/post-publish-panel/index.js +1 -0
  117. package/src/components/post-publish-panel/maybe-category-panel.js +9 -12
  118. package/src/components/post-publish-panel/maybe-post-format-panel.js +2 -2
  119. package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +11 -15
  120. package/src/components/post-saved-state/index.js +15 -3
  121. package/src/components/post-saved-state/test/__snapshots__/index.js.snap +1 -1
  122. package/src/components/post-sticky/index.js +1 -0
  123. package/src/components/post-taxonomies/flat-term-selector.js +3 -3
  124. package/src/components/post-taxonomies/hierarchical-term-selector.js +3 -2
  125. package/src/components/post-taxonomies/index.js +2 -8
  126. package/src/components/post-taxonomies/test/index.js +1 -1
  127. package/src/components/post-title/index.js +6 -2
  128. package/src/components/post-title/index.native.js +2 -3
  129. package/src/components/post-url/index.js +6 -2
  130. package/src/components/provider/index.native.js +1 -0
  131. package/src/components/provider/use-block-editor-settings.js +56 -50
  132. package/src/components/provider/use-block-editor-settings.native.js +3 -1
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import { View } from 'react-native';
5
- import { isEmpty } from 'lodash';
6
5
 
7
6
  /**
8
7
  * WordPress dependencies
@@ -80,7 +79,7 @@ class PostTitle extends Component {
80
79
 
81
80
  getTitle( title, postType ) {
82
81
  if ( 'page' === postType ) {
83
- return isEmpty( title )
82
+ return ! title
84
83
  ? /* translators: accessibility text. empty page title. */
85
84
  __( 'Page title. Empty' )
86
85
  : sprintf(
@@ -90,7 +89,7 @@ class PostTitle extends Component {
90
89
  );
91
90
  }
92
91
 
93
- return isEmpty( title )
92
+ return ! title
94
93
  ? /* translators: accessibility text. empty post title. */
95
94
  __( 'Post title. Empty' )
96
95
  : sprintf(
@@ -23,16 +23,20 @@ export default function PostURL( { onClose } ) {
23
23
  permalinkPrefix,
24
24
  permalinkSuffix,
25
25
  } = useSelect( ( select ) => {
26
+ const post = select( editorStore ).getCurrentPost();
26
27
  const postTypeSlug = select( editorStore ).getCurrentPostType();
27
28
  const postType = select( coreStore ).getPostType( postTypeSlug );
28
29
  const permalinkParts = select( editorStore ).getPermalinkParts();
30
+ const hasPublishAction = post?._links?.[ 'wp:action-publish' ] ?? false;
31
+
29
32
  return {
30
- isEditable: select( editorStore ).isPermalinkEditable(),
33
+ isEditable:
34
+ select( editorStore ).isPermalinkEditable() && hasPublishAction,
31
35
  postSlug: safeDecodeURIComponent(
32
36
  select( editorStore ).getEditedPostSlug()
33
37
  ),
34
38
  viewPostLabel: postType?.labels.view_item,
35
- postLink: select( editorStore ).getCurrentPost().link,
39
+ postLink: post.link,
36
40
  permalinkPrefix: permalinkParts?.prefix,
37
41
  permalinkSuffix: permalinkParts?.suffix,
38
42
  };
@@ -56,6 +56,7 @@ const postTypeEntities = [
56
56
  import { EditorHelpTopics, store as editorStore } from '@wordpress/editor';
57
57
  import { store as noticesStore } from '@wordpress/notices';
58
58
  import { store as coreStore } from '@wordpress/core-data';
59
+ // eslint-disable-next-line no-restricted-imports
59
60
  import { store as editPostStore } from '@wordpress/edit-post';
60
61
 
61
62
  /**
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { pick } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -12,6 +7,7 @@ import {
12
7
  store as coreStore,
13
8
  __experimentalFetchLinkSuggestions as fetchLinkSuggestions,
14
9
  __experimentalFetchUrlData as fetchUrlData,
10
+ __experimentalFetchMedia as fetchMedia,
15
11
  } from '@wordpress/core-data';
16
12
  import { __ } from '@wordpress/i18n';
17
13
 
@@ -21,6 +17,8 @@ import { __ } from '@wordpress/i18n';
21
17
  import { mediaUpload } from '../../utils';
22
18
  import { store as editorStore } from '../../store';
23
19
 
20
+ const EMPTY_BLOCKS_LIST = [];
21
+
24
22
  /**
25
23
  * React hook used to compute the block editor settings to use for the post editor.
26
24
  *
@@ -55,7 +53,7 @@ function useBlockEditorSettings( settings, hasTemplate ) {
55
53
  'wp_block',
56
54
  { per_page: -1 }
57
55
  )
58
- : [], // Reusable blocks are fetched in the native version of this hook.
56
+ : EMPTY_BLOCKS_LIST, // Reusable blocks are fetched in the native version of this hook.
59
57
  hasUploadPermissions: canUser( 'create', 'media' ) ?? true,
60
58
  userCanCreatePages: canUser( 'create', 'pages' ),
61
59
  pageOnFront: siteSettings?.page_on_front,
@@ -133,56 +131,64 @@ function useBlockEditorSettings( settings, hasTemplate ) {
133
131
 
134
132
  return useMemo(
135
133
  () => ( {
136
- ...pick( settings, [
137
- '__experimentalBlockDirectory',
138
- '__experimentalDiscussionSettings',
139
- '__experimentalFeatures',
140
- '__experimentalPreferredStyleVariations',
141
- '__experimentalSetIsInserterOpened',
142
- '__unstableGalleryWithImageBlocks',
143
- 'alignWide',
144
- 'allowedBlockTypes',
145
- 'bodyPlaceholder',
146
- 'canLockBlocks',
147
- 'codeEditingEnabled',
148
- 'colors',
149
- 'disableCustomColors',
150
- 'disableCustomFontSizes',
151
- 'disableCustomSpacingSizes',
152
- 'disableCustomGradients',
153
- 'disableLayoutStyles',
154
- 'enableCustomLineHeight',
155
- 'enableCustomSpacing',
156
- 'enableCustomUnits',
157
- 'focusMode',
158
- 'fontSizes',
159
- 'gradients',
160
- 'generateAnchors',
161
- 'hasFixedToolbar',
162
- 'isDistractionFree',
163
- 'hasInlineToolbar',
164
- 'imageDefaultSize',
165
- 'imageDimensions',
166
- 'imageEditing',
167
- 'imageSizes',
168
- 'isRTL',
169
- 'keepCaretInsideBlock',
170
- 'maxWidth',
171
- 'onUpdateDefaultBlockStyles',
172
- 'styles',
173
- 'template',
174
- 'templateLock',
175
- 'titlePlaceholder',
176
- 'supportsLayout',
177
- 'widgetTypesToHideFromLegacyWidgetBlock',
178
- '__unstableResolvedAssets',
179
- ] ),
134
+ ...Object.fromEntries(
135
+ Object.entries( settings ).filter( ( [ key ] ) =>
136
+ [
137
+ '__experimentalBlockDirectory',
138
+ '__experimentalBlockInspectorTabs',
139
+ '__experimentalDiscussionSettings',
140
+ '__experimentalFeatures',
141
+ '__experimentalPreferredStyleVariations',
142
+ '__experimentalSetIsInserterOpened',
143
+ '__unstableGalleryWithImageBlocks',
144
+ 'alignWide',
145
+ 'allowedBlockTypes',
146
+ 'bodyPlaceholder',
147
+ 'canLockBlocks',
148
+ 'codeEditingEnabled',
149
+ 'colors',
150
+ 'disableCustomColors',
151
+ 'disableCustomFontSizes',
152
+ 'disableCustomSpacingSizes',
153
+ 'disableCustomGradients',
154
+ 'disableLayoutStyles',
155
+ 'enableCustomLineHeight',
156
+ 'enableCustomSpacing',
157
+ 'enableCustomUnits',
158
+ 'focusMode',
159
+ 'fontSizes',
160
+ 'gradients',
161
+ 'generateAnchors',
162
+ 'hasFixedToolbar',
163
+ 'isDistractionFree',
164
+ 'hasInlineToolbar',
165
+ 'imageDefaultSize',
166
+ 'imageDimensions',
167
+ 'imageEditing',
168
+ 'imageSizes',
169
+ 'isRTL',
170
+ 'keepCaretInsideBlock',
171
+ 'maxWidth',
172
+ 'onUpdateDefaultBlockStyles',
173
+ 'styles',
174
+ 'template',
175
+ 'templateLock',
176
+ 'titlePlaceholder',
177
+ 'supportsLayout',
178
+ 'widgetTypesToHideFromLegacyWidgetBlock',
179
+ '__unstableResolvedAssets',
180
+ ].includes( key )
181
+ )
182
+ ),
180
183
  mediaUpload: hasUploadPermissions ? mediaUpload : undefined,
181
184
  __experimentalReusableBlocks: reusableBlocks,
182
185
  __experimentalBlockPatterns: blockPatterns,
183
186
  __experimentalBlockPatternCategories: blockPatternCategories,
184
187
  __experimentalFetchLinkSuggestions: ( search, searchOptions ) =>
185
188
  fetchLinkSuggestions( search, searchOptions, settings ),
189
+ // TODO: We should find a proper way to consolidate similar cases
190
+ // like reusable blocks, fetch entities, etc.
191
+ __unstableFetchMedia: fetchMedia,
186
192
  __experimentalFetchRichUrlData: fetchUrlData,
187
193
  __experimentalCanUserUseUnfilteredHTML: canUseUnfilteredHTML,
188
194
  __experimentalUndo: undo,
@@ -11,6 +11,8 @@ import { store as coreStore } from '@wordpress/core-data';
11
11
  import useBlockEditorSettings from './use-block-editor-settings.js';
12
12
  import { store as editorStore } from '../../store';
13
13
 
14
+ const EMPTY_BLOCKS_LIST = [];
15
+
14
16
  function useNativeBlockEditorSettings( settings, hasTemplate ) {
15
17
  const capabilities = settings.capabilities ?? {};
16
18
  const editorSettings = useBlockEditorSettings( settings, hasTemplate );
@@ -27,7 +29,7 @@ function useNativeBlockEditorSettings( settings, hasTemplate ) {
27
29
  // Related issue: https://github.com/wordpress-mobile/gutenberg-mobile/issues/2661
28
30
  { per_page: 100 }
29
31
  )
30
- : [],
32
+ : EMPTY_BLOCKS_LIST,
31
33
  isTitleSelected: select( editorStore ).isPostTitleSelected(),
32
34
  };
33
35
  },