@wordpress/edit-post 7.24.1 → 7.26.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 (267) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE.md +1 -1
  3. package/build/components/browser-url/index.js +3 -2
  4. package/build/components/browser-url/index.js.map +1 -1
  5. package/build/components/header/index.js +35 -33
  6. package/build/components/header/index.js.map +1 -1
  7. package/build/components/header/mode-switcher/index.js +1 -1
  8. package/build/components/header/mode-switcher/index.js.map +1 -1
  9. package/build/components/header/more-menu/index.js +2 -1
  10. package/build/components/header/more-menu/index.js.map +1 -1
  11. package/build/components/header/writing-menu/index.js +22 -18
  12. package/build/components/header/writing-menu/index.js.map +1 -1
  13. package/build/components/keyboard-shortcuts/index.js +1 -20
  14. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  15. package/build/components/layout/index.js +45 -38
  16. package/build/components/layout/index.js.map +1 -1
  17. package/build/components/layout/index.native.js +3 -1
  18. package/build/components/layout/index.native.js.map +1 -1
  19. package/build/components/meta-boxes/meta-box-visibility.js +2 -6
  20. package/build/components/meta-boxes/meta-box-visibility.js.map +1 -1
  21. package/build/components/preferences-modal/index.js +87 -54
  22. package/build/components/preferences-modal/index.js.map +1 -1
  23. package/build/components/preferences-modal/options/enable-feature.js +23 -23
  24. package/build/components/preferences-modal/options/enable-feature.js.map +1 -1
  25. package/build/components/preferences-modal/options/enable-panel.js +3 -6
  26. package/build/components/preferences-modal/options/enable-panel.js.map +1 -1
  27. package/build/components/sidebar/plugin-document-setting-panel/index.js +3 -3
  28. package/build/components/sidebar/plugin-document-setting-panel/index.js.map +1 -1
  29. package/build/components/sidebar/plugin-sidebar/index.js +2 -10
  30. package/build/components/sidebar/plugin-sidebar/index.js.map +1 -1
  31. package/build/components/sidebar/post-status/index.js +3 -5
  32. package/build/components/sidebar/post-status/index.js.map +1 -1
  33. package/build/components/sidebar/settings-header/index.js +17 -43
  34. package/build/components/sidebar/settings-header/index.js.map +1 -1
  35. package/build/components/sidebar/settings-sidebar/index.js +80 -26
  36. package/build/components/sidebar/settings-sidebar/index.js.map +1 -1
  37. package/build/components/start-page-options/index.js +3 -3
  38. package/build/components/start-page-options/index.js.map +1 -1
  39. package/build/components/visual-editor/index.js +20 -257
  40. package/build/components/visual-editor/index.js.map +1 -1
  41. package/build/components/welcome-guide/index.js +6 -3
  42. package/build/components/welcome-guide/index.js.map +1 -1
  43. package/build/editor.js +20 -30
  44. package/build/editor.js.map +1 -1
  45. package/build/editor.native.js +3 -11
  46. package/build/editor.native.js.map +1 -1
  47. package/build/hooks/commands/use-common-commands.js +16 -12
  48. package/build/hooks/commands/use-common-commands.js.map +1 -1
  49. package/build/hooks/use-post-history.js +79 -0
  50. package/build/hooks/use-post-history.js.map +1 -0
  51. package/build/index.js +24 -20
  52. package/build/index.js.map +1 -1
  53. package/build/index.native.js +7 -1
  54. package/build/index.native.js.map +1 -1
  55. package/build/plugins/welcome-guide-menu-item/index.js +2 -6
  56. package/build/plugins/welcome-guide-menu-item/index.js.map +1 -1
  57. package/build/store/actions.js +94 -112
  58. package/build/store/actions.js.map +1 -1
  59. package/build/store/reducer.js +1 -95
  60. package/build/store/reducer.js.map +1 -1
  61. package/build/store/selectors.js +86 -48
  62. package/build/store/selectors.js.map +1 -1
  63. package/build-module/components/browser-url/index.js +3 -2
  64. package/build-module/components/browser-url/index.js.map +1 -1
  65. package/build-module/components/header/index.js +37 -35
  66. package/build-module/components/header/index.js.map +1 -1
  67. package/build-module/components/header/mode-switcher/index.js +1 -1
  68. package/build-module/components/header/mode-switcher/index.js.map +1 -1
  69. package/build-module/components/header/more-menu/index.js +2 -1
  70. package/build-module/components/header/more-menu/index.js.map +1 -1
  71. package/build-module/components/header/writing-menu/index.js +23 -19
  72. package/build-module/components/header/writing-menu/index.js.map +1 -1
  73. package/build-module/components/keyboard-shortcuts/index.js +1 -20
  74. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  75. package/build-module/components/layout/index.js +46 -38
  76. package/build-module/components/layout/index.js.map +1 -1
  77. package/build-module/components/layout/index.native.js +4 -2
  78. package/build-module/components/layout/index.native.js.map +1 -1
  79. package/build-module/components/meta-boxes/meta-box-visibility.js +2 -6
  80. package/build-module/components/meta-boxes/meta-box-visibility.js.map +1 -1
  81. package/build-module/components/preferences-modal/index.js +87 -54
  82. package/build-module/components/preferences-modal/index.js.map +1 -1
  83. package/build-module/components/preferences-modal/options/enable-feature.js +22 -23
  84. package/build-module/components/preferences-modal/options/enable-feature.js.map +1 -1
  85. package/build-module/components/preferences-modal/options/enable-panel.js +3 -7
  86. package/build-module/components/preferences-modal/options/enable-panel.js.map +1 -1
  87. package/build-module/components/sidebar/plugin-document-setting-panel/index.js +3 -3
  88. package/build-module/components/sidebar/plugin-document-setting-panel/index.js.map +1 -1
  89. package/build-module/components/sidebar/plugin-sidebar/index.js +2 -10
  90. package/build-module/components/sidebar/plugin-sidebar/index.js.map +1 -1
  91. package/build-module/components/sidebar/post-status/index.js +4 -6
  92. package/build-module/components/sidebar/post-status/index.js.map +1 -1
  93. package/build-module/components/sidebar/settings-header/index.js +20 -46
  94. package/build-module/components/sidebar/settings-header/index.js.map +1 -1
  95. package/build-module/components/sidebar/settings-sidebar/index.js +80 -27
  96. package/build-module/components/sidebar/settings-sidebar/index.js.map +1 -1
  97. package/build-module/components/start-page-options/index.js +3 -3
  98. package/build-module/components/start-page-options/index.js.map +1 -1
  99. package/build-module/components/visual-editor/index.js +24 -261
  100. package/build-module/components/visual-editor/index.js.map +1 -1
  101. package/build-module/components/welcome-guide/index.js +6 -3
  102. package/build-module/components/welcome-guide/index.js.map +1 -1
  103. package/build-module/editor.js +20 -30
  104. package/build-module/editor.js.map +1 -1
  105. package/build-module/editor.native.js +3 -11
  106. package/build-module/editor.native.js.map +1 -1
  107. package/build-module/hooks/commands/use-common-commands.js +16 -12
  108. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  109. package/build-module/hooks/use-post-history.js +73 -0
  110. package/build-module/hooks/use-post-history.js.map +1 -0
  111. package/build-module/index.js +19 -12
  112. package/build-module/index.js.map +1 -1
  113. package/build-module/index.native.js +7 -1
  114. package/build-module/index.native.js.map +1 -1
  115. package/build-module/plugins/welcome-guide-menu-item/index.js +2 -6
  116. package/build-module/plugins/welcome-guide-menu-item/index.js.map +1 -1
  117. package/build-module/store/actions.js +86 -105
  118. package/build-module/store/actions.js.map +1 -1
  119. package/build-module/store/reducer.js +1 -92
  120. package/build-module/store/reducer.js.map +1 -1
  121. package/build-module/store/selectors.js +76 -38
  122. package/build-module/store/selectors.js.map +1 -1
  123. package/build-style/style-rtl.css +65 -473
  124. package/build-style/style.css +65 -473
  125. package/package.json +32 -32
  126. package/src/components/browser-url/index.js +4 -2
  127. package/src/components/header/index.js +45 -46
  128. package/src/components/header/mode-switcher/index.js +2 -1
  129. package/src/components/header/more-menu/index.js +1 -0
  130. package/src/components/header/style.scss +63 -37
  131. package/src/components/header/writing-menu/index.js +24 -24
  132. package/src/components/keyboard-shortcut-help-modal/test/index.js +0 -15
  133. package/src/components/keyboard-shortcuts/index.js +1 -23
  134. package/src/components/layout/index.js +31 -39
  135. package/src/components/layout/index.native.js +9 -1
  136. package/src/components/meta-boxes/meta-box-visibility.js +2 -8
  137. package/src/components/preferences-modal/index.js +128 -97
  138. package/src/components/preferences-modal/options/enable-feature.js +26 -21
  139. package/src/components/preferences-modal/options/enable-panel.js +3 -7
  140. package/src/components/preferences-modal/test/__snapshots__/meta-boxes-section.js.snap +187 -175
  141. package/src/components/preferences-modal/test/index.js +1 -52
  142. package/src/components/sidebar/plugin-document-setting-panel/index.js +3 -3
  143. package/src/components/sidebar/plugin-sidebar/index.js +1 -9
  144. package/src/components/sidebar/post-status/index.js +5 -5
  145. package/src/components/sidebar/settings-header/index.js +19 -71
  146. package/src/components/sidebar/settings-sidebar/index.js +125 -60
  147. package/src/components/sidebar/style.scss +4 -12
  148. package/src/components/start-page-options/index.js +3 -3
  149. package/src/components/text-editor/style.scss +0 -6
  150. package/src/components/visual-editor/index.js +26 -359
  151. package/src/components/visual-editor/style.scss +0 -15
  152. package/src/components/welcome-guide/index.js +4 -2
  153. package/src/editor.js +36 -35
  154. package/src/editor.native.js +2 -23
  155. package/src/hooks/commands/use-common-commands.js +14 -16
  156. package/src/hooks/use-post-history.js +73 -0
  157. package/src/index.js +24 -13
  158. package/src/index.native.js +8 -1
  159. package/src/plugins/welcome-guide-menu-item/index.js +3 -6
  160. package/src/store/actions.js +80 -131
  161. package/src/store/reducer.js +0 -93
  162. package/src/store/selectors.js +97 -55
  163. package/src/store/test/actions.js +10 -131
  164. package/src/store/test/reducer.js +1 -108
  165. package/src/store/test/selectors.js +0 -50
  166. package/src/style.scss +1 -8
  167. package/src/test/__snapshots__/editor.native.js.snap +21 -0
  168. package/src/test/editor.native.js +107 -56
  169. package/build/components/device-preview/index.js +0 -72
  170. package/build/components/device-preview/index.js.map +0 -1
  171. package/build/components/header/document-actions/index.js +0 -82
  172. package/build/components/header/document-actions/index.js.map +0 -1
  173. package/build/components/header/header-toolbar/index.js +0 -156
  174. package/build/components/header/header-toolbar/index.js.map +0 -1
  175. package/build/components/secondary-sidebar/inserter-sidebar.js +0 -73
  176. package/build/components/secondary-sidebar/inserter-sidebar.js.map +0 -1
  177. package/build/components/secondary-sidebar/list-view-outline.js +0 -112
  178. package/build/components/secondary-sidebar/list-view-outline.js.map +0 -1
  179. package/build/components/secondary-sidebar/list-view-sidebar.js +0 -148
  180. package/build/components/secondary-sidebar/list-view-sidebar.js.map +0 -1
  181. package/build/components/sidebar/discussion-panel/index.js +0 -59
  182. package/build/components/sidebar/discussion-panel/index.js.map +0 -1
  183. package/build/components/sidebar/featured-image/index.js +0 -70
  184. package/build/components/sidebar/featured-image/index.js.map +0 -1
  185. package/build/components/sidebar/last-revision/index.js +0 -21
  186. package/build/components/sidebar/last-revision/index.js.map +0 -1
  187. package/build/components/sidebar/page-attributes/index.js +0 -65
  188. package/build/components/sidebar/page-attributes/index.js.map +0 -1
  189. package/build/components/sidebar/plugin-post-excerpt/index.js +0 -72
  190. package/build/components/sidebar/plugin-post-excerpt/index.js.map +0 -1
  191. package/build/components/sidebar/post-excerpt/index.js +0 -54
  192. package/build/components/sidebar/post-excerpt/index.js.map +0 -1
  193. package/build/components/sidebar/post-taxonomies/index.js +0 -30
  194. package/build/components/sidebar/post-taxonomies/index.js.map +0 -1
  195. package/build/components/sidebar/post-taxonomies/taxonomy-panel.js +0 -56
  196. package/build/components/sidebar/post-taxonomies/taxonomy-panel.js.map +0 -1
  197. package/build/components/sidebar/post-template/create-modal.js +0 -99
  198. package/build/components/sidebar/post-template/create-modal.js.map +0 -1
  199. package/build/components/sidebar/post-template/form.js +0 -110
  200. package/build/components/sidebar/post-template/form.js.map +0 -1
  201. package/build/components/sidebar/post-template/index.js +0 -106
  202. package/build/components/sidebar/post-template/index.js.map +0 -1
  203. package/build/components/view-link/index.js +0 -53
  204. package/build/components/view-link/index.js.map +0 -1
  205. package/build-module/components/device-preview/index.js +0 -65
  206. package/build-module/components/device-preview/index.js.map +0 -1
  207. package/build-module/components/header/document-actions/index.js +0 -74
  208. package/build-module/components/header/document-actions/index.js.map +0 -1
  209. package/build-module/components/header/header-toolbar/index.js +0 -148
  210. package/build-module/components/header/header-toolbar/index.js.map +0 -1
  211. package/build-module/components/secondary-sidebar/inserter-sidebar.js +0 -66
  212. package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +0 -1
  213. package/build-module/components/secondary-sidebar/list-view-outline.js +0 -105
  214. package/build-module/components/secondary-sidebar/list-view-outline.js.map +0 -1
  215. package/build-module/components/secondary-sidebar/list-view-sidebar.js +0 -140
  216. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +0 -1
  217. package/build-module/components/sidebar/discussion-panel/index.js +0 -52
  218. package/build-module/components/sidebar/discussion-panel/index.js.map +0 -1
  219. package/build-module/components/sidebar/featured-image/index.js +0 -63
  220. package/build-module/components/sidebar/featured-image/index.js.map +0 -1
  221. package/build-module/components/sidebar/last-revision/index.js +0 -13
  222. package/build-module/components/sidebar/last-revision/index.js.map +0 -1
  223. package/build-module/components/sidebar/page-attributes/index.js +0 -57
  224. package/build-module/components/sidebar/page-attributes/index.js.map +0 -1
  225. package/build-module/components/sidebar/plugin-post-excerpt/index.js +0 -64
  226. package/build-module/components/sidebar/plugin-post-excerpt/index.js.map +0 -1
  227. package/build-module/components/sidebar/post-excerpt/index.js +0 -47
  228. package/build-module/components/sidebar/post-excerpt/index.js.map +0 -1
  229. package/build-module/components/sidebar/post-taxonomies/index.js +0 -21
  230. package/build-module/components/sidebar/post-taxonomies/index.js.map +0 -1
  231. package/build-module/components/sidebar/post-taxonomies/taxonomy-panel.js +0 -48
  232. package/build-module/components/sidebar/post-taxonomies/taxonomy-panel.js.map +0 -1
  233. package/build-module/components/sidebar/post-template/create-modal.js +0 -92
  234. package/build-module/components/sidebar/post-template/create-modal.js.map +0 -1
  235. package/build-module/components/sidebar/post-template/form.js +0 -102
  236. package/build-module/components/sidebar/post-template/form.js.map +0 -1
  237. package/build-module/components/sidebar/post-template/index.js +0 -98
  238. package/build-module/components/sidebar/post-template/index.js.map +0 -1
  239. package/build-module/components/view-link/index.js +0 -46
  240. package/build-module/components/view-link/index.js.map +0 -1
  241. package/src/components/device-preview/index.js +0 -73
  242. package/src/components/header/document-actions/index.js +0 -82
  243. package/src/components/header/document-actions/style.scss +0 -64
  244. package/src/components/header/header-toolbar/index.js +0 -182
  245. package/src/components/header/header-toolbar/style.scss +0 -114
  246. package/src/components/keyboard-shortcut-help-modal/test/__snapshots__/index.js.snap +0 -929
  247. package/src/components/secondary-sidebar/inserter-sidebar.js +0 -71
  248. package/src/components/secondary-sidebar/list-view-outline.js +0 -98
  249. package/src/components/secondary-sidebar/list-view-sidebar.js +0 -170
  250. package/src/components/secondary-sidebar/style.scss +0 -120
  251. package/src/components/sidebar/discussion-panel/index.js +0 -62
  252. package/src/components/sidebar/featured-image/index.js +0 -67
  253. package/src/components/sidebar/last-revision/index.js +0 -17
  254. package/src/components/sidebar/last-revision/style.scss +0 -10
  255. package/src/components/sidebar/page-attributes/index.js +0 -65
  256. package/src/components/sidebar/plugin-post-excerpt/index.js +0 -61
  257. package/src/components/sidebar/plugin-post-excerpt/test/index.js +0 -36
  258. package/src/components/sidebar/post-excerpt/index.js +0 -59
  259. package/src/components/sidebar/post-taxonomies/index.js +0 -30
  260. package/src/components/sidebar/post-taxonomies/taxonomy-panel.js +0 -48
  261. package/src/components/sidebar/post-template/create-modal.js +0 -140
  262. package/src/components/sidebar/post-template/form.js +0 -141
  263. package/src/components/sidebar/post-template/index.js +0 -120
  264. package/src/components/sidebar/post-template/style.scss +0 -22
  265. package/src/components/sidebar/settings-header/style.scss +0 -74
  266. package/src/components/sidebar/template/style.scss +0 -35
  267. package/src/components/view-link/index.js +0 -48
@@ -1,82 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { __, isRTL } from '@wordpress/i18n';
5
- import { useSelect, useDispatch } from '@wordpress/data';
6
- import { BlockIcon, store as blockEditorStore } from '@wordpress/block-editor';
7
- import {
8
- Button,
9
- VisuallyHidden,
10
- __experimentalHStack as HStack,
11
- __experimentalText as Text,
12
- } from '@wordpress/components';
13
- import { layout, chevronLeftSmall, chevronRightSmall } from '@wordpress/icons';
14
- import { store as commandsStore } from '@wordpress/commands';
15
- import { displayShortcut } from '@wordpress/keycodes';
16
-
17
- /**
18
- * Internal dependencies
19
- */
20
- import { store as editPostStore } from '../../../store';
21
-
22
- function DocumentActions() {
23
- const { template } = useSelect( ( select ) => {
24
- const { getEditedPostTemplate } = select( editPostStore );
25
-
26
- return {
27
- template: getEditedPostTemplate(),
28
- };
29
- }, [] );
30
- const { clearSelectedBlock } = useDispatch( blockEditorStore );
31
- const { setIsEditingTemplate } = useDispatch( editPostStore );
32
- const { open: openCommandCenter } = useDispatch( commandsStore );
33
-
34
- if ( ! template ) {
35
- return null;
36
- }
37
-
38
- let templateTitle = __( 'Default' );
39
- if ( template?.title ) {
40
- templateTitle = template.title;
41
- } else if ( !! template ) {
42
- templateTitle = template.slug;
43
- }
44
-
45
- return (
46
- <div className="edit-post-document-actions">
47
- <Button
48
- className="edit-post-document-actions__back"
49
- onClick={ () => {
50
- clearSelectedBlock();
51
- setIsEditingTemplate( false );
52
- } }
53
- icon={ isRTL() ? chevronRightSmall : chevronLeftSmall }
54
- >
55
- { __( 'Back' ) }
56
- </Button>
57
- <Button
58
- className="edit-post-document-actions__command"
59
- onClick={ () => openCommandCenter() }
60
- >
61
- <HStack
62
- className="edit-post-document-actions__title"
63
- spacing={ 1 }
64
- justify="center"
65
- >
66
- <BlockIcon icon={ layout } />
67
- <Text size="body" as="h1">
68
- <VisuallyHidden as="span">
69
- { __( 'Editing template: ' ) }
70
- </VisuallyHidden>
71
- { templateTitle }
72
- </Text>
73
- </HStack>
74
- <span className="edit-post-document-actions__shortcut">
75
- { displayShortcut.primary( 'k' ) }
76
- </span>
77
- </Button>
78
- </div>
79
- );
80
- }
81
-
82
- export default DocumentActions;
@@ -1,64 +0,0 @@
1
- .edit-post-document-actions {
2
- display: flex;
3
- align-items: center;
4
- gap: $grid-unit;
5
- height: $button-size;
6
- justify-content: space-between;
7
- // Flex items will, by default, refuse to shrink below a minimum
8
- // intrinsic width. In order to shrink this flexbox item, and
9
- // subsequently truncate child text, we set an explicit min-width.
10
- // See https://dev.w3.org/csswg/css-flexbox/#min-size-auto
11
- min-width: 0;
12
- background: $gray-100;
13
- border-radius: 4px;
14
- width: min(100%, 450px);
15
-
16
- .components-button {
17
- &:hover {
18
- color: var(--wp-block-synced-color);
19
- background: $gray-200;
20
- }
21
- }
22
- }
23
-
24
- .edit-post-document-actions__command {
25
- flex-grow: 1;
26
- color: var(--wp-block-synced-color);
27
- overflow: hidden;
28
- }
29
-
30
- .edit-post-document-actions__title {
31
- flex-grow: 1;
32
- color: var(--wp-block-synced-color);
33
- overflow: hidden;
34
-
35
- &:hover {
36
- color: var(--wp-block-synced-color);
37
- }
38
-
39
- .block-editor-block-icon {
40
- flex-shrink: 0;
41
- }
42
-
43
- h1 {
44
- white-space: nowrap;
45
- overflow: hidden;
46
- text-overflow: ellipsis;
47
- color: var(--wp-block-synced-color);
48
- }
49
- }
50
-
51
- .edit-post-document-actions__shortcut {
52
- color: $gray-800;
53
- }
54
-
55
- .edit-post-document-actions__back.components-button.has-icon.has-text {
56
- min-width: $button-size;
57
- flex-shrink: 0;
58
- color: $gray-700;
59
- gap: 0;
60
-
61
- &:hover {
62
- color: currentColor;
63
- }
64
- }
@@ -1,182 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useViewportMatch } from '@wordpress/compose';
5
- import { useSelect, useDispatch } from '@wordpress/data';
6
- import { __, _x } from '@wordpress/i18n';
7
- import {
8
- NavigableToolbar,
9
- ToolSelector,
10
- store as blockEditorStore,
11
- privateApis as blockEditorPrivateApis,
12
- } from '@wordpress/block-editor';
13
- import {
14
- EditorHistoryRedo,
15
- EditorHistoryUndo,
16
- store as editorStore,
17
- } from '@wordpress/editor';
18
- import { Button, ToolbarItem } from '@wordpress/components';
19
- import { listView, plus } from '@wordpress/icons';
20
- import { useRef, useCallback } from '@wordpress/element';
21
- import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
22
-
23
- /**
24
- * Internal dependencies
25
- */
26
- import { store as editPostStore } from '../../../store';
27
- import { unlock } from '../../../lock-unlock';
28
-
29
- const { useShouldContextualToolbarShow } = unlock( blockEditorPrivateApis );
30
-
31
- const preventDefault = ( event ) => {
32
- event.preventDefault();
33
- };
34
-
35
- function HeaderToolbar( { hasFixedToolbar, setListViewToggleElement } ) {
36
- const inserterButton = useRef();
37
- const { setIsInserterOpened, setIsListViewOpened } =
38
- useDispatch( editPostStore );
39
- const {
40
- isInserterEnabled,
41
- isInserterOpened,
42
- isTextModeEnabled,
43
- showIconLabels,
44
- isListViewOpen,
45
- listViewShortcut,
46
- } = useSelect( ( select ) => {
47
- const { hasInserterItems, getBlockRootClientId, getBlockSelectionEnd } =
48
- select( blockEditorStore );
49
- const { getEditorSettings } = select( editorStore );
50
- const { getEditorMode, isFeatureActive, isListViewOpened } =
51
- select( editPostStore );
52
- const { getShortcutRepresentation } = select( keyboardShortcutsStore );
53
-
54
- return {
55
- // This setting (richEditingEnabled) should not live in the block editor's setting.
56
- isInserterEnabled:
57
- getEditorMode() === 'visual' &&
58
- getEditorSettings().richEditingEnabled &&
59
- hasInserterItems(
60
- getBlockRootClientId( getBlockSelectionEnd() )
61
- ),
62
- isInserterOpened: select( editPostStore ).isInserterOpened(),
63
- isTextModeEnabled: getEditorMode() === 'text',
64
- showIconLabels: isFeatureActive( 'showIconLabels' ),
65
- isListViewOpen: isListViewOpened(),
66
- listViewShortcut: getShortcutRepresentation(
67
- 'core/edit-post/toggle-list-view'
68
- ),
69
- };
70
- }, [] );
71
-
72
- const isLargeViewport = useViewportMatch( 'medium' );
73
- const isWideViewport = useViewportMatch( 'wide' );
74
- const {
75
- shouldShowContextualToolbar,
76
- canFocusHiddenToolbar,
77
- fixedToolbarCanBeFocused,
78
- } = useShouldContextualToolbarShow();
79
- // If there's a block toolbar to be focused, disable the focus shortcut for the document toolbar.
80
- // There's a fixed block toolbar when the fixed toolbar option is enabled or when the browser width is less than the large viewport.
81
- const blockToolbarCanBeFocused =
82
- shouldShowContextualToolbar ||
83
- canFocusHiddenToolbar ||
84
- fixedToolbarCanBeFocused;
85
- /* translators: accessibility text for the editor toolbar */
86
- const toolbarAriaLabel = __( 'Document tools' );
87
-
88
- const toggleListView = useCallback(
89
- () => setIsListViewOpened( ! isListViewOpen ),
90
- [ setIsListViewOpened, isListViewOpen ]
91
- );
92
- const overflowItems = (
93
- <>
94
- <ToolbarItem
95
- as={ Button }
96
- className="edit-post-header-toolbar__document-overview-toggle"
97
- icon={ listView }
98
- disabled={ isTextModeEnabled }
99
- isPressed={ isListViewOpen }
100
- /* translators: button label text should, if possible, be under 16 characters. */
101
- label={ __( 'Document Overview' ) }
102
- onClick={ toggleListView }
103
- shortcut={ listViewShortcut }
104
- showTooltip={ ! showIconLabels }
105
- variant={ showIconLabels ? 'tertiary' : undefined }
106
- aria-expanded={ isListViewOpen }
107
- ref={ setListViewToggleElement }
108
- />
109
- </>
110
- );
111
- const toggleInserter = useCallback( () => {
112
- if ( isInserterOpened ) {
113
- // Focusing the inserter button should close the inserter popover.
114
- // However, there are some cases it won't close when the focus is lost.
115
- // See https://github.com/WordPress/gutenberg/issues/43090 for more details.
116
- inserterButton.current.focus();
117
- setIsInserterOpened( false );
118
- } else {
119
- setIsInserterOpened( true );
120
- }
121
- }, [ isInserterOpened, setIsInserterOpened ] );
122
-
123
- /* translators: button label text should, if possible, be under 16 characters. */
124
- const longLabel = _x(
125
- 'Toggle block inserter',
126
- 'Generic label for block inserter button'
127
- );
128
- const shortLabel = ! isInserterOpened ? __( 'Add' ) : __( 'Close' );
129
-
130
- return (
131
- <NavigableToolbar
132
- className="edit-post-header-toolbar"
133
- aria-label={ toolbarAriaLabel }
134
- shouldUseKeyboardFocusShortcut={ ! blockToolbarCanBeFocused }
135
- variant="unstyled"
136
- >
137
- <div className="edit-post-header-toolbar__left">
138
- <ToolbarItem
139
- ref={ inserterButton }
140
- as={ Button }
141
- className="edit-post-header-toolbar__inserter-toggle"
142
- variant="primary"
143
- isPressed={ isInserterOpened }
144
- onMouseDown={ preventDefault }
145
- onClick={ toggleInserter }
146
- disabled={ ! isInserterEnabled }
147
- icon={ plus }
148
- label={ showIconLabels ? shortLabel : longLabel }
149
- showTooltip={ ! showIconLabels }
150
- aria-expanded={ isInserterOpened }
151
- />
152
- { ( isWideViewport || ! showIconLabels ) && (
153
- <>
154
- { isLargeViewport && ! hasFixedToolbar && (
155
- <ToolbarItem
156
- as={ ToolSelector }
157
- showTooltip={ ! showIconLabels }
158
- variant={
159
- showIconLabels ? 'tertiary' : undefined
160
- }
161
- disabled={ isTextModeEnabled }
162
- />
163
- ) }
164
- <ToolbarItem
165
- as={ EditorHistoryUndo }
166
- showTooltip={ ! showIconLabels }
167
- variant={ showIconLabels ? 'tertiary' : undefined }
168
- />
169
- <ToolbarItem
170
- as={ EditorHistoryRedo }
171
- showTooltip={ ! showIconLabels }
172
- variant={ showIconLabels ? 'tertiary' : undefined }
173
- />
174
- { overflowItems }
175
- </>
176
- ) }
177
- </div>
178
- </NavigableToolbar>
179
- );
180
- }
181
-
182
- export default HeaderToolbar;
@@ -1,114 +0,0 @@
1
- .edit-post-header-toolbar {
2
- display: inline-flex;
3
- align-items: center;
4
-
5
- // Hide all action buttons except the inserter on mobile.
6
- .edit-post-header-toolbar__left > .components-button {
7
- display: none;
8
-
9
- @include break-small() {
10
- display: inline-flex;
11
- }
12
- }
13
-
14
- .edit-post-header-toolbar__left > .edit-post-header-toolbar__inserter-toggle {
15
- display: inline-flex;
16
-
17
- svg {
18
- transition: transform cubic-bezier(0.165, 0.84, 0.44, 1) 0.2s;
19
- @include reduce-motion("transition");
20
- }
21
-
22
- &.is-pressed {
23
- svg {
24
- transform: rotate(45deg);
25
- }
26
- }
27
- }
28
-
29
- // Hide table of contents and list view on mobile.
30
- .block-editor-list-view {
31
- display: none;
32
-
33
- @include break-small() {
34
- display: flex;
35
- }
36
- }
37
-
38
- // The Toolbar component adds different styles to buttons, so we reset them
39
- // here to the original button styles
40
- .edit-post-header-toolbar__left > .components-button.has-icon,
41
- .edit-post-header-toolbar__left > .components-dropdown > .components-button.has-icon {
42
- height: $button-size;
43
- min-width: $button-size;
44
- padding: 6px;
45
-
46
- &.is-pressed {
47
- background: $gray-900;
48
- }
49
-
50
- &:focus:not(:disabled) {
51
- box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 $border-width $white;
52
- outline: 1px solid transparent;
53
- }
54
-
55
- &::before {
56
- display: none;
57
- }
58
- }
59
- }
60
-
61
- // Reduced UI.
62
- .edit-post-header.has-reduced-ui {
63
- @include break-small () {
64
- // Apply transition to every button but the first one.
65
- .edit-post-header-toolbar__left > * + .components-button,
66
- .edit-post-header-toolbar__left > * + .components-dropdown > [aria-expanded="false"] {
67
- transition: opacity 0.1s linear;
68
- @include reduce-motion("transition");
69
- }
70
-
71
- // Zero out opacity unless hovered.
72
- &:not(:hover) .edit-post-header-toolbar__left > * + .components-button,
73
- &:not(:hover) .edit-post-header-toolbar__left > * + .components-dropdown > [aria-expanded="false"] {
74
- opacity: 0;
75
- }
76
- }
77
- }
78
-
79
- .edit-post-header-toolbar__left {
80
- display: inline-flex;
81
- align-items: center;
82
- padding-left: $grid-unit-10;
83
-
84
- // Some plugins add buttons here despite best practices.
85
- // Push them a bit rightwards to fit the top toolbar.
86
- margin-right: $grid-unit-10;
87
-
88
- @include break-small() {
89
- padding-left: $grid-unit-30;
90
- }
91
-
92
- @include break-wide() {
93
- padding-right: $grid-unit-10;
94
- }
95
- }
96
-
97
- .edit-post-header-toolbar .edit-post-header-toolbar__left > .edit-post-header-toolbar__inserter-toggle.has-icon {
98
- margin-right: $grid-unit-10;
99
- // Special dimensions for this button.
100
- min-width: 32px;
101
- width: 32px;
102
- height: 32px;
103
- padding: 0;
104
-
105
- .show-icon-labels & {
106
- width: auto;
107
- height: 36px;
108
- padding: 0 $grid-unit-10;
109
- }
110
- }
111
-
112
- .show-icon-labels .edit-post-header-toolbar__left > * + * {
113
- margin-left: $grid-unit-10;
114
- }