@wordpress/block-library 7.9.0 → 7.12.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 (756) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/archives/edit.js +7 -0
  3. package/build/archives/edit.js.map +1 -1
  4. package/build/archives/index.js +4 -0
  5. package/build/archives/index.js.map +1 -1
  6. package/build/block/edit.js +4 -2
  7. package/build/block/edit.js.map +1 -1
  8. package/build/block/edit.native.js +4 -2
  9. package/build/block/edit.native.js.map +1 -1
  10. package/build/button/edit.js +2 -1
  11. package/build/button/edit.js.map +1 -1
  12. package/build/buttons/edit.js +1 -1
  13. package/build/buttons/edit.js.map +1 -1
  14. package/build/calendar/edit.js +12 -5
  15. package/build/calendar/edit.js.map +1 -1
  16. package/build/columns/edit.native.js +3 -2
  17. package/build/columns/edit.native.js.map +1 -1
  18. package/build/comment-template/index.js +1 -1
  19. package/build/comments/deprecated.js +65 -0
  20. package/build/comments/deprecated.js.map +1 -0
  21. package/build/comments/edit/comments-legacy.js +73 -0
  22. package/build/comments/edit/comments-legacy.js.map +1 -0
  23. package/build/comments/{edit.js → edit/index.js} +17 -38
  24. package/build/comments/edit/index.js.map +1 -0
  25. package/build/comments/edit/placeholder.js +117 -0
  26. package/build/comments/edit/placeholder.js.map +1 -0
  27. package/build/comments/edit/template.js +39 -0
  28. package/build/comments/edit/template.js.map +1 -0
  29. package/build/comments/index.js +11 -3
  30. package/build/comments/index.js.map +1 -1
  31. package/build/comments/save.js +12 -4
  32. package/build/comments/save.js.map +1 -1
  33. package/build/comments-pagination/index.js +1 -1
  34. package/build/comments-title/deprecated.js +1 -1
  35. package/build/comments-title/index.js +1 -1
  36. package/build/cover/edit/block-controls.js +2 -12
  37. package/build/cover/edit/block-controls.js.map +1 -1
  38. package/build/cover/edit/cover-placeholder.js +3 -1
  39. package/build/cover/edit/cover-placeholder.js.map +1 -1
  40. package/build/cover/edit/index.js +19 -4
  41. package/build/cover/edit/index.js.map +1 -1
  42. package/build/cover/edit/resizable-cover.js +6 -0
  43. package/build/cover/edit/resizable-cover.js.map +1 -1
  44. package/build/cover/transforms.js +3 -2
  45. package/build/cover/transforms.js.map +1 -1
  46. package/build/embed/embed-placeholder.native.js +1 -3
  47. package/build/embed/embed-placeholder.native.js.map +1 -1
  48. package/build/gallery/edit.js +11 -19
  49. package/build/gallery/edit.js.map +1 -1
  50. package/build/gallery/transforms.js +30 -20
  51. package/build/gallery/transforms.js.map +1 -1
  52. package/build/gallery/use-get-media.js +7 -18
  53. package/build/gallery/use-get-media.js.map +1 -1
  54. package/build/gallery/use-get-media.native.js +59 -0
  55. package/build/gallery/use-get-media.native.js.map +1 -0
  56. package/build/group/edit.js +1 -3
  57. package/build/group/edit.js.map +1 -1
  58. package/build/group/index.js +1 -0
  59. package/build/group/index.js.map +1 -1
  60. package/build/group/transforms.js +5 -0
  61. package/build/group/transforms.js.map +1 -1
  62. package/build/group/variations.js +1 -1
  63. package/build/group/variations.js.map +1 -1
  64. package/build/heading/heading-level-dropdown.js +2 -1
  65. package/build/heading/heading-level-dropdown.js.map +1 -1
  66. package/build/heading/index.js +9 -4
  67. package/build/heading/index.js.map +1 -1
  68. package/build/image/deprecated.js +77 -9
  69. package/build/image/deprecated.js.map +1 -1
  70. package/build/image/edit.js +3 -1
  71. package/build/image/edit.js.map +1 -1
  72. package/build/image/edit.native.js +18 -8
  73. package/build/image/edit.native.js.map +1 -1
  74. package/build/image/image.js +27 -20
  75. package/build/image/image.js.map +1 -1
  76. package/build/image/index.js +7 -1
  77. package/build/image/index.js.map +1 -1
  78. package/build/image/save.js +8 -2
  79. package/build/image/save.js.map +1 -1
  80. package/build/index.js +1 -3
  81. package/build/index.js.map +1 -1
  82. package/build/index.native.js +10 -7
  83. package/build/index.native.js.map +1 -1
  84. package/build/latest-posts/edit.js +1 -1
  85. package/build/latest-posts/edit.js.map +1 -1
  86. package/build/list/index.js +6 -0
  87. package/build/list/index.js.map +1 -1
  88. package/build/list/transforms.js +4 -63
  89. package/build/list/transforms.js.map +1 -1
  90. package/build/list/v2/edit.js +16 -5
  91. package/build/list/v2/edit.js.map +1 -1
  92. package/build/list/v2/tag-name.js +31 -0
  93. package/build/list/v2/tag-name.js.map +1 -0
  94. package/build/list/v2/tag-name.native.js +32 -0
  95. package/build/list/v2/tag-name.native.js.map +1 -0
  96. package/build/list/v2/transforms.js +1 -38
  97. package/build/list/v2/transforms.js.map +1 -1
  98. package/build/list-item/edit.js +15 -9
  99. package/build/list-item/edit.js.map +1 -1
  100. package/build/list-item/edit.native.js +158 -0
  101. package/build/list-item/edit.native.js.map +1 -0
  102. package/build/list-item/hooks/index.js +8 -8
  103. package/build/list-item/hooks/index.js.map +1 -1
  104. package/build/list-item/hooks/use-merge.js +174 -0
  105. package/build/list-item/hooks/use-merge.js.map +1 -0
  106. package/build/list-item/hooks/use-outdent-list-item.js +86 -50
  107. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  108. package/build/list-item/icons.native.js +53 -0
  109. package/build/list-item/icons.native.js.map +1 -0
  110. package/build/list-item/list-style-type.native.js +136 -0
  111. package/build/list-item/list-style-type.native.js.map +1 -0
  112. package/build/list-item/utils.js +125 -1
  113. package/build/list-item/utils.js.map +1 -1
  114. package/build/media-text/deprecated.js +265 -16
  115. package/build/media-text/deprecated.js.map +1 -1
  116. package/build/media-text/edit.js +4 -3
  117. package/build/media-text/edit.js.map +1 -1
  118. package/build/media-text/media-container.js +1 -1
  119. package/build/media-text/media-container.js.map +1 -1
  120. package/build/media-text/save.js +13 -0
  121. package/build/media-text/save.js.map +1 -1
  122. package/build/more/edit.js +2 -4
  123. package/build/more/edit.js.map +1 -1
  124. package/build/more/save.js +1 -7
  125. package/build/more/save.js.map +1 -1
  126. package/build/navigation/edit/index.js +68 -123
  127. package/build/navigation/edit/index.js.map +1 -1
  128. package/build/navigation/edit/navigation-menu-selector.js +11 -14
  129. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  130. package/build/navigation/edit/placeholder/index.js +4 -2
  131. package/build/navigation/edit/placeholder/index.js.map +1 -1
  132. package/build/navigation/edit/responsive-wrapper.js +13 -3
  133. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  134. package/build/navigation/edit/use-create-navigation-menu.js +5 -1
  135. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
  136. package/build/navigation/edit/use-inner-blocks.js +43 -0
  137. package/build/navigation/edit/use-inner-blocks.js.map +1 -0
  138. package/build/navigation/edit/utils.js +28 -0
  139. package/build/navigation/edit/utils.js.map +1 -0
  140. package/build/navigation/use-navigation-menu.js +7 -3
  141. package/build/navigation/use-navigation-menu.js.map +1 -1
  142. package/build/navigation/view.js +7 -4
  143. package/build/navigation/view.js.map +1 -1
  144. package/build/navigation-link/edit.js +5 -4
  145. package/build/navigation-link/edit.js.map +1 -1
  146. package/build/navigation-link/hooks.js +0 -16
  147. package/build/navigation-link/hooks.js.map +1 -1
  148. package/build/navigation-link/index.js +1 -1
  149. package/build/navigation-link/index.js.map +1 -1
  150. package/build/navigation-submenu/edit.js +2 -1
  151. package/build/navigation-submenu/edit.js.map +1 -1
  152. package/build/navigation-submenu/view.js +7 -4
  153. package/build/navigation-submenu/view.js.map +1 -1
  154. package/build/nextpage/edit.js +1 -3
  155. package/build/nextpage/edit.js.map +1 -1
  156. package/build/page-list/edit.js +10 -3
  157. package/build/page-list/edit.js.map +1 -1
  158. package/build/paragraph/edit.js +7 -11
  159. package/build/paragraph/edit.js.map +1 -1
  160. package/build/post-author/edit.js +5 -2
  161. package/build/post-author/edit.js.map +1 -1
  162. package/build/post-author-biography/edit.js +7 -1
  163. package/build/post-author-biography/edit.js.map +1 -1
  164. package/build/post-comments-form/edit.js +4 -47
  165. package/build/post-comments-form/edit.js.map +1 -1
  166. package/build/post-comments-form/form.js +47 -3
  167. package/build/post-comments-form/form.js.map +1 -1
  168. package/build/post-content/edit.js +4 -2
  169. package/build/post-content/edit.js.map +1 -1
  170. package/build/post-featured-image/edit.js +16 -2
  171. package/build/post-featured-image/edit.js.map +1 -1
  172. package/build/post-featured-image/index.js +9 -0
  173. package/build/post-featured-image/index.js.map +1 -1
  174. package/build/post-terms/edit.js +3 -2
  175. package/build/post-terms/edit.js.map +1 -1
  176. package/build/post-terms/index.js +1 -1
  177. package/build/post-terms/index.js.map +1 -1
  178. package/build/post-title/index.js +1 -0
  179. package/build/post-title/index.js.map +1 -1
  180. package/build/query/edit/inspector-controls/index.js +43 -10
  181. package/build/query/edit/inspector-controls/index.js.map +1 -1
  182. package/build/query/edit/inspector-controls/taxonomy-controls.js +21 -14
  183. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  184. package/build/query/index.js +1 -1
  185. package/build/query/index.js.map +1 -1
  186. package/build/query-no-results/edit.js +1 -1
  187. package/build/query-no-results/edit.js.map +1 -1
  188. package/build/query-pagination-next/edit.js +2 -1
  189. package/build/query-pagination-next/edit.js.map +1 -1
  190. package/build/query-pagination-previous/edit.js +2 -1
  191. package/build/query-pagination-previous/edit.js.map +1 -1
  192. package/build/query-title/edit.js +20 -7
  193. package/build/query-title/edit.js.map +1 -1
  194. package/build/query-title/index.js +4 -0
  195. package/build/query-title/index.js.map +1 -1
  196. package/build/query-title/variations.js +10 -0
  197. package/build/query-title/variations.js.map +1 -1
  198. package/build/quote/deprecated.js +168 -36
  199. package/build/quote/deprecated.js.map +1 -1
  200. package/build/quote/edit.js +76 -39
  201. package/build/quote/edit.js.map +1 -1
  202. package/build/quote/index.js +9 -45
  203. package/build/quote/index.js.map +1 -1
  204. package/build/quote/save.js +1 -5
  205. package/build/quote/save.js.map +1 -1
  206. package/build/quote/transforms.js +110 -158
  207. package/build/quote/transforms.js.map +1 -1
  208. package/build/separator/edit.js +1 -1
  209. package/build/separator/edit.js.map +1 -1
  210. package/build/site-logo/edit.js +5 -13
  211. package/build/site-logo/edit.js.map +1 -1
  212. package/build/site-title/edit/level-toolbar.js +2 -1
  213. package/build/site-title/edit/level-toolbar.js.map +1 -1
  214. package/build/social-link/icons/index.js +13 -0
  215. package/build/social-link/icons/index.js.map +1 -1
  216. package/build/social-link/icons/whatsapp.js +25 -0
  217. package/build/social-link/icons/whatsapp.js.map +1 -0
  218. package/build/social-link/variations.js +7 -0
  219. package/build/social-link/variations.js.map +1 -1
  220. package/build/social-links/edit.js +1 -0
  221. package/build/social-links/edit.js.map +1 -1
  222. package/build/template-part/edit/index.js +21 -10
  223. package/build/template-part/edit/index.js.map +1 -1
  224. package/build/template-part/edit/selection-modal.js +33 -13
  225. package/build/template-part/edit/selection-modal.js.map +1 -1
  226. package/build/template-part/edit/utils/search.js +94 -0
  227. package/build/template-part/edit/utils/search.js.map +1 -0
  228. package/build/template-part/index.js +1 -1
  229. package/build/template-part/index.js.map +1 -1
  230. package/build/template-part/variations.js +0 -16
  231. package/build/template-part/variations.js.map +1 -1
  232. package/build/utils/clean-empty-object.js +5 -3
  233. package/build/utils/clean-empty-object.js.map +1 -1
  234. package/build/video/tracks-editor.js +9 -11
  235. package/build/video/tracks-editor.js.map +1 -1
  236. package/build-module/archives/edit.js +7 -0
  237. package/build-module/archives/edit.js.map +1 -1
  238. package/build-module/archives/index.js +4 -0
  239. package/build-module/archives/index.js.map +1 -1
  240. package/build-module/block/edit.js +5 -3
  241. package/build-module/block/edit.js.map +1 -1
  242. package/build-module/block/edit.native.js +5 -3
  243. package/build-module/block/edit.native.js.map +1 -1
  244. package/build-module/button/edit.js +2 -1
  245. package/build-module/button/edit.js.map +1 -1
  246. package/build-module/buttons/edit.js +2 -2
  247. package/build-module/buttons/edit.js.map +1 -1
  248. package/build-module/calendar/edit.js +12 -4
  249. package/build-module/calendar/edit.js.map +1 -1
  250. package/build-module/columns/edit.native.js +4 -3
  251. package/build-module/columns/edit.native.js.map +1 -1
  252. package/build-module/comment-template/index.js +1 -1
  253. package/build-module/comments/deprecated.js +54 -0
  254. package/build-module/comments/deprecated.js.map +1 -0
  255. package/build-module/comments/edit/comments-legacy.js +59 -0
  256. package/build-module/comments/edit/comments-legacy.js.map +1 -0
  257. package/build-module/comments/edit/index.js +37 -0
  258. package/build-module/comments/edit/index.js.map +1 -0
  259. package/build-module/comments/edit/placeholder.js +102 -0
  260. package/build-module/comments/edit/placeholder.js.map +1 -0
  261. package/build-module/comments/edit/template.js +32 -0
  262. package/build-module/comments/edit/template.js.map +1 -0
  263. package/build-module/comments/index.js +10 -3
  264. package/build-module/comments/index.js.map +1 -1
  265. package/build-module/comments/save.js +9 -4
  266. package/build-module/comments/save.js.map +1 -1
  267. package/build-module/comments-pagination/index.js +1 -1
  268. package/build-module/comments-title/deprecated.js +1 -1
  269. package/build-module/comments-title/index.js +1 -1
  270. package/build-module/cover/edit/block-controls.js +3 -13
  271. package/build-module/cover/edit/block-controls.js.map +1 -1
  272. package/build-module/cover/edit/cover-placeholder.js +3 -1
  273. package/build-module/cover/edit/cover-placeholder.js.map +1 -1
  274. package/build-module/cover/edit/index.js +19 -4
  275. package/build-module/cover/edit/index.js.map +1 -1
  276. package/build-module/cover/edit/resizable-cover.js +6 -0
  277. package/build-module/cover/edit/resizable-cover.js.map +1 -1
  278. package/build-module/cover/transforms.js +3 -2
  279. package/build-module/cover/transforms.js.map +1 -1
  280. package/build-module/embed/embed-placeholder.native.js +1 -2
  281. package/build-module/embed/embed-placeholder.native.js.map +1 -1
  282. package/build-module/gallery/edit.js +11 -18
  283. package/build-module/gallery/edit.js.map +1 -1
  284. package/build-module/gallery/transforms.js +30 -20
  285. package/build-module/gallery/transforms.js.map +1 -1
  286. package/build-module/gallery/use-get-media.js +6 -16
  287. package/build-module/gallery/use-get-media.js.map +1 -1
  288. package/build-module/gallery/use-get-media.native.js +50 -0
  289. package/build-module/gallery/use-get-media.native.js.map +1 -0
  290. package/build-module/group/edit.js +1 -3
  291. package/build-module/group/edit.js.map +1 -1
  292. package/build-module/group/index.js +1 -0
  293. package/build-module/group/index.js.map +1 -1
  294. package/build-module/group/transforms.js +5 -0
  295. package/build-module/group/transforms.js.map +1 -1
  296. package/build-module/group/variations.js +2 -2
  297. package/build-module/group/variations.js.map +1 -1
  298. package/build-module/heading/heading-level-dropdown.js +2 -1
  299. package/build-module/heading/heading-level-dropdown.js.map +1 -1
  300. package/build-module/heading/index.js +9 -4
  301. package/build-module/heading/index.js.map +1 -1
  302. package/build-module/image/deprecated.js +77 -9
  303. package/build-module/image/deprecated.js.map +1 -1
  304. package/build-module/image/edit.js +5 -3
  305. package/build-module/image/edit.js.map +1 -1
  306. package/build-module/image/edit.native.js +18 -8
  307. package/build-module/image/edit.native.js.map +1 -1
  308. package/build-module/image/image.js +29 -22
  309. package/build-module/image/image.js.map +1 -1
  310. package/build-module/image/index.js +7 -1
  311. package/build-module/image/index.js.map +1 -1
  312. package/build-module/image/save.js +9 -3
  313. package/build-module/image/save.js.map +1 -1
  314. package/build-module/index.js +1 -2
  315. package/build-module/index.js.map +1 -1
  316. package/build-module/index.native.js +9 -7
  317. package/build-module/index.native.js.map +1 -1
  318. package/build-module/latest-posts/edit.js +2 -2
  319. package/build-module/latest-posts/edit.js.map +1 -1
  320. package/build-module/list/index.js +1 -1
  321. package/build-module/list/index.js.map +1 -1
  322. package/build-module/list/transforms.js +4 -63
  323. package/build-module/list/transforms.js.map +1 -1
  324. package/build-module/list/v2/edit.js +15 -5
  325. package/build-module/list/v2/edit.js.map +1 -1
  326. package/build-module/list/v2/tag-name.js +21 -0
  327. package/build-module/list/v2/tag-name.js.map +1 -0
  328. package/build-module/list/v2/tag-name.native.js +21 -0
  329. package/build-module/list/v2/tag-name.native.js.map +1 -0
  330. package/build-module/list/v2/transforms.js +3 -39
  331. package/build-module/list/v2/transforms.js.map +1 -1
  332. package/build-module/list-item/edit.js +15 -13
  333. package/build-module/list-item/edit.js.map +1 -1
  334. package/build-module/list-item/edit.native.js +141 -0
  335. package/build-module/list-item/edit.native.js.map +1 -0
  336. package/build-module/list-item/hooks/index.js +1 -1
  337. package/build-module/list-item/hooks/index.js.map +1 -1
  338. package/build-module/list-item/hooks/use-merge.js +160 -0
  339. package/build-module/list-item/hooks/use-merge.js.map +1 -0
  340. package/build-module/list-item/hooks/use-outdent-list-item.js +82 -46
  341. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  342. package/build-module/list-item/icons.native.js +37 -0
  343. package/build-module/list-item/icons.native.js.map +1 -0
  344. package/build-module/list-item/list-style-type.native.js +124 -0
  345. package/build-module/list-item/list-style-type.native.js.map +1 -0
  346. package/build-module/list-item/utils.js +123 -2
  347. package/build-module/list-item/utils.js.map +1 -1
  348. package/build-module/media-text/deprecated.js +267 -17
  349. package/build-module/media-text/deprecated.js.map +1 -1
  350. package/build-module/media-text/edit.js +4 -3
  351. package/build-module/media-text/edit.js.map +1 -1
  352. package/build-module/media-text/media-container.js +1 -1
  353. package/build-module/media-text/media-container.js.map +1 -1
  354. package/build-module/media-text/save.js +13 -0
  355. package/build-module/media-text/save.js.map +1 -1
  356. package/build-module/more/edit.js +2 -4
  357. package/build-module/more/edit.js.map +1 -1
  358. package/build-module/more/save.js +1 -6
  359. package/build-module/more/save.js.map +1 -1
  360. package/build-module/navigation/edit/index.js +66 -122
  361. package/build-module/navigation/edit/index.js.map +1 -1
  362. package/build-module/navigation/edit/navigation-menu-selector.js +12 -15
  363. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  364. package/build-module/navigation/edit/placeholder/index.js +4 -2
  365. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  366. package/build-module/navigation/edit/responsive-wrapper.js +12 -3
  367. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  368. package/build-module/navigation/edit/use-create-navigation-menu.js +5 -1
  369. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
  370. package/build-module/navigation/edit/use-inner-blocks.js +33 -0
  371. package/build-module/navigation/edit/use-inner-blocks.js.map +1 -0
  372. package/build-module/navigation/edit/utils.js +21 -0
  373. package/build-module/navigation/edit/utils.js.map +1 -0
  374. package/build-module/navigation/use-navigation-menu.js +7 -3
  375. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  376. package/build-module/navigation/view.js +7 -4
  377. package/build-module/navigation/view.js.map +1 -1
  378. package/build-module/navigation-link/edit.js +5 -4
  379. package/build-module/navigation-link/edit.js.map +1 -1
  380. package/build-module/navigation-link/hooks.js +0 -13
  381. package/build-module/navigation-link/hooks.js.map +1 -1
  382. package/build-module/navigation-link/index.js +1 -1
  383. package/build-module/navigation-link/index.js.map +1 -1
  384. package/build-module/navigation-submenu/edit.js +2 -1
  385. package/build-module/navigation-submenu/edit.js.map +1 -1
  386. package/build-module/navigation-submenu/view.js +7 -4
  387. package/build-module/navigation-submenu/view.js.map +1 -1
  388. package/build-module/nextpage/edit.js +1 -3
  389. package/build-module/nextpage/edit.js.map +1 -1
  390. package/build-module/page-list/edit.js +10 -3
  391. package/build-module/page-list/edit.js.map +1 -1
  392. package/build-module/paragraph/edit.js +8 -12
  393. package/build-module/paragraph/edit.js.map +1 -1
  394. package/build-module/post-author/edit.js +5 -2
  395. package/build-module/post-author/edit.js.map +1 -1
  396. package/build-module/post-author-biography/edit.js +6 -1
  397. package/build-module/post-author-biography/edit.js.map +1 -1
  398. package/build-module/post-comments-form/edit.js +5 -44
  399. package/build-module/post-comments-form/edit.js.map +1 -1
  400. package/build-module/post-comments-form/form.js +46 -5
  401. package/build-module/post-comments-form/form.js.map +1 -1
  402. package/build-module/post-content/edit.js +5 -3
  403. package/build-module/post-content/edit.js.map +1 -1
  404. package/build-module/post-featured-image/edit.js +17 -3
  405. package/build-module/post-featured-image/edit.js.map +1 -1
  406. package/build-module/post-featured-image/index.js +9 -0
  407. package/build-module/post-featured-image/index.js.map +1 -1
  408. package/build-module/post-terms/edit.js +3 -2
  409. package/build-module/post-terms/edit.js.map +1 -1
  410. package/build-module/post-terms/index.js +1 -1
  411. package/build-module/post-terms/index.js.map +1 -1
  412. package/build-module/post-title/index.js +1 -0
  413. package/build-module/post-title/index.js.map +1 -1
  414. package/build-module/query/edit/inspector-controls/index.js +43 -10
  415. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  416. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +16 -12
  417. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  418. package/build-module/query/index.js +1 -1
  419. package/build-module/query/index.js.map +1 -1
  420. package/build-module/query-no-results/edit.js +2 -2
  421. package/build-module/query-no-results/edit.js.map +1 -1
  422. package/build-module/query-pagination-next/edit.js +2 -1
  423. package/build-module/query-pagination-next/edit.js.map +1 -1
  424. package/build-module/query-pagination-previous/edit.js +2 -1
  425. package/build-module/query-pagination-previous/edit.js.map +1 -1
  426. package/build-module/query-title/edit.js +20 -8
  427. package/build-module/query-title/edit.js.map +1 -1
  428. package/build-module/query-title/index.js +4 -0
  429. package/build-module/query-title/index.js.map +1 -1
  430. package/build-module/query-title/variations.js +10 -0
  431. package/build-module/query-title/variations.js.map +1 -1
  432. package/build-module/quote/deprecated.js +162 -36
  433. package/build-module/quote/deprecated.js.map +1 -1
  434. package/build-module/quote/edit.js +77 -43
  435. package/build-module/quote/edit.js.map +1 -1
  436. package/build-module/quote/index.js +9 -39
  437. package/build-module/quote/index.js.map +1 -1
  438. package/build-module/quote/save.js +4 -8
  439. package/build-module/quote/save.js.map +1 -1
  440. package/build-module/quote/transforms.js +111 -158
  441. package/build-module/quote/transforms.js.map +1 -1
  442. package/build-module/separator/edit.js +1 -1
  443. package/build-module/separator/edit.js.map +1 -1
  444. package/build-module/site-logo/edit.js +5 -13
  445. package/build-module/site-logo/edit.js.map +1 -1
  446. package/build-module/site-title/edit/level-toolbar.js +2 -1
  447. package/build-module/site-title/edit/level-toolbar.js.map +1 -1
  448. package/build-module/social-link/icons/index.js +1 -0
  449. package/build-module/social-link/icons/index.js.map +1 -1
  450. package/build-module/social-link/icons/whatsapp.js +15 -0
  451. package/build-module/social-link/icons/whatsapp.js.map +1 -0
  452. package/build-module/social-link/variations.js +8 -1
  453. package/build-module/social-link/variations.js.map +1 -1
  454. package/build-module/social-links/edit.js +1 -0
  455. package/build-module/social-links/edit.js.map +1 -1
  456. package/build-module/template-part/edit/index.js +24 -13
  457. package/build-module/template-part/edit/index.js.map +1 -1
  458. package/build-module/template-part/edit/selection-modal.js +33 -15
  459. package/build-module/template-part/edit/selection-modal.js.map +1 -1
  460. package/build-module/template-part/edit/utils/search.js +84 -0
  461. package/build-module/template-part/edit/utils/search.js.map +1 -0
  462. package/build-module/template-part/index.js +1 -1
  463. package/build-module/template-part/index.js.map +1 -1
  464. package/build-module/template-part/variations.js +0 -13
  465. package/build-module/template-part/variations.js.map +1 -1
  466. package/build-module/utils/clean-empty-object.js +5 -2
  467. package/build-module/utils/clean-empty-object.js.map +1 -1
  468. package/build-module/video/tracks-editor.js +9 -11
  469. package/build-module/video/tracks-editor.js.map +1 -1
  470. package/build-style/button/style-rtl.css +1 -1
  471. package/build-style/button/style.css +1 -1
  472. package/build-style/comment-template/style-rtl.css +12 -0
  473. package/build-style/comment-template/style.css +12 -0
  474. package/build-style/comments/editor-rtl.css +122 -0
  475. package/build-style/comments/editor.css +122 -0
  476. package/build-style/{post-comments → comments}/style-rtl.css +1 -0
  477. package/build-style/{post-comments → comments}/style.css +1 -0
  478. package/build-style/common-rtl.css +7 -0
  479. package/build-style/common.css +7 -0
  480. package/build-style/cover/style-rtl.css +2 -2
  481. package/build-style/cover/style.css +2 -2
  482. package/build-style/editor-elements-rtl.css +85 -0
  483. package/build-style/editor-elements.css +85 -0
  484. package/build-style/editor-rtl.css +162 -11
  485. package/build-style/editor.css +162 -11
  486. package/build-style/{post-comments/editor-rtl.css → elements-rtl.css} +5 -2
  487. package/build-style/{post-comments/editor.css → elements.css} +5 -2
  488. package/build-style/gallery/style-rtl.css +7 -2
  489. package/build-style/gallery/style.css +7 -2
  490. package/build-style/image/editor-rtl.css +4 -3
  491. package/build-style/image/editor.css +4 -3
  492. package/build-style/image/style-rtl.css +33 -3
  493. package/build-style/image/style.css +33 -3
  494. package/build-style/latest-posts/editor-rtl.css +3 -0
  495. package/build-style/latest-posts/editor.css +3 -0
  496. package/build-style/navigation/style-rtl.css +17 -19
  497. package/build-style/navigation/style.css +17 -19
  498. package/build-style/post-comments-form/style-rtl.css +0 -1
  499. package/build-style/post-comments-form/style.css +0 -1
  500. package/build-style/query/editor-rtl.css +8 -1
  501. package/build-style/query/editor.css +8 -1
  502. package/build-style/query-pagination/style-rtl.css +6 -0
  503. package/build-style/query-pagination/style.css +6 -0
  504. package/build-style/search/style-rtl.css +2 -0
  505. package/build-style/search/style.css +2 -0
  506. package/build-style/search/theme-rtl.css +5 -0
  507. package/build-style/search/theme.css +5 -0
  508. package/build-style/social-link/editor-rtl.css +1 -0
  509. package/build-style/social-link/editor.css +1 -0
  510. package/build-style/social-links/style-rtl.css +8 -0
  511. package/build-style/social-links/style.css +8 -0
  512. package/build-style/style-rtl.css +208 -139
  513. package/build-style/style.css +208 -139
  514. package/build-style/tag-cloud/style-rtl.css +1 -0
  515. package/build-style/tag-cloud/style.css +1 -0
  516. package/build-style/template-part/editor-rtl.css +14 -3
  517. package/build-style/template-part/editor.css +14 -3
  518. package/build-style/theme-rtl.css +5 -0
  519. package/build-style/theme.css +5 -0
  520. package/package.json +28 -29
  521. package/src/archives/block.json +4 -0
  522. package/src/archives/edit.js +12 -1
  523. package/src/archives/index.php +5 -3
  524. package/src/audio/test/__snapshots__/edit.native.js.snap +16 -2
  525. package/src/block/edit.js +4 -4
  526. package/src/block/edit.native.js +4 -4
  527. package/src/button/edit.js +1 -0
  528. package/src/button/style.scss +3 -1
  529. package/src/buttons/edit.js +1 -5
  530. package/src/calendar/edit.js +11 -4
  531. package/src/columns/edit.native.js +5 -3
  532. package/src/comment-template/block.json +1 -1
  533. package/src/comment-template/style.scss +14 -0
  534. package/src/comments/block.json +7 -2
  535. package/src/comments/deprecated.js +53 -0
  536. package/src/comments/edit/comments-legacy.js +71 -0
  537. package/src/comments/edit/index.js +35 -0
  538. package/src/comments/edit/placeholder.js +124 -0
  539. package/src/comments/{edit.js → edit/template.js} +1 -28
  540. package/src/comments/editor.scss +9 -0
  541. package/src/comments/index.js +2 -0
  542. package/src/comments/index.php +219 -0
  543. package/src/comments/save.js +8 -7
  544. package/src/{post-comments → comments}/style.scss +7 -0
  545. package/src/comments-pagination/block.json +1 -1
  546. package/src/comments-title/block.json +1 -1
  547. package/src/common.scss +2 -0
  548. package/src/cover/edit/block-controls.js +4 -20
  549. package/src/cover/edit/cover-placeholder.js +2 -0
  550. package/src/cover/edit/index.js +16 -0
  551. package/src/cover/edit/resizable-cover.js +6 -0
  552. package/src/cover/index.php +2 -2
  553. package/src/cover/style.scss +2 -2
  554. package/src/cover/transforms.js +2 -2
  555. package/src/editor-elements.scss +10 -0
  556. package/src/editor.scss +2 -1
  557. package/src/elements.scss +6 -0
  558. package/src/embed/embed-placeholder.native.js +2 -3
  559. package/src/file/test/__snapshots__/edit.native.js.snap +32 -4
  560. package/src/gallery/edit.js +12 -23
  561. package/src/gallery/index.php +1 -1
  562. package/src/gallery/style.scss +10 -1
  563. package/src/gallery/transforms.js +25 -10
  564. package/src/gallery/use-get-media.js +11 -28
  565. package/src/gallery/use-get-media.native.js +44 -0
  566. package/src/group/block.json +1 -0
  567. package/src/group/edit.js +1 -3
  568. package/src/group/transforms.js +7 -0
  569. package/src/group/variations.js +2 -2
  570. package/src/heading/heading-level-dropdown.js +1 -0
  571. package/src/heading/index.js +8 -2
  572. package/src/home-link/index.php +8 -17
  573. package/src/image/block.json +7 -1
  574. package/src/image/deprecated.js +86 -0
  575. package/src/image/edit.js +6 -1
  576. package/src/image/edit.native.js +18 -7
  577. package/src/image/editor.scss +9 -4
  578. package/src/image/image.js +26 -16
  579. package/src/image/save.js +10 -1
  580. package/src/image/style.scss +39 -3
  581. package/src/image/test/edit.native.js +6 -10
  582. package/src/index.js +0 -2
  583. package/src/index.native.js +11 -7
  584. package/src/latest-posts/edit.js +2 -6
  585. package/src/latest-posts/editor.scss +5 -0
  586. package/src/list/index.js +1 -1
  587. package/src/list/test/__snapshots__/edit.native.js.snap +133 -0
  588. package/src/list/test/edit.native.js +511 -7
  589. package/src/list/transforms.js +0 -47
  590. package/src/list/v2/edit.js +12 -4
  591. package/src/list/v2/tag-name.js +13 -0
  592. package/src/list/v2/tag-name.native.js +12 -0
  593. package/src/list/v2/transforms.js +3 -49
  594. package/src/list-item/edit.js +11 -13
  595. package/src/list-item/edit.native.js +148 -0
  596. package/src/list-item/hooks/index.js +1 -1
  597. package/src/list-item/hooks/use-merge.js +141 -0
  598. package/src/list-item/hooks/use-outdent-list-item.js +72 -74
  599. package/src/list-item/icons.native.js +34 -0
  600. package/src/list-item/list-style-type.native.js +139 -0
  601. package/src/list-item/style.native.scss +45 -0
  602. package/src/list-item/utils.js +27 -3
  603. package/src/media-text/deprecated.js +581 -288
  604. package/src/media-text/edit.js +3 -1
  605. package/src/media-text/media-container.js +3 -1
  606. package/src/media-text/save.js +18 -0
  607. package/src/media-text/test/media-container.js +24 -0
  608. package/src/more/edit.js +9 -11
  609. package/src/more/save.js +3 -6
  610. package/src/navigation/edit/index.js +83 -164
  611. package/src/navigation/edit/navigation-menu-selector.js +12 -26
  612. package/src/navigation/edit/placeholder/index.js +4 -2
  613. package/src/navigation/edit/responsive-wrapper.js +24 -3
  614. package/src/navigation/edit/use-create-navigation-menu.js +4 -0
  615. package/src/navigation/edit/use-inner-blocks.js +39 -0
  616. package/src/navigation/edit/utils.js +30 -0
  617. package/src/navigation/index.php +6 -0
  618. package/src/navigation/style.scss +13 -23
  619. package/src/navigation/use-navigation-menu.js +9 -5
  620. package/src/navigation/view.js +6 -6
  621. package/src/navigation-link/edit.js +4 -3
  622. package/src/navigation-link/hooks.js +0 -14
  623. package/src/navigation-link/index.js +1 -1
  624. package/src/navigation-link/index.php +1 -1
  625. package/src/navigation-link/test/__snapshots__/hooks.js.snap +0 -93
  626. package/src/navigation-link/test/hooks.js +0 -12
  627. package/src/navigation-submenu/edit.js +1 -0
  628. package/src/navigation-submenu/index.php +1 -1
  629. package/src/navigation-submenu/view.js +6 -6
  630. package/src/nextpage/edit.js +1 -3
  631. package/src/page-list/edit.js +12 -5
  632. package/src/page-list/index.php +4 -4
  633. package/src/paragraph/edit.js +8 -14
  634. package/src/post-author/edit.js +6 -3
  635. package/src/post-author-biography/edit.js +4 -1
  636. package/src/post-comments-form/edit.js +2 -74
  637. package/src/post-comments-form/form.js +80 -5
  638. package/src/post-comments-form/index.php +1 -1
  639. package/src/post-comments-form/style.scss +0 -1
  640. package/src/post-content/edit.js +4 -4
  641. package/src/post-featured-image/block.json +9 -0
  642. package/src/post-featured-image/edit.js +23 -1
  643. package/src/post-featured-image/index.php +3 -1
  644. package/src/post-template/index.php +8 -14
  645. package/src/post-terms/edit.js +3 -2
  646. package/src/post-terms/index.js +1 -1
  647. package/src/post-title/block.json +1 -0
  648. package/src/post-title/index.php +2 -1
  649. package/src/preformatted/test/__snapshots__/edit.native.js.snap +16 -2
  650. package/src/query/edit/inspector-controls/index.js +129 -65
  651. package/src/query/edit/inspector-controls/taxonomy-controls.js +17 -10
  652. package/src/query/editor.scss +10 -1
  653. package/src/query/index.js +1 -1
  654. package/src/query-no-results/edit.js +2 -5
  655. package/src/query-no-results/index.php +10 -8
  656. package/src/query-pagination/style.scss +14 -0
  657. package/src/query-pagination-next/edit.js +1 -0
  658. package/src/query-pagination-previous/edit.js +1 -0
  659. package/src/query-title/block.json +4 -0
  660. package/src/query-title/edit.js +33 -6
  661. package/src/query-title/index.php +17 -1
  662. package/src/query-title/variations.js +13 -0
  663. package/src/quote/deprecated.js +213 -99
  664. package/src/quote/edit.js +77 -52
  665. package/src/quote/index.js +10 -33
  666. package/src/quote/save.js +5 -5
  667. package/src/quote/{v2/test → test}/migrate.js +2 -7
  668. package/src/quote/transforms.js +113 -147
  669. package/src/search/style.scss +2 -0
  670. package/src/search/test/__snapshots__/edit.native.js.snap +56 -7
  671. package/src/search/theme.scss +5 -0
  672. package/src/separator/edit.js +1 -1
  673. package/src/separator/test/edit.js +5 -3
  674. package/src/site-logo/edit.js +2 -11
  675. package/src/site-title/edit/level-toolbar.js +1 -0
  676. package/src/site-title/index.php +8 -9
  677. package/src/social-link/editor.scss +3 -0
  678. package/src/social-link/icons/index.js +1 -0
  679. package/src/social-link/icons/whatsapp.js +10 -0
  680. package/src/social-link/index.php +21 -1
  681. package/src/social-link/socials-with-bg.scss +5 -0
  682. package/src/social-link/socials-without-bg.scss +5 -0
  683. package/src/social-link/variations.js +7 -0
  684. package/src/social-links/edit.js +1 -0
  685. package/src/style.scss +1 -1
  686. package/src/tag-cloud/style.scss +1 -0
  687. package/src/template-part/edit/index.js +40 -27
  688. package/src/template-part/edit/selection-modal.js +68 -40
  689. package/src/template-part/edit/utils/search.js +76 -0
  690. package/src/template-part/editor.scss +21 -9
  691. package/src/template-part/index.js +1 -1
  692. package/src/template-part/index.php +56 -2
  693. package/src/template-part/variations.js +0 -11
  694. package/src/utils/clean-empty-object.js +8 -2
  695. package/src/video/tracks-editor.js +1 -1
  696. package/build/comments/edit.js.map +0 -1
  697. package/build/gallery/use-short-code-transform.js +0 -64
  698. package/build/gallery/use-short-code-transform.js.map +0 -1
  699. package/build/list-item/hooks/use-backspace.js +0 -59
  700. package/build/list-item/hooks/use-backspace.js.map +0 -1
  701. package/build/navigation-link/fallback-variations.js +0 -75
  702. package/build/navigation-link/fallback-variations.js.map +0 -1
  703. package/build/post-comments/edit.js +0 -184
  704. package/build/post-comments/edit.js.map +0 -1
  705. package/build/post-comments/index.js +0 -72
  706. package/build/post-comments/index.js.map +0 -1
  707. package/build/quote/v2/deprecated.js +0 -133
  708. package/build/quote/v2/deprecated.js.map +0 -1
  709. package/build/quote/v2/edit.js +0 -139
  710. package/build/quote/v2/edit.js.map +0 -1
  711. package/build/quote/v2/index.js +0 -49
  712. package/build/quote/v2/index.js.map +0 -1
  713. package/build/quote/v2/save.js +0 -43
  714. package/build/quote/v2/save.js.map +0 -1
  715. package/build/quote/v2/transforms.js +0 -156
  716. package/build/quote/v2/transforms.js.map +0 -1
  717. package/build/template-part/fallback-variations.js +0 -59
  718. package/build/template-part/fallback-variations.js.map +0 -1
  719. package/build-module/comments/edit.js +0 -59
  720. package/build-module/comments/edit.js.map +0 -1
  721. package/build-module/gallery/use-short-code-transform.js +0 -54
  722. package/build-module/gallery/use-short-code-transform.js.map +0 -1
  723. package/build-module/list-item/hooks/use-backspace.js +0 -44
  724. package/build-module/list-item/hooks/use-backspace.js.map +0 -1
  725. package/build-module/navigation-link/fallback-variations.js +0 -65
  726. package/build-module/navigation-link/fallback-variations.js.map +0 -1
  727. package/build-module/post-comments/edit.js +0 -171
  728. package/build-module/post-comments/edit.js.map +0 -1
  729. package/build-module/post-comments/index.js +0 -59
  730. package/build-module/post-comments/index.js.map +0 -1
  731. package/build-module/quote/v2/deprecated.js +0 -116
  732. package/build-module/quote/v2/deprecated.js.map +0 -1
  733. package/build-module/quote/v2/edit.js +0 -122
  734. package/build-module/quote/v2/edit.js.map +0 -1
  735. package/build-module/quote/v2/index.js +0 -33
  736. package/build-module/quote/v2/index.js.map +0 -1
  737. package/build-module/quote/v2/save.js +0 -30
  738. package/build-module/quote/v2/save.js.map +0 -1
  739. package/build-module/quote/v2/transforms.js +0 -147
  740. package/build-module/quote/v2/transforms.js.map +0 -1
  741. package/build-module/template-part/fallback-variations.js +0 -47
  742. package/build-module/template-part/fallback-variations.js.map +0 -1
  743. package/src/gallery/use-short-code-transform.js +0 -55
  744. package/src/list-item/hooks/use-backspace.js +0 -51
  745. package/src/navigation-link/fallback-variations.js +0 -65
  746. package/src/post-comments/block.json +0 -45
  747. package/src/post-comments/edit.js +0 -247
  748. package/src/post-comments/editor.scss +0 -3
  749. package/src/post-comments/index.js +0 -18
  750. package/src/post-comments/index.php +0 -87
  751. package/src/quote/v2/deprecated.js +0 -107
  752. package/src/quote/v2/edit.js +0 -139
  753. package/src/quote/v2/index.js +0 -36
  754. package/src/quote/v2/save.js +0 -26
  755. package/src/quote/v2/transforms.js +0 -155
  756. package/src/template-part/fallback-variations.js +0 -51
@@ -293,6 +293,7 @@ function MediaTextEdit( { attributes, isSelected, setAttributes } ) {
293
293
  slug={ mediaSizeSlug }
294
294
  imageSizeOptions={ imageSizeOptions }
295
295
  isResizable={ false }
296
+ imageSizeHelp={ __( 'Select which image size to load.' ) }
296
297
  />
297
298
  ) }
298
299
  { mediaUrl && (
@@ -354,6 +355,7 @@ function MediaTextEdit( { attributes, isSelected, setAttributes } ) {
354
355
  ) }
355
356
  </BlockControls>
356
357
  <div { ...blockProps }>
358
+ { mediaPosition === 'right' && <div { ...innerBlocksProps } /> }
357
359
  <MediaContainer
358
360
  className="wp-block-media-text__media"
359
361
  onSelectMedia={ onSelectMedia }
@@ -373,7 +375,7 @@ function MediaTextEdit( { attributes, isSelected, setAttributes } ) {
373
375
  mediaWidth,
374
376
  } }
375
377
  />
376
- <div { ...innerBlocksProps } />
378
+ { mediaPosition !== 'right' && <div { ...innerBlocksProps } /> }
377
379
  </div>
378
380
  </>
379
381
  );
@@ -36,7 +36,9 @@ export function imageFillStyles( url, focalPoint ) {
36
36
  ? {
37
37
  backgroundImage: `url(${ url })`,
38
38
  backgroundPosition: focalPoint
39
- ? `${ focalPoint.x * 100 }% ${ focalPoint.y * 100 }%`
39
+ ? `${ Math.round( focalPoint.x * 100 ) }% ${ Math.round(
40
+ focalPoint.y * 100
41
+ ) }%`
40
42
  : `50% 50%`,
41
43
  }
42
44
  : {};
@@ -88,6 +88,24 @@ export default function save( { attributes } ) {
88
88
  const style = {
89
89
  gridTemplateColumns,
90
90
  };
91
+
92
+ if ( 'right' === mediaPosition ) {
93
+ return (
94
+ <div { ...useBlockProps.save( { className, style } ) }>
95
+ <div
96
+ { ...useInnerBlocksProps.save( {
97
+ className: 'wp-block-media-text__content',
98
+ } ) }
99
+ />
100
+ <figure
101
+ className="wp-block-media-text__media"
102
+ style={ backgroundStyles }
103
+ >
104
+ { ( mediaTypeRenders[ mediaType ] || noop )() }
105
+ </figure>
106
+ </div>
107
+ );
108
+ }
91
109
  return (
92
110
  <div { ...useBlockProps.save( { className, style } ) }>
93
111
  <figure
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import { imageFillStyles } from '../media-container';
5
+
6
+ describe( 'imageFillStyles()', () => {
7
+ it( 'should return image url', () => {
8
+ const { backgroundImage } = imageFillStyles( 'image.jpg' );
9
+ expect( backgroundImage ).toBe( 'url(image.jpg)' );
10
+ } );
11
+
12
+ it( 'should return centered background position', () => {
13
+ const { backgroundPosition } = imageFillStyles( 'image.jpg' );
14
+ expect( backgroundPosition ).toBe( '50% 50%' );
15
+ } );
16
+
17
+ it( 'should return custom background position', () => {
18
+ const { backgroundPosition } = imageFillStyles( 'image.jpg', {
19
+ x: 0.56,
20
+ y: 0.57,
21
+ } );
22
+ expect( backgroundPosition ).toBe( '56% 57%' );
23
+ } );
24
+ } );
package/src/more/edit.js CHANGED
@@ -53,17 +53,15 @@ export default function MoreEdit( {
53
53
  </PanelBody>
54
54
  </InspectorControls>
55
55
  <div { ...useBlockProps() }>
56
- <div className="wp-block-more">
57
- <input
58
- aria-label={ __( 'Read more link text' ) }
59
- type="text"
60
- value={ customText }
61
- placeholder={ DEFAULT_TEXT }
62
- onChange={ onChangeInput }
63
- onKeyDown={ onKeyDown }
64
- style={ style }
65
- />
66
- </div>
56
+ <input
57
+ aria-label={ __( 'Read more link text' ) }
58
+ type="text"
59
+ value={ customText }
60
+ placeholder={ DEFAULT_TEXT }
61
+ onChange={ onChangeInput }
62
+ onKeyDown={ onKeyDown }
63
+ style={ style }
64
+ />
67
65
  </div>
68
66
  </>
69
67
  );
package/src/more/save.js CHANGED
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { compact } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -14,6 +9,8 @@ export default function save( { attributes: { customText, noTeaser } } ) {
14
9
  const noTeaserTag = noTeaser ? '<!--noteaser-->' : '';
15
10
 
16
11
  return (
17
- <RawHTML>{ compact( [ moreTag, noTeaserTag ] ).join( '\n' ) }</RawHTML>
12
+ <RawHTML>
13
+ { [ moreTag, noTeaserTag ].filter( Boolean ).join( '\n' ) }
14
+ </RawHTML>
18
15
  );
19
16
  }
@@ -17,7 +17,8 @@ import {
17
17
  InspectorControls,
18
18
  BlockControls,
19
19
  useBlockProps,
20
- __experimentalUseNoRecursiveRenders as useNoRecursiveRenders,
20
+ __experimentalRecursionProvider as RecursionProvider,
21
+ __experimentalUseHasRecursion as useHasRecursion,
21
22
  store as blockEditorStore,
22
23
  withColors,
23
24
  PanelColorSettings,
@@ -28,7 +29,7 @@ import {
28
29
  } from '@wordpress/block-editor';
29
30
  import { EntityProvider } from '@wordpress/core-data';
30
31
 
31
- import { useDispatch, useSelect, useRegistry } from '@wordpress/data';
32
+ import { useDispatch, useRegistry } from '@wordpress/data';
32
33
  import {
33
34
  PanelBody,
34
35
  ToggleControl,
@@ -60,40 +61,9 @@ import useConvertClassicToBlockMenu, {
60
61
  CLASSIC_MENU_CONVERSION_PENDING,
61
62
  CLASSIC_MENU_CONVERSION_SUCCESS,
62
63
  } from './use-convert-classic-menu-to-block-menu';
63
- import useCreateNavigationMenu, {
64
- CREATE_NAVIGATION_MENU_ERROR,
65
- CREATE_NAVIGATION_MENU_PENDING,
66
- CREATE_NAVIGATION_MENU_SUCCESS,
67
- } from './use-create-navigation-menu';
68
-
69
- const EMPTY_ARRAY = [];
70
-
71
- function getComputedStyle( node ) {
72
- return node.ownerDocument.defaultView.getComputedStyle( node );
73
- }
74
-
75
- function detectColors( colorsDetectionElement, setColor, setBackground ) {
76
- if ( ! colorsDetectionElement ) {
77
- return;
78
- }
79
- setColor( getComputedStyle( colorsDetectionElement ).color );
80
-
81
- let backgroundColorNode = colorsDetectionElement;
82
- let backgroundColor =
83
- getComputedStyle( backgroundColorNode ).backgroundColor;
84
- while (
85
- backgroundColor === 'rgba(0, 0, 0, 0)' &&
86
- backgroundColorNode.parentNode &&
87
- backgroundColorNode.parentNode.nodeType ===
88
- backgroundColorNode.parentNode.ELEMENT_NODE
89
- ) {
90
- backgroundColorNode = backgroundColorNode.parentNode;
91
- backgroundColor =
92
- getComputedStyle( backgroundColorNode ).backgroundColor;
93
- }
94
-
95
- setBackground( backgroundColor );
96
- }
64
+ import useCreateNavigationMenu from './use-create-navigation-menu';
65
+ import { useInnerBlocks } from './use-inner-blocks';
66
+ import { detectColors } from './utils';
97
67
 
98
68
  function Navigation( {
99
69
  attributes,
@@ -135,51 +105,58 @@ function Navigation( {
135
105
  setAttributes( { ref: postId } );
136
106
  };
137
107
 
138
- const [ hasAlreadyRendered, RecursionProvider ] = useNoRecursiveRenders(
139
- `navigationMenu/${ ref }`
140
- );
108
+ const recursionId = `navigationMenu/${ ref }`;
109
+ const hasAlreadyRendered = useHasRecursion( recursionId );
141
110
 
142
111
  // Preload classic menus, so that they don't suddenly pop-in when viewing
143
112
  // the Select Menu dropdown.
144
113
  useNavigationEntities();
145
114
 
146
- const [ showNavigationMenuDeleteNotice ] = useNavigationNotice( {
147
- name: 'block-library/core/navigation/delete',
148
- } );
115
+ const [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =
116
+ useNavigationNotice( {
117
+ name: 'block-library/core/navigation/status',
118
+ } );
149
119
 
150
- const [ showNavigationMenuCreateNotice, hideNavigationMenuCreateNotice ] =
120
+ const [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =
151
121
  useNavigationNotice( {
152
- name: 'block-library/core/navigation/create',
122
+ name: 'block-library/core/navigation/classic-menu-conversion',
153
123
  } );
154
124
 
125
+ const [
126
+ showNavigationMenuPermissionsNotice,
127
+ hideNavigationMenuPermissionsNotice,
128
+ ] = useNavigationNotice( {
129
+ name: 'block-library/core/navigation/permissions/update',
130
+ } );
131
+
155
132
  const {
156
133
  create: createNavigationMenu,
157
134
  status: createNavigationMenuStatus,
158
135
  error: createNavigationMenuError,
159
136
  value: createNavigationMenuPost,
137
+ isPending: isCreatingNavigationMenu,
138
+ isSuccess: createNavigationMenuIsSuccess,
139
+ isError: createNavigationMenuIsError,
160
140
  } = useCreateNavigationMenu( clientId );
161
141
 
162
- const isCreatingNavigationMenu =
163
- createNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING;
164
-
165
142
  useEffect( () => {
166
- hideNavigationMenuCreateNotice();
143
+ hideNavigationMenuStatusNotice();
167
144
 
168
- if ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING ) {
145
+ if ( isCreatingNavigationMenu ) {
169
146
  speak( __( `Creating Navigation Menu.` ) );
170
147
  }
171
148
 
172
- if ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_SUCCESS ) {
149
+ if ( createNavigationMenuIsSuccess ) {
173
150
  setRef( createNavigationMenuPost.id );
174
151
  selectBlock( clientId );
175
152
 
176
- showNavigationMenuCreateNotice(
153
+ showNavigationMenuStatusNotice(
177
154
  __( `Navigation Menu successfully created.` )
178
155
  );
179
156
  }
180
157
 
181
- if ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_ERROR ) {
182
- showNavigationMenuCreateNotice(
158
+ if ( createNavigationMenuIsError ) {
159
+ showNavigationMenuStatusNotice(
183
160
  __( 'Failed to create Navigation Menu.' )
184
161
  );
185
162
  }
@@ -194,37 +171,13 @@ function Navigation( {
194
171
  hasUncontrolledInnerBlocks,
195
172
  uncontrolledInnerBlocks,
196
173
  isInnerBlockSelected,
197
- hasSubmenus,
198
- } = useSelect(
199
- ( select ) => {
200
- const { getBlock, getBlocks, hasSelectedInnerBlock } =
201
- select( blockEditorStore );
202
-
203
- // This relies on the fact that `getBlock` won't return controlled
204
- // inner blocks, while `getBlocks` does. It might be more stable to
205
- // introduce a selector like `getUncontrolledInnerBlocks`, just in
206
- // case `getBlock` is fixed.
207
- const _uncontrolledInnerBlocks = getBlock( clientId ).innerBlocks;
208
- const _hasUncontrolledInnerBlocks =
209
- !! _uncontrolledInnerBlocks?.length;
210
- const _controlledInnerBlocks = _hasUncontrolledInnerBlocks
211
- ? EMPTY_ARRAY
212
- : getBlocks( clientId );
213
- const innerBlocks = _hasUncontrolledInnerBlocks
214
- ? _uncontrolledInnerBlocks
215
- : _controlledInnerBlocks;
216
-
217
- return {
218
- hasSubmenus: !! innerBlocks.find(
219
- ( block ) => block.name === 'core/navigation-submenu'
220
- ),
221
- hasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,
222
- uncontrolledInnerBlocks: _uncontrolledInnerBlocks,
223
- isInnerBlockSelected: hasSelectedInnerBlock( clientId, true ),
224
- };
225
- },
226
- [ clientId ]
174
+ innerBlocks,
175
+ } = useInnerBlocks( clientId );
176
+
177
+ const hasSubmenus = !! innerBlocks.find(
178
+ ( block ) => block.name === 'core/navigation-submenu'
227
179
  );
180
+
228
181
  const {
229
182
  replaceInnerBlocks,
230
183
  selectBlock,
@@ -254,6 +207,9 @@ function Navigation( {
254
207
  hasResolvedCanUserCreateNavigationMenu,
255
208
  } = useNavigationMenu( ref );
256
209
 
210
+ const navMenuResolvedButMissing =
211
+ hasResolvedNavigationMenus && isNavigationMenuMissing;
212
+
257
213
  // Attempt to retrieve and prioritize any existing navigation menu unless
258
214
  // a specific ref is allocated or the user is explicitly creating a new menu. The aim is
259
215
  // for the block to "just work" from a user perspective using existing data.
@@ -350,27 +306,6 @@ function Navigation( {
350
306
  { __unstableIsDisabled: hasBlockOverlay }
351
307
  );
352
308
 
353
- const overlayClassnames = classnames( {
354
- 'has-text-color':
355
- !! overlayTextColor.color || !! overlayTextColor?.class,
356
- [ getColorClassName( 'color', overlayTextColor?.slug ) ]:
357
- !! overlayTextColor?.slug,
358
- 'has-background':
359
- !! overlayBackgroundColor.color || overlayBackgroundColor?.class,
360
- [ getColorClassName(
361
- 'background-color',
362
- overlayBackgroundColor?.slug
363
- ) ]: !! overlayBackgroundColor?.slug,
364
- } );
365
-
366
- const overlayStyles = {
367
- color: ! overlayTextColor?.slug && overlayTextColor?.color,
368
- backgroundColor:
369
- ! overlayBackgroundColor?.slug &&
370
- overlayBackgroundColor?.color &&
371
- overlayBackgroundColor.color,
372
- };
373
-
374
309
  // Turn on contrast checker for web only since it's not supported on mobile yet.
375
310
  const enableContrastChecking = Platform.OS === 'web';
376
311
 
@@ -382,19 +317,13 @@ function Navigation( {
382
317
  ] = useState();
383
318
  const [ detectedOverlayColor, setDetectedOverlayColor ] = useState();
384
319
 
385
- const [
386
- showClassicMenuConversionErrorNotice,
387
- hideClassicMenuConversionErrorNotice,
388
- ] = useNavigationNotice( {
389
- name: 'block-library/core/navigation/classic-menu-conversion/error',
390
- } );
391
-
392
- function handleUpdateMenu( menuId ) {
320
+ const handleUpdateMenu = ( menuId ) => {
393
321
  setRef( menuId );
394
322
  selectBlock( clientId );
395
- }
323
+ };
396
324
 
397
325
  useEffect( () => {
326
+ hideClassicMenuConversionNotice();
398
327
  if ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {
399
328
  speak( __( 'Classic menu importing.' ) );
400
329
  }
@@ -404,13 +333,15 @@ function Navigation( {
404
333
  classicMenuConversionResult
405
334
  ) {
406
335
  handleUpdateMenu( classicMenuConversionResult?.id );
407
- hideClassicMenuConversionErrorNotice();
408
- speak( __( 'Classic menu imported successfully.' ) );
336
+ showClassicMenuConversionNotice(
337
+ __( 'Classic menu imported successfully.' )
338
+ );
409
339
  }
410
340
 
411
341
  if ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {
412
- showClassicMenuConversionErrorNotice( classicMenuConversionError );
413
- speak( __( 'Classic menu import failed.' ) );
342
+ showClassicMenuConversionNotice(
343
+ __( 'Classic menu import failed.' )
344
+ );
414
345
  }
415
346
  }, [
416
347
  classicMenuConversionStatus,
@@ -448,35 +379,23 @@ function Navigation( {
448
379
  }
449
380
  } );
450
381
 
451
- const [ showCantEditNotice, hideCantEditNotice ] = useNavigationNotice( {
452
- name: 'block-library/core/navigation/permissions/update',
453
- message: __(
454
- 'You do not have permission to edit this Menu. Any changes made will not be saved.'
455
- ),
456
- } );
457
-
458
- const [ showCantCreateNotice, hideCantCreateNotice ] = useNavigationNotice(
459
- {
460
- name: 'block-library/core/navigation/permissions/create',
461
- message: __(
462
- 'You do not have permission to create Navigation Menus.'
463
- ),
464
- }
465
- );
466
-
467
382
  useEffect( () => {
468
383
  if ( ! isSelected && ! isInnerBlockSelected ) {
469
- hideCantEditNotice();
470
- hideCantCreateNotice();
384
+ hideNavigationMenuPermissionsNotice();
471
385
  }
472
386
 
473
387
  if ( isSelected || isInnerBlockSelected ) {
474
388
  if (
475
389
  ref &&
390
+ ! navMenuResolvedButMissing &&
476
391
  hasResolvedCanUserUpdateNavigationMenu &&
477
392
  ! canUserUpdateNavigationMenu
478
393
  ) {
479
- showCantEditNotice();
394
+ showNavigationMenuPermissionsNotice(
395
+ __(
396
+ 'You do not have permission to edit this Menu. Any changes made will not be saved.'
397
+ )
398
+ );
480
399
  }
481
400
 
482
401
  if (
@@ -484,7 +403,11 @@ function Navigation( {
484
403
  hasResolvedCanUserCreateNavigationMenu &&
485
404
  ! canUserCreateNavigationMenu
486
405
  ) {
487
- showCantCreateNotice();
406
+ showNavigationMenuPermissionsNotice(
407
+ __(
408
+ 'You do not have permission to create Navigation Menus.'
409
+ )
410
+ );
488
411
  }
489
412
  }
490
413
  }, [
@@ -500,24 +423,6 @@ function Navigation( {
500
423
  const navigationSelectorRef = useRef();
501
424
  const [ shouldFocusNavigationSelector, setShouldFocusNavigationSelector ] =
502
425
  useState( false );
503
- const handleSelectNavigation = useCallback(
504
- ( navPostOrClassicMenu ) => {
505
- if ( ! navPostOrClassicMenu ) {
506
- return;
507
- }
508
-
509
- const isClassicMenu =
510
- navPostOrClassicMenu.hasOwnProperty( 'auto_add' );
511
-
512
- if ( isClassicMenu ) {
513
- convert( navPostOrClassicMenu.id, navPostOrClassicMenu.name );
514
- } else {
515
- handleUpdateMenu( navPostOrClassicMenu.id );
516
- }
517
- setShouldFocusNavigationSelector( true );
518
- },
519
- [ convert, handleUpdateMenu ]
520
- );
521
426
 
522
427
  // Focus support after menu selection.
523
428
  useEffect( () => {
@@ -702,8 +607,8 @@ function Navigation( {
702
607
  isOpen={ isResponsiveMenuOpen }
703
608
  isResponsive={ 'never' !== overlayMenu }
704
609
  isHiddenByDefault={ 'always' === overlayMenu }
705
- classNames={ overlayClassnames }
706
- styles={ overlayStyles }
610
+ overlayBackgroundColor={ overlayBackgroundColor }
611
+ overlayTextColor={ overlayTextColor }
707
612
  >
708
613
  <UnsavedInnerBlocks
709
614
  blockProps={ blockProps }
@@ -720,7 +625,7 @@ function Navigation( {
720
625
  // Switch to using the wp_navigation entity.
721
626
  setRef( post.id );
722
627
 
723
- showNavigationMenuCreateNotice(
628
+ showNavigationMenuStatusNotice(
724
629
  __( `New Navigation Menu created.` )
725
630
  );
726
631
  } }
@@ -772,7 +677,14 @@ function Navigation( {
772
677
  isResolvingCanUserCreateNavigationMenu={
773
678
  isResolvingCanUserCreateNavigationMenu
774
679
  }
775
- onFinish={ handleSelectNavigation }
680
+ onSelectNavigationMenu={ ( menuId ) => {
681
+ handleUpdateMenu( menuId );
682
+ setShouldFocusNavigationSelector( true );
683
+ } }
684
+ onSelectClassicMenu={ ( classicMenu ) => {
685
+ convert( classicMenu.id, classicMenu.name );
686
+ setShouldFocusNavigationSelector( true );
687
+ } }
776
688
  onCreateEmpty={ () => createNavigationMenu( '', [] ) }
777
689
  />
778
690
  </TagName>
@@ -781,7 +693,7 @@ function Navigation( {
781
693
 
782
694
  return (
783
695
  <EntityProvider kind="postType" type="wp_navigation" id={ ref }>
784
- <RecursionProvider>
696
+ <RecursionProvider uniqueId={ recursionId }>
785
697
  <BlockControls>
786
698
  { ! isDraftNavigationMenu && isEntityAvailable && (
787
699
  <ToolbarGroup className="wp-block-navigation__toolbar-menu-selector">
@@ -789,7 +701,14 @@ function Navigation( {
789
701
  ref={ navigationSelectorRef }
790
702
  currentMenuId={ ref }
791
703
  clientId={ clientId }
792
- onSelect={ handleSelectNavigation }
704
+ onSelectNavigationMenu={ ( menuId ) => {
705
+ handleUpdateMenu( menuId );
706
+ setShouldFocusNavigationSelector( true );
707
+ } }
708
+ onSelectClassicMenu={ ( classicMenu ) => {
709
+ convert( classicMenu.id, classicMenu.name );
710
+ setShouldFocusNavigationSelector( true );
711
+ } }
793
712
  onCreateNew={ resetToEmptyBlock }
794
713
  /* translators: %s: The name of a menu. */
795
714
  actionLabel={ __( "Switch to '%s'" ) }
@@ -810,7 +729,7 @@ function Navigation( {
810
729
  <NavigationMenuDeleteControl
811
730
  onDelete={ ( deletedMenuTitle = '' ) => {
812
731
  resetToEmptyBlock();
813
- showNavigationMenuDeleteNotice(
732
+ showNavigationMenuStatusNotice(
814
733
  sprintf(
815
734
  // translators: %s: the name of a menu (e.g. Header navigation).
816
735
  __(
@@ -841,8 +760,8 @@ function Navigation( {
841
760
  isOpen={ isResponsiveMenuOpen }
842
761
  isResponsive={ isResponsive }
843
762
  isHiddenByDefault={ 'always' === overlayMenu }
844
- classNames={ overlayClassnames }
845
- styles={ overlayStyles }
763
+ overlayBackgroundColor={ overlayBackgroundColor }
764
+ overlayTextColor={ overlayTextColor }
846
765
  >
847
766
  { isEntityAvailable && (
848
767
  <NavigationInnerBlocks
@@ -10,7 +10,7 @@ import {
10
10
  import { __, sprintf } from '@wordpress/i18n';
11
11
  import { decodeEntities } from '@wordpress/html-entities';
12
12
  import { addQueryArgs } from '@wordpress/url';
13
- import { forwardRef, useCallback, useMemo } from '@wordpress/element';
13
+ import { forwardRef, useMemo } from '@wordpress/element';
14
14
 
15
15
  /**
16
16
  * Internal dependencies
@@ -21,7 +21,8 @@ import useNavigationEntities from '../use-navigation-entities';
21
21
  function NavigationMenuSelector(
22
22
  {
23
23
  currentMenuId,
24
- onSelect,
24
+ onSelectNavigationMenu,
25
+ onSelectClassicMenu,
25
26
  onCreateNew,
26
27
  showManageActions = false,
27
28
  actionLabel,
@@ -43,24 +44,6 @@ function NavigationMenuSelector(
43
44
  canSwitchNavigationMenu,
44
45
  } = useNavigationMenu();
45
46
 
46
- const handleSelect = useCallback(
47
- ( _onClose ) => ( selectedId ) => {
48
- _onClose();
49
- onSelect(
50
- navigationMenus?.find( ( post ) => post.id === selectedId )
51
- );
52
- },
53
- [ navigationMenus ]
54
- );
55
-
56
- const handleSelectClassic = useCallback(
57
- ( _onClose, menu ) => () => {
58
- _onClose();
59
- onSelect( menu );
60
- },
61
- []
62
- );
63
-
64
47
  const menuChoices = useMemo( () => {
65
48
  return (
66
49
  navigationMenus?.map( ( { id, title } ) => {
@@ -83,7 +66,7 @@ function NavigationMenuSelector(
83
66
 
84
67
  // Show the selector if:
85
68
  // - has switch or create permissions and there are block or classic menus.
86
- // - user has create or update permisisons and component should show the menu actions.
69
+ // - user has create or update permissions and component should show the menu actions.
87
70
  const showSelectMenus =
88
71
  ( ( canSwitchNavigationMenu || canUserCreateNavigationMenu ) &&
89
72
  ( hasNavigationMenus || hasClassicMenus ) ) ||
@@ -107,7 +90,10 @@ function NavigationMenuSelector(
107
90
  <MenuGroup label={ __( 'Menus' ) }>
108
91
  <MenuItemsChoice
109
92
  value={ currentMenuId }
110
- onSelect={ handleSelect( onClose ) }
93
+ onSelect={ ( menuId ) => {
94
+ onClose();
95
+ onSelectNavigationMenu( menuId );
96
+ } }
111
97
  choices={ menuChoices }
112
98
  />
113
99
  </MenuGroup>
@@ -118,10 +104,10 @@ function NavigationMenuSelector(
118
104
  const label = decodeEntities( menu.name );
119
105
  return (
120
106
  <MenuItem
121
- onClick={ handleSelectClassic(
122
- onClose,
123
- menu
124
- ) }
107
+ onClick={ () => {
108
+ onClose();
109
+ onSelectClassicMenu( menu );
110
+ } }
125
111
  key={ menu.id }
126
112
  aria-label={ sprintf(
127
113
  createActionLabel,
@@ -20,7 +20,8 @@ export default function NavigationPlaceholder( {
20
20
  clientId,
21
21
  canUserCreateNavigationMenu = false,
22
22
  isResolvingCanUserCreateNavigationMenu,
23
- onFinish,
23
+ onSelectNavigationMenu,
24
+ onSelectClassicMenu,
24
25
  onCreateEmpty,
25
26
  } ) {
26
27
  const { isResolvingMenus, hasResolvedMenus } = useNavigationEntities();
@@ -67,7 +68,8 @@ export default function NavigationPlaceholder( {
67
68
  <NavigationMenuSelector
68
69
  currentMenuId={ currentMenuId }
69
70
  clientId={ clientId }
70
- onSelect={ onFinish }
71
+ onSelectNavigationMenu={ onSelectNavigationMenu }
72
+ onSelectClassicMenu={ onSelectClassicMenu }
71
73
  toggleProps={ {
72
74
  variant: 'tertiary',
73
75
  iconPosition: 'right',