@wordpress/block-library 7.11.0 → 7.13.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 (817) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/build/archives/edit.js +7 -0
  3. package/build/archives/edit.js.map +1 -1
  4. package/build/archives/index.js +9 -1
  5. package/build/archives/index.js.map +1 -1
  6. package/build/audio/index.js +4 -0
  7. package/build/audio/index.js.map +1 -1
  8. package/build/block/edit.js +4 -2
  9. package/build/block/edit.js.map +1 -1
  10. package/build/block/edit.native.js +4 -2
  11. package/build/block/edit.native.js.map +1 -1
  12. package/build/button/deprecated.js +14 -5
  13. package/build/button/deprecated.js.map +1 -1
  14. package/build/button/index.js +1 -1
  15. package/build/calendar/edit.js +12 -5
  16. package/build/calendar/edit.js.map +1 -1
  17. package/build/categories/edit.js +3 -1
  18. package/build/categories/edit.js.map +1 -1
  19. package/build/categories/index.js +14 -1
  20. package/build/categories/index.js.map +1 -1
  21. package/build/code/index.js +4 -2
  22. package/build/code/index.js.map +1 -1
  23. package/build/column/index.js +13 -0
  24. package/build/column/index.js.map +1 -1
  25. package/build/columns/deprecated.js +16 -5
  26. package/build/columns/deprecated.js.map +1 -1
  27. package/build/columns/edit.js +6 -2
  28. package/build/columns/edit.js.map +1 -1
  29. package/build/columns/edit.native.js +8 -3
  30. package/build/columns/edit.native.js.map +1 -1
  31. package/build/columns/index.js +13 -0
  32. package/build/columns/index.js.map +1 -1
  33. package/build/comment-author-name/index.js +5 -1
  34. package/build/comment-author-name/index.js.map +1 -1
  35. package/build/comment-content/index.js +5 -1
  36. package/build/comment-content/index.js.map +1 -1
  37. package/build/comment-date/index.js +1 -0
  38. package/build/comment-date/index.js.map +1 -1
  39. package/build/comment-edit-link/index.js +5 -1
  40. package/build/comment-edit-link/index.js.map +1 -1
  41. package/build/comment-reply-link/index.js +5 -1
  42. package/build/comment-reply-link/index.js.map +1 -1
  43. package/build/comment-template/index.js +14 -1
  44. package/build/comment-template/index.js.map +1 -1
  45. package/build/comments/index.js +13 -0
  46. package/build/comments/index.js.map +1 -1
  47. package/build/comments-pagination/index.js +13 -0
  48. package/build/comments-pagination/index.js.map +1 -1
  49. package/build/comments-pagination-next/index.js +4 -2
  50. package/build/comments-pagination-next/index.js.map +1 -1
  51. package/build/comments-pagination-numbers/edit.js +5 -1
  52. package/build/comments-pagination-numbers/edit.js.map +1 -1
  53. package/build/comments-pagination-numbers/index.js +14 -1
  54. package/build/comments-pagination-numbers/index.js.map +1 -1
  55. package/build/comments-pagination-previous/index.js +4 -2
  56. package/build/comments-pagination-previous/index.js.map +1 -1
  57. package/build/comments-title/deprecated.js +4 -2
  58. package/build/comments-title/deprecated.js.map +1 -1
  59. package/build/comments-title/index.js +4 -2
  60. package/build/comments-title/index.js.map +1 -1
  61. package/build/cover/deprecated.js +20 -5
  62. package/build/cover/deprecated.js.map +1 -1
  63. package/build/cover/edit/resizable-cover.js +6 -0
  64. package/build/cover/edit/resizable-cover.js.map +1 -1
  65. package/build/cover/index.js +13 -0
  66. package/build/cover/index.js.map +1 -1
  67. package/build/cover/shared.js +1 -1
  68. package/build/cover/shared.js.map +1 -1
  69. package/build/embed/icons.js +1 -1
  70. package/build/embed/icons.js.map +1 -1
  71. package/build/gallery/deprecated.js +6 -1
  72. package/build/gallery/deprecated.js.map +1 -1
  73. package/build/gallery/edit.js +15 -2
  74. package/build/gallery/edit.js.map +1 -1
  75. package/build/gallery/index.js +5 -0
  76. package/build/gallery/index.js.map +1 -1
  77. package/build/gallery/transforms.js +20 -7
  78. package/build/gallery/transforms.js.map +1 -1
  79. package/build/gallery/utils.js +7 -6
  80. package/build/gallery/utils.js.map +1 -1
  81. package/build/group/deprecated.js +108 -12
  82. package/build/group/deprecated.js.map +1 -1
  83. package/build/group/edit.js +23 -1
  84. package/build/group/edit.js.map +1 -1
  85. package/build/group/index.js +10 -2
  86. package/build/group/index.js.map +1 -1
  87. package/build/group/transforms.js +5 -0
  88. package/build/group/transforms.js.map +1 -1
  89. package/build/group/variations.js +8 -8
  90. package/build/group/variations.js.map +1 -1
  91. package/build/heading/deprecated.js +5 -3
  92. package/build/heading/deprecated.js.map +1 -1
  93. package/build/heading/index.js +3 -1
  94. package/build/heading/index.js.map +1 -1
  95. package/build/heading/transforms.js +3 -1
  96. package/build/heading/transforms.js.map +1 -1
  97. package/build/home-link/edit.js +8 -4
  98. package/build/home-link/edit.js.map +1 -1
  99. package/build/image/edit.js +13 -1
  100. package/build/image/edit.js.map +1 -1
  101. package/build/image/index.js +13 -7
  102. package/build/image/index.js.map +1 -1
  103. package/build/index.native.js +23 -7
  104. package/build/index.native.js.map +1 -1
  105. package/build/list/index.js +10 -0
  106. package/build/list/index.js.map +1 -1
  107. package/build/list/v2/edit.js +16 -5
  108. package/build/list/v2/edit.js.map +1 -1
  109. package/build/list/v2/tag-name.js +31 -0
  110. package/build/list/v2/tag-name.js.map +1 -0
  111. package/build/list/v2/tag-name.native.js +32 -0
  112. package/build/list/v2/tag-name.native.js.map +1 -0
  113. package/build/list/v2/transforms.js +1 -11
  114. package/build/list/v2/transforms.js.map +1 -1
  115. package/build/list-item/edit.js +4 -1
  116. package/build/list-item/edit.js.map +1 -1
  117. package/build/list-item/edit.native.js +158 -0
  118. package/build/list-item/edit.native.js.map +1 -0
  119. package/build/list-item/hooks/index.js +8 -0
  120. package/build/list-item/hooks/index.js.map +1 -1
  121. package/build/list-item/hooks/use-copy.js +42 -0
  122. package/build/list-item/hooks/use-copy.js.map +1 -0
  123. package/build/list-item/icons.native.js +53 -0
  124. package/build/list-item/icons.native.js.map +1 -0
  125. package/build/list-item/list-style-type.native.js +139 -0
  126. package/build/list-item/list-style-type.native.js.map +1 -0
  127. package/build/list-item/utils.js +4 -0
  128. package/build/list-item/utils.js.map +1 -1
  129. package/build/media-text/deprecated.js +193 -67
  130. package/build/media-text/deprecated.js.map +1 -1
  131. package/build/media-text/edit.js +2 -1
  132. package/build/media-text/edit.js.map +1 -1
  133. package/build/media-text/index.js +17 -0
  134. package/build/media-text/index.js.map +1 -1
  135. package/build/media-text/media-container.js +1 -1
  136. package/build/media-text/media-container.js.map +1 -1
  137. package/build/navigation/deprecated.js +6 -1
  138. package/build/navigation/deprecated.js.map +1 -1
  139. package/build/navigation/edit/index.js +180 -154
  140. package/build/navigation/edit/index.js.map +1 -1
  141. package/build/navigation/edit/navigation-menu-selector.js +11 -14
  142. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  143. package/build/navigation/edit/placeholder/index.js +4 -2
  144. package/build/navigation/edit/placeholder/index.js.map +1 -1
  145. package/build/navigation/edit/responsive-wrapper.js +13 -3
  146. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  147. package/build/navigation/edit/unsaved-inner-blocks.js +2 -1
  148. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  149. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +4 -7
  150. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  151. package/build/navigation/edit/use-create-navigation-menu.js +5 -1
  152. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
  153. package/build/navigation/edit/use-inner-blocks.js +43 -0
  154. package/build/navigation/edit/use-inner-blocks.js.map +1 -0
  155. package/build/navigation/edit/utils.js +28 -0
  156. package/build/navigation/edit/utils.js.map +1 -0
  157. package/build/navigation/index.js +1 -0
  158. package/build/navigation/index.js.map +1 -1
  159. package/build/navigation/menu-items-to-blocks.js +1 -7
  160. package/build/navigation/menu-items-to-blocks.js.map +1 -1
  161. package/build/navigation/use-navigation-menu.js +15 -10
  162. package/build/navigation/use-navigation-menu.js.map +1 -1
  163. package/build/navigation-link/edit.js +6 -8
  164. package/build/navigation-link/edit.js.map +1 -1
  165. package/build/navigation-submenu/edit.js +4 -6
  166. package/build/navigation-submenu/edit.js.map +1 -1
  167. package/build/page-list/edit.js +7 -3
  168. package/build/page-list/edit.js.map +1 -1
  169. package/build/paragraph/deprecated.js +18 -10
  170. package/build/paragraph/deprecated.js.map +1 -1
  171. package/build/paragraph/edit.js +1 -0
  172. package/build/paragraph/edit.js.map +1 -1
  173. package/build/paragraph/index.js +7 -0
  174. package/build/paragraph/index.js.map +1 -1
  175. package/build/paragraph/transforms.js +7 -0
  176. package/build/paragraph/transforms.js.map +1 -1
  177. package/build/post-author/edit.js +5 -2
  178. package/build/post-author/edit.js.map +1 -1
  179. package/build/post-author/index.js +4 -2
  180. package/build/post-author/index.js.map +1 -1
  181. package/build/post-author-biography/edit.js +7 -1
  182. package/build/post-author-biography/edit.js.map +1 -1
  183. package/build/post-author-biography/index.js +1 -0
  184. package/build/post-author-biography/index.js.map +1 -1
  185. package/build/post-author-name/index.js +5 -1
  186. package/build/post-author-name/index.js.map +1 -1
  187. package/build/post-comments-count/edit.js +11 -1
  188. package/build/post-comments-count/edit.js.map +1 -1
  189. package/build/post-comments-count/index.js +4 -1
  190. package/build/post-comments-count/index.js.map +1 -1
  191. package/build/post-comments-link/index.js +4 -2
  192. package/build/post-comments-link/index.js.map +1 -1
  193. package/build/post-content/edit.js +4 -2
  194. package/build/post-content/edit.js.map +1 -1
  195. package/build/post-date/edit.js +9 -2
  196. package/build/post-date/edit.js.map +1 -1
  197. package/build/post-date/index.js +9 -0
  198. package/build/post-date/index.js.map +1 -1
  199. package/build/post-featured-image/edit.js +43 -14
  200. package/build/post-featured-image/edit.js.map +1 -1
  201. package/build/post-featured-image/index.js +21 -0
  202. package/build/post-featured-image/index.js.map +1 -1
  203. package/build/post-navigation-link/index.js +3 -2
  204. package/build/post-navigation-link/index.js.map +1 -1
  205. package/build/post-template/edit.js +8 -4
  206. package/build/post-template/edit.js.map +1 -1
  207. package/build/post-template/index.js +14 -1
  208. package/build/post-template/index.js.map +1 -1
  209. package/build/post-terms/index.js +5 -3
  210. package/build/post-terms/index.js.map +1 -1
  211. package/build/post-title/index.js +2 -1
  212. package/build/post-title/index.js.map +1 -1
  213. package/build/preformatted/index.js +4 -2
  214. package/build/preformatted/index.js.map +1 -1
  215. package/build/pullquote/deprecated.js +135 -25
  216. package/build/pullquote/deprecated.js.map +1 -1
  217. package/build/pullquote/edit.js +1 -1
  218. package/build/pullquote/edit.js.map +1 -1
  219. package/build/pullquote/edit.native.js +0 -1
  220. package/build/pullquote/edit.native.js.map +1 -1
  221. package/build/pullquote/index.js +13 -6
  222. package/build/pullquote/index.js.map +1 -1
  223. package/build/pullquote/save.js +2 -2
  224. package/build/pullquote/save.js.map +1 -1
  225. package/build/pullquote/transforms.js +14 -33
  226. package/build/pullquote/transforms.js.map +1 -1
  227. package/build/query/deprecated.js +10 -9
  228. package/build/query/deprecated.js.map +1 -1
  229. package/build/query/edit/index.js +19 -8
  230. package/build/query/edit/index.js.map +1 -1
  231. package/build/query/edit/inspector-controls/index.js +42 -9
  232. package/build/query/edit/inspector-controls/index.js.map +1 -1
  233. package/build/query/edit/inspector-controls/taxonomy-controls.js +22 -14
  234. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  235. package/build/query/edit/query-placeholder.js +6 -1
  236. package/build/query/edit/query-placeholder.js.map +1 -1
  237. package/build/query/utils.js +35 -9
  238. package/build/query/utils.js.map +1 -1
  239. package/build/query-no-results/edit.js +1 -1
  240. package/build/query-no-results/edit.js.map +1 -1
  241. package/build/query-title/edit.js +30 -8
  242. package/build/query-title/edit.js.map +1 -1
  243. package/build/query-title/index.js +11 -2
  244. package/build/query-title/index.js.map +1 -1
  245. package/build/query-title/variations.js +10 -0
  246. package/build/query-title/variations.js.map +1 -1
  247. package/build/quote/deprecated.js +13 -6
  248. package/build/quote/deprecated.js.map +1 -1
  249. package/build/quote/transforms.js +24 -39
  250. package/build/quote/transforms.js.map +1 -1
  251. package/build/separator/deprecated.js +3 -4
  252. package/build/separator/deprecated.js.map +1 -1
  253. package/build/separator/edit.js +1 -1
  254. package/build/separator/edit.js.map +1 -1
  255. package/build/separator/index.js +1 -0
  256. package/build/separator/index.js.map +1 -1
  257. package/build/social-link/icons/reddit.js +1 -1
  258. package/build/social-link/icons/reddit.js.map +1 -1
  259. package/build/social-links/edit.js +44 -9
  260. package/build/social-links/edit.js.map +1 -1
  261. package/build/social-links/index.js +9 -0
  262. package/build/social-links/index.js.map +1 -1
  263. package/build/spacer/index.js +7 -1
  264. package/build/spacer/index.js.map +1 -1
  265. package/build/table/index.js +4 -0
  266. package/build/table/index.js.map +1 -1
  267. package/build/table/state.js +9 -3
  268. package/build/table/state.js.map +1 -1
  269. package/build/table-of-contents/index.js +24 -1
  270. package/build/table-of-contents/index.js.map +1 -1
  271. package/build/tag-cloud/index.js +5 -1
  272. package/build/tag-cloud/index.js.map +1 -1
  273. package/build/template-part/edit/index.js +4 -2
  274. package/build/template-part/edit/index.js.map +1 -1
  275. package/build/template-part/index.js +2 -2
  276. package/build/template-part/index.js.map +1 -1
  277. package/build/term-description/index.js +4 -0
  278. package/build/term-description/index.js.map +1 -1
  279. package/build/text-columns/edit.js +3 -1
  280. package/build/text-columns/edit.js.map +1 -1
  281. package/build/text-columns/save.js +3 -1
  282. package/build/text-columns/save.js.map +1 -1
  283. package/build/verse/index.js +1 -0
  284. package/build/verse/index.js.map +1 -1
  285. package/build/video/index.js +4 -0
  286. package/build/video/index.js.map +1 -1
  287. package/build-module/archives/edit.js +7 -0
  288. package/build-module/archives/edit.js.map +1 -1
  289. package/build-module/archives/index.js +9 -1
  290. package/build-module/archives/index.js.map +1 -1
  291. package/build-module/audio/index.js +4 -0
  292. package/build-module/audio/index.js.map +1 -1
  293. package/build-module/block/edit.js +5 -3
  294. package/build-module/block/edit.js.map +1 -1
  295. package/build-module/block/edit.native.js +5 -3
  296. package/build-module/block/edit.native.js.map +1 -1
  297. package/build-module/button/deprecated.js +14 -4
  298. package/build-module/button/deprecated.js.map +1 -1
  299. package/build-module/button/index.js +1 -1
  300. package/build-module/calendar/edit.js +12 -4
  301. package/build-module/calendar/edit.js.map +1 -1
  302. package/build-module/categories/edit.js +4 -2
  303. package/build-module/categories/edit.js.map +1 -1
  304. package/build-module/categories/index.js +14 -1
  305. package/build-module/categories/index.js.map +1 -1
  306. package/build-module/code/index.js +4 -2
  307. package/build-module/code/index.js.map +1 -1
  308. package/build-module/column/index.js +13 -0
  309. package/build-module/column/index.js.map +1 -1
  310. package/build-module/columns/deprecated.js +16 -4
  311. package/build-module/columns/deprecated.js.map +1 -1
  312. package/build-module/columns/edit.js +7 -3
  313. package/build-module/columns/edit.js.map +1 -1
  314. package/build-module/columns/edit.native.js +9 -4
  315. package/build-module/columns/edit.native.js.map +1 -1
  316. package/build-module/columns/index.js +13 -0
  317. package/build-module/columns/index.js.map +1 -1
  318. package/build-module/comment-author-name/index.js +5 -1
  319. package/build-module/comment-author-name/index.js.map +1 -1
  320. package/build-module/comment-content/index.js +5 -1
  321. package/build-module/comment-content/index.js.map +1 -1
  322. package/build-module/comment-date/index.js +1 -0
  323. package/build-module/comment-date/index.js.map +1 -1
  324. package/build-module/comment-edit-link/index.js +5 -1
  325. package/build-module/comment-edit-link/index.js.map +1 -1
  326. package/build-module/comment-reply-link/index.js +5 -1
  327. package/build-module/comment-reply-link/index.js.map +1 -1
  328. package/build-module/comment-template/index.js +14 -1
  329. package/build-module/comment-template/index.js.map +1 -1
  330. package/build-module/comments/index.js +13 -0
  331. package/build-module/comments/index.js.map +1 -1
  332. package/build-module/comments-pagination/index.js +13 -0
  333. package/build-module/comments-pagination/index.js.map +1 -1
  334. package/build-module/comments-pagination-next/index.js +4 -2
  335. package/build-module/comments-pagination-next/index.js.map +1 -1
  336. package/build-module/comments-pagination-numbers/edit.js +5 -1
  337. package/build-module/comments-pagination-numbers/edit.js.map +1 -1
  338. package/build-module/comments-pagination-numbers/index.js +14 -1
  339. package/build-module/comments-pagination-numbers/index.js.map +1 -1
  340. package/build-module/comments-pagination-previous/index.js +4 -2
  341. package/build-module/comments-pagination-previous/index.js.map +1 -1
  342. package/build-module/comments-title/deprecated.js +4 -2
  343. package/build-module/comments-title/deprecated.js.map +1 -1
  344. package/build-module/comments-title/index.js +4 -2
  345. package/build-module/comments-title/index.js.map +1 -1
  346. package/build-module/cover/deprecated.js +20 -4
  347. package/build-module/cover/deprecated.js.map +1 -1
  348. package/build-module/cover/edit/resizable-cover.js +6 -0
  349. package/build-module/cover/edit/resizable-cover.js.map +1 -1
  350. package/build-module/cover/index.js +13 -0
  351. package/build-module/cover/index.js.map +1 -1
  352. package/build-module/cover/shared.js +1 -1
  353. package/build-module/cover/shared.js.map +1 -1
  354. package/build-module/embed/icons.js +1 -1
  355. package/build-module/embed/icons.js.map +1 -1
  356. package/build-module/gallery/deprecated.js +7 -2
  357. package/build-module/gallery/deprecated.js.map +1 -1
  358. package/build-module/gallery/edit.js +15 -2
  359. package/build-module/gallery/edit.js.map +1 -1
  360. package/build-module/gallery/index.js +5 -0
  361. package/build-module/gallery/index.js.map +1 -1
  362. package/build-module/gallery/transforms.js +20 -7
  363. package/build-module/gallery/transforms.js.map +1 -1
  364. package/build-module/gallery/utils.js +7 -6
  365. package/build-module/gallery/utils.js.map +1 -1
  366. package/build-module/group/deprecated.js +109 -12
  367. package/build-module/group/deprecated.js.map +1 -1
  368. package/build-module/group/edit.js +25 -2
  369. package/build-module/group/edit.js.map +1 -1
  370. package/build-module/group/index.js +10 -2
  371. package/build-module/group/index.js.map +1 -1
  372. package/build-module/group/transforms.js +5 -0
  373. package/build-module/group/transforms.js.map +1 -1
  374. package/build-module/group/variations.js +8 -8
  375. package/build-module/group/variations.js.map +1 -1
  376. package/build-module/heading/deprecated.js +5 -2
  377. package/build-module/heading/deprecated.js.map +1 -1
  378. package/build-module/heading/index.js +3 -1
  379. package/build-module/heading/index.js.map +1 -1
  380. package/build-module/heading/transforms.js +3 -1
  381. package/build-module/heading/transforms.js.map +1 -1
  382. package/build-module/home-link/edit.js +10 -6
  383. package/build-module/home-link/edit.js.map +1 -1
  384. package/build-module/image/edit.js +14 -2
  385. package/build-module/image/edit.js.map +1 -1
  386. package/build-module/image/index.js +13 -7
  387. package/build-module/image/index.js.map +1 -1
  388. package/build-module/index.native.js +22 -6
  389. package/build-module/index.native.js.map +1 -1
  390. package/build-module/list/index.js +5 -1
  391. package/build-module/list/index.js.map +1 -1
  392. package/build-module/list/v2/edit.js +15 -5
  393. package/build-module/list/v2/edit.js.map +1 -1
  394. package/build-module/list/v2/tag-name.js +21 -0
  395. package/build-module/list/v2/tag-name.js.map +1 -0
  396. package/build-module/list/v2/tag-name.native.js +21 -0
  397. package/build-module/list/v2/tag-name.native.js.map +1 -0
  398. package/build-module/list/v2/transforms.js +1 -10
  399. package/build-module/list/v2/transforms.js.map +1 -1
  400. package/build-module/list-item/edit.js +5 -5
  401. package/build-module/list-item/edit.js.map +1 -1
  402. package/build-module/list-item/edit.native.js +141 -0
  403. package/build-module/list-item/edit.native.js.map +1 -0
  404. package/build-module/list-item/hooks/index.js +1 -0
  405. package/build-module/list-item/hooks/index.js.map +1 -1
  406. package/build-module/list-item/hooks/use-copy.js +32 -0
  407. package/build-module/list-item/hooks/use-copy.js.map +1 -0
  408. package/build-module/list-item/icons.native.js +37 -0
  409. package/build-module/list-item/icons.native.js.map +1 -0
  410. package/build-module/list-item/list-style-type.native.js +126 -0
  411. package/build-module/list-item/list-style-type.native.js.map +1 -0
  412. package/build-module/list-item/utils.js +4 -0
  413. package/build-module/list-item/utils.js.map +1 -1
  414. package/build-module/media-text/deprecated.js +195 -67
  415. package/build-module/media-text/deprecated.js.map +1 -1
  416. package/build-module/media-text/edit.js +2 -1
  417. package/build-module/media-text/edit.js.map +1 -1
  418. package/build-module/media-text/index.js +17 -0
  419. package/build-module/media-text/index.js.map +1 -1
  420. package/build-module/media-text/media-container.js +1 -1
  421. package/build-module/media-text/media-container.js.map +1 -1
  422. package/build-module/navigation/deprecated.js +7 -2
  423. package/build-module/navigation/deprecated.js.map +1 -1
  424. package/build-module/navigation/edit/index.js +178 -154
  425. package/build-module/navigation/edit/index.js.map +1 -1
  426. package/build-module/navigation/edit/navigation-menu-selector.js +12 -15
  427. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  428. package/build-module/navigation/edit/placeholder/index.js +4 -2
  429. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  430. package/build-module/navigation/edit/responsive-wrapper.js +12 -3
  431. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  432. package/build-module/navigation/edit/unsaved-inner-blocks.js +2 -1
  433. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  434. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +4 -7
  435. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  436. package/build-module/navigation/edit/use-create-navigation-menu.js +5 -1
  437. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
  438. package/build-module/navigation/edit/use-inner-blocks.js +33 -0
  439. package/build-module/navigation/edit/use-inner-blocks.js.map +1 -0
  440. package/build-module/navigation/edit/utils.js +21 -0
  441. package/build-module/navigation/edit/utils.js.map +1 -0
  442. package/build-module/navigation/index.js +1 -0
  443. package/build-module/navigation/index.js.map +1 -1
  444. package/build-module/navigation/menu-items-to-blocks.js +1 -6
  445. package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
  446. package/build-module/navigation/use-navigation-menu.js +15 -10
  447. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  448. package/build-module/navigation-link/edit.js +7 -9
  449. package/build-module/navigation-link/edit.js.map +1 -1
  450. package/build-module/navigation-submenu/edit.js +5 -7
  451. package/build-module/navigation-submenu/edit.js.map +1 -1
  452. package/build-module/page-list/edit.js +7 -2
  453. package/build-module/page-list/edit.js.map +1 -1
  454. package/build-module/paragraph/deprecated.js +18 -9
  455. package/build-module/paragraph/deprecated.js.map +1 -1
  456. package/build-module/paragraph/edit.js +1 -0
  457. package/build-module/paragraph/edit.js.map +1 -1
  458. package/build-module/paragraph/index.js +7 -0
  459. package/build-module/paragraph/index.js.map +1 -1
  460. package/build-module/paragraph/transforms.js +7 -0
  461. package/build-module/paragraph/transforms.js.map +1 -1
  462. package/build-module/post-author/edit.js +5 -2
  463. package/build-module/post-author/edit.js.map +1 -1
  464. package/build-module/post-author/index.js +4 -2
  465. package/build-module/post-author/index.js.map +1 -1
  466. package/build-module/post-author-biography/edit.js +6 -1
  467. package/build-module/post-author-biography/edit.js.map +1 -1
  468. package/build-module/post-author-biography/index.js +1 -0
  469. package/build-module/post-author-biography/index.js.map +1 -1
  470. package/build-module/post-author-name/index.js +5 -1
  471. package/build-module/post-author-name/index.js.map +1 -1
  472. package/build-module/post-comments-count/edit.js +10 -1
  473. package/build-module/post-comments-count/edit.js.map +1 -1
  474. package/build-module/post-comments-count/index.js +4 -1
  475. package/build-module/post-comments-count/index.js.map +1 -1
  476. package/build-module/post-comments-link/index.js +4 -2
  477. package/build-module/post-comments-link/index.js.map +1 -1
  478. package/build-module/post-content/edit.js +5 -3
  479. package/build-module/post-content/edit.js.map +1 -1
  480. package/build-module/post-date/edit.js +9 -2
  481. package/build-module/post-date/edit.js.map +1 -1
  482. package/build-module/post-date/index.js +9 -0
  483. package/build-module/post-date/index.js.map +1 -1
  484. package/build-module/post-featured-image/edit.js +45 -16
  485. package/build-module/post-featured-image/edit.js.map +1 -1
  486. package/build-module/post-featured-image/index.js +21 -0
  487. package/build-module/post-featured-image/index.js.map +1 -1
  488. package/build-module/post-navigation-link/index.js +3 -2
  489. package/build-module/post-navigation-link/index.js.map +1 -1
  490. package/build-module/post-template/edit.js +8 -4
  491. package/build-module/post-template/edit.js.map +1 -1
  492. package/build-module/post-template/index.js +14 -1
  493. package/build-module/post-template/index.js.map +1 -1
  494. package/build-module/post-terms/index.js +5 -3
  495. package/build-module/post-terms/index.js.map +1 -1
  496. package/build-module/post-title/index.js +2 -1
  497. package/build-module/post-title/index.js.map +1 -1
  498. package/build-module/preformatted/index.js +4 -2
  499. package/build-module/preformatted/index.js.map +1 -1
  500. package/build-module/pullquote/deprecated.js +134 -25
  501. package/build-module/pullquote/deprecated.js.map +1 -1
  502. package/build-module/pullquote/edit.js +1 -1
  503. package/build-module/pullquote/edit.js.map +1 -1
  504. package/build-module/pullquote/edit.native.js +0 -1
  505. package/build-module/pullquote/edit.native.js.map +1 -1
  506. package/build-module/pullquote/index.js +13 -6
  507. package/build-module/pullquote/index.js.map +1 -1
  508. package/build-module/pullquote/save.js +2 -2
  509. package/build-module/pullquote/save.js.map +1 -1
  510. package/build-module/pullquote/transforms.js +15 -34
  511. package/build-module/pullquote/transforms.js.map +1 -1
  512. package/build-module/query/deprecated.js +10 -8
  513. package/build-module/query/deprecated.js.map +1 -1
  514. package/build-module/query/edit/index.js +23 -12
  515. package/build-module/query/edit/index.js.map +1 -1
  516. package/build-module/query/edit/inspector-controls/index.js +42 -9
  517. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  518. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +17 -12
  519. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  520. package/build-module/query/edit/query-placeholder.js +6 -1
  521. package/build-module/query/edit/query-placeholder.js.map +1 -1
  522. package/build-module/query/utils.js +32 -7
  523. package/build-module/query/utils.js.map +1 -1
  524. package/build-module/query-no-results/edit.js +1 -1
  525. package/build-module/query-no-results/edit.js.map +1 -1
  526. package/build-module/query-title/edit.js +30 -9
  527. package/build-module/query-title/edit.js.map +1 -1
  528. package/build-module/query-title/index.js +11 -2
  529. package/build-module/query-title/index.js.map +1 -1
  530. package/build-module/query-title/variations.js +10 -0
  531. package/build-module/query-title/variations.js.map +1 -1
  532. package/build-module/quote/deprecated.js +13 -5
  533. package/build-module/quote/deprecated.js.map +1 -1
  534. package/build-module/quote/transforms.js +25 -40
  535. package/build-module/quote/transforms.js.map +1 -1
  536. package/build-module/separator/deprecated.js +3 -3
  537. package/build-module/separator/deprecated.js.map +1 -1
  538. package/build-module/separator/edit.js +1 -1
  539. package/build-module/separator/edit.js.map +1 -1
  540. package/build-module/separator/index.js +1 -0
  541. package/build-module/separator/index.js.map +1 -1
  542. package/build-module/social-link/icons/reddit.js +1 -1
  543. package/build-module/social-link/icons/reddit.js.map +1 -1
  544. package/build-module/social-links/edit.js +46 -12
  545. package/build-module/social-links/edit.js.map +1 -1
  546. package/build-module/social-links/index.js +9 -0
  547. package/build-module/social-links/index.js.map +1 -1
  548. package/build-module/spacer/index.js +7 -1
  549. package/build-module/spacer/index.js.map +1 -1
  550. package/build-module/table/index.js +4 -0
  551. package/build-module/table/index.js.map +1 -1
  552. package/build-module/table/state.js +10 -4
  553. package/build-module/table/state.js.map +1 -1
  554. package/build-module/table-of-contents/index.js +24 -1
  555. package/build-module/table-of-contents/index.js.map +1 -1
  556. package/build-module/tag-cloud/index.js +5 -1
  557. package/build-module/tag-cloud/index.js.map +1 -1
  558. package/build-module/template-part/edit/index.js +5 -3
  559. package/build-module/template-part/edit/index.js.map +1 -1
  560. package/build-module/template-part/index.js +2 -2
  561. package/build-module/template-part/index.js.map +1 -1
  562. package/build-module/term-description/index.js +4 -0
  563. package/build-module/term-description/index.js.map +1 -1
  564. package/build-module/text-columns/edit.js +4 -2
  565. package/build-module/text-columns/edit.js.map +1 -1
  566. package/build-module/text-columns/save.js +4 -2
  567. package/build-module/text-columns/save.js.map +1 -1
  568. package/build-module/verse/index.js +1 -0
  569. package/build-module/verse/index.js.map +1 -1
  570. package/build-module/video/index.js +4 -0
  571. package/build-module/video/index.js.map +1 -1
  572. package/build-style/audio/style-rtl.css +3 -0
  573. package/build-style/audio/style.css +3 -0
  574. package/build-style/button/style-rtl.css +6 -6
  575. package/build-style/button/style.css +6 -6
  576. package/build-style/editor-rtl.css +115 -122
  577. package/build-style/editor.css +115 -122
  578. package/build-style/group/editor-rtl.css +27 -8
  579. package/build-style/group/editor.css +27 -8
  580. package/build-style/image/editor-rtl.css +21 -2
  581. package/build-style/image/editor.css +21 -2
  582. package/build-style/latest-posts/editor-rtl.css +3 -0
  583. package/build-style/latest-posts/editor.css +3 -0
  584. package/build-style/media-text/style-rtl.css +1 -0
  585. package/build-style/media-text/style.css +1 -0
  586. package/build-style/navigation/editor-rtl.css +8 -4
  587. package/build-style/navigation/editor.css +8 -4
  588. package/build-style/navigation/style-rtl.css +17 -19
  589. package/build-style/navigation/style.css +17 -19
  590. package/build-style/paragraph/editor-rtl.css +1 -1
  591. package/build-style/paragraph/editor.css +1 -1
  592. package/build-style/post-date/style-rtl.css +79 -0
  593. package/build-style/post-date/style.css +79 -0
  594. package/build-style/post-featured-image/editor-rtl.css +45 -43
  595. package/build-style/post-featured-image/editor.css +45 -43
  596. package/build-style/post-featured-image/style-rtl.css +1 -0
  597. package/build-style/post-featured-image/style.css +1 -0
  598. package/build-style/post-title/style-rtl.css +1 -0
  599. package/build-style/post-title/style.css +1 -0
  600. package/build-style/pullquote/editor-rtl.css +0 -12
  601. package/build-style/pullquote/editor.css +0 -12
  602. package/build-style/pullquote/style-rtl.css +1 -8
  603. package/build-style/pullquote/style.css +1 -8
  604. package/build-style/query/editor-rtl.css +7 -0
  605. package/build-style/query/editor.css +7 -0
  606. package/build-style/query-pagination/style-rtl.css +6 -0
  607. package/build-style/query-pagination/style.css +6 -0
  608. package/build-style/query-title/style-rtl.css +79 -0
  609. package/build-style/query-title/style.css +79 -0
  610. package/build-style/search/style-rtl.css +2 -0
  611. package/build-style/search/style.css +2 -0
  612. package/build-style/site-logo/editor-rtl.css +3 -52
  613. package/build-style/site-logo/editor.css +3 -52
  614. package/build-style/social-links/style-rtl.css +2 -2
  615. package/build-style/social-links/style.css +2 -2
  616. package/build-style/style-rtl.css +52 -35
  617. package/build-style/style.css +52 -35
  618. package/build-style/tag-cloud/style-rtl.css +1 -0
  619. package/build-style/tag-cloud/style.css +1 -0
  620. package/build-style/video/style-rtl.css +3 -0
  621. package/build-style/video/style.css +3 -0
  622. package/package.json +30 -30
  623. package/src/archives/block.json +9 -1
  624. package/src/archives/edit.js +12 -1
  625. package/src/archives/index.php +5 -3
  626. package/src/audio/block.json +4 -0
  627. package/src/audio/style.scss +2 -0
  628. package/src/audio/test/__snapshots__/edit.native.js.snap +16 -2
  629. package/src/block/edit.js +4 -4
  630. package/src/block/edit.native.js +4 -4
  631. package/src/button/block.json +1 -1
  632. package/src/button/deprecated.js +21 -22
  633. package/src/button/style.scss +6 -6
  634. package/src/calendar/edit.js +11 -4
  635. package/src/calendar/index.php +2 -2
  636. package/src/categories/block.json +14 -1
  637. package/src/categories/edit.js +2 -2
  638. package/src/code/block.json +4 -2
  639. package/src/column/block.json +13 -0
  640. package/src/columns/block.json +13 -0
  641. package/src/columns/deprecated.js +10 -4
  642. package/src/columns/edit.js +7 -3
  643. package/src/columns/edit.native.js +10 -4
  644. package/src/comment-author-name/block.json +5 -1
  645. package/src/comment-content/block.json +5 -1
  646. package/src/comment-date/block.json +1 -0
  647. package/src/comment-edit-link/block.json +5 -1
  648. package/src/comment-reply-link/block.json +5 -1
  649. package/src/comment-template/block.json +14 -1
  650. package/src/comments/block.json +13 -0
  651. package/src/comments/index.php +6 -5
  652. package/src/comments-pagination/block.json +13 -0
  653. package/src/comments-pagination-next/block.json +4 -2
  654. package/src/comments-pagination-numbers/block.json +14 -1
  655. package/src/comments-pagination-numbers/edit.js +12 -3
  656. package/src/comments-pagination-previous/block.json +4 -2
  657. package/src/comments-title/block.json +4 -2
  658. package/src/cover/block.json +13 -0
  659. package/src/cover/deprecated.js +11 -4
  660. package/src/cover/edit/resizable-cover.js +6 -0
  661. package/src/cover/index.php +2 -2
  662. package/src/cover/shared.js +2 -1
  663. package/src/embed/icons.js +1 -1
  664. package/src/file/test/__snapshots__/edit.native.js.snap +32 -4
  665. package/src/gallery/block.json +5 -0
  666. package/src/gallery/deprecated.js +4 -2
  667. package/src/gallery/edit.js +22 -2
  668. package/src/gallery/transforms.js +18 -5
  669. package/src/gallery/utils.js +11 -7
  670. package/src/group/block.json +10 -2
  671. package/src/group/deprecated.js +89 -2
  672. package/src/group/edit.js +15 -2
  673. package/src/group/editor.scss +28 -3
  674. package/src/group/transforms.js +7 -0
  675. package/src/group/variations.js +4 -3
  676. package/src/heading/block.json +3 -1
  677. package/src/heading/deprecated.js +4 -2
  678. package/src/home-link/edit.js +19 -20
  679. package/src/home-link/index.php +8 -17
  680. package/src/image/block.json +13 -7
  681. package/src/image/edit.js +19 -1
  682. package/src/image/editor.scss +39 -3
  683. package/src/image/index.php +1 -1
  684. package/src/image/test/edit.native.js +6 -10
  685. package/src/index.native.js +30 -12
  686. package/src/latest-posts/editor.scss +5 -0
  687. package/src/list/block.json +4 -0
  688. package/src/list/index.js +1 -1
  689. package/src/list/test/__snapshots__/edit.native.js.snap +133 -0
  690. package/src/list/test/edit.native.js +511 -7
  691. package/src/list/v2/edit.js +12 -4
  692. package/src/list/v2/tag-name.js +13 -0
  693. package/src/list/v2/tag-name.native.js +12 -0
  694. package/src/list/v2/transforms.js +1 -9
  695. package/src/list-item/edit.js +3 -2
  696. package/src/list-item/edit.native.js +148 -0
  697. package/src/list-item/hooks/index.js +1 -0
  698. package/src/list-item/hooks/use-copy.js +36 -0
  699. package/src/list-item/icons.native.js +34 -0
  700. package/src/list-item/list-style-type.native.js +146 -0
  701. package/src/list-item/style.native.scss +49 -0
  702. package/src/media-text/block.json +17 -0
  703. package/src/media-text/deprecated.js +564 -417
  704. package/src/media-text/edit.js +1 -0
  705. package/src/media-text/media-container.js +3 -1
  706. package/src/media-text/style.scss +2 -0
  707. package/src/media-text/test/media-container.js +24 -0
  708. package/src/navigation/block.json +1 -0
  709. package/src/navigation/deprecated.js +4 -2
  710. package/src/navigation/edit/index.js +234 -237
  711. package/src/navigation/edit/navigation-menu-selector.js +12 -26
  712. package/src/navigation/edit/placeholder/index.js +4 -2
  713. package/src/navigation/edit/responsive-wrapper.js +24 -3
  714. package/src/navigation/edit/unsaved-inner-blocks.js +3 -1
  715. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +31 -37
  716. package/src/navigation/edit/use-create-navigation-menu.js +4 -0
  717. package/src/navigation/edit/use-inner-blocks.js +39 -0
  718. package/src/navigation/edit/utils.js +30 -0
  719. package/src/navigation/editor.scss +3 -2
  720. package/src/navigation/index.php +17 -16
  721. package/src/navigation/menu-items-to-blocks.js +3 -6
  722. package/src/navigation/style.scss +13 -22
  723. package/src/navigation/test/use-navigation-menu.js +18 -1
  724. package/src/navigation/use-navigation-menu.js +20 -13
  725. package/src/navigation-link/edit.js +9 -13
  726. package/src/navigation-link/index.php +1 -1
  727. package/src/navigation-submenu/edit.js +9 -13
  728. package/src/navigation-submenu/index.php +1 -1
  729. package/src/page-list/edit.js +6 -2
  730. package/src/page-list/index.php +4 -4
  731. package/src/paragraph/block.json +7 -0
  732. package/src/paragraph/deprecated.js +33 -35
  733. package/src/paragraph/edit.js +1 -0
  734. package/src/paragraph/editor.scss +5 -3
  735. package/src/post-author/block.json +4 -2
  736. package/src/post-author/edit.js +6 -3
  737. package/src/post-author-biography/block.json +1 -0
  738. package/src/post-author-biography/edit.js +4 -1
  739. package/src/post-author-name/block.json +5 -1
  740. package/src/post-comments-count/block.json +4 -1
  741. package/src/post-comments-count/edit.js +10 -2
  742. package/src/post-comments-link/block.json +4 -2
  743. package/src/post-content/edit.js +4 -4
  744. package/src/post-date/block.json +9 -0
  745. package/src/post-date/edit.js +12 -2
  746. package/src/post-date/index.php +10 -2
  747. package/src/post-date/style.scss +4 -0
  748. package/src/post-featured-image/block.json +21 -0
  749. package/src/post-featured-image/edit.js +66 -14
  750. package/src/post-featured-image/editor.scss +44 -53
  751. package/src/post-featured-image/index.php +64 -5
  752. package/src/post-featured-image/style.scss +1 -0
  753. package/src/post-navigation-link/block.json +3 -2
  754. package/src/post-template/block.json +15 -1
  755. package/src/post-template/edit.js +6 -1
  756. package/src/post-template/index.php +7 -4
  757. package/src/post-terms/block.json +5 -3
  758. package/src/post-title/block.json +2 -1
  759. package/src/post-title/index.php +2 -1
  760. package/src/post-title/style.scss +2 -0
  761. package/src/preformatted/block.json +4 -2
  762. package/src/preformatted/test/__snapshots__/edit.native.js.snap +16 -2
  763. package/src/pullquote/block.json +11 -4
  764. package/src/pullquote/deprecated.js +490 -412
  765. package/src/pullquote/edit.js +1 -1
  766. package/src/pullquote/edit.native.js +0 -1
  767. package/src/pullquote/editor.scss +0 -16
  768. package/src/pullquote/index.js +1 -3
  769. package/src/pullquote/save.js +1 -1
  770. package/src/pullquote/style.scss +0 -11
  771. package/src/pullquote/transforms.js +17 -33
  772. package/src/query/deprecated.js +4 -9
  773. package/src/query/edit/index.js +28 -15
  774. package/src/query/edit/inspector-controls/index.js +129 -65
  775. package/src/query/edit/inspector-controls/taxonomy-controls.js +18 -11
  776. package/src/query/edit/query-placeholder.js +17 -2
  777. package/src/query/editor.scss +9 -0
  778. package/src/query/utils.js +29 -7
  779. package/src/query-no-results/edit.js +1 -1
  780. package/src/query-pagination/style.scss +14 -0
  781. package/src/query-title/block.json +11 -2
  782. package/src/query-title/edit.js +51 -7
  783. package/src/query-title/index.php +28 -2
  784. package/src/query-title/style.scss +4 -0
  785. package/src/query-title/variations.js +13 -0
  786. package/src/quote/deprecated.js +6 -5
  787. package/src/quote/transforms.js +6 -24
  788. package/src/search/index.php +1 -1
  789. package/src/search/style.scss +2 -0
  790. package/src/search/test/__snapshots__/edit.native.js.snap +56 -7
  791. package/src/separator/block.json +1 -0
  792. package/src/separator/deprecated.js +2 -3
  793. package/src/separator/edit.js +1 -1
  794. package/src/separator/test/edit.js +5 -3
  795. package/src/site-logo/editor.scss +8 -66
  796. package/src/site-title/index.php +8 -9
  797. package/src/social-link/icons/reddit.js +1 -1
  798. package/src/social-link/index.php +2 -2
  799. package/src/social-link/socials-with-bg.scss +1 -1
  800. package/src/social-link/socials-without-bg.scss +1 -1
  801. package/src/social-links/block.json +9 -0
  802. package/src/social-links/edit.js +48 -19
  803. package/src/spacer/block.json +7 -1
  804. package/src/style.scss +2 -0
  805. package/src/table/block.json +4 -0
  806. package/src/table/state.js +21 -19
  807. package/src/table-of-contents/block.json +24 -1
  808. package/src/tag-cloud/block.json +5 -1
  809. package/src/tag-cloud/style.scss +1 -0
  810. package/src/template-part/edit/index.js +4 -4
  811. package/src/template-part/index.js +3 -2
  812. package/src/term-description/block.json +4 -0
  813. package/src/text-columns/edit.js +2 -2
  814. package/src/text-columns/save.js +2 -2
  815. package/src/verse/block.json +1 -0
  816. package/src/video/block.json +4 -0
  817. package/src/video/style.scss +2 -0
@@ -6,18 +6,13 @@ import classnames from 'classnames';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import {
10
- useState,
11
- useEffect,
12
- useRef,
13
- useCallback,
14
- Platform,
15
- } from '@wordpress/element';
9
+ import { useState, useEffect, useRef, Platform } from '@wordpress/element';
16
10
  import {
17
11
  InspectorControls,
18
12
  BlockControls,
19
13
  useBlockProps,
20
- __experimentalUseNoRecursiveRenders as useNoRecursiveRenders,
14
+ __experimentalRecursionProvider as RecursionProvider,
15
+ __experimentalUseHasRecursion as useHasRecursion,
21
16
  store as blockEditorStore,
22
17
  withColors,
23
18
  PanelColorSettings,
@@ -28,7 +23,7 @@ import {
28
23
  } from '@wordpress/block-editor';
29
24
  import { EntityProvider } from '@wordpress/core-data';
30
25
 
31
- import { useDispatch, useSelect, useRegistry } from '@wordpress/data';
26
+ import { useDispatch } from '@wordpress/data';
32
27
  import {
33
28
  PanelBody,
34
29
  ToggleControl,
@@ -40,6 +35,7 @@ import {
40
35
  } from '@wordpress/components';
41
36
  import { __, sprintf } from '@wordpress/i18n';
42
37
  import { speak } from '@wordpress/a11y';
38
+ import { createBlock } from '@wordpress/blocks';
43
39
 
44
40
  /**
45
41
  * Internal dependencies
@@ -60,40 +56,9 @@ import useConvertClassicToBlockMenu, {
60
56
  CLASSIC_MENU_CONVERSION_PENDING,
61
57
  CLASSIC_MENU_CONVERSION_SUCCESS,
62
58
  } from './use-convert-classic-menu-to-block-menu';
63
- import useCreateNavigationMenu, {
64
- CREATE_NAVIGATION_MENU_ERROR,
65
- CREATE_NAVIGATION_MENU_PENDING,
66
- CREATE_NAVIGATION_MENU_SUCCESS,
67
- } from './use-create-navigation-menu';
68
-
69
- const EMPTY_ARRAY = [];
70
-
71
- function getComputedStyle( node ) {
72
- return node.ownerDocument.defaultView.getComputedStyle( node );
73
- }
74
-
75
- function detectColors( colorsDetectionElement, setColor, setBackground ) {
76
- if ( ! colorsDetectionElement ) {
77
- return;
78
- }
79
- setColor( getComputedStyle( colorsDetectionElement ).color );
80
-
81
- let backgroundColorNode = colorsDetectionElement;
82
- let backgroundColor =
83
- getComputedStyle( backgroundColorNode ).backgroundColor;
84
- while (
85
- backgroundColor === 'rgba(0, 0, 0, 0)' &&
86
- backgroundColorNode.parentNode &&
87
- backgroundColorNode.parentNode.nodeType ===
88
- backgroundColorNode.parentNode.ELEMENT_NODE
89
- ) {
90
- backgroundColorNode = backgroundColorNode.parentNode;
91
- backgroundColor =
92
- getComputedStyle( backgroundColorNode ).backgroundColor;
93
- }
94
-
95
- setBackground( backgroundColor );
96
- }
59
+ import useCreateNavigationMenu from './use-create-navigation-menu';
60
+ import { useInnerBlocks } from './use-inner-blocks';
61
+ import { detectColors } from './utils';
97
62
 
98
63
  function Navigation( {
99
64
  attributes,
@@ -130,56 +95,62 @@ function Navigation( {
130
95
 
131
96
  const ref = attributes.ref;
132
97
 
133
- const registry = useRegistry();
134
98
  const setRef = ( postId ) => {
135
99
  setAttributes( { ref: postId } );
136
100
  };
137
101
 
138
- const [ hasAlreadyRendered, RecursionProvider ] = useNoRecursiveRenders(
139
- `navigationMenu/${ ref }`
140
- );
102
+ const recursionId = `navigationMenu/${ ref }`;
103
+ const hasAlreadyRendered = useHasRecursion( recursionId );
141
104
 
142
105
  // Preload classic menus, so that they don't suddenly pop-in when viewing
143
106
  // the Select Menu dropdown.
144
107
  useNavigationEntities();
145
108
 
146
- const [ showNavigationMenuDeleteNotice ] = useNavigationNotice( {
147
- name: 'block-library/core/navigation/delete',
148
- } );
109
+ const [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =
110
+ useNavigationNotice( {
111
+ name: 'block-library/core/navigation/status',
112
+ } );
149
113
 
150
- const [ showNavigationMenuCreateNotice, hideNavigationMenuCreateNotice ] =
114
+ const [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =
151
115
  useNavigationNotice( {
152
- name: 'block-library/core/navigation/create',
116
+ name: 'block-library/core/navigation/classic-menu-conversion',
153
117
  } );
154
118
 
119
+ const [
120
+ showNavigationMenuPermissionsNotice,
121
+ hideNavigationMenuPermissionsNotice,
122
+ ] = useNavigationNotice( {
123
+ name: 'block-library/core/navigation/permissions/update',
124
+ } );
125
+
155
126
  const {
156
127
  create: createNavigationMenu,
157
128
  status: createNavigationMenuStatus,
158
129
  error: createNavigationMenuError,
159
130
  value: createNavigationMenuPost,
131
+ isPending: isCreatingNavigationMenu,
132
+ isSuccess: createNavigationMenuIsSuccess,
133
+ isError: createNavigationMenuIsError,
160
134
  } = useCreateNavigationMenu( clientId );
161
135
 
162
- const isCreatingNavigationMenu =
163
- createNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING;
164
-
165
136
  useEffect( () => {
166
- hideNavigationMenuCreateNotice();
137
+ hideNavigationMenuStatusNotice();
167
138
 
168
- if ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING ) {
139
+ if ( isCreatingNavigationMenu ) {
169
140
  speak( __( `Creating Navigation Menu.` ) );
170
141
  }
171
142
 
172
- if ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_SUCCESS ) {
143
+ if ( createNavigationMenuIsSuccess ) {
173
144
  setRef( createNavigationMenuPost.id );
174
145
  selectBlock( clientId );
175
146
 
176
- showNavigationMenuCreateNotice(
147
+ showNavigationMenuStatusNotice(
177
148
  __( `Navigation Menu successfully created.` )
178
149
  );
179
150
  }
180
151
 
181
- if ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_ERROR ) {
182
- showNavigationMenuCreateNotice(
152
+ if ( createNavigationMenuIsError ) {
153
+ showNavigationMenuStatusNotice(
183
154
  __( 'Failed to create Navigation Menu.' )
184
155
  );
185
156
  }
@@ -194,37 +165,13 @@ function Navigation( {
194
165
  hasUncontrolledInnerBlocks,
195
166
  uncontrolledInnerBlocks,
196
167
  isInnerBlockSelected,
197
- hasSubmenus,
198
- } = useSelect(
199
- ( select ) => {
200
- const { getBlock, getBlocks, hasSelectedInnerBlock } =
201
- select( blockEditorStore );
202
-
203
- // This relies on the fact that `getBlock` won't return controlled
204
- // inner blocks, while `getBlocks` does. It might be more stable to
205
- // introduce a selector like `getUncontrolledInnerBlocks`, just in
206
- // case `getBlock` is fixed.
207
- const _uncontrolledInnerBlocks = getBlock( clientId ).innerBlocks;
208
- const _hasUncontrolledInnerBlocks =
209
- !! _uncontrolledInnerBlocks?.length;
210
- const _controlledInnerBlocks = _hasUncontrolledInnerBlocks
211
- ? EMPTY_ARRAY
212
- : getBlocks( clientId );
213
- const innerBlocks = _hasUncontrolledInnerBlocks
214
- ? _uncontrolledInnerBlocks
215
- : _controlledInnerBlocks;
216
-
217
- return {
218
- hasSubmenus: !! innerBlocks.find(
219
- ( block ) => block.name === 'core/navigation-submenu'
220
- ),
221
- hasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,
222
- uncontrolledInnerBlocks: _uncontrolledInnerBlocks,
223
- isInnerBlockSelected: hasSelectedInnerBlock( clientId, true ),
224
- };
225
- },
226
- [ clientId ]
168
+ innerBlocks,
169
+ } = useInnerBlocks( clientId );
170
+
171
+ const hasSubmenus = !! innerBlocks.find(
172
+ ( block ) => block.name === 'core/navigation-submenu'
227
173
  );
174
+
228
175
  const {
229
176
  replaceInnerBlocks,
230
177
  selectBlock,
@@ -254,19 +201,40 @@ function Navigation( {
254
201
  hasResolvedCanUserCreateNavigationMenu,
255
202
  } = useNavigationMenu( ref );
256
203
 
257
- // Attempt to retrieve and prioritize any existing navigation menu unless
258
- // a specific ref is allocated or the user is explicitly creating a new menu. The aim is
259
- // for the block to "just work" from a user perspective using existing data.
204
+ const navMenuResolvedButMissing =
205
+ hasResolvedNavigationMenus && isNavigationMenuMissing;
206
+
207
+ // Attempt to retrieve and prioritize any existing navigation menu unless:
208
+ // - the are uncontrolled inner blocks already present in the block.
209
+ // - the user is creating a new menu.
210
+ // - there are no menus to choose from.
211
+ // This attempts to pick the first menu if there is a single Navigation Post. If more
212
+ // than 1 exists then use the most recent.
213
+ // The aim is for the block to "just work" from a user perspective using existing data.
260
214
  useEffect( () => {
261
215
  if (
216
+ hasUncontrolledInnerBlocks ||
262
217
  isCreatingNavigationMenu ||
263
218
  ref ||
264
- ! navigationMenus?.length ||
265
- navigationMenus?.length > 1
219
+ ! navigationMenus?.length
266
220
  ) {
267
221
  return;
268
222
  }
269
223
 
224
+ navigationMenus.sort( ( menuA, menuB ) => {
225
+ const menuADate = new Date( menuA.date );
226
+ const menuBDate = new Date( menuB.date );
227
+ return menuADate.getTime() < menuBDate.getTime();
228
+ } );
229
+
230
+ /**
231
+ * This fallback displays (both in editor and on front)
232
+ * a list of pages only if no menu (user assigned or
233
+ * automatically picked) is available.
234
+ * The fallback should not request a save (entity dirty state)
235
+ * nor to be undoable, hence why it is marked as non persistent
236
+ */
237
+ __unstableMarkNextChangeAsNotPersistent();
270
238
  setRef( navigationMenus[ 0 ].id );
271
239
  }, [ navigationMenus ] );
272
240
 
@@ -275,10 +243,9 @@ function Navigation( {
275
243
  const isDraftNavigationMenu = navigationMenu?.status === 'draft';
276
244
 
277
245
  const {
278
- convert,
246
+ convert: convertClassicMenu,
279
247
  status: classicMenuConversionStatus,
280
248
  error: classicMenuConversionError,
281
- value: classicMenuConversionResult,
282
249
  } = useConvertClassicToBlockMenu( clientId );
283
250
 
284
251
  const isConvertingClassicMenu =
@@ -299,13 +266,24 @@ function Navigation( {
299
266
  hasResolvedNavigationMenus &&
300
267
  ! hasUncontrolledInnerBlocks;
301
268
 
269
+ if ( isPlaceholder && ! ref ) {
270
+ /**
271
+ * this fallback only displays (both in editor and on front)
272
+ * the list of pages block if no menu is available as a fallback.
273
+ * We don't want the fallback to request a save,
274
+ * nor to be undoable, hence we mark it non persistent.
275
+ */
276
+ __unstableMarkNextChangeAsNotPersistent();
277
+ replaceInnerBlocks( clientId, [ createBlock( 'core/page-list' ) ] );
278
+ }
279
+
302
280
  const isEntityAvailable =
303
281
  ! isNavigationMenuMissing && isNavigationMenuResolved;
304
282
 
305
283
  // "loading" state:
306
284
  // - there is a menu creation process in progress.
307
285
  // - there is a classic menu conversion process in progress.
308
- // OR
286
+ // OR:
309
287
  // - there is a ref attribute pointing to a Navigation Post
310
288
  // - the Navigation Post isn't available (hasn't resolved) yet.
311
289
  const isLoading =
@@ -317,60 +295,31 @@ function Navigation( {
317
295
  const textDecoration = attributes.style?.typography?.textDecoration;
318
296
 
319
297
  const hasBlockOverlay = useBlockOverlayActive( clientId );
320
- const blockProps = useBlockProps(
321
- {
322
- ref: navRef,
323
- className: classnames( className, {
324
- 'items-justified-right': justifyContent === 'right',
325
- 'items-justified-space-between':
326
- justifyContent === 'space-between',
327
- 'items-justified-left': justifyContent === 'left',
328
- 'items-justified-center': justifyContent === 'center',
329
- 'is-vertical': orientation === 'vertical',
330
- 'no-wrap': flexWrap === 'nowrap',
331
- 'is-responsive': 'never' !== overlayMenu,
332
- 'has-text-color': !! textColor.color || !! textColor?.class,
333
- [ getColorClassName( 'color', textColor?.slug ) ]:
334
- !! textColor?.slug,
335
- 'has-background':
336
- !! backgroundColor.color || backgroundColor.class,
337
- [ getColorClassName(
338
- 'background-color',
339
- backgroundColor?.slug
340
- ) ]: !! backgroundColor?.slug,
341
- [ `has-text-decoration-${ textDecoration }` ]: textDecoration,
342
- 'block-editor-block-content-overlay': hasBlockOverlay,
343
- } ),
344
- style: {
345
- color: ! textColor?.slug && textColor?.color,
346
- backgroundColor:
347
- ! backgroundColor?.slug && backgroundColor?.color,
348
- },
298
+ const blockProps = useBlockProps( {
299
+ ref: navRef,
300
+ className: classnames( className, {
301
+ 'items-justified-right': justifyContent === 'right',
302
+ 'items-justified-space-between': justifyContent === 'space-between',
303
+ 'items-justified-left': justifyContent === 'left',
304
+ 'items-justified-center': justifyContent === 'center',
305
+ 'is-vertical': orientation === 'vertical',
306
+ 'no-wrap': flexWrap === 'nowrap',
307
+ 'is-responsive': 'never' !== overlayMenu,
308
+ 'has-text-color': !! textColor.color || !! textColor?.class,
309
+ [ getColorClassName( 'color', textColor?.slug ) ]:
310
+ !! textColor?.slug,
311
+ 'has-background': !! backgroundColor.color || backgroundColor.class,
312
+ [ getColorClassName( 'background-color', backgroundColor?.slug ) ]:
313
+ !! backgroundColor?.slug,
314
+ [ `has-text-decoration-${ textDecoration }` ]: textDecoration,
315
+ 'block-editor-block-content-overlay': hasBlockOverlay,
316
+ } ),
317
+ style: {
318
+ color: ! textColor?.slug && textColor?.color,
319
+ backgroundColor: ! backgroundColor?.slug && backgroundColor?.color,
349
320
  },
350
- { __unstableIsDisabled: hasBlockOverlay }
351
- );
352
-
353
- const overlayClassnames = classnames( {
354
- 'has-text-color':
355
- !! overlayTextColor.color || !! overlayTextColor?.class,
356
- [ getColorClassName( 'color', overlayTextColor?.slug ) ]:
357
- !! overlayTextColor?.slug,
358
- 'has-background':
359
- !! overlayBackgroundColor.color || overlayBackgroundColor?.class,
360
- [ getColorClassName(
361
- 'background-color',
362
- overlayBackgroundColor?.slug
363
- ) ]: !! overlayBackgroundColor?.slug,
364
321
  } );
365
322
 
366
- const overlayStyles = {
367
- color: ! overlayTextColor?.slug && overlayTextColor?.color,
368
- backgroundColor:
369
- ! overlayBackgroundColor?.slug &&
370
- overlayBackgroundColor?.color &&
371
- overlayBackgroundColor.color,
372
- };
373
-
374
323
  // Turn on contrast checker for web only since it's not supported on mobile yet.
375
324
  const enableContrastChecking = Platform.OS === 'web';
376
325
 
@@ -382,41 +331,29 @@ function Navigation( {
382
331
  ] = useState();
383
332
  const [ detectedOverlayColor, setDetectedOverlayColor ] = useState();
384
333
 
385
- const [
386
- showClassicMenuConversionErrorNotice,
387
- hideClassicMenuConversionErrorNotice,
388
- ] = useNavigationNotice( {
389
- name: 'block-library/core/navigation/classic-menu-conversion/error',
390
- } );
391
-
392
- function handleUpdateMenu( menuId ) {
334
+ const handleUpdateMenu = ( menuId ) => {
393
335
  setRef( menuId );
394
336
  selectBlock( clientId );
395
- }
337
+ };
396
338
 
397
339
  useEffect( () => {
340
+ hideClassicMenuConversionNotice();
398
341
  if ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {
399
342
  speak( __( 'Classic menu importing.' ) );
400
343
  }
401
344
 
402
- if (
403
- classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS &&
404
- classicMenuConversionResult
405
- ) {
406
- handleUpdateMenu( classicMenuConversionResult?.id );
407
- hideClassicMenuConversionErrorNotice();
408
- speak( __( 'Classic menu imported successfully.' ) );
345
+ if ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS ) {
346
+ showClassicMenuConversionNotice(
347
+ __( 'Classic menu imported successfully.' )
348
+ );
409
349
  }
410
350
 
411
351
  if ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {
412
- showClassicMenuConversionErrorNotice( classicMenuConversionError );
413
- speak( __( 'Classic menu import failed.' ) );
352
+ showClassicMenuConversionNotice(
353
+ __( 'Classic menu import failed.' )
354
+ );
414
355
  }
415
- }, [
416
- classicMenuConversionStatus,
417
- classicMenuConversionResult,
418
- classicMenuConversionError,
419
- ] );
356
+ }, [ classicMenuConversionStatus, classicMenuConversionError ] );
420
357
 
421
358
  // Spacer block needs orientation from context. This is a patch until
422
359
  // https://github.com/WordPress/gutenberg/issues/36197 is addressed.
@@ -448,35 +385,23 @@ function Navigation( {
448
385
  }
449
386
  } );
450
387
 
451
- const [ showCantEditNotice, hideCantEditNotice ] = useNavigationNotice( {
452
- name: 'block-library/core/navigation/permissions/update',
453
- message: __(
454
- 'You do not have permission to edit this Menu. Any changes made will not be saved.'
455
- ),
456
- } );
457
-
458
- const [ showCantCreateNotice, hideCantCreateNotice ] = useNavigationNotice(
459
- {
460
- name: 'block-library/core/navigation/permissions/create',
461
- message: __(
462
- 'You do not have permission to create Navigation Menus.'
463
- ),
464
- }
465
- );
466
-
467
388
  useEffect( () => {
468
389
  if ( ! isSelected && ! isInnerBlockSelected ) {
469
- hideCantEditNotice();
470
- hideCantCreateNotice();
390
+ hideNavigationMenuPermissionsNotice();
471
391
  }
472
392
 
473
393
  if ( isSelected || isInnerBlockSelected ) {
474
394
  if (
475
395
  ref &&
396
+ ! navMenuResolvedButMissing &&
476
397
  hasResolvedCanUserUpdateNavigationMenu &&
477
398
  ! canUserUpdateNavigationMenu
478
399
  ) {
479
- showCantEditNotice();
400
+ showNavigationMenuPermissionsNotice(
401
+ __(
402
+ 'You do not have permission to edit this Menu. Any changes made will not be saved.'
403
+ )
404
+ );
480
405
  }
481
406
 
482
407
  if (
@@ -484,7 +409,11 @@ function Navigation( {
484
409
  hasResolvedCanUserCreateNavigationMenu &&
485
410
  ! canUserCreateNavigationMenu
486
411
  ) {
487
- showCantCreateNotice();
412
+ showNavigationMenuPermissionsNotice(
413
+ __(
414
+ 'You do not have permission to create Navigation Menus.'
415
+ )
416
+ );
488
417
  }
489
418
  }
490
419
  }, [
@@ -500,24 +429,6 @@ function Navigation( {
500
429
  const navigationSelectorRef = useRef();
501
430
  const [ shouldFocusNavigationSelector, setShouldFocusNavigationSelector ] =
502
431
  useState( false );
503
- const handleSelectNavigation = useCallback(
504
- ( navPostOrClassicMenu ) => {
505
- if ( ! navPostOrClassicMenu ) {
506
- return;
507
- }
508
-
509
- const isClassicMenu =
510
- navPostOrClassicMenu.hasOwnProperty( 'auto_add' );
511
-
512
- if ( isClassicMenu ) {
513
- convert( navPostOrClassicMenu.id, navPostOrClassicMenu.name );
514
- } else {
515
- handleUpdateMenu( navPostOrClassicMenu.id );
516
- }
517
- setShouldFocusNavigationSelector( true );
518
- },
519
- [ convert, handleUpdateMenu ]
520
- );
521
432
 
522
433
  // Focus support after menu selection.
523
434
  useEffect( () => {
@@ -536,17 +447,6 @@ function Navigation( {
536
447
  shouldFocusNavigationSelector,
537
448
  ] );
538
449
 
539
- const resetToEmptyBlock = useCallback( () => {
540
- registry.batch( () => {
541
- setAttributes( {
542
- ref: undefined,
543
- } );
544
- if ( ! ref ) {
545
- replaceInnerBlocks( clientId, [] );
546
- }
547
- } );
548
- }, [ clientId, ref ] );
549
-
550
450
  const isResponsive = 'never' !== overlayMenu;
551
451
 
552
452
  const overlayMenuPreviewClasses = classnames(
@@ -695,6 +595,33 @@ function Navigation( {
695
595
  if ( hasUnsavedBlocks ) {
696
596
  return (
697
597
  <TagName { ...blockProps }>
598
+ <BlockControls>
599
+ <ToolbarGroup className="wp-block-navigation__toolbar-menu-selector">
600
+ <NavigationMenuSelector
601
+ ref={ null }
602
+ currentMenuId={ null }
603
+ clientId={ clientId }
604
+ onSelectNavigationMenu={ ( menuId ) => {
605
+ handleUpdateMenu( menuId );
606
+ setShouldFocusNavigationSelector( true );
607
+ } }
608
+ onSelectClassicMenu={ async ( classicMenu ) => {
609
+ const navMenu = await convertClassicMenu(
610
+ classicMenu.id,
611
+ classicMenu.name
612
+ );
613
+ if ( navMenu ) {
614
+ handleUpdateMenu( navMenu.id );
615
+ setShouldFocusNavigationSelector( true );
616
+ }
617
+ } }
618
+ onCreateNew={ () => createNavigationMenu( '', [] ) }
619
+ /* translators: %s: The name of a menu. */
620
+ actionLabel={ __( "Switch to '%s'" ) }
621
+ showManageActions
622
+ />
623
+ </ToolbarGroup>
624
+ </BlockControls>
698
625
  { stylingInspectorControls }
699
626
  <ResponsiveWrapper
700
627
  id={ clientId }
@@ -702,8 +629,8 @@ function Navigation( {
702
629
  isOpen={ isResponsiveMenuOpen }
703
630
  isResponsive={ 'never' !== overlayMenu }
704
631
  isHiddenByDefault={ 'always' === overlayMenu }
705
- classNames={ overlayClassnames }
706
- styles={ overlayStyles }
632
+ overlayBackgroundColor={ overlayBackgroundColor }
633
+ overlayTextColor={ overlayTextColor }
707
634
  >
708
635
  <UnsavedInnerBlocks
709
636
  blockProps={ blockProps }
@@ -720,7 +647,7 @@ function Navigation( {
720
647
  // Switch to using the wp_navigation entity.
721
648
  setRef( post.id );
722
649
 
723
- showNavigationMenuCreateNotice(
650
+ showNavigationMenuStatusNotice(
724
651
  __( `New Navigation Menu created.` )
725
652
  );
726
653
  } }
@@ -734,16 +661,46 @@ function Navigation( {
734
661
  // TODO - the user should be able to select a new one?
735
662
  if ( ref && isNavigationMenuMissing ) {
736
663
  return (
737
- <div { ...blockProps }>
664
+ <TagName { ...blockProps }>
665
+ <BlockControls>
666
+ <ToolbarGroup className="wp-block-navigation__toolbar-menu-selector">
667
+ <NavigationMenuSelector
668
+ ref={ navigationSelectorRef }
669
+ currentMenuId={ ref }
670
+ clientId={ clientId }
671
+ onSelectNavigationMenu={ ( menuId ) => {
672
+ handleUpdateMenu( menuId );
673
+ setShouldFocusNavigationSelector( true );
674
+ } }
675
+ onSelectClassicMenu={ async ( classicMenu ) => {
676
+ const navMenu = await convertClassicMenu(
677
+ classicMenu.id,
678
+ classicMenu.name
679
+ );
680
+ if ( navMenu ) {
681
+ handleUpdateMenu( navMenu.id );
682
+ setShouldFocusNavigationSelector( true );
683
+ }
684
+ } }
685
+ onCreateNew={ () => createNavigationMenu( '', [] ) }
686
+ /* translators: %s: The name of a menu. */
687
+ actionLabel={ __( "Switch to '%s'" ) }
688
+ showManageActions
689
+ />
690
+ </ToolbarGroup>
691
+ </BlockControls>
738
692
  <Warning>
739
693
  { __(
740
694
  'Navigation menu has been deleted or is unavailable. '
741
695
  ) }
742
- <Button onClick={ resetToEmptyBlock } variant="link">
696
+ <Button
697
+ onClick={ () => createNavigationMenu( '', [] ) }
698
+ variant="link"
699
+ >
743
700
  { __( 'Create a new menu?' ) }
744
701
  </Button>
745
702
  </Warning>
746
- </div>
703
+ </TagName>
747
704
  );
748
705
  }
749
706
 
@@ -761,7 +718,17 @@ function Navigation( {
761
718
  ? CustomPlaceholder
762
719
  : Placeholder;
763
720
 
764
- if ( isPlaceholder ) {
721
+ /**
722
+ * Historically the navigation block has supported custom placeholders.
723
+ * Even though the current UX tries as hard as possible not to
724
+ * end up in a placeholder state, the block continues to support
725
+ * this extensibility point, via a CustomPlaceholder.
726
+ * When CustomPlaceholder is present it becomes the default fallback
727
+ * for an empty navigation block, instead of the default fallbacks.
728
+ *
729
+ */
730
+
731
+ if ( isPlaceholder && CustomPlaceholder ) {
765
732
  return (
766
733
  <TagName { ...blockProps }>
767
734
  <PlaceholderComponent
@@ -772,7 +739,20 @@ function Navigation( {
772
739
  isResolvingCanUserCreateNavigationMenu={
773
740
  isResolvingCanUserCreateNavigationMenu
774
741
  }
775
- onFinish={ handleSelectNavigation }
742
+ onSelectNavigationMenu={ ( menuId ) => {
743
+ handleUpdateMenu( menuId );
744
+ setShouldFocusNavigationSelector( true );
745
+ } }
746
+ onSelectClassicMenu={ async ( classicMenu ) => {
747
+ const navMenu = await convertClassicMenu(
748
+ classicMenu.id,
749
+ classicMenu.name
750
+ );
751
+ if ( navMenu ) {
752
+ handleUpdateMenu( navMenu.id );
753
+ setShouldFocusNavigationSelector( true );
754
+ }
755
+ } }
776
756
  onCreateEmpty={ () => createNavigationMenu( '', [] ) }
777
757
  />
778
758
  </TagName>
@@ -781,7 +761,7 @@ function Navigation( {
781
761
 
782
762
  return (
783
763
  <EntityProvider kind="postType" type="wp_navigation" id={ ref }>
784
- <RecursionProvider>
764
+ <RecursionProvider uniqueId={ recursionId }>
785
765
  <BlockControls>
786
766
  { ! isDraftNavigationMenu && isEntityAvailable && (
787
767
  <ToolbarGroup className="wp-block-navigation__toolbar-menu-selector">
@@ -789,8 +769,25 @@ function Navigation( {
789
769
  ref={ navigationSelectorRef }
790
770
  currentMenuId={ ref }
791
771
  clientId={ clientId }
792
- onSelect={ handleSelectNavigation }
793
- onCreateNew={ resetToEmptyBlock }
772
+ onSelectNavigationMenu={ ( menuId ) => {
773
+ handleUpdateMenu( menuId );
774
+ setShouldFocusNavigationSelector( true );
775
+ } }
776
+ onSelectClassicMenu={ async ( classicMenu ) => {
777
+ const navMenu = await convertClassicMenu(
778
+ classicMenu.id,
779
+ classicMenu.name
780
+ );
781
+ if ( navMenu ) {
782
+ handleUpdateMenu( navMenu.id );
783
+ setShouldFocusNavigationSelector(
784
+ true
785
+ );
786
+ }
787
+ } }
788
+ onCreateNew={ () =>
789
+ createNavigationMenu( '', [] )
790
+ }
794
791
  /* translators: %s: The name of a menu. */
795
792
  actionLabel={ __( "Switch to '%s'" ) }
796
793
  showManageActions
@@ -809,8 +806,8 @@ function Navigation( {
809
806
  canUserDeleteNavigationMenu && (
810
807
  <NavigationMenuDeleteControl
811
808
  onDelete={ ( deletedMenuTitle = '' ) => {
812
- resetToEmptyBlock();
813
- showNavigationMenuDeleteNotice(
809
+ replaceInnerBlocks( clientId, [] );
810
+ showNavigationMenuStatusNotice(
814
811
  sprintf(
815
812
  // translators: %s: the name of a menu (e.g. Header navigation).
816
813
  __(
@@ -841,8 +838,8 @@ function Navigation( {
841
838
  isOpen={ isResponsiveMenuOpen }
842
839
  isResponsive={ isResponsive }
843
840
  isHiddenByDefault={ 'always' === overlayMenu }
844
- classNames={ overlayClassnames }
845
- styles={ overlayStyles }
841
+ overlayBackgroundColor={ overlayBackgroundColor }
842
+ overlayTextColor={ overlayTextColor }
846
843
  >
847
844
  { isEntityAvailable && (
848
845
  <NavigationInnerBlocks