@wordpress/edit-site 3.0.2 → 3.0.3
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/README.md +1 -1
- package/build/components/block-editor/back-button.js +60 -0
- package/build/components/block-editor/back-button.js.map +1 -0
- package/build/components/block-editor/index.js +18 -4
- package/build/components/block-editor/index.js.map +1 -1
- package/build/components/edit-template-part-menu-button/index.js +63 -0
- package/build/components/edit-template-part-menu-button/index.js.map +1 -0
- package/build/components/editor/global-styles-provider.js +1 -1
- package/build/components/editor/global-styles-provider.js.map +1 -1
- package/build/components/editor/index.js +7 -7
- package/build/components/editor/index.js.map +1 -1
- package/build/components/editor/utils.js +1 -1
- package/build/components/editor/utils.js.map +1 -1
- package/build/components/{sidebar → global-styles}/border-panel.js +0 -0
- package/build/components/global-styles/border-panel.js.map +1 -0
- package/build/components/{sidebar → global-styles}/color-palette-panel.js +4 -2
- package/build/components/global-styles/color-palette-panel.js.map +1 -0
- package/build/components/{sidebar → global-styles}/color-panel.js +7 -11
- package/build/components/global-styles/color-panel.js.map +1 -0
- package/build/components/global-styles/context-menu.js +58 -0
- package/build/components/global-styles/context-menu.js.map +1 -0
- package/build/components/{sidebar → global-styles}/dimensions-panel.js +6 -7
- package/build/components/global-styles/dimensions-panel.js.map +1 -0
- package/build/components/global-styles/header.js +54 -0
- package/build/components/global-styles/header.js.map +1 -0
- package/build/components/global-styles/index.js +89 -0
- package/build/components/global-styles/index.js.map +1 -0
- package/build/components/global-styles/navigation-button.js +43 -0
- package/build/components/global-styles/navigation-button.js.map +1 -0
- package/build/components/global-styles/palette.js +57 -0
- package/build/components/global-styles/palette.js.map +1 -0
- package/build/components/global-styles/preview.js +59 -0
- package/build/components/global-styles/preview.js.map +1 -0
- package/build/components/global-styles/screen-block-list.js +76 -0
- package/build/components/global-styles/screen-block-list.js.map +1 -0
- package/build/components/global-styles/screen-block.js +45 -0
- package/build/components/global-styles/screen-block.js.map +1 -0
- package/build/components/global-styles/screen-color-palette.js +48 -0
- package/build/components/global-styles/screen-color-palette.js.map +1 -0
- package/build/components/global-styles/screen-colors.js +51 -0
- package/build/components/global-styles/screen-colors.js.map +1 -0
- package/build/components/global-styles/screen-layout.js +60 -0
- package/build/components/global-styles/screen-layout.js.map +1 -0
- package/build/components/global-styles/screen-root.js +44 -0
- package/build/components/global-styles/screen-root.js.map +1 -0
- package/build/components/global-styles/screen-typography.js +50 -0
- package/build/components/global-styles/screen-typography.js.map +1 -0
- package/build/components/global-styles/subtitle.js +25 -0
- package/build/components/global-styles/subtitle.js.map +1 -0
- package/build/components/{sidebar → global-styles}/typography-panel.js +1 -3
- package/build/components/global-styles/typography-panel.js.map +1 -0
- package/build/components/header/plugin-more-menu-item/index.js +82 -0
- package/build/components/header/plugin-more-menu-item/index.js.map +1 -0
- package/build/components/header/plugin-sidebar-more-menu-item/index.js +75 -0
- package/build/components/header/plugin-sidebar-more-menu-item/index.js.map +1 -0
- package/build/components/header/undo-redo/redo.js +1 -1
- package/build/components/header/undo-redo/redo.js.map +1 -1
- package/build/components/header/undo-redo/undo.js +1 -1
- package/build/components/header/undo-redo/undo.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +2 -10
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/navigation-sidebar/index.js +1 -1
- package/build/components/navigation-sidebar/index.js.map +1 -1
- package/build/components/navigation-sidebar/navigation-panel/constants.js +10 -10
- package/build/components/navigation-sidebar/navigation-panel/constants.js.map +1 -1
- package/build/components/save-button/index.js +1 -1
- package/build/components/save-button/index.js.map +1 -1
- package/build/components/secondary-sidebar/inserter-sidebar.js +2 -1
- package/build/components/secondary-sidebar/inserter-sidebar.js.map +1 -1
- package/build/components/sidebar/global-styles-sidebar.js +11 -161
- package/build/components/sidebar/global-styles-sidebar.js.map +1 -1
- package/build/components/sidebar/index.js +1 -6
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar/plugin-sidebar/index.js +95 -0
- package/build/components/sidebar/plugin-sidebar/index.js.map +1 -0
- package/build/components/template-details/index.js +12 -6
- package/build/components/template-details/index.js.map +1 -1
- package/build/components/template-details/template-areas.js +73 -0
- package/build/components/template-details/template-areas.js.map +1 -0
- package/build/components/template-part-converter/index.js +1 -1
- package/build/components/template-part-converter/index.js.map +1 -1
- package/build/components/url-query-controller/index.js +1 -1
- package/build/components/url-query-controller/index.js.map +1 -1
- package/build/index.js +24 -0
- package/build/index.js.map +1 -1
- package/build/store/actions.js +54 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/constants.js +19 -1
- package/build/store/constants.js.map +1 -1
- package/build/store/reducer.js +16 -7
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +91 -9
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-editor/back-button.js +48 -0
- package/build-module/components/block-editor/back-button.js.map +1 -0
- package/build-module/components/block-editor/index.js +15 -4
- package/build-module/components/block-editor/index.js.map +1 -1
- package/build-module/components/edit-template-part-menu-button/index.js +49 -0
- package/build-module/components/edit-template-part-menu-button/index.js.map +1 -0
- package/build-module/components/editor/global-styles-provider.js +1 -1
- package/build-module/components/editor/global-styles-provider.js.map +1 -1
- package/build-module/components/editor/index.js +4 -5
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/editor/utils.js +1 -1
- package/build-module/components/editor/utils.js.map +1 -1
- package/build-module/components/{sidebar → global-styles}/border-panel.js +0 -0
- package/build-module/components/global-styles/border-panel.js.map +1 -0
- package/build-module/components/{sidebar → global-styles}/color-palette-panel.js +4 -2
- package/build-module/components/global-styles/color-palette-panel.js.map +1 -0
- package/build-module/components/{sidebar → global-styles}/color-panel.js +8 -12
- package/build-module/components/global-styles/color-panel.js.map +1 -0
- package/build-module/components/global-styles/context-menu.js +41 -0
- package/build-module/components/global-styles/context-menu.js.map +1 -0
- package/build-module/components/{sidebar → global-styles}/dimensions-panel.js +6 -7
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -0
- package/build-module/components/global-styles/header.js +41 -0
- package/build-module/components/global-styles/header.js.map +1 -0
- package/build-module/components/global-styles/index.js +70 -0
- package/build-module/components/global-styles/index.js.map +1 -0
- package/build-module/components/global-styles/navigation-button.js +31 -0
- package/build-module/components/global-styles/navigation-button.js.map +1 -0
- package/build-module/components/global-styles/palette.js +43 -0
- package/build-module/components/global-styles/palette.js.map +1 -0
- package/build-module/components/global-styles/preview.js +50 -0
- package/build-module/components/global-styles/preview.js.map +1 -0
- package/build-module/components/global-styles/screen-block-list.js +58 -0
- package/build-module/components/global-styles/screen-block-list.js.map +1 -0
- package/build-module/components/global-styles/screen-block.js +32 -0
- package/build-module/components/global-styles/screen-block.js.map +1 -0
- package/build-module/components/global-styles/screen-color-palette.js +35 -0
- package/build-module/components/global-styles/screen-color-palette.js.map +1 -0
- package/build-module/components/global-styles/screen-colors.js +38 -0
- package/build-module/components/global-styles/screen-colors.js.map +1 -0
- package/build-module/components/global-styles/screen-layout.js +44 -0
- package/build-module/components/global-styles/screen-layout.js.map +1 -0
- package/build-module/components/global-styles/screen-root.js +29 -0
- package/build-module/components/global-styles/screen-root.js.map +1 -0
- package/build-module/components/global-styles/screen-typography.js +37 -0
- package/build-module/components/global-styles/screen-typography.js.map +1 -0
- package/build-module/components/global-styles/subtitle.js +17 -0
- package/build-module/components/global-styles/subtitle.js.map +1 -0
- package/build-module/components/{sidebar → global-styles}/typography-panel.js +1 -2
- package/build-module/components/global-styles/typography-panel.js.map +1 -0
- package/build-module/components/header/plugin-more-menu-item/index.js +70 -0
- package/build-module/components/header/plugin-more-menu-item/index.js.map +1 -0
- package/build-module/components/header/plugin-sidebar-more-menu-item/index.js +64 -0
- package/build-module/components/header/plugin-sidebar-more-menu-item/index.js.map +1 -0
- package/build-module/components/header/undo-redo/redo.js +1 -1
- package/build-module/components/header/undo-redo/redo.js.map +1 -1
- package/build-module/components/header/undo-redo/undo.js +1 -1
- package/build-module/components/header/undo-redo/undo.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +3 -11
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/navigation-sidebar/index.js +1 -1
- package/build-module/components/navigation-sidebar/index.js.map +1 -1
- package/build-module/components/navigation-sidebar/navigation-panel/constants.js +5 -3
- package/build-module/components/navigation-sidebar/navigation-panel/constants.js.map +1 -1
- package/build-module/components/save-button/index.js +1 -1
- package/build-module/components/save-button/index.js.map +1 -1
- package/build-module/components/secondary-sidebar/inserter-sidebar.js +2 -1
- package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +1 -1
- package/build-module/components/sidebar/global-styles-sidebar.js +13 -159
- package/build-module/components/sidebar/global-styles-sidebar.js.map +1 -1
- package/build-module/components/sidebar/index.js +2 -7
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar/plugin-sidebar/index.js +84 -0
- package/build-module/components/sidebar/plugin-sidebar/index.js.map +1 -0
- package/build-module/components/template-details/index.js +13 -8
- package/build-module/components/template-details/index.js.map +1 -1
- package/build-module/components/template-details/template-areas.js +60 -0
- package/build-module/components/template-details/template-areas.js.map +1 -0
- package/build-module/components/template-part-converter/index.js +1 -1
- package/build-module/components/template-part-converter/index.js.map +1 -1
- package/build-module/components/url-query-controller/index.js +1 -1
- package/build-module/components/url-query-controller/index.js.map +1 -1
- package/build-module/index.js +3 -0
- package/build-module/index.js.map +1 -1
- package/build-module/store/actions.js +45 -1
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/constants.js +13 -0
- package/build-module/store/constants.js.map +1 -1
- package/build-module/store/reducer.js +16 -7
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +85 -9
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +122 -17
- package/build-style/style.css +122 -17
- package/package.json +26 -26
- package/src/components/block-editor/back-button.js +44 -0
- package/src/components/block-editor/index.js +16 -1
- package/src/components/block-editor/style.scss +26 -0
- package/src/components/edit-template-part-menu-button/index.js +57 -0
- package/src/components/editor/global-styles-provider.js +1 -1
- package/src/components/editor/index.js +5 -8
- package/src/components/editor/utils.js +1 -0
- package/src/components/{sidebar → global-styles}/border-panel.js +0 -0
- package/src/components/{sidebar → global-styles}/color-palette-panel.js +13 -11
- package/src/components/{sidebar → global-styles}/color-panel.js +12 -17
- package/src/components/global-styles/context-menu.js +54 -0
- package/src/components/{sidebar → global-styles}/dimensions-panel.js +6 -10
- package/src/components/global-styles/header.js +50 -0
- package/src/components/global-styles/index.js +81 -0
- package/src/components/global-styles/navigation-button.js +35 -0
- package/src/components/global-styles/palette.js +67 -0
- package/src/components/global-styles/preview.js +41 -0
- package/src/components/global-styles/screen-block-list.js +59 -0
- package/src/components/global-styles/screen-block.js +28 -0
- package/src/components/global-styles/screen-color-palette.js +33 -0
- package/src/components/global-styles/screen-colors.js +36 -0
- package/src/components/global-styles/screen-layout.js +45 -0
- package/src/components/global-styles/screen-root.js +43 -0
- package/src/components/global-styles/screen-typography.js +33 -0
- package/src/components/global-styles/style.scss +35 -0
- package/src/components/global-styles/subtitle.js +10 -0
- package/src/components/{sidebar → global-styles}/typography-panel.js +1 -2
- package/src/components/header/plugin-more-menu-item/index.js +71 -0
- package/src/components/header/plugin-sidebar-more-menu-item/index.js +64 -0
- package/src/components/header/undo-redo/redo.js +4 -1
- package/src/components/header/undo-redo/undo.js +4 -1
- package/src/components/keyboard-shortcuts/index.js +25 -40
- package/src/components/navigation-sidebar/index.js +1 -1
- package/src/components/navigation-sidebar/navigation-panel/constants.js +9 -4
- package/src/components/navigation-sidebar/navigation-panel/style.scss +1 -0
- package/src/components/save-button/index.js +1 -1
- package/src/components/secondary-sidebar/inserter-sidebar.js +1 -0
- package/src/components/sidebar/global-styles-sidebar.js +14 -187
- package/src/components/sidebar/index.js +2 -7
- package/src/components/sidebar/plugin-sidebar/index.js +80 -0
- package/src/components/sidebar/style.scss +40 -0
- package/src/components/template-details/index.js +17 -7
- package/src/components/template-details/style.scss +36 -27
- package/src/components/template-details/template-areas.js +66 -0
- package/src/components/template-part-converter/index.js +1 -1
- package/src/components/url-query-controller/index.js +1 -1
- package/src/index.js +3 -0
- package/src/store/actions.js +53 -1
- package/src/store/constants.js +15 -0
- package/src/store/reducer.js +26 -12
- package/src/store/selectors.js +96 -9
- package/src/store/test/reducer.js +40 -23
- package/src/store/test/selectors.js +34 -3
- package/src/style.scss +1 -0
- package/build/components/sidebar/border-panel.js.map +0 -1
- package/build/components/sidebar/color-palette-panel.js.map +0 -1
- package/build/components/sidebar/color-panel.js.map +0 -1
- package/build/components/sidebar/dimensions-panel.js.map +0 -1
- package/build/components/sidebar/typography-panel.js.map +0 -1
- package/build-module/components/sidebar/border-panel.js.map +0 -1
- package/build-module/components/sidebar/color-palette-panel.js.map +0 -1
- package/build-module/components/sidebar/color-panel.js.map +0 -1
- package/build-module/components/sidebar/dimensions-panel.js.map +0 -1
- package/build-module/components/sidebar/typography-panel.js.map +0 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { useEffect, useState, useMemo, useCallback } from '@wordpress/element';
|
|
5
|
-
import {
|
|
5
|
+
import { useSelect, useDispatch } from '@wordpress/data';
|
|
6
6
|
import {
|
|
7
7
|
SlotFillProvider,
|
|
8
8
|
Popover,
|
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
} from '@wordpress/editor';
|
|
27
27
|
import { __ } from '@wordpress/i18n';
|
|
28
28
|
import { PluginArea } from '@wordpress/plugins';
|
|
29
|
+
import { ShortcutProvider } from '@wordpress/keyboard-shortcuts';
|
|
29
30
|
|
|
30
31
|
/**
|
|
31
32
|
* Internal dependencies
|
|
@@ -168,17 +169,13 @@ function Editor( { initialSettings, onError } ) {
|
|
|
168
169
|
return <InserterSidebar />;
|
|
169
170
|
}
|
|
170
171
|
if ( isListViewOpen ) {
|
|
171
|
-
return
|
|
172
|
-
<AsyncModeProvider value="true">
|
|
173
|
-
<ListViewSidebar />
|
|
174
|
-
</AsyncModeProvider>
|
|
175
|
-
);
|
|
172
|
+
return <ListViewSidebar />;
|
|
176
173
|
}
|
|
177
174
|
return null;
|
|
178
175
|
};
|
|
179
176
|
|
|
180
177
|
return (
|
|
181
|
-
|
|
178
|
+
<ShortcutProvider>
|
|
182
179
|
<URLQueryController />
|
|
183
180
|
<SlotFillProvider>
|
|
184
181
|
<EntityProvider kind="root" type="site">
|
|
@@ -289,7 +286,7 @@ function Editor( { initialSettings, onError } ) {
|
|
|
289
286
|
</EntityProvider>
|
|
290
287
|
</EntityProvider>
|
|
291
288
|
</SlotFillProvider>
|
|
292
|
-
|
|
289
|
+
</ShortcutProvider>
|
|
293
290
|
);
|
|
294
291
|
}
|
|
295
292
|
export default Editor;
|
|
File without changes
|
|
@@ -63,16 +63,18 @@ export default function ColorPalettePanel( {
|
|
|
63
63
|
[ contextName ]
|
|
64
64
|
);
|
|
65
65
|
return (
|
|
66
|
-
<
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
66
|
+
<div className="edit-site-global-styles-color-palette-panel">
|
|
67
|
+
<ColorEdit
|
|
68
|
+
immutableColorSlugs={ immutableColorSlugs }
|
|
69
|
+
colors={ colors }
|
|
70
|
+
onChange={ ( newColors ) => {
|
|
71
|
+
setSetting( contextName, 'color.palette', newColors );
|
|
72
|
+
} }
|
|
73
|
+
emptyUI={ __(
|
|
74
|
+
'Colors are empty! Add some colors to create your own color palette.'
|
|
75
|
+
) }
|
|
76
|
+
canReset={ colors === userColors }
|
|
77
|
+
/>
|
|
78
|
+
</div>
|
|
77
79
|
);
|
|
78
80
|
}
|
|
@@ -9,7 +9,7 @@ import { __ } from '@wordpress/i18n';
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { useSetting } from '../editor/utils';
|
|
12
|
-
import
|
|
12
|
+
import Palette from './palette';
|
|
13
13
|
|
|
14
14
|
export function useHasColorPanel( { supports } ) {
|
|
15
15
|
return (
|
|
@@ -24,8 +24,6 @@ export default function ColorPanel( {
|
|
|
24
24
|
context: { supports, name },
|
|
25
25
|
getStyle,
|
|
26
26
|
setStyle,
|
|
27
|
-
getSetting,
|
|
28
|
-
setSetting,
|
|
29
27
|
} ) {
|
|
30
28
|
const solids = useSetting( 'color.palette', name );
|
|
31
29
|
const gradients = useSetting( 'color.gradients', name );
|
|
@@ -116,20 +114,17 @@ export default function ColorPanel( {
|
|
|
116
114
|
}
|
|
117
115
|
|
|
118
116
|
return (
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
contextName={ name }
|
|
130
|
-
getSetting={ getSetting }
|
|
131
|
-
setSetting={ setSetting }
|
|
117
|
+
<>
|
|
118
|
+
<Palette contextName={ name } />
|
|
119
|
+
<PanelColorGradientSettings
|
|
120
|
+
title={ __( 'Color' ) }
|
|
121
|
+
settings={ settings }
|
|
122
|
+
colors={ solids }
|
|
123
|
+
gradients={ gradients }
|
|
124
|
+
disableCustomColors={ ! areCustomSolidsEnabled }
|
|
125
|
+
disableCustomGradients={ ! areCustomGradientsEnabled }
|
|
126
|
+
showTitle={ false }
|
|
132
127
|
/>
|
|
133
|
-
|
|
128
|
+
</>
|
|
134
129
|
);
|
|
135
130
|
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __experimentalItemGroup as ItemGroup } from '@wordpress/components';
|
|
5
|
+
import { typography, color, layout } from '@wordpress/icons';
|
|
6
|
+
import { __ } from '@wordpress/i18n';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Internal dependencies
|
|
10
|
+
*/
|
|
11
|
+
import { useHasBorderPanel } from './border-panel';
|
|
12
|
+
import { useHasColorPanel } from './color-panel';
|
|
13
|
+
import { useHasDimensionsPanel } from './dimensions-panel';
|
|
14
|
+
import { useHasTypographyPanel } from './typography-panel';
|
|
15
|
+
import NavigationButton from './navigation-button';
|
|
16
|
+
|
|
17
|
+
function ContextMenu( { context, parentMenu = '' } ) {
|
|
18
|
+
const hasTypographyPanel = useHasTypographyPanel( context );
|
|
19
|
+
const hasColorPanel = useHasColorPanel( context );
|
|
20
|
+
const hasBorderPanel = useHasBorderPanel( context );
|
|
21
|
+
const hasDimensionsPanel = useHasDimensionsPanel( context );
|
|
22
|
+
const hasLayoutPanel = hasBorderPanel || hasDimensionsPanel;
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<ItemGroup>
|
|
26
|
+
{ hasTypographyPanel && (
|
|
27
|
+
<NavigationButton
|
|
28
|
+
icon={ typography }
|
|
29
|
+
path={ parentMenu + '/typography' }
|
|
30
|
+
>
|
|
31
|
+
{ __( 'Typography' ) }
|
|
32
|
+
</NavigationButton>
|
|
33
|
+
) }
|
|
34
|
+
{ hasColorPanel && (
|
|
35
|
+
<NavigationButton
|
|
36
|
+
icon={ color }
|
|
37
|
+
path={ parentMenu + '/colors' }
|
|
38
|
+
>
|
|
39
|
+
{ __( 'Colors' ) }
|
|
40
|
+
</NavigationButton>
|
|
41
|
+
) }
|
|
42
|
+
{ hasLayoutPanel && (
|
|
43
|
+
<NavigationButton
|
|
44
|
+
icon={ layout }
|
|
45
|
+
path={ parentMenu + '/layout' }
|
|
46
|
+
>
|
|
47
|
+
{ __( 'Layout' ) }
|
|
48
|
+
</NavigationButton>
|
|
49
|
+
) }
|
|
50
|
+
</ItemGroup>
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export default ContextMenu;
|
|
@@ -109,7 +109,7 @@ export default function DimensionsPanel( { context, getStyle, setStyle } ) {
|
|
|
109
109
|
};
|
|
110
110
|
const resetPaddingValue = () => setPaddingValues( {} );
|
|
111
111
|
const hasPaddingValue = () =>
|
|
112
|
-
paddingValues && Object.keys( paddingValues ).length;
|
|
112
|
+
!! paddingValues && Object.keys( paddingValues ).length;
|
|
113
113
|
|
|
114
114
|
const marginValues = splitStyleValue( getStyle( name, 'margin' ) );
|
|
115
115
|
const marginSides = useCustomSides( name, 'margin' );
|
|
@@ -123,7 +123,7 @@ export default function DimensionsPanel( { context, getStyle, setStyle } ) {
|
|
|
123
123
|
};
|
|
124
124
|
const resetMarginValue = () => setMarginValues( {} );
|
|
125
125
|
const hasMarginValue = () =>
|
|
126
|
-
marginValues && Object.keys( marginValues ).length;
|
|
126
|
+
!! marginValues && Object.keys( marginValues ).length;
|
|
127
127
|
|
|
128
128
|
const gapValue = getStyle( name, '--wp--style--block-gap' );
|
|
129
129
|
|
|
@@ -140,11 +140,7 @@ export default function DimensionsPanel( { context, getStyle, setStyle } ) {
|
|
|
140
140
|
};
|
|
141
141
|
|
|
142
142
|
return (
|
|
143
|
-
<ToolsPanel
|
|
144
|
-
label={ __( 'Dimensions options' ) }
|
|
145
|
-
header={ __( 'Dimensions' ) }
|
|
146
|
-
resetAll={ resetAll }
|
|
147
|
-
>
|
|
143
|
+
<ToolsPanel label={ __( 'Dimensions' ) } resetAll={ resetAll }>
|
|
148
144
|
{ showPaddingControl && (
|
|
149
145
|
<ToolsPanelItem
|
|
150
146
|
hasValue={ hasPaddingValue }
|
|
@@ -183,14 +179,14 @@ export default function DimensionsPanel( { context, getStyle, setStyle } ) {
|
|
|
183
179
|
) }
|
|
184
180
|
{ showGapControl && (
|
|
185
181
|
<ToolsPanelItem
|
|
186
|
-
className="single-column"
|
|
187
182
|
hasValue={ hasGapValue }
|
|
188
|
-
label={ __( 'Block
|
|
183
|
+
label={ __( 'Block spacing' ) }
|
|
189
184
|
onDeselect={ resetGapValue }
|
|
190
185
|
isShownByDefault={ true }
|
|
191
186
|
>
|
|
192
187
|
<UnitControl
|
|
193
|
-
label={ __( 'Block
|
|
188
|
+
label={ __( 'Block spacing' ) }
|
|
189
|
+
__unstableInputWidth="80px"
|
|
194
190
|
min={ 0 }
|
|
195
191
|
onChange={ setGapValue }
|
|
196
192
|
units={ units }
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
__experimentalHStack as HStack,
|
|
6
|
+
__experimentalVStack as VStack,
|
|
7
|
+
__experimentalSpacer as Spacer,
|
|
8
|
+
__experimentalHeading as Heading,
|
|
9
|
+
__experimentalView as View,
|
|
10
|
+
} from '@wordpress/components';
|
|
11
|
+
import { isRTL, __ } from '@wordpress/i18n';
|
|
12
|
+
import { chevronRight, chevronLeft, Icon } from '@wordpress/icons';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Internal dependencies
|
|
16
|
+
*/
|
|
17
|
+
import NavigationButton from './navigation-button';
|
|
18
|
+
|
|
19
|
+
function ScreenHeader( { back, title, description } ) {
|
|
20
|
+
return (
|
|
21
|
+
<VStack spacing={ 2 }>
|
|
22
|
+
<HStack spacing={ 2 }>
|
|
23
|
+
<View>
|
|
24
|
+
<NavigationButton
|
|
25
|
+
path={ back }
|
|
26
|
+
icon={
|
|
27
|
+
<Icon
|
|
28
|
+
icon={ isRTL() ? chevronRight : chevronLeft }
|
|
29
|
+
variant="muted"
|
|
30
|
+
/>
|
|
31
|
+
}
|
|
32
|
+
size="small"
|
|
33
|
+
isBack
|
|
34
|
+
aria-label={ __( 'Navigate to the previous view' ) }
|
|
35
|
+
/>
|
|
36
|
+
</View>
|
|
37
|
+
<Spacer>
|
|
38
|
+
<Heading level={ 5 }>{ title }</Heading>
|
|
39
|
+
</Spacer>
|
|
40
|
+
</HStack>
|
|
41
|
+
{ description && (
|
|
42
|
+
<p className="edit-site-global-styles-header__description">
|
|
43
|
+
{ description }
|
|
44
|
+
</p>
|
|
45
|
+
) }
|
|
46
|
+
</VStack>
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export default ScreenHeader;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { map } from 'lodash';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import {
|
|
10
|
+
__experimentalNavigatorProvider as NavigatorProvider,
|
|
11
|
+
__experimentalNavigatorScreen as NavigatorScreen,
|
|
12
|
+
} from '@wordpress/components';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Internal dependencies
|
|
16
|
+
*/
|
|
17
|
+
import { useGlobalStylesContext } from '../editor/global-styles-provider';
|
|
18
|
+
import ScreenRoot from './screen-root';
|
|
19
|
+
import ScreenBlockList from './screen-block-list';
|
|
20
|
+
import ScreenBlock from './screen-block';
|
|
21
|
+
import ScreenTypography from './screen-typography';
|
|
22
|
+
import ScreenColors from './screen-colors';
|
|
23
|
+
import ScreenColorPalette from './screen-color-palette';
|
|
24
|
+
import ScreenLayout from './screen-layout';
|
|
25
|
+
|
|
26
|
+
function ContextScreens( { name } ) {
|
|
27
|
+
const parentMenu = name === undefined ? '' : '/blocks/' + name;
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<>
|
|
31
|
+
<NavigatorScreen path={ parentMenu + '/typography' }>
|
|
32
|
+
<ScreenTypography name={ name } />
|
|
33
|
+
</NavigatorScreen>
|
|
34
|
+
|
|
35
|
+
<NavigatorScreen path={ parentMenu + '/colors' }>
|
|
36
|
+
<ScreenColors name={ name } />
|
|
37
|
+
</NavigatorScreen>
|
|
38
|
+
|
|
39
|
+
<NavigatorScreen path={ parentMenu + '/colors/palette' }>
|
|
40
|
+
<ScreenColorPalette name={ name } />
|
|
41
|
+
</NavigatorScreen>
|
|
42
|
+
|
|
43
|
+
<NavigatorScreen path={ parentMenu + '/layout' }>
|
|
44
|
+
<ScreenLayout name={ name } />
|
|
45
|
+
</NavigatorScreen>
|
|
46
|
+
</>
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function GlobalStyles() {
|
|
51
|
+
const { blocks } = useGlobalStylesContext();
|
|
52
|
+
|
|
53
|
+
return (
|
|
54
|
+
<NavigatorProvider initialPath="/">
|
|
55
|
+
<NavigatorScreen path="/">
|
|
56
|
+
<ScreenRoot />
|
|
57
|
+
</NavigatorScreen>
|
|
58
|
+
|
|
59
|
+
<NavigatorScreen path="/blocks">
|
|
60
|
+
<ScreenBlockList />
|
|
61
|
+
</NavigatorScreen>
|
|
62
|
+
|
|
63
|
+
{ map( blocks, ( block, name ) => (
|
|
64
|
+
<NavigatorScreen
|
|
65
|
+
key={ 'menu-block-' + name }
|
|
66
|
+
path={ '/blocks/' + name }
|
|
67
|
+
>
|
|
68
|
+
<ScreenBlock name={ name } />
|
|
69
|
+
</NavigatorScreen>
|
|
70
|
+
) ) }
|
|
71
|
+
|
|
72
|
+
<ContextScreens />
|
|
73
|
+
|
|
74
|
+
{ map( blocks, ( _, name ) => (
|
|
75
|
+
<ContextScreens key={ 'screens-block-' + name } name={ name } />
|
|
76
|
+
) ) }
|
|
77
|
+
</NavigatorProvider>
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export default GlobalStyles;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
__experimentalUseNavigator as useNavigator,
|
|
6
|
+
__experimentalItem as Item,
|
|
7
|
+
FlexItem,
|
|
8
|
+
__experimentalHStack as HStack,
|
|
9
|
+
} from '@wordpress/components';
|
|
10
|
+
import { Icon } from '@wordpress/icons';
|
|
11
|
+
|
|
12
|
+
function NavigationButton( {
|
|
13
|
+
path,
|
|
14
|
+
icon,
|
|
15
|
+
children,
|
|
16
|
+
isBack = false,
|
|
17
|
+
...props
|
|
18
|
+
} ) {
|
|
19
|
+
const navigator = useNavigator();
|
|
20
|
+
return (
|
|
21
|
+
<Item onClick={ () => navigator.push( path, { isBack } ) } { ...props }>
|
|
22
|
+
{ icon && (
|
|
23
|
+
<HStack justify="flex-start">
|
|
24
|
+
<FlexItem>
|
|
25
|
+
<Icon icon={ icon } size={ 24 } />
|
|
26
|
+
</FlexItem>
|
|
27
|
+
<FlexItem>{ children }</FlexItem>
|
|
28
|
+
</HStack>
|
|
29
|
+
) }
|
|
30
|
+
{ ! icon && children }
|
|
31
|
+
</Item>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export default NavigationButton;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
__experimentalItemGroup as ItemGroup,
|
|
6
|
+
FlexItem,
|
|
7
|
+
__experimentalHStack as HStack,
|
|
8
|
+
__experimentalZStack as ZStack,
|
|
9
|
+
__experimentalVStack as VStack,
|
|
10
|
+
FlexBlock,
|
|
11
|
+
ColorIndicator,
|
|
12
|
+
} from '@wordpress/components';
|
|
13
|
+
import { __, _n, sprintf } from '@wordpress/i18n';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Internal dependencies
|
|
17
|
+
*/
|
|
18
|
+
import Subtitle from './subtitle';
|
|
19
|
+
import { useSetting } from '../editor/utils';
|
|
20
|
+
import NavigationButton from './navigation-button';
|
|
21
|
+
|
|
22
|
+
function Palette( { contextName } ) {
|
|
23
|
+
const colors = useSetting( 'color.palette', contextName );
|
|
24
|
+
const screenPath =
|
|
25
|
+
contextName === 'root'
|
|
26
|
+
? '/colors/palette'
|
|
27
|
+
: '/blocks/' + contextName + '/colors/palette';
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<div className="edit-site-global-style-palette">
|
|
31
|
+
<VStack spacing={ 1 }>
|
|
32
|
+
<Subtitle>{ __( 'Palette' ) }</Subtitle>
|
|
33
|
+
<ItemGroup isBordered isSeparated>
|
|
34
|
+
<NavigationButton path={ screenPath }>
|
|
35
|
+
<HStack>
|
|
36
|
+
<FlexBlock>
|
|
37
|
+
<ZStack isLayered={ false } offset={ -8 }>
|
|
38
|
+
{ colors
|
|
39
|
+
.slice( 0, 5 )
|
|
40
|
+
.map( ( { color } ) => (
|
|
41
|
+
<ColorIndicator
|
|
42
|
+
key={ color }
|
|
43
|
+
colorValue={ color }
|
|
44
|
+
/>
|
|
45
|
+
) ) }
|
|
46
|
+
</ZStack>
|
|
47
|
+
</FlexBlock>
|
|
48
|
+
<FlexItem>
|
|
49
|
+
{ sprintf(
|
|
50
|
+
// Translators: %d: Number of palette colors.
|
|
51
|
+
_n(
|
|
52
|
+
'%d color',
|
|
53
|
+
'%d colors',
|
|
54
|
+
colors.length
|
|
55
|
+
),
|
|
56
|
+
colors.length
|
|
57
|
+
) }
|
|
58
|
+
</FlexItem>
|
|
59
|
+
</HStack>
|
|
60
|
+
</NavigationButton>
|
|
61
|
+
</ItemGroup>
|
|
62
|
+
</VStack>
|
|
63
|
+
</div>
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export default Palette;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
__experimentalHStack as HStack,
|
|
6
|
+
__experimentalVStack as VStack,
|
|
7
|
+
Card,
|
|
8
|
+
ColorIndicator,
|
|
9
|
+
} from '@wordpress/components';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Internal dependencies
|
|
13
|
+
*/ import { useGlobalStylesContext } from '../editor/global-styles-provider';
|
|
14
|
+
|
|
15
|
+
const StylesPreview = () => {
|
|
16
|
+
const { getStyle } = useGlobalStylesContext();
|
|
17
|
+
const fontFamily = getStyle( 'root', 'fontFamily' ) ?? 'serif';
|
|
18
|
+
const textColor = getStyle( 'root', 'color' ) ?? 'black';
|
|
19
|
+
const linkColor = getStyle( 'root', 'linkColor' ) ?? 'blue';
|
|
20
|
+
const backgroundColor = getStyle( 'root', 'backgroundColor' ) ?? 'white';
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<Card
|
|
24
|
+
className="edit-site-global-styles-preview"
|
|
25
|
+
style={ { background: backgroundColor } }
|
|
26
|
+
>
|
|
27
|
+
<HStack spacing={ 5 }>
|
|
28
|
+
<div>
|
|
29
|
+
<span style={ { fontFamily, fontSize: '80px' } }>A</span>
|
|
30
|
+
<span style={ { fontFamily, fontSize: '80px' } }>a</span>
|
|
31
|
+
</div>
|
|
32
|
+
<VStack spacing={ 2 }>
|
|
33
|
+
<ColorIndicator colorValue={ textColor } />
|
|
34
|
+
<ColorIndicator colorValue={ linkColor } />
|
|
35
|
+
</VStack>
|
|
36
|
+
</HStack>
|
|
37
|
+
</Card>
|
|
38
|
+
);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export default StylesPreview;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { getBlockType } from '@wordpress/blocks';
|
|
5
|
+
import { __ } from '@wordpress/i18n';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Internal dependencies
|
|
9
|
+
*/
|
|
10
|
+
import { useGlobalStylesContext } from '../editor/global-styles-provider';
|
|
11
|
+
import { useHasBorderPanel } from './border-panel';
|
|
12
|
+
import { useHasColorPanel } from './color-panel';
|
|
13
|
+
import { useHasDimensionsPanel } from './dimensions-panel';
|
|
14
|
+
import { useHasTypographyPanel } from './typography-panel';
|
|
15
|
+
import ScreenHeader from './header';
|
|
16
|
+
import NavigationButton from './navigation-button';
|
|
17
|
+
|
|
18
|
+
function BlockMenuItem( { block } ) {
|
|
19
|
+
const { blocks } = useGlobalStylesContext();
|
|
20
|
+
const context = blocks[ block.name ];
|
|
21
|
+
const hasTypographyPanel = useHasTypographyPanel( context );
|
|
22
|
+
const hasColorPanel = useHasColorPanel( context );
|
|
23
|
+
const hasBorderPanel = useHasBorderPanel( context );
|
|
24
|
+
const hasDimensionsPanel = useHasDimensionsPanel( context );
|
|
25
|
+
const hasLayoutPanel = hasBorderPanel || hasDimensionsPanel;
|
|
26
|
+
const hasBlockMenuItem =
|
|
27
|
+
hasTypographyPanel || hasColorPanel || hasLayoutPanel;
|
|
28
|
+
|
|
29
|
+
if ( ! hasBlockMenuItem ) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return (
|
|
34
|
+
<NavigationButton path={ '/blocks/' + block.name }>
|
|
35
|
+
{ block.title }
|
|
36
|
+
</NavigationButton>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function ScreenBlockList() {
|
|
41
|
+
const { blocks } = useGlobalStylesContext();
|
|
42
|
+
const visibleBlocks = Object.keys( blocks )
|
|
43
|
+
.map( ( name ) => getBlockType( name ) )
|
|
44
|
+
.filter( ( blockType ) => !! blockType );
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<>
|
|
48
|
+
<ScreenHeader back="/" title={ __( 'Blocks' ) } />
|
|
49
|
+
{ visibleBlocks.map( ( block ) => (
|
|
50
|
+
<BlockMenuItem
|
|
51
|
+
block={ block }
|
|
52
|
+
key={ 'menu-itemblock-' + block.name }
|
|
53
|
+
/>
|
|
54
|
+
) ) }
|
|
55
|
+
</>
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export default ScreenBlockList;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { getBlockType } from '@wordpress/blocks';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { useGlobalStylesContext } from '../editor/global-styles-provider';
|
|
10
|
+
import ContextMenu from './context-menu';
|
|
11
|
+
import ScreenHeader from './header';
|
|
12
|
+
|
|
13
|
+
function ScreenBlock( { name } ) {
|
|
14
|
+
const blockType = getBlockType( name );
|
|
15
|
+
const { blocks } = useGlobalStylesContext();
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<>
|
|
19
|
+
<ScreenHeader back="/blocks" title={ blockType.title } />
|
|
20
|
+
<ContextMenu
|
|
21
|
+
parentMenu={ '/blocks/' + name }
|
|
22
|
+
context={ blocks[ name ] }
|
|
23
|
+
/>
|
|
24
|
+
</>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export default ScreenBlock;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { useGlobalStylesContext } from '../editor/global-styles-provider';
|
|
10
|
+
import ColorPalettePanel from './color-palette-panel';
|
|
11
|
+
import ScreenHeader from './header';
|
|
12
|
+
|
|
13
|
+
function ScreenColorPalette( { name } ) {
|
|
14
|
+
const { getSetting, setSetting } = useGlobalStylesContext();
|
|
15
|
+
const parentMenu = name === undefined ? '' : '/blocks/' + name;
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<>
|
|
19
|
+
<ScreenHeader
|
|
20
|
+
back={ parentMenu + '/colors' }
|
|
21
|
+
title={ __( 'Color Palette' ) }
|
|
22
|
+
description={ __( 'Edit the color palette.' ) }
|
|
23
|
+
/>
|
|
24
|
+
<ColorPalettePanel
|
|
25
|
+
contextName={ name }
|
|
26
|
+
getSetting={ getSetting }
|
|
27
|
+
setSetting={ setSetting }
|
|
28
|
+
/>
|
|
29
|
+
</>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export default ScreenColorPalette;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { useGlobalStylesContext } from '../editor/global-styles-provider';
|
|
10
|
+
import ColorPanel from './color-panel';
|
|
11
|
+
import ScreenHeader from './header';
|
|
12
|
+
|
|
13
|
+
function ScreenColors( { name } ) {
|
|
14
|
+
const { root, blocks, getStyle, setStyle } = useGlobalStylesContext();
|
|
15
|
+
const context = name === undefined ? root : blocks[ name ];
|
|
16
|
+
const parentMenu = name === undefined ? '' : '/blocks/' + name;
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<>
|
|
20
|
+
<ScreenHeader
|
|
21
|
+
back={ parentMenu ? parentMenu : '/' }
|
|
22
|
+
title={ __( 'Colors' ) }
|
|
23
|
+
description={ __(
|
|
24
|
+
'Manage color palettes and how they affect the different elements of the site.'
|
|
25
|
+
) }
|
|
26
|
+
/>
|
|
27
|
+
<ColorPanel
|
|
28
|
+
context={ context }
|
|
29
|
+
getStyle={ getStyle }
|
|
30
|
+
setStyle={ setStyle }
|
|
31
|
+
/>
|
|
32
|
+
</>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export default ScreenColors;
|