@wordpress/block-library 6.0.17-next.33ec3857e2.0 → 6.0.17

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 (763) hide show
  1. package/CHANGELOG.md +0 -4
  2. package/build/archives/index.js +0 -1
  3. package/build/archives/index.js.map +1 -1
  4. package/build/audio/index.js +0 -1
  5. package/build/audio/index.js.map +1 -1
  6. package/build/block/index.js +0 -1
  7. package/build/block/index.js.map +1 -1
  8. package/build/button/edit.native.js +1 -1
  9. package/build/button/edit.native.js.map +1 -1
  10. package/build/button/index.js +1 -5
  11. package/build/button/index.js.map +1 -1
  12. package/build/buttons/index.js +0 -1
  13. package/build/buttons/index.js.map +1 -1
  14. package/build/buttons/transforms.js +0 -1
  15. package/build/buttons/transforms.js.map +1 -1
  16. package/build/calendar/index.js +0 -1
  17. package/build/calendar/index.js.map +1 -1
  18. package/build/categories/index.js +0 -1
  19. package/build/categories/index.js.map +1 -1
  20. package/build/code/index.js +1 -6
  21. package/build/code/index.js.map +1 -1
  22. package/build/column/index.js +0 -1
  23. package/build/column/index.js.map +1 -1
  24. package/build/columns/index.js +0 -1
  25. package/build/columns/index.js.map +1 -1
  26. package/build/comment-author-avatar/edit.js +1 -2
  27. package/build/comment-author-avatar/edit.js.map +1 -1
  28. package/build/comment-author-avatar/index.js +2 -7
  29. package/build/comment-author-avatar/index.js.map +1 -1
  30. package/build/comment-author-name/index.js +0 -1
  31. package/build/comment-author-name/index.js.map +1 -1
  32. package/build/comment-content/index.js +0 -1
  33. package/build/comment-content/index.js.map +1 -1
  34. package/build/comment-date/index.js +0 -1
  35. package/build/comment-date/index.js.map +1 -1
  36. package/build/comment-edit-link/index.js +1 -2
  37. package/build/comment-edit-link/index.js.map +1 -1
  38. package/build/comment-reply-link/index.js +0 -1
  39. package/build/comment-reply-link/index.js.map +1 -1
  40. package/build/comment-template/edit.js +23 -98
  41. package/build/comment-template/edit.js.map +1 -1
  42. package/build/comment-template/index.js +2 -4
  43. package/build/comment-template/index.js.map +1 -1
  44. package/build/comments-query-loop/edit.js +2 -2
  45. package/build/comments-query-loop/edit.js.map +1 -1
  46. package/build/comments-query-loop/index.js +7 -4
  47. package/build/comments-query-loop/index.js.map +1 -1
  48. package/build/comments-query-loop/toolbar.js +3 -3
  49. package/build/comments-query-loop/toolbar.js.map +1 -1
  50. package/build/cover/edit.js +1 -2
  51. package/build/cover/edit.js.map +1 -1
  52. package/build/cover/index.js +0 -1
  53. package/build/cover/index.js.map +1 -1
  54. package/build/embed/deprecated.js +0 -1
  55. package/build/embed/deprecated.js.map +1 -1
  56. package/build/embed/edit.native.js +20 -23
  57. package/build/embed/edit.native.js.map +1 -1
  58. package/build/embed/embed-bottom-sheet.native.js +85 -0
  59. package/build/embed/embed-bottom-sheet.native.js.map +1 -0
  60. package/build/embed/embed-placeholder.native.js +2 -9
  61. package/build/embed/embed-placeholder.native.js.map +1 -1
  62. package/build/embed/index.js +0 -1
  63. package/build/embed/index.js.map +1 -1
  64. package/build/embed/transforms.js +0 -1
  65. package/build/embed/transforms.js.map +1 -1
  66. package/build/embed/util.js +0 -1
  67. package/build/embed/util.js.map +1 -1
  68. package/build/file/index.js +0 -1
  69. package/build/file/index.js.map +1 -1
  70. package/build/freeform/index.js +0 -1
  71. package/build/freeform/index.js.map +1 -1
  72. package/build/gallery/edit.js +1 -5
  73. package/build/gallery/edit.js.map +1 -1
  74. package/build/gallery/index.js +0 -1
  75. package/build/gallery/index.js.map +1 -1
  76. package/build/group/edit.native.js +1 -1
  77. package/build/group/edit.native.js.map +1 -1
  78. package/build/group/index.js +4 -9
  79. package/build/group/index.js.map +1 -1
  80. package/build/heading/index.js +0 -1
  81. package/build/heading/index.js.map +1 -1
  82. package/build/heading/transforms.js +0 -1
  83. package/build/heading/transforms.js.map +1 -1
  84. package/build/home-link/index.js +0 -1
  85. package/build/home-link/index.js.map +1 -1
  86. package/build/html/index.js +0 -1
  87. package/build/html/index.js.map +1 -1
  88. package/build/image/edit.js +5 -56
  89. package/build/image/edit.js.map +1 -1
  90. package/build/image/edit.native.js +1 -1
  91. package/build/image/edit.native.js.map +1 -1
  92. package/build/image/image.js +4 -15
  93. package/build/image/image.js.map +1 -1
  94. package/build/image/index.js +1 -5
  95. package/build/image/index.js.map +1 -1
  96. package/build/index.js +1 -5
  97. package/build/index.js.map +1 -1
  98. package/build/latest-comments/index.js +0 -1
  99. package/build/latest-comments/index.js.map +1 -1
  100. package/build/latest-posts/deprecated.js +0 -1
  101. package/build/latest-posts/deprecated.js.map +1 -1
  102. package/build/latest-posts/index.js +0 -1
  103. package/build/latest-posts/index.js.map +1 -1
  104. package/build/list/index.js +0 -1
  105. package/build/list/index.js.map +1 -1
  106. package/build/loginout/index.js +0 -1
  107. package/build/loginout/index.js.map +1 -1
  108. package/build/media-text/index.js +0 -1
  109. package/build/media-text/index.js.map +1 -1
  110. package/build/missing/index.js +0 -1
  111. package/build/missing/index.js.map +1 -1
  112. package/build/more/index.js +0 -1
  113. package/build/more/index.js.map +1 -1
  114. package/build/navigation/deprecated.js +1 -3
  115. package/build/navigation/deprecated.js.map +1 -1
  116. package/build/navigation/edit/index.js +106 -59
  117. package/build/navigation/edit/index.js.map +1 -1
  118. package/build/navigation/edit/navigation-menu-selector.js +3 -2
  119. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  120. package/build/navigation/edit/placeholder/index.js +15 -7
  121. package/build/navigation/edit/placeholder/index.js.map +1 -1
  122. package/build/navigation/edit/responsive-wrapper.js +9 -7
  123. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  124. package/build/navigation/edit/unsaved-inner-blocks.js +3 -11
  125. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  126. package/build/navigation/edit/use-navigation-notice.js +54 -0
  127. package/build/navigation/edit/use-navigation-notice.js.map +1 -0
  128. package/build/navigation/index.js +1 -3
  129. package/build/navigation/index.js.map +1 -1
  130. package/build/navigation/menu-items-to-blocks.js +1 -4
  131. package/build/navigation/menu-items-to-blocks.js.map +1 -1
  132. package/build/navigation/use-navigation-menu.js +9 -2
  133. package/build/navigation/use-navigation-menu.js.map +1 -1
  134. package/build/navigation/view.js +12 -7
  135. package/build/navigation/view.js.map +1 -1
  136. package/build/navigation-area/edit.js +1 -2
  137. package/build/navigation-area/edit.js.map +1 -1
  138. package/build/navigation-area/index.js +1 -2
  139. package/build/navigation-area/index.js.map +1 -1
  140. package/build/navigation-link/edit.js +0 -7
  141. package/build/navigation-link/edit.js.map +1 -1
  142. package/build/navigation-link/index.js +0 -1
  143. package/build/navigation-link/index.js.map +1 -1
  144. package/build/navigation-submenu/edit.js +0 -1
  145. package/build/navigation-submenu/edit.js.map +1 -1
  146. package/build/navigation-submenu/index.js +0 -1
  147. package/build/navigation-submenu/index.js.map +1 -1
  148. package/build/nextpage/index.js +0 -1
  149. package/build/nextpage/index.js.map +1 -1
  150. package/build/page-list/index.js +1 -6
  151. package/build/page-list/index.js.map +1 -1
  152. package/build/paragraph/edit.js +2 -12
  153. package/build/paragraph/edit.js.map +1 -1
  154. package/build/paragraph/index.js +0 -1
  155. package/build/paragraph/index.js.map +1 -1
  156. package/build/paragraph/transforms.js +0 -1
  157. package/build/paragraph/transforms.js.map +1 -1
  158. package/build/pattern/index.js +0 -1
  159. package/build/pattern/index.js.map +1 -1
  160. package/build/post-author/index.js +0 -1
  161. package/build/post-author/index.js.map +1 -1
  162. package/build/post-comment/index.js +0 -1
  163. package/build/post-comment/index.js.map +1 -1
  164. package/build/post-comments/index.js +0 -1
  165. package/build/post-comments/index.js.map +1 -1
  166. package/build/post-comments-count/index.js +0 -1
  167. package/build/post-comments-count/index.js.map +1 -1
  168. package/build/post-comments-form/index.js +0 -1
  169. package/build/post-comments-form/index.js.map +1 -1
  170. package/build/post-comments-link/index.js +0 -1
  171. package/build/post-comments-link/index.js.map +1 -1
  172. package/build/post-content/index.js +0 -1
  173. package/build/post-content/index.js.map +1 -1
  174. package/build/post-date/index.js +0 -1
  175. package/build/post-date/index.js.map +1 -1
  176. package/build/post-excerpt/index.js +0 -1
  177. package/build/post-excerpt/index.js.map +1 -1
  178. package/build/post-featured-image/dimension-controls.js +30 -50
  179. package/build/post-featured-image/dimension-controls.js.map +1 -1
  180. package/build/post-featured-image/edit.js +3 -7
  181. package/build/post-featured-image/edit.js.map +1 -1
  182. package/build/post-featured-image/index.js +0 -1
  183. package/build/post-featured-image/index.js.map +1 -1
  184. package/build/post-navigation-link/index.js +0 -1
  185. package/build/post-navigation-link/index.js.map +1 -1
  186. package/build/post-template/index.js +0 -1
  187. package/build/post-template/index.js.map +1 -1
  188. package/build/post-terms/index.js +0 -1
  189. package/build/post-terms/index.js.map +1 -1
  190. package/build/post-title/index.js +0 -1
  191. package/build/post-title/index.js.map +1 -1
  192. package/build/preformatted/edit.native.js +1 -2
  193. package/build/preformatted/edit.native.js.map +1 -1
  194. package/build/preformatted/index.js +0 -1
  195. package/build/preformatted/index.js.map +1 -1
  196. package/build/pullquote/index.js +1 -8
  197. package/build/pullquote/index.js.map +1 -1
  198. package/build/query/index.js +0 -1
  199. package/build/query/index.js.map +1 -1
  200. package/build/query-pagination/index.js +0 -1
  201. package/build/query-pagination/index.js.map +1 -1
  202. package/build/query-pagination-next/index.js +0 -1
  203. package/build/query-pagination-next/index.js.map +1 -1
  204. package/build/query-pagination-numbers/index.js +0 -1
  205. package/build/query-pagination-numbers/index.js.map +1 -1
  206. package/build/query-pagination-previous/index.js +0 -1
  207. package/build/query-pagination-previous/index.js.map +1 -1
  208. package/build/query-title/index.js +0 -1
  209. package/build/query-title/index.js.map +1 -1
  210. package/build/quote/index.js +0 -1
  211. package/build/quote/index.js.map +1 -1
  212. package/build/rss/index.js +0 -1
  213. package/build/rss/index.js.map +1 -1
  214. package/build/search/edit.js +3 -5
  215. package/build/search/edit.js.map +1 -1
  216. package/build/search/index.js +1 -8
  217. package/build/search/index.js.map +1 -1
  218. package/build/separator/index.js +0 -1
  219. package/build/separator/index.js.map +1 -1
  220. package/build/shortcode/index.js +0 -1
  221. package/build/shortcode/index.js.map +1 -1
  222. package/build/site-logo/edit.js +9 -6
  223. package/build/site-logo/edit.js.map +1 -1
  224. package/build/site-logo/index.js +0 -4
  225. package/build/site-logo/index.js.map +1 -1
  226. package/build/site-tagline/index.js +1 -2
  227. package/build/site-tagline/index.js.map +1 -1
  228. package/build/site-title/index.js +0 -1
  229. package/build/site-title/index.js.map +1 -1
  230. package/build/social-link/index.js +1 -2
  231. package/build/social-link/index.js.map +1 -1
  232. package/build/social-links/index.js +1 -2
  233. package/build/social-links/index.js.map +1 -1
  234. package/build/spacer/index.js +0 -1
  235. package/build/spacer/index.js.map +1 -1
  236. package/build/table/index.js +1 -7
  237. package/build/table/index.js.map +1 -1
  238. package/build/table-of-contents/index.js +0 -1
  239. package/build/table-of-contents/index.js.map +1 -1
  240. package/build/tag-cloud/index.js +0 -1
  241. package/build/tag-cloud/index.js.map +1 -1
  242. package/build/template-part/index.js +9 -26
  243. package/build/template-part/index.js.map +1 -1
  244. package/build/term-description/index.js +0 -1
  245. package/build/term-description/index.js.map +1 -1
  246. package/build/text-columns/index.js +0 -1
  247. package/build/text-columns/index.js.map +1 -1
  248. package/build/verse/index.js +0 -1
  249. package/build/verse/index.js.map +1 -1
  250. package/build/video/index.js +0 -1
  251. package/build/video/index.js.map +1 -1
  252. package/build-module/archives/index.js +0 -1
  253. package/build-module/archives/index.js.map +1 -1
  254. package/build-module/audio/index.js +0 -1
  255. package/build-module/audio/index.js.map +1 -1
  256. package/build-module/block/index.js +0 -1
  257. package/build-module/block/index.js.map +1 -1
  258. package/build-module/button/edit.native.js +1 -1
  259. package/build-module/button/edit.native.js.map +1 -1
  260. package/build-module/button/index.js +1 -5
  261. package/build-module/button/index.js.map +1 -1
  262. package/build-module/buttons/index.js +0 -1
  263. package/build-module/buttons/index.js.map +1 -1
  264. package/build-module/buttons/transforms.js +0 -1
  265. package/build-module/buttons/transforms.js.map +1 -1
  266. package/build-module/calendar/index.js +0 -1
  267. package/build-module/calendar/index.js.map +1 -1
  268. package/build-module/categories/index.js +0 -1
  269. package/build-module/categories/index.js.map +1 -1
  270. package/build-module/code/index.js +1 -6
  271. package/build-module/code/index.js.map +1 -1
  272. package/build-module/column/index.js +0 -1
  273. package/build-module/column/index.js.map +1 -1
  274. package/build-module/columns/index.js +0 -1
  275. package/build-module/columns/index.js.map +1 -1
  276. package/build-module/comment-author-avatar/edit.js +2 -3
  277. package/build-module/comment-author-avatar/edit.js.map +1 -1
  278. package/build-module/comment-author-avatar/index.js +2 -7
  279. package/build-module/comment-author-avatar/index.js.map +1 -1
  280. package/build-module/comment-author-name/index.js +0 -1
  281. package/build-module/comment-author-name/index.js.map +1 -1
  282. package/build-module/comment-content/index.js +0 -1
  283. package/build-module/comment-content/index.js.map +1 -1
  284. package/build-module/comment-date/index.js +0 -1
  285. package/build-module/comment-date/index.js.map +1 -1
  286. package/build-module/comment-edit-link/index.js +1 -2
  287. package/build-module/comment-edit-link/index.js.map +1 -1
  288. package/build-module/comment-reply-link/index.js +0 -1
  289. package/build-module/comment-reply-link/index.js.map +1 -1
  290. package/build-module/comment-template/edit.js +23 -97
  291. package/build-module/comment-template/edit.js.map +1 -1
  292. package/build-module/comment-template/index.js +2 -4
  293. package/build-module/comment-template/index.js.map +1 -1
  294. package/build-module/comments-query-loop/edit.js +2 -2
  295. package/build-module/comments-query-loop/edit.js.map +1 -1
  296. package/build-module/comments-query-loop/index.js +7 -4
  297. package/build-module/comments-query-loop/index.js.map +1 -1
  298. package/build-module/comments-query-loop/toolbar.js +3 -3
  299. package/build-module/comments-query-loop/toolbar.js.map +1 -1
  300. package/build-module/cover/edit.js +1 -2
  301. package/build-module/cover/edit.js.map +1 -1
  302. package/build-module/cover/index.js +0 -1
  303. package/build-module/cover/index.js.map +1 -1
  304. package/build-module/embed/deprecated.js +0 -1
  305. package/build-module/embed/deprecated.js.map +1 -1
  306. package/build-module/embed/edit.native.js +21 -24
  307. package/build-module/embed/edit.native.js.map +1 -1
  308. package/build-module/embed/embed-bottom-sheet.native.js +74 -0
  309. package/build-module/embed/embed-bottom-sheet.native.js.map +1 -0
  310. package/build-module/embed/embed-placeholder.native.js +2 -9
  311. package/build-module/embed/embed-placeholder.native.js.map +1 -1
  312. package/build-module/embed/index.js +0 -1
  313. package/build-module/embed/index.js.map +1 -1
  314. package/build-module/embed/transforms.js +0 -1
  315. package/build-module/embed/transforms.js.map +1 -1
  316. package/build-module/embed/util.js +0 -1
  317. package/build-module/embed/util.js.map +1 -1
  318. package/build-module/file/index.js +0 -1
  319. package/build-module/file/index.js.map +1 -1
  320. package/build-module/freeform/index.js +0 -1
  321. package/build-module/freeform/index.js.map +1 -1
  322. package/build-module/gallery/edit.js +1 -5
  323. package/build-module/gallery/edit.js.map +1 -1
  324. package/build-module/gallery/index.js +0 -1
  325. package/build-module/gallery/index.js.map +1 -1
  326. package/build-module/group/edit.native.js +1 -1
  327. package/build-module/group/edit.native.js.map +1 -1
  328. package/build-module/group/index.js +4 -9
  329. package/build-module/group/index.js.map +1 -1
  330. package/build-module/heading/index.js +0 -1
  331. package/build-module/heading/index.js.map +1 -1
  332. package/build-module/heading/transforms.js +0 -1
  333. package/build-module/heading/transforms.js.map +1 -1
  334. package/build-module/home-link/index.js +0 -1
  335. package/build-module/home-link/index.js.map +1 -1
  336. package/build-module/html/index.js +0 -1
  337. package/build-module/html/index.js.map +1 -1
  338. package/build-module/image/edit.js +4 -52
  339. package/build-module/image/edit.js.map +1 -1
  340. package/build-module/image/edit.native.js +1 -1
  341. package/build-module/image/edit.native.js.map +1 -1
  342. package/build-module/image/image.js +5 -16
  343. package/build-module/image/image.js.map +1 -1
  344. package/build-module/image/index.js +1 -5
  345. package/build-module/image/index.js.map +1 -1
  346. package/build-module/index.js +1 -3
  347. package/build-module/index.js.map +1 -1
  348. package/build-module/latest-comments/index.js +0 -1
  349. package/build-module/latest-comments/index.js.map +1 -1
  350. package/build-module/latest-posts/deprecated.js +0 -1
  351. package/build-module/latest-posts/deprecated.js.map +1 -1
  352. package/build-module/latest-posts/index.js +0 -1
  353. package/build-module/latest-posts/index.js.map +1 -1
  354. package/build-module/list/index.js +0 -1
  355. package/build-module/list/index.js.map +1 -1
  356. package/build-module/loginout/index.js +0 -1
  357. package/build-module/loginout/index.js.map +1 -1
  358. package/build-module/media-text/index.js +0 -1
  359. package/build-module/media-text/index.js.map +1 -1
  360. package/build-module/missing/index.js +0 -1
  361. package/build-module/missing/index.js.map +1 -1
  362. package/build-module/more/index.js +0 -1
  363. package/build-module/more/index.js.map +1 -1
  364. package/build-module/navigation/deprecated.js +1 -3
  365. package/build-module/navigation/deprecated.js.map +1 -1
  366. package/build-module/navigation/edit/index.js +104 -59
  367. package/build-module/navigation/edit/index.js.map +1 -1
  368. package/build-module/navigation/edit/navigation-menu-selector.js +3 -2
  369. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  370. package/build-module/navigation/edit/placeholder/index.js +15 -7
  371. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  372. package/build-module/navigation/edit/responsive-wrapper.js +9 -7
  373. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  374. package/build-module/navigation/edit/unsaved-inner-blocks.js +4 -13
  375. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  376. package/build-module/navigation/edit/use-navigation-notice.js +44 -0
  377. package/build-module/navigation/edit/use-navigation-notice.js.map +1 -0
  378. package/build-module/navigation/index.js +1 -3
  379. package/build-module/navigation/index.js.map +1 -1
  380. package/build-module/navigation/menu-items-to-blocks.js +1 -4
  381. package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
  382. package/build-module/navigation/use-navigation-menu.js +9 -2
  383. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  384. package/build-module/navigation/view.js +12 -7
  385. package/build-module/navigation/view.js.map +1 -1
  386. package/build-module/navigation-area/edit.js +1 -2
  387. package/build-module/navigation-area/edit.js.map +1 -1
  388. package/build-module/navigation-area/index.js +1 -2
  389. package/build-module/navigation-area/index.js.map +1 -1
  390. package/build-module/navigation-link/edit.js +0 -7
  391. package/build-module/navigation-link/edit.js.map +1 -1
  392. package/build-module/navigation-link/index.js +0 -1
  393. package/build-module/navigation-link/index.js.map +1 -1
  394. package/build-module/navigation-submenu/edit.js +0 -1
  395. package/build-module/navigation-submenu/edit.js.map +1 -1
  396. package/build-module/navigation-submenu/index.js +0 -1
  397. package/build-module/navigation-submenu/index.js.map +1 -1
  398. package/build-module/nextpage/index.js +0 -1
  399. package/build-module/nextpage/index.js.map +1 -1
  400. package/build-module/page-list/index.js +1 -6
  401. package/build-module/page-list/index.js.map +1 -1
  402. package/build-module/paragraph/edit.js +3 -13
  403. package/build-module/paragraph/edit.js.map +1 -1
  404. package/build-module/paragraph/index.js +0 -1
  405. package/build-module/paragraph/index.js.map +1 -1
  406. package/build-module/paragraph/transforms.js +0 -1
  407. package/build-module/paragraph/transforms.js.map +1 -1
  408. package/build-module/pattern/index.js +0 -1
  409. package/build-module/pattern/index.js.map +1 -1
  410. package/build-module/post-author/index.js +0 -1
  411. package/build-module/post-author/index.js.map +1 -1
  412. package/build-module/post-comment/index.js +0 -1
  413. package/build-module/post-comment/index.js.map +1 -1
  414. package/build-module/post-comments/index.js +0 -1
  415. package/build-module/post-comments/index.js.map +1 -1
  416. package/build-module/post-comments-count/index.js +0 -1
  417. package/build-module/post-comments-count/index.js.map +1 -1
  418. package/build-module/post-comments-form/index.js +0 -1
  419. package/build-module/post-comments-form/index.js.map +1 -1
  420. package/build-module/post-comments-link/index.js +0 -1
  421. package/build-module/post-comments-link/index.js.map +1 -1
  422. package/build-module/post-content/index.js +0 -1
  423. package/build-module/post-content/index.js.map +1 -1
  424. package/build-module/post-date/index.js +0 -1
  425. package/build-module/post-date/index.js.map +1 -1
  426. package/build-module/post-excerpt/index.js +0 -1
  427. package/build-module/post-excerpt/index.js.map +1 -1
  428. package/build-module/post-featured-image/dimension-controls.js +29 -52
  429. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  430. package/build-module/post-featured-image/edit.js +4 -8
  431. package/build-module/post-featured-image/edit.js.map +1 -1
  432. package/build-module/post-featured-image/index.js +0 -1
  433. package/build-module/post-featured-image/index.js.map +1 -1
  434. package/build-module/post-navigation-link/index.js +0 -1
  435. package/build-module/post-navigation-link/index.js.map +1 -1
  436. package/build-module/post-template/index.js +0 -1
  437. package/build-module/post-template/index.js.map +1 -1
  438. package/build-module/post-terms/index.js +0 -1
  439. package/build-module/post-terms/index.js.map +1 -1
  440. package/build-module/post-title/index.js +0 -1
  441. package/build-module/post-title/index.js.map +1 -1
  442. package/build-module/preformatted/edit.native.js +1 -2
  443. package/build-module/preformatted/edit.native.js.map +1 -1
  444. package/build-module/preformatted/index.js +0 -1
  445. package/build-module/preformatted/index.js.map +1 -1
  446. package/build-module/pullquote/index.js +1 -8
  447. package/build-module/pullquote/index.js.map +1 -1
  448. package/build-module/query/index.js +0 -1
  449. package/build-module/query/index.js.map +1 -1
  450. package/build-module/query-pagination/index.js +0 -1
  451. package/build-module/query-pagination/index.js.map +1 -1
  452. package/build-module/query-pagination-next/index.js +0 -1
  453. package/build-module/query-pagination-next/index.js.map +1 -1
  454. package/build-module/query-pagination-numbers/index.js +0 -1
  455. package/build-module/query-pagination-numbers/index.js.map +1 -1
  456. package/build-module/query-pagination-previous/index.js +0 -1
  457. package/build-module/query-pagination-previous/index.js.map +1 -1
  458. package/build-module/query-title/index.js +0 -1
  459. package/build-module/query-title/index.js.map +1 -1
  460. package/build-module/quote/index.js +0 -1
  461. package/build-module/quote/index.js.map +1 -1
  462. package/build-module/rss/index.js +0 -1
  463. package/build-module/rss/index.js.map +1 -1
  464. package/build-module/search/edit.js +3 -5
  465. package/build-module/search/edit.js.map +1 -1
  466. package/build-module/search/index.js +1 -8
  467. package/build-module/search/index.js.map +1 -1
  468. package/build-module/separator/index.js +0 -1
  469. package/build-module/separator/index.js.map +1 -1
  470. package/build-module/shortcode/index.js +0 -1
  471. package/build-module/shortcode/index.js.map +1 -1
  472. package/build-module/site-logo/edit.js +9 -6
  473. package/build-module/site-logo/edit.js.map +1 -1
  474. package/build-module/site-logo/index.js +0 -4
  475. package/build-module/site-logo/index.js.map +1 -1
  476. package/build-module/site-tagline/index.js +1 -2
  477. package/build-module/site-tagline/index.js.map +1 -1
  478. package/build-module/site-title/index.js +0 -1
  479. package/build-module/site-title/index.js.map +1 -1
  480. package/build-module/social-link/index.js +1 -2
  481. package/build-module/social-link/index.js.map +1 -1
  482. package/build-module/social-links/index.js +1 -2
  483. package/build-module/social-links/index.js.map +1 -1
  484. package/build-module/spacer/index.js +0 -1
  485. package/build-module/spacer/index.js.map +1 -1
  486. package/build-module/table/index.js +1 -7
  487. package/build-module/table/index.js.map +1 -1
  488. package/build-module/table-of-contents/index.js +0 -1
  489. package/build-module/table-of-contents/index.js.map +1 -1
  490. package/build-module/tag-cloud/index.js +0 -1
  491. package/build-module/tag-cloud/index.js.map +1 -1
  492. package/build-module/template-part/index.js +9 -26
  493. package/build-module/template-part/index.js.map +1 -1
  494. package/build-module/term-description/index.js +0 -1
  495. package/build-module/term-description/index.js.map +1 -1
  496. package/build-module/text-columns/index.js +0 -1
  497. package/build-module/text-columns/index.js.map +1 -1
  498. package/build-module/verse/index.js +0 -1
  499. package/build-module/verse/index.js.map +1 -1
  500. package/build-module/video/index.js +0 -1
  501. package/build-module/video/index.js.map +1 -1
  502. package/build-style/columns/style-rtl.css +3 -4
  503. package/build-style/columns/style.css +3 -4
  504. package/build-style/common-rtl.css +0 -19
  505. package/build-style/common.css +0 -19
  506. package/build-style/cover/style-rtl.css +0 -4
  507. package/build-style/cover/style.css +0 -4
  508. package/build-style/editor-rtl.css +26 -46
  509. package/build-style/editor.css +26 -49
  510. package/build-style/gallery/editor-rtl.css +12 -0
  511. package/build-style/gallery/editor.css +12 -0
  512. package/build-style/gallery/style-rtl.css +0 -3
  513. package/build-style/gallery/style.css +0 -3
  514. package/build-style/group/theme-rtl.css +1 -1
  515. package/build-style/group/theme.css +1 -1
  516. package/build-style/{comments-pagination → home-link}/style-rtl.css +21 -21
  517. package/build-style/{comments-pagination/editor.css → home-link/style.css} +22 -20
  518. package/build-style/navigation/editor-rtl.css +2 -0
  519. package/build-style/navigation/editor.css +2 -0
  520. package/build-style/navigation/style-rtl.css +44 -18
  521. package/build-style/navigation/style.css +44 -18
  522. package/build-style/post-comments/style-rtl.css +0 -1
  523. package/build-style/post-comments/style.css +0 -1
  524. package/build-style/post-featured-image/editor-rtl.css +7 -0
  525. package/build-style/post-featured-image/editor.css +7 -0
  526. package/build-style/post-featured-image/style-rtl.css +1 -1
  527. package/build-style/post-featured-image/style.css +1 -1
  528. package/build-style/post-title/style-rtl.css +0 -3
  529. package/build-style/post-title/style.css +0 -3
  530. package/build-style/pullquote/style-rtl.css +0 -1
  531. package/build-style/pullquote/style.css +0 -1
  532. package/build-style/query-pagination/editor-rtl.css +4 -0
  533. package/build-style/query-pagination/editor.css +4 -0
  534. package/build-style/query-pagination/style-rtl.css +2 -6
  535. package/build-style/query-pagination/style.css +2 -6
  536. package/build-style/site-logo/editor-rtl.css +1 -11
  537. package/build-style/site-logo/editor.css +1 -11
  538. package/build-style/site-logo/style-rtl.css +3 -1
  539. package/build-style/site-logo/style.css +3 -1
  540. package/build-style/style-rtl.css +98 -123
  541. package/build-style/style.css +98 -125
  542. package/build-style/table/style-rtl.css +0 -1
  543. package/build-style/table/style.css +0 -1
  544. package/build-style/theme-rtl.css +1 -1
  545. package/build-style/theme.css +1 -1
  546. package/package.json +31 -31
  547. package/src/archives/block.json +0 -1
  548. package/src/audio/block.json +0 -1
  549. package/src/block/block.json +0 -1
  550. package/src/button/block.json +1 -5
  551. package/src/button/edit.native.js +1 -1
  552. package/src/buttons/block.json +1 -2
  553. package/src/calendar/block.json +0 -1
  554. package/src/calendar/index.php +39 -35
  555. package/src/categories/block.json +0 -1
  556. package/src/code/block.json +1 -6
  557. package/src/column/block.json +0 -1
  558. package/src/columns/block.json +0 -1
  559. package/src/columns/style.scss +5 -8
  560. package/src/comment-author-avatar/block.json +2 -7
  561. package/src/comment-author-avatar/edit.js +2 -7
  562. package/src/comment-author-avatar/index.php +6 -25
  563. package/src/comment-author-name/block.json +0 -1
  564. package/src/comment-content/block.json +0 -1
  565. package/src/comment-date/block.json +0 -1
  566. package/src/comment-edit-link/block.json +0 -1
  567. package/src/comment-edit-link/index.js +1 -1
  568. package/src/comment-reply-link/block.json +0 -1
  569. package/src/comment-template/block.json +2 -4
  570. package/src/comment-template/edit.js +37 -111
  571. package/src/comment-template/index.php +19 -46
  572. package/src/comments-query-loop/block.json +7 -4
  573. package/src/comments-query-loop/edit.js +5 -2
  574. package/src/comments-query-loop/toolbar.js +3 -3
  575. package/src/common.scss +0 -19
  576. package/src/cover/block.json +0 -1
  577. package/src/cover/edit.js +0 -1
  578. package/src/cover/style.scss +0 -4
  579. package/src/editor.scss +0 -2
  580. package/src/embed/block.json +0 -1
  581. package/src/embed/edit.native.js +18 -23
  582. package/src/embed/embed-bottom-sheet.native.js +78 -0
  583. package/src/embed/embed-placeholder.native.js +0 -8
  584. package/src/embed/test/__snapshots__/index.native.js.snap +0 -10
  585. package/src/embed/test/index.native.js +88 -228
  586. package/src/file/block.json +0 -1
  587. package/src/freeform/block.json +0 -1
  588. package/src/gallery/block.json +0 -1
  589. package/src/gallery/edit.js +0 -13
  590. package/src/gallery/editor.scss +14 -0
  591. package/src/gallery/index.php +1 -1
  592. package/src/gallery/style.scss +0 -4
  593. package/src/group/block.json +4 -9
  594. package/src/group/edit.native.js +1 -1
  595. package/src/group/theme.scss +5 -4
  596. package/src/heading/block.json +0 -1
  597. package/src/home-link/block.json +0 -1
  598. package/src/home-link/index.php +3 -3
  599. package/src/home-link/style.scss +51 -0
  600. package/src/html/block.json +0 -1
  601. package/src/image/block.json +1 -5
  602. package/src/image/edit.js +0 -44
  603. package/src/image/edit.native.js +1 -1
  604. package/src/image/image.js +3 -14
  605. package/src/index.js +0 -4
  606. package/src/latest-comments/block.json +0 -1
  607. package/src/latest-posts/block.json +0 -1
  608. package/src/list/block.json +0 -1
  609. package/src/loginout/block.json +0 -1
  610. package/src/media-text/block.json +0 -1
  611. package/src/missing/block.json +0 -1
  612. package/src/more/block.json +0 -1
  613. package/src/navigation/block.json +17 -6
  614. package/src/navigation/deprecated.js +0 -2
  615. package/src/navigation/edit/index.js +172 -89
  616. package/src/navigation/edit/navigation-menu-selector.js +19 -13
  617. package/src/navigation/edit/placeholder/index.js +40 -24
  618. package/src/navigation/edit/responsive-wrapper.js +10 -7
  619. package/src/navigation/edit/unsaved-inner-blocks.js +13 -25
  620. package/src/navigation/edit/use-navigation-notice.js +37 -0
  621. package/src/navigation/editor.scss +2 -0
  622. package/src/navigation/index.php +23 -12
  623. package/src/navigation/menu-items-to-blocks.js +1 -2
  624. package/src/navigation/style.scss +57 -19
  625. package/src/navigation/use-navigation-menu.js +20 -0
  626. package/src/navigation/view.js +13 -7
  627. package/src/navigation-area/block.json +7 -3
  628. package/src/navigation-area/edit.js +1 -2
  629. package/src/navigation-link/block.json +3 -2
  630. package/src/navigation-link/edit.js +0 -5
  631. package/src/navigation-link/index.php +3 -3
  632. package/src/navigation-submenu/block.json +3 -2
  633. package/src/navigation-submenu/index.php +3 -3
  634. package/src/nextpage/block.json +0 -1
  635. package/src/page-list/block.json +0 -4
  636. package/src/page-list/index.php +3 -3
  637. package/src/paragraph/block.json +0 -1
  638. package/src/paragraph/edit.js +4 -12
  639. package/src/pattern/block.json +0 -1
  640. package/src/post-author/block.json +0 -1
  641. package/src/post-comment/block.json +0 -1
  642. package/src/post-comments/block.json +0 -1
  643. package/src/post-comments/style.scss +0 -1
  644. package/src/post-comments-count/block.json +0 -1
  645. package/src/post-comments-form/block.json +1 -6
  646. package/src/post-comments-link/block.json +0 -1
  647. package/src/post-content/block.json +0 -1
  648. package/src/post-date/block.json +0 -1
  649. package/src/post-excerpt/block.json +0 -1
  650. package/src/post-featured-image/block.json +0 -1
  651. package/src/post-featured-image/dimension-controls.js +50 -75
  652. package/src/post-featured-image/edit.js +5 -12
  653. package/src/post-featured-image/editor.scss +8 -0
  654. package/src/post-featured-image/style.scss +1 -1
  655. package/src/post-navigation-link/block.json +0 -1
  656. package/src/post-template/block.json +0 -1
  657. package/src/post-terms/block.json +0 -1
  658. package/src/post-title/block.json +0 -1
  659. package/src/post-title/style.scss +2 -6
  660. package/src/preformatted/block.json +0 -1
  661. package/src/preformatted/edit.native.js +1 -3
  662. package/src/pullquote/block.json +1 -8
  663. package/src/pullquote/style.scss +0 -1
  664. package/src/query/block.json +0 -1
  665. package/src/query-pagination/block.json +0 -1
  666. package/src/query-pagination/editor.scss +4 -0
  667. package/src/query-pagination/style.scss +2 -12
  668. package/src/query-pagination-next/block.json +0 -1
  669. package/src/query-pagination-next/index.php +19 -42
  670. package/src/query-pagination-numbers/block.json +0 -1
  671. package/src/query-pagination-previous/block.json +0 -1
  672. package/src/query-pagination-previous/index.php +13 -45
  673. package/src/query-title/block.json +0 -1
  674. package/src/quote/block.json +0 -1
  675. package/src/rss/block.json +0 -1
  676. package/src/search/block.json +1 -8
  677. package/src/search/edit.js +1 -2
  678. package/src/search/index.php +10 -20
  679. package/src/separator/block.json +0 -1
  680. package/src/shortcode/block.json +0 -1
  681. package/src/site-logo/block.json +0 -4
  682. package/src/site-logo/edit.js +6 -5
  683. package/src/site-logo/editor.scss +1 -15
  684. package/src/site-logo/index.php +0 -4
  685. package/src/site-logo/style.scss +3 -1
  686. package/src/site-tagline/block.json +1 -2
  687. package/src/site-title/block.json +0 -1
  688. package/src/social-link/block.json +1 -2
  689. package/src/social-links/block.json +8 -3
  690. package/src/spacer/block.json +0 -1
  691. package/src/style.scss +2 -3
  692. package/src/table/block.json +1 -7
  693. package/src/table/style.scss +0 -1
  694. package/src/table-of-contents/block.json +0 -1
  695. package/src/tag-cloud/block.json +0 -1
  696. package/src/template-part/block.json +8 -1
  697. package/src/template-part/index.js +0 -28
  698. package/src/term-description/block.json +0 -1
  699. package/src/text-columns/block.json +0 -1
  700. package/src/verse/block.json +0 -1
  701. package/src/video/block.json +0 -1
  702. package/build/comment-template/util.js +0 -66
  703. package/build/comment-template/util.js.map +0 -1
  704. package/build/comments-pagination/comments-pagination-arrow-controls.js +0 -39
  705. package/build/comments-pagination/comments-pagination-arrow-controls.js.map +0 -1
  706. package/build/comments-pagination/edit.js +0 -80
  707. package/build/comments-pagination/edit.js.map +0 -1
  708. package/build/comments-pagination/index.js +0 -71
  709. package/build/comments-pagination/index.js.map +0 -1
  710. package/build/comments-pagination/save.js +0 -18
  711. package/build/comments-pagination/save.js.map +0 -1
  712. package/build/comments-pagination-numbers/edit.js +0 -47
  713. package/build/comments-pagination-numbers/edit.js.map +0 -1
  714. package/build/comments-pagination-numbers/index.js +0 -47
  715. package/build/comments-pagination-numbers/index.js.map +0 -1
  716. package/build/embed/embed-controls.native.js +0 -69
  717. package/build/embed/embed-controls.native.js.map +0 -1
  718. package/build/embed/embed-link-settings.native.js +0 -101
  719. package/build/embed/embed-link-settings.native.js.map +0 -1
  720. package/build-module/comment-template/util.js +0 -57
  721. package/build-module/comment-template/util.js.map +0 -1
  722. package/build-module/comments-pagination/comments-pagination-arrow-controls.js +0 -30
  723. package/build-module/comments-pagination/comments-pagination-arrow-controls.js.map +0 -1
  724. package/build-module/comments-pagination/edit.js +0 -67
  725. package/build-module/comments-pagination/edit.js.map +0 -1
  726. package/build-module/comments-pagination/index.js +0 -57
  727. package/build-module/comments-pagination/index.js.map +0 -1
  728. package/build-module/comments-pagination/save.js +0 -10
  729. package/build-module/comments-pagination/save.js.map +0 -1
  730. package/build-module/comments-pagination-numbers/edit.js +0 -40
  731. package/build-module/comments-pagination-numbers/edit.js.map +0 -1
  732. package/build-module/comments-pagination-numbers/index.js +0 -34
  733. package/build-module/comments-pagination-numbers/index.js.map +0 -1
  734. package/build-module/embed/embed-controls.native.js +0 -54
  735. package/build-module/embed/embed-controls.native.js.map +0 -1
  736. package/build-module/embed/embed-link-settings.native.js +0 -90
  737. package/build-module/embed/embed-link-settings.native.js.map +0 -1
  738. package/build-style/comment-template/style-rtl.css +0 -91
  739. package/build-style/comment-template/style.css +0 -91
  740. package/build-style/comments-pagination/editor-rtl.css +0 -100
  741. package/build-style/comments-pagination/style.css +0 -106
  742. package/build-style/comments-pagination-numbers/editor-rtl.css +0 -85
  743. package/build-style/comments-pagination-numbers/editor.css +0 -86
  744. package/src/comment-template/style.scss +0 -17
  745. package/src/comment-template/test/index.js +0 -45
  746. package/src/comment-template/util.js +0 -56
  747. package/src/comments-pagination/block.json +0 -37
  748. package/src/comments-pagination/comments-pagination-arrow-controls.js +0 -44
  749. package/src/comments-pagination/edit.js +0 -78
  750. package/src/comments-pagination/editor.scss +0 -34
  751. package/src/comments-pagination/index.js +0 -20
  752. package/src/comments-pagination/index.php +0 -39
  753. package/src/comments-pagination/save.js +0 -8
  754. package/src/comments-pagination/style.scss +0 -38
  755. package/src/comments-pagination-numbers/block.json +0 -16
  756. package/src/comments-pagination-numbers/edit.js +0 -22
  757. package/src/comments-pagination-numbers/editor.scss +0 -12
  758. package/src/comments-pagination-numbers/index.js +0 -18
  759. package/src/comments-pagination-numbers/index.php +0 -69
  760. package/src/embed/embed-controls.native.js +0 -65
  761. package/src/embed/embed-link-settings.native.js +0 -100
  762. package/src/gallery/test/use-get-new-images.js +0 -93
  763. package/src/navigation/README.md +0 -13
@@ -2,7 +2,7 @@
2
2
  * External dependencies
3
3
  */
4
4
  import classnames from 'classnames';
5
- import noop from 'lodash';
5
+ import { noop } from 'lodash';
6
6
 
7
7
  /**
8
8
  * WordPress dependencies
@@ -27,7 +27,8 @@ import {
27
27
  Warning,
28
28
  } from '@wordpress/block-editor';
29
29
  import { EntityProvider, useEntityProp } from '@wordpress/core-data';
30
- import { useDispatch, useSelect } from '@wordpress/data';
30
+
31
+ import { useDispatch, useSelect, useRegistry } from '@wordpress/data';
31
32
  import {
32
33
  PanelBody,
33
34
  ToggleControl,
@@ -52,6 +53,9 @@ import NavigationMenuSelector from './navigation-menu-selector';
52
53
  import NavigationMenuNameControl from './navigation-menu-name-control';
53
54
  import UnsavedInnerBlocks from './unsaved-inner-blocks';
54
55
  import NavigationMenuDeleteControl from './navigation-menu-delete-control';
56
+ import useNavigationNotice from './use-navigation-notice';
57
+
58
+ const EMPTY_ARRAY = [];
55
59
 
56
60
  function getComputedStyle( node ) {
57
61
  return node.ownerDocument.defaultView.getComputedStyle( node );
@@ -107,7 +111,11 @@ function Navigation( {
107
111
  openSubmenusOnClick,
108
112
  overlayMenu,
109
113
  showSubmenuIcon,
110
- layout: { justifyContent, orientation = 'horizontal' } = {},
114
+ layout: {
115
+ justifyContent,
116
+ orientation = 'horizontal',
117
+ flexWrap = 'wrap',
118
+ } = {},
111
119
  } = attributes;
112
120
 
113
121
  let areaMenu,
@@ -128,6 +136,7 @@ function Navigation( {
128
136
 
129
137
  const ref = navigationArea ? navigationAreaMenu : attributes.ref;
130
138
 
139
+ const registry = useRegistry();
131
140
  const setRef = useCallback(
132
141
  ( postId ) => {
133
142
  setAttributes( { ref: postId } );
@@ -142,25 +151,41 @@ function Navigation( {
142
151
  `navigationMenu/${ ref }`
143
152
  );
144
153
 
145
- const { innerBlocks, isInnerBlockSelected, hasSubmenus } = useSelect(
154
+ const {
155
+ hasUncontrolledInnerBlocks,
156
+ uncontrolledInnerBlocks,
157
+ isInnerBlockSelected,
158
+ } = useSelect(
146
159
  ( select ) => {
147
- const { getBlocks, hasSelectedInnerBlock } = select(
160
+ const { getBlock, getBlocks, hasSelectedInnerBlock } = select(
148
161
  blockEditorStore
149
162
  );
150
- const blocks = getBlocks( clientId );
151
- const firstSubmenu = !! blocks.find(
152
- ( block ) => block.name === 'core/navigation-submenu'
153
- );
163
+
164
+ // This relies on the fact that `getBlock` won't return controlled
165
+ // inner blocks, while `getBlocks` does. It might be more stable to
166
+ // introduce a selector like `getUncontrolledInnerBlocks`, just in
167
+ // case `getBlock` is fixed.
168
+ const _uncontrolledInnerBlocks = getBlock( clientId ).innerBlocks;
169
+ const _hasUncontrolledInnerBlocks =
170
+ _uncontrolledInnerBlocks?.length;
171
+ const _controlledInnerBlocks = _hasUncontrolledInnerBlocks
172
+ ? EMPTY_ARRAY
173
+ : getBlocks( clientId );
174
+ const innerBlocks = _hasUncontrolledInnerBlocks
175
+ ? _uncontrolledInnerBlocks
176
+ : _controlledInnerBlocks;
154
177
 
155
178
  return {
156
- hasSubmenus: firstSubmenu,
157
- innerBlocks: blocks,
179
+ hasSubmenus: !! innerBlocks.find(
180
+ ( block ) => block.name === 'core/navigation-submenu'
181
+ ),
182
+ hasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,
183
+ uncontrolledInnerBlocks: _uncontrolledInnerBlocks,
158
184
  isInnerBlockSelected: hasSelectedInnerBlock( clientId, true ),
159
185
  };
160
186
  },
161
187
  [ clientId ]
162
188
  );
163
- const hasExistingNavItems = !! innerBlocks.length;
164
189
  const {
165
190
  replaceInnerBlocks,
166
191
  selectBlock,
@@ -172,10 +197,10 @@ function Navigation( {
172
197
  setHasSavedUnsavedInnerBlocks,
173
198
  ] = useState( false );
174
199
 
175
- const isWithinUnassignedArea = navigationArea && ! ref;
200
+ const isWithinUnassignedArea = !! navigationArea && ! ref;
176
201
 
177
202
  const [ isPlaceholderShown, setIsPlaceholderShown ] = useState(
178
- ! hasExistingNavItems || isWithinUnassignedArea
203
+ ! hasUncontrolledInnerBlocks || isWithinUnassignedArea
179
204
  );
180
205
 
181
206
  const [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] = useState(
@@ -189,6 +214,12 @@ function Navigation( {
189
214
  hasResolvedNavigationMenus,
190
215
  navigationMenus,
191
216
  navigationMenu,
217
+ canUserUpdateNavigationEntity,
218
+ hasResolvedCanUserUpdateNavigationEntity,
219
+ canUserDeleteNavigationEntity,
220
+ hasResolvedCanUserDeleteNavigationEntity,
221
+ canUserCreateNavigation,
222
+ hasResolvedCanUserCreateNavigation,
192
223
  } = useNavigationMenu( ref );
193
224
 
194
225
  const navRef = useRef();
@@ -206,6 +237,10 @@ function Navigation( {
206
237
  className: classnames( className, {
207
238
  'items-justified-right': justifyContent === 'right',
208
239
  'items-justified-space-between': justifyContent === 'space-between',
240
+ 'items-justified-left': justifyContent === 'left',
241
+ 'items-justified-center': justifyContent === 'center',
242
+ 'is-vertical': orientation === 'vertical',
243
+ 'no-wrap': flexWrap === 'nowrap',
209
244
  'is-responsive': 'never' !== overlayMenu,
210
245
  'has-text-color': !! textColor.color || !! textColor?.class,
211
246
  [ getColorClassName(
@@ -276,7 +311,7 @@ function Navigation( {
276
311
  setDetectedColor,
277
312
  setDetectedBackgroundColor
278
313
  );
279
- const subMenuElement = navRef.current.querySelector(
314
+ const subMenuElement = navRef.current?.querySelector(
280
315
  '[data-type="core/navigation-link"] [data-type="core/navigation-link"]'
281
316
  );
282
317
  if ( subMenuElement ) {
@@ -293,49 +328,105 @@ function Navigation( {
293
328
  setIsPlaceholderShown( ! isEntityAvailable );
294
329
  }, [ isEntityAvailable ] );
295
330
 
296
- // If the ref no longer exists the reset the inner blocks
297
- // to provide a clean slate.
331
+ const [ showCantEditNotice, hideCantEditNotice ] = useNavigationNotice( {
332
+ name: 'block-library/core/navigation/permissions/update',
333
+ message: __(
334
+ 'You do not have permission to edit this Menu. Any changes made will not be saved.'
335
+ ),
336
+ } );
337
+
338
+ const [ showCantCreateNotice, hideCantCreateNotice ] = useNavigationNotice(
339
+ {
340
+ name: 'block-library/core/navigation/permissions/create',
341
+ message: __(
342
+ 'You do not have permission to create Navigation Menus.'
343
+ ),
344
+ }
345
+ );
346
+
298
347
  useEffect( () => {
299
- if ( ref === undefined && innerBlocks.length > 0 ) {
300
- replaceInnerBlocks( clientId, [] );
348
+ if ( ! isSelected && ! isInnerBlockSelected ) {
349
+ hideCantEditNotice();
350
+ hideCantCreateNotice();
301
351
  }
302
- // innerBlocks are intentionally not listed as deps. This function is only concerned
303
- // with the snapshot from the time when ref became undefined.
304
- }, [ clientId, ref, innerBlocks ] );
305
352
 
306
- const startWithEmptyMenu = useCallback( () => {
307
- if ( navigationArea ) {
308
- setAreaMenu( 0 );
353
+ if ( isSelected || isInnerBlockSelected ) {
354
+ if (
355
+ hasResolvedCanUserUpdateNavigationEntity &&
356
+ ! canUserUpdateNavigationEntity
357
+ ) {
358
+ showCantEditNotice();
359
+ }
360
+
361
+ if (
362
+ ! ref &&
363
+ hasResolvedCanUserCreateNavigation &&
364
+ ! canUserCreateNavigation
365
+ ) {
366
+ showCantCreateNotice();
367
+ }
309
368
  }
310
- setAttributes( {
311
- ref: undefined,
312
- } );
369
+ }, [
370
+ isSelected,
371
+ isInnerBlockSelected,
372
+ canUserUpdateNavigationEntity,
373
+ hasResolvedCanUserUpdateNavigationEntity,
374
+ canUserCreateNavigation,
375
+ hasResolvedCanUserCreateNavigation,
376
+ ref,
377
+ ] );
313
378
 
314
- setIsPlaceholderShown( true );
315
- }, [ clientId ] );
379
+ const startWithEmptyMenu = useCallback( () => {
380
+ registry.batch( () => {
381
+ if ( navigationArea ) {
382
+ setAreaMenu( 0 );
383
+ }
384
+ setAttributes( {
385
+ ref: undefined,
386
+ } );
387
+ if ( ! ref ) {
388
+ replaceInnerBlocks( clientId, [] );
389
+ }
390
+ setIsPlaceholderShown( true );
391
+ } );
392
+ }, [ clientId, ref ] );
316
393
 
317
394
  // If the block has inner blocks, but no menu id, this was an older
318
395
  // navigation block added before the block used a wp_navigation entity.
319
396
  // Either this block was saved in the content or inserted by a pattern.
320
397
  // Consider this 'unsaved'. Offer an uncontrolled version of inner blocks,
321
398
  // that automatically saves the menu.
322
- const hasUnsavedBlocks =
323
- hasExistingNavItems && ! isEntityAvailable && ! isWithinUnassignedArea;
399
+ const hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;
324
400
  if ( hasUnsavedBlocks ) {
325
401
  return (
326
- <UnsavedInnerBlocks
327
- blockProps={ blockProps }
328
- blocks={ innerBlocks }
329
- clientId={ clientId }
330
- navigationMenus={ navigationMenus }
331
- hasSelection={ isSelected || isInnerBlockSelected }
332
- hasSavedUnsavedInnerBlocks={ hasSavedUnsavedInnerBlocks }
333
- onSave={ ( post ) => {
334
- setHasSavedUnsavedInnerBlocks( true );
335
- // Switch to using the wp_navigation entity.
336
- setRef( post.id );
337
- } }
338
- />
402
+ <nav { ...blockProps }>
403
+ <ResponsiveWrapper
404
+ id={ clientId }
405
+ onToggle={ setResponsiveMenuVisibility }
406
+ isOpen={ isResponsiveMenuOpen }
407
+ isResponsive={ 'never' !== overlayMenu }
408
+ isHiddenByDefault={ 'always' === overlayMenu }
409
+ classNames={ overlayClassnames }
410
+ styles={ overlayStyles }
411
+ >
412
+ <UnsavedInnerBlocks
413
+ blockProps={ blockProps }
414
+ blocks={ uncontrolledInnerBlocks }
415
+ clientId={ clientId }
416
+ navigationMenus={ navigationMenus }
417
+ hasSelection={ isSelected || isInnerBlockSelected }
418
+ hasSavedUnsavedInnerBlocks={
419
+ hasSavedUnsavedInnerBlocks
420
+ }
421
+ onSave={ ( post ) => {
422
+ // Set some state used as a guard to prevent the creation of multiple posts.
423
+ setHasSavedUnsavedInnerBlocks( true );
424
+ // Switch to using the wp_navigation entity.
425
+ setRef( post.id );
426
+ } }
427
+ />
428
+ </ResponsiveWrapper>
429
+ </nav>
339
430
  );
340
431
  }
341
432
 
@@ -388,6 +479,7 @@ function Navigation( {
388
479
  onClose();
389
480
  } }
390
481
  onCreateNew={ startWithEmptyMenu }
482
+ showCreate={ canUserCreateNavigation }
391
483
  />
392
484
  ) }
393
485
  </ToolbarDropdownMenu>
@@ -425,35 +517,26 @@ function Navigation( {
425
517
  label={ __( 'Always' ) }
426
518
  />
427
519
  </ToggleGroupControl>
428
- { hasSubmenus && (
429
- <>
430
- <h3>{ __( 'Submenus' ) }</h3>
431
- <ToggleControl
432
- checked={ openSubmenusOnClick }
433
- onChange={ ( value ) => {
434
- setAttributes( {
435
- openSubmenusOnClick: value,
436
- ...( value && {
437
- showSubmenuIcon: true,
438
- } ), // Make sure arrows are shown when we toggle this on.
439
- } );
440
- } }
441
- label={ __( 'Open on click' ) }
442
- />
443
-
444
- <ToggleControl
445
- checked={ showSubmenuIcon }
446
- onChange={ ( value ) => {
447
- setAttributes( {
448
- showSubmenuIcon: value,
449
- } );
450
- } }
451
- disabled={
452
- attributes.openSubmenusOnClick
453
- }
454
- label={ __( 'Show arrow' ) }
455
- />
456
- </>
520
+ <h3>{ __( 'Submenus' ) }</h3>
521
+ <ToggleControl
522
+ checked={ openSubmenusOnClick }
523
+ onChange={ ( value ) => {
524
+ setAttributes( {
525
+ openSubmenusOnClick: value,
526
+ } );
527
+ } }
528
+ label={ __( 'Open on click' ) }
529
+ />
530
+ { ! attributes.openSubmenusOnClick && (
531
+ <ToggleControl
532
+ checked={ showSubmenuIcon }
533
+ onChange={ ( value ) => {
534
+ setAttributes( {
535
+ showSubmenuIcon: value,
536
+ } );
537
+ } }
538
+ label={ __( 'Show icons' ) }
539
+ />
457
540
  ) }
458
541
  </PanelBody>
459
542
  ) }
@@ -507,18 +590,16 @@ function Navigation( {
507
590
  </InspectorControls>
508
591
  { isEntityAvailable && (
509
592
  <InspectorControls __experimentalGroup="advanced">
510
- <NavigationMenuNameControl />
511
- <NavigationMenuDeleteControl
512
- onDelete={ () => {
513
- if ( navigationArea ) {
514
- setAreaMenu( 0 );
515
- }
516
- setAttributes( {
517
- ref: undefined,
518
- } );
519
- setIsPlaceholderShown( true );
520
- } }
521
- />
593
+ { hasResolvedCanUserUpdateNavigationEntity &&
594
+ canUserUpdateNavigationEntity && (
595
+ <NavigationMenuNameControl />
596
+ ) }
597
+ { hasResolvedCanUserDeleteNavigationEntity &&
598
+ canUserDeleteNavigationEntity && (
599
+ <NavigationMenuDeleteControl
600
+ onDelete={ startWithEmptyMenu }
601
+ />
602
+ ) }
522
603
  </InspectorControls>
523
604
  ) }
524
605
  <nav { ...blockProps }>
@@ -536,11 +617,13 @@ function Navigation( {
536
617
  hasResolvedNavigationMenus
537
618
  }
538
619
  clientId={ clientId }
620
+ canUserCreateNavigation={ canUserCreateNavigation }
539
621
  />
540
622
  ) }
541
- { ! isEntityAvailable && ! isPlaceholderShown && (
542
- <PlaceholderPreview isLoading />
543
- ) }
623
+ { ! hasResolvedCanUserCreateNavigation ||
624
+ ( ! isEntityAvailable && ! isPlaceholderShown && (
625
+ <PlaceholderPreview isLoading />
626
+ ) ) }
544
627
  { ! isPlaceholderShown && (
545
628
  <ResponsiveWrapper
546
629
  id={ clientId }
@@ -12,7 +12,11 @@ import { addQueryArgs } from '@wordpress/url';
12
12
  */
13
13
  import useNavigationMenu from '../use-navigation-menu';
14
14
 
15
- export default function NavigationMenuSelector( { onSelect, onCreateNew } ) {
15
+ export default function NavigationMenuSelector( {
16
+ onSelect,
17
+ onCreateNew,
18
+ showCreate = false,
19
+ } ) {
16
20
  const { navigationMenus } = useNavigationMenu();
17
21
  const ref = useEntityId( 'postType', 'wp_navigation' );
18
22
 
@@ -42,18 +46,20 @@ export default function NavigationMenuSelector( { onSelect, onCreateNew } ) {
42
46
  } ) }
43
47
  />
44
48
  </MenuGroup>
45
- <MenuGroup>
46
- <MenuItem onClick={ onCreateNew }>
47
- { __( 'Create new menu' ) }
48
- </MenuItem>
49
- <MenuItem
50
- href={ addQueryArgs( 'edit.php', {
51
- post_type: 'wp_navigation',
52
- } ) }
53
- >
54
- { __( 'Manage menus' ) }
55
- </MenuItem>
56
- </MenuGroup>
49
+ { showCreate && (
50
+ <MenuGroup>
51
+ <MenuItem onClick={ onCreateNew }>
52
+ { __( 'Create new menu' ) }
53
+ </MenuItem>
54
+ <MenuItem
55
+ href={ addQueryArgs( 'edit.php', {
56
+ post_type: 'wp_navigation',
57
+ } ) }
58
+ >
59
+ { __( 'Manage menus' ) }
60
+ </MenuItem>
61
+ </MenuGroup>
62
+ ) }
57
63
  </>
58
64
  );
59
65
  }
@@ -31,6 +31,7 @@ const ExistingMenusDropdown = ( {
31
31
  onFinish,
32
32
  menus,
33
33
  onCreateFromMenu,
34
+ showClassicMenus = false,
34
35
  } ) => {
35
36
  const toggleProps = {
36
37
  variant: 'tertiary',
@@ -65,22 +66,24 @@ const ExistingMenusDropdown = ( {
65
66
  );
66
67
  } ) }
67
68
  </MenuGroup>
68
- <MenuGroup label={ __( 'Classic Menus' ) }>
69
- { menus?.map( ( menu ) => {
70
- return (
71
- <MenuItem
72
- onClick={ () => {
73
- setSelectedMenu( menu.id );
74
- onCreateFromMenu( menu.name );
75
- } }
76
- onClose={ onClose }
77
- key={ menu.id }
78
- >
79
- { decodeEntities( menu.name ) }
80
- </MenuItem>
81
- );
82
- } ) }
83
- </MenuGroup>
69
+ { showClassicMenus && (
70
+ <MenuGroup label={ __( 'Classic Menus' ) }>
71
+ { menus?.map( ( menu ) => {
72
+ return (
73
+ <MenuItem
74
+ onClick={ () => {
75
+ setSelectedMenu( menu.id );
76
+ onCreateFromMenu( menu.name );
77
+ } }
78
+ onClose={ onClose }
79
+ key={ menu.id }
80
+ >
81
+ { decodeEntities( menu.name ) }
82
+ </MenuItem>
83
+ );
84
+ } ) }
85
+ </MenuGroup>
86
+ ) }
84
87
  </>
85
88
  ) }
86
89
  </DropdownMenu>
@@ -92,6 +95,7 @@ export default function NavigationPlaceholder( {
92
95
  onFinish,
93
96
  canSwitchNavigationMenu,
94
97
  hasResolvedNavigationMenus,
98
+ canUserCreateNavigation = false,
95
99
  } ) {
96
100
  const [ selectedMenu, setSelectedMenu ] = useState();
97
101
  const [ isCreatingFromMenu, setIsCreatingFromMenu ] = useState( false );
@@ -102,6 +106,10 @@ export default function NavigationPlaceholder( {
102
106
  blocks,
103
107
  navigationMenuTitle = null
104
108
  ) => {
109
+ if ( ! canUserCreateNavigation ) {
110
+ return;
111
+ }
112
+
105
113
  const navigationMenu = await createNavigationMenu(
106
114
  navigationMenuTitle,
107
115
  blocks
@@ -176,8 +184,10 @@ export default function NavigationPlaceholder( {
176
184
  <Icon icon={ navigation } />{ ' ' }
177
185
  { __( 'Navigation' ) }
178
186
  </div>
187
+
179
188
  <hr />
180
- { hasMenus || navigationMenus.length ? (
189
+
190
+ { hasMenus || navigationMenus?.length ? (
181
191
  <>
182
192
  <ExistingMenusDropdown
183
193
  canSwitchNavigationMenu={
@@ -188,11 +198,14 @@ export default function NavigationPlaceholder( {
188
198
  onFinish={ onFinish }
189
199
  menus={ menus }
190
200
  onCreateFromMenu={ onCreateFromMenu }
201
+ showClassicMenus={
202
+ canUserCreateNavigation
203
+ }
191
204
  />
192
205
  <hr />
193
206
  </>
194
207
  ) : undefined }
195
- { hasPages ? (
208
+ { canUserCreateNavigation && hasPages ? (
196
209
  <>
197
210
  <Button
198
211
  variant="tertiary"
@@ -203,12 +216,15 @@ export default function NavigationPlaceholder( {
203
216
  <hr />
204
217
  </>
205
218
  ) : undefined }
206
- <Button
207
- variant="tertiary"
208
- onClick={ onCreateEmptyMenu }
209
- >
210
- { __( 'Start empty' ) }
211
- </Button>
219
+
220
+ { canUserCreateNavigation && (
221
+ <Button
222
+ variant="tertiary"
223
+ onClick={ onCreateEmptyMenu }
224
+ >
225
+ { __( 'Start empty' ) }
226
+ </Button>
227
+ ) }
212
228
  </div>
213
229
  </div>
214
230
  </Placeholder>
@@ -39,12 +39,20 @@ export default function ResponsiveWrapper( {
39
39
 
40
40
  const modalId = `${ id }-modal`;
41
41
 
42
+ const dialogProps = {
43
+ className: 'wp-block-navigation__responsive-dialog',
44
+ ...( isOpen && {
45
+ role: 'dialog',
46
+ 'aria-modal': true,
47
+ 'aria-label': __( 'Menu' ),
48
+ } ),
49
+ };
50
+
42
51
  return (
43
52
  <>
44
53
  { ! isOpen && (
45
54
  <Button
46
55
  aria-haspopup="true"
47
- aria-expanded={ isOpen }
48
56
  aria-label={ __( 'Open menu' ) }
49
57
  className={ openButtonClasses }
50
58
  onClick={ () => onToggle( true ) }
@@ -73,12 +81,7 @@ export default function ResponsiveWrapper( {
73
81
  className="wp-block-navigation__responsive-close"
74
82
  tabIndex="-1"
75
83
  >
76
- <div
77
- className="wp-block-navigation__responsive-dialog"
78
- role="dialog"
79
- aria-modal="true"
80
- aria-labelledby={ `${ modalId }-title` }
81
- >
84
+ <div { ...dialogProps }>
82
85
  <Button
83
86
  className="wp-block-navigation__responsive-container-close"
84
87
  aria-label={ __( 'Close menu' ) }
@@ -18,7 +18,6 @@ import { useContext, useEffect, useRef } from '@wordpress/element';
18
18
  import useNavigationMenu from '../use-navigation-menu';
19
19
  import useCreateNavigationMenu from './use-create-navigation-menu';
20
20
 
21
- const NOOP = () => {};
22
21
  const EMPTY_OBJECT = {};
23
22
  const DRAFT_MENU_PARAMS = [
24
23
  'postType',
@@ -41,13 +40,6 @@ export default function UnsavedInnerBlocks( {
41
40
 
42
41
  const innerBlocksProps = useInnerBlocksProps( blockProps, {
43
42
  renderAppender: hasSelection ? undefined : false,
44
-
45
- // Make the inner blocks 'controlled'. This allows the block to always
46
- // work with controlled inner blocks, smoothing out the switch to using
47
- // an entity.
48
- value: blocks,
49
- onChange: NOOP,
50
- onInput: NOOP,
51
43
  } );
52
44
 
53
45
  const {
@@ -125,22 +117,18 @@ export default function UnsavedInnerBlocks( {
125
117
  ] );
126
118
 
127
119
  return (
128
- <>
129
- <nav { ...blockProps }>
130
- <div className="wp-block-navigation__unsaved-changes">
131
- <Disabled
132
- className={ classnames(
133
- 'wp-block-navigation__unsaved-changes-overlay',
134
- {
135
- 'is-saving': hasSelection,
136
- }
137
- ) }
138
- >
139
- <div { ...innerBlocksProps } />
140
- </Disabled>
141
- { hasSelection && <Spinner /> }
142
- </div>
143
- </nav>
144
- </>
120
+ <div className="wp-block-navigation__unsaved-changes">
121
+ <Disabled
122
+ className={ classnames(
123
+ 'wp-block-navigation__unsaved-changes-overlay',
124
+ {
125
+ 'is-saving': hasSelection,
126
+ }
127
+ ) }
128
+ >
129
+ <div { ...innerBlocksProps } />
130
+ </Disabled>
131
+ { hasSelection && <Spinner /> }
132
+ </div>
145
133
  );
146
134
  }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useRef } from '@wordpress/element';
5
+ import { useDispatch } from '@wordpress/data';
6
+ import { store as noticeStore } from '@wordpress/notices';
7
+
8
+ function useNavigationNotice( { name, message } = {} ) {
9
+ const noticeRef = useRef();
10
+
11
+ const { createWarningNotice, removeNotice } = useDispatch( noticeStore );
12
+
13
+ const showNotice = () => {
14
+ if ( noticeRef.current ) {
15
+ return;
16
+ }
17
+
18
+ noticeRef.current = name;
19
+
20
+ createWarningNotice( message, {
21
+ id: noticeRef.current,
22
+ type: 'snackbar',
23
+ } );
24
+ };
25
+
26
+ const hideNotice = () => {
27
+ if ( ! noticeRef.current ) {
28
+ return;
29
+ }
30
+ removeNotice( noticeRef.current );
31
+ noticeRef.current = null;
32
+ };
33
+
34
+ return [ showNotice, hideNotice ];
35
+ }
36
+
37
+ export default useNavigationNotice;