@wordpress/block-library 8.5.0 → 8.7.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 (427) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/buttons/edit.native.js +1 -1
  3. package/build/buttons/edit.native.js.map +1 -1
  4. package/build/buttons/index.js +1 -0
  5. package/build/buttons/index.js.map +1 -1
  6. package/build/buttons/transforms.js +1 -0
  7. package/build/buttons/transforms.js.map +1 -1
  8. package/build/columns/edit.js +14 -10
  9. package/build/columns/edit.js.map +1 -1
  10. package/build/columns/edit.native.js +1 -1
  11. package/build/columns/edit.native.js.map +1 -1
  12. package/build/columns/index.js +4 -0
  13. package/build/columns/index.js.map +1 -1
  14. package/build/comments/edit/placeholder.js +8 -5
  15. package/build/comments/edit/placeholder.js.map +1 -1
  16. package/build/cover/edit/inspector-controls.js +2 -2
  17. package/build/cover/edit/inspector-controls.js.map +1 -1
  18. package/build/cover/index.js +13 -4
  19. package/build/cover/index.js.map +1 -1
  20. package/build/cover/variations.js +29 -0
  21. package/build/cover/variations.js.map +1 -0
  22. package/build/embed/edit.js +13 -14
  23. package/build/embed/edit.js.map +1 -1
  24. package/build/embed/edit.native.js +18 -14
  25. package/build/embed/edit.native.js.map +1 -1
  26. package/build/embed/util.js +39 -12
  27. package/build/embed/util.js.map +1 -1
  28. package/build/gallery/edit.js +9 -5
  29. package/build/gallery/edit.js.map +1 -1
  30. package/build/gallery/use-image-sizes.js +1 -1
  31. package/build/gallery/use-image-sizes.js.map +1 -1
  32. package/build/group/deprecated.js +4 -2
  33. package/build/group/deprecated.js.map +1 -1
  34. package/build/group/edit.js +22 -5
  35. package/build/group/edit.js.map +1 -1
  36. package/build/group/placeholder.js +11 -1
  37. package/build/group/placeholder.js.map +1 -1
  38. package/build/group/variations.js +23 -3
  39. package/build/group/variations.js.map +1 -1
  40. package/build/image/edit.js +1 -1
  41. package/build/image/edit.js.map +1 -1
  42. package/build/image/edit.native.js +1 -1
  43. package/build/image/edit.native.js.map +1 -1
  44. package/build/image/image.js +8 -6
  45. package/build/image/image.js.map +1 -1
  46. package/build/image/index.js +7 -2
  47. package/build/image/index.js.map +1 -1
  48. package/build/latest-posts/edit.js +11 -10
  49. package/build/latest-posts/edit.js.map +1 -1
  50. package/build/latest-posts/edit.native.js +3 -3
  51. package/build/latest-posts/edit.native.js.map +1 -1
  52. package/build/media-text/constants.js +17 -1
  53. package/build/media-text/constants.js.map +1 -1
  54. package/build/media-text/deprecated.js +228 -18
  55. package/build/media-text/deprecated.js.map +1 -1
  56. package/build/media-text/edit.js +10 -22
  57. package/build/media-text/edit.js.map +1 -1
  58. package/build/media-text/edit.native.js +6 -5
  59. package/build/media-text/edit.native.js.map +1 -1
  60. package/build/media-text/index.js +1 -1
  61. package/build/media-text/transforms.js +32 -44
  62. package/build/media-text/transforms.js.map +1 -1
  63. package/build/navigation/edit/index.js +55 -96
  64. package/build/navigation/edit/index.js.map +1 -1
  65. package/build/navigation/edit/menu-inspector-controls.js +2 -5
  66. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  67. package/build/navigation/edit/navigation-menu-selector.js +26 -22
  68. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  69. package/build/navigation/edit/unsaved-inner-blocks.js +14 -1
  70. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  71. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -4
  72. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  73. package/build/navigation/edit/use-create-navigation-menu.js +1 -1
  74. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
  75. package/build/navigation/edit/use-navigation-notice.js +1 -1
  76. package/build/navigation/edit/use-navigation-notice.js.map +1 -1
  77. package/build/navigation/index.js +0 -1
  78. package/build/navigation/index.js.map +1 -1
  79. package/build/navigation-link/edit.js +0 -11
  80. package/build/navigation-link/edit.js.map +1 -1
  81. package/build/navigation-link/link-ui.js +0 -1
  82. package/build/navigation-link/link-ui.js.map +1 -1
  83. package/build/navigation-submenu/edit.js +1 -13
  84. package/build/navigation-submenu/edit.js.map +1 -1
  85. package/build/page-list/edit.js +59 -45
  86. package/build/page-list/edit.js.map +1 -1
  87. package/build/page-list-item/edit.js +3 -2
  88. package/build/page-list-item/edit.js.map +1 -1
  89. package/build/post-content/edit.js +6 -1
  90. package/build/post-content/edit.js.map +1 -1
  91. package/build/post-date/edit.js +2 -1
  92. package/build/post-date/edit.js.map +1 -1
  93. package/build/post-date/index.js +4 -1
  94. package/build/post-date/index.js.map +1 -1
  95. package/build/post-date/variations.js +28 -0
  96. package/build/post-date/variations.js.map +1 -0
  97. package/build/post-excerpt/edit.js +39 -10
  98. package/build/post-excerpt/edit.js.map +1 -1
  99. package/build/post-featured-image/dimension-controls.js +2 -8
  100. package/build/post-featured-image/dimension-controls.js.map +1 -1
  101. package/build/post-featured-image/edit.js +1 -1
  102. package/build/post-featured-image/edit.js.map +1 -1
  103. package/build/post-template/index.js +1 -1
  104. package/build/post-time-to-read/index.js +17 -1
  105. package/build/post-time-to-read/index.js.map +1 -1
  106. package/build/pullquote/deprecated.js +3 -3
  107. package/build/pullquote/deprecated.js.map +1 -1
  108. package/build/query/edit/query-placeholder.js +3 -2
  109. package/build/query/edit/query-placeholder.js.map +1 -1
  110. package/build/query/utils.js +26 -9
  111. package/build/query/utils.js.map +1 -1
  112. package/build/quote/index.js +1 -0
  113. package/build/quote/index.js.map +1 -1
  114. package/build/spacer/edit.js +16 -6
  115. package/build/spacer/edit.js.map +1 -1
  116. package/build/table/state.js +12 -4
  117. package/build/table/state.js.map +1 -1
  118. package/build/template-part/edit/import-controls.js +4 -24
  119. package/build/template-part/edit/import-controls.js.map +1 -1
  120. package/build/template-part/edit/utils/transformers.js +69 -19
  121. package/build/template-part/edit/utils/transformers.js.map +1 -1
  122. package/build/text-columns/edit.js +3 -7
  123. package/build/text-columns/edit.js.map +1 -1
  124. package/build/text-columns/save.js +11 -13
  125. package/build/text-columns/save.js.map +1 -1
  126. package/build-module/buttons/edit.native.js +1 -1
  127. package/build-module/buttons/edit.native.js.map +1 -1
  128. package/build-module/buttons/index.js +1 -0
  129. package/build-module/buttons/index.js.map +1 -1
  130. package/build-module/buttons/transforms.js +1 -0
  131. package/build-module/buttons/transforms.js.map +1 -1
  132. package/build-module/columns/edit.js +14 -9
  133. package/build-module/columns/edit.js.map +1 -1
  134. package/build-module/columns/edit.native.js +1 -1
  135. package/build-module/columns/edit.native.js.map +1 -1
  136. package/build-module/columns/index.js +4 -0
  137. package/build-module/columns/index.js.map +1 -1
  138. package/build-module/comments/edit/placeholder.js +9 -5
  139. package/build-module/comments/edit/placeholder.js.map +1 -1
  140. package/build-module/cover/edit/inspector-controls.js +2 -2
  141. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  142. package/build-module/cover/index.js +12 -4
  143. package/build-module/cover/index.js.map +1 -1
  144. package/build-module/cover/variations.js +19 -0
  145. package/build-module/cover/variations.js.map +1 -0
  146. package/build-module/embed/edit.js +14 -15
  147. package/build-module/embed/edit.js.map +1 -1
  148. package/build-module/embed/edit.native.js +19 -15
  149. package/build-module/embed/edit.native.js.map +1 -1
  150. package/build-module/embed/util.js +34 -10
  151. package/build-module/embed/util.js.map +1 -1
  152. package/build-module/gallery/edit.js +9 -5
  153. package/build-module/gallery/edit.js.map +1 -1
  154. package/build-module/gallery/use-image-sizes.js +1 -1
  155. package/build-module/gallery/use-image-sizes.js.map +1 -1
  156. package/build-module/group/deprecated.js +4 -2
  157. package/build-module/group/deprecated.js.map +1 -1
  158. package/build-module/group/edit.js +21 -5
  159. package/build-module/group/edit.js.map +1 -1
  160. package/build-module/group/placeholder.js +11 -1
  161. package/build-module/group/placeholder.js.map +1 -1
  162. package/build-module/group/variations.js +24 -1
  163. package/build-module/group/variations.js.map +1 -1
  164. package/build-module/image/edit.js +1 -1
  165. package/build-module/image/edit.js.map +1 -1
  166. package/build-module/image/edit.native.js +1 -1
  167. package/build-module/image/edit.native.js.map +1 -1
  168. package/build-module/image/image.js +8 -6
  169. package/build-module/image/image.js.map +1 -1
  170. package/build-module/image/index.js +7 -2
  171. package/build-module/image/index.js.map +1 -1
  172. package/build-module/latest-posts/edit.js +11 -9
  173. package/build-module/latest-posts/edit.js.map +1 -1
  174. package/build-module/latest-posts/edit.native.js +3 -3
  175. package/build-module/latest-posts/edit.native.js.map +1 -1
  176. package/build-module/media-text/constants.js +10 -0
  177. package/build-module/media-text/constants.js.map +1 -1
  178. package/build-module/media-text/deprecated.js +227 -18
  179. package/build-module/media-text/deprecated.js.map +1 -1
  180. package/build-module/media-text/edit.js +5 -17
  181. package/build-module/media-text/edit.js.map +1 -1
  182. package/build-module/media-text/edit.native.js +4 -3
  183. package/build-module/media-text/edit.native.js.map +1 -1
  184. package/build-module/media-text/index.js +1 -1
  185. package/build-module/media-text/transforms.js +32 -44
  186. package/build-module/media-text/transforms.js.map +1 -1
  187. package/build-module/navigation/edit/index.js +57 -98
  188. package/build-module/navigation/edit/index.js.map +1 -1
  189. package/build-module/navigation/edit/menu-inspector-controls.js +2 -5
  190. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  191. package/build-module/navigation/edit/navigation-menu-selector.js +25 -22
  192. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  193. package/build-module/navigation/edit/unsaved-inner-blocks.js +14 -1
  194. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  195. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -4
  196. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  197. package/build-module/navigation/edit/use-create-navigation-menu.js +1 -1
  198. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
  199. package/build-module/navigation/edit/use-navigation-notice.js +1 -1
  200. package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
  201. package/build-module/navigation/index.js +0 -1
  202. package/build-module/navigation/index.js.map +1 -1
  203. package/build-module/navigation-link/edit.js +0 -11
  204. package/build-module/navigation-link/edit.js.map +1 -1
  205. package/build-module/navigation-link/link-ui.js +0 -1
  206. package/build-module/navigation-link/link-ui.js.map +1 -1
  207. package/build-module/navigation-submenu/edit.js +1 -13
  208. package/build-module/navigation-submenu/edit.js.map +1 -1
  209. package/build-module/page-list/edit.js +61 -47
  210. package/build-module/page-list/edit.js.map +1 -1
  211. package/build-module/page-list-item/edit.js +3 -2
  212. package/build-module/page-list-item/edit.js.map +1 -1
  213. package/build-module/post-content/edit.js +6 -1
  214. package/build-module/post-content/edit.js.map +1 -1
  215. package/build-module/post-date/edit.js +2 -1
  216. package/build-module/post-date/edit.js.map +1 -1
  217. package/build-module/post-date/index.js +3 -1
  218. package/build-module/post-date/index.js.map +1 -1
  219. package/build-module/post-date/variations.js +18 -0
  220. package/build-module/post-date/variations.js.map +1 -0
  221. package/build-module/post-excerpt/edit.js +38 -11
  222. package/build-module/post-excerpt/edit.js.map +1 -1
  223. package/build-module/post-featured-image/dimension-controls.js +2 -8
  224. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  225. package/build-module/post-featured-image/edit.js +1 -1
  226. package/build-module/post-featured-image/edit.js.map +1 -1
  227. package/build-module/post-template/index.js +1 -1
  228. package/build-module/post-time-to-read/index.js +17 -1
  229. package/build-module/post-time-to-read/index.js.map +1 -1
  230. package/build-module/pullquote/deprecated.js +3 -2
  231. package/build-module/pullquote/deprecated.js.map +1 -1
  232. package/build-module/query/edit/query-placeholder.js +4 -3
  233. package/build-module/query/edit/query-placeholder.js.map +1 -1
  234. package/build-module/query/utils.js +21 -6
  235. package/build-module/query/utils.js.map +1 -1
  236. package/build-module/quote/index.js +1 -0
  237. package/build-module/quote/index.js.map +1 -1
  238. package/build-module/spacer/edit.js +16 -6
  239. package/build-module/spacer/edit.js.map +1 -1
  240. package/build-module/table/state.js +13 -5
  241. package/build-module/table/state.js.map +1 -1
  242. package/build-module/template-part/edit/import-controls.js +4 -23
  243. package/build-module/template-part/edit/import-controls.js.map +1 -1
  244. package/build-module/template-part/edit/utils/transformers.js +69 -20
  245. package/build-module/template-part/edit/utils/transformers.js.map +1 -1
  246. package/build-module/text-columns/edit.js +3 -6
  247. package/build-module/text-columns/edit.js.map +1 -1
  248. package/build-module/text-columns/save.js +11 -12
  249. package/build-module/text-columns/save.js.map +1 -1
  250. package/build-style/categories/editor-rtl.css +5 -0
  251. package/build-style/categories/editor.css +5 -0
  252. package/build-style/categories/style-rtl.css +4 -0
  253. package/build-style/categories/style.css +4 -0
  254. package/build-style/cover/style-rtl.css +11 -5
  255. package/build-style/cover/style.css +11 -5
  256. package/build-style/editor-rtl.css +11 -1
  257. package/build-style/editor.css +11 -1
  258. package/build-style/navigation/editor-rtl.css +1 -1
  259. package/build-style/navigation/editor.css +1 -1
  260. package/build-style/navigation/style-rtl.css +2 -0
  261. package/build-style/navigation/style.css +2 -0
  262. package/build-style/page-list/editor-rtl.css +4 -0
  263. package/build-style/page-list/editor.css +4 -0
  264. package/build-style/post-featured-image/editor-rtl.css +1 -0
  265. package/build-style/post-featured-image/editor.css +1 -0
  266. package/build-style/post-featured-image/style-rtl.css +1 -0
  267. package/build-style/post-featured-image/style.css +1 -0
  268. package/build-style/post-template/style-rtl.css +1 -1
  269. package/build-style/post-template/style.css +1 -1
  270. package/build-style/post-time-to-read/style-rtl.css +91 -0
  271. package/build-style/post-time-to-read/style.css +91 -0
  272. package/build-style/search/style-rtl.css +8 -7
  273. package/build-style/search/style.css +8 -7
  274. package/build-style/style-rtl.css +31 -13
  275. package/build-style/style.css +31 -13
  276. package/package.json +31 -31
  277. package/src/audio/test/__snapshots__/edit.native.js.snap +44 -4
  278. package/src/audio/test/__snapshots__/transforms.native.js.snap +25 -0
  279. package/src/audio/test/transforms.native.js +42 -0
  280. package/src/block/test/__snapshots__/transforms.native.js.snap +15 -0
  281. package/src/block/test/transforms.native.js +40 -0
  282. package/src/buttons/block.json +1 -0
  283. package/src/buttons/edit.native.js +1 -1
  284. package/src/buttons/test/__snapshots__/transforms.native.js.snap +31 -0
  285. package/src/buttons/test/transforms.native.js +48 -0
  286. package/src/categories/editor.scss +5 -0
  287. package/src/categories/style.scss +4 -0
  288. package/src/columns/block.json +4 -0
  289. package/src/columns/edit.js +30 -18
  290. package/src/columns/edit.native.js +1 -1
  291. package/src/columns/test/__snapshots__/transforms.native.js.snap +61 -0
  292. package/src/columns/test/transforms.native.js +91 -0
  293. package/src/comment-template/index.php +1 -2
  294. package/src/comments/edit/placeholder.js +16 -4
  295. package/src/comments/index.php +1 -0
  296. package/src/cover/block.json +9 -3
  297. package/src/cover/edit/inspector-controls.js +4 -5
  298. package/src/cover/index.js +2 -0
  299. package/src/cover/style.scss +16 -7
  300. package/src/cover/test/__snapshots__/transforms.native.js.snap +73 -0
  301. package/src/cover/test/edit.js +324 -0
  302. package/src/cover/test/transforms.native.js +112 -0
  303. package/src/cover/variations.js +20 -0
  304. package/src/embed/edit.js +16 -12
  305. package/src/embed/edit.native.js +28 -18
  306. package/src/embed/test/__snapshots__/transforms.native.js.snap +23 -0
  307. package/src/embed/test/index.js +12 -0
  308. package/src/embed/test/transforms.native.js +44 -0
  309. package/src/embed/util.js +29 -8
  310. package/src/file/test/__snapshots__/edit.native.js.snap +18 -2
  311. package/src/file/test/__snapshots__/transforms.native.js.snap +19 -0
  312. package/src/file/test/transforms.native.js +42 -0
  313. package/src/freeform/test/__snapshots__/transforms.native.js.snap +19 -0
  314. package/src/freeform/test/transforms.native.js +39 -0
  315. package/src/gallery/edit.js +8 -2
  316. package/src/gallery/test/__snapshots__/transforms.native.js.snap +53 -0
  317. package/src/gallery/test/transforms.native.js +52 -0
  318. package/src/gallery/use-image-sizes.js +1 -1
  319. package/src/group/deprecated.js +4 -2
  320. package/src/group/edit.js +27 -9
  321. package/src/group/placeholder.js +13 -1
  322. package/src/group/test/__snapshots__/transforms.native.js.snap +35 -0
  323. package/src/group/test/transforms.native.js +75 -0
  324. package/src/group/variations.js +14 -1
  325. package/src/heading/test/__snapshots__/transforms.native.js.snap +47 -0
  326. package/src/heading/test/transforms.native.js +46 -0
  327. package/src/home-link/index.php +2 -2
  328. package/src/image/block.json +7 -2
  329. package/src/image/edit.js +1 -1
  330. package/src/image/edit.native.js +1 -1
  331. package/src/image/image.js +15 -7
  332. package/src/image/index.php +7 -2
  333. package/src/image/test/__snapshots__/transforms.native.js.snap +49 -0
  334. package/src/image/test/transforms.native.js +48 -0
  335. package/src/latest-comments/style.scss +1 -1
  336. package/src/latest-posts/edit.js +14 -16
  337. package/src/latest-posts/edit.native.js +3 -3
  338. package/src/latest-posts/test/__snapshots__/transforms.native.js.snap +15 -0
  339. package/src/latest-posts/test/transforms.native.js +61 -0
  340. package/src/list/test/__snapshots__/transforms.native.js.snap +85 -0
  341. package/src/list/test/transforms.native.js +56 -0
  342. package/src/media-text/block.json +1 -1
  343. package/src/media-text/constants.js +16 -0
  344. package/src/media-text/deprecated.js +235 -3
  345. package/src/media-text/edit.js +15 -24
  346. package/src/media-text/edit.native.js +3 -9
  347. package/src/media-text/test/__snapshots__/transforms.native.js.snap +73 -0
  348. package/src/media-text/test/transforms.native.js +112 -0
  349. package/src/media-text/transforms.js +24 -51
  350. package/src/missing/test/__snapshots__/edit.native.js.snap +20 -2
  351. package/src/more/test/__snapshots__/transforms.native.js.snap +19 -0
  352. package/src/more/test/transforms.native.js +42 -0
  353. package/src/navigation/block.json +0 -1
  354. package/src/navigation/edit/index.js +99 -115
  355. package/src/navigation/edit/menu-inspector-controls.js +2 -7
  356. package/src/navigation/edit/navigation-menu-selector.js +41 -25
  357. package/src/navigation/edit/unsaved-inner-blocks.js +46 -33
  358. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +82 -83
  359. package/src/navigation/edit/use-create-navigation-menu.js +1 -1
  360. package/src/navigation/edit/use-navigation-notice.js +1 -1
  361. package/src/navigation/editor.scss +23 -20
  362. package/src/navigation/index.php +18 -39
  363. package/src/navigation/style.scss +6 -4
  364. package/src/navigation-link/edit.js +0 -9
  365. package/src/navigation-link/index.php +7 -9
  366. package/src/navigation-link/link-ui.js +0 -1
  367. package/src/navigation-submenu/edit.js +0 -10
  368. package/src/navigation-submenu/index.php +45 -74
  369. package/src/nextpage/test/__snapshots__/transforms.native.js.snap +19 -0
  370. package/src/nextpage/test/transforms.native.js +42 -0
  371. package/src/page-list/edit.js +78 -44
  372. package/src/page-list/editor.scss +6 -0
  373. package/src/page-list-item/edit.js +2 -3
  374. package/src/paragraph/test/__snapshots__/transforms.native.js.snap +59 -0
  375. package/src/paragraph/test/transforms.native.js +50 -0
  376. package/src/post-author/index.php +1 -1
  377. package/src/post-content/edit.js +5 -1
  378. package/src/post-date/edit.js +4 -1
  379. package/src/post-date/index.js +2 -0
  380. package/src/post-date/variations.js +20 -0
  381. package/src/post-excerpt/edit.js +48 -16
  382. package/src/post-excerpt/index.php +1 -2
  383. package/src/post-featured-image/dimension-controls.js +2 -10
  384. package/src/post-featured-image/edit.js +1 -1
  385. package/src/post-featured-image/editor.scss +1 -0
  386. package/src/post-featured-image/style.scss +1 -0
  387. package/src/post-template/block.json +1 -1
  388. package/src/post-template/style.scss +1 -1
  389. package/src/post-time-to-read/block.json +17 -1
  390. package/src/post-time-to-read/style.scss +4 -0
  391. package/src/preformatted/test/__snapshots__/transforms.native.js.snap +31 -0
  392. package/src/preformatted/test/transforms.native.js +42 -0
  393. package/src/pullquote/deprecated.js +2 -6
  394. package/src/pullquote/test/__snapshots__/transforms.native.js.snap +47 -0
  395. package/src/pullquote/test/transforms.native.js +46 -0
  396. package/src/query/edit/query-placeholder.js +10 -5
  397. package/src/query/test/utils.js +33 -1
  398. package/src/query/utils.js +19 -6
  399. package/src/query-title/index.php +2 -5
  400. package/src/quote/block.json +1 -0
  401. package/src/quote/test/__snapshots__/transforms.native.js.snap +39 -0
  402. package/src/quote/test/transforms.native.js +67 -0
  403. package/src/search/style.scss +16 -12
  404. package/src/search/test/__snapshots__/edit.native.js.snap +11 -1
  405. package/src/search/test/__snapshots__/transforms.native.js.snap +15 -0
  406. package/src/search/test/transforms.native.js +40 -0
  407. package/src/separator/test/__snapshots__/transforms.native.js.snap +19 -0
  408. package/src/separator/test/transforms.native.js +42 -0
  409. package/src/shortcode/test/__snapshots__/transforms.native.js.snap +19 -0
  410. package/src/shortcode/test/transforms.native.js +42 -0
  411. package/src/social-links/test/__snapshots__/transforms.native.js.snap +31 -0
  412. package/src/social-links/test/transforms.native.js +53 -0
  413. package/src/spacer/edit.js +18 -5
  414. package/src/spacer/test/__snapshots__/transforms.native.js.snap +19 -0
  415. package/src/spacer/test/transforms.native.js +42 -0
  416. package/src/style.scss +1 -0
  417. package/src/table/state.js +8 -17
  418. package/src/template-part/edit/import-controls.js +2 -29
  419. package/src/template-part/edit/utils/transformers.js +96 -19
  420. package/src/text-columns/edit.js +1 -6
  421. package/src/text-columns/save.js +1 -6
  422. package/src/verse/test/__snapshots__/transforms.native.js.snap +25 -0
  423. package/src/verse/test/transforms.native.js +42 -0
  424. package/src/video/test/__snapshots__/transforms.native.js.snap +41 -0
  425. package/src/video/test/transforms.native.js +48 -0
  426. package/tsconfig.tsbuildinfo +1 -1
  427. package/src/cover/test/block-controls.js +0 -62
@@ -81,7 +81,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
81
81
  * Internal dependencies
82
82
  */
83
83
  function Navigation(_ref) {
84
- var _attributes$style, _attributes$style$typ;
84
+ var _navigationMenus$find, _attributes$style, _attributes$style$typ;
85
85
 
86
86
  let {
87
87
  attributes,
@@ -117,19 +117,18 @@ function Navigation(_ref) {
117
117
  icon = 'handle'
118
118
  } = attributes;
119
119
  const ref = attributes.ref;
120
-
121
- const setRef = postId => {
120
+ const setRef = (0, _element.useCallback)(postId => {
122
121
  setAttributes({
123
122
  ref: postId
124
123
  });
125
- };
126
-
124
+ }, [setAttributes]);
127
125
  const recursionId = `navigationMenu/${ref}`;
128
126
  const hasAlreadyRendered = (0, _blockEditor.__experimentalUseHasRecursion)(recursionId); // Preload classic menus, so that they don't suddenly pop-in when viewing
129
127
  // the Select Menu dropdown.
130
128
 
131
129
  const {
132
- menus: classicMenus
130
+ menus: classicMenus,
131
+ hasResolvedMenus: hasResolvedClassicMenus
133
132
  } = (0, _useNavigationEntities.default)();
134
133
  const [showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice] = (0, _useNavigationNotice.default)({
135
134
  name: 'block-library/core/navigation/status'
@@ -187,41 +186,23 @@ function Navigation(_ref) {
187
186
  status: classicMenuConversionStatus,
188
187
  error: classicMenuConversionError
189
188
  } = (0, _useConvertClassicMenuToBlockMenu.default)(clientId);
190
- const isConvertingClassicMenu = classicMenuConversionStatus === _useConvertClassicMenuToBlockMenu.CLASSIC_MENU_CONVERSION_PENDING; // Only autofallback to published menus.
191
-
192
- const fallbackNavigationMenus = (0, _element.useMemo)(() => {
193
- var _navigationMenus$filt;
194
-
195
- return navigationMenus === null || navigationMenus === void 0 ? void 0 : (_navigationMenus$filt = navigationMenus.filter(menu => menu.status === 'publish')) === null || _navigationMenus$filt === void 0 ? void 0 : _navigationMenus$filt.sort((menuA, menuB) => {
196
- const menuADate = new Date(menuA.date);
197
- const menuBDate = new Date(menuB.date);
198
- return menuADate.getTime() < menuBDate.getTime();
199
- });
200
- }, [navigationMenus]); // This useEffect adds snackbar and speak status notices when menus are created.
201
- // If there are no fallback navigation menus then we don't show these messages,
202
- // because this means that we are creating the first, fallback navigation menu.
203
-
204
- (0, _element.useEffect)(() => {
205
- hideNavigationMenuStatusNotice();
206
-
207
- if (fallbackNavigationMenus && isCreatingNavigationMenu) {
208
- (0, _a11y.speak)((0, _i18n.__)(`Creating Navigation Menu.`));
209
- }
210
-
211
- if (createNavigationMenuIsSuccess) {
212
- handleUpdateMenu(createNavigationMenuPost.id, {
213
- focusNavigationBlock: true
214
- });
189
+ const isConvertingClassicMenu = classicMenuConversionStatus === _useConvertClassicMenuToBlockMenu.CLASSIC_MENU_CONVERSION_PENDING; // Only auto-fallback to the latest published menu.
190
+ // The REST API already returns items sorted by publishing date.
215
191
 
216
- if (fallbackNavigationMenus) {
217
- showNavigationMenuStatusNotice((0, _i18n.__)(`Navigation Menu successfully created.`));
218
- }
219
- }
192
+ const fallbackNavigationMenuId = navigationMenus === null || navigationMenus === void 0 ? void 0 : (_navigationMenus$find = navigationMenus.find(menu => menu.status === 'publish')) === null || _navigationMenus$find === void 0 ? void 0 : _navigationMenus$find.id;
193
+ const handleUpdateMenu = (0, _element.useCallback)(function (menuId) {
194
+ let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
195
+ focusNavigationBlock: false
196
+ };
197
+ const {
198
+ focusNavigationBlock
199
+ } = options;
200
+ setRef(menuId);
220
201
 
221
- if (createNavigationMenuIsError) {
222
- showNavigationMenuStatusNotice((0, _i18n.__)('Failed to create Navigation Menu.'));
202
+ if (focusNavigationBlock) {
203
+ selectBlock(clientId);
223
204
  }
224
- }, [createNavigationMenuStatus, createNavigationMenuError, createNavigationMenuPost, fallbackNavigationMenus]); // Attempt to retrieve and prioritize any existing navigation menu unless:
205
+ }, [selectBlock, clientId, setRef]); // Attempt to retrieve and prioritize any existing navigation menu unless:
225
206
  // - the are uncontrolled inner blocks already present in the block.
226
207
  // - the user is creating a new menu.
227
208
  // - there are no menus to choose from.
@@ -230,7 +211,7 @@ function Navigation(_ref) {
230
211
  // The aim is for the block to "just work" from a user perspective using existing data.
231
212
 
232
213
  (0, _element.useEffect)(() => {
233
- if (hasUncontrolledInnerBlocks || isCreatingNavigationMenu || ref || !(fallbackNavigationMenus !== null && fallbackNavigationMenus !== void 0 && fallbackNavigationMenus.length)) {
214
+ if (hasUncontrolledInnerBlocks || isCreatingNavigationMenu || ref || !fallbackNavigationMenuId) {
234
215
  return;
235
216
  }
236
217
  /**
@@ -244,8 +225,8 @@ function Navigation(_ref) {
244
225
 
245
226
  __unstableMarkNextChangeAsNotPersistent();
246
227
 
247
- setRef(fallbackNavigationMenus[0].id);
248
- }, [ref, isCreatingNavigationMenu, fallbackNavigationMenus, hasUncontrolledInnerBlocks]);
228
+ setRef(fallbackNavigationMenuId);
229
+ }, [ref, setRef, isCreatingNavigationMenu, fallbackNavigationMenuId, hasUncontrolledInnerBlocks, __unstableMarkNextChangeAsNotPersistent]);
249
230
  const isEntityAvailable = !isNavigationMenuMissing && isNavigationMenuResolved; // If the block has inner blocks, but no menu id, then these blocks are either:
250
231
  // - inserted via a pattern.
251
232
  // - inserted directly via Code View (or otherwise).
@@ -255,7 +236,7 @@ function Navigation(_ref) {
255
236
 
256
237
  const hasUnsavedBlocks = hasUncontrolledInnerBlocks && !isEntityAvailable;
257
238
  (0, _element.useEffect)(() => {
258
- if (ref || !hasResolvedNavigationMenus || isConvertingClassicMenu || (fallbackNavigationMenus === null || fallbackNavigationMenus === void 0 ? void 0 : fallbackNavigationMenus.length) > 0 || hasUnsavedBlocks) {
239
+ if (ref || !hasResolvedClassicMenus || !hasResolvedNavigationMenus || isConvertingClassicMenu || fallbackNavigationMenuId || hasUnsavedBlocks || !(classicMenus !== null && classicMenus !== void 0 && classicMenus.length)) {
259
240
  return;
260
241
  } // If there's non fallback navigation menus and
261
242
  // a classic menu with a `primary` location or slug,
@@ -263,31 +244,17 @@ function Navigation(_ref) {
263
244
  // Otherwise, use the most recently created classic menu.
264
245
 
265
246
 
266
- if (classicMenus !== null && classicMenus !== void 0 && classicMenus.length) {
267
- const primaryMenus = classicMenus.filter(classicMenu => classicMenu.locations.includes('primary') || classicMenu.slug === 'primary');
247
+ const primaryMenus = classicMenus.filter(classicMenu => classicMenu.locations.includes('primary') || classicMenu.slug === 'primary');
268
248
 
269
- if (primaryMenus.length) {
270
- convertClassicMenu(primaryMenus[0].id, primaryMenus[0].name, 'publish');
271
- } else {
272
- classicMenus.sort((a, b) => {
273
- return b.id - a.id;
274
- });
275
- convertClassicMenu(classicMenus[0].id, classicMenus[0].name, 'publish');
276
- }
249
+ if (primaryMenus.length) {
250
+ convertClassicMenu(primaryMenus[0].id, primaryMenus[0].name, 'publish');
277
251
  } else {
278
- // If there are no fallback navigation menus and no classic menus,
279
- // then create a new navigation menu.
280
- // Check that we have a page-list block type.
281
- let defaultBlocks = [];
282
-
283
- if ((0, _blocks.getBlockType)('core/page-list')) {
284
- defaultBlocks = [(0, _blocks.createBlock)('core/page-list')];
285
- }
286
-
287
- createNavigationMenu('Navigation', // TODO - use the template slug in future
288
- defaultBlocks, 'publish');
252
+ classicMenus.sort((a, b) => {
253
+ return b.id - a.id;
254
+ });
255
+ convertClassicMenu(classicMenus[0].id, classicMenus[0].name, 'publish');
289
256
  }
290
- }, [hasResolvedNavigationMenus, hasUnsavedBlocks]);
257
+ }, [hasResolvedClassicMenus, hasResolvedNavigationMenus, hasUnsavedBlocks, classicMenus, convertClassicMenu, createNavigationMenu, fallbackNavigationMenuId, isConvertingClassicMenu, ref]);
291
258
  const navRef = (0, _element.useRef)(); // The standard HTML5 tag for the block wrapper.
292
259
 
293
260
  const TagName = 'nav'; // "placeholder" shown if:
@@ -296,7 +263,20 @@ function Navigation(_ref) {
296
263
  // - there is no menu creation process in progress.
297
264
  // - there are no uncontrolled blocks.
298
265
 
299
- const isPlaceholder = !ref && !isCreatingNavigationMenu && !isConvertingClassicMenu && hasResolvedNavigationMenus && (classicMenus === null || classicMenus === void 0 ? void 0 : classicMenus.length) === 0 && !hasUncontrolledInnerBlocks; // "loading" state:
266
+ const isPlaceholder = !ref && !isCreatingNavigationMenu && !isConvertingClassicMenu && hasResolvedNavigationMenus && (classicMenus === null || classicMenus === void 0 ? void 0 : classicMenus.length) === 0 && !hasUncontrolledInnerBlocks;
267
+ (0, _element.useEffect)(() => {
268
+ if (isPlaceholder) {
269
+ /**
270
+ * this fallback only displays (both in editor and on front)
271
+ * the list of pages block if no menu is available as a fallback.
272
+ * We don't want the fallback to request a save,
273
+ * nor to be undoable, hence we mark it non persistent.
274
+ */
275
+ __unstableMarkNextChangeAsNotPersistent();
276
+
277
+ replaceInnerBlocks(clientId, [(0, _blocks.createBlock)('core/page-list')]);
278
+ }
279
+ }, [clientId, isPlaceholder, ref, __unstableMarkNextChangeAsNotPersistent, replaceInnerBlocks]); // "loading" state:
300
280
  // - there is a menu creation process in progress.
301
281
  // - there is a classic menu conversion process in progress.
302
282
  // OR:
@@ -334,19 +314,6 @@ function Navigation(_ref) {
334
314
  const [detectedColor, setDetectedColor] = (0, _element.useState)();
335
315
  const [detectedOverlayBackgroundColor, setDetectedOverlayBackgroundColor] = (0, _element.useState)();
336
316
  const [detectedOverlayColor, setDetectedOverlayColor] = (0, _element.useState)();
337
- const handleUpdateMenu = (0, _element.useCallback)(function (menuId) {
338
- let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
339
- focusNavigationBlock: false
340
- };
341
- const {
342
- focusNavigationBlock
343
- } = options;
344
- setRef(menuId);
345
-
346
- if (focusNavigationBlock) {
347
- selectBlock(clientId);
348
- }
349
- }, [selectBlock, clientId]);
350
317
 
351
318
  const onSelectClassicMenu = async classicMenu => {
352
319
  const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name, 'draft');
@@ -370,7 +337,7 @@ function Navigation(_ref) {
370
337
  }
371
338
 
372
339
  if (createNavigationMenuIsSuccess) {
373
- handleUpdateMenu(createNavigationMenuPost.id, {
340
+ handleUpdateMenu(createNavigationMenuPost === null || createNavigationMenuPost === void 0 ? void 0 : createNavigationMenuPost.id, {
374
341
  focusNavigationBlock: true
375
342
  });
376
343
  showNavigationMenuStatusNotice((0, _i18n.__)(`Navigation Menu successfully created.`));
@@ -379,7 +346,7 @@ function Navigation(_ref) {
379
346
  if (createNavigationMenuIsError) {
380
347
  showNavigationMenuStatusNotice((0, _i18n.__)('Failed to create Navigation Menu.'));
381
348
  }
382
- }, [createNavigationMenuStatus, createNavigationMenuError, createNavigationMenuPost, createNavigationMenuIsError, createNavigationMenuIsSuccess, isCreatingNavigationMenu, handleUpdateMenu, hideNavigationMenuStatusNotice, showNavigationMenuStatusNotice]);
349
+ }, [createNavigationMenuStatus, createNavigationMenuError, createNavigationMenuPost === null || createNavigationMenuPost === void 0 ? void 0 : createNavigationMenuPost.id, createNavigationMenuIsError, createNavigationMenuIsSuccess, isCreatingNavigationMenu, handleUpdateMenu, hideNavigationMenuStatusNotice, showNavigationMenuStatusNotice]);
383
350
  (0, _element.useEffect)(() => {
384
351
  hideClassicMenuConversionNotice();
385
352
 
@@ -394,18 +361,7 @@ function Navigation(_ref) {
394
361
  if (classicMenuConversionStatus === _useConvertClassicMenuToBlockMenu.CLASSIC_MENU_CONVERSION_ERROR) {
395
362
  showClassicMenuConversionNotice((0, _i18n.__)('Classic menu import failed.'));
396
363
  }
397
- }, [classicMenuConversionStatus, classicMenuConversionError]); // Spacer block needs orientation from context. This is a patch until
398
- // https://github.com/WordPress/gutenberg/issues/36197 is addressed.
399
-
400
- (0, _element.useEffect)(() => {
401
- if (orientation) {
402
- __unstableMarkNextChangeAsNotPersistent();
403
-
404
- setAttributes({
405
- orientation
406
- });
407
- }
408
- }, [orientation]);
364
+ }, [classicMenuConversionStatus, classicMenuConversionError, hideClassicMenuConversionNotice, showClassicMenuConversionNotice]);
409
365
  (0, _element.useEffect)(() => {
410
366
  var _navRef$current;
411
367
 
@@ -426,7 +382,7 @@ function Navigation(_ref) {
426
382
  if (overlayTextColor.color || overlayBackgroundColor.color) {
427
383
  (0, _utils.detectColors)(subMenuElement, setDetectedOverlayColor, setDetectedOverlayBackgroundColor);
428
384
  }
429
- });
385
+ }, [enableContrastChecking, overlayTextColor.color, overlayBackgroundColor.color]);
430
386
  (0, _element.useEffect)(() => {
431
387
  if (!isSelected && !isInnerBlockSelected) {
432
388
  hideNavigationMenuPermissionsNotice();
@@ -441,7 +397,7 @@ function Navigation(_ref) {
441
397
  showNavigationMenuPermissionsNotice((0, _i18n.__)('You do not have permission to create Navigation Menus.'));
442
398
  }
443
399
  }
444
- }, [isSelected, isInnerBlockSelected, canUserUpdateNavigationMenu, hasResolvedCanUserUpdateNavigationMenu, canUserCreateNavigationMenu, hasResolvedCanUserCreateNavigationMenu, ref]);
400
+ }, [isSelected, isInnerBlockSelected, canUserUpdateNavigationMenu, hasResolvedCanUserUpdateNavigationMenu, canUserCreateNavigationMenu, hasResolvedCanUserCreateNavigationMenu, ref, hideNavigationMenuPermissionsNotice, showNavigationMenuPermissionsNotice, navMenuResolvedButMissing]);
445
401
  const hasManagePermissions = canUserCreateNavigationMenu || canUserUpdateNavigationMenu;
446
402
  const isResponsive = 'never' !== overlayMenu;
447
403
  const overlayMenuPreviewClasses = (0, _classnames.default)('wp-block-navigation__overlay-menu-preview', {
@@ -579,6 +535,7 @@ function Navigation(_ref) {
579
535
  clientId: clientId,
580
536
  createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
581
537
  createNavigationMenuIsError: createNavigationMenuIsError,
538
+ currentMenuId: ref,
582
539
  isNavigationMenuMissing: isNavigationMenuMissing,
583
540
  isManageMenusButtonDisabled: isManageMenusButtonDisabled,
584
541
  onCreateNew: createUntitledEmptyNavigationMenu,
@@ -647,9 +604,11 @@ function Navigation(_ref) {
647
604
  }), (0, _element.createElement)(_manageMenusButton.default, {
648
605
  disabled: isManageMenusButtonDisabled,
649
606
  className: "wp-block-navigation-manage-menus-button"
650
- })), isLoading && (0, _element.createElement)(TagName, blockProps, (0, _element.createElement)(_components.Spinner, {
607
+ })), isLoading && (0, _element.createElement)(TagName, blockProps, (0, _element.createElement)("div", {
608
+ className: "wp-block-navigation__loading-indicator-container"
609
+ }, (0, _element.createElement)(_components.Spinner, {
651
610
  className: "wp-block-navigation__loading-indicator"
652
- })), !isLoading && (0, _element.createElement)(TagName, blockProps, (0, _element.createElement)(_responsiveWrapper.default, {
611
+ }))), !isLoading && (0, _element.createElement)(TagName, blockProps, (0, _element.createElement)(_responsiveWrapper.default, {
653
612
  id: clientId,
654
613
  onToggle: setResponsiveMenuVisibility,
655
614
  label: (0, _i18n.__)('Menu'),
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","templateLock","layout","justifyContent","orientation","flexWrap","hasIcon","icon","ref","setRef","postId","recursionId","hasAlreadyRendered","menus","classicMenus","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","name","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","createNavigationMenuIsSuccess","isError","createNavigationMenuIsError","createUntitledEmptyNavigationMenu","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","innerBlocks","hasSubmenus","find","block","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navMenuResolvedButMissing","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","isConvertingClassicMenu","CLASSIC_MENU_CONVERSION_PENDING","fallbackNavigationMenus","filter","menu","sort","menuA","menuB","menuADate","Date","date","menuBDate","getTime","handleUpdateMenu","id","focusNavigationBlock","length","isEntityAvailable","hasUnsavedBlocks","primaryMenus","classicMenu","locations","includes","slug","a","b","defaultBlocks","navRef","TagName","isPlaceholder","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","color","class","enableContrastChecking","Platform","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","menuId","options","onSelectClassicMenu","navMenu","onSelectNavigationMenu","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","current","subMenuElement","querySelector","hasManagePermissions","isResponsive","overlayMenuPreviewClasses","open","colorGradientSettings","stylingInspectorControls","close","colorValue","label","onColorChange","resetAllFilter","isManageMenusButtonDisabled","PlaceholderComponent","Placeholder","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseCallback,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tPlatform,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { EntityProvider } from '@wordpress/core-data';\n\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock, getBlockType } from '@wordpress/blocks';\nimport { close, Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\nimport useNavigationNotice from './use-navigation-notice';\nimport OverlayMenuIcon from './overlay-menu-icon';\nimport OverlayMenuPreview from './overlay-menu-preview';\nimport useConvertClassicToBlockMenu, {\n\tCLASSIC_MENU_CONVERSION_ERROR,\n\tCLASSIC_MENU_CONVERSION_PENDING,\n\tCLASSIC_MENU_CONVERSION_SUCCESS,\n} from './use-convert-classic-menu-to-block-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\nimport { useInnerBlocks } from './use-inner-blocks';\nimport { detectColors } from './utils';\nimport ManageMenusButton from './manage-menus-button';\nimport MenuInspectorControls from './menu-inspector-controls';\nimport DeletedNavigationWarning from './deleted-navigation-warning';\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\ttemplateLock,\n\t\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t\ticon = 'handle',\n\t} = attributes;\n\n\tconst ref = attributes.ref;\n\n\tconst setRef = ( postId ) => {\n\t\tsetAttributes( { ref: postId } );\n\t};\n\n\tconst recursionId = `navigationMenu/${ ref }`;\n\tconst hasAlreadyRendered = useHasRecursion( recursionId );\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/status',\n\t\t} );\n\n\tconst [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/classic-menu-conversion',\n\t\t} );\n\n\tconst [\n\t\tshowNavigationMenuPermissionsNotice,\n\t\thideNavigationMenuPermissionsNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t\tisPending: isCreatingNavigationMenu,\n\t\tisSuccess: createNavigationMenuIsSuccess,\n\t\tisError: createNavigationMenuIsError,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst createUntitledEmptyNavigationMenu = () => {\n\t\tcreateNavigationMenu( '' );\n\t};\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\tinnerBlocks,\n\t} = useInnerBlocks( clientId );\n\n\tconst hasSubmenus = !! innerBlocks.find(\n\t\t( block ) => block.name === 'core/navigation-submenu'\n\t);\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] =\n\t\tuseState( false );\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tnavigationMenus,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\tisResolvingCanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t} = useNavigationMenu( ref );\n\n\tconst navMenuResolvedButMissing =\n\t\thasResolvedNavigationMenus && isNavigationMenuMissing;\n\n\tconst {\n\t\tconvert: convertClassicMenu,\n\t\tstatus: classicMenuConversionStatus,\n\t\terror: classicMenuConversionError,\n\t} = useConvertClassicToBlockMenu( clientId );\n\n\tconst isConvertingClassicMenu =\n\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;\n\n\t// Only autofallback to published menus.\n\tconst fallbackNavigationMenus = useMemo(\n\t\t() =>\n\t\t\tnavigationMenus\n\t\t\t\t?.filter( ( menu ) => menu.status === 'publish' )\n\t\t\t\t?.sort( ( menuA, menuB ) => {\n\t\t\t\t\tconst menuADate = new Date( menuA.date );\n\t\t\t\t\tconst menuBDate = new Date( menuB.date );\n\t\t\t\t\treturn menuADate.getTime() < menuBDate.getTime();\n\t\t\t\t} ),\n\t\t[ navigationMenus ]\n\t);\n\n\t// This useEffect adds snackbar and speak status notices when menus are created.\n\t// If there are no fallback navigation menus then we don't show these messages,\n\t// because this means that we are creating the first, fallback navigation menu.\n\tuseEffect( () => {\n\t\thideNavigationMenuStatusNotice();\n\n\t\tif ( fallbackNavigationMenus && isCreatingNavigationMenu ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuIsSuccess ) {\n\t\t\thandleUpdateMenu( createNavigationMenuPost.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\n\t\t\tif ( fallbackNavigationMenus ) {\n\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif ( createNavigationMenuIsError ) {\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost,\n\t\tfallbackNavigationMenus,\n\t] );\n\n\t// Attempt to retrieve and prioritize any existing navigation menu unless:\n\t// - the are uncontrolled inner blocks already present in the block.\n\t// - the user is creating a new menu.\n\t// - there are no menus to choose from.\n\t// This attempts to pick the first menu if there is a single Navigation Post. If more\n\t// than 1 exists then use the most recent.\n\t// The aim is for the block to \"just work\" from a user perspective using existing data.\n\tuseEffect( () => {\n\t\tif (\n\t\t\thasUncontrolledInnerBlocks ||\n\t\t\tisCreatingNavigationMenu ||\n\t\t\tref ||\n\t\t\t! fallbackNavigationMenus?.length\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t/**\n\t\t * This fallback displays (both in editor and on front)\n\t\t * a list of pages only if no menu (user assigned or\n\t\t * automatically picked) is available.\n\t\t * The fallback should not request a save (entity dirty state)\n\t\t * nor to be undoable, hence why it is marked as non persistent\n\t\t */\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetRef( fallbackNavigationMenus[ 0 ].id );\n\t}, [\n\t\tref,\n\t\tisCreatingNavigationMenu,\n\t\tfallbackNavigationMenus,\n\t\thasUncontrolledInnerBlocks,\n\t] );\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\t// If the block has inner blocks, but no menu id, then these blocks are either:\n\t// - inserted via a pattern.\n\t// - inserted directly via Code View (or otherwise).\n\t// - from an older version of navigation block added before the block used a wp_navigation entity.\n\t// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu as an entity when changes are made to the inner blocks.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tref ||\n\t\t\t! hasResolvedNavigationMenus ||\n\t\t\tisConvertingClassicMenu ||\n\t\t\tfallbackNavigationMenus?.length > 0 ||\n\t\t\thasUnsavedBlocks\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there's non fallback navigation menus and\n\t\t// a classic menu with a `primary` location or slug,\n\t\t// then create a new navigation menu based on it.\n\t\t// Otherwise, use the most recently created classic menu.\n\t\tif ( classicMenus?.length ) {\n\t\t\tconst primaryMenus = classicMenus.filter(\n\t\t\t\t( classicMenu ) =>\n\t\t\t\t\tclassicMenu.locations.includes( 'primary' ) ||\n\t\t\t\t\tclassicMenu.slug === 'primary'\n\t\t\t);\n\n\t\t\tif ( primaryMenus.length ) {\n\t\t\t\tconvertClassicMenu(\n\t\t\t\t\tprimaryMenus[ 0 ].id,\n\t\t\t\t\tprimaryMenus[ 0 ].name,\n\t\t\t\t\t'publish'\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tclassicMenus.sort( ( a, b ) => {\n\t\t\t\t\treturn b.id - a.id;\n\t\t\t\t} );\n\t\t\t\tconvertClassicMenu(\n\t\t\t\t\tclassicMenus[ 0 ].id,\n\t\t\t\t\tclassicMenus[ 0 ].name,\n\t\t\t\t\t'publish'\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\t// If there are no fallback navigation menus and no classic menus,\n\t\t\t// then create a new navigation menu.\n\n\t\t\t// Check that we have a page-list block type.\n\t\t\tlet defaultBlocks = [];\n\t\t\tif ( getBlockType( 'core/page-list' ) ) {\n\t\t\t\tdefaultBlocks = [ createBlock( 'core/page-list' ) ];\n\t\t\t}\n\n\t\t\tcreateNavigationMenu(\n\t\t\t\t'Navigation', // TODO - use the template slug in future\n\t\t\t\tdefaultBlocks,\n\t\t\t\t'publish'\n\t\t\t);\n\t\t}\n\t}, [ hasResolvedNavigationMenus, hasUnsavedBlocks ] );\n\n\tconst navRef = useRef();\n\n\t// The standard HTML5 tag for the block wrapper.\n\tconst TagName = 'nav';\n\n\t// \"placeholder\" shown if:\n\t// - there is no ref attribute pointing to a Navigation Post.\n\t// - there is no classic menu conversion process in progress.\n\t// - there is no menu creation process in progress.\n\t// - there are no uncontrolled blocks.\n\tconst isPlaceholder =\n\t\t! ref &&\n\t\t! isCreatingNavigationMenu &&\n\t\t! isConvertingClassicMenu &&\n\t\thasResolvedNavigationMenus &&\n\t\tclassicMenus?.length === 0 &&\n\t\t! hasUncontrolledInnerBlocks;\n\n\t// \"loading\" state:\n\t// - there is a menu creation process in progress.\n\t// - there is a classic menu conversion process in progress.\n\t// OR:\n\t// - there is a ref attribute pointing to a Navigation Post\n\t// - the Navigation Post isn't available (hasn't resolved) yet.\n\tconst isLoading =\n\t\t! hasResolvedNavigationMenus ||\n\t\tisCreatingNavigationMenu ||\n\t\tisConvertingClassicMenu ||\n\t\t!! ( ref && ! isEntityAvailable && ! isConvertingClassicMenu );\n\n\tconst textDecoration = attributes.style?.typography?.textDecoration;\n\n\tconst hasBlockOverlay = useBlockOverlayActive( clientId );\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t!! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor?.slug ) ]:\n\t\t\t\t!! backgroundColor?.slug,\n\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\tconst handleUpdateMenu = useCallback(\n\t\t( menuId, options = { focusNavigationBlock: false } ) => {\n\t\t\tconst { focusNavigationBlock } = options;\n\t\t\tsetRef( menuId );\n\t\t\tif ( focusNavigationBlock ) {\n\t\t\t\tselectBlock( clientId );\n\t\t\t}\n\t\t},\n\t\t[ selectBlock, clientId ]\n\t);\n\n\tconst onSelectClassicMenu = async ( classicMenu ) => {\n\t\tconst navMenu = await convertClassicMenu(\n\t\t\tclassicMenu.id,\n\t\t\tclassicMenu.name,\n\t\t\t'draft'\n\t\t);\n\t\tif ( navMenu ) {\n\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst onSelectNavigationMenu = ( menuId ) => {\n\t\thandleUpdateMenu( menuId );\n\t};\n\n\tuseEffect( () => {\n\t\thideNavigationMenuStatusNotice();\n\n\t\tif ( isCreatingNavigationMenu ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuIsSuccess ) {\n\t\t\thandleUpdateMenu( createNavigationMenuPost.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuIsError ) {\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost,\n\t\tcreateNavigationMenuIsError,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tisCreatingNavigationMenu,\n\t\thandleUpdateMenu,\n\t\thideNavigationMenuStatusNotice,\n\t\tshowNavigationMenuStatusNotice,\n\t] );\n\n\tuseEffect( () => {\n\t\thideClassicMenuConversionNotice();\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu imported successfully.' )\n\t\t\t);\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu import failed.' )\n\t\t\t);\n\t\t}\n\t}, [ classicMenuConversionStatus, classicMenuConversionError ] );\n\n\t// Spacer block needs orientation from context. This is a patch until\n\t// https://github.com/WordPress/gutenberg/issues/36197 is addressed.\n\tuseEffect( () => {\n\t\tif ( orientation ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { orientation } );\n\t\t}\n\t}, [ orientation ] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-submenu\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\n\t\tif ( ! subMenuElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Only detect submenu overlay colors if they have previously been explicitly set.\n\t\t// This avoids the contrast checker from reporting on inherited submenu colors and\n\t\t// showing the contrast warning twice.\n\t\tif ( overlayTextColor.color || overlayBackgroundColor.color ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideNavigationMenuPermissionsNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\tref &&\n\t\t\t\t! navMenuResolvedButMissing &&\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenu &&\n\t\t\t\t! canUserCreateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t\tref,\n\t] );\n\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenu || canUserUpdateNavigationMenu;\n\tconst isResponsive = 'never' !== overlayMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tconst stylingInspectorControls = (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\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>\n\t\t\t\t\t\t\t\t\t{ hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<OverlayMenuIcon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ close } />\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{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Close' ) }</span>\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</Button>\n\t\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t\t<OverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\t\t\t\t} ), // Make sure arrows are shown when we toggle this on.\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\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\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\tdisabled={ attributes.openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t{ hasColorSettings && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: textColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setTextColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () => setTextColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: backgroundColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setBackgroundColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () => setBackgroundColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: overlayTextColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () => setOverlayTextColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () =>\n\t\t\t\t\t\t\t\t\t\tsetOverlayBackgroundColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t\t\t\tgradients={ [] }\n\t\t\t\t\t\t\tdisableCustomGradients={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst isManageMenusButtonDisabled =\n\t\t! hasManagePermissions || ! hasResolvedNavigationMenus;\n\n\tif ( hasUnsavedBlocks && ! isCreatingNavigationMenu ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t/>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tcreateNavigationMenu={ createNavigationMenu }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t/>\n\t\t\t\t</ResponsiveWrapper>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t/>\n\t\t\t\t<DeletedNavigationWarning\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\t/**\n\t * Historically the navigation block has supported custom placeholders.\n\t * Even though the current UX tries as hard as possible not to\n\t * end up in a placeholder state, the block continues to support\n\t * this extensibility point, via a CustomPlaceholder.\n\t * When CustomPlaceholder is present it becomes the default fallback\n\t * for an empty navigation block, instead of the default fallbacks.\n\t *\n\t */\n\n\tif ( isPlaceholder && CustomPlaceholder ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<PlaceholderComponent\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcanUserCreateNavigationMenu={ canUserCreateNavigationMenu }\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenu={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenu\n\t\t\t\t\t}\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonCreateEmpty={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider uniqueId={ recursionId }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t/>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t\t{ hasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t\t\t\tcanUserUpdateNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasResolvedCanUserDeleteNavigationMenu &&\n\t\t\t\t\t\t\tcanUserDeleteNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\t\t\tonDelete={ ( deletedMenuTitle = '' ) => {\n\t\t\t\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\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\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Navigation menu %s successfully deleted.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tdeletedMenuTitle\n\t\t\t\t\t\t\t\t\t\t\t)\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/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<ManageMenusButton\n\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-manage-menus-button\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t{ isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\n\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","templateLock","layout","justifyContent","orientation","flexWrap","hasIcon","icon","ref","setRef","postId","recursionId","hasAlreadyRendered","menus","classicMenus","hasResolvedMenus","hasResolvedClassicMenus","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","name","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","createNavigationMenuIsSuccess","isError","createNavigationMenuIsError","createUntitledEmptyNavigationMenu","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","innerBlocks","hasSubmenus","find","block","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navMenuResolvedButMissing","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","isConvertingClassicMenu","CLASSIC_MENU_CONVERSION_PENDING","fallbackNavigationMenuId","menu","id","handleUpdateMenu","menuId","options","focusNavigationBlock","isEntityAvailable","hasUnsavedBlocks","length","primaryMenus","filter","classicMenu","locations","includes","slug","sort","a","b","navRef","TagName","isPlaceholder","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","color","class","enableContrastChecking","Platform","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","onSelectClassicMenu","navMenu","onSelectNavigationMenu","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","current","subMenuElement","querySelector","hasManagePermissions","isResponsive","overlayMenuPreviewClasses","open","colorGradientSettings","stylingInspectorControls","close","colorValue","label","onColorChange","resetAllFilter","isManageMenusButtonDisabled","PlaceholderComponent","Placeholder","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseCallback,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { EntityProvider } from '@wordpress/core-data';\n\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\nimport { close, Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\nimport useNavigationNotice from './use-navigation-notice';\nimport OverlayMenuIcon from './overlay-menu-icon';\nimport OverlayMenuPreview from './overlay-menu-preview';\nimport useConvertClassicToBlockMenu, {\n\tCLASSIC_MENU_CONVERSION_ERROR,\n\tCLASSIC_MENU_CONVERSION_PENDING,\n\tCLASSIC_MENU_CONVERSION_SUCCESS,\n} from './use-convert-classic-menu-to-block-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\nimport { useInnerBlocks } from './use-inner-blocks';\nimport { detectColors } from './utils';\nimport ManageMenusButton from './manage-menus-button';\nimport MenuInspectorControls from './menu-inspector-controls';\nimport DeletedNavigationWarning from './deleted-navigation-warning';\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\ttemplateLock,\n\t\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t\ticon = 'handle',\n\t} = attributes;\n\n\tconst ref = attributes.ref;\n\n\tconst setRef = useCallback(\n\t\t( postId ) => {\n\t\t\tsetAttributes( { ref: postId } );\n\t\t},\n\t\t[ setAttributes ]\n\t);\n\n\tconst recursionId = `navigationMenu/${ ref }`;\n\tconst hasAlreadyRendered = useHasRecursion( recursionId );\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tconst { menus: classicMenus, hasResolvedMenus: hasResolvedClassicMenus } =\n\t\tuseNavigationEntities();\n\n\tconst [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/status',\n\t\t} );\n\n\tconst [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/classic-menu-conversion',\n\t\t} );\n\n\tconst [\n\t\tshowNavigationMenuPermissionsNotice,\n\t\thideNavigationMenuPermissionsNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t\tisPending: isCreatingNavigationMenu,\n\t\tisSuccess: createNavigationMenuIsSuccess,\n\t\tisError: createNavigationMenuIsError,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst createUntitledEmptyNavigationMenu = () => {\n\t\tcreateNavigationMenu( '' );\n\t};\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\tinnerBlocks,\n\t} = useInnerBlocks( clientId );\n\n\tconst hasSubmenus = !! innerBlocks.find(\n\t\t( block ) => block.name === 'core/navigation-submenu'\n\t);\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] =\n\t\tuseState( false );\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tnavigationMenus,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\tisResolvingCanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t} = useNavigationMenu( ref );\n\n\tconst navMenuResolvedButMissing =\n\t\thasResolvedNavigationMenus && isNavigationMenuMissing;\n\n\tconst {\n\t\tconvert: convertClassicMenu,\n\t\tstatus: classicMenuConversionStatus,\n\t\terror: classicMenuConversionError,\n\t} = useConvertClassicToBlockMenu( clientId );\n\n\tconst isConvertingClassicMenu =\n\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;\n\n\t// Only auto-fallback to the latest published menu.\n\t// The REST API already returns items sorted by publishing date.\n\tconst fallbackNavigationMenuId = navigationMenus?.find(\n\t\t( menu ) => menu.status === 'publish'\n\t)?.id;\n\n\tconst handleUpdateMenu = useCallback(\n\t\t( menuId, options = { focusNavigationBlock: false } ) => {\n\t\t\tconst { focusNavigationBlock } = options;\n\t\t\tsetRef( menuId );\n\t\t\tif ( focusNavigationBlock ) {\n\t\t\t\tselectBlock( clientId );\n\t\t\t}\n\t\t},\n\t\t[ selectBlock, clientId, setRef ]\n\t);\n\n\t// Attempt to retrieve and prioritize any existing navigation menu unless:\n\t// - the are uncontrolled inner blocks already present in the block.\n\t// - the user is creating a new menu.\n\t// - there are no menus to choose from.\n\t// This attempts to pick the first menu if there is a single Navigation Post. If more\n\t// than 1 exists then use the most recent.\n\t// The aim is for the block to \"just work\" from a user perspective using existing data.\n\tuseEffect( () => {\n\t\tif (\n\t\t\thasUncontrolledInnerBlocks ||\n\t\t\tisCreatingNavigationMenu ||\n\t\t\tref ||\n\t\t\t! fallbackNavigationMenuId\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t/**\n\t\t * This fallback displays (both in editor and on front)\n\t\t * a list of pages only if no menu (user assigned or\n\t\t * automatically picked) is available.\n\t\t * The fallback should not request a save (entity dirty state)\n\t\t * nor to be undoable, hence why it is marked as non persistent\n\t\t */\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetRef( fallbackNavigationMenuId );\n\t}, [\n\t\tref,\n\t\tsetRef,\n\t\tisCreatingNavigationMenu,\n\t\tfallbackNavigationMenuId,\n\t\thasUncontrolledInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\t// If the block has inner blocks, but no menu id, then these blocks are either:\n\t// - inserted via a pattern.\n\t// - inserted directly via Code View (or otherwise).\n\t// - from an older version of navigation block added before the block used a wp_navigation entity.\n\t// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu as an entity when changes are made to the inner blocks.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tref ||\n\t\t\t! hasResolvedClassicMenus ||\n\t\t\t! hasResolvedNavigationMenus ||\n\t\t\tisConvertingClassicMenu ||\n\t\t\tfallbackNavigationMenuId ||\n\t\t\thasUnsavedBlocks ||\n\t\t\t! classicMenus?.length\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there's non fallback navigation menus and\n\t\t// a classic menu with a `primary` location or slug,\n\t\t// then create a new navigation menu based on it.\n\t\t// Otherwise, use the most recently created classic menu.\n\t\tconst primaryMenus = classicMenus.filter(\n\t\t\t( classicMenu ) =>\n\t\t\t\tclassicMenu.locations.includes( 'primary' ) ||\n\t\t\t\tclassicMenu.slug === 'primary'\n\t\t);\n\n\t\tif ( primaryMenus.length ) {\n\t\t\tconvertClassicMenu(\n\t\t\t\tprimaryMenus[ 0 ].id,\n\t\t\t\tprimaryMenus[ 0 ].name,\n\t\t\t\t'publish'\n\t\t\t);\n\t\t} else {\n\t\t\tclassicMenus.sort( ( a, b ) => {\n\t\t\t\treturn b.id - a.id;\n\t\t\t} );\n\t\t\tconvertClassicMenu(\n\t\t\t\tclassicMenus[ 0 ].id,\n\t\t\t\tclassicMenus[ 0 ].name,\n\t\t\t\t'publish'\n\t\t\t);\n\t\t}\n\t}, [\n\t\thasResolvedClassicMenus,\n\t\thasResolvedNavigationMenus,\n\t\thasUnsavedBlocks,\n\t\tclassicMenus,\n\t\tconvertClassicMenu,\n\t\tcreateNavigationMenu,\n\t\tfallbackNavigationMenuId,\n\t\tisConvertingClassicMenu,\n\t\tref,\n\t] );\n\n\tconst navRef = useRef();\n\n\t// The standard HTML5 tag for the block wrapper.\n\tconst TagName = 'nav';\n\n\t// \"placeholder\" shown if:\n\t// - there is no ref attribute pointing to a Navigation Post.\n\t// - there is no classic menu conversion process in progress.\n\t// - there is no menu creation process in progress.\n\t// - there are no uncontrolled blocks.\n\tconst isPlaceholder =\n\t\t! ref &&\n\t\t! isCreatingNavigationMenu &&\n\t\t! isConvertingClassicMenu &&\n\t\thasResolvedNavigationMenus &&\n\t\tclassicMenus?.length === 0 &&\n\t\t! hasUncontrolledInnerBlocks;\n\n\tuseEffect( () => {\n\t\tif ( isPlaceholder ) {\n\t\t\t/**\n\t\t\t * this fallback only displays (both in editor and on front)\n\t\t\t * the list of pages block if no menu is available as a fallback.\n\t\t\t * We don't want the fallback to request a save,\n\t\t\t * nor to be undoable, hence we mark it non persistent.\n\t\t\t */\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\treplaceInnerBlocks( clientId, [ createBlock( 'core/page-list' ) ] );\n\t\t}\n\t}, [\n\t\tclientId,\n\t\tisPlaceholder,\n\t\tref,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t] );\n\n\t// \"loading\" state:\n\t// - there is a menu creation process in progress.\n\t// - there is a classic menu conversion process in progress.\n\t// OR:\n\t// - there is a ref attribute pointing to a Navigation Post\n\t// - the Navigation Post isn't available (hasn't resolved) yet.\n\tconst isLoading =\n\t\t! hasResolvedNavigationMenus ||\n\t\tisCreatingNavigationMenu ||\n\t\tisConvertingClassicMenu ||\n\t\t!! ( ref && ! isEntityAvailable && ! isConvertingClassicMenu );\n\n\tconst textDecoration = attributes.style?.typography?.textDecoration;\n\n\tconst hasBlockOverlay = useBlockOverlayActive( clientId );\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t!! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor?.slug ) ]:\n\t\t\t\t!! backgroundColor?.slug,\n\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\tconst onSelectClassicMenu = async ( classicMenu ) => {\n\t\tconst navMenu = await convertClassicMenu(\n\t\t\tclassicMenu.id,\n\t\t\tclassicMenu.name,\n\t\t\t'draft'\n\t\t);\n\t\tif ( navMenu ) {\n\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst onSelectNavigationMenu = ( menuId ) => {\n\t\thandleUpdateMenu( menuId );\n\t};\n\n\tuseEffect( () => {\n\t\thideNavigationMenuStatusNotice();\n\n\t\tif ( isCreatingNavigationMenu ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuIsSuccess ) {\n\t\t\thandleUpdateMenu( createNavigationMenuPost?.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuIsError ) {\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost?.id,\n\t\tcreateNavigationMenuIsError,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tisCreatingNavigationMenu,\n\t\thandleUpdateMenu,\n\t\thideNavigationMenuStatusNotice,\n\t\tshowNavigationMenuStatusNotice,\n\t] );\n\n\tuseEffect( () => {\n\t\thideClassicMenuConversionNotice();\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu imported successfully.' )\n\t\t\t);\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu import failed.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tclassicMenuConversionStatus,\n\t\tclassicMenuConversionError,\n\t\thideClassicMenuConversionNotice,\n\t\tshowClassicMenuConversionNotice,\n\t] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-submenu\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\n\t\tif ( ! subMenuElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Only detect submenu overlay colors if they have previously been explicitly set.\n\t\t// This avoids the contrast checker from reporting on inherited submenu colors and\n\t\t// showing the contrast warning twice.\n\t\tif ( overlayTextColor.color || overlayBackgroundColor.color ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t}, [\n\t\tenableContrastChecking,\n\t\toverlayTextColor.color,\n\t\toverlayBackgroundColor.color,\n\t] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideNavigationMenuPermissionsNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\tref &&\n\t\t\t\t! navMenuResolvedButMissing &&\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenu &&\n\t\t\t\t! canUserCreateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t\tref,\n\t\thideNavigationMenuPermissionsNotice,\n\t\tshowNavigationMenuPermissionsNotice,\n\t\tnavMenuResolvedButMissing,\n\t] );\n\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenu || canUserUpdateNavigationMenu;\n\tconst isResponsive = 'never' !== overlayMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tconst stylingInspectorControls = (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\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>\n\t\t\t\t\t\t\t\t\t{ hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<OverlayMenuIcon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ close } />\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{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Close' ) }</span>\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</Button>\n\t\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t\t<OverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\t\t\t\t} ), // Make sure arrows are shown when we toggle this on.\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\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\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\tdisabled={ attributes.openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t{ hasColorSettings && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: textColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setTextColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () => setTextColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: backgroundColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setBackgroundColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () => setBackgroundColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: overlayTextColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () => setOverlayTextColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () =>\n\t\t\t\t\t\t\t\t\t\tsetOverlayBackgroundColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t\t\t\tgradients={ [] }\n\t\t\t\t\t\t\tdisableCustomGradients={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst isManageMenusButtonDisabled =\n\t\t! hasManagePermissions || ! hasResolvedNavigationMenus;\n\n\tif ( hasUnsavedBlocks && ! isCreatingNavigationMenu ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t/>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tcreateNavigationMenu={ createNavigationMenu }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t/>\n\t\t\t\t</ResponsiveWrapper>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t/>\n\t\t\t\t<DeletedNavigationWarning\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\t/**\n\t * Historically the navigation block has supported custom placeholders.\n\t * Even though the current UX tries as hard as possible not to\n\t * end up in a placeholder state, the block continues to support\n\t * this extensibility point, via a CustomPlaceholder.\n\t * When CustomPlaceholder is present it becomes the default fallback\n\t * for an empty navigation block, instead of the default fallbacks.\n\t *\n\t */\n\n\tif ( isPlaceholder && CustomPlaceholder ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<PlaceholderComponent\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcanUserCreateNavigationMenu={ canUserCreateNavigationMenu }\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenu={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenu\n\t\t\t\t\t}\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonCreateEmpty={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider uniqueId={ recursionId }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t/>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t\t{ hasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t\t\t\tcanUserUpdateNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasResolvedCanUserDeleteNavigationMenu &&\n\t\t\t\t\t\t\tcanUserDeleteNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\t\t\tonDelete={ ( deletedMenuTitle = '' ) => {\n\t\t\t\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\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\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Navigation menu %s successfully deleted.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tdeletedMenuTitle\n\t\t\t\t\t\t\t\t\t\t\t)\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/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<ManageMenusButton\n\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-manage-menus-button\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t{ isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<div className=\"wp-block-navigation__loading-indicator-container\">\n\t\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\n\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
@@ -60,10 +60,6 @@ const MainContent = _ref => {
60
60
  navigationMenu
61
61
  } = (0, _useNavigationMenu.default)(currentMenuId);
62
62
 
63
- if (currentMenuId && isNavigationMenuMissing) {
64
- return (0, _element.createElement)("p", null, (0, _i18n.__)('Select or create a menu'));
65
- }
66
-
67
63
  if (currentMenuId && isNavigationMenuMissing) {
68
64
  return (0, _element.createElement)(_deletedNavigationWarning.default, {
69
65
  onCreateNew: onCreateNew
@@ -79,6 +75,7 @@ const MainContent = _ref => {
79
75
  (0, _i18n.__)('Structure for navigation menu: %s'), (navigationMenu === null || navigationMenu === void 0 ? void 0 : navigationMenu.title) || (0, _i18n.__)('Untitled menu')) : (0, _i18n.__)('You have not yet created any menus. Displaying a list of your Pages');
80
76
  return (0, _element.createElement)(OffCanvasEditor, {
81
77
  blocks: clientIdsTree,
78
+ parentClientId: clientId,
82
79
  isExpanded: true,
83
80
  LeafMoreMenu: LeafMoreMenu,
84
81
  description: description
@@ -98,7 +95,7 @@ const MenuInspectorControls = props => {
98
95
  return (0, _element.createElement)(_blockEditor.InspectorControls, {
99
96
  group: "list"
100
97
  }, (0, _element.createElement)(_components.PanelBody, {
101
- title: process.env.IS_GUTENBERG_PLUGIN ? null : (0, _i18n.__)('Menu')
98
+ title: null
102
99
  }, (0, _element.createElement)(_components.__experimentalHStack, {
103
100
  className: "wp-block-navigation-off-canvas-editor__header"
104
101
  }, (0, _element.createElement)(_components.__experimentalHeading, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/menu-inspector-controls.js"],"names":["actionLabel","MainContent","clientId","currentMenuId","isLoading","isNavigationMenuMissing","onCreateNew","OffCanvasEditor","LeafMoreMenu","blockEditorPrivateApis","clientIdsTree","select","__unstableGetClientIdsTree","blockEditorStore","navigationMenu","description","title","MenuInspectorControls","props","createNavigationMenuIsSuccess","createNavigationMenuIsError","onSelectClassicMenu","onSelectNavigationMenu","isManageMenusButtonDisabled","process","env","IS_GUTENBERG_PLUGIN"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AAMA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AAvBA;AACA;AACA;;AAeA;AACA;AACA;;AAMA;AACA,MAAMA,WAAW,GAAG,cAAI,gBAAJ,CAApB;;AAEA,MAAMC,WAAW,GAAG,QAMb;AAAA,MANe;AACrBC,IAAAA,QADqB;AAErBC,IAAAA,aAFqB;AAGrBC,IAAAA,SAHqB;AAIrBC,IAAAA,uBAJqB;AAKrBC,IAAAA;AALqB,GAMf;AACN,QAAM;AAAEC,IAAAA,eAAF;AAAmBC,IAAAA;AAAnB,MAAoC,yBAAQC,wBAAR,CAA1C,CADM,CAEN;AACA;;AACA,QAAMC,aAAa,GAAG,qBACnBC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAiCD,MAAM,CAAEE,kBAAF,CAA7C;AACA,WAAOD,0BAA0B,CAAEV,QAAF,CAAjC;AACA,GAJoB,EAKrB,CAAEA,QAAF,CALqB,CAAtB;AAOA,QAAM;AAAEY,IAAAA;AAAF,MAAqB,gCAAmBX,aAAnB,CAA3B;;AAEA,MAAKA,aAAa,IAAIE,uBAAtB,EAAgD;AAC/C,WAAO,uCAAK,cAAI,yBAAJ,CAAL,CAAP;AACA;;AAED,MAAKF,aAAa,IAAIE,uBAAtB,EAAgD;AAC/C,WAAO,4BAAC,iCAAD;AAA0B,MAAA,WAAW,EAAGC;AAAxC,MAAP;AACA;;AAED,MAAKF,SAAL,EAAiB;AAChB,WAAO,4BAAC,mBAAD,OAAP;AACA;;AAED,QAAMW,WAAW,GAAGD,cAAc,GAC/B;AACA;AACA,gBAAI,mCAAJ,CAFA,EAGA,CAAAA,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEE,KAAhB,KAAyB,cAAI,eAAJ,CAHzB,CAD+B,GAM/B,cACA,qEADA,CANH;AASA,SACC,4BAAC,eAAD;AACC,IAAA,MAAM,EAAGN,aADV;AAEC,IAAA,UAAU,EAAG,IAFd;AAGC,IAAA,YAAY,EAAGF,YAHhB;AAIC,IAAA,WAAW,EAAGO;AAJf,IADD;AAQA,CAhDD;;AAkDA,MAAME,qBAAqB,GAAKC,KAAF,IAAa;AAC1C,QAAM;AACLC,IAAAA,6BADK;AAELC,IAAAA,2BAFK;AAGLjB,IAAAA,aAAa,GAAG,IAHX;AAILG,IAAAA,WAJK;AAKLe,IAAAA,mBALK;AAMLC,IAAAA,sBANK;AAOLC,IAAAA;AAPK,MAQFL,KARJ;AAUA,SACC,4BAAC,8BAAD;AAAmB,IAAA,KAAK,EAAC;AAAzB,KACC,4BAAC,qBAAD;AACC,IAAA,KAAK,EAAGM,OAAO,CAACC,GAAR,CAAYC,mBAAZ,GAAkC,IAAlC,GAAyC,cAAI,MAAJ;AADlD,KAGC,4BAAC,gCAAD;AAAQ,IAAA,SAAS,EAAC;AAAlB,KACC,4BAAC,iCAAD;AACC,IAAA,SAAS,EAAC,8CADX;AAEC,IAAA,KAAK,EAAG;AAFT,KAIG,cAAI,MAAJ,CAJH,CADD,EAOC,4BAAC,+BAAD;AACC,IAAA,aAAa,EAAGvB,aADjB;AAEC,IAAA,mBAAmB,EAAGkB,mBAFvB;AAGC,IAAA,sBAAsB,EAAGC,sBAH1B;AAIC,IAAA,WAAW,EAAGhB,WAJf;AAKC,IAAA,6BAA6B,EAC5Ba,6BANF;AAQC,IAAA,2BAA2B,EAC1BC,2BATF;AAWC,IAAA,WAAW,EAAGpB,WAXf;AAYC,IAAA,2BAA2B,EAC1BuB;AAbF,IAPD,CAHD,EA2BC,4BAAC,WAAD,EAAkBL,KAAlB,CA3BD,CADD,CADD;AAiCA,CA5CD;;eA8CeD,qB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\tSpinner,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport { unlock } from '../../private-apis';\nimport DeletedNavigationWarning from './deleted-navigation-warning';\nimport useNavigationMenu from '../use-navigation-menu';\n\n/* translators: %s: The name of a menu. */\nconst actionLabel = __( \"Switch to '%s'\" );\n\nconst MainContent = ( {\n\tclientId,\n\tcurrentMenuId,\n\tisLoading,\n\tisNavigationMenuMissing,\n\tonCreateNew,\n} ) => {\n\tconst { OffCanvasEditor, LeafMoreMenu } = unlock( blockEditorPrivateApis );\n\t// Provide a hierarchy of clientIds for the given Navigation block (clientId).\n\t// This is required else the list view will display the entire block tree.\n\tconst clientIdsTree = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __unstableGetClientIdsTree } = select( blockEditorStore );\n\t\t\treturn __unstableGetClientIdsTree( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { navigationMenu } = useNavigationMenu( currentMenuId );\n\n\tif ( currentMenuId && isNavigationMenuMissing ) {\n\t\treturn <p>{ __( 'Select or create a menu' ) }</p>;\n\t}\n\n\tif ( currentMenuId && isNavigationMenuMissing ) {\n\t\treturn <DeletedNavigationWarning onCreateNew={ onCreateNew } />;\n\t}\n\n\tif ( isLoading ) {\n\t\treturn <Spinner />;\n\t}\n\n\tconst description = navigationMenu\n\t\t? sprintf(\n\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t__( 'Structure for navigation menu: %s' ),\n\t\t\t\tnavigationMenu?.title || __( 'Untitled menu' )\n\t\t )\n\t\t: __(\n\t\t\t\t'You have not yet created any menus. Displaying a list of your Pages'\n\t\t );\n\treturn (\n\t\t<OffCanvasEditor\n\t\t\tblocks={ clientIdsTree }\n\t\t\tisExpanded={ true }\n\t\t\tLeafMoreMenu={ LeafMoreMenu }\n\t\t\tdescription={ description }\n\t\t/>\n\t);\n};\n\nconst MenuInspectorControls = ( props ) => {\n\tconst {\n\t\tcreateNavigationMenuIsSuccess,\n\t\tcreateNavigationMenuIsError,\n\t\tcurrentMenuId = null,\n\t\tonCreateNew,\n\t\tonSelectClassicMenu,\n\t\tonSelectNavigationMenu,\n\t\tisManageMenusButtonDisabled,\n\t} = props;\n\n\treturn (\n\t\t<InspectorControls group=\"list\">\n\t\t\t<PanelBody\n\t\t\t\ttitle={ process.env.IS_GUTENBERG_PLUGIN ? null : __( 'Menu' ) }\n\t\t\t>\n\t\t\t\t<HStack className=\"wp-block-navigation-off-canvas-editor__header\">\n\t\t\t\t\t<Heading\n\t\t\t\t\t\tclassName=\"wp-block-navigation-off-canvas-editor__title\"\n\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Menu' ) }\n\t\t\t\t\t</Heading>\n\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\tcurrentMenuId={ currentMenuId }\n\t\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\t\tonCreateNew={ onCreateNew }\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcreateNavigationMenuIsError={\n\t\t\t\t\t\t\tcreateNavigationMenuIsError\n\t\t\t\t\t\t}\n\t\t\t\t\t\tactionLabel={ actionLabel }\n\t\t\t\t\t\tisManageMenusButtonDisabled={\n\t\t\t\t\t\t\tisManageMenusButtonDisabled\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t\t<MainContent { ...props } />\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n};\n\nexport default MenuInspectorControls;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/menu-inspector-controls.js"],"names":["actionLabel","MainContent","clientId","currentMenuId","isLoading","isNavigationMenuMissing","onCreateNew","OffCanvasEditor","LeafMoreMenu","blockEditorPrivateApis","clientIdsTree","select","__unstableGetClientIdsTree","blockEditorStore","navigationMenu","description","title","MenuInspectorControls","props","createNavigationMenuIsSuccess","createNavigationMenuIsError","onSelectClassicMenu","onSelectNavigationMenu","isManageMenusButtonDisabled"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AAMA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AAvBA;AACA;AACA;;AAeA;AACA;AACA;;AAMA;AACA,MAAMA,WAAW,GAAG,cAAI,gBAAJ,CAApB;;AAEA,MAAMC,WAAW,GAAG,QAMb;AAAA,MANe;AACrBC,IAAAA,QADqB;AAErBC,IAAAA,aAFqB;AAGrBC,IAAAA,SAHqB;AAIrBC,IAAAA,uBAJqB;AAKrBC,IAAAA;AALqB,GAMf;AACN,QAAM;AAAEC,IAAAA,eAAF;AAAmBC,IAAAA;AAAnB,MAAoC,yBAAQC,wBAAR,CAA1C,CADM,CAEN;AACA;;AACA,QAAMC,aAAa,GAAG,qBACnBC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAiCD,MAAM,CAAEE,kBAAF,CAA7C;AACA,WAAOD,0BAA0B,CAAEV,QAAF,CAAjC;AACA,GAJoB,EAKrB,CAAEA,QAAF,CALqB,CAAtB;AAOA,QAAM;AAAEY,IAAAA;AAAF,MAAqB,gCAAmBX,aAAnB,CAA3B;;AAEA,MAAKA,aAAa,IAAIE,uBAAtB,EAAgD;AAC/C,WAAO,4BAAC,iCAAD;AAA0B,MAAA,WAAW,EAAGC;AAAxC,MAAP;AACA;;AAED,MAAKF,SAAL,EAAiB;AAChB,WAAO,4BAAC,mBAAD,OAAP;AACA;;AAED,QAAMW,WAAW,GAAGD,cAAc,GAC/B;AACA;AACA,gBAAI,mCAAJ,CAFA,EAGA,CAAAA,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEE,KAAhB,KAAyB,cAAI,eAAJ,CAHzB,CAD+B,GAM/B,cACA,qEADA,CANH;AASA,SACC,4BAAC,eAAD;AACC,IAAA,MAAM,EAAGN,aADV;AAEC,IAAA,cAAc,EAAGR,QAFlB;AAGC,IAAA,UAAU,EAAG,IAHd;AAIC,IAAA,YAAY,EAAGM,YAJhB;AAKC,IAAA,WAAW,EAAGO;AALf,IADD;AASA,CA7CD;;AA+CA,MAAME,qBAAqB,GAAKC,KAAF,IAAa;AAC1C,QAAM;AACLC,IAAAA,6BADK;AAELC,IAAAA,2BAFK;AAGLjB,IAAAA,aAAa,GAAG,IAHX;AAILG,IAAAA,WAJK;AAKLe,IAAAA,mBALK;AAMLC,IAAAA,sBANK;AAOLC,IAAAA;AAPK,MAQFL,KARJ;AAUA,SACC,4BAAC,8BAAD;AAAmB,IAAA,KAAK,EAAC;AAAzB,KACC,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG;AAAnB,KACC,4BAAC,gCAAD;AAAQ,IAAA,SAAS,EAAC;AAAlB,KACC,4BAAC,iCAAD;AACC,IAAA,SAAS,EAAC,8CADX;AAEC,IAAA,KAAK,EAAG;AAFT,KAIG,cAAI,MAAJ,CAJH,CADD,EAOC,4BAAC,+BAAD;AACC,IAAA,aAAa,EAAGf,aADjB;AAEC,IAAA,mBAAmB,EAAGkB,mBAFvB;AAGC,IAAA,sBAAsB,EAAGC,sBAH1B;AAIC,IAAA,WAAW,EAAGhB,WAJf;AAKC,IAAA,6BAA6B,EAC5Ba,6BANF;AAQC,IAAA,2BAA2B,EAC1BC,2BATF;AAWC,IAAA,WAAW,EAAGpB,WAXf;AAYC,IAAA,2BAA2B,EAC1BuB;AAbF,IAPD,CADD,EAyBC,4BAAC,WAAD,EAAkBL,KAAlB,CAzBD,CADD,CADD;AA+BA,CA1CD;;eA4CeD,qB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\tSpinner,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport { unlock } from '../../private-apis';\nimport DeletedNavigationWarning from './deleted-navigation-warning';\nimport useNavigationMenu from '../use-navigation-menu';\n\n/* translators: %s: The name of a menu. */\nconst actionLabel = __( \"Switch to '%s'\" );\n\nconst MainContent = ( {\n\tclientId,\n\tcurrentMenuId,\n\tisLoading,\n\tisNavigationMenuMissing,\n\tonCreateNew,\n} ) => {\n\tconst { OffCanvasEditor, LeafMoreMenu } = unlock( blockEditorPrivateApis );\n\t// Provide a hierarchy of clientIds for the given Navigation block (clientId).\n\t// This is required else the list view will display the entire block tree.\n\tconst clientIdsTree = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __unstableGetClientIdsTree } = select( blockEditorStore );\n\t\t\treturn __unstableGetClientIdsTree( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { navigationMenu } = useNavigationMenu( currentMenuId );\n\n\tif ( currentMenuId && isNavigationMenuMissing ) {\n\t\treturn <DeletedNavigationWarning onCreateNew={ onCreateNew } />;\n\t}\n\n\tif ( isLoading ) {\n\t\treturn <Spinner />;\n\t}\n\n\tconst description = navigationMenu\n\t\t? sprintf(\n\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t__( 'Structure for navigation menu: %s' ),\n\t\t\t\tnavigationMenu?.title || __( 'Untitled menu' )\n\t\t )\n\t\t: __(\n\t\t\t\t'You have not yet created any menus. Displaying a list of your Pages'\n\t\t );\n\treturn (\n\t\t<OffCanvasEditor\n\t\t\tblocks={ clientIdsTree }\n\t\t\tparentClientId={ clientId }\n\t\t\tisExpanded={ true }\n\t\t\tLeafMoreMenu={ LeafMoreMenu }\n\t\t\tdescription={ description }\n\t\t/>\n\t);\n};\n\nconst MenuInspectorControls = ( props ) => {\n\tconst {\n\t\tcreateNavigationMenuIsSuccess,\n\t\tcreateNavigationMenuIsError,\n\t\tcurrentMenuId = null,\n\t\tonCreateNew,\n\t\tonSelectClassicMenu,\n\t\tonSelectNavigationMenu,\n\t\tisManageMenusButtonDisabled,\n\t} = props;\n\n\treturn (\n\t\t<InspectorControls group=\"list\">\n\t\t\t<PanelBody title={ null }>\n\t\t\t\t<HStack className=\"wp-block-navigation-off-canvas-editor__header\">\n\t\t\t\t\t<Heading\n\t\t\t\t\t\tclassName=\"wp-block-navigation-off-canvas-editor__title\"\n\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Menu' ) }\n\t\t\t\t\t</Heading>\n\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\tcurrentMenuId={ currentMenuId }\n\t\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\t\tonCreateNew={ onCreateNew }\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcreateNavigationMenuIsError={\n\t\t\t\t\t\t\tcreateNavigationMenuIsError\n\t\t\t\t\t\t}\n\t\t\t\t\t\tactionLabel={ actionLabel }\n\t\t\t\t\t\tisManageMenusButtonDisabled={\n\t\t\t\t\t\t\tisManageMenusButtonDisabled\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t\t<MainContent { ...props } />\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n};\n\nexport default MenuInspectorControls;\n"]}