@wordpress/editor 13.34.0 → 13.35.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.
- package/CHANGELOG.md +10 -4
- package/build/bindings/pattern-overrides.js +70 -1
- package/build/bindings/pattern-overrides.js.map +1 -1
- package/build/components/block-settings-menu/content-only-settings-menu.js +126 -0
- package/build/components/block-settings-menu/content-only-settings-menu.js.map +1 -0
- package/build/components/block-settings-menu/content-only-settings-menu.native.js +11 -0
- package/build/components/block-settings-menu/content-only-settings-menu.native.js.map +1 -0
- package/build/components/collapsible-block-toolbar/index.js +2 -2
- package/build/components/collapsible-block-toolbar/index.js.map +1 -1
- package/build/components/document-bar/index.js +2 -2
- package/build/components/document-bar/index.js.map +1 -1
- package/build/components/document-outline/item.js +2 -2
- package/build/components/document-outline/item.js.map +1 -1
- package/build/components/document-tools/index.js +15 -18
- package/build/components/document-tools/index.js.map +1 -1
- package/build/components/editor-canvas/index.js +19 -8
- package/build/components/editor-canvas/index.js.map +1 -1
- package/build/components/global-keyboard-shortcuts/register-shortcuts.js +1 -1
- package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
- package/build/components/global-styles-provider/index.js +130 -0
- package/build/components/global-styles-provider/index.js.map +1 -0
- package/build/components/header/index.js +147 -0
- package/build/components/header/index.js.map +1 -0
- package/build/components/inserter-sidebar/index.js +56 -31
- package/build/components/inserter-sidebar/index.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/index.js +2 -2
- package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
- package/build/components/post-actions/actions.js +122 -64
- package/build/components/post-actions/actions.js.map +1 -1
- package/build/components/post-actions/index.js +7 -14
- package/build/components/post-actions/index.js.map +1 -1
- package/build/components/post-card-panel/index.js +5 -29
- package/build/components/post-card-panel/index.js.map +1 -1
- package/build/components/post-comments/index.js +28 -8
- package/build/components/post-comments/index.js.map +1 -1
- package/build/components/post-discussion/panel.js +103 -21
- package/build/components/post-discussion/panel.js.map +1 -1
- package/build/components/post-excerpt/panel.js +2 -2
- package/build/components/post-excerpt/panel.js.map +1 -1
- package/build/components/post-format/panel.js +27 -0
- package/build/components/post-format/panel.js.map +1 -0
- package/build/components/post-panel-row/index.js +2 -2
- package/build/components/post-panel-row/index.js.map +1 -1
- package/build/components/post-panel-section/index.js +28 -0
- package/build/components/post-panel-section/index.js.map +1 -0
- package/build/components/post-pingbacks/index.js +5 -2
- package/build/components/post-pingbacks/index.js.map +1 -1
- package/build/components/post-saved-state/index.js +2 -2
- package/build/components/post-saved-state/index.js.map +1 -1
- package/build/components/post-slug/panel.js +27 -0
- package/build/components/post-slug/panel.js.map +1 -0
- package/build/components/post-status/index.js +4 -4
- package/build/components/post-status/index.js.map +1 -1
- package/build/components/post-sticky/panel.js +21 -0
- package/build/components/post-sticky/panel.js.map +1 -0
- package/build/components/post-title/index.js +2 -2
- package/build/components/post-title/index.js.map +1 -1
- package/build/components/post-title/post-title-raw.js +2 -2
- package/build/components/post-title/post-title-raw.js.map +1 -1
- package/build/components/post-transform-panel/hooks.js +90 -0
- package/build/components/post-transform-panel/hooks.js.map +1 -0
- package/build/components/post-transform-panel/index.js +101 -0
- package/build/components/post-transform-panel/index.js.map +1 -0
- package/build/components/post-trash/panel.js +18 -0
- package/build/components/post-trash/panel.js.map +1 -0
- package/build/components/post-type-support-check/index.js +1 -1
- package/build/components/post-type-support-check/index.js.map +1 -1
- package/build/components/preferences-modal/index.js +3 -3
- package/build/components/preferences-modal/index.js.map +1 -1
- package/build/components/provider/index.js +3 -1
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/use-block-editor-settings.js +21 -3
- package/build/components/provider/use-block-editor-settings.js.map +1 -1
- package/build/components/sidebar/constants.js +11 -0
- package/build/components/sidebar/constants.js.map +1 -0
- package/build/components/sidebar/header.js +53 -0
- package/build/components/sidebar/header.js.map +1 -0
- package/build/components/sidebar/index.js +157 -0
- package/build/components/sidebar/index.js.map +1 -0
- package/build/components/sidebar/post-summary.js +84 -0
- package/build/components/sidebar/post-summary.js.map +1 -0
- package/build/components/start-page-options/index.js +5 -7
- package/build/components/start-page-options/index.js.map +1 -1
- package/build/components/start-template-options/index.js +192 -0
- package/build/components/start-template-options/index.js.map +1 -0
- package/build/components/template-content-panel/index.js +38 -0
- package/build/components/template-content-panel/index.js.map +1 -0
- package/build/hooks/pattern-overrides.js +10 -5
- package/build/hooks/pattern-overrides.js.map +1 -1
- package/build/private-apis.js +7 -12
- package/build/private-apis.js.map +1 -1
- package/build/private-apis.native.js +72 -0
- package/build/private-apis.native.js.map +1 -0
- package/build/store/private-selectors.js +6 -1
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +15 -0
- package/build/store/reducer.js.map +1 -1
- package/build-module/bindings/pattern-overrides.js +69 -1
- package/build-module/bindings/pattern-overrides.js.map +1 -1
- package/build-module/components/block-settings-menu/content-only-settings-menu.js +119 -0
- package/build-module/components/block-settings-menu/content-only-settings-menu.js.map +1 -0
- package/build-module/components/block-settings-menu/content-only-settings-menu.native.js +5 -0
- package/build-module/components/block-settings-menu/content-only-settings-menu.native.js.map +1 -0
- package/build-module/components/collapsible-block-toolbar/index.js +2 -2
- package/build-module/components/collapsible-block-toolbar/index.js.map +1 -1
- package/build-module/components/document-bar/index.js +2 -2
- package/build-module/components/document-bar/index.js.map +1 -1
- package/build-module/components/document-outline/item.js +2 -2
- package/build-module/components/document-outline/item.js.map +1 -1
- package/build-module/components/document-tools/index.js +16 -19
- package/build-module/components/document-tools/index.js.map +1 -1
- package/build-module/components/editor-canvas/index.js +19 -8
- package/build-module/components/editor-canvas/index.js.map +1 -1
- package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +1 -1
- package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
- package/build-module/components/global-styles-provider/index.js +120 -0
- package/build-module/components/global-styles-provider/index.js.map +1 -0
- package/build-module/components/header/index.js +139 -0
- package/build-module/components/header/index.js.map +1 -0
- package/build-module/components/inserter-sidebar/index.js +59 -34
- package/build-module/components/inserter-sidebar/index.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/index.js +2 -2
- package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
- package/build-module/components/post-actions/actions.js +125 -66
- package/build-module/components/post-actions/actions.js.map +1 -1
- package/build-module/components/post-actions/index.js +7 -14
- package/build-module/components/post-actions/index.js.map +1 -1
- package/build-module/components/post-card-panel/index.js +7 -30
- package/build-module/components/post-card-panel/index.js.map +1 -1
- package/build-module/components/post-comments/index.js +30 -10
- package/build-module/components/post-comments/index.js.map +1 -1
- package/build-module/components/post-discussion/panel.js +105 -23
- package/build-module/components/post-discussion/panel.js.map +1 -1
- package/build-module/components/post-excerpt/panel.js +2 -2
- package/build-module/components/post-excerpt/panel.js.map +1 -1
- package/build-module/components/post-format/panel.js +18 -0
- package/build-module/components/post-format/panel.js.map +1 -0
- package/build-module/components/post-panel-row/index.js +2 -2
- package/build-module/components/post-panel-row/index.js.map +1 -1
- package/build-module/components/post-panel-section/index.js +20 -0
- package/build-module/components/post-panel-section/index.js.map +1 -0
- package/build-module/components/post-pingbacks/index.js +6 -3
- package/build-module/components/post-pingbacks/index.js.map +1 -1
- package/build-module/components/post-saved-state/index.js +2 -2
- package/build-module/components/post-saved-state/index.js.map +1 -1
- package/build-module/components/post-slug/panel.js +18 -0
- package/build-module/components/post-slug/panel.js.map +1 -0
- package/build-module/components/post-status/index.js +4 -4
- package/build-module/components/post-status/index.js.map +1 -1
- package/build-module/components/post-sticky/panel.js +12 -0
- package/build-module/components/post-sticky/panel.js.map +1 -0
- package/build-module/components/post-title/index.js +2 -2
- package/build-module/components/post-title/index.js.map +1 -1
- package/build-module/components/post-title/post-title-raw.js +2 -2
- package/build-module/components/post-title/post-title-raw.js.map +1 -1
- package/build-module/components/post-transform-panel/hooks.js +83 -0
- package/build-module/components/post-transform-panel/hooks.js.map +1 -0
- package/build-module/components/post-transform-panel/index.js +94 -0
- package/build-module/components/post-transform-panel/index.js.map +1 -0
- package/build-module/components/post-trash/panel.js +10 -0
- package/build-module/components/post-trash/panel.js.map +1 -0
- package/build-module/components/post-type-support-check/index.js +1 -1
- package/build-module/components/post-type-support-check/index.js.map +1 -1
- package/build-module/components/preferences-modal/index.js +3 -3
- package/build-module/components/preferences-modal/index.js.map +1 -1
- package/build-module/components/provider/index.js +3 -1
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/use-block-editor-settings.js +21 -3
- package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
- package/build-module/components/sidebar/constants.js +5 -0
- package/build-module/components/sidebar/constants.js.map +1 -0
- package/build-module/components/sidebar/header.js +46 -0
- package/build-module/components/sidebar/header.js.map +1 -0
- package/build-module/components/sidebar/index.js +149 -0
- package/build-module/components/sidebar/index.js.map +1 -0
- package/build-module/components/sidebar/post-summary.js +77 -0
- package/build-module/components/sidebar/post-summary.js.map +1 -0
- package/build-module/components/start-page-options/index.js +5 -7
- package/build-module/components/start-page-options/index.js.map +1 -1
- package/build-module/components/start-template-options/index.js +185 -0
- package/build-module/components/start-template-options/index.js.map +1 -0
- package/build-module/components/template-content-panel/index.js +31 -0
- package/build-module/components/template-content-panel/index.js.map +1 -0
- package/build-module/hooks/pattern-overrides.js +10 -5
- package/build-module/hooks/pattern-overrides.js.map +1 -1
- package/build-module/private-apis.js +7 -12
- package/build-module/private-apis.js.map +1 -1
- package/build-module/private-apis.native.js +62 -0
- package/build-module/private-apis.native.js.map +1 -0
- package/build-module/store/private-selectors.js +3 -0
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +14 -0
- package/build-module/store/reducer.js.map +1 -1
- package/build-style/style-rtl.css +328 -18
- package/build-style/style.css +328 -18
- package/package.json +38 -36
- package/src/bindings/pattern-overrides.js +83 -1
- package/src/components/autocompleters/style.scss +1 -2
- package/src/components/block-settings-menu/content-only-settings-menu.js +175 -0
- package/src/components/block-settings-menu/content-only-settings-menu.native.js +4 -0
- package/src/components/block-settings-menu/style.scss +4 -0
- package/src/components/collapsible-block-toolbar/index.js +2 -2
- package/src/components/document-bar/index.js +2 -2
- package/src/components/document-outline/item.js +2 -2
- package/src/components/document-tools/index.js +19 -21
- package/src/components/editor-canvas/index.js +18 -6
- package/src/components/global-keyboard-shortcuts/register-shortcuts.js +1 -1
- package/src/components/global-styles-provider/index.js +162 -0
- package/src/components/header/index.js +154 -0
- package/src/components/header/style.scss +231 -0
- package/src/components/inserter-sidebar/index.js +52 -29
- package/src/components/inserter-sidebar/style.scss +10 -3
- package/src/components/keyboard-shortcut-help-modal/index.js +2 -2
- package/src/components/list-view-sidebar/style.scss +1 -0
- package/src/components/page-attributes/test/order.js +5 -1
- package/src/components/post-actions/actions.js +256 -150
- package/src/components/post-actions/index.js +5 -38
- package/src/components/post-card-panel/index.js +39 -85
- package/src/components/post-comments/index.js +47 -9
- package/src/components/post-discussion/panel.js +108 -31
- package/src/components/post-discussion/style.scss +26 -0
- package/src/components/post-excerpt/panel.js +2 -2
- package/src/components/post-format/panel.js +22 -0
- package/src/components/post-format/style.scss +6 -0
- package/src/components/post-last-revision/test/check.js +5 -1
- package/src/components/post-panel-row/index.js +2 -2
- package/src/components/post-panel-section/index.js +19 -0
- package/src/components/post-panel-section/style.scss +3 -0
- package/src/components/post-pingbacks/index.js +11 -2
- package/src/components/post-publish-panel/style.scss +5 -0
- package/src/components/post-saved-state/index.js +2 -2
- package/src/components/post-slug/panel.js +22 -0
- package/src/components/post-slug/style.scss +5 -0
- package/src/components/post-slug/test/index.js +5 -1
- package/src/components/post-status/index.js +4 -4
- package/src/components/post-sticky/panel.js +18 -0
- package/src/components/post-title/index.js +2 -2
- package/src/components/post-title/post-title-raw.js +2 -2
- package/src/components/post-transform-panel/hooks.js +114 -0
- package/src/components/post-transform-panel/index.js +99 -0
- package/src/components/post-trash/panel.js +13 -0
- package/src/components/post-type-support-check/index.js +1 -1
- package/src/components/post-type-support-check/test/index.js +2 -2
- package/src/components/preferences-modal/index.js +3 -3
- package/src/components/provider/index.js +4 -0
- package/src/components/provider/use-block-editor-settings.js +19 -4
- package/src/components/sidebar/constants.js +4 -0
- package/src/components/sidebar/header.js +49 -0
- package/src/components/sidebar/index.js +200 -0
- package/src/components/sidebar/post-summary.js +104 -0
- package/src/components/sidebar/style.scss +18 -0
- package/src/components/start-page-options/index.js +6 -4
- package/src/components/start-template-options/index.js +219 -0
- package/src/components/start-template-options/style.scss +55 -0
- package/src/components/template-areas/style.scss +0 -1
- package/src/components/template-content-panel/index.js +36 -0
- package/src/hooks/pattern-overrides.js +12 -6
- package/src/private-apis.js +10 -12
- package/src/private-apis.native.js +61 -0
- package/src/store/private-selectors.js +3 -0
- package/src/store/reducer.js +12 -0
- package/src/style.scss +7 -0
- package/src/components/post-slug/test/check.js +0 -17
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import clsx from 'clsx';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { useSelect } from '@wordpress/data';
|
|
10
|
+
import { useViewportMatch } from '@wordpress/compose';
|
|
11
|
+
import { __unstableMotion as motion } from '@wordpress/components';
|
|
12
|
+
import { store as preferencesStore } from '@wordpress/preferences';
|
|
13
|
+
import { useState } from '@wordpress/element';
|
|
14
|
+
import { PinnedItems } from '@wordpress/interface';
|
|
15
|
+
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Internal dependencies
|
|
19
|
+
*/
|
|
20
|
+
import CollapsableBlockToolbar from '../collapsible-block-toolbar';
|
|
21
|
+
import DocumentBar from '../document-bar';
|
|
22
|
+
import DocumentTools from '../document-tools';
|
|
23
|
+
import MoreMenu from '../more-menu';
|
|
24
|
+
import PostPreviewButton from '../post-preview-button';
|
|
25
|
+
import PostPublishButtonOrToggle from '../post-publish-button/post-publish-button-or-toggle';
|
|
26
|
+
import PostSavedState from '../post-saved-state';
|
|
27
|
+
import PostTypeSupportCheck from '../post-type-support-check';
|
|
28
|
+
import PostViewLink from '../post-view-link';
|
|
29
|
+
import PreviewDropdown from '../preview-dropdown';
|
|
30
|
+
import { store as editorStore } from '../../store';
|
|
31
|
+
|
|
32
|
+
const slideY = {
|
|
33
|
+
hidden: { y: '-50px' },
|
|
34
|
+
distractionFreeInactive: { y: 0 },
|
|
35
|
+
hover: { y: 0, transition: { type: 'tween', delay: 0.2 } },
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
function Header( {
|
|
39
|
+
customSaveButton,
|
|
40
|
+
forceIsDirty,
|
|
41
|
+
forceDisableBlockTools,
|
|
42
|
+
setEntitiesSavedStatesCallback,
|
|
43
|
+
title,
|
|
44
|
+
children,
|
|
45
|
+
} ) {
|
|
46
|
+
const isWideViewport = useViewportMatch( 'large' );
|
|
47
|
+
const isLargeViewport = useViewportMatch( 'medium' );
|
|
48
|
+
const {
|
|
49
|
+
isTextEditor,
|
|
50
|
+
isPublishSidebarOpened,
|
|
51
|
+
showIconLabels,
|
|
52
|
+
hasFixedToolbar,
|
|
53
|
+
isNestedEntity,
|
|
54
|
+
isZoomedOutView,
|
|
55
|
+
} = useSelect( ( select ) => {
|
|
56
|
+
const { get: getPreference } = select( preferencesStore );
|
|
57
|
+
const {
|
|
58
|
+
getEditorMode,
|
|
59
|
+
getEditorSettings,
|
|
60
|
+
isPublishSidebarOpened: _isPublishSidebarOpened,
|
|
61
|
+
} = select( editorStore );
|
|
62
|
+
const { __unstableGetEditorMode } = select( blockEditorStore );
|
|
63
|
+
|
|
64
|
+
return {
|
|
65
|
+
isTextEditor: getEditorMode() === 'text',
|
|
66
|
+
isPublishSidebarOpened: _isPublishSidebarOpened(),
|
|
67
|
+
showIconLabels: getPreference( 'core', 'showIconLabels' ),
|
|
68
|
+
hasFixedToolbar: getPreference( 'core', 'fixedToolbar' ),
|
|
69
|
+
isNestedEntity:
|
|
70
|
+
!! getEditorSettings().onNavigateToPreviousEntityRecord,
|
|
71
|
+
isZoomedOutView: __unstableGetEditorMode() === 'zoom-out',
|
|
72
|
+
};
|
|
73
|
+
}, [] );
|
|
74
|
+
|
|
75
|
+
const hasTopToolbar = isLargeViewport && hasFixedToolbar;
|
|
76
|
+
|
|
77
|
+
const [ isBlockToolsCollapsed, setIsBlockToolsCollapsed ] =
|
|
78
|
+
useState( true );
|
|
79
|
+
|
|
80
|
+
// The edit-post-header classname is only kept for backward compatibilty
|
|
81
|
+
// as some plugins might be relying on its presence.
|
|
82
|
+
return (
|
|
83
|
+
<div className="editor-header edit-post-header">
|
|
84
|
+
{ children }
|
|
85
|
+
<motion.div
|
|
86
|
+
variants={ slideY }
|
|
87
|
+
transition={ { type: 'tween', delay: 0.8 } }
|
|
88
|
+
className="editor-header__toolbar"
|
|
89
|
+
>
|
|
90
|
+
<DocumentTools
|
|
91
|
+
disableBlockTools={ forceDisableBlockTools || isTextEditor }
|
|
92
|
+
/>
|
|
93
|
+
{ hasTopToolbar && (
|
|
94
|
+
<CollapsableBlockToolbar
|
|
95
|
+
isCollapsed={ isBlockToolsCollapsed }
|
|
96
|
+
onToggle={ setIsBlockToolsCollapsed }
|
|
97
|
+
/>
|
|
98
|
+
) }
|
|
99
|
+
<div
|
|
100
|
+
className={ clsx( 'editor-header__center', {
|
|
101
|
+
'is-collapsed':
|
|
102
|
+
! isBlockToolsCollapsed && hasTopToolbar,
|
|
103
|
+
} ) }
|
|
104
|
+
>
|
|
105
|
+
{ ! title ? (
|
|
106
|
+
<PostTypeSupportCheck supportKeys="title">
|
|
107
|
+
<DocumentBar />
|
|
108
|
+
</PostTypeSupportCheck>
|
|
109
|
+
) : (
|
|
110
|
+
title
|
|
111
|
+
) }
|
|
112
|
+
</div>
|
|
113
|
+
</motion.div>
|
|
114
|
+
<motion.div
|
|
115
|
+
variants={ slideY }
|
|
116
|
+
transition={ { type: 'tween', delay: 0.8 } }
|
|
117
|
+
className="editor-header__settings"
|
|
118
|
+
>
|
|
119
|
+
{ ! customSaveButton && ! isPublishSidebarOpened && (
|
|
120
|
+
// This button isn't completely hidden by the publish sidebar.
|
|
121
|
+
// We can't hide the whole toolbar when the publish sidebar is open because
|
|
122
|
+
// we want to prevent mounting/unmounting the PostPublishButtonOrToggle DOM node.
|
|
123
|
+
// We track that DOM node to return focus to the PostPublishButtonOrToggle
|
|
124
|
+
// when the publish sidebar has been closed.
|
|
125
|
+
<PostSavedState forceIsDirty={ forceIsDirty } />
|
|
126
|
+
) }
|
|
127
|
+
<PreviewDropdown
|
|
128
|
+
forceIsAutosaveable={ forceIsDirty }
|
|
129
|
+
disabled={ isNestedEntity || isZoomedOutView }
|
|
130
|
+
/>
|
|
131
|
+
<PostPreviewButton
|
|
132
|
+
className="editor-header__post-preview-button"
|
|
133
|
+
forceIsAutosaveable={ forceIsDirty }
|
|
134
|
+
/>
|
|
135
|
+
<PostViewLink />
|
|
136
|
+
{ ! customSaveButton && (
|
|
137
|
+
<PostPublishButtonOrToggle
|
|
138
|
+
forceIsDirty={ forceIsDirty }
|
|
139
|
+
setEntitiesSavedStatesCallback={
|
|
140
|
+
setEntitiesSavedStatesCallback
|
|
141
|
+
}
|
|
142
|
+
/>
|
|
143
|
+
) }
|
|
144
|
+
{ customSaveButton }
|
|
145
|
+
{ ( isWideViewport || ! showIconLabels ) && (
|
|
146
|
+
<PinnedItems.Slot scope="core" />
|
|
147
|
+
) }
|
|
148
|
+
<MoreMenu />
|
|
149
|
+
</motion.div>
|
|
150
|
+
</div>
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export default Header;
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
.editor-header {
|
|
2
|
+
height: $header-height;
|
|
3
|
+
background: $white;
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-wrap: wrap;
|
|
6
|
+
align-items: center;
|
|
7
|
+
// The header should never be wider than the viewport, or buttons might be hidden. Especially relevant at high zoom levels. Related to https://core.trac.wordpress.org/ticket/47603#ticket.
|
|
8
|
+
max-width: 100vw;
|
|
9
|
+
justify-content: space-between;
|
|
10
|
+
|
|
11
|
+
// Make toolbar sticky on larger breakpoints
|
|
12
|
+
@include break-zoomed-in {
|
|
13
|
+
flex-wrap: nowrap;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.editor-header__toolbar {
|
|
18
|
+
display: flex;
|
|
19
|
+
// Allow this area to shrink to fit the toolbar buttons.
|
|
20
|
+
flex-shrink: 8;
|
|
21
|
+
// Take up the space of the toolbar so it can be justified to the left side of the toolbar.
|
|
22
|
+
flex-grow: 3;
|
|
23
|
+
// Hide the overflow so flex will limit its width. Block toolbar will allow scrolling on fixed toolbar.
|
|
24
|
+
overflow: hidden;
|
|
25
|
+
// Leave enough room for the focus ring to show.
|
|
26
|
+
padding: 2px 0;
|
|
27
|
+
align-items: center;
|
|
28
|
+
// Allow focus ring to be fully visible on furthest right button.
|
|
29
|
+
@include break-medium() {
|
|
30
|
+
padding-right: var(--wp-admin-border-width-focus);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.table-of-contents {
|
|
34
|
+
display: none;
|
|
35
|
+
|
|
36
|
+
@include break-small() {
|
|
37
|
+
display: block;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.editor-header__center {
|
|
43
|
+
flex-grow: 1;
|
|
44
|
+
display: flex;
|
|
45
|
+
justify-content: center;
|
|
46
|
+
|
|
47
|
+
&.is-collapsed {
|
|
48
|
+
display: none;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Buttons on the right side
|
|
54
|
+
*/
|
|
55
|
+
|
|
56
|
+
.editor-header__settings {
|
|
57
|
+
display: inline-flex;
|
|
58
|
+
align-items: center;
|
|
59
|
+
flex-wrap: nowrap;
|
|
60
|
+
padding-right: $grid-unit-05;
|
|
61
|
+
|
|
62
|
+
@include break-small () {
|
|
63
|
+
padding-right: $grid-unit-10;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
gap: $grid-unit-10;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Show icon labels.
|
|
71
|
+
*/
|
|
72
|
+
|
|
73
|
+
.show-icon-labels.interface-pinned-items,
|
|
74
|
+
.show-icon-labels .editor-header {
|
|
75
|
+
.components-button.has-icon {
|
|
76
|
+
width: auto;
|
|
77
|
+
|
|
78
|
+
// Hide the button icons when labels are set to display...
|
|
79
|
+
svg {
|
|
80
|
+
display: none;
|
|
81
|
+
}
|
|
82
|
+
// ... and display labels.
|
|
83
|
+
&::after {
|
|
84
|
+
content: attr(aria-label);
|
|
85
|
+
}
|
|
86
|
+
&[aria-disabled="true"] {
|
|
87
|
+
background-color: transparent;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
.is-tertiary {
|
|
91
|
+
&:active {
|
|
92
|
+
box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color);
|
|
93
|
+
background-color: transparent;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// Exception for drodpdown toggle buttons.
|
|
97
|
+
.components-button.has-icon.button-toggle {
|
|
98
|
+
svg {
|
|
99
|
+
display: block;
|
|
100
|
+
}
|
|
101
|
+
&::after {
|
|
102
|
+
content: none;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Don't hide MenuItemsChoice check icons
|
|
107
|
+
.components-menu-items-choice .components-menu-items__item-icon.components-menu-items__item-icon {
|
|
108
|
+
display: block;
|
|
109
|
+
}
|
|
110
|
+
.editor-document-tools__inserter-toggle.editor-document-tools__inserter-toggle,
|
|
111
|
+
.interface-pinned-items .components-button {
|
|
112
|
+
padding-left: $grid-unit;
|
|
113
|
+
padding-right: $grid-unit;
|
|
114
|
+
|
|
115
|
+
@include break-small {
|
|
116
|
+
padding-left: $grid-unit-15;
|
|
117
|
+
padding-right: $grid-unit-15;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.editor-post-save-draft.editor-post-save-draft,
|
|
122
|
+
.editor-post-saved-state.editor-post-saved-state {
|
|
123
|
+
&::after {
|
|
124
|
+
content: none;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.show-icon-labels {
|
|
130
|
+
.editor-header__toolbar .block-editor-block-mover {
|
|
131
|
+
// Modified group borders.
|
|
132
|
+
border-left: none;
|
|
133
|
+
|
|
134
|
+
&::before {
|
|
135
|
+
content: "";
|
|
136
|
+
width: $border-width;
|
|
137
|
+
height: $grid-unit-30;
|
|
138
|
+
background-color: $gray-300;
|
|
139
|
+
margin-top: $grid-unit-05;
|
|
140
|
+
margin-left: $grid-unit;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// Modified block movers horizontal separator.
|
|
144
|
+
.block-editor-block-mover__move-button-container {
|
|
145
|
+
&::before {
|
|
146
|
+
width: calc(100% - #{$grid-unit-30});
|
|
147
|
+
background: $gray-300;
|
|
148
|
+
left: calc(50% + 1px);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.show-icon-labels.interface-pinned-items {
|
|
155
|
+
padding: 6px $grid-unit-15 $grid-unit-15;
|
|
156
|
+
margin-top: 0;
|
|
157
|
+
margin-bottom: 0;
|
|
158
|
+
margin-left: -$grid-unit-15;
|
|
159
|
+
margin-right: -$grid-unit-15;
|
|
160
|
+
border-bottom: 1px solid $gray-400;
|
|
161
|
+
display: block;
|
|
162
|
+
|
|
163
|
+
> .components-button.has-icon {
|
|
164
|
+
margin: 0;
|
|
165
|
+
padding: 6px 6px 6px $grid-unit;
|
|
166
|
+
width: 14.625rem;
|
|
167
|
+
justify-content: flex-start;
|
|
168
|
+
|
|
169
|
+
&[aria-expanded="true"] svg {
|
|
170
|
+
display: block;
|
|
171
|
+
max-width: $grid-unit-30;
|
|
172
|
+
}
|
|
173
|
+
&[aria-expanded="false"] {
|
|
174
|
+
padding-left: $grid-unit-50;
|
|
175
|
+
}
|
|
176
|
+
svg {
|
|
177
|
+
margin-right: 8px;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.editor-header__post-preview-button {
|
|
183
|
+
@include break-small {
|
|
184
|
+
display: none;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.is-distraction-free {
|
|
189
|
+
.interface-interface-skeleton__header {
|
|
190
|
+
border-bottom: none;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.editor-header {
|
|
194
|
+
background-color: $white;
|
|
195
|
+
border-bottom: 1px solid #e0e0e0;
|
|
196
|
+
position: absolute;
|
|
197
|
+
width: 100%;
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
// hide some parts
|
|
201
|
+
& > .edit-post-header__settings > .edit-post-header__post-preview-button {
|
|
202
|
+
visibility: hidden;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
& > .editor-header__toolbar .editor-document-tools__document-overview-toggle,
|
|
206
|
+
& > .editor-header__settings > .editor-preview-dropdown,
|
|
207
|
+
& > .editor-header__settings > .interface-pinned-items {
|
|
208
|
+
display: none;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// We need ! important because we override inline styles
|
|
214
|
+
// set by the motion component.
|
|
215
|
+
.interface-interface-skeleton__header:focus-within {
|
|
216
|
+
opacity: 1 !important;
|
|
217
|
+
div {
|
|
218
|
+
transform: translateX(0) translateZ(0) !important;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.components-editor-notices__dismissible {
|
|
224
|
+
position: absolute;
|
|
225
|
+
z-index: 35;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.components-popover.more-menu-dropdown__content {
|
|
230
|
+
z-index: z-index(".components-popover.more-menu__content");
|
|
231
|
+
}
|
|
@@ -2,16 +2,14 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
5
|
-
import { Button, VisuallyHidden } from '@wordpress/components';
|
|
6
|
-
import { __experimentalLibrary as Library } from '@wordpress/block-editor';
|
|
7
|
-
import { close } from '@wordpress/icons';
|
|
8
5
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
} from '@wordpress/
|
|
12
|
-
import {
|
|
13
|
-
import { useRef } from '@wordpress/element';
|
|
6
|
+
__experimentalLibrary as Library,
|
|
7
|
+
store as blockEditorStore,
|
|
8
|
+
} from '@wordpress/block-editor';
|
|
9
|
+
import { useViewportMatch } from '@wordpress/compose';
|
|
10
|
+
import { useCallback, useRef } from '@wordpress/element';
|
|
14
11
|
import { store as preferencesStore } from '@wordpress/preferences';
|
|
12
|
+
import { ESCAPE } from '@wordpress/keycodes';
|
|
15
13
|
|
|
16
14
|
/**
|
|
17
15
|
* Internal dependencies
|
|
@@ -23,52 +21,77 @@ export default function InserterSidebar( {
|
|
|
23
21
|
closeGeneralSidebar,
|
|
24
22
|
isRightSidebarOpen,
|
|
25
23
|
} ) {
|
|
26
|
-
const {
|
|
27
|
-
|
|
24
|
+
const {
|
|
25
|
+
blockSectionRootClientId,
|
|
26
|
+
inserterSidebarToggleRef,
|
|
27
|
+
insertionPoint,
|
|
28
|
+
showMostUsedBlocks,
|
|
29
|
+
} = useSelect( ( select ) => {
|
|
30
|
+
const { getInserterSidebarToggleRef, getInsertionPoint } = unlock(
|
|
31
|
+
select( editorStore )
|
|
32
|
+
);
|
|
33
|
+
const { getBlockRootClientId, __unstableGetEditorMode, getSettings } =
|
|
34
|
+
select( blockEditorStore );
|
|
28
35
|
const { get } = select( preferencesStore );
|
|
36
|
+
const getBlockSectionRootClientId = () => {
|
|
37
|
+
if ( __unstableGetEditorMode() === 'zoom-out' ) {
|
|
38
|
+
const { sectionRootClientId } = unlock( getSettings() );
|
|
39
|
+
if ( sectionRootClientId ) {
|
|
40
|
+
return sectionRootClientId;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return getBlockRootClientId();
|
|
44
|
+
};
|
|
29
45
|
return {
|
|
46
|
+
inserterSidebarToggleRef: getInserterSidebarToggleRef(),
|
|
30
47
|
insertionPoint: getInsertionPoint(),
|
|
31
48
|
showMostUsedBlocks: get( 'core', 'mostUsedBlocks' ),
|
|
49
|
+
blockSectionRootClientId: getBlockSectionRootClientId(),
|
|
32
50
|
};
|
|
33
51
|
}, [] );
|
|
34
52
|
const { setIsInserterOpened } = useDispatch( editorStore );
|
|
35
53
|
|
|
36
54
|
const isMobileViewport = useViewportMatch( 'medium', '<' );
|
|
37
|
-
const TagName = ! isMobileViewport ? VisuallyHidden : 'div';
|
|
38
|
-
const [ inserterDialogRef, inserterDialogProps ] = useDialog( {
|
|
39
|
-
onClose: () => setIsInserterOpened( false ),
|
|
40
|
-
focusOnMount: true,
|
|
41
|
-
} );
|
|
42
|
-
|
|
43
55
|
const libraryRef = useRef();
|
|
44
56
|
|
|
57
|
+
// When closing the inserter, focus should return to the toggle button.
|
|
58
|
+
const closeInserterSidebar = useCallback( () => {
|
|
59
|
+
setIsInserterOpened( false );
|
|
60
|
+
inserterSidebarToggleRef.current?.focus();
|
|
61
|
+
}, [ inserterSidebarToggleRef, setIsInserterOpened ] );
|
|
62
|
+
|
|
63
|
+
const closeOnEscape = useCallback(
|
|
64
|
+
( event ) => {
|
|
65
|
+
if ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {
|
|
66
|
+
event.preventDefault();
|
|
67
|
+
closeInserterSidebar();
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
[ closeInserterSidebar ]
|
|
71
|
+
);
|
|
72
|
+
|
|
45
73
|
return (
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
{ ...inserterDialogProps }
|
|
49
|
-
className="editor-inserter-sidebar"
|
|
50
|
-
>
|
|
51
|
-
<TagName className="editor-inserter-sidebar__header">
|
|
52
|
-
<Button
|
|
53
|
-
icon={ close }
|
|
54
|
-
label={ __( 'Close block inserter' ) }
|
|
55
|
-
onClick={ () => setIsInserterOpened( false ) }
|
|
56
|
-
/>
|
|
57
|
-
</TagName>
|
|
74
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
75
|
+
<div onKeyDown={ closeOnEscape } className="editor-inserter-sidebar">
|
|
58
76
|
<div className="editor-inserter-sidebar__content">
|
|
59
77
|
<Library
|
|
60
78
|
showMostUsedBlocks={ showMostUsedBlocks }
|
|
61
79
|
showInserterHelpPanel
|
|
62
80
|
shouldFocusBlock={ isMobileViewport }
|
|
63
|
-
rootClientId={
|
|
81
|
+
rootClientId={
|
|
82
|
+
blockSectionRootClientId ?? insertionPoint.rootClientId
|
|
83
|
+
}
|
|
64
84
|
__experimentalInsertionIndex={
|
|
65
85
|
insertionPoint.insertionIndex
|
|
66
86
|
}
|
|
87
|
+
__experimentalInitialTab={ insertionPoint.tab }
|
|
88
|
+
__experimentalInitialCategory={ insertionPoint.category }
|
|
67
89
|
__experimentalFilterValue={ insertionPoint.filterValue }
|
|
68
90
|
__experimentalOnPatternCategorySelection={
|
|
69
91
|
isRightSidebarOpen ? closeGeneralSidebar : undefined
|
|
70
92
|
}
|
|
71
93
|
ref={ libraryRef }
|
|
94
|
+
onClose={ closeInserterSidebar }
|
|
72
95
|
/>
|
|
73
96
|
</div>
|
|
74
97
|
</div>
|
|
@@ -6,16 +6,23 @@
|
|
|
6
6
|
flex-direction: column;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
.editor-inserter-sidebar__header {
|
|
10
|
-
|
|
9
|
+
.block-editor-inserter-sidebar__header {
|
|
10
|
+
border-bottom: $border-width solid $gray-300;
|
|
11
11
|
padding-right: $grid-unit-10;
|
|
12
12
|
display: flex;
|
|
13
|
-
justify-content:
|
|
13
|
+
justify-content: space-between;
|
|
14
|
+
|
|
15
|
+
.block-editor-inserter-sidebar__close-button {
|
|
16
|
+
/* stylelint-disable-next-line property-disallowed-list -- This should be refactored to avoid order if possible */
|
|
17
|
+
order: 1;
|
|
18
|
+
align-self: center;
|
|
19
|
+
}
|
|
14
20
|
}
|
|
15
21
|
|
|
16
22
|
.editor-inserter-sidebar__content {
|
|
17
23
|
// Leave space for the close button
|
|
18
24
|
height: calc(100% - #{$button-size} - #{$grid-unit-10});
|
|
25
|
+
|
|
19
26
|
@include break-medium() {
|
|
20
27
|
height: 100%;
|
|
21
28
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import clsx from 'clsx';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
@@ -52,7 +52,7 @@ const ShortcutList = ( { shortcuts } ) => (
|
|
|
52
52
|
|
|
53
53
|
const ShortcutSection = ( { title, shortcuts, className } ) => (
|
|
54
54
|
<section
|
|
55
|
-
className={
|
|
55
|
+
className={ clsx(
|
|
56
56
|
'editor-keyboard-shortcut-help-modal__section',
|
|
57
57
|
className
|
|
58
58
|
) }
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
}
|
|
15
15
|
.editor-list-view-sidebar__close-button {
|
|
16
16
|
background: $white;
|
|
17
|
+
/* stylelint-disable-next-line property-disallowed-list -- This should be removed when https://github.com/WordPress/gutenberg/issues/59013 is fixed. */
|
|
17
18
|
order: 1;
|
|
18
19
|
align-self: center;
|
|
19
20
|
margin-right: $grid-unit-15;
|
|
@@ -22,7 +22,11 @@ jest.mock( '@wordpress/data/src/components/use-dispatch', () => ( {
|
|
|
22
22
|
function setupDataMock( order = 0 ) {
|
|
23
23
|
useSelect.mockImplementation( ( mapSelect ) =>
|
|
24
24
|
mapSelect( () => ( {
|
|
25
|
-
getPostType: () =>
|
|
25
|
+
getPostType: () => ( {
|
|
26
|
+
supports: {
|
|
27
|
+
'page-attributes': true,
|
|
28
|
+
},
|
|
29
|
+
} ),
|
|
26
30
|
getEditedPostAttribute: ( attr ) => {
|
|
27
31
|
switch ( attr ) {
|
|
28
32
|
case 'menu_order':
|