@wordpress/block-library 8.0.0 → 8.2.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 (558) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/LICENSE.md +1 -1
  3. package/build/archives/edit.js +1 -0
  4. package/build/archives/edit.js.map +1 -1
  5. package/build/audio/edit.js +2 -0
  6. package/build/audio/edit.js.map +1 -1
  7. package/build/categories/edit.js +1 -1
  8. package/build/categories/edit.js.map +1 -1
  9. package/build/comments/edit/comments-inspector-controls.js +9 -3
  10. package/build/comments/edit/comments-inspector-controls.js.map +1 -1
  11. package/build/cover/edit/inspector-controls.js +1 -1
  12. package/build/cover/edit/inspector-controls.js.map +1 -1
  13. package/build/embed/embed-preview.js +1 -0
  14. package/build/embed/embed-preview.js.map +1 -1
  15. package/build/file/inspector.js +1 -0
  16. package/build/file/inspector.js.map +1 -1
  17. package/build/freeform/edit.js +21 -6
  18. package/build/freeform/edit.js.map +1 -1
  19. package/build/freeform/modal.js +97 -0
  20. package/build/freeform/modal.js.map +1 -0
  21. package/build/gallery/edit.js +15 -2
  22. package/build/gallery/edit.js.map +1 -1
  23. package/build/gallery/gallery.js +3 -16
  24. package/build/gallery/gallery.js.map +1 -1
  25. package/build/gallery/v1/edit.js +2 -0
  26. package/build/gallery/v1/edit.js.map +1 -1
  27. package/build/group/edit.js +1 -0
  28. package/build/group/edit.js.map +1 -1
  29. package/build/group/index.js +3 -0
  30. package/build/group/index.js.map +1 -1
  31. package/build/image/image.js +7 -10
  32. package/build/image/image.js.map +1 -1
  33. package/build/latest-posts/edit.js +11 -8
  34. package/build/latest-posts/edit.js.map +1 -1
  35. package/build/media-text/edit.js +1 -0
  36. package/build/media-text/edit.js.map +1 -1
  37. package/build/missing/edit.native.js +2 -2
  38. package/build/missing/edit.native.js.map +1 -1
  39. package/build/navigation/edit/index.js +9 -7
  40. package/build/navigation/edit/index.js.map +1 -1
  41. package/build/navigation/edit/menu-inspector-controls.js +81 -22
  42. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  43. package/build/navigation/edit/navigation-menu-selector.js +15 -10
  44. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  45. package/build/navigation/edit/utils.js +81 -0
  46. package/build/navigation/edit/utils.js.map +1 -1
  47. package/build/navigation/leaf-more-menu.js +95 -0
  48. package/build/navigation/leaf-more-menu.js.map +1 -0
  49. package/build/navigation-link/edit.js +10 -61
  50. package/build/navigation-link/edit.js.map +1 -1
  51. package/build/navigation-link/update-attributes.js +3 -3
  52. package/build/navigation-link/update-attributes.js.map +1 -1
  53. package/build/navigation-submenu/edit.js +7 -72
  54. package/build/navigation-submenu/edit.js.map +1 -1
  55. package/build/page-list/edit.js +16 -15
  56. package/build/page-list/edit.js.map +1 -1
  57. package/build/page-list/index.js +29 -2
  58. package/build/page-list/index.js.map +1 -1
  59. package/build/page-list-item/edit.js +9 -5
  60. package/build/page-list-item/edit.js.map +1 -1
  61. package/build/page-list-item/index.js +2 -1
  62. package/build/page-list-item/index.js.map +1 -1
  63. package/build/post-author/edit.js +2 -0
  64. package/build/post-author/edit.js.map +1 -1
  65. package/build/post-featured-image/dimension-controls.js +1 -0
  66. package/build/post-featured-image/dimension-controls.js.map +1 -1
  67. package/build/post-featured-image/overlay.js +0 -1
  68. package/build/post-featured-image/overlay.js.map +1 -1
  69. package/build/query/edit/index.js +2 -1
  70. package/build/query/edit/index.js.map +1 -1
  71. package/build/query/edit/inspector-controls/index.js +11 -5
  72. package/build/query/edit/inspector-controls/index.js.map +1 -1
  73. package/build/query/edit/inspector-controls/order-control.js +1 -0
  74. package/build/query/edit/inspector-controls/order-control.js.map +1 -1
  75. package/build/query/edit/inspector-controls/sticky-control.js +1 -0
  76. package/build/query/edit/inspector-controls/sticky-control.js.map +1 -1
  77. package/build/query/edit/inspector-controls/taxonomy-controls.js +101 -37
  78. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  79. package/build/query/edit/query-content.js +10 -4
  80. package/build/query/edit/query-content.js.map +1 -1
  81. package/build/query/edit/query-placeholder.js +17 -12
  82. package/build/query/edit/query-placeholder.js.map +1 -1
  83. package/build/query/utils.js +73 -1
  84. package/build/query/utils.js.map +1 -1
  85. package/build/search/edit.js +2 -2
  86. package/build/search/edit.js.map +1 -1
  87. package/build/social-link/edit.js +2 -1
  88. package/build/social-link/edit.js.map +1 -1
  89. package/build/social-links/edit.js +0 -1
  90. package/build/social-links/edit.js.map +1 -1
  91. package/build/table/edit.js +1 -0
  92. package/build/table/edit.js.map +1 -1
  93. package/build/table-of-contents/edit.js +1 -1
  94. package/build/table-of-contents/edit.js.map +1 -1
  95. package/build/tag-cloud/edit.js +1 -0
  96. package/build/tag-cloud/edit.js.map +1 -1
  97. package/build/template-part/edit/advanced-controls.js +23 -2
  98. package/build/template-part/edit/advanced-controls.js.map +1 -1
  99. package/build/template-part/edit/import-controls.js +160 -0
  100. package/build/template-part/edit/import-controls.js.map +1 -0
  101. package/build/template-part/edit/index.js +2 -1
  102. package/build/template-part/edit/index.js.map +1 -1
  103. package/build/template-part/edit/utils/transformers.js +48 -0
  104. package/build/template-part/edit/utils/transformers.js.map +1 -0
  105. package/build/video/edit-common-settings.js +6 -5
  106. package/build/video/edit-common-settings.js.map +1 -1
  107. package/build/video/edit.js +1 -0
  108. package/build/video/edit.js.map +1 -1
  109. package/build/video/tracks-editor.js +1 -0
  110. package/build/video/tracks-editor.js.map +1 -1
  111. package/build-module/archives/edit.js +1 -0
  112. package/build-module/archives/edit.js.map +1 -1
  113. package/build-module/audio/edit.js +2 -0
  114. package/build-module/audio/edit.js.map +1 -1
  115. package/build-module/categories/edit.js +1 -1
  116. package/build-module/categories/edit.js.map +1 -1
  117. package/build-module/comments/edit/comments-inspector-controls.js +9 -3
  118. package/build-module/comments/edit/comments-inspector-controls.js.map +1 -1
  119. package/build-module/cover/edit/inspector-controls.js +3 -3
  120. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  121. package/build-module/embed/embed-preview.js +1 -0
  122. package/build-module/embed/embed-preview.js.map +1 -1
  123. package/build-module/file/inspector.js +1 -0
  124. package/build-module/file/inspector.js.map +1 -1
  125. package/build-module/freeform/edit.js +22 -8
  126. package/build-module/freeform/edit.js.map +1 -1
  127. package/build-module/freeform/modal.js +90 -0
  128. package/build-module/freeform/modal.js.map +1 -0
  129. package/build-module/gallery/edit.js +16 -3
  130. package/build-module/gallery/edit.js.map +1 -1
  131. package/build-module/gallery/gallery.js +4 -16
  132. package/build-module/gallery/gallery.js.map +1 -1
  133. package/build-module/gallery/v1/edit.js +2 -0
  134. package/build-module/gallery/v1/edit.js.map +1 -1
  135. package/build-module/group/edit.js +1 -0
  136. package/build-module/group/edit.js.map +1 -1
  137. package/build-module/group/index.js +3 -0
  138. package/build-module/group/index.js.map +1 -1
  139. package/build-module/image/image.js +7 -10
  140. package/build-module/image/image.js.map +1 -1
  141. package/build-module/latest-posts/edit.js +12 -9
  142. package/build-module/latest-posts/edit.js.map +1 -1
  143. package/build-module/media-text/edit.js +1 -0
  144. package/build-module/media-text/edit.js.map +1 -1
  145. package/build-module/missing/edit.native.js +2 -2
  146. package/build-module/missing/edit.native.js.map +1 -1
  147. package/build-module/navigation/edit/index.js +9 -7
  148. package/build-module/navigation/edit/index.js.map +1 -1
  149. package/build-module/navigation/edit/menu-inspector-controls.js +80 -25
  150. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  151. package/build-module/navigation/edit/navigation-menu-selector.js +16 -11
  152. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  153. package/build-module/navigation/edit/utils.js +75 -0
  154. package/build-module/navigation/edit/utils.js.map +1 -1
  155. package/build-module/navigation/leaf-more-menu.js +76 -0
  156. package/build-module/navigation/leaf-more-menu.js.map +1 -0
  157. package/build-module/navigation-link/edit.js +10 -62
  158. package/build-module/navigation-link/edit.js.map +1 -1
  159. package/build-module/navigation-link/update-attributes.js +3 -3
  160. package/build-module/navigation-link/update-attributes.js.map +1 -1
  161. package/build-module/navigation-submenu/edit.js +6 -72
  162. package/build-module/navigation-submenu/edit.js.map +1 -1
  163. package/build-module/page-list/edit.js +17 -15
  164. package/build-module/page-list/edit.js.map +1 -1
  165. package/build-module/page-list/index.js +30 -3
  166. package/build-module/page-list/index.js.map +1 -1
  167. package/build-module/page-list-item/edit.js +9 -6
  168. package/build-module/page-list-item/edit.js.map +1 -1
  169. package/build-module/page-list-item/index.js +2 -1
  170. package/build-module/page-list-item/index.js.map +1 -1
  171. package/build-module/post-author/edit.js +2 -0
  172. package/build-module/post-author/edit.js.map +1 -1
  173. package/build-module/post-featured-image/dimension-controls.js +1 -0
  174. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  175. package/build-module/post-featured-image/overlay.js +0 -1
  176. package/build-module/post-featured-image/overlay.js.map +1 -1
  177. package/build-module/query/edit/index.js +2 -1
  178. package/build-module/query/edit/index.js.map +1 -1
  179. package/build-module/query/edit/inspector-controls/index.js +11 -5
  180. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  181. package/build-module/query/edit/inspector-controls/order-control.js +1 -0
  182. package/build-module/query/edit/inspector-controls/order-control.js.map +1 -1
  183. package/build-module/query/edit/inspector-controls/sticky-control.js +1 -0
  184. package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -1
  185. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +99 -35
  186. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  187. package/build-module/query/edit/query-content.js +9 -2
  188. package/build-module/query/edit/query-content.js.map +1 -1
  189. package/build-module/query/edit/query-placeholder.js +16 -12
  190. package/build-module/query/edit/query-placeholder.js.map +1 -1
  191. package/build-module/query/utils.js +69 -0
  192. package/build-module/query/utils.js.map +1 -1
  193. package/build-module/search/edit.js +2 -2
  194. package/build-module/search/edit.js.map +1 -1
  195. package/build-module/social-link/edit.js +4 -3
  196. package/build-module/social-link/edit.js.map +1 -1
  197. package/build-module/social-links/edit.js +0 -1
  198. package/build-module/social-links/edit.js.map +1 -1
  199. package/build-module/table/edit.js +1 -0
  200. package/build-module/table/edit.js.map +1 -1
  201. package/build-module/table-of-contents/edit.js +1 -1
  202. package/build-module/table-of-contents/edit.js.map +1 -1
  203. package/build-module/tag-cloud/edit.js +1 -0
  204. package/build-module/tag-cloud/edit.js.map +1 -1
  205. package/build-module/template-part/edit/advanced-controls.js +22 -2
  206. package/build-module/template-part/edit/advanced-controls.js.map +1 -1
  207. package/build-module/template-part/edit/import-controls.js +146 -0
  208. package/build-module/template-part/edit/import-controls.js.map +1 -0
  209. package/build-module/template-part/edit/index.js +2 -1
  210. package/build-module/template-part/edit/index.js.map +1 -1
  211. package/build-module/template-part/edit/utils/transformers.js +40 -0
  212. package/build-module/template-part/edit/utils/transformers.js.map +1 -0
  213. package/build-module/video/edit-common-settings.js +6 -5
  214. package/build-module/video/edit-common-settings.js.map +1 -1
  215. package/build-module/video/edit.js +1 -0
  216. package/build-module/video/edit.js.map +1 -1
  217. package/build-module/video/tracks-editor.js +1 -0
  218. package/build-module/video/tracks-editor.js.map +1 -1
  219. package/build-style/archives/editor-rtl.css +3 -3
  220. package/build-style/archives/editor.css +3 -3
  221. package/build-style/archives/style-rtl.css +3 -3
  222. package/build-style/archives/style.css +3 -3
  223. package/build-style/audio/editor-rtl.css +3 -3
  224. package/build-style/audio/editor.css +3 -3
  225. package/build-style/audio/style-rtl.css +3 -3
  226. package/build-style/audio/style.css +3 -3
  227. package/build-style/audio/theme-rtl.css +3 -3
  228. package/build-style/audio/theme.css +3 -3
  229. package/build-style/avatar/editor-rtl.css +3 -3
  230. package/build-style/avatar/editor.css +3 -3
  231. package/build-style/avatar/style-rtl.css +3 -3
  232. package/build-style/avatar/style.css +3 -3
  233. package/build-style/block/editor-rtl.css +3 -3
  234. package/build-style/block/editor.css +3 -3
  235. package/build-style/button/editor-rtl.css +3 -3
  236. package/build-style/button/editor.css +3 -3
  237. package/build-style/button/style-rtl.css +3 -3
  238. package/build-style/button/style.css +3 -3
  239. package/build-style/buttons/editor-rtl.css +3 -3
  240. package/build-style/buttons/editor.css +3 -3
  241. package/build-style/buttons/style-rtl.css +3 -3
  242. package/build-style/buttons/style.css +3 -3
  243. package/build-style/calendar/style-rtl.css +3 -3
  244. package/build-style/calendar/style.css +3 -3
  245. package/build-style/categories/editor-rtl.css +3 -3
  246. package/build-style/categories/editor.css +3 -3
  247. package/build-style/categories/style-rtl.css +3 -3
  248. package/build-style/categories/style.css +3 -3
  249. package/build-style/classic-rtl.css +3 -3
  250. package/build-style/classic.css +3 -3
  251. package/build-style/code/editor-rtl.css +3 -3
  252. package/build-style/code/editor.css +3 -3
  253. package/build-style/code/style-rtl.css +3 -3
  254. package/build-style/code/style.css +3 -3
  255. package/build-style/code/theme-rtl.css +3 -3
  256. package/build-style/code/theme.css +3 -3
  257. package/build-style/columns/editor-rtl.css +3 -3
  258. package/build-style/columns/editor.css +3 -3
  259. package/build-style/columns/style-rtl.css +3 -3
  260. package/build-style/columns/style.css +3 -3
  261. package/build-style/comment-author-avatar/editor-rtl.css +3 -3
  262. package/build-style/comment-author-avatar/editor.css +3 -3
  263. package/build-style/comment-content/style-rtl.css +3 -3
  264. package/build-style/comment-content/style.css +3 -3
  265. package/build-style/comment-template/style-rtl.css +3 -3
  266. package/build-style/comment-template/style.css +3 -3
  267. package/build-style/comments/editor-rtl.css +3 -3
  268. package/build-style/comments/editor.css +3 -3
  269. package/build-style/comments/style-rtl.css +3 -3
  270. package/build-style/comments/style.css +3 -3
  271. package/build-style/comments-pagination/editor-rtl.css +3 -3
  272. package/build-style/comments-pagination/editor.css +3 -3
  273. package/build-style/comments-pagination/style-rtl.css +3 -3
  274. package/build-style/comments-pagination/style.css +3 -3
  275. package/build-style/comments-pagination-numbers/editor-rtl.css +3 -3
  276. package/build-style/comments-pagination-numbers/editor.css +3 -3
  277. package/build-style/comments-title/editor-rtl.css +3 -3
  278. package/build-style/comments-title/editor.css +3 -3
  279. package/build-style/common-rtl.css +3 -3
  280. package/build-style/common.css +3 -3
  281. package/build-style/cover/editor-rtl.css +3 -3
  282. package/build-style/cover/editor.css +3 -3
  283. package/build-style/cover/style-rtl.css +3 -3
  284. package/build-style/cover/style.css +3 -3
  285. package/build-style/editor-elements-rtl.css +3 -3
  286. package/build-style/editor-elements.css +3 -3
  287. package/build-style/editor-rtl.css +7 -9
  288. package/build-style/editor.css +7 -9
  289. package/build-style/elements-rtl.css +3 -3
  290. package/build-style/elements.css +3 -3
  291. package/build-style/embed/editor-rtl.css +3 -3
  292. package/build-style/embed/editor.css +3 -3
  293. package/build-style/embed/style-rtl.css +3 -3
  294. package/build-style/embed/style.css +3 -3
  295. package/build-style/embed/theme-rtl.css +3 -3
  296. package/build-style/embed/theme.css +3 -3
  297. package/build-style/file/editor-rtl.css +3 -3
  298. package/build-style/file/editor.css +3 -3
  299. package/build-style/file/style-rtl.css +3 -3
  300. package/build-style/file/style.css +3 -3
  301. package/build-style/freeform/editor-rtl.css +3 -3
  302. package/build-style/freeform/editor.css +3 -3
  303. package/build-style/gallery/editor-rtl.css +3 -3
  304. package/build-style/gallery/editor.css +3 -3
  305. package/build-style/gallery/style-rtl.css +3 -3
  306. package/build-style/gallery/style.css +3 -3
  307. package/build-style/gallery/theme-rtl.css +3 -3
  308. package/build-style/gallery/theme.css +3 -3
  309. package/build-style/group/editor-rtl.css +3 -3
  310. package/build-style/group/editor.css +3 -3
  311. package/build-style/group/style-rtl.css +3 -3
  312. package/build-style/group/style.css +3 -3
  313. package/build-style/group/theme-rtl.css +3 -3
  314. package/build-style/group/theme.css +3 -3
  315. package/build-style/heading/style-rtl.css +3 -3
  316. package/build-style/heading/style.css +3 -3
  317. package/build-style/html/editor-rtl.css +3 -3
  318. package/build-style/html/editor.css +3 -3
  319. package/build-style/image/editor-rtl.css +3 -3
  320. package/build-style/image/editor.css +3 -3
  321. package/build-style/image/style-rtl.css +3 -3
  322. package/build-style/image/style.css +3 -3
  323. package/build-style/image/theme-rtl.css +3 -3
  324. package/build-style/image/theme.css +3 -3
  325. package/build-style/latest-comments/style-rtl.css +3 -3
  326. package/build-style/latest-comments/style.css +3 -3
  327. package/build-style/latest-posts/editor-rtl.css +3 -3
  328. package/build-style/latest-posts/editor.css +3 -3
  329. package/build-style/latest-posts/style-rtl.css +3 -3
  330. package/build-style/latest-posts/style.css +3 -3
  331. package/build-style/list/style-rtl.css +3 -3
  332. package/build-style/list/style.css +3 -3
  333. package/build-style/media-text/editor-rtl.css +3 -3
  334. package/build-style/media-text/editor.css +3 -3
  335. package/build-style/media-text/style-rtl.css +3 -3
  336. package/build-style/media-text/style.css +3 -3
  337. package/build-style/more/editor-rtl.css +3 -3
  338. package/build-style/more/editor.css +3 -3
  339. package/build-style/navigation/editor-rtl.css +3 -9
  340. package/build-style/navigation/editor.css +3 -9
  341. package/build-style/navigation/style-rtl.css +3 -4
  342. package/build-style/navigation/style.css +3 -4
  343. package/build-style/navigation-link/editor-rtl.css +3 -3
  344. package/build-style/navigation-link/editor.css +3 -3
  345. package/build-style/navigation-link/style-rtl.css +3 -3
  346. package/build-style/navigation-link/style.css +3 -3
  347. package/build-style/navigation-submenu/editor-rtl.css +3 -3
  348. package/build-style/navigation-submenu/editor.css +3 -3
  349. package/build-style/nextpage/editor-rtl.css +3 -3
  350. package/build-style/nextpage/editor.css +3 -3
  351. package/build-style/page-list/editor-rtl.css +7 -3
  352. package/build-style/page-list/editor.css +7 -3
  353. package/build-style/page-list/style-rtl.css +3 -3
  354. package/build-style/page-list/style.css +3 -3
  355. package/build-style/paragraph/editor-rtl.css +3 -3
  356. package/build-style/paragraph/editor.css +3 -3
  357. package/build-style/paragraph/style-rtl.css +3 -3
  358. package/build-style/paragraph/style.css +3 -3
  359. package/build-style/post-author/style-rtl.css +3 -3
  360. package/build-style/post-author/style.css +3 -3
  361. package/build-style/post-comments-form/editor-rtl.css +3 -3
  362. package/build-style/post-comments-form/editor.css +3 -3
  363. package/build-style/post-comments-form/style-rtl.css +3 -3
  364. package/build-style/post-comments-form/style.css +3 -3
  365. package/build-style/post-date/style-rtl.css +3 -3
  366. package/build-style/post-date/style.css +3 -3
  367. package/build-style/post-excerpt/editor-rtl.css +3 -3
  368. package/build-style/post-excerpt/editor.css +3 -3
  369. package/build-style/post-excerpt/style-rtl.css +3 -3
  370. package/build-style/post-excerpt/style.css +3 -3
  371. package/build-style/post-featured-image/editor-rtl.css +3 -3
  372. package/build-style/post-featured-image/editor.css +3 -3
  373. package/build-style/post-featured-image/style-rtl.css +3 -3
  374. package/build-style/post-featured-image/style.css +3 -3
  375. package/build-style/post-navigation-link/style-rtl.css +3 -3
  376. package/build-style/post-navigation-link/style.css +3 -3
  377. package/build-style/post-template/editor-rtl.css +3 -3
  378. package/build-style/post-template/editor.css +3 -3
  379. package/build-style/post-template/style-rtl.css +3 -3
  380. package/build-style/post-template/style.css +3 -3
  381. package/build-style/post-terms/style-rtl.css +3 -3
  382. package/build-style/post-terms/style.css +3 -3
  383. package/build-style/post-title/style-rtl.css +3 -3
  384. package/build-style/post-title/style.css +3 -3
  385. package/build-style/preformatted/style-rtl.css +3 -3
  386. package/build-style/preformatted/style.css +3 -3
  387. package/build-style/pullquote/editor-rtl.css +3 -3
  388. package/build-style/pullquote/editor.css +3 -3
  389. package/build-style/pullquote/style-rtl.css +3 -3
  390. package/build-style/pullquote/style.css +3 -3
  391. package/build-style/pullquote/theme-rtl.css +3 -3
  392. package/build-style/pullquote/theme.css +3 -3
  393. package/build-style/query/editor-rtl.css +3 -3
  394. package/build-style/query/editor.css +3 -3
  395. package/build-style/query-pagination/editor-rtl.css +3 -3
  396. package/build-style/query-pagination/editor.css +3 -3
  397. package/build-style/query-pagination/style-rtl.css +3 -3
  398. package/build-style/query-pagination/style.css +3 -3
  399. package/build-style/query-pagination-numbers/editor-rtl.css +3 -3
  400. package/build-style/query-pagination-numbers/editor.css +3 -3
  401. package/build-style/query-title/style-rtl.css +3 -3
  402. package/build-style/query-title/style.css +3 -3
  403. package/build-style/quote/style-rtl.css +3 -3
  404. package/build-style/quote/style.css +3 -3
  405. package/build-style/quote/theme-rtl.css +3 -3
  406. package/build-style/quote/theme.css +3 -3
  407. package/build-style/read-more/style-rtl.css +3 -3
  408. package/build-style/read-more/style.css +3 -3
  409. package/build-style/reset-rtl.css +3 -3
  410. package/build-style/reset.css +3 -3
  411. package/build-style/rss/editor-rtl.css +3 -3
  412. package/build-style/rss/editor.css +3 -3
  413. package/build-style/rss/style-rtl.css +3 -3
  414. package/build-style/rss/style.css +3 -3
  415. package/build-style/search/editor-rtl.css +3 -3
  416. package/build-style/search/editor.css +3 -3
  417. package/build-style/search/style-rtl.css +3 -3
  418. package/build-style/search/style.css +3 -3
  419. package/build-style/search/theme-rtl.css +3 -3
  420. package/build-style/search/theme.css +3 -3
  421. package/build-style/separator/editor-rtl.css +3 -3
  422. package/build-style/separator/editor.css +3 -3
  423. package/build-style/separator/style-rtl.css +3 -3
  424. package/build-style/separator/style.css +3 -3
  425. package/build-style/separator/theme-rtl.css +3 -3
  426. package/build-style/separator/theme.css +3 -3
  427. package/build-style/shortcode/editor-rtl.css +3 -3
  428. package/build-style/shortcode/editor.css +3 -3
  429. package/build-style/site-logo/editor-rtl.css +3 -3
  430. package/build-style/site-logo/editor.css +3 -3
  431. package/build-style/site-logo/style-rtl.css +3 -3
  432. package/build-style/site-logo/style.css +3 -3
  433. package/build-style/site-tagline/editor-rtl.css +3 -3
  434. package/build-style/site-tagline/editor.css +3 -3
  435. package/build-style/site-title/editor-rtl.css +3 -3
  436. package/build-style/site-title/editor.css +3 -3
  437. package/build-style/site-title/style-rtl.css +3 -3
  438. package/build-style/site-title/style.css +3 -3
  439. package/build-style/social-link/editor-rtl.css +3 -3
  440. package/build-style/social-link/editor.css +3 -3
  441. package/build-style/social-links/editor-rtl.css +3 -3
  442. package/build-style/social-links/editor.css +3 -3
  443. package/build-style/social-links/style-rtl.css +3 -3
  444. package/build-style/social-links/style.css +3 -3
  445. package/build-style/spacer/editor-rtl.css +3 -3
  446. package/build-style/spacer/editor.css +3 -3
  447. package/build-style/spacer/style-rtl.css +3 -3
  448. package/build-style/spacer/style.css +3 -3
  449. package/build-style/style-rtl.css +13 -5
  450. package/build-style/style.css +13 -5
  451. package/build-style/table/editor-rtl.css +3 -3
  452. package/build-style/table/editor.css +3 -3
  453. package/build-style/table/style-rtl.css +9 -3
  454. package/build-style/table/style.css +9 -3
  455. package/build-style/table/theme-rtl.css +3 -9
  456. package/build-style/table/theme.css +3 -9
  457. package/build-style/tag-cloud/style-rtl.css +3 -3
  458. package/build-style/tag-cloud/style.css +3 -3
  459. package/build-style/template-part/editor-rtl.css +3 -3
  460. package/build-style/template-part/editor.css +3 -3
  461. package/build-style/template-part/theme-rtl.css +3 -3
  462. package/build-style/template-part/theme.css +3 -3
  463. package/build-style/text-columns/editor-rtl.css +3 -3
  464. package/build-style/text-columns/editor.css +3 -3
  465. package/build-style/text-columns/style-rtl.css +3 -3
  466. package/build-style/text-columns/style.css +3 -3
  467. package/build-style/theme-rtl.css +3 -9
  468. package/build-style/theme.css +3 -9
  469. package/build-style/verse/style-rtl.css +7 -4
  470. package/build-style/verse/style.css +7 -4
  471. package/build-style/video/editor-rtl.css +3 -3
  472. package/build-style/video/editor.css +3 -3
  473. package/build-style/video/style-rtl.css +3 -3
  474. package/build-style/video/style.css +3 -3
  475. package/build-style/video/theme-rtl.css +3 -3
  476. package/build-style/video/theme.css +3 -3
  477. package/package.json +29 -29
  478. package/src/archives/edit.js +1 -0
  479. package/src/audio/edit.js +2 -0
  480. package/src/categories/edit.js +1 -1
  481. package/src/comments/edit/comments-inspector-controls.js +12 -2
  482. package/src/comments/index.php +0 -1
  483. package/src/cover/edit/inspector-controls.js +4 -4
  484. package/src/embed/embed-preview.js +1 -0
  485. package/src/file/inspector.js +1 -0
  486. package/src/freeform/edit.js +48 -29
  487. package/src/freeform/modal.js +111 -0
  488. package/src/gallery/edit.js +19 -2
  489. package/src/gallery/gallery.js +4 -13
  490. package/src/gallery/v1/edit.js +2 -0
  491. package/src/group/block.json +3 -0
  492. package/src/group/edit.js +1 -0
  493. package/src/image/image.js +27 -36
  494. package/src/latest-posts/edit.js +6 -7
  495. package/src/latest-posts/test/__snapshots__/edit.native.js.snap +3 -0
  496. package/src/latest-posts/test/edit.native.js +49 -0
  497. package/src/media-text/edit.js +1 -0
  498. package/src/missing/edit.native.js +13 -6
  499. package/src/more/test/__snapshots__/edit.native.js.snap +7 -0
  500. package/src/more/test/edit.native.js +41 -0
  501. package/src/navigation/edit/index.js +6 -4
  502. package/src/navigation/edit/menu-inspector-controls.js +115 -44
  503. package/src/navigation/edit/navigation-menu-selector.js +24 -11
  504. package/src/navigation/edit/utils.js +82 -0
  505. package/src/navigation/editor.scss +0 -7
  506. package/src/navigation/index.php +32 -0
  507. package/src/navigation/leaf-more-menu.js +93 -0
  508. package/src/navigation/style.scss +0 -1
  509. package/src/navigation-link/edit.js +23 -65
  510. package/src/navigation-link/index.php +62 -3
  511. package/src/navigation-link/update-attributes.js +1 -1
  512. package/src/navigation-submenu/edit.js +29 -100
  513. package/src/navigation-submenu/index.php +34 -2
  514. package/src/page-list/block.json +18 -1
  515. package/src/page-list/edit.js +30 -22
  516. package/src/page-list/editor.scss +4 -0
  517. package/src/page-list/index.js +8 -2
  518. package/src/page-list/index.php +14 -10
  519. package/src/page-list-item/block.json +2 -1
  520. package/src/page-list-item/edit.js +17 -9
  521. package/src/post-author/edit.js +2 -0
  522. package/src/post-featured-image/dimension-controls.js +1 -0
  523. package/src/post-featured-image/overlay.js +0 -1
  524. package/src/query/edit/index.js +1 -0
  525. package/src/query/edit/inspector-controls/index.js +50 -38
  526. package/src/query/edit/inspector-controls/order-control.js +1 -0
  527. package/src/query/edit/inspector-controls/sticky-control.js +1 -0
  528. package/src/query/edit/inspector-controls/taxonomy-controls.js +102 -38
  529. package/src/query/edit/query-content.js +15 -1
  530. package/src/query/edit/query-placeholder.js +15 -14
  531. package/src/query/utils.js +59 -1
  532. package/src/rss/index.php +1 -1
  533. package/src/search/edit.js +2 -2
  534. package/src/separator/test/__snapshots__/edit.native.js.snap +7 -0
  535. package/src/separator/test/edit.native.js +41 -0
  536. package/src/social-link/edit.js +5 -4
  537. package/src/social-links/edit.js +0 -1
  538. package/src/table/edit.js +1 -0
  539. package/src/table/style.scss +8 -0
  540. package/src/table/theme.scss +0 -8
  541. package/src/table-of-contents/edit.js +1 -1
  542. package/src/tag-cloud/edit.js +1 -0
  543. package/src/template-part/edit/advanced-controls.js +36 -0
  544. package/src/template-part/edit/import-controls.js +180 -0
  545. package/src/template-part/edit/index.js +1 -0
  546. package/src/template-part/edit/utils/transformers.js +37 -0
  547. package/src/verse/style.scss +4 -1
  548. package/src/verse/test/__snapshots__/edit.native.js.snap +13 -0
  549. package/src/verse/test/edit.native.js +40 -33
  550. package/src/video/edit-common-settings.js +6 -5
  551. package/src/video/edit.js +1 -0
  552. package/src/video/tracks-editor.js +1 -0
  553. package/tsconfig.tsbuildinfo +1 -1
  554. package/build/query/constants.js +0 -16
  555. package/build/query/constants.js.map +0 -1
  556. package/build-module/query/constants.js +0 -7
  557. package/build-module/query/constants.js.map +0 -1
  558. package/src/query/constants.js +0 -7
@@ -6,10 +6,10 @@ import {
6
6
  useBlockProps,
7
7
  store as blockEditorStore,
8
8
  } from '@wordpress/block-editor';
9
- import { debounce } from '@wordpress/compose';
9
+ import { debounce, useRefEffect } from '@wordpress/compose';
10
10
  import { useSelect } from '@wordpress/data';
11
11
  import { ToolbarGroup } from '@wordpress/components';
12
- import { useEffect, useRef } from '@wordpress/element';
12
+ import { useEffect, useRef, useState } from '@wordpress/element';
13
13
  import { __ } from '@wordpress/i18n';
14
14
  import { BACKSPACE, DELETE, F10, isKeyboardEvent } from '@wordpress/keycodes';
15
15
 
@@ -17,6 +17,7 @@ import { BACKSPACE, DELETE, F10, isKeyboardEvent } from '@wordpress/keycodes';
17
17
  * Internal dependencies
18
18
  */
19
19
  import ConvertToBlocksButton from './convert-to-blocks-button';
20
+ import ModalEdit from './modal';
20
21
 
21
22
  const { wp } = window;
22
23
 
@@ -36,17 +37,44 @@ function isTmceEmpty( editor ) {
36
37
  return /^\n?$/.test( body.innerText || body.textContent );
37
38
  }
38
39
 
39
- export default function ClassicEdit( {
40
+ export default function FreeformEdit( props ) {
41
+ const { clientId } = props;
42
+ const canRemove = useSelect(
43
+ ( select ) => select( blockEditorStore ).canRemoveBlock( clientId ),
44
+ [ clientId ]
45
+ );
46
+ const [ isIframed, setIsIframed ] = useState( false );
47
+ const ref = useRefEffect( ( element ) => {
48
+ setIsIframed( element.ownerDocument !== document );
49
+ }, [] );
50
+
51
+ return (
52
+ <>
53
+ { canRemove && (
54
+ <BlockControls>
55
+ <ToolbarGroup>
56
+ <ConvertToBlocksButton clientId={ clientId } />
57
+ </ToolbarGroup>
58
+ </BlockControls>
59
+ ) }
60
+ <div { ...useBlockProps( { ref } ) }>
61
+ { isIframed ? (
62
+ <ModalEdit { ...props } />
63
+ ) : (
64
+ <ClassicEdit { ...props } />
65
+ ) }
66
+ </div>
67
+ </>
68
+ );
69
+ }
70
+
71
+ function ClassicEdit( {
40
72
  clientId,
41
73
  attributes: { content },
42
74
  setAttributes,
43
75
  onReplace,
44
76
  } ) {
45
77
  const { getMultiSelectedBlockClientIds } = useSelect( blockEditorStore );
46
- const canRemove = useSelect(
47
- ( select ) => select( blockEditorStore ).canRemoveBlock( clientId ),
48
- [ clientId ]
49
- );
50
78
  const didMount = useRef( false );
51
79
 
52
80
  useEffect( () => {
@@ -225,28 +253,19 @@ export default function ClassicEdit( {
225
253
  /* eslint-disable jsx-a11y/no-static-element-interactions */
226
254
  return (
227
255
  <>
228
- { canRemove && (
229
- <BlockControls>
230
- <ToolbarGroup>
231
- <ConvertToBlocksButton clientId={ clientId } />
232
- </ToolbarGroup>
233
- </BlockControls>
234
- ) }
235
- <div { ...useBlockProps() }>
236
- <div
237
- key="toolbar"
238
- id={ `toolbar-${ clientId }` }
239
- className="block-library-classic__toolbar"
240
- onClick={ focus }
241
- data-placeholder={ __( 'Classic' ) }
242
- onKeyDown={ onToolbarKeyDown }
243
- />
244
- <div
245
- key="editor"
246
- id={ `editor-${ clientId }` }
247
- className="wp-block-freeform block-library-rich-text__tinymce"
248
- />
249
- </div>
256
+ <div
257
+ key="toolbar"
258
+ id={ `toolbar-${ clientId }` }
259
+ className="block-library-classic__toolbar"
260
+ onClick={ focus }
261
+ data-placeholder={ __( 'Classic' ) }
262
+ onKeyDown={ onToolbarKeyDown }
263
+ />
264
+ <div
265
+ key="editor"
266
+ id={ `editor-${ clientId }` }
267
+ className="wp-block-freeform block-library-rich-text__tinymce"
268
+ />
250
269
  </>
251
270
  );
252
271
  /* eslint-enable jsx-a11y/no-static-element-interactions */
@@ -0,0 +1,111 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { BlockControls, store } from '@wordpress/block-editor';
5
+ import {
6
+ ToolbarGroup,
7
+ ToolbarButton,
8
+ Modal,
9
+ Button,
10
+ } from '@wordpress/components';
11
+ import { useEffect, useState, RawHTML } from '@wordpress/element';
12
+ import { __ } from '@wordpress/i18n';
13
+ import { useSelect } from '@wordpress/data';
14
+
15
+ function ClassicEdit( props ) {
16
+ const styles = useSelect(
17
+ ( select ) => select( store ).getSettings().styles
18
+ );
19
+ useEffect( () => {
20
+ const { baseURL, suffix, settings } = window.wpEditorL10n.tinymce;
21
+
22
+ window.tinymce.EditorManager.overrideDefaults( {
23
+ base_url: baseURL,
24
+ suffix,
25
+ } );
26
+
27
+ window.wp.oldEditor.initialize( props.id, {
28
+ tinymce: {
29
+ ...settings,
30
+ height: 500,
31
+ setup( editor ) {
32
+ editor.on( 'init', () => {
33
+ const doc = editor.getDoc();
34
+ styles.forEach( ( { css } ) => {
35
+ const styleEl = doc.createElement( 'style' );
36
+ styleEl.innerHTML = css;
37
+ doc.head.appendChild( styleEl );
38
+ } );
39
+ } );
40
+ },
41
+ },
42
+ } );
43
+
44
+ return () => {
45
+ window.wp.oldEditor.remove( props.id );
46
+ };
47
+ }, [] );
48
+
49
+ return <textarea { ...props } />;
50
+ }
51
+
52
+ export default function ModalEdit( props ) {
53
+ const {
54
+ clientId,
55
+ attributes: { content },
56
+ setAttributes,
57
+ onReplace,
58
+ } = props;
59
+ const [ isOpen, setOpen ] = useState( false );
60
+ const id = `editor-${ clientId }`;
61
+ const label = __( 'Classic Edit' );
62
+
63
+ return (
64
+ <>
65
+ <BlockControls>
66
+ <ToolbarGroup>
67
+ <ToolbarButton onClick={ () => setOpen( true ) }>
68
+ { label }
69
+ </ToolbarButton>
70
+ </ToolbarGroup>
71
+ </BlockControls>
72
+ { content && <RawHTML>{ content }</RawHTML> }
73
+ { ( isOpen || ! content ) && (
74
+ <Modal title={ label } __experimentalHideHeader={ true }>
75
+ <h2
76
+ style={ {
77
+ display: 'flex',
78
+ justifyContent: 'space-between',
79
+ } }
80
+ >
81
+ <div>{ label }</div>
82
+ <div>
83
+ <Button
84
+ onClick={ () =>
85
+ content ? setOpen( false ) : onReplace( [] )
86
+ }
87
+ >
88
+ { __( 'Cancel' ) }
89
+ </Button>
90
+ <Button
91
+ isPrimary
92
+ onClick={ () => {
93
+ setAttributes( {
94
+ content:
95
+ window.wp.oldEditor.getContent(
96
+ id
97
+ ),
98
+ } );
99
+ setOpen( false );
100
+ } }
101
+ >
102
+ { __( 'Save' ) }
103
+ </Button>
104
+ </div>
105
+ </h2>
106
+ <ClassicEdit id={ id } defaultValue={ content } />
107
+ </Modal>
108
+ ) }
109
+ </>
110
+ );
111
+ }
@@ -20,6 +20,7 @@ import {
20
20
  MediaPlaceholder,
21
21
  InspectorControls,
22
22
  useBlockProps,
23
+ useInnerBlocksProps,
23
24
  BlockControls,
24
25
  MediaReplaceFlow,
25
26
  } from '@wordpress/block-editor';
@@ -63,6 +64,8 @@ const linkOptions = [
63
64
  },
64
65
  ];
65
66
  const ALLOWED_MEDIA_TYPES = [ 'image' ];
67
+ const allowedBlocks = [ 'core/image' ];
68
+ const LAYOUT = { type: 'default', alignments: [] };
66
69
 
67
70
  const PLACEHOLDER_TEXT = Platform.isNative
68
71
  ? __( 'ADD MEDIA' )
@@ -483,8 +486,20 @@ function GalleryEdit( props ) {
483
486
  className: classnames( className, 'has-nested-images' ),
484
487
  } );
485
488
 
489
+ const innerBlocksProps = useInnerBlocksProps( blockProps, {
490
+ allowedBlocks,
491
+ orientation: 'horizontal',
492
+ renderAppender: false,
493
+ __experimentalLayout: LAYOUT,
494
+ } );
495
+
486
496
  if ( ! hasImages ) {
487
- return <View { ...blockProps }>{ mediaPlaceholder }</View>;
497
+ return (
498
+ <View { ...innerBlocksProps }>
499
+ { innerBlocksProps.children }
500
+ { mediaPlaceholder }
501
+ </View>
502
+ );
488
503
  }
489
504
 
490
505
  const hasLinkTo = linkTo && linkTo !== 'none';
@@ -516,6 +531,7 @@ function GalleryEdit( props ) {
516
531
  help={ getImageCropHelp }
517
532
  />
518
533
  <SelectControl
534
+ __nextHasNoMarginBottom
519
535
  label={ __( 'Link to' ) }
520
536
  value={ linkTo }
521
537
  onChange={ setLinkTo }
@@ -531,6 +547,7 @@ function GalleryEdit( props ) {
531
547
  ) }
532
548
  { imageSizeOptions?.length > 0 && (
533
549
  <SelectControl
550
+ __nextHasNoMarginBottom
534
551
  label={ __( 'Image size' ) }
535
552
  value={ sizeSlug }
536
553
  options={ imageSizeOptions }
@@ -579,7 +596,7 @@ function GalleryEdit( props ) {
579
596
  ? mediaPlaceholder
580
597
  : undefined
581
598
  }
582
- blockProps={ blockProps }
599
+ blockProps={ innerBlocksProps }
583
600
  insertBlocksAfter={ insertBlocksAfter }
584
601
  />
585
602
  </>
@@ -8,7 +8,6 @@ import classnames from 'classnames';
8
8
  */
9
9
  import {
10
10
  RichText,
11
- useInnerBlocksProps,
12
11
  __experimentalGetElementClassName,
13
12
  } from '@wordpress/block-editor';
14
13
  import { VisuallyHidden } from '@wordpress/components';
@@ -16,8 +15,6 @@ import { __ } from '@wordpress/i18n';
16
15
  import { createBlock, getDefaultBlockName } from '@wordpress/blocks';
17
16
  import { View } from '@wordpress/primitives';
18
17
 
19
- const allowedBlocks = [ 'core/image' ];
20
-
21
18
  export const Gallery = ( props ) => {
22
19
  const {
23
20
  attributes,
@@ -31,16 +28,9 @@ export const Gallery = ( props ) => {
31
28
 
32
29
  const { align, columns, caption, imageCrop } = attributes;
33
30
 
34
- const { children, ...innerBlocksProps } = useInnerBlocksProps( blockProps, {
35
- allowedBlocks,
36
- orientation: 'horizontal',
37
- renderAppender: false,
38
- __experimentalLayout: { type: 'default', alignments: [] },
39
- } );
40
-
41
31
  return (
42
32
  <figure
43
- { ...innerBlocksProps }
33
+ { ...blockProps }
44
34
  className={ classnames(
45
35
  blockProps.className,
46
36
  layoutClassNames,
@@ -53,14 +43,15 @@ export const Gallery = ( props ) => {
53
43
  }
54
44
  ) }
55
45
  >
56
- { children }
57
- { isSelected && ! children && (
46
+ { blockProps.children }
47
+ { isSelected && ! blockProps.children && (
58
48
  <View className="blocks-gallery-media-placeholder-wrapper">
59
49
  { mediaPlaceholder }
60
50
  </View>
61
51
  ) }
62
52
  <RichTextVisibilityHelper
63
53
  isHidden={ ! isSelected && RichText.isEmpty( caption ) }
54
+ identifier="caption"
64
55
  tagName="figcaption"
65
56
  className={ classnames(
66
57
  'blocks-gallery-caption',
@@ -420,6 +420,7 @@ function GalleryEdit( props ) {
420
420
  help={ getImageCropHelp }
421
421
  />
422
422
  <SelectControl
423
+ __nextHasNoMarginBottom
423
424
  label={ __( 'Link to' ) }
424
425
  value={ linkTo }
425
426
  onChange={ setLinkTo }
@@ -428,6 +429,7 @@ function GalleryEdit( props ) {
428
429
  />
429
430
  { shouldShowSizeOptions && (
430
431
  <SelectControl
432
+ __nextHasNoMarginBottom
431
433
  label={ __( 'Image size' ) }
432
434
  value={ sizeSlug }
433
435
  options={ imageSizeOptions }
@@ -56,6 +56,9 @@
56
56
  "width": true
57
57
  }
58
58
  },
59
+ "position": {
60
+ "sticky": true
61
+ },
59
62
  "typography": {
60
63
  "fontSize": true,
61
64
  "lineHeight": true,
package/src/group/edit.js CHANGED
@@ -51,6 +51,7 @@ function GroupEditControls( { tagName, onSelectTagName } ) {
51
51
  return (
52
52
  <InspectorControls __experimentalGroup="advanced">
53
53
  <SelectControl
54
+ __nextHasNoMarginBottom
54
55
  label={ __( 'HTML element' ) }
55
56
  options={ [
56
57
  { label: __( 'Default (<div>)' ), value: 'div' },
@@ -125,37 +125,30 @@ export default function Image( {
125
125
  },
126
126
  [ id, isSelected, clientId ]
127
127
  );
128
- const { canInsertCover, imageEditing, imageSizes, maxWidth, mediaUpload } =
129
- useSelect(
130
- ( select ) => {
131
- const {
132
- getBlockRootClientId,
133
- getSettings,
134
- canInsertBlockType,
135
- } = select( blockEditorStore );
136
-
137
- const rootClientId = getBlockRootClientId( clientId );
138
- const settings = Object.fromEntries(
139
- Object.entries( getSettings() ).filter( ( [ key ] ) =>
140
- [
141
- 'imageEditing',
142
- 'imageSizes',
143
- 'maxWidth',
144
- 'mediaUpload',
145
- ].includes( key )
128
+ const { canInsertCover, imageEditing, imageSizes, mediaUpload } = useSelect(
129
+ ( select ) => {
130
+ const { getBlockRootClientId, getSettings, canInsertBlockType } =
131
+ select( blockEditorStore );
132
+
133
+ const rootClientId = getBlockRootClientId( clientId );
134
+ const settings = Object.fromEntries(
135
+ Object.entries( getSettings() ).filter( ( [ key ] ) =>
136
+ [ 'imageEditing', 'imageSizes', 'mediaUpload' ].includes(
137
+ key
146
138
  )
147
- );
139
+ )
140
+ );
148
141
 
149
- return {
150
- ...settings,
151
- canInsertCover: canInsertBlockType(
152
- 'core/cover',
153
- rootClientId
154
- ),
155
- };
156
- },
157
- [ clientId ]
158
- );
142
+ return {
143
+ ...settings,
144
+ canInsertCover: canInsertBlockType(
145
+ 'core/cover',
146
+ rootClientId
147
+ ),
148
+ };
149
+ },
150
+ [ clientId ]
151
+ );
159
152
  const { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );
160
153
  const { createErrorNotice, createSuccessNotice } =
161
154
  useDispatch( noticesStore );
@@ -413,6 +406,7 @@ export default function Image( {
413
406
  <PanelBody title={ __( 'Settings' ) }>
414
407
  { ! multiImageSelection && (
415
408
  <TextareaControl
409
+ __nextHasNoMarginBottom
416
410
  label={ __( 'Alt text (alternative text)' ) }
417
411
  value={ alt }
418
412
  onChange={ updateAlt }
@@ -548,13 +542,9 @@ export default function Image( {
548
542
  // With the current implementation of ResizableBox, an image needs an
549
543
  // explicit pixel value for the max-width. In absence of being able to
550
544
  // set the content-width, this max-width is currently dictated by the
551
- // vanilla editor style. The following variable adds a buffer to this
552
- // vanilla style, so 3rd party themes have some wiggleroom. This does,
553
- // in most cases, allow you to scale the image beyond the width of the
554
- // main column, though not infinitely.
555
- // @todo It would be good to revisit this once a content-width variable
556
- // becomes available.
557
- const maxWidthBuffer = maxWidth * 2.5;
545
+ // vanilla editor style. We'll use the clientWidth here, to prevent the width
546
+ // of the image growing larger than the width of the block column.
547
+ const maxWidthBuffer = clientWidth;
558
548
 
559
549
  let showRightHandle = false;
560
550
  let showLeftHandle = false;
@@ -638,6 +628,7 @@ export default function Image( {
638
628
  { showCaption &&
639
629
  ( ! RichText.isEmpty( caption ) || isSelected ) && (
640
630
  <RichText
631
+ identifier="caption"
641
632
  className={ __experimentalGetElementClassName(
642
633
  'caption'
643
634
  ) }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { get, pickBy } from 'lodash';
4
+ import { get } from 'lodash';
5
5
  import classnames from 'classnames';
6
6
 
7
7
  /**
@@ -104,16 +104,15 @@ export default function LatestPostsEdit( { attributes, setAttributes } ) {
104
104
  categories && categories.length > 0
105
105
  ? categories.map( ( cat ) => cat.id )
106
106
  : [];
107
- const latestPostsQuery = pickBy(
108
- {
107
+ const latestPostsQuery = Object.fromEntries(
108
+ Object.entries( {
109
109
  categories: catIds,
110
110
  author: selectedAuthor,
111
111
  order,
112
112
  orderby: orderBy,
113
113
  per_page: postsToShow,
114
114
  _embed: 'wp:featuredmedia',
115
- },
116
- ( value ) => typeof value !== 'undefined'
115
+ } ).filter( ( [ , value ] ) => typeof value !== 'undefined' )
117
116
  );
118
117
 
119
118
  return {
@@ -433,7 +432,7 @@ export default function LatestPostsEdit( { attributes, setAttributes } ) {
433
432
  <ToolbarGroup controls={ layoutControls } />
434
433
  </BlockControls>
435
434
  <ul { ...blockProps }>
436
- { displayPosts.map( ( post, i ) => {
435
+ { displayPosts.map( ( post ) => {
437
436
  const titleTrimmed = post.title.rendered.trim();
438
437
  let excerpt = post.excerpt.rendered;
439
438
  const currentAuthor = authorList?.find(
@@ -493,7 +492,7 @@ export default function LatestPostsEdit( { attributes, setAttributes } ) {
493
492
  );
494
493
 
495
494
  return (
496
- <li key={ i }>
495
+ <li key={ post.id }>
497
496
  { renderFeaturedImage && (
498
497
  <div className={ imageClasses }>
499
498
  { addLinkToFeaturedImage ? (
@@ -0,0 +1,3 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Latest Posts block inserts block 1`] = `"<!-- wp:latest-posts /-->"`;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import {
5
+ addBlock,
6
+ getEditorHtml,
7
+ initializeEditor,
8
+ getBlock,
9
+ } from 'test/helpers';
10
+
11
+ /**
12
+ * WordPress dependencies
13
+ */
14
+ import { getBlockTypes, unregisterBlockType } from '@wordpress/blocks';
15
+ import { registerCoreBlocks } from '@wordpress/block-library';
16
+ import apiFetch from '@wordpress/api-fetch';
17
+
18
+ beforeAll( () => {
19
+ // Register all core blocks
20
+ registerCoreBlocks();
21
+ } );
22
+
23
+ afterAll( () => {
24
+ // Clean up registered blocks
25
+ getBlockTypes().forEach( ( block ) => {
26
+ unregisterBlockType( block.name );
27
+ } );
28
+ } );
29
+
30
+ describe( 'Latest Posts block', () => {
31
+ afterEach( () => {
32
+ apiFetch.mockReset();
33
+ } );
34
+
35
+ it( 'inserts block', async () => {
36
+ const screen = await initializeEditor();
37
+
38
+ // Mock return value for categories
39
+ apiFetch.mockReturnValueOnce( Promise.resolve( [] ) );
40
+
41
+ // Add block
42
+ await addBlock( screen, 'Latest Posts' );
43
+
44
+ // Get block
45
+ const latestPostsBlock = await getBlock( screen, 'Latest Posts' );
46
+ expect( latestPostsBlock ).toBeVisible();
47
+ expect( getEditorHtml() ).toMatchSnapshot();
48
+ } );
49
+ } );
@@ -281,6 +281,7 @@ function MediaTextEdit( { attributes, isSelected, setAttributes, clientId } ) {
281
281
  ) }
282
282
  { mediaType === 'image' && (
283
283
  <TextareaControl
284
+ __nextHasNoMarginBottom
284
285
  label={ __( 'Alt text (alternative text)' ) }
285
286
  value={ mediaAlt }
286
287
  onChange={ onMediaAltChange }
@@ -151,7 +151,8 @@ export class UnsupportedBlockEdit extends Component {
151
151
  const infoTitle = sprintf( titleFormat, blockTitle );
152
152
  const missingBlockDetail = applyFilters(
153
153
  'native.missing_block_detail',
154
- __( 'We are working hard to add more blocks with each release.' )
154
+ __( 'We are working hard to add more blocks with each release.' ),
155
+ blockName
155
156
  );
156
157
  const missingBlockActionButton = applyFilters(
157
158
  'native.missing_block_action_button',
@@ -205,11 +206,17 @@ export class UnsupportedBlockEdit extends Component {
205
206
  <Text style={ [ infoTextStyle, infoTitleStyle ] }>
206
207
  { infoTitle }
207
208
  </Text>
208
- { isEditableInUnsupportedBlockEditor && (
209
- <Text style={ [ infoTextStyle, infoDescriptionStyle ] }>
210
- { missingBlockDetail }
211
- </Text>
212
- ) }
209
+ { isEditableInUnsupportedBlockEditor &&
210
+ missingBlockDetail && (
211
+ <Text
212
+ style={ [
213
+ infoTextStyle,
214
+ infoDescriptionStyle,
215
+ ] }
216
+ >
217
+ { missingBlockDetail }
218
+ </Text>
219
+ ) }
213
220
  </View>
214
221
  { ( isUnsupportedBlockEditorSupported ||
215
222
  canEnableUnsupportedBlockEditor ) &&
@@ -0,0 +1,7 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`More block inserts block 1`] = `
4
+ "<!-- wp:more -->
5
+ <!--more-->
6
+ <!-- /wp:more -->"
7
+ `;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import {
5
+ addBlock,
6
+ getEditorHtml,
7
+ initializeEditor,
8
+ getBlock,
9
+ } from 'test/helpers';
10
+
11
+ /**
12
+ * WordPress dependencies
13
+ */
14
+ import { getBlockTypes, unregisterBlockType } from '@wordpress/blocks';
15
+ import { registerCoreBlocks } from '@wordpress/block-library';
16
+
17
+ beforeAll( () => {
18
+ // Register all core blocks
19
+ registerCoreBlocks();
20
+ } );
21
+
22
+ afterAll( () => {
23
+ // Clean up registered blocks
24
+ getBlockTypes().forEach( ( block ) => {
25
+ unregisterBlockType( block.name );
26
+ } );
27
+ } );
28
+
29
+ describe( 'More block', () => {
30
+ it( 'inserts block', async () => {
31
+ const screen = await initializeEditor();
32
+
33
+ // Add block
34
+ await addBlock( screen, 'More' );
35
+
36
+ // Get block
37
+ const moreBlock = await getBlock( screen, 'More' );
38
+ expect( moreBlock ).toBeVisible();
39
+ expect( getEditorHtml() ).toMatchSnapshot();
40
+ } );
41
+ } );