@wordpress/block-library 7.12.0 → 7.13.1-next.957ca95e4c.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 (824) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/build/archives/index.js +5 -1
  3. package/build/archives/index.js.map +1 -1
  4. package/build/audio/index.js +4 -0
  5. package/build/audio/index.js.map +1 -1
  6. package/build/button/deprecated.js +14 -5
  7. package/build/button/deprecated.js.map +1 -1
  8. package/build/button/index.js +1 -1
  9. package/build/categories/edit.js +3 -1
  10. package/build/categories/edit.js.map +1 -1
  11. package/build/categories/index.js +14 -1
  12. package/build/categories/index.js.map +1 -1
  13. package/build/code/index.js +4 -2
  14. package/build/code/index.js.map +1 -1
  15. package/build/column/index.js +13 -0
  16. package/build/column/index.js.map +1 -1
  17. package/build/columns/deprecated.js +16 -5
  18. package/build/columns/deprecated.js.map +1 -1
  19. package/build/columns/edit.js +6 -2
  20. package/build/columns/edit.js.map +1 -1
  21. package/build/columns/edit.native.js +6 -2
  22. package/build/columns/edit.native.js.map +1 -1
  23. package/build/columns/index.js +13 -0
  24. package/build/columns/index.js.map +1 -1
  25. package/build/columns/transforms.js +10 -1
  26. package/build/columns/transforms.js.map +1 -1
  27. package/build/comment-author-name/index.js +5 -1
  28. package/build/comment-author-name/index.js.map +1 -1
  29. package/build/comment-content/index.js +5 -1
  30. package/build/comment-content/index.js.map +1 -1
  31. package/build/comment-date/index.js +1 -0
  32. package/build/comment-date/index.js.map +1 -1
  33. package/build/comment-edit-link/index.js +5 -1
  34. package/build/comment-edit-link/index.js.map +1 -1
  35. package/build/comment-reply-link/index.js +5 -1
  36. package/build/comment-reply-link/index.js.map +1 -1
  37. package/build/comment-template/index.js +14 -1
  38. package/build/comment-template/index.js.map +1 -1
  39. package/build/comments/index.js +13 -0
  40. package/build/comments/index.js.map +1 -1
  41. package/build/comments-pagination/index.js +13 -0
  42. package/build/comments-pagination/index.js.map +1 -1
  43. package/build/comments-pagination-next/index.js +4 -2
  44. package/build/comments-pagination-next/index.js.map +1 -1
  45. package/build/comments-pagination-numbers/edit.js +5 -1
  46. package/build/comments-pagination-numbers/edit.js.map +1 -1
  47. package/build/comments-pagination-numbers/index.js +14 -1
  48. package/build/comments-pagination-numbers/index.js.map +1 -1
  49. package/build/comments-pagination-previous/index.js +4 -2
  50. package/build/comments-pagination-previous/index.js.map +1 -1
  51. package/build/comments-title/deprecated.js +4 -2
  52. package/build/comments-title/deprecated.js.map +1 -1
  53. package/build/comments-title/index.js +4 -2
  54. package/build/comments-title/index.js.map +1 -1
  55. package/build/cover/deprecated.js +20 -5
  56. package/build/cover/deprecated.js.map +1 -1
  57. package/build/cover/edit/block-controls.js +9 -2
  58. package/build/cover/edit/block-controls.js.map +1 -1
  59. package/build/cover/index.js +13 -0
  60. package/build/cover/index.js.map +1 -1
  61. package/build/cover/shared.js +1 -1
  62. package/build/cover/shared.js.map +1 -1
  63. package/build/embed/icons.js +1 -1
  64. package/build/embed/icons.js.map +1 -1
  65. package/build/gallery/deprecated.js +6 -1
  66. package/build/gallery/deprecated.js.map +1 -1
  67. package/build/gallery/edit.js +15 -2
  68. package/build/gallery/edit.js.map +1 -1
  69. package/build/gallery/gap-styles.js +5 -4
  70. package/build/gallery/gap-styles.js.map +1 -1
  71. package/build/gallery/index.js +5 -0
  72. package/build/gallery/index.js.map +1 -1
  73. package/build/gallery/transforms.js +20 -7
  74. package/build/gallery/transforms.js.map +1 -1
  75. package/build/gallery/utils.js +7 -6
  76. package/build/gallery/utils.js.map +1 -1
  77. package/build/group/deprecated.js +108 -12
  78. package/build/group/deprecated.js.map +1 -1
  79. package/build/group/edit.js +23 -1
  80. package/build/group/edit.js.map +1 -1
  81. package/build/group/index.js +10 -2
  82. package/build/group/index.js.map +1 -1
  83. package/build/group/variations.js +8 -8
  84. package/build/group/variations.js.map +1 -1
  85. package/build/heading/deprecated.js +5 -3
  86. package/build/heading/deprecated.js.map +1 -1
  87. package/build/heading/index.js +3 -1
  88. package/build/heading/index.js.map +1 -1
  89. package/build/heading/transforms.js +3 -1
  90. package/build/heading/transforms.js.map +1 -1
  91. package/build/home-link/edit.js +8 -4
  92. package/build/home-link/edit.js.map +1 -1
  93. package/build/home-link/index.js +14 -1
  94. package/build/home-link/index.js.map +1 -1
  95. package/build/image/edit.js +16 -2
  96. package/build/image/edit.js.map +1 -1
  97. package/build/image/index.js +13 -7
  98. package/build/image/index.js.map +1 -1
  99. package/build/image/use-client-width.js +3 -1
  100. package/build/image/use-client-width.js.map +1 -1
  101. package/build/index.js +1 -1
  102. package/build/index.js.map +1 -1
  103. package/build/index.native.js +9 -18
  104. package/build/index.native.js.map +1 -1
  105. package/build/latest-posts/deprecated.js +14 -1
  106. package/build/latest-posts/deprecated.js.map +1 -1
  107. package/build/latest-posts/index.js +14 -1
  108. package/build/latest-posts/index.js.map +1 -1
  109. package/build/list/deprecated.js +84 -1
  110. package/build/list/deprecated.js.map +1 -1
  111. package/build/list/edit.js +153 -134
  112. package/build/list/edit.js.map +1 -1
  113. package/build/list/index.js +33 -34
  114. package/build/list/index.js.map +1 -1
  115. package/build/list/save.js +1 -5
  116. package/build/list/save.js.map +1 -1
  117. package/build/list/{v2/tag-name.js → tag-name.js} +0 -0
  118. package/build/list/tag-name.js.map +1 -0
  119. package/build/list/{v2/tag-name.native.js → tag-name.native.js} +0 -0
  120. package/build/list/tag-name.native.js.map +1 -0
  121. package/build/list/transforms.js +61 -95
  122. package/build/list/transforms.js.map +1 -1
  123. package/build/list/{v2/migrate.js → utils.js} +3 -2
  124. package/build/list/utils.js.map +1 -0
  125. package/build/list-item/edit.js +3 -1
  126. package/build/list-item/edit.js.map +1 -1
  127. package/build/list-item/edit.native.js +21 -3
  128. package/build/list-item/edit.native.js.map +1 -1
  129. package/build/list-item/hooks/index.js +8 -0
  130. package/build/list-item/hooks/index.js.map +1 -1
  131. package/build/list-item/hooks/use-copy.js +44 -0
  132. package/build/list-item/hooks/use-copy.js.map +1 -0
  133. package/build/list-item/hooks/use-merge.js +0 -1
  134. package/build/list-item/hooks/use-merge.js.map +1 -1
  135. package/build/list-item/hooks/use-outdent-list-item.js +0 -1
  136. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  137. package/build/list-item/hooks/use-space.js +10 -1
  138. package/build/list-item/hooks/use-space.js.map +1 -1
  139. package/build/list-item/index.js +0 -1
  140. package/build/list-item/index.js.map +1 -1
  141. package/build/list-item/list-style-type.native.js +4 -1
  142. package/build/list-item/list-style-type.native.js.map +1 -1
  143. package/build/list-item/utils.js +4 -1
  144. package/build/list-item/utils.js.map +1 -1
  145. package/build/media-text/deprecated.js +5 -1
  146. package/build/media-text/deprecated.js.map +1 -1
  147. package/build/media-text/index.js +17 -0
  148. package/build/media-text/index.js.map +1 -1
  149. package/build/navigation/deprecated.js +6 -1
  150. package/build/navigation/deprecated.js.map +1 -1
  151. package/build/navigation/edit/index.js +125 -41
  152. package/build/navigation/edit/index.js.map +1 -1
  153. package/build/navigation/edit/responsive-wrapper.js +6 -4
  154. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  155. package/build/navigation/edit/unsaved-inner-blocks.js +6 -16
  156. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  157. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +4 -7
  158. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  159. package/build/navigation/index.js +1 -0
  160. package/build/navigation/index.js.map +1 -1
  161. package/build/navigation/menu-items-to-blocks.js +1 -7
  162. package/build/navigation/menu-items-to-blocks.js.map +1 -1
  163. package/build/navigation/use-navigation-menu.js +8 -7
  164. package/build/navigation/use-navigation-menu.js.map +1 -1
  165. package/build/navigation-link/edit.js +6 -8
  166. package/build/navigation-link/edit.js.map +1 -1
  167. package/build/navigation-submenu/edit.js +4 -6
  168. package/build/navigation-submenu/edit.js.map +1 -1
  169. package/build/page-list/edit.js +7 -3
  170. package/build/page-list/edit.js.map +1 -1
  171. package/build/paragraph/deprecated.js +18 -10
  172. package/build/paragraph/deprecated.js.map +1 -1
  173. package/build/paragraph/edit.js +1 -0
  174. package/build/paragraph/edit.js.map +1 -1
  175. package/build/paragraph/index.js +7 -0
  176. package/build/paragraph/index.js.map +1 -1
  177. package/build/paragraph/transforms.js +7 -0
  178. package/build/paragraph/transforms.js.map +1 -1
  179. package/build/post-author/index.js +4 -2
  180. package/build/post-author/index.js.map +1 -1
  181. package/build/post-author-biography/index.js +1 -0
  182. package/build/post-author-biography/index.js.map +1 -1
  183. package/build/post-author-name/index.js +5 -1
  184. package/build/post-author-name/index.js.map +1 -1
  185. package/build/post-comments-count/edit.js +11 -1
  186. package/build/post-comments-count/edit.js.map +1 -1
  187. package/build/post-comments-count/index.js +4 -1
  188. package/build/post-comments-count/index.js.map +1 -1
  189. package/build/post-comments-link/index.js +4 -2
  190. package/build/post-comments-link/index.js.map +1 -1
  191. package/build/post-date/edit.js +9 -2
  192. package/build/post-date/edit.js.map +1 -1
  193. package/build/post-date/index.js +9 -0
  194. package/build/post-date/index.js.map +1 -1
  195. package/build/post-excerpt/index.js +4 -2
  196. package/build/post-excerpt/index.js.map +1 -1
  197. package/build/post-featured-image/edit.js +27 -12
  198. package/build/post-featured-image/edit.js.map +1 -1
  199. package/build/post-featured-image/index.js +12 -0
  200. package/build/post-featured-image/index.js.map +1 -1
  201. package/build/post-navigation-link/index.js +3 -2
  202. package/build/post-navigation-link/index.js.map +1 -1
  203. package/build/post-template/edit.js +8 -4
  204. package/build/post-template/edit.js.map +1 -1
  205. package/build/post-template/index.js +14 -1
  206. package/build/post-template/index.js.map +1 -1
  207. package/build/post-terms/edit.js +0 -1
  208. package/build/post-terms/edit.js.map +1 -1
  209. package/build/post-terms/index.js +5 -3
  210. package/build/post-terms/index.js.map +1 -1
  211. package/build/post-terms/use-post-terms.js +4 -24
  212. package/build/post-terms/use-post-terms.js.map +1 -1
  213. package/build/post-title/index.js +2 -1
  214. package/build/post-title/index.js.map +1 -1
  215. package/build/preformatted/index.js +4 -2
  216. package/build/preformatted/index.js.map +1 -1
  217. package/build/pullquote/deprecated.js +135 -25
  218. package/build/pullquote/deprecated.js.map +1 -1
  219. package/build/pullquote/edit.js +1 -1
  220. package/build/pullquote/edit.js.map +1 -1
  221. package/build/pullquote/edit.native.js +0 -1
  222. package/build/pullquote/edit.native.js.map +1 -1
  223. package/build/pullquote/index.js +13 -6
  224. package/build/pullquote/index.js.map +1 -1
  225. package/build/pullquote/save.js +2 -2
  226. package/build/pullquote/save.js.map +1 -1
  227. package/build/pullquote/transforms.js +14 -33
  228. package/build/pullquote/transforms.js.map +1 -1
  229. package/build/query/deprecated.js +10 -9
  230. package/build/query/deprecated.js.map +1 -1
  231. package/build/query/edit/index.js +19 -8
  232. package/build/query/edit/index.js.map +1 -1
  233. package/build/query/edit/inspector-controls/taxonomy-controls.js +1 -0
  234. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  235. package/build/query/edit/query-placeholder.js +6 -1
  236. package/build/query/edit/query-placeholder.js.map +1 -1
  237. package/build/query/utils.js +35 -9
  238. package/build/query/utils.js.map +1 -1
  239. package/build/query-no-results/edit.js +1 -1
  240. package/build/query-no-results/edit.js.map +1 -1
  241. package/build/query-no-results/index.js +13 -0
  242. package/build/query-no-results/index.js.map +1 -1
  243. package/build/query-pagination-numbers/index.js +4 -2
  244. package/build/query-pagination-numbers/index.js.map +1 -1
  245. package/build/query-title/edit.js +10 -1
  246. package/build/query-title/edit.js.map +1 -1
  247. package/build/query-title/index.js +8 -2
  248. package/build/query-title/index.js.map +1 -1
  249. package/build/quote/deprecated.js +13 -6
  250. package/build/quote/deprecated.js.map +1 -1
  251. package/build/quote/index.js +4 -2
  252. package/build/quote/index.js.map +1 -1
  253. package/build/quote/transforms.js +22 -37
  254. package/build/quote/transforms.js.map +1 -1
  255. package/build/separator/deprecated.js +3 -4
  256. package/build/separator/deprecated.js.map +1 -1
  257. package/build/separator/index.js +1 -0
  258. package/build/separator/index.js.map +1 -1
  259. package/build/social-link/icons/reddit.js +1 -1
  260. package/build/social-link/icons/reddit.js.map +1 -1
  261. package/build/social-links/edit.js +43 -9
  262. package/build/social-links/edit.js.map +1 -1
  263. package/build/social-links/index.js +9 -0
  264. package/build/social-links/index.js.map +1 -1
  265. package/build/spacer/index.js +7 -1
  266. package/build/spacer/index.js.map +1 -1
  267. package/build/table/index.js +4 -0
  268. package/build/table/index.js.map +1 -1
  269. package/build/table/state.js +9 -3
  270. package/build/table/state.js.map +1 -1
  271. package/build/table-of-contents/index.js +24 -1
  272. package/build/table-of-contents/index.js.map +1 -1
  273. package/build/tag-cloud/index.js +5 -1
  274. package/build/tag-cloud/index.js.map +1 -1
  275. package/build/template-part/index.js +2 -2
  276. package/build/template-part/index.js.map +1 -1
  277. package/build/term-description/index.js +10 -0
  278. package/build/term-description/index.js.map +1 -1
  279. package/build/text-columns/edit.js +3 -1
  280. package/build/text-columns/edit.js.map +1 -1
  281. package/build/text-columns/save.js +3 -1
  282. package/build/text-columns/save.js.map +1 -1
  283. package/build/verse/index.js +2 -0
  284. package/build/verse/index.js.map +1 -1
  285. package/build/video/index.js +4 -0
  286. package/build/video/index.js.map +1 -1
  287. package/build-module/archives/index.js +5 -1
  288. package/build-module/archives/index.js.map +1 -1
  289. package/build-module/audio/index.js +4 -0
  290. package/build-module/audio/index.js.map +1 -1
  291. package/build-module/button/deprecated.js +14 -4
  292. package/build-module/button/deprecated.js.map +1 -1
  293. package/build-module/button/index.js +1 -1
  294. package/build-module/categories/edit.js +4 -2
  295. package/build-module/categories/edit.js.map +1 -1
  296. package/build-module/categories/index.js +14 -1
  297. package/build-module/categories/index.js.map +1 -1
  298. package/build-module/code/index.js +4 -2
  299. package/build-module/code/index.js.map +1 -1
  300. package/build-module/column/index.js +13 -0
  301. package/build-module/column/index.js.map +1 -1
  302. package/build-module/columns/deprecated.js +16 -4
  303. package/build-module/columns/deprecated.js.map +1 -1
  304. package/build-module/columns/edit.js +7 -3
  305. package/build-module/columns/edit.js.map +1 -1
  306. package/build-module/columns/edit.native.js +7 -3
  307. package/build-module/columns/edit.native.js.map +1 -1
  308. package/build-module/columns/index.js +13 -0
  309. package/build-module/columns/index.js.map +1 -1
  310. package/build-module/columns/transforms.js +10 -1
  311. package/build-module/columns/transforms.js.map +1 -1
  312. package/build-module/comment-author-name/index.js +5 -1
  313. package/build-module/comment-author-name/index.js.map +1 -1
  314. package/build-module/comment-content/index.js +5 -1
  315. package/build-module/comment-content/index.js.map +1 -1
  316. package/build-module/comment-date/index.js +1 -0
  317. package/build-module/comment-date/index.js.map +1 -1
  318. package/build-module/comment-edit-link/index.js +5 -1
  319. package/build-module/comment-edit-link/index.js.map +1 -1
  320. package/build-module/comment-reply-link/index.js +5 -1
  321. package/build-module/comment-reply-link/index.js.map +1 -1
  322. package/build-module/comment-template/index.js +14 -1
  323. package/build-module/comment-template/index.js.map +1 -1
  324. package/build-module/comments/index.js +13 -0
  325. package/build-module/comments/index.js.map +1 -1
  326. package/build-module/comments-pagination/index.js +13 -0
  327. package/build-module/comments-pagination/index.js.map +1 -1
  328. package/build-module/comments-pagination-next/index.js +4 -2
  329. package/build-module/comments-pagination-next/index.js.map +1 -1
  330. package/build-module/comments-pagination-numbers/edit.js +5 -1
  331. package/build-module/comments-pagination-numbers/edit.js.map +1 -1
  332. package/build-module/comments-pagination-numbers/index.js +14 -1
  333. package/build-module/comments-pagination-numbers/index.js.map +1 -1
  334. package/build-module/comments-pagination-previous/index.js +4 -2
  335. package/build-module/comments-pagination-previous/index.js.map +1 -1
  336. package/build-module/comments-title/deprecated.js +4 -2
  337. package/build-module/comments-title/deprecated.js.map +1 -1
  338. package/build-module/comments-title/index.js +4 -2
  339. package/build-module/comments-title/index.js.map +1 -1
  340. package/build-module/cover/deprecated.js +20 -4
  341. package/build-module/cover/deprecated.js.map +1 -1
  342. package/build-module/cover/edit/block-controls.js +10 -3
  343. package/build-module/cover/edit/block-controls.js.map +1 -1
  344. package/build-module/cover/index.js +13 -0
  345. package/build-module/cover/index.js.map +1 -1
  346. package/build-module/cover/shared.js +1 -1
  347. package/build-module/cover/shared.js.map +1 -1
  348. package/build-module/embed/icons.js +1 -1
  349. package/build-module/embed/icons.js.map +1 -1
  350. package/build-module/gallery/deprecated.js +7 -2
  351. package/build-module/gallery/deprecated.js.map +1 -1
  352. package/build-module/gallery/edit.js +15 -2
  353. package/build-module/gallery/edit.js.map +1 -1
  354. package/build-module/gallery/gap-styles.js +6 -5
  355. package/build-module/gallery/gap-styles.js.map +1 -1
  356. package/build-module/gallery/index.js +5 -0
  357. package/build-module/gallery/index.js.map +1 -1
  358. package/build-module/gallery/transforms.js +20 -7
  359. package/build-module/gallery/transforms.js.map +1 -1
  360. package/build-module/gallery/utils.js +7 -6
  361. package/build-module/gallery/utils.js.map +1 -1
  362. package/build-module/group/deprecated.js +109 -12
  363. package/build-module/group/deprecated.js.map +1 -1
  364. package/build-module/group/edit.js +25 -2
  365. package/build-module/group/edit.js.map +1 -1
  366. package/build-module/group/index.js +10 -2
  367. package/build-module/group/index.js.map +1 -1
  368. package/build-module/group/variations.js +8 -8
  369. package/build-module/group/variations.js.map +1 -1
  370. package/build-module/heading/deprecated.js +5 -2
  371. package/build-module/heading/deprecated.js.map +1 -1
  372. package/build-module/heading/index.js +3 -1
  373. package/build-module/heading/index.js.map +1 -1
  374. package/build-module/heading/transforms.js +3 -1
  375. package/build-module/heading/transforms.js.map +1 -1
  376. package/build-module/home-link/edit.js +10 -6
  377. package/build-module/home-link/edit.js.map +1 -1
  378. package/build-module/home-link/index.js +14 -1
  379. package/build-module/home-link/index.js.map +1 -1
  380. package/build-module/image/edit.js +18 -4
  381. package/build-module/image/edit.js.map +1 -1
  382. package/build-module/image/index.js +13 -7
  383. package/build-module/image/index.js.map +1 -1
  384. package/build-module/image/use-client-width.js +3 -1
  385. package/build-module/image/use-client-width.js.map +1 -1
  386. package/build-module/index.js +1 -1
  387. package/build-module/index.js.map +1 -1
  388. package/build-module/index.native.js +9 -17
  389. package/build-module/index.native.js.map +1 -1
  390. package/build-module/latest-posts/deprecated.js +14 -1
  391. package/build-module/latest-posts/deprecated.js.map +1 -1
  392. package/build-module/latest-posts/index.js +14 -1
  393. package/build-module/latest-posts/index.js.map +1 -1
  394. package/build-module/list/deprecated.js +83 -1
  395. package/build-module/list/deprecated.js.map +1 -1
  396. package/build-module/list/edit.js +151 -134
  397. package/build-module/list/edit.js.map +1 -1
  398. package/build-module/list/index.js +33 -29
  399. package/build-module/list/index.js.map +1 -1
  400. package/build-module/list/save.js +2 -6
  401. package/build-module/list/save.js.map +1 -1
  402. package/build-module/list/{v2/tag-name.js → tag-name.js} +0 -0
  403. package/build-module/list/tag-name.js.map +1 -0
  404. package/build-module/list/{v2/tag-name.native.js → tag-name.native.js} +0 -0
  405. package/build-module/list/tag-name.native.js.map +1 -0
  406. package/build-module/list/transforms.js +62 -97
  407. package/build-module/list/transforms.js.map +1 -1
  408. package/build-module/list/{v2/migrate.js → utils.js} +3 -2
  409. package/build-module/list/utils.js.map +1 -0
  410. package/build-module/list-item/edit.js +4 -2
  411. package/build-module/list-item/edit.js.map +1 -1
  412. package/build-module/list-item/edit.native.js +19 -3
  413. package/build-module/list-item/edit.native.js.map +1 -1
  414. package/build-module/list-item/hooks/index.js +1 -0
  415. package/build-module/list-item/hooks/index.js.map +1 -1
  416. package/build-module/list-item/hooks/use-copy.js +34 -0
  417. package/build-module/list-item/hooks/use-copy.js.map +1 -0
  418. package/build-module/list-item/hooks/use-merge.js +0 -1
  419. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  420. package/build-module/list-item/hooks/use-outdent-list-item.js +0 -1
  421. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  422. package/build-module/list-item/hooks/use-space.js +10 -1
  423. package/build-module/list-item/hooks/use-space.js.map +1 -1
  424. package/build-module/list-item/index.js +0 -1
  425. package/build-module/list-item/index.js.map +1 -1
  426. package/build-module/list-item/list-style-type.native.js +3 -1
  427. package/build-module/list-item/list-style-type.native.js.map +1 -1
  428. package/build-module/list-item/utils.js +4 -1
  429. package/build-module/list-item/utils.js.map +1 -1
  430. package/build-module/media-text/deprecated.js +6 -2
  431. package/build-module/media-text/deprecated.js.map +1 -1
  432. package/build-module/media-text/index.js +17 -0
  433. package/build-module/media-text/index.js.map +1 -1
  434. package/build-module/navigation/deprecated.js +7 -2
  435. package/build-module/navigation/deprecated.js.map +1 -1
  436. package/build-module/navigation/edit/index.js +125 -43
  437. package/build-module/navigation/edit/index.js.map +1 -1
  438. package/build-module/navigation/edit/responsive-wrapper.js +6 -4
  439. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  440. package/build-module/navigation/edit/unsaved-inner-blocks.js +7 -16
  441. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  442. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +4 -7
  443. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  444. package/build-module/navigation/index.js +1 -0
  445. package/build-module/navigation/index.js.map +1 -1
  446. package/build-module/navigation/menu-items-to-blocks.js +1 -6
  447. package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
  448. package/build-module/navigation/use-navigation-menu.js +8 -7
  449. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  450. package/build-module/navigation-link/edit.js +7 -9
  451. package/build-module/navigation-link/edit.js.map +1 -1
  452. package/build-module/navigation-submenu/edit.js +5 -7
  453. package/build-module/navigation-submenu/edit.js.map +1 -1
  454. package/build-module/page-list/edit.js +7 -2
  455. package/build-module/page-list/edit.js.map +1 -1
  456. package/build-module/paragraph/deprecated.js +18 -9
  457. package/build-module/paragraph/deprecated.js.map +1 -1
  458. package/build-module/paragraph/edit.js +1 -0
  459. package/build-module/paragraph/edit.js.map +1 -1
  460. package/build-module/paragraph/index.js +7 -0
  461. package/build-module/paragraph/index.js.map +1 -1
  462. package/build-module/paragraph/transforms.js +7 -0
  463. package/build-module/paragraph/transforms.js.map +1 -1
  464. package/build-module/post-author/index.js +4 -2
  465. package/build-module/post-author/index.js.map +1 -1
  466. package/build-module/post-author-biography/index.js +1 -0
  467. package/build-module/post-author-biography/index.js.map +1 -1
  468. package/build-module/post-author-name/index.js +5 -1
  469. package/build-module/post-author-name/index.js.map +1 -1
  470. package/build-module/post-comments-count/edit.js +10 -1
  471. package/build-module/post-comments-count/edit.js.map +1 -1
  472. package/build-module/post-comments-count/index.js +4 -1
  473. package/build-module/post-comments-count/index.js.map +1 -1
  474. package/build-module/post-comments-link/index.js +4 -2
  475. package/build-module/post-comments-link/index.js.map +1 -1
  476. package/build-module/post-date/edit.js +9 -2
  477. package/build-module/post-date/edit.js.map +1 -1
  478. package/build-module/post-date/index.js +9 -0
  479. package/build-module/post-date/index.js.map +1 -1
  480. package/build-module/post-excerpt/index.js +4 -2
  481. package/build-module/post-excerpt/index.js.map +1 -1
  482. package/build-module/post-featured-image/edit.js +28 -13
  483. package/build-module/post-featured-image/edit.js.map +1 -1
  484. package/build-module/post-featured-image/index.js +12 -0
  485. package/build-module/post-featured-image/index.js.map +1 -1
  486. package/build-module/post-navigation-link/index.js +3 -2
  487. package/build-module/post-navigation-link/index.js.map +1 -1
  488. package/build-module/post-template/edit.js +8 -4
  489. package/build-module/post-template/edit.js.map +1 -1
  490. package/build-module/post-template/index.js +14 -1
  491. package/build-module/post-template/index.js.map +1 -1
  492. package/build-module/post-terms/edit.js +0 -1
  493. package/build-module/post-terms/edit.js.map +1 -1
  494. package/build-module/post-terms/index.js +5 -3
  495. package/build-module/post-terms/index.js.map +1 -1
  496. package/build-module/post-terms/use-post-terms.js +5 -25
  497. package/build-module/post-terms/use-post-terms.js.map +1 -1
  498. package/build-module/post-title/index.js +2 -1
  499. package/build-module/post-title/index.js.map +1 -1
  500. package/build-module/preformatted/index.js +4 -2
  501. package/build-module/preformatted/index.js.map +1 -1
  502. package/build-module/pullquote/deprecated.js +134 -25
  503. package/build-module/pullquote/deprecated.js.map +1 -1
  504. package/build-module/pullquote/edit.js +1 -1
  505. package/build-module/pullquote/edit.js.map +1 -1
  506. package/build-module/pullquote/edit.native.js +0 -1
  507. package/build-module/pullquote/edit.native.js.map +1 -1
  508. package/build-module/pullquote/index.js +13 -6
  509. package/build-module/pullquote/index.js.map +1 -1
  510. package/build-module/pullquote/save.js +2 -2
  511. package/build-module/pullquote/save.js.map +1 -1
  512. package/build-module/pullquote/transforms.js +15 -34
  513. package/build-module/pullquote/transforms.js.map +1 -1
  514. package/build-module/query/deprecated.js +10 -8
  515. package/build-module/query/deprecated.js.map +1 -1
  516. package/build-module/query/edit/index.js +23 -12
  517. package/build-module/query/edit/index.js.map +1 -1
  518. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +1 -0
  519. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  520. package/build-module/query/edit/query-placeholder.js +6 -1
  521. package/build-module/query/edit/query-placeholder.js.map +1 -1
  522. package/build-module/query/utils.js +32 -7
  523. package/build-module/query/utils.js.map +1 -1
  524. package/build-module/query-no-results/edit.js +1 -1
  525. package/build-module/query-no-results/edit.js.map +1 -1
  526. package/build-module/query-no-results/index.js +13 -0
  527. package/build-module/query-no-results/index.js.map +1 -1
  528. package/build-module/query-pagination-numbers/index.js +4 -2
  529. package/build-module/query-pagination-numbers/index.js.map +1 -1
  530. package/build-module/query-title/edit.js +10 -1
  531. package/build-module/query-title/edit.js.map +1 -1
  532. package/build-module/query-title/index.js +8 -2
  533. package/build-module/query-title/index.js.map +1 -1
  534. package/build-module/quote/deprecated.js +13 -5
  535. package/build-module/quote/deprecated.js.map +1 -1
  536. package/build-module/quote/index.js +4 -2
  537. package/build-module/quote/index.js.map +1 -1
  538. package/build-module/quote/transforms.js +23 -38
  539. package/build-module/quote/transforms.js.map +1 -1
  540. package/build-module/separator/deprecated.js +3 -3
  541. package/build-module/separator/deprecated.js.map +1 -1
  542. package/build-module/separator/index.js +1 -0
  543. package/build-module/separator/index.js.map +1 -1
  544. package/build-module/social-link/icons/reddit.js +1 -1
  545. package/build-module/social-link/icons/reddit.js.map +1 -1
  546. package/build-module/social-links/edit.js +45 -12
  547. package/build-module/social-links/edit.js.map +1 -1
  548. package/build-module/social-links/index.js +9 -0
  549. package/build-module/social-links/index.js.map +1 -1
  550. package/build-module/spacer/index.js +7 -1
  551. package/build-module/spacer/index.js.map +1 -1
  552. package/build-module/table/index.js +4 -0
  553. package/build-module/table/index.js.map +1 -1
  554. package/build-module/table/state.js +10 -4
  555. package/build-module/table/state.js.map +1 -1
  556. package/build-module/table-of-contents/index.js +24 -1
  557. package/build-module/table-of-contents/index.js.map +1 -1
  558. package/build-module/tag-cloud/index.js +5 -1
  559. package/build-module/tag-cloud/index.js.map +1 -1
  560. package/build-module/template-part/index.js +2 -2
  561. package/build-module/template-part/index.js.map +1 -1
  562. package/build-module/term-description/index.js +10 -0
  563. package/build-module/term-description/index.js.map +1 -1
  564. package/build-module/text-columns/edit.js +4 -2
  565. package/build-module/text-columns/edit.js.map +1 -1
  566. package/build-module/text-columns/save.js +4 -2
  567. package/build-module/text-columns/save.js.map +1 -1
  568. package/build-module/verse/index.js +2 -0
  569. package/build-module/verse/index.js.map +1 -1
  570. package/build-module/video/index.js +4 -0
  571. package/build-module/video/index.js.map +1 -1
  572. package/build-style/audio/style-rtl.css +3 -0
  573. package/build-style/audio/style.css +3 -0
  574. package/build-style/button/style-rtl.css +7 -10
  575. package/build-style/button/style.css +7 -10
  576. package/build-style/code/editor-rtl.css +79 -0
  577. package/build-style/code/editor.css +79 -0
  578. package/build-style/cover/editor-rtl.css +0 -3
  579. package/build-style/cover/editor.css +0 -3
  580. package/build-style/editor-rtl.css +94 -146
  581. package/build-style/editor.css +94 -146
  582. package/build-style/group/editor-rtl.css +9 -10
  583. package/build-style/group/editor.css +9 -10
  584. package/build-style/image/editor-rtl.css +21 -2
  585. package/build-style/image/editor.css +21 -2
  586. package/build-style/media-text/style-rtl.css +1 -0
  587. package/build-style/media-text/style.css +1 -0
  588. package/build-style/navigation/editor-rtl.css +11 -23
  589. package/build-style/navigation/editor.css +11 -23
  590. package/build-style/navigation/style-rtl.css +10 -3
  591. package/build-style/navigation/style.css +10 -3
  592. package/build-style/paragraph/editor-rtl.css +1 -1
  593. package/build-style/paragraph/editor.css +1 -1
  594. package/build-style/post-date/style-rtl.css +79 -0
  595. package/build-style/post-date/style.css +79 -0
  596. package/build-style/post-featured-image/editor-rtl.css +45 -43
  597. package/build-style/post-featured-image/editor.css +45 -43
  598. package/build-style/post-featured-image/style-rtl.css +1 -0
  599. package/build-style/post-featured-image/style.css +1 -0
  600. package/build-style/post-title/style-rtl.css +1 -0
  601. package/build-style/post-title/style.css +1 -0
  602. package/build-style/pullquote/editor-rtl.css +0 -12
  603. package/build-style/pullquote/editor.css +0 -12
  604. package/build-style/pullquote/style-rtl.css +1 -8
  605. package/build-style/pullquote/style.css +1 -8
  606. package/build-style/query-title/style-rtl.css +79 -0
  607. package/build-style/query-title/style.css +79 -0
  608. package/build-style/site-logo/editor-rtl.css +3 -52
  609. package/build-style/site-logo/editor.css +3 -52
  610. package/build-style/social-links/style-rtl.css +2 -2
  611. package/build-style/social-links/style.css +2 -2
  612. package/build-style/style-rtl.css +37 -23
  613. package/build-style/style.css +37 -23
  614. package/build-style/video/style-rtl.css +3 -0
  615. package/build-style/video/style.css +3 -0
  616. package/package.json +30 -29
  617. package/src/archives/block.json +5 -1
  618. package/src/audio/block.json +4 -0
  619. package/src/audio/style.scss +2 -0
  620. package/src/button/block.json +1 -1
  621. package/src/button/deprecated.js +21 -22
  622. package/src/button/style.scss +7 -14
  623. package/src/calendar/index.php +2 -2
  624. package/src/categories/block.json +14 -1
  625. package/src/categories/edit.js +2 -2
  626. package/src/code/block.json +4 -2
  627. package/src/code/editor.scss +3 -0
  628. package/src/column/block.json +13 -0
  629. package/src/columns/block.json +13 -0
  630. package/src/columns/deprecated.js +10 -4
  631. package/src/columns/edit.js +7 -3
  632. package/src/columns/edit.native.js +7 -3
  633. package/src/columns/transforms.js +17 -3
  634. package/src/comment-author-name/block.json +5 -1
  635. package/src/comment-content/block.json +5 -1
  636. package/src/comment-date/block.json +1 -0
  637. package/src/comment-edit-link/block.json +5 -1
  638. package/src/comment-reply-link/block.json +5 -1
  639. package/src/comment-template/block.json +14 -1
  640. package/src/comments/block.json +13 -0
  641. package/src/comments/index.php +6 -5
  642. package/src/comments-pagination/block.json +13 -0
  643. package/src/comments-pagination-next/block.json +4 -2
  644. package/src/comments-pagination-numbers/block.json +14 -1
  645. package/src/comments-pagination-numbers/edit.js +12 -3
  646. package/src/comments-pagination-previous/block.json +4 -2
  647. package/src/comments-title/block.json +4 -2
  648. package/src/cover/block.json +13 -0
  649. package/src/cover/deprecated.js +11 -4
  650. package/src/cover/edit/block-controls.js +15 -3
  651. package/src/cover/editor.scss +0 -4
  652. package/src/cover/shared.js +2 -1
  653. package/src/editor.scss +1 -0
  654. package/src/embed/icons.js +1 -1
  655. package/src/gallery/block.json +5 -0
  656. package/src/gallery/deprecated.js +4 -2
  657. package/src/gallery/edit.js +22 -2
  658. package/src/gallery/gap-styles.js +10 -6
  659. package/src/gallery/index.php +23 -2
  660. package/src/gallery/transforms.js +18 -5
  661. package/src/gallery/utils.js +11 -7
  662. package/src/group/block.json +10 -2
  663. package/src/group/deprecated.js +89 -2
  664. package/src/group/edit.js +15 -2
  665. package/src/group/editor.scss +4 -6
  666. package/src/group/variations.js +4 -3
  667. package/src/heading/block.json +3 -1
  668. package/src/heading/deprecated.js +4 -2
  669. package/src/home-link/block.json +14 -1
  670. package/src/home-link/edit.js +19 -20
  671. package/src/image/block.json +13 -7
  672. package/src/image/edit.js +22 -4
  673. package/src/image/editor.scss +39 -3
  674. package/src/image/index.php +1 -1
  675. package/src/image/use-client-width.js +1 -1
  676. package/src/index.js +1 -4
  677. package/src/index.native.js +17 -23
  678. package/src/latest-posts/block.json +14 -1
  679. package/src/list/block.json +4 -0
  680. package/src/list/deprecated.js +71 -1
  681. package/src/list/edit.js +146 -133
  682. package/src/list/index.js +25 -24
  683. package/src/list/save.js +3 -4
  684. package/src/list/{v2/tag-name.js → tag-name.js} +0 -0
  685. package/src/list/{v2/tag-name.native.js → tag-name.native.js} +0 -0
  686. package/src/list/test/__snapshots__/edit.native.js.snap +14 -2
  687. package/src/list/test/edit.native.js +0 -154
  688. package/src/list/transforms.js +57 -111
  689. package/src/list/{v2/migrate.js → utils.js} +2 -2
  690. package/src/list-item/block.json +0 -1
  691. package/src/list-item/edit.js +2 -1
  692. package/src/list-item/edit.native.js +32 -2
  693. package/src/list-item/hooks/index.js +1 -0
  694. package/src/list-item/hooks/use-copy.js +38 -0
  695. package/src/list-item/hooks/use-space.js +10 -2
  696. package/src/list-item/list-style-type.native.js +8 -1
  697. package/src/list-item/style.native.scss +12 -0
  698. package/src/media-text/block.json +17 -0
  699. package/src/media-text/deprecated.js +3 -2
  700. package/src/media-text/style.scss +2 -0
  701. package/src/navigation/block.json +1 -0
  702. package/src/navigation/deprecated.js +4 -2
  703. package/src/navigation/edit/index.js +173 -85
  704. package/src/navigation/edit/responsive-wrapper.js +8 -3
  705. package/src/navigation/edit/unsaved-inner-blocks.js +17 -25
  706. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +31 -37
  707. package/src/navigation/editor.scss +5 -25
  708. package/src/navigation/index.php +24 -24
  709. package/src/navigation/menu-items-to-blocks.js +3 -6
  710. package/src/navigation/style.scss +14 -4
  711. package/src/navigation/test/use-navigation-menu.js +18 -1
  712. package/src/navigation/use-navigation-menu.js +11 -8
  713. package/src/navigation-link/edit.js +9 -13
  714. package/src/navigation-submenu/edit.js +9 -13
  715. package/src/page-list/edit.js +6 -2
  716. package/src/paragraph/block.json +7 -0
  717. package/src/paragraph/deprecated.js +33 -35
  718. package/src/paragraph/edit.js +1 -0
  719. package/src/paragraph/editor.scss +5 -3
  720. package/src/post-author/block.json +4 -2
  721. package/src/post-author-biography/block.json +1 -0
  722. package/src/post-author-name/block.json +5 -1
  723. package/src/post-comments-count/block.json +4 -1
  724. package/src/post-comments-count/edit.js +10 -2
  725. package/src/post-comments-link/block.json +4 -2
  726. package/src/post-date/block.json +9 -0
  727. package/src/post-date/edit.js +12 -2
  728. package/src/post-date/index.php +10 -2
  729. package/src/post-date/style.scss +4 -0
  730. package/src/post-excerpt/block.json +4 -2
  731. package/src/post-featured-image/block.json +12 -0
  732. package/src/post-featured-image/edit.js +43 -13
  733. package/src/post-featured-image/editor.scss +44 -53
  734. package/src/post-featured-image/index.php +61 -4
  735. package/src/post-featured-image/style.scss +1 -0
  736. package/src/post-navigation-link/block.json +3 -2
  737. package/src/post-template/block.json +15 -1
  738. package/src/post-template/edit.js +6 -1
  739. package/src/post-template/index.php +7 -4
  740. package/src/post-terms/block.json +5 -3
  741. package/src/post-terms/edit.js +0 -1
  742. package/src/post-terms/use-post-terms.js +10 -15
  743. package/src/post-title/block.json +2 -1
  744. package/src/post-title/style.scss +2 -0
  745. package/src/preformatted/block.json +4 -2
  746. package/src/pullquote/block.json +11 -4
  747. package/src/pullquote/deprecated.js +490 -412
  748. package/src/pullquote/edit.js +1 -1
  749. package/src/pullquote/edit.native.js +0 -1
  750. package/src/pullquote/editor.scss +0 -16
  751. package/src/pullquote/index.js +1 -3
  752. package/src/pullquote/save.js +1 -1
  753. package/src/pullquote/style.scss +0 -11
  754. package/src/pullquote/transforms.js +17 -33
  755. package/src/query/deprecated.js +4 -9
  756. package/src/query/edit/index.js +28 -15
  757. package/src/query/edit/inspector-controls/taxonomy-controls.js +1 -1
  758. package/src/query/edit/query-placeholder.js +17 -2
  759. package/src/query/utils.js +29 -7
  760. package/src/query-no-results/block.json +13 -0
  761. package/src/query-no-results/edit.js +1 -1
  762. package/src/query-pagination-numbers/block.json +4 -2
  763. package/src/query-title/block.json +8 -2
  764. package/src/query-title/edit.js +19 -2
  765. package/src/query-title/index.php +11 -1
  766. package/src/query-title/style.scss +4 -0
  767. package/src/quote/block.json +4 -2
  768. package/src/quote/deprecated.js +6 -5
  769. package/src/quote/transforms.js +4 -18
  770. package/src/search/index.php +1 -1
  771. package/src/separator/block.json +1 -0
  772. package/src/separator/deprecated.js +2 -3
  773. package/src/site-logo/editor.scss +8 -66
  774. package/src/social-link/icons/reddit.js +1 -1
  775. package/src/social-link/index.php +1 -1
  776. package/src/social-link/socials-with-bg.scss +1 -1
  777. package/src/social-link/socials-without-bg.scss +1 -1
  778. package/src/social-links/block.json +9 -0
  779. package/src/social-links/edit.js +47 -19
  780. package/src/spacer/block.json +7 -1
  781. package/src/style.scss +2 -0
  782. package/src/table/block.json +4 -0
  783. package/src/table/state.js +21 -19
  784. package/src/table-of-contents/block.json +24 -1
  785. package/src/tag-cloud/block.json +5 -1
  786. package/src/template-part/index.js +3 -2
  787. package/src/term-description/block.json +10 -0
  788. package/src/text-columns/edit.js +2 -2
  789. package/src/text-columns/save.js +2 -2
  790. package/src/verse/block.json +2 -0
  791. package/src/video/block.json +4 -0
  792. package/src/video/style.scss +2 -0
  793. package/build/list/v2/deprecated.js +0 -117
  794. package/build/list/v2/deprecated.js.map +0 -1
  795. package/build/list/v2/edit.js +0 -200
  796. package/build/list/v2/edit.js.map +0 -1
  797. package/build/list/v2/index.js +0 -36
  798. package/build/list/v2/index.js.map +0 -1
  799. package/build/list/v2/migrate.js.map +0 -1
  800. package/build/list/v2/save.js +0 -34
  801. package/build/list/v2/save.js.map +0 -1
  802. package/build/list/v2/tag-name.js.map +0 -1
  803. package/build/list/v2/tag-name.native.js.map +0 -1
  804. package/build/list/v2/transforms.js +0 -137
  805. package/build/list/v2/transforms.js.map +0 -1
  806. package/build-module/list/v2/deprecated.js +0 -104
  807. package/build-module/list/v2/deprecated.js.map +0 -1
  808. package/build-module/list/v2/edit.js +0 -179
  809. package/build-module/list/v2/edit.js.map +0 -1
  810. package/build-module/list/v2/index.js +0 -21
  811. package/build-module/list/v2/index.js.map +0 -1
  812. package/build-module/list/v2/migrate.js.map +0 -1
  813. package/build-module/list/v2/save.js +0 -23
  814. package/build-module/list/v2/save.js.map +0 -1
  815. package/build-module/list/v2/tag-name.js.map +0 -1
  816. package/build-module/list/v2/tag-name.native.js.map +0 -1
  817. package/build-module/list/v2/transforms.js +0 -127
  818. package/build-module/list/v2/transforms.js.map +0 -1
  819. package/src/list/test/migrate.js +0 -158
  820. package/src/list/v2/deprecated.js +0 -89
  821. package/src/list/v2/edit.js +0 -192
  822. package/src/list/v2/index.js +0 -22
  823. package/src/list/v2/save.js +0 -18
  824. package/src/list/v2/transforms.js +0 -120
@@ -1,13 +1,8 @@
1
- import { createElement } from "@wordpress/element";
1
+ import { createElement, Fragment } from "@wordpress/element";
2
2
 
3
- /**
4
- * External dependencies
5
- */
6
- import classnames from 'classnames';
7
3
  /**
8
4
  * WordPress dependencies
9
5
  */
10
-
11
6
  import { useInnerBlocksProps } from '@wordpress/block-editor';
12
7
  import { Disabled, Spinner } from '@wordpress/components';
13
8
  import { store as coreStore } from '@wordpress/core-data';
@@ -30,7 +25,6 @@ const DEFAULT_BLOCK = {
30
25
  const ALLOWED_BLOCKS = ['core/navigation-link', 'core/search', 'core/social-links', 'core/page-list', 'core/spacer', 'core/home-link', 'core/site-title', 'core/site-logo', 'core/navigation-submenu'];
31
26
  export default function UnsavedInnerBlocks(_ref) {
32
27
  let {
33
- blockProps,
34
28
  blocks,
35
29
  clientId,
36
30
  hasSavedUnsavedInnerBlocks,
@@ -48,8 +42,9 @@ export default function UnsavedInnerBlocks(_ref) {
48
42
  // from the original inner blocks from the post content then the
49
43
  // user has made changes to the inner blocks. At this point the inner
50
44
  // blocks can be considered "dirty".
45
+ // We also make sure the current innerBlocks had a chance to be set.
51
46
 
52
- const innerBlocksAreDirty = blocks !== originalBlocks.current;
47
+ const innerBlocksAreDirty = !!originalBlocks.current && blocks !== originalBlocks.current;
53
48
  const shouldDirectInsert = useMemo(() => blocks.every(_ref2 => {
54
49
  let {
55
50
  name
@@ -60,7 +55,9 @@ export default function UnsavedInnerBlocks(_ref) {
60
55
 
61
56
  const isDisabled = useContext(Disabled.Context);
62
57
  const savingLock = useRef(false);
63
- const innerBlocksProps = useInnerBlocksProps(blockProps, {
58
+ const innerBlocksProps = useInnerBlocksProps({
59
+ className: 'wp-block-navigation__container'
60
+ }, {
64
61
  renderAppender: hasSelection ? undefined : false,
65
62
  allowedBlocks: ALLOWED_BLOCKS,
66
63
  __experimentalDefaultBlock: DEFAULT_BLOCK,
@@ -118,12 +115,6 @@ export default function UnsavedInnerBlocks(_ref) {
118
115
  });
119
116
  }, [isDisabled, isSaving, hasResolvedDraftNavigationMenus, hasResolvedNavigationMenus, draftNavigationMenus, navigationMenus, hasSelection, createNavigationMenu, blocks]);
120
117
  const Wrapper = isSaving ? Disabled : 'div';
121
- return createElement(Wrapper, {
122
- className: "wp-block-navigation__unsaved-changes"
123
- }, createElement("div", {
124
- className: classnames('wp-block-navigation__unsaved-changes-overlay', {
125
- 'is-saving': isSaving
126
- })
127
- }, createElement("div", innerBlocksProps)), isSaving && createElement(Spinner, null));
118
+ return createElement(Fragment, null, createElement(Wrapper, innerBlocksProps), isSaving && createElement(Spinner, null));
128
119
  }
129
120
  //# sourceMappingURL=unsaved-inner-blocks.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/unsaved-inner-blocks.js"],"names":["classnames","useInnerBlocksProps","Disabled","Spinner","store","coreStore","useSelect","useContext","useEffect","useRef","useMemo","useNavigationMenu","useCreateNavigationMenu","EMPTY_OBJECT","DRAFT_MENU_PARAMS","status","per_page","DEFAULT_BLOCK","name","ALLOWED_BLOCKS","UnsavedInnerBlocks","blockProps","blocks","clientId","hasSavedUnsavedInnerBlocks","onSave","hasSelection","originalBlocks","current","innerBlocksAreDirty","shouldDirectInsert","every","isDisabled","Context","savingLock","innerBlocksProps","renderAppender","undefined","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","isSaving","draftNavigationMenus","hasResolvedDraftNavigationMenus","select","getEntityRecords","hasFinishedResolution","isSavingEntityRecord","hasResolvedNavigationMenus","navigationMenus","create","createNavigationMenu","then","menu","Wrapper"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps } from '@wordpress/block-editor';\nimport { Disabled, Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useRef, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\n\nconst EMPTY_OBJECT = {};\nconst DRAFT_MENU_PARAMS = [\n\t'postType',\n\t'wp_navigation',\n\t{ status: 'draft', per_page: -1 },\n];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\n};\n\nconst ALLOWED_BLOCKS = [\n\t'core/navigation-link',\n\t'core/search',\n\t'core/social-links',\n\t'core/page-list',\n\t'core/spacer',\n\t'core/home-link',\n\t'core/site-title',\n\t'core/site-logo',\n\t'core/navigation-submenu',\n];\n\nexport default function UnsavedInnerBlocks( {\n\tblockProps,\n\tblocks,\n\tclientId,\n\thasSavedUnsavedInnerBlocks,\n\tonSave,\n\thasSelection,\n} ) {\n\tconst originalBlocks = useRef();\n\n\tuseEffect( () => {\n\t\t// Initially store the uncontrolled inner blocks for\n\t\t// dirty state comparison.\n\t\tif ( ! originalBlocks?.current ) {\n\t\t\toriginalBlocks.current = blocks;\n\t\t}\n\t}, [ blocks ] );\n\n\t// If the current inner blocks object is different in any way\n\t// from the original inner blocks from the post content then the\n\t// user has made changes to the inner blocks. At this point the inner\n\t// blocks can be considered \"dirty\".\n\tconst innerBlocksAreDirty = blocks !== originalBlocks.current;\n\n\tconst shouldDirectInsert = useMemo(\n\t\t() =>\n\t\t\tblocks.every(\n\t\t\t\t( { name } ) =>\n\t\t\t\t\tname === 'core/navigation-link' ||\n\t\t\t\t\tname === 'core/navigation-submenu' ||\n\t\t\t\t\tname === 'core/page-list'\n\t\t\t),\n\t\t[ blocks ]\n\t);\n\n\t// The block will be disabled in a block preview, use this as a way of\n\t// avoiding the side-effects of this component for block previews.\n\tconst isDisabled = useContext( Disabled.Context );\n\tconst savingLock = useRef( false );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\trenderAppender: hasSelection ? undefined : false,\n\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t__experimentalDirectInsert: shouldDirectInsert,\n\t} );\n\n\tconst { isSaving, draftNavigationMenus, hasResolvedDraftNavigationMenus } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tif ( isDisabled ) {\n\t\t\t\t\treturn EMPTY_OBJECT;\n\t\t\t\t}\n\n\t\t\t\tconst {\n\t\t\t\t\tgetEntityRecords,\n\t\t\t\t\thasFinishedResolution,\n\t\t\t\t\tisSavingEntityRecord,\n\t\t\t\t} = select( coreStore );\n\n\t\t\t\treturn {\n\t\t\t\t\tisSaving: isSavingEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'wp_navigation'\n\t\t\t\t\t),\n\t\t\t\t\tdraftNavigationMenus: getEntityRecords(\n\t\t\t\t\t\t...DRAFT_MENU_PARAMS\n\t\t\t\t\t),\n\t\t\t\t\thasResolvedDraftNavigationMenus: hasFinishedResolution(\n\t\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\t\tDRAFT_MENU_PARAMS\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ isDisabled ]\n\t\t);\n\n\tconst { hasResolvedNavigationMenus, navigationMenus } = useNavigationMenu();\n\n\tconst { create: createNavigationMenu } =\n\t\tuseCreateNavigationMenu( clientId );\n\n\t// Automatically save the uncontrolled blocks.\n\tuseEffect( () => {\n\t\t// The block will be disabled when used in a BlockPreview.\n\t\t// In this case avoid automatic creation of a wp_navigation post.\n\t\t// Otherwise the user will be spammed with lots of menus!\n\t\t//\n\t\t// Also ensure other navigation menus have loaded so an\n\t\t// accurate name can be created.\n\t\t//\n\t\t// Don't try saving when another save is already\n\t\t// in progress.\n\t\t//\n\t\t// And finally only create the menu when the block is selected,\n\t\t// which is an indication they want to start editing.\n\t\tif (\n\t\t\tisDisabled ||\n\t\t\thasSavedUnsavedInnerBlocks ||\n\t\t\tisSaving ||\n\t\t\tsavingLock.current ||\n\t\t\t! hasResolvedDraftNavigationMenus ||\n\t\t\t! hasResolvedNavigationMenus ||\n\t\t\t! hasSelection ||\n\t\t\t! innerBlocksAreDirty\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tsavingLock.current = true;\n\t\tcreateNavigationMenu( null, blocks ).then( ( menu ) => {\n\t\t\tonSave( menu );\n\t\t\tsavingLock.current = false;\n\t\t} );\n\t}, [\n\t\tisDisabled,\n\t\tisSaving,\n\t\thasResolvedDraftNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tdraftNavigationMenus,\n\t\tnavigationMenus,\n\t\thasSelection,\n\t\tcreateNavigationMenu,\n\t\tblocks,\n\t] );\n\n\tconst Wrapper = isSaving ? Disabled : 'div';\n\n\treturn (\n\t\t<Wrapper className=\"wp-block-navigation__unsaved-changes\">\n\t\t\t<div\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'wp-block-navigation__unsaved-changes-overlay',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-saving': isSaving,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t\t{ isSaving && <Spinner /> }\n\t\t</Wrapper>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/unsaved-inner-blocks.js"],"names":["useInnerBlocksProps","Disabled","Spinner","store","coreStore","useSelect","useContext","useEffect","useRef","useMemo","useNavigationMenu","useCreateNavigationMenu","EMPTY_OBJECT","DRAFT_MENU_PARAMS","status","per_page","DEFAULT_BLOCK","name","ALLOWED_BLOCKS","UnsavedInnerBlocks","blocks","clientId","hasSavedUnsavedInnerBlocks","onSave","hasSelection","originalBlocks","current","innerBlocksAreDirty","shouldDirectInsert","every","isDisabled","Context","savingLock","innerBlocksProps","className","renderAppender","undefined","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","isSaving","draftNavigationMenus","hasResolvedDraftNavigationMenus","select","getEntityRecords","hasFinishedResolution","isSavingEntityRecord","hasResolvedNavigationMenus","navigationMenus","create","createNavigationMenu","then","menu","Wrapper"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps } from '@wordpress/block-editor';\nimport { Disabled, Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useRef, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\n\nconst EMPTY_OBJECT = {};\nconst DRAFT_MENU_PARAMS = [\n\t'postType',\n\t'wp_navigation',\n\t{ status: 'draft', per_page: -1 },\n];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\n};\n\nconst ALLOWED_BLOCKS = [\n\t'core/navigation-link',\n\t'core/search',\n\t'core/social-links',\n\t'core/page-list',\n\t'core/spacer',\n\t'core/home-link',\n\t'core/site-title',\n\t'core/site-logo',\n\t'core/navigation-submenu',\n];\n\nexport default function UnsavedInnerBlocks( {\n\tblocks,\n\tclientId,\n\thasSavedUnsavedInnerBlocks,\n\tonSave,\n\thasSelection,\n} ) {\n\tconst originalBlocks = useRef();\n\n\tuseEffect( () => {\n\t\t// Initially store the uncontrolled inner blocks for\n\t\t// dirty state comparison.\n\t\tif ( ! originalBlocks?.current ) {\n\t\t\toriginalBlocks.current = blocks;\n\t\t}\n\t}, [ blocks ] );\n\n\t// If the current inner blocks object is different in any way\n\t// from the original inner blocks from the post content then the\n\t// user has made changes to the inner blocks. At this point the inner\n\t// blocks can be considered \"dirty\".\n\t// We also make sure the current innerBlocks had a chance to be set.\n\tconst innerBlocksAreDirty =\n\t\t!! originalBlocks.current && blocks !== originalBlocks.current;\n\n\tconst shouldDirectInsert = useMemo(\n\t\t() =>\n\t\t\tblocks.every(\n\t\t\t\t( { name } ) =>\n\t\t\t\t\tname === 'core/navigation-link' ||\n\t\t\t\t\tname === 'core/navigation-submenu' ||\n\t\t\t\t\tname === 'core/page-list'\n\t\t\t),\n\t\t[ blocks ]\n\t);\n\n\t// The block will be disabled in a block preview, use this as a way of\n\t// avoiding the side-effects of this component for block previews.\n\tconst isDisabled = useContext( Disabled.Context );\n\tconst savingLock = useRef( false );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: 'wp-block-navigation__container',\n\t\t},\n\t\t{\n\t\t\trenderAppender: hasSelection ? undefined : false,\n\t\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t\t__experimentalDirectInsert: shouldDirectInsert,\n\t\t}\n\t);\n\n\tconst { isSaving, draftNavigationMenus, hasResolvedDraftNavigationMenus } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tif ( isDisabled ) {\n\t\t\t\t\treturn EMPTY_OBJECT;\n\t\t\t\t}\n\n\t\t\t\tconst {\n\t\t\t\t\tgetEntityRecords,\n\t\t\t\t\thasFinishedResolution,\n\t\t\t\t\tisSavingEntityRecord,\n\t\t\t\t} = select( coreStore );\n\n\t\t\t\treturn {\n\t\t\t\t\tisSaving: isSavingEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'wp_navigation'\n\t\t\t\t\t),\n\t\t\t\t\tdraftNavigationMenus: getEntityRecords(\n\t\t\t\t\t\t...DRAFT_MENU_PARAMS\n\t\t\t\t\t),\n\t\t\t\t\thasResolvedDraftNavigationMenus: hasFinishedResolution(\n\t\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\t\tDRAFT_MENU_PARAMS\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ isDisabled ]\n\t\t);\n\n\tconst { hasResolvedNavigationMenus, navigationMenus } = useNavigationMenu();\n\n\tconst { create: createNavigationMenu } =\n\t\tuseCreateNavigationMenu( clientId );\n\n\t// Automatically save the uncontrolled blocks.\n\tuseEffect( () => {\n\t\t// The block will be disabled when used in a BlockPreview.\n\t\t// In this case avoid automatic creation of a wp_navigation post.\n\t\t// Otherwise the user will be spammed with lots of menus!\n\t\t//\n\t\t// Also ensure other navigation menus have loaded so an\n\t\t// accurate name can be created.\n\t\t//\n\t\t// Don't try saving when another save is already\n\t\t// in progress.\n\t\t//\n\t\t// And finally only create the menu when the block is selected,\n\t\t// which is an indication they want to start editing.\n\t\tif (\n\t\t\tisDisabled ||\n\t\t\thasSavedUnsavedInnerBlocks ||\n\t\t\tisSaving ||\n\t\t\tsavingLock.current ||\n\t\t\t! hasResolvedDraftNavigationMenus ||\n\t\t\t! hasResolvedNavigationMenus ||\n\t\t\t! hasSelection ||\n\t\t\t! innerBlocksAreDirty\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tsavingLock.current = true;\n\t\tcreateNavigationMenu( null, blocks ).then( ( menu ) => {\n\t\t\tonSave( menu );\n\t\t\tsavingLock.current = false;\n\t\t} );\n\t}, [\n\t\tisDisabled,\n\t\tisSaving,\n\t\thasResolvedDraftNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tdraftNavigationMenus,\n\t\tnavigationMenus,\n\t\thasSelection,\n\t\tcreateNavigationMenu,\n\t\tblocks,\n\t] );\n\n\tconst Wrapper = isSaving ? Disabled : 'div';\n\n\treturn (\n\t\t<>\n\t\t\t<Wrapper { ...innerBlocksProps } />\n\t\t\t{ isSaving && <Spinner /> }\n\t\t</>\n\t);\n}\n"]}
@@ -22,7 +22,6 @@ function useConvertClassicToBlockMenu(clientId) {
22
22
  } = useCreateNavigationMenu(clientId);
23
23
  const registry = useRegistry();
24
24
  const [status, setStatus] = useState(CLASSIC_MENU_CONVERSION_IDLE);
25
- const [value, setValue] = useState(null);
26
25
  const [error, setError] = useState(null);
27
26
 
28
27
  async function convertClassicMenuToBlockMenu(menuId, menuName) {
@@ -65,7 +64,7 @@ function useConvertClassicToBlockMenu(clientId) {
65
64
  return navigationMenu;
66
65
  }
67
66
 
68
- const convert = useCallback((menuId, menuName) => {
67
+ const convert = useCallback(async (menuId, menuName) => {
69
68
  if (!menuId || !menuName) {
70
69
  setError('Unable to convert menu. Missing menu details.');
71
70
  setStatus(CLASSIC_MENU_CONVERSION_ERROR);
@@ -73,11 +72,10 @@ function useConvertClassicToBlockMenu(clientId) {
73
72
  }
74
73
 
75
74
  setStatus(CLASSIC_MENU_CONVERSION_PENDING);
76
- setValue(null);
77
75
  setError(null);
78
- convertClassicMenuToBlockMenu(menuId, menuName).then(navMenu => {
79
- setValue(navMenu);
76
+ return await convertClassicMenuToBlockMenu(menuId, menuName).then(navigationMenu => {
80
77
  setStatus(CLASSIC_MENU_CONVERSION_SUCCESS);
78
+ return navigationMenu;
81
79
  }).catch(err => {
82
80
  setError(err === null || err === void 0 ? void 0 : err.message);
83
81
  setStatus(CLASSIC_MENU_CONVERSION_ERROR); // Rethrow error for debugging.
@@ -87,11 +85,10 @@ function useConvertClassicToBlockMenu(clientId) {
87
85
  cause: err
88
86
  });
89
87
  });
90
- }, [clientId]);
88
+ }, []);
91
89
  return {
92
90
  convert,
93
91
  status,
94
- value,
95
92
  error
96
93
  };
97
94
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/use-convert-classic-menu-to-block-menu.js"],"names":["useRegistry","store","coreStore","useState","useCallback","__","sprintf","useCreateNavigationMenu","menuItemsToBlocks","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","CLASSIC_MENU_CONVERSION_PENDING","CLASSIC_MENU_CONVERSION_IDLE","useConvertClassicToBlockMenu","clientId","create","createNavigationMenu","registry","status","setStatus","value","setValue","error","setError","convertClassicMenuToBlockMenu","menuId","menuName","navigationMenu","classicMenuItems","resolveSelect","getMenuItems","menus","per_page","context","err","Error","cause","innerBlocks","convert","then","navMenu","catch","message"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRegistry } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useCreateNavigationMenu from './use-create-navigation-menu';\nimport menuItemsToBlocks from '../menu-items-to-blocks';\n\nexport const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';\nexport const CLASSIC_MENU_CONVERSION_ERROR = 'error';\nexport const CLASSIC_MENU_CONVERSION_PENDING = 'pending';\nexport const CLASSIC_MENU_CONVERSION_IDLE = 'idle';\n\nfunction useConvertClassicToBlockMenu( clientId ) {\n\tconst { create: createNavigationMenu } =\n\t\tuseCreateNavigationMenu( clientId );\n\tconst registry = useRegistry();\n\n\tconst [ status, setStatus ] = useState( CLASSIC_MENU_CONVERSION_IDLE );\n\tconst [ value, setValue ] = useState( null );\n\tconst [ error, setError ] = useState( null );\n\n\tasync function convertClassicMenuToBlockMenu( menuId, menuName ) {\n\t\tlet navigationMenu;\n\t\tlet classicMenuItems;\n\n\t\t// 1. Fetch the classic Menu items.\n\t\ttry {\n\t\t\tclassicMenuItems = await registry\n\t\t\t\t.resolveSelect( coreStore )\n\t\t\t\t.getMenuItems( {\n\t\t\t\t\tmenus: menuId,\n\t\t\t\t\tper_page: -1,\n\t\t\t\t\tcontext: 'view',\n\t\t\t\t} );\n\t\t} catch ( err ) {\n\t\t\tthrow new Error(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t__( `Unable to fetch classic menu \"%s\" from API.` ),\n\t\t\t\t\tmenuName\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tcause: err,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\t// Handle offline response which resolves to `null`.\n\t\tif ( classicMenuItems === null ) {\n\t\t\tthrow new Error(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t__( `Unable to fetch classic menu \"%s\" from API.` ),\n\t\t\t\t\tmenuName\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\t// 2. Convert the classic items into blocks.\n\t\tconst { innerBlocks } = menuItemsToBlocks( classicMenuItems );\n\n\t\t// 3. Create the `wp_navigation` Post with the blocks.\n\t\ttry {\n\t\t\tnavigationMenu = await createNavigationMenu(\n\t\t\t\tmenuName,\n\t\t\t\tinnerBlocks\n\t\t\t);\n\t\t} catch ( err ) {\n\t\t\tthrow new Error(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t__( `Unable to create Navigation Menu \"%s\".` ),\n\t\t\t\t\tmenuName\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tcause: err,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn navigationMenu;\n\t}\n\n\tconst convert = useCallback(\n\t\t( menuId, menuName ) => {\n\t\t\tif ( ! menuId || ! menuName ) {\n\t\t\t\tsetError( 'Unable to convert menu. Missing menu details.' );\n\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_ERROR );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_PENDING );\n\t\t\tsetValue( null );\n\t\t\tsetError( null );\n\n\t\t\tconvertClassicMenuToBlockMenu( menuId, menuName )\n\t\t\t\t.then( ( navMenu ) => {\n\t\t\t\t\tsetValue( navMenu );\n\t\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_SUCCESS );\n\t\t\t\t} )\n\t\t\t\t.catch( ( err ) => {\n\t\t\t\t\tsetError( err?.message );\n\t\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_ERROR );\n\n\t\t\t\t\t// Rethrow error for debugging.\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t\t__( `Unable to create Navigation Menu \"%s\".` ),\n\t\t\t\t\t\t\tmenuName\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcause: err,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\treturn {\n\t\tconvert,\n\t\tstatus,\n\t\tvalue,\n\t\terror,\n\t};\n}\n\nexport default useConvertClassicToBlockMenu;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/use-convert-classic-menu-to-block-menu.js"],"names":["useRegistry","store","coreStore","useState","useCallback","__","sprintf","useCreateNavigationMenu","menuItemsToBlocks","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","CLASSIC_MENU_CONVERSION_PENDING","CLASSIC_MENU_CONVERSION_IDLE","useConvertClassicToBlockMenu","clientId","create","createNavigationMenu","registry","status","setStatus","error","setError","convertClassicMenuToBlockMenu","menuId","menuName","navigationMenu","classicMenuItems","resolveSelect","getMenuItems","menus","per_page","context","err","Error","cause","innerBlocks","convert","then","catch","message"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRegistry } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useCreateNavigationMenu from './use-create-navigation-menu';\nimport menuItemsToBlocks from '../menu-items-to-blocks';\n\nexport const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';\nexport const CLASSIC_MENU_CONVERSION_ERROR = 'error';\nexport const CLASSIC_MENU_CONVERSION_PENDING = 'pending';\nexport const CLASSIC_MENU_CONVERSION_IDLE = 'idle';\n\nfunction useConvertClassicToBlockMenu( clientId ) {\n\tconst { create: createNavigationMenu } =\n\t\tuseCreateNavigationMenu( clientId );\n\tconst registry = useRegistry();\n\n\tconst [ status, setStatus ] = useState( CLASSIC_MENU_CONVERSION_IDLE );\n\tconst [ error, setError ] = useState( null );\n\n\tasync function convertClassicMenuToBlockMenu( menuId, menuName ) {\n\t\tlet navigationMenu;\n\t\tlet classicMenuItems;\n\n\t\t// 1. Fetch the classic Menu items.\n\t\ttry {\n\t\t\tclassicMenuItems = await registry\n\t\t\t\t.resolveSelect( coreStore )\n\t\t\t\t.getMenuItems( {\n\t\t\t\t\tmenus: menuId,\n\t\t\t\t\tper_page: -1,\n\t\t\t\t\tcontext: 'view',\n\t\t\t\t} );\n\t\t} catch ( err ) {\n\t\t\tthrow new Error(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t__( `Unable to fetch classic menu \"%s\" from API.` ),\n\t\t\t\t\tmenuName\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tcause: err,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\t// Handle offline response which resolves to `null`.\n\t\tif ( classicMenuItems === null ) {\n\t\t\tthrow new Error(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t__( `Unable to fetch classic menu \"%s\" from API.` ),\n\t\t\t\t\tmenuName\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\t// 2. Convert the classic items into blocks.\n\t\tconst { innerBlocks } = menuItemsToBlocks( classicMenuItems );\n\n\t\t// 3. Create the `wp_navigation` Post with the blocks.\n\t\ttry {\n\t\t\tnavigationMenu = await createNavigationMenu(\n\t\t\t\tmenuName,\n\t\t\t\tinnerBlocks\n\t\t\t);\n\t\t} catch ( err ) {\n\t\t\tthrow new Error(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t__( `Unable to create Navigation Menu \"%s\".` ),\n\t\t\t\t\tmenuName\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tcause: err,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn navigationMenu;\n\t}\n\n\tconst convert = useCallback( async ( menuId, menuName ) => {\n\t\tif ( ! menuId || ! menuName ) {\n\t\t\tsetError( 'Unable to convert menu. Missing menu details.' );\n\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_ERROR );\n\t\t\treturn;\n\t\t}\n\n\t\tsetStatus( CLASSIC_MENU_CONVERSION_PENDING );\n\t\tsetError( null );\n\n\t\treturn await convertClassicMenuToBlockMenu( menuId, menuName )\n\t\t\t.then( ( navigationMenu ) => {\n\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_SUCCESS );\n\t\t\t\treturn navigationMenu;\n\t\t\t} )\n\t\t\t.catch( ( err ) => {\n\t\t\t\tsetError( err?.message );\n\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_ERROR );\n\n\t\t\t\t// Rethrow error for debugging.\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t__( `Unable to create Navigation Menu \"%s\".` ),\n\t\t\t\t\t\tmenuName\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tcause: err,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} );\n\t}, [] );\n\n\treturn {\n\t\tconvert,\n\t\tstatus,\n\t\terror,\n\t};\n}\n\nexport default useConvertClassicToBlockMenu;\n"]}
@@ -103,6 +103,7 @@ const metadata = {
103
103
  __experimentalFontWeight: true,
104
104
  __experimentalTextTransform: true,
105
105
  __experimentalFontFamily: true,
106
+ __experimentalLetterSpacing: true,
106
107
  __experimentalTextDecoration: true,
107
108
  __experimentalSkipSerialization: ["textDecoration"],
108
109
  __experimentalDefaultControls: {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/index.js"],"names":["__","navigation","icon","edit","save","deprecated","name","metadata","settings","example","innerBlocks","attributes","label","url"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,UAAU,IAAIC,IAAvB,QAAmC,kBAAnC;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBN,EAAAA,IADuB;AAEvBO,EAAAA,OAAO,EAAE;AACRC,IAAAA,WAAW,EAAE,CACZ;AACCJ,MAAAA,IAAI,EAAE,sBADP;AAECK,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAEZ,EAAE,CAAE,MAAF,CAFE;AAGXa,QAAAA,GAAG,EAAE;AAHM;AAFb,KADY,EASZ;AACCP,MAAAA,IAAI,EAAE,sBADP;AAECK,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAEZ,EAAE,CAAE,OAAF,CAFE;AAGXa,QAAAA,GAAG,EAAE;AAHM;AAFb,KATY,EAiBZ;AACCP,MAAAA,IAAI,EAAE,sBADP;AAECK,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAEZ,EAAE,CAAE,SAAF,CAFE;AAGXa,QAAAA,GAAG,EAAE;AAHM;AAFb,KAjBY;AADL,GAFc;AA8BvBV,EAAAA,IA9BuB;AA+BvBC,EAAAA,IA/BuB;AAgCvBC,EAAAA;AAhCuB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { navigation as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'Home' as in a website's home page.\n\t\t\t\t\tlabel: __( 'Home' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'About' as in a website's about page.\n\t\t\t\t\tlabel: __( 'About' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'Contact' as in a website's contact page.\n\t\t\t\t\tlabel: __( 'Contact' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\tedit,\n\tsave,\n\tdeprecated,\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/index.js"],"names":["__","navigation","icon","edit","save","deprecated","name","metadata","settings","example","innerBlocks","attributes","label","url"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,UAAU,IAAIC,IAAvB,QAAmC,kBAAnC;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBN,EAAAA,IADuB;AAEvBO,EAAAA,OAAO,EAAE;AACRC,IAAAA,WAAW,EAAE,CACZ;AACCJ,MAAAA,IAAI,EAAE,sBADP;AAECK,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAEZ,EAAE,CAAE,MAAF,CAFE;AAGXa,QAAAA,GAAG,EAAE;AAHM;AAFb,KADY,EASZ;AACCP,MAAAA,IAAI,EAAE,sBADP;AAECK,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAEZ,EAAE,CAAE,OAAF,CAFE;AAGXa,QAAAA,GAAG,EAAE;AAHM;AAFb,KATY,EAiBZ;AACCP,MAAAA,IAAI,EAAE,sBADP;AAECK,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAEZ,EAAE,CAAE,SAAF,CAFE;AAGXa,QAAAA,GAAG,EAAE;AAHM;AAFb,KAjBY;AADL,GAFc;AA8BvBV,EAAAA,IA9BuB;AA+BvBC,EAAAA,IA/BuB;AAgCvBC,EAAAA;AAhCuB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { navigation as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'Home' as in a website's home page.\n\t\t\t\t\tlabel: __( 'Home' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'About' as in a website's about page.\n\t\t\t\t\tlabel: __( 'About' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'Contact' as in a website's contact page.\n\t\t\t\t\tlabel: __( 'Contact' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\tedit,\n\tsave,\n\tdeprecated,\n};\n"]}
@@ -1,11 +1,6 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { sortBy } from 'lodash';
5
1
  /**
6
2
  * WordPress dependencies
7
3
  */
8
-
9
4
  import { createBlock, parse } from '@wordpress/blocks';
10
5
  import { applyFilters } from '@wordpress/hooks';
11
6
  /**
@@ -35,7 +30,7 @@ export default function menuItemsToBlocks(menuItems) {
35
30
  function mapMenuItemsToBlocks(menuItems) {
36
31
  let mapping = {}; // The menuItem should be in menu_order sort order.
37
32
 
38
- const sortedItems = sortBy(menuItems, 'menu_order');
33
+ const sortedItems = [...menuItems].sort((a, b) => a.menu_order - b.menu_order);
39
34
  const innerBlocks = sortedItems.map(menuItem => {
40
35
  var _menuItem$children, _menuItem$children2;
41
36
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/menu-items-to-blocks.js"],"names":["sortBy","createBlock","parse","applyFilters","menuItemsToBlocks","menuItems","menuTree","createDataTree","blocks","mapMenuItemsToBlocks","mapping","sortedItems","innerBlocks","map","menuItem","type","block","content","raw","attributes","menuItemToBlockAttributes","nestedBlocks","nestedMapping","children","length","blockType","id","clientId","title","menuItemTitleField","xfn","classes","attr_title","object","object_id","description","url","menuItemTypeField","target","label","rendered","kind","replace","join","trim","rel","className","opensInNewTab","dataset","relation","hashTable","Object","create","dataTree","data","push"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { sortBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock, parse } from '@wordpress/blocks';\nimport { applyFilters } from '@wordpress/hooks';\n\n/**\n * Convert a flat menu item structure to a nested blocks structure.\n *\n * @param {Object[]} menuItems An array of menu items.\n *\n * @return {WPBlock[]} An array of blocks.\n */\nexport default function menuItemsToBlocks( menuItems ) {\n\tif ( ! menuItems ) {\n\t\treturn null;\n\t}\n\n\tconst menuTree = createDataTree( menuItems );\n\tconst blocks = mapMenuItemsToBlocks( menuTree );\n\treturn applyFilters(\n\t\t'blocks.navigation.__unstableMenuItemsToBlocks',\n\t\tblocks,\n\t\tmenuItems\n\t);\n}\n\n/**\n * A recursive function that maps menu item nodes to blocks.\n *\n * @param {WPNavMenuItem[]} menuItems An array of WPNavMenuItem items.\n * @return {Object} Object containing innerBlocks and mapping.\n */\nfunction mapMenuItemsToBlocks( menuItems ) {\n\tlet mapping = {};\n\n\t// The menuItem should be in menu_order sort order.\n\tconst sortedItems = sortBy( menuItems, 'menu_order' );\n\n\tconst innerBlocks = sortedItems.map( ( menuItem ) => {\n\t\tif ( menuItem.type === 'block' ) {\n\t\t\tconst [ block ] = parse( menuItem.content.raw );\n\n\t\t\tif ( ! block ) {\n\t\t\t\treturn createBlock( 'core/freeform', {\n\t\t\t\t\tcontent: menuItem.content,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn block;\n\t\t}\n\n\t\tconst attributes = menuItemToBlockAttributes( menuItem );\n\n\t\t// If there are children recurse to build those nested blocks.\n\t\tconst {\n\t\t\tinnerBlocks: nestedBlocks = [], // alias to avoid shadowing\n\t\t\tmapping: nestedMapping = {}, // alias to avoid shadowing\n\t\t} = menuItem.children?.length\n\t\t\t? mapMenuItemsToBlocks( menuItem.children )\n\t\t\t: {};\n\n\t\t// Update parent mapping with nested mapping.\n\t\tmapping = {\n\t\t\t...mapping,\n\t\t\t...nestedMapping,\n\t\t};\n\n\t\tconst blockType = menuItem.children?.length\n\t\t\t? 'core/navigation-submenu'\n\t\t\t: 'core/navigation-link';\n\n\t\t// Create block with nested \"innerBlocks\".\n\t\tconst block = createBlock( blockType, attributes, nestedBlocks );\n\n\t\t// Create mapping for menuItem -> block.\n\t\tmapping[ menuItem.id ] = block.clientId;\n\n\t\treturn block;\n\t} );\n\n\treturn {\n\t\tinnerBlocks,\n\t\tmapping,\n\t};\n}\n\n/**\n * A WP nav_menu_item object.\n * For more documentation on the individual fields present on a menu item please see:\n * https://core.trac.wordpress.org/browser/tags/5.7.1/src/wp-includes/nav-menu.php#L789\n *\n * Changes made here should also be mirrored in packages/edit-navigation/src/store/utils.js.\n *\n * @typedef WPNavMenuItem\n *\n * @property {Object} title stores the raw and rendered versions of the title/label for this menu item.\n * @property {Array} xfn the XFN relationships expressed in the link of this menu item.\n * @property {Array} classes the HTML class attributes for this menu item.\n * @property {string} attr_title the HTML title attribute for this menu item.\n * @property {string} object The type of object originally represented, such as 'category', 'post', or 'attachment'.\n * @property {string} object_id The DB ID of the original object this menu item represents, e.g. ID for posts and term_id for categories.\n * @property {string} description The description of this menu item.\n * @property {string} url The URL to which this menu item points.\n * @property {string} type The family of objects originally represented, such as 'post_type' or 'taxonomy'.\n * @property {string} target The target attribute of the link element for this menu item.\n */\n\n/**\n * Convert block attributes to menu item.\n *\n * @param {WPNavMenuItem} menuItem the menu item to be converted to block attributes.\n * @return {Object} the block attributes converted from the WPNavMenuItem item.\n */\nfunction menuItemToBlockAttributes( {\n\ttitle: menuItemTitleField,\n\txfn,\n\tclasses,\n\t// eslint-disable-next-line camelcase\n\tattr_title,\n\tobject,\n\t// eslint-disable-next-line camelcase\n\tobject_id,\n\tdescription,\n\turl,\n\ttype: menuItemTypeField,\n\ttarget,\n} ) {\n\t// For historical reasons, the `core/navigation-link` variation type is `tag`\n\t// whereas WP Core expects `post_tag` as the `object` type.\n\t// To avoid writing a block migration we perform a conversion here.\n\t// See also inverse equivalent in `blockAttributesToMenuItem`.\n\tif ( object && object === 'post_tag' ) {\n\t\tobject = 'tag';\n\t}\n\n\treturn {\n\t\tlabel: menuItemTitleField?.rendered || '',\n\t\t...( object?.length && {\n\t\t\ttype: object,\n\t\t} ),\n\t\tkind: menuItemTypeField?.replace( '_', '-' ) || 'custom',\n\t\turl: url || '',\n\t\t...( xfn?.length &&\n\t\t\txfn.join( ' ' ).trim() && {\n\t\t\t\trel: xfn.join( ' ' ).trim(),\n\t\t\t} ),\n\t\t...( classes?.length &&\n\t\t\tclasses.join( ' ' ).trim() && {\n\t\t\t\tclassName: classes.join( ' ' ).trim(),\n\t\t\t} ),\n\t\t/* eslint-disable camelcase */\n\t\t...( attr_title?.length && {\n\t\t\ttitle: attr_title,\n\t\t} ),\n\t\t...( object_id &&\n\t\t\t'custom' !== object && {\n\t\t\t\tid: object_id,\n\t\t\t} ),\n\t\t/* eslint-enable camelcase */\n\t\t...( description?.length && {\n\t\t\tdescription,\n\t\t} ),\n\t\t...( target === '_blank' && {\n\t\t\topensInNewTab: true,\n\t\t} ),\n\t};\n}\n\n/**\n * Creates a nested, hierarchical tree representation from unstructured data that\n * has an inherent relationship defined between individual items.\n *\n * For example, by default, each element in the dataset should have an `id` and\n * `parent` property where the `parent` property indicates a relationship between\n * the current item and another item with a matching `id` properties.\n *\n * This is useful for building linked lists of data from flat data structures.\n *\n * @param {Array} dataset linked data to be rearranged into a hierarchical tree based on relational fields.\n * @param {string} id the property which uniquely identifies each entry within the array.\n * @param {*} relation the property which identifies how the current item is related to other items in the data (if at all).\n * @return {Array} a nested array of parent/child relationships\n */\nfunction createDataTree( dataset, id = 'id', relation = 'parent' ) {\n\tconst hashTable = Object.create( null );\n\tconst dataTree = [];\n\n\tfor ( const data of dataset ) {\n\t\thashTable[ data[ id ] ] = {\n\t\t\t...data,\n\t\t\tchildren: [],\n\t\t};\n\t\tif ( data[ relation ] ) {\n\t\t\thashTable[ data[ relation ] ] = hashTable[ data[ relation ] ] || {};\n\t\t\thashTable[ data[ relation ] ].children =\n\t\t\t\thashTable[ data[ relation ] ].children || [];\n\t\t\thashTable[ data[ relation ] ].children.push(\n\t\t\t\thashTable[ data[ id ] ]\n\t\t\t);\n\t\t} else {\n\t\t\tdataTree.push( hashTable[ data[ id ] ] );\n\t\t}\n\t}\n\n\treturn dataTree;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/menu-items-to-blocks.js"],"names":["createBlock","parse","applyFilters","menuItemsToBlocks","menuItems","menuTree","createDataTree","blocks","mapMenuItemsToBlocks","mapping","sortedItems","sort","a","b","menu_order","innerBlocks","map","menuItem","type","block","content","raw","attributes","menuItemToBlockAttributes","nestedBlocks","nestedMapping","children","length","blockType","id","clientId","title","menuItemTitleField","xfn","classes","attr_title","object","object_id","description","url","menuItemTypeField","target","label","rendered","kind","replace","join","trim","rel","className","opensInNewTab","dataset","relation","hashTable","Object","create","dataTree","data","push"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock, parse } from '@wordpress/blocks';\nimport { applyFilters } from '@wordpress/hooks';\n\n/**\n * Convert a flat menu item structure to a nested blocks structure.\n *\n * @param {Object[]} menuItems An array of menu items.\n *\n * @return {WPBlock[]} An array of blocks.\n */\nexport default function menuItemsToBlocks( menuItems ) {\n\tif ( ! menuItems ) {\n\t\treturn null;\n\t}\n\n\tconst menuTree = createDataTree( menuItems );\n\tconst blocks = mapMenuItemsToBlocks( menuTree );\n\treturn applyFilters(\n\t\t'blocks.navigation.__unstableMenuItemsToBlocks',\n\t\tblocks,\n\t\tmenuItems\n\t);\n}\n\n/**\n * A recursive function that maps menu item nodes to blocks.\n *\n * @param {WPNavMenuItem[]} menuItems An array of WPNavMenuItem items.\n * @return {Object} Object containing innerBlocks and mapping.\n */\nfunction mapMenuItemsToBlocks( menuItems ) {\n\tlet mapping = {};\n\n\t// The menuItem should be in menu_order sort order.\n\tconst sortedItems = [ ...menuItems ].sort(\n\t\t( a, b ) => a.menu_order - b.menu_order\n\t);\n\n\tconst innerBlocks = sortedItems.map( ( menuItem ) => {\n\t\tif ( menuItem.type === 'block' ) {\n\t\t\tconst [ block ] = parse( menuItem.content.raw );\n\n\t\t\tif ( ! block ) {\n\t\t\t\treturn createBlock( 'core/freeform', {\n\t\t\t\t\tcontent: menuItem.content,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn block;\n\t\t}\n\n\t\tconst attributes = menuItemToBlockAttributes( menuItem );\n\n\t\t// If there are children recurse to build those nested blocks.\n\t\tconst {\n\t\t\tinnerBlocks: nestedBlocks = [], // alias to avoid shadowing\n\t\t\tmapping: nestedMapping = {}, // alias to avoid shadowing\n\t\t} = menuItem.children?.length\n\t\t\t? mapMenuItemsToBlocks( menuItem.children )\n\t\t\t: {};\n\n\t\t// Update parent mapping with nested mapping.\n\t\tmapping = {\n\t\t\t...mapping,\n\t\t\t...nestedMapping,\n\t\t};\n\n\t\tconst blockType = menuItem.children?.length\n\t\t\t? 'core/navigation-submenu'\n\t\t\t: 'core/navigation-link';\n\n\t\t// Create block with nested \"innerBlocks\".\n\t\tconst block = createBlock( blockType, attributes, nestedBlocks );\n\n\t\t// Create mapping for menuItem -> block.\n\t\tmapping[ menuItem.id ] = block.clientId;\n\n\t\treturn block;\n\t} );\n\n\treturn {\n\t\tinnerBlocks,\n\t\tmapping,\n\t};\n}\n\n/**\n * A WP nav_menu_item object.\n * For more documentation on the individual fields present on a menu item please see:\n * https://core.trac.wordpress.org/browser/tags/5.7.1/src/wp-includes/nav-menu.php#L789\n *\n * Changes made here should also be mirrored in packages/edit-navigation/src/store/utils.js.\n *\n * @typedef WPNavMenuItem\n *\n * @property {Object} title stores the raw and rendered versions of the title/label for this menu item.\n * @property {Array} xfn the XFN relationships expressed in the link of this menu item.\n * @property {Array} classes the HTML class attributes for this menu item.\n * @property {string} attr_title the HTML title attribute for this menu item.\n * @property {string} object The type of object originally represented, such as 'category', 'post', or 'attachment'.\n * @property {string} object_id The DB ID of the original object this menu item represents, e.g. ID for posts and term_id for categories.\n * @property {string} description The description of this menu item.\n * @property {string} url The URL to which this menu item points.\n * @property {string} type The family of objects originally represented, such as 'post_type' or 'taxonomy'.\n * @property {string} target The target attribute of the link element for this menu item.\n */\n\n/**\n * Convert block attributes to menu item.\n *\n * @param {WPNavMenuItem} menuItem the menu item to be converted to block attributes.\n * @return {Object} the block attributes converted from the WPNavMenuItem item.\n */\nfunction menuItemToBlockAttributes( {\n\ttitle: menuItemTitleField,\n\txfn,\n\tclasses,\n\t// eslint-disable-next-line camelcase\n\tattr_title,\n\tobject,\n\t// eslint-disable-next-line camelcase\n\tobject_id,\n\tdescription,\n\turl,\n\ttype: menuItemTypeField,\n\ttarget,\n} ) {\n\t// For historical reasons, the `core/navigation-link` variation type is `tag`\n\t// whereas WP Core expects `post_tag` as the `object` type.\n\t// To avoid writing a block migration we perform a conversion here.\n\t// See also inverse equivalent in `blockAttributesToMenuItem`.\n\tif ( object && object === 'post_tag' ) {\n\t\tobject = 'tag';\n\t}\n\n\treturn {\n\t\tlabel: menuItemTitleField?.rendered || '',\n\t\t...( object?.length && {\n\t\t\ttype: object,\n\t\t} ),\n\t\tkind: menuItemTypeField?.replace( '_', '-' ) || 'custom',\n\t\turl: url || '',\n\t\t...( xfn?.length &&\n\t\t\txfn.join( ' ' ).trim() && {\n\t\t\t\trel: xfn.join( ' ' ).trim(),\n\t\t\t} ),\n\t\t...( classes?.length &&\n\t\t\tclasses.join( ' ' ).trim() && {\n\t\t\t\tclassName: classes.join( ' ' ).trim(),\n\t\t\t} ),\n\t\t/* eslint-disable camelcase */\n\t\t...( attr_title?.length && {\n\t\t\ttitle: attr_title,\n\t\t} ),\n\t\t...( object_id &&\n\t\t\t'custom' !== object && {\n\t\t\t\tid: object_id,\n\t\t\t} ),\n\t\t/* eslint-enable camelcase */\n\t\t...( description?.length && {\n\t\t\tdescription,\n\t\t} ),\n\t\t...( target === '_blank' && {\n\t\t\topensInNewTab: true,\n\t\t} ),\n\t};\n}\n\n/**\n * Creates a nested, hierarchical tree representation from unstructured data that\n * has an inherent relationship defined between individual items.\n *\n * For example, by default, each element in the dataset should have an `id` and\n * `parent` property where the `parent` property indicates a relationship between\n * the current item and another item with a matching `id` properties.\n *\n * This is useful for building linked lists of data from flat data structures.\n *\n * @param {Array} dataset linked data to be rearranged into a hierarchical tree based on relational fields.\n * @param {string} id the property which uniquely identifies each entry within the array.\n * @param {*} relation the property which identifies how the current item is related to other items in the data (if at all).\n * @return {Array} a nested array of parent/child relationships\n */\nfunction createDataTree( dataset, id = 'id', relation = 'parent' ) {\n\tconst hashTable = Object.create( null );\n\tconst dataTree = [];\n\n\tfor ( const data of dataset ) {\n\t\thashTable[ data[ id ] ] = {\n\t\t\t...data,\n\t\t\tchildren: [],\n\t\t};\n\t\tif ( data[ relation ] ) {\n\t\t\thashTable[ data[ relation ] ] = hashTable[ data[ relation ] ] || {};\n\t\t\thashTable[ data[ relation ] ].children =\n\t\t\t\thashTable[ data[ relation ] ].children || [];\n\t\t\thashTable[ data[ relation ] ].children.push(\n\t\t\t\thashTable[ data[ id ] ]\n\t\t\t);\n\t\t} else {\n\t\t\tdataTree.push( hashTable[ data[ id ] ] );\n\t\t}\n\t}\n\n\treturn dataTree;\n}\n"]}
@@ -1,17 +1,18 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { store as coreStore, __experimentalUseResourcePermissions as useResourcePermissions } from '@wordpress/core-data';
4
+ import { store as coreStore, useResourcePermissions } from '@wordpress/core-data';
5
5
  import { useSelect } from '@wordpress/data';
6
6
  export default function useNavigationMenu(ref) {
7
7
  const permissions = useResourcePermissions('navigation', ref);
8
8
  return useSelect(select => {
9
- const [hasResolvedPermissions, {
9
+ const {
10
10
  canCreate,
11
11
  canUpdate,
12
12
  canDelete,
13
- isResolving
14
- }] = permissions;
13
+ isResolving,
14
+ hasResolved
15
+ } = permissions;
15
16
  const {
16
17
  navigationMenus,
17
18
  isResolvingNavigationMenus,
@@ -32,11 +33,11 @@ export default function useNavigationMenu(ref) {
32
33
  canSwitchNavigationMenu: ref ? (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 1 : (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 0,
33
34
  canUserCreateNavigationMenu: canCreate,
34
35
  isResolvingCanUserCreateNavigationMenu: isResolving,
35
- hasResolvedCanUserCreateNavigationMenu: hasResolvedPermissions,
36
+ hasResolvedCanUserCreateNavigationMenu: hasResolved,
36
37
  canUserUpdateNavigationMenu: canUpdate,
37
- hasResolvedCanUserUpdateNavigationMenu: ref ? hasResolvedPermissions : undefined,
38
+ hasResolvedCanUserUpdateNavigationMenu: ref ? hasResolved : undefined,
38
39
  canUserDeleteNavigationMenu: canDelete,
39
- hasResolvedCanUserDeleteNavigationMenu: ref ? hasResolvedPermissions : undefined
40
+ hasResolvedCanUserDeleteNavigationMenu: ref ? hasResolved : undefined
40
41
  };
41
42
  }, [ref, permissions]);
42
43
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/use-navigation-menu.js"],"names":["store","coreStore","__experimentalUseResourcePermissions","useResourcePermissions","useSelect","useNavigationMenu","ref","permissions","select","hasResolvedPermissions","canCreate","canUpdate","canDelete","isResolving","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","selectNavigationMenus","navigationMenu","isNavigationMenuResolved","isNavigationMenuMissing","selectExistingMenu","canSwitchNavigationMenu","length","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","undefined","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","getEntityRecords","hasFinishedResolution","args","per_page","status","getEntityRecord","getEditedEntityRecord","editedNavigationMenu","hasResolvedNavigationMenu","isNavigationMenuPublished"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tstore as coreStore,\n\t__experimentalUseResourcePermissions as useResourcePermissions,\n} from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nexport default function useNavigationMenu( ref ) {\n\tconst permissions = useResourcePermissions( 'navigation', ref );\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst [\n\t\t\t\thasResolvedPermissions,\n\t\t\t\t{ canCreate, canUpdate, canDelete, isResolving },\n\t\t\t] = permissions;\n\n\t\t\tconst {\n\t\t\t\tnavigationMenus,\n\t\t\t\tisResolvingNavigationMenus,\n\t\t\t\thasResolvedNavigationMenus,\n\t\t\t} = selectNavigationMenus( select, ref );\n\n\t\t\tconst {\n\t\t\t\tnavigationMenu,\n\t\t\t\tisNavigationMenuResolved,\n\t\t\t\tisNavigationMenuMissing,\n\t\t\t} = selectExistingMenu( select, ref );\n\n\t\t\treturn {\n\t\t\t\tnavigationMenus,\n\t\t\t\tisResolvingNavigationMenus,\n\t\t\t\thasResolvedNavigationMenus,\n\n\t\t\t\tnavigationMenu,\n\t\t\t\tisNavigationMenuResolved,\n\t\t\t\tisNavigationMenuMissing,\n\n\t\t\t\tcanSwitchNavigationMenu: ref\n\t\t\t\t\t? navigationMenus?.length > 1\n\t\t\t\t\t: navigationMenus?.length > 0,\n\n\t\t\t\tcanUserCreateNavigationMenu: canCreate,\n\t\t\t\tisResolvingCanUserCreateNavigationMenu: isResolving,\n\t\t\t\thasResolvedCanUserCreateNavigationMenu: hasResolvedPermissions,\n\n\t\t\t\tcanUserUpdateNavigationMenu: canUpdate,\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu: ref\n\t\t\t\t\t? hasResolvedPermissions\n\t\t\t\t\t: undefined,\n\n\t\t\t\tcanUserDeleteNavigationMenu: canDelete,\n\t\t\t\thasResolvedCanUserDeleteNavigationMenu: ref\n\t\t\t\t\t? hasResolvedPermissions\n\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t},\n\t\t[ ref, permissions ]\n\t);\n}\n\nfunction selectNavigationMenus( select ) {\n\tconst { getEntityRecords, hasFinishedResolution, isResolving } =\n\t\tselect( coreStore );\n\n\tconst args = [\n\t\t'postType',\n\t\t'wp_navigation',\n\t\t{ per_page: -1, status: 'publish' },\n\t];\n\treturn {\n\t\tnavigationMenus: getEntityRecords( ...args ),\n\t\tisResolvingNavigationMenus: isResolving( 'getEntityRecords', args ),\n\t\thasResolvedNavigationMenus: hasFinishedResolution(\n\t\t\t'getEntityRecords',\n\t\t\targs\n\t\t),\n\t};\n}\n\nfunction selectExistingMenu( select, ref ) {\n\tif ( ! ref ) {\n\t\treturn {\n\t\t\tisNavigationMenuResolved: false,\n\t\t\tisNavigationMenuMissing: true,\n\t\t};\n\t}\n\n\tconst { getEntityRecord, getEditedEntityRecord, hasFinishedResolution } =\n\t\tselect( coreStore );\n\n\tconst args = [ 'postType', 'wp_navigation', ref ];\n\tconst navigationMenu = getEntityRecord( ...args );\n\tconst editedNavigationMenu = getEditedEntityRecord( ...args );\n\tconst hasResolvedNavigationMenu = hasFinishedResolution(\n\t\t'getEditedEntityRecord',\n\t\targs\n\t);\n\n\t// Only published Navigation posts are considered valid.\n\t// If this is changed then a corresponding change must also be made\n\t// in the index.php file.\n\tconst isNavigationMenuPublished = editedNavigationMenu.status === 'publish';\n\n\treturn {\n\t\tisNavigationMenuResolved: hasResolvedNavigationMenu,\n\t\tisNavigationMenuMissing:\n\t\t\thasResolvedNavigationMenu &&\n\t\t\t( ! navigationMenu || ! isNavigationMenuPublished ),\n\n\t\t// getEditedEntityRecord will return the post regardless of status.\n\t\t// Therefore if the found post is not published then we should ignore it.\n\t\tnavigationMenu: isNavigationMenuPublished ? editedNavigationMenu : null,\n\t};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/use-navigation-menu.js"],"names":["store","coreStore","useResourcePermissions","useSelect","useNavigationMenu","ref","permissions","select","canCreate","canUpdate","canDelete","isResolving","hasResolved","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","selectNavigationMenus","navigationMenu","isNavigationMenuResolved","isNavigationMenuMissing","selectExistingMenu","canSwitchNavigationMenu","length","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","undefined","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","getEntityRecords","hasFinishedResolution","args","per_page","status","getEntityRecord","getEditedEntityRecord","editedNavigationMenu","hasResolvedNavigationMenu","isNavigationMenuPublished"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tstore as coreStore,\n\tuseResourcePermissions,\n} from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nexport default function useNavigationMenu( ref ) {\n\tconst permissions = useResourcePermissions( 'navigation', ref );\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanCreate,\n\t\t\t\tcanUpdate,\n\t\t\t\tcanDelete,\n\t\t\t\tisResolving,\n\t\t\t\thasResolved,\n\t\t\t} = permissions;\n\n\t\t\tconst {\n\t\t\t\tnavigationMenus,\n\t\t\t\tisResolvingNavigationMenus,\n\t\t\t\thasResolvedNavigationMenus,\n\t\t\t} = selectNavigationMenus( select, ref );\n\n\t\t\tconst {\n\t\t\t\tnavigationMenu,\n\t\t\t\tisNavigationMenuResolved,\n\t\t\t\tisNavigationMenuMissing,\n\t\t\t} = selectExistingMenu( select, ref );\n\n\t\t\treturn {\n\t\t\t\tnavigationMenus,\n\t\t\t\tisResolvingNavigationMenus,\n\t\t\t\thasResolvedNavigationMenus,\n\n\t\t\t\tnavigationMenu,\n\t\t\t\tisNavigationMenuResolved,\n\t\t\t\tisNavigationMenuMissing,\n\n\t\t\t\tcanSwitchNavigationMenu: ref\n\t\t\t\t\t? navigationMenus?.length > 1\n\t\t\t\t\t: navigationMenus?.length > 0,\n\n\t\t\t\tcanUserCreateNavigationMenu: canCreate,\n\t\t\t\tisResolvingCanUserCreateNavigationMenu: isResolving,\n\t\t\t\thasResolvedCanUserCreateNavigationMenu: hasResolved,\n\n\t\t\t\tcanUserUpdateNavigationMenu: canUpdate,\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu: ref\n\t\t\t\t\t? hasResolved\n\t\t\t\t\t: undefined,\n\n\t\t\t\tcanUserDeleteNavigationMenu: canDelete,\n\t\t\t\thasResolvedCanUserDeleteNavigationMenu: ref\n\t\t\t\t\t? hasResolved\n\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t},\n\t\t[ ref, permissions ]\n\t);\n}\n\nfunction selectNavigationMenus( select ) {\n\tconst { getEntityRecords, hasFinishedResolution, isResolving } =\n\t\tselect( coreStore );\n\n\tconst args = [\n\t\t'postType',\n\t\t'wp_navigation',\n\t\t{ per_page: -1, status: 'publish' },\n\t];\n\treturn {\n\t\tnavigationMenus: getEntityRecords( ...args ),\n\t\tisResolvingNavigationMenus: isResolving( 'getEntityRecords', args ),\n\t\thasResolvedNavigationMenus: hasFinishedResolution(\n\t\t\t'getEntityRecords',\n\t\t\targs\n\t\t),\n\t};\n}\n\nfunction selectExistingMenu( select, ref ) {\n\tif ( ! ref ) {\n\t\treturn {\n\t\t\tisNavigationMenuResolved: false,\n\t\t\tisNavigationMenuMissing: true,\n\t\t};\n\t}\n\n\tconst { getEntityRecord, getEditedEntityRecord, hasFinishedResolution } =\n\t\tselect( coreStore );\n\n\tconst args = [ 'postType', 'wp_navigation', ref ];\n\tconst navigationMenu = getEntityRecord( ...args );\n\tconst editedNavigationMenu = getEditedEntityRecord( ...args );\n\tconst hasResolvedNavigationMenu = hasFinishedResolution(\n\t\t'getEditedEntityRecord',\n\t\targs\n\t);\n\n\t// Only published Navigation posts are considered valid.\n\t// If this is changed then a corresponding change must also be made\n\t// in the index.php file.\n\tconst isNavigationMenuPublished = editedNavigationMenu.status === 'publish';\n\n\treturn {\n\t\tisNavigationMenuResolved: hasResolvedNavigationMenu,\n\t\tisNavigationMenuMissing:\n\t\t\thasResolvedNavigationMenu &&\n\t\t\t( ! navigationMenu || ! isNavigationMenuPublished ),\n\n\t\t// getEditedEntityRecord will return the post regardless of status.\n\t\t// Therefore if the found post is not published then we should ignore it.\n\t\tnavigationMenu: isNavigationMenuPublished ? editedNavigationMenu : null,\n\t};\n}\n"]}
@@ -19,7 +19,7 @@ import { isURL, prependHTTP, safeDecodeURI } from '@wordpress/url';
19
19
  import { Fragment, useState, useEffect, useRef, createInterpolateElement } from '@wordpress/element';
20
20
  import { placeCaretAtHorizontalEdge } from '@wordpress/dom';
21
21
  import { link as linkIcon, addSubmenu } from '@wordpress/icons';
22
- import { store as coreStore } from '@wordpress/core-data';
22
+ import { store as coreStore, useResourcePermissions } from '@wordpress/core-data';
23
23
  import { decodeEntities } from '@wordpress/html-entities';
24
24
  /**
25
25
  * Internal dependencies
@@ -504,14 +504,14 @@ export default function NavigationLinkEdit(_ref2) {
504
504
  const itemLabelPlaceholder = __('Add link…');
505
505
 
506
506
  const ref = useRef();
507
+ const pagesPermissions = useResourcePermissions('pages');
508
+ const postsPermissions = useResourcePermissions('posts');
507
509
  const {
508
510
  innerBlocks,
509
511
  isAtMaxNesting,
510
512
  isTopLevelLink,
511
513
  isParentOfSelectedBlock,
512
- hasChildren,
513
- userCanCreatePages,
514
- userCanCreatePosts
514
+ hasChildren
515
515
  } = useSelect(select => {
516
516
  const {
517
517
  getBlocks,
@@ -526,9 +526,7 @@ export default function NavigationLinkEdit(_ref2) {
526
526
  isAtMaxNesting: getBlockParentsByBlockName(clientId, [name, 'core/navigation-submenu']).length >= maxNestingLevel,
527
527
  isTopLevelLink: getBlockName(getBlockRootClientId(clientId)) === 'core/navigation',
528
528
  isParentOfSelectedBlock: hasSelectedInnerBlock(clientId, true),
529
- hasChildren: !!getBlockCount(clientId),
530
- userCanCreatePages: select(coreStore).canUser('create', 'pages'),
531
- userCanCreatePosts: select(coreStore).canUser('create', 'posts')
529
+ hasChildren: !!getBlockCount(clientId)
532
530
  };
533
531
  }, [clientId]);
534
532
  useEffect(() => {
@@ -628,9 +626,9 @@ export default function NavigationLinkEdit(_ref2) {
628
626
  let userCanCreate = false;
629
627
 
630
628
  if (!type || type === 'page') {
631
- userCanCreate = userCanCreatePages;
629
+ userCanCreate = pagesPermissions.canCreate;
632
630
  } else if (type === 'post') {
633
- userCanCreate = userCanCreatePosts;
631
+ userCanCreate = postsPermissions.canCreate;
634
632
  }
635
633
 
636
634
  async function handleCreate(pageTitle) {