@wordpress/block-library 7.12.0 → 7.12.2-next.d6164808d3.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 (626) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/build/archives/index.js +5 -1
  3. package/build/archives/index.js.map +1 -1
  4. package/build/audio/index.js +4 -0
  5. package/build/audio/index.js.map +1 -1
  6. package/build/button/deprecated.js +14 -5
  7. package/build/button/deprecated.js.map +1 -1
  8. package/build/button/index.js +1 -1
  9. package/build/categories/edit.js +3 -1
  10. package/build/categories/edit.js.map +1 -1
  11. package/build/categories/index.js +14 -1
  12. package/build/categories/index.js.map +1 -1
  13. package/build/code/index.js +4 -2
  14. package/build/code/index.js.map +1 -1
  15. package/build/column/index.js +13 -0
  16. package/build/column/index.js.map +1 -1
  17. package/build/columns/deprecated.js +16 -5
  18. package/build/columns/deprecated.js.map +1 -1
  19. package/build/columns/edit.js +6 -2
  20. package/build/columns/edit.js.map +1 -1
  21. package/build/columns/edit.native.js +6 -2
  22. package/build/columns/edit.native.js.map +1 -1
  23. package/build/columns/index.js +13 -0
  24. package/build/columns/index.js.map +1 -1
  25. package/build/comment-author-name/index.js +5 -1
  26. package/build/comment-author-name/index.js.map +1 -1
  27. package/build/comment-content/index.js +5 -1
  28. package/build/comment-content/index.js.map +1 -1
  29. package/build/comment-date/index.js +1 -0
  30. package/build/comment-date/index.js.map +1 -1
  31. package/build/comment-edit-link/index.js +5 -1
  32. package/build/comment-edit-link/index.js.map +1 -1
  33. package/build/comment-reply-link/index.js +5 -1
  34. package/build/comment-reply-link/index.js.map +1 -1
  35. package/build/comment-template/index.js +14 -1
  36. package/build/comment-template/index.js.map +1 -1
  37. package/build/comments/index.js +13 -0
  38. package/build/comments/index.js.map +1 -1
  39. package/build/comments-pagination/index.js +13 -0
  40. package/build/comments-pagination/index.js.map +1 -1
  41. package/build/comments-pagination-next/index.js +4 -2
  42. package/build/comments-pagination-next/index.js.map +1 -1
  43. package/build/comments-pagination-numbers/edit.js +5 -1
  44. package/build/comments-pagination-numbers/edit.js.map +1 -1
  45. package/build/comments-pagination-numbers/index.js +14 -1
  46. package/build/comments-pagination-numbers/index.js.map +1 -1
  47. package/build/comments-pagination-previous/index.js +4 -2
  48. package/build/comments-pagination-previous/index.js.map +1 -1
  49. package/build/comments-title/deprecated.js +4 -2
  50. package/build/comments-title/deprecated.js.map +1 -1
  51. package/build/comments-title/index.js +4 -2
  52. package/build/comments-title/index.js.map +1 -1
  53. package/build/cover/deprecated.js +20 -5
  54. package/build/cover/deprecated.js.map +1 -1
  55. package/build/cover/index.js +13 -0
  56. package/build/cover/index.js.map +1 -1
  57. package/build/cover/shared.js +1 -1
  58. package/build/cover/shared.js.map +1 -1
  59. package/build/embed/icons.js +1 -1
  60. package/build/embed/icons.js.map +1 -1
  61. package/build/gallery/deprecated.js +6 -1
  62. package/build/gallery/deprecated.js.map +1 -1
  63. package/build/gallery/edit.js +15 -2
  64. package/build/gallery/edit.js.map +1 -1
  65. package/build/gallery/index.js +5 -0
  66. package/build/gallery/index.js.map +1 -1
  67. package/build/gallery/transforms.js +20 -7
  68. package/build/gallery/transforms.js.map +1 -1
  69. package/build/gallery/utils.js +7 -6
  70. package/build/gallery/utils.js.map +1 -1
  71. package/build/group/deprecated.js +108 -12
  72. package/build/group/deprecated.js.map +1 -1
  73. package/build/group/edit.js +23 -1
  74. package/build/group/edit.js.map +1 -1
  75. package/build/group/index.js +10 -2
  76. package/build/group/index.js.map +1 -1
  77. package/build/group/variations.js +8 -8
  78. package/build/group/variations.js.map +1 -1
  79. package/build/heading/deprecated.js +5 -3
  80. package/build/heading/deprecated.js.map +1 -1
  81. package/build/heading/index.js +3 -1
  82. package/build/heading/index.js.map +1 -1
  83. package/build/heading/transforms.js +3 -1
  84. package/build/heading/transforms.js.map +1 -1
  85. package/build/home-link/edit.js +8 -4
  86. package/build/home-link/edit.js.map +1 -1
  87. package/build/image/edit.js +13 -1
  88. package/build/image/edit.js.map +1 -1
  89. package/build/image/index.js +13 -7
  90. package/build/image/index.js.map +1 -1
  91. package/build/index.native.js +6 -3
  92. package/build/index.native.js.map +1 -1
  93. package/build/list-item/edit.js +3 -1
  94. package/build/list-item/edit.js.map +1 -1
  95. package/build/list-item/hooks/index.js +8 -0
  96. package/build/list-item/hooks/index.js.map +1 -1
  97. package/build/list-item/hooks/use-copy.js +42 -0
  98. package/build/list-item/hooks/use-copy.js.map +1 -0
  99. package/build/list-item/list-style-type.native.js +4 -1
  100. package/build/list-item/list-style-type.native.js.map +1 -1
  101. package/build/media-text/deprecated.js +5 -1
  102. package/build/media-text/deprecated.js.map +1 -1
  103. package/build/media-text/index.js +13 -0
  104. package/build/media-text/index.js.map +1 -1
  105. package/build/navigation/deprecated.js +6 -1
  106. package/build/navigation/deprecated.js.map +1 -1
  107. package/build/navigation/edit/index.js +119 -38
  108. package/build/navigation/edit/index.js.map +1 -1
  109. package/build/navigation/edit/unsaved-inner-blocks.js +2 -1
  110. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  111. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +4 -7
  112. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  113. package/build/navigation/menu-items-to-blocks.js +1 -7
  114. package/build/navigation/menu-items-to-blocks.js.map +1 -1
  115. package/build/navigation/use-navigation-menu.js +8 -7
  116. package/build/navigation/use-navigation-menu.js.map +1 -1
  117. package/build/navigation-link/edit.js +6 -8
  118. package/build/navigation-link/edit.js.map +1 -1
  119. package/build/navigation-submenu/edit.js +4 -6
  120. package/build/navigation-submenu/edit.js.map +1 -1
  121. package/build/page-list/edit.js +7 -3
  122. package/build/page-list/edit.js.map +1 -1
  123. package/build/paragraph/deprecated.js +18 -10
  124. package/build/paragraph/deprecated.js.map +1 -1
  125. package/build/paragraph/edit.js +1 -0
  126. package/build/paragraph/edit.js.map +1 -1
  127. package/build/paragraph/index.js +5 -0
  128. package/build/paragraph/index.js.map +1 -1
  129. package/build/paragraph/transforms.js +5 -0
  130. package/build/paragraph/transforms.js.map +1 -1
  131. package/build/post-author/index.js +4 -2
  132. package/build/post-author/index.js.map +1 -1
  133. package/build/post-author-biography/index.js +1 -0
  134. package/build/post-author-biography/index.js.map +1 -1
  135. package/build/post-author-name/index.js +5 -1
  136. package/build/post-author-name/index.js.map +1 -1
  137. package/build/post-comments-count/edit.js +11 -1
  138. package/build/post-comments-count/edit.js.map +1 -1
  139. package/build/post-comments-count/index.js +4 -1
  140. package/build/post-comments-count/index.js.map +1 -1
  141. package/build/post-comments-link/index.js +4 -2
  142. package/build/post-comments-link/index.js.map +1 -1
  143. package/build/post-date/edit.js +9 -2
  144. package/build/post-date/edit.js.map +1 -1
  145. package/build/post-date/index.js +9 -0
  146. package/build/post-date/index.js.map +1 -1
  147. package/build/post-featured-image/edit.js +27 -12
  148. package/build/post-featured-image/edit.js.map +1 -1
  149. package/build/post-featured-image/index.js +12 -0
  150. package/build/post-featured-image/index.js.map +1 -1
  151. package/build/post-navigation-link/index.js +3 -2
  152. package/build/post-navigation-link/index.js.map +1 -1
  153. package/build/post-template/edit.js +8 -4
  154. package/build/post-template/edit.js.map +1 -1
  155. package/build/post-template/index.js +14 -1
  156. package/build/post-template/index.js.map +1 -1
  157. package/build/post-terms/index.js +5 -3
  158. package/build/post-terms/index.js.map +1 -1
  159. package/build/post-title/index.js +2 -1
  160. package/build/post-title/index.js.map +1 -1
  161. package/build/preformatted/index.js +4 -2
  162. package/build/preformatted/index.js.map +1 -1
  163. package/build/pullquote/deprecated.js +135 -25
  164. package/build/pullquote/deprecated.js.map +1 -1
  165. package/build/pullquote/edit.js +1 -1
  166. package/build/pullquote/edit.js.map +1 -1
  167. package/build/pullquote/edit.native.js +0 -1
  168. package/build/pullquote/edit.native.js.map +1 -1
  169. package/build/pullquote/index.js +13 -6
  170. package/build/pullquote/index.js.map +1 -1
  171. package/build/pullquote/save.js +2 -2
  172. package/build/pullquote/save.js.map +1 -1
  173. package/build/pullquote/transforms.js +14 -33
  174. package/build/pullquote/transforms.js.map +1 -1
  175. package/build/query/deprecated.js +10 -9
  176. package/build/query/deprecated.js.map +1 -1
  177. package/build/query/edit/index.js +19 -8
  178. package/build/query/edit/index.js.map +1 -1
  179. package/build/query/edit/inspector-controls/taxonomy-controls.js +1 -0
  180. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  181. package/build/query/edit/query-placeholder.js +6 -1
  182. package/build/query/edit/query-placeholder.js.map +1 -1
  183. package/build/query/utils.js +35 -9
  184. package/build/query/utils.js.map +1 -1
  185. package/build/query-no-results/edit.js +1 -1
  186. package/build/query-no-results/edit.js.map +1 -1
  187. package/build/query-title/edit.js +10 -1
  188. package/build/query-title/edit.js.map +1 -1
  189. package/build/query-title/index.js +7 -2
  190. package/build/query-title/index.js.map +1 -1
  191. package/build/quote/deprecated.js +13 -6
  192. package/build/quote/deprecated.js.map +1 -1
  193. package/build/quote/transforms.js +22 -37
  194. package/build/quote/transforms.js.map +1 -1
  195. package/build/separator/deprecated.js +3 -4
  196. package/build/separator/deprecated.js.map +1 -1
  197. package/build/separator/index.js +1 -0
  198. package/build/separator/index.js.map +1 -1
  199. package/build/social-link/icons/reddit.js +1 -1
  200. package/build/social-link/icons/reddit.js.map +1 -1
  201. package/build/social-links/edit.js +2 -1
  202. package/build/social-links/edit.js.map +1 -1
  203. package/build/spacer/index.js +7 -1
  204. package/build/spacer/index.js.map +1 -1
  205. package/build/table/index.js +4 -0
  206. package/build/table/index.js.map +1 -1
  207. package/build/table/state.js +9 -3
  208. package/build/table/state.js.map +1 -1
  209. package/build/table-of-contents/index.js +11 -1
  210. package/build/table-of-contents/index.js.map +1 -1
  211. package/build/tag-cloud/index.js +5 -1
  212. package/build/tag-cloud/index.js.map +1 -1
  213. package/build/template-part/index.js +2 -2
  214. package/build/template-part/index.js.map +1 -1
  215. package/build/term-description/index.js +4 -0
  216. package/build/term-description/index.js.map +1 -1
  217. package/build/text-columns/edit.js +3 -1
  218. package/build/text-columns/edit.js.map +1 -1
  219. package/build/text-columns/save.js +3 -1
  220. package/build/text-columns/save.js.map +1 -1
  221. package/build/verse/index.js +1 -0
  222. package/build/verse/index.js.map +1 -1
  223. package/build/video/index.js +4 -0
  224. package/build/video/index.js.map +1 -1
  225. package/build-module/archives/index.js +5 -1
  226. package/build-module/archives/index.js.map +1 -1
  227. package/build-module/audio/index.js +4 -0
  228. package/build-module/audio/index.js.map +1 -1
  229. package/build-module/button/deprecated.js +14 -4
  230. package/build-module/button/deprecated.js.map +1 -1
  231. package/build-module/button/index.js +1 -1
  232. package/build-module/categories/edit.js +4 -2
  233. package/build-module/categories/edit.js.map +1 -1
  234. package/build-module/categories/index.js +14 -1
  235. package/build-module/categories/index.js.map +1 -1
  236. package/build-module/code/index.js +4 -2
  237. package/build-module/code/index.js.map +1 -1
  238. package/build-module/column/index.js +13 -0
  239. package/build-module/column/index.js.map +1 -1
  240. package/build-module/columns/deprecated.js +16 -4
  241. package/build-module/columns/deprecated.js.map +1 -1
  242. package/build-module/columns/edit.js +7 -3
  243. package/build-module/columns/edit.js.map +1 -1
  244. package/build-module/columns/edit.native.js +7 -3
  245. package/build-module/columns/edit.native.js.map +1 -1
  246. package/build-module/columns/index.js +13 -0
  247. package/build-module/columns/index.js.map +1 -1
  248. package/build-module/comment-author-name/index.js +5 -1
  249. package/build-module/comment-author-name/index.js.map +1 -1
  250. package/build-module/comment-content/index.js +5 -1
  251. package/build-module/comment-content/index.js.map +1 -1
  252. package/build-module/comment-date/index.js +1 -0
  253. package/build-module/comment-date/index.js.map +1 -1
  254. package/build-module/comment-edit-link/index.js +5 -1
  255. package/build-module/comment-edit-link/index.js.map +1 -1
  256. package/build-module/comment-reply-link/index.js +5 -1
  257. package/build-module/comment-reply-link/index.js.map +1 -1
  258. package/build-module/comment-template/index.js +14 -1
  259. package/build-module/comment-template/index.js.map +1 -1
  260. package/build-module/comments/index.js +13 -0
  261. package/build-module/comments/index.js.map +1 -1
  262. package/build-module/comments-pagination/index.js +13 -0
  263. package/build-module/comments-pagination/index.js.map +1 -1
  264. package/build-module/comments-pagination-next/index.js +4 -2
  265. package/build-module/comments-pagination-next/index.js.map +1 -1
  266. package/build-module/comments-pagination-numbers/edit.js +5 -1
  267. package/build-module/comments-pagination-numbers/edit.js.map +1 -1
  268. package/build-module/comments-pagination-numbers/index.js +14 -1
  269. package/build-module/comments-pagination-numbers/index.js.map +1 -1
  270. package/build-module/comments-pagination-previous/index.js +4 -2
  271. package/build-module/comments-pagination-previous/index.js.map +1 -1
  272. package/build-module/comments-title/deprecated.js +4 -2
  273. package/build-module/comments-title/deprecated.js.map +1 -1
  274. package/build-module/comments-title/index.js +4 -2
  275. package/build-module/comments-title/index.js.map +1 -1
  276. package/build-module/cover/deprecated.js +20 -4
  277. package/build-module/cover/deprecated.js.map +1 -1
  278. package/build-module/cover/index.js +13 -0
  279. package/build-module/cover/index.js.map +1 -1
  280. package/build-module/cover/shared.js +1 -1
  281. package/build-module/cover/shared.js.map +1 -1
  282. package/build-module/embed/icons.js +1 -1
  283. package/build-module/embed/icons.js.map +1 -1
  284. package/build-module/gallery/deprecated.js +7 -2
  285. package/build-module/gallery/deprecated.js.map +1 -1
  286. package/build-module/gallery/edit.js +15 -2
  287. package/build-module/gallery/edit.js.map +1 -1
  288. package/build-module/gallery/index.js +5 -0
  289. package/build-module/gallery/index.js.map +1 -1
  290. package/build-module/gallery/transforms.js +20 -7
  291. package/build-module/gallery/transforms.js.map +1 -1
  292. package/build-module/gallery/utils.js +7 -6
  293. package/build-module/gallery/utils.js.map +1 -1
  294. package/build-module/group/deprecated.js +109 -12
  295. package/build-module/group/deprecated.js.map +1 -1
  296. package/build-module/group/edit.js +25 -2
  297. package/build-module/group/edit.js.map +1 -1
  298. package/build-module/group/index.js +10 -2
  299. package/build-module/group/index.js.map +1 -1
  300. package/build-module/group/variations.js +8 -8
  301. package/build-module/group/variations.js.map +1 -1
  302. package/build-module/heading/deprecated.js +5 -2
  303. package/build-module/heading/deprecated.js.map +1 -1
  304. package/build-module/heading/index.js +3 -1
  305. package/build-module/heading/index.js.map +1 -1
  306. package/build-module/heading/transforms.js +3 -1
  307. package/build-module/heading/transforms.js.map +1 -1
  308. package/build-module/home-link/edit.js +10 -6
  309. package/build-module/home-link/edit.js.map +1 -1
  310. package/build-module/image/edit.js +14 -2
  311. package/build-module/image/edit.js.map +1 -1
  312. package/build-module/image/index.js +13 -7
  313. package/build-module/image/index.js.map +1 -1
  314. package/build-module/index.native.js +6 -2
  315. package/build-module/index.native.js.map +1 -1
  316. package/build-module/list-item/edit.js +4 -2
  317. package/build-module/list-item/edit.js.map +1 -1
  318. package/build-module/list-item/hooks/index.js +1 -0
  319. package/build-module/list-item/hooks/index.js.map +1 -1
  320. package/build-module/list-item/hooks/use-copy.js +32 -0
  321. package/build-module/list-item/hooks/use-copy.js.map +1 -0
  322. package/build-module/list-item/list-style-type.native.js +3 -1
  323. package/build-module/list-item/list-style-type.native.js.map +1 -1
  324. package/build-module/media-text/deprecated.js +6 -2
  325. package/build-module/media-text/deprecated.js.map +1 -1
  326. package/build-module/media-text/index.js +13 -0
  327. package/build-module/media-text/index.js.map +1 -1
  328. package/build-module/navigation/deprecated.js +7 -2
  329. package/build-module/navigation/deprecated.js.map +1 -1
  330. package/build-module/navigation/edit/index.js +120 -40
  331. package/build-module/navigation/edit/index.js.map +1 -1
  332. package/build-module/navigation/edit/unsaved-inner-blocks.js +2 -1
  333. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  334. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +4 -7
  335. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  336. package/build-module/navigation/menu-items-to-blocks.js +1 -6
  337. package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
  338. package/build-module/navigation/use-navigation-menu.js +8 -7
  339. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  340. package/build-module/navigation-link/edit.js +7 -9
  341. package/build-module/navigation-link/edit.js.map +1 -1
  342. package/build-module/navigation-submenu/edit.js +5 -7
  343. package/build-module/navigation-submenu/edit.js.map +1 -1
  344. package/build-module/page-list/edit.js +7 -2
  345. package/build-module/page-list/edit.js.map +1 -1
  346. package/build-module/paragraph/deprecated.js +18 -9
  347. package/build-module/paragraph/deprecated.js.map +1 -1
  348. package/build-module/paragraph/edit.js +1 -0
  349. package/build-module/paragraph/edit.js.map +1 -1
  350. package/build-module/paragraph/index.js +5 -0
  351. package/build-module/paragraph/index.js.map +1 -1
  352. package/build-module/paragraph/transforms.js +5 -0
  353. package/build-module/paragraph/transforms.js.map +1 -1
  354. package/build-module/post-author/index.js +4 -2
  355. package/build-module/post-author/index.js.map +1 -1
  356. package/build-module/post-author-biography/index.js +1 -0
  357. package/build-module/post-author-biography/index.js.map +1 -1
  358. package/build-module/post-author-name/index.js +5 -1
  359. package/build-module/post-author-name/index.js.map +1 -1
  360. package/build-module/post-comments-count/edit.js +10 -1
  361. package/build-module/post-comments-count/edit.js.map +1 -1
  362. package/build-module/post-comments-count/index.js +4 -1
  363. package/build-module/post-comments-count/index.js.map +1 -1
  364. package/build-module/post-comments-link/index.js +4 -2
  365. package/build-module/post-comments-link/index.js.map +1 -1
  366. package/build-module/post-date/edit.js +9 -2
  367. package/build-module/post-date/edit.js.map +1 -1
  368. package/build-module/post-date/index.js +9 -0
  369. package/build-module/post-date/index.js.map +1 -1
  370. package/build-module/post-featured-image/edit.js +28 -13
  371. package/build-module/post-featured-image/edit.js.map +1 -1
  372. package/build-module/post-featured-image/index.js +12 -0
  373. package/build-module/post-featured-image/index.js.map +1 -1
  374. package/build-module/post-navigation-link/index.js +3 -2
  375. package/build-module/post-navigation-link/index.js.map +1 -1
  376. package/build-module/post-template/edit.js +8 -4
  377. package/build-module/post-template/edit.js.map +1 -1
  378. package/build-module/post-template/index.js +14 -1
  379. package/build-module/post-template/index.js.map +1 -1
  380. package/build-module/post-terms/index.js +5 -3
  381. package/build-module/post-terms/index.js.map +1 -1
  382. package/build-module/post-title/index.js +2 -1
  383. package/build-module/post-title/index.js.map +1 -1
  384. package/build-module/preformatted/index.js +4 -2
  385. package/build-module/preformatted/index.js.map +1 -1
  386. package/build-module/pullquote/deprecated.js +134 -25
  387. package/build-module/pullquote/deprecated.js.map +1 -1
  388. package/build-module/pullquote/edit.js +1 -1
  389. package/build-module/pullquote/edit.js.map +1 -1
  390. package/build-module/pullquote/edit.native.js +0 -1
  391. package/build-module/pullquote/edit.native.js.map +1 -1
  392. package/build-module/pullquote/index.js +13 -6
  393. package/build-module/pullquote/index.js.map +1 -1
  394. package/build-module/pullquote/save.js +2 -2
  395. package/build-module/pullquote/save.js.map +1 -1
  396. package/build-module/pullquote/transforms.js +15 -34
  397. package/build-module/pullquote/transforms.js.map +1 -1
  398. package/build-module/query/deprecated.js +10 -8
  399. package/build-module/query/deprecated.js.map +1 -1
  400. package/build-module/query/edit/index.js +23 -12
  401. package/build-module/query/edit/index.js.map +1 -1
  402. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +1 -0
  403. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  404. package/build-module/query/edit/query-placeholder.js +6 -1
  405. package/build-module/query/edit/query-placeholder.js.map +1 -1
  406. package/build-module/query/utils.js +32 -7
  407. package/build-module/query/utils.js.map +1 -1
  408. package/build-module/query-no-results/edit.js +1 -1
  409. package/build-module/query-no-results/edit.js.map +1 -1
  410. package/build-module/query-title/edit.js +10 -1
  411. package/build-module/query-title/edit.js.map +1 -1
  412. package/build-module/query-title/index.js +7 -2
  413. package/build-module/query-title/index.js.map +1 -1
  414. package/build-module/quote/deprecated.js +13 -5
  415. package/build-module/quote/deprecated.js.map +1 -1
  416. package/build-module/quote/transforms.js +23 -38
  417. package/build-module/quote/transforms.js.map +1 -1
  418. package/build-module/separator/deprecated.js +3 -3
  419. package/build-module/separator/deprecated.js.map +1 -1
  420. package/build-module/separator/index.js +1 -0
  421. package/build-module/separator/index.js.map +1 -1
  422. package/build-module/social-link/icons/reddit.js +1 -1
  423. package/build-module/social-link/icons/reddit.js.map +1 -1
  424. package/build-module/social-links/edit.js +2 -1
  425. package/build-module/social-links/edit.js.map +1 -1
  426. package/build-module/spacer/index.js +7 -1
  427. package/build-module/spacer/index.js.map +1 -1
  428. package/build-module/table/index.js +4 -0
  429. package/build-module/table/index.js.map +1 -1
  430. package/build-module/table/state.js +10 -4
  431. package/build-module/table/state.js.map +1 -1
  432. package/build-module/table-of-contents/index.js +11 -1
  433. package/build-module/table-of-contents/index.js.map +1 -1
  434. package/build-module/tag-cloud/index.js +5 -1
  435. package/build-module/tag-cloud/index.js.map +1 -1
  436. package/build-module/template-part/index.js +2 -2
  437. package/build-module/template-part/index.js.map +1 -1
  438. package/build-module/term-description/index.js +4 -0
  439. package/build-module/term-description/index.js.map +1 -1
  440. package/build-module/text-columns/edit.js +4 -2
  441. package/build-module/text-columns/edit.js.map +1 -1
  442. package/build-module/text-columns/save.js +4 -2
  443. package/build-module/text-columns/save.js.map +1 -1
  444. package/build-module/verse/index.js +1 -0
  445. package/build-module/verse/index.js.map +1 -1
  446. package/build-module/video/index.js +4 -0
  447. package/build-module/video/index.js.map +1 -1
  448. package/build-style/audio/style-rtl.css +3 -0
  449. package/build-style/audio/style.css +3 -0
  450. package/build-style/button/style-rtl.css +6 -6
  451. package/build-style/button/style.css +6 -6
  452. package/build-style/editor-rtl.css +105 -122
  453. package/build-style/editor.css +105 -122
  454. package/build-style/group/editor-rtl.css +27 -8
  455. package/build-style/group/editor.css +27 -8
  456. package/build-style/image/editor-rtl.css +21 -2
  457. package/build-style/image/editor.css +21 -2
  458. package/build-style/navigation/editor-rtl.css +8 -4
  459. package/build-style/navigation/editor.css +8 -4
  460. package/build-style/navigation/style-rtl.css +2 -2
  461. package/build-style/navigation/style.css +2 -2
  462. package/build-style/paragraph/editor-rtl.css +1 -1
  463. package/build-style/paragraph/editor.css +1 -1
  464. package/build-style/post-date/style-rtl.css +79 -0
  465. package/build-style/post-date/style.css +79 -0
  466. package/build-style/post-featured-image/editor-rtl.css +45 -43
  467. package/build-style/post-featured-image/editor.css +45 -43
  468. package/build-style/post-featured-image/style-rtl.css +1 -0
  469. package/build-style/post-featured-image/style.css +1 -0
  470. package/build-style/post-title/style-rtl.css +1 -0
  471. package/build-style/post-title/style.css +1 -0
  472. package/build-style/pullquote/editor-rtl.css +0 -12
  473. package/build-style/pullquote/editor.css +0 -12
  474. package/build-style/pullquote/style-rtl.css +1 -8
  475. package/build-style/pullquote/style.css +1 -8
  476. package/build-style/query-title/style-rtl.css +79 -0
  477. package/build-style/query-title/style.css +79 -0
  478. package/build-style/site-logo/editor-rtl.css +3 -52
  479. package/build-style/site-logo/editor.css +3 -52
  480. package/build-style/social-links/style-rtl.css +2 -2
  481. package/build-style/social-links/style.css +2 -2
  482. package/build-style/style-rtl.css +27 -18
  483. package/build-style/style.css +27 -18
  484. package/build-style/video/style-rtl.css +3 -0
  485. package/build-style/video/style.css +3 -0
  486. package/package.json +30 -29
  487. package/src/archives/block.json +5 -1
  488. package/src/audio/block.json +4 -0
  489. package/src/audio/style.scss +2 -0
  490. package/src/button/block.json +1 -1
  491. package/src/button/deprecated.js +21 -22
  492. package/src/button/style.scss +6 -6
  493. package/src/calendar/index.php +2 -2
  494. package/src/categories/block.json +14 -1
  495. package/src/categories/edit.js +2 -2
  496. package/src/code/block.json +4 -2
  497. package/src/column/block.json +13 -0
  498. package/src/columns/block.json +13 -0
  499. package/src/columns/deprecated.js +10 -4
  500. package/src/columns/edit.js +7 -3
  501. package/src/columns/edit.native.js +7 -3
  502. package/src/comment-author-name/block.json +5 -1
  503. package/src/comment-content/block.json +5 -1
  504. package/src/comment-date/block.json +1 -0
  505. package/src/comment-edit-link/block.json +5 -1
  506. package/src/comment-reply-link/block.json +5 -1
  507. package/src/comment-template/block.json +14 -1
  508. package/src/comments/block.json +13 -0
  509. package/src/comments/index.php +6 -5
  510. package/src/comments-pagination/block.json +13 -0
  511. package/src/comments-pagination-next/block.json +4 -2
  512. package/src/comments-pagination-numbers/block.json +14 -1
  513. package/src/comments-pagination-numbers/edit.js +12 -3
  514. package/src/comments-pagination-previous/block.json +4 -2
  515. package/src/comments-title/block.json +4 -2
  516. package/src/cover/block.json +13 -0
  517. package/src/cover/deprecated.js +11 -4
  518. package/src/cover/shared.js +2 -1
  519. package/src/embed/icons.js +1 -1
  520. package/src/gallery/block.json +5 -0
  521. package/src/gallery/deprecated.js +4 -2
  522. package/src/gallery/edit.js +22 -2
  523. package/src/gallery/transforms.js +18 -5
  524. package/src/gallery/utils.js +11 -7
  525. package/src/group/block.json +10 -2
  526. package/src/group/deprecated.js +89 -2
  527. package/src/group/edit.js +15 -2
  528. package/src/group/editor.scss +28 -3
  529. package/src/group/variations.js +4 -3
  530. package/src/heading/block.json +3 -1
  531. package/src/heading/deprecated.js +4 -2
  532. package/src/home-link/edit.js +19 -20
  533. package/src/image/block.json +13 -7
  534. package/src/image/edit.js +19 -1
  535. package/src/image/editor.scss +39 -3
  536. package/src/image/index.php +1 -1
  537. package/src/index.native.js +15 -10
  538. package/src/list-item/edit.js +2 -1
  539. package/src/list-item/hooks/index.js +1 -0
  540. package/src/list-item/hooks/use-copy.js +36 -0
  541. package/src/list-item/list-style-type.native.js +8 -1
  542. package/src/list-item/style.native.scss +4 -0
  543. package/src/media-text/block.json +13 -0
  544. package/src/media-text/deprecated.js +3 -2
  545. package/src/navigation/deprecated.js +4 -2
  546. package/src/navigation/edit/index.js +159 -81
  547. package/src/navigation/edit/unsaved-inner-blocks.js +3 -1
  548. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +31 -37
  549. package/src/navigation/editor.scss +3 -2
  550. package/src/navigation/index.php +11 -16
  551. package/src/navigation/menu-items-to-blocks.js +3 -6
  552. package/src/navigation/style.scss +3 -2
  553. package/src/navigation/use-navigation-menu.js +11 -8
  554. package/src/navigation-link/edit.js +9 -13
  555. package/src/navigation-submenu/edit.js +9 -13
  556. package/src/page-list/edit.js +6 -2
  557. package/src/paragraph/block.json +5 -0
  558. package/src/paragraph/deprecated.js +33 -35
  559. package/src/paragraph/edit.js +1 -0
  560. package/src/paragraph/editor.scss +5 -3
  561. package/src/post-author/block.json +4 -2
  562. package/src/post-author-biography/block.json +1 -0
  563. package/src/post-author-name/block.json +5 -1
  564. package/src/post-comments-count/block.json +4 -1
  565. package/src/post-comments-count/edit.js +10 -2
  566. package/src/post-comments-link/block.json +4 -2
  567. package/src/post-date/block.json +9 -0
  568. package/src/post-date/edit.js +12 -2
  569. package/src/post-date/index.php +10 -2
  570. package/src/post-date/style.scss +4 -0
  571. package/src/post-featured-image/block.json +12 -0
  572. package/src/post-featured-image/edit.js +43 -13
  573. package/src/post-featured-image/editor.scss +44 -53
  574. package/src/post-featured-image/index.php +61 -4
  575. package/src/post-featured-image/style.scss +1 -0
  576. package/src/post-navigation-link/block.json +3 -2
  577. package/src/post-template/block.json +15 -1
  578. package/src/post-template/edit.js +6 -1
  579. package/src/post-template/index.php +7 -4
  580. package/src/post-terms/block.json +5 -3
  581. package/src/post-title/block.json +2 -1
  582. package/src/post-title/style.scss +2 -0
  583. package/src/preformatted/block.json +4 -2
  584. package/src/pullquote/block.json +11 -4
  585. package/src/pullquote/deprecated.js +490 -412
  586. package/src/pullquote/edit.js +1 -1
  587. package/src/pullquote/edit.native.js +0 -1
  588. package/src/pullquote/editor.scss +0 -16
  589. package/src/pullquote/index.js +1 -3
  590. package/src/pullquote/save.js +1 -1
  591. package/src/pullquote/style.scss +0 -11
  592. package/src/pullquote/transforms.js +17 -33
  593. package/src/query/deprecated.js +4 -9
  594. package/src/query/edit/index.js +28 -15
  595. package/src/query/edit/inspector-controls/taxonomy-controls.js +1 -1
  596. package/src/query/edit/query-placeholder.js +17 -2
  597. package/src/query/utils.js +29 -7
  598. package/src/query-no-results/edit.js +1 -1
  599. package/src/query-title/block.json +7 -2
  600. package/src/query-title/edit.js +19 -2
  601. package/src/query-title/index.php +11 -1
  602. package/src/query-title/style.scss +4 -0
  603. package/src/quote/deprecated.js +6 -5
  604. package/src/quote/transforms.js +4 -18
  605. package/src/search/index.php +1 -1
  606. package/src/separator/block.json +1 -0
  607. package/src/separator/deprecated.js +2 -3
  608. package/src/site-logo/editor.scss +8 -66
  609. package/src/social-link/icons/reddit.js +1 -1
  610. package/src/social-link/index.php +1 -1
  611. package/src/social-link/socials-with-bg.scss +1 -1
  612. package/src/social-link/socials-without-bg.scss +1 -1
  613. package/src/social-links/edit.js +1 -0
  614. package/src/spacer/block.json +7 -1
  615. package/src/style.scss +2 -0
  616. package/src/table/block.json +4 -0
  617. package/src/table/state.js +21 -19
  618. package/src/table-of-contents/block.json +11 -1
  619. package/src/tag-cloud/block.json +5 -1
  620. package/src/template-part/index.js +3 -2
  621. package/src/term-description/block.json +4 -0
  622. package/src/text-columns/edit.js +2 -2
  623. package/src/text-columns/save.js +2 -2
  624. package/src/verse/block.json +1 -0
  625. package/src/video/block.json +4 -0
  626. package/src/video/style.scss +2 -0
@@ -116,6 +116,11 @@
116
116
  "blockGap": true
117
117
  }
118
118
  },
119
+ "color": {
120
+ "text": false,
121
+ "background": true,
122
+ "gradients": true
123
+ },
119
124
  "__experimentalLayout": {
120
125
  "allowSwitching": false,
121
126
  "allowInheriting": false,
@@ -2,7 +2,7 @@
2
2
  * External dependencies
3
3
  */
4
4
  import classnames from 'classnames';
5
- import { map, some, omit } from 'lodash';
5
+ import { map, some } from 'lodash';
6
6
 
7
7
  /**
8
8
  * WordPress dependencies
@@ -95,9 +95,11 @@ function runV2Migration( attributes ) {
95
95
  return getImageBlock( image, attributes.sizeSlug, linkTo );
96
96
  } );
97
97
 
98
+ const { images, ids, ...restAttributes } = attributes;
99
+
98
100
  return [
99
101
  {
100
- ...omit( attributes, [ 'images', 'ids' ] ),
102
+ ...restAttributes,
101
103
  linkTo,
102
104
  allowResize: false,
103
105
  },
@@ -187,10 +187,30 @@ function GalleryEdit( props ) {
187
187
  ? `is-style-${ preferredStyle }`
188
188
  : undefined;
189
189
  }
190
+
191
+ let newLinkTarget;
192
+ if ( imageAttributes.linkTarget || imageAttributes.rel ) {
193
+ // When transformed from image blocks, the link destination and rel attributes are inherited.
194
+ newLinkTarget = {
195
+ linkTarget: imageAttributes.linkTarget,
196
+ rel: imageAttributes.rel,
197
+ };
198
+ } else {
199
+ // When an image is added, update the link destination and rel attributes according to the gallery settings
200
+ newLinkTarget = getUpdatedLinkTargetSettings(
201
+ linkTarget,
202
+ attributes
203
+ );
204
+ }
205
+
190
206
  return {
191
207
  ...pickRelevantMediaFiles( image, sizeSlug ),
192
- ...getHrefAndDestination( image, linkTo ),
193
- ...getUpdatedLinkTargetSettings( linkTarget, attributes ),
208
+ ...getHrefAndDestination(
209
+ image,
210
+ linkTo,
211
+ imageAttributes?.linkDestination
212
+ ),
213
+ ...newLinkTarget,
194
214
  className: newClassName,
195
215
  sizeSlug,
196
216
  caption: imageAttributes.caption || image.caption?.raw,
@@ -144,6 +144,9 @@ const transforms = {
144
144
 
145
145
  if ( isGalleryV2Enabled() ) {
146
146
  const innerBlocks = validImages.map( ( image ) => {
147
+ // Gallery images can't currently be resized so make sure height and width are undefined.
148
+ image.width = undefined;
149
+ image.height = undefined;
147
150
  return createBlock( 'core/image', image );
148
151
  } );
149
152
 
@@ -302,26 +305,36 @@ const transforms = {
302
305
  return innerBlocks.map(
303
306
  ( {
304
307
  attributes: {
305
- id,
306
308
  url,
307
309
  alt,
308
310
  caption,
311
+ title,
312
+ href,
313
+ rel,
314
+ linkClass,
315
+ id,
309
316
  sizeSlug: imageSizeSlug,
310
317
  linkDestination,
311
- href,
312
318
  linkTarget,
319
+ anchor,
320
+ className,
313
321
  },
314
322
  } ) =>
315
323
  createBlock( 'core/image', {
316
- id,
324
+ align,
317
325
  url,
318
326
  alt,
319
327
  caption,
328
+ title,
329
+ href,
330
+ rel,
331
+ linkClass,
332
+ id,
320
333
  sizeSlug: imageSizeSlug,
321
- align,
322
334
  linkDestination,
323
- href,
324
335
  linkTarget,
336
+ anchor,
337
+ className,
325
338
  } )
326
339
  );
327
340
  }
@@ -15,18 +15,22 @@ import {
15
15
  } from '../image/constants';
16
16
 
17
17
  /**
18
- * Determines new href and linkDestination values for an image block from the
19
- * supplied Gallery link destination.
18
+ * Determines new href and linkDestination values for an Image block from the
19
+ * supplied Gallery link destination, or falls back to the Image blocks link.
20
20
  *
21
- * @param {Object} image Gallery image.
22
- * @param {string} destination Gallery's selected link destination.
21
+ * @param {Object} image Gallery image.
22
+ * @param {string} galleryDestination Gallery's selected link destination.
23
+ * @param {Object} imageDestination Image blocks attributes.
23
24
  * @return {Object} New attributes to assign to image block.
24
25
  */
25
- export function getHrefAndDestination( image, destination ) {
26
+ export function getHrefAndDestination(
27
+ image,
28
+ galleryDestination,
29
+ imageDestination
30
+ ) {
26
31
  // Gutenberg and WordPress use different constants so if image_default_link_type
27
32
  // option is set we need to map from the WP Core values.
28
-
29
- switch ( destination ) {
33
+ switch ( imageDestination ? imageDestination : galleryDestination ) {
30
34
  case LINK_DESTINATION_MEDIA_WP_CORE:
31
35
  case LINK_DESTINATION_MEDIA:
32
36
  return {
@@ -15,6 +15,12 @@
15
15
  "templateLock": {
16
16
  "type": [ "string", "boolean" ],
17
17
  "enum": [ "all", "insert", false ]
18
+ },
19
+ "layout": {
20
+ "type": "object",
21
+ "default": {
22
+ "type": "constrained"
23
+ }
18
24
  }
19
25
  },
20
26
  "supports": {
@@ -56,10 +62,12 @@
56
62
  "typography": {
57
63
  "fontSize": true,
58
64
  "lineHeight": true,
59
- "__experimentalFontStyle": true,
65
+ "__experimentalFontFamily": true,
60
66
  "__experimentalFontWeight": true,
61
- "__experimentalLetterSpacing": true,
67
+ "__experimentalFontStyle": true,
62
68
  "__experimentalTextTransform": true,
69
+ "__experimentalTextDecoration": true,
70
+ "__experimentalLetterSpacing": true,
63
71
  "__experimentalDefaultControls": {
64
72
  "fontSize": true
65
73
  }
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import classnames from 'classnames';
5
- import { omit } from 'lodash';
6
5
 
7
6
  /**
8
7
  * WordPress dependencies
@@ -11,6 +10,7 @@ import {
11
10
  InnerBlocks,
12
11
  getColorClassName,
13
12
  useBlockProps,
13
+ useInnerBlocksProps,
14
14
  } from '@wordpress/block-editor';
15
15
 
16
16
  const migrateAttributes = ( attributes ) => {
@@ -31,13 +31,100 @@ const migrateAttributes = ( attributes ) => {
31
31
  if ( attributes.customBackgroundColor ) {
32
32
  style.color.background = attributes.customBackgroundColor;
33
33
  }
34
+
35
+ const { customTextColor, customBackgroundColor, ...restAttributes } =
36
+ attributes;
37
+
34
38
  return {
35
- ...omit( attributes, [ 'customTextColor', 'customBackgroundColor' ] ),
39
+ ...restAttributes,
36
40
  style,
37
41
  };
38
42
  };
39
43
 
40
44
  const deprecated = [
45
+ // Version with default layout.
46
+ {
47
+ attributes: {
48
+ tagName: {
49
+ type: 'string',
50
+ default: 'div',
51
+ },
52
+ templateLock: {
53
+ type: 'string',
54
+ },
55
+ },
56
+ supports: {
57
+ __experimentalOnEnter: true,
58
+ __experimentalSettings: true,
59
+ align: [ 'wide', 'full' ],
60
+ anchor: true,
61
+ ariaLabel: true,
62
+ html: false,
63
+ color: {
64
+ gradients: true,
65
+ link: true,
66
+ __experimentalDefaultControls: {
67
+ background: true,
68
+ text: true,
69
+ },
70
+ },
71
+ spacing: {
72
+ margin: [ 'top', 'bottom' ],
73
+ padding: true,
74
+ blockGap: true,
75
+ __experimentalDefaultControls: {
76
+ padding: true,
77
+ blockGap: true,
78
+ },
79
+ },
80
+ __experimentalBorder: {
81
+ color: true,
82
+ radius: true,
83
+ style: true,
84
+ width: true,
85
+ __experimentalDefaultControls: {
86
+ color: true,
87
+ radius: true,
88
+ style: true,
89
+ width: true,
90
+ },
91
+ },
92
+ typography: {
93
+ fontSize: true,
94
+ lineHeight: true,
95
+ __experimentalFontStyle: true,
96
+ __experimentalFontWeight: true,
97
+ __experimentalLetterSpacing: true,
98
+ __experimentalTextTransform: true,
99
+ __experimentalDefaultControls: {
100
+ fontSize: true,
101
+ },
102
+ },
103
+ __experimentalLayout: true,
104
+ },
105
+ save( { attributes: { tagName: Tag } } ) {
106
+ return (
107
+ <Tag { ...useInnerBlocksProps.save( useBlockProps.save() ) } />
108
+ );
109
+ },
110
+ isEligible: ( { layout } ) =>
111
+ ! layout || layout.inherit || layout.contentSize,
112
+ migrate: ( attributes ) => {
113
+ const { layout = null } = attributes;
114
+ if ( ! layout ) {
115
+ return attributes;
116
+ }
117
+ if ( layout.inherit || layout.contentSize ) {
118
+ return {
119
+ ...attributes,
120
+ layout: {
121
+ ...layout,
122
+ type: 'constrained',
123
+ },
124
+ };
125
+ }
126
+ },
127
+ },
41
128
  // Version of the block with the double div.
42
129
  {
43
130
  attributes: {
package/src/group/edit.js CHANGED
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useSelect } from '@wordpress/data';
4
+ import { useSelect, useDispatch } from '@wordpress/data';
5
+ import { useEffect } from '@wordpress/element';
5
6
  import {
6
7
  InnerBlocks,
7
8
  useBlockProps,
@@ -48,7 +49,9 @@ function GroupEdit( { attributes, setAttributes, clientId } ) {
48
49
  );
49
50
  const defaultLayout = useSetting( 'layout' ) || {};
50
51
  const { tagName: TagName = 'div', templateLock, layout = {} } = attributes;
51
- const usedLayout = !! layout && layout.inherit ? defaultLayout : layout;
52
+ const usedLayout = ! layout?.type
53
+ ? { ...defaultLayout, ...layout, type: 'default' }
54
+ : { ...defaultLayout, ...layout };
52
55
  const { type = 'default' } = usedLayout;
53
56
  const layoutSupportEnabled = themeSupportsLayout || type !== 'default';
54
57
 
@@ -67,6 +70,16 @@ function GroupEdit( { attributes, setAttributes, clientId } ) {
67
70
  }
68
71
  );
69
72
 
73
+ const { __unstableMarkNextChangeAsNotPersistent } =
74
+ useDispatch( blockEditorStore );
75
+ const { type: layoutType = null } = layout;
76
+ useEffect( () => {
77
+ if ( layoutType ) {
78
+ __unstableMarkNextChangeAsNotPersistent();
79
+ setAttributes( { layout: { ...layout, type: layoutType } } );
80
+ }
81
+ }, [ layoutType ] );
82
+
70
83
  return (
71
84
  <>
72
85
  <InspectorControls __experimentalGroup="advanced">
@@ -24,7 +24,7 @@
24
24
  }
25
25
 
26
26
  // Affect the appender of the Row and Stack variants.
27
- .is-layout-flex.block-editor-block-list__block .block-list-appender:only-child {
27
+ .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child {
28
28
  gap: inherit;
29
29
 
30
30
  &,
@@ -42,9 +42,9 @@
42
42
  border: $border-width dashed currentColor;
43
43
  opacity: 0.4;
44
44
  border-radius: $radius-block-ui;
45
- flex: 1;
45
+ flex: 1 0 $grid-unit-60;
46
46
  pointer-events: none;
47
- min-height: $grid-unit-60;
47
+ min-height: $grid-unit-60 - $border-width - $border-width;
48
48
  }
49
49
 
50
50
  // Let the parent be selectable in the placeholder area.
@@ -53,3 +53,28 @@
53
53
  pointer-events: all;
54
54
  }
55
55
  }
56
+
57
+ // Show an unselected empty group button as a dashed outline instead of the appender button.
58
+ // This effectively adds a selectable-to-delete state.
59
+ .is-layout-flow.block-editor-block-list__block:not(.is-selected) {
60
+ > .block-list-appender:only-child {
61
+ pointer-events: none;
62
+
63
+ &::after {
64
+ content: "";
65
+ position: absolute;
66
+ top: 0;
67
+ right: 0;
68
+ bottom: 0;
69
+ left: 0;
70
+ border: $border-width dashed currentColor;
71
+ opacity: 0.4;
72
+ border-radius: $radius-block-ui;
73
+ pointer-events: none;
74
+ }
75
+
76
+ .block-editor-inserter {
77
+ visibility: hidden;
78
+ }
79
+ }
80
+ }
@@ -8,13 +8,14 @@ const variations = [
8
8
  {
9
9
  name: 'group',
10
10
  title: __( 'Group' ),
11
- description: __( 'Gather blocks in a layout container.' ),
12
- attributes: { layout: { type: 'default' } },
11
+ description: __( 'Gather blocks in a container.' ),
12
+ attributes: { layout: { type: 'constrained' } },
13
13
  scope: [ 'transform' ],
14
14
  isActive: ( blockAttributes ) =>
15
15
  ! blockAttributes.layout ||
16
16
  ! blockAttributes.layout?.type ||
17
- blockAttributes.layout?.type === 'default',
17
+ blockAttributes.layout?.type === 'default' ||
18
+ blockAttributes.layout?.type === 'constrained',
18
19
  icon: group,
19
20
  },
20
21
  {
@@ -31,6 +31,7 @@
31
31
  "anchor": true,
32
32
  "className": false,
33
33
  "color": {
34
+ "gradients": true,
34
35
  "link": true,
35
36
  "__experimentalDefaultControls": {
36
37
  "background": true,
@@ -38,7 +39,8 @@
38
39
  }
39
40
  },
40
41
  "spacing": {
41
- "margin": true
42
+ "margin": true,
43
+ "padding": true
42
44
  },
43
45
  "typography": {
44
46
  "fontSize": true,
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import classnames from 'classnames';
5
- import { omit } from 'lodash';
6
5
 
7
6
  /**
8
7
  * WordPress dependencies
@@ -46,8 +45,11 @@ const migrateCustomColors = ( attributes ) => {
46
45
  text: attributes.customTextColor,
47
46
  },
48
47
  };
48
+
49
+ const { customTextColor, ...restAttributes } = attributes;
50
+
49
51
  return {
50
- ...omit( attributes, [ 'customTextColor' ] ),
52
+ ...restAttributes,
51
53
  style,
52
54
  };
53
55
  };
@@ -6,31 +6,29 @@ import classnames from 'classnames';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { RichText, useBlockProps } from '@wordpress/block-editor';
9
+ import {
10
+ RichText,
11
+ useBlockProps,
12
+ store as blockEditorStore,
13
+ } from '@wordpress/block-editor';
10
14
  import { __ } from '@wordpress/i18n';
11
- import { useSelect } from '@wordpress/data';
15
+ import { useSelect, useDispatch } from '@wordpress/data';
12
16
  import { store as coreStore } from '@wordpress/core-data';
13
17
  import { useEffect } from '@wordpress/element';
14
18
 
15
19
  const preventDefault = ( event ) => event.preventDefault();
16
20
 
17
- export default function HomeEdit( {
18
- attributes,
19
- setAttributes,
20
- context,
21
- clientId,
22
- } ) {
23
- const { homeUrl } = useSelect(
24
- ( select ) => {
25
- const {
26
- getUnstableBase, // Site index.
27
- } = select( coreStore );
28
- return {
29
- homeUrl: getUnstableBase()?.home,
30
- };
31
- },
32
- [ clientId ]
33
- );
21
+ export default function HomeEdit( { attributes, setAttributes, context } ) {
22
+ const { homeUrl } = useSelect( ( select ) => {
23
+ const {
24
+ getUnstableBase, // Site index.
25
+ } = select( coreStore );
26
+ return {
27
+ homeUrl: getUnstableBase()?.home,
28
+ };
29
+ }, [] );
30
+ const { __unstableMarkNextChangeAsNotPersistent } =
31
+ useDispatch( blockEditorStore );
34
32
 
35
33
  const { textColor, backgroundColor, style } = context;
36
34
  const blockProps = useBlockProps( {
@@ -50,9 +48,10 @@ export default function HomeEdit( {
50
48
 
51
49
  useEffect( () => {
52
50
  if ( label === undefined ) {
51
+ __unstableMarkNextChangeAsNotPersistent();
53
52
  setAttributes( { label: __( 'Home' ) } );
54
53
  }
55
- }, [ clientId, label ] );
54
+ }, [ label ] );
56
55
 
57
56
  return (
58
57
  <>
@@ -16,31 +16,36 @@
16
16
  "type": "string",
17
17
  "source": "attribute",
18
18
  "selector": "img",
19
- "attribute": "src"
19
+ "attribute": "src",
20
+ "__experimentalRole": "content"
20
21
  },
21
22
  "alt": {
22
23
  "type": "string",
23
24
  "source": "attribute",
24
25
  "selector": "img",
25
26
  "attribute": "alt",
26
- "default": ""
27
+ "default": "",
28
+ "__experimentalRole": "content"
27
29
  },
28
30
  "caption": {
29
31
  "type": "string",
30
32
  "source": "html",
31
- "selector": "figcaption"
33
+ "selector": "figcaption",
34
+ "__experimentalRole": "content"
32
35
  },
33
36
  "title": {
34
37
  "type": "string",
35
38
  "source": "attribute",
36
39
  "selector": "img",
37
- "attribute": "title"
40
+ "attribute": "title",
41
+ "__experimentalRole": "content"
38
42
  },
39
43
  "href": {
40
44
  "type": "string",
41
45
  "source": "attribute",
42
46
  "selector": "figure > a",
43
- "attribute": "href"
47
+ "attribute": "href",
48
+ "__experimentalRole": "content"
44
49
  },
45
50
  "rel": {
46
51
  "type": "string",
@@ -55,7 +60,8 @@
55
60
  "attribute": "class"
56
61
  },
57
62
  "id": {
58
- "type": "number"
63
+ "type": "number",
64
+ "__experimentalRole": "content"
59
65
  },
60
66
  "width": {
61
67
  "type": "number"
@@ -79,7 +85,7 @@
79
85
  "supports": {
80
86
  "anchor": true,
81
87
  "color": {
82
- "__experimentalDuotone": "img",
88
+ "__experimentalDuotone": "img, .components-placeholder",
83
89
  "text": false,
84
90
  "background": false
85
91
  },
package/src/image/edit.js CHANGED
@@ -8,7 +8,7 @@ import { get, has, isEmpty, omit, pick } from 'lodash';
8
8
  * WordPress dependencies
9
9
  */
10
10
  import { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';
11
- import { withNotices } from '@wordpress/components';
11
+ import { withNotices, Placeholder } from '@wordpress/components';
12
12
  import { useSelect } from '@wordpress/data';
13
13
  import {
14
14
  BlockAlignmentControl,
@@ -28,6 +28,23 @@ import { image as icon } from '@wordpress/icons';
28
28
  */
29
29
  import Image from './image';
30
30
 
31
+ // Much of this description is duplicated from MediaPlaceholder.
32
+ const placeholder = ( content ) => {
33
+ return (
34
+ <Placeholder
35
+ className="block-editor-media-placeholder"
36
+ withIllustration={ true }
37
+ icon={ icon }
38
+ label={ __( 'Image' ) }
39
+ instructions={ __(
40
+ 'Upload an image file, pick one from your media library, or add one with a URL.'
41
+ ) }
42
+ >
43
+ { content }
44
+ </Placeholder>
45
+ );
46
+ };
47
+
31
48
  /**
32
49
  * Module constants
33
50
  */
@@ -344,6 +361,7 @@ export function ImageEdit( {
344
361
  onSelectURL={ onSelectURL }
345
362
  notices={ noticeUI }
346
363
  onError={ onUploadError }
364
+ placeholder={ placeholder }
347
365
  accept="image/*"
348
366
  allowedTypes={ ALLOWED_MEDIA_TYPES }
349
367
  value={ { id, src } }
@@ -1,3 +1,40 @@
1
+ // Provide special styling for the placeholder.
2
+ // @todo: this particular minimal style of placeholder could be componentized further.
3
+ .wp-block-image.wp-block-image {
4
+ // Show Placeholder style on-select.
5
+ &.is-selected .components-placeholder {
6
+ // Block UI appearance.
7
+ color: $gray-900;
8
+ background-color: $white;
9
+ box-shadow: inset 0 0 0 $border-width $gray-900;
10
+ border: none;
11
+
12
+ // Disable any duotone filter applied in the selected state.
13
+ filter: none;
14
+
15
+ // @todo: this should eventually be overridden by a custom border-radius set in the inspector.
16
+ border-radius: $radius-block-ui;
17
+
18
+ > svg {
19
+ opacity: 0;
20
+ }
21
+
22
+ .components-placeholder__illustration {
23
+ display: none;
24
+ }
25
+ }
26
+
27
+ // Remove the transition while we still have a legacy placeholder style.
28
+ // Otherwise the content jumps between the 1px placeholder border, and any inherited custom
29
+ // parent border that may get applied when you deselect.
30
+ .components-placeholder__label,
31
+ .components-placeholder__instructions,
32
+ .components-button {
33
+ transition: none;
34
+ }
35
+ }
36
+
37
+
1
38
  figure.wp-block-image:not(.wp-block) {
2
39
  margin: 0;
3
40
  }
@@ -14,13 +51,12 @@ figure.wp-block-image:not(.wp-block) {
14
51
  display: inline;
15
52
  }
16
53
 
17
- // Shown while image is being uploaded
54
+ // Shown while image is being uploaded.
18
55
  .components-spinner {
19
56
  position: absolute;
20
57
  top: 50%;
21
58
  left: 50%;
22
- margin-top: -9px;
23
- margin-left: -9px;
59
+ transform: translate(-50%, -50%);
24
60
  }
25
61
  }
26
62
 
@@ -20,7 +20,7 @@ function render_block_core_image( $attributes, $content ) {
20
20
  // which now wraps Image Blocks within innerBlocks.
21
21
  // The data-id attribute is added in a core/gallery `render_block_data` hook.
22
22
  $data_id_attribute = 'data-id="' . esc_attr( $attributes['data-id'] ) . '"';
23
- if ( false === strpos( $content, $data_id_attribute ) ) {
23
+ if ( ! str_contains( $content, $data_id_attribute ) ) {
24
24
  $content = str_replace( '<img', '<img ' . $data_id_attribute . ' ', $content );
25
25
  }
26
26
  }