@wordpress/edit-site 4.10.0 → 4.12.1-next.d6164808d3.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 +4 -0
- package/build/components/add-new-template/add-custom-template-modal.js +26 -44
- package/build/components/add-new-template/add-custom-template-modal.js.map +1 -1
- package/build/components/add-new-template/new-template.js +45 -23
- package/build/components/add-new-template/new-template.js.map +1 -1
- package/build/components/add-new-template/utils.js +493 -242
- package/build/components/add-new-template/utils.js.map +1 -1
- package/build/components/block-editor/index.js +1 -3
- package/build/components/block-editor/index.js.map +1 -1
- package/build/components/block-editor/resizable-editor.js +26 -12
- package/build/components/block-editor/resizable-editor.js.map +1 -1
- package/build/components/global-styles/border-panel.js +3 -3
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +280 -20
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +4 -4
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/screen-color-palette.js +1 -1
- package/build/components/global-styles/screen-color-palette.js.map +1 -1
- package/build/components/global-styles/screen-colors.js +51 -7
- package/build/components/global-styles/screen-colors.js.map +1 -1
- package/build/components/global-styles/screen-heading-color.js +157 -0
- package/build/components/global-styles/screen-heading-color.js.map +1 -0
- package/build/components/global-styles/screen-typography-element.js +4 -0
- package/build/components/global-styles/screen-typography-element.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +5 -0
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +82 -14
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +217 -0
- package/build/components/global-styles/typography-utils.js.map +1 -0
- package/build/components/global-styles/ui.js +11 -0
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +183 -52
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +85 -5
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/header/document-actions/index.js +1 -0
- package/build/components/header/document-actions/index.js.map +1 -1
- package/build/components/header/index.js +27 -12
- package/build/components/header/index.js.map +1 -1
- package/build/components/header/mode-switcher/index.js +0 -4
- package/build/components/header/mode-switcher/index.js.map +1 -1
- package/build/components/header/more-menu/index.js +13 -3
- package/build/components/header/more-menu/index.js.map +1 -1
- package/build/components/header/undo-redo/redo.js +2 -1
- package/build/components/header/undo-redo/redo.js.map +1 -1
- package/build/components/list/actions/index.js +1 -1
- package/build/components/list/actions/index.js.map +1 -1
- package/build/components/save-button/index.js +2 -3
- package/build/components/save-button/index.js.map +1 -1
- package/build/components/sidebar/default-sidebar.js +11 -1
- package/build/components/sidebar/default-sidebar.js.map +1 -1
- package/build/components/sidebar/navigation-menu-sidebar/navigation-menu.js +2 -2
- package/build/components/sidebar/navigation-menu-sidebar/navigation-menu.js.map +1 -1
- package/build/components/sidebar/plugin-sidebar/index.js +11 -1
- package/build/components/sidebar/plugin-sidebar/index.js.map +1 -1
- package/build/components/sidebar/template-card/template-actions.js +1 -1
- package/build/components/sidebar/template-card/template-actions.js.map +1 -1
- package/build/components/template-details/edit-template-title.js +1 -1
- package/build/components/template-details/edit-template-title.js.map +1 -1
- package/build/components/template-details/index.js +19 -9
- package/build/components/template-details/index.js.map +1 -1
- package/build/components/template-details/template-areas.js +1 -1
- package/build/components/template-details/template-areas.js.map +1 -1
- package/build/components/template-details/template-part-area-selector.js +47 -0
- package/build/components/template-details/template-part-area-selector.js.map +1 -0
- package/build/components/template-part-converter/convert-to-template-part.js +4 -1
- package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
- package/build/hooks/index.js +2 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/template-part-edit.js +86 -0
- package/build/hooks/template-part-edit.js.map +1 -0
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build-module/components/add-new-template/add-custom-template-modal.js +27 -45
- package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -1
- package/build-module/components/add-new-template/new-template.js +45 -25
- package/build-module/components/add-new-template/new-template.js.map +1 -1
- package/build-module/components/add-new-template/utils.js +489 -230
- package/build-module/components/add-new-template/utils.js.map +1 -1
- package/build-module/components/block-editor/index.js +1 -2
- package/build-module/components/block-editor/index.js.map +1 -1
- package/build-module/components/block-editor/resizable-editor.js +26 -12
- package/build-module/components/block-editor/resizable-editor.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +3 -3
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +278 -22
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +4 -4
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/screen-color-palette.js +1 -1
- package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
- package/build-module/components/global-styles/screen-colors.js +51 -7
- package/build-module/components/global-styles/screen-colors.js.map +1 -1
- package/build-module/components/global-styles/screen-heading-color.js +143 -0
- package/build-module/components/global-styles/screen-heading-color.js.map +1 -0
- package/build-module/components/global-styles/screen-typography-element.js +4 -0
- package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js +5 -0
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +83 -15
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +204 -0
- package/build-module/components/global-styles/typography-utils.js.map +1 -0
- package/build-module/components/global-styles/ui.js +10 -0
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +182 -61
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +82 -5
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/header/document-actions/index.js +1 -0
- package/build-module/components/header/document-actions/index.js.map +1 -1
- package/build-module/components/header/index.js +30 -14
- package/build-module/components/header/index.js.map +1 -1
- package/build-module/components/header/mode-switcher/index.js +0 -4
- package/build-module/components/header/mode-switcher/index.js.map +1 -1
- package/build-module/components/header/more-menu/index.js +13 -3
- package/build-module/components/header/more-menu/index.js.map +1 -1
- package/build-module/components/header/undo-redo/redo.js +3 -2
- package/build-module/components/header/undo-redo/redo.js.map +1 -1
- package/build-module/components/list/actions/index.js +1 -1
- package/build-module/components/list/actions/index.js.map +1 -1
- package/build-module/components/save-button/index.js +3 -4
- package/build-module/components/save-button/index.js.map +1 -1
- package/build-module/components/sidebar/default-sidebar.js +9 -1
- package/build-module/components/sidebar/default-sidebar.js.map +1 -1
- package/build-module/components/sidebar/navigation-menu-sidebar/navigation-menu.js +3 -3
- package/build-module/components/sidebar/navigation-menu-sidebar/navigation-menu.js.map +1 -1
- package/build-module/components/sidebar/plugin-sidebar/index.js +9 -1
- package/build-module/components/sidebar/plugin-sidebar/index.js.map +1 -1
- package/build-module/components/sidebar/template-card/template-actions.js +1 -1
- package/build-module/components/sidebar/template-card/template-actions.js.map +1 -1
- package/build-module/components/template-details/edit-template-title.js +1 -1
- package/build-module/components/template-details/edit-template-title.js.map +1 -1
- package/build-module/components/template-details/index.js +19 -10
- package/build-module/components/template-details/index.js.map +1 -1
- package/build-module/components/template-details/template-areas.js +1 -1
- package/build-module/components/template-details/template-areas.js.map +1 -1
- package/build-module/components/template-details/template-part-area-selector.js +35 -0
- package/build-module/components/template-details/template-part-area-selector.js.map +1 -0
- package/build-module/components/template-part-converter/convert-to-template-part.js +3 -1
- package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
- package/build-module/hooks/index.js +1 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/template-part-edit.js +67 -0
- package/build-module/hooks/template-part-edit.js.map +1 -0
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-style/style-rtl.css +40 -33
- package/build-style/style.css +40 -33
- package/package.json +29 -29
- package/src/components/add-new-template/add-custom-template-modal.js +39 -48
- package/src/components/add-new-template/new-template.js +50 -58
- package/src/components/add-new-template/style.scss +20 -8
- package/src/components/add-new-template/utils.js +529 -231
- package/src/components/block-editor/index.js +0 -2
- package/src/components/block-editor/resizable-editor.js +28 -18
- package/src/components/editor/style.scss +1 -0
- package/src/components/global-styles/border-panel.js +3 -3
- package/src/components/global-styles/dimensions-panel.js +344 -45
- package/src/components/global-styles/hooks.js +6 -3
- package/src/components/global-styles/screen-color-palette.js +1 -1
- package/src/components/global-styles/screen-colors.js +46 -4
- package/src/components/global-styles/screen-heading-color.js +201 -0
- package/src/components/global-styles/screen-typography-element.js +4 -0
- package/src/components/global-styles/screen-typography.js +6 -0
- package/src/components/global-styles/style.scss +14 -6
- package/src/components/global-styles/test/typography-utils.js +130 -0
- package/src/components/global-styles/test/use-global-styles-output.js +143 -4
- package/src/components/global-styles/test/utils.js +68 -8
- package/src/components/global-styles/typography-panel.js +119 -48
- package/src/components/global-styles/typography-utils.js +228 -0
- package/src/components/global-styles/ui.js +13 -0
- package/src/components/global-styles/use-global-styles-output.js +203 -53
- package/src/components/global-styles/utils.js +70 -4
- package/src/components/header/document-actions/index.js +3 -0
- package/src/components/header/index.js +41 -14
- package/src/components/header/mode-switcher/index.js +0 -3
- package/src/components/header/more-menu/index.js +7 -2
- package/src/components/header/style.scss +5 -3
- package/src/components/header/undo-redo/redo.js +6 -2
- package/src/components/list/actions/index.js +3 -1
- package/src/components/save-button/index.js +10 -13
- package/src/components/sidebar/default-sidebar.js +12 -0
- package/src/components/sidebar/navigation-menu-sidebar/navigation-menu.js +1 -5
- package/src/components/sidebar/plugin-sidebar/index.js +12 -0
- package/src/components/sidebar/style.scss +4 -0
- package/src/components/sidebar/template-card/template-actions.js +3 -1
- package/src/components/template-details/edit-template-title.js +7 -3
- package/src/components/template-details/index.js +23 -8
- package/src/components/template-details/style.scss +0 -5
- package/src/components/template-details/template-areas.js +3 -1
- package/src/components/template-details/template-part-area-selector.js +38 -0
- package/src/components/template-part-converter/convert-to-template-part.js +3 -1
- package/src/hooks/index.js +1 -0
- package/src/hooks/template-part-edit.js +82 -0
- package/src/index.js +1 -1
- package/src/style.scss +0 -1
- package/build/components/edit-template-part-menu-button/index.js +0 -90
- package/build/components/edit-template-part-menu-button/index.js.map +0 -1
- package/build-module/components/edit-template-part-menu-button/index.js +0 -72
- package/build-module/components/edit-template-part-menu-button/index.js.map +0 -1
- package/src/components/edit-template-part-menu-button/index.js +0 -82
|
@@ -11,8 +11,14 @@ import {
|
|
|
11
11
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
12
12
|
import { PinnedItems } from '@wordpress/interface';
|
|
13
13
|
import { _x, __ } from '@wordpress/i18n';
|
|
14
|
-
import { listView, plus } from '@wordpress/icons';
|
|
15
|
-
import {
|
|
14
|
+
import { listView, plus, external } from '@wordpress/icons';
|
|
15
|
+
import {
|
|
16
|
+
Button,
|
|
17
|
+
ToolbarItem,
|
|
18
|
+
MenuGroup,
|
|
19
|
+
MenuItem,
|
|
20
|
+
VisuallyHidden,
|
|
21
|
+
} from '@wordpress/components';
|
|
16
22
|
import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
|
|
17
23
|
import { store as editorStore } from '@wordpress/editor';
|
|
18
24
|
import { store as coreStore } from '@wordpress/core-data';
|
|
@@ -48,6 +54,7 @@ export default function Header( {
|
|
|
48
54
|
listViewShortcut,
|
|
49
55
|
isLoaded,
|
|
50
56
|
isVisualMode,
|
|
57
|
+
settings,
|
|
51
58
|
} = useSelect( ( select ) => {
|
|
52
59
|
const {
|
|
53
60
|
__experimentalGetPreviewDeviceType,
|
|
@@ -56,6 +63,7 @@ export default function Header( {
|
|
|
56
63
|
isInserterOpened,
|
|
57
64
|
isListViewOpened,
|
|
58
65
|
getEditorMode,
|
|
66
|
+
getSettings,
|
|
59
67
|
} = select( editSiteStore );
|
|
60
68
|
const { getEditedEntityRecord } = select( coreStore );
|
|
61
69
|
const { __experimentalGetTemplateInfo: getTemplateInfo } =
|
|
@@ -79,6 +87,7 @@ export default function Header( {
|
|
|
79
87
|
'core/edit-site/toggle-list-view'
|
|
80
88
|
),
|
|
81
89
|
isVisualMode: getEditorMode() === 'visual',
|
|
90
|
+
settings: getSettings(),
|
|
82
91
|
};
|
|
83
92
|
}, [] );
|
|
84
93
|
|
|
@@ -106,6 +115,13 @@ export default function Header( {
|
|
|
106
115
|
|
|
107
116
|
const isFocusMode = templateType === 'wp_template_part';
|
|
108
117
|
|
|
118
|
+
/* translators: button label text should, if possible, be under 16 characters. */
|
|
119
|
+
const longLabel = _x(
|
|
120
|
+
'Toggle block inserter',
|
|
121
|
+
'Generic label for block inserter button'
|
|
122
|
+
);
|
|
123
|
+
const shortLabel = ! isInserterOpen ? __( 'Add' ) : __( 'Close' );
|
|
124
|
+
|
|
109
125
|
return (
|
|
110
126
|
<div className="edit-site-header">
|
|
111
127
|
<NavigableToolbar
|
|
@@ -123,17 +139,9 @@ export default function Header( {
|
|
|
123
139
|
onClick={ openInserter }
|
|
124
140
|
disabled={ ! isVisualMode }
|
|
125
141
|
icon={ plus }
|
|
126
|
-
|
|
127
|
-
characters. */
|
|
128
|
-
label={ _x(
|
|
129
|
-
'Toggle block inserter',
|
|
130
|
-
'Generic label for block inserter button'
|
|
131
|
-
) }
|
|
142
|
+
label={ showIconLabels ? shortLabel : longLabel }
|
|
132
143
|
showTooltip={ ! showIconLabels }
|
|
133
|
-
|
|
134
|
-
{ showIconLabels &&
|
|
135
|
-
( ! isInserterOpen ? __( 'Add' ) : __( 'Close' ) ) }
|
|
136
|
-
</ToolbarItem>
|
|
144
|
+
/>
|
|
137
145
|
{ isLargeViewport && (
|
|
138
146
|
<>
|
|
139
147
|
<ToolbarItem
|
|
@@ -169,6 +177,9 @@ export default function Header( {
|
|
|
169
177
|
onClick={ toggleListView }
|
|
170
178
|
shortcut={ listViewShortcut }
|
|
171
179
|
showTooltip={ ! showIconLabels }
|
|
180
|
+
variant={
|
|
181
|
+
showIconLabels ? 'tertiary' : undefined
|
|
182
|
+
}
|
|
172
183
|
/>
|
|
173
184
|
</>
|
|
174
185
|
) }
|
|
@@ -201,14 +212,30 @@ export default function Header( {
|
|
|
201
212
|
<PreviewOptions
|
|
202
213
|
deviceType={ deviceType }
|
|
203
214
|
setDeviceType={ setPreviewDeviceType }
|
|
204
|
-
|
|
215
|
+
>
|
|
216
|
+
<MenuGroup>
|
|
217
|
+
<MenuItem
|
|
218
|
+
href={ settings?.siteUrl }
|
|
219
|
+
target="_blank"
|
|
220
|
+
icon={ external }
|
|
221
|
+
>
|
|
222
|
+
{ __( 'View site' ) }
|
|
223
|
+
<VisuallyHidden as="span">
|
|
224
|
+
{
|
|
225
|
+
/* translators: accessibility text */
|
|
226
|
+
__( '(opens in a new tab)' )
|
|
227
|
+
}
|
|
228
|
+
</VisuallyHidden>
|
|
229
|
+
</MenuItem>
|
|
230
|
+
</MenuGroup>
|
|
231
|
+
</PreviewOptions>
|
|
205
232
|
) }
|
|
206
233
|
<SaveButton
|
|
207
234
|
openEntitiesSavedStates={ openEntitiesSavedStates }
|
|
208
235
|
isEntitiesSavedStatesOpen={ isEntitiesSavedStatesOpen }
|
|
209
236
|
/>
|
|
210
237
|
<PinnedItems.Slot scope="core/edit-site" />
|
|
211
|
-
<MoreMenu />
|
|
238
|
+
<MoreMenu showIconLabels={ showIconLabels } />
|
|
212
239
|
</div>
|
|
213
240
|
</div>
|
|
214
241
|
</div>
|
|
@@ -6,9 +6,6 @@ import { MenuItemsChoice, MenuGroup } from '@wordpress/components';
|
|
|
6
6
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
7
7
|
import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
|
|
8
8
|
|
|
9
|
-
/**
|
|
10
|
-
* Internal dependencies
|
|
11
|
-
*/
|
|
12
9
|
/**
|
|
13
10
|
* Internal dependencies
|
|
14
11
|
*/
|
|
@@ -21,7 +21,7 @@ import WelcomeGuideMenuItem from './welcome-guide-menu-item';
|
|
|
21
21
|
import CopyContentMenuItem from './copy-content-menu-item';
|
|
22
22
|
import ModeSwitcher from '../mode-switcher';
|
|
23
23
|
|
|
24
|
-
export default function MoreMenu() {
|
|
24
|
+
export default function MoreMenu( { showIconLabels } ) {
|
|
25
25
|
const [ isModalActive, toggleModal ] = useReducer(
|
|
26
26
|
( isActive ) => ! isActive,
|
|
27
27
|
false
|
|
@@ -36,7 +36,12 @@ export default function MoreMenu() {
|
|
|
36
36
|
|
|
37
37
|
return (
|
|
38
38
|
<>
|
|
39
|
-
<MoreMenuDropdown
|
|
39
|
+
<MoreMenuDropdown
|
|
40
|
+
toggleProps={ {
|
|
41
|
+
showTooltip: ! showIconLabels,
|
|
42
|
+
...( showIconLabels && { variant: 'tertiary' } ),
|
|
43
|
+
} }
|
|
44
|
+
>
|
|
40
45
|
{ ( { onClose } ) => (
|
|
41
46
|
<>
|
|
42
47
|
<MenuGroup label={ _x( 'View', 'noun' ) }>
|
|
@@ -226,15 +226,17 @@ body.is-navigation-sidebar-open {
|
|
|
226
226
|
padding-right: 6px;
|
|
227
227
|
}
|
|
228
228
|
|
|
229
|
-
// The
|
|
230
|
-
.edit-site-header-toolbar__inserter-toggle.edit-site-header-toolbar__inserter-toggle,
|
|
229
|
+
// The template details toggle has a custom label, different from its aria-label, so we don't want to display both.
|
|
231
230
|
.edit-site-document-actions__get-info.edit-site-document-actions__get-info.edit-site-document-actions__get-info {
|
|
232
231
|
&::after {
|
|
233
232
|
content: none;
|
|
234
233
|
}
|
|
234
|
+
}
|
|
235
235
|
|
|
236
|
+
.edit-site-header-toolbar__inserter-toggle.edit-site-header-toolbar__inserter-toggle,
|
|
237
|
+
.edit-site-document-actions__get-info.edit-site-document-actions__get-info.edit-site-document-actions__get-info {
|
|
236
238
|
height: 36px;
|
|
237
|
-
padding: 0
|
|
239
|
+
padding: 0 $grid-unit-10;
|
|
238
240
|
}
|
|
239
241
|
|
|
240
242
|
.edit-site-header_start .edit-site-header__toolbar > * + * {
|
|
@@ -5,11 +5,15 @@ import { __, isRTL } from '@wordpress/i18n';
|
|
|
5
5
|
import { Button } from '@wordpress/components';
|
|
6
6
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
7
7
|
import { redo as redoIcon, undo as undoIcon } from '@wordpress/icons';
|
|
8
|
-
import { displayShortcut } from '@wordpress/keycodes';
|
|
8
|
+
import { displayShortcut, isAppleOS } from '@wordpress/keycodes';
|
|
9
9
|
import { store as coreStore } from '@wordpress/core-data';
|
|
10
10
|
import { forwardRef } from '@wordpress/element';
|
|
11
11
|
|
|
12
12
|
function RedoButton( props, ref ) {
|
|
13
|
+
const shortcut = isAppleOS()
|
|
14
|
+
? displayShortcut.primaryShift( 'z' )
|
|
15
|
+
: displayShortcut.primary( 'y' );
|
|
16
|
+
|
|
13
17
|
const hasRedo = useSelect(
|
|
14
18
|
( select ) => select( coreStore ).hasRedo(),
|
|
15
19
|
[]
|
|
@@ -21,7 +25,7 @@ function RedoButton( props, ref ) {
|
|
|
21
25
|
ref={ ref }
|
|
22
26
|
icon={ ! isRTL() ? redoIcon : undoIcon }
|
|
23
27
|
label={ __( 'Redo' ) }
|
|
24
|
-
shortcut={
|
|
28
|
+
shortcut={ shortcut }
|
|
25
29
|
// If there are no undo levels we don't want to actually disable this
|
|
26
30
|
// button, because it will remove focus for keyboard users.
|
|
27
31
|
// See: https://github.com/WordPress/gutenberg/issues/3486
|
|
@@ -79,7 +79,9 @@ export default function Actions( { template } ) {
|
|
|
79
79
|
) }
|
|
80
80
|
{ isRevertable && (
|
|
81
81
|
<MenuItem
|
|
82
|
-
info={ __(
|
|
82
|
+
info={ __(
|
|
83
|
+
'Use the template as supplied by the theme.'
|
|
84
|
+
) }
|
|
83
85
|
onClick={ () => {
|
|
84
86
|
revertAndSaveTemplate();
|
|
85
87
|
onClose();
|
|
@@ -30,18 +30,15 @@ export default function SaveButton( {
|
|
|
30
30
|
const disabled = ! isDirty || isSaving;
|
|
31
31
|
|
|
32
32
|
return (
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
{ __( 'Save' ) }
|
|
44
|
-
</Button>
|
|
45
|
-
</>
|
|
33
|
+
<Button
|
|
34
|
+
variant="primary"
|
|
35
|
+
className="edit-site-save-button__button"
|
|
36
|
+
aria-disabled={ disabled }
|
|
37
|
+
aria-expanded={ isEntitiesSavedStatesOpen }
|
|
38
|
+
isBusy={ isSaving }
|
|
39
|
+
onClick={ disabled ? undefined : openEntitiesSavedStates }
|
|
40
|
+
>
|
|
41
|
+
{ __( 'Save' ) }
|
|
42
|
+
</Button>
|
|
46
43
|
);
|
|
47
44
|
}
|
|
@@ -5,6 +5,12 @@ import {
|
|
|
5
5
|
ComplementaryArea,
|
|
6
6
|
ComplementaryAreaMoreMenuItem,
|
|
7
7
|
} from '@wordpress/interface';
|
|
8
|
+
import { useSelect } from '@wordpress/data';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Internal dependencies
|
|
12
|
+
*/
|
|
13
|
+
import { store as editSiteStore } from '../../store';
|
|
8
14
|
|
|
9
15
|
export default function DefaultSidebar( {
|
|
10
16
|
className,
|
|
@@ -17,6 +23,11 @@ export default function DefaultSidebar( {
|
|
|
17
23
|
headerClassName,
|
|
18
24
|
panelClassName,
|
|
19
25
|
} ) {
|
|
26
|
+
const showIconLabels = useSelect(
|
|
27
|
+
( select ) => select( editSiteStore ).getSettings().showIconLabels,
|
|
28
|
+
[]
|
|
29
|
+
);
|
|
30
|
+
|
|
20
31
|
return (
|
|
21
32
|
<>
|
|
22
33
|
<ComplementaryArea
|
|
@@ -29,6 +40,7 @@ export default function DefaultSidebar( {
|
|
|
29
40
|
header={ header }
|
|
30
41
|
headerClassName={ headerClassName }
|
|
31
42
|
panelClassName={ panelClassName }
|
|
43
|
+
showIconLabels={ showIconLabels }
|
|
32
44
|
>
|
|
33
45
|
{ children }
|
|
34
46
|
</ComplementaryArea>
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { ComplementaryArea } from '@wordpress/interface';
|
|
5
|
+
import { useSelect } from '@wordpress/data';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Internal dependencies
|
|
9
|
+
*/
|
|
10
|
+
import { store as editSiteStore } from '../../../store';
|
|
5
11
|
|
|
6
12
|
/**
|
|
7
13
|
* Renders a sidebar when activated. The contents within the `PluginSidebar` will appear as content within the sidebar.
|
|
@@ -69,11 +75,17 @@ import { ComplementaryArea } from '@wordpress/interface';
|
|
|
69
75
|
* ```
|
|
70
76
|
*/
|
|
71
77
|
export default function PluginSidebarEditSite( { className, ...props } ) {
|
|
78
|
+
const showIconLabels = useSelect(
|
|
79
|
+
( select ) => select( editSiteStore ).getSettings().showIconLabels,
|
|
80
|
+
[]
|
|
81
|
+
);
|
|
82
|
+
|
|
72
83
|
return (
|
|
73
84
|
<ComplementaryArea
|
|
74
85
|
panelClassName={ className }
|
|
75
86
|
className="edit-site-sidebar"
|
|
76
87
|
scope="core/edit-site"
|
|
88
|
+
showIconLabels={ showIconLabels }
|
|
77
89
|
{ ...props }
|
|
78
90
|
/>
|
|
79
91
|
);
|
|
@@ -60,6 +60,10 @@
|
|
|
60
60
|
grid-column: span 1;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
.edit-site-global-styles-sidebar .components-tools-panel .span-columns {
|
|
64
|
+
grid-column: 1 / -1;
|
|
65
|
+
}
|
|
66
|
+
|
|
63
67
|
.edit-site-global-styles-sidebar__blocks-group {
|
|
64
68
|
padding-top: $grid-unit-30;
|
|
65
69
|
border-top: $border-width solid $gray-200;
|
|
@@ -28,7 +28,9 @@ export default function Actions( { template } ) {
|
|
|
28
28
|
{ ( { onClose } ) => (
|
|
29
29
|
<MenuGroup>
|
|
30
30
|
<MenuItem
|
|
31
|
-
info={ __(
|
|
31
|
+
info={ __(
|
|
32
|
+
'Use the template as supplied by the theme.'
|
|
33
|
+
) }
|
|
32
34
|
onClick={ () => {
|
|
33
35
|
revertTemplate( template );
|
|
34
36
|
onClose();
|
|
@@ -19,9 +19,13 @@ export default function EditTemplateTitle( { template } ) {
|
|
|
19
19
|
<TextControl
|
|
20
20
|
label={ __( 'Title' ) }
|
|
21
21
|
value={ forceEmpty ? '' : title }
|
|
22
|
-
help={
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
help={
|
|
23
|
+
template.type !== 'wp_template_part'
|
|
24
|
+
? __(
|
|
25
|
+
'Give the template a title that indicates its purpose, e.g. "Full Width".'
|
|
26
|
+
)
|
|
27
|
+
: null
|
|
28
|
+
}
|
|
25
29
|
onChange={ ( newTitle ) => {
|
|
26
30
|
if ( ! newTitle && ! forceEmpty ) {
|
|
27
31
|
setForceEmpty( true );
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
Button,
|
|
7
7
|
MenuGroup,
|
|
8
8
|
MenuItem,
|
|
9
|
-
|
|
9
|
+
__experimentalVStack as VStack,
|
|
10
10
|
__experimentalText as Text,
|
|
11
11
|
} from '@wordpress/components';
|
|
12
12
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
@@ -20,6 +20,7 @@ import { store as editSiteStore } from '../../store';
|
|
|
20
20
|
import TemplateAreas from './template-areas';
|
|
21
21
|
import EditTemplateTitle from './edit-template-title';
|
|
22
22
|
import { useLink } from '../routes/link';
|
|
23
|
+
import TemplatePartAreaSelector from './template-part-area-selector';
|
|
23
24
|
|
|
24
25
|
export default function TemplateDetails( { template, onClose } ) {
|
|
25
26
|
const { title, description } = useSelect(
|
|
@@ -35,8 +36,13 @@ export default function TemplateDetails( { template, onClose } ) {
|
|
|
35
36
|
postId: undefined,
|
|
36
37
|
} );
|
|
37
38
|
|
|
39
|
+
const isTemplatePart = template.type === 'wp_template_part';
|
|
40
|
+
|
|
38
41
|
// Only user-created and non-default templates can change the name.
|
|
39
|
-
|
|
42
|
+
// But any user-created template part can be renamed.
|
|
43
|
+
const canEditTitle = isTemplatePart
|
|
44
|
+
? ! template.has_theme_file
|
|
45
|
+
: template.is_custom && ! template.has_theme_file;
|
|
40
46
|
|
|
41
47
|
if ( ! template ) {
|
|
42
48
|
return null;
|
|
@@ -49,17 +55,18 @@ export default function TemplateDetails( { template, onClose } ) {
|
|
|
49
55
|
|
|
50
56
|
return (
|
|
51
57
|
<div className="edit-site-template-details">
|
|
52
|
-
<
|
|
58
|
+
<VStack className="edit-site-template-details__group" spacing={ 3 }>
|
|
53
59
|
{ canEditTitle ? (
|
|
54
60
|
<EditTemplateTitle template={ template } />
|
|
55
61
|
) : (
|
|
56
|
-
<
|
|
57
|
-
|
|
62
|
+
<Text
|
|
63
|
+
size={ 16 }
|
|
58
64
|
weight={ 600 }
|
|
59
65
|
className="edit-site-template-details__title"
|
|
66
|
+
as="p"
|
|
60
67
|
>
|
|
61
68
|
{ title }
|
|
62
|
-
</
|
|
69
|
+
</Text>
|
|
63
70
|
) }
|
|
64
71
|
|
|
65
72
|
{ description && (
|
|
@@ -71,7 +78,13 @@ export default function TemplateDetails( { template, onClose } ) {
|
|
|
71
78
|
{ description }
|
|
72
79
|
</Text>
|
|
73
80
|
) }
|
|
74
|
-
</
|
|
81
|
+
</VStack>
|
|
82
|
+
|
|
83
|
+
{ isTemplatePart && (
|
|
84
|
+
<div className="edit-site-template-details__group">
|
|
85
|
+
<TemplatePartAreaSelector id={ template.id } />
|
|
86
|
+
</div>
|
|
87
|
+
) }
|
|
75
88
|
|
|
76
89
|
<TemplateAreas closeTemplateDetailsDropdown={ onClose } />
|
|
77
90
|
|
|
@@ -79,7 +92,9 @@ export default function TemplateDetails( { template, onClose } ) {
|
|
|
79
92
|
<MenuGroup className="edit-site-template-details__group edit-site-template-details__revert">
|
|
80
93
|
<MenuItem
|
|
81
94
|
className="edit-site-template-details__revert-button"
|
|
82
|
-
info={ __(
|
|
95
|
+
info={ __(
|
|
96
|
+
'Use the template as supplied by the theme.'
|
|
97
|
+
) }
|
|
83
98
|
onClick={ revert }
|
|
84
99
|
>
|
|
85
100
|
{ __( 'Clear customizations' ) }
|
|
@@ -59,7 +59,9 @@ function TemplatePartItemMore( {
|
|
|
59
59
|
{ isTemplateRevertable( templatePart ) && (
|
|
60
60
|
<MenuGroup>
|
|
61
61
|
<MenuItem
|
|
62
|
-
info={ __(
|
|
62
|
+
info={ __(
|
|
63
|
+
'Use the template part as supplied by the theme.'
|
|
64
|
+
) }
|
|
63
65
|
onClick={ clearCustomizations }
|
|
64
66
|
>
|
|
65
67
|
{ __( 'Clear customizations' ) }
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
import { SelectControl } from '@wordpress/components';
|
|
6
|
+
import { useEntityProp } from '@wordpress/core-data';
|
|
7
|
+
import { useSelect } from '@wordpress/data';
|
|
8
|
+
import { store as editorStore } from '@wordpress/editor';
|
|
9
|
+
|
|
10
|
+
export default function TemplatePartAreaSelector( { id } ) {
|
|
11
|
+
const [ area, setArea ] = useEntityProp(
|
|
12
|
+
'postType',
|
|
13
|
+
'wp_template_part',
|
|
14
|
+
'area',
|
|
15
|
+
id
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
const definedAreas = useSelect(
|
|
19
|
+
( select ) =>
|
|
20
|
+
select( editorStore ).__experimentalGetDefaultTemplatePartAreas(),
|
|
21
|
+
[]
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
const areaOptions = definedAreas.map( ( { label, area: _area } ) => ( {
|
|
25
|
+
label,
|
|
26
|
+
value: _area,
|
|
27
|
+
} ) );
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<SelectControl
|
|
31
|
+
label={ __( 'Area' ) }
|
|
32
|
+
labelPosition="top"
|
|
33
|
+
options={ areaOptions }
|
|
34
|
+
value={ area }
|
|
35
|
+
onChange={ setArea }
|
|
36
|
+
/>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
@@ -17,6 +17,7 @@ import { __ } from '@wordpress/i18n';
|
|
|
17
17
|
import { useState } from '@wordpress/element';
|
|
18
18
|
import { store as coreStore } from '@wordpress/core-data';
|
|
19
19
|
import { store as noticesStore } from '@wordpress/notices';
|
|
20
|
+
import { symbolFilled } from '@wordpress/icons';
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* Internal dependencies
|
|
@@ -65,11 +66,12 @@ export default function ConvertToTemplatePart( { clientIds, blocks } ) {
|
|
|
65
66
|
<BlockSettingsMenuControls>
|
|
66
67
|
{ () => (
|
|
67
68
|
<MenuItem
|
|
69
|
+
icon={ symbolFilled }
|
|
68
70
|
onClick={ () => {
|
|
69
71
|
setIsModalOpen( true );
|
|
70
72
|
} }
|
|
71
73
|
>
|
|
72
|
-
{ __( '
|
|
74
|
+
{ __( 'Create Template part' ) }
|
|
73
75
|
</MenuItem>
|
|
74
76
|
) }
|
|
75
77
|
</BlockSettingsMenuControls>
|
package/src/hooks/index.js
CHANGED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
import { useSelect } from '@wordpress/data';
|
|
6
|
+
import { BlockControls } from '@wordpress/block-editor';
|
|
7
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
8
|
+
import { ToolbarButton } from '@wordpress/components';
|
|
9
|
+
import { addFilter } from '@wordpress/hooks';
|
|
10
|
+
import { createHigherOrderComponent } from '@wordpress/compose';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Internal dependencies
|
|
14
|
+
*/
|
|
15
|
+
import { useLocation } from '../components/routes';
|
|
16
|
+
import { useLink } from '../components/routes/link';
|
|
17
|
+
|
|
18
|
+
function EditTemplatePartMenuItem( { attributes } ) {
|
|
19
|
+
const { theme, slug } = attributes;
|
|
20
|
+
const { params } = useLocation();
|
|
21
|
+
const templatePart = useSelect(
|
|
22
|
+
( select ) => {
|
|
23
|
+
return select( coreStore ).getEntityRecord(
|
|
24
|
+
'postType',
|
|
25
|
+
'wp_template_part',
|
|
26
|
+
// Ideally this should be an official public API.
|
|
27
|
+
`${ theme }//${ slug }`
|
|
28
|
+
);
|
|
29
|
+
},
|
|
30
|
+
[ theme, slug ]
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
const linkProps = useLink(
|
|
34
|
+
{
|
|
35
|
+
postId: templatePart?.id,
|
|
36
|
+
postType: templatePart?.type,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
fromTemplateId: params.postId,
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
if ( ! templatePart ) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return (
|
|
48
|
+
<BlockControls group="other">
|
|
49
|
+
<ToolbarButton
|
|
50
|
+
{ ...linkProps }
|
|
51
|
+
onClick={ ( event ) => {
|
|
52
|
+
linkProps.onClick( event );
|
|
53
|
+
} }
|
|
54
|
+
>
|
|
55
|
+
{ __( 'Edit' ) }
|
|
56
|
+
</ToolbarButton>
|
|
57
|
+
</BlockControls>
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export const withEditBlockControls = createHigherOrderComponent(
|
|
62
|
+
( BlockEdit ) => ( props ) => {
|
|
63
|
+
const { attributes, name } = props;
|
|
64
|
+
const isDisplayed = name === 'core/template-part' && attributes.slug;
|
|
65
|
+
|
|
66
|
+
return (
|
|
67
|
+
<>
|
|
68
|
+
<BlockEdit { ...props } />
|
|
69
|
+
{ isDisplayed && (
|
|
70
|
+
<EditTemplatePartMenuItem attributes={ attributes } />
|
|
71
|
+
) }
|
|
72
|
+
</>
|
|
73
|
+
);
|
|
74
|
+
},
|
|
75
|
+
'withEditBlockControls'
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
addFilter(
|
|
79
|
+
'editor.BlockEdit',
|
|
80
|
+
'core/edit-site/template-part-edit-button',
|
|
81
|
+
withEditBlockControls
|
|
82
|
+
);
|
package/src/index.js
CHANGED
|
@@ -65,7 +65,7 @@ export function reinitializeEditor( target, settings ) {
|
|
|
65
65
|
keepCaretInsideBlock: false,
|
|
66
66
|
welcomeGuide: true,
|
|
67
67
|
welcomeGuideStyles: true,
|
|
68
|
-
|
|
68
|
+
showListViewByDefault: false,
|
|
69
69
|
} );
|
|
70
70
|
|
|
71
71
|
// Check if the block list view should be open by default.
|