@wordpress/editor 13.30.0 → 13.32.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 (219) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +857 -0
  3. package/build/bindings/index.js +3 -1
  4. package/build/bindings/index.js.map +1 -1
  5. package/build/components/block-settings-menu/plugin-block-settings-menu-item.js +107 -0
  6. package/build/components/block-settings-menu/plugin-block-settings-menu-item.js.map +1 -0
  7. package/build/components/commands/index.js +1 -1
  8. package/build/components/commands/index.js.map +1 -1
  9. package/build/components/deprecated.js +158 -0
  10. package/build/components/deprecated.js.map +1 -1
  11. package/build/components/document-bar/index.js +7 -10
  12. package/build/components/document-bar/index.js.map +1 -1
  13. package/build/components/document-outline/index.js +1 -1
  14. package/build/components/document-outline/index.js.map +1 -1
  15. package/build/components/editor-canvas/edit-template-blocks-notification.js +2 -39
  16. package/build/components/editor-canvas/edit-template-blocks-notification.js.map +1 -1
  17. package/build/components/editor-canvas/index.js +3 -0
  18. package/build/components/editor-canvas/index.js.map +1 -1
  19. package/build/components/entities-saved-states/hooks/use-is-dirty.js +10 -16
  20. package/build/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
  21. package/build/components/entities-saved-states/index.js +28 -88
  22. package/build/components/entities-saved-states/index.js.map +1 -1
  23. package/build/components/error-boundary/index.native.js +133 -0
  24. package/build/components/error-boundary/index.native.js.map +1 -0
  25. package/build/components/index.js +33 -8
  26. package/build/components/index.js.map +1 -1
  27. package/build/components/index.native.js +9 -1
  28. package/build/components/index.native.js.map +1 -1
  29. package/build/components/inserter-sidebar/index.js +5 -1
  30. package/build/components/inserter-sidebar/index.js.map +1 -1
  31. package/build/components/list-view-sidebar/index.js +2 -1
  32. package/build/components/list-view-sidebar/index.js.map +1 -1
  33. package/build/components/pattern-overrides-panel/index.js +30 -0
  34. package/build/components/pattern-overrides-panel/index.js.map +1 -0
  35. package/build/components/plugin-document-setting-panel/index.js +123 -0
  36. package/build/components/plugin-document-setting-panel/index.js.map +1 -0
  37. package/build/components/plugin-post-publish-panel/index.js +68 -0
  38. package/build/components/plugin-post-publish-panel/index.js.map +1 -0
  39. package/build/components/plugin-pre-publish-panel/index.js +71 -0
  40. package/build/components/plugin-pre-publish-panel/index.js.map +1 -0
  41. package/build/components/post-actions/actions.js +455 -0
  42. package/build/components/post-actions/actions.js.map +1 -0
  43. package/build/components/post-card-panel/index.js +93 -0
  44. package/build/components/post-card-panel/index.js.map +1 -0
  45. package/build/components/post-featured-image/index.js +3 -8
  46. package/build/components/post-featured-image/index.js.map +1 -1
  47. package/build/components/post-featured-image/panel.js +7 -3
  48. package/build/components/post-featured-image/panel.js.map +1 -1
  49. package/build/components/post-sync-status/index.js +0 -72
  50. package/build/components/post-sync-status/index.js.map +1 -1
  51. package/build/components/post-taxonomies/flat-term-selector.js +7 -3
  52. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  53. package/build/components/post-title/index.native.js +1 -1
  54. package/build/components/post-title/index.native.js.map +1 -1
  55. package/build/components/provider/disable-non-page-content-blocks.js +36 -20
  56. package/build/components/provider/disable-non-page-content-blocks.js.map +1 -1
  57. package/build/components/provider/index.js +1 -1
  58. package/build/components/provider/index.js.map +1 -1
  59. package/build/components/provider/use-block-editor-settings.js +8 -9
  60. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  61. package/build/components/provider/use-hide-blocks-from-inserter.js +4 -3
  62. package/build/components/provider/use-hide-blocks-from-inserter.js.map +1 -1
  63. package/build/components/template-areas/index.js +70 -0
  64. package/build/components/template-areas/index.js.map +1 -0
  65. package/build/hooks/use-select-nearest-editable-block.js +87 -0
  66. package/build/hooks/use-select-nearest-editable-block.js.map +1 -0
  67. package/build/private-apis.js +6 -2
  68. package/build/private-apis.js.map +1 -1
  69. package/build/store/actions.js +46 -6
  70. package/build/store/actions.js.map +1 -1
  71. package/build/store/constants.js +3 -1
  72. package/build/store/constants.js.map +1 -1
  73. package/build/store/private-actions.js +80 -1
  74. package/build/store/private-actions.js.map +1 -1
  75. package/build/store/private-selectors.js +56 -3
  76. package/build/store/private-selectors.js.map +1 -1
  77. package/build/store/reducer.js +14 -1
  78. package/build/store/reducer.js.map +1 -1
  79. package/build/store/selectors.js +21 -11
  80. package/build/store/selectors.js.map +1 -1
  81. package/build/store/utils/get-filtered-template-parts.js +71 -0
  82. package/build/store/utils/get-filtered-template-parts.js.map +1 -0
  83. package/build-module/bindings/index.js +3 -1
  84. package/build-module/bindings/index.js.map +1 -1
  85. package/build-module/components/block-settings-menu/plugin-block-settings-menu-item.js +100 -0
  86. package/build-module/components/block-settings-menu/plugin-block-settings-menu-item.js.map +1 -0
  87. package/build-module/components/commands/index.js +1 -1
  88. package/build-module/components/commands/index.js.map +1 -1
  89. package/build-module/components/deprecated.js +159 -0
  90. package/build-module/components/deprecated.js.map +1 -1
  91. package/build-module/components/document-bar/index.js +8 -11
  92. package/build-module/components/document-bar/index.js.map +1 -1
  93. package/build-module/components/document-outline/index.js +1 -1
  94. package/build-module/components/document-outline/index.js.map +1 -1
  95. package/build-module/components/editor-canvas/edit-template-blocks-notification.js +4 -41
  96. package/build-module/components/editor-canvas/edit-template-blocks-notification.js.map +1 -1
  97. package/build-module/components/editor-canvas/index.js +3 -0
  98. package/build-module/components/editor-canvas/index.js.map +1 -1
  99. package/build-module/components/entities-saved-states/hooks/use-is-dirty.js +10 -16
  100. package/build-module/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
  101. package/build-module/components/entities-saved-states/index.js +29 -89
  102. package/build-module/components/entities-saved-states/index.js.map +1 -1
  103. package/build-module/components/error-boundary/index.native.js +125 -0
  104. package/build-module/components/error-boundary/index.native.js.map +1 -0
  105. package/build-module/components/index.js +5 -1
  106. package/build-module/components/index.js.map +1 -1
  107. package/build-module/components/index.native.js +1 -0
  108. package/build-module/components/index.native.js.map +1 -1
  109. package/build-module/components/inserter-sidebar/index.js +5 -1
  110. package/build-module/components/inserter-sidebar/index.js.map +1 -1
  111. package/build-module/components/list-view-sidebar/index.js +2 -1
  112. package/build-module/components/list-view-sidebar/index.js.map +1 -1
  113. package/build-module/components/pattern-overrides-panel/index.js +23 -0
  114. package/build-module/components/pattern-overrides-panel/index.js.map +1 -0
  115. package/build-module/components/plugin-document-setting-panel/index.js +115 -0
  116. package/build-module/components/plugin-document-setting-panel/index.js.map +1 -0
  117. package/build-module/components/plugin-post-publish-panel/index.js +61 -0
  118. package/build-module/components/plugin-post-publish-panel/index.js.map +1 -0
  119. package/build-module/components/plugin-pre-publish-panel/index.js +64 -0
  120. package/build-module/components/plugin-pre-publish-panel/index.js.map +1 -0
  121. package/build-module/components/post-actions/actions.js +444 -0
  122. package/build-module/components/post-actions/actions.js.map +1 -0
  123. package/build-module/components/post-card-panel/index.js +85 -0
  124. package/build-module/components/post-card-panel/index.js.map +1 -0
  125. package/build-module/components/post-featured-image/index.js +4 -9
  126. package/build-module/components/post-featured-image/index.js.map +1 -1
  127. package/build-module/components/post-featured-image/panel.js +6 -2
  128. package/build-module/components/post-featured-image/panel.js.map +1 -1
  129. package/build-module/components/post-sync-status/index.js +2 -73
  130. package/build-module/components/post-sync-status/index.js.map +1 -1
  131. package/build-module/components/post-taxonomies/flat-term-selector.js +7 -3
  132. package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
  133. package/build-module/components/post-title/index.native.js +1 -1
  134. package/build-module/components/post-title/index.native.js.map +1 -1
  135. package/build-module/components/provider/disable-non-page-content-blocks.js +36 -20
  136. package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -1
  137. package/build-module/components/provider/index.js +1 -1
  138. package/build-module/components/provider/index.js.map +1 -1
  139. package/build-module/components/provider/use-block-editor-settings.js +9 -10
  140. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  141. package/build-module/components/provider/use-hide-blocks-from-inserter.js +4 -3
  142. package/build-module/components/provider/use-hide-blocks-from-inserter.js.map +1 -1
  143. package/build-module/components/template-areas/index.js +63 -0
  144. package/build-module/components/template-areas/index.js.map +1 -0
  145. package/build-module/hooks/use-select-nearest-editable-block.js +80 -0
  146. package/build-module/hooks/use-select-nearest-editable-block.js.map +1 -0
  147. package/build-module/private-apis.js +6 -2
  148. package/build-module/private-apis.js.map +1 -1
  149. package/build-module/store/actions.js +37 -3
  150. package/build-module/store/actions.js.map +1 -1
  151. package/build-module/store/constants.js +2 -0
  152. package/build-module/store/constants.js.map +1 -1
  153. package/build-module/store/private-actions.js +78 -0
  154. package/build-module/store/private-actions.js.map +1 -1
  155. package/build-module/store/private-selectors.js +54 -3
  156. package/build-module/store/private-selectors.js.map +1 -1
  157. package/build-module/store/reducer.js +13 -1
  158. package/build-module/store/reducer.js.map +1 -1
  159. package/build-module/store/selectors.js +19 -10
  160. package/build-module/store/selectors.js.map +1 -1
  161. package/build-module/store/utils/get-filtered-template-parts.js +64 -0
  162. package/build-module/store/utils/get-filtered-template-parts.js.map +1 -0
  163. package/build-style/style-rtl.css +76 -33
  164. package/build-style/style.css +76 -33
  165. package/package.json +35 -33
  166. package/src/bindings/index.js +4 -1
  167. package/src/components/block-settings-menu/plugin-block-settings-menu-item.js +108 -0
  168. package/src/components/commands/index.js +1 -1
  169. package/src/components/deprecated.js +157 -0
  170. package/src/components/document-bar/index.js +12 -17
  171. package/src/components/document-bar/style.scss +9 -12
  172. package/src/components/document-outline/index.js +2 -1
  173. package/src/components/document-tools/style.scss +4 -11
  174. package/src/components/editor-canvas/edit-template-blocks-notification.js +6 -56
  175. package/src/components/editor-canvas/index.js +4 -0
  176. package/src/components/entities-saved-states/hooks/use-is-dirty.js +18 -22
  177. package/src/components/entities-saved-states/index.js +45 -121
  178. package/src/components/entities-saved-states/test/use-is-dirty.js +3 -0
  179. package/src/components/error-boundary/index.native.js +192 -0
  180. package/src/components/error-boundary/style.native.scss +116 -0
  181. package/src/components/index.js +5 -4
  182. package/src/components/index.native.js +1 -0
  183. package/src/components/inserter-sidebar/index.js +7 -1
  184. package/src/components/list-view-sidebar/index.js +1 -0
  185. package/src/components/list-view-sidebar/style.scss +1 -1
  186. package/src/components/pattern-overrides-panel/index.js +26 -0
  187. package/src/components/plugin-document-setting-panel/index.js +121 -0
  188. package/src/components/plugin-post-publish-panel/index.js +64 -0
  189. package/src/components/plugin-post-publish-panel/test/__snapshots__/index.js.snap +39 -0
  190. package/src/components/plugin-post-publish-panel/test/index.js +33 -0
  191. package/src/components/plugin-pre-publish-panel/index.js +67 -0
  192. package/src/components/plugin-pre-publish-panel/test/index.js +33 -0
  193. package/src/components/post-actions/actions.js +582 -0
  194. package/src/components/post-card-panel/index.js +108 -0
  195. package/src/components/post-card-panel/style.scss +32 -0
  196. package/src/components/post-featured-image/index.js +6 -15
  197. package/src/components/post-featured-image/panel.js +9 -3
  198. package/src/components/post-featured-image/style.scss +9 -13
  199. package/src/components/post-sync-status/index.js +1 -94
  200. package/src/components/post-taxonomies/flat-term-selector.js +13 -8
  201. package/src/components/post-title/index.native.js +1 -1
  202. package/src/components/provider/disable-non-page-content-blocks.js +40 -20
  203. package/src/components/provider/index.js +1 -1
  204. package/src/components/provider/test/disable-non-page-content-blocks.js +35 -14
  205. package/src/components/provider/use-block-editor-settings.js +11 -11
  206. package/src/components/provider/use-hide-blocks-from-inserter.js +5 -3
  207. package/src/components/template-areas/index.js +85 -0
  208. package/src/components/template-areas/style.scss +23 -0
  209. package/src/hooks/use-select-nearest-editable-block.js +95 -0
  210. package/src/private-apis.js +6 -2
  211. package/src/store/actions.js +37 -3
  212. package/src/store/constants.js +2 -0
  213. package/src/store/private-actions.js +111 -0
  214. package/src/store/private-selectors.js +105 -17
  215. package/src/store/reducer.js +13 -0
  216. package/src/store/selectors.js +50 -40
  217. package/src/store/utils/get-filtered-template-parts.js +69 -0
  218. package/src/store/utils/test/get-filtered-template-parts.js +189 -0
  219. package/src/style.scss +2 -0
@@ -0,0 +1,108 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { BlockSettingsMenuControls } from '@wordpress/block-editor';
5
+ import { MenuItem } from '@wordpress/components';
6
+ import { compose } from '@wordpress/compose';
7
+
8
+ const isEverySelectedBlockAllowed = ( selected, allowed ) =>
9
+ selected.filter( ( id ) => ! allowed.includes( id ) ).length === 0;
10
+
11
+ /**
12
+ * Plugins may want to add an item to the menu either for every block
13
+ * or only for the specific ones provided in the `allowedBlocks` component property.
14
+ *
15
+ * If there are multiple blocks selected the item will be rendered if every block
16
+ * is of one allowed type (not necessarily the same).
17
+ *
18
+ * @param {string[]} selectedBlocks Array containing the names of the blocks selected
19
+ * @param {string[]} allowedBlocks Array containing the names of the blocks allowed
20
+ * @return {boolean} Whether the item will be rendered or not.
21
+ */
22
+ const shouldRenderItem = ( selectedBlocks, allowedBlocks ) =>
23
+ ! Array.isArray( allowedBlocks ) ||
24
+ isEverySelectedBlockAllowed( selectedBlocks, allowedBlocks );
25
+
26
+ /**
27
+ * Renders a new item in the block settings menu.
28
+ *
29
+ * @param {Object} props Component props.
30
+ * @param {Array} [props.allowedBlocks] An array containing a list of block names for which the item should be shown. If not present, it'll be rendered for any block. If multiple blocks are selected, it'll be shown if and only if all of them are in the allowed list.
31
+ * @param {WPBlockTypeIconRender} [props.icon] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element.
32
+ * @param {string} props.label The menu item text.
33
+ * @param {Function} props.onClick Callback function to be executed when the user click the menu item.
34
+ * @param {boolean} [props.small] Whether to render the label or not.
35
+ * @param {string} [props.role] The ARIA role for the menu item.
36
+ *
37
+ * @example
38
+ * ```js
39
+ * // Using ES5 syntax
40
+ * var __ = wp.i18n.__;
41
+ * var PluginBlockSettingsMenuItem = wp.editor.PluginBlockSettingsMenuItem;
42
+ *
43
+ * function doOnClick(){
44
+ * // To be called when the user clicks the menu item.
45
+ * }
46
+ *
47
+ * function MyPluginBlockSettingsMenuItem() {
48
+ * return React.createElement(
49
+ * PluginBlockSettingsMenuItem,
50
+ * {
51
+ * allowedBlocks: [ 'core/paragraph' ],
52
+ * icon: 'dashicon-name',
53
+ * label: __( 'Menu item text' ),
54
+ * onClick: doOnClick,
55
+ * }
56
+ * );
57
+ * }
58
+ * ```
59
+ *
60
+ * @example
61
+ * ```jsx
62
+ * // Using ESNext syntax
63
+ * import { __ } from '@wordpress/i18n';
64
+ * import { PluginBlockSettingsMenuItem } from '@wordpress/editor';
65
+ *
66
+ * const doOnClick = ( ) => {
67
+ * // To be called when the user clicks the menu item.
68
+ * };
69
+ *
70
+ * const MyPluginBlockSettingsMenuItem = () => (
71
+ * <PluginBlockSettingsMenuItem
72
+ * allowedBlocks={ [ 'core/paragraph' ] }
73
+ * icon='dashicon-name'
74
+ * label={ __( 'Menu item text' ) }
75
+ * onClick={ doOnClick } />
76
+ * );
77
+ * ```
78
+ *
79
+ * @return {Component} The component to be rendered.
80
+ */
81
+ const PluginBlockSettingsMenuItem = ( {
82
+ allowedBlocks,
83
+ icon,
84
+ label,
85
+ onClick,
86
+ small,
87
+ role,
88
+ } ) => (
89
+ <BlockSettingsMenuControls>
90
+ { ( { selectedBlocks, onClose } ) => {
91
+ if ( ! shouldRenderItem( selectedBlocks, allowedBlocks ) ) {
92
+ return null;
93
+ }
94
+ return (
95
+ <MenuItem
96
+ onClick={ compose( onClick, onClose ) }
97
+ icon={ icon }
98
+ label={ small ? label : undefined }
99
+ role={ role }
100
+ >
101
+ { ! small && label }
102
+ </MenuItem>
103
+ );
104
+ } }
105
+ </BlockSettingsMenuControls>
106
+ );
107
+
108
+ export default PluginBlockSettingsMenuItem;
@@ -68,7 +68,7 @@ function useEditorCommandLoader() {
68
68
  name: 'core/toggle-distraction-free',
69
69
  label: isDistractionFree
70
70
  ? __( 'Exit Distraction Free' )
71
- : __( 'Enter Distraction Free ' ),
71
+ : __( 'Enter Distraction Free' ),
72
72
  callback: ( { close } ) => {
73
73
  toggleDistractionFree();
74
74
  close();
@@ -94,6 +94,9 @@ function deprecateFunction( name, func ) {
94
94
  };
95
95
  }
96
96
 
97
+ /**
98
+ * @deprecated since 5.3, use `wp.blockEditor.RichText` instead.
99
+ */
97
100
  const RichText = deprecateComponent( 'RichText', RootRichText, [ 'Content' ] );
98
101
  RichText.isEmpty = deprecateFunction(
99
102
  'RichText.isEmpty',
@@ -101,167 +104,321 @@ RichText.isEmpty = deprecateFunction(
101
104
  );
102
105
 
103
106
  export { RichText };
107
+
108
+ /**
109
+ * @deprecated since 5.3, use `wp.blockEditor.Autocomplete` instead.
110
+ */
104
111
  export const Autocomplete = deprecateComponent(
105
112
  'Autocomplete',
106
113
  RootAutocomplete
107
114
  );
115
+ /**
116
+ * @deprecated since 5.3, use `wp.blockEditor.AlignmentToolbar` instead.
117
+ */
108
118
  export const AlignmentToolbar = deprecateComponent(
109
119
  'AlignmentToolbar',
110
120
  RootAlignmentToolbar
111
121
  );
122
+ /**
123
+ * @deprecated since 5.3, use `wp.blockEditor.BlockAlignmentToolbar` instead.
124
+ */
112
125
  export const BlockAlignmentToolbar = deprecateComponent(
113
126
  'BlockAlignmentToolbar',
114
127
  RootBlockAlignmentToolbar
115
128
  );
129
+ /**
130
+ * @deprecated since 5.3, use `wp.blockEditor.BlockControls` instead.
131
+ */
116
132
  export const BlockControls = deprecateComponent(
117
133
  'BlockControls',
118
134
  RootBlockControls,
119
135
  [ 'Slot' ]
120
136
  );
137
+ /**
138
+ * @deprecated since 5.3, use `wp.blockEditor.BlockEdit` instead.
139
+ */
121
140
  export const BlockEdit = deprecateComponent( 'BlockEdit', RootBlockEdit );
141
+ /**
142
+ * @deprecated since 5.3, use `wp.blockEditor.BlockEditorKeyboardShortcuts` instead.
143
+ */
122
144
  export const BlockEditorKeyboardShortcuts = deprecateComponent(
123
145
  'BlockEditorKeyboardShortcuts',
124
146
  RootBlockEditorKeyboardShortcuts
125
147
  );
148
+ /**
149
+ * @deprecated since 5.3, use `wp.blockEditor.BlockFormatControls` instead.
150
+ */
126
151
  export const BlockFormatControls = deprecateComponent(
127
152
  'BlockFormatControls',
128
153
  RootBlockFormatControls,
129
154
  [ 'Slot' ]
130
155
  );
156
+ /**
157
+ * @deprecated since 5.3, use `wp.blockEditor.BlockIcon` instead.
158
+ */
131
159
  export const BlockIcon = deprecateComponent( 'BlockIcon', RootBlockIcon );
160
+ /**
161
+ * @deprecated since 5.3, use `wp.blockEditor.BlockInspector` instead.
162
+ */
132
163
  export const BlockInspector = deprecateComponent(
133
164
  'BlockInspector',
134
165
  RootBlockInspector
135
166
  );
167
+ /**
168
+ * @deprecated since 5.3, use `wp.blockEditor.BlockList` instead.
169
+ */
136
170
  export const BlockList = deprecateComponent( 'BlockList', RootBlockList );
171
+ /**
172
+ * @deprecated since 5.3, use `wp.blockEditor.BlockMover` instead.
173
+ */
137
174
  export const BlockMover = deprecateComponent( 'BlockMover', RootBlockMover );
175
+ /**
176
+ * @deprecated since 5.3, use `wp.blockEditor.BlockNavigationDropdown` instead.
177
+ */
138
178
  export const BlockNavigationDropdown = deprecateComponent(
139
179
  'BlockNavigationDropdown',
140
180
  RootBlockNavigationDropdown
141
181
  );
182
+ /**
183
+ * @deprecated since 5.3, use `wp.blockEditor.BlockSelectionClearer` instead.
184
+ */
142
185
  export const BlockSelectionClearer = deprecateComponent(
143
186
  'BlockSelectionClearer',
144
187
  RootBlockSelectionClearer
145
188
  );
189
+ /**
190
+ * @deprecated since 5.3, use `wp.blockEditor.BlockSettingsMenu` instead.
191
+ */
146
192
  export const BlockSettingsMenu = deprecateComponent(
147
193
  'BlockSettingsMenu',
148
194
  RootBlockSettingsMenu
149
195
  );
196
+ /**
197
+ * @deprecated since 5.3, use `wp.blockEditor.BlockTitle` instead.
198
+ */
150
199
  export const BlockTitle = deprecateComponent( 'BlockTitle', RootBlockTitle );
200
+ /**
201
+ * @deprecated since 5.3, use `wp.blockEditor.BlockToolbar` instead.
202
+ */
151
203
  export const BlockToolbar = deprecateComponent(
152
204
  'BlockToolbar',
153
205
  RootBlockToolbar
154
206
  );
207
+ /**
208
+ * @deprecated since 5.3, use `wp.blockEditor.ColorPalette` instead.
209
+ */
155
210
  export const ColorPalette = deprecateComponent(
156
211
  'ColorPalette',
157
212
  RootColorPalette
158
213
  );
214
+ /**
215
+ * @deprecated since 5.3, use `wp.blockEditor.ContrastChecker` instead.
216
+ */
159
217
  export const ContrastChecker = deprecateComponent(
160
218
  'ContrastChecker',
161
219
  RootContrastChecker
162
220
  );
221
+ /**
222
+ * @deprecated since 5.3, use `wp.blockEditor.CopyHandler` instead.
223
+ */
163
224
  export const CopyHandler = deprecateComponent( 'CopyHandler', RootCopyHandler );
225
+ /**
226
+ * @deprecated since 5.3, use `wp.blockEditor.DefaultBlockAppender` instead.
227
+ */
164
228
  export const DefaultBlockAppender = deprecateComponent(
165
229
  'DefaultBlockAppender',
166
230
  RootDefaultBlockAppender
167
231
  );
232
+ /**
233
+ * @deprecated since 5.3, use `wp.blockEditor.FontSizePicker` instead.
234
+ */
168
235
  export const FontSizePicker = deprecateComponent(
169
236
  'FontSizePicker',
170
237
  RootFontSizePicker
171
238
  );
239
+ /**
240
+ * @deprecated since 5.3, use `wp.blockEditor.Inserter` instead.
241
+ */
172
242
  export const Inserter = deprecateComponent( 'Inserter', RootInserter );
243
+ /**
244
+ * @deprecated since 5.3, use `wp.blockEditor.InnerBlocks` instead.
245
+ */
173
246
  export const InnerBlocks = deprecateComponent( 'InnerBlocks', RootInnerBlocks, [
174
247
  'ButtonBlockAppender',
175
248
  'DefaultBlockAppender',
176
249
  'Content',
177
250
  ] );
251
+ /**
252
+ * @deprecated since 5.3, use `wp.blockEditor.InspectorAdvancedControls` instead.
253
+ */
178
254
  export const InspectorAdvancedControls = deprecateComponent(
179
255
  'InspectorAdvancedControls',
180
256
  RootInspectorAdvancedControls,
181
257
  [ 'Slot' ]
182
258
  );
259
+ /**
260
+ * @deprecated since 5.3, use `wp.blockEditor.InspectorControls` instead.
261
+ */
183
262
  export const InspectorControls = deprecateComponent(
184
263
  'InspectorControls',
185
264
  RootInspectorControls,
186
265
  [ 'Slot' ]
187
266
  );
267
+ /**
268
+ * @deprecated since 5.3, use `wp.blockEditor.PanelColorSettings` instead.
269
+ */
188
270
  export const PanelColorSettings = deprecateComponent(
189
271
  'PanelColorSettings',
190
272
  RootPanelColorSettings
191
273
  );
274
+ /**
275
+ * @deprecated since 5.3, use `wp.blockEditor.PlainText` instead.
276
+ */
192
277
  export const PlainText = deprecateComponent( 'PlainText', RootPlainText );
278
+ /**
279
+ * @deprecated since 5.3, use `wp.blockEditor.RichTextShortcut` instead.
280
+ */
193
281
  export const RichTextShortcut = deprecateComponent(
194
282
  'RichTextShortcut',
195
283
  RootRichTextShortcut
196
284
  );
285
+ /**
286
+ * @deprecated since 5.3, use `wp.blockEditor.RichTextToolbarButton` instead.
287
+ */
197
288
  export const RichTextToolbarButton = deprecateComponent(
198
289
  'RichTextToolbarButton',
199
290
  RootRichTextToolbarButton
200
291
  );
292
+ /**
293
+ * @deprecated since 5.3, use `wp.blockEditor.__unstableRichTextInputEvent` instead.
294
+ */
201
295
  export const __unstableRichTextInputEvent = deprecateComponent(
202
296
  '__unstableRichTextInputEvent',
203
297
  __unstableRootRichTextInputEvent
204
298
  );
299
+ /**
300
+ * @deprecated since 5.3, use `wp.blockEditor.MediaPlaceholder` instead.
301
+ */
205
302
  export const MediaPlaceholder = deprecateComponent(
206
303
  'MediaPlaceholder',
207
304
  RootMediaPlaceholder
208
305
  );
306
+ /**
307
+ * @deprecated since 5.3, use `wp.blockEditor.MediaUpload` instead.
308
+ */
209
309
  export const MediaUpload = deprecateComponent( 'MediaUpload', RootMediaUpload );
310
+ /**
311
+ * @deprecated since 5.3, use `wp.blockEditor.MediaUploadCheck` instead.
312
+ */
210
313
  export const MediaUploadCheck = deprecateComponent(
211
314
  'MediaUploadCheck',
212
315
  RootMediaUploadCheck
213
316
  );
317
+ /**
318
+ * @deprecated since 5.3, use `wp.blockEditor.MultiSelectScrollIntoView` instead.
319
+ */
214
320
  export const MultiSelectScrollIntoView = deprecateComponent(
215
321
  'MultiSelectScrollIntoView',
216
322
  RootMultiSelectScrollIntoView
217
323
  );
324
+ /**
325
+ * @deprecated since 5.3, use `wp.blockEditor.NavigableToolbar` instead.
326
+ */
218
327
  export const NavigableToolbar = deprecateComponent(
219
328
  'NavigableToolbar',
220
329
  RootNavigableToolbar
221
330
  );
331
+ /**
332
+ * @deprecated since 5.3, use `wp.blockEditor.ObserveTyping` instead.
333
+ */
222
334
  export const ObserveTyping = deprecateComponent(
223
335
  'ObserveTyping',
224
336
  RootObserveTyping
225
337
  );
338
+ /**
339
+ * @deprecated since 5.3, use `wp.blockEditor.SkipToSelectedBlock` instead.
340
+ */
226
341
  export const SkipToSelectedBlock = deprecateComponent(
227
342
  'SkipToSelectedBlock',
228
343
  RootSkipToSelectedBlock
229
344
  );
345
+ /**
346
+ * @deprecated since 5.3, use `wp.blockEditor.URLInput` instead.
347
+ */
230
348
  export const URLInput = deprecateComponent( 'URLInput', RootURLInput );
349
+ /**
350
+ * @deprecated since 5.3, use `wp.blockEditor.URLInputButton` instead.
351
+ */
231
352
  export const URLInputButton = deprecateComponent(
232
353
  'URLInputButton',
233
354
  RootURLInputButton
234
355
  );
356
+ /**
357
+ * @deprecated since 5.3, use `wp.blockEditor.URLPopover` instead.
358
+ */
235
359
  export const URLPopover = deprecateComponent( 'URLPopover', RootURLPopover );
360
+ /**
361
+ * @deprecated since 5.3, use `wp.blockEditor.Warning` instead.
362
+ */
236
363
  export const Warning = deprecateComponent( 'Warning', RootWarning );
364
+ /**
365
+ * @deprecated since 5.3, use `wp.blockEditor.WritingFlow` instead.
366
+ */
237
367
  export const WritingFlow = deprecateComponent( 'WritingFlow', RootWritingFlow );
238
368
 
369
+ /**
370
+ * @deprecated since 5.3, use `wp.blockEditor.createCustomColorsHOC` instead.
371
+ */
239
372
  export const createCustomColorsHOC = deprecateFunction(
240
373
  'createCustomColorsHOC',
241
374
  rootCreateCustomColorsHOC
242
375
  );
376
+ /**
377
+ * @deprecated since 5.3, use `wp.blockEditor.getColorClassName` instead.
378
+ */
243
379
  export const getColorClassName = deprecateFunction(
244
380
  'getColorClassName',
245
381
  rootGetColorClassName
246
382
  );
383
+ /**
384
+ * @deprecated since 5.3, use `wp.blockEditor.getColorObjectByAttributeValues` instead.
385
+ */
247
386
  export const getColorObjectByAttributeValues = deprecateFunction(
248
387
  'getColorObjectByAttributeValues',
249
388
  rootGetColorObjectByAttributeValues
250
389
  );
390
+ /**
391
+ * @deprecated since 5.3, use `wp.blockEditor.getColorObjectByColorValue` instead.
392
+ */
251
393
  export const getColorObjectByColorValue = deprecateFunction(
252
394
  'getColorObjectByColorValue',
253
395
  rootGetColorObjectByColorValue
254
396
  );
397
+ /**
398
+ * @deprecated since 5.3, use `wp.blockEditor.getFontSize` instead.
399
+ */
255
400
  export const getFontSize = deprecateFunction( 'getFontSize', rootGetFontSize );
401
+ /**
402
+ * @deprecated since 5.3, use `wp.blockEditor.getFontSizeClass` instead.
403
+ */
256
404
  export const getFontSizeClass = deprecateFunction(
257
405
  'getFontSizeClass',
258
406
  rootGetFontSizeClass
259
407
  );
408
+ /**
409
+ * @deprecated since 5.3, use `wp.blockEditor.createCustomColorsHOC` instead.
410
+ */
260
411
  export const withColorContext = deprecateFunction(
261
412
  'withColorContext',
262
413
  rootWithColorContext
263
414
  );
415
+ /**
416
+ * @deprecated since 5.3, use `wp.blockEditor.withColors` instead.
417
+ */
264
418
  export const withColors = deprecateFunction( 'withColors', rootWithColors );
419
+ /**
420
+ * @deprecated since 5.3, use `wp.blockEditor.withFontSizes` instead.
421
+ */
265
422
  export const withFontSizes = deprecateFunction(
266
423
  'withFontSizes',
267
424
  rootWithFontSizes
@@ -15,13 +15,7 @@ import {
15
15
  __unstableAnimatePresence as AnimatePresence,
16
16
  } from '@wordpress/components';
17
17
  import { BlockIcon } from '@wordpress/block-editor';
18
- import {
19
- chevronLeftSmall,
20
- chevronRightSmall,
21
- page as pageIcon,
22
- navigation as navigationIcon,
23
- symbol,
24
- } from '@wordpress/icons';
18
+ import { chevronLeftSmall, chevronRightSmall } from '@wordpress/icons';
25
19
  import { displayShortcut } from '@wordpress/keycodes';
26
20
  import { store as coreStore } from '@wordpress/core-data';
27
21
  import { store as commandsStore } from '@wordpress/commands';
@@ -32,6 +26,7 @@ import { useReducedMotion } from '@wordpress/compose';
32
26
  * Internal dependencies
33
27
  */
34
28
  import { store as editorStore } from '../../store';
29
+ import { unlock } from '../../lock-unlock';
35
30
 
36
31
  const TYPE_LABELS = {
37
32
  // translators: 1: Pattern title.
@@ -44,11 +39,6 @@ const TYPE_LABELS = {
44
39
  wp_template_part: __( 'Editing template part: %s' ),
45
40
  };
46
41
 
47
- const ICONS = {
48
- wp_block: symbol,
49
- wp_navigation: navigationIcon,
50
- };
51
-
52
42
  const TEMPLATE_POST_TYPES = [ 'wp_template', 'wp_template_part' ];
53
43
 
54
44
  const GLOBAL_POST_TYPES = [
@@ -74,7 +64,8 @@ export default function DocumentBar() {
74
64
  getEditorSettings,
75
65
  __experimentalGetTemplateInfo: getTemplateInfo,
76
66
  } = select( editorStore );
77
- const { getEditedEntityRecord, getIsResolving } = select( coreStore );
67
+ const { getEditedEntityRecord, isResolving: isResolvingSelector } =
68
+ select( coreStore );
78
69
  const _postType = getCurrentPostType();
79
70
  const _postId = getCurrentPostId();
80
71
  const _document = getEditedEntityRecord(
@@ -86,13 +77,18 @@ export default function DocumentBar() {
86
77
  return {
87
78
  postType: _postType,
88
79
  document: _document,
89
- isResolving: getIsResolving(
80
+ isResolving: isResolvingSelector(
90
81
  'getEditedEntityRecord',
91
82
  'postType',
92
83
  _postType,
93
84
  _postId
94
85
  ),
95
- templateIcon: _templateInfo.icon,
86
+ templateIcon: unlock( select( editorStore ) ).getPostIcon(
87
+ _postType,
88
+ {
89
+ area: _document?.area,
90
+ }
91
+ ),
96
92
  templateTitle: _templateInfo.title,
97
93
  onNavigateToPreviousEntityRecord:
98
94
  getEditorSettings().onNavigateToPreviousEntityRecord,
@@ -103,7 +99,6 @@ export default function DocumentBar() {
103
99
  const isReducedMotion = useReducedMotion();
104
100
 
105
101
  const isNotFound = ! document && ! isResolving;
106
- const icon = ICONS[ postType ] ?? pageIcon;
107
102
  const isTemplate = TEMPLATE_POST_TYPES.includes( postType );
108
103
  const isGlobalEntity = GLOBAL_POST_TYPES.includes( postType );
109
104
  const hasBackButton = !! onNavigateToPreviousEntityRecord;
@@ -176,7 +171,7 @@ export default function DocumentBar() {
176
171
  isReducedMotion ? { duration: 0 } : undefined
177
172
  }
178
173
  >
179
- <BlockIcon icon={ isTemplate ? templateIcon : icon } />
174
+ <BlockIcon icon={ templateIcon } />
180
175
  <Text
181
176
  size="body"
182
177
  as="h1"
@@ -10,7 +10,7 @@
10
10
  min-width: 0;
11
11
  background: $gray-100;
12
12
  border-radius: $grid-unit-05;
13
- width: min(100%, 450px);
13
+ width: min(100%, 416px);
14
14
 
15
15
  &:hover {
16
16
  background-color: $gray-200;
@@ -18,9 +18,10 @@
18
18
 
19
19
  .components-button {
20
20
  border-radius: $grid-unit-05;
21
+ transition: all 0.1s ease-out;
22
+ @include reduce-motion("transition");
21
23
 
22
24
  &:hover {
23
- color: var(--wp-block-synced-color);
24
25
  background: $gray-200;
25
26
  }
26
27
  }
@@ -39,19 +40,15 @@
39
40
  .editor-document-bar__title {
40
41
  flex-grow: 1;
41
42
  overflow: hidden;
42
- color: $gray-800;
43
+ color: $gray-900;
43
44
  gap: $grid-unit-05;
44
45
  display: flex;
45
46
  justify-content: center;
46
47
  align-items: center;
47
48
 
48
49
  // Offset the layout based on the width of the ⌘K label. This ensures the title is centrally aligned.
49
- @include break-small() {
50
- padding-left: $grid-unit-40;
51
- }
52
-
53
- &:hover {
54
- color: var(--wp-block-synced-color);
50
+ @include break-medium() {
51
+ padding-left: $grid-unit-30;
55
52
  }
56
53
 
57
54
  .editor-document-bar.is-global & {
@@ -67,14 +64,14 @@
67
64
  white-space: nowrap;
68
65
  overflow: hidden;
69
66
  text-overflow: ellipsis;
70
- max-width: 50%;
67
+ max-width: 70%;
71
68
  color: currentColor;
72
69
  }
73
70
  }
74
71
 
75
72
  .editor-document-bar__shortcut {
76
73
  color: $gray-800;
77
- min-width: $grid-unit-40;
74
+ min-width: $grid-unit-30;
78
75
  display: none;
79
76
 
80
77
  @include break-medium() {
@@ -91,7 +88,7 @@
91
88
  position: absolute;
92
89
 
93
90
  &:hover {
94
- color: var(--wp-block-synced-color);
91
+ color: $gray-900;
95
92
  background-color: transparent;
96
93
  }
97
94
  }
@@ -95,7 +95,8 @@ const computeOutlineHeadings = ( blocks = [] ) => {
95
95
  };
96
96
 
97
97
  const isEmptyHeading = ( heading ) =>
98
- ! heading.attributes.content || heading.attributes.content.length === 0;
98
+ ! heading.attributes.content ||
99
+ heading.attributes.content.trim().length === 0;
99
100
 
100
101
  export default function DocumentOutline( {
101
102
  onSelect,
@@ -3,10 +3,11 @@
3
3
  align-items: center;
4
4
 
5
5
  // Hide all action buttons except the inserter on mobile.
6
- .editor-document-tools__left > .components-button {
6
+ .editor-document-tools__left > .editor-history__redo,
7
+ .editor-document-tools__left > .editor-history__undo {
7
8
  display: none;
8
9
 
9
- @include break-small() {
10
+ @include break-medium() {
10
11
  display: inline-flex;
11
12
  }
12
13
  }
@@ -39,7 +40,7 @@
39
40
  // here to the original button styles
40
41
  .editor-document-tools__left > .components-button.has-icon,
41
42
  .editor-document-tools__left > .components-dropdown > .components-button.has-icon {
42
- // @todo: override toolbar group inherited paddings from components/block-tools/style.scss.
43
+ // @todo override toolbar group inherited paddings from components/block-tools/style.scss.
43
44
  // This is best fixed by making the mover control area a proper single toolbar group.
44
45
  // It needs specificity due to style inherited from .components-accessible-toolbar .components-button.has-icon.has-icon.
45
46
  height: $button-size-compact;
@@ -70,14 +71,6 @@
70
71
  // Some plugins add buttons here despite best practices.
71
72
  // Push them a bit rightwards to fit the top toolbar.
72
73
  margin-right: $grid-unit-10;
73
-
74
- @include break-medium() {
75
- padding-left: $grid-unit-50 * 0.5;
76
- }
77
-
78
- @include break-wide() {
79
- padding-right: $grid-unit-10;
80
- }
81
74
  }
82
75
 
83
76
  .editor-document-tools .editor-document-tools__left > .editor-document-tools__inserter-toggle.has-icon {