@wordpress/block-library 8.29.0 → 8.31.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 (527) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/audio/edit.js +7 -17
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/audio/edit.native.js.map +1 -1
  5. package/build/avatar/edit.js.map +1 -1
  6. package/build/block/deprecated.js +71 -11
  7. package/build/block/deprecated.js.map +1 -1
  8. package/build/block/edit.js +65 -31
  9. package/build/block/edit.js.map +1 -1
  10. package/build/button/edit.js +2 -2
  11. package/build/button/edit.js.map +1 -1
  12. package/build/buttons/edit.native.js.map +1 -1
  13. package/build/buttons/transforms.js +16 -2
  14. package/build/buttons/transforms.js.map +1 -1
  15. package/build/code/save.js +3 -1
  16. package/build/code/save.js.map +1 -1
  17. package/build/code/transforms.js +17 -6
  18. package/build/code/transforms.js.map +1 -1
  19. package/build/columns/edit.js +3 -2
  20. package/build/columns/edit.js.map +1 -1
  21. package/build/comment-author-avatar/edit.js +1 -1
  22. package/build/comment-author-avatar/edit.js.map +1 -1
  23. package/build/cover/edit/block-controls.js +14 -3
  24. package/build/cover/edit/block-controls.js.map +1 -1
  25. package/build/cover/edit/index.js +2 -1
  26. package/build/cover/edit/index.js.map +1 -1
  27. package/build/cover/edit/inspector-controls.js.map +1 -1
  28. package/build/cover/edit/resizable-cover-popover.js +0 -6
  29. package/build/cover/edit/resizable-cover-popover.js.map +1 -1
  30. package/build/cover/edit.native.js.map +1 -1
  31. package/build/details/edit.js +1 -0
  32. package/build/details/edit.js.map +1 -1
  33. package/build/file/deprecated.js.map +1 -1
  34. package/build/file/edit.js +8 -13
  35. package/build/file/edit.js.map +1 -1
  36. package/build/file/edit.native.js.map +1 -1
  37. package/build/file/save.js.map +1 -1
  38. package/build/form-input/edit.js +1 -1
  39. package/build/form-input/edit.js.map +1 -1
  40. package/build/gallery/edit.js.map +1 -1
  41. package/build/gallery/gallery.native.js.map +1 -1
  42. package/build/gallery/v1/edit.js.map +1 -1
  43. package/build/gallery/v1/gallery.native.js.map +1 -1
  44. package/build/heading/index.js +4 -3
  45. package/build/heading/index.js.map +1 -1
  46. package/build/heading/transforms.js +17 -4
  47. package/build/heading/transforms.js.map +1 -1
  48. package/build/image/edit.js +8 -4
  49. package/build/image/edit.js.map +1 -1
  50. package/build/image/edit.native.js.map +1 -1
  51. package/build/image/image.js +22 -8
  52. package/build/image/image.js.map +1 -1
  53. package/build/latest-posts/edit.native.js.map +1 -1
  54. package/build/list/ordered-list-settings.js +1 -1
  55. package/build/list/ordered-list-settings.js.map +1 -1
  56. package/build/list-item/edit.js +1 -3
  57. package/build/list-item/edit.js.map +1 -1
  58. package/build/list-item/edit.native.js.map +1 -1
  59. package/build/list-item/hooks/index.js +0 -7
  60. package/build/list-item/hooks/index.js.map +1 -1
  61. package/build/list-item/hooks/use-indent-list-item.js +1 -0
  62. package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
  63. package/build/list-item/hooks/use-outdent-list-item.js +1 -0
  64. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  65. package/build/list-item/hooks/use-space.js +16 -7
  66. package/build/list-item/hooks/use-space.js.map +1 -1
  67. package/build/list-item/index.js +4 -1
  68. package/build/list-item/index.js.map +1 -1
  69. package/build/media-text/edit.js +33 -9
  70. package/build/media-text/edit.js.map +1 -1
  71. package/build/media-text/index.js +5 -0
  72. package/build/media-text/index.js.map +1 -1
  73. package/build/media-text/media-container.js +30 -11
  74. package/build/media-text/media-container.js.map +1 -1
  75. package/build/media-text/media-container.native.js +1 -1
  76. package/build/media-text/media-container.native.js.map +1 -1
  77. package/build/media-text/save.js +2 -2
  78. package/build/media-text/save.js.map +1 -1
  79. package/build/navigation/edit/index.js +23 -29
  80. package/build/navigation/edit/index.js.map +1 -1
  81. package/build/navigation/edit/navigation-menu-delete-control.js +12 -20
  82. package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  83. package/build/navigation/edit/navigation-menu-selector.js +24 -23
  84. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  85. package/build/navigation/edit/placeholder/index.js +4 -4
  86. package/build/navigation/edit/placeholder/index.js.map +1 -1
  87. package/build/navigation/use-navigation-menu.js +15 -12
  88. package/build/navigation/use-navigation-menu.js.map +1 -1
  89. package/build/navigation-link/edit.js +12 -10
  90. package/build/navigation-link/edit.js.map +1 -1
  91. package/build/navigation-link/link-ui.js.map +1 -1
  92. package/build/navigation-submenu/edit.js +4 -0
  93. package/build/navigation-submenu/edit.js.map +1 -1
  94. package/build/paragraph/edit.native.js.map +1 -1
  95. package/build/pattern/edit.js +11 -0
  96. package/build/pattern/edit.js.map +1 -1
  97. package/build/post-author/edit.js +1 -0
  98. package/build/post-author/edit.js.map +1 -1
  99. package/build/post-excerpt/edit.js +1 -0
  100. package/build/post-excerpt/edit.js.map +1 -1
  101. package/build/post-featured-image/dimension-controls.js.map +1 -1
  102. package/build/post-featured-image/edit.js +12 -12
  103. package/build/post-featured-image/edit.js.map +1 -1
  104. package/build/post-featured-image/index.js +6 -0
  105. package/build/post-featured-image/index.js.map +1 -1
  106. package/build/post-navigation-link/edit.js +1 -0
  107. package/build/post-navigation-link/edit.js.map +1 -1
  108. package/build/post-terms/edit.js +2 -0
  109. package/build/post-terms/edit.js.map +1 -1
  110. package/build/post-title/edit.js +2 -2
  111. package/build/post-title/edit.js.map +1 -1
  112. package/build/query/edit/pattern-selection-modal.js.map +1 -1
  113. package/build/query/utils.js +7 -5
  114. package/build/query/utils.js.map +1 -1
  115. package/build/query-pagination-next/edit.js.map +1 -1
  116. package/build/query-pagination-previous/edit.js.map +1 -1
  117. package/build/quote/deprecated.js +111 -12
  118. package/build/quote/deprecated.js.map +1 -1
  119. package/build/quote/edit.js +7 -7
  120. package/build/quote/edit.js.map +1 -1
  121. package/build/quote/index.js +1 -1
  122. package/build/quote/index.js.map +1 -1
  123. package/build/quote/save.js +2 -2
  124. package/build/quote/save.js.map +1 -1
  125. package/build/read-more/edit.js +1 -0
  126. package/build/read-more/edit.js.map +1 -1
  127. package/build/search/edit.js +3 -1
  128. package/build/search/edit.js.map +1 -1
  129. package/build/search/edit.native.js +2 -2
  130. package/build/search/edit.native.js.map +1 -1
  131. package/build/site-logo/edit.js +7 -2
  132. package/build/site-logo/edit.js.map +1 -1
  133. package/build/site-title/{edit/index.js → edit.js} +1 -1
  134. package/build/site-title/edit.js.map +1 -0
  135. package/build/social-link/edit.js +1 -1
  136. package/build/social-link/edit.js.map +1 -1
  137. package/build/social-link/icons/medium.js +1 -1
  138. package/build/social-link/icons/medium.js.map +1 -1
  139. package/build/social-link/icons/reddit.js +1 -1
  140. package/build/social-link/icons/reddit.js.map +1 -1
  141. package/build/social-links/edit.native.js.map +1 -1
  142. package/build/spacer/edit.js.map +1 -1
  143. package/build/table/deprecated.js +285 -175
  144. package/build/table/deprecated.js.map +1 -1
  145. package/build/table/index.js +1 -1
  146. package/build/table-of-contents/edit.js.map +1 -1
  147. package/build/template-part/edit/index.js +53 -1
  148. package/build/template-part/edit/index.js.map +1 -1
  149. package/build/template-part/edit/selection-modal.js +2 -8
  150. package/build/template-part/edit/selection-modal.js.map +1 -1
  151. package/build/template-part/edit/utils/map-template-part-to-block-pattern.js +30 -0
  152. package/build/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
  153. package/build/utils/caption.js +15 -5
  154. package/build/utils/caption.js.map +1 -1
  155. package/build/utils/get-transformed-metadata.js +57 -0
  156. package/build/utils/get-transformed-metadata.js.map +1 -0
  157. package/build/utils/hooks.js +55 -4
  158. package/build/utils/hooks.js.map +1 -1
  159. package/build/video/edit-common-settings.js.map +1 -1
  160. package/build/video/edit.js +7 -16
  161. package/build/video/edit.js.map +1 -1
  162. package/build/video/edit.native.js +3 -8
  163. package/build/video/edit.native.js.map +1 -1
  164. package/build-module/audio/edit.js +10 -20
  165. package/build-module/audio/edit.js.map +1 -1
  166. package/build-module/audio/edit.native.js.map +1 -1
  167. package/build-module/avatar/edit.js.map +1 -1
  168. package/build-module/block/deprecated.js +71 -11
  169. package/build-module/block/deprecated.js.map +1 -1
  170. package/build-module/block/edit.js +66 -32
  171. package/build-module/block/edit.js.map +1 -1
  172. package/build-module/button/edit.js +3 -3
  173. package/build-module/button/edit.js.map +1 -1
  174. package/build-module/buttons/edit.native.js.map +1 -1
  175. package/build-module/buttons/transforms.js +16 -2
  176. package/build-module/buttons/transforms.js.map +1 -1
  177. package/build-module/code/save.js +3 -1
  178. package/build-module/code/save.js.map +1 -1
  179. package/build-module/code/transforms.js +17 -6
  180. package/build-module/code/transforms.js.map +1 -1
  181. package/build-module/columns/edit.js +3 -2
  182. package/build-module/columns/edit.js.map +1 -1
  183. package/build-module/comment-author-avatar/edit.js +1 -1
  184. package/build-module/comment-author-avatar/edit.js.map +1 -1
  185. package/build-module/cover/edit/block-controls.js +15 -4
  186. package/build-module/cover/edit/block-controls.js.map +1 -1
  187. package/build-module/cover/edit/index.js +2 -1
  188. package/build-module/cover/edit/index.js.map +1 -1
  189. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  190. package/build-module/cover/edit/resizable-cover-popover.js +1 -7
  191. package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
  192. package/build-module/cover/edit.native.js.map +1 -1
  193. package/build-module/details/edit.js +1 -0
  194. package/build-module/details/edit.js.map +1 -1
  195. package/build-module/file/deprecated.js.map +1 -1
  196. package/build-module/file/edit.js +9 -14
  197. package/build-module/file/edit.js.map +1 -1
  198. package/build-module/file/edit.native.js.map +1 -1
  199. package/build-module/file/save.js.map +1 -1
  200. package/build-module/form-input/edit.js +1 -1
  201. package/build-module/form-input/edit.js.map +1 -1
  202. package/build-module/gallery/edit.js.map +1 -1
  203. package/build-module/gallery/gallery.native.js.map +1 -1
  204. package/build-module/gallery/v1/edit.js.map +1 -1
  205. package/build-module/gallery/v1/gallery.native.js.map +1 -1
  206. package/build-module/heading/index.js +4 -3
  207. package/build-module/heading/index.js.map +1 -1
  208. package/build-module/heading/transforms.js +17 -4
  209. package/build-module/heading/transforms.js.map +1 -1
  210. package/build-module/image/edit.js +9 -5
  211. package/build-module/image/edit.js.map +1 -1
  212. package/build-module/image/edit.native.js.map +1 -1
  213. package/build-module/image/image.js +23 -9
  214. package/build-module/image/image.js.map +1 -1
  215. package/build-module/latest-posts/edit.native.js.map +1 -1
  216. package/build-module/list/ordered-list-settings.js +1 -1
  217. package/build-module/list/ordered-list-settings.js.map +1 -1
  218. package/build-module/list-item/edit.js +2 -4
  219. package/build-module/list-item/edit.js.map +1 -1
  220. package/build-module/list-item/edit.native.js.map +1 -1
  221. package/build-module/list-item/hooks/index.js +0 -1
  222. package/build-module/list-item/hooks/index.js.map +1 -1
  223. package/build-module/list-item/hooks/use-indent-list-item.js +1 -0
  224. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
  225. package/build-module/list-item/hooks/use-outdent-list-item.js +1 -0
  226. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  227. package/build-module/list-item/hooks/use-space.js +17 -8
  228. package/build-module/list-item/hooks/use-space.js.map +1 -1
  229. package/build-module/list-item/index.js +4 -1
  230. package/build-module/list-item/index.js.map +1 -1
  231. package/build-module/media-text/edit.js +34 -10
  232. package/build-module/media-text/edit.js.map +1 -1
  233. package/build-module/media-text/index.js +5 -0
  234. package/build-module/media-text/index.js.map +1 -1
  235. package/build-module/media-text/media-container.js +31 -12
  236. package/build-module/media-text/media-container.js.map +1 -1
  237. package/build-module/media-text/media-container.native.js +1 -1
  238. package/build-module/media-text/media-container.native.js.map +1 -1
  239. package/build-module/media-text/save.js +2 -2
  240. package/build-module/media-text/save.js.map +1 -1
  241. package/build-module/navigation/edit/index.js +24 -30
  242. package/build-module/navigation/edit/index.js.map +1 -1
  243. package/build-module/navigation/edit/navigation-menu-delete-control.js +15 -23
  244. package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  245. package/build-module/navigation/edit/navigation-menu-selector.js +24 -23
  246. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  247. package/build-module/navigation/edit/placeholder/index.js +4 -4
  248. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  249. package/build-module/navigation/use-navigation-menu.js +15 -12
  250. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  251. package/build-module/navigation-link/edit.js +13 -11
  252. package/build-module/navigation-link/edit.js.map +1 -1
  253. package/build-module/navigation-link/link-ui.js.map +1 -1
  254. package/build-module/navigation-submenu/edit.js +4 -0
  255. package/build-module/navigation-submenu/edit.js.map +1 -1
  256. package/build-module/paragraph/edit.native.js.map +1 -1
  257. package/build-module/pattern/edit.js +11 -0
  258. package/build-module/pattern/edit.js.map +1 -1
  259. package/build-module/post-author/edit.js +1 -0
  260. package/build-module/post-author/edit.js.map +1 -1
  261. package/build-module/post-excerpt/edit.js +1 -0
  262. package/build-module/post-excerpt/edit.js.map +1 -1
  263. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  264. package/build-module/post-featured-image/edit.js +13 -13
  265. package/build-module/post-featured-image/edit.js.map +1 -1
  266. package/build-module/post-featured-image/index.js +6 -0
  267. package/build-module/post-featured-image/index.js.map +1 -1
  268. package/build-module/post-navigation-link/edit.js +1 -0
  269. package/build-module/post-navigation-link/edit.js.map +1 -1
  270. package/build-module/post-terms/edit.js +2 -0
  271. package/build-module/post-terms/edit.js.map +1 -1
  272. package/build-module/post-title/edit.js +2 -2
  273. package/build-module/post-title/edit.js.map +1 -1
  274. package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
  275. package/build-module/query/utils.js +7 -5
  276. package/build-module/query/utils.js.map +1 -1
  277. package/build-module/query-pagination-next/edit.js.map +1 -1
  278. package/build-module/query-pagination-previous/edit.js.map +1 -1
  279. package/build-module/quote/deprecated.js +112 -13
  280. package/build-module/quote/deprecated.js.map +1 -1
  281. package/build-module/quote/edit.js +7 -7
  282. package/build-module/quote/edit.js.map +1 -1
  283. package/build-module/quote/index.js +1 -1
  284. package/build-module/quote/index.js.map +1 -1
  285. package/build-module/quote/save.js +2 -2
  286. package/build-module/quote/save.js.map +1 -1
  287. package/build-module/read-more/edit.js +1 -0
  288. package/build-module/read-more/edit.js.map +1 -1
  289. package/build-module/search/edit.js +3 -1
  290. package/build-module/search/edit.js.map +1 -1
  291. package/build-module/search/edit.native.js +2 -2
  292. package/build-module/search/edit.native.js.map +1 -1
  293. package/build-module/site-logo/edit.js +7 -2
  294. package/build-module/site-logo/edit.js.map +1 -1
  295. package/build-module/site-title/{edit/index.js → edit.js} +1 -1
  296. package/build-module/site-title/edit.js.map +1 -0
  297. package/build-module/social-link/edit.js +1 -1
  298. package/build-module/social-link/edit.js.map +1 -1
  299. package/build-module/social-link/icons/medium.js +1 -1
  300. package/build-module/social-link/icons/medium.js.map +1 -1
  301. package/build-module/social-link/icons/reddit.js +1 -1
  302. package/build-module/social-link/icons/reddit.js.map +1 -1
  303. package/build-module/social-links/edit.native.js.map +1 -1
  304. package/build-module/spacer/edit.js.map +1 -1
  305. package/build-module/table/deprecated.js +286 -176
  306. package/build-module/table/deprecated.js.map +1 -1
  307. package/build-module/table/index.js +1 -1
  308. package/build-module/table-of-contents/edit.js.map +1 -1
  309. package/build-module/template-part/edit/index.js +57 -5
  310. package/build-module/template-part/edit/index.js.map +1 -1
  311. package/build-module/template-part/edit/selection-modal.js +2 -8
  312. package/build-module/template-part/edit/selection-modal.js.map +1 -1
  313. package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js +24 -0
  314. package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
  315. package/build-module/utils/caption.js +13 -3
  316. package/build-module/utils/caption.js.map +1 -1
  317. package/build-module/utils/get-transformed-metadata.js +51 -0
  318. package/build-module/utils/get-transformed-metadata.js.map +1 -0
  319. package/build-module/utils/hooks.js +54 -3
  320. package/build-module/utils/hooks.js.map +1 -1
  321. package/build-module/video/edit-common-settings.js.map +1 -1
  322. package/build-module/video/edit.js +10 -19
  323. package/build-module/video/edit.js.map +1 -1
  324. package/build-module/video/edit.native.js +3 -8
  325. package/build-module/video/edit.native.js.map +1 -1
  326. package/build-style/common-rtl.css +1 -0
  327. package/build-style/common.css +1 -0
  328. package/build-style/cover/style-rtl.css +2 -1
  329. package/build-style/cover/style.css +2 -1
  330. package/build-style/editor-rtl.css +11 -2
  331. package/build-style/editor.css +11 -2
  332. package/build-style/file/editor-rtl.css +3 -0
  333. package/build-style/file/editor.css +3 -0
  334. package/build-style/group/editor-rtl.css +1 -1
  335. package/build-style/group/editor.css +1 -1
  336. package/build-style/media-text/editor-rtl.css +7 -1
  337. package/build-style/media-text/editor.css +7 -1
  338. package/build-style/search/style-rtl.css +2 -0
  339. package/build-style/search/style.css +2 -0
  340. package/build-style/social-links/style-rtl.css +2 -2
  341. package/build-style/social-links/style.css +2 -2
  342. package/build-style/style-rtl.css +6 -3
  343. package/build-style/style.css +6 -3
  344. package/package.json +34 -34
  345. package/src/archives/index.php +4 -0
  346. package/src/audio/edit.js +9 -19
  347. package/src/audio/edit.native.js +3 -3
  348. package/src/avatar/edit.js +1 -1
  349. package/src/avatar/index.php +6 -0
  350. package/src/block/deprecated.js +76 -11
  351. package/src/block/edit.js +100 -32
  352. package/src/block/index.php +27 -12
  353. package/src/block/test/edit.native.js +67 -0
  354. package/src/button/edit.js +4 -3
  355. package/src/buttons/edit.native.js +1 -1
  356. package/src/buttons/transforms.js +14 -4
  357. package/src/calendar/index.php +17 -0
  358. package/src/categories/index.php +6 -0
  359. package/src/code/save.js +7 -1
  360. package/src/code/transforms.js +20 -5
  361. package/src/columns/edit.js +3 -2
  362. package/src/comment-author-avatar/edit.js +1 -1
  363. package/src/comment-author-name/index.php +4 -0
  364. package/src/comment-content/index.php +4 -0
  365. package/src/comment-date/index.php +4 -0
  366. package/src/comment-edit-link/index.php +4 -0
  367. package/src/comment-reply-link/index.php +4 -0
  368. package/src/comment-template/index.php +4 -0
  369. package/src/comments/index.php +12 -0
  370. package/src/comments-pagination/index.php +4 -0
  371. package/src/comments-pagination-next/index.php +4 -0
  372. package/src/comments-pagination-numbers/index.php +4 -0
  373. package/src/comments-pagination-previous/index.php +4 -0
  374. package/src/comments-title/index.php +4 -0
  375. package/src/cover/edit/block-controls.js +16 -2
  376. package/src/cover/edit/index.js +6 -3
  377. package/src/cover/edit/inspector-controls.js +1 -1
  378. package/src/cover/edit/resizable-cover-popover.js +1 -6
  379. package/src/cover/edit.native.js +1 -1
  380. package/src/cover/index.php +4 -0
  381. package/src/cover/style.scss +3 -2
  382. package/src/details/edit.js +1 -0
  383. package/src/file/deprecated.js +3 -3
  384. package/src/file/edit.js +10 -15
  385. package/src/file/edit.native.js +4 -4
  386. package/src/file/editor.scss +3 -0
  387. package/src/file/index.php +4 -0
  388. package/src/file/save.js +1 -1
  389. package/src/footnotes/index.php +1 -1
  390. package/src/form-input/edit.js +1 -1
  391. package/src/gallery/edit.js +3 -3
  392. package/src/gallery/gallery.native.js +1 -1
  393. package/src/gallery/index.php +6 -0
  394. package/src/gallery/test/index.native.js +1 -1
  395. package/src/gallery/v1/edit.js +2 -2
  396. package/src/gallery/v1/gallery.native.js +1 -1
  397. package/src/group/editor.scss +1 -1
  398. package/src/heading/index.js +4 -3
  399. package/src/heading/index.php +4 -0
  400. package/src/heading/transforms.js +27 -8
  401. package/src/home-link/index.php +10 -0
  402. package/src/image/edit.js +13 -5
  403. package/src/image/edit.native.js +1 -1
  404. package/src/image/editor.scss +1 -0
  405. package/src/image/image.js +34 -22
  406. package/src/image/index.php +12 -1
  407. package/src/latest-comments/index.php +4 -0
  408. package/src/latest-posts/edit.native.js +1 -1
  409. package/src/latest-posts/index.php +8 -0
  410. package/src/list/ordered-list-settings.js +1 -1
  411. package/src/list-item/edit.js +1 -2
  412. package/src/list-item/edit.native.js +1 -1
  413. package/src/list-item/hooks/index.js +0 -1
  414. package/src/list-item/hooks/use-indent-list-item.js +2 -0
  415. package/src/list-item/hooks/use-outdent-list-item.js +2 -0
  416. package/src/list-item/hooks/use-space.js +16 -9
  417. package/src/list-item/index.js +3 -0
  418. package/src/loginout/index.php +4 -0
  419. package/src/media-text/block.json +5 -0
  420. package/src/media-text/edit.js +70 -19
  421. package/src/media-text/editor.scss +7 -1
  422. package/src/media-text/index.php +70 -0
  423. package/src/media-text/media-container.js +49 -9
  424. package/src/media-text/media-container.native.js +5 -3
  425. package/src/media-text/save.js +2 -2
  426. package/src/media-text/test/edit.native.js +58 -0
  427. package/src/missing/test/edit-integration.native.js +2 -1
  428. package/src/navigation/edit/index.js +68 -72
  429. package/src/navigation/edit/navigation-menu-delete-control.js +22 -49
  430. package/src/navigation/edit/navigation-menu-selector.js +39 -21
  431. package/src/navigation/edit/placeholder/index.js +4 -4
  432. package/src/navigation/edit/test/navigation-menu-selector.js +77 -55
  433. package/src/navigation/index.php +118 -34
  434. package/src/navigation/test/use-navigation-menu.js +21 -21
  435. package/src/navigation/use-navigation-menu.js +23 -9
  436. package/src/navigation-link/edit.js +12 -13
  437. package/src/navigation-link/index.php +14 -0
  438. package/src/navigation-link/link-ui.js +2 -2
  439. package/src/navigation-submenu/edit.js +4 -0
  440. package/src/navigation-submenu/index.php +8 -0
  441. package/src/page-list/index.php +12 -0
  442. package/src/page-list-item/index.php +2 -0
  443. package/src/paragraph/edit.native.js +1 -1
  444. package/src/paragraph/test/edit.native.js +36 -0
  445. package/src/pattern/edit.js +14 -0
  446. package/src/pattern/index.php +2 -0
  447. package/src/post-author/edit.js +1 -0
  448. package/src/post-author/index.php +4 -0
  449. package/src/post-author-biography/index.php +4 -0
  450. package/src/post-author-name/index.php +4 -0
  451. package/src/post-comments-form/index.php +6 -0
  452. package/src/post-content/index.php +4 -0
  453. package/src/post-date/index.php +4 -0
  454. package/src/post-excerpt/edit.js +2 -1
  455. package/src/post-excerpt/index.php +4 -0
  456. package/src/post-featured-image/block.json +6 -0
  457. package/src/post-featured-image/dimension-controls.js +4 -4
  458. package/src/post-featured-image/edit.js +14 -12
  459. package/src/post-featured-image/index.php +15 -0
  460. package/src/post-navigation-link/edit.js +2 -1
  461. package/src/post-navigation-link/index.php +4 -0
  462. package/src/post-template/index.php +6 -0
  463. package/src/post-terms/edit.js +2 -0
  464. package/src/post-terms/index.php +6 -0
  465. package/src/post-title/edit.js +49 -43
  466. package/src/post-title/index.php +2 -0
  467. package/src/query/edit/pattern-selection-modal.js +1 -1
  468. package/src/query/index.php +2 -0
  469. package/src/query/utils.js +6 -4
  470. package/src/query-no-results/index.php +4 -0
  471. package/src/query-pagination/index.php +4 -0
  472. package/src/query-pagination-next/edit.js +1 -1
  473. package/src/query-pagination-next/index.php +4 -0
  474. package/src/query-pagination-numbers/index.php +4 -0
  475. package/src/query-pagination-previous/edit.js +1 -1
  476. package/src/query-pagination-previous/index.php +4 -0
  477. package/src/query-title/index.php +4 -0
  478. package/src/quote/block.json +1 -1
  479. package/src/quote/deprecated.js +110 -15
  480. package/src/quote/edit.js +16 -10
  481. package/src/quote/save.js +2 -2
  482. package/src/quote/test/__snapshots__/transforms.native.js.snap +2 -2
  483. package/src/read-more/edit.js +2 -1
  484. package/src/read-more/index.php +4 -0
  485. package/src/rss/index.php +4 -0
  486. package/src/search/edit.js +3 -1
  487. package/src/search/edit.native.js +6 -6
  488. package/src/search/index.php +20 -2
  489. package/src/search/style.scss +2 -0
  490. package/src/shortcode/index.php +4 -0
  491. package/src/site-logo/edit.js +11 -6
  492. package/src/site-logo/index.php +20 -0
  493. package/src/site-tagline/index.php +4 -0
  494. package/src/site-title/index.php +4 -0
  495. package/src/social-link/edit.js +2 -2
  496. package/src/social-link/icons/medium.js +1 -1
  497. package/src/social-link/icons/reddit.js +1 -1
  498. package/src/social-link/index.php +22 -9
  499. package/src/social-link/socials-with-bg.scss +1 -1
  500. package/src/social-link/socials-without-bg.scss +1 -1
  501. package/src/social-links/edit.native.js +1 -1
  502. package/src/spacer/edit.js +1 -1
  503. package/src/table/block.json +1 -1
  504. package/src/table/deprecated.js +308 -175
  505. package/src/table-of-contents/edit.js +1 -1
  506. package/src/tag-cloud/index.php +4 -0
  507. package/src/template-part/edit/index.js +91 -4
  508. package/src/template-part/edit/selection-modal.js +4 -8
  509. package/src/template-part/edit/utils/map-template-part-to-block-pattern.js +23 -0
  510. package/src/template-part/index.php +10 -0
  511. package/src/term-description/index.php +4 -0
  512. package/src/utils/caption.js +10 -1
  513. package/src/utils/get-transformed-metadata.js +65 -0
  514. package/src/utils/hooks.js +53 -3
  515. package/src/video/edit-common-settings.js +1 -1
  516. package/src/video/edit.js +10 -18
  517. package/src/video/edit.native.js +7 -8
  518. package/src/video/test/edit.native.js +0 -14
  519. package/tsconfig.json +1 -0
  520. package/build/list-item/hooks/use-copy.js +0 -39
  521. package/build/list-item/hooks/use-copy.js.map +0 -1
  522. package/build/site-title/edit/index.js.map +0 -1
  523. package/build-module/list-item/hooks/use-copy.js +0 -32
  524. package/build-module/list-item/hooks/use-copy.js.map +0 -1
  525. package/build-module/site-title/edit/index.js.map +0 -1
  526. package/src/list-item/hooks/use-copy.js +0 -38
  527. /package/src/site-title/{edit/index.js → edit.js} +0 -0
@@ -17,9 +17,8 @@ var _i18n = require("@wordpress/i18n");
17
17
  function NavigationMenuDeleteControl({
18
18
  onDelete
19
19
  }) {
20
- const [isConfirmModalVisible, setIsConfirmModalVisible] = (0, _element.useState)(false);
20
+ const [isConfirmDialogVisible, setIsConfirmDialogVisible] = (0, _element.useState)(false);
21
21
  const id = (0, _coreData.useEntityId)('postType', 'wp_navigation');
22
- const [title] = (0, _coreData.useEntityProp)('postType', 'wp_navigation', 'title');
23
22
  const {
24
23
  deleteEntityRecord
25
24
  } = (0, _data.useDispatch)(_coreData.store);
@@ -28,27 +27,20 @@ function NavigationMenuDeleteControl({
28
27
  variant: "secondary",
29
28
  isDestructive: true,
30
29
  onClick: () => {
31
- setIsConfirmModalVisible(true);
30
+ setIsConfirmDialogVisible(true);
32
31
  }
33
- }, (0, _i18n.__)('Delete menu')), isConfirmModalVisible && (0, _react.createElement)(_components.Modal, {
34
- title: (0, _i18n.sprintf)( /* translators: %s: the name of a menu to delete */
35
- (0, _i18n.__)('Delete %s'), title),
36
- onRequestClose: () => setIsConfirmModalVisible(false)
37
- }, (0, _react.createElement)("p", null, (0, _i18n.__)('Are you sure you want to delete this navigation menu?')), (0, _react.createElement)(_components.__experimentalHStack, {
38
- justify: "right"
39
- }, (0, _react.createElement)(_components.Button, {
40
- variant: "tertiary",
41
- onClick: () => {
42
- setIsConfirmModalVisible(false);
43
- }
44
- }, (0, _i18n.__)('Cancel')), (0, _react.createElement)(_components.Button, {
45
- variant: "primary",
46
- onClick: () => {
32
+ }, (0, _i18n.__)('Delete menu')), isConfirmDialogVisible && (0, _react.createElement)(_components.__experimentalConfirmDialog, {
33
+ isOpen: true,
34
+ onConfirm: () => {
47
35
  deleteEntityRecord('postType', 'wp_navigation', id, {
48
36
  force: true
49
37
  });
50
- onDelete(title);
51
- }
52
- }, (0, _i18n.__)('Confirm')))));
38
+ onDelete();
39
+ },
40
+ onCancel: () => {
41
+ setIsConfirmDialogVisible(false);
42
+ },
43
+ confirmButtonText: (0, _i18n.__)('Delete')
44
+ }, (0, _i18n.__)('Are you sure you want to delete this Navigation menu?')));
53
45
  }
54
46
  //# sourceMappingURL=navigation-menu-delete-control.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_coreData","_data","_element","_i18n","NavigationMenuDeleteControl","onDelete","isConfirmModalVisible","setIsConfirmModalVisible","useState","id","useEntityId","title","useEntityProp","deleteEntityRecord","useDispatch","coreStore","_react","createElement","Fragment","Button","className","variant","isDestructive","onClick","__","Modal","sprintf","onRequestClose","__experimentalHStack","justify","force"],"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-delete-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport {\n\tstore as coreStore,\n\tuseEntityId,\n\tuseEntityProp,\n} from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\nexport default function NavigationMenuDeleteControl( { onDelete } ) {\n\tconst [ isConfirmModalVisible, setIsConfirmModalVisible ] =\n\t\tuseState( false );\n\tconst id = useEntityId( 'postType', 'wp_navigation' );\n\tconst [ title ] = useEntityProp( 'postType', 'wp_navigation', 'title' );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName=\"wp-block-navigation-delete-menu-button\"\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\tisDestructive\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsConfirmModalVisible( true );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Delete menu' ) }\n\t\t\t</Button>\n\t\t\t{ isConfirmModalVisible && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t/* translators: %s: the name of a menu to delete */\n\t\t\t\t\t\t__( 'Delete %s' ),\n\t\t\t\t\t\ttitle\n\t\t\t\t\t) }\n\t\t\t\t\tonRequestClose={ () => setIsConfirmModalVisible( false ) }\n\t\t\t\t>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Are you sure you want to delete this navigation menu?'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetIsConfirmModalVisible( false );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tdeleteEntityRecord(\n\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t'wp_navigation',\n\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t{ force: true }\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tonDelete( title );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Confirm' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,SAAA,GAAAD,OAAA;AAKA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAfA;AACA;AACA;;AAee,SAASK,2BAA2BA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACnE,MAAM,CAAEC,qBAAqB,EAAEC,wBAAwB,CAAE,GACxD,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAClB,MAAMC,EAAE,GAAG,IAAAC,qBAAW,EAAE,UAAU,EAAE,eAAgB,CAAC;EACrD,MAAM,CAAEC,KAAK,CAAE,GAAG,IAAAC,uBAAa,EAAE,UAAU,EAAE,eAAe,EAAE,OAAQ,CAAC;EACvE,MAAM;IAAEC;EAAmB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,eAAU,CAAC;EAEvD,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACnB,WAAA,CAAAqB,MAAM;IACNC,SAAS,EAAC,wCAAwC;IAClDC,OAAO,EAAC,WAAW;IACnBC,aAAa;IACbC,OAAO,EAAGA,CAAA,KAAM;MACfhB,wBAAwB,CAAE,IAAK,CAAC;IACjC;EAAG,GAED,IAAAiB,QAAE,EAAE,aAAc,CACb,CAAC,EACPlB,qBAAqB,IACtB,IAAAU,MAAA,CAAAC,aAAA,EAACnB,WAAA,CAAA2B,KAAK;IACLd,KAAK,EAAG,IAAAe,aAAO,GACd;IACA,IAAAF,QAAE,EAAE,WAAY,CAAC,EACjBb,KACD,CAAG;IACHgB,cAAc,EAAGA,CAAA,KAAMpB,wBAAwB,CAAE,KAAM;EAAG,GAE1D,IAAAS,MAAA,CAAAC,aAAA,aACG,IAAAO,QAAE,EACH,uDACD,CACE,CAAC,EACJ,IAAAR,MAAA,CAAAC,aAAA,EAACnB,WAAA,CAAA8B,oBAAM;IAACC,OAAO,EAAC;EAAO,GACtB,IAAAb,MAAA,CAAAC,aAAA,EAACnB,WAAA,CAAAqB,MAAM;IACNE,OAAO,EAAC,UAAU;IAClBE,OAAO,EAAGA,CAAA,KAAM;MACfhB,wBAAwB,CAAE,KAAM,CAAC;IAClC;EAAG,GAED,IAAAiB,QAAE,EAAE,QAAS,CACR,CAAC,EACT,IAAAR,MAAA,CAAAC,aAAA,EAACnB,WAAA,CAAAqB,MAAM;IACNE,OAAO,EAAC,SAAS;IACjBE,OAAO,EAAGA,CAAA,KAAM;MACfV,kBAAkB,CACjB,UAAU,EACV,eAAe,EACfJ,EAAE,EACF;QAAEqB,KAAK,EAAE;MAAK,CACf,CAAC;MACDzB,QAAQ,CAAEM,KAAM,CAAC;IAClB;EAAG,GAED,IAAAa,QAAE,EAAE,SAAU,CACT,CACD,CACF,CAEP,CAAC;AAEL"}
1
+ {"version":3,"names":["_components","require","_coreData","_data","_element","_i18n","NavigationMenuDeleteControl","onDelete","isConfirmDialogVisible","setIsConfirmDialogVisible","useState","id","useEntityId","deleteEntityRecord","useDispatch","coreStore","_react","createElement","Fragment","Button","className","variant","isDestructive","onClick","__","__experimentalConfirmDialog","isOpen","onConfirm","force","onCancel","confirmButtonText"],"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-delete-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { store as coreStore, useEntityId } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\nexport default function NavigationMenuDeleteControl( { onDelete } ) {\n\tconst [ isConfirmDialogVisible, setIsConfirmDialogVisible ] =\n\t\tuseState( false );\n\tconst id = useEntityId( 'postType', 'wp_navigation' );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName=\"wp-block-navigation-delete-menu-button\"\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\tisDestructive\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsConfirmDialogVisible( true );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Delete menu' ) }\n\t\t\t</Button>\n\t\t\t{ isConfirmDialogVisible && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tisOpen\n\t\t\t\t\tonConfirm={ () => {\n\t\t\t\t\t\tdeleteEntityRecord( 'postType', 'wp_navigation', id, {\n\t\t\t\t\t\t\tforce: true,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tonDelete();\n\t\t\t\t\t} }\n\t\t\t\t\tonCancel={ () => {\n\t\t\t\t\t\tsetIsConfirmDialogVisible( false );\n\t\t\t\t\t} }\n\t\t\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Are you sure you want to delete this Navigation menu?'\n\t\t\t\t\t) }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAIA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAVA;AACA;AACA;;AAUe,SAASK,2BAA2BA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACnE,MAAM,CAAEC,sBAAsB,EAAEC,yBAAyB,CAAE,GAC1D,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAClB,MAAMC,EAAE,GAAG,IAAAC,qBAAW,EAAE,UAAU,EAAE,eAAgB,CAAC;EACrD,MAAM;IAAEC;EAAmB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,eAAU,CAAC;EAEvD,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAAmB,MAAM;IACNC,SAAS,EAAC,wCAAwC;IAClDC,OAAO,EAAC,WAAW;IACnBC,aAAa;IACbC,OAAO,EAAGA,CAAA,KAAM;MACfd,yBAAyB,CAAE,IAAK,CAAC;IAClC;EAAG,GAED,IAAAe,QAAE,EAAE,aAAc,CACb,CAAC,EACPhB,sBAAsB,IACvB,IAAAQ,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAAyB,2BAAa;IACbC,MAAM;IACNC,SAAS,EAAGA,CAAA,KAAM;MACjBd,kBAAkB,CAAE,UAAU,EAAE,eAAe,EAAEF,EAAE,EAAE;QACpDiB,KAAK,EAAE;MACR,CAAE,CAAC;MACHrB,QAAQ,CAAC,CAAC;IACX,CAAG;IACHsB,QAAQ,EAAGA,CAAA,KAAM;MAChBpB,yBAAyB,CAAE,KAAM,CAAC;IACnC,CAAG;IACHqB,iBAAiB,EAAG,IAAAN,QAAE,EAAE,QAAS;EAAG,GAElC,IAAAA,QAAE,EACH,uDACD,CACc,CAEf,CAAC;AAEL"}
@@ -45,7 +45,7 @@ function NavigationMenuSelector({
45
45
  }) {
46
46
  /* translators: %s: The name of a menu. */
47
47
  const createActionLabel = (0, _i18n.__)("Create from '%s'");
48
- const [isCreatingMenu, setIsCreatingMenu] = (0, _element.useState)(false);
48
+ const [isUpdatingMenuRef, setIsUpdatingMenuRef] = (0, _element.useState)(false);
49
49
  actionLabel = actionLabel || createActionLabel;
50
50
  const {
51
51
  menus: classicMenus
@@ -54,7 +54,7 @@ function NavigationMenuSelector({
54
54
  navigationMenus,
55
55
  isResolvingNavigationMenus,
56
56
  hasResolvedNavigationMenus,
57
- canUserCreateNavigationMenu,
57
+ canUserCreateNavigationMenus,
58
58
  canSwitchNavigationMenu
59
59
  } = (0, _useNavigationMenu.default)();
60
60
  const [currentTitle] = (0, _coreData.useEntityProp)('postType', 'wp_navigation', 'title');
@@ -68,19 +68,20 @@ function NavigationMenuSelector({
68
68
  return {
69
69
  value: id,
70
70
  label,
71
- ariaLabel: (0, _i18n.sprintf)(actionLabel, label)
71
+ ariaLabel: (0, _i18n.sprintf)(actionLabel, label),
72
+ disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus
72
73
  };
73
74
  }) || [];
74
- }, [navigationMenus, actionLabel]);
75
+ }, [navigationMenus, actionLabel, isResolvingNavigationMenus, hasResolvedNavigationMenus, isUpdatingMenuRef]);
75
76
  const hasNavigationMenus = !!navigationMenus?.length;
76
77
  const hasClassicMenus = !!classicMenus?.length;
77
78
  const showNavigationMenus = !!canSwitchNavigationMenu;
78
- const showClassicMenus = !!canUserCreateNavigationMenu;
79
+ const showClassicMenus = !!canUserCreateNavigationMenus;
79
80
  const noMenuSelected = hasNavigationMenus && !currentMenuId;
80
81
  const noBlockMenus = !hasNavigationMenus && hasResolvedNavigationMenus;
81
82
  const menuUnavailable = hasResolvedNavigationMenus && currentMenuId === null;
82
83
  let selectorLabel = '';
83
- if (isCreatingMenu || isResolvingNavigationMenus) {
84
+ if (isResolvingNavigationMenus) {
84
85
  selectorLabel = (0, _i18n.__)('Loading…');
85
86
  } else if (noMenuSelected || noBlockMenus || menuUnavailable) {
86
87
  // Note: classic Menus may be available.
@@ -90,15 +91,15 @@ function NavigationMenuSelector({
90
91
  selectorLabel = currentTitle;
91
92
  }
92
93
  (0, _element.useEffect)(() => {
93
- if (isCreatingMenu && (createNavigationMenuIsSuccess || createNavigationMenuIsError)) {
94
- setIsCreatingMenu(false);
94
+ if (isUpdatingMenuRef && (createNavigationMenuIsSuccess || createNavigationMenuIsError)) {
95
+ setIsUpdatingMenuRef(false);
95
96
  }
96
- }, [hasResolvedNavigationMenus, createNavigationMenuIsSuccess, canUserCreateNavigationMenu, createNavigationMenuIsError, isCreatingMenu, menuUnavailable, noBlockMenus, noMenuSelected]);
97
+ }, [hasResolvedNavigationMenus, createNavigationMenuIsSuccess, canUserCreateNavigationMenus, createNavigationMenuIsError, isUpdatingMenuRef, menuUnavailable, noBlockMenus, noMenuSelected]);
97
98
  const NavigationMenuSelectorDropdown = (0, _react.createElement)(_components.DropdownMenu, {
98
99
  label: selectorLabel,
99
100
  icon: _icons.moreVertical,
100
101
  toggleProps: {
101
- isSmall: true
102
+ size: 'small'
102
103
  }
103
104
  }, ({
104
105
  onClose
@@ -107,35 +108,35 @@ function NavigationMenuSelector({
107
108
  }, (0, _react.createElement)(_components.MenuItemsChoice, {
108
109
  value: currentMenuId,
109
110
  onSelect: menuId => {
110
- setIsCreatingMenu(true);
111
111
  onSelectNavigationMenu(menuId);
112
112
  onClose();
113
113
  },
114
- choices: menuChoices,
115
- disabled: isCreatingMenu
114
+ choices: menuChoices
116
115
  })), showClassicMenus && hasClassicMenus && (0, _react.createElement)(_components.MenuGroup, {
117
116
  label: (0, _i18n.__)('Import Classic Menus')
118
117
  }, classicMenus?.map(menu => {
119
118
  const label = (0, _htmlEntities.decodeEntities)(menu.name);
120
119
  return (0, _react.createElement)(_components.MenuItem, {
121
- onClick: () => {
122
- setIsCreatingMenu(true);
123
- onSelectClassicMenu(menu);
120
+ onClick: async () => {
121
+ setIsUpdatingMenuRef(true);
122
+ await onSelectClassicMenu(menu);
123
+ setIsUpdatingMenuRef(false);
124
124
  onClose();
125
125
  },
126
126
  key: menu.id,
127
127
  "aria-label": (0, _i18n.sprintf)(createActionLabel, label),
128
- disabled: isCreatingMenu
128
+ disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus
129
129
  }, label);
130
- })), canUserCreateNavigationMenu && (0, _react.createElement)(_components.MenuGroup, {
130
+ })), canUserCreateNavigationMenus && (0, _react.createElement)(_components.MenuGroup, {
131
131
  label: (0, _i18n.__)('Tools')
132
132
  }, (0, _react.createElement)(_components.MenuItem, {
133
- disabled: isCreatingMenu,
134
- onClick: () => {
133
+ onClick: async () => {
134
+ setIsUpdatingMenuRef(true);
135
+ await onCreateNew();
136
+ setIsUpdatingMenuRef(false);
135
137
  onClose();
136
- onCreateNew();
137
- setIsCreatingMenu(true);
138
- }
138
+ },
139
+ disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus
139
140
  }, (0, _i18n.__)('Create new menu')))));
140
141
  return NavigationMenuSelectorDropdown;
141
142
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_icons","_i18n","_htmlEntities","_element","_coreData","_useNavigationMenu","_interopRequireDefault","_useNavigationEntities","buildMenuLabel","title","id","status","sprintf","__","decodeEntities","NavigationMenuSelector","currentMenuId","onSelectNavigationMenu","onSelectClassicMenu","onCreateNew","actionLabel","createNavigationMenuIsSuccess","createNavigationMenuIsError","createActionLabel","isCreatingMenu","setIsCreatingMenu","useState","menus","classicMenus","useNavigationEntities","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","canUserCreateNavigationMenu","canSwitchNavigationMenu","useNavigationMenu","currentTitle","useEntityProp","menuChoices","useMemo","map","index","label","rendered","value","ariaLabel","hasNavigationMenus","length","hasClassicMenus","showNavigationMenus","showClassicMenus","noMenuSelected","noBlockMenus","menuUnavailable","selectorLabel","useEffect","NavigationMenuSelectorDropdown","_react","createElement","DropdownMenu","icon","moreVertical","toggleProps","isSmall","onClose","Fragment","MenuGroup","MenuItemsChoice","onSelect","menuId","choices","disabled","menu","name","MenuItem","onClick","key","_default","exports","default"],"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tMenuItemsChoice,\n\tDropdownMenu,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { useEntityProp } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\n\nfunction buildMenuLabel( title, id, status ) {\n\tif ( ! title ) {\n\t\t/* translators: %s is the index of the menu in the list of menus. */\n\t\treturn sprintf( __( '(no title %s)' ), id );\n\t}\n\n\tif ( status === 'publish' ) {\n\t\treturn decodeEntities( title );\n\t}\n\n\treturn sprintf(\n\t\t// translators: %1s: title of the menu; %2s: status of the menu (draft, pending, etc.).\n\t\t__( '%1$s (%2$s)' ),\n\t\tdecodeEntities( title ),\n\t\tstatus\n\t);\n}\n\nfunction NavigationMenuSelector( {\n\tcurrentMenuId,\n\tonSelectNavigationMenu,\n\tonSelectClassicMenu,\n\tonCreateNew,\n\tactionLabel,\n\tcreateNavigationMenuIsSuccess,\n\tcreateNavigationMenuIsError,\n} ) {\n\t/* translators: %s: The name of a menu. */\n\tconst createActionLabel = __( \"Create from '%s'\" );\n\n\tconst [ isCreatingMenu, setIsCreatingMenu ] = useState( false );\n\n\tactionLabel = actionLabel || createActionLabel;\n\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst {\n\t\tnavigationMenus,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tcanUserCreateNavigationMenu,\n\t\tcanSwitchNavigationMenu,\n\t} = useNavigationMenu();\n\n\tconst [ currentTitle ] = useEntityProp(\n\t\t'postType',\n\t\t'wp_navigation',\n\t\t'title'\n\t);\n\n\tconst menuChoices = useMemo( () => {\n\t\treturn (\n\t\t\tnavigationMenus?.map( ( { id, title, status }, index ) => {\n\t\t\t\tconst label = buildMenuLabel(\n\t\t\t\t\ttitle?.rendered,\n\t\t\t\t\tindex + 1,\n\t\t\t\t\tstatus\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel,\n\t\t\t\t\tariaLabel: sprintf( actionLabel, label ),\n\t\t\t\t};\n\t\t\t} ) || []\n\t\t);\n\t}, [ navigationMenus, actionLabel ] );\n\n\tconst hasNavigationMenus = !! navigationMenus?.length;\n\tconst hasClassicMenus = !! classicMenus?.length;\n\tconst showNavigationMenus = !! canSwitchNavigationMenu;\n\tconst showClassicMenus = !! canUserCreateNavigationMenu;\n\n\tconst noMenuSelected = hasNavigationMenus && ! currentMenuId;\n\tconst noBlockMenus = ! hasNavigationMenus && hasResolvedNavigationMenus;\n\tconst menuUnavailable =\n\t\thasResolvedNavigationMenus && currentMenuId === null;\n\n\tlet selectorLabel = '';\n\n\tif ( isCreatingMenu || isResolvingNavigationMenus ) {\n\t\tselectorLabel = __( 'Loading…' );\n\t} else if ( noMenuSelected || noBlockMenus || menuUnavailable ) {\n\t\t// Note: classic Menus may be available.\n\t\tselectorLabel = __( 'Choose or create a Navigation menu' );\n\t} else {\n\t\t// Current Menu's title.\n\t\tselectorLabel = currentTitle;\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisCreatingMenu &&\n\t\t\t( createNavigationMenuIsSuccess || createNavigationMenuIsError )\n\t\t) {\n\t\t\tsetIsCreatingMenu( false );\n\t\t}\n\t}, [\n\t\thasResolvedNavigationMenus,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tcanUserCreateNavigationMenu,\n\t\tcreateNavigationMenuIsError,\n\t\tisCreatingMenu,\n\t\tmenuUnavailable,\n\t\tnoBlockMenus,\n\t\tnoMenuSelected,\n\t] );\n\n\tconst NavigationMenuSelectorDropdown = (\n\t\t<DropdownMenu\n\t\t\tlabel={ selectorLabel }\n\t\t\ticon={ moreVertical }\n\t\t\ttoggleProps={ { isSmall: true } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ showNavigationMenus && hasNavigationMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\tvalue={ currentMenuId }\n\t\t\t\t\t\t\t\tonSelect={ ( menuId ) => {\n\t\t\t\t\t\t\t\t\tsetIsCreatingMenu( true );\n\t\t\t\t\t\t\t\t\tonSelectNavigationMenu( menuId );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchoices={ menuChoices }\n\t\t\t\t\t\t\t\tdisabled={ isCreatingMenu }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showClassicMenus && hasClassicMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Import Classic Menus' ) }>\n\t\t\t\t\t\t\t{ classicMenus?.map( ( menu ) => {\n\t\t\t\t\t\t\t\tconst label = decodeEntities( menu.name );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetIsCreatingMenu( true );\n\t\t\t\t\t\t\t\t\t\t\tonSelectClassicMenu( menu );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\t\t\tcreateActionLabel,\n\t\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tdisabled={ isCreatingMenu }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ canUserCreateNavigationMenu && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tdisabled={ isCreatingMenu }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\tonCreateNew();\n\t\t\t\t\t\t\t\t\tsetIsCreatingMenu( true );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Create new menu' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n\n\treturn NavigationMenuSelectorDropdown;\n}\n\nexport default NavigationMenuSelector;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_components","require","_icons","_i18n","_htmlEntities","_element","_coreData","_useNavigationMenu","_interopRequireDefault","_useNavigationEntities","buildMenuLabel","title","id","status","sprintf","__","decodeEntities","NavigationMenuSelector","currentMenuId","onSelectNavigationMenu","onSelectClassicMenu","onCreateNew","actionLabel","createNavigationMenuIsSuccess","createNavigationMenuIsError","createActionLabel","isUpdatingMenuRef","setIsUpdatingMenuRef","useState","menus","classicMenus","useNavigationEntities","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","canUserCreateNavigationMenus","canSwitchNavigationMenu","useNavigationMenu","currentTitle","useEntityProp","menuChoices","useMemo","map","index","label","rendered","value","ariaLabel","disabled","hasNavigationMenus","length","hasClassicMenus","showNavigationMenus","showClassicMenus","noMenuSelected","noBlockMenus","menuUnavailable","selectorLabel","useEffect","NavigationMenuSelectorDropdown","_react","createElement","DropdownMenu","icon","moreVertical","toggleProps","size","onClose","Fragment","MenuGroup","MenuItemsChoice","onSelect","menuId","choices","menu","name","MenuItem","onClick","key","_default","exports","default"],"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tMenuItemsChoice,\n\tDropdownMenu,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { useEntityProp } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\n\nfunction buildMenuLabel( title, id, status ) {\n\tif ( ! title ) {\n\t\t/* translators: %s is the index of the menu in the list of menus. */\n\t\treturn sprintf( __( '(no title %s)' ), id );\n\t}\n\n\tif ( status === 'publish' ) {\n\t\treturn decodeEntities( title );\n\t}\n\n\treturn sprintf(\n\t\t// translators: %1s: title of the menu; %2s: status of the menu (draft, pending, etc.).\n\t\t__( '%1$s (%2$s)' ),\n\t\tdecodeEntities( title ),\n\t\tstatus\n\t);\n}\n\nfunction NavigationMenuSelector( {\n\tcurrentMenuId,\n\tonSelectNavigationMenu,\n\tonSelectClassicMenu,\n\tonCreateNew,\n\tactionLabel,\n\tcreateNavigationMenuIsSuccess,\n\tcreateNavigationMenuIsError,\n} ) {\n\t/* translators: %s: The name of a menu. */\n\tconst createActionLabel = __( \"Create from '%s'\" );\n\n\tconst [ isUpdatingMenuRef, setIsUpdatingMenuRef ] = useState( false );\n\n\tactionLabel = actionLabel || createActionLabel;\n\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst {\n\t\tnavigationMenus,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tcanUserCreateNavigationMenus,\n\t\tcanSwitchNavigationMenu,\n\t} = useNavigationMenu();\n\n\tconst [ currentTitle ] = useEntityProp(\n\t\t'postType',\n\t\t'wp_navigation',\n\t\t'title'\n\t);\n\n\tconst menuChoices = useMemo( () => {\n\t\treturn (\n\t\t\tnavigationMenus?.map( ( { id, title, status }, index ) => {\n\t\t\t\tconst label = buildMenuLabel(\n\t\t\t\t\ttitle?.rendered,\n\t\t\t\t\tindex + 1,\n\t\t\t\t\tstatus\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel,\n\t\t\t\t\tariaLabel: sprintf( actionLabel, label ),\n\t\t\t\t\tdisabled:\n\t\t\t\t\t\tisUpdatingMenuRef ||\n\t\t\t\t\t\tisResolvingNavigationMenus ||\n\t\t\t\t\t\t! hasResolvedNavigationMenus,\n\t\t\t\t};\n\t\t\t} ) || []\n\t\t);\n\t}, [\n\t\tnavigationMenus,\n\t\tactionLabel,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tisUpdatingMenuRef,\n\t] );\n\n\tconst hasNavigationMenus = !! navigationMenus?.length;\n\tconst hasClassicMenus = !! classicMenus?.length;\n\tconst showNavigationMenus = !! canSwitchNavigationMenu;\n\tconst showClassicMenus = !! canUserCreateNavigationMenus;\n\n\tconst noMenuSelected = hasNavigationMenus && ! currentMenuId;\n\tconst noBlockMenus = ! hasNavigationMenus && hasResolvedNavigationMenus;\n\tconst menuUnavailable =\n\t\thasResolvedNavigationMenus && currentMenuId === null;\n\n\tlet selectorLabel = '';\n\n\tif ( isResolvingNavigationMenus ) {\n\t\tselectorLabel = __( 'Loading…' );\n\t} else if ( noMenuSelected || noBlockMenus || menuUnavailable ) {\n\t\t// Note: classic Menus may be available.\n\t\tselectorLabel = __( 'Choose or create a Navigation menu' );\n\t} else {\n\t\t// Current Menu's title.\n\t\tselectorLabel = currentTitle;\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisUpdatingMenuRef &&\n\t\t\t( createNavigationMenuIsSuccess || createNavigationMenuIsError )\n\t\t) {\n\t\t\tsetIsUpdatingMenuRef( false );\n\t\t}\n\t}, [\n\t\thasResolvedNavigationMenus,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tcanUserCreateNavigationMenus,\n\t\tcreateNavigationMenuIsError,\n\t\tisUpdatingMenuRef,\n\t\tmenuUnavailable,\n\t\tnoBlockMenus,\n\t\tnoMenuSelected,\n\t] );\n\n\tconst NavigationMenuSelectorDropdown = (\n\t\t<DropdownMenu\n\t\t\tlabel={ selectorLabel }\n\t\t\ticon={ moreVertical }\n\t\t\ttoggleProps={ { size: 'small' } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ showNavigationMenus && hasNavigationMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\tvalue={ currentMenuId }\n\t\t\t\t\t\t\t\tonSelect={ ( menuId ) => {\n\t\t\t\t\t\t\t\t\tonSelectNavigationMenu( menuId );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchoices={ menuChoices }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showClassicMenus && hasClassicMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Import Classic Menus' ) }>\n\t\t\t\t\t\t\t{ classicMenus?.map( ( menu ) => {\n\t\t\t\t\t\t\t\tconst label = decodeEntities( menu.name );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( true );\n\t\t\t\t\t\t\t\t\t\t\tawait onSelectClassicMenu( menu );\n\t\t\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( false );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\t\t\tcreateActionLabel,\n\t\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\tisUpdatingMenuRef ||\n\t\t\t\t\t\t\t\t\t\t\tisResolvingNavigationMenus ||\n\t\t\t\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ canUserCreateNavigationMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( true );\n\t\t\t\t\t\t\t\t\tawait onCreateNew();\n\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( false );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\tisUpdatingMenuRef ||\n\t\t\t\t\t\t\t\t\tisResolvingNavigationMenus ||\n\t\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Create new menu' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n\n\treturn NavigationMenuSelectorDropdown;\n}\n\nexport default NavigationMenuSelector;\n"],"mappings":"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"}
@@ -26,8 +26,8 @@ function NavigationPlaceholder({
26
26
  isSelected,
27
27
  currentMenuId,
28
28
  clientId,
29
- canUserCreateNavigationMenu = false,
30
- isResolvingCanUserCreateNavigationMenu,
29
+ canUserCreateNavigationMenus = false,
30
+ isResolvingCanUserCreateNavigationMenus,
31
31
  onSelectNavigationMenu,
32
32
  onSelectClassicMenu,
33
33
  onCreateEmpty
@@ -47,7 +47,7 @@ function NavigationPlaceholder({
47
47
  (0, _a11y.speak)((0, _i18n.__)('Navigation block setup options ready.'));
48
48
  }
49
49
  }, [hasResolvedMenus, isResolvingMenus, isSelected]);
50
- const isResolvingActions = isResolvingMenus && isResolvingCanUserCreateNavigationMenu;
50
+ const isResolvingActions = isResolvingMenus && isResolvingCanUserCreateNavigationMenus;
51
51
  return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.Placeholder, {
52
52
  className: "wp-block-navigation-placeholder"
53
53
  }, (0, _react.createElement)(_placeholderPreview.default, {
@@ -66,7 +66,7 @@ function NavigationPlaceholder({
66
66
  clientId: clientId,
67
67
  onSelectNavigationMenu: onSelectNavigationMenu,
68
68
  onSelectClassicMenu: onSelectClassicMenu
69
- }), (0, _react.createElement)("hr", null), canUserCreateNavigationMenu && (0, _react.createElement)(_components.Button, {
69
+ }), (0, _react.createElement)("hr", null), canUserCreateNavigationMenus && (0, _react.createElement)(_components.Button, {
70
70
  variant: "tertiary",
71
71
  onClick: onCreateEmpty
72
72
  }, (0, _i18n.__)('Start empty'))))));
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_icons","_a11y","_element","_useNavigationEntities","_interopRequireDefault","_placeholderPreview","_navigationMenuSelector","NavigationPlaceholder","isSelected","currentMenuId","clientId","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","onSelectNavigationMenu","onSelectClassicMenu","onCreateEmpty","isResolvingMenus","hasResolvedMenus","useNavigationEntities","useEffect","speak","__","isResolvingActions","_react","createElement","Fragment","Placeholder","className","default","isVisible","undefined","Icon","icon","navigation","Spinner","Button","variant","onClick"],"sources":["@wordpress/block-library/src/navigation/edit/placeholder/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Placeholder, Button, Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { navigation, Icon } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useNavigationEntities from '../../use-navigation-entities';\nimport PlaceholderPreview from './placeholder-preview';\nimport NavigationMenuSelector from '../navigation-menu-selector';\n\nexport default function NavigationPlaceholder( {\n\tisSelected,\n\tcurrentMenuId,\n\tclientId,\n\tcanUserCreateNavigationMenu = false,\n\tisResolvingCanUserCreateNavigationMenu,\n\tonSelectNavigationMenu,\n\tonSelectClassicMenu,\n\tonCreateEmpty,\n} ) {\n\tconst { isResolvingMenus, hasResolvedMenus } = useNavigationEntities();\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isResolvingMenus ) {\n\t\t\tspeak( __( 'Loading navigation block setup options…' ) );\n\t\t}\n\n\t\tif ( hasResolvedMenus ) {\n\t\t\tspeak( __( 'Navigation block setup options ready.' ) );\n\t\t}\n\t}, [ hasResolvedMenus, isResolvingMenus, isSelected ] );\n\n\tconst isResolvingActions =\n\t\tisResolvingMenus && isResolvingCanUserCreateNavigationMenu;\n\n\treturn (\n\t\t<>\n\t\t\t<Placeholder className=\"wp-block-navigation-placeholder\">\n\t\t\t\t{\n\t\t\t\t\t// The <PlaceholderPreview> component is displayed conditionally via CSS depending on\n\t\t\t\t\t// whether the block is selected or not. This is achieved via CSS to avoid\n\t\t\t\t\t// component re-renders\n\t\t\t\t }\n\t\t\t\t<PlaceholderPreview isVisible={ ! isSelected } />\n\t\t\t\t<div\n\t\t\t\t\taria-hidden={ ! isSelected ? true : undefined }\n\t\t\t\t\tclassName=\"wp-block-navigation-placeholder__controls\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions\">\n\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions__indicator\">\n\t\t\t\t\t\t\t<Icon icon={ navigation } /> { __( 'Navigation' ) }\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<hr />\n\n\t\t\t\t\t\t{ isResolvingActions && <Spinner /> }\n\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ currentMenuId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<hr />\n\n\t\t\t\t\t\t{ canUserCreateNavigationMenu && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ onCreateEmpty }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Start empty' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Placeholder>\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAKA,IAAAK,sBAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,mBAAA,GAAAD,sBAAA,CAAAN,OAAA;AACA,IAAAQ,uBAAA,GAAAF,sBAAA,CAAAN,OAAA;AAdA;AACA;AACA;;AAOA;AACA;AACA;;AAKe,SAASS,qBAAqBA,CAAE;EAC9CC,UAAU;EACVC,aAAa;EACbC,QAAQ;EACRC,2BAA2B,GAAG,KAAK;EACnCC,sCAAsC;EACtCC,sBAAsB;EACtBC,mBAAmB;EACnBC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,gBAAgB;IAAEC;EAAiB,CAAC,GAAG,IAAAC,8BAAqB,EAAC,CAAC;EAEtE,IAAAC,kBAAS,EAAE,MAAM;IAChB,IAAK,CAAEX,UAAU,EAAG;MACnB;IACD;IAEA,IAAKQ,gBAAgB,EAAG;MACvB,IAAAI,WAAK,EAAE,IAAAC,QAAE,EAAE,yCAA0C,CAAE,CAAC;IACzD;IAEA,IAAKJ,gBAAgB,EAAG;MACvB,IAAAG,WAAK,EAAE,IAAAC,QAAE,EAAE,uCAAwC,CAAE,CAAC;IACvD;EACD,CAAC,EAAE,CAAEJ,gBAAgB,EAAED,gBAAgB,EAAER,UAAU,CAAG,CAAC;EAEvD,MAAMc,kBAAkB,GACvBN,gBAAgB,IAAIJ,sCAAsC;EAE3D,OACC,IAAAW,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAAC3B,WAAA,CAAA6B,WAAW;IAACC,SAAS,EAAC;EAAiC,GAMvD,IAAAJ,MAAA,CAAAC,aAAA,EAACnB,mBAAA,CAAAuB,OAAkB;IAACC,SAAS,EAAG,CAAErB;EAAY,CAAE,CAAC,EACjD,IAAAe,MAAA,CAAAC,aAAA;IACC,eAAc,CAAEhB,UAAU,GAAG,IAAI,GAAGsB,SAAW;IAC/CH,SAAS,EAAC;EAA2C,GAErD,IAAAJ,MAAA,CAAAC,aAAA;IAAKG,SAAS,EAAC;EAA0C,GACxD,IAAAJ,MAAA,CAAAC,aAAA;IAAKG,SAAS,EAAC;EAAqD,GACnE,IAAAJ,MAAA,CAAAC,aAAA,EAACxB,MAAA,CAAA+B,IAAI;IAACC,IAAI,EAAGC;EAAY,CAAE,CAAC,KAAC,EAAE,IAAAZ,QAAE,EAAE,YAAa,CAC5C,CAAC,EAEN,IAAAE,MAAA,CAAAC,aAAA,YAAK,CAAC,EAEJF,kBAAkB,IAAI,IAAAC,MAAA,CAAAC,aAAA,EAAC3B,WAAA,CAAAqC,OAAO,MAAE,CAAC,EAEnC,IAAAX,MAAA,CAAAC,aAAA,EAAClB,uBAAA,CAAAsB,OAAsB;IACtBnB,aAAa,EAAGA,aAAe;IAC/BC,QAAQ,EAAGA,QAAU;IACrBG,sBAAsB,EAAGA,sBAAwB;IACjDC,mBAAmB,EAAGA;EAAqB,CAC3C,CAAC,EAEF,IAAAS,MAAA,CAAAC,aAAA,YAAK,CAAC,EAEJb,2BAA2B,IAC5B,IAAAY,MAAA,CAAAC,aAAA,EAAC3B,WAAA,CAAAsC,MAAM;IACNC,OAAO,EAAC,UAAU;IAClBC,OAAO,EAAGtB;EAAe,GAEvB,IAAAM,QAAE,EAAE,aAAc,CACb,CAEL,CACD,CACO,CACZ,CAAC;AAEL"}
1
+ {"version":3,"names":["_components","require","_i18n","_icons","_a11y","_element","_useNavigationEntities","_interopRequireDefault","_placeholderPreview","_navigationMenuSelector","NavigationPlaceholder","isSelected","currentMenuId","clientId","canUserCreateNavigationMenus","isResolvingCanUserCreateNavigationMenus","onSelectNavigationMenu","onSelectClassicMenu","onCreateEmpty","isResolvingMenus","hasResolvedMenus","useNavigationEntities","useEffect","speak","__","isResolvingActions","_react","createElement","Fragment","Placeholder","className","default","isVisible","undefined","Icon","icon","navigation","Spinner","Button","variant","onClick"],"sources":["@wordpress/block-library/src/navigation/edit/placeholder/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Placeholder, Button, Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { navigation, Icon } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useNavigationEntities from '../../use-navigation-entities';\nimport PlaceholderPreview from './placeholder-preview';\nimport NavigationMenuSelector from '../navigation-menu-selector';\n\nexport default function NavigationPlaceholder( {\n\tisSelected,\n\tcurrentMenuId,\n\tclientId,\n\tcanUserCreateNavigationMenus = false,\n\tisResolvingCanUserCreateNavigationMenus,\n\tonSelectNavigationMenu,\n\tonSelectClassicMenu,\n\tonCreateEmpty,\n} ) {\n\tconst { isResolvingMenus, hasResolvedMenus } = useNavigationEntities();\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isResolvingMenus ) {\n\t\t\tspeak( __( 'Loading navigation block setup options…' ) );\n\t\t}\n\n\t\tif ( hasResolvedMenus ) {\n\t\t\tspeak( __( 'Navigation block setup options ready.' ) );\n\t\t}\n\t}, [ hasResolvedMenus, isResolvingMenus, isSelected ] );\n\n\tconst isResolvingActions =\n\t\tisResolvingMenus && isResolvingCanUserCreateNavigationMenus;\n\n\treturn (\n\t\t<>\n\t\t\t<Placeholder className=\"wp-block-navigation-placeholder\">\n\t\t\t\t{\n\t\t\t\t\t// The <PlaceholderPreview> component is displayed conditionally via CSS depending on\n\t\t\t\t\t// whether the block is selected or not. This is achieved via CSS to avoid\n\t\t\t\t\t// component re-renders\n\t\t\t\t }\n\t\t\t\t<PlaceholderPreview isVisible={ ! isSelected } />\n\t\t\t\t<div\n\t\t\t\t\taria-hidden={ ! isSelected ? true : undefined }\n\t\t\t\t\tclassName=\"wp-block-navigation-placeholder__controls\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions\">\n\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions__indicator\">\n\t\t\t\t\t\t\t<Icon icon={ navigation } /> { __( 'Navigation' ) }\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<hr />\n\n\t\t\t\t\t\t{ isResolvingActions && <Spinner /> }\n\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ currentMenuId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<hr />\n\n\t\t\t\t\t\t{ canUserCreateNavigationMenus && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ onCreateEmpty }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Start empty' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Placeholder>\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAKA,IAAAK,sBAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,mBAAA,GAAAD,sBAAA,CAAAN,OAAA;AACA,IAAAQ,uBAAA,GAAAF,sBAAA,CAAAN,OAAA;AAdA;AACA;AACA;;AAOA;AACA;AACA;;AAKe,SAASS,qBAAqBA,CAAE;EAC9CC,UAAU;EACVC,aAAa;EACbC,QAAQ;EACRC,4BAA4B,GAAG,KAAK;EACpCC,uCAAuC;EACvCC,sBAAsB;EACtBC,mBAAmB;EACnBC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,gBAAgB;IAAEC;EAAiB,CAAC,GAAG,IAAAC,8BAAqB,EAAC,CAAC;EAEtE,IAAAC,kBAAS,EAAE,MAAM;IAChB,IAAK,CAAEX,UAAU,EAAG;MACnB;IACD;IAEA,IAAKQ,gBAAgB,EAAG;MACvB,IAAAI,WAAK,EAAE,IAAAC,QAAE,EAAE,yCAA0C,CAAE,CAAC;IACzD;IAEA,IAAKJ,gBAAgB,EAAG;MACvB,IAAAG,WAAK,EAAE,IAAAC,QAAE,EAAE,uCAAwC,CAAE,CAAC;IACvD;EACD,CAAC,EAAE,CAAEJ,gBAAgB,EAAED,gBAAgB,EAAER,UAAU,CAAG,CAAC;EAEvD,MAAMc,kBAAkB,GACvBN,gBAAgB,IAAIJ,uCAAuC;EAE5D,OACC,IAAAW,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAAC3B,WAAA,CAAA6B,WAAW;IAACC,SAAS,EAAC;EAAiC,GAMvD,IAAAJ,MAAA,CAAAC,aAAA,EAACnB,mBAAA,CAAAuB,OAAkB;IAACC,SAAS,EAAG,CAAErB;EAAY,CAAE,CAAC,EACjD,IAAAe,MAAA,CAAAC,aAAA;IACC,eAAc,CAAEhB,UAAU,GAAG,IAAI,GAAGsB,SAAW;IAC/CH,SAAS,EAAC;EAA2C,GAErD,IAAAJ,MAAA,CAAAC,aAAA;IAAKG,SAAS,EAAC;EAA0C,GACxD,IAAAJ,MAAA,CAAAC,aAAA;IAAKG,SAAS,EAAC;EAAqD,GACnE,IAAAJ,MAAA,CAAAC,aAAA,EAACxB,MAAA,CAAA+B,IAAI;IAACC,IAAI,EAAGC;EAAY,CAAE,CAAC,KAAC,EAAE,IAAAZ,QAAE,EAAE,YAAa,CAC5C,CAAC,EAEN,IAAAE,MAAA,CAAAC,aAAA,YAAK,CAAC,EAEJF,kBAAkB,IAAI,IAAAC,MAAA,CAAAC,aAAA,EAAC3B,WAAA,CAAAqC,OAAO,MAAE,CAAC,EAEnC,IAAAX,MAAA,CAAAC,aAAA,EAAClB,uBAAA,CAAAsB,OAAsB;IACtBnB,aAAa,EAAGA,aAAe;IAC/BC,QAAQ,EAAGA,QAAU;IACrBG,sBAAsB,EAAGA,sBAAwB;IACjDC,mBAAmB,EAAGA;EAAqB,CAC3C,CAAC,EAEF,IAAAS,MAAA,CAAAC,aAAA,YAAK,CAAC,EAEJb,4BAA4B,IAC7B,IAAAY,MAAA,CAAAC,aAAA,EAAC3B,WAAA,CAAAsC,MAAM;IACNC,OAAO,EAAC,UAAU;IAClBC,OAAO,EAAGtB;EAAe,GAEvB,IAAAM,QAAE,EAAE,aAAc,CACb,CAEL,CACD,CACO,CACZ,CAAC;AAEL"}
@@ -25,11 +25,14 @@ function useNavigationMenu(ref) {
25
25
  return selectExistingMenu(select, ref);
26
26
  }, [ref]);
27
27
  const {
28
- canCreate,
29
- canUpdate,
30
- canDelete,
31
- isResolving,
32
- hasResolved
28
+ // Can the user create navigation menus?
29
+ canCreate: canCreateNavigationMenus,
30
+ // Can the user update the specific navigation menu with the given post ID?
31
+ canUpdate: canUpdateNavigationMenu,
32
+ // Can the user delete the specific navigation menu with the given post ID?
33
+ canDelete: canDeleteNavigationMenu,
34
+ isResolving: isResolvingPermissions,
35
+ hasResolved: hasResolvedPermissions
33
36
  } = permissions;
34
37
  const {
35
38
  records: navigationMenus,
@@ -45,13 +48,13 @@ function useNavigationMenu(ref) {
45
48
  isResolvingNavigationMenus,
46
49
  hasResolvedNavigationMenus,
47
50
  canSwitchNavigationMenu,
48
- canUserCreateNavigationMenu: canCreate,
49
- isResolvingCanUserCreateNavigationMenu: isResolving,
50
- hasResolvedCanUserCreateNavigationMenu: hasResolved,
51
- canUserUpdateNavigationMenu: canUpdate,
52
- hasResolvedCanUserUpdateNavigationMenu: ref ? hasResolved : undefined,
53
- canUserDeleteNavigationMenu: canDelete,
54
- hasResolvedCanUserDeleteNavigationMenu: ref ? hasResolved : undefined
51
+ canUserCreateNavigationMenus: canCreateNavigationMenus,
52
+ isResolvingCanUserCreateNavigationMenus: isResolvingPermissions,
53
+ hasResolvedCanUserCreateNavigationMenus: hasResolvedPermissions,
54
+ canUserUpdateNavigationMenu: canUpdateNavigationMenu,
55
+ hasResolvedCanUserUpdateNavigationMenu: ref ? hasResolvedPermissions : undefined,
56
+ canUserDeleteNavigationMenu: canDeleteNavigationMenu,
57
+ hasResolvedCanUserDeleteNavigationMenu: ref ? hasResolvedPermissions : undefined
55
58
  };
56
59
  }
57
60
  function selectExistingMenu(select, ref) {
@@ -1 +1 @@
1
- {"version":3,"names":["_coreData","require","_data","_constants","useNavigationMenu","ref","permissions","useResourcePermissions","navigationMenu","isNavigationMenuResolved","isNavigationMenuMissing","useSelect","select","selectExistingMenu","canCreate","canUpdate","canDelete","isResolving","hasResolved","records","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","useEntityRecords","PRELOADED_NAVIGATION_MENUS_QUERY","canSwitchNavigationMenu","length","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","undefined","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","getEntityRecord","getEditedEntityRecord","hasFinishedResolution","coreStore","args","editedNavigationMenu","hasResolvedNavigationMenu","isNavigationMenuPublishedOrDraft","status"],"sources":["@wordpress/block-library/src/navigation/use-navigation-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tstore as coreStore,\n\tuseResourcePermissions,\n\tuseEntityRecords,\n} from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { PRELOADED_NAVIGATION_MENUS_QUERY } from './constants';\n\nexport default function useNavigationMenu( ref ) {\n\tconst permissions = useResourcePermissions( 'navigation', ref );\n\n\tconst {\n\t\tnavigationMenu,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\treturn selectExistingMenu( select, ref );\n\t\t},\n\t\t[ ref ]\n\t);\n\n\tconst { canCreate, canUpdate, canDelete, isResolving, hasResolved } =\n\t\tpermissions;\n\n\tconst {\n\t\trecords: navigationMenus,\n\t\tisResolving: isResolvingNavigationMenus,\n\t\thasResolved: hasResolvedNavigationMenus,\n\t} = useEntityRecords(\n\t\t'postType',\n\t\t`wp_navigation`,\n\t\tPRELOADED_NAVIGATION_MENUS_QUERY\n\t);\n\n\tconst canSwitchNavigationMenu = ref\n\t\t? navigationMenus?.length > 1\n\t\t: navigationMenus?.length > 0;\n\n\treturn {\n\t\tnavigationMenu,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tnavigationMenus,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tcanSwitchNavigationMenu,\n\t\tcanUserCreateNavigationMenu: canCreate,\n\t\tisResolvingCanUserCreateNavigationMenu: isResolving,\n\t\thasResolvedCanUserCreateNavigationMenu: hasResolved,\n\t\tcanUserUpdateNavigationMenu: canUpdate,\n\t\thasResolvedCanUserUpdateNavigationMenu: ref ? hasResolved : undefined,\n\t\tcanUserDeleteNavigationMenu: canDelete,\n\t\thasResolvedCanUserDeleteNavigationMenu: ref ? hasResolved : undefined,\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// Draft Navigation posts are valid only on the editor,\n\t// requiring a post update to publish to show in frontend.\n\t// To achieve that, index.php must reflect this validation only for published.\n\tconst isNavigationMenuPublishedOrDraft =\n\t\teditedNavigationMenu.status === 'publish' ||\n\t\teditedNavigationMenu.status === 'draft';\n\n\treturn {\n\t\tisNavigationMenuResolved: hasResolvedNavigationMenu,\n\t\tisNavigationMenuMissing:\n\t\t\thasResolvedNavigationMenu &&\n\t\t\t( ! navigationMenu || ! isNavigationMenuPublishedOrDraft ),\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: isNavigationMenuPublishedOrDraft\n\t\t\t? editedNavigationMenu\n\t\t\t: null,\n\t};\n}\n"],"mappings":";;;;;;AAGA,IAAAA,SAAA,GAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,UAAA,GAAAF,OAAA;AAbA;AACA;AACA;;AAQA;AACA;AACA;;AAGe,SAASG,iBAAiBA,CAAEC,GAAG,EAAG;EAChD,MAAMC,WAAW,GAAG,IAAAC,gCAAsB,EAAE,YAAY,EAAEF,GAAI,CAAC;EAE/D,MAAM;IACLG,cAAc;IACdC,wBAAwB;IACxBC;EACD,CAAC,GAAG,IAAAC,eAAS,EACVC,MAAM,IAAM;IACb,OAAOC,kBAAkB,CAAED,MAAM,EAAEP,GAAI,CAAC;EACzC,CAAC,EACD,CAAEA,GAAG,CACN,CAAC;EAED,MAAM;IAAES,SAAS;IAAEC,SAAS;IAAEC,SAAS;IAAEC,WAAW;IAAEC;EAAY,CAAC,GAClEZ,WAAW;EAEZ,MAAM;IACLa,OAAO,EAAEC,eAAe;IACxBH,WAAW,EAAEI,0BAA0B;IACvCH,WAAW,EAAEI;EACd,CAAC,GAAG,IAAAC,0BAAgB,EACnB,UAAU,EACT,eAAc,EACfC,2CACD,CAAC;EAED,MAAMC,uBAAuB,GAAGpB,GAAG,GAChCe,eAAe,EAAEM,MAAM,GAAG,CAAC,GAC3BN,eAAe,EAAEM,MAAM,GAAG,CAAC;EAE9B,OAAO;IACNlB,cAAc;IACdC,wBAAwB;IACxBC,uBAAuB;IACvBU,eAAe;IACfC,0BAA0B;IAC1BC,0BAA0B;IAC1BG,uBAAuB;IACvBE,2BAA2B,EAAEb,SAAS;IACtCc,sCAAsC,EAAEX,WAAW;IACnDY,sCAAsC,EAAEX,WAAW;IACnDY,2BAA2B,EAAEf,SAAS;IACtCgB,sCAAsC,EAAE1B,GAAG,GAAGa,WAAW,GAAGc,SAAS;IACrEC,2BAA2B,EAAEjB,SAAS;IACtCkB,sCAAsC,EAAE7B,GAAG,GAAGa,WAAW,GAAGc;EAC7D,CAAC;AACF;AAEA,SAASnB,kBAAkBA,CAAED,MAAM,EAAEP,GAAG,EAAG;EAC1C,IAAK,CAAEA,GAAG,EAAG;IACZ,OAAO;MACNI,wBAAwB,EAAE,KAAK;MAC/BC,uBAAuB,EAAE;IAC1B,CAAC;EACF;EAEA,MAAM;IAAEyB,eAAe;IAAEC,qBAAqB;IAAEC;EAAsB,CAAC,GACtEzB,MAAM,CAAE0B,eAAU,CAAC;EAEpB,MAAMC,IAAI,GAAG,CAAE,UAAU,EAAE,eAAe,EAAElC,GAAG,CAAE;EACjD,MAAMG,cAAc,GAAG2B,eAAe,CAAE,GAAGI,IAAK,CAAC;EACjD,MAAMC,oBAAoB,GAAGJ,qBAAqB,CAAE,GAAGG,IAAK,CAAC;EAC7D,MAAME,yBAAyB,GAAGJ,qBAAqB,CACtD,uBAAuB,EACvBE,IACD,CAAC;;EAED;EACA;EACA;EACA;EACA,MAAMG,gCAAgC,GACrCF,oBAAoB,CAACG,MAAM,KAAK,SAAS,IACzCH,oBAAoB,CAACG,MAAM,KAAK,OAAO;EAExC,OAAO;IACNlC,wBAAwB,EAAEgC,yBAAyB;IACnD/B,uBAAuB,EACtB+B,yBAAyB,KACvB,CAAEjC,cAAc,IAAI,CAAEkC,gCAAgC,CAAE;IAE3D;IACA;IACAlC,cAAc,EAAEkC,gCAAgC,GAC7CF,oBAAoB,GACpB;EACJ,CAAC;AACF"}
1
+ {"version":3,"names":["_coreData","require","_data","_constants","useNavigationMenu","ref","permissions","useResourcePermissions","navigationMenu","isNavigationMenuResolved","isNavigationMenuMissing","useSelect","select","selectExistingMenu","canCreate","canCreateNavigationMenus","canUpdate","canUpdateNavigationMenu","canDelete","canDeleteNavigationMenu","isResolving","isResolvingPermissions","hasResolved","hasResolvedPermissions","records","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","useEntityRecords","PRELOADED_NAVIGATION_MENUS_QUERY","canSwitchNavigationMenu","length","canUserCreateNavigationMenus","isResolvingCanUserCreateNavigationMenus","hasResolvedCanUserCreateNavigationMenus","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","undefined","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","getEntityRecord","getEditedEntityRecord","hasFinishedResolution","coreStore","args","editedNavigationMenu","hasResolvedNavigationMenu","isNavigationMenuPublishedOrDraft","status"],"sources":["@wordpress/block-library/src/navigation/use-navigation-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tstore as coreStore,\n\tuseResourcePermissions,\n\tuseEntityRecords,\n} from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { PRELOADED_NAVIGATION_MENUS_QUERY } from './constants';\n\nexport default function useNavigationMenu( ref ) {\n\tconst permissions = useResourcePermissions( 'navigation', ref );\n\n\tconst {\n\t\tnavigationMenu,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\treturn selectExistingMenu( select, ref );\n\t\t},\n\t\t[ ref ]\n\t);\n\n\tconst {\n\t\t// Can the user create navigation menus?\n\t\tcanCreate: canCreateNavigationMenus,\n\n\t\t// Can the user update the specific navigation menu with the given post ID?\n\t\tcanUpdate: canUpdateNavigationMenu,\n\n\t\t// Can the user delete the specific navigation menu with the given post ID?\n\t\tcanDelete: canDeleteNavigationMenu,\n\t\tisResolving: isResolvingPermissions,\n\t\thasResolved: hasResolvedPermissions,\n\t} = permissions;\n\n\tconst {\n\t\trecords: navigationMenus,\n\t\tisResolving: isResolvingNavigationMenus,\n\t\thasResolved: hasResolvedNavigationMenus,\n\t} = useEntityRecords(\n\t\t'postType',\n\t\t`wp_navigation`,\n\t\tPRELOADED_NAVIGATION_MENUS_QUERY\n\t);\n\n\tconst canSwitchNavigationMenu = ref\n\t\t? navigationMenus?.length > 1\n\t\t: navigationMenus?.length > 0;\n\n\treturn {\n\t\tnavigationMenu,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tnavigationMenus,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tcanSwitchNavigationMenu,\n\t\tcanUserCreateNavigationMenus: canCreateNavigationMenus,\n\t\tisResolvingCanUserCreateNavigationMenus: isResolvingPermissions,\n\t\thasResolvedCanUserCreateNavigationMenus: hasResolvedPermissions,\n\t\tcanUserUpdateNavigationMenu: canUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu: ref\n\t\t\t? hasResolvedPermissions\n\t\t\t: undefined,\n\t\tcanUserDeleteNavigationMenu: canDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu: ref\n\t\t\t? hasResolvedPermissions\n\t\t\t: undefined,\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// Draft Navigation posts are valid only on the editor,\n\t// requiring a post update to publish to show in frontend.\n\t// To achieve that, index.php must reflect this validation only for published.\n\tconst isNavigationMenuPublishedOrDraft =\n\t\teditedNavigationMenu.status === 'publish' ||\n\t\teditedNavigationMenu.status === 'draft';\n\n\treturn {\n\t\tisNavigationMenuResolved: hasResolvedNavigationMenu,\n\t\tisNavigationMenuMissing:\n\t\t\thasResolvedNavigationMenu &&\n\t\t\t( ! navigationMenu || ! isNavigationMenuPublishedOrDraft ),\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: isNavigationMenuPublishedOrDraft\n\t\t\t? editedNavigationMenu\n\t\t\t: null,\n\t};\n}\n"],"mappings":";;;;;;AAGA,IAAAA,SAAA,GAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,UAAA,GAAAF,OAAA;AAbA;AACA;AACA;;AAQA;AACA;AACA;;AAGe,SAASG,iBAAiBA,CAAEC,GAAG,EAAG;EAChD,MAAMC,WAAW,GAAG,IAAAC,gCAAsB,EAAE,YAAY,EAAEF,GAAI,CAAC;EAE/D,MAAM;IACLG,cAAc;IACdC,wBAAwB;IACxBC;EACD,CAAC,GAAG,IAAAC,eAAS,EACVC,MAAM,IAAM;IACb,OAAOC,kBAAkB,CAAED,MAAM,EAAEP,GAAI,CAAC;EACzC,CAAC,EACD,CAAEA,GAAG,CACN,CAAC;EAED,MAAM;IACL;IACAS,SAAS,EAAEC,wBAAwB;IAEnC;IACAC,SAAS,EAAEC,uBAAuB;IAElC;IACAC,SAAS,EAAEC,uBAAuB;IAClCC,WAAW,EAAEC,sBAAsB;IACnCC,WAAW,EAAEC;EACd,CAAC,GAAGjB,WAAW;EAEf,MAAM;IACLkB,OAAO,EAAEC,eAAe;IACxBL,WAAW,EAAEM,0BAA0B;IACvCJ,WAAW,EAAEK;EACd,CAAC,GAAG,IAAAC,0BAAgB,EACnB,UAAU,EACT,eAAc,EACfC,2CACD,CAAC;EAED,MAAMC,uBAAuB,GAAGzB,GAAG,GAChCoB,eAAe,EAAEM,MAAM,GAAG,CAAC,GAC3BN,eAAe,EAAEM,MAAM,GAAG,CAAC;EAE9B,OAAO;IACNvB,cAAc;IACdC,wBAAwB;IACxBC,uBAAuB;IACvBe,eAAe;IACfC,0BAA0B;IAC1BC,0BAA0B;IAC1BG,uBAAuB;IACvBE,4BAA4B,EAAEjB,wBAAwB;IACtDkB,uCAAuC,EAAEZ,sBAAsB;IAC/Da,uCAAuC,EAAEX,sBAAsB;IAC/DY,2BAA2B,EAAElB,uBAAuB;IACpDmB,sCAAsC,EAAE/B,GAAG,GACxCkB,sBAAsB,GACtBc,SAAS;IACZC,2BAA2B,EAAEnB,uBAAuB;IACpDoB,sCAAsC,EAAElC,GAAG,GACxCkB,sBAAsB,GACtBc;EACJ,CAAC;AACF;AAEA,SAASxB,kBAAkBA,CAAED,MAAM,EAAEP,GAAG,EAAG;EAC1C,IAAK,CAAEA,GAAG,EAAG;IACZ,OAAO;MACNI,wBAAwB,EAAE,KAAK;MAC/BC,uBAAuB,EAAE;IAC1B,CAAC;EACF;EAEA,MAAM;IAAE8B,eAAe;IAAEC,qBAAqB;IAAEC;EAAsB,CAAC,GACtE9B,MAAM,CAAE+B,eAAU,CAAC;EAEpB,MAAMC,IAAI,GAAG,CAAE,UAAU,EAAE,eAAe,EAAEvC,GAAG,CAAE;EACjD,MAAMG,cAAc,GAAGgC,eAAe,CAAE,GAAGI,IAAK,CAAC;EACjD,MAAMC,oBAAoB,GAAGJ,qBAAqB,CAAE,GAAGG,IAAK,CAAC;EAC7D,MAAME,yBAAyB,GAAGJ,qBAAqB,CACtD,uBAAuB,EACvBE,IACD,CAAC;;EAED;EACA;EACA;EACA;EACA,MAAMG,gCAAgC,GACrCF,oBAAoB,CAACG,MAAM,KAAK,SAAS,IACzCH,oBAAoB,CAACG,MAAM,KAAK,OAAO;EAExC,OAAO;IACNvC,wBAAwB,EAAEqC,yBAAyB;IACnDpC,uBAAuB,EACtBoC,yBAAyB,KACvB,CAAEtC,cAAc,IAAI,CAAEuC,gCAAgC,CAAE;IAE3D;IACA;IACAvC,cAAc,EAAEuC,gCAAgC,GAC7CF,oBAAoB,GACpB;EACJ,CAAC;AACF"}
@@ -198,7 +198,7 @@ function NavigationLinkEdit({
198
198
  isParentOfSelectedBlock: hasSelectedInnerBlock(clientId, true),
199
199
  hasChildren: !!getBlockCount(clientId)
200
200
  };
201
- }, [clientId]);
201
+ }, [clientId, maxNestingLevel]);
202
202
 
203
203
  /**
204
204
  * Transform to submenu block.
@@ -248,7 +248,7 @@ function NavigationLinkEdit({
248
248
  (0, _dom.placeCaretAtHorizontalEdge)(ref.current, true);
249
249
  }
250
250
  }
251
- }, [url]);
251
+ }, [url, isLinkOpen, label]);
252
252
 
253
253
  /**
254
254
  * Focus the Link label text and select it.
@@ -297,7 +297,11 @@ function NavigationLinkEdit({
297
297
  customBackgroundColor
298
298
  } = (0, _utils.getColors)(context, !isTopLevelLink);
299
299
  function onKeyDown(event) {
300
- if (_keycodes.isKeyboardEvent.primary(event, 'k') || (!url || isDraft || isInvalid) && event.keyCode === _keycodes.ENTER) {
300
+ if (_keycodes.isKeyboardEvent.primary(event, 'k')) {
301
+ // Required to prevent the command center from opening,
302
+ // as it shares the CMD+K shortcut.
303
+ // See https://github.com/WordPress/gutenberg/pull/59845.
304
+ event.preventDefault();
301
305
  setIsLinkOpen(true);
302
306
  }
303
307
  }
@@ -328,7 +332,9 @@ function NavigationLinkEdit({
328
332
  renderAppender: false
329
333
  });
330
334
  if (!url || isInvalid || isDraft) {
331
- blockProps.onClick = () => setIsLinkOpen(true);
335
+ blockProps.onClick = () => {
336
+ setIsLinkOpen(true);
337
+ };
332
338
  }
333
339
  const classes = (0, _classnames.default)('wp-block-navigation-item__content', {
334
340
  'wp-block-navigation-link__placeholder': !url || isInvalid || isDraft
@@ -426,12 +432,7 @@ function NavigationLinkEdit({
426
432
  "aria-label": (0, _i18n.__)('Navigation link text'),
427
433
  placeholder: itemLabelPlaceholder,
428
434
  withoutInteractiveFormatting: true,
429
- allowedFormats: ['core/bold', 'core/italic', 'core/image', 'core/strikethrough'],
430
- onClick: () => {
431
- if (!url) {
432
- setIsLinkOpen(true);
433
- }
434
- }
435
+ allowedFormats: ['core/bold', 'core/italic', 'core/image', 'core/strikethrough']
435
436
  }), description && (0, _react.createElement)("span", {
436
437
  className: "wp-block-navigation-item__description"
437
438
  }, description)), (isInvalid || isDraft || isLabelFieldFocused) && (0, _react.createElement)("div", {
@@ -456,6 +457,7 @@ function NavigationLinkEdit({
456
457
  // Need to handle refocusing the Nav block or the inserter?
457
458
  onReplace([]);
458
459
  }
460
+ setIsLinkOpen(false);
459
461
  },
460
462
  anchor: popoverAnchor,
461
463
  onRemove: removeLink,