@wordpress/block-library 8.0.0 → 8.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/LICENSE.md +1 -1
  3. package/build/archives/edit.js +1 -0
  4. package/build/archives/edit.js.map +1 -1
  5. package/build/audio/edit.js +2 -0
  6. package/build/audio/edit.js.map +1 -1
  7. package/build/categories/edit.js +1 -1
  8. package/build/categories/edit.js.map +1 -1
  9. package/build/comments/edit/comments-inspector-controls.js +9 -3
  10. package/build/comments/edit/comments-inspector-controls.js.map +1 -1
  11. package/build/cover/edit/inspector-controls.js +1 -1
  12. package/build/cover/edit/inspector-controls.js.map +1 -1
  13. package/build/embed/embed-preview.js +1 -0
  14. package/build/embed/embed-preview.js.map +1 -1
  15. package/build/file/inspector.js +1 -0
  16. package/build/file/inspector.js.map +1 -1
  17. package/build/freeform/edit.js +21 -6
  18. package/build/freeform/edit.js.map +1 -1
  19. package/build/freeform/modal.js +97 -0
  20. package/build/freeform/modal.js.map +1 -0
  21. package/build/gallery/edit.js +15 -2
  22. package/build/gallery/edit.js.map +1 -1
  23. package/build/gallery/gallery.js +3 -16
  24. package/build/gallery/gallery.js.map +1 -1
  25. package/build/gallery/v1/edit.js +2 -0
  26. package/build/gallery/v1/edit.js.map +1 -1
  27. package/build/group/edit.js +1 -0
  28. package/build/group/edit.js.map +1 -1
  29. package/build/group/index.js +3 -0
  30. package/build/group/index.js.map +1 -1
  31. package/build/image/image.js +7 -10
  32. package/build/image/image.js.map +1 -1
  33. package/build/latest-posts/edit.js +11 -8
  34. package/build/latest-posts/edit.js.map +1 -1
  35. package/build/media-text/edit.js +1 -0
  36. package/build/media-text/edit.js.map +1 -1
  37. package/build/missing/edit.native.js +2 -2
  38. package/build/missing/edit.native.js.map +1 -1
  39. package/build/navigation/edit/index.js +9 -7
  40. package/build/navigation/edit/index.js.map +1 -1
  41. package/build/navigation/edit/menu-inspector-controls.js +81 -22
  42. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  43. package/build/navigation/edit/navigation-menu-selector.js +15 -10
  44. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  45. package/build/navigation/edit/utils.js +81 -0
  46. package/build/navigation/edit/utils.js.map +1 -1
  47. package/build/navigation/leaf-more-menu.js +95 -0
  48. package/build/navigation/leaf-more-menu.js.map +1 -0
  49. package/build/navigation-link/edit.js +10 -61
  50. package/build/navigation-link/edit.js.map +1 -1
  51. package/build/navigation-link/update-attributes.js +3 -3
  52. package/build/navigation-link/update-attributes.js.map +1 -1
  53. package/build/navigation-submenu/edit.js +7 -72
  54. package/build/navigation-submenu/edit.js.map +1 -1
  55. package/build/page-list/edit.js +16 -15
  56. package/build/page-list/edit.js.map +1 -1
  57. package/build/page-list/index.js +29 -2
  58. package/build/page-list/index.js.map +1 -1
  59. package/build/page-list-item/edit.js +9 -5
  60. package/build/page-list-item/edit.js.map +1 -1
  61. package/build/page-list-item/index.js +2 -1
  62. package/build/page-list-item/index.js.map +1 -1
  63. package/build/post-author/edit.js +2 -0
  64. package/build/post-author/edit.js.map +1 -1
  65. package/build/post-featured-image/dimension-controls.js +1 -0
  66. package/build/post-featured-image/dimension-controls.js.map +1 -1
  67. package/build/post-featured-image/overlay.js +0 -1
  68. package/build/post-featured-image/overlay.js.map +1 -1
  69. package/build/query/edit/index.js +2 -1
  70. package/build/query/edit/index.js.map +1 -1
  71. package/build/query/edit/inspector-controls/index.js +11 -5
  72. package/build/query/edit/inspector-controls/index.js.map +1 -1
  73. package/build/query/edit/inspector-controls/order-control.js +1 -0
  74. package/build/query/edit/inspector-controls/order-control.js.map +1 -1
  75. package/build/query/edit/inspector-controls/sticky-control.js +1 -0
  76. package/build/query/edit/inspector-controls/sticky-control.js.map +1 -1
  77. package/build/query/edit/inspector-controls/taxonomy-controls.js +101 -37
  78. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  79. package/build/query/edit/query-content.js +10 -4
  80. package/build/query/edit/query-content.js.map +1 -1
  81. package/build/query/edit/query-placeholder.js +17 -12
  82. package/build/query/edit/query-placeholder.js.map +1 -1
  83. package/build/query/utils.js +73 -1
  84. package/build/query/utils.js.map +1 -1
  85. package/build/search/edit.js +2 -2
  86. package/build/search/edit.js.map +1 -1
  87. package/build/social-link/edit.js +2 -1
  88. package/build/social-link/edit.js.map +1 -1
  89. package/build/social-links/edit.js +0 -1
  90. package/build/social-links/edit.js.map +1 -1
  91. package/build/table/edit.js +1 -0
  92. package/build/table/edit.js.map +1 -1
  93. package/build/table-of-contents/edit.js +1 -1
  94. package/build/table-of-contents/edit.js.map +1 -1
  95. package/build/tag-cloud/edit.js +1 -0
  96. package/build/tag-cloud/edit.js.map +1 -1
  97. package/build/template-part/edit/advanced-controls.js +23 -2
  98. package/build/template-part/edit/advanced-controls.js.map +1 -1
  99. package/build/template-part/edit/import-controls.js +160 -0
  100. package/build/template-part/edit/import-controls.js.map +1 -0
  101. package/build/template-part/edit/index.js +2 -1
  102. package/build/template-part/edit/index.js.map +1 -1
  103. package/build/template-part/edit/utils/transformers.js +48 -0
  104. package/build/template-part/edit/utils/transformers.js.map +1 -0
  105. package/build/video/edit-common-settings.js +6 -5
  106. package/build/video/edit-common-settings.js.map +1 -1
  107. package/build/video/edit.js +1 -0
  108. package/build/video/edit.js.map +1 -1
  109. package/build/video/tracks-editor.js +1 -0
  110. package/build/video/tracks-editor.js.map +1 -1
  111. package/build-module/archives/edit.js +1 -0
  112. package/build-module/archives/edit.js.map +1 -1
  113. package/build-module/audio/edit.js +2 -0
  114. package/build-module/audio/edit.js.map +1 -1
  115. package/build-module/categories/edit.js +1 -1
  116. package/build-module/categories/edit.js.map +1 -1
  117. package/build-module/comments/edit/comments-inspector-controls.js +9 -3
  118. package/build-module/comments/edit/comments-inspector-controls.js.map +1 -1
  119. package/build-module/cover/edit/inspector-controls.js +3 -3
  120. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  121. package/build-module/embed/embed-preview.js +1 -0
  122. package/build-module/embed/embed-preview.js.map +1 -1
  123. package/build-module/file/inspector.js +1 -0
  124. package/build-module/file/inspector.js.map +1 -1
  125. package/build-module/freeform/edit.js +22 -8
  126. package/build-module/freeform/edit.js.map +1 -1
  127. package/build-module/freeform/modal.js +90 -0
  128. package/build-module/freeform/modal.js.map +1 -0
  129. package/build-module/gallery/edit.js +16 -3
  130. package/build-module/gallery/edit.js.map +1 -1
  131. package/build-module/gallery/gallery.js +4 -16
  132. package/build-module/gallery/gallery.js.map +1 -1
  133. package/build-module/gallery/v1/edit.js +2 -0
  134. package/build-module/gallery/v1/edit.js.map +1 -1
  135. package/build-module/group/edit.js +1 -0
  136. package/build-module/group/edit.js.map +1 -1
  137. package/build-module/group/index.js +3 -0
  138. package/build-module/group/index.js.map +1 -1
  139. package/build-module/image/image.js +7 -10
  140. package/build-module/image/image.js.map +1 -1
  141. package/build-module/latest-posts/edit.js +12 -9
  142. package/build-module/latest-posts/edit.js.map +1 -1
  143. package/build-module/media-text/edit.js +1 -0
  144. package/build-module/media-text/edit.js.map +1 -1
  145. package/build-module/missing/edit.native.js +2 -2
  146. package/build-module/missing/edit.native.js.map +1 -1
  147. package/build-module/navigation/edit/index.js +9 -7
  148. package/build-module/navigation/edit/index.js.map +1 -1
  149. package/build-module/navigation/edit/menu-inspector-controls.js +80 -25
  150. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  151. package/build-module/navigation/edit/navigation-menu-selector.js +16 -11
  152. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  153. package/build-module/navigation/edit/utils.js +75 -0
  154. package/build-module/navigation/edit/utils.js.map +1 -1
  155. package/build-module/navigation/leaf-more-menu.js +76 -0
  156. package/build-module/navigation/leaf-more-menu.js.map +1 -0
  157. package/build-module/navigation-link/edit.js +10 -62
  158. package/build-module/navigation-link/edit.js.map +1 -1
  159. package/build-module/navigation-link/update-attributes.js +3 -3
  160. package/build-module/navigation-link/update-attributes.js.map +1 -1
  161. package/build-module/navigation-submenu/edit.js +6 -72
  162. package/build-module/navigation-submenu/edit.js.map +1 -1
  163. package/build-module/page-list/edit.js +17 -15
  164. package/build-module/page-list/edit.js.map +1 -1
  165. package/build-module/page-list/index.js +30 -3
  166. package/build-module/page-list/index.js.map +1 -1
  167. package/build-module/page-list-item/edit.js +9 -6
  168. package/build-module/page-list-item/edit.js.map +1 -1
  169. package/build-module/page-list-item/index.js +2 -1
  170. package/build-module/page-list-item/index.js.map +1 -1
  171. package/build-module/post-author/edit.js +2 -0
  172. package/build-module/post-author/edit.js.map +1 -1
  173. package/build-module/post-featured-image/dimension-controls.js +1 -0
  174. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  175. package/build-module/post-featured-image/overlay.js +0 -1
  176. package/build-module/post-featured-image/overlay.js.map +1 -1
  177. package/build-module/query/edit/index.js +2 -1
  178. package/build-module/query/edit/index.js.map +1 -1
  179. package/build-module/query/edit/inspector-controls/index.js +11 -5
  180. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  181. package/build-module/query/edit/inspector-controls/order-control.js +1 -0
  182. package/build-module/query/edit/inspector-controls/order-control.js.map +1 -1
  183. package/build-module/query/edit/inspector-controls/sticky-control.js +1 -0
  184. package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -1
  185. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +99 -35
  186. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  187. package/build-module/query/edit/query-content.js +9 -2
  188. package/build-module/query/edit/query-content.js.map +1 -1
  189. package/build-module/query/edit/query-placeholder.js +16 -12
  190. package/build-module/query/edit/query-placeholder.js.map +1 -1
  191. package/build-module/query/utils.js +69 -0
  192. package/build-module/query/utils.js.map +1 -1
  193. package/build-module/search/edit.js +2 -2
  194. package/build-module/search/edit.js.map +1 -1
  195. package/build-module/social-link/edit.js +4 -3
  196. package/build-module/social-link/edit.js.map +1 -1
  197. package/build-module/social-links/edit.js +0 -1
  198. package/build-module/social-links/edit.js.map +1 -1
  199. package/build-module/table/edit.js +1 -0
  200. package/build-module/table/edit.js.map +1 -1
  201. package/build-module/table-of-contents/edit.js +1 -1
  202. package/build-module/table-of-contents/edit.js.map +1 -1
  203. package/build-module/tag-cloud/edit.js +1 -0
  204. package/build-module/tag-cloud/edit.js.map +1 -1
  205. package/build-module/template-part/edit/advanced-controls.js +22 -2
  206. package/build-module/template-part/edit/advanced-controls.js.map +1 -1
  207. package/build-module/template-part/edit/import-controls.js +146 -0
  208. package/build-module/template-part/edit/import-controls.js.map +1 -0
  209. package/build-module/template-part/edit/index.js +2 -1
  210. package/build-module/template-part/edit/index.js.map +1 -1
  211. package/build-module/template-part/edit/utils/transformers.js +40 -0
  212. package/build-module/template-part/edit/utils/transformers.js.map +1 -0
  213. package/build-module/video/edit-common-settings.js +6 -5
  214. package/build-module/video/edit-common-settings.js.map +1 -1
  215. package/build-module/video/edit.js +1 -0
  216. package/build-module/video/edit.js.map +1 -1
  217. package/build-module/video/tracks-editor.js +1 -0
  218. package/build-module/video/tracks-editor.js.map +1 -1
  219. package/build-style/archives/editor-rtl.css +3 -3
  220. package/build-style/archives/editor.css +3 -3
  221. package/build-style/archives/style-rtl.css +3 -3
  222. package/build-style/archives/style.css +3 -3
  223. package/build-style/audio/editor-rtl.css +3 -3
  224. package/build-style/audio/editor.css +3 -3
  225. package/build-style/audio/style-rtl.css +3 -3
  226. package/build-style/audio/style.css +3 -3
  227. package/build-style/audio/theme-rtl.css +3 -3
  228. package/build-style/audio/theme.css +3 -3
  229. package/build-style/avatar/editor-rtl.css +3 -3
  230. package/build-style/avatar/editor.css +3 -3
  231. package/build-style/avatar/style-rtl.css +3 -3
  232. package/build-style/avatar/style.css +3 -3
  233. package/build-style/block/editor-rtl.css +3 -3
  234. package/build-style/block/editor.css +3 -3
  235. package/build-style/button/editor-rtl.css +3 -3
  236. package/build-style/button/editor.css +3 -3
  237. package/build-style/button/style-rtl.css +3 -3
  238. package/build-style/button/style.css +3 -3
  239. package/build-style/buttons/editor-rtl.css +3 -3
  240. package/build-style/buttons/editor.css +3 -3
  241. package/build-style/buttons/style-rtl.css +3 -3
  242. package/build-style/buttons/style.css +3 -3
  243. package/build-style/calendar/style-rtl.css +3 -3
  244. package/build-style/calendar/style.css +3 -3
  245. package/build-style/categories/editor-rtl.css +3 -3
  246. package/build-style/categories/editor.css +3 -3
  247. package/build-style/categories/style-rtl.css +3 -3
  248. package/build-style/categories/style.css +3 -3
  249. package/build-style/classic-rtl.css +3 -3
  250. package/build-style/classic.css +3 -3
  251. package/build-style/code/editor-rtl.css +3 -3
  252. package/build-style/code/editor.css +3 -3
  253. package/build-style/code/style-rtl.css +3 -3
  254. package/build-style/code/style.css +3 -3
  255. package/build-style/code/theme-rtl.css +3 -3
  256. package/build-style/code/theme.css +3 -3
  257. package/build-style/columns/editor-rtl.css +3 -3
  258. package/build-style/columns/editor.css +3 -3
  259. package/build-style/columns/style-rtl.css +3 -3
  260. package/build-style/columns/style.css +3 -3
  261. package/build-style/comment-author-avatar/editor-rtl.css +3 -3
  262. package/build-style/comment-author-avatar/editor.css +3 -3
  263. package/build-style/comment-content/style-rtl.css +3 -3
  264. package/build-style/comment-content/style.css +3 -3
  265. package/build-style/comment-template/style-rtl.css +3 -3
  266. package/build-style/comment-template/style.css +3 -3
  267. package/build-style/comments/editor-rtl.css +3 -3
  268. package/build-style/comments/editor.css +3 -3
  269. package/build-style/comments/style-rtl.css +3 -3
  270. package/build-style/comments/style.css +3 -3
  271. package/build-style/comments-pagination/editor-rtl.css +3 -3
  272. package/build-style/comments-pagination/editor.css +3 -3
  273. package/build-style/comments-pagination/style-rtl.css +3 -3
  274. package/build-style/comments-pagination/style.css +3 -3
  275. package/build-style/comments-pagination-numbers/editor-rtl.css +3 -3
  276. package/build-style/comments-pagination-numbers/editor.css +3 -3
  277. package/build-style/comments-title/editor-rtl.css +3 -3
  278. package/build-style/comments-title/editor.css +3 -3
  279. package/build-style/common-rtl.css +3 -3
  280. package/build-style/common.css +3 -3
  281. package/build-style/cover/editor-rtl.css +3 -3
  282. package/build-style/cover/editor.css +3 -3
  283. package/build-style/cover/style-rtl.css +3 -3
  284. package/build-style/cover/style.css +3 -3
  285. package/build-style/editor-elements-rtl.css +3 -3
  286. package/build-style/editor-elements.css +3 -3
  287. package/build-style/editor-rtl.css +7 -9
  288. package/build-style/editor.css +7 -9
  289. package/build-style/elements-rtl.css +3 -3
  290. package/build-style/elements.css +3 -3
  291. package/build-style/embed/editor-rtl.css +3 -3
  292. package/build-style/embed/editor.css +3 -3
  293. package/build-style/embed/style-rtl.css +3 -3
  294. package/build-style/embed/style.css +3 -3
  295. package/build-style/embed/theme-rtl.css +3 -3
  296. package/build-style/embed/theme.css +3 -3
  297. package/build-style/file/editor-rtl.css +3 -3
  298. package/build-style/file/editor.css +3 -3
  299. package/build-style/file/style-rtl.css +3 -3
  300. package/build-style/file/style.css +3 -3
  301. package/build-style/freeform/editor-rtl.css +3 -3
  302. package/build-style/freeform/editor.css +3 -3
  303. package/build-style/gallery/editor-rtl.css +3 -3
  304. package/build-style/gallery/editor.css +3 -3
  305. package/build-style/gallery/style-rtl.css +3 -3
  306. package/build-style/gallery/style.css +3 -3
  307. package/build-style/gallery/theme-rtl.css +3 -3
  308. package/build-style/gallery/theme.css +3 -3
  309. package/build-style/group/editor-rtl.css +3 -3
  310. package/build-style/group/editor.css +3 -3
  311. package/build-style/group/style-rtl.css +3 -3
  312. package/build-style/group/style.css +3 -3
  313. package/build-style/group/theme-rtl.css +3 -3
  314. package/build-style/group/theme.css +3 -3
  315. package/build-style/heading/style-rtl.css +3 -3
  316. package/build-style/heading/style.css +3 -3
  317. package/build-style/html/editor-rtl.css +3 -3
  318. package/build-style/html/editor.css +3 -3
  319. package/build-style/image/editor-rtl.css +3 -3
  320. package/build-style/image/editor.css +3 -3
  321. package/build-style/image/style-rtl.css +3 -3
  322. package/build-style/image/style.css +3 -3
  323. package/build-style/image/theme-rtl.css +3 -3
  324. package/build-style/image/theme.css +3 -3
  325. package/build-style/latest-comments/style-rtl.css +3 -3
  326. package/build-style/latest-comments/style.css +3 -3
  327. package/build-style/latest-posts/editor-rtl.css +3 -3
  328. package/build-style/latest-posts/editor.css +3 -3
  329. package/build-style/latest-posts/style-rtl.css +3 -3
  330. package/build-style/latest-posts/style.css +3 -3
  331. package/build-style/list/style-rtl.css +3 -3
  332. package/build-style/list/style.css +3 -3
  333. package/build-style/media-text/editor-rtl.css +3 -3
  334. package/build-style/media-text/editor.css +3 -3
  335. package/build-style/media-text/style-rtl.css +3 -3
  336. package/build-style/media-text/style.css +3 -3
  337. package/build-style/more/editor-rtl.css +3 -3
  338. package/build-style/more/editor.css +3 -3
  339. package/build-style/navigation/editor-rtl.css +3 -9
  340. package/build-style/navigation/editor.css +3 -9
  341. package/build-style/navigation/style-rtl.css +3 -4
  342. package/build-style/navigation/style.css +3 -4
  343. package/build-style/navigation-link/editor-rtl.css +3 -3
  344. package/build-style/navigation-link/editor.css +3 -3
  345. package/build-style/navigation-link/style-rtl.css +3 -3
  346. package/build-style/navigation-link/style.css +3 -3
  347. package/build-style/navigation-submenu/editor-rtl.css +3 -3
  348. package/build-style/navigation-submenu/editor.css +3 -3
  349. package/build-style/nextpage/editor-rtl.css +3 -3
  350. package/build-style/nextpage/editor.css +3 -3
  351. package/build-style/page-list/editor-rtl.css +7 -3
  352. package/build-style/page-list/editor.css +7 -3
  353. package/build-style/page-list/style-rtl.css +3 -3
  354. package/build-style/page-list/style.css +3 -3
  355. package/build-style/paragraph/editor-rtl.css +3 -3
  356. package/build-style/paragraph/editor.css +3 -3
  357. package/build-style/paragraph/style-rtl.css +3 -3
  358. package/build-style/paragraph/style.css +3 -3
  359. package/build-style/post-author/style-rtl.css +3 -3
  360. package/build-style/post-author/style.css +3 -3
  361. package/build-style/post-comments-form/editor-rtl.css +3 -3
  362. package/build-style/post-comments-form/editor.css +3 -3
  363. package/build-style/post-comments-form/style-rtl.css +3 -3
  364. package/build-style/post-comments-form/style.css +3 -3
  365. package/build-style/post-date/style-rtl.css +3 -3
  366. package/build-style/post-date/style.css +3 -3
  367. package/build-style/post-excerpt/editor-rtl.css +3 -3
  368. package/build-style/post-excerpt/editor.css +3 -3
  369. package/build-style/post-excerpt/style-rtl.css +3 -3
  370. package/build-style/post-excerpt/style.css +3 -3
  371. package/build-style/post-featured-image/editor-rtl.css +3 -3
  372. package/build-style/post-featured-image/editor.css +3 -3
  373. package/build-style/post-featured-image/style-rtl.css +3 -3
  374. package/build-style/post-featured-image/style.css +3 -3
  375. package/build-style/post-navigation-link/style-rtl.css +3 -3
  376. package/build-style/post-navigation-link/style.css +3 -3
  377. package/build-style/post-template/editor-rtl.css +3 -3
  378. package/build-style/post-template/editor.css +3 -3
  379. package/build-style/post-template/style-rtl.css +3 -3
  380. package/build-style/post-template/style.css +3 -3
  381. package/build-style/post-terms/style-rtl.css +3 -3
  382. package/build-style/post-terms/style.css +3 -3
  383. package/build-style/post-title/style-rtl.css +3 -3
  384. package/build-style/post-title/style.css +3 -3
  385. package/build-style/preformatted/style-rtl.css +3 -3
  386. package/build-style/preformatted/style.css +3 -3
  387. package/build-style/pullquote/editor-rtl.css +3 -3
  388. package/build-style/pullquote/editor.css +3 -3
  389. package/build-style/pullquote/style-rtl.css +3 -3
  390. package/build-style/pullquote/style.css +3 -3
  391. package/build-style/pullquote/theme-rtl.css +3 -3
  392. package/build-style/pullquote/theme.css +3 -3
  393. package/build-style/query/editor-rtl.css +3 -3
  394. package/build-style/query/editor.css +3 -3
  395. package/build-style/query-pagination/editor-rtl.css +3 -3
  396. package/build-style/query-pagination/editor.css +3 -3
  397. package/build-style/query-pagination/style-rtl.css +3 -3
  398. package/build-style/query-pagination/style.css +3 -3
  399. package/build-style/query-pagination-numbers/editor-rtl.css +3 -3
  400. package/build-style/query-pagination-numbers/editor.css +3 -3
  401. package/build-style/query-title/style-rtl.css +3 -3
  402. package/build-style/query-title/style.css +3 -3
  403. package/build-style/quote/style-rtl.css +3 -3
  404. package/build-style/quote/style.css +3 -3
  405. package/build-style/quote/theme-rtl.css +3 -3
  406. package/build-style/quote/theme.css +3 -3
  407. package/build-style/read-more/style-rtl.css +3 -3
  408. package/build-style/read-more/style.css +3 -3
  409. package/build-style/reset-rtl.css +3 -3
  410. package/build-style/reset.css +3 -3
  411. package/build-style/rss/editor-rtl.css +3 -3
  412. package/build-style/rss/editor.css +3 -3
  413. package/build-style/rss/style-rtl.css +3 -3
  414. package/build-style/rss/style.css +3 -3
  415. package/build-style/search/editor-rtl.css +3 -3
  416. package/build-style/search/editor.css +3 -3
  417. package/build-style/search/style-rtl.css +3 -3
  418. package/build-style/search/style.css +3 -3
  419. package/build-style/search/theme-rtl.css +3 -3
  420. package/build-style/search/theme.css +3 -3
  421. package/build-style/separator/editor-rtl.css +3 -3
  422. package/build-style/separator/editor.css +3 -3
  423. package/build-style/separator/style-rtl.css +3 -3
  424. package/build-style/separator/style.css +3 -3
  425. package/build-style/separator/theme-rtl.css +3 -3
  426. package/build-style/separator/theme.css +3 -3
  427. package/build-style/shortcode/editor-rtl.css +3 -3
  428. package/build-style/shortcode/editor.css +3 -3
  429. package/build-style/site-logo/editor-rtl.css +3 -3
  430. package/build-style/site-logo/editor.css +3 -3
  431. package/build-style/site-logo/style-rtl.css +3 -3
  432. package/build-style/site-logo/style.css +3 -3
  433. package/build-style/site-tagline/editor-rtl.css +3 -3
  434. package/build-style/site-tagline/editor.css +3 -3
  435. package/build-style/site-title/editor-rtl.css +3 -3
  436. package/build-style/site-title/editor.css +3 -3
  437. package/build-style/site-title/style-rtl.css +3 -3
  438. package/build-style/site-title/style.css +3 -3
  439. package/build-style/social-link/editor-rtl.css +3 -3
  440. package/build-style/social-link/editor.css +3 -3
  441. package/build-style/social-links/editor-rtl.css +3 -3
  442. package/build-style/social-links/editor.css +3 -3
  443. package/build-style/social-links/style-rtl.css +3 -3
  444. package/build-style/social-links/style.css +3 -3
  445. package/build-style/spacer/editor-rtl.css +3 -3
  446. package/build-style/spacer/editor.css +3 -3
  447. package/build-style/spacer/style-rtl.css +3 -3
  448. package/build-style/spacer/style.css +3 -3
  449. package/build-style/style-rtl.css +13 -5
  450. package/build-style/style.css +13 -5
  451. package/build-style/table/editor-rtl.css +3 -3
  452. package/build-style/table/editor.css +3 -3
  453. package/build-style/table/style-rtl.css +9 -3
  454. package/build-style/table/style.css +9 -3
  455. package/build-style/table/theme-rtl.css +3 -9
  456. package/build-style/table/theme.css +3 -9
  457. package/build-style/tag-cloud/style-rtl.css +3 -3
  458. package/build-style/tag-cloud/style.css +3 -3
  459. package/build-style/template-part/editor-rtl.css +3 -3
  460. package/build-style/template-part/editor.css +3 -3
  461. package/build-style/template-part/theme-rtl.css +3 -3
  462. package/build-style/template-part/theme.css +3 -3
  463. package/build-style/text-columns/editor-rtl.css +3 -3
  464. package/build-style/text-columns/editor.css +3 -3
  465. package/build-style/text-columns/style-rtl.css +3 -3
  466. package/build-style/text-columns/style.css +3 -3
  467. package/build-style/theme-rtl.css +3 -9
  468. package/build-style/theme.css +3 -9
  469. package/build-style/verse/style-rtl.css +7 -4
  470. package/build-style/verse/style.css +7 -4
  471. package/build-style/video/editor-rtl.css +3 -3
  472. package/build-style/video/editor.css +3 -3
  473. package/build-style/video/style-rtl.css +3 -3
  474. package/build-style/video/style.css +3 -3
  475. package/build-style/video/theme-rtl.css +3 -3
  476. package/build-style/video/theme.css +3 -3
  477. package/package.json +29 -29
  478. package/src/archives/edit.js +1 -0
  479. package/src/audio/edit.js +2 -0
  480. package/src/categories/edit.js +1 -1
  481. package/src/comments/edit/comments-inspector-controls.js +12 -2
  482. package/src/comments/index.php +0 -1
  483. package/src/cover/edit/inspector-controls.js +4 -4
  484. package/src/embed/embed-preview.js +1 -0
  485. package/src/file/inspector.js +1 -0
  486. package/src/freeform/edit.js +48 -29
  487. package/src/freeform/modal.js +111 -0
  488. package/src/gallery/edit.js +19 -2
  489. package/src/gallery/gallery.js +4 -13
  490. package/src/gallery/v1/edit.js +2 -0
  491. package/src/group/block.json +3 -0
  492. package/src/group/edit.js +1 -0
  493. package/src/image/image.js +27 -36
  494. package/src/latest-posts/edit.js +6 -7
  495. package/src/latest-posts/test/__snapshots__/edit.native.js.snap +3 -0
  496. package/src/latest-posts/test/edit.native.js +49 -0
  497. package/src/media-text/edit.js +1 -0
  498. package/src/missing/edit.native.js +13 -6
  499. package/src/more/test/__snapshots__/edit.native.js.snap +7 -0
  500. package/src/more/test/edit.native.js +41 -0
  501. package/src/navigation/edit/index.js +6 -4
  502. package/src/navigation/edit/menu-inspector-controls.js +115 -44
  503. package/src/navigation/edit/navigation-menu-selector.js +24 -11
  504. package/src/navigation/edit/utils.js +82 -0
  505. package/src/navigation/editor.scss +0 -7
  506. package/src/navigation/index.php +32 -0
  507. package/src/navigation/leaf-more-menu.js +93 -0
  508. package/src/navigation/style.scss +0 -1
  509. package/src/navigation-link/edit.js +23 -65
  510. package/src/navigation-link/index.php +62 -3
  511. package/src/navigation-link/update-attributes.js +1 -1
  512. package/src/navigation-submenu/edit.js +29 -100
  513. package/src/navigation-submenu/index.php +34 -2
  514. package/src/page-list/block.json +18 -1
  515. package/src/page-list/edit.js +30 -22
  516. package/src/page-list/editor.scss +4 -0
  517. package/src/page-list/index.js +8 -2
  518. package/src/page-list/index.php +14 -10
  519. package/src/page-list-item/block.json +2 -1
  520. package/src/page-list-item/edit.js +17 -9
  521. package/src/post-author/edit.js +2 -0
  522. package/src/post-featured-image/dimension-controls.js +1 -0
  523. package/src/post-featured-image/overlay.js +0 -1
  524. package/src/query/edit/index.js +1 -0
  525. package/src/query/edit/inspector-controls/index.js +50 -38
  526. package/src/query/edit/inspector-controls/order-control.js +1 -0
  527. package/src/query/edit/inspector-controls/sticky-control.js +1 -0
  528. package/src/query/edit/inspector-controls/taxonomy-controls.js +102 -38
  529. package/src/query/edit/query-content.js +15 -1
  530. package/src/query/edit/query-placeholder.js +15 -14
  531. package/src/query/utils.js +59 -1
  532. package/src/rss/index.php +1 -1
  533. package/src/search/edit.js +2 -2
  534. package/src/separator/test/__snapshots__/edit.native.js.snap +7 -0
  535. package/src/separator/test/edit.native.js +41 -0
  536. package/src/social-link/edit.js +5 -4
  537. package/src/social-links/edit.js +0 -1
  538. package/src/table/edit.js +1 -0
  539. package/src/table/style.scss +8 -0
  540. package/src/table/theme.scss +0 -8
  541. package/src/table-of-contents/edit.js +1 -1
  542. package/src/tag-cloud/edit.js +1 -0
  543. package/src/template-part/edit/advanced-controls.js +36 -0
  544. package/src/template-part/edit/import-controls.js +180 -0
  545. package/src/template-part/edit/index.js +1 -0
  546. package/src/template-part/edit/utils/transformers.js +37 -0
  547. package/src/verse/style.scss +4 -1
  548. package/src/verse/test/__snapshots__/edit.native.js.snap +13 -0
  549. package/src/verse/test/edit.native.js +40 -33
  550. package/src/video/edit-common-settings.js +6 -5
  551. package/src/video/edit.js +1 -0
  552. package/src/video/tracks-editor.js +1 -0
  553. package/tsconfig.tsbuildinfo +1 -1
  554. package/build/query/constants.js +0 -16
  555. package/build/query/constants.js.map +0 -1
  556. package/build-module/query/constants.js +0 -7
  557. package/build-module/query/constants.js.map +0 -1
  558. package/src/query/constants.js +0 -7
@@ -30,7 +30,7 @@ import {
30
30
  useInnerBlocksProps,
31
31
  } from '@wordpress/block-editor';
32
32
  import { isURL, prependHTTP } from '@wordpress/url';
33
- import { Fragment, useState, useEffect, useRef } from '@wordpress/element';
33
+ import { useState, useEffect, useRef } from '@wordpress/element';
34
34
  import {
35
35
  placeCaretAtHorizontalEdge,
36
36
  __unstableStripHTML as stripHTML,
@@ -48,6 +48,7 @@ import { useMergeRefs } from '@wordpress/compose';
48
48
  import { name } from './block.json';
49
49
  import { LinkUI } from './link-ui';
50
50
  import { updateAttributes } from './update-attributes';
51
+ import { getColors } from '../navigation/edit/utils';
51
52
 
52
53
  /**
53
54
  * A React hook to determine if it's dragging within the target element.
@@ -100,61 +101,6 @@ const useIsDraggingWithin = ( elementRef ) => {
100
101
  return isDraggingWithin;
101
102
  };
102
103
 
103
- /**
104
- * Determine the colors for a menu.
105
- *
106
- * Order of priority is:
107
- * 1: Overlay custom colors (if submenu)
108
- * 2: Overlay theme colors (if submenu)
109
- * 3: Custom colors
110
- * 4: Theme colors
111
- * 5: Global styles
112
- *
113
- * @param {Object} context
114
- * @param {boolean} isSubMenu
115
- */
116
- function getColors( context, isSubMenu ) {
117
- const {
118
- textColor,
119
- customTextColor,
120
- backgroundColor,
121
- customBackgroundColor,
122
- overlayTextColor,
123
- customOverlayTextColor,
124
- overlayBackgroundColor,
125
- customOverlayBackgroundColor,
126
- style,
127
- } = context;
128
-
129
- const colors = {};
130
-
131
- if ( isSubMenu && !! customOverlayTextColor ) {
132
- colors.customTextColor = customOverlayTextColor;
133
- } else if ( isSubMenu && !! overlayTextColor ) {
134
- colors.textColor = overlayTextColor;
135
- } else if ( !! customTextColor ) {
136
- colors.customTextColor = customTextColor;
137
- } else if ( !! textColor ) {
138
- colors.textColor = textColor;
139
- } else if ( !! style?.color?.text ) {
140
- colors.customTextColor = style.color.text;
141
- }
142
-
143
- if ( isSubMenu && !! customOverlayBackgroundColor ) {
144
- colors.customBackgroundColor = customOverlayBackgroundColor;
145
- } else if ( isSubMenu && !! overlayBackgroundColor ) {
146
- colors.backgroundColor = overlayBackgroundColor;
147
- } else if ( !! customBackgroundColor ) {
148
- colors.customBackgroundColor = customBackgroundColor;
149
- } else if ( !! backgroundColor ) {
150
- colors.backgroundColor = backgroundColor;
151
- } else if ( !! style?.color?.background ) {
152
- colors.customTextColor = style.color.background;
153
- }
154
-
155
- return colors;
156
- }
157
-
158
104
  const useIsInvalidLink = ( kind, type, id ) => {
159
105
  const isPostType =
160
106
  kind === 'post-type' || type === 'post' || type === 'page';
@@ -429,12 +375,19 @@ export default function NavigationLinkEdit( {
429
375
  const DEFAULT_BLOCK = {
430
376
  name: 'core/navigation-link',
431
377
  };
432
- const innerBlocksProps = useInnerBlocksProps( blockProps, {
433
- allowedBlocks: ALLOWED_BLOCKS,
434
- __experimentalDefaultBlock: DEFAULT_BLOCK,
435
- __experimentalDirectInsert: true,
436
- renderAppender: false,
437
- } );
378
+
379
+ const innerBlocksProps = useInnerBlocksProps(
380
+ {
381
+ ...blockProps,
382
+ className: 'remove-outline', // Remove the outline from the inner blocks container.
383
+ },
384
+ {
385
+ allowedBlocks: ALLOWED_BLOCKS,
386
+ __experimentalDefaultBlock: DEFAULT_BLOCK,
387
+ __experimentalDirectInsert: true,
388
+ renderAppender: false,
389
+ }
390
+ );
438
391
 
439
392
  if ( ! url || isInvalid || isDraft ) {
440
393
  blockProps.onClick = () => setIsLinkOpen( true );
@@ -455,7 +408,7 @@ export default function NavigationLinkEdit( {
455
408
  : __( 'This item is missing a link' );
456
409
 
457
410
  return (
458
- <Fragment>
411
+ <>
459
412
  <BlockControls>
460
413
  <ToolbarGroup>
461
414
  <ToolbarButton
@@ -489,12 +442,17 @@ export default function NavigationLinkEdit( {
489
442
  <TextControl
490
443
  value={ url || '' }
491
444
  onChange={ ( urlValue ) => {
492
- setAttributes( { url: urlValue } );
445
+ updateAttributes(
446
+ { url: urlValue },
447
+ setAttributes,
448
+ attributes
449
+ );
493
450
  } }
494
451
  label={ __( 'URL' ) }
495
452
  autoComplete="off"
496
453
  />
497
454
  <TextareaControl
455
+ __nextHasNoMarginBottom
498
456
  value={ description || '' }
499
457
  onChange={ ( descriptionValue ) => {
500
458
  setAttributes( { description: descriptionValue } );
@@ -644,6 +602,6 @@ export default function NavigationLinkEdit( {
644
602
  </a>
645
603
  <div { ...innerBlocksProps } />
646
604
  </div>
647
- </Fragment>
605
+ </>
648
606
  );
649
607
  }
@@ -120,6 +120,33 @@ function block_core_navigation_link_render_submenu_icon() {
120
120
  return '<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>';
121
121
  }
122
122
 
123
+ /**
124
+ * Decodes a url if it's encoded, returning the same url if not.
125
+ *
126
+ * @param string $url The url to decode.
127
+ *
128
+ * @return string $url Returns the decoded url.
129
+ */
130
+ function block_core_navigation_link_maybe_urldecode( $url ) {
131
+ $is_url_encoded = false;
132
+ $query = parse_url( $url, PHP_URL_QUERY );
133
+ $query_params = wp_parse_args( $query );
134
+
135
+ foreach ( $query_params as $query_param ) {
136
+ if ( rawurldecode( $query_param ) !== $query_param ) {
137
+ $is_url_encoded = true;
138
+ break;
139
+ }
140
+ }
141
+
142
+ if ( $is_url_encoded ) {
143
+ return rawurldecode( $url );
144
+ }
145
+
146
+ return $url;
147
+ }
148
+
149
+
123
150
  /**
124
151
  * Renders the `core/navigation-link` block.
125
152
  *
@@ -171,7 +198,7 @@ function render_block_core_navigation_link( $attributes, $content, $block ) {
171
198
 
172
199
  // Start appending HTML attributes to anchor tag.
173
200
  if ( isset( $attributes['url'] ) ) {
174
- $html .= ' href="' . esc_url( $attributes['url'] ) . '"';
201
+ $html .= ' href="' . esc_url( block_core_navigation_link_maybe_urldecode( $attributes['url'] ) ) . '"';
175
202
  }
176
203
 
177
204
  if ( $is_active ) {
@@ -363,11 +390,11 @@ add_action( 'init', 'register_block_core_navigation_link' );
363
390
  function gutenberg_disable_tabs_for_navigation_link_block( $settings ) {
364
391
  $current_tab_settings = _wp_array_get(
365
392
  $settings,
366
- array( '__experimentalBlockInspectorTabs' ),
393
+ array( 'blockInspectorTabs' ),
367
394
  array()
368
395
  );
369
396
 
370
- $settings['__experimentalBlockInspectorTabs'] = array_merge(
397
+ $settings['blockInspectorTabs'] = array_merge(
371
398
  $current_tab_settings,
372
399
  array( 'core/navigation-link' => false )
373
400
  );
@@ -376,3 +403,35 @@ function gutenberg_disable_tabs_for_navigation_link_block( $settings ) {
376
403
  }
377
404
 
378
405
  add_filter( 'block_editor_settings_all', 'gutenberg_disable_tabs_for_navigation_link_block' );
406
+
407
+ /**
408
+ * Enables animation of the block inspector for the Navigation Link block.
409
+ *
410
+ * See:
411
+ * - https://github.com/WordPress/gutenberg/pull/46342
412
+ * - https://github.com/WordPress/gutenberg/issues/45884
413
+ *
414
+ * @param array $settings Default editor settings.
415
+ * @return array Filtered editor settings.
416
+ */
417
+ function gutenberg_enable_animation_for_navigation_link_inspector( $settings ) {
418
+ $current_animation_settings = _wp_array_get(
419
+ $settings,
420
+ array( '__experimentalBlockInspectorAnimation' ),
421
+ array()
422
+ );
423
+
424
+ $settings['__experimentalBlockInspectorAnimation'] = array_merge(
425
+ $current_animation_settings,
426
+ array(
427
+ 'core/navigation-link' =>
428
+ array(
429
+ 'enterDirection' => 'rightToLeft',
430
+ ),
431
+ )
432
+ );
433
+
434
+ return $settings;
435
+ }
436
+
437
+ add_filter( 'block_editor_settings_all', 'gutenberg_enable_animation_for_navigation_link_inspector' );
@@ -89,7 +89,7 @@ export const updateAttributes = (
89
89
 
90
90
  setAttributes( {
91
91
  // Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.
92
- ...( newUrl && { url: encodeURI( safeDecodeURI( newUrl ) ) } ),
92
+ ...{ url: newUrl ? encodeURI( safeDecodeURI( newUrl ) ) : newUrl },
93
93
  ...( label && { label } ),
94
94
  ...( undefined !== opensInNewTab && { opensInNewTab } ),
95
95
  ...( id && Number.isInteger( id ) && { id } ),
@@ -27,7 +27,7 @@ import {
27
27
  getColorClassName,
28
28
  } from '@wordpress/block-editor';
29
29
  import { isURL, prependHTTP } from '@wordpress/url';
30
- import { Fragment, useState, useEffect, useRef } from '@wordpress/element';
30
+ import { useState, useEffect, useRef } from '@wordpress/element';
31
31
  import { placeCaretAtHorizontalEdge } from '@wordpress/dom';
32
32
  import { link as linkIcon, removeSubmenu } from '@wordpress/icons';
33
33
  import { useResourcePermissions } from '@wordpress/core-data';
@@ -42,6 +42,10 @@ import { ItemSubmenuIcon } from './icons';
42
42
  import { name } from './block.json';
43
43
  import { LinkUI } from '../navigation-link/link-ui';
44
44
  import { updateAttributes } from '../navigation-link/update-attributes';
45
+ import {
46
+ getColors,
47
+ getNavigationChildBlockProps,
48
+ } from '../navigation/edit/utils';
45
49
 
46
50
  const ALLOWED_BLOCKS = [
47
51
  'core/navigation-link',
@@ -104,61 +108,6 @@ const useIsDraggingWithin = ( elementRef ) => {
104
108
  return isDraggingWithin;
105
109
  };
106
110
 
107
- /**
108
- * Determine the colors for a menu.
109
- *
110
- * Order of priority is:
111
- * 1: Overlay custom colors (if submenu)
112
- * 2: Overlay theme colors (if submenu)
113
- * 3: Custom colors
114
- * 4: Theme colors
115
- * 5: Global styles
116
- *
117
- * @param {Object} context
118
- * @param {boolean} isSubMenu
119
- */
120
- function getColors( context, isSubMenu ) {
121
- const {
122
- textColor,
123
- customTextColor,
124
- backgroundColor,
125
- customBackgroundColor,
126
- overlayTextColor,
127
- customOverlayTextColor,
128
- overlayBackgroundColor,
129
- customOverlayBackgroundColor,
130
- style,
131
- } = context;
132
-
133
- const colors = {};
134
-
135
- if ( isSubMenu && !! customOverlayTextColor ) {
136
- colors.customTextColor = customOverlayTextColor;
137
- } else if ( isSubMenu && !! overlayTextColor ) {
138
- colors.textColor = overlayTextColor;
139
- } else if ( !! customTextColor ) {
140
- colors.customTextColor = customTextColor;
141
- } else if ( !! textColor ) {
142
- colors.textColor = textColor;
143
- } else if ( !! style?.color?.text ) {
144
- colors.customTextColor = style.color.text;
145
- }
146
-
147
- if ( isSubMenu && !! customOverlayBackgroundColor ) {
148
- colors.customBackgroundColor = customOverlayBackgroundColor;
149
- } else if ( isSubMenu && !! overlayBackgroundColor ) {
150
- colors.backgroundColor = overlayBackgroundColor;
151
- } else if ( !! customBackgroundColor ) {
152
- colors.customBackgroundColor = customBackgroundColor;
153
- } else if ( !! backgroundColor ) {
154
- colors.backgroundColor = backgroundColor;
155
- } else if ( !! style?.color?.background ) {
156
- colors.customTextColor = style.color.background;
157
- }
158
-
159
- return colors;
160
- }
161
-
162
111
  /**
163
112
  * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind
164
113
  */
@@ -377,48 +326,27 @@ export default function NavigationSubmenuEdit( {
377
326
  )
378
327
  : ALLOWED_BLOCKS;
379
328
 
380
- const innerBlocksProps = useInnerBlocksProps(
381
- {
382
- className: classnames( 'wp-block-navigation__submenu-container', {
383
- 'is-parent-of-selected-block': isParentOfSelectedBlock,
384
- 'has-text-color': !! (
385
- innerBlocksColors.textColor ||
386
- innerBlocksColors.customTextColor
387
- ),
388
- [ `has-${ innerBlocksColors.textColor }-color` ]:
389
- !! innerBlocksColors.textColor,
390
- 'has-background': !! (
391
- innerBlocksColors.backgroundColor ||
392
- innerBlocksColors.customBackgroundColor
393
- ),
394
- [ `has-${ innerBlocksColors.backgroundColor }-background-color` ]:
395
- !! innerBlocksColors.backgroundColor,
396
- } ),
397
- style: {
398
- color: innerBlocksColors.customTextColor,
399
- backgroundColor: innerBlocksColors.customBackgroundColor,
400
- },
401
- },
402
- {
403
- allowedBlocks,
404
- __experimentalDefaultBlock: DEFAULT_BLOCK,
405
- __experimentalDirectInsert: true,
406
-
407
- // Ensure block toolbar is not too far removed from item
408
- // being edited.
409
- // see: https://github.com/WordPress/gutenberg/pull/34615.
410
- __experimentalCaptureToolbars: true,
411
-
412
- renderAppender:
413
- isSelected ||
414
- ( isImmediateParentOfSelectedBlock &&
415
- ! selectedBlockHasChildren ) ||
416
- // Show the appender while dragging to allow inserting element between item and the appender.
417
- hasChildren
418
- ? InnerBlocks.ButtonBlockAppender
419
- : false,
420
- }
421
- );
329
+ const navigationChildBlockProps =
330
+ getNavigationChildBlockProps( innerBlocksColors );
331
+ const innerBlocksProps = useInnerBlocksProps( navigationChildBlockProps, {
332
+ allowedBlocks,
333
+ __experimentalDefaultBlock: DEFAULT_BLOCK,
334
+ __experimentalDirectInsert: true,
335
+
336
+ // Ensure block toolbar is not too far removed from item
337
+ // being edited.
338
+ // see: https://github.com/WordPress/gutenberg/pull/34615.
339
+ __experimentalCaptureToolbars: true,
340
+
341
+ renderAppender:
342
+ isSelected ||
343
+ ( isImmediateParentOfSelectedBlock &&
344
+ ! selectedBlockHasChildren ) ||
345
+ // Show the appender while dragging to allow inserting element between item and the appender.
346
+ hasChildren
347
+ ? InnerBlocks.ButtonBlockAppender
348
+ : false,
349
+ } );
422
350
 
423
351
  const ParentElement = openSubmenusOnClick ? 'button' : 'a';
424
352
 
@@ -438,7 +366,7 @@ export default function NavigationSubmenuEdit( {
438
366
  ! selectedBlockHasChildren || onlyDescendantIsEmptyLink;
439
367
 
440
368
  return (
441
- <Fragment>
369
+ <>
442
370
  <BlockControls>
443
371
  <ToolbarGroup>
444
372
  { ! openSubmenusOnClick && (
@@ -481,6 +409,7 @@ export default function NavigationSubmenuEdit( {
481
409
  autoComplete="off"
482
410
  />
483
411
  <TextareaControl
412
+ __nextHasNoMarginBottom
484
413
  value={ description || '' }
485
414
  onChange={ ( descriptionValue ) => {
486
415
  setAttributes( {
@@ -570,6 +499,6 @@ export default function NavigationSubmenuEdit( {
570
499
  ) }
571
500
  <div { ...innerBlocksProps } />
572
501
  </div>
573
- </Fragment>
502
+ </>
574
503
  );
575
504
  }
@@ -308,11 +308,11 @@ add_action( 'init', 'register_block_core_navigation_submenu' );
308
308
  function gutenberg_disable_tabs_for_navigation_submenu_block( $settings ) {
309
309
  $current_tab_settings = _wp_array_get(
310
310
  $settings,
311
- array( '__experimentalBlockInspectorTabs' ),
311
+ array( 'blockInspectorTabs' ),
312
312
  array()
313
313
  );
314
314
 
315
- $settings['__experimentalBlockInspectorTabs'] = array_merge(
315
+ $settings['blockInspectorTabs'] = array_merge(
316
316
  $current_tab_settings,
317
317
  array( 'core/navigation-submenu' => false )
318
318
  );
@@ -321,3 +321,35 @@ function gutenberg_disable_tabs_for_navigation_submenu_block( $settings ) {
321
321
  }
322
322
 
323
323
  add_filter( 'block_editor_settings_all', 'gutenberg_disable_tabs_for_navigation_submenu_block' );
324
+
325
+ /**
326
+ * Enables animation of the block inspector for the Navigation Submenu block.
327
+ *
328
+ * See:
329
+ * - https://github.com/WordPress/gutenberg/pull/46342
330
+ * - https://github.com/WordPress/gutenberg/issues/45884
331
+ *
332
+ * @param array $settings Default editor settings.
333
+ * @return array Filtered editor settings.
334
+ */
335
+ function gutenberg_enable_animation_for_navigation_submenu_inspector( $settings ) {
336
+ $current_animation_settings = _wp_array_get(
337
+ $settings,
338
+ array( '__experimentalBlockInspectorAnimation' ),
339
+ array()
340
+ );
341
+
342
+ $settings['__experimentalBlockInspectorAnimation'] = array_merge(
343
+ $current_animation_settings,
344
+ array(
345
+ 'core/navigation-submenu' =>
346
+ array(
347
+ 'enterDirection' => 'rightToLeft',
348
+ ),
349
+ )
350
+ );
351
+
352
+ return $settings;
353
+ }
354
+
355
+ add_filter( 'block_editor_settings_all', 'gutenberg_enable_animation_for_navigation_submenu_inspector' );
@@ -11,6 +11,10 @@
11
11
  "parentPageID": {
12
12
  "type": "integer",
13
13
  "default": 0
14
+ },
15
+ "isNested": {
16
+ "type": "boolean",
17
+ "default": false
14
18
  }
15
19
  },
16
20
  "usesContext": [
@@ -30,7 +34,20 @@
30
34
  ],
31
35
  "supports": {
32
36
  "reusable": false,
33
- "html": false
37
+ "html": false,
38
+ "typography": {
39
+ "fontSize": true,
40
+ "lineHeight": true,
41
+ "__experimentalFontFamily": true,
42
+ "__experimentalFontWeight": true,
43
+ "__experimentalFontStyle": true,
44
+ "__experimentalTextTransform": true,
45
+ "__experimentalTextDecoration": true,
46
+ "__experimentalLetterSpacing": true,
47
+ "__experimentalDefaultControls": {
48
+ "fontSize": true
49
+ }
50
+ }
34
51
  },
35
52
  "editorStyle": "wp-block-page-list-editor",
36
53
  "style": "wp-block-page-list"
@@ -39,6 +39,7 @@ import { convertDescription } from './constants';
39
39
  // We only show the edit option when page count is <= MAX_PAGE_COUNT
40
40
  // Performance of Navigation Links is not good past this value.
41
41
  const MAX_PAGE_COUNT = 100;
42
+ const NOOP = () => {};
42
43
 
43
44
  export default function PageListEdit( {
44
45
  context,
@@ -49,8 +50,6 @@ export default function PageListEdit( {
49
50
  const { parentPageID } = attributes;
50
51
  const [ pages ] = useGetPages();
51
52
  const { pagesByParentId, totalPages, hasResolvedPages } = usePageData();
52
- const { replaceInnerBlocks, __unstableMarkNextChangeAsNotPersistent } =
53
- useDispatch( blockEditorStore );
54
53
 
55
54
  const isNavigationChild = 'showSubmenuIcon' in context;
56
55
  const allowConvertToLinks =
@@ -133,6 +132,9 @@ export default function PageListEdit( {
133
132
  renderAppender: false,
134
133
  __unstableDisableDropZone: true,
135
134
  templateLock: 'all',
135
+ onInput: NOOP,
136
+ onChange: NOOP,
137
+ value: blockList,
136
138
  } );
137
139
 
138
140
  const getBlockContent = () => {
@@ -185,29 +187,35 @@ export default function PageListEdit( {
185
187
  }
186
188
  };
187
189
 
188
- useEffect( () => {
189
- __unstableMarkNextChangeAsNotPersistent();
190
- if ( blockList ) {
191
- replaceInnerBlocks( clientId, blockList );
192
- }
193
- }, [ clientId, blockList ] );
194
-
195
190
  const { replaceBlock, selectBlock } = useDispatch( blockEditorStore );
196
191
 
197
- const { parentNavBlockClientId } = useSelect( ( select ) => {
198
- const { getSelectedBlockClientId, getBlockParentsByBlockName } =
199
- select( blockEditorStore );
200
-
201
- const _selectedBlockClientId = getSelectedBlockClientId();
192
+ const { parentNavBlockClientId, isNested } = useSelect(
193
+ ( select ) => {
194
+ const { getSelectedBlockClientId, getBlockParentsByBlockName } =
195
+ select( blockEditorStore );
196
+
197
+ const _selectedBlockClientId = getSelectedBlockClientId();
198
+
199
+ return {
200
+ parentNavBlockClientId: getBlockParentsByBlockName(
201
+ _selectedBlockClientId,
202
+ 'core/navigation',
203
+ true
204
+ )[ 0 ],
205
+ isNested:
206
+ getBlockParentsByBlockName(
207
+ clientId,
208
+ 'core/navigation-submenu',
209
+ true
210
+ ).length > 0,
211
+ };
212
+ },
213
+ [ clientId ]
214
+ );
202
215
 
203
- return {
204
- parentNavBlockClientId: getBlockParentsByBlockName(
205
- _selectedBlockClientId,
206
- 'core/navigation',
207
- true
208
- )[ 0 ],
209
- };
210
- }, [] );
216
+ useEffect( () => {
217
+ setAttributes( { isNested } );
218
+ }, [ isNested ] );
211
219
 
212
220
  return (
213
221
  <>
@@ -22,6 +22,10 @@
22
22
  }
23
23
  }
24
24
 
25
+ .wp-block-navigation .wp-block-navigation__submenu-container > .wp-block-page-list {
26
+ display: block; // This is needed to make sure the page list container is 100% wide, so that the children are correctly positioned.
27
+ }
28
+
25
29
  // Make links unclickable in the editor.
26
30
  .wp-block-pages-list__item__link {
27
31
  pointer-events: none;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { pages as icon } from '@wordpress/icons';
4
+ import { pages, update } from '@wordpress/icons';
5
5
 
6
6
  /**
7
7
  * Internal dependencies
@@ -15,7 +15,13 @@ const { name } = metadata;
15
15
  export { metadata, name };
16
16
 
17
17
  export const settings = {
18
- icon,
18
+ icon: ( { context } ) => {
19
+ if ( context === 'list-view' ) {
20
+ return update;
21
+ }
22
+
23
+ return pages;
24
+ },
19
25
  example: {},
20
26
  edit,
21
27
  };