@wordpress/block-library 7.18.0 → 8.0.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 (851) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/build/audio/edit.native.js +1 -3
  3. package/build/audio/edit.native.js.map +1 -1
  4. package/build/audio/index.js +2 -1
  5. package/build/audio/index.js.map +1 -1
  6. package/build/avatar/edit.js +1 -0
  7. package/build/avatar/edit.js.map +1 -1
  8. package/build/avatar/user-control.js +1 -0
  9. package/build/avatar/user-control.js.map +1 -1
  10. package/build/block/edit.js +14 -2
  11. package/build/block/edit.js.map +1 -1
  12. package/build/block/edit.native.js +14 -6
  13. package/build/block/edit.native.js.map +1 -1
  14. package/build/block/index.js +1 -2
  15. package/build/block/index.js.map +1 -1
  16. package/build/button/deprecated.js +16 -2
  17. package/build/button/deprecated.js.map +1 -1
  18. package/build/button/edit.js +13 -7
  19. package/build/button/edit.js.map +1 -1
  20. package/build/button/edit.native.js.map +1 -1
  21. package/build/button/index.js +4 -1
  22. package/build/button/index.js.map +1 -1
  23. package/build/button/save.js +2 -0
  24. package/build/button/save.js.map +1 -1
  25. package/build/code/transforms.js +1 -1
  26. package/build/code/transforms.js.map +1 -1
  27. package/build/columns/edit.js +1 -0
  28. package/build/columns/edit.js.map +1 -1
  29. package/build/columns/edit.native.js +13 -30
  30. package/build/columns/edit.native.js.map +1 -1
  31. package/build/columns/transforms.js +5 -0
  32. package/build/columns/transforms.js.map +1 -1
  33. package/build/comment-author-avatar/edit.js +1 -0
  34. package/build/comment-author-avatar/edit.js.map +1 -1
  35. package/build/cover/edit/index.js +3 -1
  36. package/build/cover/edit/index.js.map +1 -1
  37. package/build/cover/edit/inspector-controls.js +2 -0
  38. package/build/cover/edit/inspector-controls.js.map +1 -1
  39. package/build/cover/edit.native.js +24 -16
  40. package/build/cover/edit.native.js.map +1 -1
  41. package/build/embed/embed-controls.native.js +1 -0
  42. package/build/embed/embed-controls.native.js.map +1 -1
  43. package/build/embed/embed-preview.native.js +1 -3
  44. package/build/embed/embed-preview.native.js.map +1 -1
  45. package/build/file/inspector.js +1 -0
  46. package/build/file/inspector.js.map +1 -1
  47. package/build/gallery/edit.js +25 -13
  48. package/build/gallery/edit.js.map +1 -1
  49. package/build/gallery/gallery.native.js +1 -3
  50. package/build/gallery/gallery.native.js.map +1 -1
  51. package/build/gallery/shared.js +4 -10
  52. package/build/gallery/shared.js.map +1 -1
  53. package/build/gallery/transforms.js +1 -7
  54. package/build/gallery/transforms.js.map +1 -1
  55. package/build/gallery/use-get-media.js +1 -1
  56. package/build/gallery/use-get-media.js.map +1 -1
  57. package/build/gallery/use-get-media.native.js +3 -1
  58. package/build/gallery/use-get-media.native.js.map +1 -1
  59. package/build/gallery/v1/edit.js +26 -17
  60. package/build/gallery/v1/edit.js.map +1 -1
  61. package/build/gallery/v1/gallery.native.js +1 -3
  62. package/build/gallery/v1/gallery.native.js.map +1 -1
  63. package/build/gallery/v1/shared.js +4 -1
  64. package/build/gallery/v1/shared.js.map +1 -1
  65. package/build/group/edit.js +97 -45
  66. package/build/group/edit.js.map +1 -1
  67. package/build/group/index.js +6 -1
  68. package/build/group/index.js.map +1 -1
  69. package/build/group/placeholder.js +147 -0
  70. package/build/group/placeholder.js.map +1 -0
  71. package/build/group/variations.js +3 -3
  72. package/build/group/variations.js.map +1 -1
  73. package/build/heading/deprecated.js +152 -69
  74. package/build/heading/deprecated.js.map +1 -1
  75. package/build/heading/index.js +1 -2
  76. package/build/heading/index.js.map +1 -1
  77. package/build/heading/transforms.js +1 -2
  78. package/build/heading/transforms.js.map +1 -1
  79. package/build/html/index.js +1 -1
  80. package/build/image/edit.js +8 -5
  81. package/build/image/edit.js.map +1 -1
  82. package/build/image/edit.native.js +3 -2
  83. package/build/image/edit.native.js.map +1 -1
  84. package/build/image/image.js +12 -8
  85. package/build/image/image.js.map +1 -1
  86. package/build/index.js +3 -1
  87. package/build/index.js.map +1 -1
  88. package/build/latest-comments/edit.js +3 -1
  89. package/build/latest-comments/edit.js.map +1 -1
  90. package/build/latest-comments/index.js +5 -1
  91. package/build/latest-comments/index.js.map +1 -1
  92. package/build/latest-posts/deprecated.js +13 -0
  93. package/build/latest-posts/deprecated.js.map +1 -1
  94. package/build/latest-posts/edit.js +2 -0
  95. package/build/latest-posts/edit.js.map +1 -1
  96. package/build/latest-posts/index.js +13 -0
  97. package/build/latest-posts/index.js.map +1 -1
  98. package/build/list/transforms.js +1 -9
  99. package/build/list/transforms.js.map +1 -1
  100. package/build/list/utils.js +5 -2
  101. package/build/list/utils.js.map +1 -1
  102. package/build/list-item/edit.js +2 -1
  103. package/build/list-item/edit.js.map +1 -1
  104. package/build/list-item/index.js +4 -1
  105. package/build/list-item/index.js.map +1 -1
  106. package/build/list-item/transforms.js +22 -0
  107. package/build/list-item/transforms.js.map +1 -0
  108. package/build/list-item/utils.js +77 -1
  109. package/build/list-item/utils.js.map +1 -1
  110. package/build/media-text/edit.js +4 -2
  111. package/build/media-text/edit.js.map +1 -1
  112. package/build/navigation/edit/are-blocks-dirty.js +52 -0
  113. package/build/navigation/edit/are-blocks-dirty.js.map +1 -0
  114. package/build/navigation/edit/index.js +112 -143
  115. package/build/navigation/edit/index.js.map +1 -1
  116. package/build/navigation/edit/manage-menus-button.js +36 -0
  117. package/build/navigation/edit/manage-menus-button.js.map +1 -0
  118. package/build/navigation/edit/menu-inspector-controls.js +72 -0
  119. package/build/navigation/edit/menu-inspector-controls.js.map +1 -0
  120. package/build/navigation/edit/navigation-menu-selector.js +3 -1
  121. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  122. package/build/navigation/edit/responsive-wrapper.js +2 -6
  123. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  124. package/build/navigation/edit/unsaved-inner-blocks.js +15 -25
  125. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  126. package/build/navigation/view-modal.js +6 -2
  127. package/build/navigation/view-modal.js.map +1 -1
  128. package/build/navigation-link/edit.js +52 -299
  129. package/build/navigation-link/edit.js.map +1 -1
  130. package/build/navigation-link/link-ui.js +222 -0
  131. package/build/navigation-link/link-ui.js.map +1 -0
  132. package/build/navigation-link/transforms.js +12 -0
  133. package/build/navigation-link/transforms.js.map +1 -1
  134. package/build/navigation-link/update-attributes.js +108 -0
  135. package/build/navigation-link/update-attributes.js.map +1 -0
  136. package/build/navigation-submenu/edit.js +42 -173
  137. package/build/navigation-submenu/edit.js.map +1 -1
  138. package/build/page-list/constants.js +15 -0
  139. package/build/page-list/constants.js.map +1 -0
  140. package/build/page-list/convert-to-links-modal.js +22 -86
  141. package/build/page-list/convert-to-links-modal.js.map +1 -1
  142. package/build/page-list/convert-to-navigation-links.js +76 -0
  143. package/build/page-list/convert-to-navigation-links.js.map +1 -0
  144. package/build/page-list/edit.js +142 -78
  145. package/build/page-list/edit.js.map +1 -1
  146. package/build/page-list/index.js +6 -1
  147. package/build/page-list/index.js.map +1 -1
  148. package/build/page-list-item/edit.js +87 -0
  149. package/build/page-list-item/edit.js.map +1 -0
  150. package/build/page-list-item/index.js +85 -0
  151. package/build/page-list-item/index.js.map +1 -0
  152. package/build/page-list-item/init.js +16 -0
  153. package/build/page-list-item/init.js.map +1 -0
  154. package/build/paragraph/index.js +1 -7
  155. package/build/paragraph/index.js.map +1 -1
  156. package/build/post-author/edit.js +38 -22
  157. package/build/post-author/edit.js.map +1 -1
  158. package/build/post-content/index.js +3 -0
  159. package/build/post-content/index.js.map +1 -1
  160. package/build/post-featured-image/overlay.js +1 -0
  161. package/build/post-featured-image/overlay.js.map +1 -1
  162. package/build/post-template/index.js +8 -0
  163. package/build/post-template/index.js.map +1 -1
  164. package/build/preformatted/transforms.js +3 -1
  165. package/build/preformatted/transforms.js.map +1 -1
  166. package/build/query/deprecated.js +192 -21
  167. package/build/query/deprecated.js.map +1 -1
  168. package/build/query/edit/inspector-controls/index.js +1 -0
  169. package/build/query/edit/inspector-controls/index.js.map +1 -1
  170. package/build/query/edit/query-placeholder.js +3 -19
  171. package/build/query/edit/query-placeholder.js.map +1 -1
  172. package/build/query/index.js +0 -8
  173. package/build/query/index.js.map +1 -1
  174. package/build/query/utils.js +0 -8
  175. package/build/query/utils.js.map +1 -1
  176. package/build/rss/edit.js +3 -0
  177. package/build/rss/edit.js.map +1 -1
  178. package/build/search/edit.native.js +22 -22
  179. package/build/search/edit.native.js.map +1 -1
  180. package/build/search/index.js +9 -1
  181. package/build/search/index.js.map +1 -1
  182. package/build/site-logo/edit.js +18 -10
  183. package/build/site-logo/edit.js.map +1 -1
  184. package/build/site-logo/index.js +1 -0
  185. package/build/site-logo/index.js.map +1 -1
  186. package/build/site-title/index.js +1 -0
  187. package/build/site-title/index.js.map +1 -1
  188. package/build/social-link/social-list.js +4 -12
  189. package/build/social-link/social-list.js.map +1 -1
  190. package/build/table/edit.js +3 -1
  191. package/build/table/edit.js.map +1 -1
  192. package/build/table/index.js +17 -1
  193. package/build/table/index.js.map +1 -1
  194. package/build/table/save.js +4 -2
  195. package/build/table/save.js.map +1 -1
  196. package/build/table/state.js +24 -12
  197. package/build/table/state.js.map +1 -1
  198. package/build/table/transforms.js +3 -2
  199. package/build/table/transforms.js.map +1 -1
  200. package/build/table-of-contents/edit.js +2 -2
  201. package/build/table-of-contents/edit.js.map +1 -1
  202. package/build/tag-cloud/edit.js +2 -1
  203. package/build/tag-cloud/edit.js.map +1 -1
  204. package/build/template-part/edit/selection-modal.js +5 -2
  205. package/build/template-part/edit/selection-modal.js.map +1 -1
  206. package/build/template-part/edit/utils/hooks.js +2 -6
  207. package/build/template-part/edit/utils/hooks.js.map +1 -1
  208. package/build/template-part/variations.js +5 -0
  209. package/build/template-part/variations.js.map +1 -1
  210. package/build/text-columns/edit.js +1 -0
  211. package/build/text-columns/edit.js.map +1 -1
  212. package/build/utils/transformation-categories.native.js +1 -1
  213. package/build/utils/transformation-categories.native.js.map +1 -1
  214. package/build/video/edit.js +1 -1
  215. package/build/video/edit.js.map +1 -1
  216. package/build/video/edit.native.js +1 -3
  217. package/build/video/edit.native.js.map +1 -1
  218. package/build-module/audio/edit.native.js +1 -2
  219. package/build-module/audio/edit.native.js.map +1 -1
  220. package/build-module/audio/index.js +2 -1
  221. package/build-module/audio/index.js.map +1 -1
  222. package/build-module/avatar/edit.js +1 -0
  223. package/build-module/avatar/edit.js.map +1 -1
  224. package/build-module/avatar/user-control.js +1 -0
  225. package/build-module/avatar/user-control.js.map +1 -1
  226. package/build-module/block/edit.js +14 -2
  227. package/build-module/block/edit.js.map +1 -1
  228. package/build-module/block/edit.native.js +14 -6
  229. package/build-module/block/edit.native.js.map +1 -1
  230. package/build-module/block/index.js +1 -2
  231. package/build-module/block/index.js.map +1 -1
  232. package/build-module/button/deprecated.js +16 -2
  233. package/build-module/button/deprecated.js.map +1 -1
  234. package/build-module/button/edit.js +15 -9
  235. package/build-module/button/edit.js.map +1 -1
  236. package/build-module/button/edit.native.js +2 -1
  237. package/build-module/button/edit.native.js.map +1 -1
  238. package/build-module/button/index.js +4 -1
  239. package/build-module/button/index.js.map +1 -1
  240. package/build-module/button/save.js +2 -0
  241. package/build-module/button/save.js.map +1 -1
  242. package/build-module/code/transforms.js +1 -1
  243. package/build-module/code/transforms.js.map +1 -1
  244. package/build-module/columns/edit.js +1 -0
  245. package/build-module/columns/edit.js.map +1 -1
  246. package/build-module/columns/edit.native.js +13 -29
  247. package/build-module/columns/edit.native.js.map +1 -1
  248. package/build-module/columns/transforms.js +5 -0
  249. package/build-module/columns/transforms.js.map +1 -1
  250. package/build-module/comment-author-avatar/edit.js +1 -0
  251. package/build-module/comment-author-avatar/edit.js.map +1 -1
  252. package/build-module/cover/edit/index.js +3 -1
  253. package/build-module/cover/edit/index.js.map +1 -1
  254. package/build-module/cover/edit/inspector-controls.js +2 -0
  255. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  256. package/build-module/cover/edit.native.js +22 -14
  257. package/build-module/cover/edit.native.js.map +1 -1
  258. package/build-module/embed/embed-controls.native.js +2 -1
  259. package/build-module/embed/embed-controls.native.js.map +1 -1
  260. package/build-module/embed/embed-preview.native.js +1 -2
  261. package/build-module/embed/embed-preview.native.js.map +1 -1
  262. package/build-module/file/inspector.js +1 -0
  263. package/build-module/file/inspector.js.map +1 -1
  264. package/build-module/gallery/edit.js +25 -12
  265. package/build-module/gallery/edit.js.map +1 -1
  266. package/build-module/gallery/gallery.native.js +1 -2
  267. package/build-module/gallery/gallery.native.js.map +1 -1
  268. package/build-module/gallery/shared.js +5 -11
  269. package/build-module/gallery/shared.js.map +1 -1
  270. package/build-module/gallery/transforms.js +1 -6
  271. package/build-module/gallery/transforms.js.map +1 -1
  272. package/build-module/gallery/use-get-media.js +1 -1
  273. package/build-module/gallery/use-get-media.js.map +1 -1
  274. package/build-module/gallery/use-get-media.native.js +3 -1
  275. package/build-module/gallery/use-get-media.native.js.map +1 -1
  276. package/build-module/gallery/v1/edit.js +27 -18
  277. package/build-module/gallery/v1/edit.js.map +1 -1
  278. package/build-module/gallery/v1/gallery.native.js +1 -2
  279. package/build-module/gallery/v1/gallery.native.js.map +1 -1
  280. package/build-module/gallery/v1/shared.js +5 -2
  281. package/build-module/gallery/v1/shared.js.map +1 -1
  282. package/build-module/group/edit.js +92 -45
  283. package/build-module/group/edit.js.map +1 -1
  284. package/build-module/group/index.js +6 -1
  285. package/build-module/group/index.js.map +1 -1
  286. package/build-module/group/placeholder.js +133 -0
  287. package/build-module/group/placeholder.js.map +1 -0
  288. package/build-module/group/variations.js +3 -3
  289. package/build-module/group/variations.js.map +1 -1
  290. package/build-module/heading/deprecated.js +152 -69
  291. package/build-module/heading/deprecated.js.map +1 -1
  292. package/build-module/heading/index.js +1 -2
  293. package/build-module/heading/index.js.map +1 -1
  294. package/build-module/heading/transforms.js +1 -2
  295. package/build-module/heading/transforms.js.map +1 -1
  296. package/build-module/html/index.js +1 -1
  297. package/build-module/image/edit.js +9 -6
  298. package/build-module/image/edit.js.map +1 -1
  299. package/build-module/image/edit.native.js +2 -1
  300. package/build-module/image/edit.native.js.map +1 -1
  301. package/build-module/image/image.js +13 -9
  302. package/build-module/image/image.js.map +1 -1
  303. package/build-module/index.js +2 -1
  304. package/build-module/index.js.map +1 -1
  305. package/build-module/latest-comments/edit.js +3 -1
  306. package/build-module/latest-comments/edit.js.map +1 -1
  307. package/build-module/latest-comments/index.js +5 -1
  308. package/build-module/latest-comments/index.js.map +1 -1
  309. package/build-module/latest-posts/deprecated.js +13 -0
  310. package/build-module/latest-posts/deprecated.js.map +1 -1
  311. package/build-module/latest-posts/edit.js +2 -0
  312. package/build-module/latest-posts/edit.js.map +1 -1
  313. package/build-module/latest-posts/index.js +13 -0
  314. package/build-module/latest-posts/index.js.map +1 -1
  315. package/build-module/list/transforms.js +1 -9
  316. package/build-module/list/transforms.js.map +1 -1
  317. package/build-module/list/utils.js +5 -2
  318. package/build-module/list/utils.js.map +1 -1
  319. package/build-module/list-item/edit.js +2 -1
  320. package/build-module/list-item/edit.js.map +1 -1
  321. package/build-module/list-item/index.js +3 -1
  322. package/build-module/list-item/index.js.map +1 -1
  323. package/build-module/list-item/transforms.js +13 -0
  324. package/build-module/list-item/transforms.js.map +1 -0
  325. package/build-module/list-item/utils.js +78 -1
  326. package/build-module/list-item/utils.js.map +1 -1
  327. package/build-module/media-text/edit.js +5 -3
  328. package/build-module/media-text/edit.js.map +1 -1
  329. package/build-module/navigation/edit/are-blocks-dirty.js +44 -0
  330. package/build-module/navigation/edit/are-blocks-dirty.js.map +1 -0
  331. package/build-module/navigation/edit/index.js +111 -143
  332. package/build-module/navigation/edit/index.js.map +1 -1
  333. package/build-module/navigation/edit/manage-menus-button.js +26 -0
  334. package/build-module/navigation/edit/manage-menus-button.js.map +1 -0
  335. package/build-module/navigation/edit/menu-inspector-controls.js +59 -0
  336. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -0
  337. package/build-module/navigation/edit/navigation-menu-selector.js +3 -1
  338. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  339. package/build-module/navigation/edit/responsive-wrapper.js +2 -6
  340. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  341. package/build-module/navigation/edit/unsaved-inner-blocks.js +16 -26
  342. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  343. package/build-module/navigation/view-modal.js +6 -2
  344. package/build-module/navigation/view-modal.js.map +1 -1
  345. package/build-module/navigation-link/edit.js +56 -300
  346. package/build-module/navigation-link/edit.js.map +1 -1
  347. package/build-module/navigation-link/link-ui.js +206 -0
  348. package/build-module/navigation-link/link-ui.js.map +1 -0
  349. package/build-module/navigation-link/transforms.js +12 -0
  350. package/build-module/navigation-link/transforms.js.map +1 -1
  351. package/build-module/navigation-link/update-attributes.js +97 -0
  352. package/build-module/navigation-link/update-attributes.js.map +1 -0
  353. package/build-module/navigation-submenu/edit.js +47 -175
  354. package/build-module/navigation-submenu/edit.js.map +1 -1
  355. package/build-module/page-list/constants.js +6 -0
  356. package/build-module/page-list/constants.js.map +1 -0
  357. package/build-module/page-list/convert-to-links-modal.js +20 -81
  358. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  359. package/build-module/page-list/convert-to-navigation-links.js +66 -0
  360. package/build-module/page-list/convert-to-navigation-links.js.map +1 -0
  361. package/build-module/page-list/edit.js +144 -82
  362. package/build-module/page-list/edit.js.map +1 -1
  363. package/build-module/page-list/index.js +6 -1
  364. package/build-module/page-list/index.js.map +1 -1
  365. package/build-module/page-list-item/edit.js +74 -0
  366. package/build-module/page-list-item/edit.js.map +1 -0
  367. package/build-module/page-list-item/index.js +68 -0
  368. package/build-module/page-list-item/index.js.map +1 -0
  369. package/build-module/page-list-item/init.js +6 -0
  370. package/build-module/page-list-item/init.js.map +1 -0
  371. package/build-module/paragraph/index.js +1 -7
  372. package/build-module/paragraph/index.js.map +1 -1
  373. package/build-module/post-author/edit.js +38 -23
  374. package/build-module/post-author/edit.js.map +1 -1
  375. package/build-module/post-content/index.js +3 -0
  376. package/build-module/post-content/index.js.map +1 -1
  377. package/build-module/post-featured-image/overlay.js +1 -0
  378. package/build-module/post-featured-image/overlay.js.map +1 -1
  379. package/build-module/post-template/index.js +8 -0
  380. package/build-module/post-template/index.js.map +1 -1
  381. package/build-module/preformatted/transforms.js +3 -1
  382. package/build-module/preformatted/transforms.js.map +1 -1
  383. package/build-module/query/deprecated.js +185 -21
  384. package/build-module/query/deprecated.js.map +1 -1
  385. package/build-module/query/edit/inspector-controls/index.js +1 -0
  386. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  387. package/build-module/query/edit/query-placeholder.js +3 -19
  388. package/build-module/query/edit/query-placeholder.js.map +1 -1
  389. package/build-module/query/index.js +0 -8
  390. package/build-module/query/index.js.map +1 -1
  391. package/build-module/query/utils.js +0 -8
  392. package/build-module/query/utils.js.map +1 -1
  393. package/build-module/rss/edit.js +3 -0
  394. package/build-module/rss/edit.js.map +1 -1
  395. package/build-module/search/edit.native.js +20 -20
  396. package/build-module/search/edit.native.js.map +1 -1
  397. package/build-module/search/index.js +8 -1
  398. package/build-module/search/index.js.map +1 -1
  399. package/build-module/site-logo/edit.js +18 -9
  400. package/build-module/site-logo/edit.js.map +1 -1
  401. package/build-module/site-logo/index.js +1 -0
  402. package/build-module/site-logo/index.js.map +1 -1
  403. package/build-module/site-title/index.js +1 -0
  404. package/build-module/site-title/index.js.map +1 -1
  405. package/build-module/social-link/social-list.js +2 -11
  406. package/build-module/social-link/social-list.js.map +1 -1
  407. package/build-module/table/edit.js +3 -1
  408. package/build-module/table/edit.js.map +1 -1
  409. package/build-module/table/index.js +17 -1
  410. package/build-module/table/index.js.map +1 -1
  411. package/build-module/table/save.js +4 -2
  412. package/build-module/table/save.js.map +1 -1
  413. package/build-module/table/state.js +25 -13
  414. package/build-module/table/state.js.map +1 -1
  415. package/build-module/table/transforms.js +3 -2
  416. package/build-module/table/transforms.js.map +1 -1
  417. package/build-module/table-of-contents/edit.js +2 -2
  418. package/build-module/table-of-contents/edit.js.map +1 -1
  419. package/build-module/tag-cloud/edit.js +3 -2
  420. package/build-module/tag-cloud/edit.js.map +1 -1
  421. package/build-module/template-part/edit/selection-modal.js +6 -3
  422. package/build-module/template-part/edit/selection-modal.js.map +1 -1
  423. package/build-module/template-part/edit/utils/hooks.js +3 -7
  424. package/build-module/template-part/edit/utils/hooks.js.map +1 -1
  425. package/build-module/template-part/variations.js +5 -0
  426. package/build-module/template-part/variations.js.map +1 -1
  427. package/build-module/text-columns/edit.js +1 -0
  428. package/build-module/text-columns/edit.js.map +1 -1
  429. package/build-module/utils/transformation-categories.native.js +1 -1
  430. package/build-module/utils/transformation-categories.native.js.map +1 -1
  431. package/build-module/video/edit.js +1 -1
  432. package/build-module/video/edit.js.map +1 -1
  433. package/build-module/video/edit.native.js +1 -2
  434. package/build-module/video/edit.native.js.map +1 -1
  435. package/build-style/archives/editor-rtl.css +12 -0
  436. package/build-style/archives/editor.css +12 -0
  437. package/build-style/archives/style-rtl.css +12 -0
  438. package/build-style/archives/style.css +12 -0
  439. package/build-style/audio/editor-rtl.css +12 -0
  440. package/build-style/audio/editor.css +12 -0
  441. package/build-style/audio/style-rtl.css +12 -0
  442. package/build-style/audio/style.css +12 -0
  443. package/build-style/audio/theme-rtl.css +12 -0
  444. package/build-style/audio/theme.css +12 -0
  445. package/build-style/avatar/editor-rtl.css +12 -0
  446. package/build-style/avatar/editor.css +12 -0
  447. package/build-style/avatar/style-rtl.css +12 -0
  448. package/build-style/avatar/style.css +12 -0
  449. package/build-style/block/editor-rtl.css +22 -0
  450. package/build-style/block/editor.css +22 -0
  451. package/build-style/button/editor-rtl.css +12 -0
  452. package/build-style/button/editor.css +12 -0
  453. package/build-style/button/style-rtl.css +12 -0
  454. package/build-style/button/style.css +12 -0
  455. package/build-style/buttons/editor-rtl.css +12 -0
  456. package/build-style/buttons/editor.css +12 -0
  457. package/build-style/buttons/style-rtl.css +12 -0
  458. package/build-style/buttons/style.css +12 -0
  459. package/build-style/calendar/style-rtl.css +12 -0
  460. package/build-style/calendar/style.css +12 -0
  461. package/build-style/categories/editor-rtl.css +12 -0
  462. package/build-style/categories/editor.css +12 -0
  463. package/build-style/categories/style-rtl.css +12 -0
  464. package/build-style/categories/style.css +12 -0
  465. package/build-style/classic-rtl.css +12 -0
  466. package/build-style/classic.css +12 -0
  467. package/build-style/code/editor-rtl.css +12 -0
  468. package/build-style/code/editor.css +12 -0
  469. package/build-style/code/style-rtl.css +12 -0
  470. package/build-style/code/style.css +12 -0
  471. package/build-style/code/theme-rtl.css +12 -0
  472. package/build-style/code/theme.css +12 -0
  473. package/build-style/columns/editor-rtl.css +12 -0
  474. package/build-style/columns/editor.css +12 -0
  475. package/build-style/columns/style-rtl.css +12 -0
  476. package/build-style/columns/style.css +12 -0
  477. package/build-style/comment-author-avatar/editor-rtl.css +12 -0
  478. package/build-style/comment-author-avatar/editor.css +12 -0
  479. package/build-style/comment-content/style-rtl.css +12 -0
  480. package/build-style/comment-content/style.css +12 -0
  481. package/build-style/comment-template/style-rtl.css +12 -0
  482. package/build-style/comment-template/style.css +12 -0
  483. package/build-style/comments/editor-rtl.css +12 -0
  484. package/build-style/comments/editor.css +12 -0
  485. package/build-style/comments/style-rtl.css +12 -0
  486. package/build-style/comments/style.css +12 -0
  487. package/build-style/comments-pagination/editor-rtl.css +12 -0
  488. package/build-style/comments-pagination/editor.css +12 -0
  489. package/build-style/comments-pagination/style-rtl.css +12 -0
  490. package/build-style/comments-pagination/style.css +12 -0
  491. package/build-style/comments-pagination-numbers/editor-rtl.css +12 -0
  492. package/build-style/comments-pagination-numbers/editor.css +12 -0
  493. package/build-style/comments-title/editor-rtl.css +12 -0
  494. package/build-style/comments-title/editor.css +12 -0
  495. package/build-style/common-rtl.css +17 -1
  496. package/build-style/common.css +17 -1
  497. package/build-style/cover/editor-rtl.css +12 -0
  498. package/build-style/cover/editor.css +12 -0
  499. package/build-style/cover/style-rtl.css +14 -1
  500. package/build-style/cover/style.css +14 -1
  501. package/build-style/editor-elements-rtl.css +12 -0
  502. package/build-style/editor-elements.css +12 -0
  503. package/build-style/editor-rtl.css +115 -21
  504. package/build-style/editor.css +115 -21
  505. package/build-style/elements-rtl.css +12 -0
  506. package/build-style/elements.css +12 -0
  507. package/build-style/embed/editor-rtl.css +12 -0
  508. package/build-style/embed/editor.css +12 -0
  509. package/build-style/embed/style-rtl.css +12 -0
  510. package/build-style/embed/style.css +12 -0
  511. package/build-style/embed/theme-rtl.css +12 -0
  512. package/build-style/embed/theme.css +12 -0
  513. package/build-style/file/editor-rtl.css +12 -0
  514. package/build-style/file/editor.css +12 -0
  515. package/build-style/file/style-rtl.css +12 -0
  516. package/build-style/file/style.css +12 -0
  517. package/build-style/freeform/editor-rtl.css +12 -0
  518. package/build-style/freeform/editor.css +12 -0
  519. package/build-style/gallery/editor-rtl.css +13 -1
  520. package/build-style/gallery/editor.css +13 -1
  521. package/build-style/gallery/style-rtl.css +16 -2
  522. package/build-style/gallery/style.css +16 -2
  523. package/build-style/gallery/theme-rtl.css +12 -0
  524. package/build-style/gallery/theme.css +12 -0
  525. package/build-style/group/editor-rtl.css +56 -0
  526. package/build-style/group/editor.css +56 -0
  527. package/build-style/group/style-rtl.css +12 -0
  528. package/build-style/group/style.css +12 -0
  529. package/build-style/group/theme-rtl.css +12 -0
  530. package/build-style/group/theme.css +12 -0
  531. package/build-style/heading/style-rtl.css +12 -0
  532. package/build-style/heading/style.css +12 -0
  533. package/build-style/html/editor-rtl.css +12 -0
  534. package/build-style/html/editor.css +12 -0
  535. package/build-style/image/editor-rtl.css +12 -9
  536. package/build-style/image/editor.css +12 -9
  537. package/build-style/image/style-rtl.css +12 -0
  538. package/build-style/image/style.css +12 -0
  539. package/build-style/image/theme-rtl.css +12 -0
  540. package/build-style/image/theme.css +12 -0
  541. package/build-style/latest-comments/style-rtl.css +13 -0
  542. package/build-style/latest-comments/style.css +13 -0
  543. package/build-style/latest-posts/editor-rtl.css +12 -0
  544. package/build-style/latest-posts/editor.css +12 -0
  545. package/build-style/latest-posts/style-rtl.css +15 -0
  546. package/build-style/latest-posts/style.css +15 -0
  547. package/build-style/list/style-rtl.css +12 -0
  548. package/build-style/list/style.css +12 -0
  549. package/build-style/media-text/editor-rtl.css +12 -0
  550. package/build-style/media-text/editor.css +12 -0
  551. package/build-style/media-text/style-rtl.css +12 -0
  552. package/build-style/media-text/style.css +12 -0
  553. package/build-style/more/editor-rtl.css +12 -0
  554. package/build-style/more/editor.css +12 -0
  555. package/build-style/navigation/editor-rtl.css +35 -0
  556. package/build-style/navigation/editor.css +35 -0
  557. package/build-style/navigation/style-rtl.css +22 -0
  558. package/build-style/navigation/style.css +22 -0
  559. package/build-style/navigation-link/editor-rtl.css +20 -1
  560. package/build-style/navigation-link/editor.css +20 -1
  561. package/build-style/navigation-link/style-rtl.css +12 -0
  562. package/build-style/navigation-link/style.css +12 -0
  563. package/build-style/navigation-submenu/editor-rtl.css +12 -0
  564. package/build-style/navigation-submenu/editor.css +12 -0
  565. package/build-style/nextpage/editor-rtl.css +12 -0
  566. package/build-style/nextpage/editor.css +12 -0
  567. package/build-style/page-list/editor-rtl.css +12 -0
  568. package/build-style/page-list/editor.css +12 -0
  569. package/build-style/page-list/style-rtl.css +12 -0
  570. package/build-style/page-list/style.css +12 -0
  571. package/build-style/paragraph/editor-rtl.css +12 -0
  572. package/build-style/paragraph/editor.css +12 -0
  573. package/build-style/paragraph/style-rtl.css +12 -0
  574. package/build-style/paragraph/style.css +12 -0
  575. package/build-style/post-author/style-rtl.css +12 -0
  576. package/build-style/post-author/style.css +12 -0
  577. package/build-style/post-comments-form/editor-rtl.css +12 -0
  578. package/build-style/post-comments-form/editor.css +12 -0
  579. package/build-style/post-comments-form/style-rtl.css +12 -0
  580. package/build-style/post-comments-form/style.css +12 -0
  581. package/build-style/post-date/style-rtl.css +12 -0
  582. package/build-style/post-date/style.css +12 -0
  583. package/build-style/post-excerpt/editor-rtl.css +12 -0
  584. package/build-style/post-excerpt/editor.css +12 -0
  585. package/build-style/post-excerpt/style-rtl.css +12 -0
  586. package/build-style/post-excerpt/style.css +12 -0
  587. package/build-style/post-featured-image/editor-rtl.css +12 -0
  588. package/build-style/post-featured-image/editor.css +12 -0
  589. package/build-style/post-featured-image/style-rtl.css +12 -0
  590. package/build-style/post-featured-image/style.css +12 -0
  591. package/build-style/post-navigation-link/style-rtl.css +12 -0
  592. package/build-style/post-navigation-link/style.css +12 -0
  593. package/build-style/post-template/editor-rtl.css +12 -0
  594. package/build-style/post-template/editor.css +12 -0
  595. package/build-style/post-template/style-rtl.css +12 -0
  596. package/build-style/post-template/style.css +12 -0
  597. package/build-style/post-terms/style-rtl.css +12 -0
  598. package/build-style/post-terms/style.css +12 -0
  599. package/build-style/post-title/style-rtl.css +12 -0
  600. package/build-style/post-title/style.css +12 -0
  601. package/build-style/preformatted/style-rtl.css +12 -0
  602. package/build-style/preformatted/style.css +12 -0
  603. package/build-style/pullquote/editor-rtl.css +12 -0
  604. package/build-style/pullquote/editor.css +12 -0
  605. package/build-style/pullquote/style-rtl.css +12 -0
  606. package/build-style/pullquote/style.css +12 -0
  607. package/build-style/pullquote/theme-rtl.css +12 -0
  608. package/build-style/pullquote/theme.css +12 -0
  609. package/build-style/query/editor-rtl.css +13 -1
  610. package/build-style/query/editor.css +13 -1
  611. package/build-style/query-pagination/editor-rtl.css +12 -0
  612. package/build-style/query-pagination/editor.css +12 -0
  613. package/build-style/query-pagination/style-rtl.css +13 -1
  614. package/build-style/query-pagination/style.css +13 -1
  615. package/build-style/query-pagination-numbers/editor-rtl.css +12 -0
  616. package/build-style/query-pagination-numbers/editor.css +12 -0
  617. package/build-style/query-title/style-rtl.css +12 -0
  618. package/build-style/query-title/style.css +12 -0
  619. package/build-style/quote/style-rtl.css +12 -0
  620. package/build-style/quote/style.css +12 -0
  621. package/build-style/quote/theme-rtl.css +12 -0
  622. package/build-style/quote/theme.css +12 -0
  623. package/build-style/read-more/style-rtl.css +12 -0
  624. package/build-style/read-more/style.css +12 -0
  625. package/build-style/reset-rtl.css +12 -0
  626. package/build-style/reset.css +12 -0
  627. package/build-style/rss/editor-rtl.css +12 -0
  628. package/build-style/rss/editor.css +12 -0
  629. package/build-style/rss/style-rtl.css +12 -0
  630. package/build-style/rss/style.css +12 -0
  631. package/build-style/search/editor-rtl.css +12 -0
  632. package/build-style/search/editor.css +12 -0
  633. package/build-style/search/style-rtl.css +12 -0
  634. package/build-style/search/style.css +12 -0
  635. package/build-style/search/theme-rtl.css +12 -0
  636. package/build-style/search/theme.css +12 -0
  637. package/build-style/separator/editor-rtl.css +12 -0
  638. package/build-style/separator/editor.css +12 -0
  639. package/build-style/separator/style-rtl.css +12 -0
  640. package/build-style/separator/style.css +12 -0
  641. package/build-style/separator/theme-rtl.css +12 -0
  642. package/build-style/separator/theme.css +12 -0
  643. package/build-style/shortcode/editor-rtl.css +13 -1
  644. package/build-style/shortcode/editor.css +13 -1
  645. package/build-style/site-logo/editor-rtl.css +12 -0
  646. package/build-style/site-logo/editor.css +12 -0
  647. package/build-style/site-logo/style-rtl.css +12 -0
  648. package/build-style/site-logo/style.css +12 -0
  649. package/build-style/site-tagline/editor-rtl.css +12 -0
  650. package/build-style/site-tagline/editor.css +12 -0
  651. package/build-style/site-title/editor-rtl.css +12 -0
  652. package/build-style/site-title/editor.css +12 -0
  653. package/build-style/site-title/style-rtl.css +12 -0
  654. package/build-style/site-title/style.css +12 -0
  655. package/build-style/social-link/editor-rtl.css +12 -0
  656. package/build-style/social-link/editor.css +12 -0
  657. package/build-style/social-links/editor-rtl.css +12 -0
  658. package/build-style/social-links/editor.css +12 -0
  659. package/build-style/social-links/style-rtl.css +12 -0
  660. package/build-style/social-links/style.css +12 -0
  661. package/build-style/spacer/editor-rtl.css +12 -0
  662. package/build-style/spacer/editor.css +12 -0
  663. package/build-style/spacer/style-rtl.css +12 -0
  664. package/build-style/spacer/style.css +12 -0
  665. package/build-style/style-rtl.css +43 -6
  666. package/build-style/style.css +43 -6
  667. package/build-style/table/editor-rtl.css +13 -8
  668. package/build-style/table/editor.css +13 -8
  669. package/build-style/table/style-rtl.css +17 -0
  670. package/build-style/table/style.css +17 -0
  671. package/build-style/table/theme-rtl.css +13 -3
  672. package/build-style/table/theme.css +13 -3
  673. package/build-style/tag-cloud/style-rtl.css +12 -0
  674. package/build-style/tag-cloud/style.css +12 -0
  675. package/build-style/template-part/editor-rtl.css +27 -1
  676. package/build-style/template-part/editor.css +27 -1
  677. package/build-style/template-part/theme-rtl.css +12 -0
  678. package/build-style/template-part/theme.css +12 -0
  679. package/build-style/text-columns/editor-rtl.css +12 -0
  680. package/build-style/text-columns/editor.css +12 -0
  681. package/build-style/text-columns/style-rtl.css +12 -0
  682. package/build-style/text-columns/style.css +12 -0
  683. package/build-style/theme-rtl.css +13 -3
  684. package/build-style/theme.css +13 -3
  685. package/build-style/verse/style-rtl.css +12 -0
  686. package/build-style/verse/style.css +12 -0
  687. package/build-style/video/editor-rtl.css +12 -0
  688. package/build-style/video/editor.css +12 -0
  689. package/build-style/video/style-rtl.css +14 -1
  690. package/build-style/video/style.css +14 -1
  691. package/build-style/video/theme-rtl.css +12 -0
  692. package/build-style/video/theme.css +12 -0
  693. package/package.json +32 -30
  694. package/src/audio/edit.native.js +1 -2
  695. package/src/audio/index.js +1 -0
  696. package/src/avatar/edit.js +1 -0
  697. package/src/avatar/index.php +1 -1
  698. package/src/avatar/user-control.js +1 -0
  699. package/src/block/block.json +1 -2
  700. package/src/block/edit.js +14 -3
  701. package/src/block/edit.native.js +24 -12
  702. package/src/block/editor.scss +17 -0
  703. package/src/block/index.php +1 -2
  704. package/src/block/test/edit.native.js +28 -32
  705. package/src/button/block.json +4 -1
  706. package/src/button/deprecated.js +18 -2
  707. package/src/button/edit.js +11 -9
  708. package/src/button/edit.native.js +1 -0
  709. package/src/button/save.js +12 -2
  710. package/src/buttons/test/edit.native.js +41 -52
  711. package/src/code/transforms.js +3 -1
  712. package/src/columns/edit.js +1 -0
  713. package/src/columns/edit.native.js +18 -26
  714. package/src/columns/test/edit.native.js +32 -32
  715. package/src/columns/transforms.js +8 -0
  716. package/src/comment-author-avatar/edit.js +1 -0
  717. package/src/cover/edit/index.js +3 -1
  718. package/src/cover/edit/inspector-controls.js +2 -0
  719. package/src/cover/edit.native.js +32 -19
  720. package/src/cover/test/edit.native.js +77 -130
  721. package/src/embed/embed-controls.native.js +1 -0
  722. package/src/embed/embed-preview.native.js +1 -2
  723. package/src/embed/test/index.native.js +251 -245
  724. package/src/file/inspector.js +1 -0
  725. package/src/file/test/__snapshots__/edit.native.js.snap +2 -6
  726. package/src/gallery/edit.js +15 -5
  727. package/src/gallery/gallery.native.js +1 -2
  728. package/src/gallery/shared.js +7 -11
  729. package/src/gallery/test/index.native.js +11 -11
  730. package/src/gallery/transforms.js +1 -6
  731. package/src/gallery/use-get-media.js +1 -1
  732. package/src/gallery/use-get-media.native.js +2 -1
  733. package/src/gallery/v1/edit.js +26 -30
  734. package/src/gallery/v1/gallery.native.js +1 -2
  735. package/src/gallery/v1/shared.js +7 -2
  736. package/src/group/block.json +6 -1
  737. package/src/group/edit.js +91 -44
  738. package/src/group/editor.scss +48 -0
  739. package/src/group/placeholder.js +168 -0
  740. package/src/group/test/__snapshots__/edit.native.js.snap +1 -1
  741. package/src/group/test/edit.native.js +3 -3
  742. package/src/group/test/placeholder.js +78 -0
  743. package/src/group/variations.js +3 -3
  744. package/src/heading/block.json +1 -2
  745. package/src/heading/deprecated.js +209 -136
  746. package/src/heading/index.php +52 -0
  747. package/src/heading/test/__snapshots__/index.native.js.snap +7 -0
  748. package/src/heading/test/index.native.js +44 -0
  749. package/src/home-link/index.php +1 -1
  750. package/src/html/block.json +1 -1
  751. package/src/image/edit.js +7 -2
  752. package/src/image/edit.native.js +2 -1
  753. package/src/image/editor.scss +0 -11
  754. package/src/image/image.js +13 -8
  755. package/src/image/test/edit.native.js +24 -20
  756. package/src/index.js +2 -0
  757. package/src/latest-comments/block.json +5 -1
  758. package/src/latest-comments/edit.js +2 -0
  759. package/src/latest-comments/style.scss +3 -0
  760. package/src/latest-posts/block.json +13 -0
  761. package/src/latest-posts/edit.js +2 -0
  762. package/src/latest-posts/style.scss +3 -0
  763. package/src/list/test/edit.native.js +55 -47
  764. package/src/list/transforms.js +0 -11
  765. package/src/list/utils.js +6 -2
  766. package/src/list-item/edit.js +1 -0
  767. package/src/list-item/index.js +2 -0
  768. package/src/list-item/transforms.js +17 -0
  769. package/src/list-item/utils.js +10 -1
  770. package/src/media-text/edit.js +5 -3
  771. package/src/missing/test/edit-integration.native.js +10 -12
  772. package/src/navigation/edit/are-blocks-dirty.js +51 -0
  773. package/src/navigation/edit/index.js +269 -310
  774. package/src/navigation/edit/manage-menus-button.js +21 -0
  775. package/src/navigation/edit/menu-inspector-controls.js +78 -0
  776. package/src/navigation/edit/navigation-menu-selector.js +5 -1
  777. package/src/navigation/edit/responsive-wrapper.js +2 -10
  778. package/src/navigation/edit/test/are-blocks-dirty.js +121 -0
  779. package/src/navigation/edit/unsaved-inner-blocks.js +17 -36
  780. package/src/navigation/editor.scss +25 -0
  781. package/src/navigation/index.php +57 -10
  782. package/src/navigation/style.scss +16 -0
  783. package/src/navigation/view-modal.js +11 -1
  784. package/src/navigation-link/edit.js +66 -329
  785. package/src/navigation-link/editor.scss +8 -0
  786. package/src/navigation-link/index.php +32 -0
  787. package/src/navigation-link/link-ui.js +213 -0
  788. package/src/navigation-link/test/edit.js +23 -82
  789. package/src/navigation-link/transforms.js +14 -0
  790. package/src/navigation-link/update-attributes.js +99 -0
  791. package/src/navigation-submenu/edit.js +57 -177
  792. package/src/navigation-submenu/index.php +40 -0
  793. package/src/page-list/block.json +6 -1
  794. package/src/page-list/constants.js +8 -0
  795. package/src/page-list/convert-to-links-modal.js +19 -76
  796. package/src/page-list/convert-to-navigation-links.js +60 -0
  797. package/src/page-list/edit.js +179 -118
  798. package/src/page-list/index.php +9 -0
  799. package/src/page-list/test/convert-to-links-modal.js +28 -34
  800. package/src/page-list-item/block.json +51 -0
  801. package/src/page-list-item/edit.js +94 -0
  802. package/src/page-list-item/index.js +24 -0
  803. package/src/page-list-item/init.js +6 -0
  804. package/src/paragraph/index.js +0 -6
  805. package/src/post-author/edit.js +47 -22
  806. package/src/post-content/block.json +3 -0
  807. package/src/post-content/index.php +1 -2
  808. package/src/post-featured-image/index.php +7 -2
  809. package/src/post-featured-image/overlay.js +1 -0
  810. package/src/post-template/block.json +8 -0
  811. package/src/preformatted/transforms.js +4 -1
  812. package/src/query/block.json +0 -8
  813. package/src/query/deprecated.js +257 -86
  814. package/src/query/edit/inspector-controls/index.js +1 -0
  815. package/src/query/edit/query-placeholder.js +4 -16
  816. package/src/query/editor.scss +1 -1
  817. package/src/query-pagination/style.scss +1 -1
  818. package/src/read-more/index.php +9 -2
  819. package/src/rss/edit.js +3 -0
  820. package/src/search/edit.native.js +31 -27
  821. package/src/search/index.js +5 -1
  822. package/src/shortcode/test/edit.native.js +15 -18
  823. package/src/site-logo/edit.js +14 -6
  824. package/src/site-logo/index.js +1 -0
  825. package/src/site-title/index.js +1 -0
  826. package/src/social-link/social-list.js +2 -7
  827. package/src/social-link/test/index.native.js +16 -22
  828. package/src/social-links/test/edit.native.js +8 -7
  829. package/src/spacer/test/index.native.js +39 -36
  830. package/src/table/block.json +15 -0
  831. package/src/table/edit.js +2 -1
  832. package/src/table/editor.scss +1 -4
  833. package/src/table/index.js +1 -0
  834. package/src/table/save.js +5 -1
  835. package/src/table/state.js +22 -7
  836. package/src/table/style.scss +7 -0
  837. package/src/table/theme.scss +1 -3
  838. package/src/table/transforms.js +2 -1
  839. package/src/table-of-contents/edit.js +2 -2
  840. package/src/tag-cloud/edit.js +3 -2
  841. package/src/template-part/edit/selection-modal.js +4 -3
  842. package/src/template-part/edit/utils/hooks.js +7 -3
  843. package/src/template-part/editor.scss +20 -2
  844. package/src/template-part/index.php +6 -2
  845. package/src/template-part/variations.js +4 -0
  846. package/src/text-columns/edit.js +1 -0
  847. package/src/utils/transformation-categories.native.js +1 -0
  848. package/src/video/edit.js +1 -1
  849. package/src/video/edit.native.js +1 -2
  850. package/test/babel-plugin.js +35 -35
  851. package/tsconfig.tsbuildinfo +1 -1
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import classnames from 'classnames';
5
- import escapeHtml from 'escape-html';
6
5
 
7
6
  /**
8
7
  * WordPress dependencies
@@ -10,50 +9,45 @@ import escapeHtml from 'escape-html';
10
9
  import { useSelect, useDispatch } from '@wordpress/data';
11
10
  import {
12
11
  PanelBody,
13
- Popover,
14
12
  TextControl,
15
13
  TextareaControl,
16
14
  ToolbarButton,
17
15
  ToolbarGroup,
18
16
  } from '@wordpress/components';
19
17
  import { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';
20
- import { __, sprintf } from '@wordpress/i18n';
18
+ import { __ } from '@wordpress/i18n';
21
19
  import {
22
20
  BlockControls,
23
21
  InnerBlocks,
24
22
  useInnerBlocksProps,
25
23
  InspectorControls,
26
24
  RichText,
27
- __experimentalLinkControl as LinkControl,
28
25
  useBlockProps,
29
26
  store as blockEditorStore,
30
27
  getColorClassName,
31
28
  } from '@wordpress/block-editor';
32
- import { isURL, prependHTTP, safeDecodeURI } from '@wordpress/url';
33
- import {
34
- Fragment,
35
- useState,
36
- useEffect,
37
- useRef,
38
- createInterpolateElement,
39
- } from '@wordpress/element';
29
+ import { isURL, prependHTTP } from '@wordpress/url';
30
+ import { Fragment, useState, useEffect, useRef } from '@wordpress/element';
40
31
  import { placeCaretAtHorizontalEdge } from '@wordpress/dom';
41
32
  import { link as linkIcon, removeSubmenu } from '@wordpress/icons';
42
- import {
43
- useResourcePermissions,
44
- store as coreStore,
45
- } from '@wordpress/core-data';
33
+ import { useResourcePermissions } from '@wordpress/core-data';
46
34
  import { speak } from '@wordpress/a11y';
47
35
  import { createBlock } from '@wordpress/blocks';
48
- import { useMergeRefs } from '@wordpress/compose';
36
+ import { useMergeRefs, usePrevious } from '@wordpress/compose';
49
37
 
50
38
  /**
51
39
  * Internal dependencies
52
40
  */
53
41
  import { ItemSubmenuIcon } from './icons';
54
42
  import { name } from './block.json';
43
+ import { LinkUI } from '../navigation-link/link-ui';
44
+ import { updateAttributes } from '../navigation-link/update-attributes';
55
45
 
56
- const ALLOWED_BLOCKS = [ 'core/navigation-link', 'core/navigation-submenu' ];
46
+ const ALLOWED_BLOCKS = [
47
+ 'core/navigation-link',
48
+ 'core/navigation-submenu',
49
+ 'core/page-list',
50
+ ];
57
51
 
58
52
  const DEFAULT_BLOCK = {
59
53
  name: 'core/navigation-link',
@@ -110,36 +104,6 @@ const useIsDraggingWithin = ( elementRef ) => {
110
104
  return isDraggingWithin;
111
105
  };
112
106
 
113
- /**
114
- * Given the Link block's type attribute, return the query params to give to
115
- * /wp/v2/search.
116
- *
117
- * @param {string} type Link block's type attribute.
118
- * @param {string} kind Link block's entity of kind (post-type|taxonomy)
119
- * @return {{ type?: string, subtype?: string }} Search query params.
120
- */
121
- function getSuggestionsQuery( type, kind ) {
122
- switch ( type ) {
123
- case 'post':
124
- case 'page':
125
- return { type: 'post', subtype: type };
126
- case 'category':
127
- return { type: 'term', subtype: 'category' };
128
- case 'tag':
129
- return { type: 'term', subtype: 'post_tag' };
130
- case 'post_format':
131
- return { type: 'post-format' };
132
- default:
133
- if ( kind === 'taxonomy' ) {
134
- return { type: 'term', subtype: type };
135
- }
136
- if ( kind === 'post-type' ) {
137
- return { type: 'post', subtype: type };
138
- }
139
- return {};
140
- }
141
- }
142
-
143
107
  /**
144
108
  * Determine the colors for a menu.
145
109
  *
@@ -214,64 +178,6 @@ function getColors( context, isSubMenu ) {
214
178
  * @property {string} [title] Link title attribute.
215
179
  */
216
180
 
217
- /**
218
- * Link Control onChange handler that updates block attributes when a setting is changed.
219
- *
220
- * @param {Object} updatedValue New block attributes to update.
221
- * @param {Function} setAttributes Block attribute update function.
222
- * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.
223
- *
224
- */
225
- export const updateNavigationLinkBlockAttributes = (
226
- updatedValue = {},
227
- setAttributes,
228
- blockAttributes = {}
229
- ) => {
230
- const {
231
- label: originalLabel = '',
232
- kind: originalKind = '',
233
- type: originalType = '',
234
- } = blockAttributes;
235
- const {
236
- title = '',
237
- url = '',
238
- opensInNewTab,
239
- id,
240
- kind: newKind = originalKind,
241
- type: newType = originalType,
242
- } = updatedValue;
243
-
244
- const normalizedTitle = title.replace( /http(s?):\/\//gi, '' );
245
- const normalizedURL = url.replace( /http(s?):\/\//gi, '' );
246
- const escapeTitle =
247
- title !== '' &&
248
- normalizedTitle !== normalizedURL &&
249
- originalLabel !== title;
250
- const label = escapeTitle
251
- ? escapeHtml( title )
252
- : originalLabel || escapeHtml( normalizedURL );
253
-
254
- // In https://github.com/WordPress/gutenberg/pull/24670 we decided to use "tag" in favor of "post_tag"
255
- const type = newType === 'post_tag' ? 'tag' : newType.replace( '-', '_' );
256
-
257
- const isBuiltInType =
258
- [ 'post', 'page', 'tag', 'category' ].indexOf( type ) > -1;
259
-
260
- const isCustomLink =
261
- ( ! newKind && ! isBuiltInType ) || newKind === 'custom';
262
- const kind = isCustomLink ? 'custom' : newKind;
263
-
264
- setAttributes( {
265
- // Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.
266
- ...( url && { url: encodeURI( safeDecodeURI( url ) ) } ),
267
- ...( label && { label } ),
268
- ...( undefined !== opensInNewTab && { opensInNewTab } ),
269
- ...( id && Number.isInteger( id ) && { id } ),
270
- ...( kind && { kind } ),
271
- ...( type && type !== 'URL' && { type } ),
272
- } );
273
- };
274
-
275
181
  export default function NavigationSubmenuEdit( {
276
182
  attributes,
277
183
  isSelected,
@@ -281,14 +187,9 @@ export default function NavigationSubmenuEdit( {
281
187
  context,
282
188
  clientId,
283
189
  } ) {
284
- const { label, type, opensInNewTab, url, description, rel, title, kind } =
285
- attributes;
286
- const link = {
287
- url,
288
- opensInNewTab,
289
- };
190
+ const { label, type, url, description, rel, title } = attributes;
191
+
290
192
  const { showSubmenuIcon, maxNestingLevel, openSubmenusOnClick } = context;
291
- const { saveEntityRecord } = useDispatch( coreStore );
292
193
 
293
194
  const { __unstableMarkNextChangeAsNotPersistent, replaceBlock } =
294
195
  useDispatch( blockEditorStore );
@@ -362,6 +263,8 @@ export default function NavigationSubmenuEdit( {
362
263
  [ clientId ]
363
264
  );
364
265
 
266
+ const prevHasChildren = usePrevious( hasChildren );
267
+
365
268
  // Show the LinkControl on mount if the URL is empty
366
269
  // ( When adding a new menu item)
367
270
  // This can't be done in the useState call because it conflicts
@@ -431,23 +334,6 @@ export default function NavigationSubmenuEdit( {
431
334
  userCanCreate = postsPermissions.canCreate;
432
335
  }
433
336
 
434
- async function handleCreate( pageTitle ) {
435
- const postType = type || 'page';
436
-
437
- const page = await saveEntityRecord( 'postType', postType, {
438
- title: pageTitle,
439
- status: 'draft',
440
- } );
441
-
442
- return {
443
- id: page.id,
444
- type: postType,
445
- title: page.title.rendered,
446
- url: page.link,
447
- kind: 'post-type',
448
- };
449
- }
450
-
451
337
  const {
452
338
  textColor,
453
339
  customTextColor,
@@ -541,6 +427,13 @@ export default function NavigationSubmenuEdit( {
541
427
  replaceBlock( clientId, newLinkBlock );
542
428
  }
543
429
 
430
+ useEffect( () => {
431
+ // If block becomes empty, transform to Navigation Link.
432
+ if ( ! hasChildren && prevHasChildren ) {
433
+ transformToLink();
434
+ }
435
+ }, [ hasChildren, prevHasChildren ] );
436
+
544
437
  const canConvertToLink =
545
438
  ! selectedBlockHasChildren || onlyDescendantIsEmptyLink;
546
439
 
@@ -568,8 +461,25 @@ export default function NavigationSubmenuEdit( {
568
461
  />
569
462
  </ToolbarGroup>
570
463
  </BlockControls>
464
+ { /* Warning, this duplicated in packages/block-library/src/navigation-link/edit.js */ }
571
465
  <InspectorControls>
572
466
  <PanelBody title={ __( 'Link settings' ) }>
467
+ <TextControl
468
+ value={ label || '' }
469
+ onChange={ ( labelValue ) => {
470
+ setAttributes( { label: labelValue } );
471
+ } }
472
+ label={ __( 'Label' ) }
473
+ autoComplete="off"
474
+ />
475
+ <TextControl
476
+ value={ url || '' }
477
+ onChange={ ( urlValue ) => {
478
+ setAttributes( { url: urlValue } );
479
+ } }
480
+ label={ __( 'URL' ) }
481
+ autoComplete="off"
482
+ />
573
483
  <TextareaControl
574
484
  value={ description || '' }
575
485
  onChange={ ( descriptionValue ) => {
@@ -632,55 +542,25 @@ export default function NavigationSubmenuEdit( {
632
542
  />
633
543
  }
634
544
  { ! openSubmenusOnClick && isLinkOpen && (
635
- <Popover
636
- placement="bottom"
545
+ <LinkUI
546
+ className="wp-block-navigation-link__inline-link-input"
547
+ clientId={ clientId }
548
+ link={ attributes }
637
549
  onClose={ () => setIsLinkOpen( false ) }
638
550
  anchor={ popoverAnchor }
639
- shift
640
- >
641
- <LinkControl
642
- className="wp-block-navigation-link__inline-link-input"
643
- value={ link }
644
- showInitialSuggestions={ true }
645
- withCreateSuggestion={ userCanCreate }
646
- createSuggestion={ handleCreate }
647
- createSuggestionButtonText={ ( searchTerm ) => {
648
- let format;
649
- if ( type === 'post' ) {
650
- /* translators: %s: search term. */
651
- format = __(
652
- 'Create draft post: <mark>%s</mark>'
653
- );
654
- } else {
655
- /* translators: %s: search term. */
656
- format = __(
657
- 'Create draft page: <mark>%s</mark>'
658
- );
659
- }
660
- return createInterpolateElement(
661
- sprintf( format, searchTerm ),
662
- { mark: <mark /> }
663
- );
664
- } }
665
- noDirectEntry={ !! type }
666
- noURLSuggestion={ !! type }
667
- suggestionsQuery={ getSuggestionsQuery(
668
- type,
669
- kind
670
- ) }
671
- onChange={ ( updatedValue ) =>
672
- updateNavigationLinkBlockAttributes(
673
- updatedValue,
674
- setAttributes,
675
- attributes
676
- )
677
- }
678
- onRemove={ () => {
679
- setAttributes( { url: '' } );
680
- speak( __( 'Link removed.' ), 'assertive' );
681
- } }
682
- />
683
- </Popover>
551
+ hasCreateSuggestion={ userCanCreate }
552
+ onRemove={ () => {
553
+ setAttributes( { url: '' } );
554
+ speak( __( 'Link removed.' ), 'assertive' );
555
+ } }
556
+ onChange={ ( updatedValue ) => {
557
+ updateAttributes(
558
+ updatedValue,
559
+ setAttributes,
560
+ attributes
561
+ );
562
+ } }
563
+ />
684
564
  ) }
685
565
  </ParentElement>
686
566
  { ( showSubmenuIcon || openSubmenusOnClick ) && (
@@ -255,6 +255,14 @@ function render_block_core_navigation_submenu( $attributes, $content, $block ) {
255
255
  $inner_blocks_html .= $inner_block->render();
256
256
  }
257
257
 
258
+ if ( strpos( $inner_blocks_html, 'current-menu-item' ) ) {
259
+ $tag_processor = new WP_HTML_Tag_Processor( $html );
260
+ while ( $tag_processor->next_tag( array( 'class_name' => 'wp-block-navigation-item__content' ) ) ) {
261
+ $tag_processor->add_class( 'current-menu-ancestor' );
262
+ }
263
+ $html = $tag_processor->get_updated_html();
264
+ }
265
+
258
266
  $html .= sprintf(
259
267
  '<ul class="wp-block-navigation__submenu-container">%s</ul>',
260
268
  $inner_blocks_html
@@ -281,3 +289,35 @@ function register_block_core_navigation_submenu() {
281
289
  );
282
290
  }
283
291
  add_action( 'init', 'register_block_core_navigation_submenu' );
292
+
293
+ /**
294
+ * Disables display of block inspector tabs for the Navigation Submenu block.
295
+ *
296
+ * This is only a temporary measure until we have a TabPanel and mechanism that
297
+ * will allow the Navigation Submenu to programmatically select a tab when
298
+ * edited via a specific context.
299
+ *
300
+ * See:
301
+ * - https://github.com/WordPress/gutenberg/issues/45951
302
+ * - https://github.com/WordPress/gutenberg/pull/46321
303
+ * - https://github.com/WordPress/gutenberg/pull/46271
304
+ *
305
+ * @param array $settings Default editor settings.
306
+ * @return array Filtered editor settings.
307
+ */
308
+ function gutenberg_disable_tabs_for_navigation_submenu_block( $settings ) {
309
+ $current_tab_settings = _wp_array_get(
310
+ $settings,
311
+ array( '__experimentalBlockInspectorTabs' ),
312
+ array()
313
+ );
314
+
315
+ $settings['__experimentalBlockInspectorTabs'] = array_merge(
316
+ $current_tab_settings,
317
+ array( 'core/navigation-submenu' => false )
318
+ );
319
+
320
+ return $settings;
321
+ }
322
+
323
+ add_filter( 'block_editor_settings_all', 'gutenberg_disable_tabs_for_navigation_submenu_block' );
@@ -7,7 +7,12 @@
7
7
  "description": "Display a list of all pages.",
8
8
  "keywords": [ "menu", "navigation" ],
9
9
  "textdomain": "default",
10
- "attributes": {},
10
+ "attributes": {
11
+ "parentPageID": {
12
+ "type": "integer",
13
+ "default": 0
14
+ }
15
+ },
11
16
  "usesContext": [
12
17
  "textColor",
13
18
  "customTextColor",
@@ -0,0 +1,8 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+
6
+ export const convertDescription = __(
7
+ 'This menu is automatically kept in sync with pages on your site. You can manage the menu yourself by clicking customize below.'
8
+ );
@@ -5,71 +5,20 @@ import { Button, Modal } from '@wordpress/components';
5
5
  import { __ } from '@wordpress/i18n';
6
6
  import { useDispatch } from '@wordpress/data';
7
7
  import { useEntityRecords } from '@wordpress/core-data';
8
- import { createBlock as create } from '@wordpress/blocks';
9
8
  import { store as blockEditorStore } from '@wordpress/block-editor';
9
+ /**
10
+ * Internal dependencies
11
+ */
12
+ import { convertToNavigationLinks } from './convert-to-navigation-links';
13
+
14
+ /**
15
+ * Internal dependencies
16
+ */
17
+ import { convertDescription } from './constants';
10
18
 
11
19
  const PAGE_FIELDS = [ 'id', 'title', 'link', 'type', 'parent' ];
12
20
  const MAX_PAGE_COUNT = 100;
13
21
 
14
- export const convertSelectedBlockToNavigationLinks =
15
- ( { pages, clientId, replaceBlock, createBlock } ) =>
16
- () => {
17
- if ( ! pages ) {
18
- return;
19
- }
20
-
21
- const linkMap = {};
22
- const navigationLinks = [];
23
- pages.forEach( ( { id, title, link: url, type, parent } ) => {
24
- // See if a placeholder exists. This is created if children appear before parents in list.
25
- const innerBlocks = linkMap[ id ]?.innerBlocks ?? [];
26
- linkMap[ id ] = createBlock(
27
- 'core/navigation-link',
28
- {
29
- id,
30
- label: title.rendered,
31
- url,
32
- type,
33
- kind: 'post-type',
34
- },
35
- innerBlocks
36
- );
37
-
38
- if ( ! parent ) {
39
- navigationLinks.push( linkMap[ id ] );
40
- } else {
41
- if ( ! linkMap[ parent ] ) {
42
- // Use a placeholder if the child appears before parent in list.
43
- linkMap[ parent ] = { innerBlocks: [] };
44
- }
45
- const parentLinkInnerBlocks = linkMap[ parent ].innerBlocks;
46
- parentLinkInnerBlocks.push( linkMap[ id ] );
47
- }
48
- } );
49
-
50
- // Transform all links with innerBlocks into Submenus. This can't be done
51
- // sooner because page objects have no information on their children.
52
-
53
- const transformSubmenus = ( listOfLinks ) => {
54
- listOfLinks.forEach( ( block, index, listOfLinksArray ) => {
55
- const { attributes, innerBlocks } = block;
56
- if ( innerBlocks.length !== 0 ) {
57
- transformSubmenus( innerBlocks );
58
- const transformedBlock = createBlock(
59
- 'core/navigation-submenu',
60
- attributes,
61
- innerBlocks
62
- );
63
- listOfLinksArray[ index ] = transformedBlock;
64
- }
65
- } );
66
- };
67
-
68
- transformSubmenus( navigationLinks );
69
-
70
- replaceBlock( clientId, navigationLinks );
71
- };
72
-
73
22
  export default function ConvertToLinksModal( { onClose, clientId } ) {
74
23
  const { records: pages, hasResolved: pagesFinished } = useEntityRecords(
75
24
  'postType',
@@ -91,19 +40,12 @@ export default function ConvertToLinksModal( { onClose, clientId } ) {
91
40
  <Modal
92
41
  closeLabel={ __( 'Close' ) }
93
42
  onRequestClose={ onClose }
94
- title={ __( 'Convert to links' ) }
43
+ title={ __( 'Customize this menu' ) }
95
44
  className={ 'wp-block-page-list-modal' }
96
45
  aria={ { describedby: 'wp-block-page-list-modal__description' } }
97
46
  >
98
47
  <p id={ 'wp-block-page-list-modal__description' }>
99
- { __(
100
- 'To edit this navigation menu, convert it to single page links. This allows you to add, re-order, remove items, or edit their labels.'
101
- ) }
102
- </p>
103
- <p>
104
- { __(
105
- "Note: if you add new pages to your site, you'll need to add them to your navigation menu."
106
- ) }
48
+ { convertDescription }
107
49
  </p>
108
50
  <div className="wp-block-page-list-modal-buttons">
109
51
  <Button variant="tertiary" onClick={ onClose }>
@@ -112,14 +54,15 @@ export default function ConvertToLinksModal( { onClose, clientId } ) {
112
54
  <Button
113
55
  variant="primary"
114
56
  disabled={ ! pagesFinished }
115
- onClick={ convertSelectedBlockToNavigationLinks( {
116
- pages,
117
- replaceBlock,
118
- clientId,
119
- createBlock: create,
120
- } ) }
57
+ onClick={ () => {
58
+ const navigationLinks =
59
+ convertToNavigationLinks( pages );
60
+
61
+ // Replace the Page List block with the Navigation Links.
62
+ replaceBlock( clientId, navigationLinks );
63
+ } }
121
64
  >
122
- { __( 'Convert' ) }
65
+ { __( 'Customize' ) }
123
66
  </Button>
124
67
  </div>
125
68
  </Modal>
@@ -0,0 +1,60 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { createBlock } from '@wordpress/blocks';
5
+
6
+ export const convertToNavigationLinks = ( pages ) => {
7
+ if ( ! pages ) {
8
+ return;
9
+ }
10
+
11
+ const linkMap = {};
12
+ const navigationLinks = [];
13
+ pages.forEach( ( { id, title, link: url, type, parent } ) => {
14
+ // See if a placeholder exists. This is created if children appear before parents in list.
15
+ const innerBlocks = linkMap[ id ]?.innerBlocks ?? [];
16
+ linkMap[ id ] = createBlock(
17
+ 'core/navigation-link',
18
+ {
19
+ id,
20
+ label: title.rendered,
21
+ url,
22
+ type,
23
+ kind: 'post-type',
24
+ },
25
+ innerBlocks
26
+ );
27
+
28
+ if ( ! parent ) {
29
+ navigationLinks.push( linkMap[ id ] );
30
+ } else {
31
+ if ( ! linkMap[ parent ] ) {
32
+ // Use a placeholder if the child appears before parent in list.
33
+ linkMap[ parent ] = { innerBlocks: [] };
34
+ }
35
+ const parentLinkInnerBlocks = linkMap[ parent ].innerBlocks;
36
+ parentLinkInnerBlocks.push( linkMap[ id ] );
37
+ }
38
+ } );
39
+
40
+ // Transform all links with innerBlocks into Submenus. This can't be done
41
+ // sooner because page objects have no information on their children.
42
+ const transformSubmenus = ( listOfLinks ) => {
43
+ listOfLinks.forEach( ( block, index, listOfLinksArray ) => {
44
+ const { attributes, innerBlocks } = block;
45
+ if ( innerBlocks.length !== 0 ) {
46
+ transformSubmenus( innerBlocks );
47
+ const transformedBlock = createBlock(
48
+ 'core/navigation-submenu',
49
+ attributes,
50
+ innerBlocks
51
+ );
52
+ listOfLinksArray[ index ] = transformedBlock;
53
+ }
54
+ } );
55
+ };
56
+
57
+ transformSubmenus( navigationLinks );
58
+
59
+ return navigationLinks;
60
+ };