@wordpress/block-library 8.3.6 → 8.5.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 (738) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/archives/edit.js +3 -0
  3. package/build/archives/edit.js.map +1 -1
  4. package/build/archives/index.js +1 -0
  5. package/build/archives/index.js.map +1 -1
  6. package/build/audio/edit.js +2 -0
  7. package/build/audio/edit.js.map +1 -1
  8. package/build/avatar/edit.js +5 -9
  9. package/build/avatar/edit.js.map +1 -1
  10. package/build/avatar/index.js +1 -0
  11. package/build/avatar/index.js.map +1 -1
  12. package/build/button/edit.js +3 -1
  13. package/build/button/edit.js.map +1 -1
  14. package/build/button/index.js +17 -6
  15. package/build/button/index.js.map +1 -1
  16. package/build/calendar/index.js +1 -0
  17. package/build/calendar/index.js.map +1 -1
  18. package/build/categories/edit.js +5 -0
  19. package/build/categories/edit.js.map +1 -1
  20. package/build/categories/index.js +1 -0
  21. package/build/categories/index.js.map +1 -1
  22. package/build/columns/edit.js +1 -0
  23. package/build/columns/edit.js.map +1 -1
  24. package/build/columns/utils.js +2 -2
  25. package/build/columns/utils.js.map +1 -1
  26. package/build/comment-author-avatar/index.js +1 -0
  27. package/build/comment-author-avatar/index.js.map +1 -1
  28. package/build/comment-author-name/edit.js +2 -0
  29. package/build/comment-author-name/edit.js.map +1 -1
  30. package/build/comment-author-name/index.js +1 -0
  31. package/build/comment-author-name/index.js.map +1 -1
  32. package/build/comment-content/index.js +1 -0
  33. package/build/comment-content/index.js.map +1 -1
  34. package/build/comment-date/edit.js +1 -0
  35. package/build/comment-date/edit.js.map +1 -1
  36. package/build/comment-date/index.js +1 -0
  37. package/build/comment-date/index.js.map +1 -1
  38. package/build/comment-edit-link/edit.js +1 -0
  39. package/build/comment-edit-link/edit.js.map +1 -1
  40. package/build/comment-edit-link/index.js +1 -0
  41. package/build/comment-edit-link/index.js.map +1 -1
  42. package/build/comment-reply-link/index.js +1 -0
  43. package/build/comment-reply-link/index.js.map +1 -1
  44. package/build/comment-template/index.js +1 -0
  45. package/build/comment-template/index.js.map +1 -1
  46. package/build/comments/index.js +2 -1
  47. package/build/comments/index.js.map +1 -1
  48. package/build/comments-pagination/index.js +1 -0
  49. package/build/comments-pagination/index.js.map +1 -1
  50. package/build/comments-pagination-next/index.js +1 -0
  51. package/build/comments-pagination-next/index.js.map +1 -1
  52. package/build/comments-pagination-numbers/index.js +1 -0
  53. package/build/comments-pagination-numbers/index.js.map +1 -1
  54. package/build/comments-pagination-previous/index.js +1 -0
  55. package/build/comments-pagination-previous/index.js.map +1 -1
  56. package/build/comments-title/edit.js +2 -0
  57. package/build/comments-title/edit.js.map +1 -1
  58. package/build/cover/edit/inspector-controls.js +2 -0
  59. package/build/cover/edit/inspector-controls.js.map +1 -1
  60. package/build/embed/embed-controls.js +1 -0
  61. package/build/embed/embed-controls.js.map +1 -1
  62. package/build/file/index.js +10 -1
  63. package/build/file/index.js.map +1 -1
  64. package/build/file/inspector.js +3 -0
  65. package/build/file/inspector.js.map +1 -1
  66. package/build/freeform/modal.js +1 -1
  67. package/build/freeform/modal.js.map +1 -1
  68. package/build/gallery/edit.js +2 -0
  69. package/build/gallery/edit.js.map +1 -1
  70. package/build/gallery/shared.js +4 -8
  71. package/build/gallery/shared.js.map +1 -1
  72. package/build/gallery/use-image-sizes.js +4 -8
  73. package/build/gallery/use-image-sizes.js.map +1 -1
  74. package/build/gallery/v1/edit.js +8 -3
  75. package/build/gallery/v1/edit.js.map +1 -1
  76. package/build/gallery/v1/gallery-image.js +1 -3
  77. package/build/gallery/v1/gallery-image.js.map +1 -1
  78. package/build/gallery/v1/shared.js +4 -7
  79. package/build/gallery/v1/shared.js.map +1 -1
  80. package/build/home-link/index.js +1 -0
  81. package/build/home-link/index.js.map +1 -1
  82. package/build/image/edit.js +6 -4
  83. package/build/image/edit.js.map +1 -1
  84. package/build/image/image.js +18 -13
  85. package/build/image/image.js.map +1 -1
  86. package/build/image/utils.js +3 -1
  87. package/build/image/utils.js.map +1 -1
  88. package/build/index.js +3 -1
  89. package/build/index.js.map +1 -1
  90. package/build/latest-comments/edit.js +9 -2
  91. package/build/latest-comments/edit.js.map +1 -1
  92. package/build/latest-comments/index.js +14 -0
  93. package/build/latest-comments/index.js.map +1 -1
  94. package/build/latest-posts/deprecated.js +1 -0
  95. package/build/latest-posts/deprecated.js.map +1 -1
  96. package/build/latest-posts/edit.js +4 -0
  97. package/build/latest-posts/edit.js.map +1 -1
  98. package/build/latest-posts/index.js +1 -0
  99. package/build/latest-posts/index.js.map +1 -1
  100. package/build/list/ordered-list-settings.js +1 -0
  101. package/build/list/ordered-list-settings.js.map +1 -1
  102. package/build/list-item/edit.js +2 -2
  103. package/build/list-item/edit.js.map +1 -1
  104. package/build/list-item/hooks/use-outdent-list-item.js +2 -1
  105. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  106. package/build/loginout/edit.js +2 -0
  107. package/build/loginout/edit.js.map +1 -1
  108. package/build/loginout/index.js +1 -0
  109. package/build/loginout/index.js.map +1 -1
  110. package/build/media-text/edit.js +2 -0
  111. package/build/media-text/edit.js.map +1 -1
  112. package/build/more/edit.js +1 -0
  113. package/build/more/edit.js.map +1 -1
  114. package/build/navigation/edit/index.js +80 -54
  115. package/build/navigation/edit/index.js.map +1 -1
  116. package/build/navigation/edit/navigation-menu-selector.js +14 -11
  117. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  118. package/build/navigation/edit/overlay-menu-preview.js +1 -0
  119. package/build/navigation/edit/overlay-menu-preview.js.map +1 -1
  120. package/build/navigation/edit/placeholder/index.js +1 -1
  121. package/build/navigation/edit/placeholder/index.js.map +1 -1
  122. package/build/navigation/edit/unsaved-inner-blocks.js +1 -1
  123. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  124. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
  125. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  126. package/build/navigation/edit/use-create-navigation-menu.js +1 -1
  127. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
  128. package/build/navigation/edit/use-generate-default-navigation-title.js +1 -1
  129. package/build/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
  130. package/build/navigation/edit/use-navigation-notice.js +4 -7
  131. package/build/navigation/edit/use-navigation-notice.js.map +1 -1
  132. package/build/navigation/index.js +1 -0
  133. package/build/navigation/index.js.map +1 -1
  134. package/build/navigation/use-navigation-menu.js +1 -1
  135. package/build/navigation/use-navigation-menu.js.map +1 -1
  136. package/build/navigation-link/edit.js +10 -5
  137. package/build/navigation-link/edit.js.map +1 -1
  138. package/build/navigation-link/link-ui.js +2 -0
  139. package/build/navigation-link/link-ui.js.map +1 -1
  140. package/build/page-list/convert-to-links-modal.js +47 -0
  141. package/build/page-list/convert-to-links-modal.js.map +1 -0
  142. package/build/page-list/edit.js +15 -28
  143. package/build/page-list/edit.js.map +1 -1
  144. package/build/page-list/index.js +1 -0
  145. package/build/page-list/index.js.map +1 -1
  146. package/build/page-list/use-convert-to-navigation-links.js +61 -5
  147. package/build/page-list/use-convert-to-navigation-links.js.map +1 -1
  148. package/build/paragraph/edit.js +1 -0
  149. package/build/paragraph/edit.js.map +1 -1
  150. package/build/post-author/edit.js +4 -0
  151. package/build/post-author/edit.js.map +1 -1
  152. package/build/post-author/index.js +1 -0
  153. package/build/post-author/index.js.map +1 -1
  154. package/build/post-author-biography/index.js +1 -0
  155. package/build/post-author-biography/index.js.map +1 -1
  156. package/build/post-author-name/edit.js +2 -0
  157. package/build/post-author-name/edit.js.map +1 -1
  158. package/build/post-author-name/index.js +1 -0
  159. package/build/post-author-name/index.js.map +1 -1
  160. package/build/post-comments-count/index.js +1 -0
  161. package/build/post-comments-count/index.js.map +1 -1
  162. package/build/post-comments-form/index.js +1 -0
  163. package/build/post-comments-form/index.js.map +1 -1
  164. package/build/post-comments-link/index.js +1 -0
  165. package/build/post-comments-link/index.js.map +1 -1
  166. package/build/post-content/index.js +1 -0
  167. package/build/post-content/index.js.map +1 -1
  168. package/build/post-date/edit.js +2 -0
  169. package/build/post-date/edit.js.map +1 -1
  170. package/build/post-date/index.js +1 -0
  171. package/build/post-date/index.js.map +1 -1
  172. package/build/post-excerpt/edit.js +50 -3
  173. package/build/post-excerpt/edit.js.map +1 -1
  174. package/build/post-excerpt/index.js +5 -0
  175. package/build/post-excerpt/index.js.map +1 -1
  176. package/build/post-featured-image/dimension-controls.js +52 -1
  177. package/build/post-featured-image/dimension-controls.js.map +1 -1
  178. package/build/post-featured-image/edit.js +11 -4
  179. package/build/post-featured-image/edit.js.map +1 -1
  180. package/build/post-featured-image/index.js +4 -0
  181. package/build/post-featured-image/index.js.map +1 -1
  182. package/build/post-navigation-link/edit.js +2 -0
  183. package/build/post-navigation-link/edit.js.map +1 -1
  184. package/build/post-navigation-link/index.js +1 -0
  185. package/build/post-navigation-link/index.js.map +1 -1
  186. package/build/post-template/index.js +1 -0
  187. package/build/post-template/index.js.map +1 -1
  188. package/build/post-terms/index.js +1 -0
  189. package/build/post-terms/index.js.map +1 -1
  190. package/build/post-terms/use-post-terms.js +1 -1
  191. package/build/post-terms/use-post-terms.js.map +1 -1
  192. package/build/post-time-to-read/edit.js +104 -0
  193. package/build/post-time-to-read/edit.js.map +1 -0
  194. package/build/post-time-to-read/icon.js +25 -0
  195. package/build/post-time-to-read/icon.js.map +1 -0
  196. package/build/post-time-to-read/index.js +57 -0
  197. package/build/post-time-to-read/index.js.map +1 -0
  198. package/build/post-title/edit.js +2 -0
  199. package/build/post-title/edit.js.map +1 -1
  200. package/build/post-title/index.js +1 -0
  201. package/build/post-title/index.js.map +1 -1
  202. package/build/query/edit/inspector-controls/index.js +1 -0
  203. package/build/query/edit/inspector-controls/index.js.map +1 -1
  204. package/build/query/index.js +1 -0
  205. package/build/query/index.js.map +1 -1
  206. package/build/query/utils.js +1 -0
  207. package/build/query/utils.js.map +1 -1
  208. package/build/query-no-results/index.js +1 -0
  209. package/build/query-no-results/index.js.map +1 -1
  210. package/build/query-pagination/index.js +1 -0
  211. package/build/query-pagination/index.js.map +1 -1
  212. package/build/query-pagination-next/index.js +1 -0
  213. package/build/query-pagination-next/index.js.map +1 -1
  214. package/build/query-pagination-numbers/index.js +1 -0
  215. package/build/query-pagination-numbers/index.js.map +1 -1
  216. package/build/query-pagination-previous/index.js +1 -0
  217. package/build/query-pagination-previous/index.js.map +1 -1
  218. package/build/query-title/edit.js +2 -0
  219. package/build/query-title/edit.js.map +1 -1
  220. package/build/query-title/index.js +1 -0
  221. package/build/query-title/index.js.map +1 -1
  222. package/build/read-more/edit.js +1 -0
  223. package/build/read-more/edit.js.map +1 -1
  224. package/build/read-more/index.js +1 -0
  225. package/build/read-more/index.js.map +1 -1
  226. package/build/rss/edit.js +3 -0
  227. package/build/rss/edit.js.map +1 -1
  228. package/build/rss/index.js +1 -0
  229. package/build/rss/index.js.map +1 -1
  230. package/build/search/index.js +1 -0
  231. package/build/search/index.js.map +1 -1
  232. package/build/site-logo/edit.js +10 -11
  233. package/build/site-logo/edit.js.map +1 -1
  234. package/build/site-logo/index.js +1 -0
  235. package/build/site-logo/index.js.map +1 -1
  236. package/build/site-tagline/index.js +1 -0
  237. package/build/site-tagline/index.js.map +1 -1
  238. package/build/site-title/edit/index.js +2 -0
  239. package/build/site-title/edit/index.js.map +1 -1
  240. package/build/site-title/index.js +1 -0
  241. package/build/site-title/index.js.map +1 -1
  242. package/build/social-link/index.js +1 -0
  243. package/build/social-link/index.js.map +1 -1
  244. package/build/social-links/edit.js +2 -0
  245. package/build/social-links/edit.js.map +1 -1
  246. package/build/spacer/controls.native.js +10 -8
  247. package/build/spacer/controls.native.js.map +1 -1
  248. package/build/spacer/edit.native.js +43 -5
  249. package/build/spacer/edit.native.js.map +1 -1
  250. package/build/spacer/save.native.js +30 -0
  251. package/build/spacer/save.native.js.map +1 -0
  252. package/build/table/edit.js +6 -3
  253. package/build/table/edit.js.map +1 -1
  254. package/build/table-of-contents/edit.js +1 -0
  255. package/build/table-of-contents/edit.js.map +1 -1
  256. package/build/table-of-contents/utils.js +1 -1
  257. package/build/table-of-contents/utils.js.map +1 -1
  258. package/build/tag-cloud/edit.js +1 -0
  259. package/build/tag-cloud/edit.js.map +1 -1
  260. package/build/tag-cloud/index.js +1 -0
  261. package/build/tag-cloud/index.js.map +1 -1
  262. package/build/template-part/index.js +1 -0
  263. package/build/template-part/index.js.map +1 -1
  264. package/build/term-description/index.js +1 -0
  265. package/build/term-description/index.js.map +1 -1
  266. package/build/verse/index.js +6 -0
  267. package/build/verse/index.js.map +1 -1
  268. package/build/video/edit-common-settings.js +5 -0
  269. package/build/video/edit-common-settings.js.map +1 -1
  270. package/build-module/archives/edit.js +3 -0
  271. package/build-module/archives/edit.js.map +1 -1
  272. package/build-module/archives/index.js +1 -0
  273. package/build-module/archives/index.js.map +1 -1
  274. package/build-module/audio/edit.js +2 -0
  275. package/build-module/audio/edit.js.map +1 -1
  276. package/build-module/avatar/edit.js +5 -8
  277. package/build-module/avatar/edit.js.map +1 -1
  278. package/build-module/avatar/index.js +1 -0
  279. package/build-module/avatar/index.js.map +1 -1
  280. package/build-module/button/edit.js +2 -1
  281. package/build-module/button/edit.js.map +1 -1
  282. package/build-module/button/index.js +17 -6
  283. package/build-module/button/index.js.map +1 -1
  284. package/build-module/calendar/index.js +1 -0
  285. package/build-module/calendar/index.js.map +1 -1
  286. package/build-module/categories/edit.js +5 -0
  287. package/build-module/categories/edit.js.map +1 -1
  288. package/build-module/categories/index.js +1 -0
  289. package/build-module/categories/index.js.map +1 -1
  290. package/build-module/columns/edit.js +1 -0
  291. package/build-module/columns/edit.js.map +1 -1
  292. package/build-module/columns/utils.js +3 -3
  293. package/build-module/columns/utils.js.map +1 -1
  294. package/build-module/comment-author-avatar/index.js +1 -0
  295. package/build-module/comment-author-avatar/index.js.map +1 -1
  296. package/build-module/comment-author-name/edit.js +2 -0
  297. package/build-module/comment-author-name/edit.js.map +1 -1
  298. package/build-module/comment-author-name/index.js +1 -0
  299. package/build-module/comment-author-name/index.js.map +1 -1
  300. package/build-module/comment-content/index.js +1 -0
  301. package/build-module/comment-content/index.js.map +1 -1
  302. package/build-module/comment-date/edit.js +1 -0
  303. package/build-module/comment-date/edit.js.map +1 -1
  304. package/build-module/comment-date/index.js +1 -0
  305. package/build-module/comment-date/index.js.map +1 -1
  306. package/build-module/comment-edit-link/edit.js +1 -0
  307. package/build-module/comment-edit-link/edit.js.map +1 -1
  308. package/build-module/comment-edit-link/index.js +1 -0
  309. package/build-module/comment-edit-link/index.js.map +1 -1
  310. package/build-module/comment-reply-link/index.js +1 -0
  311. package/build-module/comment-reply-link/index.js.map +1 -1
  312. package/build-module/comment-template/index.js +1 -0
  313. package/build-module/comment-template/index.js.map +1 -1
  314. package/build-module/comments/index.js +2 -1
  315. package/build-module/comments/index.js.map +1 -1
  316. package/build-module/comments-pagination/index.js +1 -0
  317. package/build-module/comments-pagination/index.js.map +1 -1
  318. package/build-module/comments-pagination-next/index.js +1 -0
  319. package/build-module/comments-pagination-next/index.js.map +1 -1
  320. package/build-module/comments-pagination-numbers/index.js +1 -0
  321. package/build-module/comments-pagination-numbers/index.js.map +1 -1
  322. package/build-module/comments-pagination-previous/index.js +1 -0
  323. package/build-module/comments-pagination-previous/index.js.map +1 -1
  324. package/build-module/comments-title/edit.js +2 -0
  325. package/build-module/comments-title/edit.js.map +1 -1
  326. package/build-module/cover/edit/inspector-controls.js +2 -0
  327. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  328. package/build-module/embed/embed-controls.js +1 -0
  329. package/build-module/embed/embed-controls.js.map +1 -1
  330. package/build-module/file/index.js +10 -1
  331. package/build-module/file/index.js.map +1 -1
  332. package/build-module/file/inspector.js +3 -0
  333. package/build-module/file/inspector.js.map +1 -1
  334. package/build-module/freeform/modal.js +1 -1
  335. package/build-module/freeform/modal.js.map +1 -1
  336. package/build-module/gallery/edit.js +2 -0
  337. package/build-module/gallery/edit.js.map +1 -1
  338. package/build-module/gallery/shared.js +4 -7
  339. package/build-module/gallery/shared.js.map +1 -1
  340. package/build-module/gallery/use-image-sizes.js +4 -7
  341. package/build-module/gallery/use-image-sizes.js.map +1 -1
  342. package/build-module/gallery/v1/edit.js +9 -4
  343. package/build-module/gallery/v1/edit.js.map +1 -1
  344. package/build-module/gallery/v1/gallery-image.js +1 -2
  345. package/build-module/gallery/v1/gallery-image.js.map +1 -1
  346. package/build-module/gallery/v1/shared.js +4 -6
  347. package/build-module/gallery/v1/shared.js.map +1 -1
  348. package/build-module/home-link/index.js +1 -0
  349. package/build-module/home-link/index.js.map +1 -1
  350. package/build-module/image/edit.js +7 -5
  351. package/build-module/image/edit.js.map +1 -1
  352. package/build-module/image/image.js +19 -14
  353. package/build-module/image/image.js.map +1 -1
  354. package/build-module/image/utils.js +4 -2
  355. package/build-module/image/utils.js.map +1 -1
  356. package/build-module/index.js +2 -1
  357. package/build-module/index.js.map +1 -1
  358. package/build-module/latest-comments/edit.js +9 -2
  359. package/build-module/latest-comments/edit.js.map +1 -1
  360. package/build-module/latest-comments/index.js +14 -0
  361. package/build-module/latest-comments/index.js.map +1 -1
  362. package/build-module/latest-posts/deprecated.js +1 -0
  363. package/build-module/latest-posts/deprecated.js.map +1 -1
  364. package/build-module/latest-posts/edit.js +4 -0
  365. package/build-module/latest-posts/edit.js.map +1 -1
  366. package/build-module/latest-posts/index.js +1 -0
  367. package/build-module/latest-posts/index.js.map +1 -1
  368. package/build-module/list/ordered-list-settings.js +1 -0
  369. package/build-module/list/ordered-list-settings.js.map +1 -1
  370. package/build-module/list-item/edit.js +2 -2
  371. package/build-module/list-item/edit.js.map +1 -1
  372. package/build-module/list-item/hooks/use-outdent-list-item.js +2 -1
  373. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  374. package/build-module/loginout/edit.js +2 -0
  375. package/build-module/loginout/edit.js.map +1 -1
  376. package/build-module/loginout/index.js +1 -0
  377. package/build-module/loginout/index.js.map +1 -1
  378. package/build-module/media-text/edit.js +2 -0
  379. package/build-module/media-text/edit.js.map +1 -1
  380. package/build-module/more/edit.js +1 -0
  381. package/build-module/more/edit.js.map +1 -1
  382. package/build-module/navigation/edit/index.js +82 -56
  383. package/build-module/navigation/edit/index.js.map +1 -1
  384. package/build-module/navigation/edit/navigation-menu-selector.js +14 -10
  385. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  386. package/build-module/navigation/edit/overlay-menu-preview.js +1 -0
  387. package/build-module/navigation/edit/overlay-menu-preview.js.map +1 -1
  388. package/build-module/navigation/edit/placeholder/index.js +1 -1
  389. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  390. package/build-module/navigation/edit/unsaved-inner-blocks.js +1 -1
  391. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  392. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
  393. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  394. package/build-module/navigation/edit/use-create-navigation-menu.js +1 -1
  395. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
  396. package/build-module/navigation/edit/use-generate-default-navigation-title.js +1 -1
  397. package/build-module/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
  398. package/build-module/navigation/edit/use-navigation-notice.js +5 -8
  399. package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
  400. package/build-module/navigation/index.js +1 -0
  401. package/build-module/navigation/index.js.map +1 -1
  402. package/build-module/navigation/use-navigation-menu.js +1 -1
  403. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  404. package/build-module/navigation-link/edit.js +10 -5
  405. package/build-module/navigation-link/edit.js.map +1 -1
  406. package/build-module/navigation-link/link-ui.js +2 -0
  407. package/build-module/navigation-link/link-ui.js.map +1 -1
  408. package/build-module/page-list/convert-to-links-modal.js +35 -0
  409. package/build-module/page-list/convert-to-links-modal.js.map +1 -0
  410. package/build-module/page-list/edit.js +15 -29
  411. package/build-module/page-list/edit.js.map +1 -1
  412. package/build-module/page-list/index.js +1 -0
  413. package/build-module/page-list/index.js.map +1 -1
  414. package/build-module/page-list/use-convert-to-navigation-links.js +61 -5
  415. package/build-module/page-list/use-convert-to-navigation-links.js.map +1 -1
  416. package/build-module/paragraph/edit.js +1 -0
  417. package/build-module/paragraph/edit.js.map +1 -1
  418. package/build-module/post-author/edit.js +4 -0
  419. package/build-module/post-author/edit.js.map +1 -1
  420. package/build-module/post-author/index.js +1 -0
  421. package/build-module/post-author/index.js.map +1 -1
  422. package/build-module/post-author-biography/index.js +1 -0
  423. package/build-module/post-author-biography/index.js.map +1 -1
  424. package/build-module/post-author-name/edit.js +2 -0
  425. package/build-module/post-author-name/edit.js.map +1 -1
  426. package/build-module/post-author-name/index.js +1 -0
  427. package/build-module/post-author-name/index.js.map +1 -1
  428. package/build-module/post-comments-count/index.js +1 -0
  429. package/build-module/post-comments-count/index.js.map +1 -1
  430. package/build-module/post-comments-form/index.js +1 -0
  431. package/build-module/post-comments-form/index.js.map +1 -1
  432. package/build-module/post-comments-link/index.js +1 -0
  433. package/build-module/post-comments-link/index.js.map +1 -1
  434. package/build-module/post-content/index.js +1 -0
  435. package/build-module/post-content/index.js.map +1 -1
  436. package/build-module/post-date/edit.js +2 -0
  437. package/build-module/post-date/edit.js.map +1 -1
  438. package/build-module/post-date/index.js +1 -0
  439. package/build-module/post-date/index.js.map +1 -1
  440. package/build-module/post-excerpt/edit.js +53 -5
  441. package/build-module/post-excerpt/edit.js.map +1 -1
  442. package/build-module/post-excerpt/index.js +5 -0
  443. package/build-module/post-excerpt/index.js.map +1 -1
  444. package/build-module/post-featured-image/dimension-controls.js +52 -1
  445. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  446. package/build-module/post-featured-image/edit.js +11 -4
  447. package/build-module/post-featured-image/edit.js.map +1 -1
  448. package/build-module/post-featured-image/index.js +4 -0
  449. package/build-module/post-featured-image/index.js.map +1 -1
  450. package/build-module/post-navigation-link/edit.js +2 -0
  451. package/build-module/post-navigation-link/edit.js.map +1 -1
  452. package/build-module/post-navigation-link/index.js +1 -0
  453. package/build-module/post-navigation-link/index.js.map +1 -1
  454. package/build-module/post-template/index.js +1 -0
  455. package/build-module/post-template/index.js.map +1 -1
  456. package/build-module/post-terms/index.js +1 -0
  457. package/build-module/post-terms/index.js.map +1 -1
  458. package/build-module/post-terms/use-post-terms.js +1 -1
  459. package/build-module/post-terms/use-post-terms.js.map +1 -1
  460. package/build-module/post-time-to-read/edit.js +90 -0
  461. package/build-module/post-time-to-read/edit.js.map +1 -0
  462. package/build-module/post-time-to-read/icon.js +15 -0
  463. package/build-module/post-time-to-read/icon.js.map +1 -0
  464. package/build-module/post-time-to-read/index.js +40 -0
  465. package/build-module/post-time-to-read/index.js.map +1 -0
  466. package/build-module/post-title/edit.js +2 -0
  467. package/build-module/post-title/edit.js.map +1 -1
  468. package/build-module/post-title/index.js +1 -0
  469. package/build-module/post-title/index.js.map +1 -1
  470. package/build-module/query/edit/inspector-controls/index.js +1 -0
  471. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  472. package/build-module/query/index.js +1 -0
  473. package/build-module/query/index.js.map +1 -1
  474. package/build-module/query/utils.js +1 -0
  475. package/build-module/query/utils.js.map +1 -1
  476. package/build-module/query-no-results/index.js +1 -0
  477. package/build-module/query-no-results/index.js.map +1 -1
  478. package/build-module/query-pagination/index.js +1 -0
  479. package/build-module/query-pagination/index.js.map +1 -1
  480. package/build-module/query-pagination-next/index.js +1 -0
  481. package/build-module/query-pagination-next/index.js.map +1 -1
  482. package/build-module/query-pagination-numbers/index.js +1 -0
  483. package/build-module/query-pagination-numbers/index.js.map +1 -1
  484. package/build-module/query-pagination-previous/index.js +1 -0
  485. package/build-module/query-pagination-previous/index.js.map +1 -1
  486. package/build-module/query-title/edit.js +2 -0
  487. package/build-module/query-title/edit.js.map +1 -1
  488. package/build-module/query-title/index.js +1 -0
  489. package/build-module/query-title/index.js.map +1 -1
  490. package/build-module/read-more/edit.js +1 -0
  491. package/build-module/read-more/edit.js.map +1 -1
  492. package/build-module/read-more/index.js +1 -0
  493. package/build-module/read-more/index.js.map +1 -1
  494. package/build-module/rss/edit.js +3 -0
  495. package/build-module/rss/edit.js.map +1 -1
  496. package/build-module/rss/index.js +1 -0
  497. package/build-module/rss/index.js.map +1 -1
  498. package/build-module/search/index.js +1 -0
  499. package/build-module/search/index.js.map +1 -1
  500. package/build-module/site-logo/edit.js +10 -11
  501. package/build-module/site-logo/edit.js.map +1 -1
  502. package/build-module/site-logo/index.js +1 -0
  503. package/build-module/site-logo/index.js.map +1 -1
  504. package/build-module/site-tagline/index.js +1 -0
  505. package/build-module/site-tagline/index.js.map +1 -1
  506. package/build-module/site-title/edit/index.js +2 -0
  507. package/build-module/site-title/edit/index.js.map +1 -1
  508. package/build-module/site-title/index.js +1 -0
  509. package/build-module/site-title/index.js.map +1 -1
  510. package/build-module/social-link/index.js +1 -0
  511. package/build-module/social-link/index.js.map +1 -1
  512. package/build-module/social-links/edit.js +2 -0
  513. package/build-module/social-links/edit.js.map +1 -1
  514. package/build-module/spacer/controls.native.js +9 -8
  515. package/build-module/spacer/controls.native.js.map +1 -1
  516. package/build-module/spacer/edit.native.js +39 -7
  517. package/build-module/spacer/edit.native.js.map +1 -1
  518. package/build-module/spacer/save.native.js +22 -0
  519. package/build-module/spacer/save.native.js.map +1 -0
  520. package/build-module/table/edit.js +6 -3
  521. package/build-module/table/edit.js.map +1 -1
  522. package/build-module/table-of-contents/edit.js +1 -0
  523. package/build-module/table-of-contents/edit.js.map +1 -1
  524. package/build-module/table-of-contents/utils.js +1 -1
  525. package/build-module/table-of-contents/utils.js.map +1 -1
  526. package/build-module/tag-cloud/edit.js +1 -0
  527. package/build-module/tag-cloud/edit.js.map +1 -1
  528. package/build-module/tag-cloud/index.js +1 -0
  529. package/build-module/tag-cloud/index.js.map +1 -1
  530. package/build-module/template-part/index.js +1 -0
  531. package/build-module/template-part/index.js.map +1 -1
  532. package/build-module/term-description/index.js +1 -0
  533. package/build-module/term-description/index.js.map +1 -1
  534. package/build-module/verse/index.js +6 -0
  535. package/build-module/verse/index.js.map +1 -1
  536. package/build-module/video/edit-common-settings.js +5 -0
  537. package/build-module/video/edit-common-settings.js.map +1 -1
  538. package/build-style/avatar/style-rtl.css +3 -0
  539. package/build-style/avatar/style.css +3 -0
  540. package/build-style/button/editor-rtl.css +31 -0
  541. package/build-style/button/editor.css +31 -0
  542. package/build-style/button/style-rtl.css +31 -0
  543. package/build-style/button/style.css +31 -0
  544. package/build-style/editor-rtl.css +33 -1
  545. package/build-style/editor.css +33 -1
  546. package/build-style/file/style-rtl.css +1 -0
  547. package/build-style/file/style.css +1 -0
  548. package/build-style/image/editor-rtl.css +1 -0
  549. package/build-style/image/editor.css +1 -0
  550. package/build-style/image/style-rtl.css +6 -2
  551. package/build-style/image/style.css +6 -0
  552. package/build-style/latest-comments/style-rtl.css +18 -5
  553. package/build-style/latest-comments/style.css +18 -5
  554. package/build-style/post-excerpt/editor-rtl.css +1 -1
  555. package/build-style/post-excerpt/editor.css +1 -1
  556. package/build-style/style-rtl.css +59 -7
  557. package/build-style/style.css +59 -5
  558. package/build-types/table-of-contents/utils.d.ts +1 -1
  559. package/package.json +31 -30
  560. package/src/archives/block.json +1 -0
  561. package/src/archives/edit.js +3 -0
  562. package/src/audio/edit.js +2 -0
  563. package/src/audio/test/__snapshots__/edit.native.js.snap +38 -38
  564. package/src/avatar/block.json +1 -0
  565. package/src/avatar/edit.js +2 -4
  566. package/src/avatar/index.php +67 -63
  567. package/src/avatar/style.scss +3 -0
  568. package/src/button/block.json +17 -6
  569. package/src/button/edit.js +2 -1
  570. package/src/button/editor.scss +36 -0
  571. package/src/button/style.scss +37 -1
  572. package/src/buttons/test/__snapshots__/edit.native.js.snap +11 -11
  573. package/src/calendar/block.json +1 -0
  574. package/src/categories/block.json +1 -0
  575. package/src/categories/edit.js +5 -0
  576. package/src/code/test/__snapshots__/edit.native.js.snap +2 -2
  577. package/src/columns/edit.js +1 -0
  578. package/src/columns/test/__snapshots__/edit.native.js.snap +66 -66
  579. package/src/columns/test/utils.js +54 -0
  580. package/src/columns/utils.js +8 -8
  581. package/src/comment-author-avatar/block.json +1 -0
  582. package/src/comment-author-name/block.json +1 -0
  583. package/src/comment-author-name/edit.js +2 -0
  584. package/src/comment-content/block.json +1 -0
  585. package/src/comment-date/block.json +1 -0
  586. package/src/comment-date/edit.js +1 -0
  587. package/src/comment-edit-link/block.json +1 -0
  588. package/src/comment-edit-link/edit.js +1 -0
  589. package/src/comment-reply-link/block.json +1 -0
  590. package/src/comment-template/block.json +1 -0
  591. package/src/comments/block.json +2 -1
  592. package/src/comments-pagination/block.json +1 -0
  593. package/src/comments-pagination-next/block.json +1 -0
  594. package/src/comments-pagination-numbers/block.json +1 -0
  595. package/src/comments-pagination-previous/block.json +1 -0
  596. package/src/comments-title/edit.js +2 -0
  597. package/src/cover/edit/inspector-controls.js +2 -0
  598. package/src/cover/index.php +4 -6
  599. package/src/cover/test/__snapshots__/edit.native.js.snap +36 -36
  600. package/src/embed/embed-controls.js +1 -0
  601. package/src/embed/test/__snapshots__/index.native.js.snap +52 -52
  602. package/src/file/block.json +10 -1
  603. package/src/file/inspector.js +3 -0
  604. package/src/file/style.scss +1 -0
  605. package/src/file/test/__snapshots__/edit.native.js.snap +49 -49
  606. package/src/freeform/modal.js +1 -1
  607. package/src/gallery/edit.js +2 -0
  608. package/src/gallery/shared.js +6 -11
  609. package/src/gallery/test/__snapshots__/index.native.js.snap +71 -71
  610. package/src/gallery/use-image-sizes.js +3 -16
  611. package/src/gallery/v1/edit.js +8 -16
  612. package/src/gallery/v1/gallery-image.js +1 -2
  613. package/src/gallery/v1/shared.js +5 -10
  614. package/src/group/test/__snapshots__/edit.native.js.snap +5 -5
  615. package/src/heading/test/__snapshots__/index.native.js.snap +1 -1
  616. package/src/home-link/block.json +1 -0
  617. package/src/image/edit.js +4 -4
  618. package/src/image/editor.scss +1 -0
  619. package/src/image/image.js +9 -20
  620. package/src/image/index.php +4 -4
  621. package/src/image/style.scss +13 -0
  622. package/src/image/utils.js +2 -2
  623. package/src/index.js +2 -0
  624. package/src/latest-comments/block.json +14 -0
  625. package/src/latest-comments/edit.js +12 -2
  626. package/src/latest-comments/style.scss +25 -7
  627. package/src/latest-posts/block.json +1 -0
  628. package/src/latest-posts/edit.js +4 -0
  629. package/src/list/ordered-list-settings.js +1 -0
  630. package/src/list/test/__snapshots__/edit.native.js.snap +4 -4
  631. package/src/list-item/edit.js +10 -3
  632. package/src/list-item/hooks/use-outdent-list-item.js +2 -1
  633. package/src/loginout/block.json +1 -0
  634. package/src/loginout/edit.js +2 -0
  635. package/src/media-text/edit.js +2 -0
  636. package/src/missing/test/__snapshots__/edit.native.js.snap +1 -1
  637. package/src/more/edit.js +1 -0
  638. package/src/navigation/block.json +1 -0
  639. package/src/navigation/edit/index.js +130 -82
  640. package/src/navigation/edit/navigation-menu-selector.js +12 -26
  641. package/src/navigation/edit/overlay-menu-preview.js +1 -0
  642. package/src/navigation/edit/placeholder/index.js +1 -1
  643. package/src/navigation/edit/test/navigation-menu-selector.js +638 -0
  644. package/src/navigation/edit/unsaved-inner-blocks.js +1 -0
  645. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +51 -48
  646. package/src/navigation/edit/use-create-navigation-menu.js +1 -1
  647. package/src/navigation/edit/use-generate-default-navigation-title.js +1 -1
  648. package/src/navigation/edit/use-navigation-notice.js +16 -13
  649. package/src/navigation/index.php +50 -25
  650. package/src/navigation/use-navigation-menu.js +1 -1
  651. package/src/navigation-link/edit.js +10 -5
  652. package/src/navigation-link/link-ui.js +2 -0
  653. package/src/navigation-link/test/__snapshots__/hooks.js.snap +12 -12
  654. package/src/page-list/block.json +1 -0
  655. package/src/page-list/convert-to-links-modal.js +38 -0
  656. package/src/page-list/edit.js +17 -37
  657. package/src/page-list/index.php +4 -4
  658. package/src/page-list/test/convert-to-links-modal.js +134 -0
  659. package/src/page-list/use-convert-to-navigation-links.js +64 -4
  660. package/src/paragraph/edit.js +1 -0
  661. package/src/post-author/block.json +1 -0
  662. package/src/post-author/edit.js +4 -0
  663. package/src/post-author-biography/block.json +1 -0
  664. package/src/post-author-name/block.json +1 -0
  665. package/src/post-author-name/edit.js +2 -0
  666. package/src/post-comments-count/block.json +1 -0
  667. package/src/post-comments-form/block.json +1 -0
  668. package/src/post-comments-link/block.json +1 -0
  669. package/src/post-content/block.json +1 -0
  670. package/src/post-date/block.json +1 -0
  671. package/src/post-date/edit.js +2 -0
  672. package/src/post-excerpt/block.json +5 -0
  673. package/src/post-excerpt/edit.js +73 -7
  674. package/src/post-excerpt/editor.scss +1 -1
  675. package/src/post-excerpt/index.php +29 -5
  676. package/src/post-featured-image/block.json +4 -0
  677. package/src/post-featured-image/dimension-controls.js +64 -2
  678. package/src/post-featured-image/edit.js +20 -6
  679. package/src/post-featured-image/index.php +25 -9
  680. package/src/post-navigation-link/block.json +1 -0
  681. package/src/post-navigation-link/edit.js +2 -0
  682. package/src/post-template/block.json +1 -0
  683. package/src/post-terms/block.json +1 -0
  684. package/src/post-terms/index.php +1 -0
  685. package/src/post-terms/use-post-terms.js +1 -1
  686. package/src/post-time-to-read/block.json +20 -0
  687. package/src/post-time-to-read/edit.js +101 -0
  688. package/src/post-time-to-read/icon.js +15 -0
  689. package/src/post-time-to-read/index.js +17 -0
  690. package/src/post-time-to-read/index.php +62 -0
  691. package/src/post-title/block.json +1 -0
  692. package/src/post-title/edit.js +2 -0
  693. package/src/post-title/index.php +3 -3
  694. package/src/preformatted/test/__snapshots__/edit.native.js.snap +10 -10
  695. package/src/query/block.json +1 -0
  696. package/src/query/edit/inspector-controls/index.js +1 -0
  697. package/src/query-no-results/block.json +1 -0
  698. package/src/query-pagination/block.json +1 -0
  699. package/src/query-pagination-next/block.json +1 -0
  700. package/src/query-pagination-numbers/block.json +1 -0
  701. package/src/query-pagination-previous/block.json +1 -0
  702. package/src/query-title/block.json +1 -0
  703. package/src/query-title/edit.js +2 -0
  704. package/src/read-more/block.json +1 -0
  705. package/src/read-more/edit.js +1 -0
  706. package/src/rss/block.json +1 -0
  707. package/src/rss/edit.js +3 -0
  708. package/src/search/block.json +1 -0
  709. package/src/search/test/__snapshots__/edit.native.js.snap +60 -60
  710. package/src/separator/test/__snapshots__/edit.native.js.snap +1 -1
  711. package/src/site-logo/block.json +1 -0
  712. package/src/site-logo/edit.js +6 -6
  713. package/src/site-logo/index.php +7 -2
  714. package/src/site-tagline/block.json +1 -0
  715. package/src/site-title/block.json +1 -0
  716. package/src/site-title/edit/index.js +2 -0
  717. package/src/social-link/block.json +1 -0
  718. package/src/social-link/index.php +6 -6
  719. package/src/social-links/edit.js +2 -0
  720. package/src/social-links/test/__snapshots__/edit.native.js.snap +16 -16
  721. package/src/spacer/controls.native.js +13 -5
  722. package/src/spacer/edit.native.js +45 -6
  723. package/src/spacer/save.native.js +18 -0
  724. package/src/spacer/test/__snapshots__/index.native.js.snap +21 -9
  725. package/src/spacer/test/index.native.js +81 -0
  726. package/src/table/edit.js +6 -3
  727. package/src/table-of-contents/edit.js +1 -0
  728. package/src/table-of-contents/utils.ts +1 -1
  729. package/src/tag-cloud/block.json +1 -0
  730. package/src/tag-cloud/edit.js +1 -0
  731. package/src/template-part/block.json +1 -0
  732. package/src/template-part/index.php +7 -6
  733. package/src/term-description/block.json +1 -0
  734. package/src/verse/block.json +6 -0
  735. package/src/verse/test/__snapshots__/edit.native.js.snap +2 -2
  736. package/src/video/edit-common-settings.js +5 -0
  737. package/tsconfig.json +2 -1
  738. package/tsconfig.tsbuildinfo +1 -1
@@ -120,56 +120,59 @@ function useConvertClassicToBlockMenu( clientId ) {
120
120
  return navigationMenu;
121
121
  }
122
122
 
123
- const convert = useCallback( async ( menuId, menuName, postStatus ) => {
124
- // Check whether this classic menu is being imported already.
125
- if ( classicMenuBeingConvertedId === menuId ) {
126
- return;
127
- }
128
-
129
- // Set the ID for the currently importing classic menu.
130
- classicMenuBeingConvertedId = menuId;
131
-
132
- if ( ! menuId || ! menuName ) {
133
- setError( 'Unable to convert menu. Missing menu details.' );
134
- setStatus( CLASSIC_MENU_CONVERSION_ERROR );
135
- return;
136
- }
137
-
138
- setStatus( CLASSIC_MENU_CONVERSION_PENDING );
139
- setError( null );
140
-
141
- return await convertClassicMenuToBlockMenu(
142
- menuId,
143
- menuName,
144
- postStatus
145
- )
146
- .then( ( navigationMenu ) => {
147
- setStatus( CLASSIC_MENU_CONVERSION_SUCCESS );
148
- // Reset the ID for the currently importing classic menu.
149
- classicMenuBeingConvertedId = null;
150
- return navigationMenu;
151
- } )
152
- .catch( ( err ) => {
153
- setError( err?.message );
154
- // Reset the ID for the currently importing classic menu.
123
+ const convert = useCallback(
124
+ async ( menuId, menuName, postStatus ) => {
125
+ // Check whether this classic menu is being imported already.
126
+ if ( classicMenuBeingConvertedId === menuId ) {
127
+ return;
128
+ }
129
+
130
+ // Set the ID for the currently importing classic menu.
131
+ classicMenuBeingConvertedId = menuId;
132
+
133
+ if ( ! menuId || ! menuName ) {
134
+ setError( 'Unable to convert menu. Missing menu details.' );
155
135
  setStatus( CLASSIC_MENU_CONVERSION_ERROR );
136
+ return;
137
+ }
156
138
 
157
- // Reset the ID for the currently importing classic menu.
158
- classicMenuBeingConvertedId = null;
159
-
160
- // 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
- );
171
- } );
172
- }, [] );
139
+ setStatus( CLASSIC_MENU_CONVERSION_PENDING );
140
+ setError( null );
141
+
142
+ return await convertClassicMenuToBlockMenu(
143
+ menuId,
144
+ menuName,
145
+ postStatus
146
+ )
147
+ .then( ( navigationMenu ) => {
148
+ setStatus( CLASSIC_MENU_CONVERSION_SUCCESS );
149
+ // Reset the ID for the currently importing classic menu.
150
+ classicMenuBeingConvertedId = null;
151
+ return navigationMenu;
152
+ } )
153
+ .catch( ( err ) => {
154
+ setError( err?.message );
155
+ // Reset the ID for the currently importing classic menu.
156
+ setStatus( CLASSIC_MENU_CONVERSION_ERROR );
157
+
158
+ // Reset the ID for the currently importing classic menu.
159
+ classicMenuBeingConvertedId = null;
160
+
161
+ // Rethrow error for debugging.
162
+ throw new Error(
163
+ sprintf(
164
+ // translators: %s: the name of a menu (e.g. Header navigation).
165
+ __( `Unable to create Navigation Menu "%s".` ),
166
+ menuName
167
+ ),
168
+ {
169
+ cause: err,
170
+ }
171
+ );
172
+ } );
173
+ },
174
+ [ convertClassicMenuToBlockMenu ]
175
+ );
173
176
 
174
177
  return {
175
178
  convert,
@@ -90,7 +90,7 @@ export default function useCreateNavigationMenu( clientId ) {
90
90
  } );
91
91
  } );
92
92
  },
93
- [ serialize, saveEntityRecord ]
93
+ [ serialize, saveEntityRecord, editEntityRecord, generateDefaultTitle ]
94
94
  );
95
95
 
96
96
  return {
@@ -75,5 +75,5 @@ export default function useGenerateDefaultNavigationTitle( clientId ) {
75
75
  : title;
76
76
 
77
77
  return titleWithCount || '';
78
- }, [ isDisabled, area ] );
78
+ }, [ isDisabled, area, registry ] );
79
79
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useRef } from '@wordpress/element';
4
+ import { useCallback, useRef } from '@wordpress/element';
5
5
  import { useDispatch } from '@wordpress/data';
6
6
  import { store as noticeStore } from '@wordpress/notices';
7
7
 
@@ -10,26 +10,29 @@ function useNavigationNotice( { name, message = '' } = {} ) {
10
10
 
11
11
  const { createWarningNotice, removeNotice } = useDispatch( noticeStore );
12
12
 
13
- const showNotice = ( customMsg ) => {
14
- if ( noticeRef.current ) {
15
- return;
16
- }
13
+ const showNotice = useCallback(
14
+ ( customMsg ) => {
15
+ if ( noticeRef.current ) {
16
+ return;
17
+ }
17
18
 
18
- noticeRef.current = name;
19
+ noticeRef.current = name;
19
20
 
20
- createWarningNotice( customMsg || message, {
21
- id: noticeRef.current,
22
- type: 'snackbar',
23
- } );
24
- };
21
+ createWarningNotice( customMsg || message, {
22
+ id: noticeRef.current,
23
+ type: 'snackbar',
24
+ } );
25
+ },
26
+ [ noticeRef, createWarningNotice ]
27
+ );
25
28
 
26
- const hideNotice = () => {
29
+ const hideNotice = useCallback( () => {
27
30
  if ( ! noticeRef.current ) {
28
31
  return;
29
32
  }
30
33
  removeNotice( noticeRef.current );
31
34
  noticeRef.current = null;
32
- };
35
+ }, [ noticeRef, removeNotice ] );
33
36
 
34
37
  return [ showNotice, hideNotice ];
35
38
  }
@@ -373,12 +373,14 @@ function block_core_navigation_get_most_recently_published_navigation() {
373
373
 
374
374
  // Default to the most recently created menu.
375
375
  $parsed_args = array(
376
- 'post_type' => 'wp_navigation',
377
- 'no_found_rows' => true,
378
- 'order' => 'DESC',
379
- 'orderby' => 'date',
380
- 'post_status' => 'publish',
381
- 'posts_per_page' => 1, // get only the most recent.
376
+ 'post_type' => 'wp_navigation',
377
+ 'no_found_rows' => true,
378
+ 'update_post_meta_cache' => false,
379
+ 'update_post_term_cache' => false,
380
+ 'order' => 'DESC',
381
+ 'orderby' => 'date',
382
+ 'post_status' => 'publish',
383
+ 'posts_per_page' => 1, // get only the most recent.
382
384
  );
383
385
 
384
386
  $navigation_post = new WP_Query( $parsed_args );
@@ -429,6 +431,37 @@ function block_core_navigation_block_contains_core_navigation( $inner_blocks ) {
429
431
  return false;
430
432
  }
431
433
 
434
+ /**
435
+ * Create and returns a navigation menu containing a page-list as a fallback.
436
+ *
437
+ * @return array the newly created navigation menu.
438
+ */
439
+ function block_core_navigation_get_default_pages_fallback() {
440
+ $registry = WP_Block_Type_Registry::get_instance();
441
+
442
+ // If `core/page-list` is not registered then use empty blocks.
443
+ $default_blocks = $registry->is_registered( 'core/page-list' ) ? '<!-- wp:page-list /-->' : '';
444
+
445
+ // Create a new navigation menu from the fallback blocks.
446
+ $wp_insert_post_result = wp_insert_post(
447
+ array(
448
+ 'post_content' => $default_blocks,
449
+ 'post_title' => 'Navigation', // TODO - use the template slug in future.
450
+ 'post_name' => 'Navigation', // TODO - use the template slug in future.
451
+ 'post_status' => 'publish',
452
+ 'post_type' => 'wp_navigation',
453
+ ),
454
+ true // So that we can check whether the result is an error.
455
+ );
456
+
457
+ if ( is_wp_error( $wp_insert_post_result ) ) {
458
+ return;
459
+ }
460
+
461
+ // Fetch the most recently published navigation which will be the default one created above.
462
+ return block_core_navigation_get_most_recently_published_navigation();
463
+ }
464
+
432
465
  /**
433
466
  * Retrieves the appropriate fallback to be used on the front of the
434
467
  * site when there is no menu assigned to the Nav block.
@@ -439,19 +472,7 @@ function block_core_navigation_block_contains_core_navigation( $inner_blocks ) {
439
472
  * @return array the array of blocks to be used as a fallback.
440
473
  */
441
474
  function block_core_navigation_get_fallback_blocks() {
442
- $page_list_fallback = array(
443
- array(
444
- 'blockName' => 'core/page-list',
445
- ),
446
- );
447
-
448
- $registry = WP_Block_Type_Registry::get_instance();
449
-
450
- // If `core/page-list` is not registered then return empty blocks.
451
- $fallback_blocks = $registry->is_registered( 'core/page-list' ) ? $page_list_fallback : array();
452
-
453
- // Default to a list of Pages.
454
-
475
+ // Get the most recently published Navigation post.
455
476
  $navigation_post = block_core_navigation_get_most_recently_published_navigation();
456
477
 
457
478
  // If there are no navigation posts then try to find a classic menu
@@ -460,16 +481,21 @@ function block_core_navigation_get_fallback_blocks() {
460
481
  $navigation_post = block_core_navigation_maybe_use_classic_menu_fallback();
461
482
  }
462
483
 
463
- // Use the first non-empty Navigation as fallback if available.
484
+ // If there are no navigation posts then default to a list of Pages.
485
+ if ( ! $navigation_post ) {
486
+ $navigation_post = block_core_navigation_get_default_pages_fallback();
487
+ }
488
+
489
+ // Use the first non-empty Navigation as fallback, there should always be one.
464
490
  if ( $navigation_post ) {
465
491
  $parsed_blocks = parse_blocks( $navigation_post->post_content );
466
492
  $maybe_fallback = block_core_navigation_filter_out_empty_blocks( $parsed_blocks );
467
-
468
- // Normalizing blocks may result in an empty array of blocks if they were all `null` blocks.
469
- // In this case default to the (Page List) fallback.
470
- $fallback_blocks = ! empty( $maybe_fallback ) ? $maybe_fallback : $fallback_blocks;
471
493
  }
472
494
 
495
+ // Normalizing blocks may result in an empty array of blocks if they were all `null` blocks.
496
+ // In this case default empty blocks.
497
+ $fallback_blocks = ! empty( $maybe_fallback ) ? $maybe_fallback : array();
498
+
473
499
  /**
474
500
  * Filters the fallback experience for the Navigation block.
475
501
  *
@@ -529,7 +555,6 @@ function block_core_navigation_from_block_get_post_ids( $block ) {
529
555
  * @return string Returns the post content with the legacy widget added.
530
556
  */
531
557
  function render_block_core_navigation( $attributes, $content, $block ) {
532
-
533
558
  static $seen_menu_names = array();
534
559
 
535
560
  // Flag used to indicate whether the rendered output is considered to be
@@ -24,7 +24,7 @@ export default function useNavigationMenu( ref ) {
24
24
  navigationMenus,
25
25
  isResolvingNavigationMenus,
26
26
  hasResolvedNavigationMenus,
27
- } = selectNavigationMenus( select, ref );
27
+ } = selectNavigationMenus( select );
28
28
 
29
29
  const {
30
30
  navigationMenu,
@@ -315,12 +315,17 @@ export default function NavigationLinkEdit( {
315
315
  */
316
316
  function removeLink() {
317
317
  // Reset all attributes that comprise the link.
318
+ // It is critical that all attributes are reset
319
+ // to their default values otherwise this may
320
+ // in advertently trigger side effects because
321
+ // the values will have "changed".
318
322
  setAttributes( {
319
- url: '',
320
- label: '',
321
- id: '',
322
- kind: '',
323
- type: '',
323
+ url: undefined,
324
+ label: undefined,
325
+ id: undefined,
326
+ kind: undefined,
327
+ type: undefined,
328
+ opensInNewTab: false,
324
329
  } );
325
330
 
326
331
  // Close the link editing UI.
@@ -165,6 +165,7 @@ export function LinkUI( props ) {
165
165
  placement="bottom"
166
166
  onClose={ props.onClose }
167
167
  anchor={ props.anchor }
168
+ __unstableSlotName={ '__unstable-block-tools-after' }
168
169
  shift
169
170
  >
170
171
  <LinkControl
@@ -198,6 +199,7 @@ export function LinkUI( props ) {
198
199
  suggestionsQuery={ getSuggestionsQuery( type, kind ) }
199
200
  onChange={ props.onChange }
200
201
  onRemove={ props.onRemove }
202
+ onCancel={ props.onCancel }
201
203
  renderControlBottom={
202
204
  ! url
203
205
  ? () => (
@@ -1,12 +1,12 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`hooks enhanceNavigationLinkVariations enhances variations with icon and isActive functions 1`] = `
4
- Object {
4
+ {
5
5
  "extraProp": "extraProp",
6
6
  "name": "core/navigation-link",
7
- "variations": Array [
8
- Object {
9
- "attributes": Object {},
7
+ "variations": [
8
+ {
9
+ "attributes": {},
10
10
  "description": "A link to a custom URL.",
11
11
  "icon": <SVG
12
12
  viewBox="0 0 24 24"
@@ -20,8 +20,8 @@ Object {
20
20
  "name": "link",
21
21
  "title": "Custom Link",
22
22
  },
23
- Object {
24
- "attributes": Object {
23
+ {
24
+ "attributes": {
25
25
  "type": "post",
26
26
  },
27
27
  "description": "A link to a post.",
@@ -37,8 +37,8 @@ Object {
37
37
  "name": "post",
38
38
  "title": "Post Link",
39
39
  },
40
- Object {
41
- "attributes": Object {
40
+ {
41
+ "attributes": {
42
42
  "type": "page",
43
43
  },
44
44
  "description": "A link to a page.",
@@ -54,8 +54,8 @@ Object {
54
54
  "name": "page",
55
55
  "title": "Page Link",
56
56
  },
57
- Object {
58
- "attributes": Object {
57
+ {
58
+ "attributes": {
59
59
  "type": "category",
60
60
  },
61
61
  "description": "A link to a category.",
@@ -73,8 +73,8 @@ Object {
73
73
  "name": "category",
74
74
  "title": "Category Link",
75
75
  },
76
- Object {
77
- "attributes": Object {
76
+ {
77
+ "attributes": {
78
78
  "type": "tag",
79
79
  },
80
80
  "description": "A link to a tag.",
@@ -33,6 +33,7 @@
33
33
  "openSubmenusOnClick"
34
34
  ],
35
35
  "supports": {
36
+ "anchor": true,
36
37
  "reusable": false,
37
38
  "html": false,
38
39
  "typography": {
@@ -0,0 +1,38 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { Button, Modal } from '@wordpress/components';
5
+ import { __ } from '@wordpress/i18n';
6
+
7
+ export const convertDescription = __(
8
+ 'This menu is automatically kept in sync with pages on your site. You can manage the menu yourself by clicking "Edit" below.'
9
+ );
10
+
11
+ export function ConvertToLinksModal( { onClick, onClose, disabled } ) {
12
+ return (
13
+ <Modal
14
+ onRequestClose={ onClose }
15
+ title={ __( 'Edit this menu' ) }
16
+ className={ 'wp-block-page-list-modal' }
17
+ aria={ {
18
+ describedby: 'wp-block-page-list-modal__description',
19
+ } }
20
+ >
21
+ <p id={ 'wp-block-page-list-modal__description' }>
22
+ { convertDescription }
23
+ </p>
24
+ <div className="wp-block-page-list-modal-buttons">
25
+ <Button variant="tertiary" onClick={ onClose }>
26
+ { __( 'Cancel' ) }
27
+ </Button>
28
+ <Button
29
+ variant="primary"
30
+ disabled={ disabled }
31
+ onClick={ onClick }
32
+ >
33
+ { __( 'Edit' ) }
34
+ </Button>
35
+ </div>
36
+ </Modal>
37
+ );
38
+ }
@@ -23,7 +23,6 @@ import {
23
23
  Notice,
24
24
  ComboboxControl,
25
25
  Button,
26
- Modal,
27
26
  } from '@wordpress/components';
28
27
  import { __, sprintf } from '@wordpress/i18n';
29
28
  import { useMemo, useState, useEffect } from '@wordpress/element';
@@ -34,16 +33,15 @@ import { useSelect } from '@wordpress/data';
34
33
  * Internal dependencies
35
34
  */
36
35
  import { useConvertToNavigationLinks } from './use-convert-to-navigation-links';
36
+ import {
37
+ convertDescription,
38
+ ConvertToLinksModal,
39
+ } from './convert-to-links-modal';
37
40
 
38
41
  // We only show the edit option when page count is <= MAX_PAGE_COUNT
39
42
  // Performance of Navigation Links is not good past this value.
40
43
  const MAX_PAGE_COUNT = 100;
41
44
  const NOOP = () => {};
42
-
43
- const convertDescription = __(
44
- 'This menu is automatically kept in sync with pages on your site. You can manage the menu yourself by clicking "Edit" below.'
45
- );
46
-
47
45
  function BlockContent( {
48
46
  blockProps,
49
47
  innerBlocksProps,
@@ -113,7 +111,7 @@ function BlockContent( {
113
111
  }
114
112
  }
115
113
 
116
- function ConvertToLinksModal( { onClick, disabled } ) {
114
+ function ConvertToLinks( { onClick, disabled } ) {
117
115
  const [ isOpen, setOpen ] = useState( false );
118
116
  const openModal = () => setOpen( true );
119
117
  const closeModal = () => setOpen( false );
@@ -126,30 +124,11 @@ function ConvertToLinksModal( { onClick, disabled } ) {
126
124
  </ToolbarButton>
127
125
  </BlockControls>
128
126
  { isOpen && (
129
- <Modal
130
- onRequestClose={ closeModal }
131
- title={ __( 'Edit this menu' ) }
132
- className={ 'wp-block-page-list-modal' }
133
- aria={ {
134
- describedby: 'wp-block-page-list-modal__description',
135
- } }
136
- >
137
- <p id={ 'wp-block-page-list-modal__description' }>
138
- { convertDescription }
139
- </p>
140
- <div className="wp-block-page-list-modal-buttons">
141
- <Button variant="tertiary" onClick={ closeModal }>
142
- { __( 'Cancel' ) }
143
- </Button>
144
- <Button
145
- variant="primary"
146
- disabled={ disabled }
147
- onClick={ onClick }
148
- >
149
- { __( 'Edit' ) }
150
- </Button>
151
- </div>
152
- </Modal>
127
+ <ConvertToLinksModal
128
+ onClick={ onClick }
129
+ onClose={ closeModal }
130
+ disabled={ disabled }
131
+ />
153
132
  ) }
154
133
  </>
155
134
  );
@@ -182,11 +161,6 @@ export default function PageListEdit( {
182
161
  pages?.length > 0 &&
183
162
  pages?.length <= MAX_PAGE_COUNT;
184
163
 
185
- const convertToNavigationLinks = useConvertToNavigationLinks( {
186
- clientId,
187
- pages,
188
- } );
189
-
190
164
  const pagesByParentId = useMemo( () => {
191
165
  if ( pages === null ) {
192
166
  return new Map();
@@ -213,6 +187,12 @@ export default function PageListEdit( {
213
187
  }, new Map() );
214
188
  }, [ pages ] );
215
189
 
190
+ const convertToNavigationLinks = useConvertToNavigationLinks( {
191
+ clientId,
192
+ pages,
193
+ parentPageID,
194
+ } );
195
+
216
196
  const blockProps = useBlockProps( {
217
197
  className: classnames( 'wp-block-page-list', {
218
198
  'has-text-color': !! context.textColor,
@@ -343,7 +323,7 @@ export default function PageListEdit( {
343
323
  ) }
344
324
  </InspectorControls>
345
325
  { allowConvertToLinks && (
346
- <ConvertToLinksModal
326
+ <ConvertToLinks
347
327
  disabled={ ! hasResolvedPages }
348
328
  onClick={ convertToNavigationLinks }
349
329
  />
@@ -150,7 +150,8 @@ function block_core_page_list_render_nested_page_list( $open_submenus_on_click,
150
150
  if ( empty( $nested_pages ) ) {
151
151
  return;
152
152
  }
153
- $markup = '';
153
+ $front_page_id = (int) get_option( 'page_on_front' );
154
+ $markup = '';
154
155
  foreach ( (array) $nested_pages as $page ) {
155
156
  $css_class = $page['is_active'] ? ' current-menu-item' : '';
156
157
  $aria_current = $page['is_active'] ? ' aria-current="page"' : '';
@@ -181,7 +182,6 @@ function block_core_page_list_render_nested_page_list( $open_submenus_on_click,
181
182
  }
182
183
  }
183
184
 
184
- $front_page_id = (int) get_option( 'page_on_front' );
185
185
  if ( (int) $page['page_id'] === $front_page_id ) {
186
186
  $css_class .= ' menu-item-home';
187
187
  }
@@ -282,14 +282,14 @@ function render_block_core_page_list( $attributes, $content, $block ) {
282
282
  $pages_with_children[ $page->post_parent ][ $page->ID ] = array(
283
283
  'page_id' => $page->ID,
284
284
  'title' => $page->post_title,
285
- 'link' => get_permalink( $page->ID ),
285
+ 'link' => get_permalink( $page ),
286
286
  'is_active' => $is_active,
287
287
  );
288
288
  } else {
289
289
  $top_level_pages[ $page->ID ] = array(
290
290
  'page_id' => $page->ID,
291
291
  'title' => $page->post_title,
292
- 'link' => get_permalink( $page->ID ),
292
+ 'link' => get_permalink( $page ),
293
293
  'is_active' => $is_active,
294
294
  );
295
295