@wordpress/block-library 7.4.0 → 7.5.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 +2 -0
- package/build/audio/edit.js +3 -15
- package/build/audio/edit.js.map +1 -1
- package/build/button/edit.native.js +7 -3
- package/build/button/edit.native.js.map +1 -1
- package/build/comment-template/edit.js +1 -3
- package/build/comment-template/edit.js.map +1 -1
- package/build/{comments-query-loop → comments}/edit/comments-inspector-controls.js +0 -0
- package/{build-module/comments-query-loop → build/comments}/edit/comments-inspector-controls.js.map +1 -1
- package/build/{comments-query-loop → comments}/edit.js +3 -3
- package/build/comments/edit.js.map +1 -0
- package/build/{comments-query-loop → comments}/index.js +1 -1
- package/build/comments/index.js.map +1 -0
- package/build/{comments-query-loop → comments}/save.js +2 -2
- package/build/comments/save.js.map +1 -0
- package/build/comments-title/edit.js +7 -5
- package/build/comments-title/edit.js.map +1 -1
- package/build/cover/edit.js +4 -71
- package/build/cover/edit.js.map +1 -1
- package/build/cover/edit.native.js +36 -15
- package/build/cover/edit.native.js.map +1 -1
- package/build/cover/transforms.js +77 -6
- package/build/cover/transforms.js.map +1 -1
- package/build/cover/use-cover-is-dark.js +81 -0
- package/build/cover/use-cover-is-dark.js.map +1 -0
- package/build/cover/use-cover-is-dark.native.js +60 -0
- package/build/cover/use-cover-is-dark.native.js.map +1 -0
- package/build/group/index.js +1 -0
- package/build/group/index.js.map +1 -1
- package/build/heading/transforms.js +8 -4
- package/build/heading/transforms.js.map +1 -1
- package/build/index.js +4 -6
- package/build/index.js.map +1 -1
- package/build/latest-posts/edit.native.js +49 -0
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/navigation/edit/index.js +5 -28
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +5 -7
- package/build/navigation/edit/inner-blocks.js.map +1 -1
- package/build/navigation/index.js +0 -1
- package/build/navigation/index.js.map +1 -1
- package/build/navigation/view-modal.js +25 -0
- package/build/navigation/view-modal.js.map +1 -1
- package/build/navigation-link/edit.js +29 -30
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-submenu/edit.js +14 -14
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/paragraph/edit.js +10 -0
- package/build/paragraph/edit.js.map +1 -1
- package/build/paragraph/use-enter.js +94 -0
- package/build/paragraph/use-enter.js.map +1 -0
- package/build/post-comment/index.js +1 -1
- package/build/post-comments/edit.js +120 -35
- package/build/post-comments/edit.js.map +1 -1
- package/build/post-comments/index.js +3 -2
- package/build/post-comments/index.js.map +1 -1
- package/build/post-comments-form/edit.js +38 -4
- package/build/post-comments-form/edit.js.map +1 -1
- package/build/post-comments-form/form.js +48 -0
- package/build/post-comments-form/form.js.map +1 -0
- package/build/post-comments-form/index.js +1 -0
- package/build/post-comments-form/index.js.map +1 -1
- package/build/post-content/edit.js +1 -1
- package/build/post-content/edit.js.map +1 -1
- package/build/post-excerpt/edit.js +1 -1
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-terms/edit.js +25 -3
- package/build/post-terms/edit.js.map +1 -1
- package/build/post-terms/index.js +8 -0
- package/build/post-terms/index.js.map +1 -1
- package/build/query-no-results/edit.js +1 -1
- package/build/query-no-results/edit.js.map +1 -1
- package/build/quote/index.js +1 -0
- package/build/quote/index.js.map +1 -1
- package/build/separator/index.js +3 -0
- package/build/separator/index.js.map +1 -1
- package/build/video/edit.js +3 -7
- package/build/video/edit.js.map +1 -1
- package/build-module/audio/edit.js +3 -15
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/button/edit.native.js +7 -3
- package/build-module/button/edit.native.js.map +1 -1
- package/build-module/comment-template/edit.js +1 -3
- package/build-module/comment-template/edit.js.map +1 -1
- package/build-module/{comments-query-loop → comments}/edit/comments-inspector-controls.js +0 -0
- package/build-module/comments/edit/comments-inspector-controls.js.map +1 -0
- package/build-module/{comments-query-loop → comments}/edit.js +2 -2
- package/build-module/comments/edit.js.map +1 -0
- package/build-module/{comments-query-loop → comments}/index.js +1 -1
- package/build-module/comments/index.js.map +1 -0
- package/build-module/{comments-query-loop → comments}/save.js +1 -1
- package/build-module/comments/save.js.map +1 -0
- package/build-module/comments-title/edit.js +7 -5
- package/build-module/comments-title/edit.js.map +1 -1
- package/build-module/cover/edit.js +4 -71
- package/build-module/cover/edit.js.map +1 -1
- package/build-module/cover/edit.native.js +35 -16
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/cover/transforms.js +74 -6
- package/build-module/cover/transforms.js.map +1 -1
- package/build-module/cover/use-cover-is-dark.js +70 -0
- package/build-module/cover/use-cover-is-dark.js.map +1 -0
- package/build-module/cover/use-cover-is-dark.native.js +51 -0
- package/build-module/cover/use-cover-is-dark.native.js.map +1 -0
- package/build-module/group/index.js +1 -0
- package/build-module/group/index.js.map +1 -1
- package/build-module/heading/transforms.js +8 -4
- package/build-module/heading/transforms.js.map +1 -1
- package/build-module/index.js +3 -4
- package/build-module/index.js.map +1 -1
- package/build-module/latest-posts/edit.native.js +51 -2
- package/build-module/latest-posts/edit.native.js.map +1 -1
- package/build-module/navigation/edit/index.js +6 -28
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +5 -7
- package/build-module/navigation/edit/inner-blocks.js.map +1 -1
- package/build-module/navigation/index.js +0 -1
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation/view-modal.js +24 -0
- package/build-module/navigation/view-modal.js.map +1 -1
- package/build-module/navigation-link/edit.js +29 -30
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +14 -14
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/paragraph/edit.js +9 -0
- package/build-module/paragraph/edit.js.map +1 -1
- package/build-module/paragraph/use-enter.js +81 -0
- package/build-module/paragraph/use-enter.js.map +1 -0
- package/build-module/post-comment/index.js +1 -1
- package/build-module/post-comments/edit.js +120 -37
- package/build-module/post-comments/edit.js.map +1 -1
- package/build-module/post-comments/index.js +3 -2
- package/build-module/post-comments/index.js.map +1 -1
- package/build-module/post-comments-form/edit.js +38 -6
- package/build-module/post-comments-form/edit.js.map +1 -1
- package/build-module/post-comments-form/form.js +39 -0
- package/build-module/post-comments-form/form.js.map +1 -0
- package/build-module/post-comments-form/index.js +1 -0
- package/build-module/post-comments-form/index.js.map +1 -1
- package/build-module/post-content/edit.js +1 -1
- package/build-module/post-content/edit.js.map +1 -1
- package/build-module/post-excerpt/edit.js +1 -1
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-terms/edit.js +26 -4
- package/build-module/post-terms/edit.js.map +1 -1
- package/build-module/post-terms/index.js +8 -0
- package/build-module/post-terms/index.js.map +1 -1
- package/build-module/query-no-results/edit.js +1 -1
- package/build-module/query-no-results/edit.js.map +1 -1
- package/build-module/quote/index.js +1 -0
- package/build-module/quote/index.js.map +1 -1
- package/build-module/separator/index.js +3 -0
- package/build-module/separator/index.js.map +1 -1
- package/build-module/video/edit.js +3 -7
- package/build-module/video/edit.js.map +1 -1
- package/build-style/comment-content/style-rtl.css +81 -0
- package/build-style/comment-content/style.css +81 -0
- package/build-style/{comments-query-loop → comments}/editor-rtl.css +0 -0
- package/build-style/{comments-query-loop → comments}/editor.css +0 -0
- package/build-style/cover/style-rtl.css +1 -5
- package/build-style/cover/style.css +1 -5
- package/build-style/editor-rtl.css +12 -4
- package/build-style/editor.css +12 -4
- package/build-style/latest-posts/style-rtl.css +2 -0
- package/build-style/latest-posts/style.css +4 -0
- package/build-style/navigation/style-rtl.css +3 -0
- package/build-style/navigation/style.css +3 -0
- package/build-style/post-comments/editor-rtl.css +79 -0
- package/build-style/post-comments/editor.css +79 -0
- package/build-style/post-comments/style-rtl.css +6 -4
- package/build-style/post-comments/style.css +6 -4
- package/build-style/post-comments-form/editor-rtl.css +79 -0
- package/build-style/post-comments-form/editor.css +79 -0
- package/build-style/style-rtl.css +12 -9
- package/build-style/style.css +14 -9
- package/package.json +28 -28
- package/src/audio/edit.js +2 -7
- package/src/button/edit.native.js +6 -3
- package/src/comment-author-name/index.php +7 -5
- package/src/comment-content/index.php +25 -3
- package/src/comment-content/style.scss +5 -0
- package/src/comment-edit-link/index.php +1 -4
- package/src/comment-reply-link/index.php +1 -4
- package/src/comment-template/edit.js +1 -5
- package/src/comment-template/index.php +4 -0
- package/src/{comments-query-loop → comments}/block.json +1 -1
- package/src/{comments-query-loop → comments}/edit/comments-inspector-controls.js +0 -0
- package/src/{comments-query-loop → comments}/edit.js +2 -1
- package/src/{comments-query-loop → comments}/editor.scss +0 -0
- package/src/{comments-query-loop → comments}/index.js +0 -0
- package/src/{comments-query-loop → comments}/save.js +1 -3
- package/src/comments-pagination/index.php +4 -0
- package/src/comments-title/edit.js +20 -4
- package/src/comments-title/index.php +18 -7
- package/src/cover/edit.js +2 -67
- package/src/cover/edit.native.js +40 -13
- package/src/cover/index.php +1 -1
- package/src/cover/style.native.scss +4 -0
- package/src/cover/style.scss +1 -5
- package/src/cover/test/__snapshots__/edit.native.js.snap +6 -6
- package/src/cover/test/transforms.js +301 -0
- package/src/cover/transforms.js +112 -7
- package/src/cover/use-cover-is-dark.js +71 -0
- package/src/cover/use-cover-is-dark.native.js +51 -0
- package/src/editor.scss +3 -1
- package/src/group/block.json +1 -0
- package/src/heading/transforms.js +4 -3
- package/src/index.js +3 -6
- package/src/latest-posts/edit.native.js +56 -1
- package/src/latest-posts/style.scss +4 -0
- package/src/navigation/block.json +0 -1
- package/src/navigation/edit/index.js +6 -36
- package/src/navigation/edit/inner-blocks.js +5 -7
- package/src/navigation/style.scss +3 -0
- package/src/navigation/view-modal.js +32 -0
- package/src/navigation-link/edit.js +40 -43
- package/src/navigation-submenu/edit.js +13 -17
- package/src/paragraph/edit.js +6 -0
- package/src/paragraph/use-enter.js +103 -0
- package/src/post-author/index.php +1 -1
- package/src/post-comment/block.json +1 -1
- package/src/post-comments/block.json +3 -2
- package/src/post-comments/edit.js +174 -44
- package/src/post-comments/editor.scss +3 -0
- package/src/post-comments/index.php +2 -0
- package/src/post-comments/style.scss +6 -7
- package/src/post-comments-form/block.json +1 -0
- package/src/post-comments-form/edit.js +52 -23
- package/src/post-comments-form/editor.scss +3 -0
- package/src/post-comments-form/form.js +43 -0
- package/src/post-comments-form/index.php +9 -2
- package/src/post-content/edit.js +15 -1
- package/src/post-excerpt/edit.js +14 -1
- package/src/post-terms/block.json +8 -0
- package/src/post-terms/edit.js +28 -1
- package/src/post-terms/index.php +12 -2
- package/src/query-no-results/edit.js +1 -1
- package/src/quote/block.json +1 -0
- package/src/separator/block.json +3 -0
- package/src/video/edit.js +3 -4
- package/build/comments-query-loop/edit/comments-inspector-controls.js.map +0 -1
- package/build/comments-query-loop/edit.js.map +0 -1
- package/build/comments-query-loop/index.js.map +0 -1
- package/build/comments-query-loop/save.js.map +0 -1
- package/build/navigation-area/edit.js +0 -110
- package/build/navigation-area/edit.js.map +0 -1
- package/build/navigation-area/index.js +0 -62
- package/build/navigation-area/index.js.map +0 -1
- package/build/navigation-area/inner-blocks.js +0 -34
- package/build/navigation-area/inner-blocks.js.map +0 -1
- package/build/navigation-area/save.js +0 -18
- package/build/navigation-area/save.js.map +0 -1
- package/build-module/comments-query-loop/edit.js.map +0 -1
- package/build-module/comments-query-loop/index.js.map +0 -1
- package/build-module/comments-query-loop/save.js.map +0 -1
- package/build-module/navigation-area/edit.js +0 -94
- package/build-module/navigation-area/edit.js.map +0 -1
- package/build-module/navigation-area/index.js +0 -48
- package/build-module/navigation-area/index.js.map +0 -1
- package/build-module/navigation-area/inner-blocks.js +0 -26
- package/build-module/navigation-area/inner-blocks.js.map +0 -1
- package/build-module/navigation-area/save.js +0 -10
- package/build-module/navigation-area/save.js.map +0 -1
- package/src/navigation-area/block.json +0 -23
- package/src/navigation-area/edit.js +0 -111
- package/src/navigation-area/index.js +0 -26
- package/src/navigation-area/index.php +0 -22
- package/src/navigation-area/inner-blocks.js +0 -24
- package/src/navigation-area/save.js +0 -8
|
@@ -5,8 +5,7 @@ import { createElement } from "@wordpress/element";
|
|
|
5
5
|
* External dependencies
|
|
6
6
|
*/
|
|
7
7
|
import classnames from 'classnames';
|
|
8
|
-
import
|
|
9
|
-
import { colord, extend } from 'colord';
|
|
8
|
+
import { extend } from 'colord';
|
|
10
9
|
import namesPlugin from 'colord/plugins/names';
|
|
11
10
|
/**
|
|
12
11
|
* WordPress dependencies
|
|
@@ -14,7 +13,7 @@ import namesPlugin from 'colord/plugins/names';
|
|
|
14
13
|
|
|
15
14
|
import { useEntityProp, store as coreStore } from '@wordpress/core-data';
|
|
16
15
|
import { Fragment, useEffect, useRef, useState, useMemo } from '@wordpress/element';
|
|
17
|
-
import { BaseControl, Button, ExternalLink, FocalPointPicker, PanelBody, PanelRow, RangeControl, ResizableBox, Spinner, TextareaControl, ToggleControl, ToolbarButton, __experimentalUseCustomUnits as useCustomUnits,
|
|
16
|
+
import { BaseControl, Button, ExternalLink, FocalPointPicker, PanelBody, PanelRow, RangeControl, ResizableBox, Spinner, TextareaControl, ToggleControl, ToolbarButton, __experimentalUseCustomUnits as useCustomUnits, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalUnitControl as UnitControl, __experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue } from '@wordpress/components';
|
|
18
17
|
import { compose, useInstanceId } from '@wordpress/compose';
|
|
19
18
|
import { BlockControls, BlockIcon, InspectorControls, MediaPlaceholder, MediaReplaceFlow, withColors, ColorPalette, useBlockProps, useSetting, useInnerBlocksProps, __experimentalUseGradient, __experimentalPanelColorGradientSettings as PanelColorGradientSettings, __experimentalBlockAlignmentMatrixControl as BlockAlignmentMatrixControl, __experimentalBlockFullHeightAligmentControl as FullHeightAlignmentControl, store as blockEditorStore } from '@wordpress/block-editor';
|
|
20
19
|
import { __ } from '@wordpress/i18n';
|
|
@@ -27,10 +26,8 @@ import { store as noticesStore } from '@wordpress/notices';
|
|
|
27
26
|
*/
|
|
28
27
|
|
|
29
28
|
import { ALLOWED_MEDIA_TYPES, attributesFromMedia, IMAGE_BACKGROUND_TYPE, VIDEO_BACKGROUND_TYPE, COVER_MIN_HEIGHT, backgroundImageStyles, dimRatioToClass, isContentPositionCenter, getPositionClassName } from './shared';
|
|
29
|
+
import useCoverIsDark from './use-cover-is-dark';
|
|
30
30
|
extend([namesPlugin]);
|
|
31
|
-
const {
|
|
32
|
-
__Visualizer: BoxControlVisualizer
|
|
33
|
-
} = BoxControl;
|
|
34
31
|
|
|
35
32
|
function getInnerBlocksTemplate(attributes) {
|
|
36
33
|
return [['core/paragraph', {
|
|
@@ -40,14 +37,6 @@ function getInnerBlocksTemplate(attributes) {
|
|
|
40
37
|
}]];
|
|
41
38
|
}
|
|
42
39
|
|
|
43
|
-
function retrieveFastAverageColor() {
|
|
44
|
-
if (!retrieveFastAverageColor.fastAverageColor) {
|
|
45
|
-
retrieveFastAverageColor.fastAverageColor = new FastAverageColor();
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return retrieveFastAverageColor.fastAverageColor;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
40
|
function CoverHeightInput(_ref) {
|
|
52
41
|
let {
|
|
53
42
|
onChange,
|
|
@@ -144,57 +133,6 @@ function ResizableCover(_ref2) {
|
|
|
144
133
|
}
|
|
145
134
|
}, props));
|
|
146
135
|
}
|
|
147
|
-
/**
|
|
148
|
-
* useCoverIsDark is a hook that returns a boolean variable specifying if the cover
|
|
149
|
-
* background is dark or not.
|
|
150
|
-
*
|
|
151
|
-
* @param {?string} url Url of the media background.
|
|
152
|
-
* @param {?number} dimRatio Transparency of the overlay color. If an image and
|
|
153
|
-
* color are set, dimRatio is used to decide what is used
|
|
154
|
-
* for background darkness checking purposes.
|
|
155
|
-
* @param {?string} overlayColor String containing the overlay color value if one exists.
|
|
156
|
-
* @param {?Object} elementRef If a media background is set, elementRef should contain a reference to a
|
|
157
|
-
* dom element that renders that media.
|
|
158
|
-
*
|
|
159
|
-
* @return {boolean} True if the cover background is considered "dark" and false otherwise.
|
|
160
|
-
*/
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
function useCoverIsDark(url) {
|
|
164
|
-
let dimRatio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 50;
|
|
165
|
-
let overlayColor = arguments.length > 2 ? arguments[2] : undefined;
|
|
166
|
-
let elementRef = arguments.length > 3 ? arguments[3] : undefined;
|
|
167
|
-
const [isDark, setIsDark] = useState(false);
|
|
168
|
-
useEffect(() => {
|
|
169
|
-
// If opacity is lower than 50 the dominant color is the image or video color,
|
|
170
|
-
// so use that color for the dark mode computation.
|
|
171
|
-
if (url && dimRatio <= 50 && elementRef.current) {
|
|
172
|
-
retrieveFastAverageColor().getColorAsync(elementRef.current, color => {
|
|
173
|
-
setIsDark(color.isDark);
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
}, [url, url && dimRatio <= 50 && elementRef.current, setIsDark]);
|
|
177
|
-
useEffect(() => {
|
|
178
|
-
// If opacity is greater than 50 the dominant color is the overlay color,
|
|
179
|
-
// so use that color for the dark mode computation.
|
|
180
|
-
if (dimRatio > 50 || !url) {
|
|
181
|
-
if (!overlayColor) {
|
|
182
|
-
// If no overlay color exists the overlay color is black (isDark )
|
|
183
|
-
setIsDark(true);
|
|
184
|
-
return;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
setIsDark(colord(overlayColor).isDark());
|
|
188
|
-
}
|
|
189
|
-
}, [overlayColor, dimRatio > 50 || !url, setIsDark]);
|
|
190
|
-
useEffect(() => {
|
|
191
|
-
if (!url && !overlayColor) {
|
|
192
|
-
// Reset isDark.
|
|
193
|
-
setIsDark(false);
|
|
194
|
-
}
|
|
195
|
-
}, [!url && !overlayColor, setIsDark]);
|
|
196
|
-
return isDark;
|
|
197
|
-
}
|
|
198
136
|
|
|
199
137
|
function mediaPosition(_ref3) {
|
|
200
138
|
let {
|
|
@@ -242,7 +180,7 @@ function CoverPlaceholder(_ref4) {
|
|
|
242
180
|
}
|
|
243
181
|
|
|
244
182
|
function CoverEdit(_ref5) {
|
|
245
|
-
var _useSetting
|
|
183
|
+
var _useSetting;
|
|
246
184
|
|
|
247
185
|
let {
|
|
248
186
|
attributes,
|
|
@@ -268,7 +206,6 @@ function CoverEdit(_ref5) {
|
|
|
268
206
|
isRepeated,
|
|
269
207
|
minHeight,
|
|
270
208
|
minHeightUnit,
|
|
271
|
-
style: styleAttribute,
|
|
272
209
|
alt,
|
|
273
210
|
allowedBlocks,
|
|
274
211
|
templateLock
|
|
@@ -575,10 +512,6 @@ function CoverEdit(_ref5) {
|
|
|
575
512
|
...blockProps.style
|
|
576
513
|
},
|
|
577
514
|
"data-url": url
|
|
578
|
-
}), createElement(BoxControlVisualizer, {
|
|
579
|
-
values: styleAttribute === null || styleAttribute === void 0 ? void 0 : (_styleAttribute$spaci = styleAttribute.spacing) === null || _styleAttribute$spaci === void 0 ? void 0 : _styleAttribute$spaci.padding,
|
|
580
|
-
showValues: styleAttribute === null || styleAttribute === void 0 ? void 0 : (_styleAttribute$visua = styleAttribute.visualizers) === null || _styleAttribute$visua === void 0 ? void 0 : _styleAttribute$visua.padding,
|
|
581
|
-
className: "block-library-cover__padding-visualizer"
|
|
582
515
|
}), createElement(ResizableCover, {
|
|
583
516
|
className: "block-library-cover__resize-container",
|
|
584
517
|
onResizeStart: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/cover/edit.js"],"names":["classnames","FastAverageColor","colord","extend","namesPlugin","useEntityProp","store","coreStore","Fragment","useEffect","useRef","useState","useMemo","BaseControl","Button","ExternalLink","FocalPointPicker","PanelBody","PanelRow","RangeControl","ResizableBox","Spinner","TextareaControl","ToggleControl","ToolbarButton","__experimentalUseCustomUnits","useCustomUnits","__experimentalBoxControl","BoxControl","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalUnitControl","UnitControl","__experimentalParseQuantityAndUnitFromRawValue","parseQuantityAndUnitFromRawValue","compose","useInstanceId","BlockControls","BlockIcon","InspectorControls","MediaPlaceholder","MediaReplaceFlow","withColors","ColorPalette","useBlockProps","useSetting","useInnerBlocksProps","__experimentalUseGradient","__experimentalPanelColorGradientSettings","PanelColorGradientSettings","__experimentalBlockAlignmentMatrixControl","BlockAlignmentMatrixControl","__experimentalBlockFullHeightAligmentControl","FullHeightAlignmentControl","blockEditorStore","__","useSelect","useDispatch","postFeaturedImage","cover","icon","isBlobURL","noticesStore","ALLOWED_MEDIA_TYPES","attributesFromMedia","IMAGE_BACKGROUND_TYPE","VIDEO_BACKGROUND_TYPE","COVER_MIN_HEIGHT","backgroundImageStyles","dimRatioToClass","isContentPositionCenter","getPositionClassName","__Visualizer","BoxControlVisualizer","getInnerBlocksTemplate","attributes","align","placeholder","retrieveFastAverageColor","fastAverageColor","CoverHeightInput","onChange","onUnitChange","unit","value","instanceId","inputId","isPx","units","availableUnits","defaultValues","px","em","rem","vw","vh","handleOnChange","unprocessedValue","inputValue","parseFloat","undefined","isNaN","computedValue","parsedQuantity","join","min","maxWidth","RESIZABLE_BOX_ENABLE_OPTION","top","right","bottom","left","topRight","bottomRight","bottomLeft","topLeft","ResizableCover","className","onResizeStart","onResize","onResizeStop","props","isResizing","setIsResizing","_event","_direction","elt","clientHeight","useCoverIsDark","url","dimRatio","overlayColor","elementRef","isDark","setIsDark","current","getColorAsync","color","mediaPosition","x","y","Math","round","isTemporaryMedia","id","CoverPlaceholder","disableMediaButtons","children","onSelectMedia","onError","style","title","instructions","CoverEdit","clientId","isSelected","setAttributes","setOverlayColor","toggleSelection","context","postId","postType","contentPosition","useFeaturedImage","focalPoint","hasParallax","isRepeated","minHeight","minHeightUnit","styleAttribute","alt","allowedBlocks","templateLock","featuredImage","media","select","getMedia","mediaUrl","source_url","backgroundType","__unstableMarkNextChangeAsNotPersistent","createErrorNotice","gradientClass","gradientValue","setGradient","isUploadingMedia","prevMinHeightValue","setPrevMinHeightValue","prevMinHeightUnit","setPrevMinHeightUnit","isMinFullHeight","toggleMinFullHeight","toggleParallax","toggleIsRepeated","toggleUseFeaturedImage","onUploadError","message","Array","isArray","type","isDarkElement","isCoverDark","isImageBackground","isVideoBackground","minHeightWithUnit","isImgElement","bgStyle","backgroundColor","mediaStyle","objectPosition","hasBackground","showFocalPointPicker","imperativeFocalPointPreview","styleOfRef","property","ref","hasInnerBlocks","getBlock","innerBlocks","length","controls","nextPosition","newFocalPoint","newAlt","colorValue","onColorChange","onGradientChange","label","newDimRation","newMinHeight","nextUnit","blockProps","hasFontSizes","innerBlocksTemplate","fontSize","innerBlocksProps","template","templateInsertUpdatesSelection","classes","spacing","padding","visualizers","class","backgroundImage"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport FastAverageColor from 'fast-average-color';\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport {\n\tFragment,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tBaseControl,\n\tButton,\n\tExternalLink,\n\tFocalPointPicker,\n\tPanelBody,\n\tPanelRow,\n\tRangeControl,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tToggleControl,\n\tToolbarButton,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalBoxControl as BoxControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { compose, useInstanceId } from '@wordpress/compose';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\twithColors,\n\tColorPalette,\n\tuseBlockProps,\n\tuseSetting,\n\tuseInnerBlocksProps,\n\t__experimentalUseGradient,\n\t__experimentalPanelColorGradientSettings as PanelColorGradientSettings,\n\t__experimentalBlockAlignmentMatrixControl as BlockAlignmentMatrixControl,\n\t__experimentalBlockFullHeightAligmentControl as FullHeightAlignmentControl,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { postFeaturedImage, cover as icon } from '@wordpress/icons';\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport {\n\tALLOWED_MEDIA_TYPES,\n\tattributesFromMedia,\n\tIMAGE_BACKGROUND_TYPE,\n\tVIDEO_BACKGROUND_TYPE,\n\tCOVER_MIN_HEIGHT,\n\tbackgroundImageStyles,\n\tdimRatioToClass,\n\tisContentPositionCenter,\n\tgetPositionClassName,\n} from './shared';\n\nextend( [ namesPlugin ] );\n\nconst { __Visualizer: BoxControlVisualizer } = BoxControl;\n\nfunction getInnerBlocksTemplate( attributes ) {\n\treturn [\n\t\t[\n\t\t\t'core/paragraph',\n\t\t\t{\n\t\t\t\talign: 'center',\n\t\t\t\tplaceholder: __( 'Write title…' ),\n\t\t\t\t...attributes,\n\t\t\t},\n\t\t],\n\t];\n}\n\nfunction retrieveFastAverageColor() {\n\tif ( ! retrieveFastAverageColor.fastAverageColor ) {\n\t\tretrieveFastAverageColor.fastAverageColor = new FastAverageColor();\n\t}\n\treturn retrieveFastAverageColor.fastAverageColor;\n}\n\nfunction CoverHeightInput( {\n\tonChange,\n\tonUnitChange,\n\tunit = 'px',\n\tvalue = '',\n} ) {\n\tconst instanceId = useInstanceId( UnitControl );\n\tconst inputId = `block-cover-height-input-${ instanceId }`;\n\tconst isPx = unit === 'px';\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t\t'vh',\n\t\t],\n\t\tdefaultValues: { px: 430, '%': 20, em: 20, rem: 20, vw: 20, vh: 50 },\n\t} );\n\n\tconst handleOnChange = ( unprocessedValue ) => {\n\t\tconst inputValue =\n\t\t\tunprocessedValue !== ''\n\t\t\t\t? parseFloat( unprocessedValue )\n\t\t\t\t: undefined;\n\n\t\tif ( isNaN( inputValue ) && inputValue !== undefined ) {\n\t\t\treturn;\n\t\t}\n\t\tonChange( inputValue );\n\t};\n\n\tconst computedValue = useMemo( () => {\n\t\tconst [ parsedQuantity ] = parseQuantityAndUnitFromRawValue( value );\n\t\treturn [ parsedQuantity, unit ].join( '' );\n\t}, [ unit, value ] );\n\n\tconst min = isPx ? COVER_MIN_HEIGHT : 0;\n\n\treturn (\n\t\t<BaseControl label={ __( 'Minimum height of cover' ) } id={ inputId }>\n\t\t\t<UnitControl\n\t\t\t\tid={ inputId }\n\t\t\t\tisResetValueOnUnitChange\n\t\t\t\tmin={ min }\n\t\t\t\tonChange={ handleOnChange }\n\t\t\t\tonUnitChange={ onUnitChange }\n\t\t\t\tstyle={ { maxWidth: 80 } }\n\t\t\t\tunits={ units }\n\t\t\t\tvalue={ computedValue }\n\t\t\t/>\n\t\t</BaseControl>\n\t);\n}\n\nconst RESIZABLE_BOX_ENABLE_OPTION = {\n\ttop: false,\n\tright: false,\n\tbottom: true,\n\tleft: false,\n\ttopRight: false,\n\tbottomRight: false,\n\tbottomLeft: false,\n\ttopLeft: false,\n};\n\nfunction ResizableCover( {\n\tclassName,\n\tonResizeStart,\n\tonResize,\n\tonResizeStop,\n\t...props\n} ) {\n\tconst [ isResizing, setIsResizing ] = useState( false );\n\n\treturn (\n\t\t<ResizableBox\n\t\t\tclassName={ classnames( className, {\n\t\t\t\t'is-resizing': isResizing,\n\t\t\t} ) }\n\t\t\tenable={ RESIZABLE_BOX_ENABLE_OPTION }\n\t\t\tonResizeStart={ ( _event, _direction, elt ) => {\n\t\t\t\tonResizeStart( elt.clientHeight );\n\t\t\t\tonResize( elt.clientHeight );\n\t\t\t} }\n\t\t\tonResize={ ( _event, _direction, elt ) => {\n\t\t\t\tonResize( elt.clientHeight );\n\t\t\t\tif ( ! isResizing ) {\n\t\t\t\t\tsetIsResizing( true );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonResizeStop={ ( _event, _direction, elt ) => {\n\t\t\t\tonResizeStop( elt.clientHeight );\n\t\t\t\tsetIsResizing( false );\n\t\t\t} }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\n/**\n * useCoverIsDark is a hook that returns a boolean variable specifying if the cover\n * background is dark or not.\n *\n * @param {?string} url Url of the media background.\n * @param {?number} dimRatio Transparency of the overlay color. If an image and\n * color are set, dimRatio is used to decide what is used\n * for background darkness checking purposes.\n * @param {?string} overlayColor String containing the overlay color value if one exists.\n * @param {?Object} elementRef If a media background is set, elementRef should contain a reference to a\n * dom element that renders that media.\n *\n * @return {boolean} True if the cover background is considered \"dark\" and false otherwise.\n */\nfunction useCoverIsDark( url, dimRatio = 50, overlayColor, elementRef ) {\n\tconst [ isDark, setIsDark ] = useState( false );\n\tuseEffect( () => {\n\t\t// If opacity is lower than 50 the dominant color is the image or video color,\n\t\t// so use that color for the dark mode computation.\n\t\tif ( url && dimRatio <= 50 && elementRef.current ) {\n\t\t\tretrieveFastAverageColor().getColorAsync(\n\t\t\t\telementRef.current,\n\t\t\t\t( color ) => {\n\t\t\t\t\tsetIsDark( color.isDark );\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}, [ url, url && dimRatio <= 50 && elementRef.current, setIsDark ] );\n\tuseEffect( () => {\n\t\t// If opacity is greater than 50 the dominant color is the overlay color,\n\t\t// so use that color for the dark mode computation.\n\t\tif ( dimRatio > 50 || ! url ) {\n\t\t\tif ( ! overlayColor ) {\n\t\t\t\t// If no overlay color exists the overlay color is black (isDark )\n\t\t\t\tsetIsDark( true );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsDark( colord( overlayColor ).isDark() );\n\t\t}\n\t}, [ overlayColor, dimRatio > 50 || ! url, setIsDark ] );\n\tuseEffect( () => {\n\t\tif ( ! url && ! overlayColor ) {\n\t\t\t// Reset isDark.\n\t\t\tsetIsDark( false );\n\t\t}\n\t}, [ ! url && ! overlayColor, setIsDark ] );\n\treturn isDark;\n}\n\nfunction mediaPosition( { x, y } ) {\n\treturn `${ Math.round( x * 100 ) }% ${ Math.round( y * 100 ) }%`;\n}\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily while\n * the media (image or video) is being uploaded and will not have an id allocated yet.\n *\n * @param {number} id The id of the media.\n * @param {string} url The url of the media.\n *\n * @return {boolean} Is the URL a Blob URL.\n */\nconst isTemporaryMedia = ( id, url ) => ! id && isBlobURL( url );\n\nfunction CoverPlaceholder( {\n\tdisableMediaButtons = false,\n\tchildren,\n\tonSelectMedia,\n\tonError,\n\tstyle,\n} ) {\n\treturn (\n\t\t<MediaPlaceholder\n\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Cover' ),\n\t\t\t\tinstructions: __(\n\t\t\t\t\t'Drag and drop onto this block, upload, or select existing media from your library.'\n\t\t\t\t),\n\t\t\t} }\n\t\t\tonSelect={ onSelectMedia }\n\t\t\taccept=\"image/*,video/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tdisableMediaButtons={ disableMediaButtons }\n\t\t\tonError={ onError }\n\t\t\tstyle={ style }\n\t\t>\n\t\t\t{ children }\n\t\t</MediaPlaceholder>\n\t);\n}\n\nfunction CoverEdit( {\n\tattributes,\n\tclientId,\n\tisSelected,\n\toverlayColor,\n\tsetAttributes,\n\tsetOverlayColor,\n\ttoggleSelection,\n\tcontext: { postId, postType },\n} ) {\n\tconst {\n\t\tcontentPosition,\n\t\tid,\n\t\tuseFeaturedImage,\n\t\tdimRatio,\n\t\tfocalPoint,\n\t\thasParallax,\n\t\tisDark,\n\t\tisRepeated,\n\t\tminHeight,\n\t\tminHeightUnit,\n\t\tstyle: styleAttribute,\n\t\talt,\n\t\tallowedBlocks,\n\t\ttemplateLock,\n\t} = attributes;\n\n\tconst [ featuredImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\tconst media = useSelect(\n\t\t( select ) =>\n\t\t\tfeaturedImage &&\n\t\t\tselect( coreStore ).getMedia( featuredImage, { context: 'view' } ),\n\t\t[ featuredImage ]\n\t);\n\tconst mediaUrl = media?.source_url;\n\n\t// instead of destructuring the attributes\n\t// we define the url and background type\n\t// depending on the value of the useFeaturedImage flag\n\t// to preview in edit the dynamic featured image\n\tconst url = useFeaturedImage ? mediaUrl : attributes.url;\n\tconst backgroundType = useFeaturedImage\n\t\t? IMAGE_BACKGROUND_TYPE\n\t\t: attributes.backgroundType;\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } = useDispatch(\n\t\tblockEditorStore\n\t);\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst {\n\t\tgradientClass,\n\t\tgradientValue,\n\t\tsetGradient,\n\t} = __experimentalUseGradient();\n\tconst onSelectMedia = attributesFromMedia( setAttributes, dimRatio );\n\tconst isUploadingMedia = isTemporaryMedia( id, url );\n\n\tconst [ prevMinHeightValue, setPrevMinHeightValue ] = useState( minHeight );\n\tconst [ prevMinHeightUnit, setPrevMinHeightUnit ] = useState(\n\t\tminHeightUnit\n\t);\n\tconst isMinFullHeight = minHeightUnit === 'vh' && minHeight === 100;\n\n\tconst toggleMinFullHeight = () => {\n\t\tif ( isMinFullHeight ) {\n\t\t\t// If there aren't previous values, take the default ones.\n\t\t\tif ( prevMinHeightUnit === 'vh' && prevMinHeightValue === 100 ) {\n\t\t\t\treturn setAttributes( {\n\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Set the previous values of height.\n\t\t\treturn setAttributes( {\n\t\t\t\tminHeight: prevMinHeightValue,\n\t\t\t\tminHeightUnit: prevMinHeightUnit,\n\t\t\t} );\n\t\t}\n\n\t\tsetPrevMinHeightValue( minHeight );\n\t\tsetPrevMinHeightUnit( minHeightUnit );\n\n\t\t// Set full height.\n\t\treturn setAttributes( {\n\t\t\tminHeight: 100,\n\t\t\tminHeightUnit: 'vh',\n\t\t} );\n\t};\n\n\tconst toggleParallax = () => {\n\t\tsetAttributes( {\n\t\t\thasParallax: ! hasParallax,\n\t\t\t...( ! hasParallax ? { focalPoint: undefined } : {} ),\n\t\t} );\n\t};\n\n\tconst toggleIsRepeated = () => {\n\t\tsetAttributes( {\n\t\t\tisRepeated: ! isRepeated,\n\t\t} );\n\t};\n\n\tconst toggleUseFeaturedImage = () => {\n\t\tsetAttributes( {\n\t\t\tuseFeaturedImage: ! useFeaturedImage,\n\t\t\tdimRatio: dimRatio === 100 ? 50 : dimRatio,\n\t\t} );\n\t};\n\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( Array.isArray( message ) ? message[ 2 ] : message, {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst isDarkElement = useRef();\n\tconst isCoverDark = useCoverIsDark(\n\t\turl,\n\t\tdimRatio,\n\t\toverlayColor.color,\n\t\tisDarkElement\n\t);\n\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isDark: isCoverDark } );\n\t}, [ isCoverDark ] );\n\n\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\tconst minHeightWithUnit =\n\t\tminHeight && minHeightUnit\n\t\t\t? `${ minHeight }${ minHeightUnit }`\n\t\t\t: minHeight;\n\n\tconst isImgElement = ! ( hasParallax || isRepeated );\n\n\tconst style = {\n\t\t...( isImageBackground && ! isImgElement\n\t\t\t? backgroundImageStyles( url )\n\t\t\t: undefined ),\n\t\tminHeight: minHeightWithUnit || undefined,\n\t};\n\n\tconst bgStyle = { backgroundColor: overlayColor.color };\n\tconst mediaStyle = {\n\t\tobjectPosition:\n\t\t\tfocalPoint && isImgElement\n\t\t\t\t? mediaPosition( focalPoint )\n\t\t\t\t: undefined,\n\t};\n\n\tconst hasBackground = !! ( url || overlayColor.color || gradientValue );\n\tconst showFocalPointPicker =\n\t\tisVideoBackground ||\n\t\t( isImageBackground && ( ! hasParallax || isRepeated ) );\n\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst [ styleOfRef, property ] = isDarkElement.current\n\t\t\t? [ isDarkElement.current.style, 'objectPosition' ]\n\t\t\t: [ ref.current.style, 'backgroundPosition' ];\n\t\tstyleOfRef[ property ] = mediaPosition( value );\n\t};\n\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlock( clientId ).innerBlocks.length >\n\t\t\t0,\n\t\t[ clientId ]\n\t);\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<BlockAlignmentMatrixControl\n\t\t\t\t\tlabel={ __( 'Change content position' ) }\n\t\t\t\t\tvalue={ contentPosition }\n\t\t\t\t\tonChange={ ( nextPosition ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tcontentPosition: nextPosition,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tisDisabled={ ! hasInnerBlocks }\n\t\t\t\t/>\n\t\t\t\t<FullHeightAlignmentControl\n\t\t\t\t\tisActive={ isMinFullHeight }\n\t\t\t\t\tonToggle={ toggleMinFullHeight }\n\t\t\t\t\tisDisabled={ ! hasInnerBlocks }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={ postFeaturedImage }\n\t\t\t\t\tlabel={ __( 'Use featured image' ) }\n\t\t\t\t\tisPressed={ useFeaturedImage }\n\t\t\t\t\tonClick={ toggleUseFeaturedImage }\n\t\t\t\t/>\n\t\t\t\t{ ! useFeaturedImage && (\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*,video/*\"\n\t\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\t\tname={ ! url ? __( 'Add Media' ) : __( 'Replace' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t{ !! url && (\n\t\t\t\t\t<PanelBody title={ __( 'Media settings' ) }>\n\t\t\t\t\t\t{ isImageBackground && (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ hasParallax }\n\t\t\t\t\t\t\t\t\tonChange={ toggleParallax }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Repeated background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ isRepeated }\n\t\t\t\t\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showFocalPointPicker && (\n\t\t\t\t\t\t\t<FocalPointPicker\n\t\t\t\t\t\t\t\tlabel={ __( 'Focal point picker' ) }\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonChange={ ( newFocalPoint ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfocalPoint: newFocalPoint,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! useFeaturedImage &&\n\t\t\t\t\t\t\turl &&\n\t\t\t\t\t\t\tisImageBackground &&\n\t\t\t\t\t\t\tisImgElement && (\n\t\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Alt text (alternative text)'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\t\t\tonChange={ ( newAlt ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { alt: newAlt } )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if the image is purely decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<PanelRow>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\tclassName=\"block-library-cover__reset-button\"\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\turl: undefined,\n\t\t\t\t\t\t\t\t\t\tid: undefined,\n\t\t\t\t\t\t\t\t\t\tbackgroundType: undefined,\n\t\t\t\t\t\t\t\t\t\tfocalPoint: undefined,\n\t\t\t\t\t\t\t\t\t\thasParallax: undefined,\n\t\t\t\t\t\t\t\t\t\tisRepeated: undefined,\n\t\t\t\t\t\t\t\t\t\tuseFeaturedImage: false,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Clear Media' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</PanelRow>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t\t<PanelColorGradientSettings\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\ttitle={ __( 'Overlay' ) }\n\t\t\t\t\tinitialOpen={ true }\n\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcolorValue: overlayColor.color,\n\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\tonColorChange: setOverlayColor,\n\t\t\t\t\t\t\tonGradientChange: setGradient,\n\t\t\t\t\t\t\tlabel: __( 'Color' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Opacity' ) }\n\t\t\t\t\t\tvalue={ dimRatio }\n\t\t\t\t\t\tonChange={ ( newDimRation ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdimRatio: newDimRation,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\tstep={ 10 }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</PanelColorGradientSettings>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls __experimentalGroup=\"dimensions\">\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! minHeight }\n\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<CoverHeightInput\n\t\t\t\t\t\tvalue={ minHeight }\n\t\t\t\t\t\tunit={ minHeightUnit }\n\t\t\t\t\t\tonChange={ ( newMinHeight ) =>\n\t\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonUnitChange={ ( nextUnit ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tminHeightUnit: nextUnit,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst ref = useRef();\n\tconst blockProps = useBlockProps( { ref } );\n\n\t// Check for fontSize support before we pass a fontSize attribute to the innerBlocks.\n\tconst hasFontSizes = !! useSetting( 'typography.fontSizes' )?.length;\n\tconst innerBlocksTemplate = getInnerBlocksTemplate( {\n\t\tfontSize: hasFontSizes ? 'large' : undefined,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: 'wp-block-cover__inner-container',\n\t\t},\n\t\t{\n\t\t\ttemplate: innerBlocksTemplate,\n\t\t\ttemplateInsertUpdatesSelection: true,\n\t\t\tallowedBlocks,\n\t\t\ttemplateLock,\n\t\t}\n\t);\n\n\tif ( ! hasInnerBlocks && ! hasBackground ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<div\n\t\t\t\t\t{ ...blockProps }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'is-placeholder',\n\t\t\t\t\t\tblockProps.className\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<CoverPlaceholder\n\t\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tminHeight: minHeightWithUnit || undefined,\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"wp-block-cover__placeholder-background-options\">\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tdisableCustomColors={ true }\n\t\t\t\t\t\t\t\tvalue={ overlayColor.color }\n\t\t\t\t\t\t\t\tonChange={ setOverlayColor }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</CoverPlaceholder>\n\t\t\t\t\t<ResizableCover\n\t\t\t\t\t\tclassName=\"block-library-cover__resize-container\"\n\t\t\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\t\t\tsetAttributes( { minHeightUnit: 'px' } );\n\t\t\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResize={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( { minHeight: value } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResizeStop={ ( newMinHeight ) => {\n\t\t\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tshowHandle={ isSelected }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst classes = classnames(\n\t\t{\n\t\t\t'is-dark-theme': isDark,\n\t\t\t'is-light': ! isDark,\n\t\t\t'is-transient': isUploadingMedia,\n\t\t\t'has-parallax': hasParallax,\n\t\t\t'is-repeated': isRepeated,\n\t\t\t'has-custom-content-position': ! isContentPositionCenter(\n\t\t\t\tcontentPosition\n\t\t\t),\n\t\t},\n\t\tgetPositionClassName( contentPosition )\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ controls }\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ classnames( classes, blockProps.className ) }\n\t\t\t\tstyle={ { ...style, ...blockProps.style } }\n\t\t\t\tdata-url={ url }\n\t\t\t>\n\t\t\t\t<BoxControlVisualizer\n\t\t\t\t\tvalues={ styleAttribute?.spacing?.padding }\n\t\t\t\t\tshowValues={ styleAttribute?.visualizers?.padding }\n\t\t\t\t\tclassName=\"block-library-cover__padding-visualizer\"\n\t\t\t\t/>\n\t\t\t\t<ResizableCover\n\t\t\t\t\tclassName=\"block-library-cover__resize-container\"\n\t\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\t\tsetAttributes( { minHeightUnit: 'px' } );\n\t\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonResize={ ( value ) => {\n\t\t\t\t\t\tsetAttributes( { minHeight: value } );\n\t\t\t\t\t} }\n\t\t\t\t\tonResizeStop={ ( newMinHeight ) => {\n\t\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } );\n\t\t\t\t\t} }\n\t\t\t\t\tshowHandle={ isSelected }\n\t\t\t\t/>\n\n\t\t\t\t<span\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'wp-block-cover__background',\n\t\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[ overlayColor.class ]: overlayColor.class,\n\t\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\t\t\t\t\t\t// For backwards compatibility. Former versions of the Cover Block applied\n\t\t\t\t\t\t\t// `.wp-block-cover__gradient-background` in the presence of\n\t\t\t\t\t\t\t// media, a gradient and a dim.\n\t\t\t\t\t\t\t'wp-block-cover__gradient-background':\n\t\t\t\t\t\t\t\turl && gradientValue && dimRatio !== 0,\n\t\t\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t\t\t[ gradientClass ]: gradientClass,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ { backgroundImage: gradientValue, ...bgStyle } }\n\t\t\t\t/>\n\n\t\t\t\t{ url && isImageBackground && isImgElement && (\n\t\t\t\t\t<img\n\t\t\t\t\t\tref={ isDarkElement }\n\t\t\t\t\t\tclassName=\"wp-block-cover__image-background\"\n\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ url && isVideoBackground && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tref={ isDarkElement }\n\t\t\t\t\t\tclassName=\"wp-block-cover__video-background\"\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isUploadingMedia && <Spinner /> }\n\t\t\t\t<CoverPlaceholder\n\t\t\t\t\tdisableMediaButtons\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithColors( { overlayColor: 'background-color' } ),\n] )( CoverEdit );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/cover/edit.js"],"names":["classnames","extend","namesPlugin","useEntityProp","store","coreStore","Fragment","useEffect","useRef","useState","useMemo","BaseControl","Button","ExternalLink","FocalPointPicker","PanelBody","PanelRow","RangeControl","ResizableBox","Spinner","TextareaControl","ToggleControl","ToolbarButton","__experimentalUseCustomUnits","useCustomUnits","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalUnitControl","UnitControl","__experimentalParseQuantityAndUnitFromRawValue","parseQuantityAndUnitFromRawValue","compose","useInstanceId","BlockControls","BlockIcon","InspectorControls","MediaPlaceholder","MediaReplaceFlow","withColors","ColorPalette","useBlockProps","useSetting","useInnerBlocksProps","__experimentalUseGradient","__experimentalPanelColorGradientSettings","PanelColorGradientSettings","__experimentalBlockAlignmentMatrixControl","BlockAlignmentMatrixControl","__experimentalBlockFullHeightAligmentControl","FullHeightAlignmentControl","blockEditorStore","__","useSelect","useDispatch","postFeaturedImage","cover","icon","isBlobURL","noticesStore","ALLOWED_MEDIA_TYPES","attributesFromMedia","IMAGE_BACKGROUND_TYPE","VIDEO_BACKGROUND_TYPE","COVER_MIN_HEIGHT","backgroundImageStyles","dimRatioToClass","isContentPositionCenter","getPositionClassName","useCoverIsDark","getInnerBlocksTemplate","attributes","align","placeholder","CoverHeightInput","onChange","onUnitChange","unit","value","instanceId","inputId","isPx","units","availableUnits","defaultValues","px","em","rem","vw","vh","handleOnChange","unprocessedValue","inputValue","parseFloat","undefined","isNaN","computedValue","parsedQuantity","join","min","maxWidth","RESIZABLE_BOX_ENABLE_OPTION","top","right","bottom","left","topRight","bottomRight","bottomLeft","topLeft","ResizableCover","className","onResizeStart","onResize","onResizeStop","props","isResizing","setIsResizing","_event","_direction","elt","clientHeight","mediaPosition","x","y","Math","round","isTemporaryMedia","id","url","CoverPlaceholder","disableMediaButtons","children","onSelectMedia","onError","style","title","instructions","CoverEdit","clientId","isSelected","overlayColor","setAttributes","setOverlayColor","toggleSelection","context","postId","postType","contentPosition","useFeaturedImage","dimRatio","focalPoint","hasParallax","isDark","isRepeated","minHeight","minHeightUnit","alt","allowedBlocks","templateLock","featuredImage","media","select","getMedia","mediaUrl","source_url","backgroundType","__unstableMarkNextChangeAsNotPersistent","createErrorNotice","gradientClass","gradientValue","setGradient","isUploadingMedia","prevMinHeightValue","setPrevMinHeightValue","prevMinHeightUnit","setPrevMinHeightUnit","isMinFullHeight","toggleMinFullHeight","toggleParallax","toggleIsRepeated","toggleUseFeaturedImage","onUploadError","message","Array","isArray","type","isDarkElement","isCoverDark","color","isImageBackground","isVideoBackground","minHeightWithUnit","isImgElement","bgStyle","backgroundColor","mediaStyle","objectPosition","hasBackground","showFocalPointPicker","imperativeFocalPointPreview","styleOfRef","property","current","ref","hasInnerBlocks","getBlock","innerBlocks","length","controls","nextPosition","newFocalPoint","newAlt","colorValue","onColorChange","onGradientChange","label","newDimRation","newMinHeight","nextUnit","blockProps","hasFontSizes","innerBlocksTemplate","fontSize","innerBlocksProps","template","templateInsertUpdatesSelection","classes","class","backgroundImage"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport {\n\tFragment,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tBaseControl,\n\tButton,\n\tExternalLink,\n\tFocalPointPicker,\n\tPanelBody,\n\tPanelRow,\n\tRangeControl,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tToggleControl,\n\tToolbarButton,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { compose, useInstanceId } from '@wordpress/compose';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\twithColors,\n\tColorPalette,\n\tuseBlockProps,\n\tuseSetting,\n\tuseInnerBlocksProps,\n\t__experimentalUseGradient,\n\t__experimentalPanelColorGradientSettings as PanelColorGradientSettings,\n\t__experimentalBlockAlignmentMatrixControl as BlockAlignmentMatrixControl,\n\t__experimentalBlockFullHeightAligmentControl as FullHeightAlignmentControl,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { postFeaturedImage, cover as icon } from '@wordpress/icons';\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport {\n\tALLOWED_MEDIA_TYPES,\n\tattributesFromMedia,\n\tIMAGE_BACKGROUND_TYPE,\n\tVIDEO_BACKGROUND_TYPE,\n\tCOVER_MIN_HEIGHT,\n\tbackgroundImageStyles,\n\tdimRatioToClass,\n\tisContentPositionCenter,\n\tgetPositionClassName,\n} from './shared';\nimport useCoverIsDark from './use-cover-is-dark';\n\nextend( [ namesPlugin ] );\n\nfunction getInnerBlocksTemplate( attributes ) {\n\treturn [\n\t\t[\n\t\t\t'core/paragraph',\n\t\t\t{\n\t\t\t\talign: 'center',\n\t\t\t\tplaceholder: __( 'Write title…' ),\n\t\t\t\t...attributes,\n\t\t\t},\n\t\t],\n\t];\n}\n\nfunction CoverHeightInput( {\n\tonChange,\n\tonUnitChange,\n\tunit = 'px',\n\tvalue = '',\n} ) {\n\tconst instanceId = useInstanceId( UnitControl );\n\tconst inputId = `block-cover-height-input-${ instanceId }`;\n\tconst isPx = unit === 'px';\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t\t'vh',\n\t\t],\n\t\tdefaultValues: { px: 430, '%': 20, em: 20, rem: 20, vw: 20, vh: 50 },\n\t} );\n\n\tconst handleOnChange = ( unprocessedValue ) => {\n\t\tconst inputValue =\n\t\t\tunprocessedValue !== ''\n\t\t\t\t? parseFloat( unprocessedValue )\n\t\t\t\t: undefined;\n\n\t\tif ( isNaN( inputValue ) && inputValue !== undefined ) {\n\t\t\treturn;\n\t\t}\n\t\tonChange( inputValue );\n\t};\n\n\tconst computedValue = useMemo( () => {\n\t\tconst [ parsedQuantity ] = parseQuantityAndUnitFromRawValue( value );\n\t\treturn [ parsedQuantity, unit ].join( '' );\n\t}, [ unit, value ] );\n\n\tconst min = isPx ? COVER_MIN_HEIGHT : 0;\n\n\treturn (\n\t\t<BaseControl label={ __( 'Minimum height of cover' ) } id={ inputId }>\n\t\t\t<UnitControl\n\t\t\t\tid={ inputId }\n\t\t\t\tisResetValueOnUnitChange\n\t\t\t\tmin={ min }\n\t\t\t\tonChange={ handleOnChange }\n\t\t\t\tonUnitChange={ onUnitChange }\n\t\t\t\tstyle={ { maxWidth: 80 } }\n\t\t\t\tunits={ units }\n\t\t\t\tvalue={ computedValue }\n\t\t\t/>\n\t\t</BaseControl>\n\t);\n}\n\nconst RESIZABLE_BOX_ENABLE_OPTION = {\n\ttop: false,\n\tright: false,\n\tbottom: true,\n\tleft: false,\n\ttopRight: false,\n\tbottomRight: false,\n\tbottomLeft: false,\n\ttopLeft: false,\n};\n\nfunction ResizableCover( {\n\tclassName,\n\tonResizeStart,\n\tonResize,\n\tonResizeStop,\n\t...props\n} ) {\n\tconst [ isResizing, setIsResizing ] = useState( false );\n\n\treturn (\n\t\t<ResizableBox\n\t\t\tclassName={ classnames( className, {\n\t\t\t\t'is-resizing': isResizing,\n\t\t\t} ) }\n\t\t\tenable={ RESIZABLE_BOX_ENABLE_OPTION }\n\t\t\tonResizeStart={ ( _event, _direction, elt ) => {\n\t\t\t\tonResizeStart( elt.clientHeight );\n\t\t\t\tonResize( elt.clientHeight );\n\t\t\t} }\n\t\t\tonResize={ ( _event, _direction, elt ) => {\n\t\t\t\tonResize( elt.clientHeight );\n\t\t\t\tif ( ! isResizing ) {\n\t\t\t\t\tsetIsResizing( true );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonResizeStop={ ( _event, _direction, elt ) => {\n\t\t\t\tonResizeStop( elt.clientHeight );\n\t\t\t\tsetIsResizing( false );\n\t\t\t} }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nfunction mediaPosition( { x, y } ) {\n\treturn `${ Math.round( x * 100 ) }% ${ Math.round( y * 100 ) }%`;\n}\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily while\n * the media (image or video) is being uploaded and will not have an id allocated yet.\n *\n * @param {number} id The id of the media.\n * @param {string} url The url of the media.\n *\n * @return {boolean} Is the URL a Blob URL.\n */\nconst isTemporaryMedia = ( id, url ) => ! id && isBlobURL( url );\n\nfunction CoverPlaceholder( {\n\tdisableMediaButtons = false,\n\tchildren,\n\tonSelectMedia,\n\tonError,\n\tstyle,\n} ) {\n\treturn (\n\t\t<MediaPlaceholder\n\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Cover' ),\n\t\t\t\tinstructions: __(\n\t\t\t\t\t'Drag and drop onto this block, upload, or select existing media from your library.'\n\t\t\t\t),\n\t\t\t} }\n\t\t\tonSelect={ onSelectMedia }\n\t\t\taccept=\"image/*,video/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tdisableMediaButtons={ disableMediaButtons }\n\t\t\tonError={ onError }\n\t\t\tstyle={ style }\n\t\t>\n\t\t\t{ children }\n\t\t</MediaPlaceholder>\n\t);\n}\n\nfunction CoverEdit( {\n\tattributes,\n\tclientId,\n\tisSelected,\n\toverlayColor,\n\tsetAttributes,\n\tsetOverlayColor,\n\ttoggleSelection,\n\tcontext: { postId, postType },\n} ) {\n\tconst {\n\t\tcontentPosition,\n\t\tid,\n\t\tuseFeaturedImage,\n\t\tdimRatio,\n\t\tfocalPoint,\n\t\thasParallax,\n\t\tisDark,\n\t\tisRepeated,\n\t\tminHeight,\n\t\tminHeightUnit,\n\t\talt,\n\t\tallowedBlocks,\n\t\ttemplateLock,\n\t} = attributes;\n\n\tconst [ featuredImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\tconst media = useSelect(\n\t\t( select ) =>\n\t\t\tfeaturedImage &&\n\t\t\tselect( coreStore ).getMedia( featuredImage, { context: 'view' } ),\n\t\t[ featuredImage ]\n\t);\n\tconst mediaUrl = media?.source_url;\n\n\t// instead of destructuring the attributes\n\t// we define the url and background type\n\t// depending on the value of the useFeaturedImage flag\n\t// to preview in edit the dynamic featured image\n\tconst url = useFeaturedImage ? mediaUrl : attributes.url;\n\tconst backgroundType = useFeaturedImage\n\t\t? IMAGE_BACKGROUND_TYPE\n\t\t: attributes.backgroundType;\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } = useDispatch(\n\t\tblockEditorStore\n\t);\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst {\n\t\tgradientClass,\n\t\tgradientValue,\n\t\tsetGradient,\n\t} = __experimentalUseGradient();\n\tconst onSelectMedia = attributesFromMedia( setAttributes, dimRatio );\n\tconst isUploadingMedia = isTemporaryMedia( id, url );\n\n\tconst [ prevMinHeightValue, setPrevMinHeightValue ] = useState( minHeight );\n\tconst [ prevMinHeightUnit, setPrevMinHeightUnit ] = useState(\n\t\tminHeightUnit\n\t);\n\tconst isMinFullHeight = minHeightUnit === 'vh' && minHeight === 100;\n\n\tconst toggleMinFullHeight = () => {\n\t\tif ( isMinFullHeight ) {\n\t\t\t// If there aren't previous values, take the default ones.\n\t\t\tif ( prevMinHeightUnit === 'vh' && prevMinHeightValue === 100 ) {\n\t\t\t\treturn setAttributes( {\n\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Set the previous values of height.\n\t\t\treturn setAttributes( {\n\t\t\t\tminHeight: prevMinHeightValue,\n\t\t\t\tminHeightUnit: prevMinHeightUnit,\n\t\t\t} );\n\t\t}\n\n\t\tsetPrevMinHeightValue( minHeight );\n\t\tsetPrevMinHeightUnit( minHeightUnit );\n\n\t\t// Set full height.\n\t\treturn setAttributes( {\n\t\t\tminHeight: 100,\n\t\t\tminHeightUnit: 'vh',\n\t\t} );\n\t};\n\n\tconst toggleParallax = () => {\n\t\tsetAttributes( {\n\t\t\thasParallax: ! hasParallax,\n\t\t\t...( ! hasParallax ? { focalPoint: undefined } : {} ),\n\t\t} );\n\t};\n\n\tconst toggleIsRepeated = () => {\n\t\tsetAttributes( {\n\t\t\tisRepeated: ! isRepeated,\n\t\t} );\n\t};\n\n\tconst toggleUseFeaturedImage = () => {\n\t\tsetAttributes( {\n\t\t\tuseFeaturedImage: ! useFeaturedImage,\n\t\t\tdimRatio: dimRatio === 100 ? 50 : dimRatio,\n\t\t} );\n\t};\n\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( Array.isArray( message ) ? message[ 2 ] : message, {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst isDarkElement = useRef();\n\tconst isCoverDark = useCoverIsDark(\n\t\turl,\n\t\tdimRatio,\n\t\toverlayColor.color,\n\t\tisDarkElement\n\t);\n\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isDark: isCoverDark } );\n\t}, [ isCoverDark ] );\n\n\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\tconst minHeightWithUnit =\n\t\tminHeight && minHeightUnit\n\t\t\t? `${ minHeight }${ minHeightUnit }`\n\t\t\t: minHeight;\n\n\tconst isImgElement = ! ( hasParallax || isRepeated );\n\n\tconst style = {\n\t\t...( isImageBackground && ! isImgElement\n\t\t\t? backgroundImageStyles( url )\n\t\t\t: undefined ),\n\t\tminHeight: minHeightWithUnit || undefined,\n\t};\n\n\tconst bgStyle = { backgroundColor: overlayColor.color };\n\tconst mediaStyle = {\n\t\tobjectPosition:\n\t\t\tfocalPoint && isImgElement\n\t\t\t\t? mediaPosition( focalPoint )\n\t\t\t\t: undefined,\n\t};\n\n\tconst hasBackground = !! ( url || overlayColor.color || gradientValue );\n\tconst showFocalPointPicker =\n\t\tisVideoBackground ||\n\t\t( isImageBackground && ( ! hasParallax || isRepeated ) );\n\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst [ styleOfRef, property ] = isDarkElement.current\n\t\t\t? [ isDarkElement.current.style, 'objectPosition' ]\n\t\t\t: [ ref.current.style, 'backgroundPosition' ];\n\t\tstyleOfRef[ property ] = mediaPosition( value );\n\t};\n\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlock( clientId ).innerBlocks.length >\n\t\t\t0,\n\t\t[ clientId ]\n\t);\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<BlockAlignmentMatrixControl\n\t\t\t\t\tlabel={ __( 'Change content position' ) }\n\t\t\t\t\tvalue={ contentPosition }\n\t\t\t\t\tonChange={ ( nextPosition ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tcontentPosition: nextPosition,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tisDisabled={ ! hasInnerBlocks }\n\t\t\t\t/>\n\t\t\t\t<FullHeightAlignmentControl\n\t\t\t\t\tisActive={ isMinFullHeight }\n\t\t\t\t\tonToggle={ toggleMinFullHeight }\n\t\t\t\t\tisDisabled={ ! hasInnerBlocks }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={ postFeaturedImage }\n\t\t\t\t\tlabel={ __( 'Use featured image' ) }\n\t\t\t\t\tisPressed={ useFeaturedImage }\n\t\t\t\t\tonClick={ toggleUseFeaturedImage }\n\t\t\t\t/>\n\t\t\t\t{ ! useFeaturedImage && (\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*,video/*\"\n\t\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\t\tname={ ! url ? __( 'Add Media' ) : __( 'Replace' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t{ !! url && (\n\t\t\t\t\t<PanelBody title={ __( 'Media settings' ) }>\n\t\t\t\t\t\t{ isImageBackground && (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ hasParallax }\n\t\t\t\t\t\t\t\t\tonChange={ toggleParallax }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Repeated background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ isRepeated }\n\t\t\t\t\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showFocalPointPicker && (\n\t\t\t\t\t\t\t<FocalPointPicker\n\t\t\t\t\t\t\t\tlabel={ __( 'Focal point picker' ) }\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonChange={ ( newFocalPoint ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfocalPoint: newFocalPoint,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! useFeaturedImage &&\n\t\t\t\t\t\t\turl &&\n\t\t\t\t\t\t\tisImageBackground &&\n\t\t\t\t\t\t\tisImgElement && (\n\t\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Alt text (alternative text)'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\t\t\tonChange={ ( newAlt ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { alt: newAlt } )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if the image is purely decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<PanelRow>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\tclassName=\"block-library-cover__reset-button\"\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\turl: undefined,\n\t\t\t\t\t\t\t\t\t\tid: undefined,\n\t\t\t\t\t\t\t\t\t\tbackgroundType: undefined,\n\t\t\t\t\t\t\t\t\t\tfocalPoint: undefined,\n\t\t\t\t\t\t\t\t\t\thasParallax: undefined,\n\t\t\t\t\t\t\t\t\t\tisRepeated: undefined,\n\t\t\t\t\t\t\t\t\t\tuseFeaturedImage: false,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Clear Media' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</PanelRow>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t\t<PanelColorGradientSettings\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\ttitle={ __( 'Overlay' ) }\n\t\t\t\t\tinitialOpen={ true }\n\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcolorValue: overlayColor.color,\n\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\tonColorChange: setOverlayColor,\n\t\t\t\t\t\t\tonGradientChange: setGradient,\n\t\t\t\t\t\t\tlabel: __( 'Color' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Opacity' ) }\n\t\t\t\t\t\tvalue={ dimRatio }\n\t\t\t\t\t\tonChange={ ( newDimRation ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdimRatio: newDimRation,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\tstep={ 10 }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</PanelColorGradientSettings>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls __experimentalGroup=\"dimensions\">\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! minHeight }\n\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<CoverHeightInput\n\t\t\t\t\t\tvalue={ minHeight }\n\t\t\t\t\t\tunit={ minHeightUnit }\n\t\t\t\t\t\tonChange={ ( newMinHeight ) =>\n\t\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonUnitChange={ ( nextUnit ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tminHeightUnit: nextUnit,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst ref = useRef();\n\tconst blockProps = useBlockProps( { ref } );\n\n\t// Check for fontSize support before we pass a fontSize attribute to the innerBlocks.\n\tconst hasFontSizes = !! useSetting( 'typography.fontSizes' )?.length;\n\tconst innerBlocksTemplate = getInnerBlocksTemplate( {\n\t\tfontSize: hasFontSizes ? 'large' : undefined,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: 'wp-block-cover__inner-container',\n\t\t},\n\t\t{\n\t\t\ttemplate: innerBlocksTemplate,\n\t\t\ttemplateInsertUpdatesSelection: true,\n\t\t\tallowedBlocks,\n\t\t\ttemplateLock,\n\t\t}\n\t);\n\n\tif ( ! hasInnerBlocks && ! hasBackground ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<div\n\t\t\t\t\t{ ...blockProps }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'is-placeholder',\n\t\t\t\t\t\tblockProps.className\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<CoverPlaceholder\n\t\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tminHeight: minHeightWithUnit || undefined,\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"wp-block-cover__placeholder-background-options\">\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tdisableCustomColors={ true }\n\t\t\t\t\t\t\t\tvalue={ overlayColor.color }\n\t\t\t\t\t\t\t\tonChange={ setOverlayColor }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</CoverPlaceholder>\n\t\t\t\t\t<ResizableCover\n\t\t\t\t\t\tclassName=\"block-library-cover__resize-container\"\n\t\t\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\t\t\tsetAttributes( { minHeightUnit: 'px' } );\n\t\t\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResize={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( { minHeight: value } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResizeStop={ ( newMinHeight ) => {\n\t\t\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tshowHandle={ isSelected }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst classes = classnames(\n\t\t{\n\t\t\t'is-dark-theme': isDark,\n\t\t\t'is-light': ! isDark,\n\t\t\t'is-transient': isUploadingMedia,\n\t\t\t'has-parallax': hasParallax,\n\t\t\t'is-repeated': isRepeated,\n\t\t\t'has-custom-content-position': ! isContentPositionCenter(\n\t\t\t\tcontentPosition\n\t\t\t),\n\t\t},\n\t\tgetPositionClassName( contentPosition )\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ controls }\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ classnames( classes, blockProps.className ) }\n\t\t\t\tstyle={ { ...style, ...blockProps.style } }\n\t\t\t\tdata-url={ url }\n\t\t\t>\n\t\t\t\t<ResizableCover\n\t\t\t\t\tclassName=\"block-library-cover__resize-container\"\n\t\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\t\tsetAttributes( { minHeightUnit: 'px' } );\n\t\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonResize={ ( value ) => {\n\t\t\t\t\t\tsetAttributes( { minHeight: value } );\n\t\t\t\t\t} }\n\t\t\t\t\tonResizeStop={ ( newMinHeight ) => {\n\t\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } );\n\t\t\t\t\t} }\n\t\t\t\t\tshowHandle={ isSelected }\n\t\t\t\t/>\n\n\t\t\t\t<span\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'wp-block-cover__background',\n\t\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[ overlayColor.class ]: overlayColor.class,\n\t\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\t\t\t\t\t\t// For backwards compatibility. Former versions of the Cover Block applied\n\t\t\t\t\t\t\t// `.wp-block-cover__gradient-background` in the presence of\n\t\t\t\t\t\t\t// media, a gradient and a dim.\n\t\t\t\t\t\t\t'wp-block-cover__gradient-background':\n\t\t\t\t\t\t\t\turl && gradientValue && dimRatio !== 0,\n\t\t\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t\t\t[ gradientClass ]: gradientClass,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ { backgroundImage: gradientValue, ...bgStyle } }\n\t\t\t\t/>\n\n\t\t\t\t{ url && isImageBackground && isImgElement && (\n\t\t\t\t\t<img\n\t\t\t\t\t\tref={ isDarkElement }\n\t\t\t\t\t\tclassName=\"wp-block-cover__image-background\"\n\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ url && isVideoBackground && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tref={ isDarkElement }\n\t\t\t\t\t\tclassName=\"wp-block-cover__video-background\"\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isUploadingMedia && <Spinner /> }\n\t\t\t\t<CoverPlaceholder\n\t\t\t\t\tdisableMediaButtons\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithColors( { overlayColor: 'background-color' } ),\n] )( CoverEdit );\n"]}
|
|
@@ -6,6 +6,7 @@ import { createElement, Fragment } from "@wordpress/element";
|
|
|
6
6
|
*/
|
|
7
7
|
import { View, TouchableWithoutFeedback, InteractionManager, AccessibilityInfo, Platform } from 'react-native';
|
|
8
8
|
import Video from 'react-native-video';
|
|
9
|
+
import classnames from 'classnames/dedupe';
|
|
9
10
|
/**
|
|
10
11
|
* WordPress dependencies
|
|
11
12
|
*/
|
|
@@ -15,7 +16,7 @@ import { __ } from '@wordpress/i18n';
|
|
|
15
16
|
import { Icon, Image, ImageEditingButton, IMAGE_DEFAULT_FOCAL_POINT, ToolbarButton, Gradient, ColorPalette, ColorPicker, BottomSheetConsumer, useConvertUnitToMobile, useMobileGlobalStylesColors } from '@wordpress/components';
|
|
16
17
|
import { BlockControls, InnerBlocks, InspectorControls, MEDIA_TYPE_IMAGE, MediaPlaceholder, MediaUpload, MediaUploadProgress, getColorObjectByColorValue, getColorObjectByAttributeValues, getGradientValueBySlug, store as blockEditorStore } from '@wordpress/block-editor';
|
|
17
18
|
import { compose, withPreferredColorScheme } from '@wordpress/compose';
|
|
18
|
-
import { withSelect, withDispatch } from '@wordpress/data';
|
|
19
|
+
import { useDispatch, withSelect, withDispatch } from '@wordpress/data';
|
|
19
20
|
import { useEffect, useState, useRef, useCallback, useMemo } from '@wordpress/element';
|
|
20
21
|
import { cover as icon, replace, image, warning } from '@wordpress/icons';
|
|
21
22
|
import { getProtocol } from '@wordpress/url';
|
|
@@ -27,6 +28,7 @@ import { store as editPostStore } from '@wordpress/edit-post';
|
|
|
27
28
|
import styles from './style.scss';
|
|
28
29
|
import { attributesFromMedia, ALLOWED_MEDIA_TYPES, IMAGE_BACKGROUND_TYPE, VIDEO_BACKGROUND_TYPE, COVER_DEFAULT_HEIGHT } from './shared';
|
|
29
30
|
import Controls from './controls';
|
|
31
|
+
import useCoverIsDark from './use-cover-is-dark';
|
|
30
32
|
/**
|
|
31
33
|
* Constants
|
|
32
34
|
*/
|
|
@@ -66,7 +68,8 @@ const Cover = _ref => {
|
|
|
66
68
|
templateLock,
|
|
67
69
|
customGradient,
|
|
68
70
|
gradient,
|
|
69
|
-
overlayColor
|
|
71
|
+
overlayColor,
|
|
72
|
+
isDark
|
|
70
73
|
} = attributes;
|
|
71
74
|
const [isScreenReaderEnabled, setIsScreenReaderEnabled] = useState(false);
|
|
72
75
|
useEffect(() => {
|
|
@@ -99,20 +102,7 @@ const Cover = _ref => {
|
|
|
99
102
|
const hasBackground = !!(url || style && style.color && style.color.background || attributes.overlayColor || overlayColorValue.color || customOverlayColor || gradientValue);
|
|
100
103
|
const hasOnlyColorBackground = !url && (hasBackground || hasInnerBlocks);
|
|
101
104
|
const [isCustomColorPickerShowing, setCustomColorPickerShowing] = useState(false);
|
|
102
|
-
const openMediaOptionsRef = useRef(); //
|
|
103
|
-
// since there's no system to inherit styles yet
|
|
104
|
-
// the RichText component will check if there are
|
|
105
|
-
// parent styles for the current block. If there are,
|
|
106
|
-
// it will use that color instead.
|
|
107
|
-
|
|
108
|
-
useEffect(() => {
|
|
109
|
-
// While we don't support theme colors.
|
|
110
|
-
if (!attributes.overlayColor || !attributes.overlay && url) {
|
|
111
|
-
setAttributes({
|
|
112
|
-
childrenStyles: styles.defaultColor
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
}, [setAttributes]); // Initialize uploading flag to false, awaiting sync.
|
|
105
|
+
const openMediaOptionsRef = useRef(); // Initialize uploading flag to false, awaiting sync.
|
|
116
106
|
|
|
117
107
|
const [isUploadInProgress, setIsUploadInProgress] = useState(false); // Initialize upload failure flag to true if url is local.
|
|
118
108
|
|
|
@@ -175,6 +165,35 @@ const Cover = _ref => {
|
|
|
175
165
|
openGeneralSidebar();
|
|
176
166
|
}
|
|
177
167
|
|
|
168
|
+
const {
|
|
169
|
+
__unstableMarkNextChangeAsNotPersistent
|
|
170
|
+
} = useDispatch(blockEditorStore);
|
|
171
|
+
const isCoverDark = useCoverIsDark(isDark, url, dimRatio, overlayColorValue === null || overlayColorValue === void 0 ? void 0 : overlayColorValue.color);
|
|
172
|
+
useEffect(() => {
|
|
173
|
+
var _attributes$className;
|
|
174
|
+
|
|
175
|
+
// This side-effect should not create an undo level.
|
|
176
|
+
__unstableMarkNextChangeAsNotPersistent(); // Used to set a default color for its InnerBlocks
|
|
177
|
+
// since there's no system to inherit styles yet
|
|
178
|
+
// the RichText component will check if there are
|
|
179
|
+
// parent styles for the current block. If there are,
|
|
180
|
+
// it will use that color instead.
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
setAttributes({
|
|
184
|
+
isDark: isCoverDark,
|
|
185
|
+
childrenStyles: isCoverDark ? styles.defaultColor : styles.defaultColorLightMode
|
|
186
|
+
}); // Ensure that "is-light" is removed from "className" attribute if cover background is dark.
|
|
187
|
+
|
|
188
|
+
if (isCoverDark && (_attributes$className = attributes.className) !== null && _attributes$className !== void 0 && _attributes$className.includes('is-light')) {
|
|
189
|
+
const className = classnames(attributes.className, {
|
|
190
|
+
'is-light': false
|
|
191
|
+
});
|
|
192
|
+
setAttributes({
|
|
193
|
+
className: className !== '' ? className : undefined
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}, [isCoverDark]);
|
|
178
197
|
const backgroundColor = getStylesFromColorScheme(styles.backgroundSolid, styles.backgroundSolidDark);
|
|
179
198
|
const overlayStyles = [styles.overlay, url && {
|
|
180
199
|
opacity: dimRatio / 100
|