@wordpress/block-library 8.13.0 → 8.15.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 (549) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/archives/index.js +5 -1
  3. package/build/archives/index.js.map +1 -1
  4. package/build/audio/index.js +5 -1
  5. package/build/audio/index.js.map +1 -1
  6. package/build/avatar/edit.js +1 -0
  7. package/build/avatar/edit.js.map +1 -1
  8. package/build/avatar/index.js +1 -1
  9. package/build/block/edit.js +1 -1
  10. package/build/block/edit.js.map +1 -1
  11. package/build/block/edit.native.js +6 -9
  12. package/build/block/edit.native.js.map +1 -1
  13. package/build/block/index.js +2 -1
  14. package/build/block/index.js.map +1 -1
  15. package/build/buttons/edit.js +7 -3
  16. package/build/buttons/edit.js.map +1 -1
  17. package/build/categories/index.js +5 -1
  18. package/build/categories/index.js.map +1 -1
  19. package/build/code/index.js +5 -1
  20. package/build/code/index.js.map +1 -1
  21. package/build/column/edit.native.js +1 -4
  22. package/build/column/edit.native.js.map +1 -1
  23. package/build/column/index.js +1 -0
  24. package/build/column/index.js.map +1 -1
  25. package/build/columns/edit.js +1 -0
  26. package/build/columns/edit.js.map +1 -1
  27. package/build/comment-author-avatar/edit.js +1 -0
  28. package/build/comment-author-avatar/edit.js.map +1 -1
  29. package/build/comments/index.js +1 -0
  30. package/build/comments/index.js.map +1 -1
  31. package/build/cover/deprecated.js +4 -2
  32. package/build/cover/deprecated.js.map +1 -1
  33. package/build/cover/edit/inspector-controls.js +2 -1
  34. package/build/cover/edit/inspector-controls.js.map +1 -1
  35. package/build/cover/index.js +1 -0
  36. package/build/cover/index.js.map +1 -1
  37. package/build/details/index.js +5 -1
  38. package/build/details/index.js.map +1 -1
  39. package/build/embed/embed-placeholder.native.js +37 -13
  40. package/build/embed/embed-placeholder.native.js.map +1 -1
  41. package/build/embed/util.js +9 -8
  42. package/build/embed/util.js.map +1 -1
  43. package/build/file/inspector.js +1 -0
  44. package/build/file/inspector.js.map +1 -1
  45. package/build/file/{interactivity.js → view-interactivity.js} +6 -2
  46. package/build/file/view-interactivity.js.map +1 -0
  47. package/build/footnotes/edit.js +20 -1
  48. package/build/footnotes/edit.js.map +1 -1
  49. package/build/footnotes/format.js +19 -16
  50. package/build/footnotes/format.js.map +1 -1
  51. package/build/footnotes/index.js +0 -1
  52. package/build/footnotes/index.js.map +1 -1
  53. package/build/gallery/edit.js +1 -1
  54. package/build/gallery/edit.js.map +1 -1
  55. package/build/gallery/index.js +3 -1
  56. package/build/gallery/index.js.map +1 -1
  57. package/build/group/index.js +1 -0
  58. package/build/group/index.js.map +1 -1
  59. package/build/heading/index.js +5 -1
  60. package/build/heading/index.js.map +1 -1
  61. package/build/heading/transforms.js +5 -1
  62. package/build/heading/transforms.js.map +1 -1
  63. package/build/image/deprecated.js +453 -175
  64. package/build/image/deprecated.js.map +1 -1
  65. package/build/image/edit.js +0 -4
  66. package/build/image/edit.js.map +1 -1
  67. package/build/image/image.js +96 -43
  68. package/build/image/image.js.map +1 -1
  69. package/build/image/index.js +6 -0
  70. package/build/image/index.js.map +1 -1
  71. package/build/image/save.js +8 -1
  72. package/build/image/save.js.map +1 -1
  73. package/build/image/utils.js +18 -0
  74. package/build/image/utils.js.map +1 -1
  75. package/build/image/{interactivity.js → view-interactivity.js} +86 -44
  76. package/build/image/view-interactivity.js.map +1 -0
  77. package/build/index.js +12 -3
  78. package/build/index.js.map +1 -1
  79. package/build/latest-comments/edit.js +1 -0
  80. package/build/latest-comments/edit.js.map +1 -1
  81. package/build/latest-posts/edit.js +2 -0
  82. package/build/latest-posts/edit.js.map +1 -1
  83. package/build/list/edit.js +4 -4
  84. package/build/list/edit.js.map +1 -1
  85. package/build/list/index.js +5 -1
  86. package/build/list/index.js.map +1 -1
  87. package/build/list-item/utils.js +6 -1
  88. package/build/list-item/utils.js.map +1 -1
  89. package/build/media-text/index.js +1 -0
  90. package/build/media-text/index.js.map +1 -1
  91. package/build/media-text/media-container.native.js +2 -1
  92. package/build/media-text/media-container.native.js.map +1 -1
  93. package/build/missing/edit.js +22 -8
  94. package/build/missing/edit.js.map +1 -1
  95. package/build/missing/edit.native.js +7 -5
  96. package/build/missing/edit.native.js.map +1 -1
  97. package/build/navigation/constants.js +10 -4
  98. package/build/navigation/constants.js.map +1 -1
  99. package/build/navigation/edit/index.js +17 -3
  100. package/build/navigation/edit/index.js.map +1 -1
  101. package/build/navigation/edit/inner-blocks.js +2 -2
  102. package/build/navigation/edit/inner-blocks.js.map +1 -1
  103. package/build/navigation/edit/menu-inspector-controls.js +0 -1
  104. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  105. package/build/navigation/edit/unsaved-inner-blocks.js +2 -2
  106. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  107. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +10 -15
  108. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  109. package/build/navigation/use-navigation-menu.js +33 -45
  110. package/build/navigation/use-navigation-menu.js.map +1 -1
  111. package/build/navigation/view-interactivity.js +185 -0
  112. package/build/navigation/view-interactivity.js.map +1 -0
  113. package/build/navigation-link/edit.js +12 -18
  114. package/build/navigation-link/edit.js.map +1 -1
  115. package/build/navigation-link/link-ui.js +12 -2
  116. package/build/navigation-link/link-ui.js.map +1 -1
  117. package/build/navigation-submenu/edit.js +2 -2
  118. package/build/navigation-submenu/edit.js.map +1 -1
  119. package/build/page-list/convert-to-links-modal.js +3 -3
  120. package/build/page-list/convert-to-links-modal.js.map +1 -1
  121. package/build/page-list/edit.js +34 -39
  122. package/build/page-list/edit.js.map +1 -1
  123. package/build/page-list/use-convert-to-navigation-links.js +2 -15
  124. package/build/page-list/use-convert-to-navigation-links.js.map +1 -1
  125. package/build/paragraph/index.js +1 -0
  126. package/build/paragraph/index.js.map +1 -1
  127. package/build/paragraph/transforms.js +1 -0
  128. package/build/paragraph/transforms.js.map +1 -1
  129. package/build/post-comments-form/index.js +1 -0
  130. package/build/post-comments-form/index.js.map +1 -1
  131. package/build/post-navigation-link/index.js +1 -0
  132. package/build/post-navigation-link/index.js.map +1 -1
  133. package/build/post-time-to-read/index.js +5 -1
  134. package/build/post-time-to-read/index.js.map +1 -1
  135. package/build/query-pagination/edit.js +1 -1
  136. package/build/query-pagination/edit.js.map +1 -1
  137. package/build/query-pagination-numbers/index.js +1 -1
  138. package/build/query-title/edit.js +43 -1
  139. package/build/query-title/edit.js.map +1 -1
  140. package/build/quote/index.js +1 -0
  141. package/build/quote/index.js.map +1 -1
  142. package/build/quote/transforms.js +8 -0
  143. package/build/quote/transforms.js.map +1 -1
  144. package/build/rss/edit.js +3 -0
  145. package/build/rss/edit.js.map +1 -1
  146. package/build/search/edit.js +4 -3
  147. package/build/search/edit.js.map +1 -1
  148. package/build/search/index.js +1 -0
  149. package/build/search/index.js.map +1 -1
  150. package/build/site-logo/edit.js +1 -0
  151. package/build/site-logo/edit.js.map +1 -1
  152. package/build/site-logo/index.js +5 -1
  153. package/build/site-logo/index.js.map +1 -1
  154. package/build/site-tagline/icon.js +1 -1
  155. package/build/site-tagline/icon.js.map +1 -1
  156. package/build/site-tagline/index.js +5 -1
  157. package/build/site-tagline/index.js.map +1 -1
  158. package/build/site-title/index.js +5 -1
  159. package/build/site-title/index.js.map +1 -1
  160. package/build/social-links/index.js +3 -1
  161. package/build/social-links/index.js.map +1 -1
  162. package/build/table/index.js +5 -1
  163. package/build/table/index.js.map +1 -1
  164. package/build/tag-cloud/edit.js +1 -0
  165. package/build/tag-cloud/edit.js.map +1 -1
  166. package/build/template-part/edit/index.js +1 -1
  167. package/build/template-part/edit/index.js.map +1 -1
  168. package/build/term-description/index.js +1 -0
  169. package/build/term-description/index.js.map +1 -1
  170. package/build/text-columns/edit.js +1 -0
  171. package/build/text-columns/edit.js.map +1 -1
  172. package/build/verse/index.js +5 -1
  173. package/build/verse/index.js.map +1 -1
  174. package/build/video/deprecated.js +5 -1
  175. package/build/video/deprecated.js.map +1 -1
  176. package/build/video/index.js +5 -1
  177. package/build/video/index.js.map +1 -1
  178. package/build-module/archives/index.js +5 -1
  179. package/build-module/archives/index.js.map +1 -1
  180. package/build-module/audio/index.js +5 -1
  181. package/build-module/audio/index.js.map +1 -1
  182. package/build-module/avatar/edit.js +1 -0
  183. package/build-module/avatar/edit.js.map +1 -1
  184. package/build-module/avatar/index.js +1 -1
  185. package/build-module/block/edit.js +1 -1
  186. package/build-module/block/edit.js.map +1 -1
  187. package/build-module/block/edit.native.js +7 -9
  188. package/build-module/block/edit.native.js.map +1 -1
  189. package/build-module/block/index.js +2 -1
  190. package/build-module/block/index.js.map +1 -1
  191. package/build-module/buttons/edit.js +7 -3
  192. package/build-module/buttons/edit.js.map +1 -1
  193. package/build-module/categories/index.js +5 -1
  194. package/build-module/categories/index.js.map +1 -1
  195. package/build-module/code/index.js +5 -1
  196. package/build-module/code/index.js.map +1 -1
  197. package/build-module/column/edit.native.js +1 -4
  198. package/build-module/column/edit.native.js.map +1 -1
  199. package/build-module/column/index.js +1 -0
  200. package/build-module/column/index.js.map +1 -1
  201. package/build-module/columns/edit.js +1 -0
  202. package/build-module/columns/edit.js.map +1 -1
  203. package/build-module/comment-author-avatar/edit.js +1 -0
  204. package/build-module/comment-author-avatar/edit.js.map +1 -1
  205. package/build-module/comments/index.js +1 -0
  206. package/build-module/comments/index.js.map +1 -1
  207. package/build-module/cover/deprecated.js +4 -2
  208. package/build-module/cover/deprecated.js.map +1 -1
  209. package/build-module/cover/edit/inspector-controls.js +2 -1
  210. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  211. package/build-module/cover/index.js +1 -0
  212. package/build-module/cover/index.js.map +1 -1
  213. package/build-module/details/index.js +5 -1
  214. package/build-module/details/index.js.map +1 -1
  215. package/build-module/embed/embed-placeholder.native.js +37 -14
  216. package/build-module/embed/embed-placeholder.native.js.map +1 -1
  217. package/build-module/embed/util.js +6 -6
  218. package/build-module/embed/util.js.map +1 -1
  219. package/build-module/file/inspector.js +1 -0
  220. package/build-module/file/inspector.js.map +1 -1
  221. package/build-module/file/{interactivity.js → view-interactivity.js} +6 -2
  222. package/build-module/file/view-interactivity.js.map +1 -0
  223. package/build-module/footnotes/edit.js +18 -2
  224. package/build-module/footnotes/edit.js.map +1 -1
  225. package/build-module/footnotes/format.js +19 -16
  226. package/build-module/footnotes/format.js.map +1 -1
  227. package/build-module/footnotes/index.js +0 -1
  228. package/build-module/footnotes/index.js.map +1 -1
  229. package/build-module/gallery/edit.js +1 -1
  230. package/build-module/gallery/edit.js.map +1 -1
  231. package/build-module/gallery/index.js +3 -1
  232. package/build-module/gallery/index.js.map +1 -1
  233. package/build-module/group/index.js +1 -0
  234. package/build-module/group/index.js.map +1 -1
  235. package/build-module/heading/index.js +5 -1
  236. package/build-module/heading/index.js.map +1 -1
  237. package/build-module/heading/transforms.js +5 -1
  238. package/build-module/heading/transforms.js.map +1 -1
  239. package/build-module/image/deprecated.js +454 -176
  240. package/build-module/image/deprecated.js.map +1 -1
  241. package/build-module/image/edit.js +0 -4
  242. package/build-module/image/edit.js.map +1 -1
  243. package/build-module/image/image.js +96 -46
  244. package/build-module/image/image.js.map +1 -1
  245. package/build-module/image/index.js +6 -0
  246. package/build-module/image/index.js.map +1 -1
  247. package/build-module/image/save.js +8 -1
  248. package/build-module/image/save.js.map +1 -1
  249. package/build-module/image/utils.js +16 -0
  250. package/build-module/image/utils.js.map +1 -1
  251. package/build-module/image/{interactivity.js → view-interactivity.js} +86 -44
  252. package/build-module/image/view-interactivity.js.map +1 -0
  253. package/build-module/index.js +12 -3
  254. package/build-module/index.js.map +1 -1
  255. package/build-module/latest-comments/edit.js +1 -0
  256. package/build-module/latest-comments/edit.js.map +1 -1
  257. package/build-module/latest-posts/edit.js +2 -0
  258. package/build-module/latest-posts/edit.js.map +1 -1
  259. package/build-module/list/edit.js +4 -4
  260. package/build-module/list/edit.js.map +1 -1
  261. package/build-module/list/index.js +5 -1
  262. package/build-module/list/index.js.map +1 -1
  263. package/build-module/list-item/utils.js +6 -1
  264. package/build-module/list-item/utils.js.map +1 -1
  265. package/build-module/media-text/index.js +1 -0
  266. package/build-module/media-text/index.js.map +1 -1
  267. package/build-module/media-text/media-container.native.js +2 -1
  268. package/build-module/media-text/media-container.native.js.map +1 -1
  269. package/build-module/missing/edit.js +22 -8
  270. package/build-module/missing/edit.js.map +1 -1
  271. package/build-module/missing/edit.native.js +8 -6
  272. package/build-module/missing/edit.native.js.map +1 -1
  273. package/build-module/navigation/constants.js +8 -3
  274. package/build-module/navigation/constants.js.map +1 -1
  275. package/build-module/navigation/edit/index.js +18 -4
  276. package/build-module/navigation/edit/index.js.map +1 -1
  277. package/build-module/navigation/edit/inner-blocks.js +2 -2
  278. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  279. package/build-module/navigation/edit/menu-inspector-controls.js +0 -1
  280. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  281. package/build-module/navigation/edit/unsaved-inner-blocks.js +2 -2
  282. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  283. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +10 -14
  284. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  285. package/build-module/navigation/use-navigation-menu.js +35 -47
  286. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  287. package/build-module/navigation/view-interactivity.js +182 -0
  288. package/build-module/navigation/view-interactivity.js.map +1 -0
  289. package/build-module/navigation-link/edit.js +13 -19
  290. package/build-module/navigation-link/edit.js.map +1 -1
  291. package/build-module/navigation-link/link-ui.js +13 -3
  292. package/build-module/navigation-link/link-ui.js.map +1 -1
  293. package/build-module/navigation-submenu/edit.js +2 -2
  294. package/build-module/navigation-submenu/edit.js.map +1 -1
  295. package/build-module/page-list/convert-to-links-modal.js +3 -3
  296. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  297. package/build-module/page-list/edit.js +34 -39
  298. package/build-module/page-list/edit.js.map +1 -1
  299. package/build-module/page-list/use-convert-to-navigation-links.js +3 -16
  300. package/build-module/page-list/use-convert-to-navigation-links.js.map +1 -1
  301. package/build-module/paragraph/index.js +1 -0
  302. package/build-module/paragraph/index.js.map +1 -1
  303. package/build-module/paragraph/transforms.js +1 -0
  304. package/build-module/paragraph/transforms.js.map +1 -1
  305. package/build-module/post-comments-form/index.js +1 -0
  306. package/build-module/post-comments-form/index.js.map +1 -1
  307. package/build-module/post-navigation-link/index.js +1 -0
  308. package/build-module/post-navigation-link/index.js.map +1 -1
  309. package/build-module/post-time-to-read/index.js +5 -1
  310. package/build-module/post-time-to-read/index.js.map +1 -1
  311. package/build-module/query-pagination/edit.js +1 -1
  312. package/build-module/query-pagination/edit.js.map +1 -1
  313. package/build-module/query-pagination-numbers/index.js +1 -1
  314. package/build-module/query-title/edit.js +44 -3
  315. package/build-module/query-title/edit.js.map +1 -1
  316. package/build-module/quote/index.js +1 -0
  317. package/build-module/quote/index.js.map +1 -1
  318. package/build-module/quote/transforms.js +8 -0
  319. package/build-module/quote/transforms.js.map +1 -1
  320. package/build-module/rss/edit.js +3 -0
  321. package/build-module/rss/edit.js.map +1 -1
  322. package/build-module/search/edit.js +4 -3
  323. package/build-module/search/edit.js.map +1 -1
  324. package/build-module/search/index.js +1 -0
  325. package/build-module/search/index.js.map +1 -1
  326. package/build-module/site-logo/edit.js +1 -0
  327. package/build-module/site-logo/edit.js.map +1 -1
  328. package/build-module/site-logo/index.js +5 -1
  329. package/build-module/site-logo/index.js.map +1 -1
  330. package/build-module/site-tagline/icon.js +1 -1
  331. package/build-module/site-tagline/icon.js.map +1 -1
  332. package/build-module/site-tagline/index.js +5 -1
  333. package/build-module/site-tagline/index.js.map +1 -1
  334. package/build-module/site-title/index.js +5 -1
  335. package/build-module/site-title/index.js.map +1 -1
  336. package/build-module/social-links/index.js +3 -1
  337. package/build-module/social-links/index.js.map +1 -1
  338. package/build-module/table/index.js +5 -1
  339. package/build-module/table/index.js.map +1 -1
  340. package/build-module/tag-cloud/edit.js +1 -0
  341. package/build-module/tag-cloud/edit.js.map +1 -1
  342. package/build-module/template-part/edit/index.js +1 -1
  343. package/build-module/template-part/edit/index.js.map +1 -1
  344. package/build-module/term-description/index.js +1 -0
  345. package/build-module/term-description/index.js.map +1 -1
  346. package/build-module/text-columns/edit.js +1 -0
  347. package/build-module/text-columns/edit.js.map +1 -1
  348. package/build-module/verse/index.js +5 -1
  349. package/build-module/verse/index.js.map +1 -1
  350. package/build-module/video/deprecated.js +5 -1
  351. package/build-module/video/deprecated.js.map +1 -1
  352. package/build-module/video/index.js +5 -1
  353. package/build-module/video/index.js.map +1 -1
  354. package/build-style/details/style-rtl.css +4 -2
  355. package/build-style/details/style.css +4 -2
  356. package/build-style/footnotes/style-rtl.css +4 -3
  357. package/build-style/footnotes/style.css +4 -3
  358. package/build-style/image/style-rtl.css +16 -2
  359. package/build-style/image/style.css +16 -2
  360. package/build-style/navigation/style-rtl.css +14 -2
  361. package/build-style/navigation/style.css +14 -2
  362. package/build-style/query-pagination/style-rtl.css +4 -2
  363. package/build-style/query-pagination/style.css +4 -2
  364. package/build-style/style-rtl.css +42 -11
  365. package/build-style/style.css +42 -11
  366. package/package.json +33 -37
  367. package/src/archives/block.json +5 -1
  368. package/src/audio/block.json +5 -1
  369. package/src/audio/test/__snapshots__/edit.native.js.snap +58 -33
  370. package/src/avatar/block.json +1 -1
  371. package/src/avatar/edit.js +1 -0
  372. package/src/block/block.json +2 -1
  373. package/src/block/edit.js +2 -2
  374. package/src/block/edit.native.js +8 -12
  375. package/src/block/editor.native.scss +2 -2
  376. package/src/block/test/edit.native.js +4 -4
  377. package/src/buttons/edit.js +4 -4
  378. package/src/categories/block.json +5 -1
  379. package/src/code/block.json +5 -1
  380. package/src/column/block.json +1 -0
  381. package/src/column/edit.native.js +4 -10
  382. package/src/column/editor.native.scss +0 -4
  383. package/src/columns/edit.js +1 -0
  384. package/src/comment-author-avatar/edit.js +1 -0
  385. package/src/comment-template/index.php +5 -2
  386. package/src/comments/block.json +1 -0
  387. package/src/cover/block.json +1 -0
  388. package/src/cover/deprecated.js +2 -0
  389. package/src/cover/edit/inspector-controls.js +1 -0
  390. package/src/details/block.json +5 -1
  391. package/src/embed/embed-placeholder.native.js +80 -47
  392. package/src/embed/styles.native.scss +54 -18
  393. package/src/embed/test/index.native.js +5 -5
  394. package/src/embed/util.js +4 -6
  395. package/src/file/index.php +4 -3
  396. package/src/file/inspector.js +1 -0
  397. package/src/file/test/__snapshots__/edit.native.js.snap +58 -33
  398. package/src/file/{interactivity.js → view-interactivity.js} +4 -1
  399. package/src/footnotes/block.json +0 -1
  400. package/src/footnotes/edit.js +21 -2
  401. package/src/footnotes/format.js +22 -20
  402. package/src/footnotes/index.php +11 -9
  403. package/src/footnotes/style.scss +6 -3
  404. package/src/gallery/block.json +3 -1
  405. package/src/gallery/edit.js +1 -1
  406. package/src/gallery/test/index.native.js +17 -16
  407. package/src/group/block.json +1 -0
  408. package/src/heading/block.json +5 -1
  409. package/src/heading/test/index.native.js +18 -0
  410. package/src/home-link/index.php +15 -2
  411. package/src/image/block.json +6 -0
  412. package/src/image/deprecated.js +597 -320
  413. package/src/image/edit.js +0 -4
  414. package/src/image/image.js +131 -62
  415. package/src/image/index.php +47 -8
  416. package/src/image/save.js +9 -1
  417. package/src/image/style.scss +15 -2
  418. package/src/image/test/edit.native.js +1 -1
  419. package/src/image/utils.js +16 -0
  420. package/src/image/{interactivity.js → view-interactivity.js} +99 -50
  421. package/src/index.js +18 -1
  422. package/src/latest-comments/edit.js +1 -0
  423. package/src/latest-posts/edit.js +2 -0
  424. package/src/latest-posts/index.php +1 -1
  425. package/src/list/block.json +5 -1
  426. package/src/list/edit.js +6 -4
  427. package/src/list/test/edit.native.js +129 -33
  428. package/src/media-text/block.json +1 -0
  429. package/src/media-text/media-container.native.js +1 -0
  430. package/src/missing/edit.js +31 -11
  431. package/src/missing/edit.native.js +12 -10
  432. package/src/missing/style.native.scss +19 -12
  433. package/src/missing/test/__snapshots__/edit.native.js.snap +21 -13
  434. package/src/navigation/constants.js +12 -6
  435. package/src/navigation/edit/index.js +30 -3
  436. package/src/navigation/edit/inner-blocks.js +2 -2
  437. package/src/navigation/edit/menu-inspector-controls.js +0 -1
  438. package/src/navigation/edit/unsaved-inner-blocks.js +2 -2
  439. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +17 -21
  440. package/src/navigation/index.php +43 -16
  441. package/src/navigation/style.scss +27 -8
  442. package/src/navigation/use-navigation-menu.js +39 -63
  443. package/src/navigation/view-interactivity.js +196 -0
  444. package/src/navigation-link/edit.js +61 -61
  445. package/src/navigation-link/link-ui.js +14 -2
  446. package/src/navigation-submenu/edit.js +2 -2
  447. package/src/navigation-submenu/index.php +2 -12
  448. package/src/page-list/convert-to-links-modal.js +3 -3
  449. package/src/page-list/edit.js +65 -62
  450. package/src/page-list/use-convert-to-navigation-links.js +3 -20
  451. package/src/paragraph/block.json +1 -0
  452. package/src/paragraph/test/__snapshots__/edit.native.js.snap +1 -0
  453. package/src/paragraph/test/edit.native.js +26 -0
  454. package/src/post-comments-form/block.json +1 -0
  455. package/src/post-navigation-link/block.json +1 -0
  456. package/src/post-template/index.php +4 -2
  457. package/src/post-time-to-read/block.json +5 -1
  458. package/src/post-title/index.php +6 -3
  459. package/src/preformatted/test/__snapshots__/edit.native.js.snap +2 -0
  460. package/src/query-pagination/edit.js +17 -14
  461. package/src/query-pagination-numbers/block.json +1 -1
  462. package/src/query-title/edit.js +48 -6
  463. package/src/quote/block.json +1 -0
  464. package/src/quote/test/__snapshots__/transforms.native.js.snap +10 -0
  465. package/src/quote/test/transforms.native.js +5 -1
  466. package/src/quote/transforms.js +13 -0
  467. package/src/rss/edit.js +3 -0
  468. package/src/search/block.json +1 -0
  469. package/src/search/edit.js +4 -3
  470. package/src/search/index.php +22 -4
  471. package/src/search/test/__snapshots__/edit.native.js.snap +7 -0
  472. package/src/site-logo/block.json +5 -1
  473. package/src/site-logo/edit.js +1 -0
  474. package/src/site-tagline/block.json +5 -1
  475. package/src/site-tagline/icon.js +1 -1
  476. package/src/site-title/block.json +5 -1
  477. package/src/social-links/block.json +3 -1
  478. package/src/table/block.json +5 -1
  479. package/src/tag-cloud/edit.js +1 -0
  480. package/src/template-part/edit/index.js +1 -1
  481. package/src/template-part/index.php +9 -15
  482. package/src/term-description/block.json +1 -0
  483. package/src/text-columns/edit.js +1 -0
  484. package/src/verse/block.json +5 -1
  485. package/src/video/block.json +5 -1
  486. package/build/file/interactivity.js.map +0 -1
  487. package/build/gallery/shared-icon.native.js +0 -38
  488. package/build/gallery/shared-icon.native.js.map +0 -1
  489. package/build/heading/heading-level-icon.js +0 -61
  490. package/build/heading/heading-level-icon.js.map +0 -1
  491. package/build/image/interactivity.js.map +0 -1
  492. package/build/navigation/interactivity.js +0 -167
  493. package/build/navigation/interactivity.js.map +0 -1
  494. package/build/utils/interactivity/constants.js +0 -9
  495. package/build/utils/interactivity/constants.js.map +0 -1
  496. package/build/utils/interactivity/directives.js +0 -222
  497. package/build/utils/interactivity/directives.js.map +0 -1
  498. package/build/utils/interactivity/hooks.js +0 -159
  499. package/build/utils/interactivity/hooks.js.map +0 -1
  500. package/build/utils/interactivity/hydration.js +0 -34
  501. package/build/utils/interactivity/hydration.js.map +0 -1
  502. package/build/utils/interactivity/index.js +0 -32
  503. package/build/utils/interactivity/index.js.map +0 -1
  504. package/build/utils/interactivity/portals.js +0 -108
  505. package/build/utils/interactivity/portals.js.map +0 -1
  506. package/build/utils/interactivity/store.js +0 -66
  507. package/build/utils/interactivity/store.js.map +0 -1
  508. package/build/utils/interactivity/utils.js +0 -87
  509. package/build/utils/interactivity/utils.js.map +0 -1
  510. package/build/utils/interactivity/vdom.js +0 -119
  511. package/build/utils/interactivity/vdom.js.map +0 -1
  512. package/build-module/file/interactivity.js.map +0 -1
  513. package/build-module/gallery/shared-icon.native.js +0 -24
  514. package/build-module/gallery/shared-icon.native.js.map +0 -1
  515. package/build-module/heading/heading-level-icon.js +0 -53
  516. package/build-module/heading/heading-level-icon.js.map +0 -1
  517. package/build-module/image/interactivity.js.map +0 -1
  518. package/build-module/navigation/interactivity.js +0 -164
  519. package/build-module/navigation/interactivity.js.map +0 -1
  520. package/build-module/utils/interactivity/constants.js +0 -2
  521. package/build-module/utils/interactivity/constants.js.map +0 -1
  522. package/build-module/utils/interactivity/directives.js +0 -209
  523. package/build-module/utils/interactivity/directives.js.map +0 -1
  524. package/build-module/utils/interactivity/hooks.js +0 -145
  525. package/build-module/utils/interactivity/hooks.js.map +0 -1
  526. package/build-module/utils/interactivity/hydration.js +0 -21
  527. package/build-module/utils/interactivity/hydration.js.map +0 -1
  528. package/build-module/utils/interactivity/index.js +0 -15
  529. package/build-module/utils/interactivity/index.js.map +0 -1
  530. package/build-module/utils/interactivity/portals.js +0 -100
  531. package/build-module/utils/interactivity/portals.js.map +0 -1
  532. package/build-module/utils/interactivity/store.js +0 -55
  533. package/build-module/utils/interactivity/store.js.map +0 -1
  534. package/build-module/utils/interactivity/utils.js +0 -75
  535. package/build-module/utils/interactivity/utils.js.map +0 -1
  536. package/build-module/utils/interactivity/vdom.js +0 -107
  537. package/build-module/utils/interactivity/vdom.js.map +0 -1
  538. package/src/gallery/shared-icon.native.js +0 -23
  539. package/src/heading/heading-level-icon.js +0 -48
  540. package/src/navigation/interactivity.js +0 -169
  541. package/src/utils/interactivity/constants.js +0 -1
  542. package/src/utils/interactivity/directives.js +0 -200
  543. package/src/utils/interactivity/hooks.js +0 -145
  544. package/src/utils/interactivity/hydration.js +0 -22
  545. package/src/utils/interactivity/index.js +0 -15
  546. package/src/utils/interactivity/portals.js +0 -98
  547. package/src/utils/interactivity/store.js +0 -45
  548. package/src/utils/interactivity/utils.js +0 -66
  549. package/src/utils/interactivity/vdom.js +0 -111
@@ -31,11 +31,11 @@
31
31
  height: 36;
32
32
  padding-top: 8;
33
33
  padding-bottom: 8;
34
- color: $gray-darken-20;
34
+ color: $light-secondary;
35
35
  }
36
36
 
37
37
  .infoIconDark {
38
- color: $gray-20;
38
+ color: $dark-tertiary;
39
39
  }
40
40
 
41
41
  .infoSheetIcon {
@@ -82,7 +82,8 @@
82
82
  }
83
83
 
84
84
  .unsupportedBlock {
85
- background-color: $gray-lighten-30;
85
+ height: 142;
86
+ background-color: #e0e0e0; // $light-dim
86
87
  padding-top: 24;
87
88
  padding-bottom: 24;
88
89
  padding-left: 8;
@@ -96,31 +97,37 @@
96
97
  }
97
98
 
98
99
  .unsupportedBlockDark {
99
- background-color: $background-dark-secondary;
100
+ background-color: #1f1f1f; // $dark-dim
101
+ }
102
+
103
+ .unsupportedBlockHeader {
104
+ flex-direction: row;
105
+ align-items: center;
106
+ margin-top: 4;
107
+ margin-bottom: 8;
100
108
  }
101
109
 
102
110
  .unsupportedBlockIcon {
103
- color: $gray-dark;
111
+ color: $light-secondary;
104
112
  }
105
113
 
106
114
  .unsupportedBlockIconDark {
107
- color: $white;
115
+ color: $dark-tertiary;
108
116
  }
109
117
 
110
118
  .unsupportedBlockMessage {
111
- margin-top: 4;
112
119
  text-align: center;
113
- color: $gray-dark;
114
- font-size: 14;
115
- font-weight: 600;
120
+ color: $light-secondary;
121
+ font-size: 16;
122
+ font-weight: 400;
123
+ margin-left: 6;
116
124
  }
117
125
 
118
126
  .unsupportedBlockMessageDark {
119
- color: $white;
127
+ color: $dark-tertiary;
120
128
  }
121
129
 
122
130
  .unsupportedBlockSubtitle {
123
- margin-top: 2;
124
131
  text-align: center;
125
132
  color: $gray-darken-20;
126
133
  font-size: 12;
@@ -25,6 +25,7 @@ exports[`Missing block renders without crashing 1`] = `
25
25
  accessibilityLabel="Help button"
26
26
  accessibilityRole="button"
27
27
  accessible={true}
28
+ collapsable={false}
28
29
  focusable={true}
29
30
  onClick={[Function]}
30
31
  onResponderGrant={[Function]}
@@ -33,6 +34,11 @@ exports[`Missing block renders without crashing 1`] = `
33
34
  onResponderTerminate={[Function]}
34
35
  onResponderTerminationRequest={[Function]}
35
36
  onStartShouldSetResponder={[Function]}
37
+ style={
38
+ {
39
+ "opacity": 1,
40
+ }
41
+ }
36
42
  >
37
43
  <Svg
38
44
  height={24}
@@ -45,19 +51,21 @@ exports[`Missing block renders without crashing 1`] = `
45
51
  Path
46
52
  </Svg>
47
53
  </View>
48
- <Svg
49
- color="white"
50
- height={24}
51
- style={{}}
52
- viewBox="0 0 24 24"
53
- width={24}
54
- xmlns="http://www.w3.org/2000/svg"
55
- >
56
- Path
57
- </Svg>
58
- <Text>
59
- missing/block/title
60
- </Text>
54
+ <View>
55
+ <Svg
56
+ fill="white"
57
+ height={24}
58
+ style={{}}
59
+ viewBox="0 0 24 24"
60
+ width={24}
61
+ xmlns="http://www.w3.org/2000/svg"
62
+ >
63
+ Path
64
+ </Svg>
65
+ <Text>
66
+ missing/block/title
67
+ </Text>
68
+ </View>
61
69
  <Text>
62
70
  Unsupported
63
71
  </Text>
@@ -20,13 +20,19 @@ export const PRIORITIZED_INSERTER_BLOCKS = [
20
20
  'core/navigation-link',
21
21
  ];
22
22
 
23
+ // These parameters must be kept aligned with those in
24
+ // lib/compat/wordpress-6.3/navigation-block-preloading.php
25
+ // and
26
+ // edit-site/src/components/sidebar-navigation-screen-navigation-menus/constants.js
27
+ export const PRELOADED_NAVIGATION_MENUS_QUERY = {
28
+ per_page: 100,
29
+ status: [ 'publish', 'draft' ],
30
+ order: 'desc',
31
+ orderby: 'date',
32
+ };
33
+
23
34
  export const SELECT_NAVIGATION_MENUS_ARGS = [
24
35
  'postType',
25
36
  'wp_navigation',
26
- {
27
- per_page: 100,
28
- status: [ 'publish', 'draft' ],
29
- order: 'desc',
30
- orderby: 'date',
31
- },
37
+ PRELOADED_NAVIGATION_MENUS_QUERY,
32
38
  ];
@@ -38,6 +38,7 @@ import {
38
38
  __experimentalToggleGroupControlOption as ToggleGroupControlOption,
39
39
  Button,
40
40
  Spinner,
41
+ Notice,
41
42
  } from '@wordpress/components';
42
43
  import { __, sprintf } from '@wordpress/i18n';
43
44
  import { speak } from '@wordpress/a11y';
@@ -69,7 +70,6 @@ import ManageMenusButton from './manage-menus-button';
69
70
  import MenuInspectorControls from './menu-inspector-controls';
70
71
  import DeletedNavigationWarning from './deleted-navigation-warning';
71
72
  import { unlock } from '../../lock-unlock';
72
-
73
73
  const { useBlockEditingMode } = unlock( blockEditorPrivateApis );
74
74
 
75
75
  function Navigation( {
@@ -197,7 +197,7 @@ function Navigation( {
197
197
  convert: convertClassicMenu,
198
198
  status: classicMenuConversionStatus,
199
199
  error: classicMenuConversionError,
200
- } = useConvertClassicToBlockMenu( clientId );
200
+ } = useConvertClassicToBlockMenu( createNavigationMenu );
201
201
 
202
202
  const isConvertingClassicMenu =
203
203
  classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;
@@ -224,7 +224,7 @@ function Navigation( {
224
224
  // that automatically saves the menu as an entity when changes are made to the inner blocks.
225
225
  const hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;
226
226
 
227
- const { getNavigationFallbackId } = useSelect( coreStore );
227
+ const { getNavigationFallbackId } = unlock( useSelect( coreStore ) );
228
228
 
229
229
  const navigationFallbackId = ! ( ref || hasUnsavedBlocks )
230
230
  ? getNavigationFallbackId()
@@ -486,6 +486,21 @@ function Navigation( {
486
486
  { open: overlayMenuPreview }
487
487
  );
488
488
 
489
+ const submenuAccessibilityNotice =
490
+ ! showSubmenuIcon && ! openSubmenusOnClick
491
+ ? __(
492
+ 'The current menu options offer reduced accessibility for users and are not recommended. Enabling either "Open on Click" or "Show arrow" offers enhanced accessibility by allowing keyboard users to browse submenus selectively.'
493
+ )
494
+ : '';
495
+
496
+ const isFirstRender = useRef( true ); // Don't speak on first render.
497
+ useEffect( () => {
498
+ if ( ! isFirstRender.current && submenuAccessibilityNotice ) {
499
+ speak( submenuAccessibilityNotice );
500
+ }
501
+ isFirstRender.current = false;
502
+ }, [ submenuAccessibilityNotice ] );
503
+
489
504
  const colorGradientSettings = useMultipleOriginColorsAndGradients();
490
505
  const stylingInspectorControls = (
491
506
  <>
@@ -579,6 +594,18 @@ function Navigation( {
579
594
  disabled={ attributes.openSubmenusOnClick }
580
595
  label={ __( 'Show arrow' ) }
581
596
  />
597
+
598
+ { submenuAccessibilityNotice && (
599
+ <div>
600
+ <Notice
601
+ spokenMessage={ null }
602
+ status="warning"
603
+ isDismissible={ false }
604
+ >
605
+ { submenuAccessibilityNotice }
606
+ </Notice>
607
+ </div>
608
+ ) }
582
609
  </>
583
610
  ) }
584
611
  </PanelBody>
@@ -98,8 +98,8 @@ export default function NavigationInnerBlocks( {
98
98
  onChange,
99
99
  allowedBlocks: ALLOWED_BLOCKS,
100
100
  prioritizedInserterBlocks: PRIORITIZED_INSERTER_BLOCKS,
101
- __experimentalDefaultBlock: DEFAULT_BLOCK,
102
- __experimentalDirectInsert: shouldDirectInsert,
101
+ defaultBlock: DEFAULT_BLOCK,
102
+ directInsert: shouldDirectInsert,
103
103
  orientation,
104
104
  templateLock,
105
105
 
@@ -60,7 +60,6 @@ function AdditionalBlockContent( { block, insertedBlock, setInsertedBlock } ) {
60
60
  onClose={ () => {
61
61
  setInsertedBlock( null );
62
62
  } }
63
- hasCreateSuggestion={ false }
64
63
  onChange={ ( updatedValue ) => {
65
64
  updateAttributes(
66
65
  updatedValue,
@@ -68,8 +68,8 @@ export default function UnsavedInnerBlocks( {
68
68
  {
69
69
  renderAppender: hasSelection ? undefined : false,
70
70
  allowedBlocks: ALLOWED_BLOCKS,
71
- __experimentalDefaultBlock: DEFAULT_BLOCK,
72
- __experimentalDirectInsert: shouldDirectInsert,
71
+ defaultBlock: DEFAULT_BLOCK,
72
+ directInsert: shouldDirectInsert,
73
73
  }
74
74
  );
75
75
 
@@ -9,7 +9,6 @@ import { __, sprintf } from '@wordpress/i18n';
9
9
  /**
10
10
  * Internal dependencies
11
11
  */
12
- import useCreateNavigationMenu from './use-create-navigation-menu';
13
12
  import menuItemsToBlocks from '../menu-items-to-blocks';
14
13
 
15
14
  export const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';
@@ -21,15 +20,10 @@ export const CLASSIC_MENU_CONVERSION_IDLE = 'idle';
21
20
  // do not import the same classic menu twice.
22
21
  let classicMenuBeingConvertedId = null;
23
22
 
24
- function useConvertClassicToBlockMenu( clientId ) {
25
- /*
26
- * The wp_navigation post is created as a draft so the changes on the frontend and
27
- * the site editor are not permanent without a save interaction done by the user.
28
- */
29
- const { create: createNavigationMenu } = useCreateNavigationMenu(
30
- clientId,
31
- 'draft'
32
- );
23
+ function useConvertClassicToBlockMenu(
24
+ createNavigationMenu,
25
+ { throwOnError = false } = {}
26
+ ) {
33
27
  const registry = useRegistry();
34
28
  const { editEntityRecord } = useDispatch( coreStore );
35
29
 
@@ -158,19 +152,21 @@ function useConvertClassicToBlockMenu( clientId ) {
158
152
  classicMenuBeingConvertedId = null;
159
153
 
160
154
  // Rethrow error for debugging.
161
- throw new Error(
162
- sprintf(
163
- // translators: %s: the name of a menu (e.g. Header navigation).
164
- __( `Unable to create Navigation Menu "%s".` ),
165
- menuName
166
- ),
167
- {
168
- cause: err,
169
- }
170
- );
155
+ if ( throwOnError ) {
156
+ throw new Error(
157
+ sprintf(
158
+ // translators: %s: the name of a menu (e.g. Header navigation).
159
+ __( `Unable to create Navigation Menu "%s".` ),
160
+ menuName
161
+ ),
162
+ {
163
+ cause: err,
164
+ }
165
+ );
166
+ }
171
167
  } );
172
168
  },
173
- [ convertClassicMenuToBlockMenu ]
169
+ [ convertClassicMenuToBlockMenu, throwOnError ]
174
170
  );
175
171
 
176
172
  return {
@@ -65,6 +65,9 @@ if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) {
65
65
 
66
66
  return $menu_items_by_parent_id;
67
67
  }
68
+ }
69
+
70
+ if ( gutenberg_should_block_use_interactivity_api( 'core/navigation' ) ) {
68
71
 
69
72
  /**
70
73
  * Add Interactivity API directives to the navigation-submenu and page-list blocks markup using the Tag Processor
@@ -94,7 +97,7 @@ if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) {
94
97
  *
95
98
  * @return string Submenu markup with the directives injected.
96
99
  */
97
- function gutenberg_block_core_navigation_add_directives_to_submenu( $w, $block_attributes ) {
100
+ function block_core_navigation_add_directives_to_submenu( $w, $block_attributes ) {
98
101
  while ( $w->next_tag(
99
102
  array(
100
103
  'tag_name' => 'LI',
@@ -103,7 +106,7 @@ if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) {
103
106
  ) ) {
104
107
  // Add directives to the parent `<li>`.
105
108
  $w->set_attribute( 'data-wp-interactive', true );
106
- $w->set_attribute( 'data-wp-context', '{ "core": { "navigation": { "isMenuOpen": { "click": false, "hover": false }, "overlay": false } } }' );
109
+ $w->set_attribute( 'data-wp-context', '{ "core": { "navigation": { "submenuOpenedBy": {}, "type": "submenu" } } }' );
107
110
  $w->set_attribute( 'data-wp-effect', 'effects.core.navigation.initMenu' );
108
111
  $w->set_attribute( 'data-wp-on--focusout', 'actions.core.navigation.handleMenuFocusout' );
109
112
  $w->set_attribute( 'data-wp-on--keydown', 'actions.core.navigation.handleMenuKeydown' );
@@ -123,8 +126,18 @@ if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) {
123
126
  $w->set_attribute( 'data-wp-bind--aria-expanded', 'selectors.core.navigation.isMenuOpen' );
124
127
  };
125
128
 
129
+ // Add directives to the submenu.
130
+ if ( $w->next_tag(
131
+ array(
132
+ 'tag_name' => 'UL',
133
+ 'class_name' => 'wp-block-navigation__submenu-container',
134
+ )
135
+ ) ) {
136
+ $w->set_attribute( 'data-wp-on--focusin', 'actions.core.navigation.openMenuOnFocus' );
137
+ }
138
+
126
139
  // Iterate through subitems if exist.
127
- gutenberg_block_core_navigation_add_directives_to_submenu( $w, $block_attributes );
140
+ block_core_navigation_add_directives_to_submenu( $w, $block_attributes );
128
141
  }
129
142
  return $w->get_updated_html();
130
143
  };
@@ -138,7 +151,8 @@ if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) {
138
151
  */
139
152
  function gutenberg_block_core_navigation_update_interactive_view_script( $metadata ) {
140
153
  if ( 'core/navigation' === $metadata['name'] ) {
141
- $metadata['viewScript'] = array( 'file:./interactivity.min.js' );
154
+ $metadata['viewScript'] = array( 'file:./view-interactivity.min.js' );
155
+ $metadata['supports']['interactivity'] = true;
142
156
  }
143
157
  return $metadata;
144
158
  }
@@ -146,7 +160,6 @@ if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) {
146
160
  }
147
161
 
148
162
 
149
-
150
163
  /**
151
164
  * Build an array with CSS classes and inline styles defining the colors
152
165
  * which will be applied to the navigation markup in the front-end.
@@ -341,7 +354,11 @@ function block_core_navigation_get_fallback_blocks() {
341
354
  // If `core/page-list` is not registered then return empty blocks.
342
355
  $fallback_blocks = $registry->is_registered( 'core/page-list' ) ? $page_list_fallback : array();
343
356
 
344
- $navigation_post = WP_Navigation_Fallback_Gutenberg::get_fallback();
357
+ if ( class_exists( 'WP_Navigation_Fallback' ) ) {
358
+ $navigation_post = WP_Navigation_Fallback::get_fallback();
359
+ } else {
360
+ $navigation_post = Gutenberg_Navigation_Fallback::get_fallback();
361
+ }
345
362
 
346
363
  // Use the first non-empty Navigation as fallback if available.
347
364
  if ( $navigation_post ) {
@@ -671,9 +688,9 @@ function render_block_core_navigation( $attributes, $content, $block ) {
671
688
  }
672
689
 
673
690
  // Add directives to the submenu if needed.
674
- if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN && $has_submenus && $should_load_view_script ) {
691
+ if ( gutenberg_should_block_use_interactivity_api( 'core/navigation' ) && $has_submenus && $should_load_view_script ) {
675
692
  $w = new WP_HTML_Tag_Processor( $inner_blocks_html );
676
- $inner_blocks_html = gutenberg_block_core_navigation_add_directives_to_submenu( $w, $attributes );
693
+ $inner_blocks_html = block_core_navigation_add_directives_to_submenu( $w, $attributes );
677
694
  }
678
695
 
679
696
  $modal_unique_id = wp_unique_id( 'modal-' );
@@ -719,10 +736,10 @@ function render_block_core_navigation( $attributes, $content, $block ) {
719
736
  $responsive_container_directives = '';
720
737
  $responsive_dialog_directives = '';
721
738
  $close_button_directives = '';
722
- if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN && $should_load_view_script ) {
739
+ if ( gutenberg_should_block_use_interactivity_api( 'core/navigation' ) && $should_load_view_script ) {
723
740
  $nav_element_directives = '
724
741
  data-wp-interactive
725
- data-wp-context=\'{ "core": { "navigation": { "isMenuOpen": { "click": false, "hover": false }, "overlay": true, "roleAttribute": "" } } }\'
742
+ data-wp-context=\'{ "core": { "navigation": { "overlayOpenedBy": {}, "type": "overlay", "roleAttribute": "" } } }\'
726
743
  ';
727
744
  $open_button_directives = '
728
745
  data-wp-on--click="actions.core.navigation.openMenuOnClick"
@@ -836,6 +853,8 @@ add_filter( 'render_block_data', 'block_core_navigation_typographic_presets_back
836
853
  /**
837
854
  * Turns menu item data into a nested array of parsed blocks
838
855
  *
856
+ * @deprecated 6.3.0 Use WP_Navigation_Fallback::parse_blocks_from_menu_items() instead.
857
+ *
839
858
  * @param array $menu_items An array of menu items that represent
840
859
  * an individual level of a menu.
841
860
  * @param array $menu_items_by_parent_id An array keyed by the id of the
@@ -846,7 +865,7 @@ add_filter( 'render_block_data', 'block_core_navigation_typographic_presets_back
846
865
  */
847
866
  function block_core_navigation_parse_blocks_from_menu_items( $menu_items, $menu_items_by_parent_id ) {
848
867
 
849
- _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback_Gutenberg::parse_blocks_from_menu_items' );
868
+ _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::parse_blocks_from_menu_items' );
850
869
 
851
870
  if ( empty( $menu_items ) ) {
852
871
  return array();
@@ -891,11 +910,13 @@ function block_core_navigation_parse_blocks_from_menu_items( $menu_items, $menu_
891
910
  /**
892
911
  * Get the classic navigation menu to use as a fallback.
893
912
  *
913
+ * @deprecated 6.3.0 Use WP_Navigation_Fallback::get_classic_menu_fallback() instead.
914
+ *
894
915
  * @return object WP_Term The classic navigation.
895
916
  */
896
917
  function block_core_navigation_get_classic_menu_fallback() {
897
918
 
898
- _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback_Gutenberg::get_classic_menu_fallback' );
919
+ _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::get_classic_menu_fallback' );
899
920
 
900
921
  $classic_nav_menus = wp_get_nav_menus();
901
922
 
@@ -933,12 +954,14 @@ function block_core_navigation_get_classic_menu_fallback() {
933
954
  /**
934
955
  * Converts a classic navigation to blocks.
935
956
  *
957
+ * @deprecated 6.3.0 Use WP_Navigation_Fallback::get_classic_menu_fallback_blocks() instead.
958
+ *
936
959
  * @param object $classic_nav_menu WP_Term The classic navigation object to convert.
937
960
  * @return array the normalized parsed blocks.
938
961
  */
939
962
  function block_core_navigation_get_classic_menu_fallback_blocks( $classic_nav_menu ) {
940
963
 
941
- _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback_Gutenberg::get_classic_menu_fallback_blocks' );
964
+ _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::get_classic_menu_fallback_blocks' );
942
965
 
943
966
  // BEGIN: Code that already exists in wp_nav_menu().
944
967
  $menu_items = wp_get_nav_menu_items( $classic_nav_menu->term_id, array( 'update_post_term_cache' => false ) );
@@ -971,13 +994,15 @@ function block_core_navigation_get_classic_menu_fallback_blocks( $classic_nav_me
971
994
  }
972
995
 
973
996
  /**
974
- * If there's a the classic menu then use it as a fallback.
997
+ * If there's a classic menu then use it as a fallback.
998
+ *
999
+ * @deprecated 6.3.0 Use WP_Navigation_Fallback::create_classic_menu_fallback() instead.
975
1000
  *
976
1001
  * @return array the normalized parsed blocks.
977
1002
  */
978
1003
  function block_core_navigation_maybe_use_classic_menu_fallback() {
979
1004
 
980
- _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback_Gutenberg::create_classic_menu_fallback' );
1005
+ _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::create_classic_menu_fallback' );
981
1006
 
982
1007
  // See if we have a classic menu.
983
1008
  $classic_nav_menu = block_core_navigation_get_classic_menu_fallback();
@@ -1016,11 +1041,13 @@ function block_core_navigation_maybe_use_classic_menu_fallback() {
1016
1041
  /**
1017
1042
  * Finds the most recently published `wp_navigation` Post.
1018
1043
  *
1044
+ * @deprecated 6.3.0 Use WP_Navigation_Fallback::get_most_recently_published_navigation() instead.
1045
+ *
1019
1046
  * @return WP_Post|null the first non-empty Navigation or null.
1020
1047
  */
1021
1048
  function block_core_navigation_get_most_recently_published_navigation() {
1022
1049
 
1023
- _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback_Gutenberg::get_most_recently_published_navigation' );
1050
+ _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::get_most_recently_published_navigation' );
1024
1051
 
1025
1052
  // Default to the most recently created menu.
1026
1053
  $parsed_args = array(
@@ -31,6 +31,7 @@ $navigation-icon-size: 24px;
31
31
 
32
32
  // Menu item container.
33
33
  .wp-block-navigation-item {
34
+ background-color: inherit;
34
35
  display: flex;
35
36
  align-items: center;
36
37
  position: relative;
@@ -398,15 +399,26 @@ button.wp-block-navigation-item__content {
398
399
  }
399
400
 
400
401
  // Default background and font color.
401
- .wp-block-navigation:not(.has-background) {
402
+ .wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container {
403
+ // Set a background color for submenus so that they're not transparent.
404
+ // NOTE TO DEVS - if refactoring this code, please double-check that
405
+ // submenus have a default background color, this feature has regressed
406
+ // several times, so care needs to be taken.
407
+ background-color: #fff;
408
+ border: 1px solid rgba(0, 0, 0, 0.15);
409
+ }
410
+
411
+ // If we do have a background color selected, inherit it from the navigation block
412
+ .wp-block-navigation.has-background {
402
413
  .wp-block-navigation__submenu-container {
403
- // Set a background color for submenus so that they're not transparent.
404
- // NOTE TO DEVS - if refactoring this code, please double-check that
405
- // submenus have a default background color, this feature has regressed
406
- // several times, so care needs to be taken.
407
- background-color: #fff;
414
+ background-color: inherit;
415
+ }
416
+ }
417
+
418
+ .wp-block-navigation:not(.has-text-color) {
419
+ .wp-block-navigation__submenu-container {
420
+ // Set a default color for submenu text if none is selected
408
421
  color: #000;
409
- border: 1px solid rgba(0, 0, 0, 0.15);
410
422
  }
411
423
  }
412
424
 
@@ -458,7 +470,8 @@ button.wp-block-navigation-item__content {
458
470
  right: 0;
459
471
  bottom: 0;
460
472
 
461
- .wp-block-navigation-link a {
473
+ // Low specificity so that themes can override.
474
+ & :where(.wp-block-navigation-item a) {
462
475
  color: inherit;
463
476
  }
464
477
 
@@ -579,6 +592,7 @@ button.wp-block-navigation-item__content {
579
592
  // Remove background colors for items inside the overlay menu.
580
593
  // Has to be !important to override global styles.
581
594
  .wp-block-navigation-item .wp-block-navigation__submenu-container,
595
+ .wp-block-navigation__container,
582
596
  .wp-block-navigation-item,
583
597
  .wp-block-page-list {
584
598
  color: inherit !important;
@@ -620,9 +634,14 @@ button.wp-block-navigation-item__content {
620
634
  .wp-block-navigation:not(.has-background)
621
635
  .wp-block-navigation__responsive-container.is-menu-open {
622
636
  background-color: #fff;
637
+ }
638
+
639
+ .wp-block-navigation:not(.has-text-color)
640
+ .wp-block-navigation__responsive-container.is-menu-open {
623
641
  color: #000;
624
642
  }
625
643
 
644
+
626
645
  // Overlay menu toggle button label
627
646
  .wp-block-navigation__toggle_button_label {
628
647
  font-size: 1rem;