@wordpress/block-library 8.9.0 → 8.11.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 (502) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/block/edit.native.js +17 -10
  3. package/build/block/edit.native.js.map +1 -1
  4. package/build/code/index.js +1 -0
  5. package/build/code/index.js.map +1 -1
  6. package/build/column/index.js +1 -1
  7. package/build/columns/transforms.js +1 -5
  8. package/build/columns/transforms.js.map +1 -1
  9. package/build/comment-author-name/edit.js +1 -1
  10. package/build/comment-author-name/edit.js.map +1 -1
  11. package/build/comment-edit-link/edit.js +1 -1
  12. package/build/comment-edit-link/edit.js.map +1 -1
  13. package/build/cover/edit/inspector-controls.js +1 -1
  14. package/build/cover/edit/inspector-controls.js.map +1 -1
  15. package/build/cover/edit/resizable-cover-popover.js +3 -3
  16. package/build/cover/edit/resizable-cover-popover.js.map +1 -1
  17. package/build/cover/index.js +1 -1
  18. package/build/cover/variations.js +1 -1
  19. package/build/cover/variations.js.map +1 -1
  20. package/build/details/edit.js +19 -5
  21. package/build/details/edit.js.map +1 -1
  22. package/build/details/index.js +14 -10
  23. package/build/details/index.js.map +1 -1
  24. package/build/details/save.js +4 -1
  25. package/build/details/save.js.map +1 -1
  26. package/build/embed/variations.js +2 -2
  27. package/build/embed/variations.js.map +1 -1
  28. package/build/file/interactivity.js +19 -0
  29. package/build/file/interactivity.js.map +1 -0
  30. package/build/file/{utils.js → utils/index.js} +1 -1
  31. package/build/file/utils/index.js.map +1 -0
  32. package/build/file/view.js +1 -1
  33. package/build/file/view.js.map +1 -1
  34. package/build/freeform/modal.js +20 -17
  35. package/build/freeform/modal.js.map +1 -1
  36. package/build/gallery/edit.js +2 -8
  37. package/build/gallery/edit.js.map +1 -1
  38. package/build/gallery/v1/edit.js +1 -7
  39. package/build/gallery/v1/edit.js.map +1 -1
  40. package/build/gallery/v1/gallery-image.native.js +1 -3
  41. package/build/gallery/v1/gallery-image.native.js.map +1 -1
  42. package/build/group/transforms.js +0 -5
  43. package/build/group/transforms.js.map +1 -1
  44. package/build/image/deprecated.js +2 -4
  45. package/build/image/deprecated.js.map +1 -1
  46. package/build/image/edit.js +13 -11
  47. package/build/image/edit.js.map +1 -1
  48. package/build/image/image.js +7 -12
  49. package/build/image/image.js.map +1 -1
  50. package/build/image/index.js +3 -0
  51. package/build/image/index.js.map +1 -1
  52. package/build/image/interactivity.js +102 -0
  53. package/build/image/interactivity.js.map +1 -0
  54. package/build/image/save.js +2 -4
  55. package/build/image/save.js.map +1 -1
  56. package/build/image/utils.js +10 -18
  57. package/build/image/utils.js.map +1 -1
  58. package/build/index.js +0 -6
  59. package/build/index.js.map +1 -1
  60. package/build/index.native.js +1 -1
  61. package/build/index.native.js.map +1 -1
  62. package/build/latest-posts/edit.native.js +1 -3
  63. package/build/latest-posts/edit.native.js.map +1 -1
  64. package/build/list/edit.js +1 -1
  65. package/build/list/edit.js.map +1 -1
  66. package/build/list-item/edit.native.js +1 -1
  67. package/build/list-item/edit.native.js.map +1 -1
  68. package/build/list-item/transforms.js +4 -1
  69. package/build/list-item/transforms.js.map +1 -1
  70. package/build/list-item/utils.js +5 -1
  71. package/build/list-item/utils.js.map +1 -1
  72. package/build/loginout/index.js +11 -1
  73. package/build/loginout/index.js.map +1 -1
  74. package/build/media-text/deprecated.js +4 -6
  75. package/build/media-text/deprecated.js.map +1 -1
  76. package/build/media-text/edit.js +13 -11
  77. package/build/media-text/edit.js.map +1 -1
  78. package/build/media-text/media-container.js +3 -3
  79. package/build/media-text/media-container.js.map +1 -1
  80. package/build/media-text/save.js +1 -3
  81. package/build/media-text/save.js.map +1 -1
  82. package/build/navigation/constants.js +15 -0
  83. package/build/navigation/constants.js.map +1 -0
  84. package/build/navigation/edit/index.js +16 -26
  85. package/build/navigation/edit/index.js.map +1 -1
  86. package/build/navigation/edit/inner-blocks.js +5 -7
  87. package/build/navigation/edit/inner-blocks.js.map +1 -1
  88. package/build/navigation/edit/leaf-more-menu.js +148 -0
  89. package/build/navigation/edit/leaf-more-menu.js.map +1 -0
  90. package/build/navigation/edit/menu-inspector-controls.js +53 -8
  91. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  92. package/build/navigation/edit/navigation-menu-delete-control.js +6 -6
  93. package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  94. package/build/navigation/edit/unsaved-inner-blocks.js +12 -25
  95. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  96. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
  97. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  98. package/build/navigation/interactivity.js +157 -0
  99. package/build/navigation/interactivity.js.map +1 -0
  100. package/build/navigation-link/edit.js +7 -5
  101. package/build/navigation-link/edit.js.map +1 -1
  102. package/build/navigation-link/update-attributes.js +5 -5
  103. package/build/navigation-link/update-attributes.js.map +1 -1
  104. package/build/navigation-submenu/edit.js +7 -5
  105. package/build/navigation-submenu/edit.js.map +1 -1
  106. package/build/paragraph/index.js +5 -1
  107. package/build/paragraph/index.js.map +1 -1
  108. package/build/paragraph/transforms.js +5 -1
  109. package/build/paragraph/transforms.js.map +1 -1
  110. package/build/pattern/edit.js +42 -8
  111. package/build/pattern/edit.js.map +1 -1
  112. package/build/pattern/index.js +12 -5
  113. package/build/pattern/index.js.map +1 -1
  114. package/build/pattern/v1/edit.js +57 -0
  115. package/build/pattern/v1/edit.js.map +1 -0
  116. package/build/post-author-name/edit.js +1 -1
  117. package/build/post-author-name/edit.js.map +1 -1
  118. package/build/post-featured-image/edit.js +1 -2
  119. package/build/post-featured-image/edit.js.map +1 -1
  120. package/build/post-featured-image/overlay.js +5 -0
  121. package/build/post-featured-image/overlay.js.map +1 -1
  122. package/build/post-title/edit.js +24 -7
  123. package/build/post-title/edit.js.map +1 -1
  124. package/build/preformatted/edit.native.js +3 -2
  125. package/build/preformatted/edit.native.js.map +1 -1
  126. package/build/quote/transforms.js +23 -37
  127. package/build/quote/transforms.js.map +1 -1
  128. package/build/read-more/edit.js +1 -1
  129. package/build/read-more/edit.js.map +1 -1
  130. package/build/search/edit.js +9 -1
  131. package/build/search/edit.js.map +1 -1
  132. package/build/site-title/edit/index.js +1 -1
  133. package/build/site-title/edit/index.js.map +1 -1
  134. package/build/social-link/edit.js +21 -4
  135. package/build/social-link/edit.js.map +1 -1
  136. package/build/social-links/edit.js +2 -2
  137. package/build/social-links/edit.js.map +1 -1
  138. package/build/template-part/edit/index.js +1 -7
  139. package/build/template-part/edit/index.js.map +1 -1
  140. package/build/template-part/edit/utils/hooks.js +2 -2
  141. package/build/template-part/edit/utils/hooks.js.map +1 -1
  142. package/build/utils/interactivity/constants.js +9 -0
  143. package/build/utils/interactivity/constants.js.map +1 -0
  144. package/build/utils/interactivity/directives.js +236 -0
  145. package/build/utils/interactivity/directives.js.map +1 -0
  146. package/build/utils/interactivity/hooks.js +176 -0
  147. package/build/utils/interactivity/hooks.js.map +1 -0
  148. package/build/utils/interactivity/hydration.js +34 -0
  149. package/build/utils/interactivity/hydration.js.map +1 -0
  150. package/build/utils/interactivity/index.js +34 -0
  151. package/build/utils/interactivity/index.js.map +1 -0
  152. package/build/utils/interactivity/portals.js +108 -0
  153. package/build/utils/interactivity/portals.js.map +1 -0
  154. package/build/utils/interactivity/store.js +67 -0
  155. package/build/utils/interactivity/store.js.map +1 -0
  156. package/build/utils/interactivity/utils.js +87 -0
  157. package/build/utils/interactivity/utils.js.map +1 -0
  158. package/build/utils/interactivity/vdom.js +109 -0
  159. package/build/utils/interactivity/vdom.js.map +1 -0
  160. package/build-module/block/edit.native.js +7 -1
  161. package/build-module/block/edit.native.js.map +1 -1
  162. package/build-module/code/index.js +1 -0
  163. package/build-module/code/index.js.map +1 -1
  164. package/build-module/column/index.js +1 -1
  165. package/build-module/columns/transforms.js +1 -5
  166. package/build-module/columns/transforms.js.map +1 -1
  167. package/build-module/comment-author-name/edit.js +1 -1
  168. package/build-module/comment-author-name/edit.js.map +1 -1
  169. package/build-module/comment-edit-link/edit.js +1 -1
  170. package/build-module/comment-edit-link/edit.js.map +1 -1
  171. package/build-module/cover/edit/inspector-controls.js +1 -1
  172. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  173. package/build-module/cover/edit/resizable-cover-popover.js +3 -3
  174. package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
  175. package/build-module/cover/index.js +1 -1
  176. package/build-module/cover/variations.js +1 -1
  177. package/build-module/cover/variations.js.map +1 -1
  178. package/build-module/details/edit.js +20 -6
  179. package/build-module/details/edit.js.map +1 -1
  180. package/build-module/details/index.js +14 -10
  181. package/build-module/details/index.js.map +1 -1
  182. package/build-module/details/save.js +5 -2
  183. package/build-module/details/save.js.map +1 -1
  184. package/build-module/embed/variations.js +2 -2
  185. package/build-module/embed/variations.js.map +1 -1
  186. package/build-module/file/interactivity.js +15 -0
  187. package/build-module/file/interactivity.js.map +1 -0
  188. package/build-module/file/{utils.js → utils/index.js} +1 -1
  189. package/build-module/file/utils/index.js.map +1 -0
  190. package/build-module/file/view.js +1 -1
  191. package/build-module/file/view.js.map +1 -1
  192. package/build-module/freeform/modal.js +19 -18
  193. package/build-module/freeform/modal.js.map +1 -1
  194. package/build-module/gallery/edit.js +2 -8
  195. package/build-module/gallery/edit.js.map +1 -1
  196. package/build-module/gallery/v1/edit.js +1 -6
  197. package/build-module/gallery/v1/edit.js.map +1 -1
  198. package/build-module/gallery/v1/gallery-image.native.js +1 -2
  199. package/build-module/gallery/v1/gallery-image.native.js.map +1 -1
  200. package/build-module/group/transforms.js +0 -5
  201. package/build-module/group/transforms.js.map +1 -1
  202. package/build-module/image/deprecated.js +2 -3
  203. package/build-module/image/deprecated.js.map +1 -1
  204. package/build-module/image/edit.js +12 -11
  205. package/build-module/image/edit.js.map +1 -1
  206. package/build-module/image/image.js +7 -11
  207. package/build-module/image/image.js.map +1 -1
  208. package/build-module/image/index.js +3 -0
  209. package/build-module/image/index.js.map +1 -1
  210. package/build-module/image/interactivity.js +99 -0
  211. package/build-module/image/interactivity.js.map +1 -0
  212. package/build-module/image/save.js +2 -3
  213. package/build-module/image/save.js.map +1 -1
  214. package/build-module/image/utils.js +10 -17
  215. package/build-module/image/utils.js.map +1 -1
  216. package/build-module/index.js +0 -4
  217. package/build-module/index.js.map +1 -1
  218. package/build-module/index.native.js +1 -1
  219. package/build-module/index.native.js.map +1 -1
  220. package/build-module/latest-posts/edit.native.js +1 -2
  221. package/build-module/latest-posts/edit.native.js.map +1 -1
  222. package/build-module/list/edit.js +1 -1
  223. package/build-module/list/edit.js.map +1 -1
  224. package/build-module/list-item/edit.native.js +1 -1
  225. package/build-module/list-item/edit.native.js.map +1 -1
  226. package/build-module/list-item/transforms.js +5 -2
  227. package/build-module/list-item/transforms.js.map +1 -1
  228. package/build-module/list-item/utils.js +5 -1
  229. package/build-module/list-item/utils.js.map +1 -1
  230. package/build-module/loginout/index.js +11 -1
  231. package/build-module/loginout/index.js.map +1 -1
  232. package/build-module/media-text/deprecated.js +4 -5
  233. package/build-module/media-text/deprecated.js.map +1 -1
  234. package/build-module/media-text/edit.js +13 -12
  235. package/build-module/media-text/edit.js.map +1 -1
  236. package/build-module/media-text/media-container.js +3 -3
  237. package/build-module/media-text/media-container.js.map +1 -1
  238. package/build-module/media-text/save.js +1 -2
  239. package/build-module/media-text/save.js.map +1 -1
  240. package/build-module/navigation/constants.js +6 -0
  241. package/build-module/navigation/constants.js.map +1 -0
  242. package/build-module/navigation/edit/index.js +18 -27
  243. package/build-module/navigation/edit/index.js.map +1 -1
  244. package/build-module/navigation/edit/inner-blocks.js +2 -4
  245. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  246. package/build-module/navigation/edit/leaf-more-menu.js +132 -0
  247. package/build-module/navigation/edit/leaf-more-menu.js.map +1 -0
  248. package/build-module/navigation/edit/menu-inspector-controls.js +52 -9
  249. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  250. package/build-module/navigation/edit/navigation-menu-delete-control.js +7 -7
  251. package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  252. package/build-module/navigation/edit/unsaved-inner-blocks.js +9 -20
  253. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  254. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
  255. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  256. package/build-module/navigation/interactivity.js +154 -0
  257. package/build-module/navigation/interactivity.js.map +1 -0
  258. package/build-module/navigation-link/edit.js +7 -5
  259. package/build-module/navigation-link/edit.js.map +1 -1
  260. package/build-module/navigation-link/update-attributes.js +4 -4
  261. package/build-module/navigation-link/update-attributes.js.map +1 -1
  262. package/build-module/navigation-submenu/edit.js +7 -5
  263. package/build-module/navigation-submenu/edit.js.map +1 -1
  264. package/build-module/paragraph/index.js +5 -1
  265. package/build-module/paragraph/index.js.map +1 -1
  266. package/build-module/paragraph/transforms.js +5 -1
  267. package/build-module/paragraph/transforms.js.map +1 -1
  268. package/build-module/pattern/edit.js +42 -9
  269. package/build-module/pattern/edit.js.map +1 -1
  270. package/build-module/pattern/index.js +12 -3
  271. package/build-module/pattern/index.js.map +1 -1
  272. package/build-module/pattern/v1/edit.js +48 -0
  273. package/build-module/pattern/v1/edit.js.map +1 -0
  274. package/build-module/post-author-name/edit.js +1 -1
  275. package/build-module/post-author-name/edit.js.map +1 -1
  276. package/build-module/post-featured-image/edit.js +1 -2
  277. package/build-module/post-featured-image/edit.js.map +1 -1
  278. package/build-module/post-featured-image/overlay.js +5 -0
  279. package/build-module/post-featured-image/overlay.js.map +1 -1
  280. package/build-module/post-title/edit.js +23 -7
  281. package/build-module/post-title/edit.js.map +1 -1
  282. package/build-module/preformatted/edit.native.js +3 -2
  283. package/build-module/preformatted/edit.native.js.map +1 -1
  284. package/build-module/quote/transforms.js +23 -37
  285. package/build-module/quote/transforms.js.map +1 -1
  286. package/build-module/read-more/edit.js +1 -1
  287. package/build-module/read-more/edit.js.map +1 -1
  288. package/build-module/search/edit.js +9 -1
  289. package/build-module/search/edit.js.map +1 -1
  290. package/build-module/site-title/edit/index.js +1 -1
  291. package/build-module/site-title/edit/index.js.map +1 -1
  292. package/build-module/social-link/edit.js +20 -5
  293. package/build-module/social-link/edit.js.map +1 -1
  294. package/build-module/social-links/edit.js +2 -2
  295. package/build-module/social-links/edit.js.map +1 -1
  296. package/build-module/template-part/edit/index.js +1 -6
  297. package/build-module/template-part/edit/index.js.map +1 -1
  298. package/build-module/template-part/edit/utils/hooks.js +1 -1
  299. package/build-module/template-part/edit/utils/hooks.js.map +1 -1
  300. package/build-module/utils/interactivity/constants.js +2 -0
  301. package/build-module/utils/interactivity/constants.js.map +1 -0
  302. package/build-module/utils/interactivity/directives.js +220 -0
  303. package/build-module/utils/interactivity/directives.js.map +1 -0
  304. package/build-module/utils/interactivity/hooks.js +162 -0
  305. package/build-module/utils/interactivity/hooks.js.map +1 -0
  306. package/build-module/utils/interactivity/hydration.js +21 -0
  307. package/build-module/utils/interactivity/hydration.js.map +1 -0
  308. package/build-module/utils/interactivity/index.js +17 -0
  309. package/build-module/utils/interactivity/index.js.map +1 -0
  310. package/build-module/utils/interactivity/portals.js +100 -0
  311. package/build-module/utils/interactivity/portals.js.map +1 -0
  312. package/build-module/utils/interactivity/store.js +56 -0
  313. package/build-module/utils/interactivity/store.js.map +1 -0
  314. package/build-module/utils/interactivity/utils.js +75 -0
  315. package/build-module/utils/interactivity/utils.js.map +1 -0
  316. package/build-module/utils/interactivity/vdom.js +97 -0
  317. package/build-module/utils/interactivity/vdom.js.map +1 -0
  318. package/build-style/common-rtl.css +1 -1
  319. package/build-style/common.css +1 -1
  320. package/build-style/cover/style-rtl.css +3 -2
  321. package/build-style/cover/style.css +3 -2
  322. package/build-style/{details-summary → details}/editor-rtl.css +1 -1
  323. package/build-style/{details-summary → details}/editor.css +1 -1
  324. package/build-style/details/style-rtl.css +14 -0
  325. package/build-style/details/style.css +14 -0
  326. package/build-style/editor-rtl.css +71 -5
  327. package/build-style/editor.css +71 -5
  328. package/build-style/file/editor-rtl.css +3 -0
  329. package/build-style/file/editor.css +3 -0
  330. package/build-style/freeform/editor-rtl.css +29 -0
  331. package/build-style/freeform/editor.css +29 -0
  332. package/build-style/gallery/editor-rtl.css +0 -4
  333. package/build-style/gallery/editor.css +0 -4
  334. package/build-style/gallery/style-rtl.css +2 -4
  335. package/build-style/gallery/style.css +2 -4
  336. package/build-style/image/style-rtl.css +98 -0
  337. package/build-style/image/style.css +98 -0
  338. package/build-style/navigation/editor-rtl.css +36 -0
  339. package/build-style/navigation/editor.css +36 -0
  340. package/build-style/post-comments-form/style-rtl.css +1 -1
  341. package/build-style/post-comments-form/style.css +1 -1
  342. package/build-style/search/editor-rtl.css +1 -0
  343. package/build-style/search/editor.css +1 -0
  344. package/build-style/site-logo/editor-rtl.css +1 -0
  345. package/build-style/site-logo/editor.css +1 -0
  346. package/build-style/style-rtl.css +116 -10
  347. package/build-style/style.css +116 -10
  348. package/build-style/video/style-rtl.css +1 -2
  349. package/build-style/video/style.css +1 -2
  350. package/package.json +37 -33
  351. package/src/block/edit.native.js +18 -4
  352. package/src/buttons/test/edit.native.js +0 -9
  353. package/src/code/block.json +1 -0
  354. package/src/column/block.json +1 -1
  355. package/src/columns/test/__snapshots__/transforms.native.js.snap +1 -1
  356. package/src/columns/test/transforms.native.js +3 -5
  357. package/src/columns/transforms.js +2 -8
  358. package/src/comment-author-name/edit.js +1 -1
  359. package/src/comment-edit-link/edit.js +1 -1
  360. package/src/comment-template/index.php +8 -7
  361. package/src/comments/index.php +1 -6
  362. package/src/cover/block.json +1 -1
  363. package/src/cover/edit/inspector-controls.js +56 -54
  364. package/src/cover/edit/resizable-cover-popover.js +2 -1
  365. package/src/cover/style.scss +5 -0
  366. package/src/cover/test/edit.js +56 -2
  367. package/src/cover/variations.js +1 -3
  368. package/src/details/block.json +8 -6
  369. package/src/details/edit.js +27 -5
  370. package/src/details/editor.scss +3 -0
  371. package/src/details/index.js +10 -5
  372. package/src/details/save.js +5 -1
  373. package/src/details/style.scss +16 -0
  374. package/src/editor.scss +1 -1
  375. package/src/embed/variations.js +2 -2
  376. package/src/file/editor.scss +4 -0
  377. package/src/file/interactivity.js +15 -0
  378. package/src/file/view.js +4 -1
  379. package/src/freeform/editor.scss +45 -0
  380. package/src/freeform/modal.js +22 -19
  381. package/src/gallery/edit.js +5 -8
  382. package/src/gallery/editor.scss +0 -6
  383. package/src/gallery/test/index.native.js +48 -3
  384. package/src/gallery/v1/edit.js +1 -6
  385. package/src/gallery/v1/gallery-image.native.js +1 -2
  386. package/src/group/test/__snapshots__/transforms.native.js.snap +1 -1
  387. package/src/group/test/transforms.native.js +3 -5
  388. package/src/group/transforms.js +0 -7
  389. package/src/image/block.json +3 -0
  390. package/src/image/deprecated.js +2 -3
  391. package/src/image/edit.js +18 -18
  392. package/src/image/image.js +8 -11
  393. package/src/image/index.php +75 -2
  394. package/src/image/interactivity.js +113 -0
  395. package/src/image/save.js +4 -3
  396. package/src/image/style.scss +113 -0
  397. package/src/image/test/edit.native.js +38 -16
  398. package/src/image/utils.js +11 -18
  399. package/src/index.js +0 -4
  400. package/src/index.native.js +1 -0
  401. package/src/latest-posts/edit.native.js +1 -4
  402. package/src/list/edit.js +1 -1
  403. package/src/list/test/edit.native.js +80 -1
  404. package/src/list-item/edit.native.js +1 -1
  405. package/src/list-item/transforms.js +4 -2
  406. package/src/loginout/block.json +11 -1
  407. package/src/media-text/deprecated.js +4 -5
  408. package/src/media-text/edit.js +12 -10
  409. package/src/media-text/media-container.js +3 -3
  410. package/src/media-text/save.js +1 -2
  411. package/src/navigation/constants.js +21 -0
  412. package/src/navigation/edit/index.js +71 -83
  413. package/src/navigation/edit/inner-blocks.js +6 -16
  414. package/src/navigation/edit/leaf-more-menu.js +170 -0
  415. package/src/navigation/edit/menu-inspector-controls.js +78 -10
  416. package/src/navigation/edit/navigation-menu-delete-control.js +29 -29
  417. package/src/navigation/edit/unsaved-inner-blocks.js +12 -40
  418. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
  419. package/src/navigation/editor.scss +10 -0
  420. package/src/navigation/index.php +213 -204
  421. package/src/navigation/interactivity.js +151 -0
  422. package/src/navigation-link/edit.js +9 -3
  423. package/src/navigation-link/update-attributes.js +2 -2
  424. package/src/navigation-submenu/edit.js +9 -3
  425. package/src/paragraph/block.json +5 -1
  426. package/src/pattern/block.json +4 -0
  427. package/src/pattern/edit.js +53 -16
  428. package/src/pattern/index.js +5 -4
  429. package/src/pattern/index.php +14 -1
  430. package/src/pattern/v1/edit.js +57 -0
  431. package/src/post-author-name/edit.js +1 -1
  432. package/src/post-comments-form/style.scss +3 -1
  433. package/src/post-featured-image/edit.js +1 -1
  434. package/src/post-featured-image/index.php +1 -1
  435. package/src/post-featured-image/overlay.js +4 -0
  436. package/src/post-terms/index.php +2 -2
  437. package/src/post-title/edit.js +57 -44
  438. package/src/preformatted/edit.native.js +1 -3
  439. package/src/quote/test/__snapshots__/transforms.native.js.snap +1 -1
  440. package/src/quote/test/transforms.native.js +3 -5
  441. package/src/quote/transforms.js +9 -19
  442. package/src/read-more/edit.js +1 -1
  443. package/src/search/edit.js +9 -4
  444. package/src/search/editor.scss +1 -0
  445. package/src/site-logo/editor.scss +2 -1
  446. package/src/site-title/edit/index.js +1 -1
  447. package/src/social-link/edit.js +51 -26
  448. package/src/social-links/edit.js +33 -31
  449. package/src/style.scss +0 -1
  450. package/src/template-part/edit/index.js +4 -6
  451. package/src/template-part/edit/utils/hooks.js +1 -1
  452. package/src/template-part/index.php +22 -7
  453. package/src/utils/interactivity/constants.js +1 -0
  454. package/src/utils/interactivity/directives.js +200 -0
  455. package/src/utils/interactivity/hooks.js +145 -0
  456. package/src/utils/interactivity/hydration.js +22 -0
  457. package/src/utils/interactivity/index.js +17 -0
  458. package/src/utils/interactivity/portals.js +98 -0
  459. package/src/utils/interactivity/store.js +45 -0
  460. package/src/utils/interactivity/utils.js +66 -0
  461. package/src/utils/interactivity/vdom.js +94 -0
  462. package/tsconfig.json +1 -0
  463. package/tsconfig.tsbuildinfo +1 -1
  464. package/build/details-content/edit.js +0 -34
  465. package/build/details-content/edit.js.map +0 -1
  466. package/build/details-content/index.js +0 -94
  467. package/build/details-content/index.js.map +0 -1
  468. package/build/details-content/save.js +0 -20
  469. package/build/details-content/save.js.map +0 -1
  470. package/build/details-summary/edit.js +0 -42
  471. package/build/details-summary/edit.js.map +0 -1
  472. package/build/details-summary/index.js +0 -97
  473. package/build/details-summary/index.js.map +0 -1
  474. package/build/details-summary/save.js +0 -24
  475. package/build/details-summary/save.js.map +0 -1
  476. package/build/file/utils.js.map +0 -1
  477. package/build-module/details-content/edit.js +0 -23
  478. package/build-module/details-content/edit.js.map +0 -1
  479. package/build-module/details-content/index.js +0 -76
  480. package/build-module/details-content/index.js.map +0 -1
  481. package/build-module/details-content/save.js +0 -11
  482. package/build-module/details-content/save.js.map +0 -1
  483. package/build-module/details-summary/edit.js +0 -30
  484. package/build-module/details-summary/edit.js.map +0 -1
  485. package/build-module/details-summary/index.js +0 -79
  486. package/build-module/details-summary/index.js.map +0 -1
  487. package/build-module/details-summary/save.js +0 -16
  488. package/build-module/details-summary/save.js.map +0 -1
  489. package/build-module/file/utils.js.map +0 -1
  490. package/build-style/details-summary/style-rtl.css +0 -91
  491. package/build-style/details-summary/style.css +0 -91
  492. package/src/details-content/block.json +0 -50
  493. package/src/details-content/edit.js +0 -29
  494. package/src/details-content/index.js +0 -23
  495. package/src/details-content/save.js +0 -12
  496. package/src/details-summary/block.json +0 -53
  497. package/src/details-summary/edit.js +0 -27
  498. package/src/details-summary/editor.scss +0 -3
  499. package/src/details-summary/index.js +0 -23
  500. package/src/details-summary/save.js +0 -13
  501. package/src/details-summary/style.scss +0 -3
  502. /package/src/file/{utils.js → utils/index.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/media-text/edit.js"],"names":["classnames","__","useSelect","useState","useRef","BlockControls","BlockVerticalAlignmentControl","useInnerBlocksProps","InspectorControls","useBlockProps","__experimentalImageURLInputUI","ImageURLInputUI","__experimentalImageSizeControl","ImageSizeControl","store","blockEditorStore","PanelBody","RangeControl","TextareaControl","ToggleControl","ToolbarButton","ExternalLink","FocalPointPicker","isBlobURL","getBlobTypeByURL","pullLeft","pullRight","coreStore","MediaContainer","DEFAULT_MEDIA_SIZE_SLUG","WIDTH_CONSTRAINT_PERCENTAGE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","TEMPLATE","applyWidthConstraints","width","Math","max","min","getImageSourceUrlBySizeSlug","image","slug","media_details","sizes","source_url","attributesFromMedia","attributes","linkDestination","href","setAttributes","media","url","mediaAlt","undefined","mediaId","mediaType","mediaUrl","mediaLink","focalPoint","type","src","media_type","large","newHref","link","alt","id","MediaTextEdit","isSelected","clientId","imageFill","isStackedOnMobile","linkClass","linkTarget","mediaPosition","mediaWidth","rel","verticalAlignment","allowedBlocks","mediaSizeSlug","imageSizes","isContentLocked","select","__unstableGetContentLockingParent","getSettings","getMedia","context","refMediaContainer","imperativeFocalPointPreview","value","style","current","resizable","x","y","backgroundPosition","temporaryMediaWidth","setTemporaryMediaWidth","onSelectMedia","onSetHref","props","onWidthChange","commitWidthChange","classNames","widthString","gridTemplateColumns","msGridColumns","onMediaAltChange","newMediaAlt","onVerticalAlignmentChange","alignment","imageSizeOptions","filter","map","name","label","updateImage","newMediaSizeSlug","newUrl","mediaTextGeneralSettings","blockProps","className","innerBlocksProps","template"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tBlockVerticalAlignmentControl,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tTextareaControl,\n\tToggleControl,\n\tToolbarButton,\n\tExternalLink,\n\tFocalPointPicker,\n} from '@wordpress/components';\nimport { isBlobURL, getBlobTypeByURL } from '@wordpress/blob';\nimport { pullLeft, pullRight } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport MediaContainer from './media-container';\nimport {\n\tDEFAULT_MEDIA_SIZE_SLUG,\n\tWIDTH_CONSTRAINT_PERCENTAGE,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_ATTACHMENT,\n\tTEMPLATE,\n} from './constants';\n\n// this limits the resize to a safe zone to avoid making broken layouts\nconst applyWidthConstraints = ( width ) =>\n\tMath.max(\n\t\tWIDTH_CONSTRAINT_PERCENTAGE,\n\t\tMath.min( width, 100 - WIDTH_CONSTRAINT_PERCENTAGE )\n\t);\n\nfunction getImageSourceUrlBySizeSlug( image, slug ) {\n\t// eslint-disable-next-line camelcase\n\treturn image?.media_details?.sizes?.[ slug ]?.source_url;\n}\n\nfunction attributesFromMedia( {\n\tattributes: { linkDestination, href },\n\tsetAttributes,\n} ) {\n\treturn ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tmediaAlt: undefined,\n\t\t\t\tmediaId: undefined,\n\t\t\t\tmediaType: undefined,\n\t\t\t\tmediaUrl: undefined,\n\t\t\t\tmediaLink: undefined,\n\t\t\t\thref: undefined,\n\t\t\t\tfocalPoint: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tmedia.type = getBlobTypeByURL( media.url );\n\t\t}\n\n\t\tlet mediaType;\n\t\tlet src;\n\t\t// For media selections originated from a file upload.\n\t\tif ( media.media_type ) {\n\t\t\tif ( media.media_type === 'image' ) {\n\t\t\t\tmediaType = 'image';\n\t\t\t} else {\n\t\t\t\t// only images and videos are accepted so if the media_type is not an image we can assume it is a video.\n\t\t\t\t// video contain the media type of 'file' in the object returned from the rest api.\n\t\t\t\tmediaType = 'video';\n\t\t\t}\n\t\t} else {\n\t\t\t// For media selections originated from existing files in the media library.\n\t\t\tmediaType = media.type;\n\t\t}\n\n\t\tif ( mediaType === 'image' ) {\n\t\t\t// Try the \"large\" size URL, falling back to the \"full\" size URL below.\n\t\t\tsrc =\n\t\t\t\tmedia.sizes?.large?.url ||\n\t\t\t\t// eslint-disable-next-line camelcase\n\t\t\t\tmedia.media_details?.sizes?.large?.source_url;\n\t\t}\n\n\t\tlet newHref = href;\n\t\tif ( linkDestination === LINK_DESTINATION_MEDIA ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.url;\n\t\t}\n\n\t\t// Check if the image is linked to the attachment page.\n\t\tif ( linkDestination === LINK_DESTINATION_ATTACHMENT ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.link;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaAlt: media.alt,\n\t\t\tmediaId: media.id,\n\t\t\tmediaType,\n\t\t\tmediaUrl: src || media.url,\n\t\t\tmediaLink: media.link || undefined,\n\t\t\thref: newHref,\n\t\t\tfocalPoint: undefined,\n\t\t} );\n\t};\n}\n\nfunction MediaTextEdit( { attributes, isSelected, setAttributes, clientId } ) {\n\tconst {\n\t\tfocalPoint,\n\t\thref,\n\t\timageFill,\n\t\tisStackedOnMobile,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\tlinkTarget,\n\t\tmediaAlt,\n\t\tmediaId,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\trel,\n\t\tverticalAlignment,\n\t\tallowedBlocks,\n\t} = attributes;\n\tconst mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\n\tconst { imageSizes, image, isContentLocked } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __unstableGetContentLockingParent, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tisContentLocked:\n\t\t\t\t\t!! __unstableGetContentLockingParent( clientId ),\n\t\t\t\timage:\n\t\t\t\t\tmediaId && isSelected\n\t\t\t\t\t\t? select( coreStore ).getMedia( mediaId, {\n\t\t\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: null,\n\t\t\t\timageSizes: getSettings()?.imageSizes,\n\t\t\t};\n\t\t},\n\n\t\t[ isSelected, mediaId, clientId ]\n\t);\n\n\tconst refMediaContainer = useRef();\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst { style } = refMediaContainer.current.resizable;\n\t\tconst { x, y } = value;\n\t\tstyle.backgroundPosition = `${ x * 100 }% ${ y * 100 }%`;\n\t};\n\n\tconst [ temporaryMediaWidth, setTemporaryMediaWidth ] = useState( null );\n\n\tconst onSelectMedia = attributesFromMedia( { attributes, setAttributes } );\n\n\tconst onSetHref = ( props ) => {\n\t\tsetAttributes( props );\n\t};\n\n\tconst onWidthChange = ( width ) => {\n\t\tsetTemporaryMediaWidth( applyWidthConstraints( width ) );\n\t};\n\tconst commitWidthChange = ( width ) => {\n\t\tsetAttributes( {\n\t\t\tmediaWidth: applyWidthConstraints( width ),\n\t\t} );\n\t\tsetTemporaryMediaWidth( null );\n\t};\n\n\tconst classNames = classnames( {\n\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t'is-selected': isSelected,\n\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t'is-image-fill': imageFill,\n\t} );\n\tconst widthString = `${ temporaryMediaWidth || mediaWidth }%`;\n\tconst gridTemplateColumns =\n\t\t'right' === mediaPosition\n\t\t\t? `1fr ${ widthString }`\n\t\t\t: `${ widthString } 1fr`;\n\tconst style = {\n\t\tgridTemplateColumns,\n\t\tmsGridColumns: gridTemplateColumns,\n\t};\n\tconst onMediaAltChange = ( newMediaAlt ) => {\n\t\tsetAttributes( { mediaAlt: newMediaAlt } );\n\t};\n\tconst onVerticalAlignmentChange = ( alignment ) => {\n\t\tsetAttributes( { verticalAlignment: alignment } );\n\t};\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => getImageSourceUrlBySizeSlug( image, slug ) )\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\tconst updateImage = ( newMediaSizeSlug ) => {\n\t\tconst newUrl = getImageSourceUrlBySizeSlug( image, newMediaSizeSlug );\n\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaUrl: newUrl,\n\t\t\tmediaSizeSlug: newMediaSizeSlug,\n\t\t} );\n\t};\n\n\tconst mediaTextGeneralSettings = (\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\tonChange={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Crop image to fill entire column' ) }\n\t\t\t\t\tchecked={ imageFill }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\timageFill: ! imageFill,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ imageFill && mediaUrl && mediaType === 'image' && (\n\t\t\t\t<FocalPointPicker\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Focal point picker' ) }\n\t\t\t\t\turl={ mediaUrl }\n\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { focalPoint: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<TextareaControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\tvalue={ mediaAlt }\n\t\t\t\t\tonChange={ onMediaAltChange }\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t{ __( 'Describe the purpose of the image.' ) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ImageSizeControl\n\t\t\t\t\tonChangeImage={ updateImage }\n\t\t\t\t\tslug={ mediaSizeSlug }\n\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\tisResizable={ false }\n\t\t\t\t\timageSizeHelp={ __(\n\t\t\t\t\t\t'Select the size of the source image.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaUrl && (\n\t\t\t\t<RangeControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Media width' ) }\n\t\t\t\t\tvalue={ temporaryMediaWidth || mediaWidth }\n\t\t\t\t\tonChange={ commitWidthChange }\n\t\t\t\t\tmin={ WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t\t\tmax={ 100 - WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</PanelBody>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classNames,\n\t\tstyle,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: 'wp-block-media-text__content' },\n\t\t{ template: TEMPLATE, allowedBlocks }\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>{ mediaTextGeneralSettings }</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockVerticalAlignmentControl\n\t\t\t\t\t\t\tonChange={ onVerticalAlignmentChange }\n\t\t\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullLeft }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on left' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'left' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'left' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullRight }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on right' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'right' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'right' } )\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\n\t\t\t\t{ mediaType === 'image' && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaType={ mediaType }\n\t\t\t\t\t\tmediaUrl={ image && image.source_url }\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ mediaPosition === 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t\t<MediaContainer\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tonWidthChange={ onWidthChange }\n\t\t\t\t\tcommitWidthChange={ commitWidthChange }\n\t\t\t\t\tref={ refMediaContainer }\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tfocalPoint,\n\t\t\t\t\t\timageFill,\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tisStackedOnMobile,\n\t\t\t\t\t\tmediaAlt,\n\t\t\t\t\t\tmediaId,\n\t\t\t\t\t\tmediaPosition,\n\t\t\t\t\t\tmediaType,\n\t\t\t\t\t\tmediaUrl,\n\t\t\t\t\t\tmediaWidth,\n\t\t\t\t\t\tisContentLocked,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ mediaPosition !== 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default MediaTextEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/media-text/edit.js"],"names":["classnames","__","useSelect","useState","useRef","BlockControls","BlockVerticalAlignmentControl","useInnerBlocksProps","InspectorControls","useBlockProps","__experimentalImageURLInputUI","ImageURLInputUI","__experimentalImageSizeControl","ImageSizeControl","store","blockEditorStore","privateApis","blockEditorPrivateApis","PanelBody","RangeControl","TextareaControl","ToggleControl","ToolbarButton","ExternalLink","FocalPointPicker","isBlobURL","getBlobTypeByURL","pullLeft","pullRight","coreStore","MediaContainer","DEFAULT_MEDIA_SIZE_SLUG","WIDTH_CONSTRAINT_PERCENTAGE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","TEMPLATE","unlock","useBlockEditingMode","applyWidthConstraints","width","Math","max","min","getImageSourceUrlBySizeSlug","image","slug","media_details","sizes","source_url","attributesFromMedia","attributes","linkDestination","href","setAttributes","media","url","mediaAlt","undefined","mediaId","mediaType","mediaUrl","mediaLink","focalPoint","type","src","media_type","large","newHref","link","alt","id","MediaTextEdit","isSelected","imageFill","isStackedOnMobile","linkClass","linkTarget","mediaPosition","mediaWidth","rel","verticalAlignment","allowedBlocks","mediaSizeSlug","imageSizes","select","getSettings","getMedia","context","refMediaContainer","imperativeFocalPointPreview","value","style","current","resizable","x","y","backgroundPosition","temporaryMediaWidth","setTemporaryMediaWidth","onSelectMedia","onSetHref","props","onWidthChange","commitWidthChange","classNames","widthString","gridTemplateColumns","msGridColumns","onMediaAltChange","newMediaAlt","onVerticalAlignmentChange","alignment","imageSizeOptions","filter","map","name","label","updateImage","newMediaSizeSlug","newUrl","mediaTextGeneralSettings","blockProps","className","innerBlocksProps","template","blockEditingMode"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tBlockVerticalAlignmentControl,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tTextareaControl,\n\tToggleControl,\n\tToolbarButton,\n\tExternalLink,\n\tFocalPointPicker,\n} from '@wordpress/components';\nimport { isBlobURL, getBlobTypeByURL } from '@wordpress/blob';\nimport { pullLeft, pullRight } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport MediaContainer from './media-container';\nimport {\n\tDEFAULT_MEDIA_SIZE_SLUG,\n\tWIDTH_CONSTRAINT_PERCENTAGE,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_ATTACHMENT,\n\tTEMPLATE,\n} from './constants';\nimport { unlock } from '../private-apis';\n\nconst { useBlockEditingMode } = unlock( blockEditorPrivateApis );\n\n// this limits the resize to a safe zone to avoid making broken layouts\nconst applyWidthConstraints = ( width ) =>\n\tMath.max(\n\t\tWIDTH_CONSTRAINT_PERCENTAGE,\n\t\tMath.min( width, 100 - WIDTH_CONSTRAINT_PERCENTAGE )\n\t);\n\nfunction getImageSourceUrlBySizeSlug( image, slug ) {\n\t// eslint-disable-next-line camelcase\n\treturn image?.media_details?.sizes?.[ slug ]?.source_url;\n}\n\nfunction attributesFromMedia( {\n\tattributes: { linkDestination, href },\n\tsetAttributes,\n} ) {\n\treturn ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tmediaAlt: undefined,\n\t\t\t\tmediaId: undefined,\n\t\t\t\tmediaType: undefined,\n\t\t\t\tmediaUrl: undefined,\n\t\t\t\tmediaLink: undefined,\n\t\t\t\thref: undefined,\n\t\t\t\tfocalPoint: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tmedia.type = getBlobTypeByURL( media.url );\n\t\t}\n\n\t\tlet mediaType;\n\t\tlet src;\n\t\t// For media selections originated from a file upload.\n\t\tif ( media.media_type ) {\n\t\t\tif ( media.media_type === 'image' ) {\n\t\t\t\tmediaType = 'image';\n\t\t\t} else {\n\t\t\t\t// only images and videos are accepted so if the media_type is not an image we can assume it is a video.\n\t\t\t\t// video contain the media type of 'file' in the object returned from the rest api.\n\t\t\t\tmediaType = 'video';\n\t\t\t}\n\t\t} else {\n\t\t\t// For media selections originated from existing files in the media library.\n\t\t\tmediaType = media.type;\n\t\t}\n\n\t\tif ( mediaType === 'image' ) {\n\t\t\t// Try the \"large\" size URL, falling back to the \"full\" size URL below.\n\t\t\tsrc =\n\t\t\t\tmedia.sizes?.large?.url ||\n\t\t\t\t// eslint-disable-next-line camelcase\n\t\t\t\tmedia.media_details?.sizes?.large?.source_url;\n\t\t}\n\n\t\tlet newHref = href;\n\t\tif ( linkDestination === LINK_DESTINATION_MEDIA ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.url;\n\t\t}\n\n\t\t// Check if the image is linked to the attachment page.\n\t\tif ( linkDestination === LINK_DESTINATION_ATTACHMENT ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.link;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaAlt: media.alt,\n\t\t\tmediaId: media.id,\n\t\t\tmediaType,\n\t\t\tmediaUrl: src || media.url,\n\t\t\tmediaLink: media.link || undefined,\n\t\t\thref: newHref,\n\t\t\tfocalPoint: undefined,\n\t\t} );\n\t};\n}\n\nfunction MediaTextEdit( { attributes, isSelected, setAttributes } ) {\n\tconst {\n\t\tfocalPoint,\n\t\thref,\n\t\timageFill,\n\t\tisStackedOnMobile,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\tlinkTarget,\n\t\tmediaAlt,\n\t\tmediaId,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\trel,\n\t\tverticalAlignment,\n\t\tallowedBlocks,\n\t} = attributes;\n\tconst mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\n\tconst { imageSizes, image } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\timage:\n\t\t\t\t\tmediaId && isSelected\n\t\t\t\t\t\t? select( coreStore ).getMedia( mediaId, {\n\t\t\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: null,\n\t\t\t\timageSizes: getSettings()?.imageSizes,\n\t\t\t};\n\t\t},\n\t\t[ isSelected, mediaId ]\n\t);\n\n\tconst refMediaContainer = useRef();\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst { style } = refMediaContainer.current.resizable;\n\t\tconst { x, y } = value;\n\t\tstyle.backgroundPosition = `${ x * 100 }% ${ y * 100 }%`;\n\t};\n\n\tconst [ temporaryMediaWidth, setTemporaryMediaWidth ] = useState( null );\n\n\tconst onSelectMedia = attributesFromMedia( { attributes, setAttributes } );\n\n\tconst onSetHref = ( props ) => {\n\t\tsetAttributes( props );\n\t};\n\n\tconst onWidthChange = ( width ) => {\n\t\tsetTemporaryMediaWidth( applyWidthConstraints( width ) );\n\t};\n\tconst commitWidthChange = ( width ) => {\n\t\tsetAttributes( {\n\t\t\tmediaWidth: applyWidthConstraints( width ),\n\t\t} );\n\t\tsetTemporaryMediaWidth( null );\n\t};\n\n\tconst classNames = classnames( {\n\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t'is-selected': isSelected,\n\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t'is-image-fill': imageFill,\n\t} );\n\tconst widthString = `${ temporaryMediaWidth || mediaWidth }%`;\n\tconst gridTemplateColumns =\n\t\t'right' === mediaPosition\n\t\t\t? `1fr ${ widthString }`\n\t\t\t: `${ widthString } 1fr`;\n\tconst style = {\n\t\tgridTemplateColumns,\n\t\tmsGridColumns: gridTemplateColumns,\n\t};\n\tconst onMediaAltChange = ( newMediaAlt ) => {\n\t\tsetAttributes( { mediaAlt: newMediaAlt } );\n\t};\n\tconst onVerticalAlignmentChange = ( alignment ) => {\n\t\tsetAttributes( { verticalAlignment: alignment } );\n\t};\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => getImageSourceUrlBySizeSlug( image, slug ) )\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\tconst updateImage = ( newMediaSizeSlug ) => {\n\t\tconst newUrl = getImageSourceUrlBySizeSlug( image, newMediaSizeSlug );\n\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaUrl: newUrl,\n\t\t\tmediaSizeSlug: newMediaSizeSlug,\n\t\t} );\n\t};\n\n\tconst mediaTextGeneralSettings = (\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\tonChange={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Crop image to fill entire column' ) }\n\t\t\t\t\tchecked={ imageFill }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\timageFill: ! imageFill,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ imageFill && mediaUrl && mediaType === 'image' && (\n\t\t\t\t<FocalPointPicker\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Focal point picker' ) }\n\t\t\t\t\turl={ mediaUrl }\n\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { focalPoint: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<TextareaControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\tvalue={ mediaAlt }\n\t\t\t\t\tonChange={ onMediaAltChange }\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t{ __( 'Describe the purpose of the image.' ) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ImageSizeControl\n\t\t\t\t\tonChangeImage={ updateImage }\n\t\t\t\t\tslug={ mediaSizeSlug }\n\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\tisResizable={ false }\n\t\t\t\t\timageSizeHelp={ __(\n\t\t\t\t\t\t'Select the size of the source image.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaUrl && (\n\t\t\t\t<RangeControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Media width' ) }\n\t\t\t\t\tvalue={ temporaryMediaWidth || mediaWidth }\n\t\t\t\t\tonChange={ commitWidthChange }\n\t\t\t\t\tmin={ WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t\t\tmax={ 100 - WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</PanelBody>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classNames,\n\t\tstyle,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: 'wp-block-media-text__content' },\n\t\t{ template: TEMPLATE, allowedBlocks }\n\t);\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>{ mediaTextGeneralSettings }</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockVerticalAlignmentControl\n\t\t\t\t\t\t\tonChange={ onVerticalAlignmentChange }\n\t\t\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullLeft }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on left' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'left' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'left' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullRight }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on right' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'right' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'right' } )\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\n\t\t\t\t{ mediaType === 'image' && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaType={ mediaType }\n\t\t\t\t\t\tmediaUrl={ image && image.source_url }\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ mediaPosition === 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t\t<MediaContainer\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tonWidthChange={ onWidthChange }\n\t\t\t\t\tcommitWidthChange={ commitWidthChange }\n\t\t\t\t\tref={ refMediaContainer }\n\t\t\t\t\tenableResize={ blockEditingMode === 'default' }\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tfocalPoint,\n\t\t\t\t\t\timageFill,\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tisStackedOnMobile,\n\t\t\t\t\t\tmediaAlt,\n\t\t\t\t\t\tmediaId,\n\t\t\t\t\t\tmediaPosition,\n\t\t\t\t\t\tmediaType,\n\t\t\t\t\t\tmediaUrl,\n\t\t\t\t\t\tmediaWidth,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ mediaPosition !== 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default MediaTextEdit;\n"]}
@@ -110,7 +110,7 @@ function MediaContainer(props, ref) {
110
110
  mediaWidth,
111
111
  onSelectMedia,
112
112
  onWidthChange,
113
- isContentLocked
113
+ enableResize
114
114
  } = props;
115
115
  const isTemporaryMedia = !mediaId && isBlobURL(mediaUrl);
116
116
  const {
@@ -132,8 +132,8 @@ function MediaContainer(props, ref) {
132
132
  };
133
133
 
134
134
  const enablePositions = {
135
- right: !isContentLocked && mediaPosition === 'left',
136
- left: !isContentLocked && mediaPosition === 'right'
135
+ right: enableResize && mediaPosition === 'left',
136
+ left: enableResize && mediaPosition === 'right'
137
137
  };
138
138
  const backgroundStyles = mediaType === 'image' && imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};
139
139
  const mediaTypeRenderers = {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/media-text/media-container.js"],"names":["classnames","ResizableBox","Spinner","BlockControls","BlockIcon","MediaPlaceholder","MediaReplaceFlow","store","blockEditorStore","__","useViewportMatch","useDispatch","forwardRef","isBlobURL","noticesStore","media","icon","ALLOWED_MEDIA_TYPES","noop","imageFillStyles","url","focalPoint","backgroundImage","backgroundPosition","Math","round","x","y","ResizableBoxContainer","ref","isSelected","isStackedOnMobile","props","isMobile","ToolbarEditButton","mediaId","mediaUrl","onSelectMedia","PlaceholderContainer","className","createErrorNotice","onUploadError","message","type","title","MediaContainer","commitWidthChange","imageFill","mediaAlt","mediaPosition","mediaType","mediaWidth","onWidthChange","isContentLocked","isTemporaryMedia","toggleSelection","onResizeStart","onResize","event","direction","elt","parseInt","style","width","onResizeStop","enablePositions","right","left","backgroundStyles","mediaTypeRenderers","image","video"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,YAAT,EAAuBC,OAAvB,QAAsC,uBAAtC;AACA,SACCC,aADD,EAECC,SAFD,EAGCC,gBAHD,EAICC,gBAJD,EAKCC,KAAK,IAAIC,gBALV,QAMO,yBANP;AAOA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,gBAAT,QAAiC,oBAAjC;AACA,SAASC,WAAT,QAA4B,iBAA5B;AACA,SAASC,UAAT,QAA2B,oBAA3B;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASN,KAAK,IAAIO,YAAlB,QAAsC,oBAAtC;AACA,SAASC,KAAK,IAAIC,IAAlB,QAA8B,kBAA9B;AAEA;AACA;AACA;;AACA,MAAMC,mBAAmB,GAAG,CAAE,OAAF,EAAW,OAAX,CAA5B;;AACA,MAAMC,IAAI,GAAG,MAAM,CAAE,CAArB;;AAEA,OAAO,SAASC,eAAT,CAA0BC,GAA1B,EAA+BC,UAA/B,EAA4C;AAClD,SAAOD,GAAG,GACP;AACAE,IAAAA,eAAe,EAAG,OAAOF,GAAK,GAD9B;AAEAG,IAAAA,kBAAkB,EAAEF,UAAU,GAC1B,GAAGG,IAAI,CAACC,KAAL,CAAYJ,UAAU,CAACK,CAAX,GAAe,GAA3B,CAAkC,KAAKF,IAAI,CAACC,KAAL,CAC3CJ,UAAU,CAACM,CAAX,GAAe,GAD4B,CAExC,GAHwB,GAI1B;AANJ,GADO,GASP,EATH;AAUA;AAED,MAAMC,qBAAqB,GAAGhB,UAAU,CACvC,OAA+CiB,GAA/C,KAAwD;AAAA,MAAtD;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,iBAAd;AAAiC,OAAGC;AAApC,GAAsD;AACvD,QAAMC,QAAQ,GAAGvB,gBAAgB,CAAE,OAAF,EAAW,GAAX,CAAjC;AACA,SACC,cAAC,YAAD;AACC,IAAA,GAAG,EAAGmB,GADP;AAEC,IAAA,UAAU,EACTC,UAAU,KAAM,CAAEG,QAAF,IAAc,CAAEF,iBAAtB;AAHZ,KAKMC,KALN,EADD;AASA,CAZsC,CAAxC;;AAeA,SAASE,iBAAT,QAAmE;AAAA,MAAvC;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,QAAX;AAAqBC,IAAAA;AAArB,GAAuC;AAClE,SACC,cAAC,aAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,cAAC,gBAAD;AACC,IAAA,OAAO,EAAGF,OADX;AAEC,IAAA,QAAQ,EAAGC,QAFZ;AAGC,IAAA,YAAY,EAAGnB,mBAHhB;AAIC,IAAA,MAAM,EAAC,iBAJR;AAKC,IAAA,QAAQ,EAAGoB;AALZ,IADD,CADD;AAWA;;AAED,SAASC,oBAAT,QAAwE;AAAA,MAAzC;AAAEC,IAAAA,SAAF;AAAaH,IAAAA,QAAb;AAAuBC,IAAAA;AAAvB,GAAyC;AACvE,QAAM;AAAEG,IAAAA;AAAF,MAAwB7B,WAAW,CAAEG,YAAF,CAAzC;;AAEA,QAAM2B,aAAa,GAAKC,OAAF,IAAe;AACpCF,IAAAA,iBAAiB,CAAEE,OAAF,EAAW;AAAEC,MAAAA,IAAI,EAAE;AAAR,KAAX,CAAjB;AACA,GAFD;;AAIA,SACC,cAAC,gBAAD;AACC,IAAA,IAAI,EAAG,cAAC,SAAD;AAAW,MAAA,IAAI,EAAG3B;AAAlB,MADR;AAEC,IAAA,MAAM,EAAG;AACR4B,MAAAA,KAAK,EAAEnC,EAAE,CAAE,YAAF;AADD,KAFV;AAKC,IAAA,SAAS,EAAG8B,SALb;AAMC,IAAA,QAAQ,EAAGF,aANZ;AAOC,IAAA,MAAM,EAAC,iBAPR;AAQC,IAAA,YAAY,EAAGpB,mBARhB;AASC,IAAA,OAAO,EAAGwB,aATX;AAUC,IAAA,mBAAmB,EAAGL;AAVvB,IADD;AAcA;;AAED,SAASS,cAAT,CAAyBb,KAAzB,EAAgCH,GAAhC,EAAsC;AACrC,QAAM;AACLU,IAAAA,SADK;AAELO,IAAAA,iBAFK;AAGLzB,IAAAA,UAHK;AAIL0B,IAAAA,SAJK;AAKLjB,IAAAA,UALK;AAMLC,IAAAA,iBANK;AAOLiB,IAAAA,QAPK;AAQLb,IAAAA,OARK;AASLc,IAAAA,aATK;AAULC,IAAAA,SAVK;AAWLd,IAAAA,QAXK;AAYLe,IAAAA,UAZK;AAaLd,IAAAA,aAbK;AAcLe,IAAAA,aAdK;AAeLC,IAAAA;AAfK,MAgBFrB,KAhBJ;AAkBA,QAAMsB,gBAAgB,GAAG,CAAEnB,OAAF,IAAatB,SAAS,CAAEuB,QAAF,CAA/C;AAEA,QAAM;AAAEmB,IAAAA;AAAF,MAAsB5C,WAAW,CAAEH,gBAAF,CAAvC;;AAEA,MAAK4B,QAAL,EAAgB;AACf,UAAMoB,aAAa,GAAG,MAAM;AAC3BD,MAAAA,eAAe,CAAE,KAAF,CAAf;AACA,KAFD;;AAGA,UAAME,QAAQ,GAAG,CAAEC,KAAF,EAASC,SAAT,EAAoBC,GAApB,KAA6B;AAC7CR,MAAAA,aAAa,CAAES,QAAQ,CAAED,GAAG,CAACE,KAAJ,CAAUC,KAAZ,CAAV,CAAb;AACA,KAFD;;AAGA,UAAMC,YAAY,GAAG,CAAEN,KAAF,EAASC,SAAT,EAAoBC,GAApB,KAA6B;AACjDL,MAAAA,eAAe,CAAE,IAAF,CAAf;AACAT,MAAAA,iBAAiB,CAAEe,QAAQ,CAAED,GAAG,CAACE,KAAJ,CAAUC,KAAZ,CAAV,CAAjB;AACA,KAHD;;AAIA,UAAME,eAAe,GAAG;AACvBC,MAAAA,KAAK,EAAE,CAAEb,eAAF,IAAqBJ,aAAa,KAAK,MADvB;AAEvBkB,MAAAA,IAAI,EAAE,CAAEd,eAAF,IAAqBJ,aAAa,KAAK;AAFtB,KAAxB;AAKA,UAAMmB,gBAAgB,GACrBlB,SAAS,KAAK,OAAd,IAAyBH,SAAzB,GACG5B,eAAe,CAAEiB,QAAF,EAAYf,UAAZ,CADlB,GAEG,EAHJ;AAKA,UAAMgD,kBAAkB,GAAG;AAC1BC,MAAAA,KAAK,EAAE,MAAM;AAAK,QAAA,GAAG,EAAGlC,QAAX;AAAsB,QAAA,GAAG,EAAGY;AAA5B,QADa;AAE1BuB,MAAAA,KAAK,EAAE,MAAM;AAAO,QAAA,QAAQ,MAAf;AAAgB,QAAA,GAAG,EAAGnC;AAAtB;AAFa,KAA3B;AAKA,WACC,cAAC,qBAAD;AACC,MAAA,EAAE,EAAC,QADJ;AAEC,MAAA,SAAS,EAAGpC,UAAU,CACrBuC,SADqB,EAErB,iCAFqB,EAGrB;AAAE,wBAAgBe;AAAlB,OAHqB,CAFvB;AAOC,MAAA,KAAK,EAAGc,gBAPT;AAQC,MAAA,IAAI,EAAG;AAAEL,QAAAA,KAAK,EAAEZ,UAAU,GAAG;AAAtB,OARR;AASC,MAAA,QAAQ,EAAC,KATV;AAUC,MAAA,QAAQ,EAAC,MAVV;AAWC,MAAA,MAAM,EAAGc,eAXV;AAYC,MAAA,aAAa,EAAGT,aAZjB;AAaC,MAAA,QAAQ,EAAGC,QAbZ;AAcC,MAAA,YAAY,EAAGO,YAdhB;AAeC,MAAA,IAAI,EAAC,GAfN;AAgBC,MAAA,UAAU,EAAGlC,UAhBd;AAiBC,MAAA,iBAAiB,EAAGC,iBAjBrB;AAkBC,MAAA,GAAG,EAAGF;AAlBP,OAoBC,cAAC,iBAAD;AACC,MAAA,aAAa,EAAGQ,aADjB;AAEC,MAAA,QAAQ,EAAGD,QAFZ;AAGC,MAAA,OAAO,EAAGD;AAHX,MApBD,EAyBG,CAAEkC,kBAAkB,CAAEnB,SAAF,CAAlB,IAAmChC,IAArC,GAzBH,EA0BGoC,gBAAgB,IAAI,cAAC,OAAD,OA1BvB,EA2BC,cAAC,oBAAD,EAA2BtB,KAA3B,CA3BD,CADD;AA+BA;;AAED,SAAO,cAAC,oBAAD,EAA2BA,KAA3B,CAAP;AACA;;AAED,eAAepB,UAAU,CAAEiC,cAAF,CAAzB","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { ResizableBox, Spinner } from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { media as icon } from '@wordpress/icons';\n\n/**\n * Constants\n */\nconst ALLOWED_MEDIA_TYPES = [ 'image', 'video' ];\nconst noop = () => {};\n\nexport function imageFillStyles( url, focalPoint ) {\n\treturn url\n\t\t? {\n\t\t\t\tbackgroundImage: `url(${ url })`,\n\t\t\t\tbackgroundPosition: focalPoint\n\t\t\t\t\t? `${ Math.round( focalPoint.x * 100 ) }% ${ Math.round(\n\t\t\t\t\t\t\tfocalPoint.y * 100\n\t\t\t\t\t ) }%`\n\t\t\t\t\t: `50% 50%`,\n\t\t }\n\t\t: {};\n}\n\nconst ResizableBoxContainer = forwardRef(\n\t( { isSelected, isStackedOnMobile, ...props }, ref ) => {\n\t\tconst isMobile = useViewportMatch( 'small', '<' );\n\t\treturn (\n\t\t\t<ResizableBox\n\t\t\t\tref={ ref }\n\t\t\t\tshowHandle={\n\t\t\t\t\tisSelected && ( ! isMobile || ! isStackedOnMobile )\n\t\t\t\t}\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t);\n\t}\n);\n\nfunction ToolbarEditButton( { mediaId, mediaUrl, onSelectMedia } ) {\n\treturn (\n\t\t<BlockControls group=\"other\">\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaId={ mediaId }\n\t\t\t\tmediaURL={ mediaUrl }\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\taccept=\"image/*,video/*\"\n\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t/>\n\t\t</BlockControls>\n\t);\n}\n\nfunction PlaceholderContainer( { className, mediaUrl, onSelectMedia } ) {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\treturn (\n\t\t<MediaPlaceholder\n\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Media area' ),\n\t\t\t} }\n\t\t\tclassName={ className }\n\t\t\tonSelect={ onSelectMedia }\n\t\t\taccept=\"image/*,video/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tonError={ onUploadError }\n\t\t\tdisableMediaButtons={ mediaUrl }\n\t\t/>\n\t);\n}\n\nfunction MediaContainer( props, ref ) {\n\tconst {\n\t\tclassName,\n\t\tcommitWidthChange,\n\t\tfocalPoint,\n\t\timageFill,\n\t\tisSelected,\n\t\tisStackedOnMobile,\n\t\tmediaAlt,\n\t\tmediaId,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\tonSelectMedia,\n\t\tonWidthChange,\n\t\tisContentLocked,\n\t} = props;\n\n\tconst isTemporaryMedia = ! mediaId && isBlobURL( mediaUrl );\n\n\tconst { toggleSelection } = useDispatch( blockEditorStore );\n\n\tif ( mediaUrl ) {\n\t\tconst onResizeStart = () => {\n\t\t\ttoggleSelection( false );\n\t\t};\n\t\tconst onResize = ( event, direction, elt ) => {\n\t\t\tonWidthChange( parseInt( elt.style.width ) );\n\t\t};\n\t\tconst onResizeStop = ( event, direction, elt ) => {\n\t\t\ttoggleSelection( true );\n\t\t\tcommitWidthChange( parseInt( elt.style.width ) );\n\t\t};\n\t\tconst enablePositions = {\n\t\t\tright: ! isContentLocked && mediaPosition === 'left',\n\t\t\tleft: ! isContentLocked && mediaPosition === 'right',\n\t\t};\n\n\t\tconst backgroundStyles =\n\t\t\tmediaType === 'image' && imageFill\n\t\t\t\t? imageFillStyles( mediaUrl, focalPoint )\n\t\t\t\t: {};\n\n\t\tconst mediaTypeRenderers = {\n\t\t\timage: () => <img src={ mediaUrl } alt={ mediaAlt } />,\n\t\t\tvideo: () => <video controls src={ mediaUrl } />,\n\t\t};\n\n\t\treturn (\n\t\t\t<ResizableBoxContainer\n\t\t\t\tas=\"figure\"\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\tclassName,\n\t\t\t\t\t'editor-media-container__resizer',\n\t\t\t\t\t{ 'is-transient': isTemporaryMedia }\n\t\t\t\t) }\n\t\t\t\tstyle={ backgroundStyles }\n\t\t\t\tsize={ { width: mediaWidth + '%' } }\n\t\t\t\tminWidth=\"10%\"\n\t\t\t\tmaxWidth=\"100%\"\n\t\t\t\tenable={ enablePositions }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResize={ onResize }\n\t\t\t\tonResizeStop={ onResizeStop }\n\t\t\t\taxis=\"x\"\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tisStackedOnMobile={ isStackedOnMobile }\n\t\t\t\tref={ ref }\n\t\t\t>\n\t\t\t\t<ToolbarEditButton\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tmediaUrl={ mediaUrl }\n\t\t\t\t\tmediaId={ mediaId }\n\t\t\t\t/>\n\t\t\t\t{ ( mediaTypeRenderers[ mediaType ] || noop )() }\n\t\t\t\t{ isTemporaryMedia && <Spinner /> }\n\t\t\t\t<PlaceholderContainer { ...props } />\n\t\t\t</ResizableBoxContainer>\n\t\t);\n\t}\n\n\treturn <PlaceholderContainer { ...props } />;\n}\n\nexport default forwardRef( MediaContainer );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/media-text/media-container.js"],"names":["classnames","ResizableBox","Spinner","BlockControls","BlockIcon","MediaPlaceholder","MediaReplaceFlow","store","blockEditorStore","__","useViewportMatch","useDispatch","forwardRef","isBlobURL","noticesStore","media","icon","ALLOWED_MEDIA_TYPES","noop","imageFillStyles","url","focalPoint","backgroundImage","backgroundPosition","Math","round","x","y","ResizableBoxContainer","ref","isSelected","isStackedOnMobile","props","isMobile","ToolbarEditButton","mediaId","mediaUrl","onSelectMedia","PlaceholderContainer","className","createErrorNotice","onUploadError","message","type","title","MediaContainer","commitWidthChange","imageFill","mediaAlt","mediaPosition","mediaType","mediaWidth","onWidthChange","enableResize","isTemporaryMedia","toggleSelection","onResizeStart","onResize","event","direction","elt","parseInt","style","width","onResizeStop","enablePositions","right","left","backgroundStyles","mediaTypeRenderers","image","video"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { ResizableBox, Spinner } from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { media as icon } from '@wordpress/icons';\n\n/**\n * Constants\n */\nconst ALLOWED_MEDIA_TYPES = [ 'image', 'video' ];\nconst noop = () => {};\n\nexport function imageFillStyles( url, focalPoint ) {\n\treturn url\n\t\t? {\n\t\t\t\tbackgroundImage: `url(${ url })`,\n\t\t\t\tbackgroundPosition: focalPoint\n\t\t\t\t\t? `${ Math.round( focalPoint.x * 100 ) }% ${ Math.round(\n\t\t\t\t\t\t\tfocalPoint.y * 100\n\t\t\t\t\t ) }%`\n\t\t\t\t\t: `50% 50%`,\n\t\t }\n\t\t: {};\n}\n\nconst ResizableBoxContainer = forwardRef(\n\t( { isSelected, isStackedOnMobile, ...props }, ref ) => {\n\t\tconst isMobile = useViewportMatch( 'small', '<' );\n\t\treturn (\n\t\t\t<ResizableBox\n\t\t\t\tref={ ref }\n\t\t\t\tshowHandle={\n\t\t\t\t\tisSelected && ( ! isMobile || ! isStackedOnMobile )\n\t\t\t\t}\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t);\n\t}\n);\n\nfunction ToolbarEditButton( { mediaId, mediaUrl, onSelectMedia } ) {\n\treturn (\n\t\t<BlockControls group=\"other\">\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaId={ mediaId }\n\t\t\t\tmediaURL={ mediaUrl }\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\taccept=\"image/*,video/*\"\n\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t/>\n\t\t</BlockControls>\n\t);\n}\n\nfunction PlaceholderContainer( { className, mediaUrl, onSelectMedia } ) {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\treturn (\n\t\t<MediaPlaceholder\n\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Media area' ),\n\t\t\t} }\n\t\t\tclassName={ className }\n\t\t\tonSelect={ onSelectMedia }\n\t\t\taccept=\"image/*,video/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tonError={ onUploadError }\n\t\t\tdisableMediaButtons={ mediaUrl }\n\t\t/>\n\t);\n}\n\nfunction MediaContainer( props, ref ) {\n\tconst {\n\t\tclassName,\n\t\tcommitWidthChange,\n\t\tfocalPoint,\n\t\timageFill,\n\t\tisSelected,\n\t\tisStackedOnMobile,\n\t\tmediaAlt,\n\t\tmediaId,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\tonSelectMedia,\n\t\tonWidthChange,\n\t\tenableResize,\n\t} = props;\n\n\tconst isTemporaryMedia = ! mediaId && isBlobURL( mediaUrl );\n\n\tconst { toggleSelection } = useDispatch( blockEditorStore );\n\n\tif ( mediaUrl ) {\n\t\tconst onResizeStart = () => {\n\t\t\ttoggleSelection( false );\n\t\t};\n\t\tconst onResize = ( event, direction, elt ) => {\n\t\t\tonWidthChange( parseInt( elt.style.width ) );\n\t\t};\n\t\tconst onResizeStop = ( event, direction, elt ) => {\n\t\t\ttoggleSelection( true );\n\t\t\tcommitWidthChange( parseInt( elt.style.width ) );\n\t\t};\n\t\tconst enablePositions = {\n\t\t\tright: enableResize && mediaPosition === 'left',\n\t\t\tleft: enableResize && mediaPosition === 'right',\n\t\t};\n\n\t\tconst backgroundStyles =\n\t\t\tmediaType === 'image' && imageFill\n\t\t\t\t? imageFillStyles( mediaUrl, focalPoint )\n\t\t\t\t: {};\n\n\t\tconst mediaTypeRenderers = {\n\t\t\timage: () => <img src={ mediaUrl } alt={ mediaAlt } />,\n\t\t\tvideo: () => <video controls src={ mediaUrl } />,\n\t\t};\n\n\t\treturn (\n\t\t\t<ResizableBoxContainer\n\t\t\t\tas=\"figure\"\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\tclassName,\n\t\t\t\t\t'editor-media-container__resizer',\n\t\t\t\t\t{ 'is-transient': isTemporaryMedia }\n\t\t\t\t) }\n\t\t\t\tstyle={ backgroundStyles }\n\t\t\t\tsize={ { width: mediaWidth + '%' } }\n\t\t\t\tminWidth=\"10%\"\n\t\t\t\tmaxWidth=\"100%\"\n\t\t\t\tenable={ enablePositions }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResize={ onResize }\n\t\t\t\tonResizeStop={ onResizeStop }\n\t\t\t\taxis=\"x\"\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tisStackedOnMobile={ isStackedOnMobile }\n\t\t\t\tref={ ref }\n\t\t\t>\n\t\t\t\t<ToolbarEditButton\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tmediaUrl={ mediaUrl }\n\t\t\t\t\tmediaId={ mediaId }\n\t\t\t\t/>\n\t\t\t\t{ ( mediaTypeRenderers[ mediaType ] || noop )() }\n\t\t\t\t{ isTemporaryMedia && <Spinner /> }\n\t\t\t\t<PlaceholderContainer { ...props } />\n\t\t\t</ResizableBoxContainer>\n\t\t);\n\t}\n\n\treturn <PlaceholderContainer { ...props } />;\n}\n\nexport default forwardRef( MediaContainer );\n"]}
@@ -4,7 +4,6 @@ import { createElement } from "@wordpress/element";
4
4
  * External dependencies
5
5
  */
6
6
  import classnames from 'classnames';
7
- import { isEmpty } from 'lodash';
8
7
  /**
9
8
  * WordPress dependencies
10
9
  */
@@ -41,7 +40,7 @@ export default function save(_ref) {
41
40
  rel
42
41
  } = attributes;
43
42
  const mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;
44
- const newRel = isEmpty(rel) ? undefined : rel;
43
+ const newRel = !rel ? undefined : rel;
45
44
  const imageClasses = classnames({
46
45
  [`wp-image-${mediaId}`]: mediaId && mediaType === 'image',
47
46
  [`size-${mediaSizeSlug}`]: mediaId && mediaType === 'image'
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/media-text/save.js"],"names":["classnames","isEmpty","useInnerBlocksProps","useBlockProps","imageFillStyles","DEFAULT_MEDIA_SIZE_SLUG","DEFAULT_MEDIA_WIDTH","noop","save","attributes","isStackedOnMobile","mediaAlt","mediaPosition","mediaType","mediaUrl","mediaWidth","mediaId","verticalAlignment","imageFill","focalPoint","linkClass","href","linkTarget","rel","mediaSizeSlug","newRel","undefined","imageClasses","image","mediaTypeRenders","video","className","backgroundStyles","gridTemplateColumns","style"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps, useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { imageFillStyles } from './media-container';\nimport { DEFAULT_MEDIA_SIZE_SLUG } from './constants';\n\nconst DEFAULT_MEDIA_WIDTH = 50;\nconst noop = () => {};\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\tisStackedOnMobile,\n\t\tmediaAlt,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\tmediaId,\n\t\tverticalAlignment,\n\t\timageFill,\n\t\tfocalPoint,\n\t\tlinkClass,\n\t\thref,\n\t\tlinkTarget,\n\t\trel,\n\t} = attributes;\n\tconst mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\tconst newRel = isEmpty( rel ) ? undefined : rel;\n\n\tconst imageClasses = classnames( {\n\t\t[ `wp-image-${ mediaId }` ]: mediaId && mediaType === 'image',\n\t\t[ `size-${ mediaSizeSlug }` ]: mediaId && mediaType === 'image',\n\t} );\n\n\tlet image = (\n\t\t<img\n\t\t\tsrc={ mediaUrl }\n\t\t\talt={ mediaAlt }\n\t\t\tclassName={ imageClasses || null }\n\t\t/>\n\t);\n\n\tif ( href ) {\n\t\timage = (\n\t\t\t<a\n\t\t\t\tclassName={ linkClass }\n\t\t\t\thref={ href }\n\t\t\t\ttarget={ linkTarget }\n\t\t\t\trel={ newRel }\n\t\t\t>\n\t\t\t\t{ image }\n\t\t\t</a>\n\t\t);\n\t}\n\n\tconst mediaTypeRenders = {\n\t\timage: () => image,\n\t\tvideo: () => <video controls src={ mediaUrl } />,\n\t};\n\tconst className = classnames( {\n\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t'is-image-fill': imageFill,\n\t} );\n\tconst backgroundStyles = imageFill\n\t\t? imageFillStyles( mediaUrl, focalPoint )\n\t\t: {};\n\n\tlet gridTemplateColumns;\n\tif ( mediaWidth !== DEFAULT_MEDIA_WIDTH ) {\n\t\tgridTemplateColumns =\n\t\t\t'right' === mediaPosition\n\t\t\t\t? `auto ${ mediaWidth }%`\n\t\t\t\t: `${ mediaWidth }% auto`;\n\t}\n\tconst style = {\n\t\tgridTemplateColumns,\n\t};\n\n\tif ( 'right' === mediaPosition ) {\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className, style } ) }>\n\t\t\t\t<div\n\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\tclassName: 'wp-block-media-text__content',\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t\t<figure\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tstyle={ backgroundStyles }\n\t\t\t\t>\n\t\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t\t</figure>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<div { ...useBlockProps.save( { className, style } ) }>\n\t\t\t<figure\n\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\tstyle={ backgroundStyles }\n\t\t\t>\n\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t</figure>\n\t\t\t<div\n\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\tclassName: 'wp-block-media-text__content',\n\t\t\t\t} ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/media-text/save.js"],"names":["classnames","useInnerBlocksProps","useBlockProps","imageFillStyles","DEFAULT_MEDIA_SIZE_SLUG","DEFAULT_MEDIA_WIDTH","noop","save","attributes","isStackedOnMobile","mediaAlt","mediaPosition","mediaType","mediaUrl","mediaWidth","mediaId","verticalAlignment","imageFill","focalPoint","linkClass","href","linkTarget","rel","mediaSizeSlug","newRel","undefined","imageClasses","image","mediaTypeRenders","video","className","backgroundStyles","gridTemplateColumns","style"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps, useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { imageFillStyles } from './media-container';\nimport { DEFAULT_MEDIA_SIZE_SLUG } from './constants';\n\nconst DEFAULT_MEDIA_WIDTH = 50;\nconst noop = () => {};\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\tisStackedOnMobile,\n\t\tmediaAlt,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\tmediaId,\n\t\tverticalAlignment,\n\t\timageFill,\n\t\tfocalPoint,\n\t\tlinkClass,\n\t\thref,\n\t\tlinkTarget,\n\t\trel,\n\t} = attributes;\n\tconst mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\tconst newRel = ! rel ? undefined : rel;\n\n\tconst imageClasses = classnames( {\n\t\t[ `wp-image-${ mediaId }` ]: mediaId && mediaType === 'image',\n\t\t[ `size-${ mediaSizeSlug }` ]: mediaId && mediaType === 'image',\n\t} );\n\n\tlet image = (\n\t\t<img\n\t\t\tsrc={ mediaUrl }\n\t\t\talt={ mediaAlt }\n\t\t\tclassName={ imageClasses || null }\n\t\t/>\n\t);\n\n\tif ( href ) {\n\t\timage = (\n\t\t\t<a\n\t\t\t\tclassName={ linkClass }\n\t\t\t\thref={ href }\n\t\t\t\ttarget={ linkTarget }\n\t\t\t\trel={ newRel }\n\t\t\t>\n\t\t\t\t{ image }\n\t\t\t</a>\n\t\t);\n\t}\n\n\tconst mediaTypeRenders = {\n\t\timage: () => image,\n\t\tvideo: () => <video controls src={ mediaUrl } />,\n\t};\n\tconst className = classnames( {\n\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t'is-image-fill': imageFill,\n\t} );\n\tconst backgroundStyles = imageFill\n\t\t? imageFillStyles( mediaUrl, focalPoint )\n\t\t: {};\n\n\tlet gridTemplateColumns;\n\tif ( mediaWidth !== DEFAULT_MEDIA_WIDTH ) {\n\t\tgridTemplateColumns =\n\t\t\t'right' === mediaPosition\n\t\t\t\t? `auto ${ mediaWidth }%`\n\t\t\t\t: `${ mediaWidth }% auto`;\n\t}\n\tconst style = {\n\t\tgridTemplateColumns,\n\t};\n\n\tif ( 'right' === mediaPosition ) {\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className, style } ) }>\n\t\t\t\t<div\n\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\tclassName: 'wp-block-media-text__content',\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t\t<figure\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tstyle={ backgroundStyles }\n\t\t\t\t>\n\t\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t\t</figure>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<div { ...useBlockProps.save( { className, style } ) }>\n\t\t\t<figure\n\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\tstyle={ backgroundStyles }\n\t\t\t>\n\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t</figure>\n\t\t\t<div\n\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\tclassName: 'wp-block-media-text__content',\n\t\t\t\t} ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
@@ -0,0 +1,6 @@
1
+ export const DEFAULT_BLOCK = {
2
+ name: 'core/navigation-link'
3
+ };
4
+ export const ALLOWED_BLOCKS = ['core/navigation-link', 'core/search', 'core/social-links', 'core/page-list', 'core/spacer', 'core/home-link', 'core/site-title', 'core/site-logo', 'core/navigation-submenu', 'core/loginout'];
5
+ export const PRIORITIZED_INSERTER_BLOCKS = ['core/navigation-link/page', 'core/navigation-link'];
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/constants.js"],"names":["DEFAULT_BLOCK","name","ALLOWED_BLOCKS","PRIORITIZED_INSERTER_BLOCKS"],"mappings":"AAAA,OAAO,MAAMA,aAAa,GAAG;AAC5BC,EAAAA,IAAI,EAAE;AADsB,CAAtB;AAIP,OAAO,MAAMC,cAAc,GAAG,CAC7B,sBAD6B,EAE7B,aAF6B,EAG7B,mBAH6B,EAI7B,gBAJ6B,EAK7B,aAL6B,EAM7B,gBAN6B,EAO7B,iBAP6B,EAQ7B,gBAR6B,EAS7B,yBAT6B,EAU7B,eAV6B,CAAvB;AAaP,OAAO,MAAMC,2BAA2B,GAAG,CAC1C,2BAD0C,EAE1C,sBAF0C,CAApC","sourcesContent":["export const DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\n};\n\nexport const ALLOWED_BLOCKS = [\n\t'core/navigation-link',\n\t'core/search',\n\t'core/social-links',\n\t'core/page-list',\n\t'core/spacer',\n\t'core/home-link',\n\t'core/site-title',\n\t'core/site-logo',\n\t'core/navigation-submenu',\n\t'core/loginout',\n];\n\nexport const PRIORITIZED_INSERTER_BLOCKS = [\n\t'core/navigation-link/page',\n\t'core/navigation-link',\n];\n"]}
@@ -11,13 +11,12 @@ import classnames from 'classnames';
11
11
 
12
12
  import { useCallback, useState, useEffect, useRef, Platform } from '@wordpress/element';
13
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';
14
- import { EntityProvider } from '@wordpress/core-data';
15
- import { useDispatch } from '@wordpress/data';
14
+ import { EntityProvider, store as coreStore } from '@wordpress/core-data';
15
+ import { useDispatch, useSelect } from '@wordpress/data';
16
16
  import { PanelBody, ToggleControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, Button, Spinner } from '@wordpress/components';
17
17
  import { __, sprintf } from '@wordpress/i18n';
18
18
  import { speak } from '@wordpress/a11y';
19
19
  import { close, Icon } from '@wordpress/icons';
20
- import apiFetch from '@wordpress/api-fetch';
21
20
  /**
22
21
  * Internal dependencies
23
22
  */
@@ -61,7 +60,6 @@ function Navigation(_ref) {
61
60
  // These props are used by the navigation editor to override specific
62
61
  // navigation block settings.
63
62
  hasSubmenuIndicatorSetting = true,
64
- hasColorSettings = true,
65
63
  customPlaceholder: CustomPlaceholder = null
66
64
  } = _ref;
67
65
  const {
@@ -167,36 +165,29 @@ function Navigation(_ref) {
167
165
  // that automatically saves the menu as an entity when changes are made to the inner blocks.
168
166
 
169
167
  const hasUnsavedBlocks = hasUncontrolledInnerBlocks && !isEntityAvailable;
168
+ const {
169
+ getNavigationFallbackId
170
+ } = useSelect(coreStore);
171
+ const navigationFallbackId = !(ref || hasUnsavedBlocks) ? getNavigationFallbackId() : null;
170
172
  useEffect(() => {
171
173
  // If:
172
174
  // - there is an existing menu, OR
173
175
  // - there are existing (uncontrolled) inner blocks
174
176
  // ...then don't request a fallback menu.
175
- if (ref || hasUnsavedBlocks) {
177
+ if (ref || hasUnsavedBlocks || !navigationFallbackId) {
176
178
  return;
177
179
  }
178
-
179
- apiFetch({
180
- path: '/wp-block-editor/v1/navigation-fallback'
181
- }).then(fallbackNavigationMenu => {
182
- if (!(fallbackNavigationMenu !== null && fallbackNavigationMenu !== void 0 && fallbackNavigationMenu.id)) {
183
- showNavigationMenuStatusNotice(__('Unable to fetch a fallback Navigation Menu.'));
184
- return;
185
- }
186
- /**
187
- * This fallback displays (both in editor and on front)
188
- * The fallback should not request a save (entity dirty state)
189
- * nor to be undoable, hence why it is marked as non persistent
190
- */
180
+ /**
181
+ * This fallback displays (both in editor and on front)
182
+ * The fallback should not request a save (entity dirty state)
183
+ * nor to be undoable, hence why it is marked as non persistent
184
+ */
191
185
 
192
186
 
193
- __unstableMarkNextChangeAsNotPersistent();
187
+ __unstableMarkNextChangeAsNotPersistent();
194
188
 
195
- setRef(fallbackNavigationMenu.id);
196
- }).catch(() => {
197
- showNavigationMenuStatusNotice(__('Unable to fetch a fallback Navigation Menu.'));
198
- });
199
- }, [ref, hasUnsavedBlocks, setRef, showNavigationMenuStatusNotice, __unstableMarkNextChangeAsNotPersistent]);
189
+ setRef(navigationFallbackId);
190
+ }, [ref, setRef, hasUnsavedBlocks, navigationFallbackId, __unstableMarkNextChangeAsNotPersistent]);
200
191
  const navRef = useRef(); // The standard HTML5 tag for the block wrapper.
201
192
 
202
193
  const TagName = 'nav'; // "placeholder" shown if:
@@ -390,9 +381,9 @@ function Navigation(_ref) {
390
381
  },
391
382
  disabled: attributes.openSubmenusOnClick,
392
383
  label: __('Show arrow')
393
- })))), createElement(InspectorControls, {
384
+ })))), colorGradientSettings.hasColorsOrGradients && createElement(InspectorControls, {
394
385
  group: "color"
395
- }, hasColorSettings && createElement(Fragment, null, createElement(ColorGradientSettingsDropdown, _extends({
386
+ }, createElement(ColorGradientSettingsDropdown, _extends({
396
387
  __experimentalIsRenderedInSidebar: true,
397
388
  settings: [{
398
389
  colorValue: textColor.color,
@@ -425,7 +416,7 @@ function Navigation(_ref) {
425
416
  }), createElement(ContrastChecker, {
426
417
  backgroundColor: detectedOverlayBackgroundColor,
427
418
  textColor: detectedOverlayColor
428
- })))));
419
+ }))));
429
420
  const isManageMenusButtonDisabled = !hasManagePermissions || !hasResolvedNavigationMenus;
430
421
 
431
422
  if (hasUnsavedBlocks && !isCreatingNavigationMenu) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["classnames","useCallback","useState","useEffect","useRef","Platform","InspectorControls","useBlockProps","__experimentalRecursionProvider","RecursionProvider","__experimentalUseHasRecursion","useHasRecursion","store","blockEditorStore","withColors","ContrastChecker","getColorClassName","Warning","__experimentalColorGradientSettingsDropdown","ColorGradientSettingsDropdown","__experimentalUseBlockOverlayActive","useBlockOverlayActive","__experimentalUseMultipleOriginColorsAndGradients","useMultipleOriginColorsAndGradients","EntityProvider","useDispatch","PanelBody","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","Button","Spinner","__","sprintf","speak","close","Icon","apiFetch","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","DeletedNavigationWarning","Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","templateLock","layout","justifyContent","orientation","flexWrap","hasIcon","icon","ref","setRef","postId","recursionId","hasAlreadyRendered","menus","classicMenus","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","name","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","createNavigationMenuIsSuccess","isError","createNavigationMenuIsError","createUntitledEmptyNavigationMenu","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","innerBlocks","hasSubmenus","find","block","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navMenuResolvedButMissing","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","isConvertingClassicMenu","handleUpdateMenu","menuId","options","focusNavigationBlock","isEntityAvailable","hasUnsavedBlocks","path","then","fallbackNavigationMenu","id","catch","navRef","TagName","isPlaceholder","length","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","color","class","slug","enableContrastChecking","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","onSelectClassicMenu","classicMenu","navMenu","onSelectNavigationMenu","current","subMenuElement","querySelector","hasManagePermissions","isResponsive","overlayMenuPreviewClasses","open","colorGradientSettings","stylingInspectorControls","colorValue","label","onColorChange","resetAllFilter","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\tuseCallback,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { EntityProvider } from '@wordpress/core-data';\n\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { close, Icon } from '@wordpress/icons';\nimport apiFetch from '@wordpress/api-fetch';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\nimport useNavigationNotice from './use-navigation-notice';\nimport OverlayMenuIcon from './overlay-menu-icon';\nimport OverlayMenuPreview from './overlay-menu-preview';\nimport useConvertClassicToBlockMenu, {\n\tCLASSIC_MENU_CONVERSION_ERROR,\n\tCLASSIC_MENU_CONVERSION_PENDING,\n\tCLASSIC_MENU_CONVERSION_SUCCESS,\n} from './use-convert-classic-menu-to-block-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\nimport { useInnerBlocks } from './use-inner-blocks';\nimport { detectColors } from './utils';\nimport ManageMenusButton from './manage-menus-button';\nimport MenuInspectorControls from './menu-inspector-controls';\nimport DeletedNavigationWarning from './deleted-navigation-warning';\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\ttemplateLock,\n\t\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t\ticon = 'handle',\n\t} = attributes;\n\n\tconst ref = attributes.ref;\n\n\tconst setRef = useCallback(\n\t\t( postId ) => {\n\t\t\tsetAttributes( { ref: postId } );\n\t\t},\n\t\t[ setAttributes ]\n\t);\n\n\tconst recursionId = `navigationMenu/${ ref }`;\n\tconst hasAlreadyRendered = useHasRecursion( recursionId );\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/status',\n\t\t} );\n\n\tconst [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/classic-menu-conversion',\n\t\t} );\n\n\tconst [\n\t\tshowNavigationMenuPermissionsNotice,\n\t\thideNavigationMenuPermissionsNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t\tisPending: isCreatingNavigationMenu,\n\t\tisSuccess: createNavigationMenuIsSuccess,\n\t\tisError: createNavigationMenuIsError,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst createUntitledEmptyNavigationMenu = () => {\n\t\tcreateNavigationMenu( '' );\n\t};\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\tinnerBlocks,\n\t} = useInnerBlocks( clientId );\n\n\tconst hasSubmenus = !! innerBlocks.find(\n\t\t( block ) => block.name === 'core/navigation-submenu'\n\t);\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] =\n\t\tuseState( false );\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\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\tconst handleUpdateMenu = useCallback(\n\t\t( menuId, options = { focusNavigationBlock: false } ) => {\n\t\t\tconst { focusNavigationBlock } = options;\n\t\t\tsetRef( menuId );\n\t\t\tif ( focusNavigationBlock ) {\n\t\t\t\tselectBlock( clientId );\n\t\t\t}\n\t\t},\n\t\t[ selectBlock, clientId, setRef ]\n\t);\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\t// If the block has inner blocks, but no menu id, then these blocks are either:\n\t// - inserted via a pattern.\n\t// - inserted directly via Code View (or otherwise).\n\t// - from an older version of navigation block added before the block used a wp_navigation entity.\n\t// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu as an entity when changes are made to the inner blocks.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\n\tuseEffect( () => {\n\t\t// If:\n\t\t// - there is an existing menu, OR\n\t\t// - there are existing (uncontrolled) inner blocks\n\t\t// ...then don't request a fallback menu.\n\t\tif ( ref || hasUnsavedBlocks ) {\n\t\t\treturn;\n\t\t}\n\n\t\tapiFetch( { path: '/wp-block-editor/v1/navigation-fallback' } )\n\t\t\t.then( ( fallbackNavigationMenu ) => {\n\t\t\t\tif ( ! fallbackNavigationMenu?.id ) {\n\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t__( 'Unable to fetch a fallback Navigation Menu.' )\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * This fallback displays (both in editor and on front)\n\t\t\t\t * The fallback should not request a save (entity dirty state)\n\t\t\t\t * nor to be undoable, hence why it is marked as non persistent\n\t\t\t\t */\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tsetRef( fallbackNavigationMenu.id );\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t__( 'Unable to fetch a fallback Navigation Menu.' )\n\t\t\t\t);\n\t\t\t} );\n\t}, [\n\t\tref,\n\t\thasUnsavedBlocks,\n\t\tsetRef,\n\t\tshowNavigationMenuStatusNotice,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\n\n\tconst navRef = useRef();\n\n\t// The standard HTML5 tag for the block wrapper.\n\tconst TagName = 'nav';\n\n\t// \"placeholder\" shown if:\n\t// - there is no ref attribute pointing to a Navigation Post.\n\t// - there is no classic menu conversion process in progress.\n\t// - there is no menu creation process in progress.\n\t// - there are no uncontrolled blocks.\n\tconst isPlaceholder =\n\t\t! ref &&\n\t\t! isCreatingNavigationMenu &&\n\t\t! isConvertingClassicMenu &&\n\t\thasResolvedNavigationMenus &&\n\t\tclassicMenus?.length === 0 &&\n\t\t! hasUncontrolledInnerBlocks;\n\n\t// \"loading\" state:\n\t// - there is a menu creation process in progress.\n\t// - there is a classic menu conversion process in progress.\n\t// OR:\n\t// - there is a ref attribute pointing to a Navigation Post\n\t// - the Navigation Post isn't available (hasn't resolved) yet.\n\tconst isLoading =\n\t\t! hasResolvedNavigationMenus ||\n\t\tisCreatingNavigationMenu ||\n\t\tisConvertingClassicMenu ||\n\t\t!! ( ref && ! isEntityAvailable && ! isConvertingClassicMenu );\n\n\tconst textDecoration = attributes.style?.typography?.textDecoration;\n\n\tconst hasBlockOverlay = useBlockOverlayActive( clientId );\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t!! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor?.slug ) ]:\n\t\t\t\t!! backgroundColor?.slug,\n\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\tconst onSelectClassicMenu = async ( classicMenu ) => {\n\t\tconst navMenu = await convertClassicMenu(\n\t\t\tclassicMenu.id,\n\t\t\tclassicMenu.name,\n\t\t\t'draft'\n\t\t);\n\t\tif ( navMenu ) {\n\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst onSelectNavigationMenu = ( menuId ) => {\n\t\thandleUpdateMenu( menuId );\n\t};\n\n\tuseEffect( () => {\n\t\thideNavigationMenuStatusNotice();\n\n\t\tif ( isCreatingNavigationMenu ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuIsSuccess ) {\n\t\t\thandleUpdateMenu( createNavigationMenuPost?.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuIsError ) {\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost?.id,\n\t\tcreateNavigationMenuIsError,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tisCreatingNavigationMenu,\n\t\thandleUpdateMenu,\n\t\thideNavigationMenuStatusNotice,\n\t\tshowNavigationMenuStatusNotice,\n\t] );\n\n\tuseEffect( () => {\n\t\thideClassicMenuConversionNotice();\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu imported successfully.' )\n\t\t\t);\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu import failed.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tclassicMenuConversionStatus,\n\t\tclassicMenuConversionError,\n\t\thideClassicMenuConversionNotice,\n\t\tshowClassicMenuConversionNotice,\n\t] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-submenu\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\n\t\tif ( ! subMenuElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Only detect submenu overlay colors if they have previously been explicitly set.\n\t\t// This avoids the contrast checker from reporting on inherited submenu colors and\n\t\t// showing the contrast warning twice.\n\t\tif ( overlayTextColor.color || overlayBackgroundColor.color ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t}, [\n\t\tenableContrastChecking,\n\t\toverlayTextColor.color,\n\t\toverlayBackgroundColor.color,\n\t] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideNavigationMenuPermissionsNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\tref &&\n\t\t\t\t! navMenuResolvedButMissing &&\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenu &&\n\t\t\t\t! canUserCreateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t\tref,\n\t\thideNavigationMenuPermissionsNotice,\n\t\tshowNavigationMenuPermissionsNotice,\n\t\tnavMenuResolvedButMissing,\n\t] );\n\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenu || canUserUpdateNavigationMenu;\n\tconst isResponsive = 'never' !== overlayMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tconst stylingInspectorControls = (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<OverlayMenuIcon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ close } />\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Close' ) }</span>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t\t<OverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\t\t\t\t} ), // Make sure arrows are shown when we toggle this on.\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tdisabled={ attributes.openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t{ hasColorSettings && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: textColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setTextColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () => setTextColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: backgroundColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setBackgroundColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () => setBackgroundColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: overlayTextColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () => setOverlayTextColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () =>\n\t\t\t\t\t\t\t\t\t\tsetOverlayBackgroundColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t\t\t\tgradients={ [] }\n\t\t\t\t\t\t\tdisableCustomGradients={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst isManageMenusButtonDisabled =\n\t\t! hasManagePermissions || ! hasResolvedNavigationMenus;\n\n\tif ( hasUnsavedBlocks && ! isCreatingNavigationMenu ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t/>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tcreateNavigationMenu={ createNavigationMenu }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t/>\n\t\t\t\t</ResponsiveWrapper>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t/>\n\t\t\t\t<DeletedNavigationWarning\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\t/**\n\t * Historically the navigation block has supported custom placeholders.\n\t * Even though the current UX tries as hard as possible not to\n\t * end up in a placeholder state, the block continues to support\n\t * this extensibility point, via a CustomPlaceholder.\n\t * When CustomPlaceholder is present it becomes the default fallback\n\t * for an empty navigation block, instead of the default fallbacks.\n\t *\n\t */\n\n\tif ( isPlaceholder && CustomPlaceholder ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<PlaceholderComponent\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcanUserCreateNavigationMenu={ canUserCreateNavigationMenu }\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenu={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenu\n\t\t\t\t\t}\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonCreateEmpty={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider uniqueId={ recursionId }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t/>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t\t{ hasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t\t\t\tcanUserUpdateNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasResolvedCanUserDeleteNavigationMenu &&\n\t\t\t\t\t\t\tcanUserDeleteNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\t\t\tonDelete={ ( deletedMenuTitle = '' ) => {\n\t\t\t\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Navigation menu %s successfully deleted.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tdeletedMenuTitle\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<ManageMenusButton\n\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-manage-menus-button\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t{ isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<div className=\"wp-block-navigation__loading-indicator-container\">\n\t\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\n\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["classnames","useCallback","useState","useEffect","useRef","Platform","InspectorControls","useBlockProps","__experimentalRecursionProvider","RecursionProvider","__experimentalUseHasRecursion","useHasRecursion","store","blockEditorStore","withColors","ContrastChecker","getColorClassName","Warning","__experimentalColorGradientSettingsDropdown","ColorGradientSettingsDropdown","__experimentalUseBlockOverlayActive","useBlockOverlayActive","__experimentalUseMultipleOriginColorsAndGradients","useMultipleOriginColorsAndGradients","EntityProvider","coreStore","useDispatch","useSelect","PanelBody","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","Button","Spinner","__","sprintf","speak","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","DeletedNavigationWarning","Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","templateLock","layout","justifyContent","orientation","flexWrap","hasIcon","icon","ref","setRef","postId","recursionId","hasAlreadyRendered","menus","classicMenus","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","name","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","createNavigationMenuIsSuccess","isError","createNavigationMenuIsError","createUntitledEmptyNavigationMenu","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","innerBlocks","hasSubmenus","find","block","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navMenuResolvedButMissing","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","isConvertingClassicMenu","handleUpdateMenu","menuId","options","focusNavigationBlock","isEntityAvailable","hasUnsavedBlocks","getNavigationFallbackId","navigationFallbackId","navRef","TagName","isPlaceholder","length","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","color","class","slug","enableContrastChecking","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","onSelectClassicMenu","classicMenu","navMenu","id","onSelectNavigationMenu","current","subMenuElement","querySelector","hasManagePermissions","isResponsive","overlayMenuPreviewClasses","open","colorGradientSettings","stylingInspectorControls","hasColorsOrGradients","colorValue","label","onColorChange","resetAllFilter","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\tuseCallback,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { EntityProvider, store as coreStore } from '@wordpress/core-data';\n\nimport { useDispatch, useSelect } 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 { close, Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\nimport useNavigationNotice from './use-navigation-notice';\nimport OverlayMenuIcon from './overlay-menu-icon';\nimport OverlayMenuPreview from './overlay-menu-preview';\nimport useConvertClassicToBlockMenu, {\n\tCLASSIC_MENU_CONVERSION_ERROR,\n\tCLASSIC_MENU_CONVERSION_PENDING,\n\tCLASSIC_MENU_CONVERSION_SUCCESS,\n} from './use-convert-classic-menu-to-block-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\nimport { useInnerBlocks } from './use-inner-blocks';\nimport { detectColors } from './utils';\nimport ManageMenusButton from './manage-menus-button';\nimport MenuInspectorControls from './menu-inspector-controls';\nimport DeletedNavigationWarning from './deleted-navigation-warning';\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\ttemplateLock,\n\t\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t\ticon = 'handle',\n\t} = attributes;\n\n\tconst ref = attributes.ref;\n\n\tconst setRef = useCallback(\n\t\t( postId ) => {\n\t\t\tsetAttributes( { ref: postId } );\n\t\t},\n\t\t[ setAttributes ]\n\t);\n\n\tconst recursionId = `navigationMenu/${ ref }`;\n\tconst hasAlreadyRendered = useHasRecursion( recursionId );\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/status',\n\t\t} );\n\n\tconst [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/classic-menu-conversion',\n\t\t} );\n\n\tconst [\n\t\tshowNavigationMenuPermissionsNotice,\n\t\thideNavigationMenuPermissionsNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t\tisPending: isCreatingNavigationMenu,\n\t\tisSuccess: createNavigationMenuIsSuccess,\n\t\tisError: createNavigationMenuIsError,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst createUntitledEmptyNavigationMenu = () => {\n\t\tcreateNavigationMenu( '' );\n\t};\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\tinnerBlocks,\n\t} = useInnerBlocks( clientId );\n\n\tconst hasSubmenus = !! innerBlocks.find(\n\t\t( block ) => block.name === 'core/navigation-submenu'\n\t);\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] =\n\t\tuseState( false );\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\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\tconst handleUpdateMenu = useCallback(\n\t\t( menuId, options = { focusNavigationBlock: false } ) => {\n\t\t\tconst { focusNavigationBlock } = options;\n\t\t\tsetRef( menuId );\n\t\t\tif ( focusNavigationBlock ) {\n\t\t\t\tselectBlock( clientId );\n\t\t\t}\n\t\t},\n\t\t[ selectBlock, clientId, setRef ]\n\t);\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\t// If the block has inner blocks, but no menu id, then these blocks are either:\n\t// - inserted via a pattern.\n\t// - inserted directly via Code View (or otherwise).\n\t// - from an older version of navigation block added before the block used a wp_navigation entity.\n\t// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu as an entity when changes are made to the inner blocks.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\n\tconst { getNavigationFallbackId } = useSelect( coreStore );\n\n\tconst navigationFallbackId = ! ( ref || hasUnsavedBlocks )\n\t\t? getNavigationFallbackId()\n\t\t: null;\n\n\tuseEffect( () => {\n\t\t// If:\n\t\t// - there is an existing menu, OR\n\t\t// - there are existing (uncontrolled) inner blocks\n\t\t// ...then don't request a fallback menu.\n\t\tif ( ref || hasUnsavedBlocks || ! navigationFallbackId ) {\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 * 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\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetRef( navigationFallbackId );\n\t}, [\n\t\tref,\n\t\tsetRef,\n\t\thasUnsavedBlocks,\n\t\tnavigationFallbackId,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\n\n\tconst navRef = useRef();\n\n\t// The standard HTML5 tag for the block wrapper.\n\tconst TagName = 'nav';\n\n\t// \"placeholder\" shown if:\n\t// - there is no ref attribute pointing to a Navigation Post.\n\t// - there is no classic menu conversion process in progress.\n\t// - there is no menu creation process in progress.\n\t// - there are no uncontrolled blocks.\n\tconst isPlaceholder =\n\t\t! ref &&\n\t\t! isCreatingNavigationMenu &&\n\t\t! isConvertingClassicMenu &&\n\t\thasResolvedNavigationMenus &&\n\t\tclassicMenus?.length === 0 &&\n\t\t! hasUncontrolledInnerBlocks;\n\n\t// \"loading\" state:\n\t// - there is a menu creation process in progress.\n\t// - there is a classic menu conversion process in progress.\n\t// OR:\n\t// - there is a ref attribute pointing to a Navigation Post\n\t// - the Navigation Post isn't available (hasn't resolved) yet.\n\tconst isLoading =\n\t\t! hasResolvedNavigationMenus ||\n\t\tisCreatingNavigationMenu ||\n\t\tisConvertingClassicMenu ||\n\t\t!! ( ref && ! isEntityAvailable && ! isConvertingClassicMenu );\n\n\tconst textDecoration = attributes.style?.typography?.textDecoration;\n\n\tconst hasBlockOverlay = useBlockOverlayActive( clientId );\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t!! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor?.slug ) ]:\n\t\t\t\t!! backgroundColor?.slug,\n\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\tconst onSelectClassicMenu = async ( classicMenu ) => {\n\t\tconst navMenu = await convertClassicMenu(\n\t\t\tclassicMenu.id,\n\t\t\tclassicMenu.name,\n\t\t\t'draft'\n\t\t);\n\t\tif ( navMenu ) {\n\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst onSelectNavigationMenu = ( menuId ) => {\n\t\thandleUpdateMenu( menuId );\n\t};\n\n\tuseEffect( () => {\n\t\thideNavigationMenuStatusNotice();\n\n\t\tif ( isCreatingNavigationMenu ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuIsSuccess ) {\n\t\t\thandleUpdateMenu( createNavigationMenuPost?.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuIsError ) {\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost?.id,\n\t\tcreateNavigationMenuIsError,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tisCreatingNavigationMenu,\n\t\thandleUpdateMenu,\n\t\thideNavigationMenuStatusNotice,\n\t\tshowNavigationMenuStatusNotice,\n\t] );\n\n\tuseEffect( () => {\n\t\thideClassicMenuConversionNotice();\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu imported successfully.' )\n\t\t\t);\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu import failed.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tclassicMenuConversionStatus,\n\t\tclassicMenuConversionError,\n\t\thideClassicMenuConversionNotice,\n\t\tshowClassicMenuConversionNotice,\n\t] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-submenu\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\n\t\tif ( ! subMenuElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Only detect submenu overlay colors if they have previously been explicitly set.\n\t\t// This avoids the contrast checker from reporting on inherited submenu colors and\n\t\t// showing the contrast warning twice.\n\t\tif ( overlayTextColor.color || overlayBackgroundColor.color ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t}, [\n\t\tenableContrastChecking,\n\t\toverlayTextColor.color,\n\t\toverlayBackgroundColor.color,\n\t] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideNavigationMenuPermissionsNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\tref &&\n\t\t\t\t! navMenuResolvedButMissing &&\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenu &&\n\t\t\t\t! canUserCreateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t\tref,\n\t\thideNavigationMenuPermissionsNotice,\n\t\tshowNavigationMenuPermissionsNotice,\n\t\tnavMenuResolvedButMissing,\n\t] );\n\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenu || canUserUpdateNavigationMenu;\n\tconst isResponsive = 'never' !== overlayMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tconst stylingInspectorControls = (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<OverlayMenuIcon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ close } />\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Close' ) }</span>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t\t<OverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\t\t\t\t} ), // Make sure arrows are shown when we toggle this on.\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tdisabled={ attributes.openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t{ colorGradientSettings.hasColorsOrGradients && (\n\t\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolorValue: textColor.color,\n\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t\t\tonColorChange: setTextColor,\n\t\t\t\t\t\t\t\tresetAllFilter: () => setTextColor(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolorValue: backgroundColor.color,\n\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t\t\tonColorChange: setBackgroundColor,\n\t\t\t\t\t\t\t\tresetAllFilter: () => setBackgroundColor(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolorValue: overlayTextColor.color,\n\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t\t\tonColorChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\tresetAllFilter: () => setOverlayTextColor(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolorValue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t\t\tonColorChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\tresetAllFilter: () =>\n\t\t\t\t\t\t\t\t\tsetOverlayBackgroundColor(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t\t\tgradients={ [] }\n\t\t\t\t\t\tdisableCustomGradients={ true }\n\t\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</InspectorControls>\n\t\t\t) }\n\t\t</>\n\t);\n\n\tconst isManageMenusButtonDisabled =\n\t\t! hasManagePermissions || ! hasResolvedNavigationMenus;\n\n\tif ( hasUnsavedBlocks && ! isCreatingNavigationMenu ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t/>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tcreateNavigationMenu={ createNavigationMenu }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t/>\n\t\t\t\t</ResponsiveWrapper>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t/>\n\t\t\t\t<DeletedNavigationWarning\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\t/**\n\t * Historically the navigation block has supported custom placeholders.\n\t * Even though the current UX tries as hard as possible not to\n\t * end up in a placeholder state, the block continues to support\n\t * this extensibility point, via a CustomPlaceholder.\n\t * When CustomPlaceholder is present it becomes the default fallback\n\t * for an empty navigation block, instead of the default fallbacks.\n\t *\n\t */\n\n\tif ( isPlaceholder && CustomPlaceholder ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<PlaceholderComponent\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcanUserCreateNavigationMenu={ canUserCreateNavigationMenu }\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenu={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenu\n\t\t\t\t\t}\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonCreateEmpty={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider uniqueId={ recursionId }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t/>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t\t{ hasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t\t\t\tcanUserUpdateNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasResolvedCanUserDeleteNavigationMenu &&\n\t\t\t\t\t\t\tcanUserDeleteNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\t\t\tonDelete={ ( deletedMenuTitle = '' ) => {\n\t\t\t\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Navigation menu %s successfully deleted.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tdeletedMenuTitle\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<ManageMenusButton\n\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-manage-menus-button\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t{ isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<div className=\"wp-block-navigation__loading-indicator-container\">\n\t\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\n\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}