@wordpress/block-library 7.0.1 → 7.1.0-next.e230fbab09.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 (608) hide show
  1. package/README.md +16 -0
  2. package/build/audio/edit.js +4 -4
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/audio/edit.native.js +4 -4
  5. package/build/audio/edit.native.js.map +1 -1
  6. package/build/audio/transforms.js +1 -1
  7. package/build/audio/transforms.js.map +1 -1
  8. package/build/block/edit.js +3 -9
  9. package/build/block/edit.js.map +1 -1
  10. package/build/button/edit.js +3 -2
  11. package/build/button/edit.js.map +1 -1
  12. package/build/button/edit.native.js +4 -4
  13. package/build/button/edit.native.js.map +1 -1
  14. package/build/buttons/transforms.js +8 -8
  15. package/build/buttons/transforms.js.map +1 -1
  16. package/build/categories/edit.js +15 -26
  17. package/build/categories/edit.js.map +1 -1
  18. package/build/code/index.js +0 -1
  19. package/build/code/index.js.map +1 -1
  20. package/build/columns/columnCalculations.native.js +1 -1
  21. package/build/columns/columnCalculations.native.js.map +1 -1
  22. package/build/columns/edit.js +1 -1
  23. package/build/columns/edit.js.map +1 -1
  24. package/build/columns/edit.native.js +3 -3
  25. package/build/columns/edit.native.js.map +1 -1
  26. package/build/columns/index.js +12 -0
  27. package/build/columns/index.js.map +1 -1
  28. package/build/comment-author-avatar/edit.js +17 -4
  29. package/build/comment-author-avatar/edit.js.map +1 -1
  30. package/build/comment-template/edit.js +94 -36
  31. package/build/comment-template/edit.js.map +1 -1
  32. package/build/comment-template/hooks.js +175 -0
  33. package/build/comment-template/hooks.js.map +1 -0
  34. package/build/comment-template/index.js +1 -1
  35. package/build/comment-template/util.js.map +1 -1
  36. package/build/comments-pagination-next/index.js +1 -1
  37. package/build/comments-pagination-numbers/index.js +1 -1
  38. package/build/comments-query-loop/edit/comments-inspector-controls.js +20 -9
  39. package/build/comments-query-loop/edit/comments-inspector-controls.js.map +1 -1
  40. package/build/comments-query-loop/edit.js +1 -19
  41. package/build/comments-query-loop/edit.js.map +1 -1
  42. package/build/comments-query-loop/index.js +5 -0
  43. package/build/comments-query-loop/index.js.map +1 -1
  44. package/build/cover/controls.native.js +5 -5
  45. package/build/cover/controls.native.js.map +1 -1
  46. package/build/cover/deprecated.js +188 -17
  47. package/build/cover/deprecated.js.map +1 -1
  48. package/build/cover/edit.js +29 -33
  49. package/build/cover/edit.js.map +1 -1
  50. package/build/cover/edit.native.js +15 -13
  51. package/build/cover/edit.native.js.map +1 -1
  52. package/build/cover/overlay-color-settings.native.js +7 -6
  53. package/build/cover/overlay-color-settings.native.js.map +1 -1
  54. package/build/cover/save.js +1 -1
  55. package/build/cover/save.js.map +1 -1
  56. package/build/cover/shared.js +2 -2
  57. package/build/cover/shared.js.map +1 -1
  58. package/build/cover/transforms.js +4 -2
  59. package/build/cover/transforms.js.map +1 -1
  60. package/build/embed/edit.js +1 -1
  61. package/build/embed/edit.js.map +1 -1
  62. package/build/embed/edit.native.js +1 -1
  63. package/build/embed/edit.native.js.map +1 -1
  64. package/build/embed/util.js +2 -2
  65. package/build/embed/util.js.map +1 -1
  66. package/build/embed/variations.js +1 -1
  67. package/build/embed/variations.js.map +1 -1
  68. package/build/file/edit.js +20 -17
  69. package/build/file/edit.js.map +1 -1
  70. package/build/file/edit.native.js +1 -1
  71. package/build/file/edit.native.js.map +1 -1
  72. package/build/file/save.js +7 -3
  73. package/build/file/save.js.map +1 -1
  74. package/build/freeform/edit.js +2 -2
  75. package/build/freeform/edit.js.map +1 -1
  76. package/build/gallery/edit.js +1 -1
  77. package/build/gallery/edit.js.map +1 -1
  78. package/build/gallery/gallery.native.js +1 -1
  79. package/build/gallery/gallery.native.js.map +1 -1
  80. package/build/gallery/v1/edit.js +3 -3
  81. package/build/gallery/v1/edit.js.map +1 -1
  82. package/build/gallery/v1/gallery-image.native.js +3 -3
  83. package/build/gallery/v1/gallery-image.native.js.map +1 -1
  84. package/build/gallery/v1/gallery.native.js +2 -2
  85. package/build/gallery/v1/gallery.native.js.map +1 -1
  86. package/build/group/index.js +4 -37
  87. package/build/group/index.js.map +1 -1
  88. package/build/group/transforms.js +45 -0
  89. package/build/group/transforms.js.map +1 -0
  90. package/build/heading/edit.js +14 -2
  91. package/build/heading/edit.js.map +1 -1
  92. package/build/home-link/edit.js +1 -1
  93. package/build/home-link/edit.js.map +1 -1
  94. package/build/image/deprecated.js +89 -5
  95. package/build/image/deprecated.js.map +1 -1
  96. package/build/image/edit.js +7 -6
  97. package/build/image/edit.js.map +1 -1
  98. package/build/image/edit.native.js +25 -10
  99. package/build/image/edit.native.js.map +1 -1
  100. package/build/image/save.js +0 -7
  101. package/build/image/save.js.map +1 -1
  102. package/build/image/transforms.js +1 -1
  103. package/build/image/transforms.js.map +1 -1
  104. package/build/index.js +3 -4
  105. package/build/index.js.map +1 -1
  106. package/build/index.native.js +2 -2
  107. package/build/index.native.js.map +1 -1
  108. package/build/latest-posts/edit.js +1 -0
  109. package/build/latest-posts/edit.js.map +1 -1
  110. package/build/media-text/edit.js +21 -2
  111. package/build/media-text/edit.js.map +1 -1
  112. package/build/media-text/edit.native.js +2 -2
  113. package/build/media-text/edit.native.js.map +1 -1
  114. package/build/media-text/media-container.native.js +1 -1
  115. package/build/media-text/media-container.native.js.map +1 -1
  116. package/build/missing/edit.native.js +1 -1
  117. package/build/missing/edit.native.js.map +1 -1
  118. package/build/more/transforms.js +2 -2
  119. package/build/more/transforms.js.map +1 -1
  120. package/build/navigation/edit/index.js +144 -68
  121. package/build/navigation/edit/index.js.map +1 -1
  122. package/build/navigation/edit/inner-blocks.js +8 -3
  123. package/build/navigation/edit/inner-blocks.js.map +1 -1
  124. package/build/navigation/edit/navigation-menu-selector.js +82 -52
  125. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  126. package/build/navigation/edit/placeholder/index.js +32 -61
  127. package/build/navigation/edit/placeholder/index.js.map +1 -1
  128. package/build/navigation/edit/placeholder/placeholder-preview.js +3 -12
  129. package/build/navigation/edit/placeholder/placeholder-preview.js.map +1 -1
  130. package/build/navigation/edit/unsaved-inner-blocks.js +3 -1
  131. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  132. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +120 -0
  133. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -0
  134. package/build/navigation/edit/use-create-navigation-menu.js +53 -4
  135. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
  136. package/build/navigation/edit/use-navigation-notice.js +3 -3
  137. package/build/navigation/edit/use-navigation-notice.js.map +1 -1
  138. package/build/navigation/menu-items-to-blocks.js +1 -1
  139. package/build/navigation/menu-items-to-blocks.js.map +1 -1
  140. package/build/navigation/use-navigation-entities.js +25 -49
  141. package/build/navigation/use-navigation-entities.js.map +1 -1
  142. package/build/navigation/use-navigation-menu.js +8 -6
  143. package/build/navigation/use-navigation-menu.js.map +1 -1
  144. package/build/navigation-link/fallback-variations.js +1 -1
  145. package/build/navigation-link/fallback-variations.js.map +1 -1
  146. package/build/navigation-link/hooks.js +2 -2
  147. package/build/navigation-link/hooks.js.map +1 -1
  148. package/build/navigation-submenu/edit.js +43 -11
  149. package/build/navigation-submenu/edit.js.map +1 -1
  150. package/build/page-list/convert-to-links-modal.js +13 -23
  151. package/build/page-list/convert-to-links-modal.js.map +1 -1
  152. package/build/page-list/edit.js +19 -39
  153. package/build/page-list/edit.js.map +1 -1
  154. package/build/post-author-name/edit.js +2 -1
  155. package/build/post-author-name/edit.js.map +1 -1
  156. package/build/post-comments-form/edit.js +3 -1
  157. package/build/post-comments-form/edit.js.map +1 -1
  158. package/build/post-excerpt/edit.js +7 -4
  159. package/build/post-excerpt/edit.js.map +1 -1
  160. package/build/post-terms/edit.js +3 -1
  161. package/build/post-terms/edit.js.map +1 -1
  162. package/build/query-title/edit.js +0 -1
  163. package/build/query-title/edit.js.map +1 -1
  164. package/build/search/edit.js +4 -1
  165. package/build/search/edit.js.map +1 -1
  166. package/build/search/edit.native.js +1 -1
  167. package/build/search/edit.native.js.map +1 -1
  168. package/build/separator/save.js +4 -4
  169. package/build/separator/save.js.map +1 -1
  170. package/build/separator/separator-settings.native.js +1 -1
  171. package/build/separator/separator-settings.native.js.map +1 -1
  172. package/build/site-logo/edit.js +1 -1
  173. package/build/site-logo/edit.js.map +1 -1
  174. package/build/social-link/edit.native.js +11 -3
  175. package/build/social-link/edit.native.js.map +1 -1
  176. package/build/social-links/deprecated.js +1 -62
  177. package/build/social-links/deprecated.js.map +1 -1
  178. package/build/spacer/controls.js +5 -5
  179. package/build/spacer/controls.js.map +1 -1
  180. package/build/spacer/controls.native.js +5 -5
  181. package/build/spacer/controls.native.js.map +1 -1
  182. package/build/table/edit.js +2 -2
  183. package/build/table/edit.js.map +1 -1
  184. package/build/template-part/edit/index.js +36 -64
  185. package/build/template-part/edit/index.js.map +1 -1
  186. package/build/template-part/edit/placeholder.js +64 -0
  187. package/build/template-part/edit/placeholder.js.map +1 -0
  188. package/build/template-part/edit/selection-modal.js +103 -0
  189. package/build/template-part/edit/selection-modal.js.map +1 -0
  190. package/build/template-part/edit/title-modal.js +54 -0
  191. package/build/template-part/edit/title-modal.js.map +1 -0
  192. package/build/template-part/edit/utils/hooks.js +156 -0
  193. package/build/template-part/edit/utils/hooks.js.map +1 -0
  194. package/build/template-part/index.js +3 -1
  195. package/build/template-part/index.js.map +1 -1
  196. package/build/video/edit.js +4 -4
  197. package/build/video/edit.js.map +1 -1
  198. package/build/video/edit.native.js +3 -3
  199. package/build/video/edit.native.js.map +1 -1
  200. package/build-module/audio/edit.js +4 -4
  201. package/build-module/audio/edit.js.map +1 -1
  202. package/build-module/audio/edit.native.js +4 -4
  203. package/build-module/audio/edit.native.js.map +1 -1
  204. package/build-module/audio/transforms.js +1 -1
  205. package/build-module/audio/transforms.js.map +1 -1
  206. package/build-module/block/edit.js +5 -11
  207. package/build-module/block/edit.js.map +1 -1
  208. package/build-module/button/edit.js +3 -2
  209. package/build-module/button/edit.js.map +1 -1
  210. package/build-module/button/edit.native.js +6 -6
  211. package/build-module/button/edit.native.js.map +1 -1
  212. package/build-module/buttons/transforms.js +8 -8
  213. package/build-module/buttons/transforms.js.map +1 -1
  214. package/build-module/categories/edit.js +15 -25
  215. package/build-module/categories/edit.js.map +1 -1
  216. package/build-module/code/index.js +0 -1
  217. package/build-module/code/index.js.map +1 -1
  218. package/build-module/columns/columnCalculations.native.js +1 -1
  219. package/build-module/columns/columnCalculations.native.js.map +1 -1
  220. package/build-module/columns/edit.js +1 -1
  221. package/build-module/columns/edit.js.map +1 -1
  222. package/build-module/columns/edit.native.js +3 -3
  223. package/build-module/columns/edit.native.js.map +1 -1
  224. package/build-module/columns/index.js +12 -0
  225. package/build-module/columns/index.js.map +1 -1
  226. package/build-module/comment-author-avatar/edit.js +18 -6
  227. package/build-module/comment-author-avatar/edit.js.map +1 -1
  228. package/build-module/comment-template/edit.js +95 -37
  229. package/build-module/comment-template/edit.js.map +1 -1
  230. package/build-module/comment-template/hooks.js +156 -0
  231. package/build-module/comment-template/hooks.js.map +1 -0
  232. package/build-module/comment-template/index.js +1 -1
  233. package/build-module/comment-template/util.js.map +1 -1
  234. package/build-module/comments-pagination-next/index.js +1 -1
  235. package/build-module/comments-pagination-numbers/index.js +1 -1
  236. package/build-module/comments-query-loop/edit/comments-inspector-controls.js +20 -9
  237. package/build-module/comments-query-loop/edit/comments-inspector-controls.js.map +1 -1
  238. package/build-module/comments-query-loop/edit.js +2 -19
  239. package/build-module/comments-query-loop/edit.js.map +1 -1
  240. package/build-module/comments-query-loop/index.js +5 -0
  241. package/build-module/comments-query-loop/index.js.map +1 -1
  242. package/build-module/cover/controls.native.js +5 -5
  243. package/build-module/cover/controls.native.js.map +1 -1
  244. package/build-module/cover/deprecated.js +190 -17
  245. package/build-module/cover/deprecated.js.map +1 -1
  246. package/build-module/cover/edit.js +31 -35
  247. package/build-module/cover/edit.js.map +1 -1
  248. package/build-module/cover/edit.native.js +18 -16
  249. package/build-module/cover/edit.native.js.map +1 -1
  250. package/build-module/cover/overlay-color-settings.native.js +7 -7
  251. package/build-module/cover/overlay-color-settings.native.js.map +1 -1
  252. package/build-module/cover/save.js +1 -1
  253. package/build-module/cover/save.js.map +1 -1
  254. package/build-module/cover/shared.js +2 -2
  255. package/build-module/cover/shared.js.map +1 -1
  256. package/build-module/cover/transforms.js +4 -2
  257. package/build-module/cover/transforms.js.map +1 -1
  258. package/build-module/embed/edit.js +1 -1
  259. package/build-module/embed/edit.js.map +1 -1
  260. package/build-module/embed/edit.native.js +1 -1
  261. package/build-module/embed/edit.native.js.map +1 -1
  262. package/build-module/embed/util.js +2 -2
  263. package/build-module/embed/util.js.map +1 -1
  264. package/build-module/embed/variations.js +1 -1
  265. package/build-module/embed/variations.js.map +1 -1
  266. package/build-module/file/edit.js +21 -18
  267. package/build-module/file/edit.js.map +1 -1
  268. package/build-module/file/edit.native.js +1 -1
  269. package/build-module/file/edit.native.js.map +1 -1
  270. package/build-module/file/save.js +7 -3
  271. package/build-module/file/save.js.map +1 -1
  272. package/build-module/freeform/edit.js +2 -2
  273. package/build-module/freeform/edit.js.map +1 -1
  274. package/build-module/gallery/edit.js +1 -1
  275. package/build-module/gallery/edit.js.map +1 -1
  276. package/build-module/gallery/gallery.native.js +1 -1
  277. package/build-module/gallery/gallery.native.js.map +1 -1
  278. package/build-module/gallery/v1/edit.js +3 -3
  279. package/build-module/gallery/v1/edit.js.map +1 -1
  280. package/build-module/gallery/v1/gallery-image.native.js +3 -3
  281. package/build-module/gallery/v1/gallery-image.native.js.map +1 -1
  282. package/build-module/gallery/v1/gallery.native.js +2 -2
  283. package/build-module/gallery/v1/gallery.native.js.map +1 -1
  284. package/build-module/group/index.js +3 -36
  285. package/build-module/group/index.js.map +1 -1
  286. package/build-module/group/transforms.js +36 -0
  287. package/build-module/group/transforms.js.map +1 -0
  288. package/build-module/heading/edit.js +15 -3
  289. package/build-module/heading/edit.js.map +1 -1
  290. package/build-module/home-link/edit.js +1 -1
  291. package/build-module/home-link/edit.js.map +1 -1
  292. package/build-module/image/deprecated.js +90 -7
  293. package/build-module/image/deprecated.js.map +1 -1
  294. package/build-module/image/edit.js +7 -6
  295. package/build-module/image/edit.js.map +1 -1
  296. package/build-module/image/edit.native.js +25 -10
  297. package/build-module/image/edit.native.js.map +1 -1
  298. package/build-module/image/save.js +0 -7
  299. package/build-module/image/save.js.map +1 -1
  300. package/build-module/image/transforms.js +1 -1
  301. package/build-module/image/transforms.js.map +1 -1
  302. package/build-module/index.js +4 -5
  303. package/build-module/index.js.map +1 -1
  304. package/build-module/index.native.js +2 -2
  305. package/build-module/index.native.js.map +1 -1
  306. package/build-module/latest-posts/edit.js +1 -0
  307. package/build-module/latest-posts/edit.js.map +1 -1
  308. package/build-module/media-text/edit.js +20 -2
  309. package/build-module/media-text/edit.js.map +1 -1
  310. package/build-module/media-text/edit.native.js +2 -2
  311. package/build-module/media-text/edit.native.js.map +1 -1
  312. package/build-module/media-text/media-container.native.js +1 -1
  313. package/build-module/media-text/media-container.native.js.map +1 -1
  314. package/build-module/missing/edit.native.js +1 -1
  315. package/build-module/missing/edit.native.js.map +1 -1
  316. package/build-module/more/transforms.js +2 -2
  317. package/build-module/more/transforms.js.map +1 -1
  318. package/build-module/navigation/edit/index.js +138 -68
  319. package/build-module/navigation/edit/index.js.map +1 -1
  320. package/build-module/navigation/edit/inner-blocks.js +8 -3
  321. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  322. package/build-module/navigation/edit/navigation-menu-selector.js +82 -48
  323. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  324. package/build-module/navigation/edit/placeholder/index.js +33 -59
  325. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  326. package/build-module/navigation/edit/placeholder/placeholder-preview.js +3 -9
  327. package/build-module/navigation/edit/placeholder/placeholder-preview.js.map +1 -1
  328. package/build-module/navigation/edit/unsaved-inner-blocks.js +3 -1
  329. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  330. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +100 -0
  331. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -0
  332. package/build-module/navigation/edit/use-create-navigation-menu.js +48 -5
  333. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
  334. package/build-module/navigation/edit/use-navigation-notice.js +3 -3
  335. package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
  336. package/build-module/navigation/menu-items-to-blocks.js +1 -1
  337. package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
  338. package/build-module/navigation/use-navigation-entities.js +26 -50
  339. package/build-module/navigation/use-navigation-entities.js.map +1 -1
  340. package/build-module/navigation/use-navigation-menu.js +8 -6
  341. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  342. package/build-module/navigation-link/fallback-variations.js +1 -1
  343. package/build-module/navigation-link/fallback-variations.js.map +1 -1
  344. package/build-module/navigation-link/hooks.js +2 -2
  345. package/build-module/navigation-link/hooks.js.map +1 -1
  346. package/build-module/navigation-submenu/edit.js +43 -12
  347. package/build-module/navigation-submenu/edit.js.map +1 -1
  348. package/build-module/page-list/convert-to-links-modal.js +15 -25
  349. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  350. package/build-module/page-list/edit.js +21 -41
  351. package/build-module/page-list/edit.js.map +1 -1
  352. package/build-module/post-author-name/edit.js +2 -1
  353. package/build-module/post-author-name/edit.js.map +1 -1
  354. package/build-module/post-comments-form/edit.js +4 -2
  355. package/build-module/post-comments-form/edit.js.map +1 -1
  356. package/build-module/post-excerpt/edit.js +9 -6
  357. package/build-module/post-excerpt/edit.js.map +1 -1
  358. package/build-module/post-terms/edit.js +2 -1
  359. package/build-module/post-terms/edit.js.map +1 -1
  360. package/build-module/query-title/edit.js +0 -1
  361. package/build-module/query-title/edit.js.map +1 -1
  362. package/build-module/search/edit.js +3 -1
  363. package/build-module/search/edit.js.map +1 -1
  364. package/build-module/search/edit.native.js +1 -1
  365. package/build-module/search/edit.native.js.map +1 -1
  366. package/build-module/separator/save.js +4 -4
  367. package/build-module/separator/save.js.map +1 -1
  368. package/build-module/separator/separator-settings.native.js +1 -1
  369. package/build-module/separator/separator-settings.native.js.map +1 -1
  370. package/build-module/site-logo/edit.js +1 -1
  371. package/build-module/site-logo/edit.js.map +1 -1
  372. package/build-module/social-link/edit.native.js +11 -3
  373. package/build-module/social-link/edit.native.js.map +1 -1
  374. package/build-module/social-links/deprecated.js +1 -62
  375. package/build-module/social-links/deprecated.js.map +1 -1
  376. package/build-module/spacer/controls.js +5 -5
  377. package/build-module/spacer/controls.js.map +1 -1
  378. package/build-module/spacer/controls.native.js +5 -5
  379. package/build-module/spacer/controls.native.js.map +1 -1
  380. package/build-module/table/edit.js +2 -2
  381. package/build-module/table/edit.js.map +1 -1
  382. package/build-module/template-part/edit/index.js +37 -65
  383. package/build-module/template-part/edit/index.js.map +1 -1
  384. package/build-module/template-part/edit/placeholder.js +52 -0
  385. package/build-module/template-part/edit/placeholder.js.map +1 -0
  386. package/build-module/template-part/edit/selection-modal.js +89 -0
  387. package/build-module/template-part/edit/selection-modal.js.map +1 -0
  388. package/build-module/template-part/edit/title-modal.js +46 -0
  389. package/build-module/template-part/edit/title-modal.js.map +1 -0
  390. package/build-module/template-part/edit/utils/hooks.js +135 -0
  391. package/build-module/template-part/edit/utils/hooks.js.map +1 -0
  392. package/build-module/template-part/index.js +2 -1
  393. package/build-module/template-part/index.js.map +1 -1
  394. package/build-module/video/edit.js +4 -4
  395. package/build-module/video/edit.js.map +1 -1
  396. package/build-module/video/edit.native.js +3 -3
  397. package/build-module/video/edit.native.js.map +1 -1
  398. package/build-style/button/editor-rtl.css +0 -3
  399. package/build-style/button/editor.css +0 -3
  400. package/build-style/code/style-rtl.css +2 -1
  401. package/build-style/code/style.css +2 -1
  402. package/build-style/code/theme-rtl.css +0 -3
  403. package/build-style/code/theme.css +0 -3
  404. package/build-style/comment-author-avatar/editor-rtl.css +83 -0
  405. package/build-style/comment-author-avatar/editor.css +83 -0
  406. package/build-style/common-rtl.css +1 -1
  407. package/build-style/common.css +1 -1
  408. package/build-style/cover/style-rtl.css +5 -5
  409. package/build-style/cover/style.css +5 -5
  410. package/build-style/editor-rtl.css +43 -84
  411. package/build-style/editor.css +43 -84
  412. package/build-style/image/editor-rtl.css +0 -16
  413. package/build-style/image/editor.css +0 -16
  414. package/build-style/image/style-rtl.css +4 -1
  415. package/build-style/image/style.css +4 -1
  416. package/build-style/navigation/editor-rtl.css +16 -0
  417. package/build-style/navigation/editor.css +16 -0
  418. package/build-style/navigation/style-rtl.css +14 -3
  419. package/build-style/navigation/style.css +14 -3
  420. package/build-style/page-list/editor-rtl.css +0 -9
  421. package/build-style/page-list/editor.css +0 -9
  422. package/build-style/style-rtl.css +32 -13
  423. package/build-style/style.css +32 -13
  424. package/build-style/tag-cloud/style-rtl.css +6 -2
  425. package/build-style/tag-cloud/style.css +6 -2
  426. package/build-style/template-part/editor-rtl.css +19 -56
  427. package/build-style/template-part/editor.css +19 -56
  428. package/build-style/theme-rtl.css +0 -3
  429. package/build-style/theme.css +0 -3
  430. package/package.json +32 -28
  431. package/src/archives/index.php +1 -1
  432. package/src/audio/edit.js +4 -4
  433. package/src/audio/edit.native.js +4 -4
  434. package/src/audio/transforms.js +1 -1
  435. package/src/block/edit.js +7 -22
  436. package/src/block/test/edit.native.js +9 -9
  437. package/src/button/edit.js +2 -1
  438. package/src/button/edit.native.js +5 -5
  439. package/src/button/editor.scss +0 -5
  440. package/src/buttons/test/edit.native.js +3 -3
  441. package/src/buttons/transforms.js +8 -8
  442. package/src/categories/edit.js +12 -22
  443. package/src/code/block.json +0 -1
  444. package/src/code/style.scss +4 -2
  445. package/src/code/theme.scss +0 -3
  446. package/src/columns/block.json +12 -0
  447. package/src/columns/columnCalculations.native.js +1 -1
  448. package/src/columns/edit.js +1 -1
  449. package/src/columns/edit.native.js +3 -3
  450. package/src/comment-author-avatar/edit.js +13 -8
  451. package/src/comment-author-avatar/editor.scss +7 -0
  452. package/src/comment-template/block.json +7 -1
  453. package/src/comment-template/edit.js +102 -40
  454. package/src/comment-template/hooks.js +151 -0
  455. package/src/comment-template/index.php +8 -0
  456. package/src/comment-template/util.js +1 -0
  457. package/src/comments-pagination-next/block.json +8 -1
  458. package/src/comments-pagination-next/index.php +6 -8
  459. package/src/comments-pagination-numbers/block.json +7 -1
  460. package/src/comments-pagination-numbers/index.php +3 -10
  461. package/src/comments-query-loop/block.json +5 -0
  462. package/src/comments-query-loop/edit/comments-inspector-controls.js +22 -4
  463. package/src/comments-query-loop/edit.js +1 -16
  464. package/src/common.scss +1 -1
  465. package/src/cover/controls.native.js +1 -1
  466. package/src/cover/deprecated.js +214 -1
  467. package/src/cover/edit.js +21 -36
  468. package/src/cover/edit.native.js +23 -15
  469. package/src/cover/overlay-color-settings.native.js +6 -7
  470. package/src/cover/save.js +4 -3
  471. package/src/cover/shared.js +2 -2
  472. package/src/cover/style.scss +5 -3
  473. package/src/cover/test/edit.native.js +39 -39
  474. package/src/cover/transforms.js +2 -0
  475. package/src/editor.scss +1 -0
  476. package/src/embed/edit.js +1 -1
  477. package/src/embed/edit.native.js +1 -1
  478. package/src/embed/test/index.native.js +105 -105
  479. package/src/embed/util.js +2 -2
  480. package/src/embed/variations.js +1 -1
  481. package/src/file/edit.js +19 -17
  482. package/src/file/edit.native.js +1 -1
  483. package/src/file/save.js +9 -3
  484. package/src/file/style.native.scss +1 -0
  485. package/src/freeform/edit.js +2 -2
  486. package/src/gallery/edit.js +1 -1
  487. package/src/gallery/gallery.native.js +1 -1
  488. package/src/gallery/index.php +1 -8
  489. package/src/gallery/test/__snapshots__/index.native.js.snap +164 -0
  490. package/src/gallery/test/helpers.native.js +293 -0
  491. package/src/gallery/test/index.native.js +583 -65
  492. package/src/gallery/v1/edit.js +3 -4
  493. package/src/gallery/v1/gallery-image.native.js +3 -3
  494. package/src/gallery/v1/gallery.native.js +2 -2
  495. package/src/group/block.json +1 -0
  496. package/src/group/index.js +2 -54
  497. package/src/group/transforms.js +52 -0
  498. package/src/heading/edit.js +18 -5
  499. package/src/home-link/edit.js +1 -1
  500. package/src/home-link/index.php +1 -19
  501. package/src/image/deprecated.js +105 -1
  502. package/src/image/edit.js +7 -6
  503. package/src/image/edit.native.js +25 -8
  504. package/src/image/editor.scss +0 -18
  505. package/src/image/save.js +0 -8
  506. package/src/image/style.scss +5 -1
  507. package/src/image/test/edit.native.js +1 -11
  508. package/src/image/transforms.js +1 -1
  509. package/src/index.js +2 -3
  510. package/src/index.native.js +2 -2
  511. package/src/latest-posts/edit.js +1 -0
  512. package/src/latest-posts/index.php +1 -1
  513. package/src/media-text/edit.js +20 -2
  514. package/src/media-text/edit.native.js +2 -2
  515. package/src/media-text/media-container.native.js +1 -1
  516. package/src/media-text/style.native.scss +1 -0
  517. package/src/missing/edit.native.js +1 -1
  518. package/src/missing/test/edit-integration.native.js +4 -4
  519. package/src/missing/test/edit.native.js +2 -2
  520. package/src/more/transforms.js +2 -2
  521. package/src/navigation/edit/index.js +212 -88
  522. package/src/navigation/edit/inner-blocks.js +11 -4
  523. package/src/navigation/edit/navigation-menu-selector.js +121 -58
  524. package/src/navigation/edit/placeholder/index.js +64 -111
  525. package/src/navigation/edit/placeholder/placeholder-preview.js +3 -10
  526. package/src/navigation/edit/unsaved-inner-blocks.js +3 -1
  527. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +137 -0
  528. package/src/navigation/edit/use-create-navigation-menu.js +59 -8
  529. package/src/navigation/edit/use-navigation-notice.js +3 -3
  530. package/src/navigation/editor.scss +23 -1
  531. package/src/navigation/index.php +4 -4
  532. package/src/navigation/menu-items-to-blocks.js +1 -1
  533. package/src/navigation/style.scss +22 -3
  534. package/src/navigation/test/menu-items-to-blocks.js +1 -1
  535. package/src/navigation/use-navigation-entities.js +26 -60
  536. package/src/navigation/use-navigation-menu.js +11 -6
  537. package/src/navigation-link/fallback-variations.js +1 -1
  538. package/src/navigation-link/hooks.js +2 -2
  539. package/src/navigation-link/index.php +3 -22
  540. package/src/navigation-link/test/edit.js +5 -5
  541. package/src/navigation-submenu/edit.js +52 -14
  542. package/src/navigation-submenu/index.php +3 -21
  543. package/src/page-list/convert-to-links-modal.js +17 -31
  544. package/src/page-list/edit.js +35 -48
  545. package/src/page-list/editor.scss +0 -10
  546. package/src/page-list/index.php +4 -4
  547. package/src/post-author-name/edit.js +1 -0
  548. package/src/post-author-name/index.php +1 -1
  549. package/src/post-comments-form/edit.js +7 -3
  550. package/src/post-excerpt/edit.js +9 -12
  551. package/src/post-navigation-link/index.php +3 -3
  552. package/src/post-terms/edit.js +2 -1
  553. package/src/query-title/edit.js +0 -1
  554. package/src/search/edit.js +6 -0
  555. package/src/search/edit.native.js +1 -1
  556. package/src/search/index.php +8 -4
  557. package/src/search/test/edit.native.js +0 -1
  558. package/src/separator/save.js +4 -4
  559. package/src/separator/separator-settings.native.js +1 -1
  560. package/src/site-logo/edit.js +1 -1
  561. package/src/site-logo/index.php +1 -1
  562. package/src/social-link/edit.native.js +17 -8
  563. package/src/social-link/test/index.native.js +138 -0
  564. package/src/social-links/deprecated.js +0 -59
  565. package/src/spacer/controls.js +1 -1
  566. package/src/spacer/controls.native.js +1 -1
  567. package/src/table/edit.js +2 -2
  568. package/src/tag-cloud/style.scss +12 -7
  569. package/src/template-part/edit/index.js +61 -71
  570. package/src/template-part/edit/placeholder.js +78 -0
  571. package/src/template-part/edit/selection-modal.js +115 -0
  572. package/src/template-part/edit/title-modal.js +59 -0
  573. package/src/template-part/edit/utils/hooks.js +158 -0
  574. package/src/template-part/editor.scss +16 -74
  575. package/src/template-part/index.js +4 -1
  576. package/src/video/edit.js +4 -4
  577. package/src/video/edit.native.js +3 -3
  578. package/src/video/style.native.scss +1 -0
  579. package/build/navigation/edit/existing-menus-options.js +0 -62
  580. package/build/navigation/edit/existing-menus-options.js.map +0 -1
  581. package/build/navigation/use-convert-classic-menu.js +0 -59
  582. package/build/navigation/use-convert-classic-menu.js.map +0 -1
  583. package/build/template-part/edit/placeholder/index.js +0 -141
  584. package/build/template-part/edit/placeholder/index.js.map +0 -1
  585. package/build/template-part/edit/placeholder/patterns-setup.js +0 -100
  586. package/build/template-part/edit/placeholder/patterns-setup.js.map +0 -1
  587. package/build/template-part/edit/selection/index.js +0 -45
  588. package/build/template-part/edit/selection/index.js.map +0 -1
  589. package/build/template-part/edit/selection/template-part-previews.js +0 -317
  590. package/build/template-part/edit/selection/template-part-previews.js.map +0 -1
  591. package/build-module/navigation/edit/existing-menus-options.js +0 -53
  592. package/build-module/navigation/edit/existing-menus-options.js.map +0 -1
  593. package/build-module/navigation/use-convert-classic-menu.js +0 -47
  594. package/build-module/navigation/use-convert-classic-menu.js.map +0 -1
  595. package/build-module/template-part/edit/placeholder/index.js +0 -124
  596. package/build-module/template-part/edit/placeholder/index.js.map +0 -1
  597. package/build-module/template-part/edit/placeholder/patterns-setup.js +0 -91
  598. package/build-module/template-part/edit/placeholder/patterns-setup.js.map +0 -1
  599. package/build-module/template-part/edit/selection/index.js +0 -35
  600. package/build-module/template-part/edit/selection/index.js.map +0 -1
  601. package/build-module/template-part/edit/selection/template-part-previews.js +0 -298
  602. package/build-module/template-part/edit/selection/template-part-previews.js.map +0 -1
  603. package/src/navigation/edit/existing-menus-options.js +0 -70
  604. package/src/navigation/use-convert-classic-menu.js +0 -58
  605. package/src/template-part/edit/placeholder/index.js +0 -172
  606. package/src/template-part/edit/placeholder/patterns-setup.js +0 -124
  607. package/src/template-part/edit/selection/index.js +0 -37
  608. package/src/template-part/edit/selection/template-part-previews.js +0 -372
@@ -38,9 +38,10 @@ import {
38
38
  createInterpolateElement,
39
39
  } from '@wordpress/element';
40
40
  import { placeCaretAtHorizontalEdge } from '@wordpress/dom';
41
- import { link as linkIcon } from '@wordpress/icons';
41
+ import { link as linkIcon, removeSubmenu } from '@wordpress/icons';
42
42
  import { store as coreStore } from '@wordpress/core-data';
43
43
  import { speak } from '@wordpress/a11y';
44
+ import { createBlock } from '@wordpress/blocks';
44
45
 
45
46
  /**
46
47
  * Internal dependencies
@@ -294,9 +295,11 @@ export default function NavigationSubmenuEdit( {
294
295
  };
295
296
  const { showSubmenuIcon, openSubmenusOnClick } = context;
296
297
  const { saveEntityRecord } = useDispatch( coreStore );
297
- const { __unstableMarkNextChangeAsNotPersistent } = useDispatch(
298
- blockEditorStore
299
- );
298
+
299
+ const {
300
+ __unstableMarkNextChangeAsNotPersistent,
301
+ replaceBlock,
302
+ } = useDispatch( blockEditorStore );
300
303
  const [ isLinkOpen, setIsLinkOpen ] = useState( false );
301
304
  const listItemRef = useRef( null );
302
305
  const isDraggingWithin = useIsDraggingWithin( listItemRef );
@@ -312,6 +315,7 @@ export default function NavigationSubmenuEdit( {
312
315
  selectedBlockHasDescendants,
313
316
  userCanCreatePages,
314
317
  userCanCreatePosts,
318
+ onlyDescendantIsEmptyLink,
315
319
  } = useSelect(
316
320
  ( select ) => {
317
321
  const {
@@ -319,13 +323,31 @@ export default function NavigationSubmenuEdit( {
319
323
  hasSelectedInnerBlock,
320
324
  getSelectedBlockClientId,
321
325
  getBlockParentsByBlockName,
326
+ getBlock,
322
327
  } = select( blockEditorStore );
323
328
 
329
+ let _onlyDescendantIsEmptyLink;
330
+
324
331
  const selectedBlockId = getSelectedBlockClientId();
325
332
 
326
333
  const descendants = getClientIdsOfDescendants( [ clientId ] )
327
334
  .length;
328
335
 
336
+ const selectedBlockDescendants = getClientIdsOfDescendants( [
337
+ selectedBlockId,
338
+ ] );
339
+
340
+ // Check for a single descendant in the submenu. If that block
341
+ // is a link block in a "placeholder" state with no label then
342
+ // we can consider as an "empty" link.
343
+ if ( selectedBlockDescendants?.length === 1 ) {
344
+ const singleBlock = getBlock( selectedBlockDescendants[ 0 ] );
345
+
346
+ _onlyDescendantIsEmptyLink =
347
+ singleBlock?.name === 'core/navigation-link' &&
348
+ ! singleBlock?.attributes?.label;
349
+ }
350
+
329
351
  return {
330
352
  isAtMaxNesting:
331
353
  getBlockParentsByBlockName( clientId, name ).length >=
@@ -341,9 +363,7 @@ export default function NavigationSubmenuEdit( {
341
363
  false
342
364
  ),
343
365
  hasDescendants: !! descendants,
344
- selectedBlockHasDescendants: !! getClientIdsOfDescendants( [
345
- selectedBlockId,
346
- ] )?.length,
366
+ selectedBlockHasDescendants: !! selectedBlockDescendants?.length,
347
367
  userCanCreatePages: select( coreStore ).canUser(
348
368
  'create',
349
369
  'pages'
@@ -352,6 +372,7 @@ export default function NavigationSubmenuEdit( {
352
372
  'create',
353
373
  'posts'
354
374
  ),
375
+ onlyDescendantIsEmptyLink: _onlyDescendantIsEmptyLink,
355
376
  };
356
377
  },
357
378
  [ clientId ]
@@ -367,7 +388,7 @@ export default function NavigationSubmenuEdit( {
367
388
  }
368
389
  }, [] );
369
390
 
370
- // Store the colors from context as attributes for rendering
391
+ // Store the colors from context as attributes for rendering.
371
392
  useEffect( () => {
372
393
  // This side-effect should not create an undo level as those should
373
394
  // only be created via user interactions. Mark this change as
@@ -479,7 +500,7 @@ export default function NavigationSubmenuEdit( {
479
500
  onKeyDown,
480
501
  } );
481
502
 
482
- // Always use overlay colors for submenus
503
+ // Always use overlay colors for submenus.
483
504
  const innerBlocksColors = getColors( context, true );
484
505
 
485
506
  if ( isAtMaxNesting ) {
@@ -529,6 +550,14 @@ export default function NavigationSubmenuEdit( {
529
550
 
530
551
  const ParentElement = openSubmenusOnClick ? 'button' : 'a';
531
552
 
553
+ function transformToLink() {
554
+ const newLinkBlock = createBlock( 'core/navigation-link', attributes );
555
+ replaceBlock( clientId, newLinkBlock );
556
+ }
557
+
558
+ const canConvertToLink =
559
+ ! selectedBlockHasDescendants || onlyDescendantIsEmptyLink;
560
+
532
561
  return (
533
562
  <Fragment>
534
563
  <BlockControls>
@@ -542,6 +571,15 @@ export default function NavigationSubmenuEdit( {
542
571
  onClick={ () => setIsLinkOpen( true ) }
543
572
  />
544
573
  ) }
574
+
575
+ <ToolbarButton
576
+ name="revert"
577
+ icon={ removeSubmenu }
578
+ title={ __( 'Convert to Link' ) }
579
+ onClick={ transformToLink }
580
+ className="wp-block-navigation__submenu__revert"
581
+ isDisabled={ ! canConvertToLink }
582
+ />
545
583
  </ToolbarGroup>
546
584
  </BlockControls>
547
585
  <InspectorControls>
@@ -657,12 +695,12 @@ export default function NavigationSubmenuEdit( {
657
695
  />
658
696
  </Popover>
659
697
  ) }
660
- { ( showSubmenuIcon || openSubmenusOnClick ) && (
661
- <span className="wp-block-navigation__submenu-icon">
662
- <ItemSubmenuIcon />
663
- </span>
664
- ) }
665
698
  </ParentElement>
699
+ { ( showSubmenuIcon || openSubmenusOnClick ) && (
700
+ <span className="wp-block-navigation__submenu-icon">
701
+ <ItemSubmenuIcon />
702
+ </span>
703
+ ) }
666
704
  <div { ...innerBlocksProps } />
667
705
  </div>
668
706
  </Fragment>
@@ -167,25 +167,7 @@ function render_block_core_navigation_submenu( $attributes, $content, $block ) {
167
167
  $label = '';
168
168
 
169
169
  if ( isset( $attributes['label'] ) ) {
170
- $label .= wp_kses(
171
- $attributes['label'],
172
- array(
173
- 'code' => array(),
174
- 'em' => array(),
175
- 'img' => array(
176
- 'scale' => array(),
177
- 'class' => array(),
178
- 'style' => array(),
179
- 'src' => array(),
180
- 'alt' => array(),
181
- ),
182
- 's' => array(),
183
- 'span' => array(
184
- 'style' => array(),
185
- ),
186
- 'strong' => array(),
187
- )
188
- );
170
+ $label .= wp_kses_post( $attributes['label'] );
189
171
  }
190
172
 
191
173
  $aria_label = sprintf(
@@ -245,10 +227,10 @@ function render_block_core_navigation_submenu( $attributes, $content, $block ) {
245
227
 
246
228
  $html .= '</span>';
247
229
 
248
- $html .= '<span class="wp-block-navigation__submenu-icon">' . block_core_navigation_submenu_render_submenu_icon() . '</span>';
249
-
250
230
  $html .= '</button>';
251
231
 
232
+ $html .= '<span class="wp-block-navigation__submenu-icon">' . block_core_navigation_submenu_render_submenu_icon() . '</span>';
233
+
252
234
  }
253
235
 
254
236
  if ( $has_submenu ) {
@@ -3,8 +3,8 @@
3
3
  */
4
4
  import { Button, Modal } from '@wordpress/components';
5
5
  import { __ } from '@wordpress/i18n';
6
- import { useDispatch, useSelect } from '@wordpress/data';
7
- import { store as coreDataStore } from '@wordpress/core-data';
6
+ import { useDispatch } from '@wordpress/data';
7
+ import { __experimentalUseEntityRecords as useEntityRecords } from '@wordpress/core-data';
8
8
  import { createBlock as create } from '@wordpress/blocks';
9
9
  import { store as blockEditorStore } from '@wordpress/block-editor';
10
10
 
@@ -24,7 +24,7 @@ export const convertSelectedBlockToNavigationLinks = ( {
24
24
  const linkMap = {};
25
25
  const navigationLinks = [];
26
26
  pages.forEach( ( { id, title, link: url, type, parent } ) => {
27
- // See if a placeholder exists. This is created if children appear before parents in list
27
+ // See if a placeholder exists. This is created if children appear before parents in list.
28
28
  const innerBlocks = linkMap[ id ]?.innerBlocks ?? [];
29
29
  linkMap[ id ] = createBlock(
30
30
  'core/navigation-link',
@@ -42,7 +42,7 @@ export const convertSelectedBlockToNavigationLinks = ( {
42
42
  navigationLinks.push( linkMap[ id ] );
43
43
  } else {
44
44
  if ( ! linkMap[ parent ] ) {
45
- // Use a placeholder if the child appears before parent in list
45
+ // Use a placeholder if the child appears before parent in list.
46
46
  linkMap[ parent ] = { innerBlocks: [] };
47
47
  }
48
48
  const parentLinkInnerBlocks = linkMap[ parent ].innerBlocks;
@@ -74,34 +74,20 @@ export const convertSelectedBlockToNavigationLinks = ( {
74
74
  };
75
75
 
76
76
  export default function ConvertToLinksModal( { onClose, clientId } ) {
77
- const { pages, pagesFinished } = useSelect(
78
- ( select ) => {
79
- const { getEntityRecords, hasFinishedResolution } = select(
80
- coreDataStore
81
- );
82
- const query = [
83
- 'postType',
84
- 'page',
85
- {
86
- per_page: MAX_PAGE_COUNT,
87
- _fields: PAGE_FIELDS,
88
- // TODO: When https://core.trac.wordpress.org/ticket/39037 REST API support for multiple orderby
89
- // values is resolved, update 'orderby' to [ 'menu_order', 'post_title' ] to provide a consistent
90
- // sort.
91
- orderby: 'menu_order',
92
- order: 'asc',
93
- },
94
- ];
95
- return {
96
- pages: getEntityRecords( ...query ),
97
- pagesFinished: hasFinishedResolution(
98
- 'getEntityRecords',
99
- query
100
- ),
101
- };
102
- },
103
- [ clientId ]
77
+ const { records: pages, hasResolved: pagesFinished } = useEntityRecords(
78
+ 'postType',
79
+ 'page',
80
+ {
81
+ per_page: MAX_PAGE_COUNT,
82
+ _fields: PAGE_FIELDS,
83
+ // TODO: When https://core.trac.wordpress.org/ticket/39037 REST API support for multiple orderby
84
+ // values is resolved, update 'orderby' to [ 'menu_order', 'post_title' ] to provide a consistent
85
+ // sort.
86
+ orderby: 'menu_order',
87
+ order: 'asc',
88
+ }
104
89
  );
90
+
105
91
  const { replaceBlock } = useDispatch( blockEditorStore );
106
92
 
107
93
  return (
@@ -12,16 +12,14 @@ import {
12
12
  useBlockProps,
13
13
  getColorClassName,
14
14
  } from '@wordpress/block-editor';
15
- import {
16
- ToolbarButton,
17
- Placeholder,
18
- Spinner,
19
- Notice,
20
- } from '@wordpress/components';
15
+ import { ToolbarButton, Spinner, Notice } from '@wordpress/components';
21
16
  import { __ } from '@wordpress/i18n';
22
17
  import { useMemo, useState, memo } from '@wordpress/element';
23
18
  import { useSelect } from '@wordpress/data';
24
- import { store as coreStore } from '@wordpress/core-data';
19
+ import {
20
+ store as coreStore,
21
+ __experimentalUseEntityRecords as useEntityRecords,
22
+ } from '@wordpress/core-data';
25
23
 
26
24
  /**
27
25
  * Internal dependencies
@@ -77,9 +75,7 @@ export default function PageListEdit( { context, clientId } ) {
77
75
  ) }
78
76
  { ! hasResolvedPages && (
79
77
  <div { ...blockProps }>
80
- <Placeholder>
81
- <Spinner />
82
- </Placeholder>
78
+ <Spinner />
83
79
  </div>
84
80
  ) }
85
81
 
@@ -120,28 +116,16 @@ function useFrontPageId() {
120
116
  }
121
117
 
122
118
  function usePageData() {
123
- const { pages, hasResolvedPages } = useSelect( ( select ) => {
124
- const { getEntityRecords, hasFinishedResolution } = select( coreStore );
125
-
126
- return {
127
- pages: getEntityRecords( 'postType', 'page', {
128
- orderby: 'menu_order',
129
- order: 'asc',
130
- _fields: [ 'id', 'link', 'parent', 'title', 'menu_order' ],
131
- per_page: -1,
132
- } ),
133
- hasResolvedPages: hasFinishedResolution( 'getEntityRecords', [
134
- 'postType',
135
- 'page',
136
- {
137
- orderby: 'menu_order',
138
- order: 'asc',
139
- _fields: [ 'id', 'link', 'parent', 'title', 'menu_order' ],
140
- per_page: -1,
141
- },
142
- ] ),
143
- };
144
- }, [] );
119
+ const { records: pages, hasResolved: hasResolvedPages } = useEntityRecords(
120
+ 'postType',
121
+ 'page',
122
+ {
123
+ orderby: 'menu_order',
124
+ order: 'asc',
125
+ _fields: [ 'id', 'link', 'parent', 'title', 'menu_order' ],
126
+ per_page: -1,
127
+ }
128
+ );
145
129
 
146
130
  return useMemo( () => {
147
131
  // TODO: Once the REST API supports passing multiple values to
@@ -196,7 +180,17 @@ const PageItems = memo( function PageItems( {
196
180
  } ) }
197
181
  >
198
182
  { hasChildren && context.openSubmenusOnClick ? (
199
- <ItemSubmenuToggle title={ page.title?.rendered } />
183
+ <>
184
+ <button
185
+ className="wp-block-navigation-item__content wp-block-navigation-submenu__toggle"
186
+ aria-expanded="false"
187
+ >
188
+ { page.title?.rendered }
189
+ </button>
190
+ <span className="wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon">
191
+ <ItemSubmenuIcon />
192
+ </span>
193
+ </>
200
194
  ) : (
201
195
  <a
202
196
  className={ classnames(
@@ -213,7 +207,14 @@ const PageItems = memo( function PageItems( {
213
207
  { hasChildren && (
214
208
  <>
215
209
  { ! context.openSubmenusOnClick &&
216
- context.showSubmenuIcon && <ItemSubmenuToggle /> }
210
+ context.showSubmenuIcon && (
211
+ <button
212
+ className="wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon"
213
+ aria-expanded="false"
214
+ >
215
+ <ItemSubmenuIcon />
216
+ </button>
217
+ ) }
217
218
  <ul
218
219
  className={ classnames( 'submenu-container', {
219
220
  'wp-block-navigation__submenu-container': isNavigationChild,
@@ -232,17 +233,3 @@ const PageItems = memo( function PageItems( {
232
233
  );
233
234
  } );
234
235
  } );
235
-
236
- function ItemSubmenuToggle( { title } ) {
237
- return (
238
- <button
239
- className="wp-block-navigation-item__content wp-block-navigation-submenu__toggle"
240
- aria-expanded="false"
241
- >
242
- { title }
243
- <span className="wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon">
244
- <ItemSubmenuIcon />
245
- </span>
246
- </button>
247
- );
248
- }
@@ -27,16 +27,6 @@
27
27
  pointer-events: none;
28
28
  }
29
29
 
30
- .wp-block-page-list .components-placeholder {
31
- min-height: 0;
32
- padding: 0;
33
- background-color: inherit;
34
-
35
- .components-spinner {
36
- margin: 0.5em;
37
- }
38
- }
39
-
40
30
  // Modal that shows conversion option.
41
31
  .wp-block-page-list-modal {
42
32
  @include break-small() {
@@ -178,7 +178,7 @@ function block_core_page_list_render_nested_page_list( $open_submenus_on_click,
178
178
  $css_class .= ' menu-item-home';
179
179
  }
180
180
 
181
- $title = wp_kses( $page['title'], wp_kses_allowed_html( 'post' ) );
181
+ $title = wp_kses_post( $page['title'] );
182
182
  $aria_label = sprintf(
183
183
  /* translators: Accessibility text. %s: Parent page title. */
184
184
  __( '%s submenu' ),
@@ -188,8 +188,8 @@ function block_core_page_list_render_nested_page_list( $open_submenus_on_click,
188
188
  $markup .= '<li class="wp-block-pages-list__item' . esc_attr( $css_class ) . '"' . $style_attribute . '>';
189
189
 
190
190
  if ( isset( $page['children'] ) && $is_navigation_child && $open_submenus_on_click ) {
191
- $markup .= '<button aria-label="' . esc_attr( $aria_label ) . '" class="' . esc_attr( $navigation_child_content_class ) . ' wp-block-navigation-submenu__toggle" aria-expanded="false">' . $title . '<span class="wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none" aria-hidden="true" focusable="false"><path d="M1.50002 4L6.00002 8L10.5 4" stroke-width="1.5"></path></svg></span>' .
192
- '</button>';
191
+ $markup .= '<button aria-label="' . esc_attr( $aria_label ) . '" class="' . esc_attr( $navigation_child_content_class ) . ' wp-block-navigation-submenu__toggle" aria-expanded="false">' . esc_html( $title ) .
192
+ '</button>' . '<span class="wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none" aria-hidden="true" focusable="false"><path d="M1.50002 4L6.00002 8L10.5 4" stroke-width="1.5"></path></svg></span>';
193
193
  } else {
194
194
  $markup .= '<a class="wp-block-pages-list__item__link' . esc_attr( $navigation_child_content_class ) . '" href="' . esc_url( $page['link'] ) . '"' . $aria_current . '>' . $title . '</a>';
195
195
  }
@@ -197,7 +197,7 @@ function block_core_page_list_render_nested_page_list( $open_submenus_on_click,
197
197
  if ( isset( $page['children'] ) ) {
198
198
  if ( $is_navigation_child && $show_submenu_icons && ! $open_submenus_on_click ) {
199
199
  $markup .= '<button aria-label="' . esc_attr( $aria_label ) . '" class="wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle" aria-expanded="false">';
200
- $markup .= '<span class="wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none" aria-hidden="true" focusable="false"><path d="M1.50002 4L6.00002 8L10.5 4" stroke-width="1.5"></path></svg></span>';
200
+ $markup .= '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none" aria-hidden="true" focusable="false"><path d="M1.50002 4L6.00002 8L10.5 4" stroke-width="1.5"></path></svg>';
201
201
  $markup .= '</button>';
202
202
  }
203
203
  $markup .= '<ul class="submenu-container';
@@ -50,6 +50,7 @@ function PostAuthorNameEdit( {
50
50
  <a
51
51
  href="#author-pseudo-link"
52
52
  onClick={ ( event ) => event.preventDefault() }
53
+ className="wp-block-post-author-name__link"
53
54
  >
54
55
  { displayName }
55
56
  </a>
@@ -27,7 +27,7 @@ function render_block_core_post_author_name( $attributes, $content, $block ) {
27
27
  $align_class_name = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}";
28
28
 
29
29
  if ( isset( $attributes['isLink'] ) && $attributes['isLink'] ) {
30
- $author_name = sprintf( '<a href="%1$s" target="%2$s" class="wp-block-author-name__link">%3$s</a>', get_author_posts_url( $author_id ), esc_attr( $attributes['linkTarget'] ), $author_name );
30
+ $author_name = sprintf( '<a href="%1$s" target="%2$s" class="wp-block-post-author-name__link">%3$s</a>', get_author_posts_url( $author_id ), esc_attr( $attributes['linkTarget'] ), $author_name );
31
31
  }
32
32
 
33
33
  $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $align_class_name ) );
@@ -13,7 +13,7 @@ import {
13
13
  useBlockProps,
14
14
  } from '@wordpress/block-editor';
15
15
  import { useEntityProp } from '@wordpress/core-data';
16
- import { __ } from '@wordpress/i18n';
16
+ import { __, sprintf } from '@wordpress/i18n';
17
17
 
18
18
  export default function PostCommentsFormEdit( {
19
19
  attributes,
@@ -55,8 +55,12 @@ export default function PostCommentsFormEdit( {
55
55
 
56
56
  { 'open' !== commentStatus && (
57
57
  <Warning>
58
- { __(
59
- 'Post Comments Form block: comments to this post are not allowed.'
58
+ { sprintf(
59
+ /* translators: 1: Post type (i.e. "post", "page") */
60
+ __(
61
+ 'Post Comments Form block: comments to this %s are not allowed.'
62
+ ),
63
+ postType
60
64
  ) }
61
65
  </Warning>
62
66
  ) }
@@ -7,7 +7,7 @@ import classnames from 'classnames';
7
7
  * WordPress dependencies
8
8
  */
9
9
  import { useEntityProp } from '@wordpress/core-data';
10
- import { useMemo, RawHTML } from '@wordpress/element';
10
+ import { useMemo } from '@wordpress/element';
11
11
  import {
12
12
  AlignmentToolbar,
13
13
  BlockControls,
@@ -16,7 +16,7 @@ import {
16
16
  Warning,
17
17
  useBlockProps,
18
18
  } from '@wordpress/block-editor';
19
- import { PanelBody, ToggleControl, Disabled } from '@wordpress/components';
19
+ import { PanelBody, ToggleControl } from '@wordpress/components';
20
20
  import { __ } from '@wordpress/i18n';
21
21
 
22
22
  /**
@@ -83,12 +83,12 @@ export default function PostExcerptEditor( {
83
83
  withoutInteractiveFormatting={ true }
84
84
  />
85
85
  );
86
+ const excerptClassName = classnames( 'wp-block-post-excerpt__excerpt', {
87
+ 'is-inline': ! showMoreOnNewLine,
88
+ } );
86
89
  const excerptContent = isEditable ? (
87
90
  <RichText
88
- className={
89
- ! showMoreOnNewLine &&
90
- 'wp-block-post-excerpt__excerpt is-inline'
91
- }
91
+ className={ excerptClassName }
92
92
  aria-label={ __( 'Post excerpt text' ) }
93
93
  value={
94
94
  rawExcerpt ||
@@ -99,12 +99,9 @@ export default function PostExcerptEditor( {
99
99
  tagName="p"
100
100
  />
101
101
  ) : (
102
- ( renderedExcerpt && (
103
- <Disabled>
104
- <RawHTML key="html">{ renderedExcerpt }</RawHTML>
105
- </Disabled>
106
- ) ) ||
107
- __( 'No post excerpt found' )
102
+ <p className={ excerptClassName }>
103
+ { strippedRenderedExcerpt || __( 'No post excerpt found' ) }
104
+ </p>
108
105
  );
109
106
  return (
110
107
  <>
@@ -49,13 +49,13 @@ function render_block_core_post_navigation_link( $attributes, $content ) {
49
49
  */
50
50
  if ( ! $attributes['linkLabel'] ) {
51
51
  if ( $label ) {
52
- $format = '<span class="post-navigation-link__label">' . esc_html( $label ) . '</span> %link';
52
+ $format = '<span class="post-navigation-link__label">' . wp_kses_post( $label ) . '</span> %link';
53
53
  }
54
54
  $link = '%title';
55
55
  } elseif ( isset( $attributes['linkLabel'] ) && $attributes['linkLabel'] ) {
56
56
  // If the label link option is enabled and there is a custom label, display it before the title.
57
57
  if ( $label ) {
58
- $link = '<span class="post-navigation-link__label">' . esc_html( $label ) . '</span> <span class="post-navigation-link__title">%title</title>';
58
+ $link = '<span class="post-navigation-link__label">' . wp_kses_post( $label ) . '</span> <span class="post-navigation-link__title">%title</span>';
59
59
  } else {
60
60
  /*
61
61
  * If the label link option is enabled and there is no custom label,
@@ -64,7 +64,7 @@ function render_block_core_post_navigation_link( $attributes, $content ) {
64
64
  $label = 'next' === $navigation_type ? _x( 'Next:', 'label before the title of the next post' ) : _x( 'Previous:', 'label before the title of the previous post' );
65
65
  $link = sprintf(
66
66
  '<span class="post-navigation-link__label">%1$s</span> <span class="post-navigation-link__title">%2$s</span>',
67
- esc_html( $label ),
67
+ wp_kses_post( $label ),
68
68
  '%title'
69
69
  );
70
70
  }
@@ -2,6 +2,7 @@
2
2
  * External dependencies
3
3
  */
4
4
  import classnames from 'classnames';
5
+ import { unescape } from 'lodash';
5
6
 
6
7
  /**
7
8
  * WordPress dependencies
@@ -88,7 +89,7 @@ export default function PostTermsEdit( {
88
89
  href={ postTerm.link }
89
90
  onClick={ ( event ) => event.preventDefault() }
90
91
  >
91
- { postTerm.name }
92
+ { unescape( postTerm.name ) }
92
93
  </a>
93
94
  ) )
94
95
  .reduce( ( prev, curr ) => (
@@ -6,7 +6,6 @@ import classnames from 'classnames';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- // import { useSelect, useDispatch } from '@wordpress/data';
10
9
  import {
11
10
  AlignmentControl,
12
11
  BlockControls,
@@ -32,6 +32,7 @@ import {
32
32
  import { useInstanceId } from '@wordpress/compose';
33
33
  import { Icon, search } from '@wordpress/icons';
34
34
  import { __ } from '@wordpress/i18n';
35
+ import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
35
36
 
36
37
  /**
37
38
  * Internal dependencies
@@ -257,6 +258,11 @@ export default function SearchEdit( {
257
258
  type="button"
258
259
  className={ buttonClasses }
259
260
  style={ buttonStyles }
261
+ aria-label={
262
+ buttonText
263
+ ? stripHTML( buttonText )
264
+ : __( 'Search' )
265
+ }
260
266
  >
261
267
  <Icon icon={ search } />
262
268
  </button>
@@ -307,7 +307,7 @@ export default function SearchEdit( {
307
307
  className="wp-block-search__input"
308
308
  style={ inputStyle }
309
309
  numberOfLines={ 1 }
310
- ellipsizeMode="tail" // currently only works on ios
310
+ ellipsizeMode="tail" // Currently only works on ios.
311
311
  label={ null }
312
312
  value={ placeholder }
313
313
  placeholder={
@@ -72,6 +72,7 @@ function render_block_core_search( $attributes ) {
72
72
  if ( $show_button ) {
73
73
  $button_internal_markup = '';
74
74
  $button_classes = $color_classes;
75
+ $aria_label = '';
75
76
 
76
77
  if ( ! $is_button_inside ) {
77
78
  $button_classes .= ' ' . $border_color_classes;
@@ -81,17 +82,20 @@ function render_block_core_search( $attributes ) {
81
82
  $button_internal_markup = wp_kses_post( $attributes['buttonText'] );
82
83
  }
83
84
  } else {
84
- $button_classes .= ' has-icon';
85
+ $aria_label = sprintf( 'aria-label="%s"', esc_attr( wp_strip_all_tags( $attributes['buttonText'] ) ) );
86
+ $button_classes .= ' has-icon';
87
+
85
88
  $button_internal_markup =
86
89
  '<svg id="search-icon" class="search-icon" viewBox="0 0 24 24" width="24" height="24">
87
- <path d="M13.5 6C10.5 6 8 8.5 8 11.5c0 1.1.3 2.1.9 3l-3.4 3 1 1.1 3.4-2.9c1 .9 2.2 1.4 3.6 1.4 3 0 5.5-2.5 5.5-5.5C19 8.5 16.5 6 13.5 6zm0 9.5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z"></path>
88
- </svg>';
90
+ <path d="M13.5 6C10.5 6 8 8.5 8 11.5c0 1.1.3 2.1.9 3l-3.4 3 1 1.1 3.4-2.9c1 .9 2.2 1.4 3.6 1.4 3 0 5.5-2.5 5.5-5.5C19 8.5 16.5 6 13.5 6zm0 9.5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z"></path>
91
+ </svg>';
89
92
  }
90
93
 
91
94
  $button_markup = sprintf(
92
- '<button type="submit" class="wp-block-search__button %s" %s>%s</button>',
95
+ '<button type="submit" class="wp-block-search__button %s" %s %s>%s</button>',
93
96
  esc_attr( $button_classes ),
94
97
  $inline_styles['button'],
98
+ $aria_label,
95
99
  $button_internal_markup
96
100
  );
97
101
  }
@@ -12,7 +12,6 @@ import { Icon } from '@wordpress/components';
12
12
  * Internal dependencies
13
13
  */
14
14
  import SearchEdit from '../edit.native.js';
15
-
16
15
  // react-native-aztec shouldn't be mocked because these tests are based on
17
16
  // snapshot testing where we want to keep the original component.
18
17
  jest.unmock( '@wordpress/react-native-aztec' );