@wordpress/editor 14.18.0 → 14.19.1

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 (160) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +2 -0
  3. package/build/components/document-bar/index.js +3 -2
  4. package/build/components/document-bar/index.js.map +1 -1
  5. package/build/components/document-outline/index.js +37 -17
  6. package/build/components/document-outline/index.js.map +1 -1
  7. package/build/components/document-outline/item.js +32 -20
  8. package/build/components/document-outline/item.js.map +1 -1
  9. package/build/components/entities-saved-states/entity-record-item.js +4 -3
  10. package/build/components/entities-saved-states/entity-record-item.js.map +1 -1
  11. package/build/components/entities-saved-states/entity-type-list.js +2 -1
  12. package/build/components/entities-saved-states/entity-type-list.js.map +1 -1
  13. package/build/components/entities-saved-states/index.js +66 -42
  14. package/build/components/entities-saved-states/index.js.map +1 -1
  15. package/build/components/post-actions/index.js +19 -28
  16. package/build/components/post-actions/index.js.map +1 -1
  17. package/build/components/post-card-panel/index.js +5 -5
  18. package/build/components/post-card-panel/index.js.map +1 -1
  19. package/build/components/post-featured-image/index.js +4 -2
  20. package/build/components/post-featured-image/index.js.map +1 -1
  21. package/build/components/post-template/block-theme.js +68 -48
  22. package/build/components/post-template/block-theme.js.map +1 -1
  23. package/build/components/post-template/classic-theme.js +30 -18
  24. package/build/components/post-template/classic-theme.js.map +1 -1
  25. package/build/components/post-template/create-new-template-modal.js +3 -1
  26. package/build/components/post-template/create-new-template-modal.js.map +1 -1
  27. package/build/components/post-template/panel.js +3 -11
  28. package/build/components/post-template/panel.js.map +1 -1
  29. package/build/components/preferences-modal/block-visibility.js +2 -1
  30. package/build/components/preferences-modal/block-visibility.js.map +1 -1
  31. package/build/components/preferences-modal/index.js +1 -1
  32. package/build/components/preferences-modal/index.js.map +1 -1
  33. package/build/components/preview-dropdown/index.js +6 -3
  34. package/build/components/preview-dropdown/index.js.map +1 -1
  35. package/build/components/provider/index.js +19 -18
  36. package/build/components/provider/index.js.map +1 -1
  37. package/build/components/sidebar/header.js +1 -1
  38. package/build/components/sidebar/header.js.map +1 -1
  39. package/build/components/sidebar/index.js +1 -1
  40. package/build/components/sidebar/index.js.map +1 -1
  41. package/build/components/start-page-options/index.js +148 -23
  42. package/build/components/start-page-options/index.js.map +1 -1
  43. package/build/components/visual-editor/edit-template-blocks-notification.js +1 -1
  44. package/build/components/visual-editor/edit-template-blocks-notification.js.map +1 -1
  45. package/build/store/private-actions.js +29 -2
  46. package/build/store/private-actions.js.map +1 -1
  47. package/build/store/private-selectors.js +45 -1
  48. package/build/store/private-selectors.js.map +1 -1
  49. package/build/store/selectors.js +8 -7
  50. package/build/store/selectors.js.map +1 -1
  51. package/build/utils/media-upload/index.js +5 -2
  52. package/build/utils/media-upload/index.js.map +1 -1
  53. package/build-module/components/document-bar/index.js +3 -2
  54. package/build-module/components/document-bar/index.js.map +1 -1
  55. package/build-module/components/document-outline/index.js +38 -18
  56. package/build-module/components/document-outline/index.js.map +1 -1
  57. package/build-module/components/document-outline/item.js +32 -20
  58. package/build-module/components/document-outline/item.js.map +1 -1
  59. package/build-module/components/entities-saved-states/entity-record-item.js +4 -3
  60. package/build-module/components/entities-saved-states/entity-record-item.js.map +1 -1
  61. package/build-module/components/entities-saved-states/entity-type-list.js +2 -1
  62. package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
  63. package/build-module/components/entities-saved-states/index.js +67 -43
  64. package/build-module/components/entities-saved-states/index.js.map +1 -1
  65. package/build-module/components/post-actions/index.js +19 -28
  66. package/build-module/components/post-actions/index.js.map +1 -1
  67. package/build-module/components/post-card-panel/index.js +5 -5
  68. package/build-module/components/post-card-panel/index.js.map +1 -1
  69. package/build-module/components/post-featured-image/index.js +4 -2
  70. package/build-module/components/post-featured-image/index.js.map +1 -1
  71. package/build-module/components/post-template/block-theme.js +68 -48
  72. package/build-module/components/post-template/block-theme.js.map +1 -1
  73. package/build-module/components/post-template/classic-theme.js +30 -18
  74. package/build-module/components/post-template/classic-theme.js.map +1 -1
  75. package/build-module/components/post-template/create-new-template-modal.js +3 -1
  76. package/build-module/components/post-template/create-new-template-modal.js.map +1 -1
  77. package/build-module/components/post-template/panel.js +3 -11
  78. package/build-module/components/post-template/panel.js.map +1 -1
  79. package/build-module/components/preferences-modal/block-visibility.js +2 -1
  80. package/build-module/components/preferences-modal/block-visibility.js.map +1 -1
  81. package/build-module/components/preferences-modal/index.js +1 -1
  82. package/build-module/components/preferences-modal/index.js.map +1 -1
  83. package/build-module/components/preview-dropdown/index.js +6 -3
  84. package/build-module/components/preview-dropdown/index.js.map +1 -1
  85. package/build-module/components/provider/index.js +19 -18
  86. package/build-module/components/provider/index.js.map +1 -1
  87. package/build-module/components/sidebar/header.js +1 -1
  88. package/build-module/components/sidebar/header.js.map +1 -1
  89. package/build-module/components/sidebar/index.js +1 -1
  90. package/build-module/components/sidebar/index.js.map +1 -1
  91. package/build-module/components/start-page-options/index.js +148 -24
  92. package/build-module/components/start-page-options/index.js.map +1 -1
  93. package/build-module/components/visual-editor/edit-template-blocks-notification.js +1 -1
  94. package/build-module/components/visual-editor/edit-template-blocks-notification.js.map +1 -1
  95. package/build-module/store/private-actions.js +25 -0
  96. package/build-module/store/private-actions.js.map +1 -1
  97. package/build-module/store/private-selectors.js +44 -1
  98. package/build-module/store/private-selectors.js.map +1 -1
  99. package/build-module/store/selectors.js +8 -7
  100. package/build-module/store/selectors.js.map +1 -1
  101. package/build-module/utils/media-upload/index.js +5 -2
  102. package/build-module/utils/media-upload/index.js.map +1 -1
  103. package/build-style/style-rtl.css +51 -9
  104. package/build-style/style.css +51 -9
  105. package/build-types/components/document-outline/index.d.ts.map +1 -1
  106. package/build-types/components/document-outline/item.d.ts +2 -1
  107. package/build-types/components/document-outline/item.d.ts.map +1 -1
  108. package/build-types/components/entities-saved-states/entity-record-item.d.ts.map +1 -1
  109. package/build-types/components/entities-saved-states/entity-type-list.d.ts.map +1 -1
  110. package/build-types/components/entities-saved-states/index.d.ts +6 -2
  111. package/build-types/components/entities-saved-states/index.d.ts.map +1 -1
  112. package/build-types/components/post-actions/index.d.ts.map +1 -1
  113. package/build-types/components/post-card-panel/index.d.ts.map +1 -1
  114. package/build-types/components/post-template/block-theme.d.ts.map +1 -1
  115. package/build-types/components/post-template/classic-theme.d.ts.map +1 -1
  116. package/build-types/components/post-template/create-new-template-modal.d.ts.map +1 -1
  117. package/build-types/components/post-template/panel.d.ts.map +1 -1
  118. package/build-types/components/preferences-modal/block-visibility.d.ts.map +1 -1
  119. package/build-types/components/preview-dropdown/index.d.ts.map +1 -1
  120. package/build-types/components/provider/index.d.ts.map +1 -1
  121. package/build-types/components/start-page-options/index.d.ts +2 -1
  122. package/build-types/components/start-page-options/index.d.ts.map +1 -1
  123. package/build-types/store/private-actions.d.ts +4 -0
  124. package/build-types/store/private-actions.d.ts.map +1 -1
  125. package/build-types/store/private-selectors.d.ts +13 -0
  126. package/build-types/store/private-selectors.d.ts.map +1 -1
  127. package/build-types/store/selectors.d.ts.map +1 -1
  128. package/build-types/utils/media-upload/index.d.ts +3 -1
  129. package/build-types/utils/media-upload/index.d.ts.map +1 -1
  130. package/package.json +37 -37
  131. package/src/components/document-bar/index.js +2 -2
  132. package/src/components/document-outline/index.js +49 -17
  133. package/src/components/document-outline/item.js +38 -23
  134. package/src/components/document-outline/style.scss +2 -0
  135. package/src/components/entities-saved-states/entity-record-item.js +2 -4
  136. package/src/components/entities-saved-states/entity-type-list.js +6 -2
  137. package/src/components/entities-saved-states/index.js +98 -58
  138. package/src/components/entities-saved-states/style.scss +40 -5
  139. package/src/components/post-actions/index.js +19 -37
  140. package/src/components/post-card-panel/index.js +9 -7
  141. package/src/components/post-featured-image/index.js +2 -0
  142. package/src/components/post-template/block-theme.js +76 -56
  143. package/src/components/post-template/classic-theme.js +31 -15
  144. package/src/components/post-template/create-new-template-modal.js +1 -0
  145. package/src/components/post-template/panel.js +2 -12
  146. package/src/components/post-text-editor/style.scss +0 -2
  147. package/src/components/preferences-modal/block-visibility.js +2 -1
  148. package/src/components/preferences-modal/index.js +1 -1
  149. package/src/components/preview-dropdown/index.js +8 -6
  150. package/src/components/provider/index.js +21 -30
  151. package/src/components/sidebar/header.js +1 -1
  152. package/src/components/sidebar/index.js +1 -1
  153. package/src/components/start-page-options/index.js +149 -23
  154. package/src/components/start-page-options/style.scss +27 -0
  155. package/src/components/visual-editor/edit-template-blocks-notification.js +1 -1
  156. package/src/store/private-actions.js +33 -0
  157. package/src/store/private-selectors.js +59 -4
  158. package/src/store/selectors.js +9 -14
  159. package/src/utils/media-upload/index.js +3 -0
  160. package/tsconfig.tsbuildinfo +1 -1
@@ -1,3 +1,30 @@
1
+ $actions-height: 92px;
2
+
3
+ .editor-start-page-options__modal {
4
+ .editor-start-page-options__modal__actions {
5
+ position: absolute;
6
+ bottom: 0;
7
+ width: 100%;
8
+ height: $actions-height;
9
+ background-color: $white;
10
+ margin-left: - $grid-unit-40;
11
+ margin-right: - $grid-unit-40;
12
+ padding-left: $grid-unit-40;
13
+ padding-right: $grid-unit-40;
14
+ border-top: 1px solid $gray-300;
15
+ z-index: z-index(".editor-start-page-options__modal__actions");
16
+ }
17
+
18
+ .block-editor-block-patterns-list {
19
+ // Since the actions container is positioned absolutely,
20
+ // this padding bottom ensures that the content wrapper will properly
21
+ // detect overflowing content and start showing scrollbars at the right
22
+ // moment. Without this padding, the content would render under the actions
23
+ // bar without causing the wrapper to show a scrollbar.
24
+ padding-bottom: $actions-height;
25
+ }
26
+ }
27
+
1
28
  // 2 column masonry layout.
2
29
  .editor-start-page-options__modal-content .block-editor-block-patterns-list {
3
30
  column-count: 2;
@@ -94,7 +94,7 @@ export default function EditTemplateBlocksNotification( { contentRef } ) {
94
94
  size="medium"
95
95
  >
96
96
  { __(
97
- 'You’ve tried to select a block that is part of a template, which may be used on other posts and pages. Would you like to edit the template?'
97
+ 'You’ve tried to select a block that is part of a template that may be used elsewhere on your site. Would you like to edit the template?'
98
98
  ) }
99
99
  </ConfirmDialog>
100
100
  );
@@ -492,3 +492,36 @@ export const removeTemplates =
492
492
  .createErrorNotice( errorMessage, { type: 'snackbar' } );
493
493
  }
494
494
  };
495
+
496
+ /**
497
+ * Set the default rendering mode preference for the current post type.
498
+ *
499
+ * @param {string} mode The rendering mode to set as default.
500
+ */
501
+ export const setDefaultRenderingMode =
502
+ ( mode ) =>
503
+ ( { select, registry } ) => {
504
+ const postType = select.getCurrentPostType();
505
+ const theme = registry
506
+ .select( coreStore )
507
+ .getCurrentTheme()?.stylesheet;
508
+ const renderingModes =
509
+ registry
510
+ .select( preferencesStore )
511
+ .get( 'core', 'renderingModes' )?.[ theme ] ?? {};
512
+
513
+ if ( renderingModes[ postType ] === mode ) {
514
+ return;
515
+ }
516
+
517
+ const newModes = {
518
+ [ theme ]: {
519
+ ...renderingModes,
520
+ [ postType ]: mode,
521
+ },
522
+ };
523
+
524
+ registry
525
+ .dispatch( preferencesStore )
526
+ .set( 'core', 'renderingModes', newModes );
527
+ };
@@ -16,6 +16,7 @@ import {
16
16
  verse,
17
17
  } from '@wordpress/icons';
18
18
  import { store as coreStore } from '@wordpress/core-data';
19
+ import { store as preferencesStore } from '@wordpress/preferences';
19
20
 
20
21
  /**
21
22
  * Internal dependencies
@@ -34,6 +35,11 @@ const EMPTY_INSERTION_POINT = {
34
35
  filterValue: undefined,
35
36
  };
36
37
 
38
+ /**
39
+ * These are rendering modes that the editor supports.
40
+ */
41
+ const RENDERING_MODES = [ 'post-only', 'template-locked' ];
42
+
37
43
  /**
38
44
  * Get the inserter.
39
45
  *
@@ -99,10 +105,8 @@ export const getPostIcon = createRegistrySelector(
99
105
  postType === 'wp_template'
100
106
  ) {
101
107
  const templateAreas =
102
- select( coreStore ).getEntityRecord(
103
- 'root',
104
- '__unstableBase'
105
- )?.default_template_part_areas || [];
108
+ select( coreStore ).getCurrentTheme()
109
+ ?.default_template_part_areas || [];
106
110
 
107
111
  const areaData = templateAreas.find(
108
112
  ( item ) => options.area === item.area
@@ -215,3 +219,54 @@ export const getPostBlocksByName = createRegistrySelector( ( select ) =>
215
219
  () => [ select( blockEditorStore ).getBlocks() ]
216
220
  )
217
221
  );
222
+
223
+ /**
224
+ * Returns the default rendering mode for a post type by user preference or post type configuration.
225
+ *
226
+ * @param {Object} state Global application state.
227
+ * @param {string} postType The post type.
228
+ *
229
+ * @return {string} The default rendering mode. Returns `undefined` while resolving value.
230
+ */
231
+ export const getDefaultRenderingMode = createRegistrySelector(
232
+ ( select ) => ( state, postType ) => {
233
+ const { getPostType, getCurrentTheme, hasFinishedResolution } =
234
+ select( coreStore );
235
+
236
+ // This needs to be called before `hasFinishedResolution`.
237
+ // eslint-disable-next-line @wordpress/no-unused-vars-before-return
238
+ const currentTheme = getCurrentTheme();
239
+ // eslint-disable-next-line @wordpress/no-unused-vars-before-return
240
+ const postTypeEntity = getPostType( postType );
241
+
242
+ // Wait for the post type and theme resolution.
243
+ if (
244
+ ! hasFinishedResolution( 'getPostType', [ postType ] ) ||
245
+ ! hasFinishedResolution( 'getCurrentTheme' )
246
+ ) {
247
+ return undefined;
248
+ }
249
+
250
+ const theme = currentTheme?.stylesheet;
251
+ const defaultModePreference = select( preferencesStore ).get(
252
+ 'core',
253
+ 'renderingModes'
254
+ )?.[ theme ]?.[ postType ];
255
+ const postTypeDefaultMode = Array.isArray(
256
+ postTypeEntity?.supports?.editor
257
+ )
258
+ ? postTypeEntity.supports.editor.find(
259
+ ( features ) => 'default-mode' in features
260
+ )?.[ 'default-mode' ]
261
+ : undefined;
262
+
263
+ const defaultMode = defaultModePreference || postTypeDefaultMode;
264
+
265
+ // Fallback gracefully to 'post-only' when rendering mode is not supported.
266
+ if ( ! RENDERING_MODES.includes( defaultMode ) ) {
267
+ return 'post-only';
268
+ }
269
+
270
+ return defaultMode;
271
+ }
272
+ );
@@ -1709,11 +1709,10 @@ export const __experimentalGetDefaultTemplateTypes = createRegistrySelector(
1709
1709
  {
1710
1710
  since: '6.8',
1711
1711
  alternative:
1712
- "select('core/core-data').getEntityRecord( 'root', '__unstableBase' )?.default_template_types",
1712
+ "select('core/core-data').getCurrentTheme()?.default_template_types",
1713
1713
  }
1714
1714
  );
1715
- return select( coreStore ).getEntityRecord( 'root', '__unstableBase' )
1716
- ?.default_template_types;
1715
+ return select( coreStore ).getCurrentTheme()?.default_template_types;
1717
1716
  }
1718
1717
  );
1719
1718
 
@@ -1732,12 +1731,12 @@ export const __experimentalGetDefaultTemplatePartAreas = createRegistrySelector(
1732
1731
  {
1733
1732
  since: '6.8',
1734
1733
  alternative:
1735
- "select('core/core-data').getEntityRecord( 'root', '__unstableBase' )?.default_template_part_areas",
1734
+ "select('core/core-data').getCurrentTheme()?.default_template_part_areas",
1736
1735
  }
1737
1736
  );
1738
1737
 
1739
1738
  const areas =
1740
- select( coreStore ).getEntityRecord( 'root', '__unstableBase' )
1739
+ select( coreStore ).getCurrentTheme()
1741
1740
  ?.default_template_part_areas || [];
1742
1741
 
1743
1742
  return areas.map( ( item ) => {
@@ -1763,10 +1762,8 @@ export const __experimentalGetDefaultTemplateType = createRegistrySelector(
1763
1762
  since: '6.8',
1764
1763
  }
1765
1764
  );
1766
- const templateTypes = select( coreStore ).getEntityRecord(
1767
- 'root',
1768
- '__unstableBase'
1769
- )?.default_template_types;
1765
+ const templateTypes =
1766
+ select( coreStore ).getCurrentTheme()?.default_template_types;
1770
1767
 
1771
1768
  if ( ! templateTypes ) {
1772
1769
  return EMPTY_OBJECT;
@@ -1799,13 +1796,11 @@ export const __experimentalGetTemplateInfo = createRegistrySelector(
1799
1796
  return EMPTY_OBJECT;
1800
1797
  }
1801
1798
 
1802
- const templateTypes =
1803
- select( coreStore ).getEntityRecord( 'root', '__unstableBase' )
1804
- ?.default_template_types || [];
1799
+ const currentTheme = select( coreStore ).getCurrentTheme();
1805
1800
 
1801
+ const templateTypes = currentTheme?.default_template_types || [];
1806
1802
  const templateAreas =
1807
- select( coreStore ).getEntityRecord( 'root', '__unstableBase' )
1808
- ?.default_template_part_areas || [];
1803
+ currentTheme?.default_template_part_areas || [];
1809
1804
 
1810
1805
  return getTemplateInfo( {
1811
1806
  template,
@@ -28,6 +28,7 @@ const noop = () => {};
28
28
  * @param {Function} $0.onError Function called when an error happens.
29
29
  * @param {Function} $0.onFileChange Function called each time a file or a temporary representation of the file is available.
30
30
  * @param {Function} $0.onSuccess Function called after the final representation of the file is available.
31
+ * @param {boolean} $0.multiple Whether to allow multiple files to be uploaded.
31
32
  */
32
33
  export default function mediaUpload( {
33
34
  additionalData = {},
@@ -37,6 +38,7 @@ export default function mediaUpload( {
37
38
  onError = noop,
38
39
  onFileChange,
39
40
  onSuccess,
41
+ multiple = true,
40
42
  } ) {
41
43
  const { getCurrentPost, getEditorSettings } = select( editorStore );
42
44
  const {
@@ -92,5 +94,6 @@ export default function mediaUpload( {
92
94
  onError( message );
93
95
  },
94
96
  wpAllowedMimeTypes,
97
+ multiple,
95
98
  } );
96
99
  }