@wordpress/block-library 8.6.0 → 8.8.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 (425) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/buttons/index.js +1 -0
  3. package/build/buttons/index.js.map +1 -1
  4. package/build/buttons/transforms.js +1 -0
  5. package/build/buttons/transforms.js.map +1 -1
  6. package/build/column/index.js +2 -1
  7. package/build/column/index.js.map +1 -1
  8. package/build/columns/edit.js +28 -8
  9. package/build/columns/edit.js.map +1 -1
  10. package/build/columns/index.js +6 -1
  11. package/build/columns/index.js.map +1 -1
  12. package/build/columns/utils.js +4 -9
  13. package/build/columns/utils.js.map +1 -1
  14. package/build/cover/edit/index.js +46 -50
  15. package/build/cover/edit/index.js.map +1 -1
  16. package/build/cover/edit/inspector-controls.js +2 -2
  17. package/build/cover/edit/inspector-controls.js.map +1 -1
  18. package/build/cover/edit/{resizable-cover.js → resizable-cover-popover.js} +32 -6
  19. package/build/cover/edit/resizable-cover-popover.js.map +1 -0
  20. package/build/cover/index.js +12 -0
  21. package/build/cover/index.js.map +1 -1
  22. package/build/details/edit.js +67 -0
  23. package/build/details/edit.js.map +1 -0
  24. package/build/details/index.js +110 -0
  25. package/build/details/index.js.map +1 -0
  26. package/build/details/save.js +33 -0
  27. package/build/details/save.js.map +1 -0
  28. package/build/details-content/edit.js +34 -0
  29. package/build/details-content/edit.js.map +1 -0
  30. package/build/details-content/index.js +94 -0
  31. package/build/details-content/index.js.map +1 -0
  32. package/build/details-content/save.js +20 -0
  33. package/build/details-content/save.js.map +1 -0
  34. package/build/details-summary/edit.js +42 -0
  35. package/build/details-summary/edit.js.map +1 -0
  36. package/build/details-summary/index.js +97 -0
  37. package/build/details-summary/index.js.map +1 -0
  38. package/build/details-summary/save.js +24 -0
  39. package/build/details-summary/save.js.map +1 -0
  40. package/build/embed/deprecated.js +4 -1
  41. package/build/embed/deprecated.js.map +1 -1
  42. package/build/embed/embed-link-settings.native.js +1 -1
  43. package/build/embed/embed-link-settings.native.js.map +1 -1
  44. package/build/embed/embed-placeholder.js +1 -1
  45. package/build/embed/embed-placeholder.js.map +1 -1
  46. package/build/embed/index.js +4 -1
  47. package/build/embed/index.js.map +1 -1
  48. package/build/embed/transforms.js +4 -1
  49. package/build/embed/transforms.js.map +1 -1
  50. package/build/embed/util.js +4 -1
  51. package/build/embed/util.js.map +1 -1
  52. package/build/file/edit.native.js +0 -2
  53. package/build/file/edit.native.js.map +1 -1
  54. package/build/gallery/edit.js +8 -5
  55. package/build/gallery/edit.js.map +1 -1
  56. package/build/gallery/use-get-media.native.js +2 -1
  57. package/build/gallery/use-get-media.native.js.map +1 -1
  58. package/build/gallery/use-image-sizes.js +1 -1
  59. package/build/gallery/use-image-sizes.js.map +1 -1
  60. package/build/group/deprecated.js +4 -2
  61. package/build/group/deprecated.js.map +1 -1
  62. package/build/group/edit.js +22 -5
  63. package/build/group/edit.js.map +1 -1
  64. package/build/group/placeholder.js +11 -1
  65. package/build/group/placeholder.js.map +1 -1
  66. package/build/group/variations.js +23 -3
  67. package/build/group/variations.js.map +1 -1
  68. package/build/image/edit.js +1 -1
  69. package/build/image/edit.js.map +1 -1
  70. package/build/image/edit.native.js +1 -1
  71. package/build/image/edit.native.js.map +1 -1
  72. package/build/image/image.js +8 -6
  73. package/build/image/image.js.map +1 -1
  74. package/build/image/index.js +9 -2
  75. package/build/image/index.js.map +1 -1
  76. package/build/index.js +24 -6
  77. package/build/index.js.map +1 -1
  78. package/build/latest-posts/edit.js +1 -0
  79. package/build/latest-posts/edit.js.map +1 -1
  80. package/build/media-text/deprecated.js +228 -18
  81. package/build/media-text/deprecated.js.map +1 -1
  82. package/build/media-text/edit.js +3 -3
  83. package/build/media-text/edit.js.map +1 -1
  84. package/build/media-text/index.js +1 -1
  85. package/build/media-text/media-container.js +2 -6
  86. package/build/media-text/media-container.js.map +1 -1
  87. package/build/media-text/media-container.native.js +3 -3
  88. package/build/media-text/media-container.native.js.map +1 -1
  89. package/build/navigation/deprecated.js +8 -11
  90. package/build/navigation/deprecated.js.map +1 -1
  91. package/build/navigation/edit/index.js +1 -12
  92. package/build/navigation/edit/index.js.map +1 -1
  93. package/build/navigation/edit/inner-blocks.js +1 -4
  94. package/build/navigation/edit/inner-blocks.js.map +1 -1
  95. package/build/navigation/edit/unsaved-inner-blocks.js +1 -14
  96. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  97. package/build/navigation/index.js +0 -1
  98. package/build/navigation/index.js.map +1 -1
  99. package/build/post-author/index.js +0 -1
  100. package/build/post-author/index.js.map +1 -1
  101. package/build/post-date/edit.js +2 -1
  102. package/build/post-date/edit.js.map +1 -1
  103. package/build/post-date/index.js +4 -1
  104. package/build/post-date/index.js.map +1 -1
  105. package/build/post-date/variations.js +28 -0
  106. package/build/post-date/variations.js.map +1 -0
  107. package/build/post-excerpt/edit.js +39 -10
  108. package/build/post-excerpt/edit.js.map +1 -1
  109. package/build/post-featured-image/dimension-controls.js +4 -3
  110. package/build/post-featured-image/dimension-controls.js.map +1 -1
  111. package/build/post-featured-image/edit.js +8 -22
  112. package/build/post-featured-image/edit.js.map +1 -1
  113. package/build/post-template/index.js +1 -1
  114. package/build/post-time-to-read/edit.js +1 -1
  115. package/build/post-time-to-read/edit.js.map +1 -1
  116. package/build/post-time-to-read/index.js +24 -1
  117. package/build/post-time-to-read/index.js.map +1 -1
  118. package/build/quote/index.js +1 -0
  119. package/build/quote/index.js.map +1 -1
  120. package/build/spacer/controls.js +25 -6
  121. package/build/spacer/controls.js.map +1 -1
  122. package/build/spacer/edit.js +27 -7
  123. package/build/spacer/edit.js.map +1 -1
  124. package/build/spacer/save.js +2 -2
  125. package/build/spacer/save.js.map +1 -1
  126. package/build/table/state.js +35 -35
  127. package/build/table/state.js.map +1 -1
  128. package/build/term-description/index.js +1 -2
  129. package/build/term-description/index.js.map +1 -1
  130. package/build/utils/clean-empty-object.js +5 -2
  131. package/build/utils/clean-empty-object.js.map +1 -1
  132. package/build-module/buttons/index.js +1 -0
  133. package/build-module/buttons/index.js.map +1 -1
  134. package/build-module/buttons/transforms.js +1 -0
  135. package/build-module/buttons/transforms.js.map +1 -1
  136. package/build-module/column/index.js +2 -1
  137. package/build-module/column/index.js.map +1 -1
  138. package/build-module/columns/edit.js +28 -8
  139. package/build-module/columns/edit.js.map +1 -1
  140. package/build-module/columns/index.js +6 -1
  141. package/build-module/columns/index.js.map +1 -1
  142. package/build-module/columns/utils.js +4 -8
  143. package/build-module/columns/utils.js.map +1 -1
  144. package/build-module/cover/edit/index.js +48 -52
  145. package/build-module/cover/edit/index.js.map +1 -1
  146. package/build-module/cover/edit/inspector-controls.js +2 -2
  147. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  148. package/build-module/cover/edit/{resizable-cover.js → resizable-cover-popover.js} +31 -6
  149. package/build-module/cover/edit/resizable-cover-popover.js.map +1 -0
  150. package/build-module/cover/index.js +12 -0
  151. package/build-module/cover/index.js.map +1 -1
  152. package/build-module/details/edit.js +52 -0
  153. package/build-module/details/edit.js.map +1 -0
  154. package/build-module/details/index.js +91 -0
  155. package/build-module/details/index.js.map +1 -0
  156. package/build-module/details/save.js +20 -0
  157. package/build-module/details/save.js.map +1 -0
  158. package/build-module/details-content/edit.js +23 -0
  159. package/build-module/details-content/edit.js.map +1 -0
  160. package/build-module/details-content/index.js +76 -0
  161. package/build-module/details-content/index.js.map +1 -0
  162. package/build-module/details-content/save.js +11 -0
  163. package/build-module/details-content/save.js.map +1 -0
  164. package/build-module/details-summary/edit.js +30 -0
  165. package/build-module/details-summary/edit.js.map +1 -0
  166. package/build-module/details-summary/index.js +79 -0
  167. package/build-module/details-summary/index.js.map +1 -0
  168. package/build-module/details-summary/save.js +16 -0
  169. package/build-module/details-summary/save.js.map +1 -0
  170. package/build-module/embed/deprecated.js +4 -1
  171. package/build-module/embed/deprecated.js.map +1 -1
  172. package/build-module/embed/embed-link-settings.native.js +1 -1
  173. package/build-module/embed/embed-link-settings.native.js.map +1 -1
  174. package/build-module/embed/embed-placeholder.js +1 -1
  175. package/build-module/embed/embed-placeholder.js.map +1 -1
  176. package/build-module/embed/index.js +4 -1
  177. package/build-module/embed/index.js.map +1 -1
  178. package/build-module/embed/transforms.js +4 -1
  179. package/build-module/embed/transforms.js.map +1 -1
  180. package/build-module/embed/util.js +4 -1
  181. package/build-module/embed/util.js.map +1 -1
  182. package/build-module/file/edit.native.js +0 -2
  183. package/build-module/file/edit.native.js.map +1 -1
  184. package/build-module/gallery/edit.js +8 -5
  185. package/build-module/gallery/edit.js.map +1 -1
  186. package/build-module/gallery/use-get-media.native.js +2 -1
  187. package/build-module/gallery/use-get-media.native.js.map +1 -1
  188. package/build-module/gallery/use-image-sizes.js +1 -1
  189. package/build-module/gallery/use-image-sizes.js.map +1 -1
  190. package/build-module/group/deprecated.js +4 -2
  191. package/build-module/group/deprecated.js.map +1 -1
  192. package/build-module/group/edit.js +21 -5
  193. package/build-module/group/edit.js.map +1 -1
  194. package/build-module/group/placeholder.js +11 -1
  195. package/build-module/group/placeholder.js.map +1 -1
  196. package/build-module/group/variations.js +24 -1
  197. package/build-module/group/variations.js.map +1 -1
  198. package/build-module/image/edit.js +1 -1
  199. package/build-module/image/edit.js.map +1 -1
  200. package/build-module/image/edit.native.js +1 -1
  201. package/build-module/image/edit.native.js.map +1 -1
  202. package/build-module/image/image.js +8 -6
  203. package/build-module/image/image.js.map +1 -1
  204. package/build-module/image/index.js +9 -2
  205. package/build-module/image/index.js.map +1 -1
  206. package/build-module/index.js +21 -6
  207. package/build-module/index.js.map +1 -1
  208. package/build-module/latest-posts/edit.js +1 -0
  209. package/build-module/latest-posts/edit.js.map +1 -1
  210. package/build-module/media-text/deprecated.js +227 -18
  211. package/build-module/media-text/deprecated.js.map +1 -1
  212. package/build-module/media-text/edit.js +3 -3
  213. package/build-module/media-text/edit.js.map +1 -1
  214. package/build-module/media-text/index.js +1 -1
  215. package/build-module/media-text/media-container.js +1 -5
  216. package/build-module/media-text/media-container.js.map +1 -1
  217. package/build-module/media-text/media-container.native.js +1 -1
  218. package/build-module/media-text/media-container.native.js.map +1 -1
  219. package/build-module/navigation/deprecated.js +8 -10
  220. package/build-module/navigation/deprecated.js.map +1 -1
  221. package/build-module/navigation/edit/index.js +1 -12
  222. package/build-module/navigation/edit/index.js.map +1 -1
  223. package/build-module/navigation/edit/inner-blocks.js +1 -4
  224. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  225. package/build-module/navigation/edit/unsaved-inner-blocks.js +1 -14
  226. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  227. package/build-module/navigation/index.js +0 -1
  228. package/build-module/navigation/index.js.map +1 -1
  229. package/build-module/post-author/index.js +0 -1
  230. package/build-module/post-author/index.js.map +1 -1
  231. package/build-module/post-date/edit.js +2 -1
  232. package/build-module/post-date/edit.js.map +1 -1
  233. package/build-module/post-date/index.js +3 -1
  234. package/build-module/post-date/index.js.map +1 -1
  235. package/build-module/post-date/variations.js +18 -0
  236. package/build-module/post-date/variations.js.map +1 -0
  237. package/build-module/post-excerpt/edit.js +38 -11
  238. package/build-module/post-excerpt/edit.js.map +1 -1
  239. package/build-module/post-featured-image/dimension-controls.js +4 -3
  240. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  241. package/build-module/post-featured-image/edit.js +8 -22
  242. package/build-module/post-featured-image/edit.js.map +1 -1
  243. package/build-module/post-template/index.js +1 -1
  244. package/build-module/post-time-to-read/edit.js +1 -1
  245. package/build-module/post-time-to-read/edit.js.map +1 -1
  246. package/build-module/post-time-to-read/index.js +24 -1
  247. package/build-module/post-time-to-read/index.js.map +1 -1
  248. package/build-module/quote/index.js +1 -0
  249. package/build-module/quote/index.js.map +1 -1
  250. package/build-module/spacer/controls.js +27 -9
  251. package/build-module/spacer/controls.js.map +1 -1
  252. package/build-module/spacer/edit.js +27 -8
  253. package/build-module/spacer/edit.js.map +1 -1
  254. package/build-module/spacer/save.js +3 -3
  255. package/build-module/spacer/save.js.map +1 -1
  256. package/build-module/table/state.js +35 -33
  257. package/build-module/table/state.js.map +1 -1
  258. package/build-module/term-description/index.js +1 -2
  259. package/build-module/term-description/index.js.map +1 -1
  260. package/build-module/utils/clean-empty-object.js +6 -3
  261. package/build-module/utils/clean-empty-object.js.map +1 -1
  262. package/build-style/categories/editor-rtl.css +5 -0
  263. package/build-style/categories/editor.css +5 -0
  264. package/build-style/categories/style-rtl.css +4 -0
  265. package/build-style/categories/style.css +4 -0
  266. package/build-style/columns/style-rtl.css +4 -1
  267. package/build-style/columns/style.css +4 -1
  268. package/build-style/common-rtl.css +1 -1
  269. package/build-style/common.css +1 -1
  270. package/build-style/cover/editor-rtl.css +11 -12
  271. package/build-style/cover/editor.css +11 -12
  272. package/build-style/cover/style-rtl.css +3 -2
  273. package/build-style/cover/style.css +3 -2
  274. package/build-style/details/style-rtl.css +91 -0
  275. package/build-style/details/style.css +91 -0
  276. package/build-style/details-summary/editor-rtl.css +91 -0
  277. package/build-style/details-summary/editor.css +91 -0
  278. package/build-style/details-summary/style-rtl.css +91 -0
  279. package/build-style/details-summary/style.css +91 -0
  280. package/build-style/editor-rtl.css +40 -48
  281. package/build-style/editor.css +40 -48
  282. package/build-style/file/style-rtl.css +4 -3
  283. package/build-style/file/style.css +4 -3
  284. package/build-style/navigation/style-rtl.css +2 -0
  285. package/build-style/navigation/style.css +2 -0
  286. package/build-style/post-excerpt/style-rtl.css +1 -1
  287. package/build-style/post-excerpt/style.css +1 -1
  288. package/build-style/post-featured-image/editor-rtl.css +1 -0
  289. package/build-style/post-featured-image/editor.css +1 -0
  290. package/build-style/post-template/style-rtl.css +1 -1
  291. package/build-style/post-template/style.css +1 -1
  292. package/build-style/post-time-to-read/style-rtl.css +91 -0
  293. package/build-style/post-time-to-read/style.css +91 -0
  294. package/build-style/pullquote/style-rtl.css +4 -1
  295. package/build-style/pullquote/style.css +4 -1
  296. package/build-style/search/style-rtl.css +8 -7
  297. package/build-style/search/style.css +8 -7
  298. package/build-style/shortcode/editor-rtl.css +15 -34
  299. package/build-style/shortcode/editor.css +15 -34
  300. package/build-style/spacer/editor-rtl.css +4 -2
  301. package/build-style/spacer/editor.css +4 -2
  302. package/build-style/style-rtl.css +44 -17
  303. package/build-style/style.css +44 -17
  304. package/package.json +31 -31
  305. package/src/buttons/block.json +1 -0
  306. package/src/categories/editor.scss +5 -0
  307. package/src/categories/style.scss +4 -0
  308. package/src/column/block.json +2 -1
  309. package/src/columns/block.json +6 -1
  310. package/src/columns/edit.js +35 -10
  311. package/src/columns/style.scss +5 -1
  312. package/src/columns/utils.js +8 -9
  313. package/src/comments/index.php +1 -0
  314. package/src/common.scss +1 -1
  315. package/src/cover/block.json +12 -0
  316. package/src/cover/edit/index.js +44 -37
  317. package/src/cover/edit/inspector-controls.js +4 -5
  318. package/src/cover/edit/resizable-cover-popover.js +82 -0
  319. package/src/cover/editor.scss +20 -13
  320. package/src/cover/index.php +9 -10
  321. package/src/cover/style.scss +2 -1
  322. package/src/cover/test/__snapshots__/transforms.native.js.snap +2 -2
  323. package/src/cover/test/edit.js +324 -0
  324. package/src/details/block.json +54 -0
  325. package/src/details/edit.js +59 -0
  326. package/src/details/index.js +35 -0
  327. package/src/details/save.js +15 -0
  328. package/src/details/style.scss +3 -0
  329. package/src/details-content/block.json +50 -0
  330. package/src/details-content/edit.js +29 -0
  331. package/src/details-content/index.js +23 -0
  332. package/src/details-content/save.js +12 -0
  333. package/src/details-summary/block.json +53 -0
  334. package/src/details-summary/edit.js +27 -0
  335. package/src/details-summary/editor.scss +3 -0
  336. package/src/details-summary/index.js +23 -0
  337. package/src/details-summary/save.js +13 -0
  338. package/src/details-summary/style.scss +3 -0
  339. package/src/editor.scss +1 -0
  340. package/src/embed/block.json +4 -1
  341. package/src/embed/embed-link-settings.native.js +1 -1
  342. package/src/embed/embed-placeholder.js +1 -1
  343. package/src/file/edit.native.js +0 -2
  344. package/src/file/style.scss +5 -2
  345. package/src/gallery/edit.js +5 -2
  346. package/src/gallery/test/use-get-media.native.js +24 -0
  347. package/src/gallery/use-get-media.native.js +1 -1
  348. package/src/gallery/use-image-sizes.js +1 -1
  349. package/src/group/deprecated.js +4 -2
  350. package/src/group/edit.js +27 -9
  351. package/src/group/placeholder.js +13 -1
  352. package/src/group/variations.js +14 -1
  353. package/src/home-link/index.php +2 -2
  354. package/src/image/block.json +9 -2
  355. package/src/image/edit.js +1 -1
  356. package/src/image/edit.native.js +1 -1
  357. package/src/image/image.js +15 -7
  358. package/src/image/index.php +7 -2
  359. package/src/image/test/__snapshots__/transforms.native.js.snap +1 -1
  360. package/src/index.js +13 -3
  361. package/src/latest-comments/style.scss +1 -1
  362. package/src/latest-posts/edit.js +3 -0
  363. package/src/media-text/block.json +1 -1
  364. package/src/media-text/deprecated.js +235 -3
  365. package/src/media-text/edit.js +7 -6
  366. package/src/media-text/media-container.js +1 -5
  367. package/src/media-text/media-container.native.js +1 -1
  368. package/src/media-text/test/__snapshots__/transforms.native.js.snap +4 -4
  369. package/src/navigation/block.json +0 -1
  370. package/src/navigation/deprecated.js +15 -19
  371. package/src/navigation/edit/index.js +0 -13
  372. package/src/navigation/edit/inner-blocks.js +0 -3
  373. package/src/navigation/edit/unsaved-inner-blocks.js +34 -46
  374. package/src/navigation/index.php +0 -4
  375. package/src/navigation/style.scss +6 -4
  376. package/src/navigation-link/index.php +2 -1
  377. package/src/navigation-submenu/index.php +30 -76
  378. package/src/paragraph/test/edit.native.js +356 -1
  379. package/src/post-author/block.json +0 -1
  380. package/src/post-author/index.php +1 -1
  381. package/src/post-date/edit.js +4 -1
  382. package/src/post-date/index.js +2 -0
  383. package/src/post-date/variations.js +20 -0
  384. package/src/post-excerpt/edit.js +48 -16
  385. package/src/post-excerpt/index.php +3 -3
  386. package/src/post-excerpt/style.scss +2 -1
  387. package/src/post-featured-image/dimension-controls.js +7 -3
  388. package/src/post-featured-image/edit.js +8 -29
  389. package/src/post-featured-image/editor.scss +1 -0
  390. package/src/post-template/block.json +1 -1
  391. package/src/post-template/style.scss +1 -1
  392. package/src/post-time-to-read/block.json +24 -1
  393. package/src/post-time-to-read/edit.js +1 -1
  394. package/src/post-time-to-read/index.php +3 -3
  395. package/src/post-time-to-read/style.scss +4 -0
  396. package/src/preformatted/test/__snapshots__/edit.native.js.snap +2 -2
  397. package/src/preformatted/test/edit.native.js +45 -2
  398. package/src/pullquote/style.scss +5 -1
  399. package/src/pullquote/test/edit.native.js +70 -0
  400. package/src/query-title/index.php +2 -5
  401. package/src/quote/block.json +1 -0
  402. package/src/quote/test/edit.native.js +92 -0
  403. package/src/search/index.php +1 -1
  404. package/src/search/style.scss +16 -12
  405. package/src/shortcode/editor.scss +26 -5
  406. package/src/spacer/controls.js +42 -17
  407. package/src/spacer/edit.js +41 -9
  408. package/src/spacer/editor.scss +2 -1
  409. package/src/spacer/save.js +3 -3
  410. package/src/style.scss +3 -0
  411. package/src/table/state.js +83 -66
  412. package/src/term-description/block.json +1 -2
  413. package/src/utils/clean-empty-object.js +4 -4
  414. package/src/verse/test/edit.native.js +33 -0
  415. package/src/video/test/__snapshots__/transforms.native.js.snap +1 -1
  416. package/tsconfig.tsbuildinfo +1 -1
  417. package/build/cover/edit/resizable-cover.js.map +0 -1
  418. package/build/media-text/media-container-icon.js +0 -27
  419. package/build/media-text/media-container-icon.js.map +0 -1
  420. package/build-module/cover/edit/resizable-cover.js.map +0 -1
  421. package/build-module/media-text/media-container-icon.js +0 -17
  422. package/build-module/media-text/media-container-icon.js.map +0 -1
  423. package/src/cover/edit/resizable-cover.js +0 -61
  424. package/src/cover/test/block-controls.js +0 -62
  425. package/src/media-text/media-container-icon.js +0 -12
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/buttons/transforms.js"],"names":["createBlock","__unstableCreateElement","createElement","transforms","from","type","isMultiBlock","blocks","transform","buttons","name","map","attributes","element","document","content","text","innerText","link","querySelector","url","getAttribute","isMatch","paragraphs","every","links","querySelectorAll","length"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAT,QAA4B,mBAA5B;AACA,SAASC,uBAAuB,IAAIC,aAApC,QAAyD,sBAAzD;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAMC,UAAU,GAAG;AAClBC,EAAAA,IAAI,EAAE,CACL;AACCC,IAAAA,IAAI,EAAE,OADP;AAECC,IAAAA,YAAY,EAAE,IAFf;AAGCC,IAAAA,MAAM,EAAE,CAAE,aAAF,CAHT;AAICC,IAAAA,SAAS,EAAIC,OAAF,IACV;AACAT,IAAAA,WAAW,CACVU,IADU,EAEV,EAFU,EAGV;AACAD,IAAAA,OAAO,CAACE,GAAR,CAAeC,UAAF,IACZ;AACAZ,IAAAA,WAAW,CAAE,aAAF,EAAiBY,UAAjB,CAFZ,CAJU;AANb,GADK,EAiBL;AACCP,IAAAA,IAAI,EAAE,OADP;AAECC,IAAAA,YAAY,EAAE,IAFf;AAGCC,IAAAA,MAAM,EAAE,CAAE,gBAAF,CAHT;AAICC,IAAAA,SAAS,EAAIC,OAAF,IACV;AACAT,IAAAA,WAAW,CACVU,IADU,EAEV,EAFU,EAGV;AACAD,IAAAA,OAAO,CAACE,GAAR,CAAeC,UAAF,IAAkB;AAC9B,YAAMC,OAAO,GAAGX,aAAa,CAC5BY,QAD4B,EAE5BF,UAAU,CAACG,OAFiB,CAA7B,CAD8B,CAK9B;;AACA,YAAMC,IAAI,GAAGH,OAAO,CAACI,SAAR,IAAqB,EAAlC,CAN8B,CAO9B;;AACA,YAAMC,IAAI,GAAGL,OAAO,CAACM,aAAR,CAAuB,GAAvB,CAAb;AACA,YAAMC,GAAG,GAAGF,IAAH,aAAGA,IAAH,uBAAGA,IAAI,CAAEG,YAAN,CAAoB,MAApB,CAAZ,CAT8B,CAU9B;;AACA,aAAOrB,WAAW,CAAE,aAAF,EAAiB;AAClCgB,QAAAA,IADkC;AAElCI,QAAAA;AAFkC,OAAjB,CAAlB;AAIA,KAfD,CAJU,CANb;AA2BCE,IAAAA,OAAO,EAAIC,UAAF,IAAkB;AAC1B,aAAOA,UAAU,CAACC,KAAX,CAAoBZ,UAAF,IAAkB;AAC1C,cAAMC,OAAO,GAAGX,aAAa,CAC5BY,QAD4B,EAE5BF,UAAU,CAACG,OAFiB,CAA7B;AAIA,cAAMC,IAAI,GAAGH,OAAO,CAACI,SAAR,IAAqB,EAAlC;AACA,cAAMQ,KAAK,GAAGZ,OAAO,CAACa,gBAAR,CAA0B,GAA1B,CAAd;AACA,eAAOV,IAAI,CAACW,MAAL,IAAe,EAAf,IAAqBF,KAAK,CAACE,MAAN,IAAgB,CAA5C;AACA,OARM,CAAP;AASA;AArCF,GAjBK;AADY,CAAnB;AA4DA,eAAexB,UAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { __unstableCreateElement as createElement } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { name } from './block.json';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/button' ],\n\t\t\ttransform: ( buttons ) =>\n\t\t\t\t// Creates the buttons block.\n\t\t\t\tcreateBlock(\n\t\t\t\t\tname,\n\t\t\t\t\t{},\n\t\t\t\t\t// Loop the selected buttons.\n\t\t\t\t\tbuttons.map( ( attributes ) =>\n\t\t\t\t\t\t// Create singular button in the buttons block.\n\t\t\t\t\t\tcreateBlock( 'core/button', attributes )\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( buttons ) =>\n\t\t\t\t// Creates the buttons block.\n\t\t\t\tcreateBlock(\n\t\t\t\t\tname,\n\t\t\t\t\t{},\n\t\t\t\t\t// Loop the selected buttons.\n\t\t\t\t\tbuttons.map( ( attributes ) => {\n\t\t\t\t\t\tconst element = createElement(\n\t\t\t\t\t\t\tdocument,\n\t\t\t\t\t\t\tattributes.content\n\t\t\t\t\t\t);\n\t\t\t\t\t\t// Remove any HTML tags.\n\t\t\t\t\t\tconst text = element.innerText || '';\n\t\t\t\t\t\t// Get first url.\n\t\t\t\t\t\tconst link = element.querySelector( 'a' );\n\t\t\t\t\t\tconst url = link?.getAttribute( 'href' );\n\t\t\t\t\t\t// Create singular button in the buttons block.\n\t\t\t\t\t\treturn createBlock( 'core/button', {\n\t\t\t\t\t\t\ttext,\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )\n\t\t\t\t),\n\t\t\tisMatch: ( paragraphs ) => {\n\t\t\t\treturn paragraphs.every( ( attributes ) => {\n\t\t\t\t\tconst element = createElement(\n\t\t\t\t\t\tdocument,\n\t\t\t\t\t\tattributes.content\n\t\t\t\t\t);\n\t\t\t\t\tconst text = element.innerText || '';\n\t\t\t\t\tconst links = element.querySelectorAll( 'a' );\n\t\t\t\t\treturn text.length <= 30 && links.length <= 1;\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/buttons/transforms.js"],"names":["createBlock","__unstableCreateElement","createElement","transforms","from","type","isMultiBlock","blocks","transform","buttons","name","map","attributes","element","document","content","text","innerText","link","querySelector","url","getAttribute","isMatch","paragraphs","every","links","querySelectorAll","length"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAT,QAA4B,mBAA5B;AACA,SAASC,uBAAuB,IAAIC,aAApC,QAAyD,sBAAzD;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAMC,UAAU,GAAG;AAClBC,EAAAA,IAAI,EAAE,CACL;AACCC,IAAAA,IAAI,EAAE,OADP;AAECC,IAAAA,YAAY,EAAE,IAFf;AAGCC,IAAAA,MAAM,EAAE,CAAE,aAAF,CAHT;AAICC,IAAAA,SAAS,EAAIC,OAAF,IACV;AACAT,IAAAA,WAAW,CACVU,IADU,EAEV,EAFU,EAGV;AACAD,IAAAA,OAAO,CAACE,GAAR,CAAeC,UAAF,IACZ;AACAZ,IAAAA,WAAW,CAAE,aAAF,EAAiBY,UAAjB,CAFZ,CAJU;AANb,GADK,EAiBL;AACCP,IAAAA,IAAI,EAAE,OADP;AAECC,IAAAA,YAAY,EAAE,IAFf;AAGCC,IAAAA,MAAM,EAAE,CAAE,gBAAF,CAHT;AAICC,IAAAA,SAAS,EAAIC,OAAF,IACV;AACAT,IAAAA,WAAW,CACVU,IADU,EAEV,EAFU,EAGV;AACAD,IAAAA,OAAO,CAACE,GAAR,CAAeC,UAAF,IAAkB;AAC9B,YAAMC,OAAO,GAAGX,aAAa,CAC5BY,QAD4B,EAE5BF,UAAU,CAACG,OAFiB,CAA7B,CAD8B,CAK9B;;AACA,YAAMC,IAAI,GAAGH,OAAO,CAACI,SAAR,IAAqB,EAAlC,CAN8B,CAO9B;;AACA,YAAMC,IAAI,GAAGL,OAAO,CAACM,aAAR,CAAuB,GAAvB,CAAb;AACA,YAAMC,GAAG,GAAGF,IAAH,aAAGA,IAAH,uBAAGA,IAAI,CAAEG,YAAN,CAAoB,MAApB,CAAZ,CAT8B,CAU9B;;AACA,aAAOrB,WAAW,CAAE,aAAF,EAAiB;AAClCgB,QAAAA,IADkC;AAElCI,QAAAA;AAFkC,OAAjB,CAAlB;AAIA,KAfD,CAJU,CANb;AA2BCE,IAAAA,OAAO,EAAIC,UAAF,IAAkB;AAC1B,aAAOA,UAAU,CAACC,KAAX,CAAoBZ,UAAF,IAAkB;AAC1C,cAAMC,OAAO,GAAGX,aAAa,CAC5BY,QAD4B,EAE5BF,UAAU,CAACG,OAFiB,CAA7B;AAIA,cAAMC,IAAI,GAAGH,OAAO,CAACI,SAAR,IAAqB,EAAlC;AACA,cAAMQ,KAAK,GAAGZ,OAAO,CAACa,gBAAR,CAA0B,GAA1B,CAAd;AACA,eAAOV,IAAI,CAACW,MAAL,IAAe,EAAf,IAAqBF,KAAK,CAACE,MAAN,IAAgB,CAA5C;AACA,OARM,CAAP;AASA;AArCF,GAjBK;AADY,CAAnB;AA4DA,eAAexB,UAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { __unstableCreateElement as createElement } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { name } from './block.json';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/button' ],\n\t\t\ttransform: ( buttons ) =>\n\t\t\t\t// Creates the buttons block.\n\t\t\t\tcreateBlock(\n\t\t\t\t\tname,\n\t\t\t\t\t{},\n\t\t\t\t\t// Loop the selected buttons.\n\t\t\t\t\tbuttons.map( ( attributes ) =>\n\t\t\t\t\t\t// Create singular button in the buttons block.\n\t\t\t\t\t\tcreateBlock( 'core/button', attributes )\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( buttons ) =>\n\t\t\t\t// Creates the buttons block.\n\t\t\t\tcreateBlock(\n\t\t\t\t\tname,\n\t\t\t\t\t{},\n\t\t\t\t\t// Loop the selected buttons.\n\t\t\t\t\tbuttons.map( ( attributes ) => {\n\t\t\t\t\t\tconst element = createElement(\n\t\t\t\t\t\t\tdocument,\n\t\t\t\t\t\t\tattributes.content\n\t\t\t\t\t\t);\n\t\t\t\t\t\t// Remove any HTML tags.\n\t\t\t\t\t\tconst text = element.innerText || '';\n\t\t\t\t\t\t// Get first url.\n\t\t\t\t\t\tconst link = element.querySelector( 'a' );\n\t\t\t\t\t\tconst url = link?.getAttribute( 'href' );\n\t\t\t\t\t\t// Create singular button in the buttons block.\n\t\t\t\t\t\treturn createBlock( 'core/button', {\n\t\t\t\t\t\t\ttext,\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )\n\t\t\t\t),\n\t\t\tisMatch: ( paragraphs ) => {\n\t\t\t\treturn paragraphs.every( ( attributes ) => {\n\t\t\t\t\tconst element = createElement(\n\t\t\t\t\t\tdocument,\n\t\t\t\t\t\tattributes.content\n\t\t\t\t\t);\n\t\t\t\t\tconst text = element.innerText || '';\n\t\t\t\t\tconst links = element.querySelectorAll( 'a' );\n\t\t\t\t\treturn text.length <= 30 && links.length <= 1;\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"]}
@@ -49,7 +49,8 @@ const metadata = {
49
49
  blockGap: true,
50
50
  padding: true,
51
51
  __experimentalDefaultControls: {
52
- padding: true
52
+ padding: true,
53
+ blockGap: true
53
54
  }
54
55
  },
55
56
  __experimentalBorder: {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/column/index.js"],"names":["column","icon","initBlock","deprecated","edit","save","name","metadata","settings","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAM,IAAIC,IAAnB,QAA+B,kBAA/B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,IAAP,MAAiB,QAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBP,EAAAA,IADuB;AAEvBG,EAAAA,IAFuB;AAGvBC,EAAAA,IAHuB;AAIvBF,EAAAA;AAJuB,CAAjB;AAOP,OAAO,MAAMM,IAAI,GAAG,MAAMP,SAAS,CAAE;AAAEI,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { column as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/column/index.js"],"names":["column","icon","initBlock","deprecated","edit","save","name","metadata","settings","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAM,IAAIC,IAAnB,QAA+B,kBAA/B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,IAAP,MAAiB,QAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBP,EAAAA,IADuB;AAEvBG,EAAAA,IAFuB;AAGvBC,EAAAA,IAHuB;AAIvBF,EAAAA;AAJuB,CAAjB;AAOP,OAAO,MAAMM,IAAI,GAAG,MAAMP,SAAS,CAAE;AAAEI,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { column as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -40,15 +40,34 @@ function ColumnsEditContainer(_ref) {
40
40
  } = _ref;
41
41
  const {
42
42
  isStackedOnMobile,
43
- verticalAlignment
43
+ verticalAlignment,
44
+ templateLock
44
45
  } = attributes;
45
46
  const {
46
47
  count,
47
- canInsertColumnBlock
48
+ canInsertColumnBlock,
49
+ minCount
48
50
  } = useSelect(select => {
51
+ const {
52
+ canInsertBlockType,
53
+ canRemoveBlock,
54
+ getBlocks,
55
+ getBlockCount
56
+ } = select(blockEditorStore);
57
+ const innerBlocks = getBlocks(clientId); // Get the indexes of columns for which removal is prevented.
58
+ // The highest index will be used to determine the minimum column count.
59
+
60
+ const preventRemovalBlockIndexes = innerBlocks.reduce((acc, block, index) => {
61
+ if (!canRemoveBlock(block.clientId)) {
62
+ acc.push(index);
63
+ }
64
+
65
+ return acc;
66
+ }, []);
49
67
  return {
50
- count: select(blockEditorStore).getBlockCount(clientId),
51
- canInsertColumnBlock: select(blockEditorStore).canInsertBlockType('core/column', clientId)
68
+ count: getBlockCount(clientId),
69
+ canInsertColumnBlock: canInsertBlockType('core/column', clientId),
70
+ minCount: Math.max(...preventRemovalBlockIndexes) + 1
52
71
  };
53
72
  }, [clientId]);
54
73
  const classes = classnames({
@@ -61,7 +80,8 @@ function ColumnsEditContainer(_ref) {
61
80
  const innerBlocksProps = useInnerBlocksProps(blockProps, {
62
81
  allowedBlocks: ALLOWED_BLOCKS,
63
82
  orientation: 'horizontal',
64
- renderAppender: false
83
+ renderAppender: false,
84
+ templateLock
65
85
  });
66
86
  return createElement(Fragment, null, createElement(BlockControls, null, createElement(BlockVerticalAlignmentToolbar, {
67
87
  onChange: updateAlignment,
@@ -70,8 +90,8 @@ function ColumnsEditContainer(_ref) {
70
90
  __nextHasNoMarginBottom: true,
71
91
  label: __('Columns'),
72
92
  value: count,
73
- onChange: value => updateColumns(count, value),
74
- min: 1,
93
+ onChange: value => updateColumns(count, Math.max(minCount, value)),
94
+ min: Math.max(1, minCount),
75
95
  max: Math.max(6, count)
76
96
  }), count > 6 && createElement(Notice, {
77
97
  status: "warning",
@@ -160,7 +180,7 @@ const ColumnsEditContainerWrapper = withDispatch((dispatch, ownProps, registry)
160
180
  }).map(() => {
161
181
  return createBlock('core/column');
162
182
  })];
163
- } else {
183
+ } else if (newColumns < previousColumns) {
164
184
  // The removed column will be the last of the inner blocks.
165
185
  innerBlocks = innerBlocks.slice(0, -(previousColumns - newColumns));
166
186
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/columns/edit.js"],"names":["classnames","__","Notice","PanelBody","RangeControl","ToggleControl","InspectorControls","useInnerBlocksProps","BlockControls","BlockVerticalAlignmentToolbar","__experimentalBlockVariationPicker","useBlockProps","store","blockEditorStore","withDispatch","useDispatch","useSelect","createBlock","createBlocksFromInnerBlocksTemplate","blocksStore","hasExplicitPercentColumnWidths","getMappedColumnWidths","getRedistributedColumnWidths","toWidthPrecision","ALLOWED_BLOCKS","ColumnsEditContainer","attributes","setAttributes","updateAlignment","updateColumns","clientId","isStackedOnMobile","verticalAlignment","count","canInsertColumnBlock","select","getBlockCount","canInsertBlockType","classes","blockProps","className","innerBlocksProps","allowedBlocks","orientation","renderAppender","value","Math","max","ColumnsEditContainerWrapper","dispatch","ownProps","registry","updateBlockAttributes","getBlockOrder","innerBlockClientIds","forEach","innerBlockClientId","previousColumns","newColumns","replaceInnerBlocks","getBlocks","innerBlocks","hasExplicitWidths","isAddingColumn","newColumnWidth","widths","Array","from","length","map","width","slice","Placeholder","name","blockType","defaultVariation","variations","getBlockVariations","getBlockType","getDefaultBlockVariation","icon","src","title","nextVariation","ColumnsEdit","props","hasInnerBlocks","Component"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tNotice,\n\tPanelBody,\n\tRangeControl,\n\tToggleControl,\n} from '@wordpress/components';\n\nimport {\n\tInspectorControls,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\t__experimentalBlockVariationPicker,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\thasExplicitPercentColumnWidths,\n\tgetMappedColumnWidths,\n\tgetRedistributedColumnWidths,\n\ttoWidthPrecision,\n} from './utils';\n\n/**\n * Allowed blocks constant is passed to InnerBlocks precisely as specified here.\n * The contents of the array should never change.\n * The array should contain the name of each block that is allowed.\n * In columns block, the only block we allow is 'core/column'.\n *\n * @constant\n * @type {string[]}\n */\nconst ALLOWED_BLOCKS = [ 'core/column' ];\n\nfunction ColumnsEditContainer( {\n\tattributes,\n\tsetAttributes,\n\tupdateAlignment,\n\tupdateColumns,\n\tclientId,\n} ) {\n\tconst { isStackedOnMobile, verticalAlignment } = attributes;\n\n\tconst { count, canInsertColumnBlock } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tcount: select( blockEditorStore ).getBlockCount( clientId ),\n\t\t\t\tcanInsertColumnBlock: select(\n\t\t\t\t\tblockEditorStore\n\t\t\t\t).canInsertBlockType( 'core/column', clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst classes = classnames( {\n\t\t[ `are-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t[ `is-not-stacked-on-mobile` ]: ! isStackedOnMobile,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t{ canInsertColumnBlock && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\tvalue={ count }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tupdateColumns( count, value )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\tmax={ Math.max( 6, count ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ count > 6 && (\n\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\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\t\t'This column count exceeds the recommended amount and may cause visual breakage.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Notice>\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\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\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</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nconst ColumnsEditContainerWrapper = withDispatch(\n\t( dispatch, ownProps, registry ) => ( {\n\t\t/**\n\t\t * Update all child Column blocks with a new vertical alignment setting\n\t\t * based on whatever alignment is passed in. This allows change to parent\n\t\t * to overide anything set on a individual column basis.\n\t\t *\n\t\t * @param {string} verticalAlignment the vertical alignment setting\n\t\t */\n\t\tupdateAlignment( verticalAlignment ) {\n\t\t\tconst { clientId, setAttributes } = ownProps;\n\t\t\tconst { updateBlockAttributes } = dispatch( blockEditorStore );\n\t\t\tconst { getBlockOrder } = registry.select( blockEditorStore );\n\n\t\t\t// Update own alignment.\n\t\t\tsetAttributes( { verticalAlignment } );\n\n\t\t\t// Update all child Column Blocks to match.\n\t\t\tconst innerBlockClientIds = getBlockOrder( clientId );\n\t\t\tinnerBlockClientIds.forEach( ( innerBlockClientId ) => {\n\t\t\t\tupdateBlockAttributes( innerBlockClientId, {\n\t\t\t\t\tverticalAlignment,\n\t\t\t\t} );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Updates the column count, including necessary revisions to child Column\n\t\t * blocks to grant required or redistribute available space.\n\t\t *\n\t\t * @param {number} previousColumns Previous column count.\n\t\t * @param {number} newColumns New column count.\n\t\t */\n\t\tupdateColumns( previousColumns, newColumns ) {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { replaceInnerBlocks } = dispatch( blockEditorStore );\n\t\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\n\t\t\tlet innerBlocks = getBlocks( clientId );\n\t\t\tconst hasExplicitWidths =\n\t\t\t\thasExplicitPercentColumnWidths( innerBlocks );\n\n\t\t\t// Redistribute available width for existing inner blocks.\n\t\t\tconst isAddingColumn = newColumns > previousColumns;\n\n\t\t\tif ( isAddingColumn && hasExplicitWidths ) {\n\t\t\t\t// If adding a new column, assign width to the new column equal to\n\t\t\t\t// as if it were `1 / columns` of the total available space.\n\t\t\t\tconst newColumnWidth = toWidthPrecision( 100 / newColumns );\n\n\t\t\t\t// Redistribute in consideration of pending block insertion as\n\t\t\t\t// constraining the available working width.\n\t\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t100 - newColumnWidth\n\t\t\t\t);\n\n\t\t\t\tinnerBlocks = [\n\t\t\t\t\t...getMappedColumnWidths( innerBlocks, widths ),\n\t\t\t\t\t...Array.from( {\n\t\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t\t} ).map( () => {\n\t\t\t\t\t\treturn createBlock( 'core/column', {\n\t\t\t\t\t\t\twidth: `${ newColumnWidth }%`,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t} else if ( isAddingColumn ) {\n\t\t\t\tinnerBlocks = [\n\t\t\t\t\t...innerBlocks,\n\t\t\t\t\t...Array.from( {\n\t\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t\t} ).map( () => {\n\t\t\t\t\t\treturn createBlock( 'core/column' );\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t} else {\n\t\t\t\t// The removed column will be the last of the inner blocks.\n\t\t\t\tinnerBlocks = innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\t-( previousColumns - newColumns )\n\t\t\t\t);\n\n\t\t\t\tif ( hasExplicitWidths ) {\n\t\t\t\t\t// Redistribute as if block is already removed.\n\t\t\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t\t100\n\t\t\t\t\t);\n\n\t\t\t\t\tinnerBlocks = getMappedColumnWidths( innerBlocks, widths );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treplaceInnerBlocks( clientId, innerBlocks );\n\t\t},\n\t} )\n)( ColumnsEditContainer );\n\nfunction Placeholder( { clientId, name, setAttributes } ) {\n\tconst { blockType, defaultVariation, variations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockVariations,\n\t\t\t\tgetBlockType,\n\t\t\t\tgetDefaultBlockVariation,\n\t\t\t} = select( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tblockType: getBlockType( name ),\n\t\t\t\tdefaultVariation: getDefaultBlockVariation( name, 'block' ),\n\t\t\t\tvariations: getBlockVariations( name, 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ name ]\n\t);\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<__experimentalBlockVariationPicker\n\t\t\t\ticon={ blockType?.icon?.src }\n\t\t\t\tlabel={ blockType?.title }\n\t\t\t\tvariations={ variations }\n\t\t\t\tonSelect={ ( nextVariation = defaultVariation ) => {\n\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\tsetAttributes( nextVariation.attributes );\n\t\t\t\t\t}\n\t\t\t\t\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tallowSkip\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nconst ColumnsEdit = ( props ) => {\n\tconst { clientId } = props;\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlocks( clientId ).length > 0,\n\t\t[ clientId ]\n\t);\n\tconst Component = hasInnerBlocks\n\t\t? ColumnsEditContainerWrapper\n\t\t: Placeholder;\n\n\treturn <Component { ...props } />;\n};\n\nexport default ColumnsEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/columns/edit.js"],"names":["classnames","__","Notice","PanelBody","RangeControl","ToggleControl","InspectorControls","useInnerBlocksProps","BlockControls","BlockVerticalAlignmentToolbar","__experimentalBlockVariationPicker","useBlockProps","store","blockEditorStore","withDispatch","useDispatch","useSelect","createBlock","createBlocksFromInnerBlocksTemplate","blocksStore","hasExplicitPercentColumnWidths","getMappedColumnWidths","getRedistributedColumnWidths","toWidthPrecision","ALLOWED_BLOCKS","ColumnsEditContainer","attributes","setAttributes","updateAlignment","updateColumns","clientId","isStackedOnMobile","verticalAlignment","templateLock","count","canInsertColumnBlock","minCount","select","canInsertBlockType","canRemoveBlock","getBlocks","getBlockCount","innerBlocks","preventRemovalBlockIndexes","reduce","acc","block","index","push","Math","max","classes","blockProps","className","innerBlocksProps","allowedBlocks","orientation","renderAppender","value","ColumnsEditContainerWrapper","dispatch","ownProps","registry","updateBlockAttributes","getBlockOrder","innerBlockClientIds","forEach","innerBlockClientId","previousColumns","newColumns","replaceInnerBlocks","hasExplicitWidths","isAddingColumn","newColumnWidth","widths","Array","from","length","map","width","slice","Placeholder","name","blockType","defaultVariation","variations","getBlockVariations","getBlockType","getDefaultBlockVariation","icon","src","title","nextVariation","ColumnsEdit","props","hasInnerBlocks","Component"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SACCC,MADD,EAECC,SAFD,EAGCC,YAHD,EAICC,aAJD,QAKO,uBALP;AAOA,SACCC,iBADD,EAECC,mBAFD,EAGCC,aAHD,EAICC,6BAJD,EAKCC,kCALD,EAMCC,aAND,EAOCC,KAAK,IAAIC,gBAPV,QAQO,yBARP;AASA,SAASC,YAAT,EAAuBC,WAAvB,EAAoCC,SAApC,QAAqD,iBAArD;AACA,SACCC,WADD,EAECC,mCAFD,EAGCN,KAAK,IAAIO,WAHV,QAIO,mBAJP;AAMA;AACA;AACA;;AACA,SACCC,8BADD,EAECC,qBAFD,EAGCC,4BAHD,EAICC,gBAJD,QAKO,SALP;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,cAAc,GAAG,CAAE,aAAF,CAAvB;;AAEA,SAASC,oBAAT,OAMI;AAAA,MAN2B;AAC9BC,IAAAA,UAD8B;AAE9BC,IAAAA,aAF8B;AAG9BC,IAAAA,eAH8B;AAI9BC,IAAAA,aAJ8B;AAK9BC,IAAAA;AAL8B,GAM3B;AACH,QAAM;AAAEC,IAAAA,iBAAF;AAAqBC,IAAAA,iBAArB;AAAwCC,IAAAA;AAAxC,MAAyDP,UAA/D;AAEA,QAAM;AAAEQ,IAAAA,KAAF;AAASC,IAAAA,oBAAT;AAA+BC,IAAAA;AAA/B,MAA4CpB,SAAS,CACxDqB,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,kBADK;AAELC,MAAAA,cAFK;AAGLC,MAAAA,SAHK;AAILC,MAAAA;AAJK,QAKFJ,MAAM,CAAExB,gBAAF,CALV;AAMA,UAAM6B,WAAW,GAAGF,SAAS,CAAEV,QAAF,CAA7B,CAPa,CASb;AACA;;AACA,UAAMa,0BAA0B,GAAGD,WAAW,CAACE,MAAZ,CAClC,CAAEC,GAAF,EAAOC,KAAP,EAAcC,KAAd,KAAyB;AACxB,UAAK,CAAER,cAAc,CAAEO,KAAK,CAAChB,QAAR,CAArB,EAA0C;AACzCe,QAAAA,GAAG,CAACG,IAAJ,CAAUD,KAAV;AACA;;AACD,aAAOF,GAAP;AACA,KANiC,EAOlC,EAPkC,CAAnC;AAUA,WAAO;AACNX,MAAAA,KAAK,EAAEO,aAAa,CAAEX,QAAF,CADd;AAENK,MAAAA,oBAAoB,EAAEG,kBAAkB,CACvC,aADuC,EAEvCR,QAFuC,CAFlC;AAMNM,MAAAA,QAAQ,EAAEa,IAAI,CAACC,GAAL,CAAU,GAAGP,0BAAb,IAA4C;AANhD,KAAP;AAQA,GA9ByD,EA+B1D,CAAEb,QAAF,CA/B0D,CAA3D;AAkCA,QAAMqB,OAAO,GAAGnD,UAAU,CAAE;AAC3B,KAAG,0BAA0BgC,iBAAmB,EAAhD,GAAqDA,iBAD1B;AAE3B,KAAG,0BAAH,GAAgC,CAAED;AAFP,GAAF,CAA1B;AAKA,QAAMqB,UAAU,GAAGzC,aAAa,CAAE;AACjC0C,IAAAA,SAAS,EAAEF;AADsB,GAAF,CAAhC;AAGA,QAAMG,gBAAgB,GAAG/C,mBAAmB,CAAE6C,UAAF,EAAc;AACzDG,IAAAA,aAAa,EAAE/B,cAD0C;AAEzDgC,IAAAA,WAAW,EAAE,YAF4C;AAGzDC,IAAAA,cAAc,EAAE,KAHyC;AAIzDxB,IAAAA;AAJyD,GAAd,CAA5C;AAOA,SACC,8BACC,cAAC,aAAD,QACC,cAAC,6BAAD;AACC,IAAA,QAAQ,EAAGL,eADZ;AAEC,IAAA,KAAK,EAAGI;AAFT,IADD,CADD,EAOC,cAAC,iBAAD,QACC,cAAC,SAAD,QACGG,oBAAoB,IACrB,8BACC,cAAC,YAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAGlC,EAAE,CAAE,SAAF,CAFX;AAGC,IAAA,KAAK,EAAGiC,KAHT;AAIC,IAAA,QAAQ,EAAKwB,KAAF,IACV7B,aAAa,CACZK,KADY,EAEZe,IAAI,CAACC,GAAL,CAAUd,QAAV,EAAoBsB,KAApB,CAFY,CALf;AAUC,IAAA,GAAG,EAAGT,IAAI,CAACC,GAAL,CAAU,CAAV,EAAad,QAAb,CAVP;AAWC,IAAA,GAAG,EAAGa,IAAI,CAACC,GAAL,CAAU,CAAV,EAAahB,KAAb;AAXP,IADD,EAcGA,KAAK,GAAG,CAAR,IACD,cAAC,MAAD;AACC,IAAA,MAAM,EAAC,SADR;AAEC,IAAA,aAAa,EAAG;AAFjB,KAIGjC,EAAE,CACH,iFADG,CAJL,CAfF,CAFF,EA4BC,cAAC,aAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAGA,EAAE,CAAE,iBAAF,CAFX;AAGC,IAAA,OAAO,EAAG8B,iBAHX;AAIC,IAAA,QAAQ,EAAG,MACVJ,aAAa,CAAE;AACdI,MAAAA,iBAAiB,EAAE,CAAEA;AADP,KAAF;AALf,IA5BD,CADD,CAPD,EAgDC,qBAAUuB,gBAAV,CAhDD,CADD;AAoDA;;AAED,MAAMK,2BAA2B,GAAG7C,YAAY,CAC/C,CAAE8C,QAAF,EAAYC,QAAZ,EAAsBC,QAAtB,MAAsC;AACrC;AACF;AACA;AACA;AACA;AACA;AACA;AACElC,EAAAA,eAAe,CAAEI,iBAAF,EAAsB;AACpC,UAAM;AAAEF,MAAAA,QAAF;AAAYH,MAAAA;AAAZ,QAA8BkC,QAApC;AACA,UAAM;AAAEE,MAAAA;AAAF,QAA4BH,QAAQ,CAAE/C,gBAAF,CAA1C;AACA,UAAM;AAAEmD,MAAAA;AAAF,QAAoBF,QAAQ,CAACzB,MAAT,CAAiBxB,gBAAjB,CAA1B,CAHoC,CAKpC;;AACAc,IAAAA,aAAa,CAAE;AAAEK,MAAAA;AAAF,KAAF,CAAb,CANoC,CAQpC;;AACA,UAAMiC,mBAAmB,GAAGD,aAAa,CAAElC,QAAF,CAAzC;AACAmC,IAAAA,mBAAmB,CAACC,OAApB,CAA+BC,kBAAF,IAA0B;AACtDJ,MAAAA,qBAAqB,CAAEI,kBAAF,EAAsB;AAC1CnC,QAAAA;AAD0C,OAAtB,CAArB;AAGA,KAJD;AAKA,GAvBoC;;AAyBrC;AACF;AACA;AACA;AACA;AACA;AACA;AACEH,EAAAA,aAAa,CAAEuC,eAAF,EAAmBC,UAAnB,EAAgC;AAC5C,UAAM;AAAEvC,MAAAA;AAAF,QAAe+B,QAArB;AACA,UAAM;AAAES,MAAAA;AAAF,QAAyBV,QAAQ,CAAE/C,gBAAF,CAAvC;AACA,UAAM;AAAE2B,MAAAA;AAAF,QAAgBsB,QAAQ,CAACzB,MAAT,CAAiBxB,gBAAjB,CAAtB;AAEA,QAAI6B,WAAW,GAAGF,SAAS,CAAEV,QAAF,CAA3B;AACA,UAAMyC,iBAAiB,GACtBnD,8BAA8B,CAAEsB,WAAF,CAD/B,CAN4C,CAS5C;;AACA,UAAM8B,cAAc,GAAGH,UAAU,GAAGD,eAApC;;AAEA,QAAKI,cAAc,IAAID,iBAAvB,EAA2C;AAC1C;AACA;AACA,YAAME,cAAc,GAAGlD,gBAAgB,CAAE,MAAM8C,UAAR,CAAvC,CAH0C,CAK1C;AACA;;AACA,YAAMK,MAAM,GAAGpD,4BAA4B,CAC1CoB,WAD0C,EAE1C,MAAM+B,cAFoC,CAA3C;AAKA/B,MAAAA,WAAW,GAAG,CACb,GAAGrB,qBAAqB,CAAEqB,WAAF,EAAegC,MAAf,CADX,EAEb,GAAGC,KAAK,CAACC,IAAN,CAAY;AACdC,QAAAA,MAAM,EAAER,UAAU,GAAGD;AADP,OAAZ,EAECU,GAFD,CAEM,MAAM;AACd,eAAO7D,WAAW,CAAE,aAAF,EAAiB;AAClC8D,UAAAA,KAAK,EAAG,GAAGN,cAAgB;AADO,SAAjB,CAAlB;AAGA,OANE,CAFU,CAAd;AAUA,KAtBD,MAsBO,IAAKD,cAAL,EAAsB;AAC5B9B,MAAAA,WAAW,GAAG,CACb,GAAGA,WADU,EAEb,GAAGiC,KAAK,CAACC,IAAN,CAAY;AACdC,QAAAA,MAAM,EAAER,UAAU,GAAGD;AADP,OAAZ,EAECU,GAFD,CAEM,MAAM;AACd,eAAO7D,WAAW,CAAE,aAAF,CAAlB;AACA,OAJE,CAFU,CAAd;AAQA,KATM,MASA,IAAKoD,UAAU,GAAGD,eAAlB,EAAoC;AAC1C;AACA1B,MAAAA,WAAW,GAAGA,WAAW,CAACsC,KAAZ,CACb,CADa,EAEb,EAAGZ,eAAe,GAAGC,UAArB,CAFa,CAAd;;AAIA,UAAKE,iBAAL,EAAyB;AACxB;AACA,cAAMG,MAAM,GAAGpD,4BAA4B,CAC1CoB,WAD0C,EAE1C,GAF0C,CAA3C;AAKAA,QAAAA,WAAW,GAAGrB,qBAAqB,CAAEqB,WAAF,EAAegC,MAAf,CAAnC;AACA;AACD;;AAEDJ,IAAAA,kBAAkB,CAAExC,QAAF,EAAYY,WAAZ,CAAlB;AACA;;AA7FoC,CAAtC,CAD+C,CAAZ,CAgGjCjB,oBAhGiC,CAApC;;AAkGA,SAASwD,WAAT,QAA0D;AAAA;;AAAA,MAApC;AAAEnD,IAAAA,QAAF;AAAYoD,IAAAA,IAAZ;AAAkBvD,IAAAA;AAAlB,GAAoC;AACzD,QAAM;AAAEwD,IAAAA,SAAF;AAAaC,IAAAA,gBAAb;AAA+BC,IAAAA;AAA/B,MAA8CrE,SAAS,CAC1DqB,MAAF,IAAc;AACb,UAAM;AACLiD,MAAAA,kBADK;AAELC,MAAAA,YAFK;AAGLC,MAAAA;AAHK,QAIFnD,MAAM,CAAElB,WAAF,CAJV;AAMA,WAAO;AACNgE,MAAAA,SAAS,EAAEI,YAAY,CAAEL,IAAF,CADjB;AAENE,MAAAA,gBAAgB,EAAEI,wBAAwB,CAAEN,IAAF,EAAQ,OAAR,CAFpC;AAGNG,MAAAA,UAAU,EAAEC,kBAAkB,CAAEJ,IAAF,EAAQ,OAAR;AAHxB,KAAP;AAKA,GAb2D,EAc5D,CAAEA,IAAF,CAd4D,CAA7D;AAgBA,QAAM;AAAEZ,IAAAA;AAAF,MAAyBvD,WAAW,CAAEF,gBAAF,CAA1C;AACA,QAAMuC,UAAU,GAAGzC,aAAa,EAAhC;AAEA,SACC,qBAAUyC,UAAV,EACC,cAAC,kCAAD;AACC,IAAA,IAAI,EAAG+B,SAAH,aAAGA,SAAH,0CAAGA,SAAS,CAAEM,IAAd,oDAAG,gBAAiBC,GADzB;AAEC,IAAA,KAAK,EAAGP,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEQ,KAFpB;AAGC,IAAA,UAAU,EAAGN,UAHd;AAIC,IAAA,QAAQ,EAAG,YAAwC;AAAA,UAAtCO,aAAsC,uEAAtBR,gBAAsB;;AAClD,UAAKQ,aAAa,CAAClE,UAAnB,EAAgC;AAC/BC,QAAAA,aAAa,CAAEiE,aAAa,CAAClE,UAAhB,CAAb;AACA;;AACD,UAAKkE,aAAa,CAAClD,WAAnB,EAAiC;AAChC4B,QAAAA,kBAAkB,CACjBxC,QADiB,EAEjBZ,mCAAmC,CAClC0E,aAAa,CAAClD,WADoB,CAFlB,EAKjB,IALiB,CAAlB;AAOA;AACD,KAjBF;AAkBC,IAAA,SAAS;AAlBV,IADD,CADD;AAwBA;;AAED,MAAMmD,WAAW,GAAKC,KAAF,IAAa;AAChC,QAAM;AAAEhE,IAAAA;AAAF,MAAegE,KAArB;AACA,QAAMC,cAAc,GAAG/E,SAAS,CAC7BqB,MAAF,IACCA,MAAM,CAAExB,gBAAF,CAAN,CAA2B2B,SAA3B,CAAsCV,QAAtC,EAAiD+C,MAAjD,GAA0D,CAF5B,EAG/B,CAAE/C,QAAF,CAH+B,CAAhC;AAKA,QAAMkE,SAAS,GAAGD,cAAc,GAC7BpC,2BAD6B,GAE7BsB,WAFH;AAIA,SAAO,cAAC,SAAD,EAAgBa,KAAhB,CAAP;AACA,CAZD;;AAcA,eAAeD,WAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tNotice,\n\tPanelBody,\n\tRangeControl,\n\tToggleControl,\n} from '@wordpress/components';\n\nimport {\n\tInspectorControls,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\t__experimentalBlockVariationPicker,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\thasExplicitPercentColumnWidths,\n\tgetMappedColumnWidths,\n\tgetRedistributedColumnWidths,\n\ttoWidthPrecision,\n} from './utils';\n\n/**\n * Allowed blocks constant is passed to InnerBlocks precisely as specified here.\n * The contents of the array should never change.\n * The array should contain the name of each block that is allowed.\n * In columns block, the only block we allow is 'core/column'.\n *\n * @constant\n * @type {string[]}\n */\nconst ALLOWED_BLOCKS = [ 'core/column' ];\n\nfunction ColumnsEditContainer( {\n\tattributes,\n\tsetAttributes,\n\tupdateAlignment,\n\tupdateColumns,\n\tclientId,\n} ) {\n\tconst { isStackedOnMobile, verticalAlignment, templateLock } = attributes;\n\n\tconst { count, canInsertColumnBlock, minCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tgetBlocks,\n\t\t\t\tgetBlockCount,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst innerBlocks = getBlocks( clientId );\n\n\t\t\t// Get the indexes of columns for which removal is prevented.\n\t\t\t// The highest index will be used to determine the minimum column count.\n\t\t\tconst preventRemovalBlockIndexes = innerBlocks.reduce(\n\t\t\t\t( acc, block, index ) => {\n\t\t\t\t\tif ( ! canRemoveBlock( block.clientId ) ) {\n\t\t\t\t\t\tacc.push( index );\n\t\t\t\t\t}\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\t[]\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcount: getBlockCount( clientId ),\n\t\t\t\tcanInsertColumnBlock: canInsertBlockType(\n\t\t\t\t\t'core/column',\n\t\t\t\t\tclientId\n\t\t\t\t),\n\t\t\t\tminCount: Math.max( ...preventRemovalBlockIndexes ) + 1,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst classes = classnames( {\n\t\t[ `are-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t[ `is-not-stacked-on-mobile` ]: ! isStackedOnMobile,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\ttemplateLock,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t{ canInsertColumnBlock && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\tvalue={ count }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tupdateColumns(\n\t\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\t\tMath.max( minCount, value )\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\tmin={ Math.max( 1, minCount ) }\n\t\t\t\t\t\t\t\tmax={ Math.max( 6, count ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ count > 6 && (\n\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\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\t\t'This column count exceeds the recommended amount and may cause visual breakage.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Notice>\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\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\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</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nconst ColumnsEditContainerWrapper = withDispatch(\n\t( dispatch, ownProps, registry ) => ( {\n\t\t/**\n\t\t * Update all child Column blocks with a new vertical alignment setting\n\t\t * based on whatever alignment is passed in. This allows change to parent\n\t\t * to overide anything set on a individual column basis.\n\t\t *\n\t\t * @param {string} verticalAlignment the vertical alignment setting\n\t\t */\n\t\tupdateAlignment( verticalAlignment ) {\n\t\t\tconst { clientId, setAttributes } = ownProps;\n\t\t\tconst { updateBlockAttributes } = dispatch( blockEditorStore );\n\t\t\tconst { getBlockOrder } = registry.select( blockEditorStore );\n\n\t\t\t// Update own alignment.\n\t\t\tsetAttributes( { verticalAlignment } );\n\n\t\t\t// Update all child Column Blocks to match.\n\t\t\tconst innerBlockClientIds = getBlockOrder( clientId );\n\t\t\tinnerBlockClientIds.forEach( ( innerBlockClientId ) => {\n\t\t\t\tupdateBlockAttributes( innerBlockClientId, {\n\t\t\t\t\tverticalAlignment,\n\t\t\t\t} );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Updates the column count, including necessary revisions to child Column\n\t\t * blocks to grant required or redistribute available space.\n\t\t *\n\t\t * @param {number} previousColumns Previous column count.\n\t\t * @param {number} newColumns New column count.\n\t\t */\n\t\tupdateColumns( previousColumns, newColumns ) {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { replaceInnerBlocks } = dispatch( blockEditorStore );\n\t\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\n\t\t\tlet innerBlocks = getBlocks( clientId );\n\t\t\tconst hasExplicitWidths =\n\t\t\t\thasExplicitPercentColumnWidths( innerBlocks );\n\n\t\t\t// Redistribute available width for existing inner blocks.\n\t\t\tconst isAddingColumn = newColumns > previousColumns;\n\n\t\t\tif ( isAddingColumn && hasExplicitWidths ) {\n\t\t\t\t// If adding a new column, assign width to the new column equal to\n\t\t\t\t// as if it were `1 / columns` of the total available space.\n\t\t\t\tconst newColumnWidth = toWidthPrecision( 100 / newColumns );\n\n\t\t\t\t// Redistribute in consideration of pending block insertion as\n\t\t\t\t// constraining the available working width.\n\t\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t100 - newColumnWidth\n\t\t\t\t);\n\n\t\t\t\tinnerBlocks = [\n\t\t\t\t\t...getMappedColumnWidths( innerBlocks, widths ),\n\t\t\t\t\t...Array.from( {\n\t\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t\t} ).map( () => {\n\t\t\t\t\t\treturn createBlock( 'core/column', {\n\t\t\t\t\t\t\twidth: `${ newColumnWidth }%`,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t} else if ( isAddingColumn ) {\n\t\t\t\tinnerBlocks = [\n\t\t\t\t\t...innerBlocks,\n\t\t\t\t\t...Array.from( {\n\t\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t\t} ).map( () => {\n\t\t\t\t\t\treturn createBlock( 'core/column' );\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t} else if ( newColumns < previousColumns ) {\n\t\t\t\t// The removed column will be the last of the inner blocks.\n\t\t\t\tinnerBlocks = innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\t-( previousColumns - newColumns )\n\t\t\t\t);\n\t\t\t\tif ( hasExplicitWidths ) {\n\t\t\t\t\t// Redistribute as if block is already removed.\n\t\t\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t\t100\n\t\t\t\t\t);\n\n\t\t\t\t\tinnerBlocks = getMappedColumnWidths( innerBlocks, widths );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treplaceInnerBlocks( clientId, innerBlocks );\n\t\t},\n\t} )\n)( ColumnsEditContainer );\n\nfunction Placeholder( { clientId, name, setAttributes } ) {\n\tconst { blockType, defaultVariation, variations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockVariations,\n\t\t\t\tgetBlockType,\n\t\t\t\tgetDefaultBlockVariation,\n\t\t\t} = select( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tblockType: getBlockType( name ),\n\t\t\t\tdefaultVariation: getDefaultBlockVariation( name, 'block' ),\n\t\t\t\tvariations: getBlockVariations( name, 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ name ]\n\t);\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<__experimentalBlockVariationPicker\n\t\t\t\ticon={ blockType?.icon?.src }\n\t\t\t\tlabel={ blockType?.title }\n\t\t\t\tvariations={ variations }\n\t\t\t\tonSelect={ ( nextVariation = defaultVariation ) => {\n\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\tsetAttributes( nextVariation.attributes );\n\t\t\t\t\t}\n\t\t\t\t\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tallowSkip\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nconst ColumnsEdit = ( props ) => {\n\tconst { clientId } = props;\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlocks( clientId ).length > 0,\n\t\t[ clientId ]\n\t);\n\tconst Component = hasInnerBlocks\n\t\t? ColumnsEditContainerWrapper\n\t\t: Placeholder;\n\n\treturn <Component { ...props } />;\n};\n\nexport default ColumnsEdit;\n"]}
@@ -25,6 +25,10 @@ const metadata = {
25
25
  isStackedOnMobile: {
26
26
  type: "boolean",
27
27
  "default": true
28
+ },
29
+ templateLock: {
30
+ type: ["string", "boolean"],
31
+ "enum": ["all", "insert", "contentOnly", false]
28
32
  }
29
33
  },
30
34
  supports: {
@@ -47,7 +51,8 @@ const metadata = {
47
51
  margin: ["top", "bottom"],
48
52
  padding: true,
49
53
  __experimentalDefaultControls: {
50
- padding: true
54
+ padding: true,
55
+ blockGap: true
51
56
  }
52
57
  },
53
58
  __experimentalLayout: {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/columns/index.js"],"names":["__","columns","icon","initBlock","deprecated","edit","save","variations","transforms","name","metadata","settings","example","viewportWidth","innerBlocks","attributes","content","url","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,OAAO,IAAIC,IAApB,QAAgC,kBAAhC;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,IAAP,MAAiB,QAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBT,EAAAA,IADuB;AAEvBK,EAAAA,UAFuB;AAGvBK,EAAAA,OAAO,EAAE;AACRC,IAAAA,aAAa,EAAE,GADP;AACY;AACpBC,IAAAA,WAAW,EAAE,CACZ;AACCL,MAAAA,IAAI,EAAE,aADP;AAECK,MAAAA,WAAW,EAAE,CACZ;AACCL,QAAAA,IAAI,EAAE,gBADP;AAECM,QAAAA,UAAU,EAAE;AACX;AACAC,UAAAA,OAAO,EAAEhB,EAAE,CACV,qFADU;AAFA;AAFb,OADY,EAUZ;AACCS,QAAAA,IAAI,EAAE,YADP;AAECM,QAAAA,UAAU,EAAE;AACXE,UAAAA,GAAG,EAAE;AADM;AAFb,OAVY,EAgBZ;AACCR,QAAAA,IAAI,EAAE,gBADP;AAECM,QAAAA,UAAU,EAAE;AACX;AACAC,UAAAA,OAAO,EAAEhB,EAAE,CACV,6DADU;AAFA;AAFb,OAhBY;AAFd,KADY,EA8BZ;AACCS,MAAAA,IAAI,EAAE,aADP;AAECK,MAAAA,WAAW,EAAE,CACZ;AACCL,QAAAA,IAAI,EAAE,gBADP;AAECM,QAAAA,UAAU,EAAE;AACX;AACAC,UAAAA,OAAO,EAAEhB,EAAE,CACV,+JADU;AAFA;AAFb,OADY,EAUZ;AACCS,QAAAA,IAAI,EAAE,gBADP;AAECM,QAAAA,UAAU,EAAE;AACX;AACAC,UAAAA,OAAO,EAAEhB,EAAE,CACV,yGADU;AAFA;AAFb,OAVY;AAFd,KA9BY;AAFL,GAHc;AA4DvBI,EAAAA,UA5DuB;AA6DvBC,EAAAA,IA7DuB;AA8DvBC,EAAAA,IA9DuB;AA+DvBE,EAAAA;AA/DuB,CAAjB;AAkEP,OAAO,MAAMU,IAAI,GAAG,MAAMf,SAAS,CAAE;AAAEM,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { columns as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport variations from './variations';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tvariations,\n\texample: {\n\t\tviewportWidth: 600, // Columns collapse \"@media (max-width: 599px)\".\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/column',\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent et eros eu felis.'\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\t{\n\t\t\t\t\t\tname: 'core/image',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\turl: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Suspendisse commodo neque lacus, a dictum orci interdum et.'\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],\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/column',\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Etiam et egestas lorem. Vivamus sagittis sit amet dolor quis lobortis. Integer sed fermentum arcu, id vulputate lacus. Etiam fermentum sem eu quam hendrerit.'\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\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Nam risus massa, ullamcorper consectetur eros fermentum, porta aliquet ligula. Sed vel mauris nec enim.'\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],\n\t\t\t},\n\t\t],\n\t},\n\tdeprecated,\n\tedit,\n\tsave,\n\ttransforms,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/columns/index.js"],"names":["__","columns","icon","initBlock","deprecated","edit","save","variations","transforms","name","metadata","settings","example","viewportWidth","innerBlocks","attributes","content","url","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,OAAO,IAAIC,IAApB,QAAgC,kBAAhC;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,IAAP,MAAiB,QAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBT,EAAAA,IADuB;AAEvBK,EAAAA,UAFuB;AAGvBK,EAAAA,OAAO,EAAE;AACRC,IAAAA,aAAa,EAAE,GADP;AACY;AACpBC,IAAAA,WAAW,EAAE,CACZ;AACCL,MAAAA,IAAI,EAAE,aADP;AAECK,MAAAA,WAAW,EAAE,CACZ;AACCL,QAAAA,IAAI,EAAE,gBADP;AAECM,QAAAA,UAAU,EAAE;AACX;AACAC,UAAAA,OAAO,EAAEhB,EAAE,CACV,qFADU;AAFA;AAFb,OADY,EAUZ;AACCS,QAAAA,IAAI,EAAE,YADP;AAECM,QAAAA,UAAU,EAAE;AACXE,UAAAA,GAAG,EAAE;AADM;AAFb,OAVY,EAgBZ;AACCR,QAAAA,IAAI,EAAE,gBADP;AAECM,QAAAA,UAAU,EAAE;AACX;AACAC,UAAAA,OAAO,EAAEhB,EAAE,CACV,6DADU;AAFA;AAFb,OAhBY;AAFd,KADY,EA8BZ;AACCS,MAAAA,IAAI,EAAE,aADP;AAECK,MAAAA,WAAW,EAAE,CACZ;AACCL,QAAAA,IAAI,EAAE,gBADP;AAECM,QAAAA,UAAU,EAAE;AACX;AACAC,UAAAA,OAAO,EAAEhB,EAAE,CACV,+JADU;AAFA;AAFb,OADY,EAUZ;AACCS,QAAAA,IAAI,EAAE,gBADP;AAECM,QAAAA,UAAU,EAAE;AACX;AACAC,UAAAA,OAAO,EAAEhB,EAAE,CACV,yGADU;AAFA;AAFb,OAVY;AAFd,KA9BY;AAFL,GAHc;AA4DvBI,EAAAA,UA5DuB;AA6DvBC,EAAAA,IA7DuB;AA8DvBC,EAAAA,IA9DuB;AA+DvBE,EAAAA;AA/DuB,CAAjB;AAkEP,OAAO,MAAMU,IAAI,GAAG,MAAMf,SAAS,CAAE;AAAEM,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { columns as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport variations from './variations';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tvariations,\n\texample: {\n\t\tviewportWidth: 600, // Columns collapse \"@media (max-width: 599px)\".\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/column',\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent et eros eu felis.'\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\t{\n\t\t\t\t\t\tname: 'core/image',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\turl: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Suspendisse commodo neque lacus, a dictum orci interdum et.'\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],\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/column',\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Etiam et egestas lorem. Vivamus sagittis sit amet dolor quis lobortis. Integer sed fermentum arcu, id vulputate lacus. Etiam fermentum sem eu quam hendrerit.'\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\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Nam risus massa, ullamcorper consectetur eros fermentum, porta aliquet ligula. Sed vel mauris nec enim.'\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],\n\t\t\t},\n\t\t],\n\t},\n\tdeprecated,\n\tedit,\n\tsave,\n\ttransforms,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -1,7 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { mapValues } from 'lodash';
5
1
  /**
6
2
  * Returns a column width attribute value rounded to standard precision.
7
3
  * Returns `undefined` if the value is not a valid finite number.
@@ -10,7 +6,6 @@ import { mapValues } from 'lodash';
10
6
  *
11
7
  * @return {number} Value rounded to standard precision.
12
8
  */
13
-
14
9
  export const toWidthPrecision = value => {
15
10
  const unitlessValue = parseFloat(value);
16
11
  return Number.isFinite(unitlessValue) ? parseFloat(unitlessValue.toFixed(2)) : undefined;
@@ -80,10 +75,11 @@ export function getColumnWidths(blocks) {
80
75
  export function getRedistributedColumnWidths(blocks, availableWidth) {
81
76
  let totalBlockCount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : blocks.length;
82
77
  const totalWidth = getTotalColumnsWidth(blocks, totalBlockCount);
83
- return mapValues(getColumnWidths(blocks, totalBlockCount), width => {
78
+ return Object.fromEntries(Object.entries(getColumnWidths(blocks, totalBlockCount)).map(_ref => {
79
+ let [clientId, width] = _ref;
84
80
  const newWidth = availableWidth * width / totalWidth;
85
- return toWidthPrecision(newWidth);
86
- });
81
+ return [clientId, toWidthPrecision(newWidth)];
82
+ }));
87
83
  }
88
84
  /**
89
85
  * Returns true if column blocks within the provided set are assigned with
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/columns/utils.js"],"names":["mapValues","toWidthPrecision","value","unitlessValue","parseFloat","Number","isFinite","toFixed","undefined","getEffectiveColumnWidth","block","totalBlockCount","width","attributes","getTotalColumnsWidth","blocks","length","reduce","sum","getColumnWidths","accumulator","Object","assign","clientId","getRedistributedColumnWidths","availableWidth","totalWidth","newWidth","hasExplicitPercentColumnWidths","every","blockWidth","endsWith","getMappedColumnWidths","widths","map","getWidths","withParsing","innerColumn","innerColumnWidth","getWidthWithUnit","unit","isPercentageUnit","Math","min"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { mapValues } from 'lodash';\n\n/**\n * Returns a column width attribute value rounded to standard precision.\n * Returns `undefined` if the value is not a valid finite number.\n *\n * @param {?number} value Raw value.\n *\n * @return {number} Value rounded to standard precision.\n */\nexport const toWidthPrecision = ( value ) => {\n\tconst unitlessValue = parseFloat( value );\n\treturn Number.isFinite( unitlessValue )\n\t\t? parseFloat( unitlessValue.toFixed( 2 ) )\n\t\t: undefined;\n};\n/**\n * Returns an effective width for a given block. An effective width is equal to\n * its attribute value if set, or a computed value assuming equal distribution.\n *\n * @param {WPBlock} block Block object.\n * @param {number} totalBlockCount Total number of blocks in Columns.\n *\n * @return {number} Effective column width.\n */\nexport function getEffectiveColumnWidth( block, totalBlockCount ) {\n\tconst { width = 100 / totalBlockCount } = block.attributes;\n\treturn toWidthPrecision( width );\n}\n\n/**\n * Returns the total width occupied by the given set of column blocks.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {number} Total width occupied by blocks.\n */\nexport function getTotalColumnsWidth(\n\tblocks,\n\ttotalBlockCount = blocks.length\n) {\n\treturn blocks.reduce(\n\t\t( sum, block ) =>\n\t\t\tsum + getEffectiveColumnWidth( block, totalBlockCount ),\n\t\t0\n\t);\n}\n\n/**\n * Returns an object of `clientId` → `width` of effective column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Column widths.\n */\nexport function getColumnWidths( blocks, totalBlockCount = blocks.length ) {\n\treturn blocks.reduce( ( accumulator, block ) => {\n\t\tconst width = getEffectiveColumnWidth( block, totalBlockCount );\n\t\treturn Object.assign( accumulator, { [ block.clientId ]: width } );\n\t}, {} );\n}\n\n/**\n * Returns an object of `clientId` → `width` of column widths as redistributed\n * proportional to their current widths, constrained or expanded to fit within\n * the given available width.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {number} availableWidth Maximum width to fit within.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Redistributed column widths.\n */\nexport function getRedistributedColumnWidths(\n\tblocks,\n\tavailableWidth,\n\ttotalBlockCount = blocks.length\n) {\n\tconst totalWidth = getTotalColumnsWidth( blocks, totalBlockCount );\n\n\treturn mapValues( getColumnWidths( blocks, totalBlockCount ), ( width ) => {\n\t\tconst newWidth = ( availableWidth * width ) / totalWidth;\n\t\treturn toWidthPrecision( newWidth );\n\t} );\n}\n\n/**\n * Returns true if column blocks within the provided set are assigned with\n * explicit widths, or false otherwise.\n *\n * @param {WPBlock[]} blocks Block objects.\n *\n * @return {boolean} Whether columns have explicit widths.\n */\nexport function hasExplicitPercentColumnWidths( blocks ) {\n\treturn blocks.every( ( block ) => {\n\t\tconst blockWidth = block.attributes.width;\n\t\treturn Number.isFinite(\n\t\t\tblockWidth?.endsWith?.( '%' )\n\t\t\t\t? parseFloat( blockWidth )\n\t\t\t\t: blockWidth\n\t\t);\n\t} );\n}\n\n/**\n * Returns a copy of the given set of blocks with new widths assigned from the\n * provided object of redistributed column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {Object<string,number>} widths Redistributed column widths.\n *\n * @return {WPBlock[]} blocks Mapped block objects.\n */\nexport function getMappedColumnWidths( blocks, widths ) {\n\treturn blocks.map( ( block ) => ( {\n\t\t...block,\n\t\tattributes: {\n\t\t\t...block.attributes,\n\t\t\twidth: `${ widths[ block.clientId ] }%`,\n\t\t},\n\t} ) );\n}\n\n/**\n * Returns an array with columns widths values, parsed or no depends on `withParsing` flag.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?boolean} withParsing Whether value has to be parsed.\n *\n * @return {Array<number,string>} Column widths.\n */\nexport function getWidths( blocks, withParsing = true ) {\n\treturn blocks.map( ( innerColumn ) => {\n\t\tconst innerColumnWidth =\n\t\t\tinnerColumn.attributes.width || 100 / blocks.length;\n\n\t\treturn withParsing ? parseFloat( innerColumnWidth ) : innerColumnWidth;\n\t} );\n}\n\n/**\n * Returns a column width with unit.\n *\n * @param {string} width Column width.\n * @param {string} unit Column width unit.\n *\n * @return {string} Column width with unit.\n */\nexport function getWidthWithUnit( width, unit ) {\n\twidth = 0 > parseFloat( width ) ? '0' : width;\n\n\tif ( isPercentageUnit( unit ) ) {\n\t\twidth = Math.min( width, 100 );\n\t}\n\n\treturn `${ width }${ unit }`;\n}\n\n/**\n * Returns a boolean whether passed unit is percentage\n *\n * @param {string} unit Column width unit.\n *\n * @return {boolean} \tWhether unit is '%'.\n */\nexport function isPercentageUnit( unit ) {\n\treturn unit === '%';\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/columns/utils.js"],"names":["toWidthPrecision","value","unitlessValue","parseFloat","Number","isFinite","toFixed","undefined","getEffectiveColumnWidth","block","totalBlockCount","width","attributes","getTotalColumnsWidth","blocks","length","reduce","sum","getColumnWidths","accumulator","Object","assign","clientId","getRedistributedColumnWidths","availableWidth","totalWidth","fromEntries","entries","map","newWidth","hasExplicitPercentColumnWidths","every","blockWidth","endsWith","getMappedColumnWidths","widths","getWidths","withParsing","innerColumn","innerColumnWidth","getWidthWithUnit","unit","isPercentageUnit","Math","min"],"mappings":"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","sourcesContent":["/**\n * Returns a column width attribute value rounded to standard precision.\n * Returns `undefined` if the value is not a valid finite number.\n *\n * @param {?number} value Raw value.\n *\n * @return {number} Value rounded to standard precision.\n */\nexport const toWidthPrecision = ( value ) => {\n\tconst unitlessValue = parseFloat( value );\n\treturn Number.isFinite( unitlessValue )\n\t\t? parseFloat( unitlessValue.toFixed( 2 ) )\n\t\t: undefined;\n};\n/**\n * Returns an effective width for a given block. An effective width is equal to\n * its attribute value if set, or a computed value assuming equal distribution.\n *\n * @param {WPBlock} block Block object.\n * @param {number} totalBlockCount Total number of blocks in Columns.\n *\n * @return {number} Effective column width.\n */\nexport function getEffectiveColumnWidth( block, totalBlockCount ) {\n\tconst { width = 100 / totalBlockCount } = block.attributes;\n\treturn toWidthPrecision( width );\n}\n\n/**\n * Returns the total width occupied by the given set of column blocks.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {number} Total width occupied by blocks.\n */\nexport function getTotalColumnsWidth(\n\tblocks,\n\ttotalBlockCount = blocks.length\n) {\n\treturn blocks.reduce(\n\t\t( sum, block ) =>\n\t\t\tsum + getEffectiveColumnWidth( block, totalBlockCount ),\n\t\t0\n\t);\n}\n\n/**\n * Returns an object of `clientId` → `width` of effective column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Column widths.\n */\nexport function getColumnWidths( blocks, totalBlockCount = blocks.length ) {\n\treturn blocks.reduce( ( accumulator, block ) => {\n\t\tconst width = getEffectiveColumnWidth( block, totalBlockCount );\n\t\treturn Object.assign( accumulator, { [ block.clientId ]: width } );\n\t}, {} );\n}\n\n/**\n * Returns an object of `clientId` → `width` of column widths as redistributed\n * proportional to their current widths, constrained or expanded to fit within\n * the given available width.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {number} availableWidth Maximum width to fit within.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Redistributed column widths.\n */\nexport function getRedistributedColumnWidths(\n\tblocks,\n\tavailableWidth,\n\ttotalBlockCount = blocks.length\n) {\n\tconst totalWidth = getTotalColumnsWidth( blocks, totalBlockCount );\n\n\treturn Object.fromEntries(\n\t\tObject.entries( getColumnWidths( blocks, totalBlockCount ) ).map(\n\t\t\t( [ clientId, width ] ) => {\n\t\t\t\tconst newWidth = ( availableWidth * width ) / totalWidth;\n\t\t\t\treturn [ clientId, toWidthPrecision( newWidth ) ];\n\t\t\t}\n\t\t)\n\t);\n}\n\n/**\n * Returns true if column blocks within the provided set are assigned with\n * explicit widths, or false otherwise.\n *\n * @param {WPBlock[]} blocks Block objects.\n *\n * @return {boolean} Whether columns have explicit widths.\n */\nexport function hasExplicitPercentColumnWidths( blocks ) {\n\treturn blocks.every( ( block ) => {\n\t\tconst blockWidth = block.attributes.width;\n\t\treturn Number.isFinite(\n\t\t\tblockWidth?.endsWith?.( '%' )\n\t\t\t\t? parseFloat( blockWidth )\n\t\t\t\t: blockWidth\n\t\t);\n\t} );\n}\n\n/**\n * Returns a copy of the given set of blocks with new widths assigned from the\n * provided object of redistributed column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {Object<string,number>} widths Redistributed column widths.\n *\n * @return {WPBlock[]} blocks Mapped block objects.\n */\nexport function getMappedColumnWidths( blocks, widths ) {\n\treturn blocks.map( ( block ) => ( {\n\t\t...block,\n\t\tattributes: {\n\t\t\t...block.attributes,\n\t\t\twidth: `${ widths[ block.clientId ] }%`,\n\t\t},\n\t} ) );\n}\n\n/**\n * Returns an array with columns widths values, parsed or no depends on `withParsing` flag.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?boolean} withParsing Whether value has to be parsed.\n *\n * @return {Array<number,string>} Column widths.\n */\nexport function getWidths( blocks, withParsing = true ) {\n\treturn blocks.map( ( innerColumn ) => {\n\t\tconst innerColumnWidth =\n\t\t\tinnerColumn.attributes.width || 100 / blocks.length;\n\n\t\treturn withParsing ? parseFloat( innerColumnWidth ) : innerColumnWidth;\n\t} );\n}\n\n/**\n * Returns a column width with unit.\n *\n * @param {string} width Column width.\n * @param {string} unit Column width unit.\n *\n * @return {string} Column width with unit.\n */\nexport function getWidthWithUnit( width, unit ) {\n\twidth = 0 > parseFloat( width ) ? '0' : width;\n\n\tif ( isPercentageUnit( unit ) ) {\n\t\twidth = Math.min( width, 100 );\n\t}\n\n\treturn `${ width }${ unit }`;\n}\n\n/**\n * Returns a boolean whether passed unit is percentage\n *\n * @param {string} unit Column width unit.\n *\n * @return {boolean} \tWhether unit is '%'.\n */\nexport function isPercentageUnit( unit ) {\n\treturn unit === '%';\n}\n"]}
@@ -12,9 +12,9 @@ import namesPlugin from 'colord/plugins/names';
12
12
  */
13
13
 
14
14
  import { useEntityProp, store as coreStore } from '@wordpress/core-data';
15
- import { useEffect, useRef } from '@wordpress/element';
15
+ import { useEffect, useMemo, useRef } from '@wordpress/element';
16
16
  import { Placeholder, Spinner } from '@wordpress/components';
17
- import { compose } from '@wordpress/compose';
17
+ import { compose, useResizeObserver } from '@wordpress/compose';
18
18
  import { withColors, ColorPalette, useBlockProps, useSetting, useInnerBlocksProps, __experimentalUseGradient, store as blockEditorStore } from '@wordpress/block-editor';
19
19
  import { __ } from '@wordpress/i18n';
20
20
  import { useSelect, useDispatch } from '@wordpress/data';
@@ -29,7 +29,7 @@ import useCoverIsDark from './use-cover-is-dark';
29
29
  import CoverInspectorControls from './inspector-controls';
30
30
  import CoverBlockControls from './block-controls';
31
31
  import CoverPlaceholder from './cover-placeholder';
32
- import ResizableCover from './resizable-cover';
32
+ import ResizableCoverPopover from './resizable-cover-popover';
33
33
  extend([namesPlugin]);
34
34
 
35
35
  function getInnerBlocksTemplate(attributes) {
@@ -128,6 +128,16 @@ function CoverEdit(_ref) {
128
128
  }, [isCoverDark]);
129
129
  const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
130
130
  const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
131
+ const [resizeListener, {
132
+ height,
133
+ width
134
+ }] = useResizeObserver();
135
+ const resizableBoxDimensions = useMemo(() => {
136
+ return {
137
+ height: minHeightUnit === 'px' ? minHeight : 'auto',
138
+ width: 'auto'
139
+ };
140
+ }, [minHeight, minHeightUnit]);
131
141
  const minHeightWithUnit = minHeight && minHeightUnit ? `${minHeight}${minHeightUnit}` : minHeight;
132
142
  const isImgElement = !(hasParallax || isRepeated);
133
143
  const style = {
@@ -199,16 +209,42 @@ function CoverEdit(_ref) {
199
209
  currentSettings: currentSettings,
200
210
  toggleUseFeaturedImage: toggleUseFeaturedImage
201
211
  });
212
+ const resizableCoverProps = {
213
+ className: 'block-library-cover__resize-container',
214
+ clientId,
215
+ height,
216
+ minHeight: minHeightWithUnit,
217
+ onResizeStart: () => {
218
+ setAttributes({
219
+ minHeightUnit: 'px'
220
+ });
221
+ toggleSelection(false);
222
+ },
223
+ onResize: value => {
224
+ setAttributes({
225
+ minHeight: value
226
+ });
227
+ },
228
+ onResizeStop: newMinHeight => {
229
+ toggleSelection(true);
230
+ setAttributes({
231
+ minHeight: newMinHeight
232
+ });
233
+ },
234
+ showHandle: true,
235
+ size: resizableBoxDimensions,
236
+ width
237
+ };
202
238
 
203
239
  if (!useFeaturedImage && !hasInnerBlocks && !hasBackground) {
204
- return createElement(Fragment, null, blockControls, inspectorControls, createElement(TagName, _extends({}, blockProps, {
205
- className: classnames('is-placeholder', blockProps.className)
206
- }), createElement(CoverPlaceholder, {
240
+ return createElement(Fragment, null, blockControls, inspectorControls, isSelected && createElement(ResizableCoverPopover, resizableCoverProps), createElement(TagName, _extends({}, blockProps, {
241
+ className: classnames('is-placeholder', blockProps.className),
242
+ style: { ...blockProps.style,
243
+ minHeight: minHeightWithUnit || undefined
244
+ }
245
+ }), resizeListener, createElement(CoverPlaceholder, {
207
246
  onSelectMedia: onSelectMedia,
208
247
  onError: onUploadError,
209
- style: {
210
- minHeight: minHeightWithUnit || undefined
211
- },
212
248
  toggleUseFeaturedImage: toggleUseFeaturedImage
213
249
  }, createElement("div", {
214
250
  className: "wp-block-cover__placeholder-background-options"
@@ -217,27 +253,7 @@ function CoverEdit(_ref) {
217
253
  value: overlayColor.color,
218
254
  onChange: setOverlayColor,
219
255
  clearable: false
220
- }))), createElement(ResizableCover, {
221
- className: "block-library-cover__resize-container",
222
- onResizeStart: () => {
223
- setAttributes({
224
- minHeightUnit: 'px'
225
- });
226
- toggleSelection(false);
227
- },
228
- onResize: value => {
229
- setAttributes({
230
- minHeight: value
231
- });
232
- },
233
- onResizeStop: newMinHeight => {
234
- toggleSelection(true);
235
- setAttributes({
236
- minHeight: newMinHeight
237
- });
238
- },
239
- showHandle: isSelected
240
- })));
256
+ })))));
241
257
  }
242
258
 
243
259
  const classes = classnames({
@@ -254,27 +270,7 @@ function CoverEdit(_ref) {
254
270
  ...blockProps.style
255
271
  },
256
272
  "data-url": url
257
- }), createElement(ResizableCover, {
258
- className: "block-library-cover__resize-container",
259
- onResizeStart: () => {
260
- setAttributes({
261
- minHeightUnit: 'px'
262
- });
263
- toggleSelection(false);
264
- },
265
- onResize: value => {
266
- setAttributes({
267
- minHeight: value
268
- });
269
- },
270
- onResizeStop: newMinHeight => {
271
- toggleSelection(true);
272
- setAttributes({
273
- minHeight: newMinHeight
274
- });
275
- },
276
- showHandle: isSelected
277
- }), (!useFeaturedImage || url) && createElement("span", {
273
+ }), resizeListener, (!useFeaturedImage || url) && createElement("span", {
278
274
  "aria-hidden": "true",
279
275
  className: classnames('wp-block-cover__background', dimRatioToClass(dimRatio), {
280
276
  [overlayColor.class]: overlayColor.class,
@@ -320,7 +316,7 @@ function CoverEdit(_ref) {
320
316
  onSelectMedia: onSelectMedia,
321
317
  onError: onUploadError,
322
318
  toggleUseFeaturedImage: toggleUseFeaturedImage
323
- }), createElement("div", innerBlocksProps)));
319
+ }), createElement("div", innerBlocksProps)), isSelected && createElement(ResizableCoverPopover, resizableCoverProps));
324
320
  }
325
321
 
326
322
  export default compose([withColors({
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/cover/edit/index.js"],"names":["classnames","extend","namesPlugin","useEntityProp","store","coreStore","useEffect","useRef","Placeholder","Spinner","compose","withColors","ColorPalette","useBlockProps","useSetting","useInnerBlocksProps","__experimentalUseGradient","blockEditorStore","__","useSelect","useDispatch","isBlobURL","noticesStore","attributesFromMedia","IMAGE_BACKGROUND_TYPE","VIDEO_BACKGROUND_TYPE","dimRatioToClass","isContentPositionCenter","getPositionClassName","mediaPosition","useCoverIsDark","CoverInspectorControls","CoverBlockControls","CoverPlaceholder","ResizableCover","getInnerBlocksTemplate","attributes","align","placeholder","isTemporaryMedia","id","url","CoverEdit","clientId","isSelected","overlayColor","setAttributes","setOverlayColor","toggleSelection","context","postId","postType","contentPosition","useFeaturedImage","dimRatio","focalPoint","hasParallax","isDark","isRepeated","minHeight","minHeightUnit","alt","allowedBlocks","templateLock","tagName","TagName","featuredImage","media","select","getMedia","mediaUrl","source_url","replaceAll","backgroundType","__unstableMarkNextChangeAsNotPersistent","createErrorNotice","gradientClass","gradientValue","onSelectMedia","isUploadingMedia","onUploadError","message","type","isCoverDark","color","isImageBackground","isVideoBackground","minHeightWithUnit","isImgElement","style","undefined","backgroundImage","backgroundPosition","bgStyle","backgroundColor","mediaStyle","objectPosition","hasBackground","hasInnerBlocks","getBlock","innerBlocks","length","ref","blockProps","hasFontSizes","innerBlocksTemplate","fontSize","innerBlocksProps","className","template","templateInsertUpdatesSelection","mediaElement","currentSettings","toggleUseFeaturedImage","blockControls","inspectorControls","value","newMinHeight","classes","class"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport { Placeholder, Spinner } from '@wordpress/components';\nimport { compose } from '@wordpress/compose';\nimport {\n\twithColors,\n\tColorPalette,\n\tuseBlockProps,\n\tuseSetting,\n\tuseInnerBlocksProps,\n\t__experimentalUseGradient,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport {\n\tattributesFromMedia,\n\tIMAGE_BACKGROUND_TYPE,\n\tVIDEO_BACKGROUND_TYPE,\n\tdimRatioToClass,\n\tisContentPositionCenter,\n\tgetPositionClassName,\n\tmediaPosition,\n} from '../shared';\nimport useCoverIsDark from './use-cover-is-dark';\nimport CoverInspectorControls from './inspector-controls';\nimport CoverBlockControls from './block-controls';\nimport CoverPlaceholder from './cover-placeholder';\nimport ResizableCover from './resizable-cover';\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\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 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\ttagName: TagName = 'div',\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\n\t\t? mediaUrl\n\t\t: // Ensure the url is not malformed due to sanitization through `wp_kses`.\n\t\t attributes.url?.replaceAll( '&amp;', '&' );\n\tconst backgroundType = useFeaturedImage\n\t\t? IMAGE_BACKGROUND_TYPE\n\t\t: attributes.backgroundType;\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst { gradientClass, gradientValue } = __experimentalUseGradient();\n\tconst onSelectMedia = attributesFromMedia( setAttributes, dimRatio );\n\tconst isUploadingMedia = isTemporaryMedia( id, url );\n\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst isCoverDark = useCoverIsDark( url, dimRatio, overlayColor.color );\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\tminHeight: minHeightWithUnit || undefined,\n\t};\n\n\tconst backgroundImage = url ? `url(${ url })` : undefined;\n\n\tconst backgroundPosition = mediaPosition( focalPoint );\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\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 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\t// Avoid template sync when the `templateLock` value is `all` or `contentOnly`.\n\t\t\t// See: https://github.com/WordPress/gutenberg/pull/45632\n\t\t\ttemplate: ! hasInnerBlocks ? innerBlocksTemplate : undefined,\n\t\t\ttemplateInsertUpdatesSelection: true,\n\t\t\tallowedBlocks,\n\t\t\ttemplateLock,\n\t\t}\n\t);\n\n\tconst mediaElement = useRef();\n\tconst currentSettings = {\n\t\tisVideoBackground,\n\t\tisImageBackground,\n\t\tmediaElement,\n\t\thasInnerBlocks,\n\t\turl,\n\t\tisImgElement,\n\t\toverlayColor,\n\t};\n\n\tconst toggleUseFeaturedImage = () => {\n\t\tsetAttributes( {\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t\tuseFeaturedImage: ! useFeaturedImage,\n\t\t\tdimRatio: dimRatio === 100 ? 50 : dimRatio,\n\t\t\tbackgroundType: useFeaturedImage\n\t\t\t\t? IMAGE_BACKGROUND_TYPE\n\t\t\t\t: undefined,\n\t\t} );\n\t};\n\n\tconst blockControls = (\n\t\t<CoverBlockControls\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\tcurrentSettings={ currentSettings }\n\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t/>\n\t);\n\n\tconst inspectorControls = (\n\t\t<CoverInspectorControls\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tclientId={ clientId }\n\t\t\tsetOverlayColor={ setOverlayColor }\n\t\t\tcoverRef={ ref }\n\t\t\tcurrentSettings={ currentSettings }\n\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t/>\n\t);\n\n\tif ( ! useFeaturedImage && ! hasInnerBlocks && ! hasBackground ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ blockControls }\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<TagName\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\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\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</TagName>\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':\n\t\t\t\t! isContentPositionCenter( contentPosition ),\n\t\t},\n\t\tgetPositionClassName( contentPosition )\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ blockControls }\n\t\t\t{ inspectorControls }\n\t\t\t<TagName\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{ ( ! useFeaturedImage || url ) && (\n\t\t\t\t\t<span\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-cover__background',\n\t\t\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t[ overlayColor.class ]: overlayColor.class,\n\t\t\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\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\t// `.wp-block-cover__gradient-background` in the presence of\n\t\t\t\t\t\t\t\t// media, a gradient and a dim.\n\t\t\t\t\t\t\t\t'wp-block-cover__gradient-background':\n\t\t\t\t\t\t\t\t\turl && gradientValue && dimRatio !== 0,\n\t\t\t\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t\t\t\t[ gradientClass ]: gradientClass,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tstyle={ { backgroundImage: gradientValue, ...bgStyle } }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ ! url && useFeaturedImage && (\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\tclassName=\"wp-block-cover__image--placeholder-image\"\n\t\t\t\t\t\twithIllustration={ true }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ url &&\n\t\t\t\t\tisImageBackground &&\n\t\t\t\t\t( isImgElement ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tref={ mediaElement }\n\t\t\t\t\t\t\tclassName=\"wp-block-cover__image-background\"\n\t\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ mediaElement }\n\t\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\tclasses,\n\t\t\t\t\t\t\t\t'wp-block-cover__image-background'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tstyle={ { backgroundImage, backgroundPosition } }\n\t\t\t\t\t\t/>\n\t\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={ mediaElement }\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\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\t/>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</TagName>\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/index.js"],"names":["classnames","extend","namesPlugin","useEntityProp","store","coreStore","useEffect","useMemo","useRef","Placeholder","Spinner","compose","useResizeObserver","withColors","ColorPalette","useBlockProps","useSetting","useInnerBlocksProps","__experimentalUseGradient","blockEditorStore","__","useSelect","useDispatch","isBlobURL","noticesStore","attributesFromMedia","IMAGE_BACKGROUND_TYPE","VIDEO_BACKGROUND_TYPE","dimRatioToClass","isContentPositionCenter","getPositionClassName","mediaPosition","useCoverIsDark","CoverInspectorControls","CoverBlockControls","CoverPlaceholder","ResizableCoverPopover","getInnerBlocksTemplate","attributes","align","placeholder","isTemporaryMedia","id","url","CoverEdit","clientId","isSelected","overlayColor","setAttributes","setOverlayColor","toggleSelection","context","postId","postType","contentPosition","useFeaturedImage","dimRatio","focalPoint","hasParallax","isDark","isRepeated","minHeight","minHeightUnit","alt","allowedBlocks","templateLock","tagName","TagName","featuredImage","media","select","getMedia","mediaUrl","source_url","replaceAll","backgroundType","__unstableMarkNextChangeAsNotPersistent","createErrorNotice","gradientClass","gradientValue","onSelectMedia","isUploadingMedia","onUploadError","message","type","isCoverDark","color","isImageBackground","isVideoBackground","resizeListener","height","width","resizableBoxDimensions","minHeightWithUnit","isImgElement","style","undefined","backgroundImage","backgroundPosition","bgStyle","backgroundColor","mediaStyle","objectPosition","hasBackground","hasInnerBlocks","getBlock","innerBlocks","length","ref","blockProps","hasFontSizes","innerBlocksTemplate","fontSize","innerBlocksProps","className","template","templateInsertUpdatesSelection","mediaElement","currentSettings","toggleUseFeaturedImage","blockControls","inspectorControls","resizableCoverProps","onResizeStart","onResize","value","onResizeStop","newMinHeight","showHandle","size","classes","class"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useMemo, useRef } from '@wordpress/element';\nimport { Placeholder, Spinner } from '@wordpress/components';\nimport { compose, useResizeObserver } from '@wordpress/compose';\nimport {\n\twithColors,\n\tColorPalette,\n\tuseBlockProps,\n\tuseSetting,\n\tuseInnerBlocksProps,\n\t__experimentalUseGradient,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport {\n\tattributesFromMedia,\n\tIMAGE_BACKGROUND_TYPE,\n\tVIDEO_BACKGROUND_TYPE,\n\tdimRatioToClass,\n\tisContentPositionCenter,\n\tgetPositionClassName,\n\tmediaPosition,\n} from '../shared';\nimport useCoverIsDark from './use-cover-is-dark';\nimport CoverInspectorControls from './inspector-controls';\nimport CoverBlockControls from './block-controls';\nimport CoverPlaceholder from './cover-placeholder';\nimport ResizableCoverPopover from './resizable-cover-popover';\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\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 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\ttagName: TagName = 'div',\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\n\t\t? mediaUrl\n\t\t: // Ensure the url is not malformed due to sanitization through `wp_kses`.\n\t\t attributes.url?.replaceAll( '&amp;', '&' );\n\tconst backgroundType = useFeaturedImage\n\t\t? IMAGE_BACKGROUND_TYPE\n\t\t: attributes.backgroundType;\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst { gradientClass, gradientValue } = __experimentalUseGradient();\n\tconst onSelectMedia = attributesFromMedia( setAttributes, dimRatio );\n\tconst isUploadingMedia = isTemporaryMedia( id, url );\n\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst isCoverDark = useCoverIsDark( url, dimRatio, overlayColor.color );\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 [ resizeListener, { height, width } ] = useResizeObserver();\n\tconst resizableBoxDimensions = useMemo( () => {\n\t\treturn {\n\t\t\theight: minHeightUnit === 'px' ? minHeight : 'auto',\n\t\t\twidth: 'auto',\n\t\t};\n\t}, [ minHeight, minHeightUnit ] );\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\tminHeight: minHeightWithUnit || undefined,\n\t};\n\n\tconst backgroundImage = url ? `url(${ url })` : undefined;\n\n\tconst backgroundPosition = mediaPosition( focalPoint );\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\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 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\t// Avoid template sync when the `templateLock` value is `all` or `contentOnly`.\n\t\t\t// See: https://github.com/WordPress/gutenberg/pull/45632\n\t\t\ttemplate: ! hasInnerBlocks ? innerBlocksTemplate : undefined,\n\t\t\ttemplateInsertUpdatesSelection: true,\n\t\t\tallowedBlocks,\n\t\t\ttemplateLock,\n\t\t}\n\t);\n\n\tconst mediaElement = useRef();\n\tconst currentSettings = {\n\t\tisVideoBackground,\n\t\tisImageBackground,\n\t\tmediaElement,\n\t\thasInnerBlocks,\n\t\turl,\n\t\tisImgElement,\n\t\toverlayColor,\n\t};\n\n\tconst toggleUseFeaturedImage = () => {\n\t\tsetAttributes( {\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t\tuseFeaturedImage: ! useFeaturedImage,\n\t\t\tdimRatio: dimRatio === 100 ? 50 : dimRatio,\n\t\t\tbackgroundType: useFeaturedImage\n\t\t\t\t? IMAGE_BACKGROUND_TYPE\n\t\t\t\t: undefined,\n\t\t} );\n\t};\n\n\tconst blockControls = (\n\t\t<CoverBlockControls\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\tcurrentSettings={ currentSettings }\n\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t/>\n\t);\n\n\tconst inspectorControls = (\n\t\t<CoverInspectorControls\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tclientId={ clientId }\n\t\t\tsetOverlayColor={ setOverlayColor }\n\t\t\tcoverRef={ ref }\n\t\t\tcurrentSettings={ currentSettings }\n\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t/>\n\t);\n\n\tconst resizableCoverProps = {\n\t\tclassName: 'block-library-cover__resize-container',\n\t\tclientId,\n\t\theight,\n\t\tminHeight: minHeightWithUnit,\n\t\tonResizeStart: () => {\n\t\t\tsetAttributes( { minHeightUnit: 'px' } );\n\t\t\ttoggleSelection( false );\n\t\t},\n\t\tonResize: ( value ) => {\n\t\t\tsetAttributes( { minHeight: value } );\n\t\t},\n\t\tonResizeStop: ( newMinHeight ) => {\n\t\t\ttoggleSelection( true );\n\t\t\tsetAttributes( { minHeight: newMinHeight } );\n\t\t},\n\t\tshowHandle: true,\n\t\tsize: resizableBoxDimensions,\n\t\twidth,\n\t};\n\n\tif ( ! useFeaturedImage && ! hasInnerBlocks && ! hasBackground ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ blockControls }\n\t\t\t\t{ inspectorControls }\n\t\t\t\t{ isSelected && (\n\t\t\t\t\t<ResizableCoverPopover { ...resizableCoverProps } />\n\t\t\t\t) }\n\t\t\t\t<TagName\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\tstyle={ {\n\t\t\t\t\t\t...blockProps.style,\n\t\t\t\t\t\tminHeight: minHeightWithUnit || undefined,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ resizeListener }\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\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\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</TagName>\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':\n\t\t\t\t! isContentPositionCenter( contentPosition ),\n\t\t},\n\t\tgetPositionClassName( contentPosition )\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ blockControls }\n\t\t\t{ inspectorControls }\n\t\t\t<TagName\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{ resizeListener }\n\t\t\t\t{ ( ! useFeaturedImage || url ) && (\n\t\t\t\t\t<span\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-cover__background',\n\t\t\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t[ overlayColor.class ]: overlayColor.class,\n\t\t\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\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\t// `.wp-block-cover__gradient-background` in the presence of\n\t\t\t\t\t\t\t\t// media, a gradient and a dim.\n\t\t\t\t\t\t\t\t'wp-block-cover__gradient-background':\n\t\t\t\t\t\t\t\t\turl && gradientValue && dimRatio !== 0,\n\t\t\t\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t\t\t\t[ gradientClass ]: gradientClass,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tstyle={ { backgroundImage: gradientValue, ...bgStyle } }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ ! url && useFeaturedImage && (\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\tclassName=\"wp-block-cover__image--placeholder-image\"\n\t\t\t\t\t\twithIllustration={ true }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ url &&\n\t\t\t\t\tisImageBackground &&\n\t\t\t\t\t( isImgElement ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tref={ mediaElement }\n\t\t\t\t\t\t\tclassName=\"wp-block-cover__image-background\"\n\t\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ mediaElement }\n\t\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\tclasses,\n\t\t\t\t\t\t\t\t'wp-block-cover__image-background'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tstyle={ { backgroundImage, backgroundPosition } }\n\t\t\t\t\t\t/>\n\t\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={ mediaElement }\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\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\t/>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</TagName>\n\t\t\t{ isSelected && (\n\t\t\t\t<ResizableCoverPopover { ...resizableCoverProps } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithColors( { overlayColor: 'background-color' } ),\n] )( CoverEdit );\n"]}
@@ -154,14 +154,14 @@ export default function CoverInspectorControls(_ref2) {
154
154
  })
155
155
  }), !useFeaturedImage && url && isImageBackground && isImgElement && createElement(TextareaControl, {
156
156
  __nextHasNoMarginBottom: true,
157
- label: __('Alt text (alternative text)'),
157
+ label: __('Alternative text'),
158
158
  value: alt,
159
159
  onChange: newAlt => setAttributes({
160
160
  alt: newAlt
161
161
  }),
162
162
  help: createElement(Fragment, null, createElement(ExternalLink, {
163
163
  href: "https://www.w3.org/WAI/tutorials/images/decision-tree"
164
- }, __('Describe the purpose of the image')), __('Leave empty if the image is purely decorative.'))
164
+ }, __('Describe the purpose of the image.')), createElement("br", null), __('Leave empty if decorative.'))
165
165
  }), createElement(PanelRow, null, createElement(Button, {
166
166
  variant: "secondary",
167
167
  isSmall: true,