@wordpress/edit-site 4.6.0 → 4.9.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 +6 -0
- package/build/components/add-new-template/add-custom-template-modal.js +185 -0
- package/build/components/add-new-template/add-custom-template-modal.js.map +1 -0
- package/build/components/add-new-template/new-template.js +92 -32
- package/build/components/add-new-template/new-template.js.map +1 -1
- package/build/components/add-new-template/utils.js +139 -0
- package/build/components/add-new-template/utils.js.map +1 -0
- package/build/components/block-editor/block-inspector-button.js.map +1 -1
- package/build/components/block-editor/index.js.map +1 -1
- package/build/components/code-editor/code-editor-text-area.js +11 -9
- package/build/components/code-editor/code-editor-text-area.js.map +1 -1
- package/build/components/edit-template-part-menu-button/index.js.map +1 -1
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/context-menu.js +6 -3
- package/build/components/global-styles/context-menu.js.map +1 -1
- package/build/components/global-styles/global-styles-provider.js.map +1 -1
- package/build/components/global-styles/gradients-palette-panel.js +3 -7
- package/build/components/global-styles/gradients-palette-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +1 -1
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/palette.js +2 -1
- package/build/components/global-styles/palette.js.map +1 -1
- package/build/components/global-styles/preview.js +13 -2
- package/build/components/global-styles/preview.js.map +1 -1
- package/build/components/global-styles/screen-block-list.js +4 -1
- package/build/components/global-styles/screen-block-list.js.map +1 -1
- package/build/components/global-styles/screen-button-color.js +80 -0
- package/build/components/global-styles/screen-button-color.js.map +1 -0
- package/build/components/global-styles/screen-colors.js +47 -7
- package/build/components/global-styles/screen-colors.js.map +1 -1
- package/build/components/global-styles/screen-root.js +4 -2
- package/build/components/global-styles/screen-root.js.map +1 -1
- package/build/components/global-styles/screen-style-variations.js +9 -1
- package/build/components/global-styles/screen-style-variations.js.map +1 -1
- 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 +9 -1
- package/build/components/global-styles/screen-typography.js.map +1 -1
- 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 +40 -9
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +3 -1
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/header/index.js +28 -10
- package/build/components/header/index.js.map +1 -1
- package/build/components/header/mode-switcher/index.js.map +1 -1
- package/build/components/header/more-menu/copy-content-menu-item.js +1 -1
- package/build/components/header/more-menu/copy-content-menu-item.js.map +1 -1
- package/build/components/header/more-menu/site-export.js +4 -1
- package/build/components/header/more-menu/site-export.js.map +1 -1
- package/build/components/header/undo-redo/redo.js +13 -4
- package/build/components/header/undo-redo/redo.js.map +1 -1
- package/build/components/header/undo-redo/undo.js +13 -4
- package/build/components/header/undo-redo/undo.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/config.js +17 -0
- package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/list/actions/index.js.map +1 -1
- package/build/components/list/actions/rename-menu-item.js.map +1 -1
- package/build/components/list/added-by.js.map +1 -1
- package/build/components/navigation-sidebar/index.js.map +1 -1
- package/build/components/save-button/index.js.map +1 -1
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar/navigation-menu-sidebar/navigation-inspector.js.map +1 -1
- package/build/components/sidebar/template-card/index.js +19 -7
- package/build/components/sidebar/template-card/index.js.map +1 -1
- package/build/components/sidebar/template-card/template-actions.js +64 -0
- package/build/components/sidebar/template-card/template-actions.js.map +1 -0
- package/build/components/sidebar/template-card/template-areas.js.map +1 -1
- package/build/components/template-details/template-areas.js.map +1 -1
- package/build/components/template-part-converter/index.js.map +1 -1
- package/build/components/url-query-controller/index.js.map +1 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/add-new-template/add-custom-template-modal.js +170 -0
- package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -0
- package/build-module/components/add-new-template/new-template.js +92 -35
- package/build-module/components/add-new-template/new-template.js.map +1 -1
- package/build-module/components/add-new-template/utils.js +119 -0
- package/build-module/components/add-new-template/utils.js.map +1 -0
- package/build-module/components/block-editor/block-inspector-button.js.map +1 -1
- package/build-module/components/block-editor/index.js.map +1 -1
- package/build-module/components/code-editor/code-editor-text-area.js +12 -10
- package/build-module/components/code-editor/code-editor-text-area.js.map +1 -1
- package/build-module/components/edit-template-part-menu-button/index.js.map +1 -1
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/context-menu.js +6 -3
- package/build-module/components/global-styles/context-menu.js.map +1 -1
- package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
- package/build-module/components/global-styles/gradients-palette-panel.js +3 -5
- package/build-module/components/global-styles/gradients-palette-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +1 -1
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/palette.js +2 -1
- package/build-module/components/global-styles/palette.js.map +1 -1
- package/build-module/components/global-styles/preview.js +14 -3
- package/build-module/components/global-styles/preview.js.map +1 -1
- package/build-module/components/global-styles/screen-block-list.js +4 -1
- package/build-module/components/global-styles/screen-block-list.js.map +1 -1
- package/build-module/components/global-styles/screen-button-color.js +67 -0
- package/build-module/components/global-styles/screen-button-color.js.map +1 -0
- package/build-module/components/global-styles/screen-colors.js +48 -8
- package/build-module/components/global-styles/screen-colors.js.map +1 -1
- package/build-module/components/global-styles/screen-root.js +4 -2
- package/build-module/components/global-styles/screen-root.js.map +1 -1
- package/build-module/components/global-styles/screen-style-variations.js +9 -1
- package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
- 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 +10 -2
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- 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 +39 -9
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +3 -1
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/header/index.js +29 -11
- package/build-module/components/header/index.js.map +1 -1
- package/build-module/components/header/mode-switcher/index.js.map +1 -1
- package/build-module/components/header/more-menu/copy-content-menu-item.js +1 -1
- package/build-module/components/header/more-menu/copy-content-menu-item.js.map +1 -1
- package/build-module/components/header/more-menu/site-export.js +4 -1
- package/build-module/components/header/more-menu/site-export.js.map +1 -1
- package/build-module/components/header/undo-redo/redo.js +9 -3
- package/build-module/components/header/undo-redo/redo.js.map +1 -1
- package/build-module/components/header/undo-redo/undo.js +9 -3
- package/build-module/components/header/undo-redo/undo.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/config.js +17 -0
- package/build-module/components/keyboard-shortcut-help-modal/config.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/list/actions/index.js.map +1 -1
- package/build-module/components/list/actions/rename-menu-item.js.map +1 -1
- package/build-module/components/list/added-by.js.map +1 -1
- package/build-module/components/navigation-sidebar/index.js.map +1 -1
- package/build-module/components/save-button/index.js.map +1 -1
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar/navigation-menu-sidebar/navigation-inspector.js.map +1 -1
- package/build-module/components/sidebar/template-card/index.js +18 -7
- package/build-module/components/sidebar/template-card/index.js.map +1 -1
- package/build-module/components/sidebar/template-card/template-actions.js +49 -0
- package/build-module/components/sidebar/template-card/template-actions.js.map +1 -0
- package/build-module/components/sidebar/template-card/template-areas.js.map +1 -1
- package/build-module/components/template-details/template-areas.js.map +1 -1
- package/build-module/components/template-part-converter/index.js.map +1 -1
- package/build-module/components/url-query-controller/index.js.map +1 -1
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +170 -23
- package/build-style/style.css +170 -23
- package/package.json +30 -30
- package/src/components/add-new-template/add-custom-template-modal.js +231 -0
- package/src/components/add-new-template/new-template.js +135 -59
- package/src/components/add-new-template/style.scss +116 -0
- package/src/components/add-new-template/utils.js +125 -0
- package/src/components/block-editor/block-inspector-button.js +2 -3
- package/src/components/block-editor/index.js +4 -9
- package/src/components/code-editor/code-editor-text-area.js +12 -7
- package/src/components/edit-template-part-menu-button/index.js +2 -3
- package/src/components/editor/index.js +4 -5
- package/src/components/global-styles/context-menu.js +3 -0
- package/src/components/global-styles/global-styles-provider.js +4 -8
- package/src/components/global-styles/gradients-palette-panel.js +2 -5
- package/src/components/global-styles/hooks.js +5 -3
- package/src/components/global-styles/palette.js +4 -1
- package/src/components/global-styles/preview.js +17 -2
- package/src/components/global-styles/screen-block-list.js +14 -5
- package/src/components/global-styles/screen-button-color.js +102 -0
- package/src/components/global-styles/screen-colors.js +49 -4
- package/src/components/global-styles/screen-root.js +12 -5
- package/src/components/global-styles/screen-style-variations.js +10 -4
- package/src/components/global-styles/screen-typography-element.js +4 -0
- package/src/components/global-styles/screen-typography.js +17 -2
- package/src/components/global-styles/style.scss +10 -0
- package/src/components/global-styles/test/use-global-styles-output.js +82 -16
- package/src/components/global-styles/ui.js +13 -0
- package/src/components/global-styles/use-global-styles-output.js +43 -4
- package/src/components/global-styles/utils.js +3 -0
- package/src/components/header/index.js +38 -13
- package/src/components/header/mode-switcher/index.js +4 -4
- package/src/components/header/more-menu/copy-content-menu-item.js +3 -4
- package/src/components/header/more-menu/site-export.js +5 -3
- package/src/components/header/style.scss +53 -5
- package/src/components/header/undo-redo/redo.js +6 -1
- package/src/components/header/undo-redo/undo.js +6 -1
- package/src/components/keyboard-shortcut-help-modal/config.js +12 -0
- package/src/components/keyboard-shortcuts/index.js +6 -10
- package/src/components/list/actions/index.js +2 -3
- package/src/components/list/actions/rename-menu-item.js +4 -6
- package/src/components/list/added-by.js +4 -3
- package/src/components/navigation-sidebar/index.js +2 -4
- package/src/components/save-button/index.js +2 -4
- package/src/components/sidebar/index.js +6 -6
- package/src/components/sidebar/navigation-menu-sidebar/navigation-inspector.js +6 -9
- package/src/components/sidebar/navigation-menu-sidebar/style.scss +0 -1
- package/src/components/sidebar/template-card/index.js +17 -9
- package/src/components/sidebar/template-card/style.scss +49 -35
- package/src/components/sidebar/template-card/template-actions.js +43 -0
- package/src/components/sidebar/template-card/template-areas.js +6 -6
- package/src/components/template-details/template-areas.js +6 -6
- package/src/components/template-part-converter/index.js +2 -3
- package/src/components/url-query-controller/index.js +2 -3
- package/src/store/actions.js +257 -233
- package/src/store/selectors.js +9 -10
|
@@ -283,7 +283,14 @@ export const getNodesWithStyles = ( tree, blockSelectors ) => {
|
|
|
283
283
|
styles: value,
|
|
284
284
|
selector: blockSelectors[ blockName ].selector
|
|
285
285
|
.split( ',' )
|
|
286
|
-
.map( ( sel ) =>
|
|
286
|
+
.map( ( sel ) => {
|
|
287
|
+
const elementSelectors =
|
|
288
|
+
ELEMENTS[ elementName ].split( ',' );
|
|
289
|
+
return elementSelectors.map(
|
|
290
|
+
( elementSelector ) =>
|
|
291
|
+
sel + ' ' + elementSelector
|
|
292
|
+
);
|
|
293
|
+
} )
|
|
287
294
|
.join( ',' ),
|
|
288
295
|
} );
|
|
289
296
|
}
|
|
@@ -390,10 +397,42 @@ export const toStyles = ( tree, blockSelectors, hasBlockGapSupport ) => {
|
|
|
390
397
|
|
|
391
398
|
// Process the remaning block styles (they use either normal block class or __experimentalSelector).
|
|
392
399
|
const declarations = getStylesDeclarations( styles );
|
|
393
|
-
if ( declarations
|
|
394
|
-
|
|
400
|
+
if ( declarations?.length ) {
|
|
401
|
+
ruleset = ruleset + `${ selector }{${ declarations.join( ';' ) };}`;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
// Check for pseudo selector in `styles` and handle separately.
|
|
405
|
+
const psuedoSelectorStyles = Object.entries( styles ).filter(
|
|
406
|
+
( [ key ] ) => key.startsWith( ':' )
|
|
407
|
+
);
|
|
408
|
+
|
|
409
|
+
if ( psuedoSelectorStyles?.length ) {
|
|
410
|
+
psuedoSelectorStyles.forEach( ( [ pseudoKey, pseudoRule ] ) => {
|
|
411
|
+
const pseudoDeclarations = getStylesDeclarations( pseudoRule );
|
|
412
|
+
|
|
413
|
+
if ( ! pseudoDeclarations?.length ) {
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
// `selector` maybe provided in a form
|
|
418
|
+
// where block level selectors have sub element
|
|
419
|
+
// selectors appended to them as a comma seperated
|
|
420
|
+
// string.
|
|
421
|
+
// e.g. `h1 a,h2 a,h3 a,h4 a,h5 a,h6 a`;
|
|
422
|
+
// Split and append pseudo selector to create
|
|
423
|
+
// the proper rules to target the elements.
|
|
424
|
+
const _selector = selector
|
|
425
|
+
.split( ',' )
|
|
426
|
+
.map( ( sel ) => sel + pseudoKey )
|
|
427
|
+
.join( ',' );
|
|
428
|
+
|
|
429
|
+
const psuedoRule = `${ _selector }{${ pseudoDeclarations.join(
|
|
430
|
+
';'
|
|
431
|
+
) };}`;
|
|
432
|
+
|
|
433
|
+
ruleset = ruleset + psuedoRule;
|
|
434
|
+
} );
|
|
395
435
|
}
|
|
396
|
-
ruleset = ruleset + `${ selector }{${ declarations.join( ';' ) };}`;
|
|
397
436
|
} );
|
|
398
437
|
|
|
399
438
|
/* Add alignment / layout styles */
|
|
@@ -11,6 +11,7 @@ export const ROOT_BLOCK_SUPPORTS = [
|
|
|
11
11
|
'backgroundColor',
|
|
12
12
|
'color',
|
|
13
13
|
'linkColor',
|
|
14
|
+
'buttonColor',
|
|
14
15
|
'fontFamily',
|
|
15
16
|
'fontSize',
|
|
16
17
|
'fontStyle',
|
|
@@ -75,6 +76,8 @@ const STYLE_PATH_TO_CSS_VAR_INFIX = {
|
|
|
75
76
|
'color.background': 'color',
|
|
76
77
|
'color.text': 'color',
|
|
77
78
|
'elements.link.color.text': 'color',
|
|
79
|
+
'elements.button.color.text': 'color',
|
|
80
|
+
'elements.button.backgroundColor': 'background-color',
|
|
78
81
|
'color.gradient': 'gradient',
|
|
79
82
|
'typography.fontSize': 'font-size',
|
|
80
83
|
'typography.fontFamily': 'font-family',
|
|
@@ -6,6 +6,7 @@ import { useViewportMatch } from '@wordpress/compose';
|
|
|
6
6
|
import {
|
|
7
7
|
ToolSelector,
|
|
8
8
|
__experimentalPreviewOptions as PreviewOptions,
|
|
9
|
+
NavigableToolbar,
|
|
9
10
|
} from '@wordpress/block-editor';
|
|
10
11
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
11
12
|
import { PinnedItems } from '@wordpress/interface';
|
|
@@ -57,9 +58,8 @@ export default function Header( {
|
|
|
57
58
|
getEditorMode,
|
|
58
59
|
} = select( editSiteStore );
|
|
59
60
|
const { getEditedEntityRecord } = select( coreStore );
|
|
60
|
-
const { __experimentalGetTemplateInfo: getTemplateInfo } =
|
|
61
|
-
editorStore
|
|
62
|
-
);
|
|
61
|
+
const { __experimentalGetTemplateInfo: getTemplateInfo } =
|
|
62
|
+
select( editorStore );
|
|
63
63
|
const { getShortcutRepresentation } = select( keyboardShortcutsStore );
|
|
64
64
|
|
|
65
65
|
const postType = getEditedPostType();
|
|
@@ -108,47 +108,72 @@ export default function Header( {
|
|
|
108
108
|
|
|
109
109
|
return (
|
|
110
110
|
<div className="edit-site-header">
|
|
111
|
-
<
|
|
111
|
+
<NavigableToolbar
|
|
112
|
+
className="edit-site-header_start"
|
|
113
|
+
aria-label={ __( 'Document tools' ) }
|
|
114
|
+
>
|
|
112
115
|
<div className="edit-site-header__toolbar">
|
|
113
|
-
<
|
|
116
|
+
<ToolbarItem
|
|
114
117
|
ref={ inserterButton }
|
|
118
|
+
as={ Button }
|
|
119
|
+
className="edit-site-header-toolbar__inserter-toggle"
|
|
115
120
|
variant="primary"
|
|
116
121
|
isPressed={ isInserterOpen }
|
|
117
|
-
className="edit-site-header-toolbar__inserter-toggle"
|
|
118
|
-
disabled={ ! isVisualMode }
|
|
119
122
|
onMouseDown={ preventDefault }
|
|
120
123
|
onClick={ openInserter }
|
|
124
|
+
disabled={ ! isVisualMode }
|
|
121
125
|
icon={ plus }
|
|
126
|
+
/* translators: button label text should, if possible, be under 16
|
|
127
|
+
characters. */
|
|
122
128
|
label={ _x(
|
|
123
129
|
'Toggle block inserter',
|
|
124
130
|
'Generic label for block inserter button'
|
|
125
131
|
) }
|
|
132
|
+
showTooltip={ ! showIconLabels }
|
|
126
133
|
>
|
|
127
134
|
{ showIconLabels &&
|
|
128
135
|
( ! isInserterOpen ? __( 'Add' ) : __( 'Close' ) ) }
|
|
129
|
-
</
|
|
136
|
+
</ToolbarItem>
|
|
130
137
|
{ isLargeViewport && (
|
|
131
138
|
<>
|
|
132
139
|
<ToolbarItem
|
|
133
140
|
as={ ToolSelector }
|
|
141
|
+
showTooltip={ ! showIconLabels }
|
|
142
|
+
variant={
|
|
143
|
+
showIconLabels ? 'tertiary' : undefined
|
|
144
|
+
}
|
|
134
145
|
disabled={ ! isVisualMode }
|
|
135
146
|
/>
|
|
136
|
-
<
|
|
137
|
-
|
|
138
|
-
|
|
147
|
+
<ToolbarItem
|
|
148
|
+
as={ UndoButton }
|
|
149
|
+
showTooltip={ ! showIconLabels }
|
|
150
|
+
variant={
|
|
151
|
+
showIconLabels ? 'tertiary' : undefined
|
|
152
|
+
}
|
|
153
|
+
/>
|
|
154
|
+
<ToolbarItem
|
|
155
|
+
as={ RedoButton }
|
|
156
|
+
showTooltip={ ! showIconLabels }
|
|
157
|
+
variant={
|
|
158
|
+
showIconLabels ? 'tertiary' : undefined
|
|
159
|
+
}
|
|
160
|
+
/>
|
|
161
|
+
<ToolbarItem
|
|
162
|
+
as={ Button }
|
|
139
163
|
className="edit-site-header-toolbar__list-view-toggle"
|
|
140
|
-
disabled={ ! isVisualMode }
|
|
141
164
|
icon={ listView }
|
|
165
|
+
disabled={ ! isVisualMode }
|
|
142
166
|
isPressed={ isListViewOpen }
|
|
143
167
|
/* translators: button label text should, if possible, be under 16 characters. */
|
|
144
168
|
label={ __( 'List View' ) }
|
|
145
169
|
onClick={ toggleListView }
|
|
146
170
|
shortcut={ listViewShortcut }
|
|
171
|
+
showTooltip={ ! showIconLabels }
|
|
147
172
|
/>
|
|
148
173
|
</>
|
|
149
174
|
) }
|
|
150
175
|
</div>
|
|
151
|
-
</
|
|
176
|
+
</NavigableToolbar>
|
|
152
177
|
|
|
153
178
|
<div className="edit-site-header_center">
|
|
154
179
|
<DocumentActions
|
|
@@ -36,10 +36,10 @@ function ModeSwitcher() {
|
|
|
36
36
|
shortcut: select(
|
|
37
37
|
keyboardShortcutsStore
|
|
38
38
|
).getShortcutRepresentation( 'core/edit-site/toggle-mode' ),
|
|
39
|
-
isRichEditingEnabled:
|
|
40
|
-
.richEditingEnabled,
|
|
41
|
-
isCodeEditingEnabled:
|
|
42
|
-
.codeEditingEnabled,
|
|
39
|
+
isRichEditingEnabled:
|
|
40
|
+
select( editSiteStore ).getSettings().richEditingEnabled,
|
|
41
|
+
isCodeEditingEnabled:
|
|
42
|
+
select( editSiteStore ).getSettings().codeEditingEnabled,
|
|
43
43
|
mode: select( editSiteStore ).getEditorMode(),
|
|
44
44
|
} ),
|
|
45
45
|
[]
|
|
@@ -18,9 +18,8 @@ export default function CopyContentMenuItem() {
|
|
|
18
18
|
const { createNotice } = useDispatch( noticesStore );
|
|
19
19
|
const getText = useSelect( ( select ) => {
|
|
20
20
|
return () => {
|
|
21
|
-
const { getEditedPostId, getEditedPostType } =
|
|
22
|
-
editSiteStore
|
|
23
|
-
);
|
|
21
|
+
const { getEditedPostId, getEditedPostType } =
|
|
22
|
+
select( editSiteStore );
|
|
24
23
|
const { getEditedEntityRecord } = select( coreStore );
|
|
25
24
|
const record = getEditedEntityRecord(
|
|
26
25
|
'postType',
|
|
@@ -49,5 +48,5 @@ export default function CopyContentMenuItem() {
|
|
|
49
48
|
|
|
50
49
|
const ref = useCopyToClipboard( getText, onSuccess );
|
|
51
50
|
|
|
52
|
-
return <MenuItem ref={ ref }>{ __( 'Copy all
|
|
51
|
+
return <MenuItem ref={ ref }>{ __( 'Copy all blocks' ) }</MenuItem>;
|
|
53
52
|
}
|
|
@@ -21,14 +21,16 @@ export default function SiteExport() {
|
|
|
21
21
|
const response = await apiFetch( {
|
|
22
22
|
path: '/wp-block-editor/v1/export',
|
|
23
23
|
parse: false,
|
|
24
|
+
headers: {
|
|
25
|
+
Accept: 'application/zip',
|
|
26
|
+
},
|
|
24
27
|
} );
|
|
25
28
|
const blob = await response.blob();
|
|
26
29
|
const contentDisposition = response.headers.get(
|
|
27
30
|
'content-disposition'
|
|
28
31
|
);
|
|
29
|
-
const contentDispositionMatches =
|
|
30
|
-
/=(.+)\.zip/
|
|
31
|
-
);
|
|
32
|
+
const contentDispositionMatches =
|
|
33
|
+
contentDisposition.match( /=(.+)\.zip/ );
|
|
32
34
|
const fileName = contentDispositionMatches[ 1 ]
|
|
33
35
|
? contentDispositionMatches[ 1 ]
|
|
34
36
|
: 'edit-site-export';
|
|
@@ -16,9 +16,14 @@ $header-toolbar-min-width: 335px;
|
|
|
16
16
|
@include reduce-motion("transition");
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
.edit-site-header_start
|
|
19
|
+
.edit-site-header_start {
|
|
20
|
+
display: flex;
|
|
21
|
+
border: none;
|
|
22
|
+
}
|
|
23
|
+
|
|
20
24
|
.edit-site-header_end {
|
|
21
25
|
display: flex;
|
|
26
|
+
justify-content: flex-end;
|
|
22
27
|
}
|
|
23
28
|
|
|
24
29
|
.edit-site-header_center {
|
|
@@ -33,10 +38,6 @@ $header-toolbar-min-width: 335px;
|
|
|
33
38
|
// See https://dev.w3.org/csswg/css-flexbox/#min-size-auto
|
|
34
39
|
min-width: 0;
|
|
35
40
|
}
|
|
36
|
-
|
|
37
|
-
.edit-site-header_end {
|
|
38
|
-
justify-content: flex-end;
|
|
39
|
-
}
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
// Keeps the document title centered when the sidebar is open
|
|
@@ -152,6 +153,49 @@ body.is-navigation-sidebar-open {
|
|
|
152
153
|
}
|
|
153
154
|
}
|
|
154
155
|
|
|
156
|
+
.edit-site-header_start {
|
|
157
|
+
display: flex;
|
|
158
|
+
border: none;
|
|
159
|
+
|
|
160
|
+
// The Toolbar component adds different styles to buttons, so we reset them
|
|
161
|
+
// here to the original button styles
|
|
162
|
+
.edit-site-header__toolbar > .components-button.has-icon,
|
|
163
|
+
.edit-site-header__toolbar > .components-dropdown > .components-button.has-icon {
|
|
164
|
+
height: $button-size;
|
|
165
|
+
min-width: $button-size;
|
|
166
|
+
padding: 6px;
|
|
167
|
+
|
|
168
|
+
&.is-pressed {
|
|
169
|
+
background: $gray-900;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
&:focus:not(:disabled) {
|
|
173
|
+
box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 $border-width $white;
|
|
174
|
+
outline: 1px solid transparent;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
&::before {
|
|
178
|
+
display: none;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.edit-site-header__toolbar > .edit-site-header-toolbar__inserter-toggle.has-icon {
|
|
183
|
+
margin-right: $grid-unit-10;
|
|
184
|
+
// Special dimensions for this button.
|
|
185
|
+
min-width: 32px;
|
|
186
|
+
width: 32px;
|
|
187
|
+
height: 32px;
|
|
188
|
+
padding: 0;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.edit-site-header__toolbar > .edit-site-header-toolbar__inserter-toggle.has-text.has-icon {
|
|
192
|
+
width: auto;
|
|
193
|
+
padding: 0 $grid-unit-10;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
}
|
|
198
|
+
|
|
155
199
|
// Button text label styles
|
|
156
200
|
|
|
157
201
|
.show-icon-labels .edit-site-header {
|
|
@@ -192,4 +236,8 @@ body.is-navigation-sidebar-open {
|
|
|
192
236
|
height: 36px;
|
|
193
237
|
padding: 0 6px;
|
|
194
238
|
}
|
|
239
|
+
|
|
240
|
+
.edit-site-header_start .edit-site-header__toolbar > * + * {
|
|
241
|
+
margin-left: $grid-unit-10;
|
|
242
|
+
}
|
|
195
243
|
}
|
|
@@ -7,8 +7,9 @@ import { useSelect, useDispatch } from '@wordpress/data';
|
|
|
7
7
|
import { redo as redoIcon, undo as undoIcon } from '@wordpress/icons';
|
|
8
8
|
import { displayShortcut } from '@wordpress/keycodes';
|
|
9
9
|
import { store as coreStore } from '@wordpress/core-data';
|
|
10
|
+
import { forwardRef } from '@wordpress/element';
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
function RedoButton( props, ref ) {
|
|
12
13
|
const hasRedo = useSelect(
|
|
13
14
|
( select ) => select( coreStore ).hasRedo(),
|
|
14
15
|
[]
|
|
@@ -16,6 +17,8 @@ export default function RedoButton() {
|
|
|
16
17
|
const { redo } = useDispatch( coreStore );
|
|
17
18
|
return (
|
|
18
19
|
<Button
|
|
20
|
+
{ ...props }
|
|
21
|
+
ref={ ref }
|
|
19
22
|
icon={ ! isRTL() ? redoIcon : undoIcon }
|
|
20
23
|
label={ __( 'Redo' ) }
|
|
21
24
|
shortcut={ displayShortcut.primaryShift( 'z' ) }
|
|
@@ -27,3 +30,5 @@ export default function RedoButton() {
|
|
|
27
30
|
/>
|
|
28
31
|
);
|
|
29
32
|
}
|
|
33
|
+
|
|
34
|
+
export default forwardRef( RedoButton );
|
|
@@ -7,8 +7,9 @@ import { useSelect, useDispatch } from '@wordpress/data';
|
|
|
7
7
|
import { undo as undoIcon, redo as redoIcon } from '@wordpress/icons';
|
|
8
8
|
import { displayShortcut } from '@wordpress/keycodes';
|
|
9
9
|
import { store as coreStore } from '@wordpress/core-data';
|
|
10
|
+
import { forwardRef } from '@wordpress/element';
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
function UndoButton( props, ref ) {
|
|
12
13
|
const hasUndo = useSelect(
|
|
13
14
|
( select ) => select( coreStore ).hasUndo(),
|
|
14
15
|
[]
|
|
@@ -16,6 +17,8 @@ export default function UndoButton() {
|
|
|
16
17
|
const { undo } = useDispatch( coreStore );
|
|
17
18
|
return (
|
|
18
19
|
<Button
|
|
20
|
+
{ ...props }
|
|
21
|
+
ref={ ref }
|
|
19
22
|
icon={ ! isRTL() ? undoIcon : redoIcon }
|
|
20
23
|
label={ __( 'Undo' ) }
|
|
21
24
|
shortcut={ displayShortcut.primary( 'z' ) }
|
|
@@ -27,3 +30,5 @@ export default function UndoButton() {
|
|
|
27
30
|
/>
|
|
28
31
|
);
|
|
29
32
|
}
|
|
33
|
+
|
|
34
|
+
export default forwardRef( UndoButton );
|
|
@@ -20,8 +20,20 @@ export const textFormattingShortcuts = [
|
|
|
20
20
|
keyCombination: { modifier: 'primaryShift', character: 'k' },
|
|
21
21
|
description: __( 'Remove a link.' ),
|
|
22
22
|
},
|
|
23
|
+
{
|
|
24
|
+
keyCombination: { character: '[[' },
|
|
25
|
+
description: __( 'Insert a link to a post or page' ),
|
|
26
|
+
},
|
|
23
27
|
{
|
|
24
28
|
keyCombination: { modifier: 'primary', character: 'u' },
|
|
25
29
|
description: __( 'Underline the selected text.' ),
|
|
26
30
|
},
|
|
31
|
+
{
|
|
32
|
+
keyCombination: { modifier: 'access', character: 'd' },
|
|
33
|
+
description: __( 'Strikethrough the selected text.' ),
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
keyCombination: { modifier: 'access', character: 'x' },
|
|
37
|
+
description: __( 'Make the selected text inline code.' ),
|
|
38
|
+
},
|
|
27
39
|
];
|
|
@@ -19,10 +19,8 @@ import { SIDEBAR_BLOCK } from '../sidebar/constants';
|
|
|
19
19
|
import { STORE_NAME } from '../../store/constants';
|
|
20
20
|
|
|
21
21
|
function KeyboardShortcuts( { openEntitiesSavedStates } ) {
|
|
22
|
-
const {
|
|
23
|
-
|
|
24
|
-
isSavingEntityRecord,
|
|
25
|
-
} = useSelect( coreStore );
|
|
22
|
+
const { __experimentalGetDirtyEntityRecords, isSavingEntityRecord } =
|
|
23
|
+
useSelect( coreStore );
|
|
26
24
|
const { getEditorMode } = useSelect( editSiteStore );
|
|
27
25
|
const isListViewOpen = useSelect(
|
|
28
26
|
( select ) => select( editSiteStore ).isListViewOpened(),
|
|
@@ -36,12 +34,10 @@ function KeyboardShortcuts( { openEntitiesSavedStates } ) {
|
|
|
36
34
|
[]
|
|
37
35
|
);
|
|
38
36
|
const { redo, undo } = useDispatch( coreStore );
|
|
39
|
-
const { setIsListViewOpened, switchEditorMode } =
|
|
40
|
-
editSiteStore
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
interfaceStore
|
|
44
|
-
);
|
|
37
|
+
const { setIsListViewOpened, switchEditorMode } =
|
|
38
|
+
useDispatch( editSiteStore );
|
|
39
|
+
const { enableComplementaryArea, disableComplementaryArea } =
|
|
40
|
+
useDispatch( interfaceStore );
|
|
45
41
|
|
|
46
42
|
useShortcut( 'core/edit-site/save', ( event ) => {
|
|
47
43
|
event.preventDefault();
|
|
@@ -19,9 +19,8 @@ import RenameMenuItem from './rename-menu-item';
|
|
|
19
19
|
export default function Actions( { template } ) {
|
|
20
20
|
const { removeTemplate, revertTemplate } = useDispatch( editSiteStore );
|
|
21
21
|
const { saveEditedEntityRecord } = useDispatch( coreStore );
|
|
22
|
-
const { createSuccessNotice, createErrorNotice } =
|
|
23
|
-
noticesStore
|
|
24
|
-
);
|
|
22
|
+
const { createSuccessNotice, createErrorNotice } =
|
|
23
|
+
useDispatch( noticesStore );
|
|
25
24
|
|
|
26
25
|
const isRemovable = isTemplateRemovable( template );
|
|
27
26
|
const isRevertable = isTemplateRevertable( template );
|
|
@@ -19,12 +19,10 @@ export default function RenameMenuItem( { template, onClose } ) {
|
|
|
19
19
|
const [ title, setTitle ] = useState( () => template.title.rendered );
|
|
20
20
|
const [ isModalOpen, setIsModalOpen ] = useState( false );
|
|
21
21
|
|
|
22
|
-
const { editEntityRecord, saveEditedEntityRecord } =
|
|
23
|
-
coreStore
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
noticesStore
|
|
27
|
-
);
|
|
22
|
+
const { editEntityRecord, saveEditedEntityRecord } =
|
|
23
|
+
useDispatch( coreStore );
|
|
24
|
+
const { createSuccessNotice, createErrorNotice } =
|
|
25
|
+
useDispatch( noticesStore );
|
|
28
26
|
|
|
29
27
|
if ( ! template.is_custom ) {
|
|
30
28
|
return null;
|
|
@@ -106,9 +106,10 @@ function AddedByPlugin( { slug, isCustomized } ) {
|
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
function AddedByAuthor( { id } ) {
|
|
109
|
-
const user = useSelect(
|
|
110
|
-
id,
|
|
111
|
-
|
|
109
|
+
const user = useSelect(
|
|
110
|
+
( select ) => select( coreStore ).getUser( id ),
|
|
111
|
+
[ id ]
|
|
112
|
+
);
|
|
112
113
|
|
|
113
114
|
return (
|
|
114
115
|
<BaseAddedBy
|
|
@@ -18,10 +18,8 @@ export const {
|
|
|
18
18
|
Slot: NavigationPanelPreviewSlot,
|
|
19
19
|
} = createSlotFill( 'EditSiteNavigationPanelPreview' );
|
|
20
20
|
|
|
21
|
-
const {
|
|
22
|
-
|
|
23
|
-
Slot: NavigationSidebarSlot,
|
|
24
|
-
} = createSlotFill( 'EditSiteNavigationSidebar' );
|
|
21
|
+
const { Fill: NavigationSidebarFill, Slot: NavigationSidebarSlot } =
|
|
22
|
+
createSlotFill( 'EditSiteNavigationSidebar' );
|
|
25
23
|
|
|
26
24
|
function NavigationSidebar( { isDefaultOpen = false, activeTemplateType } ) {
|
|
27
25
|
const isDesktopViewport = useViewportMatch( 'medium' );
|
|
@@ -16,10 +16,8 @@ export default function SaveButton( {
|
|
|
16
16
|
isEntitiesSavedStatesOpen,
|
|
17
17
|
} ) {
|
|
18
18
|
const { isDirty, isSaving } = useSelect( ( select ) => {
|
|
19
|
-
const {
|
|
20
|
-
|
|
21
|
-
isSavingEntityRecord,
|
|
22
|
-
} = select( coreStore );
|
|
19
|
+
const { __experimentalGetDirtyEntityRecords, isSavingEntityRecord } =
|
|
20
|
+
select( coreStore );
|
|
23
21
|
const dirtyEntityRecords = __experimentalGetDirtyEntityRecords();
|
|
24
22
|
return {
|
|
25
23
|
isDirty: dirtyEntityRecords.length > 0,
|
|
@@ -28,9 +28,10 @@ export const SidebarInspectorFill = InspectorFill;
|
|
|
28
28
|
export function SidebarComplementaryAreaFills() {
|
|
29
29
|
const { sidebar, isEditorSidebarOpened, hasBlockSelection } = useSelect(
|
|
30
30
|
( select ) => {
|
|
31
|
-
const _sidebar =
|
|
32
|
-
interfaceStore
|
|
33
|
-
|
|
31
|
+
const _sidebar =
|
|
32
|
+
select( interfaceStore ).getActiveComplementaryArea(
|
|
33
|
+
STORE_NAME
|
|
34
|
+
);
|
|
34
35
|
const _isEditorSidebarOpened = [
|
|
35
36
|
SIDEBAR_BLOCK,
|
|
36
37
|
SIDEBAR_TEMPLATE,
|
|
@@ -38,9 +39,8 @@ export function SidebarComplementaryAreaFills() {
|
|
|
38
39
|
return {
|
|
39
40
|
sidebar: _sidebar,
|
|
40
41
|
isEditorSidebarOpened: _isEditorSidebarOpened,
|
|
41
|
-
hasBlockSelection:
|
|
42
|
-
blockEditorStore
|
|
43
|
-
).getBlockSelectionStart(),
|
|
42
|
+
hasBlockSelection:
|
|
43
|
+
!! select( blockEditorStore ).getBlockSelectionStart(),
|
|
44
44
|
};
|
|
45
45
|
},
|
|
46
46
|
[]
|
|
@@ -35,9 +35,8 @@ export default function NavigationInspector() {
|
|
|
35
35
|
getBlock,
|
|
36
36
|
} = select( blockEditorStore );
|
|
37
37
|
|
|
38
|
-
const { getEntityRecords, hasFinishedResolution, isResolving } =
|
|
39
|
-
coreStore
|
|
40
|
-
);
|
|
38
|
+
const { getEntityRecords, hasFinishedResolution, isResolving } =
|
|
39
|
+
select( coreStore );
|
|
41
40
|
|
|
42
41
|
const navigationMenusQuery = [
|
|
43
42
|
'postType',
|
|
@@ -46,14 +45,12 @@ export default function NavigationInspector() {
|
|
|
46
45
|
];
|
|
47
46
|
|
|
48
47
|
// Get the active Navigation block (if present).
|
|
49
|
-
const selectedNavId =
|
|
50
|
-
'core/navigation'
|
|
51
|
-
);
|
|
48
|
+
const selectedNavId =
|
|
49
|
+
__experimentalGetActiveBlockIdByBlockNames( 'core/navigation' );
|
|
52
50
|
|
|
53
51
|
// Get all Navigation blocks currently within the editor canvas.
|
|
54
|
-
const navBlockIds =
|
|
55
|
-
'core/navigation'
|
|
56
|
-
);
|
|
52
|
+
const navBlockIds =
|
|
53
|
+
__experimentalGetGlobalBlocksByName( 'core/navigation' );
|
|
57
54
|
const idToRef = {};
|
|
58
55
|
navBlockIds.forEach( ( id ) => {
|
|
59
56
|
idToRef[ id ] = getBlock( id )?.attributes?.ref;
|
|
@@ -10,22 +10,26 @@ import { store as coreStore } from '@wordpress/core-data';
|
|
|
10
10
|
* Internal dependencies
|
|
11
11
|
*/
|
|
12
12
|
import { store as editSiteStore } from '../../../store';
|
|
13
|
+
import TemplateActions from './template-actions';
|
|
13
14
|
import TemplateAreas from './template-areas';
|
|
14
15
|
|
|
15
16
|
export default function TemplateCard() {
|
|
16
|
-
const {
|
|
17
|
+
const {
|
|
18
|
+
info: { title, description, icon },
|
|
19
|
+
template,
|
|
20
|
+
} = useSelect( ( select ) => {
|
|
17
21
|
const { getEditedPostType, getEditedPostId } = select( editSiteStore );
|
|
18
|
-
const {
|
|
19
|
-
const { __experimentalGetTemplateInfo: getTemplateInfo } =
|
|
20
|
-
editorStore
|
|
21
|
-
);
|
|
22
|
+
const { getEditedEntityRecord } = select( coreStore );
|
|
23
|
+
const { __experimentalGetTemplateInfo: getTemplateInfo } =
|
|
24
|
+
select( editorStore );
|
|
22
25
|
|
|
23
26
|
const postType = getEditedPostType();
|
|
24
27
|
const postId = getEditedPostId();
|
|
25
|
-
const record =
|
|
28
|
+
const record = getEditedEntityRecord( 'postType', postType, postId );
|
|
29
|
+
|
|
26
30
|
const info = record ? getTemplateInfo( record ) : {};
|
|
27
31
|
|
|
28
|
-
return info;
|
|
32
|
+
return { info, template: record };
|
|
29
33
|
}, [] );
|
|
30
34
|
|
|
31
35
|
if ( ! title && ! description ) {
|
|
@@ -36,11 +40,15 @@ export default function TemplateCard() {
|
|
|
36
40
|
<div className="edit-site-template-card">
|
|
37
41
|
<Icon className="edit-site-template-card__icon" icon={ icon } />
|
|
38
42
|
<div className="edit-site-template-card__content">
|
|
39
|
-
<
|
|
43
|
+
<div className="edit-site-template-card__header">
|
|
44
|
+
<h2 className="edit-site-template-card__title">
|
|
45
|
+
{ title }
|
|
46
|
+
</h2>
|
|
47
|
+
<TemplateActions template={ template } />
|
|
48
|
+
</div>
|
|
40
49
|
<div className="edit-site-template-card__description">
|
|
41
50
|
{ description }
|
|
42
51
|
</div>
|
|
43
|
-
|
|
44
52
|
<TemplateAreas />
|
|
45
53
|
</div>
|
|
46
54
|
</div>
|