@wordpress/block-library 8.0.0 → 8.2.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 (558) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/LICENSE.md +1 -1
  3. package/build/archives/edit.js +1 -0
  4. package/build/archives/edit.js.map +1 -1
  5. package/build/audio/edit.js +2 -0
  6. package/build/audio/edit.js.map +1 -1
  7. package/build/categories/edit.js +1 -1
  8. package/build/categories/edit.js.map +1 -1
  9. package/build/comments/edit/comments-inspector-controls.js +9 -3
  10. package/build/comments/edit/comments-inspector-controls.js.map +1 -1
  11. package/build/cover/edit/inspector-controls.js +1 -1
  12. package/build/cover/edit/inspector-controls.js.map +1 -1
  13. package/build/embed/embed-preview.js +1 -0
  14. package/build/embed/embed-preview.js.map +1 -1
  15. package/build/file/inspector.js +1 -0
  16. package/build/file/inspector.js.map +1 -1
  17. package/build/freeform/edit.js +21 -6
  18. package/build/freeform/edit.js.map +1 -1
  19. package/build/freeform/modal.js +97 -0
  20. package/build/freeform/modal.js.map +1 -0
  21. package/build/gallery/edit.js +15 -2
  22. package/build/gallery/edit.js.map +1 -1
  23. package/build/gallery/gallery.js +3 -16
  24. package/build/gallery/gallery.js.map +1 -1
  25. package/build/gallery/v1/edit.js +2 -0
  26. package/build/gallery/v1/edit.js.map +1 -1
  27. package/build/group/edit.js +1 -0
  28. package/build/group/edit.js.map +1 -1
  29. package/build/group/index.js +3 -0
  30. package/build/group/index.js.map +1 -1
  31. package/build/image/image.js +7 -10
  32. package/build/image/image.js.map +1 -1
  33. package/build/latest-posts/edit.js +11 -8
  34. package/build/latest-posts/edit.js.map +1 -1
  35. package/build/media-text/edit.js +1 -0
  36. package/build/media-text/edit.js.map +1 -1
  37. package/build/missing/edit.native.js +2 -2
  38. package/build/missing/edit.native.js.map +1 -1
  39. package/build/navigation/edit/index.js +9 -7
  40. package/build/navigation/edit/index.js.map +1 -1
  41. package/build/navigation/edit/menu-inspector-controls.js +81 -22
  42. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  43. package/build/navigation/edit/navigation-menu-selector.js +15 -10
  44. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  45. package/build/navigation/edit/utils.js +81 -0
  46. package/build/navigation/edit/utils.js.map +1 -1
  47. package/build/navigation/leaf-more-menu.js +95 -0
  48. package/build/navigation/leaf-more-menu.js.map +1 -0
  49. package/build/navigation-link/edit.js +10 -61
  50. package/build/navigation-link/edit.js.map +1 -1
  51. package/build/navigation-link/update-attributes.js +3 -3
  52. package/build/navigation-link/update-attributes.js.map +1 -1
  53. package/build/navigation-submenu/edit.js +7 -72
  54. package/build/navigation-submenu/edit.js.map +1 -1
  55. package/build/page-list/edit.js +16 -15
  56. package/build/page-list/edit.js.map +1 -1
  57. package/build/page-list/index.js +29 -2
  58. package/build/page-list/index.js.map +1 -1
  59. package/build/page-list-item/edit.js +9 -5
  60. package/build/page-list-item/edit.js.map +1 -1
  61. package/build/page-list-item/index.js +2 -1
  62. package/build/page-list-item/index.js.map +1 -1
  63. package/build/post-author/edit.js +2 -0
  64. package/build/post-author/edit.js.map +1 -1
  65. package/build/post-featured-image/dimension-controls.js +1 -0
  66. package/build/post-featured-image/dimension-controls.js.map +1 -1
  67. package/build/post-featured-image/overlay.js +0 -1
  68. package/build/post-featured-image/overlay.js.map +1 -1
  69. package/build/query/edit/index.js +2 -1
  70. package/build/query/edit/index.js.map +1 -1
  71. package/build/query/edit/inspector-controls/index.js +11 -5
  72. package/build/query/edit/inspector-controls/index.js.map +1 -1
  73. package/build/query/edit/inspector-controls/order-control.js +1 -0
  74. package/build/query/edit/inspector-controls/order-control.js.map +1 -1
  75. package/build/query/edit/inspector-controls/sticky-control.js +1 -0
  76. package/build/query/edit/inspector-controls/sticky-control.js.map +1 -1
  77. package/build/query/edit/inspector-controls/taxonomy-controls.js +101 -37
  78. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  79. package/build/query/edit/query-content.js +10 -4
  80. package/build/query/edit/query-content.js.map +1 -1
  81. package/build/query/edit/query-placeholder.js +17 -12
  82. package/build/query/edit/query-placeholder.js.map +1 -1
  83. package/build/query/utils.js +73 -1
  84. package/build/query/utils.js.map +1 -1
  85. package/build/search/edit.js +2 -2
  86. package/build/search/edit.js.map +1 -1
  87. package/build/social-link/edit.js +2 -1
  88. package/build/social-link/edit.js.map +1 -1
  89. package/build/social-links/edit.js +0 -1
  90. package/build/social-links/edit.js.map +1 -1
  91. package/build/table/edit.js +1 -0
  92. package/build/table/edit.js.map +1 -1
  93. package/build/table-of-contents/edit.js +1 -1
  94. package/build/table-of-contents/edit.js.map +1 -1
  95. package/build/tag-cloud/edit.js +1 -0
  96. package/build/tag-cloud/edit.js.map +1 -1
  97. package/build/template-part/edit/advanced-controls.js +23 -2
  98. package/build/template-part/edit/advanced-controls.js.map +1 -1
  99. package/build/template-part/edit/import-controls.js +160 -0
  100. package/build/template-part/edit/import-controls.js.map +1 -0
  101. package/build/template-part/edit/index.js +2 -1
  102. package/build/template-part/edit/index.js.map +1 -1
  103. package/build/template-part/edit/utils/transformers.js +48 -0
  104. package/build/template-part/edit/utils/transformers.js.map +1 -0
  105. package/build/video/edit-common-settings.js +6 -5
  106. package/build/video/edit-common-settings.js.map +1 -1
  107. package/build/video/edit.js +1 -0
  108. package/build/video/edit.js.map +1 -1
  109. package/build/video/tracks-editor.js +1 -0
  110. package/build/video/tracks-editor.js.map +1 -1
  111. package/build-module/archives/edit.js +1 -0
  112. package/build-module/archives/edit.js.map +1 -1
  113. package/build-module/audio/edit.js +2 -0
  114. package/build-module/audio/edit.js.map +1 -1
  115. package/build-module/categories/edit.js +1 -1
  116. package/build-module/categories/edit.js.map +1 -1
  117. package/build-module/comments/edit/comments-inspector-controls.js +9 -3
  118. package/build-module/comments/edit/comments-inspector-controls.js.map +1 -1
  119. package/build-module/cover/edit/inspector-controls.js +3 -3
  120. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  121. package/build-module/embed/embed-preview.js +1 -0
  122. package/build-module/embed/embed-preview.js.map +1 -1
  123. package/build-module/file/inspector.js +1 -0
  124. package/build-module/file/inspector.js.map +1 -1
  125. package/build-module/freeform/edit.js +22 -8
  126. package/build-module/freeform/edit.js.map +1 -1
  127. package/build-module/freeform/modal.js +90 -0
  128. package/build-module/freeform/modal.js.map +1 -0
  129. package/build-module/gallery/edit.js +16 -3
  130. package/build-module/gallery/edit.js.map +1 -1
  131. package/build-module/gallery/gallery.js +4 -16
  132. package/build-module/gallery/gallery.js.map +1 -1
  133. package/build-module/gallery/v1/edit.js +2 -0
  134. package/build-module/gallery/v1/edit.js.map +1 -1
  135. package/build-module/group/edit.js +1 -0
  136. package/build-module/group/edit.js.map +1 -1
  137. package/build-module/group/index.js +3 -0
  138. package/build-module/group/index.js.map +1 -1
  139. package/build-module/image/image.js +7 -10
  140. package/build-module/image/image.js.map +1 -1
  141. package/build-module/latest-posts/edit.js +12 -9
  142. package/build-module/latest-posts/edit.js.map +1 -1
  143. package/build-module/media-text/edit.js +1 -0
  144. package/build-module/media-text/edit.js.map +1 -1
  145. package/build-module/missing/edit.native.js +2 -2
  146. package/build-module/missing/edit.native.js.map +1 -1
  147. package/build-module/navigation/edit/index.js +9 -7
  148. package/build-module/navigation/edit/index.js.map +1 -1
  149. package/build-module/navigation/edit/menu-inspector-controls.js +80 -25
  150. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  151. package/build-module/navigation/edit/navigation-menu-selector.js +16 -11
  152. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  153. package/build-module/navigation/edit/utils.js +75 -0
  154. package/build-module/navigation/edit/utils.js.map +1 -1
  155. package/build-module/navigation/leaf-more-menu.js +76 -0
  156. package/build-module/navigation/leaf-more-menu.js.map +1 -0
  157. package/build-module/navigation-link/edit.js +10 -62
  158. package/build-module/navigation-link/edit.js.map +1 -1
  159. package/build-module/navigation-link/update-attributes.js +3 -3
  160. package/build-module/navigation-link/update-attributes.js.map +1 -1
  161. package/build-module/navigation-submenu/edit.js +6 -72
  162. package/build-module/navigation-submenu/edit.js.map +1 -1
  163. package/build-module/page-list/edit.js +17 -15
  164. package/build-module/page-list/edit.js.map +1 -1
  165. package/build-module/page-list/index.js +30 -3
  166. package/build-module/page-list/index.js.map +1 -1
  167. package/build-module/page-list-item/edit.js +9 -6
  168. package/build-module/page-list-item/edit.js.map +1 -1
  169. package/build-module/page-list-item/index.js +2 -1
  170. package/build-module/page-list-item/index.js.map +1 -1
  171. package/build-module/post-author/edit.js +2 -0
  172. package/build-module/post-author/edit.js.map +1 -1
  173. package/build-module/post-featured-image/dimension-controls.js +1 -0
  174. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  175. package/build-module/post-featured-image/overlay.js +0 -1
  176. package/build-module/post-featured-image/overlay.js.map +1 -1
  177. package/build-module/query/edit/index.js +2 -1
  178. package/build-module/query/edit/index.js.map +1 -1
  179. package/build-module/query/edit/inspector-controls/index.js +11 -5
  180. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  181. package/build-module/query/edit/inspector-controls/order-control.js +1 -0
  182. package/build-module/query/edit/inspector-controls/order-control.js.map +1 -1
  183. package/build-module/query/edit/inspector-controls/sticky-control.js +1 -0
  184. package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -1
  185. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +99 -35
  186. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  187. package/build-module/query/edit/query-content.js +9 -2
  188. package/build-module/query/edit/query-content.js.map +1 -1
  189. package/build-module/query/edit/query-placeholder.js +16 -12
  190. package/build-module/query/edit/query-placeholder.js.map +1 -1
  191. package/build-module/query/utils.js +69 -0
  192. package/build-module/query/utils.js.map +1 -1
  193. package/build-module/search/edit.js +2 -2
  194. package/build-module/search/edit.js.map +1 -1
  195. package/build-module/social-link/edit.js +4 -3
  196. package/build-module/social-link/edit.js.map +1 -1
  197. package/build-module/social-links/edit.js +0 -1
  198. package/build-module/social-links/edit.js.map +1 -1
  199. package/build-module/table/edit.js +1 -0
  200. package/build-module/table/edit.js.map +1 -1
  201. package/build-module/table-of-contents/edit.js +1 -1
  202. package/build-module/table-of-contents/edit.js.map +1 -1
  203. package/build-module/tag-cloud/edit.js +1 -0
  204. package/build-module/tag-cloud/edit.js.map +1 -1
  205. package/build-module/template-part/edit/advanced-controls.js +22 -2
  206. package/build-module/template-part/edit/advanced-controls.js.map +1 -1
  207. package/build-module/template-part/edit/import-controls.js +146 -0
  208. package/build-module/template-part/edit/import-controls.js.map +1 -0
  209. package/build-module/template-part/edit/index.js +2 -1
  210. package/build-module/template-part/edit/index.js.map +1 -1
  211. package/build-module/template-part/edit/utils/transformers.js +40 -0
  212. package/build-module/template-part/edit/utils/transformers.js.map +1 -0
  213. package/build-module/video/edit-common-settings.js +6 -5
  214. package/build-module/video/edit-common-settings.js.map +1 -1
  215. package/build-module/video/edit.js +1 -0
  216. package/build-module/video/edit.js.map +1 -1
  217. package/build-module/video/tracks-editor.js +1 -0
  218. package/build-module/video/tracks-editor.js.map +1 -1
  219. package/build-style/archives/editor-rtl.css +3 -3
  220. package/build-style/archives/editor.css +3 -3
  221. package/build-style/archives/style-rtl.css +3 -3
  222. package/build-style/archives/style.css +3 -3
  223. package/build-style/audio/editor-rtl.css +3 -3
  224. package/build-style/audio/editor.css +3 -3
  225. package/build-style/audio/style-rtl.css +3 -3
  226. package/build-style/audio/style.css +3 -3
  227. package/build-style/audio/theme-rtl.css +3 -3
  228. package/build-style/audio/theme.css +3 -3
  229. package/build-style/avatar/editor-rtl.css +3 -3
  230. package/build-style/avatar/editor.css +3 -3
  231. package/build-style/avatar/style-rtl.css +3 -3
  232. package/build-style/avatar/style.css +3 -3
  233. package/build-style/block/editor-rtl.css +3 -3
  234. package/build-style/block/editor.css +3 -3
  235. package/build-style/button/editor-rtl.css +3 -3
  236. package/build-style/button/editor.css +3 -3
  237. package/build-style/button/style-rtl.css +3 -3
  238. package/build-style/button/style.css +3 -3
  239. package/build-style/buttons/editor-rtl.css +3 -3
  240. package/build-style/buttons/editor.css +3 -3
  241. package/build-style/buttons/style-rtl.css +3 -3
  242. package/build-style/buttons/style.css +3 -3
  243. package/build-style/calendar/style-rtl.css +3 -3
  244. package/build-style/calendar/style.css +3 -3
  245. package/build-style/categories/editor-rtl.css +3 -3
  246. package/build-style/categories/editor.css +3 -3
  247. package/build-style/categories/style-rtl.css +3 -3
  248. package/build-style/categories/style.css +3 -3
  249. package/build-style/classic-rtl.css +3 -3
  250. package/build-style/classic.css +3 -3
  251. package/build-style/code/editor-rtl.css +3 -3
  252. package/build-style/code/editor.css +3 -3
  253. package/build-style/code/style-rtl.css +3 -3
  254. package/build-style/code/style.css +3 -3
  255. package/build-style/code/theme-rtl.css +3 -3
  256. package/build-style/code/theme.css +3 -3
  257. package/build-style/columns/editor-rtl.css +3 -3
  258. package/build-style/columns/editor.css +3 -3
  259. package/build-style/columns/style-rtl.css +3 -3
  260. package/build-style/columns/style.css +3 -3
  261. package/build-style/comment-author-avatar/editor-rtl.css +3 -3
  262. package/build-style/comment-author-avatar/editor.css +3 -3
  263. package/build-style/comment-content/style-rtl.css +3 -3
  264. package/build-style/comment-content/style.css +3 -3
  265. package/build-style/comment-template/style-rtl.css +3 -3
  266. package/build-style/comment-template/style.css +3 -3
  267. package/build-style/comments/editor-rtl.css +3 -3
  268. package/build-style/comments/editor.css +3 -3
  269. package/build-style/comments/style-rtl.css +3 -3
  270. package/build-style/comments/style.css +3 -3
  271. package/build-style/comments-pagination/editor-rtl.css +3 -3
  272. package/build-style/comments-pagination/editor.css +3 -3
  273. package/build-style/comments-pagination/style-rtl.css +3 -3
  274. package/build-style/comments-pagination/style.css +3 -3
  275. package/build-style/comments-pagination-numbers/editor-rtl.css +3 -3
  276. package/build-style/comments-pagination-numbers/editor.css +3 -3
  277. package/build-style/comments-title/editor-rtl.css +3 -3
  278. package/build-style/comments-title/editor.css +3 -3
  279. package/build-style/common-rtl.css +3 -3
  280. package/build-style/common.css +3 -3
  281. package/build-style/cover/editor-rtl.css +3 -3
  282. package/build-style/cover/editor.css +3 -3
  283. package/build-style/cover/style-rtl.css +3 -3
  284. package/build-style/cover/style.css +3 -3
  285. package/build-style/editor-elements-rtl.css +3 -3
  286. package/build-style/editor-elements.css +3 -3
  287. package/build-style/editor-rtl.css +7 -9
  288. package/build-style/editor.css +7 -9
  289. package/build-style/elements-rtl.css +3 -3
  290. package/build-style/elements.css +3 -3
  291. package/build-style/embed/editor-rtl.css +3 -3
  292. package/build-style/embed/editor.css +3 -3
  293. package/build-style/embed/style-rtl.css +3 -3
  294. package/build-style/embed/style.css +3 -3
  295. package/build-style/embed/theme-rtl.css +3 -3
  296. package/build-style/embed/theme.css +3 -3
  297. package/build-style/file/editor-rtl.css +3 -3
  298. package/build-style/file/editor.css +3 -3
  299. package/build-style/file/style-rtl.css +3 -3
  300. package/build-style/file/style.css +3 -3
  301. package/build-style/freeform/editor-rtl.css +3 -3
  302. package/build-style/freeform/editor.css +3 -3
  303. package/build-style/gallery/editor-rtl.css +3 -3
  304. package/build-style/gallery/editor.css +3 -3
  305. package/build-style/gallery/style-rtl.css +3 -3
  306. package/build-style/gallery/style.css +3 -3
  307. package/build-style/gallery/theme-rtl.css +3 -3
  308. package/build-style/gallery/theme.css +3 -3
  309. package/build-style/group/editor-rtl.css +3 -3
  310. package/build-style/group/editor.css +3 -3
  311. package/build-style/group/style-rtl.css +3 -3
  312. package/build-style/group/style.css +3 -3
  313. package/build-style/group/theme-rtl.css +3 -3
  314. package/build-style/group/theme.css +3 -3
  315. package/build-style/heading/style-rtl.css +3 -3
  316. package/build-style/heading/style.css +3 -3
  317. package/build-style/html/editor-rtl.css +3 -3
  318. package/build-style/html/editor.css +3 -3
  319. package/build-style/image/editor-rtl.css +3 -3
  320. package/build-style/image/editor.css +3 -3
  321. package/build-style/image/style-rtl.css +3 -3
  322. package/build-style/image/style.css +3 -3
  323. package/build-style/image/theme-rtl.css +3 -3
  324. package/build-style/image/theme.css +3 -3
  325. package/build-style/latest-comments/style-rtl.css +3 -3
  326. package/build-style/latest-comments/style.css +3 -3
  327. package/build-style/latest-posts/editor-rtl.css +3 -3
  328. package/build-style/latest-posts/editor.css +3 -3
  329. package/build-style/latest-posts/style-rtl.css +3 -3
  330. package/build-style/latest-posts/style.css +3 -3
  331. package/build-style/list/style-rtl.css +3 -3
  332. package/build-style/list/style.css +3 -3
  333. package/build-style/media-text/editor-rtl.css +3 -3
  334. package/build-style/media-text/editor.css +3 -3
  335. package/build-style/media-text/style-rtl.css +3 -3
  336. package/build-style/media-text/style.css +3 -3
  337. package/build-style/more/editor-rtl.css +3 -3
  338. package/build-style/more/editor.css +3 -3
  339. package/build-style/navigation/editor-rtl.css +3 -9
  340. package/build-style/navigation/editor.css +3 -9
  341. package/build-style/navigation/style-rtl.css +3 -4
  342. package/build-style/navigation/style.css +3 -4
  343. package/build-style/navigation-link/editor-rtl.css +3 -3
  344. package/build-style/navigation-link/editor.css +3 -3
  345. package/build-style/navigation-link/style-rtl.css +3 -3
  346. package/build-style/navigation-link/style.css +3 -3
  347. package/build-style/navigation-submenu/editor-rtl.css +3 -3
  348. package/build-style/navigation-submenu/editor.css +3 -3
  349. package/build-style/nextpage/editor-rtl.css +3 -3
  350. package/build-style/nextpage/editor.css +3 -3
  351. package/build-style/page-list/editor-rtl.css +7 -3
  352. package/build-style/page-list/editor.css +7 -3
  353. package/build-style/page-list/style-rtl.css +3 -3
  354. package/build-style/page-list/style.css +3 -3
  355. package/build-style/paragraph/editor-rtl.css +3 -3
  356. package/build-style/paragraph/editor.css +3 -3
  357. package/build-style/paragraph/style-rtl.css +3 -3
  358. package/build-style/paragraph/style.css +3 -3
  359. package/build-style/post-author/style-rtl.css +3 -3
  360. package/build-style/post-author/style.css +3 -3
  361. package/build-style/post-comments-form/editor-rtl.css +3 -3
  362. package/build-style/post-comments-form/editor.css +3 -3
  363. package/build-style/post-comments-form/style-rtl.css +3 -3
  364. package/build-style/post-comments-form/style.css +3 -3
  365. package/build-style/post-date/style-rtl.css +3 -3
  366. package/build-style/post-date/style.css +3 -3
  367. package/build-style/post-excerpt/editor-rtl.css +3 -3
  368. package/build-style/post-excerpt/editor.css +3 -3
  369. package/build-style/post-excerpt/style-rtl.css +3 -3
  370. package/build-style/post-excerpt/style.css +3 -3
  371. package/build-style/post-featured-image/editor-rtl.css +3 -3
  372. package/build-style/post-featured-image/editor.css +3 -3
  373. package/build-style/post-featured-image/style-rtl.css +3 -3
  374. package/build-style/post-featured-image/style.css +3 -3
  375. package/build-style/post-navigation-link/style-rtl.css +3 -3
  376. package/build-style/post-navigation-link/style.css +3 -3
  377. package/build-style/post-template/editor-rtl.css +3 -3
  378. package/build-style/post-template/editor.css +3 -3
  379. package/build-style/post-template/style-rtl.css +3 -3
  380. package/build-style/post-template/style.css +3 -3
  381. package/build-style/post-terms/style-rtl.css +3 -3
  382. package/build-style/post-terms/style.css +3 -3
  383. package/build-style/post-title/style-rtl.css +3 -3
  384. package/build-style/post-title/style.css +3 -3
  385. package/build-style/preformatted/style-rtl.css +3 -3
  386. package/build-style/preformatted/style.css +3 -3
  387. package/build-style/pullquote/editor-rtl.css +3 -3
  388. package/build-style/pullquote/editor.css +3 -3
  389. package/build-style/pullquote/style-rtl.css +3 -3
  390. package/build-style/pullquote/style.css +3 -3
  391. package/build-style/pullquote/theme-rtl.css +3 -3
  392. package/build-style/pullquote/theme.css +3 -3
  393. package/build-style/query/editor-rtl.css +3 -3
  394. package/build-style/query/editor.css +3 -3
  395. package/build-style/query-pagination/editor-rtl.css +3 -3
  396. package/build-style/query-pagination/editor.css +3 -3
  397. package/build-style/query-pagination/style-rtl.css +3 -3
  398. package/build-style/query-pagination/style.css +3 -3
  399. package/build-style/query-pagination-numbers/editor-rtl.css +3 -3
  400. package/build-style/query-pagination-numbers/editor.css +3 -3
  401. package/build-style/query-title/style-rtl.css +3 -3
  402. package/build-style/query-title/style.css +3 -3
  403. package/build-style/quote/style-rtl.css +3 -3
  404. package/build-style/quote/style.css +3 -3
  405. package/build-style/quote/theme-rtl.css +3 -3
  406. package/build-style/quote/theme.css +3 -3
  407. package/build-style/read-more/style-rtl.css +3 -3
  408. package/build-style/read-more/style.css +3 -3
  409. package/build-style/reset-rtl.css +3 -3
  410. package/build-style/reset.css +3 -3
  411. package/build-style/rss/editor-rtl.css +3 -3
  412. package/build-style/rss/editor.css +3 -3
  413. package/build-style/rss/style-rtl.css +3 -3
  414. package/build-style/rss/style.css +3 -3
  415. package/build-style/search/editor-rtl.css +3 -3
  416. package/build-style/search/editor.css +3 -3
  417. package/build-style/search/style-rtl.css +3 -3
  418. package/build-style/search/style.css +3 -3
  419. package/build-style/search/theme-rtl.css +3 -3
  420. package/build-style/search/theme.css +3 -3
  421. package/build-style/separator/editor-rtl.css +3 -3
  422. package/build-style/separator/editor.css +3 -3
  423. package/build-style/separator/style-rtl.css +3 -3
  424. package/build-style/separator/style.css +3 -3
  425. package/build-style/separator/theme-rtl.css +3 -3
  426. package/build-style/separator/theme.css +3 -3
  427. package/build-style/shortcode/editor-rtl.css +3 -3
  428. package/build-style/shortcode/editor.css +3 -3
  429. package/build-style/site-logo/editor-rtl.css +3 -3
  430. package/build-style/site-logo/editor.css +3 -3
  431. package/build-style/site-logo/style-rtl.css +3 -3
  432. package/build-style/site-logo/style.css +3 -3
  433. package/build-style/site-tagline/editor-rtl.css +3 -3
  434. package/build-style/site-tagline/editor.css +3 -3
  435. package/build-style/site-title/editor-rtl.css +3 -3
  436. package/build-style/site-title/editor.css +3 -3
  437. package/build-style/site-title/style-rtl.css +3 -3
  438. package/build-style/site-title/style.css +3 -3
  439. package/build-style/social-link/editor-rtl.css +3 -3
  440. package/build-style/social-link/editor.css +3 -3
  441. package/build-style/social-links/editor-rtl.css +3 -3
  442. package/build-style/social-links/editor.css +3 -3
  443. package/build-style/social-links/style-rtl.css +3 -3
  444. package/build-style/social-links/style.css +3 -3
  445. package/build-style/spacer/editor-rtl.css +3 -3
  446. package/build-style/spacer/editor.css +3 -3
  447. package/build-style/spacer/style-rtl.css +3 -3
  448. package/build-style/spacer/style.css +3 -3
  449. package/build-style/style-rtl.css +13 -5
  450. package/build-style/style.css +13 -5
  451. package/build-style/table/editor-rtl.css +3 -3
  452. package/build-style/table/editor.css +3 -3
  453. package/build-style/table/style-rtl.css +9 -3
  454. package/build-style/table/style.css +9 -3
  455. package/build-style/table/theme-rtl.css +3 -9
  456. package/build-style/table/theme.css +3 -9
  457. package/build-style/tag-cloud/style-rtl.css +3 -3
  458. package/build-style/tag-cloud/style.css +3 -3
  459. package/build-style/template-part/editor-rtl.css +3 -3
  460. package/build-style/template-part/editor.css +3 -3
  461. package/build-style/template-part/theme-rtl.css +3 -3
  462. package/build-style/template-part/theme.css +3 -3
  463. package/build-style/text-columns/editor-rtl.css +3 -3
  464. package/build-style/text-columns/editor.css +3 -3
  465. package/build-style/text-columns/style-rtl.css +3 -3
  466. package/build-style/text-columns/style.css +3 -3
  467. package/build-style/theme-rtl.css +3 -9
  468. package/build-style/theme.css +3 -9
  469. package/build-style/verse/style-rtl.css +7 -4
  470. package/build-style/verse/style.css +7 -4
  471. package/build-style/video/editor-rtl.css +3 -3
  472. package/build-style/video/editor.css +3 -3
  473. package/build-style/video/style-rtl.css +3 -3
  474. package/build-style/video/style.css +3 -3
  475. package/build-style/video/theme-rtl.css +3 -3
  476. package/build-style/video/theme.css +3 -3
  477. package/package.json +29 -29
  478. package/src/archives/edit.js +1 -0
  479. package/src/audio/edit.js +2 -0
  480. package/src/categories/edit.js +1 -1
  481. package/src/comments/edit/comments-inspector-controls.js +12 -2
  482. package/src/comments/index.php +0 -1
  483. package/src/cover/edit/inspector-controls.js +4 -4
  484. package/src/embed/embed-preview.js +1 -0
  485. package/src/file/inspector.js +1 -0
  486. package/src/freeform/edit.js +48 -29
  487. package/src/freeform/modal.js +111 -0
  488. package/src/gallery/edit.js +19 -2
  489. package/src/gallery/gallery.js +4 -13
  490. package/src/gallery/v1/edit.js +2 -0
  491. package/src/group/block.json +3 -0
  492. package/src/group/edit.js +1 -0
  493. package/src/image/image.js +27 -36
  494. package/src/latest-posts/edit.js +6 -7
  495. package/src/latest-posts/test/__snapshots__/edit.native.js.snap +3 -0
  496. package/src/latest-posts/test/edit.native.js +49 -0
  497. package/src/media-text/edit.js +1 -0
  498. package/src/missing/edit.native.js +13 -6
  499. package/src/more/test/__snapshots__/edit.native.js.snap +7 -0
  500. package/src/more/test/edit.native.js +41 -0
  501. package/src/navigation/edit/index.js +6 -4
  502. package/src/navigation/edit/menu-inspector-controls.js +115 -44
  503. package/src/navigation/edit/navigation-menu-selector.js +24 -11
  504. package/src/navigation/edit/utils.js +82 -0
  505. package/src/navigation/editor.scss +0 -7
  506. package/src/navigation/index.php +32 -0
  507. package/src/navigation/leaf-more-menu.js +93 -0
  508. package/src/navigation/style.scss +0 -1
  509. package/src/navigation-link/edit.js +23 -65
  510. package/src/navigation-link/index.php +62 -3
  511. package/src/navigation-link/update-attributes.js +1 -1
  512. package/src/navigation-submenu/edit.js +29 -100
  513. package/src/navigation-submenu/index.php +34 -2
  514. package/src/page-list/block.json +18 -1
  515. package/src/page-list/edit.js +30 -22
  516. package/src/page-list/editor.scss +4 -0
  517. package/src/page-list/index.js +8 -2
  518. package/src/page-list/index.php +14 -10
  519. package/src/page-list-item/block.json +2 -1
  520. package/src/page-list-item/edit.js +17 -9
  521. package/src/post-author/edit.js +2 -0
  522. package/src/post-featured-image/dimension-controls.js +1 -0
  523. package/src/post-featured-image/overlay.js +0 -1
  524. package/src/query/edit/index.js +1 -0
  525. package/src/query/edit/inspector-controls/index.js +50 -38
  526. package/src/query/edit/inspector-controls/order-control.js +1 -0
  527. package/src/query/edit/inspector-controls/sticky-control.js +1 -0
  528. package/src/query/edit/inspector-controls/taxonomy-controls.js +102 -38
  529. package/src/query/edit/query-content.js +15 -1
  530. package/src/query/edit/query-placeholder.js +15 -14
  531. package/src/query/utils.js +59 -1
  532. package/src/rss/index.php +1 -1
  533. package/src/search/edit.js +2 -2
  534. package/src/separator/test/__snapshots__/edit.native.js.snap +7 -0
  535. package/src/separator/test/edit.native.js +41 -0
  536. package/src/social-link/edit.js +5 -4
  537. package/src/social-links/edit.js +0 -1
  538. package/src/table/edit.js +1 -0
  539. package/src/table/style.scss +8 -0
  540. package/src/table/theme.scss +0 -8
  541. package/src/table-of-contents/edit.js +1 -1
  542. package/src/tag-cloud/edit.js +1 -0
  543. package/src/template-part/edit/advanced-controls.js +36 -0
  544. package/src/template-part/edit/import-controls.js +180 -0
  545. package/src/template-part/edit/index.js +1 -0
  546. package/src/template-part/edit/utils/transformers.js +37 -0
  547. package/src/verse/style.scss +4 -1
  548. package/src/verse/test/__snapshots__/edit.native.js.snap +13 -0
  549. package/src/verse/test/edit.native.js +40 -33
  550. package/src/video/edit-common-settings.js +6 -5
  551. package/src/video/edit.js +1 -0
  552. package/src/video/tracks-editor.js +1 -0
  553. package/tsconfig.tsbuildinfo +1 -1
  554. package/build/query/constants.js +0 -16
  555. package/build/query/constants.js.map +0 -1
  556. package/build-module/query/constants.js +0 -7
  557. package/build-module/query/constants.js.map +0 -1
  558. package/src/query/constants.js +0 -7
@@ -648,7 +648,6 @@ function Navigation( {
648
648
  { hasColorSettings && (
649
649
  <>
650
650
  <ColorGradientSettingsDropdown
651
- __experimentalHasMultipleOrigins
652
651
  __experimentalIsRenderedInSidebar
653
652
  settings={ [
654
653
  {
@@ -717,17 +716,18 @@ function Navigation( {
717
716
  return (
718
717
  <TagName { ...blockProps }>
719
718
  <MenuInspectorControls
719
+ clientId={ clientId }
720
720
  createNavigationMenuIsSuccess={
721
721
  createNavigationMenuIsSuccess
722
722
  }
723
723
  createNavigationMenuIsError={ createNavigationMenuIsError }
724
724
  currentMenuId={ ref }
725
725
  isNavigationMenuMissing={ isNavigationMenuMissing }
726
- innerBlocks={ innerBlocks }
727
726
  isManageMenusButtonDisabled={ isManageMenusButtonDisabled }
728
727
  onCreateNew={ createUntitledEmptyNavigationMenu }
729
728
  onSelectClassicMenu={ onSelectClassicMenu }
730
729
  onSelectNavigationMenu={ onSelectNavigationMenu }
730
+ isLoading={ isLoading }
731
731
  />
732
732
  { stylingInspectorControls }
733
733
  <ResponsiveWrapper
@@ -759,16 +759,17 @@ function Navigation( {
759
759
  return (
760
760
  <TagName { ...blockProps }>
761
761
  <MenuInspectorControls
762
+ clientId={ clientId }
762
763
  createNavigationMenuIsSuccess={
763
764
  createNavigationMenuIsSuccess
764
765
  }
765
766
  createNavigationMenuIsError={ createNavigationMenuIsError }
766
767
  isNavigationMenuMissing={ isNavigationMenuMissing }
767
- innerBlocks={ innerBlocks }
768
768
  isManageMenusButtonDisabled={ isManageMenusButtonDisabled }
769
769
  onCreateNew={ createUntitledEmptyNavigationMenu }
770
770
  onSelectClassicMenu={ onSelectClassicMenu }
771
771
  onSelectNavigationMenu={ onSelectNavigationMenu }
772
+ isLoading={ isLoading }
772
773
  />
773
774
  <Warning>
774
775
  { __(
@@ -832,17 +833,18 @@ function Navigation( {
832
833
  <EntityProvider kind="postType" type="wp_navigation" id={ ref }>
833
834
  <RecursionProvider uniqueId={ recursionId }>
834
835
  <MenuInspectorControls
836
+ clientId={ clientId }
835
837
  createNavigationMenuIsSuccess={
836
838
  createNavigationMenuIsSuccess
837
839
  }
838
840
  createNavigationMenuIsError={ createNavigationMenuIsError }
839
841
  currentMenuId={ ref }
840
842
  isNavigationMenuMissing={ isNavigationMenuMissing }
841
- innerBlocks={ innerBlocks }
842
843
  isManageMenusButtonDisabled={ isManageMenusButtonDisabled }
843
844
  onCreateNew={ createUntitledEmptyNavigationMenu }
844
845
  onSelectClassicMenu={ onSelectClassicMenu }
845
846
  onSelectNavigationMenu={ onSelectNavigationMenu }
847
+ isLoading={ isLoading }
846
848
  />
847
849
  { stylingInspectorControls }
848
850
  { isEntityAvailable && (
@@ -4,8 +4,15 @@
4
4
  import {
5
5
  __experimentalOffCanvasEditor as OffCanvasEditor,
6
6
  InspectorControls,
7
+ store as blockEditorStore,
7
8
  } from '@wordpress/block-editor';
8
- import { PanelBody, VisuallyHidden } from '@wordpress/components';
9
+ import {
10
+ PanelBody,
11
+ __experimentalHStack as HStack,
12
+ __experimentalHeading as Heading,
13
+ Spinner,
14
+ } from '@wordpress/components';
15
+ import { useSelect } from '@wordpress/data';
9
16
  import { __ } from '@wordpress/i18n';
10
17
 
11
18
  /**
@@ -13,24 +20,114 @@ import { __ } from '@wordpress/i18n';
13
20
  */
14
21
  import ManageMenusButton from './manage-menus-button';
15
22
  import NavigationMenuSelector from './navigation-menu-selector';
23
+ import { LeafMoreMenu } from '../leaf-more-menu';
24
+
25
+ /* translators: %s: The name of a menu. */
26
+ const actionLabel = __( "Switch to '%s'" );
16
27
 
17
- const MenuInspectorControls = ( {
18
- createNavigationMenuIsSuccess,
19
- createNavigationMenuIsError,
20
- currentMenuId = null,
21
- innerBlocks,
22
- isManageMenusButtonDisabled,
23
- onCreateNew,
24
- onSelectClassicMenu,
25
- onSelectNavigationMenu,
28
+ const ExperimentMainContent = ( {
29
+ clientId,
30
+ currentMenuId,
31
+ isLoading,
32
+ isNavigationMenuMissing,
26
33
  } ) => {
34
+ // Provide a hierarchy of clientIds for the given Navigation block (clientId).
35
+ // This is required else the list view will display the entire block tree.
36
+ const clientIdsTree = useSelect(
37
+ ( select ) => {
38
+ const { __unstableGetClientIdsTree } = select( blockEditorStore );
39
+ return __unstableGetClientIdsTree( clientId );
40
+ },
41
+ [ clientId ]
42
+ );
43
+
44
+ if ( currentMenuId && isNavigationMenuMissing ) {
45
+ return <p>{ __( 'Select or create a menu' ) }</p>;
46
+ }
47
+
48
+ if ( isLoading ) {
49
+ return <Spinner />;
50
+ }
51
+
52
+ return (
53
+ <OffCanvasEditor
54
+ blocks={ clientIdsTree }
55
+ isExpanded={ true }
56
+ selectBlockInCanvas={ false }
57
+ LeafMoreMenu={ LeafMoreMenu }
58
+ />
59
+ );
60
+ };
61
+
62
+ const ExperimentControls = ( props ) => {
63
+ const {
64
+ createNavigationMenuIsSuccess,
65
+ createNavigationMenuIsError,
66
+ currentMenuId = null,
67
+ onCreateNew,
68
+ onSelectClassicMenu,
69
+ onSelectNavigationMenu,
70
+ } = props;
71
+
72
+ return (
73
+ <>
74
+ <HStack className="wp-block-navigation-off-canvas-editor__header">
75
+ <Heading
76
+ className="wp-block-navigation-off-canvas-editor__title"
77
+ level={ 2 }
78
+ >
79
+ { __( 'Menu' ) }
80
+ </Heading>
81
+ <NavigationMenuSelector
82
+ currentMenuId={ currentMenuId }
83
+ onSelectClassicMenu={ onSelectClassicMenu }
84
+ onSelectNavigationMenu={ onSelectNavigationMenu }
85
+ onCreateNew={ onCreateNew }
86
+ createNavigationMenuIsSuccess={
87
+ createNavigationMenuIsSuccess
88
+ }
89
+ createNavigationMenuIsError={ createNavigationMenuIsError }
90
+ actionLabel={ actionLabel }
91
+ />
92
+ </HStack>
93
+ <ExperimentMainContent { ...props } />
94
+ </>
95
+ );
96
+ };
97
+
98
+ const DefaultControls = ( props ) => {
99
+ const {
100
+ createNavigationMenuIsSuccess,
101
+ createNavigationMenuIsError,
102
+ currentMenuId = null,
103
+ isManageMenusButtonDisabled,
104
+ onCreateNew,
105
+ onSelectClassicMenu,
106
+ onSelectNavigationMenu,
107
+ } = props;
108
+
109
+ return (
110
+ <>
111
+ <NavigationMenuSelector
112
+ currentMenuId={ currentMenuId }
113
+ onSelectClassicMenu={ onSelectClassicMenu }
114
+ onSelectNavigationMenu={ onSelectNavigationMenu }
115
+ onCreateNew={ onCreateNew }
116
+ createNavigationMenuIsSuccess={ createNavigationMenuIsSuccess }
117
+ createNavigationMenuIsError={ createNavigationMenuIsError }
118
+ actionLabel={ actionLabel }
119
+ />
120
+ <ManageMenusButton disabled={ isManageMenusButtonDisabled } />
121
+ </>
122
+ );
123
+ };
124
+
125
+ const MenuInspectorControls = ( props ) => {
27
126
  const isOffCanvasNavigationEditorEnabled =
28
127
  window?.__experimentalEnableOffCanvasNavigationEditor === true;
29
- const menuControlsSlot = window?.__experimentalEnableBlockInspectorTabs
128
+ const menuControlsSlot = isOffCanvasNavigationEditorEnabled
30
129
  ? 'list'
31
130
  : undefined;
32
- /* translators: %s: The name of a menu. */
33
- const actionLabel = __( "Switch to '%s'" );
34
131
 
35
132
  return (
36
133
  <InspectorControls __experimentalGroup={ menuControlsSlot }>
@@ -39,37 +136,11 @@ const MenuInspectorControls = ( {
39
136
  isOffCanvasNavigationEditorEnabled ? null : __( 'Menu' )
40
137
  }
41
138
  >
42
- <>
43
- { isOffCanvasNavigationEditorEnabled && (
44
- <VisuallyHidden as="h2">
45
- { __( 'Menu' ) }
46
- </VisuallyHidden>
47
- ) }
48
- <NavigationMenuSelector
49
- currentMenuId={ currentMenuId }
50
- onSelectClassicMenu={ onSelectClassicMenu }
51
- onSelectNavigationMenu={ onSelectNavigationMenu }
52
- onCreateNew={ onCreateNew }
53
- createNavigationMenuIsSuccess={
54
- createNavigationMenuIsSuccess
55
- }
56
- createNavigationMenuIsError={
57
- createNavigationMenuIsError
58
- }
59
- actionLabel={ actionLabel }
60
- />
61
- { isOffCanvasNavigationEditorEnabled ? (
62
- <OffCanvasEditor
63
- blocks={ innerBlocks }
64
- isExpanded={ true }
65
- selectBlockInCanvas={ false }
66
- />
67
- ) : (
68
- <ManageMenusButton
69
- disabled={ isManageMenusButtonDisabled }
70
- />
71
- ) }
72
- </>
139
+ { isOffCanvasNavigationEditorEnabled ? (
140
+ <ExperimentControls { ...props } />
141
+ ) : (
142
+ <DefaultControls { ...props } />
143
+ ) }
73
144
  </PanelBody>
74
145
  </InspectorControls>
75
146
  );
@@ -10,7 +10,7 @@ import {
10
10
  VisuallyHidden,
11
11
  } from '@wordpress/components';
12
12
  import { useEntityProp } from '@wordpress/core-data';
13
- import { Icon, chevronUp, chevronDown } from '@wordpress/icons';
13
+ import { Icon, chevronUp, chevronDown, moreVertical } from '@wordpress/icons';
14
14
  import { __, sprintf } from '@wordpress/i18n';
15
15
  import { decodeEntities } from '@wordpress/html-entities';
16
16
  import { useEffect, useMemo, useState } from '@wordpress/element';
@@ -31,6 +31,8 @@ function NavigationMenuSelector( {
31
31
  createNavigationMenuIsError,
32
32
  toggleProps = {},
33
33
  } ) {
34
+ const isOffCanvasNavigationEditorEnabled =
35
+ window?.__experimentalEnableOffCanvasNavigationEditor === true;
34
36
  /* translators: %s: The name of a menu. */
35
37
  const createActionLabel = __( "Create from '%s'" );
36
38
 
@@ -67,7 +69,10 @@ function NavigationMenuSelector( {
67
69
  navigationMenus?.map( ( { id, title } ) => {
68
70
  const label = decodeEntities( title.rendered );
69
71
  if ( id === currentMenuId && ! isCreatingMenu ) {
70
- setSelectorLabel( currentTitle );
72
+ setSelectorLabel(
73
+ /* translators: %s is the name of a navigation menu. */
74
+ sprintf( __( 'You are currently editing %s' ), label )
75
+ );
71
76
  setEnableOptions( shouldEnableMenuSelector );
72
77
  }
73
78
  return {
@@ -100,7 +105,7 @@ function NavigationMenuSelector( {
100
105
  if ( ! hasResolvedNavigationMenus ) {
101
106
  setSelectorLabel( __( 'Loading …' ) );
102
107
  } else if ( noMenuSelected || noBlockMenus || menuUnavailable ) {
103
- setSelectorLabel( __( 'Select menu' ) );
108
+ setSelectorLabel( __( 'Choose a Navigation menu' ) );
104
109
  setEnableOptions( shouldEnableMenuSelector );
105
110
  }
106
111
 
@@ -140,7 +145,11 @@ function NavigationMenuSelector( {
140
145
  },
141
146
  };
142
147
 
143
- if ( ! hasNavigationMenus && ! hasClassicMenus ) {
148
+ if (
149
+ ! hasNavigationMenus &&
150
+ ! hasClassicMenus &&
151
+ ! isOffCanvasNavigationEditorEnabled
152
+ ) {
144
153
  return (
145
154
  <Button
146
155
  className="wp-block-navigation__navigation-selector-button--createnew"
@@ -161,15 +170,19 @@ function NavigationMenuSelector( {
161
170
 
162
171
  return (
163
172
  <DropdownMenu
164
- className="wp-block-navigation__navigation-selector"
173
+ className={
174
+ isOffCanvasNavigationEditorEnabled
175
+ ? ''
176
+ : 'wp-block-navigation__navigation-selector'
177
+ }
165
178
  label={ selectorLabel }
166
- text={
167
- <span className="wp-block-navigation__navigation-selector-button__label">
168
- { selectorLabel }
169
- </span>
179
+ text={ isOffCanvasNavigationEditorEnabled ? '' : selectorLabel }
180
+ icon={ isOffCanvasNavigationEditorEnabled ? moreVertical : null }
181
+ toggleProps={
182
+ isOffCanvasNavigationEditorEnabled
183
+ ? { isSmall: true }
184
+ : toggleProps
170
185
  }
171
- icon={ null }
172
- toggleProps={ toggleProps }
173
186
  >
174
187
  { ( { onClose } ) => (
175
188
  <>
@@ -1,3 +1,8 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import classnames from 'classnames';
5
+
1
6
  function getComputedStyle( node ) {
2
7
  return node.ownerDocument.defaultView.getComputedStyle( node );
3
8
  }
@@ -28,3 +33,80 @@ export function detectColors(
28
33
 
29
34
  setBackground( backgroundColor );
30
35
  }
36
+
37
+ /**
38
+ * Determine the colors for a menu.
39
+ *
40
+ * Order of priority is:
41
+ * 1: Overlay custom colors (if submenu)
42
+ * 2: Overlay theme colors (if submenu)
43
+ * 3: Custom colors
44
+ * 4: Theme colors
45
+ * 5: Global styles
46
+ *
47
+ * @param {Object} context
48
+ * @param {boolean} isSubMenu
49
+ */
50
+ export function getColors( context, isSubMenu ) {
51
+ const {
52
+ textColor,
53
+ customTextColor,
54
+ backgroundColor,
55
+ customBackgroundColor,
56
+ overlayTextColor,
57
+ customOverlayTextColor,
58
+ overlayBackgroundColor,
59
+ customOverlayBackgroundColor,
60
+ style,
61
+ } = context;
62
+
63
+ const colors = {};
64
+
65
+ if ( isSubMenu && !! customOverlayTextColor ) {
66
+ colors.customTextColor = customOverlayTextColor;
67
+ } else if ( isSubMenu && !! overlayTextColor ) {
68
+ colors.textColor = overlayTextColor;
69
+ } else if ( !! customTextColor ) {
70
+ colors.customTextColor = customTextColor;
71
+ } else if ( !! textColor ) {
72
+ colors.textColor = textColor;
73
+ } else if ( !! style?.color?.text ) {
74
+ colors.customTextColor = style.color.text;
75
+ }
76
+
77
+ if ( isSubMenu && !! customOverlayBackgroundColor ) {
78
+ colors.customBackgroundColor = customOverlayBackgroundColor;
79
+ } else if ( isSubMenu && !! overlayBackgroundColor ) {
80
+ colors.backgroundColor = overlayBackgroundColor;
81
+ } else if ( !! customBackgroundColor ) {
82
+ colors.customBackgroundColor = customBackgroundColor;
83
+ } else if ( !! backgroundColor ) {
84
+ colors.backgroundColor = backgroundColor;
85
+ } else if ( !! style?.color?.background ) {
86
+ colors.customTextColor = style.color.background;
87
+ }
88
+
89
+ return colors;
90
+ }
91
+
92
+ export function getNavigationChildBlockProps( innerBlocksColors ) {
93
+ return {
94
+ className: classnames( 'wp-block-navigation__submenu-container', {
95
+ 'has-text-color': !! (
96
+ innerBlocksColors.textColor || innerBlocksColors.customTextColor
97
+ ),
98
+ [ `has-${ innerBlocksColors.textColor }-color` ]:
99
+ !! innerBlocksColors.textColor,
100
+ 'has-background': !! (
101
+ innerBlocksColors.backgroundColor ||
102
+ innerBlocksColors.customBackgroundColor
103
+ ),
104
+ [ `has-${ innerBlocksColors.backgroundColor }-background-color` ]:
105
+ !! innerBlocksColors.backgroundColor,
106
+ } ),
107
+ style: {
108
+ color: innerBlocksColors.customTextColor,
109
+ backgroundColor: innerBlocksColors.customBackgroundColor,
110
+ },
111
+ };
112
+ }
@@ -32,13 +32,6 @@
32
32
  * Submenus.
33
33
  */
34
34
 
35
- // Ensure sub-menus stay open and visible when a nested block is selected.
36
- .wp-block-navigation__container.is-parent-of-selected-block {
37
- visibility: visible;
38
- opacity: 1;
39
- overflow: visible;
40
- }
41
-
42
35
  // Low specificity default to ensure background color applies to submenus.
43
36
  .wp-block-navigation__container,
44
37
  .wp-block-navigation-item {
@@ -856,3 +856,35 @@ function block_core_navigation_typographic_presets_backcompatibility( $parsed_bl
856
856
  }
857
857
 
858
858
  add_filter( 'render_block_data', 'block_core_navigation_typographic_presets_backcompatibility' );
859
+
860
+ /**
861
+ * Enables animation of the block inspector for the Navigation block.
862
+ *
863
+ * See:
864
+ * - https://github.com/WordPress/gutenberg/pull/46342
865
+ * - https://github.com/WordPress/gutenberg/issues/45884
866
+ *
867
+ * @param array $settings Default editor settings.
868
+ * @return array Filtered editor settings.
869
+ */
870
+ function gutenberg_enable_animation_for_navigation_inspector( $settings ) {
871
+ $current_animation_settings = _wp_array_get(
872
+ $settings,
873
+ array( '__experimentalBlockInspectorAnimation' ),
874
+ array()
875
+ );
876
+
877
+ $settings['__experimentalBlockInspectorAnimation'] = array_merge(
878
+ $current_animation_settings,
879
+ array(
880
+ 'core/navigation' =>
881
+ array(
882
+ 'enterDirection' => 'leftToRight',
883
+ ),
884
+ )
885
+ );
886
+
887
+ return $settings;
888
+ }
889
+
890
+ add_filter( 'block_editor_settings_all', 'gutenberg_enable_animation_for_navigation_inspector' );
@@ -0,0 +1,93 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { createBlock } from '@wordpress/blocks';
5
+ import { addSubmenu, moreVertical } from '@wordpress/icons';
6
+ import { DropdownMenu, MenuItem, MenuGroup } from '@wordpress/components';
7
+ import { useDispatch } from '@wordpress/data';
8
+ import { store as blockEditorStore, BlockTitle } from '@wordpress/block-editor';
9
+ import { __, sprintf } from '@wordpress/i18n';
10
+
11
+ const POPOVER_PROPS = {
12
+ className: 'block-editor-block-settings-menu__popover',
13
+ position: 'bottom right',
14
+ variant: 'toolbar',
15
+ };
16
+
17
+ export const LeafMoreMenu = ( props ) => {
18
+ const { clientId, block } = props;
19
+
20
+ const { insertBlock, replaceBlock, removeBlocks, replaceInnerBlocks } =
21
+ useDispatch( blockEditorStore );
22
+
23
+ const label = sprintf(
24
+ /* translators: %s: block name */
25
+ __( 'Remove %s' ),
26
+ BlockTitle( { clientId, maximumLength: 25 } )
27
+ );
28
+
29
+ return (
30
+ <DropdownMenu
31
+ icon={ moreVertical }
32
+ label={ __( 'Options' ) }
33
+ className="block-editor-block-settings-menu"
34
+ popoverProps={ POPOVER_PROPS }
35
+ noIcons
36
+ { ...props }
37
+ >
38
+ { ( { onClose } ) => (
39
+ <MenuGroup>
40
+ <MenuItem
41
+ icon={ addSubmenu }
42
+ onClick={ () => {
43
+ const updateSelectionOnInsert = false;
44
+ const newLink = createBlock(
45
+ 'core/navigation-link'
46
+ );
47
+ if ( block.name === 'core/navigation-submenu' ) {
48
+ insertBlock(
49
+ newLink,
50
+ block.innerBlocks.length,
51
+ clientId,
52
+ updateSelectionOnInsert
53
+ );
54
+ } else {
55
+ // Convert to a submenu if the block currently isn't one.
56
+ const newSubmenu = createBlock(
57
+ 'core/navigation-submenu',
58
+ block.attributes,
59
+ block.innerBlocks
60
+ );
61
+
62
+ // The following must happen as two independent actions.
63
+ // Why? Because the offcanvas editor relies on the getLastInsertedBlocksClientIds
64
+ // selector to determine which block is "active". As the UX needs the newLink to be
65
+ // the "active" block it must be the last block to be inserted.
66
+ // Therefore the Submenu is first created and **then** the newLink is inserted
67
+ // thus ensuring it is the last inserted block.
68
+ replaceBlock( clientId, newSubmenu );
69
+
70
+ replaceInnerBlocks(
71
+ newSubmenu.clientId,
72
+ [ newLink ],
73
+ updateSelectionOnInsert
74
+ );
75
+ }
76
+ onClose();
77
+ } }
78
+ >
79
+ { __( 'Add submenu item' ) }
80
+ </MenuItem>
81
+ <MenuItem
82
+ onClick={ () => {
83
+ removeBlocks( [ clientId ], false );
84
+ onClose();
85
+ } }
86
+ >
87
+ { label }
88
+ </MenuItem>
89
+ </MenuGroup>
90
+ ) }
91
+ </DropdownMenu>
92
+ );
93
+ };
@@ -533,7 +533,6 @@ button.wp-block-navigation-item__content {
533
533
  }
534
534
 
535
535
  // Always expand/unfold submenus inside the modal.
536
- .has-child .submenu-container,
537
536
  .has-child .wp-block-navigation__submenu-container {
538
537
  // Unset CSS that hides dropdown menus.
539
538
  opacity: 1;