@wordpress/block-library 7.19.0 → 8.1.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 (862) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/build/audio/edit.native.js +1 -3
  3. package/build/audio/edit.native.js.map +1 -1
  4. package/build/audio/index.js +2 -1
  5. package/build/audio/index.js.map +1 -1
  6. package/build/avatar/edit.js +1 -0
  7. package/build/avatar/edit.js.map +1 -1
  8. package/build/avatar/user-control.js +1 -0
  9. package/build/avatar/user-control.js.map +1 -1
  10. package/build/block/edit.js +14 -2
  11. package/build/block/edit.js.map +1 -1
  12. package/build/block/edit.native.js +14 -6
  13. package/build/block/edit.native.js.map +1 -1
  14. package/build/block/index.js +1 -2
  15. package/build/block/index.js.map +1 -1
  16. package/build/button/edit.native.js.map +1 -1
  17. package/build/categories/edit.js +1 -1
  18. package/build/categories/edit.js.map +1 -1
  19. package/build/code/transforms.js +1 -1
  20. package/build/code/transforms.js.map +1 -1
  21. package/build/columns/edit.js +1 -0
  22. package/build/columns/edit.js.map +1 -1
  23. package/build/columns/edit.native.js +13 -30
  24. package/build/columns/edit.native.js.map +1 -1
  25. package/build/comment-author-avatar/edit.js +1 -0
  26. package/build/comment-author-avatar/edit.js.map +1 -1
  27. package/build/cover/edit/inspector-controls.js +3 -1
  28. package/build/cover/edit/inspector-controls.js.map +1 -1
  29. package/build/cover/edit.native.js +24 -16
  30. package/build/cover/edit.native.js.map +1 -1
  31. package/build/embed/embed-controls.native.js +1 -0
  32. package/build/embed/embed-controls.native.js.map +1 -1
  33. package/build/embed/embed-preview.native.js +1 -3
  34. package/build/embed/embed-preview.native.js.map +1 -1
  35. package/build/file/inspector.js +1 -0
  36. package/build/file/inspector.js.map +1 -1
  37. package/build/freeform/edit.js +21 -6
  38. package/build/freeform/edit.js.map +1 -1
  39. package/build/freeform/modal.js +97 -0
  40. package/build/freeform/modal.js.map +1 -0
  41. package/build/gallery/edit.js +38 -15
  42. package/build/gallery/edit.js.map +1 -1
  43. package/build/gallery/gallery.js +2 -16
  44. package/build/gallery/gallery.js.map +1 -1
  45. package/build/gallery/gallery.native.js +1 -3
  46. package/build/gallery/gallery.native.js.map +1 -1
  47. package/build/gallery/shared.js +4 -10
  48. package/build/gallery/shared.js.map +1 -1
  49. package/build/gallery/transforms.js +1 -7
  50. package/build/gallery/transforms.js.map +1 -1
  51. package/build/gallery/use-get-media.js +1 -1
  52. package/build/gallery/use-get-media.js.map +1 -1
  53. package/build/gallery/use-get-media.native.js +3 -1
  54. package/build/gallery/use-get-media.native.js.map +1 -1
  55. package/build/gallery/v1/edit.js +22 -15
  56. package/build/gallery/v1/edit.js.map +1 -1
  57. package/build/gallery/v1/gallery.native.js +1 -3
  58. package/build/gallery/v1/gallery.native.js.map +1 -1
  59. package/build/gallery/v1/shared.js +4 -1
  60. package/build/gallery/v1/shared.js.map +1 -1
  61. package/build/group/edit.js +1 -2
  62. package/build/group/edit.js.map +1 -1
  63. package/build/group/index.js +3 -1
  64. package/build/group/index.js.map +1 -1
  65. package/build/group/placeholder.js +5 -26
  66. package/build/group/placeholder.js.map +1 -1
  67. package/build/heading/deprecated.js +152 -69
  68. package/build/heading/deprecated.js.map +1 -1
  69. package/build/heading/index.js +1 -2
  70. package/build/heading/index.js.map +1 -1
  71. package/build/heading/transforms.js +1 -2
  72. package/build/heading/transforms.js.map +1 -1
  73. package/build/html/index.js +1 -1
  74. package/build/image/edit.js +8 -5
  75. package/build/image/edit.js.map +1 -1
  76. package/build/image/edit.native.js +3 -2
  77. package/build/image/edit.native.js.map +1 -1
  78. package/build/image/image.js +13 -8
  79. package/build/image/image.js.map +1 -1
  80. package/build/index.js +3 -1
  81. package/build/index.js.map +1 -1
  82. package/build/latest-comments/edit.js +1 -0
  83. package/build/latest-comments/edit.js.map +1 -1
  84. package/build/latest-posts/edit.js +2 -0
  85. package/build/latest-posts/edit.js.map +1 -1
  86. package/build/list/transforms.js +1 -9
  87. package/build/list/transforms.js.map +1 -1
  88. package/build/list/utils.js +5 -2
  89. package/build/list/utils.js.map +1 -1
  90. package/build/list-item/index.js +4 -1
  91. package/build/list-item/index.js.map +1 -1
  92. package/build/list-item/transforms.js +22 -0
  93. package/build/list-item/transforms.js.map +1 -0
  94. package/build/list-item/utils.js +77 -1
  95. package/build/list-item/utils.js.map +1 -1
  96. package/build/media-text/edit.js +5 -2
  97. package/build/media-text/edit.js.map +1 -1
  98. package/build/missing/edit.native.js +2 -2
  99. package/build/missing/edit.native.js.map +1 -1
  100. package/build/navigation/edit/are-blocks-dirty.js +52 -0
  101. package/build/navigation/edit/are-blocks-dirty.js.map +1 -0
  102. package/build/navigation/edit/index.js +95 -117
  103. package/build/navigation/edit/index.js.map +1 -1
  104. package/build/navigation/edit/menu-inspector-controls.js +94 -0
  105. package/build/navigation/edit/menu-inspector-controls.js.map +1 -0
  106. package/build/navigation/edit/navigation-menu-selector.js +2 -4
  107. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  108. package/build/navigation/edit/unsaved-inner-blocks.js +11 -7
  109. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  110. package/build/navigation/edit/utils.js +81 -0
  111. package/build/navigation/edit/utils.js.map +1 -1
  112. package/build/navigation/view-modal.js +6 -2
  113. package/build/navigation/view-modal.js.map +1 -1
  114. package/build/navigation-link/edit.js +46 -356
  115. package/build/navigation-link/edit.js.map +1 -1
  116. package/build/navigation-link/link-ui.js +222 -0
  117. package/build/navigation-link/link-ui.js.map +1 -0
  118. package/build/navigation-link/transforms.js +12 -0
  119. package/build/navigation-link/transforms.js.map +1 -1
  120. package/build/navigation-link/update-attributes.js +108 -0
  121. package/build/navigation-link/update-attributes.js.map +1 -0
  122. package/build/navigation-submenu/edit.js +49 -245
  123. package/build/navigation-submenu/edit.js.map +1 -1
  124. package/build/page-list/constants.js +15 -0
  125. package/build/page-list/constants.js.map +1 -0
  126. package/build/page-list/convert-to-links-modal.js +22 -86
  127. package/build/page-list/convert-to-links-modal.js.map +1 -1
  128. package/build/page-list/convert-to-navigation-links.js +76 -0
  129. package/build/page-list/convert-to-navigation-links.js.map +1 -0
  130. package/build/page-list/edit.js +143 -78
  131. package/build/page-list/edit.js.map +1 -1
  132. package/build/page-list/index.js +35 -3
  133. package/build/page-list/index.js.map +1 -1
  134. package/build/page-list-item/edit.js +91 -0
  135. package/build/page-list-item/edit.js.map +1 -0
  136. package/build/page-list-item/index.js +85 -0
  137. package/build/page-list-item/index.js.map +1 -0
  138. package/build/page-list-item/init.js +16 -0
  139. package/build/page-list-item/init.js.map +1 -0
  140. package/build/paragraph/index.js +1 -7
  141. package/build/paragraph/index.js.map +1 -1
  142. package/build/post-author/edit.js +3 -2
  143. package/build/post-author/edit.js.map +1 -1
  144. package/build/post-featured-image/overlay.js +1 -1
  145. package/build/post-featured-image/overlay.js.map +1 -1
  146. package/build/post-template/index.js +8 -0
  147. package/build/post-template/index.js.map +1 -1
  148. package/build/preformatted/transforms.js +3 -1
  149. package/build/preformatted/transforms.js.map +1 -1
  150. package/build/query/deprecated.js +192 -21
  151. package/build/query/deprecated.js.map +1 -1
  152. package/build/query/edit/index.js +2 -1
  153. package/build/query/edit/index.js.map +1 -1
  154. package/build/query/edit/inspector-controls/index.js +11 -5
  155. package/build/query/edit/inspector-controls/index.js.map +1 -1
  156. package/build/query/edit/inspector-controls/taxonomy-controls.js +101 -37
  157. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  158. package/build/query/edit/query-content.js +2 -3
  159. package/build/query/edit/query-content.js.map +1 -1
  160. package/build/query/edit/query-placeholder.js +16 -27
  161. package/build/query/edit/query-placeholder.js.map +1 -1
  162. package/build/query/index.js +0 -8
  163. package/build/query/index.js.map +1 -1
  164. package/build/query/utils.js +73 -9
  165. package/build/query/utils.js.map +1 -1
  166. package/build/rss/edit.js +3 -0
  167. package/build/rss/edit.js.map +1 -1
  168. package/build/search/edit.js +2 -2
  169. package/build/search/edit.js.map +1 -1
  170. package/build/search/edit.native.js +22 -22
  171. package/build/search/edit.native.js.map +1 -1
  172. package/build/search/index.js +9 -1
  173. package/build/search/index.js.map +1 -1
  174. package/build/site-logo/edit.js +17 -9
  175. package/build/site-logo/edit.js.map +1 -1
  176. package/build/site-logo/index.js +1 -0
  177. package/build/site-logo/index.js.map +1 -1
  178. package/build/site-title/index.js +1 -0
  179. package/build/site-title/index.js.map +1 -1
  180. package/build/social-link/edit.js.map +1 -1
  181. package/build/social-link/social-list.js +4 -12
  182. package/build/social-link/social-list.js.map +1 -1
  183. package/build/social-links/edit.js +0 -1
  184. package/build/social-links/edit.js.map +1 -1
  185. package/build/table/edit.js +3 -1
  186. package/build/table/edit.js.map +1 -1
  187. package/build/table/index.js +17 -1
  188. package/build/table/index.js.map +1 -1
  189. package/build/table/save.js +4 -2
  190. package/build/table/save.js.map +1 -1
  191. package/build/table/state.js +24 -12
  192. package/build/table/state.js.map +1 -1
  193. package/build/table/transforms.js +3 -2
  194. package/build/table/transforms.js.map +1 -1
  195. package/build/table-of-contents/edit.js +3 -3
  196. package/build/table-of-contents/edit.js.map +1 -1
  197. package/build/tag-cloud/edit.js +2 -1
  198. package/build/tag-cloud/edit.js.map +1 -1
  199. package/build/template-part/edit/advanced-controls.js +11 -1
  200. package/build/template-part/edit/advanced-controls.js.map +1 -1
  201. package/build/template-part/edit/import-controls.js +160 -0
  202. package/build/template-part/edit/import-controls.js.map +1 -0
  203. package/build/template-part/edit/index.js +2 -1
  204. package/build/template-part/edit/index.js.map +1 -1
  205. package/build/template-part/edit/selection-modal.js +5 -2
  206. package/build/template-part/edit/selection-modal.js.map +1 -1
  207. package/build/template-part/edit/utils/hooks.js +2 -6
  208. package/build/template-part/edit/utils/hooks.js.map +1 -1
  209. package/build/template-part/edit/utils/transformers.js +48 -0
  210. package/build/template-part/edit/utils/transformers.js.map +1 -0
  211. package/build/text-columns/edit.js +1 -0
  212. package/build/text-columns/edit.js.map +1 -1
  213. package/build/utils/transformation-categories.native.js +1 -1
  214. package/build/utils/transformation-categories.native.js.map +1 -1
  215. package/build/video/edit.js +1 -1
  216. package/build/video/edit.js.map +1 -1
  217. package/build/video/edit.native.js +1 -3
  218. package/build/video/edit.native.js.map +1 -1
  219. package/build-module/audio/edit.native.js +1 -2
  220. package/build-module/audio/edit.native.js.map +1 -1
  221. package/build-module/audio/index.js +2 -1
  222. package/build-module/audio/index.js.map +1 -1
  223. package/build-module/avatar/edit.js +1 -0
  224. package/build-module/avatar/edit.js.map +1 -1
  225. package/build-module/avatar/user-control.js +1 -0
  226. package/build-module/avatar/user-control.js.map +1 -1
  227. package/build-module/block/edit.js +14 -2
  228. package/build-module/block/edit.js.map +1 -1
  229. package/build-module/block/edit.native.js +14 -6
  230. package/build-module/block/edit.native.js.map +1 -1
  231. package/build-module/block/index.js +1 -2
  232. package/build-module/block/index.js.map +1 -1
  233. package/build-module/button/edit.native.js +2 -1
  234. package/build-module/button/edit.native.js.map +1 -1
  235. package/build-module/categories/edit.js +1 -1
  236. package/build-module/categories/edit.js.map +1 -1
  237. package/build-module/code/transforms.js +1 -1
  238. package/build-module/code/transforms.js.map +1 -1
  239. package/build-module/columns/edit.js +1 -0
  240. package/build-module/columns/edit.js.map +1 -1
  241. package/build-module/columns/edit.native.js +13 -29
  242. package/build-module/columns/edit.native.js.map +1 -1
  243. package/build-module/comment-author-avatar/edit.js +1 -0
  244. package/build-module/comment-author-avatar/edit.js.map +1 -1
  245. package/build-module/cover/edit/inspector-controls.js +5 -3
  246. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  247. package/build-module/cover/edit.native.js +22 -14
  248. package/build-module/cover/edit.native.js.map +1 -1
  249. package/build-module/embed/embed-controls.native.js +2 -1
  250. package/build-module/embed/embed-controls.native.js.map +1 -1
  251. package/build-module/embed/embed-preview.native.js +1 -2
  252. package/build-module/embed/embed-preview.native.js.map +1 -1
  253. package/build-module/file/inspector.js +1 -0
  254. package/build-module/file/inspector.js.map +1 -1
  255. package/build-module/freeform/edit.js +22 -8
  256. package/build-module/freeform/edit.js.map +1 -1
  257. package/build-module/freeform/modal.js +90 -0
  258. package/build-module/freeform/modal.js.map +1 -0
  259. package/build-module/gallery/edit.js +39 -15
  260. package/build-module/gallery/edit.js.map +1 -1
  261. package/build-module/gallery/gallery.js +3 -16
  262. package/build-module/gallery/gallery.js.map +1 -1
  263. package/build-module/gallery/gallery.native.js +1 -2
  264. package/build-module/gallery/gallery.native.js.map +1 -1
  265. package/build-module/gallery/shared.js +5 -11
  266. package/build-module/gallery/shared.js.map +1 -1
  267. package/build-module/gallery/transforms.js +1 -6
  268. package/build-module/gallery/transforms.js.map +1 -1
  269. package/build-module/gallery/use-get-media.js +1 -1
  270. package/build-module/gallery/use-get-media.js.map +1 -1
  271. package/build-module/gallery/use-get-media.native.js +3 -1
  272. package/build-module/gallery/use-get-media.native.js.map +1 -1
  273. package/build-module/gallery/v1/edit.js +23 -16
  274. package/build-module/gallery/v1/edit.js.map +1 -1
  275. package/build-module/gallery/v1/gallery.native.js +1 -2
  276. package/build-module/gallery/v1/gallery.native.js.map +1 -1
  277. package/build-module/gallery/v1/shared.js +5 -2
  278. package/build-module/gallery/v1/shared.js.map +1 -1
  279. package/build-module/group/edit.js +1 -3
  280. package/build-module/group/edit.js.map +1 -1
  281. package/build-module/group/index.js +3 -1
  282. package/build-module/group/index.js.map +1 -1
  283. package/build-module/group/placeholder.js +5 -26
  284. package/build-module/group/placeholder.js.map +1 -1
  285. package/build-module/heading/deprecated.js +152 -69
  286. package/build-module/heading/deprecated.js.map +1 -1
  287. package/build-module/heading/index.js +1 -2
  288. package/build-module/heading/index.js.map +1 -1
  289. package/build-module/heading/transforms.js +1 -2
  290. package/build-module/heading/transforms.js.map +1 -1
  291. package/build-module/html/index.js +1 -1
  292. package/build-module/image/edit.js +9 -6
  293. package/build-module/image/edit.js.map +1 -1
  294. package/build-module/image/edit.native.js +2 -1
  295. package/build-module/image/edit.native.js.map +1 -1
  296. package/build-module/image/image.js +14 -9
  297. package/build-module/image/image.js.map +1 -1
  298. package/build-module/index.js +2 -1
  299. package/build-module/index.js.map +1 -1
  300. package/build-module/latest-comments/edit.js +1 -0
  301. package/build-module/latest-comments/edit.js.map +1 -1
  302. package/build-module/latest-posts/edit.js +2 -0
  303. package/build-module/latest-posts/edit.js.map +1 -1
  304. package/build-module/list/transforms.js +1 -9
  305. package/build-module/list/transforms.js.map +1 -1
  306. package/build-module/list/utils.js +5 -2
  307. package/build-module/list/utils.js.map +1 -1
  308. package/build-module/list-item/index.js +3 -1
  309. package/build-module/list-item/index.js.map +1 -1
  310. package/build-module/list-item/transforms.js +13 -0
  311. package/build-module/list-item/transforms.js.map +1 -0
  312. package/build-module/list-item/utils.js +78 -1
  313. package/build-module/list-item/utils.js.map +1 -1
  314. package/build-module/media-text/edit.js +6 -3
  315. package/build-module/media-text/edit.js.map +1 -1
  316. package/build-module/missing/edit.native.js +2 -2
  317. package/build-module/missing/edit.native.js.map +1 -1
  318. package/build-module/navigation/edit/are-blocks-dirty.js +44 -0
  319. package/build-module/navigation/edit/are-blocks-dirty.js.map +1 -0
  320. package/build-module/navigation/edit/index.js +95 -118
  321. package/build-module/navigation/edit/index.js.map +1 -1
  322. package/build-module/navigation/edit/menu-inspector-controls.js +80 -0
  323. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -0
  324. package/build-module/navigation/edit/navigation-menu-selector.js +2 -4
  325. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  326. package/build-module/navigation/edit/unsaved-inner-blocks.js +9 -6
  327. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  328. package/build-module/navigation/edit/utils.js +75 -0
  329. package/build-module/navigation/edit/utils.js.map +1 -1
  330. package/build-module/navigation/view-modal.js +6 -2
  331. package/build-module/navigation/view-modal.js.map +1 -1
  332. package/build-module/navigation-link/edit.js +49 -357
  333. package/build-module/navigation-link/edit.js.map +1 -1
  334. package/build-module/navigation-link/link-ui.js +206 -0
  335. package/build-module/navigation-link/link-ui.js.map +1 -0
  336. package/build-module/navigation-link/transforms.js +12 -0
  337. package/build-module/navigation-link/transforms.js.map +1 -1
  338. package/build-module/navigation-link/update-attributes.js +97 -0
  339. package/build-module/navigation-link/update-attributes.js.map +1 -0
  340. package/build-module/navigation-submenu/edit.js +52 -246
  341. package/build-module/navigation-submenu/edit.js.map +1 -1
  342. package/build-module/page-list/constants.js +6 -0
  343. package/build-module/page-list/constants.js.map +1 -0
  344. package/build-module/page-list/convert-to-links-modal.js +20 -81
  345. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  346. package/build-module/page-list/convert-to-navigation-links.js +66 -0
  347. package/build-module/page-list/convert-to-navigation-links.js.map +1 -0
  348. package/build-module/page-list/edit.js +146 -82
  349. package/build-module/page-list/edit.js.map +1 -1
  350. package/build-module/page-list/index.js +36 -4
  351. package/build-module/page-list/index.js.map +1 -1
  352. package/build-module/page-list-item/edit.js +77 -0
  353. package/build-module/page-list-item/edit.js.map +1 -0
  354. package/build-module/page-list-item/index.js +68 -0
  355. package/build-module/page-list-item/index.js.map +1 -0
  356. package/build-module/page-list-item/init.js +6 -0
  357. package/build-module/page-list-item/init.js.map +1 -0
  358. package/build-module/paragraph/index.js +1 -7
  359. package/build-module/paragraph/index.js.map +1 -1
  360. package/build-module/post-author/edit.js +3 -2
  361. package/build-module/post-author/edit.js.map +1 -1
  362. package/build-module/post-featured-image/overlay.js +1 -1
  363. package/build-module/post-featured-image/overlay.js.map +1 -1
  364. package/build-module/post-template/index.js +8 -0
  365. package/build-module/post-template/index.js.map +1 -1
  366. package/build-module/preformatted/transforms.js +3 -1
  367. package/build-module/preformatted/transforms.js.map +1 -1
  368. package/build-module/query/deprecated.js +185 -21
  369. package/build-module/query/deprecated.js.map +1 -1
  370. package/build-module/query/edit/index.js +2 -1
  371. package/build-module/query/edit/index.js.map +1 -1
  372. package/build-module/query/edit/inspector-controls/index.js +11 -5
  373. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  374. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +99 -35
  375. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  376. package/build-module/query/edit/query-content.js +1 -1
  377. package/build-module/query/edit/query-content.js.map +1 -1
  378. package/build-module/query/edit/query-placeholder.js +15 -27
  379. package/build-module/query/edit/query-placeholder.js.map +1 -1
  380. package/build-module/query/index.js +0 -8
  381. package/build-module/query/index.js.map +1 -1
  382. package/build-module/query/utils.js +69 -8
  383. package/build-module/query/utils.js.map +1 -1
  384. package/build-module/rss/edit.js +3 -0
  385. package/build-module/rss/edit.js.map +1 -1
  386. package/build-module/search/edit.js +2 -2
  387. package/build-module/search/edit.js.map +1 -1
  388. package/build-module/search/edit.native.js +20 -20
  389. package/build-module/search/edit.native.js.map +1 -1
  390. package/build-module/search/index.js +8 -1
  391. package/build-module/search/index.js.map +1 -1
  392. package/build-module/site-logo/edit.js +17 -8
  393. package/build-module/site-logo/edit.js.map +1 -1
  394. package/build-module/site-logo/index.js +1 -0
  395. package/build-module/site-logo/index.js.map +1 -1
  396. package/build-module/site-title/index.js +1 -0
  397. package/build-module/site-title/index.js.map +1 -1
  398. package/build-module/social-link/edit.js +2 -2
  399. package/build-module/social-link/edit.js.map +1 -1
  400. package/build-module/social-link/social-list.js +2 -11
  401. package/build-module/social-link/social-list.js.map +1 -1
  402. package/build-module/social-links/edit.js +0 -1
  403. package/build-module/social-links/edit.js.map +1 -1
  404. package/build-module/table/edit.js +3 -1
  405. package/build-module/table/edit.js.map +1 -1
  406. package/build-module/table/index.js +17 -1
  407. package/build-module/table/index.js.map +1 -1
  408. package/build-module/table/save.js +4 -2
  409. package/build-module/table/save.js.map +1 -1
  410. package/build-module/table/state.js +25 -13
  411. package/build-module/table/state.js.map +1 -1
  412. package/build-module/table/transforms.js +3 -2
  413. package/build-module/table/transforms.js.map +1 -1
  414. package/build-module/table-of-contents/edit.js +3 -3
  415. package/build-module/table-of-contents/edit.js.map +1 -1
  416. package/build-module/tag-cloud/edit.js +3 -2
  417. package/build-module/tag-cloud/edit.js.map +1 -1
  418. package/build-module/template-part/edit/advanced-controls.js +10 -1
  419. package/build-module/template-part/edit/advanced-controls.js.map +1 -1
  420. package/build-module/template-part/edit/import-controls.js +146 -0
  421. package/build-module/template-part/edit/import-controls.js.map +1 -0
  422. package/build-module/template-part/edit/index.js +2 -1
  423. package/build-module/template-part/edit/index.js.map +1 -1
  424. package/build-module/template-part/edit/selection-modal.js +6 -3
  425. package/build-module/template-part/edit/selection-modal.js.map +1 -1
  426. package/build-module/template-part/edit/utils/hooks.js +3 -7
  427. package/build-module/template-part/edit/utils/hooks.js.map +1 -1
  428. package/build-module/template-part/edit/utils/transformers.js +40 -0
  429. package/build-module/template-part/edit/utils/transformers.js.map +1 -0
  430. package/build-module/text-columns/edit.js +1 -0
  431. package/build-module/text-columns/edit.js.map +1 -1
  432. package/build-module/utils/transformation-categories.native.js +1 -1
  433. package/build-module/utils/transformation-categories.native.js.map +1 -1
  434. package/build-module/video/edit.js +1 -1
  435. package/build-module/video/edit.js.map +1 -1
  436. package/build-module/video/edit.native.js +1 -2
  437. package/build-module/video/edit.native.js.map +1 -1
  438. package/build-style/archives/editor-rtl.css +15 -3
  439. package/build-style/archives/editor.css +15 -3
  440. package/build-style/archives/style-rtl.css +15 -3
  441. package/build-style/archives/style.css +15 -3
  442. package/build-style/audio/editor-rtl.css +15 -3
  443. package/build-style/audio/editor.css +15 -3
  444. package/build-style/audio/style-rtl.css +15 -3
  445. package/build-style/audio/style.css +15 -3
  446. package/build-style/audio/theme-rtl.css +15 -3
  447. package/build-style/audio/theme.css +15 -3
  448. package/build-style/avatar/editor-rtl.css +15 -3
  449. package/build-style/avatar/editor.css +15 -3
  450. package/build-style/avatar/style-rtl.css +15 -3
  451. package/build-style/avatar/style.css +15 -3
  452. package/build-style/block/editor-rtl.css +25 -3
  453. package/build-style/block/editor.css +25 -3
  454. package/build-style/button/editor-rtl.css +15 -3
  455. package/build-style/button/editor.css +15 -3
  456. package/build-style/button/style-rtl.css +15 -3
  457. package/build-style/button/style.css +15 -3
  458. package/build-style/buttons/editor-rtl.css +15 -3
  459. package/build-style/buttons/editor.css +15 -3
  460. package/build-style/buttons/style-rtl.css +15 -3
  461. package/build-style/buttons/style.css +15 -3
  462. package/build-style/calendar/style-rtl.css +15 -3
  463. package/build-style/calendar/style.css +15 -3
  464. package/build-style/categories/editor-rtl.css +15 -3
  465. package/build-style/categories/editor.css +15 -3
  466. package/build-style/categories/style-rtl.css +15 -3
  467. package/build-style/categories/style.css +15 -3
  468. package/build-style/classic-rtl.css +15 -3
  469. package/build-style/classic.css +15 -3
  470. package/build-style/code/editor-rtl.css +15 -3
  471. package/build-style/code/editor.css +15 -3
  472. package/build-style/code/style-rtl.css +15 -3
  473. package/build-style/code/style.css +15 -3
  474. package/build-style/code/theme-rtl.css +15 -3
  475. package/build-style/code/theme.css +15 -3
  476. package/build-style/columns/editor-rtl.css +15 -3
  477. package/build-style/columns/editor.css +15 -3
  478. package/build-style/columns/style-rtl.css +15 -3
  479. package/build-style/columns/style.css +15 -3
  480. package/build-style/comment-author-avatar/editor-rtl.css +15 -3
  481. package/build-style/comment-author-avatar/editor.css +15 -3
  482. package/build-style/comment-content/style-rtl.css +15 -3
  483. package/build-style/comment-content/style.css +15 -3
  484. package/build-style/comment-template/style-rtl.css +15 -3
  485. package/build-style/comment-template/style.css +15 -3
  486. package/build-style/comments/editor-rtl.css +15 -3
  487. package/build-style/comments/editor.css +15 -3
  488. package/build-style/comments/style-rtl.css +15 -3
  489. package/build-style/comments/style.css +15 -3
  490. package/build-style/comments-pagination/editor-rtl.css +15 -3
  491. package/build-style/comments-pagination/editor.css +15 -3
  492. package/build-style/comments-pagination/style-rtl.css +15 -3
  493. package/build-style/comments-pagination/style.css +15 -3
  494. package/build-style/comments-pagination-numbers/editor-rtl.css +15 -3
  495. package/build-style/comments-pagination-numbers/editor.css +15 -3
  496. package/build-style/comments-title/editor-rtl.css +15 -3
  497. package/build-style/comments-title/editor.css +15 -3
  498. package/build-style/common-rtl.css +20 -4
  499. package/build-style/common.css +20 -4
  500. package/build-style/cover/editor-rtl.css +15 -3
  501. package/build-style/cover/editor.css +15 -3
  502. package/build-style/cover/style-rtl.css +17 -4
  503. package/build-style/cover/style.css +17 -4
  504. package/build-style/editor-elements-rtl.css +15 -3
  505. package/build-style/editor-elements.css +15 -3
  506. package/build-style/editor-rtl.css +46 -29
  507. package/build-style/editor.css +46 -29
  508. package/build-style/elements-rtl.css +15 -3
  509. package/build-style/elements.css +15 -3
  510. package/build-style/embed/editor-rtl.css +15 -3
  511. package/build-style/embed/editor.css +15 -3
  512. package/build-style/embed/style-rtl.css +15 -3
  513. package/build-style/embed/style.css +15 -3
  514. package/build-style/embed/theme-rtl.css +15 -3
  515. package/build-style/embed/theme.css +15 -3
  516. package/build-style/file/editor-rtl.css +15 -3
  517. package/build-style/file/editor.css +15 -3
  518. package/build-style/file/style-rtl.css +15 -3
  519. package/build-style/file/style.css +15 -3
  520. package/build-style/freeform/editor-rtl.css +15 -3
  521. package/build-style/freeform/editor.css +15 -3
  522. package/build-style/gallery/editor-rtl.css +16 -4
  523. package/build-style/gallery/editor.css +16 -4
  524. package/build-style/gallery/style-rtl.css +19 -5
  525. package/build-style/gallery/style.css +19 -5
  526. package/build-style/gallery/theme-rtl.css +15 -3
  527. package/build-style/gallery/theme.css +15 -3
  528. package/build-style/group/editor-rtl.css +15 -3
  529. package/build-style/group/editor.css +15 -3
  530. package/build-style/group/style-rtl.css +15 -3
  531. package/build-style/group/style.css +15 -3
  532. package/build-style/group/theme-rtl.css +15 -3
  533. package/build-style/group/theme.css +15 -3
  534. package/build-style/heading/style-rtl.css +15 -3
  535. package/build-style/heading/style.css +15 -3
  536. package/build-style/html/editor-rtl.css +15 -3
  537. package/build-style/html/editor.css +15 -3
  538. package/build-style/image/editor-rtl.css +15 -12
  539. package/build-style/image/editor.css +15 -12
  540. package/build-style/image/style-rtl.css +15 -3
  541. package/build-style/image/style.css +15 -3
  542. package/build-style/image/theme-rtl.css +15 -3
  543. package/build-style/image/theme.css +15 -3
  544. package/build-style/latest-comments/style-rtl.css +15 -3
  545. package/build-style/latest-comments/style.css +15 -3
  546. package/build-style/latest-posts/editor-rtl.css +15 -3
  547. package/build-style/latest-posts/editor.css +15 -3
  548. package/build-style/latest-posts/style-rtl.css +15 -3
  549. package/build-style/latest-posts/style.css +15 -3
  550. package/build-style/list/style-rtl.css +15 -3
  551. package/build-style/list/style.css +15 -3
  552. package/build-style/media-text/editor-rtl.css +15 -3
  553. package/build-style/media-text/editor.css +15 -3
  554. package/build-style/media-text/style-rtl.css +15 -3
  555. package/build-style/media-text/style.css +15 -3
  556. package/build-style/more/editor-rtl.css +15 -3
  557. package/build-style/more/editor.css +15 -3
  558. package/build-style/navigation/editor-rtl.css +15 -9
  559. package/build-style/navigation/editor.css +15 -9
  560. package/build-style/navigation/style-rtl.css +15 -4
  561. package/build-style/navigation/style.css +15 -4
  562. package/build-style/navigation-link/editor-rtl.css +15 -3
  563. package/build-style/navigation-link/editor.css +15 -3
  564. package/build-style/navigation-link/style-rtl.css +15 -3
  565. package/build-style/navigation-link/style.css +15 -3
  566. package/build-style/navigation-submenu/editor-rtl.css +15 -3
  567. package/build-style/navigation-submenu/editor.css +15 -3
  568. package/build-style/nextpage/editor-rtl.css +15 -3
  569. package/build-style/nextpage/editor.css +15 -3
  570. package/build-style/page-list/editor-rtl.css +19 -3
  571. package/build-style/page-list/editor.css +19 -3
  572. package/build-style/page-list/style-rtl.css +15 -3
  573. package/build-style/page-list/style.css +15 -3
  574. package/build-style/paragraph/editor-rtl.css +15 -3
  575. package/build-style/paragraph/editor.css +15 -3
  576. package/build-style/paragraph/style-rtl.css +15 -3
  577. package/build-style/paragraph/style.css +15 -3
  578. package/build-style/post-author/style-rtl.css +15 -3
  579. package/build-style/post-author/style.css +15 -3
  580. package/build-style/post-comments-form/editor-rtl.css +15 -3
  581. package/build-style/post-comments-form/editor.css +15 -3
  582. package/build-style/post-comments-form/style-rtl.css +15 -3
  583. package/build-style/post-comments-form/style.css +15 -3
  584. package/build-style/post-date/style-rtl.css +15 -3
  585. package/build-style/post-date/style.css +15 -3
  586. package/build-style/post-excerpt/editor-rtl.css +15 -3
  587. package/build-style/post-excerpt/editor.css +15 -3
  588. package/build-style/post-excerpt/style-rtl.css +15 -3
  589. package/build-style/post-excerpt/style.css +15 -3
  590. package/build-style/post-featured-image/editor-rtl.css +15 -3
  591. package/build-style/post-featured-image/editor.css +15 -3
  592. package/build-style/post-featured-image/style-rtl.css +15 -3
  593. package/build-style/post-featured-image/style.css +15 -3
  594. package/build-style/post-navigation-link/style-rtl.css +15 -3
  595. package/build-style/post-navigation-link/style.css +15 -3
  596. package/build-style/post-template/editor-rtl.css +15 -3
  597. package/build-style/post-template/editor.css +15 -3
  598. package/build-style/post-template/style-rtl.css +15 -3
  599. package/build-style/post-template/style.css +15 -3
  600. package/build-style/post-terms/style-rtl.css +15 -3
  601. package/build-style/post-terms/style.css +15 -3
  602. package/build-style/post-title/style-rtl.css +15 -3
  603. package/build-style/post-title/style.css +15 -3
  604. package/build-style/preformatted/style-rtl.css +15 -3
  605. package/build-style/preformatted/style.css +15 -3
  606. package/build-style/pullquote/editor-rtl.css +15 -3
  607. package/build-style/pullquote/editor.css +15 -3
  608. package/build-style/pullquote/style-rtl.css +15 -3
  609. package/build-style/pullquote/style.css +15 -3
  610. package/build-style/pullquote/theme-rtl.css +15 -3
  611. package/build-style/pullquote/theme.css +15 -3
  612. package/build-style/query/editor-rtl.css +15 -3
  613. package/build-style/query/editor.css +15 -3
  614. package/build-style/query-pagination/editor-rtl.css +15 -3
  615. package/build-style/query-pagination/editor.css +15 -3
  616. package/build-style/query-pagination/style-rtl.css +15 -3
  617. package/build-style/query-pagination/style.css +15 -3
  618. package/build-style/query-pagination-numbers/editor-rtl.css +15 -3
  619. package/build-style/query-pagination-numbers/editor.css +15 -3
  620. package/build-style/query-title/style-rtl.css +15 -3
  621. package/build-style/query-title/style.css +15 -3
  622. package/build-style/quote/style-rtl.css +15 -3
  623. package/build-style/quote/style.css +15 -3
  624. package/build-style/quote/theme-rtl.css +15 -3
  625. package/build-style/quote/theme.css +15 -3
  626. package/build-style/read-more/style-rtl.css +15 -3
  627. package/build-style/read-more/style.css +15 -3
  628. package/build-style/reset-rtl.css +15 -3
  629. package/build-style/reset.css +15 -3
  630. package/build-style/rss/editor-rtl.css +15 -3
  631. package/build-style/rss/editor.css +15 -3
  632. package/build-style/rss/style-rtl.css +15 -3
  633. package/build-style/rss/style.css +15 -3
  634. package/build-style/search/editor-rtl.css +15 -3
  635. package/build-style/search/editor.css +15 -3
  636. package/build-style/search/style-rtl.css +15 -3
  637. package/build-style/search/style.css +15 -3
  638. package/build-style/search/theme-rtl.css +15 -3
  639. package/build-style/search/theme.css +15 -3
  640. package/build-style/separator/editor-rtl.css +15 -3
  641. package/build-style/separator/editor.css +15 -3
  642. package/build-style/separator/style-rtl.css +15 -3
  643. package/build-style/separator/style.css +15 -3
  644. package/build-style/separator/theme-rtl.css +15 -3
  645. package/build-style/separator/theme.css +15 -3
  646. package/build-style/shortcode/editor-rtl.css +16 -4
  647. package/build-style/shortcode/editor.css +16 -4
  648. package/build-style/site-logo/editor-rtl.css +15 -3
  649. package/build-style/site-logo/editor.css +15 -3
  650. package/build-style/site-logo/style-rtl.css +15 -3
  651. package/build-style/site-logo/style.css +15 -3
  652. package/build-style/site-tagline/editor-rtl.css +15 -3
  653. package/build-style/site-tagline/editor.css +15 -3
  654. package/build-style/site-title/editor-rtl.css +15 -3
  655. package/build-style/site-title/editor.css +15 -3
  656. package/build-style/site-title/style-rtl.css +15 -3
  657. package/build-style/site-title/style.css +15 -3
  658. package/build-style/social-link/editor-rtl.css +15 -3
  659. package/build-style/social-link/editor.css +15 -3
  660. package/build-style/social-links/editor-rtl.css +15 -3
  661. package/build-style/social-links/editor.css +15 -3
  662. package/build-style/social-links/style-rtl.css +15 -3
  663. package/build-style/social-links/style.css +15 -3
  664. package/build-style/spacer/editor-rtl.css +15 -3
  665. package/build-style/spacer/editor.css +15 -3
  666. package/build-style/spacer/style-rtl.css +15 -3
  667. package/build-style/spacer/style.css +15 -3
  668. package/build-style/style-rtl.css +36 -10
  669. package/build-style/style.css +36 -10
  670. package/build-style/table/editor-rtl.css +15 -11
  671. package/build-style/table/editor.css +15 -11
  672. package/build-style/table/style-rtl.css +21 -3
  673. package/build-style/table/style.css +21 -3
  674. package/build-style/table/theme-rtl.css +15 -9
  675. package/build-style/table/theme.css +15 -9
  676. package/build-style/tag-cloud/style-rtl.css +15 -3
  677. package/build-style/tag-cloud/style.css +15 -3
  678. package/build-style/template-part/editor-rtl.css +30 -4
  679. package/build-style/template-part/editor.css +30 -4
  680. package/build-style/template-part/theme-rtl.css +15 -3
  681. package/build-style/template-part/theme.css +15 -3
  682. package/build-style/text-columns/editor-rtl.css +15 -3
  683. package/build-style/text-columns/editor.css +15 -3
  684. package/build-style/text-columns/style-rtl.css +15 -3
  685. package/build-style/text-columns/style.css +15 -3
  686. package/build-style/theme-rtl.css +15 -9
  687. package/build-style/theme.css +15 -9
  688. package/build-style/verse/style-rtl.css +19 -4
  689. package/build-style/verse/style.css +19 -4
  690. package/build-style/video/editor-rtl.css +15 -3
  691. package/build-style/video/editor.css +15 -3
  692. package/build-style/video/style-rtl.css +17 -4
  693. package/build-style/video/style.css +17 -4
  694. package/build-style/video/theme-rtl.css +15 -3
  695. package/build-style/video/theme.css +15 -3
  696. package/package.json +32 -30
  697. package/src/audio/edit.native.js +1 -2
  698. package/src/audio/index.js +1 -0
  699. package/src/avatar/edit.js +1 -0
  700. package/src/avatar/user-control.js +1 -0
  701. package/src/block/block.json +1 -2
  702. package/src/block/edit.js +14 -3
  703. package/src/block/edit.native.js +24 -12
  704. package/src/block/editor.scss +17 -0
  705. package/src/block/index.php +1 -2
  706. package/src/block/test/edit.native.js +28 -32
  707. package/src/button/edit.native.js +1 -0
  708. package/src/buttons/test/edit.native.js +40 -51
  709. package/src/categories/edit.js +1 -1
  710. package/src/code/transforms.js +3 -1
  711. package/src/columns/edit.js +1 -0
  712. package/src/columns/edit.native.js +18 -26
  713. package/src/comment-author-avatar/edit.js +1 -0
  714. package/src/comments/index.php +0 -1
  715. package/src/cover/edit/inspector-controls.js +6 -4
  716. package/src/cover/edit.native.js +32 -19
  717. package/src/cover/test/edit.native.js +73 -126
  718. package/src/embed/embed-controls.native.js +1 -0
  719. package/src/embed/embed-preview.native.js +1 -2
  720. package/src/embed/test/index.native.js +237 -231
  721. package/src/file/inspector.js +1 -0
  722. package/src/file/test/__snapshots__/edit.native.js.snap +2 -6
  723. package/src/freeform/edit.js +48 -29
  724. package/src/freeform/modal.js +111 -0
  725. package/src/gallery/edit.js +32 -7
  726. package/src/gallery/gallery.js +3 -13
  727. package/src/gallery/gallery.native.js +1 -2
  728. package/src/gallery/shared.js +7 -11
  729. package/src/gallery/transforms.js +1 -6
  730. package/src/gallery/use-get-media.js +1 -1
  731. package/src/gallery/use-get-media.native.js +2 -1
  732. package/src/gallery/v1/edit.js +8 -7
  733. package/src/gallery/v1/gallery.native.js +1 -2
  734. package/src/gallery/v1/shared.js +7 -2
  735. package/src/group/block.json +3 -1
  736. package/src/group/edit.js +2 -6
  737. package/src/group/placeholder.js +6 -25
  738. package/src/group/test/__snapshots__/edit.native.js.snap +1 -1
  739. package/src/heading/block.json +1 -2
  740. package/src/heading/deprecated.js +209 -136
  741. package/src/heading/index.php +52 -0
  742. package/src/heading/test/__snapshots__/index.native.js.snap +7 -0
  743. package/src/heading/test/index.native.js +44 -0
  744. package/src/home-link/index.php +1 -1
  745. package/src/html/block.json +1 -1
  746. package/src/image/edit.js +7 -2
  747. package/src/image/edit.native.js +2 -1
  748. package/src/image/editor.scss +0 -11
  749. package/src/image/image.js +14 -8
  750. package/src/image/test/edit.native.js +14 -10
  751. package/src/index.js +2 -0
  752. package/src/latest-comments/edit.js +1 -0
  753. package/src/latest-posts/edit.js +2 -0
  754. package/src/latest-posts/test/__snapshots__/edit.native.js.snap +3 -0
  755. package/src/latest-posts/test/edit.native.js +49 -0
  756. package/src/list/test/edit.native.js +53 -45
  757. package/src/list/transforms.js +0 -11
  758. package/src/list/utils.js +6 -2
  759. package/src/list-item/index.js +2 -0
  760. package/src/list-item/transforms.js +17 -0
  761. package/src/list-item/utils.js +10 -1
  762. package/src/media-text/edit.js +6 -3
  763. package/src/missing/edit.native.js +13 -6
  764. package/src/missing/test/edit-integration.native.js +10 -12
  765. package/src/more/test/__snapshots__/edit.native.js.snap +7 -0
  766. package/src/more/test/edit.native.js +41 -0
  767. package/src/navigation/edit/are-blocks-dirty.js +51 -0
  768. package/src/navigation/edit/index.js +229 -298
  769. package/src/navigation/edit/menu-inspector-controls.js +119 -0
  770. package/src/navigation/edit/navigation-menu-selector.js +6 -7
  771. package/src/navigation/edit/test/are-blocks-dirty.js +121 -0
  772. package/src/navigation/edit/unsaved-inner-blocks.js +12 -7
  773. package/src/navigation/edit/utils.js +82 -0
  774. package/src/navigation/editor.scss +0 -7
  775. package/src/navigation/index.php +89 -10
  776. package/src/navigation/style.scss +0 -1
  777. package/src/navigation/view-modal.js +11 -1
  778. package/src/navigation-link/edit.js +62 -386
  779. package/src/navigation-link/index.php +64 -0
  780. package/src/navigation-link/link-ui.js +213 -0
  781. package/src/navigation-link/test/edit.js +23 -82
  782. package/src/navigation-link/transforms.js +14 -0
  783. package/src/navigation-link/update-attributes.js +99 -0
  784. package/src/navigation-submenu/edit.js +85 -276
  785. package/src/navigation-submenu/index.php +72 -0
  786. package/src/page-list/block.json +24 -2
  787. package/src/page-list/constants.js +8 -0
  788. package/src/page-list/convert-to-links-modal.js +19 -76
  789. package/src/page-list/convert-to-navigation-links.js +60 -0
  790. package/src/page-list/edit.js +187 -118
  791. package/src/page-list/editor.scss +4 -0
  792. package/src/page-list/index.js +8 -2
  793. package/src/page-list/index.php +18 -10
  794. package/src/page-list/test/convert-to-links-modal.js +28 -34
  795. package/src/page-list-item/block.json +51 -0
  796. package/src/page-list-item/edit.js +102 -0
  797. package/src/page-list-item/index.js +24 -0
  798. package/src/page-list-item/init.js +6 -0
  799. package/src/paragraph/index.js +0 -6
  800. package/src/post-author/edit.js +3 -2
  801. package/src/post-content/index.php +1 -2
  802. package/src/post-featured-image/index.php +7 -2
  803. package/src/post-featured-image/overlay.js +1 -1
  804. package/src/post-template/block.json +8 -0
  805. package/src/preformatted/transforms.js +4 -1
  806. package/src/query/block.json +0 -8
  807. package/src/query/deprecated.js +257 -86
  808. package/src/query/edit/index.js +1 -0
  809. package/src/query/edit/inspector-controls/index.js +50 -38
  810. package/src/query/edit/inspector-controls/taxonomy-controls.js +102 -38
  811. package/src/query/edit/query-content.js +2 -1
  812. package/src/query/edit/query-placeholder.js +14 -25
  813. package/src/query/utils.js +59 -1
  814. package/src/rss/edit.js +3 -0
  815. package/src/search/edit.js +2 -2
  816. package/src/search/edit.native.js +31 -27
  817. package/src/search/index.js +5 -1
  818. package/src/separator/test/__snapshots__/edit.native.js.snap +7 -0
  819. package/src/separator/test/edit.native.js +41 -0
  820. package/src/shortcode/test/edit.native.js +15 -18
  821. package/src/site-logo/edit.js +13 -5
  822. package/src/site-logo/index.js +1 -0
  823. package/src/site-title/index.js +1 -0
  824. package/src/social-link/edit.js +3 -3
  825. package/src/social-link/social-list.js +2 -7
  826. package/src/social-link/test/index.native.js +10 -16
  827. package/src/social-links/edit.js +0 -1
  828. package/src/social-links/test/edit.native.js +4 -3
  829. package/src/spacer/test/index.native.js +39 -36
  830. package/src/table/block.json +15 -0
  831. package/src/table/edit.js +2 -1
  832. package/src/table/editor.scss +0 -4
  833. package/src/table/index.js +1 -0
  834. package/src/table/save.js +5 -1
  835. package/src/table/state.js +22 -7
  836. package/src/table/style.scss +8 -0
  837. package/src/table/theme.scss +0 -8
  838. package/src/table/transforms.js +2 -1
  839. package/src/table-of-contents/edit.js +3 -3
  840. package/src/tag-cloud/edit.js +3 -2
  841. package/src/template-part/edit/advanced-controls.js +12 -0
  842. package/src/template-part/edit/import-controls.js +180 -0
  843. package/src/template-part/edit/index.js +1 -0
  844. package/src/template-part/edit/selection-modal.js +4 -3
  845. package/src/template-part/edit/utils/hooks.js +7 -3
  846. package/src/template-part/edit/utils/transformers.js +37 -0
  847. package/src/template-part/editor.scss +20 -2
  848. package/src/template-part/index.php +1 -2
  849. package/src/text-columns/edit.js +1 -0
  850. package/src/utils/transformation-categories.native.js +1 -0
  851. package/src/verse/style.scss +4 -1
  852. package/src/verse/test/__snapshots__/edit.native.js.snap +13 -0
  853. package/src/verse/test/edit.native.js +40 -33
  854. package/src/video/edit.js +1 -1
  855. package/src/video/edit.native.js +1 -2
  856. package/test/babel-plugin.js +35 -35
  857. package/tsconfig.tsbuildinfo +1 -1
  858. package/build/query/constants.js +0 -16
  859. package/build/query/constants.js.map +0 -1
  860. package/build-module/query/constants.js +0 -7
  861. package/build-module/query/constants.js.map +0 -1
  862. package/src/query/constants.js +0 -7
@@ -1,3 +1,4 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
1
2
  import { createElement, Fragment } from "@wordpress/element";
2
3
 
3
4
  /**
@@ -9,10 +10,10 @@ import classnames from 'classnames';
9
10
  */
10
11
 
11
12
  import { useState, useEffect, useRef, Platform, useMemo } from '@wordpress/element';
12
- import { __experimentalOffCanvasEditor as OffCanvasEditor, InspectorControls, useBlockProps, __experimentalRecursionProvider as RecursionProvider, __experimentalUseHasRecursion as useHasRecursion, store as blockEditorStore, withColors, PanelColorSettings, ContrastChecker, getColorClassName, Warning, __experimentalUseBlockOverlayActive as useBlockOverlayActive } from '@wordpress/block-editor';
13
+ import { InspectorControls, useBlockProps, __experimentalRecursionProvider as RecursionProvider, __experimentalUseHasRecursion as useHasRecursion, store as blockEditorStore, withColors, ContrastChecker, getColorClassName, Warning, __experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown, __experimentalUseBlockOverlayActive as useBlockOverlayActive, __experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients } from '@wordpress/block-editor';
13
14
  import { EntityProvider, store as coreStore } from '@wordpress/core-data';
14
15
  import { useDispatch } from '@wordpress/data';
15
- import { PanelBody, ToggleControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, Button, Spinner, __experimentalHStack as HStack, __experimentalHeading as Heading } from '@wordpress/components';
16
+ import { PanelBody, ToggleControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, Button, Spinner } from '@wordpress/components';
16
17
  import { __, sprintf } from '@wordpress/i18n';
17
18
  import { speak } from '@wordpress/a11y';
18
19
  import { createBlock } from '@wordpress/blocks';
@@ -26,7 +27,6 @@ import useNavigationEntities from '../use-navigation-entities';
26
27
  import Placeholder from './placeholder';
27
28
  import ResponsiveWrapper from './responsive-wrapper';
28
29
  import NavigationInnerBlocks from './inner-blocks';
29
- import NavigationMenuSelector from './navigation-menu-selector';
30
30
  import NavigationMenuNameControl from './navigation-menu-name-control';
31
31
  import UnsavedInnerBlocks from './unsaved-inner-blocks';
32
32
  import NavigationMenuDeleteControl from './navigation-menu-delete-control';
@@ -38,6 +38,7 @@ import useCreateNavigationMenu from './use-create-navigation-menu';
38
38
  import { useInnerBlocks } from './use-inner-blocks';
39
39
  import { detectColors } from './utils';
40
40
  import ManageMenusButton from './manage-menus-button';
41
+ import MenuInspectorControls from './menu-inspector-controls';
41
42
 
42
43
  function Navigation(_ref) {
43
44
  var _window, _attributes$style, _attributes$style$typ;
@@ -208,13 +209,24 @@ function Navigation(_ref) {
208
209
  setRef(fallbackNavigationMenus[0].id);
209
210
  }, [ref, isCreatingNavigationMenu, fallbackNavigationMenus, hasUncontrolledInnerBlocks]);
210
211
  useEffect(() => {
211
- if (!hasResolvedNavigationMenus || isConvertingClassicMenu || (fallbackNavigationMenus === null || fallbackNavigationMenus === void 0 ? void 0 : fallbackNavigationMenus.length) > 0 || (classicMenus === null || classicMenus === void 0 ? void 0 : classicMenus.length) !== 1) {
212
+ if (!hasResolvedNavigationMenus || isConvertingClassicMenu || (fallbackNavigationMenus === null || fallbackNavigationMenus === void 0 ? void 0 : fallbackNavigationMenus.length) > 0 || !(classicMenus !== null && classicMenus !== void 0 && classicMenus.length)) {
212
213
  return;
213
214
  } // If there's non fallback navigation menus and
214
- // only one classic menu then create a new navigation menu based on it.
215
+ // a classic menu with a `primary` location or slug,
216
+ // then create a new navigation menu based on it.
217
+ // Otherwise, use the most recently created classic menu.
215
218
 
216
219
 
217
- convertClassicMenu(classicMenus[0].id, classicMenus[0].name, 'publish');
220
+ const primaryMenus = classicMenus.filter(classicMenu => classicMenu.locations.includes('primary') || classicMenu.slug === 'primary');
221
+
222
+ if (primaryMenus.length) {
223
+ convertClassicMenu(primaryMenus[0].id, primaryMenus[0].name, 'publish');
224
+ } else {
225
+ classicMenus.sort((a, b) => {
226
+ return b.id - a.id;
227
+ });
228
+ convertClassicMenu(classicMenus[0].id, classicMenus[0].name, 'publish');
229
+ }
218
230
  }, [hasResolvedNavigationMenus]);
219
231
  const navRef = useRef(); // The standard HTML5 tag for the block wrapper.
220
232
 
@@ -291,6 +303,20 @@ function Navigation(_ref) {
291
303
  }
292
304
  };
293
305
 
306
+ const onSelectClassicMenu = async classicMenu => {
307
+ const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name, 'draft');
308
+
309
+ if (navMenu) {
310
+ handleUpdateMenu(navMenu.id, {
311
+ focusNavigationBlock: true
312
+ });
313
+ }
314
+ };
315
+
316
+ const onSelectNavigationMenu = menuId => {
317
+ handleUpdateMenu(menuId);
318
+ };
319
+
294
320
  useEffect(() => {
295
321
  hideClassicMenuConversionNotice();
296
322
 
@@ -368,7 +394,8 @@ function Navigation(_ref) {
368
394
  showMenuAutoPublishDraftNotice(__('Error occurred while publishing the navigation menu.'));
369
395
  });
370
396
  }, [isDraftNavigationMenu, navigationMenu]);
371
- const stylingInspectorControls = createElement(InspectorControls, null, hasSubmenuIndicatorSetting && createElement(PanelBody, {
397
+ const colorGradientSettings = useMultipleOriginColorsAndGradients();
398
+ const stylingInspectorControls = createElement(Fragment, null, createElement(InspectorControls, null, hasSubmenuIndicatorSetting && createElement(PanelBody, {
372
399
  title: __('Display')
373
400
  }, isResponsive && createElement(Fragment, null, createElement(Button, {
374
401
  className: overlayMenuPreviewClasses,
@@ -422,35 +449,42 @@ function Navigation(_ref) {
422
449
  },
423
450
  disabled: attributes.openSubmenusOnClick,
424
451
  label: __('Show arrow')
425
- }))), hasColorSettings && createElement(PanelColorSettings, {
426
- __experimentalHasMultipleOrigins: true,
452
+ })))), createElement(InspectorControls, {
453
+ __experimentalGroup: "color"
454
+ }, hasColorSettings && createElement(Fragment, null, createElement(ColorGradientSettingsDropdown, _extends({
427
455
  __experimentalIsRenderedInSidebar: true,
428
- title: __('Color'),
429
- initialOpen: false,
430
- colorSettings: [{
431
- value: textColor.color,
432
- onChange: setTextColor,
433
- label: __('Text')
456
+ settings: [{
457
+ colorValue: textColor.color,
458
+ label: __('Text'),
459
+ onColorChange: setTextColor,
460
+ resetAllFilter: () => setTextColor()
434
461
  }, {
435
- value: backgroundColor.color,
436
- onChange: setBackgroundColor,
437
- label: __('Background')
462
+ colorValue: backgroundColor.color,
463
+ label: __('Background'),
464
+ onColorChange: setBackgroundColor,
465
+ resetAllFilter: () => setBackgroundColor()
438
466
  }, {
439
- value: overlayTextColor.color,
440
- onChange: setOverlayTextColor,
441
- label: __('Submenu & overlay text')
467
+ colorValue: overlayTextColor.color,
468
+ label: __('Submenu & overlay text'),
469
+ onColorChange: setOverlayTextColor,
470
+ resetAllFilter: () => setOverlayTextColor()
442
471
  }, {
443
- value: overlayBackgroundColor.color,
444
- onChange: setOverlayBackgroundColor,
445
- label: __('Submenu & overlay background')
446
- }]
447
- }, enableContrastChecking && createElement(Fragment, null, createElement(ContrastChecker, {
472
+ colorValue: overlayBackgroundColor.color,
473
+ label: __('Submenu & overlay background'),
474
+ onColorChange: setOverlayBackgroundColor,
475
+ resetAllFilter: () => setOverlayBackgroundColor()
476
+ }],
477
+ panelId: clientId
478
+ }, colorGradientSettings, {
479
+ gradients: [],
480
+ disableCustomGradients: true
481
+ })), enableContrastChecking && createElement(Fragment, null, createElement(ContrastChecker, {
448
482
  backgroundColor: detectedBackgroundColor,
449
483
  textColor: detectedColor
450
484
  }), createElement(ContrastChecker, {
451
485
  backgroundColor: detectedOverlayBackgroundColor,
452
486
  textColor: detectedOverlayColor
453
- })))); // If the block has inner blocks, but no menu id, then these blocks are either:
487
+ }))))); // If the block has inner blocks, but no menu id, then these blocks are either:
454
488
  // - inserted via a pattern.
455
489
  // - inserted directly via Code View (or otherwise).
456
490
  // - from an older version of navigation block added before the block used a wp_navigation entity.
@@ -458,56 +492,20 @@ function Navigation(_ref) {
458
492
  // that automatically saves the menu as an entity when changes are made to the inner blocks.
459
493
 
460
494
  const hasUnsavedBlocks = hasUncontrolledInnerBlocks && !isEntityAvailable;
461
-
462
- const WrappedNavigationMenuSelector = _ref2 => {
463
- let {
464
- currentMenuId
465
- } = _ref2;
466
- return createElement(NavigationMenuSelector, {
467
- currentMenuId: currentMenuId,
468
- clientId: clientId,
469
- onSelectNavigationMenu: menuId => {
470
- handleUpdateMenu(menuId);
471
- },
472
- onSelectClassicMenu: async classicMenu => {
473
- const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name, 'draft');
474
-
475
- if (navMenu) {
476
- handleUpdateMenu(navMenu.id, {
477
- focusNavigationBlock: true
478
- });
479
- }
480
- },
481
- onCreateNew: createUntitledEmptyNavigationMenu,
482
- createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
483
- createNavigationMenuIsError: createNavigationMenuIsError
484
- /* translators: %s: The name of a menu. */
485
- ,
486
- actionLabel: __("Switch to '%s'")
487
- });
488
- };
489
-
490
495
  const isManageMenusButtonDisabled = !hasManagePermissions || !hasResolvedNavigationMenus;
491
496
 
492
497
  if (hasUnsavedBlocks && !isCreatingNavigationMenu) {
493
- return createElement(TagName, blockProps, createElement(InspectorControls, null, createElement(PanelBody, {
494
- title: isOffCanvasNavigationEditorEnabled ? null : __('Menu')
495
- }, isOffCanvasNavigationEditorEnabled ? createElement(Fragment, null, createElement(HStack, {
496
- className: "wp-block-navigation-off-canvas-editor__header"
497
- }, createElement(Heading, {
498
- className: "wp-block-navigation-off-canvas-editor__title",
499
- level: 2
500
- }, __('Menu')), createElement(WrappedNavigationMenuSelector, {
501
- currentMenuId: ref
502
- })), createElement(OffCanvasEditor, {
503
- blocks: innerBlocks,
504
- isExpanded: true,
505
- selectBlockInCanvas: false
506
- })) : createElement(Fragment, null, createElement(WrappedNavigationMenuSelector, {
507
- currentMenuId: ref
508
- }), createElement(ManageMenusButton, {
509
- disabled: isManageMenusButtonDisabled
510
- })))), stylingInspectorControls, createElement(ResponsiveWrapper, {
498
+ return createElement(TagName, blockProps, createElement(MenuInspectorControls, {
499
+ clientId: clientId,
500
+ createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
501
+ createNavigationMenuIsError: createNavigationMenuIsError,
502
+ currentMenuId: ref,
503
+ isNavigationMenuMissing: isNavigationMenuMissing,
504
+ isManageMenusButtonDisabled: isManageMenusButtonDisabled,
505
+ onCreateNew: createUntitledEmptyNavigationMenu,
506
+ onSelectClassicMenu: onSelectClassicMenu,
507
+ onSelectNavigationMenu: onSelectNavigationMenu
508
+ }), stylingInspectorControls, createElement(ResponsiveWrapper, {
511
509
  id: clientId,
512
510
  onToggle: setResponsiveMenuVisibility,
513
511
  isOpen: isResponsiveMenuOpen,
@@ -529,20 +527,16 @@ function Navigation(_ref) {
529
527
 
530
528
 
531
529
  if (ref && isNavigationMenuMissing) {
532
- return createElement(TagName, blockProps, createElement(InspectorControls, null, createElement(PanelBody, {
533
- title: isOffCanvasNavigationEditorEnabled ? null : __('Menu')
534
- }, isOffCanvasNavigationEditorEnabled ? createElement(Fragment, null, createElement(HStack, {
535
- className: "wp-block-navigation-off-canvas-editor__header"
536
- }, createElement(Heading, {
537
- className: "wp-block-navigation-off-canvas-editor__title",
538
- level: 2
539
- }, __('Menu')), createElement(WrappedNavigationMenuSelector, {
540
- currentMenuId: null
541
- })), createElement("p", null, "Select or create a menu")) : createElement(Fragment, null, createElement(WrappedNavigationMenuSelector, {
542
- currentMenuId: null
543
- }), createElement(ManageMenusButton, {
544
- disabled: isManageMenusButtonDisabled
545
- })))), createElement(Warning, null, __('Navigation menu has been deleted or is unavailable. '), createElement(Button, {
530
+ return createElement(TagName, blockProps, createElement(MenuInspectorControls, {
531
+ clientId: clientId,
532
+ createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
533
+ createNavigationMenuIsError: createNavigationMenuIsError,
534
+ isNavigationMenuMissing: isNavigationMenuMissing,
535
+ isManageMenusButtonDisabled: isManageMenusButtonDisabled,
536
+ onCreateNew: createUntitledEmptyNavigationMenu,
537
+ onSelectClassicMenu: onSelectClassicMenu,
538
+ onSelectNavigationMenu: onSelectNavigationMenu
539
+ }), createElement(Warning, null, __('Navigation menu has been deleted or is unavailable. '), createElement(Button, {
546
540
  onClick: createUntitledEmptyNavigationMenu,
547
541
  variant: "link"
548
542
  }, __('Create a new menu?'))));
@@ -570,18 +564,8 @@ function Navigation(_ref) {
570
564
  clientId: clientId,
571
565
  canUserCreateNavigationMenu: canUserCreateNavigationMenu,
572
566
  isResolvingCanUserCreateNavigationMenu: isResolvingCanUserCreateNavigationMenu,
573
- onSelectNavigationMenu: menuId => {
574
- handleUpdateMenu(menuId);
575
- },
576
- onSelectClassicMenu: async classicMenu => {
577
- const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name, 'draft');
578
-
579
- if (navMenu) {
580
- handleUpdateMenu(navMenu.id, {
581
- focusNavigationBlock: true
582
- });
583
- }
584
- },
567
+ onSelectNavigationMenu: onSelectNavigationMenu,
568
+ onSelectClassicMenu: onSelectClassicMenu,
585
569
  onCreateEmpty: createUntitledEmptyNavigationMenu
586
570
  }));
587
571
  }
@@ -592,24 +576,17 @@ function Navigation(_ref) {
592
576
  id: ref
593
577
  }, createElement(RecursionProvider, {
594
578
  uniqueId: recursionId
595
- }, createElement(InspectorControls, null, createElement(PanelBody, {
596
- title: isOffCanvasNavigationEditorEnabled ? null : __('Menu')
597
- }, isOffCanvasNavigationEditorEnabled ? createElement(Fragment, null, createElement(HStack, {
598
- className: "wp-block-navigation-off-canvas-editor__header"
599
- }, createElement(Heading, {
600
- className: "wp-block-navigation-off-canvas-editor__title",
601
- level: 2
602
- }, __('Menu')), createElement(WrappedNavigationMenuSelector, {
603
- currentMenuId: ref
604
- })), createElement(OffCanvasEditor, {
605
- blocks: innerBlocks,
606
- isExpanded: true,
607
- selectBlockInCanvas: false
608
- })) : createElement(Fragment, null, createElement(WrappedNavigationMenuSelector, {
609
- currentMenuId: ref
610
- }), createElement(ManageMenusButton, {
611
- disabled: isManageMenusButtonDisabled
612
- })))), stylingInspectorControls, isEntityAvailable && createElement(InspectorControls, {
579
+ }, createElement(MenuInspectorControls, {
580
+ clientId: clientId,
581
+ createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
582
+ createNavigationMenuIsError: createNavigationMenuIsError,
583
+ currentMenuId: ref,
584
+ isNavigationMenuMissing: isNavigationMenuMissing,
585
+ isManageMenusButtonDisabled: isManageMenusButtonDisabled,
586
+ onCreateNew: createUntitledEmptyNavigationMenu,
587
+ onSelectClassicMenu: onSelectClassicMenu,
588
+ onSelectNavigationMenu: onSelectNavigationMenu
589
+ }), stylingInspectorControls, isEntityAvailable && createElement(InspectorControls, {
613
590
  __experimentalGroup: "advanced"
614
591
  }, hasResolvedCanUserUpdateNavigationMenu && canUserUpdateNavigationMenu && createElement(NavigationMenuNameControl, null), hasResolvedCanUserDeleteNavigationMenu && canUserDeleteNavigationMenu && createElement(NavigationMenuDeleteControl, {
615
592
  onDelete: function () {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["classnames","useState","useEffect","useRef","Platform","useMemo","__experimentalOffCanvasEditor","OffCanvasEditor","InspectorControls","useBlockProps","__experimentalRecursionProvider","RecursionProvider","__experimentalUseHasRecursion","useHasRecursion","store","blockEditorStore","withColors","PanelColorSettings","ContrastChecker","getColorClassName","Warning","__experimentalUseBlockOverlayActive","useBlockOverlayActive","EntityProvider","coreStore","useDispatch","PanelBody","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","Button","Spinner","__experimentalHStack","HStack","__experimentalHeading","Heading","__","sprintf","speak","createBlock","close","Icon","useNavigationMenu","useNavigationEntities","Placeholder","ResponsiveWrapper","NavigationInnerBlocks","NavigationMenuSelector","NavigationMenuNameControl","UnsavedInnerBlocks","NavigationMenuDeleteControl","useNavigationNotice","OverlayMenuIcon","OverlayMenuPreview","useConvertClassicToBlockMenu","CLASSIC_MENU_CONVERSION_ERROR","CLASSIC_MENU_CONVERSION_PENDING","CLASSIC_MENU_CONVERSION_SUCCESS","useCreateNavigationMenu","useInnerBlocks","detectColors","ManageMenusButton","Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","isOffCanvasNavigationEditorEnabled","window","__experimentalEnableOffCanvasNavigationEditor","openSubmenusOnClick","overlayMenu","showSubmenuIcon","templateLock","layout","justifyContent","orientation","flexWrap","hasIcon","icon","ref","setRef","postId","recursionId","hasAlreadyRendered","editEntityRecord","menus","classicMenus","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","name","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showMenuAutoPublishDraftNotice","hideMenuAutoPublishDraftNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","createNavigationMenuIsSuccess","isError","createNavigationMenuIsError","createUntitledEmptyNavigationMenu","handleUpdateMenu","id","focusNavigationBlock","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","innerBlocks","hasSubmenus","find","block","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navMenuResolvedButMissing","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","isConvertingClassicMenu","fallbackNavigationMenus","filter","menu","sort","menuA","menuB","menuADate","Date","date","menuBDate","getTime","length","navRef","TagName","isPlaceholder","isEntityAvailable","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","color","class","slug","enableContrastChecking","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","menuId","options","current","subMenuElement","querySelector","hasManagePermissions","isResponsive","overlayMenuPreviewClasses","open","isDraftNavigationMenu","throwOnError","catch","stylingInspectorControls","onChange","label","hasUnsavedBlocks","WrappedNavigationMenuSelector","currentMenuId","classicMenu","navMenu","isManageMenusButtonDisabled","PlaceholderComponent","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tPlatform,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\t__experimentalOffCanvasEditor as OffCanvasEditor,\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n} from '@wordpress/block-editor';\nimport { EntityProvider, store as coreStore } 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\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\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 NavigationMenuSelector from './navigation-menu-selector';\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';\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 isOffCanvasNavigationEditorEnabled =\n\t\twindow?.__experimentalEnableOffCanvasNavigationEditor === true;\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\tconst { editEntityRecord } = useDispatch( coreStore );\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 [ showMenuAutoPublishDraftNotice, hideMenuAutoPublishDraftNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/auto-publish-draft',\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\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] );\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\tnavigationMenu,\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// 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\tuseEffect( () => {\n\t\tif (\n\t\t\t! hasResolvedNavigationMenus ||\n\t\t\tisConvertingClassicMenu ||\n\t\t\tfallbackNavigationMenus?.length > 0 ||\n\t\t\tclassicMenus?.length !== 1\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// only one classic menu then create a new navigation menu based on it.\n\t\tconvertClassicMenu(\n\t\t\tclassicMenus[ 0 ].id,\n\t\t\tclassicMenus[ 0 ].name,\n\t\t\t'publish'\n\t\t);\n\t}, [ hasResolvedNavigationMenus ] );\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}, [ clientId, isPlaceholder, ref ] );\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\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 = (\n\t\tmenuId,\n\t\toptions = { focusNavigationBlock: false }\n\t) => {\n\t\tconst { focusNavigationBlock } = options;\n\t\tsetRef( menuId );\n\t\tif ( focusNavigationBlock ) {\n\t\t\tselectBlock( clientId );\n\t\t}\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\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-link\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\t\tif ( subMenuElement ) {\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\t// Prompt the user to publish the menu they have set as a draft\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\tuseEffect( () => {\n\t\thideMenuAutoPublishDraftNotice();\n\t\tif ( ! isDraftNavigationMenu ) {\n\t\t\treturn;\n\t\t}\n\t\teditEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_navigation',\n\t\t\tnavigationMenu?.id,\n\t\t\t{ status: 'publish' },\n\t\t\t{ throwOnError: true }\n\t\t).catch( () => {\n\t\t\tshowMenuAutoPublishDraftNotice(\n\t\t\t\t__( 'Error occurred while publishing the navigation menu.' )\n\t\t\t);\n\t\t} );\n\t}, [ isDraftNavigationMenu, navigationMenu ] );\n\n\tconst stylingInspectorControls = (\n\t\t<InspectorControls>\n\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\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\t\t{ hasIcon && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<OverlayMenuIcon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ close } />\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{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Close' ) }</span>\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</Button>\n\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t<OverlayMenuPreview\n\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\ticon={ icon }\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\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\thelp={ __(\n\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) }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\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} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\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\tdisabled={ attributes.openSubmenusOnClick }\n\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\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</PanelBody>\n\t\t\t) }\n\t\t\t{ hasColorSettings && (\n\t\t\t\t<PanelColorSettings\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: overlayTextColor.color,\n\t\t\t\t\t\t\tonChange: setOverlayTextColor,\n\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\tonChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\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</PanelColorSettings>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\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\tconst WrappedNavigationMenuSelector = ( { currentMenuId } ) => (\n\t\t<NavigationMenuSelector\n\t\t\tcurrentMenuId={ currentMenuId }\n\t\t\tclientId={ clientId }\n\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t} }\n\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\tclassicMenu.name,\n\t\t\t\t\t'draft'\n\t\t\t\t);\n\t\t\t\tif ( navMenu ) {\n\t\t\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\t\t\tfocusNavigationBlock: true,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\tcreateNavigationMenuIsSuccess={ createNavigationMenuIsSuccess }\n\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t/* translators: %s: The name of a menu. */\n\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\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<InspectorControls>\n\t\t\t\t\t<PanelBody\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tisOffCanvasNavigationEditorEnabled\n\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t: __( 'Menu' )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isOffCanvasNavigationEditorEnabled ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<HStack className=\"wp-block-navigation-off-canvas-editor__header\">\n\t\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-off-canvas-editor__title\"\n\t\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Menu' ) }\n\t\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t\t\t<WrappedNavigationMenuSelector\n\t\t\t\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t<OffCanvasEditor\n\t\t\t\t\t\t\t\t\tblocks={ innerBlocks }\n\t\t\t\t\t\t\t\t\tisExpanded={ true }\n\t\t\t\t\t\t\t\t\tselectBlockInCanvas={ false }\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\t<>\n\t\t\t\t\t\t\t\t<WrappedNavigationMenuSelector\n\t\t\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ManageMenusButton\n\t\t\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\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</InspectorControls>\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\ttemplateLock={ templateLock }\n\t\t\t\t\t\tnavigationMenus={ navigationMenus }\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<InspectorControls>\n\t\t\t\t\t<PanelBody\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tisOffCanvasNavigationEditorEnabled\n\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t: __( 'Menu' )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isOffCanvasNavigationEditorEnabled ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<HStack className=\"wp-block-navigation-off-canvas-editor__header\">\n\t\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-off-canvas-editor__title\"\n\t\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Menu' ) }\n\t\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t\t\t<WrappedNavigationMenuSelector\n\t\t\t\t\t\t\t\t\t\tcurrentMenuId={ null }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t<p>Select or create a menu</p>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<WrappedNavigationMenuSelector\n\t\t\t\t\t\t\t\t\tcurrentMenuId={ null }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ManageMenusButton\n\t\t\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\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</InspectorControls>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\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={ ( menuId ) => {\n\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\tclassicMenu.name,\n\t\t\t\t\t\t\t'draft'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\t\t\t\t\tfocusNavigationBlock: true,\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\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<InspectorControls>\n\t\t\t\t\t<PanelBody\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tisOffCanvasNavigationEditorEnabled\n\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t: __( 'Menu' )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isOffCanvasNavigationEditorEnabled ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<HStack className=\"wp-block-navigation-off-canvas-editor__header\">\n\t\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-off-canvas-editor__title\"\n\t\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Menu' ) }\n\t\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t\t\t<WrappedNavigationMenuSelector\n\t\t\t\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t<OffCanvasEditor\n\t\t\t\t\t\t\t\t\tblocks={ innerBlocks }\n\t\t\t\t\t\t\t\t\tisExpanded={ true }\n\t\t\t\t\t\t\t\t\tselectBlockInCanvas={ false }\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\t<>\n\t\t\t\t\t\t\t\t<WrappedNavigationMenuSelector\n\t\t\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ManageMenusButton\n\t\t\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\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</InspectorControls>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"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{ isOffCanvasNavigationEditorEnabled && (\n\t\t\t\t\t\t\t<ManageMenusButton\n\t\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-manage-menus-button\"\n\t\t\t\t\t\t\t/>\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":["classnames","useState","useEffect","useRef","Platform","useMemo","InspectorControls","useBlockProps","__experimentalRecursionProvider","RecursionProvider","__experimentalUseHasRecursion","useHasRecursion","store","blockEditorStore","withColors","ContrastChecker","getColorClassName","Warning","__experimentalColorGradientSettingsDropdown","ColorGradientSettingsDropdown","__experimentalUseBlockOverlayActive","useBlockOverlayActive","__experimentalUseMultipleOriginColorsAndGradients","useMultipleOriginColorsAndGradients","EntityProvider","coreStore","useDispatch","PanelBody","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","Button","Spinner","__","sprintf","speak","createBlock","close","Icon","useNavigationMenu","useNavigationEntities","Placeholder","ResponsiveWrapper","NavigationInnerBlocks","NavigationMenuNameControl","UnsavedInnerBlocks","NavigationMenuDeleteControl","useNavigationNotice","OverlayMenuIcon","OverlayMenuPreview","useConvertClassicToBlockMenu","CLASSIC_MENU_CONVERSION_ERROR","CLASSIC_MENU_CONVERSION_PENDING","CLASSIC_MENU_CONVERSION_SUCCESS","useCreateNavigationMenu","useInnerBlocks","detectColors","ManageMenusButton","MenuInspectorControls","Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","isOffCanvasNavigationEditorEnabled","window","__experimentalEnableOffCanvasNavigationEditor","openSubmenusOnClick","overlayMenu","showSubmenuIcon","templateLock","layout","justifyContent","orientation","flexWrap","hasIcon","icon","ref","setRef","postId","recursionId","hasAlreadyRendered","editEntityRecord","menus","classicMenus","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","name","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showMenuAutoPublishDraftNotice","hideMenuAutoPublishDraftNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","createNavigationMenuIsSuccess","isError","createNavigationMenuIsError","createUntitledEmptyNavigationMenu","handleUpdateMenu","id","focusNavigationBlock","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","innerBlocks","hasSubmenus","find","block","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navMenuResolvedButMissing","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","isConvertingClassicMenu","fallbackNavigationMenus","filter","menu","sort","menuA","menuB","menuADate","Date","date","menuBDate","getTime","length","primaryMenus","classicMenu","locations","includes","slug","a","b","navRef","TagName","isPlaceholder","isEntityAvailable","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","color","class","enableContrastChecking","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","menuId","options","onSelectClassicMenu","navMenu","onSelectNavigationMenu","current","subMenuElement","querySelector","hasManagePermissions","isResponsive","overlayMenuPreviewClasses","open","isDraftNavigationMenu","throwOnError","catch","colorGradientSettings","stylingInspectorControls","colorValue","label","onColorChange","resetAllFilter","hasUnsavedBlocks","isManageMenusButtonDisabled","PlaceholderComponent","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\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, store as coreStore } 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';\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 isOffCanvasNavigationEditorEnabled =\n\t\twindow?.__experimentalEnableOffCanvasNavigationEditor === true;\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\tconst { editEntityRecord } = useDispatch( coreStore );\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 [ showMenuAutoPublishDraftNotice, hideMenuAutoPublishDraftNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/auto-publish-draft',\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\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] );\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\tnavigationMenu,\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// 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\tuseEffect( () => {\n\t\tif (\n\t\t\t! hasResolvedNavigationMenus ||\n\t\t\tisConvertingClassicMenu ||\n\t\t\tfallbackNavigationMenus?.length > 0 ||\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}, [ hasResolvedNavigationMenus ] );\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}, [ clientId, isPlaceholder, ref ] );\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\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 = (\n\t\tmenuId,\n\t\toptions = { focusNavigationBlock: false }\n\t) => {\n\t\tconst { focusNavigationBlock } = options;\n\t\tsetRef( menuId );\n\t\tif ( focusNavigationBlock ) {\n\t\t\tselectBlock( clientId );\n\t\t}\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\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\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-link\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\t\tif ( subMenuElement ) {\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\t// Prompt the user to publish the menu they have set as a draft\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\tuseEffect( () => {\n\t\thideMenuAutoPublishDraftNotice();\n\t\tif ( ! isDraftNavigationMenu ) {\n\t\t\treturn;\n\t\t}\n\t\teditEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_navigation',\n\t\t\tnavigationMenu?.id,\n\t\t\t{ status: 'publish' },\n\t\t\t{ throwOnError: true }\n\t\t).catch( () => {\n\t\t\tshowMenuAutoPublishDraftNotice(\n\t\t\t\t__( 'Error occurred while publishing the navigation menu.' )\n\t\t\t);\n\t\t} );\n\t}, [ isDraftNavigationMenu, navigationMenu ] );\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\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\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\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 __experimentalGroup=\"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\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\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/>\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\ttemplateLock={ templateLock }\n\t\t\t\t\t\tnavigationMenus={ navigationMenus }\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/>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\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/>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"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{ isOffCanvasNavigationEditorEnabled && (\n\t\t\t\t\t\t\t<ManageMenusButton\n\t\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-manage-menus-button\"\n\t\t\t\t\t\t\t/>\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"]}