@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.
Files changed (269) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/audio/edit.js +3 -15
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/button/edit.native.js +7 -3
  5. package/build/button/edit.native.js.map +1 -1
  6. package/build/comment-template/edit.js +1 -3
  7. package/build/comment-template/edit.js.map +1 -1
  8. package/build/{comments-query-loop → comments}/edit/comments-inspector-controls.js +0 -0
  9. package/{build-module/comments-query-loop → build/comments}/edit/comments-inspector-controls.js.map +1 -1
  10. package/build/{comments-query-loop → comments}/edit.js +3 -3
  11. package/build/comments/edit.js.map +1 -0
  12. package/build/{comments-query-loop → comments}/index.js +1 -1
  13. package/build/comments/index.js.map +1 -0
  14. package/build/{comments-query-loop → comments}/save.js +2 -2
  15. package/build/comments/save.js.map +1 -0
  16. package/build/comments-title/edit.js +7 -5
  17. package/build/comments-title/edit.js.map +1 -1
  18. package/build/cover/edit.js +4 -71
  19. package/build/cover/edit.js.map +1 -1
  20. package/build/cover/edit.native.js +36 -15
  21. package/build/cover/edit.native.js.map +1 -1
  22. package/build/cover/transforms.js +77 -6
  23. package/build/cover/transforms.js.map +1 -1
  24. package/build/cover/use-cover-is-dark.js +81 -0
  25. package/build/cover/use-cover-is-dark.js.map +1 -0
  26. package/build/cover/use-cover-is-dark.native.js +60 -0
  27. package/build/cover/use-cover-is-dark.native.js.map +1 -0
  28. package/build/group/index.js +1 -0
  29. package/build/group/index.js.map +1 -1
  30. package/build/heading/transforms.js +8 -4
  31. package/build/heading/transforms.js.map +1 -1
  32. package/build/index.js +4 -6
  33. package/build/index.js.map +1 -1
  34. package/build/latest-posts/edit.native.js +49 -0
  35. package/build/latest-posts/edit.native.js.map +1 -1
  36. package/build/navigation/edit/index.js +5 -28
  37. package/build/navigation/edit/index.js.map +1 -1
  38. package/build/navigation/edit/inner-blocks.js +5 -7
  39. package/build/navigation/edit/inner-blocks.js.map +1 -1
  40. package/build/navigation/index.js +0 -1
  41. package/build/navigation/index.js.map +1 -1
  42. package/build/navigation/view-modal.js +25 -0
  43. package/build/navigation/view-modal.js.map +1 -1
  44. package/build/navigation-link/edit.js +29 -30
  45. package/build/navigation-link/edit.js.map +1 -1
  46. package/build/navigation-submenu/edit.js +14 -14
  47. package/build/navigation-submenu/edit.js.map +1 -1
  48. package/build/paragraph/edit.js +10 -0
  49. package/build/paragraph/edit.js.map +1 -1
  50. package/build/paragraph/use-enter.js +94 -0
  51. package/build/paragraph/use-enter.js.map +1 -0
  52. package/build/post-comment/index.js +1 -1
  53. package/build/post-comments/edit.js +120 -35
  54. package/build/post-comments/edit.js.map +1 -1
  55. package/build/post-comments/index.js +3 -2
  56. package/build/post-comments/index.js.map +1 -1
  57. package/build/post-comments-form/edit.js +38 -4
  58. package/build/post-comments-form/edit.js.map +1 -1
  59. package/build/post-comments-form/form.js +48 -0
  60. package/build/post-comments-form/form.js.map +1 -0
  61. package/build/post-comments-form/index.js +1 -0
  62. package/build/post-comments-form/index.js.map +1 -1
  63. package/build/post-content/edit.js +1 -1
  64. package/build/post-content/edit.js.map +1 -1
  65. package/build/post-excerpt/edit.js +1 -1
  66. package/build/post-excerpt/edit.js.map +1 -1
  67. package/build/post-terms/edit.js +25 -3
  68. package/build/post-terms/edit.js.map +1 -1
  69. package/build/post-terms/index.js +8 -0
  70. package/build/post-terms/index.js.map +1 -1
  71. package/build/query-no-results/edit.js +1 -1
  72. package/build/query-no-results/edit.js.map +1 -1
  73. package/build/quote/index.js +1 -0
  74. package/build/quote/index.js.map +1 -1
  75. package/build/separator/index.js +3 -0
  76. package/build/separator/index.js.map +1 -1
  77. package/build/video/edit.js +3 -7
  78. package/build/video/edit.js.map +1 -1
  79. package/build-module/audio/edit.js +3 -15
  80. package/build-module/audio/edit.js.map +1 -1
  81. package/build-module/button/edit.native.js +7 -3
  82. package/build-module/button/edit.native.js.map +1 -1
  83. package/build-module/comment-template/edit.js +1 -3
  84. package/build-module/comment-template/edit.js.map +1 -1
  85. package/build-module/{comments-query-loop → comments}/edit/comments-inspector-controls.js +0 -0
  86. package/build-module/comments/edit/comments-inspector-controls.js.map +1 -0
  87. package/build-module/{comments-query-loop → comments}/edit.js +2 -2
  88. package/build-module/comments/edit.js.map +1 -0
  89. package/build-module/{comments-query-loop → comments}/index.js +1 -1
  90. package/build-module/comments/index.js.map +1 -0
  91. package/build-module/{comments-query-loop → comments}/save.js +1 -1
  92. package/build-module/comments/save.js.map +1 -0
  93. package/build-module/comments-title/edit.js +7 -5
  94. package/build-module/comments-title/edit.js.map +1 -1
  95. package/build-module/cover/edit.js +4 -71
  96. package/build-module/cover/edit.js.map +1 -1
  97. package/build-module/cover/edit.native.js +35 -16
  98. package/build-module/cover/edit.native.js.map +1 -1
  99. package/build-module/cover/transforms.js +74 -6
  100. package/build-module/cover/transforms.js.map +1 -1
  101. package/build-module/cover/use-cover-is-dark.js +70 -0
  102. package/build-module/cover/use-cover-is-dark.js.map +1 -0
  103. package/build-module/cover/use-cover-is-dark.native.js +51 -0
  104. package/build-module/cover/use-cover-is-dark.native.js.map +1 -0
  105. package/build-module/group/index.js +1 -0
  106. package/build-module/group/index.js.map +1 -1
  107. package/build-module/heading/transforms.js +8 -4
  108. package/build-module/heading/transforms.js.map +1 -1
  109. package/build-module/index.js +3 -4
  110. package/build-module/index.js.map +1 -1
  111. package/build-module/latest-posts/edit.native.js +51 -2
  112. package/build-module/latest-posts/edit.native.js.map +1 -1
  113. package/build-module/navigation/edit/index.js +6 -28
  114. package/build-module/navigation/edit/index.js.map +1 -1
  115. package/build-module/navigation/edit/inner-blocks.js +5 -7
  116. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  117. package/build-module/navigation/index.js +0 -1
  118. package/build-module/navigation/index.js.map +1 -1
  119. package/build-module/navigation/view-modal.js +24 -0
  120. package/build-module/navigation/view-modal.js.map +1 -1
  121. package/build-module/navigation-link/edit.js +29 -30
  122. package/build-module/navigation-link/edit.js.map +1 -1
  123. package/build-module/navigation-submenu/edit.js +14 -14
  124. package/build-module/navigation-submenu/edit.js.map +1 -1
  125. package/build-module/paragraph/edit.js +9 -0
  126. package/build-module/paragraph/edit.js.map +1 -1
  127. package/build-module/paragraph/use-enter.js +81 -0
  128. package/build-module/paragraph/use-enter.js.map +1 -0
  129. package/build-module/post-comment/index.js +1 -1
  130. package/build-module/post-comments/edit.js +120 -37
  131. package/build-module/post-comments/edit.js.map +1 -1
  132. package/build-module/post-comments/index.js +3 -2
  133. package/build-module/post-comments/index.js.map +1 -1
  134. package/build-module/post-comments-form/edit.js +38 -6
  135. package/build-module/post-comments-form/edit.js.map +1 -1
  136. package/build-module/post-comments-form/form.js +39 -0
  137. package/build-module/post-comments-form/form.js.map +1 -0
  138. package/build-module/post-comments-form/index.js +1 -0
  139. package/build-module/post-comments-form/index.js.map +1 -1
  140. package/build-module/post-content/edit.js +1 -1
  141. package/build-module/post-content/edit.js.map +1 -1
  142. package/build-module/post-excerpt/edit.js +1 -1
  143. package/build-module/post-excerpt/edit.js.map +1 -1
  144. package/build-module/post-terms/edit.js +26 -4
  145. package/build-module/post-terms/edit.js.map +1 -1
  146. package/build-module/post-terms/index.js +8 -0
  147. package/build-module/post-terms/index.js.map +1 -1
  148. package/build-module/query-no-results/edit.js +1 -1
  149. package/build-module/query-no-results/edit.js.map +1 -1
  150. package/build-module/quote/index.js +1 -0
  151. package/build-module/quote/index.js.map +1 -1
  152. package/build-module/separator/index.js +3 -0
  153. package/build-module/separator/index.js.map +1 -1
  154. package/build-module/video/edit.js +3 -7
  155. package/build-module/video/edit.js.map +1 -1
  156. package/build-style/comment-content/style-rtl.css +81 -0
  157. package/build-style/comment-content/style.css +81 -0
  158. package/build-style/{comments-query-loop → comments}/editor-rtl.css +0 -0
  159. package/build-style/{comments-query-loop → comments}/editor.css +0 -0
  160. package/build-style/cover/style-rtl.css +1 -5
  161. package/build-style/cover/style.css +1 -5
  162. package/build-style/editor-rtl.css +12 -4
  163. package/build-style/editor.css +12 -4
  164. package/build-style/latest-posts/style-rtl.css +2 -0
  165. package/build-style/latest-posts/style.css +4 -0
  166. package/build-style/navigation/style-rtl.css +3 -0
  167. package/build-style/navigation/style.css +3 -0
  168. package/build-style/post-comments/editor-rtl.css +79 -0
  169. package/build-style/post-comments/editor.css +79 -0
  170. package/build-style/post-comments/style-rtl.css +6 -4
  171. package/build-style/post-comments/style.css +6 -4
  172. package/build-style/post-comments-form/editor-rtl.css +79 -0
  173. package/build-style/post-comments-form/editor.css +79 -0
  174. package/build-style/style-rtl.css +12 -9
  175. package/build-style/style.css +14 -9
  176. package/package.json +28 -28
  177. package/src/audio/edit.js +2 -7
  178. package/src/button/edit.native.js +6 -3
  179. package/src/comment-author-name/index.php +7 -5
  180. package/src/comment-content/index.php +25 -3
  181. package/src/comment-content/style.scss +5 -0
  182. package/src/comment-edit-link/index.php +1 -4
  183. package/src/comment-reply-link/index.php +1 -4
  184. package/src/comment-template/edit.js +1 -5
  185. package/src/comment-template/index.php +4 -0
  186. package/src/{comments-query-loop → comments}/block.json +1 -1
  187. package/src/{comments-query-loop → comments}/edit/comments-inspector-controls.js +0 -0
  188. package/src/{comments-query-loop → comments}/edit.js +2 -1
  189. package/src/{comments-query-loop → comments}/editor.scss +0 -0
  190. package/src/{comments-query-loop → comments}/index.js +0 -0
  191. package/src/{comments-query-loop → comments}/save.js +1 -3
  192. package/src/comments-pagination/index.php +4 -0
  193. package/src/comments-title/edit.js +20 -4
  194. package/src/comments-title/index.php +18 -7
  195. package/src/cover/edit.js +2 -67
  196. package/src/cover/edit.native.js +40 -13
  197. package/src/cover/index.php +1 -1
  198. package/src/cover/style.native.scss +4 -0
  199. package/src/cover/style.scss +1 -5
  200. package/src/cover/test/__snapshots__/edit.native.js.snap +6 -6
  201. package/src/cover/test/transforms.js +301 -0
  202. package/src/cover/transforms.js +112 -7
  203. package/src/cover/use-cover-is-dark.js +71 -0
  204. package/src/cover/use-cover-is-dark.native.js +51 -0
  205. package/src/editor.scss +3 -1
  206. package/src/group/block.json +1 -0
  207. package/src/heading/transforms.js +4 -3
  208. package/src/index.js +3 -6
  209. package/src/latest-posts/edit.native.js +56 -1
  210. package/src/latest-posts/style.scss +4 -0
  211. package/src/navigation/block.json +0 -1
  212. package/src/navigation/edit/index.js +6 -36
  213. package/src/navigation/edit/inner-blocks.js +5 -7
  214. package/src/navigation/style.scss +3 -0
  215. package/src/navigation/view-modal.js +32 -0
  216. package/src/navigation-link/edit.js +40 -43
  217. package/src/navigation-submenu/edit.js +13 -17
  218. package/src/paragraph/edit.js +6 -0
  219. package/src/paragraph/use-enter.js +103 -0
  220. package/src/post-author/index.php +1 -1
  221. package/src/post-comment/block.json +1 -1
  222. package/src/post-comments/block.json +3 -2
  223. package/src/post-comments/edit.js +174 -44
  224. package/src/post-comments/editor.scss +3 -0
  225. package/src/post-comments/index.php +2 -0
  226. package/src/post-comments/style.scss +6 -7
  227. package/src/post-comments-form/block.json +1 -0
  228. package/src/post-comments-form/edit.js +52 -23
  229. package/src/post-comments-form/editor.scss +3 -0
  230. package/src/post-comments-form/form.js +43 -0
  231. package/src/post-comments-form/index.php +9 -2
  232. package/src/post-content/edit.js +15 -1
  233. package/src/post-excerpt/edit.js +14 -1
  234. package/src/post-terms/block.json +8 -0
  235. package/src/post-terms/edit.js +28 -1
  236. package/src/post-terms/index.php +12 -2
  237. package/src/query-no-results/edit.js +1 -1
  238. package/src/quote/block.json +1 -0
  239. package/src/separator/block.json +3 -0
  240. package/src/video/edit.js +3 -4
  241. package/build/comments-query-loop/edit/comments-inspector-controls.js.map +0 -1
  242. package/build/comments-query-loop/edit.js.map +0 -1
  243. package/build/comments-query-loop/index.js.map +0 -1
  244. package/build/comments-query-loop/save.js.map +0 -1
  245. package/build/navigation-area/edit.js +0 -110
  246. package/build/navigation-area/edit.js.map +0 -1
  247. package/build/navigation-area/index.js +0 -62
  248. package/build/navigation-area/index.js.map +0 -1
  249. package/build/navigation-area/inner-blocks.js +0 -34
  250. package/build/navigation-area/inner-blocks.js.map +0 -1
  251. package/build/navigation-area/save.js +0 -18
  252. package/build/navigation-area/save.js.map +0 -1
  253. package/build-module/comments-query-loop/edit.js.map +0 -1
  254. package/build-module/comments-query-loop/index.js.map +0 -1
  255. package/build-module/comments-query-loop/save.js.map +0 -1
  256. package/build-module/navigation-area/edit.js +0 -94
  257. package/build-module/navigation-area/edit.js.map +0 -1
  258. package/build-module/navigation-area/index.js +0 -48
  259. package/build-module/navigation-area/index.js.map +0 -1
  260. package/build-module/navigation-area/inner-blocks.js +0 -26
  261. package/build-module/navigation-area/inner-blocks.js.map +0 -1
  262. package/build-module/navigation-area/save.js +0 -10
  263. package/build-module/navigation-area/save.js.map +0 -1
  264. package/src/navigation-area/block.json +0 -23
  265. package/src/navigation-area/edit.js +0 -111
  266. package/src/navigation-area/index.js +0 -26
  267. package/src/navigation-area/index.php +0 -22
  268. package/src/navigation-area/inner-blocks.js +0 -24
  269. 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 FastAverageColor from 'fast-average-color';
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, __experimentalBoxControl as BoxControl, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalUnitControl as UnitControl, __experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue } from '@wordpress/components';
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, _styleAttribute$spaci, _styleAttribute$visua;
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":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AACA,SAASC,MAAT,QAAuB,QAAvB;AACA,OAAOC,WAAP,MAAwB,sBAAxB;AAEA;AACA;AACA;;AACA,SAASC,aAAT,EAAwBC,KAAK,IAAIC,SAAjC,QAAkD,sBAAlD;AACA,SACCC,QADD,EAECC,SAFD,EAGCC,MAHD,EAICC,QAJD,EAKCC,OALD,QAMO,oBANP;AAOA,SACCC,WADD,EAECC,MAFD,EAGCC,YAHD,EAICC,gBAJD,EAKCC,SALD,EAMCC,QAND,EAOCC,YAPD,EAQCC,YARD,EASCC,OATD,EAUCC,eAVD,EAWCC,aAXD,EAYCC,aAZD,EAaCC,4BAA4B,IAAIC,cAbjC,EAcCC,4BAA4B,IAAIC,cAdjC,EAeCC,yBAAyB,IAAIC,WAf9B,EAgBCC,8CAA8C,IAAIC,gCAhBnD,QAiBO,uBAjBP;AAkBA,SAASC,OAAT,EAAkBC,aAAlB,QAAuC,oBAAvC;AACA,SACCC,aADD,EAECC,SAFD,EAGCC,iBAHD,EAICC,gBAJD,EAKCC,gBALD,EAMCC,UAND,EAOCC,YAPD,EAQCC,aARD,EASCC,UATD,EAUCC,mBAVD,EAWCC,yBAXD,EAYCC,wCAAwC,IAAIC,0BAZ7C,EAaCC,yCAAyC,IAAIC,2BAb9C,EAcCC,4CAA4C,IAAIC,0BAdjD,EAeC7C,KAAK,IAAI8C,gBAfV,QAgBO,yBAhBP;AAiBA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,iBAAT,EAA4BC,KAAK,IAAIC,IAArC,QAAiD,kBAAjD;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASrD,KAAK,IAAIsD,YAAlB,QAAsC,oBAAtC;AAEA;AACA;AACA;;AACA,SACCC,mBADD,EAECC,mBAFD,EAGCC,qBAHD,EAICC,qBAJD,EAKCC,gBALD,EAMCC,qBAND,EAOCC,eAPD,EAQCC,uBARD,EASCC,oBATD,QAUO,UAVP;AAWA,OAAOC,cAAP,MAA2B,qBAA3B;AAEAnE,MAAM,CAAE,CAAEC,WAAF,CAAF,CAAN;;AAEA,SAASmE,sBAAT,CAAiCC,UAAjC,EAA8C;AAC7C,SAAO,CACN,CACC,gBADD,EAEC;AACCC,IAAAA,KAAK,EAAE,QADR;AAECC,IAAAA,WAAW,EAAErB,EAAE,CAAE,cAAF,CAFhB;AAGC,OAAGmB;AAHJ,GAFD,CADM,CAAP;AAUA;;AAED,SAASG,gBAAT,OAKI;AAAA,MALuB;AAC1BC,IAAAA,QAD0B;AAE1BC,IAAAA,YAF0B;AAG1BC,IAAAA,IAAI,GAAG,IAHmB;AAI1BC,IAAAA,KAAK,GAAG;AAJkB,GAKvB;AACH,QAAMC,UAAU,GAAG9C,aAAa,CAAEJ,WAAF,CAAhC;AACA,QAAMmD,OAAO,GAAI,4BAA4BD,UAAY,EAAzD;AACA,QAAME,IAAI,GAAGJ,IAAI,KAAK,IAAtB;AAEA,QAAMK,KAAK,GAAGzD,cAAc,CAAE;AAC7B0D,IAAAA,cAAc,EAAEzC,UAAU,CAAE,eAAF,CAAV,IAAiC,CAChD,IADgD,EAEhD,IAFgD,EAGhD,KAHgD,EAIhD,IAJgD,EAKhD,IALgD,CADpB;AAQ7B0C,IAAAA,aAAa,EAAE;AAAEC,MAAAA,EAAE,EAAE,GAAN;AAAW,WAAK,EAAhB;AAAoBC,MAAAA,EAAE,EAAE,EAAxB;AAA4BC,MAAAA,GAAG,EAAE,EAAjC;AAAqCC,MAAAA,EAAE,EAAE,EAAzC;AAA6CC,MAAAA,EAAE,EAAE;AAAjD;AARc,GAAF,CAA5B;;AAWA,QAAMC,cAAc,GAAKC,gBAAF,IAAwB;AAC9C,UAAMC,UAAU,GACfD,gBAAgB,KAAK,EAArB,GACGE,UAAU,CAAEF,gBAAF,CADb,GAEGG,SAHJ;;AAKA,QAAKC,KAAK,CAAEH,UAAF,CAAL,IAAuBA,UAAU,KAAKE,SAA3C,EAAuD;AACtD;AACA;;AACDnB,IAAAA,QAAQ,CAAEiB,UAAF,CAAR;AACA,GAVD;;AAYA,QAAMI,aAAa,GAAGrF,OAAO,CAAE,MAAM;AACpC,UAAM,CAAEsF,cAAF,IAAqBlE,gCAAgC,CAAE+C,KAAF,CAA3D;AACA,WAAO,CAAEmB,cAAF,EAAkBpB,IAAlB,EAAyBqB,IAAzB,CAA+B,EAA/B,CAAP;AACA,GAH4B,EAG1B,CAAErB,IAAF,EAAQC,KAAR,CAH0B,CAA7B;AAKA,QAAMqB,GAAG,GAAGlB,IAAI,GAAGjB,gBAAH,GAAsB,CAAtC;AAEA,SACC,cAAC,WAAD;AAAa,IAAA,KAAK,EAAGZ,EAAE,CAAE,yBAAF,CAAvB;AAAuD,IAAA,EAAE,EAAG4B;AAA5D,KACC,cAAC,WAAD;AACC,IAAA,EAAE,EAAGA,OADN;AAEC,IAAA,wBAAwB,MAFzB;AAGC,IAAA,GAAG,EAAGmB,GAHP;AAIC,IAAA,QAAQ,EAAGT,cAJZ;AAKC,IAAA,YAAY,EAAGd,YALhB;AAMC,IAAA,KAAK,EAAG;AAAEwB,MAAAA,QAAQ,EAAE;AAAZ,KANT;AAOC,IAAA,KAAK,EAAGlB,KAPT;AAQC,IAAA,KAAK,EAAGc;AART,IADD,CADD;AAcA;;AAED,MAAMK,2BAA2B,GAAG;AACnCC,EAAAA,GAAG,EAAE,KAD8B;AAEnCC,EAAAA,KAAK,EAAE,KAF4B;AAGnCC,EAAAA,MAAM,EAAE,IAH2B;AAInCC,EAAAA,IAAI,EAAE,KAJ6B;AAKnCC,EAAAA,QAAQ,EAAE,KALyB;AAMnCC,EAAAA,WAAW,EAAE,KANsB;AAOnCC,EAAAA,UAAU,EAAE,KAPuB;AAQnCC,EAAAA,OAAO,EAAE;AAR0B,CAApC;;AAWA,SAASC,cAAT,QAMI;AAAA,MANqB;AACxBC,IAAAA,SADwB;AAExBC,IAAAA,aAFwB;AAGxBC,IAAAA,QAHwB;AAIxBC,IAAAA,YAJwB;AAKxB,OAAGC;AALqB,GAMrB;AACH,QAAM,CAAEC,UAAF,EAAcC,aAAd,IAAgC3G,QAAQ,CAAE,KAAF,CAA9C;AAEA,SACC,cAAC,YAAD;AACC,IAAA,SAAS,EAAGT,UAAU,CAAE8G,SAAF,EAAa;AAClC,qBAAeK;AADmB,KAAb,CADvB;AAIC,IAAA,MAAM,EAAGf,2BAJV;AAKC,IAAA,aAAa,EAAG,CAAEiB,MAAF,EAAUC,UAAV,EAAsBC,GAAtB,KAA+B;AAC9CR,MAAAA,aAAa,CAAEQ,GAAG,CAACC,YAAN,CAAb;AACAR,MAAAA,QAAQ,CAAEO,GAAG,CAACC,YAAN,CAAR;AACA,KARF;AASC,IAAA,QAAQ,EAAG,CAAEH,MAAF,EAAUC,UAAV,EAAsBC,GAAtB,KAA+B;AACzCP,MAAAA,QAAQ,CAAEO,GAAG,CAACC,YAAN,CAAR;;AACA,UAAK,CAAEL,UAAP,EAAoB;AACnBC,QAAAA,aAAa,CAAE,IAAF,CAAb;AACA;AACD,KAdF;AAeC,IAAA,YAAY,EAAG,CAAEC,MAAF,EAAUC,UAAV,EAAsBC,GAAtB,KAA+B;AAC7CN,MAAAA,YAAY,CAAEM,GAAG,CAACC,YAAN,CAAZ;AACAJ,MAAAA,aAAa,CAAE,KAAF,CAAb;AACA;AAlBF,KAmBMF,KAnBN,EADD;AAuBA;;AAED,SAASO,aAAT,QAAmC;AAAA,MAAX;AAAEC,IAAAA,CAAF;AAAKC,IAAAA;AAAL,GAAW;AAClC,SAAQ,GAAGC,IAAI,CAACC,KAAL,CAAYH,CAAC,GAAG,GAAhB,CAAuB,KAAKE,IAAI,CAACC,KAAL,CAAYF,CAAC,GAAG,GAAhB,CAAuB,GAA9D;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMG,gBAAgB,GAAG,CAAEC,EAAF,EAAMC,GAAN,KAAe,CAAED,EAAF,IAAQtE,SAAS,CAAEuE,GAAF,CAAzD;;AAEA,SAASC,gBAAT,QAMI;AAAA,MANuB;AAC1BC,IAAAA,mBAAmB,GAAG,KADI;AAE1BC,IAAAA,QAF0B;AAG1BC,IAAAA,aAH0B;AAI1BC,IAAAA,OAJ0B;AAK1BC,IAAAA;AAL0B,GAMvB;AACH,SACC,cAAC,gBAAD;AACC,IAAA,IAAI,EAAG,cAAC,SAAD;AAAW,MAAA,IAAI,EAAG9E;AAAlB,MADR;AAEC,IAAA,MAAM,EAAG;AACR+E,MAAAA,KAAK,EAAEpF,EAAE,CAAE,OAAF,CADD;AAERqF,MAAAA,YAAY,EAAErF,EAAE,CACf,oFADe;AAFR,KAFV;AAQC,IAAA,QAAQ,EAAGiF,aARZ;AASC,IAAA,MAAM,EAAC,iBATR;AAUC,IAAA,YAAY,EAAGzE,mBAVhB;AAWC,IAAA,mBAAmB,EAAGuE,mBAXvB;AAYC,IAAA,OAAO,EAAGG,OAZX;AAaC,IAAA,KAAK,EAAGC;AAbT,KAeGH,QAfH,CADD;AAmBA;;AAED,SAASM,SAAT,QASI;AAAA;;AAAA,MATgB;AACnBnE,IAAAA,UADmB;AAEnBoE,IAAAA,QAFmB;AAGnBC,IAAAA,UAHmB;AAInBC,IAAAA,YAJmB;AAKnBC,IAAAA,aALmB;AAMnBC,IAAAA,eANmB;AAOnBC,IAAAA,eAPmB;AAQnBC,IAAAA,OAAO,EAAE;AAAEC,MAAAA,MAAF;AAAUC,MAAAA;AAAV;AARU,GAShB;AACH,QAAM;AACLC,IAAAA,eADK;AAELpB,IAAAA,EAFK;AAGLqB,IAAAA,gBAHK;AAILC,IAAAA,QAJK;AAKLC,IAAAA,UALK;AAMLC,IAAAA,WANK;AAOLC,IAAAA,MAPK;AAQLC,IAAAA,UARK;AASLC,IAAAA,SATK;AAULC,IAAAA,aAVK;AAWLC,IAAAA,GAXK;AAYLC,IAAAA,aAZK;AAaLC,IAAAA;AAbK,MAcFxF,UAdJ;AAgBA,QAAM,CAAEyF,aAAF,IAAoB5J,aAAa,CACtC,UADsC,EAEtC+I,QAFsC,EAGtC,gBAHsC,EAItCD,MAJsC,CAAvC;AAOA,QAAMe,KAAK,GAAG5G,SAAS,CACpB6G,MAAF,IACCF,aAAa,IACbE,MAAM,CAAE5J,SAAF,CAAN,CAAoB6J,QAApB,CAA8BH,aAA9B,EAA6C;AAAEf,IAAAA,OAAO,EAAE;AAAX,GAA7C,CAHqB,EAItB,CAAEe,aAAF,CAJsB,CAAvB;AAMA,QAAMI,QAAQ,GAAGH,KAAH,aAAGA,KAAH,uBAAGA,KAAK,CAAEI,UAAxB,CA9BG,CAgCH;AACA;AACA;AACA;;AACA,QAAMpC,GAAG,GAAGoB,gBAAgB,GAAGe,QAAH,GAAc7F,UAAU,CAAC0D,GAArD;AACA,QAAMqC,cAAc,GAAGjB,gBAAgB,GACpCvF,qBADoC,GAEpCS,UAAU,CAAC+F,cAFd;AAIA,QAAM;AAAEC,IAAAA;AAAF,MAA8CjH,WAAW,CAC9DH,gBAD8D,CAA/D;AAGA,QAAM;AAAEqH,IAAAA;AAAF,MAAwBlH,WAAW,CAAEK,YAAF,CAAzC;;AACA,QAAM;AACL8G,IAAAA,aADK;AAELC,IAAAA,aAFK;AAGLC,IAAAA;AAHK,MAIF/H,yBAAyB,EAJ7B;;AAKA,QAAMyF,aAAa,GAAGxE,mBAAmB,CAAEiF,aAAF,EAAiBQ,QAAjB,CAAzC;AACA,QAAMsB,gBAAgB,GAAG7C,gBAAgB,CAAEC,EAAF,EAAMC,GAAN,CAAzC;AAEA,QAAM,CAAE4C,kBAAF,EAAsBC,qBAAtB,IAAgDpK,QAAQ,CAAEiJ,SAAF,CAA9D;AACA,QAAM,CAAEoB,iBAAF,EAAqBC,oBAArB,IAA8CtK,QAAQ,CAC3DkJ,aAD2D,CAA5D;AAGA,QAAMqB,eAAe,GAAGrB,aAAa,KAAK,IAAlB,IAA0BD,SAAS,KAAK,GAAhE;;AAEA,QAAMuB,mBAAmB,GAAG,MAAM;AACjC,QAAKD,eAAL,EAAuB;AACtB;AACA,UAAKF,iBAAiB,KAAK,IAAtB,IAA8BF,kBAAkB,KAAK,GAA1D,EAAgE;AAC/D,eAAO/B,aAAa,CAAE;AACrBa,UAAAA,SAAS,EAAE7D,SADU;AAErB8D,UAAAA,aAAa,EAAE9D;AAFM,SAAF,CAApB;AAIA,OAPqB,CAStB;;;AACA,aAAOgD,aAAa,CAAE;AACrBa,QAAAA,SAAS,EAAEkB,kBADU;AAErBjB,QAAAA,aAAa,EAAEmB;AAFM,OAAF,CAApB;AAIA;;AAEDD,IAAAA,qBAAqB,CAAEnB,SAAF,CAArB;AACAqB,IAAAA,oBAAoB,CAAEpB,aAAF,CAApB,CAlBiC,CAoBjC;;AACA,WAAOd,aAAa,CAAE;AACrBa,MAAAA,SAAS,EAAE,GADU;AAErBC,MAAAA,aAAa,EAAE;AAFM,KAAF,CAApB;AAIA,GAzBD;;AA2BA,QAAMuB,cAAc,GAAG,MAAM;AAC5BrC,IAAAA,aAAa,CAAE;AACdU,MAAAA,WAAW,EAAE,CAAEA,WADD;AAEd,UAAK,CAAEA,WAAF,GAAgB;AAAED,QAAAA,UAAU,EAAEzD;AAAd,OAAhB,GAA4C,EAAjD;AAFc,KAAF,CAAb;AAIA,GALD;;AAOA,QAAMsF,gBAAgB,GAAG,MAAM;AAC9BtC,IAAAA,aAAa,CAAE;AACdY,MAAAA,UAAU,EAAE,CAAEA;AADA,KAAF,CAAb;AAGA,GAJD;;AAMA,QAAM2B,sBAAsB,GAAG,MAAM;AACpCvC,IAAAA,aAAa,CAAE;AACdO,MAAAA,gBAAgB,EAAE,CAAEA,gBADN;AAEdC,MAAAA,QAAQ,EAAEA,QAAQ,KAAK,GAAb,GAAmB,EAAnB,GAAwBA;AAFpB,KAAF,CAAb;AAIA,GALD;;AAOA,QAAMgC,aAAa,GAAKC,OAAF,IAAe;AACpCf,IAAAA,iBAAiB,CAAEgB,KAAK,CAACC,OAAN,CAAeF,OAAf,IAA2BA,OAAO,CAAE,CAAF,CAAlC,GAA0CA,OAA5C,EAAqD;AACrEG,MAAAA,IAAI,EAAE;AAD+D,KAArD,CAAjB;AAGA,GAJD;;AAMA,QAAMC,aAAa,GAAGlL,MAAM,EAA5B;AACA,QAAMmL,WAAW,GAAGvH,cAAc,CACjC4D,GADiC,EAEjCqB,QAFiC,EAGjCT,YAAY,CAACgD,KAHoB,EAIjCF,aAJiC,CAAlC;AAOAnL,EAAAA,SAAS,CAAE,MAAM;AAChB;AACA+J,IAAAA,uCAAuC;;AACvCzB,IAAAA,aAAa,CAAE;AAAEW,MAAAA,MAAM,EAAEmC;AAAV,KAAF,CAAb;AACA,GAJQ,EAIN,CAAEA,WAAF,CAJM,CAAT;AAMA,QAAME,iBAAiB,GAAGhI,qBAAqB,KAAKwG,cAApD;AACA,QAAMyB,iBAAiB,GAAGhI,qBAAqB,KAAKuG,cAApD;AAEA,QAAM0B,iBAAiB,GACtBrC,SAAS,IAAIC,aAAb,GACI,GAAGD,SAAW,GAAGC,aAAe,EADpC,GAEGD,SAHJ;AAKA,QAAMsC,YAAY,GAAG,EAAIzC,WAAW,IAAIE,UAAnB,CAArB;AAEA,QAAMnB,KAAK,GAAG,EACb,IAAKuD,iBAAiB,IAAI,CAAEG,YAAvB,GACFhI,qBAAqB,CAAEgE,GAAF,CADnB,GAEFnC,SAFH,CADa;AAIb6D,IAAAA,SAAS,EAAEqC,iBAAiB,IAAIlG;AAJnB,GAAd;AAOA,QAAMoG,OAAO,GAAG;AAAEC,IAAAA,eAAe,EAAEtD,YAAY,CAACgD;AAAhC,GAAhB;AACA,QAAMO,UAAU,GAAG;AAClBC,IAAAA,cAAc,EACb9C,UAAU,IAAI0C,YAAd,GACGvE,aAAa,CAAE6B,UAAF,CADhB,GAEGzD;AAJc,GAAnB;AAOA,QAAMwG,aAAa,GAAG,CAAC,EAAIrE,GAAG,IAAIY,YAAY,CAACgD,KAApB,IAA6BnB,aAAjC,CAAvB;AACA,QAAM6B,oBAAoB,GACzBR,iBAAiB,IACfD,iBAAiB,KAAM,CAAEtC,WAAF,IAAiBE,UAAvB,CAFpB;;AAIA,QAAM8C,2BAA2B,GAAK1H,KAAF,IAAa;AAChD,UAAM,CAAE2H,UAAF,EAAcC,QAAd,IAA2Bf,aAAa,CAACgB,OAAd,GAC9B,CAAEhB,aAAa,CAACgB,OAAd,CAAsBpE,KAAxB,EAA+B,gBAA/B,CAD8B,GAE9B,CAAEqE,GAAG,CAACD,OAAJ,CAAYpE,KAAd,EAAqB,oBAArB,CAFH;AAGAkE,IAAAA,UAAU,CAAEC,QAAF,CAAV,GAAyBhF,aAAa,CAAE5C,KAAF,CAAtC;AACA,GALD;;AAOA,QAAM+H,cAAc,GAAGxJ,SAAS,CAC7B6G,MAAF,IACCA,MAAM,CAAE/G,gBAAF,CAAN,CAA2B2J,QAA3B,CAAqCnE,QAArC,EAAgDoE,WAAhD,CAA4DC,MAA5D,GACA,CAH8B,EAI/B,CAAErE,QAAF,CAJ+B,CAAhC;AAOA,QAAMsE,QAAQ,GACb,8BACC,cAAC,aAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,cAAC,2BAAD;AACC,IAAA,KAAK,EAAG7J,EAAE,CAAE,yBAAF,CADX;AAEC,IAAA,KAAK,EAAGgG,eAFT;AAGC,IAAA,QAAQ,EAAK8D,YAAF,IACVpE,aAAa,CAAE;AACdM,MAAAA,eAAe,EAAE8D;AADH,KAAF,CAJf;AAQC,IAAA,UAAU,EAAG,CAAEL;AARhB,IADD,EAWC,cAAC,0BAAD;AACC,IAAA,QAAQ,EAAG5B,eADZ;AAEC,IAAA,QAAQ,EAAGC,mBAFZ;AAGC,IAAA,UAAU,EAAG,CAAE2B;AAHhB,IAXD,CADD,EAkBC,cAAC,aAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,cAAC,aAAD;AACC,IAAA,IAAI,EAAGtJ,iBADR;AAEC,IAAA,KAAK,EAAGH,EAAE,CAAE,oBAAF,CAFX;AAGC,IAAA,SAAS,EAAGiG,gBAHb;AAIC,IAAA,OAAO,EAAGgC;AAJX,IADD,EAOG,CAAEhC,gBAAF,IACD,cAAC,gBAAD;AACC,IAAA,OAAO,EAAGrB,EADX;AAEC,IAAA,QAAQ,EAAGC,GAFZ;AAGC,IAAA,YAAY,EAAGrE,mBAHhB;AAIC,IAAA,MAAM,EAAC,iBAJR;AAKC,IAAA,QAAQ,EAAGyE,aALZ;AAMC,IAAA,IAAI,EAAG,CAAEJ,GAAF,GAAQ7E,EAAE,CAAE,WAAF,CAAV,GAA4BA,EAAE,CAAE,SAAF;AANtC,IARF,CAlBD,EAoCC,cAAC,iBAAD,QACG,CAAC,CAAE6E,GAAH,IACD,cAAC,SAAD;AAAW,IAAA,KAAK,EAAG7E,EAAE,CAAE,gBAAF;AAArB,KACG0I,iBAAiB,IAClB,cAAC,QAAD,QACC,cAAC,aAAD;AACC,IAAA,KAAK,EAAG1I,EAAE,CAAE,kBAAF,CADX;AAEC,IAAA,OAAO,EAAGoG,WAFX;AAGC,IAAA,QAAQ,EAAG2B;AAHZ,IADD,EAOC,cAAC,aAAD;AACC,IAAA,KAAK,EAAG/H,EAAE,CAAE,qBAAF,CADX;AAEC,IAAA,OAAO,EAAGsG,UAFX;AAGC,IAAA,QAAQ,EAAG0B;AAHZ,IAPD,CAFF,EAgBGmB,oBAAoB,IACrB,cAAC,gBAAD;AACC,IAAA,KAAK,EAAGnJ,EAAE,CAAE,oBAAF,CADX;AAEC,IAAA,GAAG,EAAG6E,GAFP;AAGC,IAAA,KAAK,EAAGsB,UAHT;AAIC,IAAA,WAAW,EAAGiD,2BAJf;AAKC,IAAA,MAAM,EAAGA,2BALV;AAMC,IAAA,QAAQ,EAAKW,aAAF,IACVrE,aAAa,CAAE;AACdS,MAAAA,UAAU,EAAE4D;AADE,KAAF;AAPf,IAjBF,EA8BG,CAAE9D,gBAAF,IACDpB,GADC,IAED6D,iBAFC,IAGDG,YAHC,IAIA,cAAC,eAAD;AACC,IAAA,KAAK,EAAG7I,EAAE,CACT,6BADS,CADX;AAIC,IAAA,KAAK,EAAGyG,GAJT;AAKC,IAAA,QAAQ,EAAKuD,MAAF,IACVtE,aAAa,CAAE;AAAEe,MAAAA,GAAG,EAAEuD;AAAP,KAAF,CANf;AAQC,IAAA,IAAI,EACH,8BACC,cAAC,YAAD;AAAc,MAAA,IAAI,EAAC;AAAnB,OACGhK,EAAE,CACH,mCADG,CADL,CADD,EAMGA,EAAE,CACH,gDADG,CANL;AATF,IAlCH,EAwDC,cAAC,QAAD,QACC,cAAC,MAAD;AACC,IAAA,OAAO,EAAC,WADT;AAEC,IAAA,OAAO,MAFR;AAGC,IAAA,SAAS,EAAC,mCAHX;AAIC,IAAA,OAAO,EAAG,MACT0F,aAAa,CAAE;AACdb,MAAAA,GAAG,EAAEnC,SADS;AAEdkC,MAAAA,EAAE,EAAElC,SAFU;AAGdwE,MAAAA,cAAc,EAAExE,SAHF;AAIdyD,MAAAA,UAAU,EAAEzD,SAJE;AAKd0D,MAAAA,WAAW,EAAE1D,SALC;AAMd4D,MAAAA,UAAU,EAAE5D,SANE;AAOduD,MAAAA,gBAAgB,EAAE;AAPJ,KAAF;AALf,KAgBGjG,EAAE,CAAE,aAAF,CAhBL,CADD,CAxDD,CAFF,EAgFC,cAAC,0BAAD;AACC,IAAA,gCAAgC,MADjC;AAEC,IAAA,iCAAiC,MAFlC;AAGC,IAAA,KAAK,EAAGA,EAAE,CAAE,SAAF,CAHX;AAIC,IAAA,WAAW,EAAG,IAJf;AAKC,IAAA,QAAQ,EAAG,CACV;AACCiK,MAAAA,UAAU,EAAExE,YAAY,CAACgD,KAD1B;AAECnB,MAAAA,aAFD;AAGC4C,MAAAA,aAAa,EAAEvE,eAHhB;AAICwE,MAAAA,gBAAgB,EAAE5C,WAJnB;AAKC6C,MAAAA,KAAK,EAAEpK,EAAE,CAAE,OAAF;AALV,KADU;AALZ,KAeC,cAAC,YAAD;AACC,IAAA,KAAK,EAAGA,EAAE,CAAE,SAAF,CADX;AAEC,IAAA,KAAK,EAAGkG,QAFT;AAGC,IAAA,QAAQ,EAAKmE,YAAF,IACV3E,aAAa,CAAE;AACdQ,MAAAA,QAAQ,EAAEmE;AADI,KAAF,CAJf;AAQC,IAAA,GAAG,EAAG,CARP;AASC,IAAA,GAAG,EAAG,GATP;AAUC,IAAA,IAAI,EAAG,EAVR;AAWC,IAAA,QAAQ;AAXT,IAfD,CAhFD,CApCD,EAkJC,cAAC,iBAAD;AAAmB,IAAA,mBAAmB,EAAC;AAAvC,KACC,cAAC,cAAD;AACC,IAAA,QAAQ,EAAG,MAAM,CAAC,CAAE9D,SADrB;AAEC,IAAA,KAAK,EAAGvG,EAAE,CAAE,gBAAF,CAFX;AAGC,IAAA,UAAU,EAAG,MACZ0F,aAAa,CAAE;AACda,MAAAA,SAAS,EAAE7D,SADG;AAEd8D,MAAAA,aAAa,EAAE9D;AAFD,KAAF,CAJf;AASC,IAAA,cAAc,EAAG,OAAQ;AACxB6D,MAAAA,SAAS,EAAE7D,SADa;AAExB8D,MAAAA,aAAa,EAAE9D;AAFS,KAAR,CATlB;AAaC,IAAA,gBAAgB,EAAG,IAbpB;AAcC,IAAA,OAAO,EAAG6C;AAdX,KAgBC,cAAC,gBAAD;AACC,IAAA,KAAK,EAAGgB,SADT;AAEC,IAAA,IAAI,EAAGC,aAFR;AAGC,IAAA,QAAQ,EAAK8D,YAAF,IACV5E,aAAa,CAAE;AAAEa,MAAAA,SAAS,EAAE+D;AAAb,KAAF,CAJf;AAMC,IAAA,YAAY,EAAKC,QAAF,IACd7E,aAAa,CAAE;AACdc,MAAAA,aAAa,EAAE+D;AADD,KAAF;AAPf,IAhBD,CADD,CAlJD,CADD;AAqLA,QAAMf,GAAG,GAAGnM,MAAM,EAAlB;AACA,QAAMmN,UAAU,GAAGnL,aAAa,CAAE;AAAEmK,IAAAA;AAAF,GAAF,CAAhC,CAhWG,CAkWH;;AACA,QAAMiB,YAAY,GAAG,CAAC,iBAAEnL,UAAU,CAAE,sBAAF,CAAZ,wCAAE,YAAsCsK,MAAxC,CAAtB;AACA,QAAMc,mBAAmB,GAAGxJ,sBAAsB,CAAE;AACnDyJ,IAAAA,QAAQ,EAAEF,YAAY,GAAG,OAAH,GAAa/H;AADgB,GAAF,CAAlD;AAIA,QAAMkI,gBAAgB,GAAGrL,mBAAmB,CAC3C;AACCoE,IAAAA,SAAS,EAAE;AADZ,GAD2C,EAI3C;AACCkH,IAAAA,QAAQ,EAAEH,mBADX;AAECI,IAAAA,8BAA8B,EAAE,IAFjC;AAGCpE,IAAAA,aAHD;AAICC,IAAAA;AAJD,GAJ2C,CAA5C;;AAYA,MAAK,CAAE8C,cAAF,IAAoB,CAAEP,aAA3B,EAA2C;AAC1C,WACC,8BACGW,QADH,EAEC,kCACMW,UADN;AAEC,MAAA,SAAS,EAAG3N,UAAU,CACrB,gBADqB,EAErB2N,UAAU,CAAC7G,SAFU;AAFvB,QAOC,cAAC,gBAAD;AACC,MAAA,aAAa,EAAGsB,aADjB;AAEC,MAAA,OAAO,EAAGiD,aAFX;AAGC,MAAA,KAAK,EAAG;AACP3B,QAAAA,SAAS,EAAEqC,iBAAiB,IAAIlG;AADzB;AAHT,OAOC;AAAK,MAAA,SAAS,EAAC;AAAf,OACC,cAAC,YAAD;AACC,MAAA,mBAAmB,EAAG,IADvB;AAEC,MAAA,KAAK,EAAG+C,YAAY,CAACgD,KAFtB;AAGC,MAAA,QAAQ,EAAG9C,eAHZ;AAIC,MAAA,SAAS,EAAG;AAJb,MADD,CAPD,CAPD,EAuBC,cAAC,cAAD;AACC,MAAA,SAAS,EAAC,uCADX;AAEC,MAAA,aAAa,EAAG,MAAM;AACrBD,QAAAA,aAAa,CAAE;AAAEc,UAAAA,aAAa,EAAE;AAAjB,SAAF,CAAb;AACAZ,QAAAA,eAAe,CAAE,KAAF,CAAf;AACA,OALF;AAMC,MAAA,QAAQ,EAAKlE,KAAF,IAAa;AACvBgE,QAAAA,aAAa,CAAE;AAAEa,UAAAA,SAAS,EAAE7E;AAAb,SAAF,CAAb;AACA,OARF;AASC,MAAA,YAAY,EAAK4I,YAAF,IAAoB;AAClC1E,QAAAA,eAAe,CAAE,IAAF,CAAf;AACAF,QAAAA,aAAa,CAAE;AAAEa,UAAAA,SAAS,EAAE+D;AAAb,SAAF,CAAb;AACA,OAZF;AAaC,MAAA,UAAU,EAAG9E;AAbd,MAvBD,CAFD,CADD;AA4CA;;AAED,QAAMuF,OAAO,GAAGlO,UAAU,CACzB;AACC,qBAAiBwJ,MADlB;AAEC,gBAAY,CAAEA,MAFf;AAGC,oBAAgBmB,gBAHjB;AAIC,oBAAgBpB,WAJjB;AAKC,mBAAeE,UALhB;AAMC,mCAA+B,CAAEvF,uBAAuB,CACvDiF,eADuD;AANzD,GADyB,EAWzBhF,oBAAoB,CAAEgF,eAAF,CAXK,CAA1B;AAcA,SACC,8BACG6D,QADH,EAEC,kCACMW,UADN;AAEC,IAAA,SAAS,EAAG3N,UAAU,CAAEkO,OAAF,EAAWP,UAAU,CAAC7G,SAAtB,CAFvB;AAGC,IAAA,KAAK,EAAG,EAAE,GAAGwB,KAAL;AAAY,SAAGqF,UAAU,CAACrF;AAA1B,KAHT;AAIC,gBAAWN;AAJZ,MAMC,cAAC,cAAD;AACC,IAAA,SAAS,EAAC,uCADX;AAEC,IAAA,aAAa,EAAG,MAAM;AACrBa,MAAAA,aAAa,CAAE;AAAEc,QAAAA,aAAa,EAAE;AAAjB,OAAF,CAAb;AACAZ,MAAAA,eAAe,CAAE,KAAF,CAAf;AACA,KALF;AAMC,IAAA,QAAQ,EAAKlE,KAAF,IAAa;AACvBgE,MAAAA,aAAa,CAAE;AAAEa,QAAAA,SAAS,EAAE7E;AAAb,OAAF,CAAb;AACA,KARF;AASC,IAAA,YAAY,EAAK4I,YAAF,IAAoB;AAClC1E,MAAAA,eAAe,CAAE,IAAF,CAAf;AACAF,MAAAA,aAAa,CAAE;AAAEa,QAAAA,SAAS,EAAE+D;AAAb,OAAF,CAAb;AACA,KAZF;AAaC,IAAA,UAAU,EAAG9E;AAbd,IAND,EAsBC;AACC,mBAAY,MADb;AAEC,IAAA,SAAS,EAAG3I,UAAU,CACrB,4BADqB,EAErBiE,eAAe,CAAEoF,QAAF,CAFM,EAGrB;AACC,OAAET,YAAY,CAACuF,KAAf,GAAwBvF,YAAY,CAACuF,KADtC;AAEC,4BAAsB9E,QAAQ,KAAKxD,SAFpC;AAGC;AACA;AACA;AACA,6CACCmC,GAAG,IAAIyC,aAAP,IAAwBpB,QAAQ,KAAK,CAPvC;AAQC,iCAA2BoB,aAR5B;AASC,OAAED,aAAF,GAAmBA;AATpB,KAHqB,CAFvB;AAiBC,IAAA,KAAK,EAAG;AAAE4D,MAAAA,eAAe,EAAE3D,aAAnB;AAAkC,SAAGwB;AAArC;AAjBT,IAtBD,EA0CGjE,GAAG,IAAI6D,iBAAP,IAA4BG,YAA5B,IACD;AACC,IAAA,GAAG,EAAGN,aADP;AAEC,IAAA,SAAS,EAAC,kCAFX;AAGC,IAAA,GAAG,EAAG9B,GAHP;AAIC,IAAA,GAAG,EAAG5B,GAJP;AAKC,IAAA,KAAK,EAAGmE;AALT,IA3CF,EAmDGnE,GAAG,IAAI8D,iBAAP,IACD;AACC,IAAA,GAAG,EAAGJ,aADP;AAEC,IAAA,SAAS,EAAC,kCAFX;AAGC,IAAA,QAAQ,MAHT;AAIC,IAAA,KAAK,MAJN;AAKC,IAAA,IAAI,MALL;AAMC,IAAA,GAAG,EAAG1D,GANP;AAOC,IAAA,KAAK,EAAGmE;AAPT,IApDF,EA8DGxB,gBAAgB,IAAI,cAAC,OAAD,OA9DvB,EA+DC,cAAC,gBAAD;AACC,IAAA,mBAAmB,MADpB;AAEC,IAAA,aAAa,EAAGvC,aAFjB;AAGC,IAAA,OAAO,EAAGiD;AAHX,IA/DD,EAoEC,qBAAU0C,gBAAV,CApED,CAFD,CADD;AA2EA;;AAED,eAAehM,OAAO,CAAE,CACvBO,UAAU,CAAE;AAAEsG,EAAAA,YAAY,EAAE;AAAhB,CAAF,CADa,CAAF,CAAP,CAEVH,SAFU,CAAf","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(); // Used to set a default color for its InnerBlocks
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