@wordpress/edit-site 3.0.8 → 3.0.12
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/build/components/add-new-template/index.js +49 -0
- package/build/components/add-new-template/index.js.map +1 -0
- package/build/components/add-new-template/new-template-part.js +95 -0
- package/build/components/add-new-template/new-template-part.js.map +1 -0
- package/build/components/add-new-template/new-template.js +133 -0
- package/build/components/add-new-template/new-template.js.map +1 -0
- package/build/components/block-editor/index.js +3 -1
- package/build/components/block-editor/index.js.map +1 -1
- package/build/components/create-template-part-modal/index.js +115 -0
- package/build/components/create-template-part-modal/index.js.map +1 -0
- package/build/components/editor/index.js +20 -16
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/color-palette-panel.js +29 -6
- package/build/components/global-styles/color-palette-panel.js.map +1 -1
- package/build/components/global-styles/global-styles-provider.js +9 -47
- package/build/components/global-styles/global-styles-provider.js.map +1 -1
- package/build/components/global-styles/gradients-palette-panel.js +56 -0
- package/build/components/global-styles/gradients-palette-panel.js.map +1 -0
- package/build/components/global-styles/hooks.js +29 -27
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/palette.js +11 -5
- package/build/components/global-styles/palette.js.map +1 -1
- package/build/components/global-styles/screen-background-color.js +2 -1
- package/build/components/global-styles/screen-background-color.js.map +1 -1
- package/build/components/global-styles/screen-block-list.js +9 -1
- package/build/components/global-styles/screen-block-list.js.map +1 -1
- package/build/components/global-styles/screen-color-palette.js +23 -3
- package/build/components/global-styles/screen-color-palette.js.map +1 -1
- package/build/components/global-styles/screen-link-color.js +2 -1
- package/build/components/global-styles/screen-link-color.js.map +1 -1
- package/build/components/global-styles/screen-text-color.js +2 -1
- package/build/components/global-styles/screen-text-color.js.map +1 -1
- package/build/components/global-styles/screen-typography-element.js +54 -0
- package/build/components/global-styles/screen-typography-element.js.map +1 -0
- package/build/components/global-styles/screen-typography.js +74 -6
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +28 -8
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/ui.js +12 -0
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +2 -2
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +1 -1
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/header/index.js +1 -5
- package/build/components/header/index.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +26 -0
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/list/actions/index.js +104 -0
- package/build/components/list/actions/index.js.map +1 -0
- package/build/components/list/actions/rename-menu-item.js +112 -0
- package/build/components/list/actions/rename-menu-item.js.map +1 -0
- package/build/components/list/added-by.js +180 -0
- package/build/components/list/added-by.js.map +1 -0
- package/build/components/list/header.js +50 -0
- package/build/components/list/header.js.map +1 -0
- package/build/components/list/index.js +102 -0
- package/build/components/list/index.js.map +1 -0
- package/build/components/list/table.js +114 -0
- package/build/components/list/table.js.map +1 -0
- package/build/components/list/use-register-shortcuts.js +52 -0
- package/build/components/list/use-register-shortcuts.js.map +1 -0
- package/build/components/navigation-sidebar/index.js +26 -10
- package/build/components/navigation-sidebar/index.js.map +1 -1
- package/build/components/navigation-sidebar/navigation-panel/index.js +42 -44
- package/build/components/navigation-sidebar/navigation-panel/index.js.map +1 -1
- package/build/components/navigation-sidebar/navigation-toggle/index.js +5 -17
- package/build/components/navigation-sidebar/navigation-toggle/index.js.map +1 -1
- package/build/components/template-details/index.js +3 -2
- package/build/components/template-details/index.js.map +1 -1
- package/build/components/template-part-converter/convert-to-template-part.js +20 -84
- package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
- package/build/components/welcome-guide/editor.js +58 -0
- package/build/components/welcome-guide/editor.js.map +1 -0
- package/build/components/welcome-guide/image.js +27 -0
- package/build/components/welcome-guide/image.js.map +1 -0
- package/build/components/welcome-guide/index.js +49 -0
- package/build/components/welcome-guide/index.js.map +1 -0
- package/build/components/welcome-guide/styles.js +83 -0
- package/build/components/welcome-guide/styles.js.map +1 -0
- package/build/index.js +36 -6
- package/build/index.js.map +1 -1
- package/build/plugins/index.js +4 -2
- package/build/plugins/index.js.map +1 -1
- package/build/plugins/welcome-guide-menu-item.js +39 -0
- package/build/plugins/welcome-guide-menu-item.js.map +1 -0
- package/build/store/actions.js +50 -24
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +4 -1
- package/build/store/defaults.js.map +1 -1
- package/build/store/selectors.js +25 -5
- package/build/store/selectors.js.map +1 -1
- package/build/utils/is-template-removable.js +21 -0
- package/build/utils/is-template-removable.js.map +1 -0
- package/build-module/components/add-new-template/index.js +36 -0
- package/build-module/components/add-new-template/index.js.map +1 -0
- package/build-module/components/add-new-template/new-template-part.js +79 -0
- package/build-module/components/add-new-template/new-template-part.js.map +1 -0
- package/build-module/components/add-new-template/new-template.js +114 -0
- package/build-module/components/add-new-template/new-template.js.map +1 -0
- package/build-module/components/block-editor/index.js +2 -1
- package/build-module/components/block-editor/index.js.map +1 -1
- package/build-module/components/create-template-part-modal/index.js +102 -0
- package/build-module/components/create-template-part-modal/index.js.map +1 -0
- package/build-module/components/editor/index.js +19 -17
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/color-palette-panel.js +29 -7
- package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
- package/build-module/components/global-styles/global-styles-provider.js +10 -43
- package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
- package/build-module/components/global-styles/gradients-palette-panel.js +46 -0
- package/build-module/components/global-styles/gradients-palette-panel.js.map +1 -0
- package/build-module/components/global-styles/hooks.js +30 -28
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/palette.js +12 -5
- package/build-module/components/global-styles/palette.js.map +1 -1
- package/build-module/components/global-styles/screen-background-color.js +2 -1
- package/build-module/components/global-styles/screen-background-color.js.map +1 -1
- package/build-module/components/global-styles/screen-block-list.js +7 -1
- package/build-module/components/global-styles/screen-block-list.js.map +1 -1
- package/build-module/components/global-styles/screen-color-palette.js +22 -3
- package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
- package/build-module/components/global-styles/screen-link-color.js +2 -1
- package/build-module/components/global-styles/screen-link-color.js.map +1 -1
- package/build-module/components/global-styles/screen-text-color.js +2 -1
- package/build-module/components/global-styles/screen-text-color.js.map +1 -1
- package/build-module/components/global-styles/screen-typography-element.js +41 -0
- package/build-module/components/global-styles/screen-typography-element.js.map +1 -0
- package/build-module/components/global-styles/screen-typography.js +70 -6
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +28 -8
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/ui.js +11 -0
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +2 -2
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +1 -1
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/header/index.js +1 -3
- package/build-module/components/header/index.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +26 -0
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/list/actions/index.js +85 -0
- package/build-module/components/list/actions/index.js.map +1 -0
- package/build-module/components/list/actions/rename-menu-item.js +101 -0
- package/build-module/components/list/actions/rename-menu-item.js.map +1 -0
- package/build-module/components/list/added-by.js +166 -0
- package/build-module/components/list/added-by.js.map +1 -0
- package/build-module/components/list/header.js +37 -0
- package/build-module/components/list/header.js.map +1 -0
- package/build-module/components/list/index.js +81 -0
- package/build-module/components/list/index.js.map +1 -0
- package/build-module/components/list/table.js +98 -0
- package/build-module/components/list/table.js.map +1 -0
- package/build-module/components/list/use-register-shortcuts.js +41 -0
- package/build-module/components/list/use-register-shortcuts.js.map +1 -0
- package/build-module/components/navigation-sidebar/index.js +26 -10
- package/build-module/components/navigation-sidebar/index.js.map +1 -1
- package/build-module/components/navigation-sidebar/navigation-panel/index.js +41 -44
- package/build-module/components/navigation-sidebar/navigation-panel/index.js.map +1 -1
- package/build-module/components/navigation-sidebar/navigation-toggle/index.js +6 -18
- package/build-module/components/navigation-sidebar/navigation-toggle/index.js.map +1 -1
- package/build-module/components/template-details/index.js +3 -2
- package/build-module/components/template-details/index.js.map +1 -1
- package/build-module/components/template-part-converter/convert-to-template-part.js +20 -84
- package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
- package/build-module/components/welcome-guide/editor.js +45 -0
- package/build-module/components/welcome-guide/editor.js.map +1 -0
- package/build-module/components/welcome-guide/image.js +19 -0
- package/build-module/components/welcome-guide/image.js.map +1 -0
- package/build-module/components/welcome-guide/index.js +35 -0
- package/build-module/components/welcome-guide/index.js.map +1 -0
- package/build-module/components/welcome-guide/styles.js +69 -0
- package/build-module/components/welcome-guide/styles.js.map +1 -0
- package/build-module/index.js +28 -3
- package/build-module/index.js.map +1 -1
- package/build-module/plugins/index.js +3 -2
- package/build-module/plugins/index.js.map +1 -1
- package/build-module/plugins/welcome-guide-menu-item.js +27 -0
- package/build-module/plugins/welcome-guide-menu-item.js.map +1 -0
- package/build-module/store/actions.js +51 -25
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +4 -1
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/selectors.js +21 -3
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/is-template-removable.js +14 -0
- package/build-module/utils/is-template-removable.js.map +1 -0
- package/build-style/style-rtl.css +468 -33
- package/build-style/style.css +468 -33
- package/package.json +10 -8
- package/src/components/add-new-template/index.js +30 -0
- package/src/components/add-new-template/new-template-part.js +81 -0
- package/src/components/add-new-template/new-template.js +136 -0
- package/src/components/add-new-template/style.scss +11 -0
- package/src/components/block-editor/index.js +2 -0
- package/src/components/create-template-part-modal/index.js +132 -0
- package/src/components/{template-part-converter → create-template-part-modal}/style.scss +9 -9
- package/src/components/editor/index.js +22 -15
- package/src/components/editor/style.scss +8 -0
- package/src/components/global-styles/color-palette-panel.js +64 -7
- package/src/components/global-styles/global-styles-provider.js +7 -36
- package/src/components/global-styles/gradients-palette-panel.js +79 -0
- package/src/components/global-styles/hooks.js +59 -27
- package/src/components/global-styles/palette.js +30 -10
- package/src/components/global-styles/screen-background-color.js +1 -0
- package/src/components/global-styles/screen-block-list.js +11 -1
- package/src/components/global-styles/screen-color-palette.js +30 -3
- package/src/components/global-styles/screen-link-color.js +1 -0
- package/src/components/global-styles/screen-text-color.js +1 -0
- package/src/components/global-styles/screen-typography-element.js +39 -0
- package/src/components/global-styles/screen-typography.js +84 -3
- package/src/components/global-styles/style.scss +33 -0
- package/src/components/global-styles/test/use-global-styles-output.js +3 -3
- package/src/components/global-styles/test/utils.js +1 -1
- package/src/components/global-styles/typography-panel.js +37 -7
- package/src/components/global-styles/ui.js +9 -0
- package/src/components/global-styles/use-global-styles-output.js +2 -2
- package/src/components/global-styles/utils.js +1 -1
- package/src/components/header/index.js +0 -6
- package/src/components/keyboard-shortcuts/index.js +32 -0
- package/src/components/list/actions/index.js +95 -0
- package/src/components/list/actions/rename-menu-item.js +134 -0
- package/src/components/list/added-by.js +179 -0
- package/src/components/list/header.js +34 -0
- package/src/components/list/index.js +96 -0
- package/src/components/list/style.scss +208 -0
- package/src/components/list/table.js +121 -0
- package/src/components/list/use-register-shortcuts.js +45 -0
- package/src/components/navigation-sidebar/index.js +24 -8
- package/src/components/navigation-sidebar/navigation-panel/index.js +57 -51
- package/src/components/navigation-sidebar/navigation-panel/style.scss +4 -2
- package/src/components/navigation-sidebar/navigation-toggle/index.js +24 -36
- package/src/components/navigation-sidebar/navigation-toggle/test/index.js +2 -0
- package/src/components/sidebar/style.scss +2 -1
- package/src/components/template-details/index.js +3 -2
- package/src/components/template-part-converter/convert-to-template-part.js +20 -140
- package/src/components/welcome-guide/editor.js +63 -0
- package/src/components/welcome-guide/image.js +11 -0
- package/src/components/welcome-guide/index.js +33 -0
- package/src/components/welcome-guide/style.scss +37 -0
- package/src/components/welcome-guide/styles.js +116 -0
- package/src/index.js +31 -3
- package/src/plugins/index.js +3 -1
- package/src/plugins/welcome-guide-menu-item.js +35 -0
- package/src/store/actions.js +85 -35
- package/src/store/defaults.js +4 -1
- package/src/store/selectors.js +22 -4
- package/src/store/test/actions.js +0 -30
- package/src/store/test/selectors.js +24 -0
- package/src/style.scss +9 -6
- package/src/utils/is-template-removable.js +13 -0
- package/build/components/header/navigation-link/index.js +0 -87
- package/build/components/header/navigation-link/index.js.map +0 -1
- package/build-module/components/header/navigation-link/index.js +0 -74
- package/build-module/components/header/navigation-link/index.js.map +0 -1
- package/src/components/header/navigation-link/index.js +0 -71
- package/src/components/header/navigation-link/style.scss +0 -69
|
@@ -2,9 +2,6 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import {
|
|
5
|
-
get,
|
|
6
|
-
cloneDeep,
|
|
7
|
-
set,
|
|
8
5
|
mergeWith,
|
|
9
6
|
pickBy,
|
|
10
7
|
isEmpty,
|
|
@@ -23,7 +20,6 @@ import { store as coreStore } from '@wordpress/core-data';
|
|
|
23
20
|
/**
|
|
24
21
|
* Internal dependencies
|
|
25
22
|
*/
|
|
26
|
-
import { PRESET_METADATA } from './utils';
|
|
27
23
|
import { GlobalStylesContext } from './context';
|
|
28
24
|
|
|
29
25
|
function mergeTreesCustomizer( _, srcValue ) {
|
|
@@ -39,29 +35,6 @@ function mergeBaseAndUserConfigs( base, user ) {
|
|
|
39
35
|
return mergeWith( {}, base, user, mergeTreesCustomizer );
|
|
40
36
|
}
|
|
41
37
|
|
|
42
|
-
function addUserOriginToSettings( settingsToAdd ) {
|
|
43
|
-
const newSettings = cloneDeep( settingsToAdd );
|
|
44
|
-
PRESET_METADATA.forEach( ( { path } ) => {
|
|
45
|
-
const presetData = get( newSettings, path );
|
|
46
|
-
if ( presetData ) {
|
|
47
|
-
set( newSettings, path, {
|
|
48
|
-
user: presetData,
|
|
49
|
-
} );
|
|
50
|
-
}
|
|
51
|
-
} );
|
|
52
|
-
return newSettings;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function removeUserOriginFromSettings( settingsToRemove ) {
|
|
56
|
-
const newSettings = cloneDeep( settingsToRemove );
|
|
57
|
-
PRESET_METADATA.forEach( ( { path } ) => {
|
|
58
|
-
const presetData = get( newSettings, path );
|
|
59
|
-
if ( presetData ) {
|
|
60
|
-
set( newSettings, path, ( presetData ?? {} ).user );
|
|
61
|
-
}
|
|
62
|
-
} );
|
|
63
|
-
return newSettings;
|
|
64
|
-
}
|
|
65
38
|
const cleanEmptyObject = ( object ) => {
|
|
66
39
|
if ( ! isObject( object ) || Array.isArray( object ) ) {
|
|
67
40
|
return object;
|
|
@@ -97,7 +70,7 @@ function useGlobalStylesUserConfig() {
|
|
|
97
70
|
|
|
98
71
|
const config = useMemo( () => {
|
|
99
72
|
return {
|
|
100
|
-
settings:
|
|
73
|
+
settings: settings ?? {},
|
|
101
74
|
styles: styles ?? {},
|
|
102
75
|
};
|
|
103
76
|
}, [ settings, styles ] );
|
|
@@ -111,15 +84,12 @@ function useGlobalStylesUserConfig() {
|
|
|
111
84
|
);
|
|
112
85
|
const currentConfig = {
|
|
113
86
|
styles: record?.styles ?? {},
|
|
114
|
-
settings:
|
|
87
|
+
settings: record?.settings ?? {},
|
|
115
88
|
};
|
|
116
89
|
const updatedConfig = callback( currentConfig );
|
|
117
90
|
editEntityRecord( 'root', 'globalStyles', globalStylesId, {
|
|
118
91
|
styles: cleanEmptyObject( updatedConfig.styles ) || {},
|
|
119
|
-
settings:
|
|
120
|
-
cleanEmptyObject(
|
|
121
|
-
removeUserOriginFromSettings( updatedConfig.settings )
|
|
122
|
-
) || {},
|
|
92
|
+
settings: cleanEmptyObject( updatedConfig.settings ) || {},
|
|
123
93
|
} );
|
|
124
94
|
},
|
|
125
95
|
[ globalStylesId ]
|
|
@@ -135,7 +105,7 @@ function useGlobalStylesBaseConfig() {
|
|
|
135
105
|
).__experimentalGetCurrentThemeBaseGlobalStyles();
|
|
136
106
|
}, [] );
|
|
137
107
|
|
|
138
|
-
return baseConfig;
|
|
108
|
+
return [ !! baseConfig, baseConfig ];
|
|
139
109
|
}
|
|
140
110
|
|
|
141
111
|
function useGlobalStylesContext() {
|
|
@@ -144,7 +114,7 @@ function useGlobalStylesContext() {
|
|
|
144
114
|
userConfig,
|
|
145
115
|
setUserConfig,
|
|
146
116
|
] = useGlobalStylesUserConfig();
|
|
147
|
-
const baseConfig = useGlobalStylesBaseConfig();
|
|
117
|
+
const [ isBaseConfigReady, baseConfig ] = useGlobalStylesBaseConfig();
|
|
148
118
|
const mergedConfig = useMemo( () => {
|
|
149
119
|
if ( ! baseConfig || ! userConfig ) {
|
|
150
120
|
return {};
|
|
@@ -153,7 +123,7 @@ function useGlobalStylesContext() {
|
|
|
153
123
|
}, [ userConfig, baseConfig ] );
|
|
154
124
|
const context = useMemo( () => {
|
|
155
125
|
return {
|
|
156
|
-
isReady: isUserConfigReady,
|
|
126
|
+
isReady: isUserConfigReady && isBaseConfigReady,
|
|
157
127
|
user: userConfig,
|
|
158
128
|
base: baseConfig,
|
|
159
129
|
merged: mergedConfig,
|
|
@@ -165,6 +135,7 @@ function useGlobalStylesContext() {
|
|
|
165
135
|
baseConfig,
|
|
166
136
|
setUserConfig,
|
|
167
137
|
isUserConfigReady,
|
|
138
|
+
isBaseConfigReady,
|
|
168
139
|
] );
|
|
169
140
|
|
|
170
141
|
return context;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
__experimentalVStack as VStack,
|
|
6
|
+
__experimentalPaletteEdit as PaletteEdit,
|
|
7
|
+
} from '@wordpress/components';
|
|
8
|
+
import { __ } from '@wordpress/i18n';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Internal dependencies
|
|
12
|
+
*/
|
|
13
|
+
import { useSetting } from './hooks';
|
|
14
|
+
|
|
15
|
+
export default function GradientPalettePanel( { name } ) {
|
|
16
|
+
const [ themeGradients, setThemeGradients ] = useSetting(
|
|
17
|
+
'color.gradients.theme',
|
|
18
|
+
name
|
|
19
|
+
);
|
|
20
|
+
const [ baseThemeGradients ] = useSetting(
|
|
21
|
+
'color.gradients.theme',
|
|
22
|
+
name,
|
|
23
|
+
'base'
|
|
24
|
+
);
|
|
25
|
+
const [ defaultGradients, setDefaultGradients ] = useSetting(
|
|
26
|
+
'color.gradients.default',
|
|
27
|
+
name
|
|
28
|
+
);
|
|
29
|
+
const [ baseDefaultGradients ] = useSetting(
|
|
30
|
+
'color.gradients.default',
|
|
31
|
+
name,
|
|
32
|
+
'base'
|
|
33
|
+
);
|
|
34
|
+
const [ customGradients, setCustomGradients ] = useSetting(
|
|
35
|
+
'color.gradients.custom',
|
|
36
|
+
name
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
const [ defaultPaletteEnabled ] = useSetting(
|
|
40
|
+
'color.defaultGradients',
|
|
41
|
+
name
|
|
42
|
+
);
|
|
43
|
+
return (
|
|
44
|
+
<VStack
|
|
45
|
+
className="edit-site-global-styles-gradient-palette-panel"
|
|
46
|
+
spacing={ 10 }
|
|
47
|
+
>
|
|
48
|
+
{ !! themeGradients && !! themeGradients.length && (
|
|
49
|
+
<PaletteEdit
|
|
50
|
+
canReset={ themeGradients !== baseThemeGradients }
|
|
51
|
+
canOnlyChangeValues
|
|
52
|
+
gradients={ themeGradients }
|
|
53
|
+
onChange={ setThemeGradients }
|
|
54
|
+
paletteLabel={ __( 'Theme' ) }
|
|
55
|
+
/>
|
|
56
|
+
) }
|
|
57
|
+
{ !! defaultGradients &&
|
|
58
|
+
!! defaultGradients.length &&
|
|
59
|
+
!! defaultPaletteEnabled && (
|
|
60
|
+
<PaletteEdit
|
|
61
|
+
canReset={ defaultGradients !== baseDefaultGradients }
|
|
62
|
+
canOnlyChangeValues
|
|
63
|
+
gradients={ defaultGradients }
|
|
64
|
+
onChange={ setDefaultGradients }
|
|
65
|
+
paletteLabel={ __( 'Default' ) }
|
|
66
|
+
/>
|
|
67
|
+
) }
|
|
68
|
+
<PaletteEdit
|
|
69
|
+
gradients={ customGradients }
|
|
70
|
+
onChange={ setCustomGradients }
|
|
71
|
+
paletteLabel={ __( 'Custom' ) }
|
|
72
|
+
emptyMessage={ __(
|
|
73
|
+
'Custom gradients are empty! Add some gradients to create your own palette.'
|
|
74
|
+
) }
|
|
75
|
+
slugPrefix="custom-"
|
|
76
|
+
/>
|
|
77
|
+
</VStack>
|
|
78
|
+
);
|
|
79
|
+
}
|
|
@@ -6,7 +6,7 @@ import { get, cloneDeep, set, isEqual, has } from 'lodash';
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
9
|
+
import { _x } from '@wordpress/i18n';
|
|
10
10
|
import { useContext, useCallback, useMemo } from '@wordpress/element';
|
|
11
11
|
import {
|
|
12
12
|
getBlockType,
|
|
@@ -49,7 +49,7 @@ export function useSetting( path, blockName, source = 'all' ) {
|
|
|
49
49
|
setUserConfig( ( currentConfig ) => {
|
|
50
50
|
const newUserConfig = cloneDeep( currentConfig );
|
|
51
51
|
const pathToSet = PATHS_WITH_MERGE[ path ]
|
|
52
|
-
? fullPath + '.
|
|
52
|
+
? fullPath + '.custom'
|
|
53
53
|
: fullPath;
|
|
54
54
|
set( newUserConfig, pathToSet, newValue );
|
|
55
55
|
|
|
@@ -65,7 +65,7 @@ export function useSetting( path, blockName, source = 'all' ) {
|
|
|
65
65
|
const getSettingValue = ( configToUse ) => {
|
|
66
66
|
const result = get( configToUse, currentPath );
|
|
67
67
|
if ( PATHS_WITH_MERGE[ path ] ) {
|
|
68
|
-
return result?.
|
|
68
|
+
return result?.custom ?? result?.theme ?? result?.default;
|
|
69
69
|
}
|
|
70
70
|
return result;
|
|
71
71
|
};
|
|
@@ -218,57 +218,89 @@ export function getSupportedGlobalStylesPanels( name ) {
|
|
|
218
218
|
}
|
|
219
219
|
|
|
220
220
|
export function useColorsPerOrigin( name ) {
|
|
221
|
-
const [
|
|
221
|
+
const [ customColors ] = useSetting( 'color.palette.custom', name );
|
|
222
222
|
const [ themeColors ] = useSetting( 'color.palette.theme', name );
|
|
223
|
-
const [
|
|
223
|
+
const [ defaultColors ] = useSetting( 'color.palette.default', name );
|
|
224
|
+
const [ shouldDisplayDefaultColors ] = useSetting( 'color.defaultPalette' );
|
|
225
|
+
|
|
224
226
|
return useMemo( () => {
|
|
225
227
|
const result = [];
|
|
226
|
-
if (
|
|
228
|
+
if ( themeColors && themeColors.length ) {
|
|
227
229
|
result.push( {
|
|
228
|
-
name:
|
|
229
|
-
|
|
230
|
+
name: _x(
|
|
231
|
+
'Theme',
|
|
232
|
+
'Indicates this palette comes from the theme.'
|
|
233
|
+
),
|
|
234
|
+
colors: themeColors,
|
|
230
235
|
} );
|
|
231
236
|
}
|
|
232
|
-
if (
|
|
237
|
+
if (
|
|
238
|
+
shouldDisplayDefaultColors &&
|
|
239
|
+
defaultColors &&
|
|
240
|
+
defaultColors.length
|
|
241
|
+
) {
|
|
233
242
|
result.push( {
|
|
234
|
-
name:
|
|
235
|
-
|
|
243
|
+
name: _x(
|
|
244
|
+
'Default',
|
|
245
|
+
'Indicates this palette comes from WordPress.'
|
|
246
|
+
),
|
|
247
|
+
colors: defaultColors,
|
|
236
248
|
} );
|
|
237
249
|
}
|
|
238
|
-
if (
|
|
250
|
+
if ( customColors && customColors.length ) {
|
|
239
251
|
result.push( {
|
|
240
|
-
name:
|
|
241
|
-
|
|
252
|
+
name: _x(
|
|
253
|
+
'Custom',
|
|
254
|
+
'Indicates this palette is created by the user.'
|
|
255
|
+
),
|
|
256
|
+
colors: customColors,
|
|
242
257
|
} );
|
|
243
258
|
}
|
|
244
259
|
return result;
|
|
245
|
-
}, [
|
|
260
|
+
}, [ customColors, themeColors, defaultColors ] );
|
|
246
261
|
}
|
|
247
262
|
|
|
248
263
|
export function useGradientsPerOrigin( name ) {
|
|
249
|
-
const [
|
|
264
|
+
const [ customGradients ] = useSetting( 'color.gradients.custom', name );
|
|
250
265
|
const [ themeGradients ] = useSetting( 'color.gradients.theme', name );
|
|
251
|
-
const [
|
|
266
|
+
const [ defaultGradients ] = useSetting( 'color.gradients.default', name );
|
|
267
|
+
const [ shouldDisplayDefaultGradients ] = useSetting(
|
|
268
|
+
'color.defaultGradients'
|
|
269
|
+
);
|
|
270
|
+
|
|
252
271
|
return useMemo( () => {
|
|
253
272
|
const result = [];
|
|
254
|
-
if (
|
|
273
|
+
if ( themeGradients && themeGradients.length ) {
|
|
255
274
|
result.push( {
|
|
256
|
-
name:
|
|
257
|
-
|
|
275
|
+
name: _x(
|
|
276
|
+
'Theme',
|
|
277
|
+
'Indicates this palette comes from the theme.'
|
|
278
|
+
),
|
|
279
|
+
gradients: themeGradients,
|
|
258
280
|
} );
|
|
259
281
|
}
|
|
260
|
-
if (
|
|
282
|
+
if (
|
|
283
|
+
shouldDisplayDefaultGradients &&
|
|
284
|
+
defaultGradients &&
|
|
285
|
+
defaultGradients.length
|
|
286
|
+
) {
|
|
261
287
|
result.push( {
|
|
262
|
-
name:
|
|
263
|
-
|
|
288
|
+
name: _x(
|
|
289
|
+
'Default',
|
|
290
|
+
'Indicates this palette comes from WordPress.'
|
|
291
|
+
),
|
|
292
|
+
gradients: defaultGradients,
|
|
264
293
|
} );
|
|
265
294
|
}
|
|
266
|
-
if (
|
|
295
|
+
if ( customGradients && customGradients.length ) {
|
|
267
296
|
result.push( {
|
|
268
|
-
name:
|
|
269
|
-
|
|
297
|
+
name: _x(
|
|
298
|
+
'Custom',
|
|
299
|
+
'Indicates this palette is created by the user.'
|
|
300
|
+
),
|
|
301
|
+
gradients: customGradients,
|
|
270
302
|
} );
|
|
271
303
|
}
|
|
272
304
|
return result;
|
|
273
|
-
}, [
|
|
305
|
+
}, [ customGradients, themeGradients, defaultGradients ] );
|
|
274
306
|
}
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
ColorIndicator,
|
|
12
12
|
} from '@wordpress/components';
|
|
13
13
|
import { __, _n, sprintf } from '@wordpress/i18n';
|
|
14
|
+
import { useMemo } from '@wordpress/element';
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* Internal dependencies
|
|
@@ -22,18 +23,43 @@ import { useSetting } from './hooks';
|
|
|
22
23
|
const EMPTY_COLORS = [];
|
|
23
24
|
|
|
24
25
|
function Palette( { name } ) {
|
|
25
|
-
const [
|
|
26
|
-
const
|
|
26
|
+
const [ customColors ] = useSetting( 'color.palette.custom' );
|
|
27
|
+
const [ themeColors ] = useSetting( 'color.palette.theme' );
|
|
28
|
+
const [ defaultColors ] = useSetting( 'color.palette.default' );
|
|
29
|
+
|
|
30
|
+
const [ defaultPaletteEnabled ] = useSetting(
|
|
31
|
+
'color.defaultPalette',
|
|
32
|
+
name
|
|
33
|
+
);
|
|
34
|
+
const colors = useMemo(
|
|
35
|
+
() => [
|
|
36
|
+
...( customColors || EMPTY_COLORS ),
|
|
37
|
+
...( themeColors || EMPTY_COLORS ),
|
|
38
|
+
...( defaultColors && defaultPaletteEnabled
|
|
39
|
+
? defaultColors
|
|
40
|
+
: EMPTY_COLORS ),
|
|
41
|
+
],
|
|
42
|
+
[ customColors, themeColors, defaultColors, defaultPaletteEnabled ]
|
|
43
|
+
);
|
|
44
|
+
|
|
27
45
|
const screenPath = ! name
|
|
28
46
|
? '/colors/palette'
|
|
29
47
|
: '/blocks/' + name + '/colors/palette';
|
|
48
|
+
const paletteButtonText =
|
|
49
|
+
colors.length > 0
|
|
50
|
+
? sprintf(
|
|
51
|
+
// Translators: %d: Number of palette colors.
|
|
52
|
+
_n( '%d color', '%d colors', colors.length ),
|
|
53
|
+
colors.length
|
|
54
|
+
)
|
|
55
|
+
: __( 'Add custom colors' );
|
|
30
56
|
|
|
31
57
|
return (
|
|
32
58
|
<VStack spacing={ 3 }>
|
|
33
59
|
<Subtitle>{ __( 'Palette' ) }</Subtitle>
|
|
34
60
|
<ItemGroup isBordered isSeparated>
|
|
35
61
|
<NavigationButton path={ screenPath }>
|
|
36
|
-
<HStack>
|
|
62
|
+
<HStack isReversed={ colors.length === 0 }>
|
|
37
63
|
<FlexBlock>
|
|
38
64
|
<ZStack isLayered={ false } offset={ -8 }>
|
|
39
65
|
{ colors.slice( 0, 5 ).map( ( { color } ) => (
|
|
@@ -44,13 +70,7 @@ function Palette( { name } ) {
|
|
|
44
70
|
) ) }
|
|
45
71
|
</ZStack>
|
|
46
72
|
</FlexBlock>
|
|
47
|
-
<FlexItem>
|
|
48
|
-
{ sprintf(
|
|
49
|
-
// Translators: %d: Number of palette colors.
|
|
50
|
-
_n( '%d color', '%d colors', colors.length ),
|
|
51
|
-
colors.length
|
|
52
|
-
) }
|
|
53
|
-
</FlexItem>
|
|
73
|
+
<FlexItem>{ paletteButtonText }</FlexItem>
|
|
54
74
|
</HStack>
|
|
55
75
|
</NavigationButton>
|
|
56
76
|
</ItemGroup>
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { getBlockTypes } from '@wordpress/blocks';
|
|
5
5
|
import { __ } from '@wordpress/i18n';
|
|
6
|
+
import {
|
|
7
|
+
FlexItem,
|
|
8
|
+
__experimentalHStack as HStack,
|
|
9
|
+
} from '@wordpress/components';
|
|
10
|
+
import { BlockIcon } from '@wordpress/block-editor';
|
|
6
11
|
|
|
7
12
|
/**
|
|
8
13
|
* Internal dependencies
|
|
@@ -29,7 +34,12 @@ function BlockMenuItem( { block } ) {
|
|
|
29
34
|
|
|
30
35
|
return (
|
|
31
36
|
<NavigationButton path={ '/blocks/' + block.name }>
|
|
32
|
-
|
|
37
|
+
<HStack justify="flex-start">
|
|
38
|
+
<FlexItem>
|
|
39
|
+
<BlockIcon icon={ block.icon } />
|
|
40
|
+
</FlexItem>
|
|
41
|
+
<FlexItem>{ block.title }</FlexItem>
|
|
42
|
+
</HStack>
|
|
33
43
|
</NavigationButton>
|
|
34
44
|
);
|
|
35
45
|
}
|
|
@@ -2,26 +2,53 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
|
+
import {
|
|
6
|
+
__experimentalToggleGroupControl as ToggleGroupControl,
|
|
7
|
+
__experimentalToggleGroupControlOption as ToggleGroupControlOption,
|
|
8
|
+
} from '@wordpress/components';
|
|
9
|
+
import { useState } from '@wordpress/element';
|
|
5
10
|
|
|
6
11
|
/**
|
|
7
12
|
* Internal dependencies
|
|
8
13
|
*/
|
|
9
14
|
import ColorPalettePanel from './color-palette-panel';
|
|
15
|
+
import GradientPalettePanel from './gradients-palette-panel';
|
|
10
16
|
import ScreenHeader from './header';
|
|
11
17
|
|
|
12
18
|
function ScreenColorPalette( { name } ) {
|
|
19
|
+
const [ currentTab, setCurrentTab ] = useState( 'solid' );
|
|
13
20
|
const parentMenu = name === undefined ? '' : '/blocks/' + name;
|
|
14
21
|
|
|
15
22
|
return (
|
|
16
23
|
<>
|
|
17
24
|
<ScreenHeader
|
|
18
25
|
back={ parentMenu + '/colors' }
|
|
19
|
-
title={ __( '
|
|
26
|
+
title={ __( 'Palette' ) }
|
|
20
27
|
description={ __(
|
|
21
|
-
'
|
|
28
|
+
'Palettes are used to provide default color options for blocks and various design tools. Here you can edit the colors with their labels.'
|
|
22
29
|
) }
|
|
23
30
|
/>
|
|
24
|
-
<
|
|
31
|
+
<ToggleGroupControl
|
|
32
|
+
className="edit-site-screen-color-palette-toggle"
|
|
33
|
+
value={ currentTab }
|
|
34
|
+
onChange={ setCurrentTab }
|
|
35
|
+
label={ __( 'Select palette type' ) }
|
|
36
|
+
hideLabelFromVision
|
|
37
|
+
isBlock
|
|
38
|
+
>
|
|
39
|
+
<ToggleGroupControlOption
|
|
40
|
+
value="solid"
|
|
41
|
+
label={ __( 'Solid' ) }
|
|
42
|
+
/>
|
|
43
|
+
<ToggleGroupControlOption
|
|
44
|
+
value="gradient"
|
|
45
|
+
label={ __( 'Gradient' ) }
|
|
46
|
+
/>
|
|
47
|
+
</ToggleGroupControl>
|
|
48
|
+
{ currentTab === 'solid' && <ColorPalettePanel name={ name } /> }
|
|
49
|
+
{ currentTab === 'gradient' && (
|
|
50
|
+
<GradientPalettePanel name={ name } />
|
|
51
|
+
) }
|
|
25
52
|
</>
|
|
26
53
|
);
|
|
27
54
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import TypographyPanel from './typography-panel';
|
|
10
|
+
import ScreenHeader from './header';
|
|
11
|
+
|
|
12
|
+
const elements = {
|
|
13
|
+
text: {
|
|
14
|
+
description: __( 'Manage the fonts used on the site.' ),
|
|
15
|
+
title: __( 'Text' ),
|
|
16
|
+
},
|
|
17
|
+
link: {
|
|
18
|
+
description: __( 'Manage the fonts and typography used on the links.' ),
|
|
19
|
+
title: __( 'Links' ),
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
function ScreenTypographyElement( { name, element } ) {
|
|
24
|
+
const parentMenu =
|
|
25
|
+
name === undefined ? '/typography' : '/blocks/' + name + '/typography';
|
|
26
|
+
|
|
27
|
+
return (
|
|
28
|
+
<>
|
|
29
|
+
<ScreenHeader
|
|
30
|
+
back={ parentMenu }
|
|
31
|
+
title={ elements[ element ].title }
|
|
32
|
+
description={ elements[ element ].description }
|
|
33
|
+
/>
|
|
34
|
+
<TypographyPanel name={ name } element={ element } />
|
|
35
|
+
</>
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export default ScreenTypographyElement;
|
|
@@ -2,12 +2,69 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
|
+
import {
|
|
6
|
+
__experimentalItemGroup as ItemGroup,
|
|
7
|
+
__experimentalVStack as VStack,
|
|
8
|
+
__experimentalHStack as HStack,
|
|
9
|
+
FlexItem,
|
|
10
|
+
} from '@wordpress/components';
|
|
5
11
|
|
|
6
12
|
/**
|
|
7
13
|
* Internal dependencies
|
|
8
14
|
*/
|
|
9
|
-
import TypographyPanel from './typography-panel';
|
|
10
15
|
import ScreenHeader from './header';
|
|
16
|
+
import NavigationButton from './navigation-button';
|
|
17
|
+
import { useStyle } from './hooks';
|
|
18
|
+
import Subtitle from './subtitle';
|
|
19
|
+
import TypographyPanel from './typography-panel';
|
|
20
|
+
|
|
21
|
+
function Item( { name, parentMenu, element, label } ) {
|
|
22
|
+
const hasSupport = ! name;
|
|
23
|
+
const prefix =
|
|
24
|
+
element === 'text' || ! element ? '' : `elements.${ element }.`;
|
|
25
|
+
const extraStyles =
|
|
26
|
+
element === 'link'
|
|
27
|
+
? {
|
|
28
|
+
textDecoration: 'underline',
|
|
29
|
+
}
|
|
30
|
+
: {};
|
|
31
|
+
const [ fontFamily ] = useStyle( prefix + 'typography.fontFamily', name );
|
|
32
|
+
const [ fontStyle ] = useStyle( prefix + 'typography.fontStyle', name );
|
|
33
|
+
const [ fontWeight ] = useStyle( prefix + 'typography.fontWeight', name );
|
|
34
|
+
const [ letterSpacing ] = useStyle(
|
|
35
|
+
prefix + 'typography.letterSpacing',
|
|
36
|
+
name
|
|
37
|
+
);
|
|
38
|
+
const [ backgroundColor ] = useStyle( prefix + 'color.background', name );
|
|
39
|
+
const [ gradientValue ] = useStyle( prefix + 'color.gradient', name );
|
|
40
|
+
const [ color ] = useStyle( prefix + 'color.text', name );
|
|
41
|
+
|
|
42
|
+
if ( ! hasSupport ) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<NavigationButton path={ parentMenu + '/typography/' + element }>
|
|
48
|
+
<HStack justify="flex-start">
|
|
49
|
+
<FlexItem
|
|
50
|
+
className="edit-site-global-styles-screen-typography__indicator"
|
|
51
|
+
style={ {
|
|
52
|
+
fontFamily: fontFamily ?? 'serif',
|
|
53
|
+
background: gradientValue ?? backgroundColor,
|
|
54
|
+
color,
|
|
55
|
+
fontStyle,
|
|
56
|
+
fontWeight,
|
|
57
|
+
letterSpacing,
|
|
58
|
+
...extraStyles,
|
|
59
|
+
} }
|
|
60
|
+
>
|
|
61
|
+
{ __( 'Aa' ) }
|
|
62
|
+
</FlexItem>
|
|
63
|
+
<FlexItem>{ label }</FlexItem>
|
|
64
|
+
</HStack>
|
|
65
|
+
</NavigationButton>
|
|
66
|
+
);
|
|
67
|
+
}
|
|
11
68
|
|
|
12
69
|
function ScreenTypography( { name } ) {
|
|
13
70
|
const parentMenu = name === undefined ? '' : '/blocks/' + name;
|
|
@@ -18,10 +75,34 @@ function ScreenTypography( { name } ) {
|
|
|
18
75
|
back={ parentMenu ? parentMenu : '/' }
|
|
19
76
|
title={ __( 'Typography' ) }
|
|
20
77
|
description={ __(
|
|
21
|
-
'Manage the
|
|
78
|
+
'Manage the typography settings for different elements.'
|
|
22
79
|
) }
|
|
23
80
|
/>
|
|
24
|
-
|
|
81
|
+
|
|
82
|
+
{ ! name && (
|
|
83
|
+
<div className="edit-site-global-styles-screen-typography">
|
|
84
|
+
<VStack spacing={ 3 }>
|
|
85
|
+
<Subtitle>{ __( 'Elements' ) }</Subtitle>
|
|
86
|
+
<ItemGroup isBordered isSeparated>
|
|
87
|
+
<Item
|
|
88
|
+
name={ name }
|
|
89
|
+
parentMenu={ parentMenu }
|
|
90
|
+
element="text"
|
|
91
|
+
label={ __( 'Text' ) }
|
|
92
|
+
/>
|
|
93
|
+
<Item
|
|
94
|
+
name={ name }
|
|
95
|
+
parentMenu={ parentMenu }
|
|
96
|
+
element="link"
|
|
97
|
+
label={ __( 'Links' ) }
|
|
98
|
+
/>
|
|
99
|
+
</ItemGroup>
|
|
100
|
+
</VStack>
|
|
101
|
+
</div>
|
|
102
|
+
) }
|
|
103
|
+
|
|
104
|
+
{ /* no typogrpahy elements support yet for blocks */ }
|
|
105
|
+
{ !! name && <TypographyPanel name={ name } element="text" /> }
|
|
25
106
|
</>
|
|
26
107
|
);
|
|
27
108
|
}
|