@wordpress/block-library 7.2.0 → 7.3.2

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 (469) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -1
  3. package/build/archives/edit.js +21 -1
  4. package/build/archives/edit.js.map +1 -1
  5. package/build/archives/index.js +5 -1
  6. package/build/archives/index.js.map +1 -1
  7. package/build/audio/edit.js +1 -1
  8. package/build/audio/edit.js.map +1 -1
  9. package/build/audio/edit.native.js +0 -5
  10. package/build/audio/edit.native.js.map +1 -1
  11. package/build/avatar/edit.js +17 -11
  12. package/build/avatar/edit.js.map +1 -1
  13. package/build/block/edit.js +2 -1
  14. package/build/block/edit.js.map +1 -1
  15. package/build/column/index.js +1 -0
  16. package/build/column/index.js.map +1 -1
  17. package/build/comment-author-avatar/index.js +3 -3
  18. package/build/comment-author-name/index.js +7 -3
  19. package/build/comment-author-name/index.js.map +1 -1
  20. package/build/comment-content/index.js +1 -1
  21. package/build/comment-date/index.js +7 -3
  22. package/build/comment-date/index.js.map +1 -1
  23. package/build/comment-edit-link/index.js +5 -1
  24. package/build/comment-edit-link/index.js.map +1 -1
  25. package/build/comment-reply-link/index.js +5 -1
  26. package/build/comment-reply-link/index.js.map +1 -1
  27. package/build/comment-template/edit.js +10 -15
  28. package/build/comment-template/edit.js.map +1 -1
  29. package/build/comment-template/hooks.js +10 -24
  30. package/build/comment-template/hooks.js.map +1 -1
  31. package/build/comment-template/index.js +2 -2
  32. package/build/comments-pagination-next/index.js +2 -2
  33. package/build/comments-pagination-numbers/index.js +1 -1
  34. package/build/comments-pagination-previous/index.js +1 -1
  35. package/build/comments-query-loop/edit/comments-inspector-controls.js +2 -69
  36. package/build/comments-query-loop/edit/comments-inspector-controls.js.map +1 -1
  37. package/build/comments-query-loop/edit.js +22 -1
  38. package/build/comments-query-loop/edit.js.map +1 -1
  39. package/build/comments-query-loop/index.js +1 -23
  40. package/build/comments-query-loop/index.js.map +1 -1
  41. package/build/cover/edit.js +35 -6
  42. package/build/cover/edit.js.map +1 -1
  43. package/build/cover/index.js +5 -0
  44. package/build/cover/index.js.map +1 -1
  45. package/build/cover/save.js +3 -2
  46. package/build/cover/save.js.map +1 -1
  47. package/build/cover/transforms.js +33 -32
  48. package/build/cover/transforms.js.map +1 -1
  49. package/build/gallery/gap-styles.js +8 -2
  50. package/build/gallery/gap-styles.js.map +1 -1
  51. package/build/gallery/index.js +1 -0
  52. package/build/gallery/index.js.map +1 -1
  53. package/build/group/edit.js +3 -1
  54. package/build/group/edit.js.map +1 -1
  55. package/build/group/index.js +2 -4
  56. package/build/group/index.js.map +1 -1
  57. package/build/group/variations.js +31 -9
  58. package/build/group/variations.js.map +1 -1
  59. package/build/heading/edit.js +1 -1
  60. package/build/heading/edit.js.map +1 -1
  61. package/build/html/edit.js +3 -2
  62. package/build/html/edit.js.map +1 -1
  63. package/build/image/edit.native.js +8 -10
  64. package/build/image/edit.native.js.map +1 -1
  65. package/build/index.js +4 -4
  66. package/build/index.js.map +1 -1
  67. package/build/list/deprecated.js +2 -2
  68. package/build/list/deprecated.js.map +1 -1
  69. package/build/list/index.js +13 -2
  70. package/build/list/index.js.map +1 -1
  71. package/build/list/v2/deprecated.js +117 -0
  72. package/build/list/v2/deprecated.js.map +1 -0
  73. package/build/list/v2/edit.js +106 -3
  74. package/build/list/v2/edit.js.map +1 -1
  75. package/build/list/v2/index.js +4 -1
  76. package/build/list/v2/index.js.map +1 -1
  77. package/build/list/v2/migrate.js +85 -0
  78. package/build/list/v2/migrate.js.map +1 -0
  79. package/build/list-item/edit.js +59 -10
  80. package/build/list-item/edit.js.map +1 -1
  81. package/build/list-item/hooks/index.js +32 -0
  82. package/build/list-item/hooks/index.js.map +1 -0
  83. package/build/list-item/hooks/use-enter.js +93 -0
  84. package/build/list-item/hooks/use-enter.js.map +1 -0
  85. package/build/list-item/hooks/use-indent-list-item.js +74 -0
  86. package/build/list-item/hooks/use-indent-list-item.js.map +1 -0
  87. package/build/list-item/hooks/use-outdent-list-item.js +77 -0
  88. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -0
  89. package/build/list-item/index.js +1 -1
  90. package/build/list-item/index.js.map +1 -1
  91. package/build/list-item/utils.js +16 -0
  92. package/build/list-item/utils.js.map +1 -0
  93. package/build/media-text/media-container.native.js +1 -16
  94. package/build/media-text/media-container.native.js.map +1 -1
  95. package/build/navigation/edit/index.js +36 -17
  96. package/build/navigation/edit/index.js.map +1 -1
  97. package/build/navigation/edit/navigation-menu-delete-control.js +1 -1
  98. package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  99. package/build/navigation/edit/unsaved-inner-blocks.js +34 -7
  100. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  101. package/build/navigation/index.js +9 -1
  102. package/build/navigation/index.js.map +1 -1
  103. package/build/navigation/use-navigation-menu.js +1 -0
  104. package/build/navigation/use-navigation-menu.js.map +1 -1
  105. package/build/navigation-link/edit.js +9 -5
  106. package/build/navigation-link/edit.js.map +1 -1
  107. package/build/navigation-link/index.js +1 -1
  108. package/build/navigation-submenu/edit.js +5 -9
  109. package/build/navigation-submenu/edit.js.map +1 -1
  110. package/build/navigation-submenu/index.js +1 -1
  111. package/build/post-comment/edit.js +2 -2
  112. package/build/post-comment/edit.js.map +1 -1
  113. package/build/post-comments/index.js +4 -3
  114. package/build/post-comments/index.js.map +1 -1
  115. package/build/post-comments-form/edit.js +3 -2
  116. package/build/post-comments-form/edit.js.map +1 -1
  117. package/build/post-featured-image/edit.js +19 -7
  118. package/build/post-featured-image/edit.js.map +1 -1
  119. package/build/post-featured-image/index.js +1 -1
  120. package/build/post-template/edit.js +7 -2
  121. package/build/post-template/edit.js.map +1 -1
  122. package/build/post-terms/edit.js +3 -1
  123. package/build/post-terms/edit.js.map +1 -1
  124. package/build/post-terms/variations.js +1 -1
  125. package/build/post-terms/variations.js.map +1 -1
  126. package/build/query/edit/index.js +84 -22
  127. package/build/query/edit/index.js.map +1 -1
  128. package/build/query/edit/query-placeholder.js +7 -14
  129. package/build/query/edit/query-placeholder.js.map +1 -1
  130. package/build/query/edit/query-toolbar.js +6 -1
  131. package/build/query/edit/query-toolbar.js.map +1 -1
  132. package/build/query-pagination/edit.js +1 -1
  133. package/build/query-pagination/edit.js.map +1 -1
  134. package/build/query-pagination-numbers/index.js +19 -1
  135. package/build/query-pagination-numbers/index.js.map +1 -1
  136. package/build/quote/index.js +20 -2
  137. package/build/quote/index.js.map +1 -1
  138. package/build/quote/v2/deprecated.js +133 -0
  139. package/build/quote/v2/deprecated.js.map +1 -0
  140. package/build/quote/v2/edit.js +131 -0
  141. package/build/quote/v2/edit.js.map +1 -0
  142. package/build/quote/v2/index.js +49 -0
  143. package/build/quote/v2/index.js.map +1 -0
  144. package/build/quote/v2/save.js +43 -0
  145. package/build/quote/v2/save.js.map +1 -0
  146. package/build/quote/v2/transforms.js +156 -0
  147. package/build/quote/v2/transforms.js.map +1 -0
  148. package/build/read-more/index.js +1 -1
  149. package/build/rss/edit.js +6 -1
  150. package/build/rss/edit.js.map +1 -1
  151. package/build/site-logo/edit.js +3 -2
  152. package/build/site-logo/edit.js.map +1 -1
  153. package/build/site-logo/index.js +1 -1
  154. package/build/social-links/index.js +1 -0
  155. package/build/social-links/index.js.map +1 -1
  156. package/build/spacer/controls.native.js +1 -1
  157. package/build/spacer/controls.native.js.map +1 -1
  158. package/build/template-part/edit/utils/hooks.js +5 -2
  159. package/build/template-part/edit/utils/hooks.js.map +1 -1
  160. package/build-module/archives/edit.js +22 -2
  161. package/build-module/archives/edit.js.map +1 -1
  162. package/build-module/archives/index.js +5 -1
  163. package/build-module/archives/index.js.map +1 -1
  164. package/build-module/audio/edit.js +1 -1
  165. package/build-module/audio/edit.js.map +1 -1
  166. package/build-module/audio/edit.native.js +0 -5
  167. package/build-module/audio/edit.native.js.map +1 -1
  168. package/build-module/avatar/edit.js +16 -11
  169. package/build-module/avatar/edit.js.map +1 -1
  170. package/build-module/block/edit.js +4 -3
  171. package/build-module/block/edit.js.map +1 -1
  172. package/build-module/column/index.js +1 -0
  173. package/build-module/column/index.js.map +1 -1
  174. package/build-module/comment-author-avatar/index.js +3 -3
  175. package/build-module/comment-author-name/index.js +7 -3
  176. package/build-module/comment-author-name/index.js.map +1 -1
  177. package/build-module/comment-content/index.js +1 -1
  178. package/build-module/comment-date/index.js +7 -3
  179. package/build-module/comment-date/index.js.map +1 -1
  180. package/build-module/comment-edit-link/index.js +5 -1
  181. package/build-module/comment-edit-link/index.js.map +1 -1
  182. package/build-module/comment-reply-link/index.js +5 -1
  183. package/build-module/comment-reply-link/index.js.map +1 -1
  184. package/build-module/comment-template/edit.js +10 -15
  185. package/build-module/comment-template/edit.js.map +1 -1
  186. package/build-module/comment-template/hooks.js +10 -24
  187. package/build-module/comment-template/hooks.js.map +1 -1
  188. package/build-module/comment-template/index.js +2 -2
  189. package/build-module/comments-pagination-next/index.js +2 -2
  190. package/build-module/comments-pagination-numbers/index.js +1 -1
  191. package/build-module/comments-pagination-previous/index.js +1 -1
  192. package/build-module/comments-query-loop/edit/comments-inspector-controls.js +4 -70
  193. package/build-module/comments-query-loop/edit/comments-inspector-controls.js.map +1 -1
  194. package/build-module/comments-query-loop/edit.js +22 -1
  195. package/build-module/comments-query-loop/edit.js.map +1 -1
  196. package/build-module/comments-query-loop/index.js +1 -23
  197. package/build-module/comments-query-loop/index.js.map +1 -1
  198. package/build-module/cover/edit.js +36 -8
  199. package/build-module/cover/edit.js.map +1 -1
  200. package/build-module/cover/index.js +5 -0
  201. package/build-module/cover/index.js.map +1 -1
  202. package/build-module/cover/save.js +3 -2
  203. package/build-module/cover/save.js.map +1 -1
  204. package/build-module/cover/transforms.js +33 -32
  205. package/build-module/cover/transforms.js.map +1 -1
  206. package/build-module/gallery/gap-styles.js +8 -2
  207. package/build-module/gallery/gap-styles.js.map +1 -1
  208. package/build-module/gallery/index.js +1 -0
  209. package/build-module/gallery/index.js.map +1 -1
  210. package/build-module/group/edit.js +3 -1
  211. package/build-module/group/edit.js.map +1 -1
  212. package/build-module/group/index.js +2 -4
  213. package/build-module/group/index.js.map +1 -1
  214. package/build-module/group/variations.js +30 -9
  215. package/build-module/group/variations.js.map +1 -1
  216. package/build-module/heading/edit.js +1 -1
  217. package/build-module/heading/edit.js.map +1 -1
  218. package/build-module/html/edit.js +4 -3
  219. package/build-module/html/edit.js.map +1 -1
  220. package/build-module/image/edit.native.js +8 -10
  221. package/build-module/image/edit.native.js.map +1 -1
  222. package/build-module/index.js +4 -4
  223. package/build-module/index.js.map +1 -1
  224. package/build-module/list/deprecated.js +2 -2
  225. package/build-module/list/deprecated.js.map +1 -1
  226. package/build-module/list/index.js +9 -3
  227. package/build-module/list/index.js.map +1 -1
  228. package/build-module/list/v2/deprecated.js +104 -0
  229. package/build-module/list/v2/deprecated.js.map +1 -0
  230. package/build-module/list/v2/edit.js +104 -5
  231. package/build-module/list/v2/edit.js.map +1 -1
  232. package/build-module/list/v2/index.js +3 -1
  233. package/build-module/list/v2/index.js.map +1 -1
  234. package/build-module/list/v2/migrate.js +77 -0
  235. package/build-module/list/v2/migrate.js.map +1 -0
  236. package/build-module/list-item/edit.js +59 -13
  237. package/build-module/list-item/edit.js.map +1 -1
  238. package/build-module/list-item/hooks/index.js +4 -0
  239. package/build-module/list-item/hooks/index.js.map +1 -0
  240. package/build-module/list-item/hooks/use-enter.js +77 -0
  241. package/build-module/list-item/hooks/use-enter.js.map +1 -0
  242. package/build-module/list-item/hooks/use-indent-list-item.js +62 -0
  243. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -0
  244. package/build-module/list-item/hooks/use-outdent-list-item.js +66 -0
  245. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -0
  246. package/build-module/list-item/index.js +1 -1
  247. package/build-module/list-item/index.js.map +1 -1
  248. package/build-module/list-item/utils.js +8 -0
  249. package/build-module/list-item/utils.js.map +1 -0
  250. package/build-module/media-text/media-container.native.js +1 -14
  251. package/build-module/media-text/media-container.native.js.map +1 -1
  252. package/build-module/navigation/edit/index.js +37 -17
  253. package/build-module/navigation/edit/index.js.map +1 -1
  254. package/build-module/navigation/edit/navigation-menu-delete-control.js +1 -1
  255. package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  256. package/build-module/navigation/edit/unsaved-inner-blocks.js +35 -8
  257. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  258. package/build-module/navigation/index.js +9 -1
  259. package/build-module/navigation/index.js.map +1 -1
  260. package/build-module/navigation/use-navigation-menu.js +1 -0
  261. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  262. package/build-module/navigation-link/edit.js +9 -5
  263. package/build-module/navigation-link/edit.js.map +1 -1
  264. package/build-module/navigation-link/index.js +1 -1
  265. package/build-module/navigation-submenu/edit.js +6 -10
  266. package/build-module/navigation-submenu/edit.js.map +1 -1
  267. package/build-module/navigation-submenu/index.js +1 -1
  268. package/build-module/post-comment/edit.js +2 -2
  269. package/build-module/post-comment/edit.js.map +1 -1
  270. package/build-module/post-comments/index.js +4 -3
  271. package/build-module/post-comments/index.js.map +1 -1
  272. package/build-module/post-comments-form/edit.js +3 -2
  273. package/build-module/post-comments-form/edit.js.map +1 -1
  274. package/build-module/post-featured-image/edit.js +19 -7
  275. package/build-module/post-featured-image/edit.js.map +1 -1
  276. package/build-module/post-featured-image/index.js +1 -1
  277. package/build-module/post-template/edit.js +7 -2
  278. package/build-module/post-template/edit.js.map +1 -1
  279. package/build-module/post-terms/edit.js +4 -2
  280. package/build-module/post-terms/edit.js.map +1 -1
  281. package/build-module/post-terms/variations.js +3 -3
  282. package/build-module/post-terms/variations.js.map +1 -1
  283. package/build-module/query/edit/index.js +87 -26
  284. package/build-module/query/edit/index.js.map +1 -1
  285. package/build-module/query/edit/query-placeholder.js +8 -15
  286. package/build-module/query/edit/query-placeholder.js.map +1 -1
  287. package/build-module/query/edit/query-toolbar.js +6 -1
  288. package/build-module/query/edit/query-toolbar.js.map +1 -1
  289. package/build-module/query-pagination/edit.js +1 -1
  290. package/build-module/query-pagination/edit.js.map +1 -1
  291. package/build-module/query-pagination-numbers/index.js +19 -1
  292. package/build-module/query-pagination-numbers/index.js.map +1 -1
  293. package/build-module/quote/index.js +19 -1
  294. package/build-module/quote/index.js.map +1 -1
  295. package/build-module/quote/v2/deprecated.js +116 -0
  296. package/build-module/quote/v2/deprecated.js.map +1 -0
  297. package/build-module/quote/v2/edit.js +115 -0
  298. package/build-module/quote/v2/edit.js.map +1 -0
  299. package/build-module/quote/v2/index.js +33 -0
  300. package/build-module/quote/v2/index.js.map +1 -0
  301. package/build-module/quote/v2/save.js +30 -0
  302. package/build-module/quote/v2/save.js.map +1 -0
  303. package/build-module/quote/v2/transforms.js +147 -0
  304. package/build-module/quote/v2/transforms.js.map +1 -0
  305. package/build-module/read-more/index.js +1 -1
  306. package/build-module/rss/edit.js +5 -1
  307. package/build-module/rss/edit.js.map +1 -1
  308. package/build-module/site-logo/edit.js +3 -2
  309. package/build-module/site-logo/edit.js.map +1 -1
  310. package/build-module/site-logo/index.js +1 -1
  311. package/build-module/social-links/index.js +1 -0
  312. package/build-module/social-links/index.js.map +1 -1
  313. package/build-module/spacer/controls.native.js +1 -1
  314. package/build-module/spacer/controls.native.js.map +1 -1
  315. package/build-module/template-part/edit/utils/hooks.js +5 -2
  316. package/build-module/template-part/edit/utils/hooks.js.map +1 -1
  317. package/build-style/avatar/editor-rtl.css +4 -0
  318. package/build-style/avatar/editor.css +4 -0
  319. package/build-style/avatar/style-rtl.css +79 -0
  320. package/build-style/avatar/style.css +79 -0
  321. package/build-style/editor-rtl.css +69 -9
  322. package/build-style/editor.css +69 -9
  323. package/build-style/group/editor-rtl.css +26 -0
  324. package/build-style/group/editor.css +26 -0
  325. package/build-style/heading/style-rtl.css +0 -8
  326. package/build-style/heading/style.css +0 -8
  327. package/build-style/list/style-rtl.css +1 -1
  328. package/build-style/list/style.css +1 -1
  329. package/build-style/navigation/style-rtl.css +11 -9
  330. package/build-style/navigation/style.css +11 -9
  331. package/build-style/navigation-link/style-rtl.css +3 -0
  332. package/build-style/navigation-link/style.css +3 -0
  333. package/build-style/paragraph/style-rtl.css +0 -4
  334. package/build-style/paragraph/style.css +0 -4
  335. package/build-style/query/editor-rtl.css +39 -0
  336. package/build-style/query/editor.css +39 -0
  337. package/build-style/quote/style-rtl.css +1 -0
  338. package/build-style/quote/style.css +1 -0
  339. package/build-style/reset-rtl.css +1 -1
  340. package/build-style/reset.css +1 -1
  341. package/build-style/style-rtl.css +20 -22
  342. package/build-style/style.css +20 -22
  343. package/build-style/template-part/editor-rtl.css +0 -9
  344. package/build-style/template-part/editor.css +0 -9
  345. package/package.json +28 -28
  346. package/src/archives/block.json +5 -1
  347. package/src/archives/edit.js +20 -2
  348. package/src/archives/index.php +4 -4
  349. package/src/audio/edit.js +1 -1
  350. package/src/audio/edit.native.js +0 -5
  351. package/src/avatar/edit.js +21 -13
  352. package/src/avatar/editor.scss +6 -0
  353. package/src/avatar/index.php +2 -2
  354. package/src/avatar/style.scss +5 -0
  355. package/src/block/edit.js +21 -11
  356. package/src/column/block.json +1 -0
  357. package/src/comment-author-avatar/block.json +3 -3
  358. package/src/comment-author-name/block.json +7 -3
  359. package/src/comment-author-name/index.php +3 -0
  360. package/src/comment-content/block.json +1 -1
  361. package/src/comment-date/block.json +7 -3
  362. package/src/comment-date/index.php +6 -1
  363. package/src/comment-edit-link/block.json +5 -1
  364. package/src/comment-edit-link/index.php +3 -0
  365. package/src/comment-reply-link/block.json +5 -1
  366. package/src/comment-reply-link/index.php +4 -1
  367. package/src/comment-template/block.json +2 -8
  368. package/src/comment-template/edit.js +17 -22
  369. package/src/comment-template/hooks.js +10 -25
  370. package/src/comment-template/index.php +15 -5
  371. package/src/comments-pagination-next/block.json +2 -9
  372. package/src/comments-pagination-numbers/block.json +2 -8
  373. package/src/comments-pagination-previous/block.json +2 -2
  374. package/src/comments-query-loop/block.json +1 -23
  375. package/src/comments-query-loop/edit/comments-inspector-controls.js +2 -83
  376. package/src/comments-query-loop/edit.js +54 -1
  377. package/src/cover/block.json +5 -0
  378. package/src/cover/edit.js +77 -29
  379. package/src/cover/index.php +85 -0
  380. package/src/cover/save.js +18 -14
  381. package/src/cover/transforms.js +51 -28
  382. package/src/gallery/block.json +1 -0
  383. package/src/gallery/gap-styles.js +9 -4
  384. package/src/gallery/index.php +7 -6
  385. package/src/group/block.json +2 -4
  386. package/src/group/edit.js +4 -1
  387. package/src/group/editor.scss +31 -0
  388. package/src/group/variations.js +21 -4
  389. package/src/heading/edit.js +1 -1
  390. package/src/heading/style.scss +0 -3
  391. package/src/html/edit.js +22 -30
  392. package/src/image/edit.native.js +7 -11
  393. package/src/index.js +19 -16
  394. package/src/list/deprecated.js +2 -2
  395. package/src/list/index.js +7 -3
  396. package/src/list/style.scss +1 -2
  397. package/src/list/test/migrate.js +159 -0
  398. package/src/list/v2/deprecated.js +89 -0
  399. package/src/list/v2/edit.js +110 -1
  400. package/src/list/v2/index.js +2 -0
  401. package/src/list/v2/migrate.js +87 -0
  402. package/src/list-item/edit.js +69 -23
  403. package/src/list-item/hooks/index.js +3 -0
  404. package/src/list-item/hooks/use-enter.js +94 -0
  405. package/src/list-item/hooks/use-indent-list-item.js +89 -0
  406. package/src/list-item/hooks/use-outdent-list-item.js +95 -0
  407. package/src/list-item/index.js +1 -1
  408. package/src/list-item/utils.js +14 -0
  409. package/src/media-text/media-container.native.js +1 -14
  410. package/src/navigation/block.json +9 -1
  411. package/src/navigation/edit/index.js +50 -14
  412. package/src/navigation/edit/navigation-menu-delete-control.js +1 -1
  413. package/src/navigation/edit/unsaved-inner-blocks.js +57 -8
  414. package/src/navigation/index.php +6 -1
  415. package/src/navigation/style.scss +15 -13
  416. package/src/navigation/use-navigation-menu.js +4 -0
  417. package/src/navigation-link/block.json +1 -0
  418. package/src/navigation-link/edit.js +43 -35
  419. package/src/navigation-link/index.php +8 -0
  420. package/src/navigation-link/style.scss +6 -0
  421. package/src/navigation-submenu/block.json +1 -0
  422. package/src/navigation-submenu/edit.js +7 -9
  423. package/src/paragraph/style.scss +0 -5
  424. package/src/post-author/index.php +0 -1
  425. package/src/post-comment/edit.js +2 -2
  426. package/src/post-comments/block.json +4 -3
  427. package/src/post-comments-form/edit.js +6 -3
  428. package/src/post-comments-form/index.php +12 -4
  429. package/src/post-featured-image/block.json +1 -1
  430. package/src/post-featured-image/edit.js +24 -12
  431. package/src/post-template/edit.js +7 -1
  432. package/src/post-terms/edit.js +4 -1
  433. package/src/post-terms/variations.js +3 -3
  434. package/src/query/edit/index.js +125 -26
  435. package/src/query/edit/query-placeholder.js +3 -13
  436. package/src/query/edit/query-toolbar.js +6 -0
  437. package/src/query/editor.scss +38 -0
  438. package/src/query-pagination/edit.js +1 -1
  439. package/src/query-pagination/index.php +9 -2
  440. package/src/query-pagination-numbers/block.json +19 -1
  441. package/src/quote/block.json +8 -0
  442. package/src/quote/index.js +10 -1
  443. package/src/quote/style.scss +1 -0
  444. package/src/quote/v2/deprecated.js +107 -0
  445. package/src/quote/v2/edit.js +136 -0
  446. package/src/quote/v2/index.js +36 -0
  447. package/src/quote/v2/save.js +26 -0
  448. package/src/quote/v2/test/migrate.js +92 -0
  449. package/src/quote/v2/transforms.js +155 -0
  450. package/src/read-more/block.json +1 -1
  451. package/src/reset.scss +1 -1
  452. package/src/rss/edit.js +3 -1
  453. package/src/rss/index.php +14 -1
  454. package/src/site-logo/block.json +1 -1
  455. package/src/site-logo/edit.js +2 -1
  456. package/src/site-logo/index.php +0 -4
  457. package/src/social-link/index.php +1 -2
  458. package/src/social-links/block.json +1 -0
  459. package/src/spacer/controls.native.js +1 -1
  460. package/src/spacer/test/__snapshots__/index.native.js.snap +31 -0
  461. package/src/spacer/test/index.native.js +180 -0
  462. package/src/style.scss +1 -0
  463. package/src/template-part/edit/utils/hooks.js +6 -1
  464. package/src/template-part/editor.scss +0 -10
  465. package/build/navigation/edit/use-list-view-modal.js +0 -73
  466. package/build/navigation/edit/use-list-view-modal.js.map +0 -1
  467. package/build-module/navigation/edit/use-list-view-modal.js +0 -63
  468. package/build-module/navigation/edit/use-list-view-modal.js.map +0 -1
  469. package/src/navigation/edit/use-list-view-modal.js +0 -72
@@ -10,9 +10,9 @@ const metadata = {
10
10
  $schema: "https://schemas.wp.org/trunk/block.json",
11
11
  apiVersion: 2,
12
12
  name: "core/post-comments",
13
- title: "Post Comments",
13
+ title: "Post Comments (deprecated)",
14
14
  category: "theme",
15
- description: "Display a post's comments.",
15
+ description: "This block is deprecated. Please use the Comments Query Loop block instead.",
16
16
  textdomain: "default",
17
17
  attributes: {
18
18
  textAlign: {
@@ -41,7 +41,8 @@ const metadata = {
41
41
  background: true,
42
42
  text: true
43
43
  }
44
- }
44
+ },
45
+ inserter: false
45
46
  },
46
47
  style: ["wp-block-post-comments", "wp-block-buttons", "wp-block-button"]
47
48
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-comments/index.js"],"names":["postComments","icon","edit","name","metadata","settings"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,YAAY,IAAIC,IAAzB,QAAqC,kBAArC;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AACA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBJ,EAAAA,IADuB;AAEvBC,EAAAA;AAFuB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { postComments as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-comments/index.js"],"names":["postComments","icon","edit","name","metadata","settings"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,YAAY,IAAIC,IAAzB,QAAqC,kBAArC;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AACA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBJ,EAAAA,IADuB;AAEvBC,EAAAA;AAFuB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { postComments as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n"]}
@@ -30,6 +30,7 @@ export default function PostCommentsFormEdit(_ref) {
30
30
  [`has-text-align-${textAlign}`]: textAlign
31
31
  })
32
32
  });
33
+ const isInSiteEditor = postType === undefined || postId === undefined;
33
34
  return createElement(Fragment, null, createElement(BlockControls, {
34
35
  group: "block"
35
36
  }, createElement(AlignmentControl, {
@@ -39,8 +40,8 @@ export default function PostCommentsFormEdit(_ref) {
39
40
  textAlign: nextAlign
40
41
  });
41
42
  }
42
- })), createElement("div", blockProps, !commentStatus && createElement(Warning, null, __('Post Comments Form block: comments are not enabled for this post type.')), 'open' !== commentStatus && createElement(Warning, null, sprintf(
43
+ })), createElement("div", blockProps, !commentStatus && !isInSiteEditor && createElement(Warning, null, __('Post Comments Form block: comments are not enabled for this post type.')), 'open' !== commentStatus && !isInSiteEditor && createElement(Warning, null, sprintf(
43
44
  /* translators: 1: Post type (i.e. "post", "page") */
44
- __('Post Comments Form block: comments to this %s are not allowed.'), postType)), 'open' === commentStatus && __('Post Comments Form')));
45
+ __('Post Comments Form block: comments to this %s are not allowed.'), postType)), ('open' === commentStatus || isInSiteEditor) && __('Post Comments Form')));
45
46
  }
46
47
  //# sourceMappingURL=edit.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-comments-form/edit.js"],"names":["classnames","AlignmentControl","BlockControls","Warning","useBlockProps","useEntityProp","__","sprintf","PostCommentsFormEdit","attributes","context","setAttributes","textAlign","postId","postType","commentStatus","blockProps","className","nextAlign"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SACCC,gBADD,EAECC,aAFD,EAGCC,OAHD,EAICC,aAJD,QAKO,yBALP;AAMA,SAASC,aAAT,QAA8B,sBAA9B;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AAEA,eAAe,SAASC,oBAAT,OAIX;AAAA,MAJ0C;AAC7CC,IAAAA,UAD6C;AAE7CC,IAAAA,OAF6C;AAG7CC,IAAAA;AAH6C,GAI1C;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAgBH,UAAtB;AACA,QAAM;AAAEI,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAuBJ,OAA7B;AACA,QAAM,CAAEK,aAAF,IAAoBV,aAAa,CACtC,UADsC,EAEtCS,QAFsC,EAGtC,gBAHsC,EAItCD,MAJsC,CAAvC;AAMA,QAAMG,UAAU,GAAGZ,aAAa,CAAE;AACjCa,IAAAA,SAAS,EAAEjB,UAAU,CAAE;AACtB,OAAG,kBAAkBY,SAAW,EAAhC,GAAqCA;AADf,KAAF;AADY,GAAF,CAAhC;AAMA,SACC,8BACC,cAAC,aAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,cAAC,gBAAD;AACC,IAAA,KAAK,EAAGA,SADT;AAEC,IAAA,QAAQ,EAAKM,SAAF,IAAiB;AAC3BP,MAAAA,aAAa,CAAE;AAAEC,QAAAA,SAAS,EAAEM;AAAb,OAAF,CAAb;AACA;AAJF,IADD,CADD,EASC,qBAAUF,UAAV,EACG,CAAED,aAAF,IACD,cAAC,OAAD,QACGT,EAAE,CACH,wEADG,CADL,CAFF,EASG,WAAWS,aAAX,IACD,cAAC,OAAD,QACGR,OAAO;AACR;AACAD,EAAAA,EAAE,CACD,gEADC,CAFM,EAKRQ,QALQ,CADV,CAVF,EAqBG,WAAWC,aAAX,IAA4BT,EAAE,CAAE,oBAAF,CArBjC,CATD,CADD;AAmCA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tWarning,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\n\nexport default function PostCommentsFormEdit( {\n\tattributes,\n\tcontext,\n\tsetAttributes,\n} ) {\n\tconst { textAlign } = attributes;\n\tconst { postId, postType } = context;\n\tconst [ commentStatus ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'comment_status',\n\t\tpostId\n\t);\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ ! commentStatus && (\n\t\t\t\t\t<Warning>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Post Comments Form block: comments are not enabled for this post type.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Warning>\n\t\t\t\t) }\n\n\t\t\t\t{ 'open' !== commentStatus && (\n\t\t\t\t\t<Warning>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: 1: Post type (i.e. \"post\", \"page\") */\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'Post Comments Form block: comments to this %s are not allowed.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tpostType\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Warning>\n\t\t\t\t) }\n\n\t\t\t\t{ 'open' === commentStatus && __( 'Post Comments Form' ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-comments-form/edit.js"],"names":["classnames","AlignmentControl","BlockControls","Warning","useBlockProps","useEntityProp","__","sprintf","PostCommentsFormEdit","attributes","context","setAttributes","textAlign","postId","postType","commentStatus","blockProps","className","isInSiteEditor","undefined","nextAlign"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SACCC,gBADD,EAECC,aAFD,EAGCC,OAHD,EAICC,aAJD,QAKO,yBALP;AAMA,SAASC,aAAT,QAA8B,sBAA9B;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AAEA,eAAe,SAASC,oBAAT,OAIX;AAAA,MAJ0C;AAC7CC,IAAAA,UAD6C;AAE7CC,IAAAA,OAF6C;AAG7CC,IAAAA;AAH6C,GAI1C;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAgBH,UAAtB;AACA,QAAM;AAAEI,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAuBJ,OAA7B;AACA,QAAM,CAAEK,aAAF,IAAoBV,aAAa,CACtC,UADsC,EAEtCS,QAFsC,EAGtC,gBAHsC,EAItCD,MAJsC,CAAvC;AAMA,QAAMG,UAAU,GAAGZ,aAAa,CAAE;AACjCa,IAAAA,SAAS,EAAEjB,UAAU,CAAE;AACtB,OAAG,kBAAkBY,SAAW,EAAhC,GAAqCA;AADf,KAAF;AADY,GAAF,CAAhC;AAMA,QAAMM,cAAc,GAAGJ,QAAQ,KAAKK,SAAb,IAA0BN,MAAM,KAAKM,SAA5D;AAEA,SACC,8BACC,cAAC,aAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,cAAC,gBAAD;AACC,IAAA,KAAK,EAAGP,SADT;AAEC,IAAA,QAAQ,EAAKQ,SAAF,IAAiB;AAC3BT,MAAAA,aAAa,CAAE;AAAEC,QAAAA,SAAS,EAAEQ;AAAb,OAAF,CAAb;AACA;AAJF,IADD,CADD,EASC,qBAAUJ,UAAV,EACG,CAAED,aAAF,IAAmB,CAAEG,cAArB,IACD,cAAC,OAAD,QACGZ,EAAE,CACH,wEADG,CADL,CAFF,EASG,WAAWS,aAAX,IAA4B,CAAEG,cAA9B,IACD,cAAC,OAAD,QACGX,OAAO;AACR;AACAD,EAAAA,EAAE,CACD,gEADC,CAFM,EAKRQ,QALQ,CADV,CAVF,EAqBG,CAAE,WAAWC,aAAX,IAA4BG,cAA9B,KACDZ,EAAE,CAAE,oBAAF,CAtBJ,CATD,CADD;AAoCA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tWarning,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\n\nexport default function PostCommentsFormEdit( {\n\tattributes,\n\tcontext,\n\tsetAttributes,\n} ) {\n\tconst { textAlign } = attributes;\n\tconst { postId, postType } = context;\n\tconst [ commentStatus ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'comment_status',\n\t\tpostId\n\t);\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst isInSiteEditor = postType === undefined || postId === undefined;\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ ! commentStatus && ! isInSiteEditor && (\n\t\t\t\t\t<Warning>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Post Comments Form block: comments are not enabled for this post type.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Warning>\n\t\t\t\t) }\n\n\t\t\t\t{ 'open' !== commentStatus && ! isInSiteEditor && (\n\t\t\t\t\t<Warning>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: 1: Post type (i.e. \"post\", \"page\") */\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'Post Comments Form block: comments to this %s are not allowed.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tpostType\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Warning>\n\t\t\t\t) }\n\n\t\t\t\t{ ( 'open' === commentStatus || isInSiteEditor ) &&\n\t\t\t\t\t__( 'Post Comments Form' ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
@@ -44,7 +44,7 @@ function PostFeaturedImageDisplay(_ref) {
44
44
  setAttributes,
45
45
  context: {
46
46
  postId,
47
- postType,
47
+ postType: postTypeSlug,
48
48
  queryId
49
49
  }
50
50
  } = _ref;
@@ -56,10 +56,22 @@ function PostFeaturedImageDisplay(_ref) {
56
56
  scale,
57
57
  sizeSlug
58
58
  } = attributes;
59
- const [featuredImage, setFeaturedImage] = useEntityProp('postType', postType, 'featured_media', postId);
60
- const media = useSelect(select => featuredImage && select(coreStore).getMedia(featuredImage, {
61
- context: 'view'
62
- }), [featuredImage]);
59
+ const [featuredImage, setFeaturedImage] = useEntityProp('postType', postTypeSlug, 'featured_media', postId);
60
+ const {
61
+ media,
62
+ postType
63
+ } = useSelect(select => {
64
+ const {
65
+ getMedia,
66
+ getPostType
67
+ } = select(coreStore);
68
+ return {
69
+ media: featuredImage && getMedia(featuredImage, {
70
+ context: 'view'
71
+ }),
72
+ postType: postTypeSlug && getPostType(postTypeSlug)
73
+ };
74
+ }, [featuredImage, postTypeSlug]);
63
75
  const mediaUrl = getMediaSourceUrlBySizeSlug(media, sizeSlug);
64
76
  const imageSizes = useSelect(select => select(blockEditorStore).getSettings().imageSizes, []);
65
77
  const imageSizeOptions = imageSizes.filter(_ref2 => {
@@ -116,8 +128,8 @@ function PostFeaturedImageDisplay(_ref) {
116
128
  }), createElement(InspectorControls, null, createElement(PanelBody, {
117
129
  title: __('Link settings')
118
130
  }, createElement(ToggleControl, {
119
- label: sprintf( // translators: %s: Name of the post type e.g: "post".
120
- __('Link to %s'), postType),
131
+ label: postType !== null && postType !== void 0 && postType.labels.singular_name ? sprintf( // translators: %s: Name of the post type e.g: "post".
132
+ __('Link to %s'), postType.labels.singular_name.toLowerCase()) : __('Link to post'),
121
133
  onChange: () => setAttributes({
122
134
  isLink: !isLink
123
135
  }),
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-featured-image/edit.js"],"names":["useEntityProp","store","coreStore","useSelect","useDispatch","MenuItem","ToggleControl","PanelBody","Placeholder","Button","InspectorControls","BlockControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","blockEditorStore","__","sprintf","upload","SVG","Path","noticesStore","DimensionControls","placeholderIllustration","ALLOWED_MEDIA_TYPES","placeholderChip","getMediaSourceUrlBySizeSlug","media","slug","media_details","sizes","source_url","PostFeaturedImageDisplay","clientId","attributes","setAttributes","context","postId","postType","queryId","isDescendentOfQueryLoop","Number","isFinite","isLink","height","width","scale","sizeSlug","featuredImage","setFeaturedImage","select","getMedia","mediaUrl","imageSizes","getSettings","imageSizeOptions","filter","map","name","value","label","blockProps","style","placeholder","content","onSelectImage","id","createErrorNotice","onUploadError","message","type","controls","image","open","alt_text","objectFit","PostFeaturedImageEdit","props"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tMenuItem,\n\tToggleControl,\n\tPanelBody,\n\tPlaceholder,\n\tButton,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { upload } from '@wordpress/icons';\nimport { SVG, Path } from '@wordpress/primitives';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport DimensionControls from './dimension-controls';\n\nconst placeholderIllustration = (\n\t<SVG\n\t\tclassName=\"components-placeholder__illustration\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox=\"0 0 60 60\"\n\t\tpreserveAspectRatio=\"none\"\n\t>\n\t\t<Path vectorEffect=\"non-scaling-stroke\" d=\"M60 60 0 0\" />\n\t</SVG>\n);\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst placeholderChip = (\n\t<div className=\"wp-block-post-featured-image__placeholder\">\n\t\t{ placeholderIllustration }\n\t</div>\n);\n\nfunction getMediaSourceUrlBySizeSlug( media, slug ) {\n\treturn (\n\t\tmedia?.media_details?.sizes?.[ slug ]?.source_url || media?.source_url\n\t);\n}\n\nfunction PostFeaturedImageDisplay( {\n\tclientId,\n\tattributes,\n\tsetAttributes,\n\tcontext: { postId, postType, queryId },\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst { isLink, height, width, scale, sizeSlug } = attributes;\n\tconst [ featuredImage, setFeaturedImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\tconst media = useSelect(\n\t\t( select ) =>\n\t\t\tfeaturedImage &&\n\t\t\tselect( coreStore ).getMedia( featuredImage, { context: 'view' } ),\n\t\t[ featuredImage ]\n\t);\n\tconst mediaUrl = getMediaSourceUrlBySizeSlug( media, sizeSlug );\n\n\tconst imageSizes = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().imageSizes,\n\t\t[]\n\t);\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => {\n\t\t\treturn media?.media_details?.sizes?.[ slug ]?.source_url;\n\t\t} )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\n\tconst blockProps = useBlockProps( {\n\t\tstyle: { width, height },\n\t} );\n\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder className=\"block-editor-media-placeholder\">\n\t\t\t\t{ placeholderIllustration }\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst onSelectImage = ( value ) => {\n\t\tif ( value?.id ) {\n\t\t\tsetFeaturedImage( value.id );\n\t\t}\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message[ 2 ], { type: 'snackbar' } );\n\t};\n\n\tconst controls = (\n\t\t<>\n\t\t\t<DimensionControls\n\t\t\t\tclientId={ clientId }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t/>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\tpostType\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\tlet image;\n\tif ( ! featuredImage && isDescendentOfQueryLoop ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<div { ...blockProps }>{ placeholderChip }</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst label = __( 'Add a featured image' );\n\n\tif ( ! featuredImage ) {\n\t\timage = (\n\t\t\t<MediaPlaceholder\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\ttooltipPosition=\"top center\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t} else {\n\t\t// We have a Featured image so show a Placeholder if is loading.\n\t\timage = ! media ? (\n\t\t\tplaceholderChip\n\t\t) : (\n\t\t\t<img\n\t\t\t\tsrc={ mediaUrl }\n\t\t\t\talt={\n\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The image's alt text.\n\t\t\t\t\t\t\t\t__( 'Featured image: %s' ),\n\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Featured image' )\n\t\t\t\t}\n\t\t\t\tstyle={ { height, objectFit: height && scale } }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ controls }\n\t\t\t{ !! media && ! isDescendentOfQueryLoop && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ featuredImage }\n\t\t\t\t\t\tmediaURL={ mediaUrl }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t>\n\t\t\t\t\t\t<MenuItem onClick={ () => setFeaturedImage( 0 ) }>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MediaReplaceFlow>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<figure { ...blockProps }>{ image }</figure>\n\t\t</>\n\t);\n}\n\nexport default function PostFeaturedImageEdit( props ) {\n\tconst blockProps = useBlockProps();\n\tif ( ! props.context?.postId ) {\n\t\treturn <div { ...blockProps }>{ placeholderChip }</div>;\n\t}\n\treturn <PostFeaturedImageDisplay { ...props } />;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-featured-image/edit.js"],"names":["useEntityProp","store","coreStore","useSelect","useDispatch","MenuItem","ToggleControl","PanelBody","Placeholder","Button","InspectorControls","BlockControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","blockEditorStore","__","sprintf","upload","SVG","Path","noticesStore","DimensionControls","placeholderIllustration","ALLOWED_MEDIA_TYPES","placeholderChip","getMediaSourceUrlBySizeSlug","media","slug","media_details","sizes","source_url","PostFeaturedImageDisplay","clientId","attributes","setAttributes","context","postId","postType","postTypeSlug","queryId","isDescendentOfQueryLoop","Number","isFinite","isLink","height","width","scale","sizeSlug","featuredImage","setFeaturedImage","select","getMedia","getPostType","mediaUrl","imageSizes","getSettings","imageSizeOptions","filter","map","name","value","label","blockProps","style","placeholder","content","onSelectImage","id","createErrorNotice","onUploadError","message","type","controls","labels","singular_name","toLowerCase","image","open","alt_text","objectFit","PostFeaturedImageEdit","props"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tMenuItem,\n\tToggleControl,\n\tPanelBody,\n\tPlaceholder,\n\tButton,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { upload } from '@wordpress/icons';\nimport { SVG, Path } from '@wordpress/primitives';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport DimensionControls from './dimension-controls';\n\nconst placeholderIllustration = (\n\t<SVG\n\t\tclassName=\"components-placeholder__illustration\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox=\"0 0 60 60\"\n\t\tpreserveAspectRatio=\"none\"\n\t>\n\t\t<Path vectorEffect=\"non-scaling-stroke\" d=\"M60 60 0 0\" />\n\t</SVG>\n);\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst placeholderChip = (\n\t<div className=\"wp-block-post-featured-image__placeholder\">\n\t\t{ placeholderIllustration }\n\t</div>\n);\n\nfunction getMediaSourceUrlBySizeSlug( media, slug ) {\n\treturn (\n\t\tmedia?.media_details?.sizes?.[ slug ]?.source_url || media?.source_url\n\t);\n}\n\nfunction PostFeaturedImageDisplay( {\n\tclientId,\n\tattributes,\n\tsetAttributes,\n\tcontext: { postId, postType: postTypeSlug, queryId },\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst { isLink, height, width, scale, sizeSlug } = attributes;\n\tconst [ featuredImage, setFeaturedImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\tconst { media, postType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getMedia, getPostType } = select( coreStore );\n\t\t\treturn {\n\t\t\t\tmedia:\n\t\t\t\t\tfeaturedImage &&\n\t\t\t\t\tgetMedia( featuredImage, {\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t} ),\n\t\t\t\tpostType: postTypeSlug && getPostType( postTypeSlug ),\n\t\t\t};\n\t\t},\n\t\t[ featuredImage, postTypeSlug ]\n\t);\n\tconst mediaUrl = getMediaSourceUrlBySizeSlug( media, sizeSlug );\n\n\tconst imageSizes = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().imageSizes,\n\t\t[]\n\t);\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => {\n\t\t\treturn media?.media_details?.sizes?.[ slug ]?.source_url;\n\t\t} )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\n\tconst blockProps = useBlockProps( {\n\t\tstyle: { width, height },\n\t} );\n\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder className=\"block-editor-media-placeholder\">\n\t\t\t\t{ placeholderIllustration }\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst onSelectImage = ( value ) => {\n\t\tif ( value?.id ) {\n\t\t\tsetFeaturedImage( value.id );\n\t\t}\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message[ 2 ], { type: 'snackbar' } );\n\t};\n\n\tconst controls = (\n\t\t<>\n\t\t\t<DimensionControls\n\t\t\t\tclientId={ clientId }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t/>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\tlet image;\n\tif ( ! featuredImage && isDescendentOfQueryLoop ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<div { ...blockProps }>{ placeholderChip }</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst label = __( 'Add a featured image' );\n\n\tif ( ! featuredImage ) {\n\t\timage = (\n\t\t\t<MediaPlaceholder\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\ttooltipPosition=\"top center\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t} else {\n\t\t// We have a Featured image so show a Placeholder if is loading.\n\t\timage = ! media ? (\n\t\t\tplaceholderChip\n\t\t) : (\n\t\t\t<img\n\t\t\t\tsrc={ mediaUrl }\n\t\t\t\talt={\n\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The image's alt text.\n\t\t\t\t\t\t\t\t__( 'Featured image: %s' ),\n\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Featured image' )\n\t\t\t\t}\n\t\t\t\tstyle={ { height, objectFit: height && scale } }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ controls }\n\t\t\t{ !! media && ! isDescendentOfQueryLoop && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ featuredImage }\n\t\t\t\t\t\tmediaURL={ mediaUrl }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t>\n\t\t\t\t\t\t<MenuItem onClick={ () => setFeaturedImage( 0 ) }>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MediaReplaceFlow>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<figure { ...blockProps }>{ image }</figure>\n\t\t</>\n\t);\n}\n\nexport default function PostFeaturedImageEdit( props ) {\n\tconst blockProps = useBlockProps();\n\tif ( ! props.context?.postId ) {\n\t\treturn <div { ...blockProps }>{ placeholderChip }</div>;\n\t}\n\treturn <PostFeaturedImageDisplay { ...props } />;\n}\n"]}
@@ -37,7 +37,7 @@ const metadata = {
37
37
  supports: {
38
38
  align: ["left", "right", "center", "wide", "full"],
39
39
  color: {
40
- __experimentalDuotone: "img",
40
+ __experimentalDuotone: "img, .wp-block-post-featured-image__placeholder, .components-placeholder__illustration, .components-placeholder::before",
41
41
  text: false,
42
42
  background: false
43
43
  },
@@ -18,7 +18,9 @@ import { store as coreStore } from '@wordpress/core-data';
18
18
  const TEMPLATE = [['core/post-title'], ['core/post-date'], ['core/post-excerpt']];
19
19
 
20
20
  function PostTemplateInnerBlocks() {
21
- const innerBlocksProps = useInnerBlocksProps({}, {
21
+ const innerBlocksProps = useInnerBlocksProps({
22
+ className: 'wp-block-post'
23
+ }, {
22
24
  template: TEMPLATE
23
25
  });
24
26
  return createElement("li", innerBlocksProps);
@@ -32,7 +34,10 @@ function PostTemplateBlockPreview(_ref) {
32
34
  setActiveBlockContextId
33
35
  } = _ref;
34
36
  const blockPreviewProps = useBlockPreview({
35
- blocks
37
+ blocks,
38
+ props: {
39
+ className: 'wp-block-post'
40
+ }
36
41
  });
37
42
 
38
43
  const handleOnClick = () => {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-template/edit.js"],"names":["classnames","memo","useMemo","useState","useSelect","__","BlockContextProvider","__experimentalUseBlockPreview","useBlockPreview","useBlockProps","useInnerBlocksProps","store","blockEditorStore","Spinner","coreStore","TEMPLATE","PostTemplateInnerBlocks","innerBlocksProps","template","PostTemplateBlockPreview","blocks","blockContextId","isHidden","setActiveBlockContextId","blockPreviewProps","handleOnClick","style","display","undefined","MemoizedPostTemplateBlockPreview","PostTemplateEdit","clientId","context","query","perPage","offset","postType","order","orderBy","author","search","exclude","sticky","inherit","taxQuery","queryContext","page","templateSlug","displayLayout","type","layoutType","columns","activeBlockContextId","posts","select","getEntityRecords","getTaxonomies","getBlocks","taxonomies","per_page","orderby","builtTaxQuery","Object","entries","reduce","accumulator","taxonomySlug","terms","taxonomy","find","slug","rest_base","keys","length","assign","startsWith","replace","blockContexts","map","post","postId","id","hasLayoutFlex","blockProps","className","blockContext"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useMemo, useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\t__experimentalUseBlockPreview as useBlockPreview,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\nconst TEMPLATE = [\n\t[ 'core/post-title' ],\n\t[ 'core/post-date' ],\n\t[ 'core/post-excerpt' ],\n];\n\nfunction PostTemplateInnerBlocks() {\n\tconst innerBlocksProps = useInnerBlocksProps( {}, { template: TEMPLATE } );\n\treturn <li { ...innerBlocksProps } />;\n}\n\nfunction PostTemplateBlockPreview( {\n\tblocks,\n\tblockContextId,\n\tisHidden,\n\tsetActiveBlockContextId,\n} ) {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveBlockContextId( blockContextId );\n\t};\n\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<li\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\trole=\"button\"\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t\tstyle={ style }\n\t\t/>\n\t);\n}\n\nconst MemoizedPostTemplateBlockPreview = memo( PostTemplateBlockPreview );\n\nexport default function PostTemplateEdit( {\n\tclientId,\n\tcontext: {\n\t\tquery: {\n\t\t\tperPage,\n\t\t\toffset,\n\t\t\tpostType,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tauthor,\n\t\t\tsearch,\n\t\t\texclude,\n\t\t\tsticky,\n\t\t\tinherit,\n\t\t\ttaxQuery,\n\t\t} = {},\n\t\tqueryContext = [ { page: 1 } ],\n\t\ttemplateSlug,\n\t\tdisplayLayout: { type: layoutType = 'flex', columns = 1 } = {},\n\t},\n} ) {\n\tconst [ { page } ] = queryContext;\n\tconst [ activeBlockContextId, setActiveBlockContextId ] = useState();\n\n\tconst { posts, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getTaxonomies } = select( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\tconst taxonomies = getTaxonomies( {\n\t\t\t\ttype: postType,\n\t\t\t\tper_page: -1,\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\t\tconst query = {\n\t\t\t\toffset: perPage ? perPage * ( page - 1 ) + offset : 0,\n\t\t\t\torder,\n\t\t\t\torderby: orderBy,\n\t\t\t};\n\t\t\tif ( taxQuery ) {\n\t\t\t\t// We have to build the tax query for the REST API and use as\n\t\t\t\t// keys the taxonomies `rest_base` with the `term ids` as values.\n\t\t\t\tconst builtTaxQuery = Object.entries( taxQuery ).reduce(\n\t\t\t\t\t( accumulator, [ taxonomySlug, terms ] ) => {\n\t\t\t\t\t\tconst taxonomy = taxonomies?.find(\n\t\t\t\t\t\t\t( { slug } ) => slug === taxonomySlug\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( taxonomy?.rest_base ) {\n\t\t\t\t\t\t\taccumulator[ taxonomy?.rest_base ] = terms;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t},\n\t\t\t\t\t{}\n\t\t\t\t);\n\t\t\t\tif ( !! Object.keys( builtTaxQuery ).length ) {\n\t\t\t\t\tObject.assign( query, builtTaxQuery );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( perPage ) {\n\t\t\t\tquery.per_page = perPage;\n\t\t\t}\n\t\t\tif ( author ) {\n\t\t\t\tquery.author = author;\n\t\t\t}\n\t\t\tif ( search ) {\n\t\t\t\tquery.search = search;\n\t\t\t}\n\t\t\tif ( exclude?.length ) {\n\t\t\t\tquery.exclude = exclude;\n\t\t\t}\n\t\t\t// If sticky is not set, it will return all posts in the results.\n\t\t\t// If sticky is set to `only`, it will limit the results to sticky posts only.\n\t\t\t// If it is anything else, it will exclude sticky posts from results. For the record the value stored is `exclude`.\n\t\t\tif ( sticky ) {\n\t\t\t\tquery.sticky = sticky === 'only';\n\t\t\t}\n\t\t\t// If `inherit` is truthy, adjust conditionally the query to create a better preview.\n\t\t\tif ( inherit ) {\n\t\t\t\t// Change the post-type if needed.\n\t\t\t\tif ( templateSlug?.startsWith( 'archive-' ) ) {\n\t\t\t\t\tquery.postType = templateSlug.replace( 'archive-', '' );\n\t\t\t\t\tpostType = query.postType;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tposts: getEntityRecords( 'postType', postType, query ),\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tperPage,\n\t\t\tpage,\n\t\t\toffset,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tclientId,\n\t\t\tauthor,\n\t\t\tsearch,\n\t\t\tpostType,\n\t\t\texclude,\n\t\t\tsticky,\n\t\t\tinherit,\n\t\t\ttemplateSlug,\n\t\t\ttaxQuery,\n\t\t]\n\t);\n\tconst blockContexts = useMemo(\n\t\t() =>\n\t\t\tposts?.map( ( post ) => ( {\n\t\t\t\tpostType: post.type,\n\t\t\t\tpostId: post.id,\n\t\t\t} ) ),\n\t\t[ posts ]\n\t);\n\tconst hasLayoutFlex = layoutType === 'flex' && columns > 1;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t'is-flex-container': hasLayoutFlex,\n\t\t\t[ `columns-${ columns }` ]: hasLayoutFlex,\n\t\t} ),\n\t} );\n\n\tif ( ! posts ) {\n\t\treturn (\n\t\t\t<p { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</p>\n\t\t);\n\t}\n\n\tif ( ! posts.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No results found.' ) }</p>;\n\t}\n\n\t// To avoid flicker when switching active block contexts, a preview is rendered\n\t// for each block context, but the preview for the active block context is hidden.\n\t// This ensures that when it is displayed again, the cached rendering of the\n\t// block preview is used, instead of having to re-render the preview from scratch.\n\treturn (\n\t\t<ul { ...blockProps }>\n\t\t\t{ blockContexts &&\n\t\t\t\tblockContexts.map( ( blockContext ) => (\n\t\t\t\t\t<BlockContextProvider\n\t\t\t\t\t\tkey={ blockContext.postId }\n\t\t\t\t\t\tvalue={ blockContext }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ blockContext.postId ===\n\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\tblockContexts[ 0 ]?.postId ) ? (\n\t\t\t\t\t\t\t<PostTemplateInnerBlocks />\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t<MemoizedPostTemplateBlockPreview\n\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\tblockContextId={ blockContext.postId }\n\t\t\t\t\t\t\tsetActiveBlockContextId={ setActiveBlockContextId }\n\t\t\t\t\t\t\tisHidden={\n\t\t\t\t\t\t\t\tblockContext.postId ===\n\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.postId )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t) ) }\n\t\t</ul>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-template/edit.js"],"names":["classnames","memo","useMemo","useState","useSelect","__","BlockContextProvider","__experimentalUseBlockPreview","useBlockPreview","useBlockProps","useInnerBlocksProps","store","blockEditorStore","Spinner","coreStore","TEMPLATE","PostTemplateInnerBlocks","innerBlocksProps","className","template","PostTemplateBlockPreview","blocks","blockContextId","isHidden","setActiveBlockContextId","blockPreviewProps","props","handleOnClick","style","display","undefined","MemoizedPostTemplateBlockPreview","PostTemplateEdit","clientId","context","query","perPage","offset","postType","order","orderBy","author","search","exclude","sticky","inherit","taxQuery","queryContext","page","templateSlug","displayLayout","type","layoutType","columns","activeBlockContextId","posts","select","getEntityRecords","getTaxonomies","getBlocks","taxonomies","per_page","orderby","builtTaxQuery","Object","entries","reduce","accumulator","taxonomySlug","terms","taxonomy","find","slug","rest_base","keys","length","assign","startsWith","replace","blockContexts","map","post","postId","id","hasLayoutFlex","blockProps","blockContext"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useMemo, useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\t__experimentalUseBlockPreview as useBlockPreview,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\nconst TEMPLATE = [\n\t[ 'core/post-title' ],\n\t[ 'core/post-date' ],\n\t[ 'core/post-excerpt' ],\n];\n\nfunction PostTemplateInnerBlocks() {\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: 'wp-block-post' },\n\t\t{ template: TEMPLATE }\n\t);\n\treturn <li { ...innerBlocksProps } />;\n}\n\nfunction PostTemplateBlockPreview( {\n\tblocks,\n\tblockContextId,\n\tisHidden,\n\tsetActiveBlockContextId,\n} ) {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t\tprops: {\n\t\t\tclassName: 'wp-block-post',\n\t\t},\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveBlockContextId( blockContextId );\n\t};\n\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<li\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\trole=\"button\"\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t\tstyle={ style }\n\t\t/>\n\t);\n}\n\nconst MemoizedPostTemplateBlockPreview = memo( PostTemplateBlockPreview );\n\nexport default function PostTemplateEdit( {\n\tclientId,\n\tcontext: {\n\t\tquery: {\n\t\t\tperPage,\n\t\t\toffset,\n\t\t\tpostType,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tauthor,\n\t\t\tsearch,\n\t\t\texclude,\n\t\t\tsticky,\n\t\t\tinherit,\n\t\t\ttaxQuery,\n\t\t} = {},\n\t\tqueryContext = [ { page: 1 } ],\n\t\ttemplateSlug,\n\t\tdisplayLayout: { type: layoutType = 'flex', columns = 1 } = {},\n\t},\n} ) {\n\tconst [ { page } ] = queryContext;\n\tconst [ activeBlockContextId, setActiveBlockContextId ] = useState();\n\n\tconst { posts, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getTaxonomies } = select( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\tconst taxonomies = getTaxonomies( {\n\t\t\t\ttype: postType,\n\t\t\t\tper_page: -1,\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\t\tconst query = {\n\t\t\t\toffset: perPage ? perPage * ( page - 1 ) + offset : 0,\n\t\t\t\torder,\n\t\t\t\torderby: orderBy,\n\t\t\t};\n\t\t\tif ( taxQuery ) {\n\t\t\t\t// We have to build the tax query for the REST API and use as\n\t\t\t\t// keys the taxonomies `rest_base` with the `term ids` as values.\n\t\t\t\tconst builtTaxQuery = Object.entries( taxQuery ).reduce(\n\t\t\t\t\t( accumulator, [ taxonomySlug, terms ] ) => {\n\t\t\t\t\t\tconst taxonomy = taxonomies?.find(\n\t\t\t\t\t\t\t( { slug } ) => slug === taxonomySlug\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( taxonomy?.rest_base ) {\n\t\t\t\t\t\t\taccumulator[ taxonomy?.rest_base ] = terms;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t},\n\t\t\t\t\t{}\n\t\t\t\t);\n\t\t\t\tif ( !! Object.keys( builtTaxQuery ).length ) {\n\t\t\t\t\tObject.assign( query, builtTaxQuery );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( perPage ) {\n\t\t\t\tquery.per_page = perPage;\n\t\t\t}\n\t\t\tif ( author ) {\n\t\t\t\tquery.author = author;\n\t\t\t}\n\t\t\tif ( search ) {\n\t\t\t\tquery.search = search;\n\t\t\t}\n\t\t\tif ( exclude?.length ) {\n\t\t\t\tquery.exclude = exclude;\n\t\t\t}\n\t\t\t// If sticky is not set, it will return all posts in the results.\n\t\t\t// If sticky is set to `only`, it will limit the results to sticky posts only.\n\t\t\t// If it is anything else, it will exclude sticky posts from results. For the record the value stored is `exclude`.\n\t\t\tif ( sticky ) {\n\t\t\t\tquery.sticky = sticky === 'only';\n\t\t\t}\n\t\t\t// If `inherit` is truthy, adjust conditionally the query to create a better preview.\n\t\t\tif ( inherit ) {\n\t\t\t\t// Change the post-type if needed.\n\t\t\t\tif ( templateSlug?.startsWith( 'archive-' ) ) {\n\t\t\t\t\tquery.postType = templateSlug.replace( 'archive-', '' );\n\t\t\t\t\tpostType = query.postType;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tposts: getEntityRecords( 'postType', postType, query ),\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tperPage,\n\t\t\tpage,\n\t\t\toffset,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tclientId,\n\t\t\tauthor,\n\t\t\tsearch,\n\t\t\tpostType,\n\t\t\texclude,\n\t\t\tsticky,\n\t\t\tinherit,\n\t\t\ttemplateSlug,\n\t\t\ttaxQuery,\n\t\t]\n\t);\n\tconst blockContexts = useMemo(\n\t\t() =>\n\t\t\tposts?.map( ( post ) => ( {\n\t\t\t\tpostType: post.type,\n\t\t\t\tpostId: post.id,\n\t\t\t} ) ),\n\t\t[ posts ]\n\t);\n\tconst hasLayoutFlex = layoutType === 'flex' && columns > 1;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t'is-flex-container': hasLayoutFlex,\n\t\t\t[ `columns-${ columns }` ]: hasLayoutFlex,\n\t\t} ),\n\t} );\n\n\tif ( ! posts ) {\n\t\treturn (\n\t\t\t<p { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</p>\n\t\t);\n\t}\n\n\tif ( ! posts.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No results found.' ) }</p>;\n\t}\n\n\t// To avoid flicker when switching active block contexts, a preview is rendered\n\t// for each block context, but the preview for the active block context is hidden.\n\t// This ensures that when it is displayed again, the cached rendering of the\n\t// block preview is used, instead of having to re-render the preview from scratch.\n\treturn (\n\t\t<ul { ...blockProps }>\n\t\t\t{ blockContexts &&\n\t\t\t\tblockContexts.map( ( blockContext ) => (\n\t\t\t\t\t<BlockContextProvider\n\t\t\t\t\t\tkey={ blockContext.postId }\n\t\t\t\t\t\tvalue={ blockContext }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ blockContext.postId ===\n\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\tblockContexts[ 0 ]?.postId ) ? (\n\t\t\t\t\t\t\t<PostTemplateInnerBlocks />\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t<MemoizedPostTemplateBlockPreview\n\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\tblockContextId={ blockContext.postId }\n\t\t\t\t\t\t\tsetActiveBlockContextId={ setActiveBlockContextId }\n\t\t\t\t\t\t\tisHidden={\n\t\t\t\t\t\t\t\tblockContext.postId ===\n\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.postId )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t) ) }\n\t\t</ul>\n\t);\n}\n"]}
@@ -9,7 +9,7 @@ import { unescape } from 'lodash';
9
9
  * WordPress dependencies
10
10
  */
11
11
 
12
- import { AlignmentToolbar, InspectorControls, BlockControls, useBlockProps } from '@wordpress/block-editor';
12
+ import { AlignmentToolbar, InspectorControls, BlockControls, useBlockProps, useBlockDisplayInformation } from '@wordpress/block-editor';
13
13
  import { Spinner, TextControl } from '@wordpress/components';
14
14
  import { useSelect } from '@wordpress/data';
15
15
  import { __ } from '@wordpress/i18n';
@@ -24,6 +24,7 @@ export default function PostTermsEdit(_ref) {
24
24
 
25
25
  let {
26
26
  attributes,
27
+ clientId,
27
28
  context,
28
29
  setAttributes
29
30
  } = _ref;
@@ -56,6 +57,7 @@ export default function PostTermsEdit(_ref) {
56
57
  term: selectedTerm
57
58
  });
58
59
  const hasPost = postId && postType;
60
+ const blockInformation = useBlockDisplayInformation(clientId);
59
61
  const blockProps = useBlockProps({
60
62
  className: classnames({
61
63
  [`has-text-align-${textAlign}`]: textAlign,
@@ -64,7 +66,7 @@ export default function PostTermsEdit(_ref) {
64
66
  });
65
67
 
66
68
  if (!hasPost || !term) {
67
- return createElement("div", blockProps, __('Post Terms'));
69
+ return createElement("div", blockProps, blockInformation.title);
68
70
  }
69
71
 
70
72
  return createElement(Fragment, null, createElement(BlockControls, null, createElement(AlignmentToolbar, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-terms/edit.js"],"names":["classnames","unescape","AlignmentToolbar","InspectorControls","BlockControls","useBlockProps","Spinner","TextControl","useSelect","__","store","coreStore","usePostTerms","PostTermsEdit","attributes","context","setAttributes","term","textAlign","separator","postId","postType","selectedTerm","select","getTaxonomy","taxonomy","visibility","publicly_queryable","postTerms","hasPostTerms","isLoading","hasPost","blockProps","className","nextAlign","nextValue","map","postTerm","id","link","event","preventDefault","name","reduce","prev","curr","labels","no_terms"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { unescape } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentToolbar,\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { Spinner, TextControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport usePostTerms from './use-post-terms';\n\nexport default function PostTermsEdit( {\n\tattributes,\n\tcontext,\n\tsetAttributes,\n} ) {\n\tconst { term, textAlign, separator } = attributes;\n\tconst { postId, postType } = context;\n\n\tconst selectedTerm = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! term ) return {};\n\t\t\tconst { getTaxonomy } = select( coreStore );\n\t\t\tconst taxonomy = getTaxonomy( term );\n\t\t\treturn taxonomy?.visibility?.publicly_queryable ? taxonomy : {};\n\t\t},\n\t\t[ term ]\n\t);\n\tconst { postTerms, hasPostTerms, isLoading } = usePostTerms( {\n\t\tpostId,\n\t\tpostType,\n\t\tterm: selectedTerm,\n\t} );\n\tconst hasPost = postId && postType;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t[ `taxonomy-${ term }` ]: term,\n\t\t} ),\n\t} );\n\n\tif ( ! hasPost || ! term ) {\n\t\treturn <div { ...blockProps }>{ __( 'Post Terms' ) }</div>;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<AlignmentToolbar\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tlabel={ __( 'Separator' ) }\n\t\t\t\t\tvalue={ separator || '' }\n\t\t\t\t\tonChange={ ( nextValue ) => {\n\t\t\t\t\t\tsetAttributes( { separator: nextValue } );\n\t\t\t\t\t} }\n\t\t\t\t\thelp={ __( 'Enter character(s) used to separate terms.' ) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ isLoading && <Spinner /> }\n\t\t\t\t{ ! isLoading &&\n\t\t\t\t\thasPostTerms &&\n\t\t\t\t\tpostTerms\n\t\t\t\t\t\t.map( ( postTerm ) => (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={ postTerm.id }\n\t\t\t\t\t\t\t\thref={ postTerm.link }\n\t\t\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ unescape( postTerm.name ) }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t) )\n\t\t\t\t\t\t.reduce( ( prev, curr ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ prev }\n\t\t\t\t\t\t\t\t<span className=\"wp-block-post-terms__separator\">\n\t\t\t\t\t\t\t\t\t{ separator || ' ' }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t{ curr }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) ) }\n\t\t\t\t{ ! isLoading &&\n\t\t\t\t\t! hasPostTerms &&\n\t\t\t\t\t( selectedTerm?.labels?.no_terms ||\n\t\t\t\t\t\t__( 'Term items not found.' ) ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-terms/edit.js"],"names":["classnames","unescape","AlignmentToolbar","InspectorControls","BlockControls","useBlockProps","useBlockDisplayInformation","Spinner","TextControl","useSelect","__","store","coreStore","usePostTerms","PostTermsEdit","attributes","clientId","context","setAttributes","term","textAlign","separator","postId","postType","selectedTerm","select","getTaxonomy","taxonomy","visibility","publicly_queryable","postTerms","hasPostTerms","isLoading","hasPost","blockInformation","blockProps","className","title","nextAlign","nextValue","map","postTerm","id","link","event","preventDefault","name","reduce","prev","curr","labels","no_terms"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { unescape } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentToolbar,\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\tuseBlockDisplayInformation,\n} from '@wordpress/block-editor';\nimport { Spinner, TextControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport usePostTerms from './use-post-terms';\n\nexport default function PostTermsEdit( {\n\tattributes,\n\tclientId,\n\tcontext,\n\tsetAttributes,\n} ) {\n\tconst { term, textAlign, separator } = attributes;\n\tconst { postId, postType } = context;\n\n\tconst selectedTerm = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! term ) return {};\n\t\t\tconst { getTaxonomy } = select( coreStore );\n\t\t\tconst taxonomy = getTaxonomy( term );\n\t\t\treturn taxonomy?.visibility?.publicly_queryable ? taxonomy : {};\n\t\t},\n\t\t[ term ]\n\t);\n\tconst { postTerms, hasPostTerms, isLoading } = usePostTerms( {\n\t\tpostId,\n\t\tpostType,\n\t\tterm: selectedTerm,\n\t} );\n\tconst hasPost = postId && postType;\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t[ `taxonomy-${ term }` ]: term,\n\t\t} ),\n\t} );\n\n\tif ( ! hasPost || ! term ) {\n\t\treturn <div { ...blockProps }>{ blockInformation.title }</div>;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<AlignmentToolbar\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tlabel={ __( 'Separator' ) }\n\t\t\t\t\tvalue={ separator || '' }\n\t\t\t\t\tonChange={ ( nextValue ) => {\n\t\t\t\t\t\tsetAttributes( { separator: nextValue } );\n\t\t\t\t\t} }\n\t\t\t\t\thelp={ __( 'Enter character(s) used to separate terms.' ) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ isLoading && <Spinner /> }\n\t\t\t\t{ ! isLoading &&\n\t\t\t\t\thasPostTerms &&\n\t\t\t\t\tpostTerms\n\t\t\t\t\t\t.map( ( postTerm ) => (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={ postTerm.id }\n\t\t\t\t\t\t\t\thref={ postTerm.link }\n\t\t\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ unescape( postTerm.name ) }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t) )\n\t\t\t\t\t\t.reduce( ( prev, curr ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ prev }\n\t\t\t\t\t\t\t\t<span className=\"wp-block-post-terms__separator\">\n\t\t\t\t\t\t\t\t\t{ separator || ' ' }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t{ curr }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) ) }\n\t\t\t\t{ ! isLoading &&\n\t\t\t\t\t! hasPostTerms &&\n\t\t\t\t\t( selectedTerm?.labels?.no_terms ||\n\t\t\t\t\t\t__( 'Term items not found.' ) ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
@@ -2,12 +2,12 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { __ } from '@wordpress/i18n';
5
- import { postCategories as icon } from '@wordpress/icons';
5
+ import { postCategories, postTerms } from '@wordpress/icons';
6
6
  const variations = [{
7
7
  name: 'category',
8
8
  title: __('Post Categories'),
9
9
  description: __("Display a post's categories."),
10
- icon,
10
+ icon: postCategories,
11
11
  isDefault: true,
12
12
  attributes: {
13
13
  term: 'category'
@@ -17,7 +17,7 @@ const variations = [{
17
17
  name: 'post_tag',
18
18
  title: __('Post Tags'),
19
19
  description: __("Display a post's tags."),
20
- icon,
20
+ icon: postTerms,
21
21
  attributes: {
22
22
  term: 'post_tag'
23
23
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-terms/variations.js"],"names":["__","postCategories","icon","variations","name","title","description","isDefault","attributes","term","isActive","blockAttributes"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,cAAc,IAAIC,IAA3B,QAAuC,kBAAvC;AAEA,MAAMC,UAAU,GAAG,CAClB;AACCC,EAAAA,IAAI,EAAE,UADP;AAECC,EAAAA,KAAK,EAAEL,EAAE,CAAE,iBAAF,CAFV;AAGCM,EAAAA,WAAW,EAAEN,EAAE,CAAE,8BAAF,CAHhB;AAICE,EAAAA,IAJD;AAKCK,EAAAA,SAAS,EAAE,IALZ;AAMCC,EAAAA,UAAU,EAAE;AAAEC,IAAAA,IAAI,EAAE;AAAR,GANb;AAOCC,EAAAA,QAAQ,EAAIC,eAAF,IAAuBA,eAAe,CAACF,IAAhB,KAAyB;AAP3D,CADkB,EAWlB;AACCL,EAAAA,IAAI,EAAE,UADP;AAECC,EAAAA,KAAK,EAAEL,EAAE,CAAE,WAAF,CAFV;AAGCM,EAAAA,WAAW,EAAEN,EAAE,CAAE,wBAAF,CAHhB;AAICE,EAAAA,IAJD;AAKCM,EAAAA,UAAU,EAAE;AAAEC,IAAAA,IAAI,EAAE;AAAR,GALb;AAMCC,EAAAA,QAAQ,EAAIC,eAAF,IAAuBA,eAAe,CAACF,IAAhB,KAAyB;AAN3D,CAXkB,CAAnB;AAqBA,eAAeN,UAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { postCategories as icon } from '@wordpress/icons';\n\nconst variations = [\n\t{\n\t\tname: 'category',\n\t\ttitle: __( 'Post Categories' ),\n\t\tdescription: __( \"Display a post's categories.\" ),\n\t\ticon,\n\t\tisDefault: true,\n\t\tattributes: { term: 'category' },\n\t\tisActive: ( blockAttributes ) => blockAttributes.term === 'category',\n\t},\n\n\t{\n\t\tname: 'post_tag',\n\t\ttitle: __( 'Post Tags' ),\n\t\tdescription: __( \"Display a post's tags.\" ),\n\t\ticon,\n\t\tattributes: { term: 'post_tag' },\n\t\tisActive: ( blockAttributes ) => blockAttributes.term === 'post_tag',\n\t},\n];\n\nexport default variations;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-terms/variations.js"],"names":["__","postCategories","postTerms","variations","name","title","description","icon","isDefault","attributes","term","isActive","blockAttributes"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,cAAT,EAAyBC,SAAzB,QAA0C,kBAA1C;AAEA,MAAMC,UAAU,GAAG,CAClB;AACCC,EAAAA,IAAI,EAAE,UADP;AAECC,EAAAA,KAAK,EAAEL,EAAE,CAAE,iBAAF,CAFV;AAGCM,EAAAA,WAAW,EAAEN,EAAE,CAAE,8BAAF,CAHhB;AAICO,EAAAA,IAAI,EAAEN,cAJP;AAKCO,EAAAA,SAAS,EAAE,IALZ;AAMCC,EAAAA,UAAU,EAAE;AAAEC,IAAAA,IAAI,EAAE;AAAR,GANb;AAOCC,EAAAA,QAAQ,EAAIC,eAAF,IAAuBA,eAAe,CAACF,IAAhB,KAAyB;AAP3D,CADkB,EAWlB;AACCN,EAAAA,IAAI,EAAE,UADP;AAECC,EAAAA,KAAK,EAAEL,EAAE,CAAE,WAAF,CAFV;AAGCM,EAAAA,WAAW,EAAEN,EAAE,CAAE,wBAAF,CAHhB;AAICO,EAAAA,IAAI,EAAEL,SAJP;AAKCO,EAAAA,UAAU,EAAE;AAAEC,IAAAA,IAAI,EAAE;AAAR,GALb;AAMCC,EAAAA,QAAQ,EAAIC,eAAF,IAAuBA,eAAe,CAACF,IAAhB,KAAyB;AAN3D,CAXkB,CAAnB;AAqBA,eAAeP,UAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { postCategories, postTerms } from '@wordpress/icons';\n\nconst variations = [\n\t{\n\t\tname: 'category',\n\t\ttitle: __( 'Post Categories' ),\n\t\tdescription: __( \"Display a post's categories.\" ),\n\t\ticon: postCategories,\n\t\tisDefault: true,\n\t\tattributes: { term: 'category' },\n\t\tisActive: ( blockAttributes ) => blockAttributes.term === 'category',\n\t},\n\n\t{\n\t\tname: 'post_tag',\n\t\ttitle: __( 'Post Tags' ),\n\t\tdescription: __( \"Display a post's tags.\" ),\n\t\ticon: postTerms,\n\t\tattributes: { term: 'post_tag' },\n\t\tisActive: ( blockAttributes ) => blockAttributes.term === 'post_tag',\n\t},\n];\n\nexport default variations;\n"]}
@@ -1,14 +1,15 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
1
2
  import { createElement, Fragment } from "@wordpress/element";
2
3
 
3
4
  /**
4
5
  * WordPress dependencies
5
6
  */
6
7
  import { useSelect, useDispatch } from '@wordpress/data';
7
- import { cloneBlock } from '@wordpress/blocks';
8
+ import { store as blocksStore, cloneBlock } from '@wordpress/blocks';
8
9
  import { useInstanceId } from '@wordpress/compose';
9
- import { useEffect } from '@wordpress/element';
10
- import { BlockControls, InspectorControls, useBlockProps, useSetting, store as blockEditorStore, useInnerBlocksProps, __experimentalBlockPatternSetup as BlockPatternSetup } from '@wordpress/block-editor';
11
- import { SelectControl } from '@wordpress/components';
10
+ import { useState, useEffect } from '@wordpress/element';
11
+ import { BlockControls, InspectorControls, useBlockProps, useSetting, store as blockEditorStore, useInnerBlocksProps, __experimentalGetMatchingVariation as getMatchingVariation, __experimentalBlockPatternSetup as BlockPatternSetup } from '@wordpress/block-editor';
12
+ import { Button, SelectControl, Placeholder, Modal } from '@wordpress/components';
12
13
  import { __ } from '@wordpress/i18n';
13
14
  /**
14
15
  * Internal dependencies
@@ -23,7 +24,8 @@ const TEMPLATE = [['core/post-template']];
23
24
  export function QueryContent(_ref) {
24
25
  let {
25
26
  attributes,
26
- setAttributes
27
+ setAttributes,
28
+ openPatternSelectionModal
27
29
  } = _ref;
28
30
  const {
29
31
  queryId,
@@ -117,7 +119,8 @@ export function QueryContent(_ref) {
117
119
  }), createElement(BlockControls, null, createElement(QueryToolbar, {
118
120
  attributes: attributes,
119
121
  setQuery: updateQuery,
120
- setDisplayLayout: updateDisplayLayout
122
+ setDisplayLayout: updateDisplayLayout,
123
+ openPatternSelectionModal: openPatternSelectionModal
121
124
  })), createElement(InspectorControls, {
122
125
  __experimentalGroup: "advanced"
123
126
  }, createElement(SelectControl, {
@@ -142,16 +145,79 @@ export function QueryContent(_ref) {
142
145
  })), createElement(TagName, innerBlocksProps));
143
146
  }
144
147
 
145
- function QueryPatternSetup(props) {
148
+ function QueryPatternSetup(_ref2) {
149
+ var _blockType$icon;
150
+
151
+ let {
152
+ attributes,
153
+ clientId,
154
+ name,
155
+ openPatternSelectionModal,
156
+ setAttributes
157
+ } = _ref2;
158
+ const [isStartingBlank, setIsStartingBlank] = useState(false);
159
+ const blockProps = useBlockProps();
160
+ const {
161
+ blockType,
162
+ allVariations,
163
+ hasPatterns
164
+ } = useSelect(select => {
165
+ const {
166
+ getBlockVariations,
167
+ getBlockType
168
+ } = select(blocksStore);
169
+ const {
170
+ getBlockRootClientId,
171
+ __experimentalGetPatternsByBlockTypes
172
+ } = select(blockEditorStore);
173
+ const rootClientId = getBlockRootClientId(clientId);
174
+ return {
175
+ blockType: getBlockType(name),
176
+ allVariations: getBlockVariations(name),
177
+ hasPatterns: !!__experimentalGetPatternsByBlockTypes(name, rootClientId).length
178
+ };
179
+ }, [name, clientId]);
180
+ const matchingVariation = getMatchingVariation(attributes, allVariations);
181
+ const icon = (matchingVariation === null || matchingVariation === void 0 ? void 0 : matchingVariation.icon) || (blockType === null || blockType === void 0 ? void 0 : (_blockType$icon = blockType.icon) === null || _blockType$icon === void 0 ? void 0 : _blockType$icon.src);
182
+ const label = (matchingVariation === null || matchingVariation === void 0 ? void 0 : matchingVariation.title) || (blockType === null || blockType === void 0 ? void 0 : blockType.title);
183
+
184
+ if (isStartingBlank) {
185
+ return createElement(QueryPlaceholder, {
186
+ clientId: clientId,
187
+ name: name,
188
+ setAttributes: setAttributes,
189
+ icon: icon,
190
+ label: label
191
+ });
192
+ }
193
+
194
+ return createElement("div", blockProps, createElement(Placeholder, {
195
+ icon: icon,
196
+ label: label,
197
+ instructions: __('Choose a pattern for the query loop or start blank.')
198
+ }, !!hasPatterns && createElement(Button, {
199
+ variant: "primary",
200
+ onClick: openPatternSelectionModal
201
+ }, __('Choose')), createElement(Button, {
202
+ variant: "secondary",
203
+ onClick: () => {
204
+ setIsStartingBlank(true);
205
+ }
206
+ }, __('Start blank'))));
207
+ }
208
+
209
+ const QueryEdit = props => {
146
210
  const {
147
211
  clientId,
148
- name: blockName
212
+ name
149
213
  } = props;
150
- const blockProps = useBlockProps();
214
+ const [isPatternSelectionModalOpen, setIsPatternSelectionModalOpen] = useState(false);
151
215
  const {
152
216
  replaceBlock,
153
217
  selectBlock
154
218
  } = useDispatch(blockEditorStore);
219
+ const hasInnerBlocks = useSelect(select => !!select(blockEditorStore).getBlocks(clientId).length, [clientId]);
220
+ const Component = hasInnerBlocks ? QueryContent : QueryPatternSetup;
155
221
 
156
222
  const onBlockPatternSelect = blocks => {
157
223
  const clonedBlocks = blocks.map(block => cloneBlock(block));
@@ -161,25 +227,20 @@ function QueryPatternSetup(props) {
161
227
  if (firstQueryClientId) {
162
228
  selectBlock(firstQueryClientId);
163
229
  }
164
- }; // `startBlankComponent` is what to render when clicking `Start blank`
165
- // or if no matched patterns are found.
166
-
167
-
168
- return createElement("div", blockProps, createElement(BlockPatternSetup, {
169
- blockName: blockName,
230
+ };
231
+
232
+ return createElement(Fragment, null, createElement(Component, _extends({}, props, {
233
+ openPatternSelectionModal: () => setIsPatternSelectionModalOpen(true)
234
+ })), isPatternSelectionModalOpen && createElement(Modal, {
235
+ className: "block-editor-query-pattern__selection-modal",
236
+ title: __('Choose a pattern'),
237
+ closeLabel: __('Cancel'),
238
+ onRequestClose: () => setIsPatternSelectionModalOpen(false)
239
+ }, createElement(BlockPatternSetup, {
240
+ blockName: name,
170
241
  clientId: clientId,
171
- startBlankComponent: createElement(QueryPlaceholder, props),
172
242
  onBlockPatternSelect: onBlockPatternSelect
173
- }));
174
- }
175
-
176
- const QueryEdit = props => {
177
- const {
178
- clientId
179
- } = props;
180
- const hasInnerBlocks = useSelect(select => !!select(blockEditorStore).getBlocks(clientId).length, [clientId]);
181
- const Component = hasInnerBlocks ? QueryContent : QueryPatternSetup;
182
- return createElement(Component, props);
243
+ })));
183
244
  };
184
245
 
185
246
  export default QueryEdit;