@wordpress/edit-site 4.9.0 → 4.12.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-generic-template-modal.js +84 -0
- package/build/components/add-new-template/add-custom-generic-template-modal.js.map +1 -0
- package/build/components/add-new-template/add-custom-template-modal.js +82 -61
- package/build/components/add-new-template/add-custom-template-modal.js.map +1 -1
- package/build/components/add-new-template/new-template.js +94 -81
- package/build/components/add-new-template/new-template.js.map +1 -1
- package/build/components/add-new-template/utils.js +574 -57
- package/build/components/add-new-template/utils.js.map +1 -1
- package/build/components/block-editor/index.js +1 -3
- package/build/components/block-editor/index.js.map +1 -1
- package/build/components/code-editor/index.js +17 -4
- package/build/components/code-editor/index.js.map +1 -1
- package/build/components/editor/index.js +16 -0
- package/build/components/editor/index.js.map +1 -1
- package/build/components/error-boundary/index.js +6 -0
- package/build/components/error-boundary/index.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +191 -21
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/global-styles-provider.js +4 -2
- package/build/components/global-styles/global-styles-provider.js.map +1 -1
- package/build/components/global-styles/hooks.js +11 -2
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/screen-color-palette.js +13 -17
- package/build/components/global-styles/screen-color-palette.js.map +1 -1
- package/build/components/global-styles/screen-colors.js +59 -7
- package/build/components/global-styles/screen-colors.js.map +1 -1
- package/build/components/global-styles/screen-heading-color.js +157 -0
- package/build/components/global-styles/screen-heading-color.js.map +1 -0
- package/build/components/global-styles/screen-link-color.js +48 -14
- package/build/components/global-styles/screen-link-color.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 +5 -0
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +73 -12
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +217 -0
- package/build/components/global-styles/typography-utils.js.map +1 -0
- package/build/components/global-styles/ui.js +11 -0
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +298 -61
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +49 -3
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/header/index.js +22 -10
- package/build/components/header/index.js.map +1 -1
- package/build/components/header/undo-redo/redo.js +2 -1
- package/build/components/header/undo-redo/redo.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/index.js +1 -3
- package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
- package/build/components/list/actions/index.js +1 -1
- package/build/components/list/actions/index.js.map +1 -1
- package/build/components/save-button/index.js +2 -3
- package/build/components/save-button/index.js.map +1 -1
- package/build/components/sidebar/navigation-menu-sidebar/navigation-menu.js +2 -2
- package/build/components/sidebar/navigation-menu-sidebar/navigation-menu.js.map +1 -1
- package/build/components/sidebar/template-card/template-actions.js +1 -1
- package/build/components/sidebar/template-card/template-actions.js.map +1 -1
- package/build/components/template-details/edit-template-title.js +11 -3
- package/build/components/template-details/edit-template-title.js.map +1 -1
- package/build/components/template-details/index.js +2 -21
- package/build/components/template-details/index.js.map +1 -1
- package/build/components/template-details/template-areas.js +1 -1
- package/build/components/template-details/template-areas.js.map +1 -1
- package/build/components/template-part-converter/convert-to-template-part.js +4 -1
- package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
- package/build/hooks/index.js +2 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/template-part-edit.js +86 -0
- package/build/hooks/template-part-edit.js.map +1 -0
- package/build/store/selectors.js +4 -1
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/add-new-template/add-custom-generic-template-modal.js +77 -0
- package/build-module/components/add-new-template/add-custom-generic-template-modal.js.map +1 -0
- package/build-module/components/add-new-template/add-custom-template-modal.js +82 -61
- package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -1
- package/build-module/components/add-new-template/new-template.js +96 -84
- package/build-module/components/add-new-template/new-template.js.map +1 -1
- package/build-module/components/add-new-template/utils.js +555 -50
- package/build-module/components/add-new-template/utils.js.map +1 -1
- package/build-module/components/block-editor/index.js +1 -2
- package/build-module/components/block-editor/index.js.map +1 -1
- package/build-module/components/code-editor/index.js +18 -5
- package/build-module/components/code-editor/index.js.map +1 -1
- package/build-module/components/editor/index.js +16 -0
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/error-boundary/index.js +5 -0
- package/build-module/components/error-boundary/index.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +191 -22
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/global-styles-provider.js +4 -2
- package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +11 -2
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/screen-color-palette.js +14 -19
- package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
- package/build-module/components/global-styles/screen-colors.js +59 -7
- package/build-module/components/global-styles/screen-colors.js.map +1 -1
- package/build-module/components/global-styles/screen-heading-color.js +143 -0
- package/build-module/components/global-styles/screen-heading-color.js.map +1 -0
- package/build-module/components/global-styles/screen-link-color.js +47 -14
- package/build-module/components/global-styles/screen-link-color.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 +5 -0
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +74 -13
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +204 -0
- package/build-module/components/global-styles/typography-utils.js.map +1 -0
- package/build-module/components/global-styles/ui.js +10 -0
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +294 -69
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +47 -4
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/header/index.js +25 -12
- package/build-module/components/header/index.js.map +1 -1
- package/build-module/components/header/undo-redo/redo.js +3 -2
- package/build-module/components/header/undo-redo/redo.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/index.js +1 -2
- package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
- package/build-module/components/list/actions/index.js +1 -1
- package/build-module/components/list/actions/index.js.map +1 -1
- package/build-module/components/save-button/index.js +3 -4
- package/build-module/components/save-button/index.js.map +1 -1
- package/build-module/components/sidebar/navigation-menu-sidebar/navigation-menu.js +3 -3
- package/build-module/components/sidebar/navigation-menu-sidebar/navigation-menu.js.map +1 -1
- package/build-module/components/sidebar/template-card/template-actions.js +1 -1
- package/build-module/components/sidebar/template-card/template-actions.js.map +1 -1
- package/build-module/components/template-details/edit-template-title.js +12 -3
- package/build-module/components/template-details/edit-template-title.js.map +1 -1
- package/build-module/components/template-details/index.js +3 -22
- package/build-module/components/template-details/index.js.map +1 -1
- package/build-module/components/template-details/template-areas.js +1 -1
- package/build-module/components/template-details/template-areas.js.map +1 -1
- package/build-module/components/template-part-converter/convert-to-template-part.js +3 -1
- package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
- package/build-module/hooks/index.js +1 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/template-part-edit.js +67 -0
- package/build-module/hooks/template-part-edit.js.map +1 -0
- package/build-module/store/selectors.js +5 -2
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +55 -48
- package/build-style/style.css +55 -48
- package/package.json +29 -29
- package/src/components/add-new-template/add-custom-generic-template-modal.js +97 -0
- package/src/components/add-new-template/add-custom-template-modal.js +93 -68
- package/src/components/add-new-template/new-template.js +126 -95
- package/src/components/add-new-template/style.scss +41 -8
- package/src/components/add-new-template/utils.js +622 -80
- package/src/components/block-editor/index.js +0 -2
- package/src/components/code-editor/index.js +15 -5
- package/src/components/editor/index.js +11 -0
- package/src/components/error-boundary/index.js +5 -0
- package/src/components/global-styles/dimensions-panel.js +214 -24
- package/src/components/global-styles/global-styles-provider.js +8 -9
- package/src/components/global-styles/hooks.js +18 -0
- package/src/components/global-styles/screen-color-palette.js +25 -27
- package/src/components/global-styles/screen-colors.js +55 -7
- package/src/components/global-styles/screen-heading-color.js +201 -0
- package/src/components/global-styles/screen-link-color.js +65 -23
- package/src/components/global-styles/screen-typography-element.js +4 -0
- package/src/components/global-styles/screen-typography.js +6 -0
- package/src/components/global-styles/style.scss +14 -11
- package/src/components/global-styles/test/typography-utils.js +130 -0
- package/src/components/global-styles/test/use-global-styles-output.js +296 -2
- package/src/components/global-styles/typography-panel.js +85 -16
- package/src/components/global-styles/typography-utils.js +228 -0
- package/src/components/global-styles/ui.js +13 -0
- package/src/components/global-styles/use-global-styles-output.js +387 -89
- package/src/components/global-styles/utils.js +43 -2
- package/src/components/header/index.js +37 -13
- package/src/components/header/style.scss +5 -3
- package/src/components/header/undo-redo/redo.js +6 -2
- package/src/components/keyboard-shortcut-help-modal/index.js +1 -2
- package/src/components/keyboard-shortcut-help-modal/style.scss +0 -5
- package/src/components/list/actions/index.js +3 -1
- package/src/components/list/style.scss +0 -8
- package/src/components/save-button/index.js +10 -13
- package/src/components/sidebar/navigation-menu-sidebar/navigation-menu.js +1 -5
- package/src/components/sidebar/style.scss +4 -0
- package/src/components/sidebar/template-card/template-actions.js +3 -1
- package/src/components/template-details/edit-template-title.js +10 -2
- package/src/components/template-details/index.js +7 -22
- package/src/components/template-details/template-areas.js +3 -1
- package/src/components/template-part-converter/convert-to-template-part.js +3 -1
- package/src/components/test/error-boundary.js +38 -0
- package/src/hooks/index.js +1 -0
- package/src/hooks/template-part-edit.js +82 -0
- package/src/store/selectors.js +11 -5
- package/src/style.scss +0 -1
- package/build/components/edit-template-part-menu-button/index.js +0 -90
- package/build/components/edit-template-part-menu-button/index.js.map +0 -1
- package/build-module/components/edit-template-part-menu-button/index.js +0 -72
- package/build-module/components/edit-template-part-menu-button/index.js.map +0 -1
- package/src/components/edit-template-part-menu-button/index.js +0 -82
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { sprintf, __ } from '@wordpress/i18n';
|
|
5
|
+
import {
|
|
6
|
+
__experimentalToggleGroupControl as ToggleGroupControl,
|
|
7
|
+
__experimentalToggleGroupControlOption as ToggleGroupControlOption,
|
|
8
|
+
} from '@wordpress/components';
|
|
9
|
+
import { __experimentalColorGradientControl as ColorGradientControl } from '@wordpress/block-editor';
|
|
10
|
+
import { useState } from '@wordpress/element';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Internal dependencies
|
|
14
|
+
*/
|
|
15
|
+
import ScreenHeader from './header';
|
|
16
|
+
import {
|
|
17
|
+
getSupportedGlobalStylesPanels,
|
|
18
|
+
useSetting,
|
|
19
|
+
useStyle,
|
|
20
|
+
useColorsPerOrigin,
|
|
21
|
+
useGradientsPerOrigin,
|
|
22
|
+
} from './hooks';
|
|
23
|
+
|
|
24
|
+
function ScreenHeadingColor( { name } ) {
|
|
25
|
+
const [ selectedLevel, setCurrentTab ] = useState( 'heading' );
|
|
26
|
+
|
|
27
|
+
const supports = getSupportedGlobalStylesPanels( name );
|
|
28
|
+
const [ solids ] = useSetting( 'color.palette', name );
|
|
29
|
+
const [ gradients ] = useSetting( 'color.gradients', name );
|
|
30
|
+
const [ areCustomSolidsEnabled ] = useSetting( 'color.custom', name );
|
|
31
|
+
const [ areCustomGradientsEnabled ] = useSetting(
|
|
32
|
+
'color.customGradient',
|
|
33
|
+
name
|
|
34
|
+
);
|
|
35
|
+
const [ isTextEnabled ] = useSetting( 'color.text', name );
|
|
36
|
+
const [ isBackgroundEnabled ] = useSetting( 'color.background', name );
|
|
37
|
+
|
|
38
|
+
const colorsPerOrigin = useColorsPerOrigin( name );
|
|
39
|
+
const gradientsPerOrigin = useGradientsPerOrigin( name );
|
|
40
|
+
|
|
41
|
+
const hasTextColor =
|
|
42
|
+
supports.includes( 'color' ) &&
|
|
43
|
+
isTextEnabled &&
|
|
44
|
+
( solids.length > 0 || areCustomSolidsEnabled );
|
|
45
|
+
|
|
46
|
+
const hasBackgroundColor =
|
|
47
|
+
supports.includes( 'backgroundColor' ) &&
|
|
48
|
+
isBackgroundEnabled &&
|
|
49
|
+
( solids.length > 0 || areCustomSolidsEnabled );
|
|
50
|
+
const hasGradientColor =
|
|
51
|
+
supports.includes( 'background' ) &&
|
|
52
|
+
( gradients.length > 0 || areCustomGradientsEnabled );
|
|
53
|
+
|
|
54
|
+
const [ color, setColor ] = useStyle(
|
|
55
|
+
'elements.' + selectedLevel + '.color.text',
|
|
56
|
+
name
|
|
57
|
+
);
|
|
58
|
+
const [ userColor ] = useStyle(
|
|
59
|
+
'elements.' + selectedLevel + '.color.text',
|
|
60
|
+
name,
|
|
61
|
+
'user'
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
const [ backgroundColor, setBackgroundColor ] = useStyle(
|
|
65
|
+
'elements.' + selectedLevel + '.color.background',
|
|
66
|
+
name
|
|
67
|
+
);
|
|
68
|
+
const [ userBackgroundColor ] = useStyle(
|
|
69
|
+
'elements.' + selectedLevel + '.color.background',
|
|
70
|
+
name,
|
|
71
|
+
'user'
|
|
72
|
+
);
|
|
73
|
+
const [ gradient, setGradient ] = useStyle(
|
|
74
|
+
'elements.' + selectedLevel + '.color.gradient',
|
|
75
|
+
name
|
|
76
|
+
);
|
|
77
|
+
const [ userGradient ] = useStyle(
|
|
78
|
+
'elements.' + selectedLevel + '.color.gradient',
|
|
79
|
+
name,
|
|
80
|
+
'user'
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
if ( ! hasTextColor && ! hasBackgroundColor && ! hasGradientColor ) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
let backgroundSettings = {};
|
|
88
|
+
if ( hasBackgroundColor ) {
|
|
89
|
+
backgroundSettings = {
|
|
90
|
+
colorValue: backgroundColor,
|
|
91
|
+
onColorChange: setBackgroundColor,
|
|
92
|
+
};
|
|
93
|
+
if ( backgroundColor ) {
|
|
94
|
+
backgroundSettings.clearable =
|
|
95
|
+
backgroundColor === userBackgroundColor;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
let gradientSettings = {};
|
|
100
|
+
if ( hasGradientColor ) {
|
|
101
|
+
gradientSettings = {
|
|
102
|
+
gradientValue: gradient,
|
|
103
|
+
onGradientChange: setGradient,
|
|
104
|
+
};
|
|
105
|
+
if ( gradient ) {
|
|
106
|
+
gradientSettings.clearable = gradient === userGradient;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
const controlProps = {
|
|
111
|
+
...backgroundSettings,
|
|
112
|
+
...gradientSettings,
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
return (
|
|
116
|
+
<>
|
|
117
|
+
<ScreenHeader
|
|
118
|
+
title={ __( 'Headings' ) }
|
|
119
|
+
description={ __(
|
|
120
|
+
'Set the default color used for headings across the site.'
|
|
121
|
+
) }
|
|
122
|
+
/>
|
|
123
|
+
<div className="edit-site-global-styles-screen-heading-color">
|
|
124
|
+
<h4>{ __( 'Select heading level' ) }</h4>
|
|
125
|
+
|
|
126
|
+
<ToggleGroupControl
|
|
127
|
+
label={ __( 'Select heading level' ) }
|
|
128
|
+
hideLabelFromVision={ true }
|
|
129
|
+
value={ selectedLevel }
|
|
130
|
+
onChange={ setCurrentTab }
|
|
131
|
+
isBlock
|
|
132
|
+
>
|
|
133
|
+
<ToggleGroupControlOption
|
|
134
|
+
value="heading"
|
|
135
|
+
/* translators: 'All' refers to selecting all heading levels
|
|
136
|
+
and applying the same style to h1-h6. */
|
|
137
|
+
label={ __( 'All' ) }
|
|
138
|
+
/>
|
|
139
|
+
<ToggleGroupControlOption value="h1" label={ __( 'H1' ) } />
|
|
140
|
+
<ToggleGroupControlOption value="h2" label={ __( 'H2' ) } />
|
|
141
|
+
<ToggleGroupControlOption value="h3" label={ __( 'H3' ) } />
|
|
142
|
+
<ToggleGroupControlOption value="h4" label={ __( 'H4' ) } />
|
|
143
|
+
<ToggleGroupControlOption value="h5" label={ __( 'H5' ) } />
|
|
144
|
+
<ToggleGroupControlOption value="h6" label={ __( 'H6' ) } />
|
|
145
|
+
</ToggleGroupControl>
|
|
146
|
+
</div>
|
|
147
|
+
{ hasTextColor && (
|
|
148
|
+
<div className="edit-site-global-styles-screen-heading-color">
|
|
149
|
+
<h4>
|
|
150
|
+
{ selectedLevel === 'heading'
|
|
151
|
+
? __( 'Text color for all heading levels' )
|
|
152
|
+
: sprintf(
|
|
153
|
+
/* translators: %s: heading level (h1-h6) */
|
|
154
|
+
__( 'Text color for %s' ),
|
|
155
|
+
selectedLevel.toUpperCase()
|
|
156
|
+
) }
|
|
157
|
+
</h4>
|
|
158
|
+
<ColorGradientControl
|
|
159
|
+
className="edit-site-screen-heading-text-color__control"
|
|
160
|
+
colors={ colorsPerOrigin }
|
|
161
|
+
disableCustomColors={ ! areCustomSolidsEnabled }
|
|
162
|
+
__experimentalHasMultipleOrigins
|
|
163
|
+
showTitle={ false }
|
|
164
|
+
enableAlpha
|
|
165
|
+
__experimentalIsRenderedInSidebar
|
|
166
|
+
colorValue={ color }
|
|
167
|
+
onColorChange={ setColor }
|
|
168
|
+
clearable={ color === userColor }
|
|
169
|
+
/>
|
|
170
|
+
</div>
|
|
171
|
+
) }
|
|
172
|
+
{ hasBackgroundColor && (
|
|
173
|
+
<div className="edit-site-global-styles-screen-heading-color">
|
|
174
|
+
<h4>
|
|
175
|
+
{ selectedLevel === 'heading'
|
|
176
|
+
? __( 'Background color for all heading levels' )
|
|
177
|
+
: sprintf(
|
|
178
|
+
/* translators: %s: heading level (h1-h6) */
|
|
179
|
+
__( 'Background color for %s' ),
|
|
180
|
+
selectedLevel.toUpperCase()
|
|
181
|
+
) }
|
|
182
|
+
</h4>
|
|
183
|
+
<ColorGradientControl
|
|
184
|
+
className="edit-site-screen-heading-background-color__control"
|
|
185
|
+
colors={ colorsPerOrigin }
|
|
186
|
+
gradients={ gradientsPerOrigin }
|
|
187
|
+
disableCustomColors={ ! areCustomSolidsEnabled }
|
|
188
|
+
disableCustomGradients={ ! areCustomGradientsEnabled }
|
|
189
|
+
__experimentalHasMultipleOrigins
|
|
190
|
+
showTitle={ false }
|
|
191
|
+
enableAlpha
|
|
192
|
+
__experimentalIsRenderedInSidebar
|
|
193
|
+
{ ...controlProps }
|
|
194
|
+
/>
|
|
195
|
+
</div>
|
|
196
|
+
) }
|
|
197
|
+
</>
|
|
198
|
+
);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export default ScreenHeadingColor;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
5
|
import { __experimentalColorGradientControl as ColorGradientControl } from '@wordpress/block-editor';
|
|
6
|
-
|
|
6
|
+
import { TabPanel } from '@wordpress/components';
|
|
7
7
|
/**
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
@@ -29,40 +29,82 @@ function ScreenLinkColor( { name } ) {
|
|
|
29
29
|
isLinkEnabled &&
|
|
30
30
|
( solids.length > 0 || areCustomSolidsEnabled );
|
|
31
31
|
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
32
|
+
const pseudoStates = {
|
|
33
|
+
default: {
|
|
34
|
+
label: __( 'Default' ),
|
|
35
|
+
value: useStyle( 'elements.link.color.text', name )[ 0 ],
|
|
36
|
+
handler: useStyle( 'elements.link.color.text', name )[ 1 ],
|
|
37
|
+
userValue: useStyle(
|
|
38
|
+
'elements.link.color.text',
|
|
39
|
+
name,
|
|
40
|
+
'user'
|
|
41
|
+
)[ 0 ],
|
|
42
|
+
},
|
|
43
|
+
hover: {
|
|
44
|
+
label: __( 'Hover' ),
|
|
45
|
+
value: useStyle( 'elements.link.:hover.color.text', name )[ 0 ],
|
|
46
|
+
handler: useStyle( 'elements.link.:hover.color.text', name )[ 1 ],
|
|
47
|
+
userValue: useStyle(
|
|
48
|
+
'elements.link.:hover.color.text',
|
|
49
|
+
name,
|
|
50
|
+
'user'
|
|
51
|
+
)[ 0 ],
|
|
52
|
+
},
|
|
53
|
+
};
|
|
41
54
|
|
|
42
55
|
if ( ! hasLinkColor ) {
|
|
43
56
|
return null;
|
|
44
57
|
}
|
|
45
58
|
|
|
59
|
+
const tabs = Object.entries( pseudoStates ).map(
|
|
60
|
+
( [ selector, config ] ) => {
|
|
61
|
+
return {
|
|
62
|
+
name: selector,
|
|
63
|
+
title: config.label,
|
|
64
|
+
className: `color-text-${ selector }`,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
|
|
46
69
|
return (
|
|
47
70
|
<>
|
|
48
71
|
<ScreenHeader
|
|
49
72
|
title={ __( 'Links' ) }
|
|
50
73
|
description={ __(
|
|
51
|
-
'Set the
|
|
74
|
+
'Set the colors used for links across the site.'
|
|
52
75
|
) }
|
|
53
76
|
/>
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
77
|
+
|
|
78
|
+
<TabPanel tabs={ tabs }>
|
|
79
|
+
{ ( tab ) => {
|
|
80
|
+
const pseudoSelectorConfig =
|
|
81
|
+
pseudoStates[ tab.name ] ?? null;
|
|
82
|
+
|
|
83
|
+
if ( ! pseudoSelectorConfig ) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return (
|
|
88
|
+
<>
|
|
89
|
+
<ColorGradientControl
|
|
90
|
+
className="edit-site-screen-link-color__control"
|
|
91
|
+
colors={ colorsPerOrigin }
|
|
92
|
+
disableCustomColors={ ! areCustomSolidsEnabled }
|
|
93
|
+
__experimentalHasMultipleOrigins
|
|
94
|
+
showTitle={ false }
|
|
95
|
+
enableAlpha
|
|
96
|
+
__experimentalIsRenderedInSidebar
|
|
97
|
+
colorValue={ pseudoSelectorConfig.value }
|
|
98
|
+
onColorChange={ pseudoSelectorConfig.handler }
|
|
99
|
+
clearable={
|
|
100
|
+
pseudoSelectorConfig.value ===
|
|
101
|
+
pseudoSelectorConfig.userValue
|
|
102
|
+
}
|
|
103
|
+
/>
|
|
104
|
+
</>
|
|
105
|
+
);
|
|
106
|
+
} }
|
|
107
|
+
</TabPanel>
|
|
66
108
|
</>
|
|
67
109
|
);
|
|
68
110
|
}
|
|
@@ -18,6 +18,10 @@ const elements = {
|
|
|
18
18
|
description: __( 'Manage the fonts and typography used on the links.' ),
|
|
19
19
|
title: __( 'Links' ),
|
|
20
20
|
},
|
|
21
|
+
heading: {
|
|
22
|
+
description: __( 'Manage the fonts and typography used on headings.' ),
|
|
23
|
+
title: __( 'Headings' ),
|
|
24
|
+
},
|
|
21
25
|
button: {
|
|
22
26
|
description: __( 'Manage the fonts and typography used on buttons.' ),
|
|
23
27
|
title: __( 'Buttons' ),
|
|
@@ -104,6 +104,12 @@ function ScreenTypography( { name } ) {
|
|
|
104
104
|
element="link"
|
|
105
105
|
label={ __( 'Links' ) }
|
|
106
106
|
/>
|
|
107
|
+
<Item
|
|
108
|
+
name={ name }
|
|
109
|
+
parentMenu={ parentMenu }
|
|
110
|
+
element="heading"
|
|
111
|
+
label={ __( 'Headings' ) }
|
|
112
|
+
/>
|
|
107
113
|
<Item
|
|
108
114
|
name={ name }
|
|
109
115
|
parentMenu={ parentMenu }
|
|
@@ -21,6 +21,11 @@
|
|
|
21
21
|
border-radius: $radius-block-ui;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
.edit-site-typography-panel__half-width-control {
|
|
25
|
+
width: calc((100% - #{$grid-unit-30}) / 2);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.edit-site-global-styles-screen-heading-color,
|
|
24
29
|
.edit-site-global-styles-screen-typography {
|
|
25
30
|
margin: $grid-unit-20;
|
|
26
31
|
}
|
|
@@ -41,6 +46,7 @@
|
|
|
41
46
|
.component-color-indicator {
|
|
42
47
|
// Show a diagonal line (crossed out) for empty swatches.
|
|
43
48
|
background: linear-gradient(-45deg, transparent 48%, $gray-300 48%, $gray-300 52%, transparent 52%);
|
|
49
|
+
flex-shrink: 0;
|
|
44
50
|
}
|
|
45
51
|
}
|
|
46
52
|
|
|
@@ -66,19 +72,9 @@
|
|
|
66
72
|
margin: 0;
|
|
67
73
|
}
|
|
68
74
|
|
|
69
|
-
.edit-site-screen-color-palette-toggle.edit-site-screen-color-palette-toggle {
|
|
70
|
-
margin-right: $grid-unit-20;
|
|
71
|
-
margin-left: $grid-unit-20;
|
|
72
|
-
width: unset;
|
|
73
|
-
.components-toggle-group-control {
|
|
74
|
-
min-height: $grid-unit-40;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
75
|
.edit-site-screen-text-color__control,
|
|
79
76
|
.edit-site-screen-link-color__control,
|
|
80
|
-
.edit-site-screen-button-color__control
|
|
81
|
-
.edit-site-screen-background-color__control {
|
|
77
|
+
.edit-site-screen-button-color__control {
|
|
82
78
|
padding: $grid-unit-20;
|
|
83
79
|
}
|
|
84
80
|
|
|
@@ -111,4 +107,11 @@
|
|
|
111
107
|
.edit-site-global-styles__color-indicator-wrapper {
|
|
112
108
|
// Match the height of the rest of the icons (24px).
|
|
113
109
|
height: $grid-unit * 3;
|
|
110
|
+
flex-shrink: 0;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.edit-site-global-styles__color-label {
|
|
114
|
+
white-space: nowrap;
|
|
115
|
+
overflow: hidden;
|
|
116
|
+
text-overflow: ellipsis;
|
|
114
117
|
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { getTypographyFontSizeValue } from '../typography-utils';
|
|
5
|
+
|
|
6
|
+
describe( 'typography utils', () => {
|
|
7
|
+
describe( 'getTypographyFontSizeValue', () => {
|
|
8
|
+
it( 'should return the expected values', () => {
|
|
9
|
+
[
|
|
10
|
+
// Default return non-fluid value.
|
|
11
|
+
{
|
|
12
|
+
preset: {
|
|
13
|
+
size: '28px',
|
|
14
|
+
},
|
|
15
|
+
typographySettings: undefined,
|
|
16
|
+
expected: '28px',
|
|
17
|
+
},
|
|
18
|
+
// Should return non-fluid value when fluid is `false`.
|
|
19
|
+
{
|
|
20
|
+
preset: {
|
|
21
|
+
size: '28px',
|
|
22
|
+
fluid: false,
|
|
23
|
+
},
|
|
24
|
+
typographySettings: {
|
|
25
|
+
fluid: true,
|
|
26
|
+
},
|
|
27
|
+
expected: '28px',
|
|
28
|
+
},
|
|
29
|
+
// Should return fluid value.
|
|
30
|
+
{
|
|
31
|
+
preset: {
|
|
32
|
+
size: '1.75rem',
|
|
33
|
+
},
|
|
34
|
+
typographySettings: {
|
|
35
|
+
fluid: true,
|
|
36
|
+
},
|
|
37
|
+
expected:
|
|
38
|
+
'clamp(1.3125rem, 1.3125rem + ((1vw - 0.48rem) * 2.524), 2.625rem)',
|
|
39
|
+
},
|
|
40
|
+
// Should return default fluid values with empty fluid array.
|
|
41
|
+
{
|
|
42
|
+
preset: {
|
|
43
|
+
size: '28px',
|
|
44
|
+
fluid: [],
|
|
45
|
+
},
|
|
46
|
+
typographySettings: {
|
|
47
|
+
fluid: true,
|
|
48
|
+
},
|
|
49
|
+
expected:
|
|
50
|
+
'clamp(21px, 1.3125rem + ((1vw - 7.68px) * 2.524), 42px)',
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
// Should return default fluid values with null values.
|
|
54
|
+
{
|
|
55
|
+
preset: {
|
|
56
|
+
size: '28px',
|
|
57
|
+
fluid: null,
|
|
58
|
+
},
|
|
59
|
+
typographySettings: {
|
|
60
|
+
fluid: true,
|
|
61
|
+
},
|
|
62
|
+
expected:
|
|
63
|
+
'clamp(21px, 1.3125rem + ((1vw - 7.68px) * 2.524), 42px)',
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
// Should return size with invalid fluid units.
|
|
67
|
+
{
|
|
68
|
+
preset: {
|
|
69
|
+
size: '10em',
|
|
70
|
+
fluid: {
|
|
71
|
+
min: '20vw',
|
|
72
|
+
max: '50%',
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
typographySettings: {
|
|
76
|
+
fluid: true,
|
|
77
|
+
},
|
|
78
|
+
expected: '10em',
|
|
79
|
+
},
|
|
80
|
+
// Should return fluid clamp value.
|
|
81
|
+
{
|
|
82
|
+
preset: {
|
|
83
|
+
size: '28px',
|
|
84
|
+
fluid: {
|
|
85
|
+
min: '20px',
|
|
86
|
+
max: '50rem',
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
typographySettings: {
|
|
90
|
+
fluid: true,
|
|
91
|
+
},
|
|
92
|
+
expected:
|
|
93
|
+
'clamp(20px, 1.25rem + ((1vw - 7.68px) * 93.75), 50rem)',
|
|
94
|
+
},
|
|
95
|
+
// Should return clamp value with default fluid max value.
|
|
96
|
+
{
|
|
97
|
+
preset: {
|
|
98
|
+
size: '28px',
|
|
99
|
+
fluid: {
|
|
100
|
+
min: '2.6rem',
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
typographySettings: {
|
|
104
|
+
fluid: true,
|
|
105
|
+
},
|
|
106
|
+
expected:
|
|
107
|
+
'clamp(2.6rem, 2.6rem + ((1vw - 0.48rem) * 0.048), 42px)',
|
|
108
|
+
},
|
|
109
|
+
// Should return clamp value with default fluid min value.
|
|
110
|
+
{
|
|
111
|
+
preset: {
|
|
112
|
+
size: '28px',
|
|
113
|
+
fluid: {
|
|
114
|
+
max: '80px',
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
typographySettings: {
|
|
118
|
+
fluid: true,
|
|
119
|
+
},
|
|
120
|
+
expected:
|
|
121
|
+
'clamp(21px, 1.3125rem + ((1vw - 7.68px) * 7.091), 80px)',
|
|
122
|
+
},
|
|
123
|
+
].forEach( ( { preset, typographySettings, expected } ) => {
|
|
124
|
+
expect(
|
|
125
|
+
getTypographyFontSizeValue( preset, typographySettings )
|
|
126
|
+
).toBe( expected );
|
|
127
|
+
} );
|
|
128
|
+
} );
|
|
129
|
+
} );
|
|
130
|
+
} );
|