@wordpress/block-library 8.4.0 → 8.6.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 (607) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/archives/edit.js +3 -0
  3. package/build/archives/edit.js.map +1 -1
  4. package/build/audio/edit.js +2 -0
  5. package/build/audio/edit.js.map +1 -1
  6. package/build/avatar/edit.js +5 -9
  7. package/build/avatar/edit.js.map +1 -1
  8. package/build/buttons/edit.native.js +1 -1
  9. package/build/buttons/edit.native.js.map +1 -1
  10. package/build/categories/edit.js +5 -0
  11. package/build/categories/edit.js.map +1 -1
  12. package/build/columns/edit.js +11 -8
  13. package/build/columns/edit.js.map +1 -1
  14. package/build/columns/edit.native.js +1 -1
  15. package/build/columns/edit.native.js.map +1 -1
  16. package/build/columns/utils.js +2 -2
  17. package/build/columns/utils.js.map +1 -1
  18. package/build/comment-author-name/edit.js +2 -0
  19. package/build/comment-author-name/edit.js.map +1 -1
  20. package/build/comment-date/edit.js +1 -0
  21. package/build/comment-date/edit.js.map +1 -1
  22. package/build/comment-edit-link/edit.js +1 -0
  23. package/build/comment-edit-link/edit.js.map +1 -1
  24. package/build/comments/edit/placeholder.js +8 -5
  25. package/build/comments/edit/placeholder.js.map +1 -1
  26. package/build/comments-title/edit.js +2 -0
  27. package/build/comments-title/edit.js.map +1 -1
  28. package/build/cover/edit/inspector-controls.js +2 -0
  29. package/build/cover/edit/inspector-controls.js.map +1 -1
  30. package/build/cover/index.js +13 -4
  31. package/build/cover/index.js.map +1 -1
  32. package/build/cover/variations.js +29 -0
  33. package/build/cover/variations.js.map +1 -0
  34. package/build/embed/edit.js +13 -14
  35. package/build/embed/edit.js.map +1 -1
  36. package/build/embed/edit.native.js +18 -14
  37. package/build/embed/edit.native.js.map +1 -1
  38. package/build/embed/embed-controls.js +1 -0
  39. package/build/embed/embed-controls.js.map +1 -1
  40. package/build/embed/util.js +39 -12
  41. package/build/embed/util.js.map +1 -1
  42. package/build/file/inspector.js +3 -0
  43. package/build/file/inspector.js.map +1 -1
  44. package/build/freeform/modal.js +1 -1
  45. package/build/freeform/modal.js.map +1 -1
  46. package/build/gallery/edit.js +3 -0
  47. package/build/gallery/edit.js.map +1 -1
  48. package/build/gallery/shared.js +4 -8
  49. package/build/gallery/shared.js.map +1 -1
  50. package/build/gallery/use-image-sizes.js +4 -8
  51. package/build/gallery/use-image-sizes.js.map +1 -1
  52. package/build/gallery/v1/edit.js +8 -3
  53. package/build/gallery/v1/edit.js.map +1 -1
  54. package/build/gallery/v1/gallery-image.js +1 -3
  55. package/build/gallery/v1/gallery-image.js.map +1 -1
  56. package/build/gallery/v1/shared.js +4 -7
  57. package/build/gallery/v1/shared.js.map +1 -1
  58. package/build/image/edit.js +6 -4
  59. package/build/image/edit.js.map +1 -1
  60. package/build/image/image.js +6 -2
  61. package/build/image/image.js.map +1 -1
  62. package/build/image/utils.js +3 -1
  63. package/build/image/utils.js.map +1 -1
  64. package/build/index.js +3 -1
  65. package/build/index.js.map +1 -1
  66. package/build/latest-comments/edit.js +3 -0
  67. package/build/latest-comments/edit.js.map +1 -1
  68. package/build/latest-posts/edit.js +14 -10
  69. package/build/latest-posts/edit.js.map +1 -1
  70. package/build/latest-posts/edit.native.js +3 -3
  71. package/build/latest-posts/edit.native.js.map +1 -1
  72. package/build/list/ordered-list-settings.js +1 -0
  73. package/build/list/ordered-list-settings.js.map +1 -1
  74. package/build/list-item/edit.js +2 -2
  75. package/build/list-item/edit.js.map +1 -1
  76. package/build/list-item/hooks/use-outdent-list-item.js +2 -1
  77. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  78. package/build/loginout/edit.js +2 -0
  79. package/build/loginout/edit.js.map +1 -1
  80. package/build/media-text/constants.js +17 -1
  81. package/build/media-text/constants.js.map +1 -1
  82. package/build/media-text/edit.js +9 -19
  83. package/build/media-text/edit.js.map +1 -1
  84. package/build/media-text/edit.native.js +6 -5
  85. package/build/media-text/edit.native.js.map +1 -1
  86. package/build/media-text/transforms.js +32 -44
  87. package/build/media-text/transforms.js.map +1 -1
  88. package/build/more/edit.js +1 -0
  89. package/build/more/edit.js.map +1 -1
  90. package/build/navigation/edit/index.js +64 -68
  91. package/build/navigation/edit/index.js.map +1 -1
  92. package/build/navigation/edit/inner-blocks.js +4 -1
  93. package/build/navigation/edit/inner-blocks.js.map +1 -1
  94. package/build/navigation/edit/menu-inspector-controls.js +2 -5
  95. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  96. package/build/navigation/edit/navigation-menu-selector.js +26 -22
  97. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  98. package/build/navigation/edit/overlay-menu-preview.js +1 -0
  99. package/build/navigation/edit/overlay-menu-preview.js.map +1 -1
  100. package/build/navigation/edit/placeholder/index.js +1 -1
  101. package/build/navigation/edit/placeholder/index.js.map +1 -1
  102. package/build/navigation/edit/unsaved-inner-blocks.js +14 -1
  103. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  104. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +3 -5
  105. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  106. package/build/navigation/edit/use-create-navigation-menu.js +1 -1
  107. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
  108. package/build/navigation/edit/use-generate-default-navigation-title.js +1 -1
  109. package/build/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
  110. package/build/navigation/edit/use-navigation-notice.js +4 -7
  111. package/build/navigation/edit/use-navigation-notice.js.map +1 -1
  112. package/build/navigation-link/edit.js +0 -11
  113. package/build/navigation-link/edit.js.map +1 -1
  114. package/build/navigation-submenu/edit.js +1 -13
  115. package/build/navigation-submenu/edit.js.map +1 -1
  116. package/build/page-list/convert-to-links-modal.js +47 -0
  117. package/build/page-list/convert-to-links-modal.js.map +1 -0
  118. package/build/page-list/edit.js +62 -62
  119. package/build/page-list/edit.js.map +1 -1
  120. package/build/page-list-item/edit.js +3 -2
  121. package/build/page-list-item/edit.js.map +1 -1
  122. package/build/paragraph/edit.js +1 -0
  123. package/build/paragraph/edit.js.map +1 -1
  124. package/build/post-author/edit.js +4 -0
  125. package/build/post-author/edit.js.map +1 -1
  126. package/build/post-author-name/edit.js +2 -0
  127. package/build/post-author-name/edit.js.map +1 -1
  128. package/build/post-content/edit.js +6 -1
  129. package/build/post-content/edit.js.map +1 -1
  130. package/build/post-date/edit.js +2 -0
  131. package/build/post-date/edit.js.map +1 -1
  132. package/build/post-excerpt/edit.js +1 -0
  133. package/build/post-excerpt/edit.js.map +1 -1
  134. package/build/post-featured-image/dimension-controls.js +0 -6
  135. package/build/post-featured-image/dimension-controls.js.map +1 -1
  136. package/build/post-featured-image/edit.js +3 -1
  137. package/build/post-featured-image/edit.js.map +1 -1
  138. package/build/post-navigation-link/edit.js +2 -0
  139. package/build/post-navigation-link/edit.js.map +1 -1
  140. package/build/post-terms/use-post-terms.js +1 -1
  141. package/build/post-terms/use-post-terms.js.map +1 -1
  142. package/build/post-time-to-read/edit.js +104 -0
  143. package/build/post-time-to-read/edit.js.map +1 -0
  144. package/build/post-time-to-read/icon.js +25 -0
  145. package/build/post-time-to-read/icon.js.map +1 -0
  146. package/build/post-time-to-read/index.js +57 -0
  147. package/build/post-time-to-read/index.js.map +1 -0
  148. package/build/post-title/edit.js +2 -0
  149. package/build/post-title/edit.js.map +1 -1
  150. package/build/pullquote/deprecated.js +3 -3
  151. package/build/pullquote/deprecated.js.map +1 -1
  152. package/build/query/edit/inspector-controls/index.js +1 -0
  153. package/build/query/edit/inspector-controls/index.js.map +1 -1
  154. package/build/query/edit/query-placeholder.js +3 -2
  155. package/build/query/edit/query-placeholder.js.map +1 -1
  156. package/build/query/utils.js +26 -9
  157. package/build/query/utils.js.map +1 -1
  158. package/build/query-title/edit.js +2 -0
  159. package/build/query-title/edit.js.map +1 -1
  160. package/build/read-more/edit.js +1 -0
  161. package/build/read-more/edit.js.map +1 -1
  162. package/build/rss/edit.js +3 -0
  163. package/build/rss/edit.js.map +1 -1
  164. package/build/site-logo/edit.js +3 -0
  165. package/build/site-logo/edit.js.map +1 -1
  166. package/build/site-tagline/index.js +1 -0
  167. package/build/site-tagline/index.js.map +1 -1
  168. package/build/site-title/edit/index.js +2 -0
  169. package/build/site-title/edit/index.js.map +1 -1
  170. package/build/social-links/edit.js +4 -1
  171. package/build/social-links/edit.js.map +1 -1
  172. package/build/spacer/controls.native.js +10 -8
  173. package/build/spacer/controls.native.js.map +1 -1
  174. package/build/spacer/edit.native.js +43 -5
  175. package/build/spacer/edit.native.js.map +1 -1
  176. package/build/spacer/save.native.js +30 -0
  177. package/build/spacer/save.native.js.map +1 -0
  178. package/build/table/edit.js +3 -0
  179. package/build/table/edit.js.map +1 -1
  180. package/build/table/state.js +12 -4
  181. package/build/table/state.js.map +1 -1
  182. package/build/table-of-contents/edit.js +1 -0
  183. package/build/table-of-contents/edit.js.map +1 -1
  184. package/build/tag-cloud/edit.js +1 -0
  185. package/build/tag-cloud/edit.js.map +1 -1
  186. package/build/template-part/edit/import-controls.js +33 -30
  187. package/build/template-part/edit/import-controls.js.map +1 -1
  188. package/build/template-part/edit/utils/transformers.js +69 -19
  189. package/build/template-part/edit/utils/transformers.js.map +1 -1
  190. package/build/text-columns/edit.js +3 -7
  191. package/build/text-columns/edit.js.map +1 -1
  192. package/build/text-columns/save.js +11 -13
  193. package/build/text-columns/save.js.map +1 -1
  194. package/build/video/edit-common-settings.js +5 -0
  195. package/build/video/edit-common-settings.js.map +1 -1
  196. package/build-module/archives/edit.js +3 -0
  197. package/build-module/archives/edit.js.map +1 -1
  198. package/build-module/audio/edit.js +2 -0
  199. package/build-module/audio/edit.js.map +1 -1
  200. package/build-module/avatar/edit.js +5 -8
  201. package/build-module/avatar/edit.js.map +1 -1
  202. package/build-module/buttons/edit.native.js +1 -1
  203. package/build-module/buttons/edit.native.js.map +1 -1
  204. package/build-module/categories/edit.js +5 -0
  205. package/build-module/categories/edit.js.map +1 -1
  206. package/build-module/columns/edit.js +11 -7
  207. package/build-module/columns/edit.js.map +1 -1
  208. package/build-module/columns/edit.native.js +1 -1
  209. package/build-module/columns/edit.native.js.map +1 -1
  210. package/build-module/columns/utils.js +3 -3
  211. package/build-module/columns/utils.js.map +1 -1
  212. package/build-module/comment-author-name/edit.js +2 -0
  213. package/build-module/comment-author-name/edit.js.map +1 -1
  214. package/build-module/comment-date/edit.js +1 -0
  215. package/build-module/comment-date/edit.js.map +1 -1
  216. package/build-module/comment-edit-link/edit.js +1 -0
  217. package/build-module/comment-edit-link/edit.js.map +1 -1
  218. package/build-module/comments/edit/placeholder.js +9 -5
  219. package/build-module/comments/edit/placeholder.js.map +1 -1
  220. package/build-module/comments-title/edit.js +2 -0
  221. package/build-module/comments-title/edit.js.map +1 -1
  222. package/build-module/cover/edit/inspector-controls.js +2 -0
  223. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  224. package/build-module/cover/index.js +12 -4
  225. package/build-module/cover/index.js.map +1 -1
  226. package/build-module/cover/variations.js +19 -0
  227. package/build-module/cover/variations.js.map +1 -0
  228. package/build-module/embed/edit.js +14 -15
  229. package/build-module/embed/edit.js.map +1 -1
  230. package/build-module/embed/edit.native.js +19 -15
  231. package/build-module/embed/edit.native.js.map +1 -1
  232. package/build-module/embed/embed-controls.js +1 -0
  233. package/build-module/embed/embed-controls.js.map +1 -1
  234. package/build-module/embed/util.js +34 -10
  235. package/build-module/embed/util.js.map +1 -1
  236. package/build-module/file/inspector.js +3 -0
  237. package/build-module/file/inspector.js.map +1 -1
  238. package/build-module/freeform/modal.js +1 -1
  239. package/build-module/freeform/modal.js.map +1 -1
  240. package/build-module/gallery/edit.js +3 -0
  241. package/build-module/gallery/edit.js.map +1 -1
  242. package/build-module/gallery/shared.js +4 -7
  243. package/build-module/gallery/shared.js.map +1 -1
  244. package/build-module/gallery/use-image-sizes.js +4 -7
  245. package/build-module/gallery/use-image-sizes.js.map +1 -1
  246. package/build-module/gallery/v1/edit.js +9 -4
  247. package/build-module/gallery/v1/edit.js.map +1 -1
  248. package/build-module/gallery/v1/gallery-image.js +1 -2
  249. package/build-module/gallery/v1/gallery-image.js.map +1 -1
  250. package/build-module/gallery/v1/shared.js +4 -6
  251. package/build-module/gallery/v1/shared.js.map +1 -1
  252. package/build-module/image/edit.js +7 -5
  253. package/build-module/image/edit.js.map +1 -1
  254. package/build-module/image/image.js +7 -3
  255. package/build-module/image/image.js.map +1 -1
  256. package/build-module/image/utils.js +4 -2
  257. package/build-module/image/utils.js.map +1 -1
  258. package/build-module/index.js +2 -1
  259. package/build-module/index.js.map +1 -1
  260. package/build-module/latest-comments/edit.js +3 -0
  261. package/build-module/latest-comments/edit.js.map +1 -1
  262. package/build-module/latest-posts/edit.js +14 -9
  263. package/build-module/latest-posts/edit.js.map +1 -1
  264. package/build-module/latest-posts/edit.native.js +3 -3
  265. package/build-module/latest-posts/edit.native.js.map +1 -1
  266. package/build-module/list/ordered-list-settings.js +1 -0
  267. package/build-module/list/ordered-list-settings.js.map +1 -1
  268. package/build-module/list-item/edit.js +2 -2
  269. package/build-module/list-item/edit.js.map +1 -1
  270. package/build-module/list-item/hooks/use-outdent-list-item.js +2 -1
  271. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  272. package/build-module/loginout/edit.js +2 -0
  273. package/build-module/loginout/edit.js.map +1 -1
  274. package/build-module/media-text/constants.js +10 -0
  275. package/build-module/media-text/constants.js.map +1 -1
  276. package/build-module/media-text/edit.js +4 -14
  277. package/build-module/media-text/edit.js.map +1 -1
  278. package/build-module/media-text/edit.native.js +4 -3
  279. package/build-module/media-text/edit.native.js.map +1 -1
  280. package/build-module/media-text/transforms.js +32 -44
  281. package/build-module/media-text/transforms.js.map +1 -1
  282. package/build-module/more/edit.js +1 -0
  283. package/build-module/more/edit.js.map +1 -1
  284. package/build-module/navigation/edit/index.js +65 -69
  285. package/build-module/navigation/edit/index.js.map +1 -1
  286. package/build-module/navigation/edit/inner-blocks.js +4 -1
  287. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  288. package/build-module/navigation/edit/menu-inspector-controls.js +2 -5
  289. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  290. package/build-module/navigation/edit/navigation-menu-selector.js +25 -22
  291. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  292. package/build-module/navigation/edit/overlay-menu-preview.js +1 -0
  293. package/build-module/navigation/edit/overlay-menu-preview.js.map +1 -1
  294. package/build-module/navigation/edit/placeholder/index.js +1 -1
  295. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  296. package/build-module/navigation/edit/unsaved-inner-blocks.js +14 -1
  297. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  298. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +3 -5
  299. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  300. package/build-module/navigation/edit/use-create-navigation-menu.js +1 -1
  301. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
  302. package/build-module/navigation/edit/use-generate-default-navigation-title.js +1 -1
  303. package/build-module/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
  304. package/build-module/navigation/edit/use-navigation-notice.js +5 -8
  305. package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
  306. package/build-module/navigation-link/edit.js +0 -11
  307. package/build-module/navigation-link/edit.js.map +1 -1
  308. package/build-module/navigation-submenu/edit.js +1 -13
  309. package/build-module/navigation-submenu/edit.js.map +1 -1
  310. package/build-module/page-list/convert-to-links-modal.js +35 -0
  311. package/build-module/page-list/convert-to-links-modal.js.map +1 -0
  312. package/build-module/page-list/edit.js +64 -65
  313. package/build-module/page-list/edit.js.map +1 -1
  314. package/build-module/page-list-item/edit.js +3 -2
  315. package/build-module/page-list-item/edit.js.map +1 -1
  316. package/build-module/paragraph/edit.js +1 -0
  317. package/build-module/paragraph/edit.js.map +1 -1
  318. package/build-module/post-author/edit.js +4 -0
  319. package/build-module/post-author/edit.js.map +1 -1
  320. package/build-module/post-author-name/edit.js +2 -0
  321. package/build-module/post-author-name/edit.js.map +1 -1
  322. package/build-module/post-content/edit.js +6 -1
  323. package/build-module/post-content/edit.js.map +1 -1
  324. package/build-module/post-date/edit.js +2 -0
  325. package/build-module/post-date/edit.js.map +1 -1
  326. package/build-module/post-excerpt/edit.js +1 -0
  327. package/build-module/post-excerpt/edit.js.map +1 -1
  328. package/build-module/post-featured-image/dimension-controls.js +0 -6
  329. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  330. package/build-module/post-featured-image/edit.js +3 -1
  331. package/build-module/post-featured-image/edit.js.map +1 -1
  332. package/build-module/post-navigation-link/edit.js +2 -0
  333. package/build-module/post-navigation-link/edit.js.map +1 -1
  334. package/build-module/post-terms/use-post-terms.js +1 -1
  335. package/build-module/post-terms/use-post-terms.js.map +1 -1
  336. package/build-module/post-time-to-read/edit.js +90 -0
  337. package/build-module/post-time-to-read/edit.js.map +1 -0
  338. package/build-module/post-time-to-read/icon.js +15 -0
  339. package/build-module/post-time-to-read/icon.js.map +1 -0
  340. package/build-module/post-time-to-read/index.js +40 -0
  341. package/build-module/post-time-to-read/index.js.map +1 -0
  342. package/build-module/post-title/edit.js +2 -0
  343. package/build-module/post-title/edit.js.map +1 -1
  344. package/build-module/pullquote/deprecated.js +3 -2
  345. package/build-module/pullquote/deprecated.js.map +1 -1
  346. package/build-module/query/edit/inspector-controls/index.js +1 -0
  347. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  348. package/build-module/query/edit/query-placeholder.js +4 -3
  349. package/build-module/query/edit/query-placeholder.js.map +1 -1
  350. package/build-module/query/utils.js +21 -6
  351. package/build-module/query/utils.js.map +1 -1
  352. package/build-module/query-title/edit.js +2 -0
  353. package/build-module/query-title/edit.js.map +1 -1
  354. package/build-module/read-more/edit.js +1 -0
  355. package/build-module/read-more/edit.js.map +1 -1
  356. package/build-module/rss/edit.js +3 -0
  357. package/build-module/rss/edit.js.map +1 -1
  358. package/build-module/site-logo/edit.js +3 -0
  359. package/build-module/site-logo/edit.js.map +1 -1
  360. package/build-module/site-tagline/index.js +1 -0
  361. package/build-module/site-tagline/index.js.map +1 -1
  362. package/build-module/site-title/edit/index.js +2 -0
  363. package/build-module/site-title/edit/index.js.map +1 -1
  364. package/build-module/social-links/edit.js +4 -1
  365. package/build-module/social-links/edit.js.map +1 -1
  366. package/build-module/spacer/controls.native.js +9 -8
  367. package/build-module/spacer/controls.native.js.map +1 -1
  368. package/build-module/spacer/edit.native.js +39 -7
  369. package/build-module/spacer/edit.native.js.map +1 -1
  370. package/build-module/spacer/save.native.js +22 -0
  371. package/build-module/spacer/save.native.js.map +1 -0
  372. package/build-module/table/edit.js +3 -0
  373. package/build-module/table/edit.js.map +1 -1
  374. package/build-module/table/state.js +13 -5
  375. package/build-module/table/state.js.map +1 -1
  376. package/build-module/table-of-contents/edit.js +1 -0
  377. package/build-module/table-of-contents/edit.js.map +1 -1
  378. package/build-module/tag-cloud/edit.js +1 -0
  379. package/build-module/tag-cloud/edit.js.map +1 -1
  380. package/build-module/template-part/edit/import-controls.js +32 -29
  381. package/build-module/template-part/edit/import-controls.js.map +1 -1
  382. package/build-module/template-part/edit/utils/transformers.js +69 -20
  383. package/build-module/template-part/edit/utils/transformers.js.map +1 -1
  384. package/build-module/text-columns/edit.js +3 -6
  385. package/build-module/text-columns/edit.js.map +1 -1
  386. package/build-module/text-columns/save.js +11 -12
  387. package/build-module/text-columns/save.js.map +1 -1
  388. package/build-module/video/edit-common-settings.js +5 -0
  389. package/build-module/video/edit-common-settings.js.map +1 -1
  390. package/build-style/cover/style-rtl.css +11 -5
  391. package/build-style/cover/style.css +11 -5
  392. package/build-style/editor-rtl.css +9 -4
  393. package/build-style/editor.css +9 -4
  394. package/build-style/navigation/editor-rtl.css +1 -1
  395. package/build-style/navigation/editor.css +1 -1
  396. package/build-style/page-list/editor-rtl.css +4 -0
  397. package/build-style/page-list/editor.css +4 -0
  398. package/build-style/post-excerpt/editor-rtl.css +1 -1
  399. package/build-style/post-excerpt/editor.css +1 -1
  400. package/build-style/post-featured-image/style-rtl.css +1 -0
  401. package/build-style/post-featured-image/style.css +1 -0
  402. package/build-style/query/editor-rtl.css +1 -0
  403. package/build-style/query/editor.css +1 -0
  404. package/build-style/site-logo/editor-rtl.css +2 -2
  405. package/build-style/site-logo/editor.css +2 -2
  406. package/build-style/style-rtl.css +12 -5
  407. package/build-style/style.css +12 -5
  408. package/package.json +31 -30
  409. package/src/archives/edit.js +3 -0
  410. package/src/audio/edit.js +2 -0
  411. package/src/audio/test/__snapshots__/edit.native.js.snap +82 -42
  412. package/src/audio/test/__snapshots__/transforms.native.js.snap +25 -0
  413. package/src/audio/test/transforms.native.js +42 -0
  414. package/src/avatar/edit.js +2 -4
  415. package/src/block/test/__snapshots__/transforms.native.js.snap +15 -0
  416. package/src/block/test/transforms.native.js +40 -0
  417. package/src/buttons/edit.native.js +1 -1
  418. package/src/buttons/test/__snapshots__/edit.native.js.snap +11 -11
  419. package/src/buttons/test/__snapshots__/transforms.native.js.snap +31 -0
  420. package/src/buttons/test/transforms.native.js +48 -0
  421. package/src/categories/edit.js +5 -0
  422. package/src/code/test/__snapshots__/edit.native.js.snap +2 -2
  423. package/src/columns/edit.js +29 -17
  424. package/src/columns/edit.native.js +1 -1
  425. package/src/columns/test/__snapshots__/edit.native.js.snap +66 -66
  426. package/src/columns/test/__snapshots__/transforms.native.js.snap +61 -0
  427. package/src/columns/test/transforms.native.js +91 -0
  428. package/src/columns/test/utils.js +54 -0
  429. package/src/columns/utils.js +8 -8
  430. package/src/comment-author-name/edit.js +2 -0
  431. package/src/comment-date/edit.js +1 -0
  432. package/src/comment-edit-link/edit.js +1 -0
  433. package/src/comment-template/index.php +1 -2
  434. package/src/comments/edit/placeholder.js +16 -4
  435. package/src/comments-title/edit.js +2 -0
  436. package/src/cover/block.json +9 -3
  437. package/src/cover/edit/inspector-controls.js +2 -0
  438. package/src/cover/index.js +2 -0
  439. package/src/cover/index.php +4 -6
  440. package/src/cover/style.scss +16 -7
  441. package/src/cover/test/__snapshots__/edit.native.js.snap +36 -36
  442. package/src/cover/test/__snapshots__/transforms.native.js.snap +73 -0
  443. package/src/cover/test/transforms.native.js +112 -0
  444. package/src/cover/variations.js +20 -0
  445. package/src/embed/edit.js +16 -12
  446. package/src/embed/edit.native.js +28 -18
  447. package/src/embed/embed-controls.js +1 -0
  448. package/src/embed/test/__snapshots__/index.native.js.snap +52 -52
  449. package/src/embed/test/__snapshots__/transforms.native.js.snap +23 -0
  450. package/src/embed/test/index.js +12 -0
  451. package/src/embed/test/transforms.native.js +44 -0
  452. package/src/embed/util.js +29 -8
  453. package/src/file/inspector.js +3 -0
  454. package/src/file/test/__snapshots__/edit.native.js.snap +67 -51
  455. package/src/file/test/__snapshots__/transforms.native.js.snap +19 -0
  456. package/src/file/test/transforms.native.js +42 -0
  457. package/src/freeform/modal.js +1 -1
  458. package/src/freeform/test/__snapshots__/transforms.native.js.snap +19 -0
  459. package/src/freeform/test/transforms.native.js +39 -0
  460. package/src/gallery/edit.js +5 -0
  461. package/src/gallery/shared.js +6 -11
  462. package/src/gallery/test/__snapshots__/index.native.js.snap +71 -71
  463. package/src/gallery/test/__snapshots__/transforms.native.js.snap +53 -0
  464. package/src/gallery/test/transforms.native.js +52 -0
  465. package/src/gallery/use-image-sizes.js +3 -16
  466. package/src/gallery/v1/edit.js +8 -16
  467. package/src/gallery/v1/gallery-image.js +1 -2
  468. package/src/gallery/v1/shared.js +5 -10
  469. package/src/group/test/__snapshots__/edit.native.js.snap +5 -5
  470. package/src/group/test/__snapshots__/transforms.native.js.snap +35 -0
  471. package/src/group/test/transforms.native.js +75 -0
  472. package/src/heading/test/__snapshots__/index.native.js.snap +1 -1
  473. package/src/heading/test/__snapshots__/transforms.native.js.snap +47 -0
  474. package/src/heading/test/transforms.native.js +46 -0
  475. package/src/image/edit.js +4 -4
  476. package/src/image/image.js +4 -9
  477. package/src/image/index.php +4 -4
  478. package/src/image/test/__snapshots__/transforms.native.js.snap +49 -0
  479. package/src/image/test/transforms.native.js +48 -0
  480. package/src/image/utils.js +2 -2
  481. package/src/index.js +2 -0
  482. package/src/latest-comments/edit.js +3 -0
  483. package/src/latest-posts/edit.js +15 -16
  484. package/src/latest-posts/edit.native.js +3 -3
  485. package/src/latest-posts/test/__snapshots__/transforms.native.js.snap +15 -0
  486. package/src/latest-posts/test/transforms.native.js +61 -0
  487. package/src/list/ordered-list-settings.js +1 -0
  488. package/src/list/test/__snapshots__/edit.native.js.snap +4 -4
  489. package/src/list/test/__snapshots__/transforms.native.js.snap +85 -0
  490. package/src/list/test/transforms.native.js +56 -0
  491. package/src/list-item/edit.js +10 -3
  492. package/src/list-item/hooks/use-outdent-list-item.js +2 -1
  493. package/src/loginout/edit.js +2 -0
  494. package/src/media-text/constants.js +16 -0
  495. package/src/media-text/edit.js +10 -18
  496. package/src/media-text/edit.native.js +3 -9
  497. package/src/media-text/test/__snapshots__/transforms.native.js.snap +73 -0
  498. package/src/media-text/test/transforms.native.js +112 -0
  499. package/src/media-text/transforms.js +24 -51
  500. package/src/missing/test/__snapshots__/edit.native.js.snap +21 -3
  501. package/src/more/edit.js +1 -0
  502. package/src/more/test/__snapshots__/transforms.native.js.snap +19 -0
  503. package/src/more/test/transforms.native.js +42 -0
  504. package/src/navigation/edit/index.js +121 -76
  505. package/src/navigation/edit/inner-blocks.js +3 -0
  506. package/src/navigation/edit/menu-inspector-controls.js +2 -7
  507. package/src/navigation/edit/navigation-menu-selector.js +41 -25
  508. package/src/navigation/edit/overlay-menu-preview.js +1 -0
  509. package/src/navigation/edit/placeholder/index.js +1 -1
  510. package/src/navigation/edit/unsaved-inner-blocks.js +46 -32
  511. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +124 -122
  512. package/src/navigation/edit/use-create-navigation-menu.js +1 -1
  513. package/src/navigation/edit/use-generate-default-navigation-title.js +1 -1
  514. package/src/navigation/edit/use-navigation-notice.js +16 -13
  515. package/src/navigation/editor.scss +23 -20
  516. package/src/navigation/index.php +5 -3
  517. package/src/navigation-link/edit.js +0 -9
  518. package/src/navigation-link/index.php +5 -8
  519. package/src/navigation-link/test/__snapshots__/hooks.js.snap +12 -12
  520. package/src/navigation-submenu/edit.js +0 -10
  521. package/src/navigation-submenu/index.php +23 -6
  522. package/src/nextpage/test/__snapshots__/transforms.native.js.snap +19 -0
  523. package/src/nextpage/test/transforms.native.js +42 -0
  524. package/src/page-list/convert-to-links-modal.js +38 -0
  525. package/src/page-list/edit.js +82 -69
  526. package/src/page-list/editor.scss +6 -0
  527. package/src/page-list-item/edit.js +2 -3
  528. package/src/paragraph/edit.js +1 -0
  529. package/src/paragraph/test/__snapshots__/transforms.native.js.snap +59 -0
  530. package/src/paragraph/test/transforms.native.js +50 -0
  531. package/src/post-author/edit.js +4 -0
  532. package/src/post-author-name/edit.js +2 -0
  533. package/src/post-content/edit.js +5 -1
  534. package/src/post-date/edit.js +2 -0
  535. package/src/post-excerpt/edit.js +1 -0
  536. package/src/post-excerpt/editor.scss +1 -1
  537. package/src/post-excerpt/index.php +1 -2
  538. package/src/post-featured-image/dimension-controls.js +0 -8
  539. package/src/post-featured-image/edit.js +3 -1
  540. package/src/post-featured-image/style.scss +1 -0
  541. package/src/post-navigation-link/edit.js +2 -0
  542. package/src/post-terms/index.php +1 -0
  543. package/src/post-terms/use-post-terms.js +1 -1
  544. package/src/post-time-to-read/block.json +20 -0
  545. package/src/post-time-to-read/edit.js +101 -0
  546. package/src/post-time-to-read/icon.js +15 -0
  547. package/src/post-time-to-read/index.js +17 -0
  548. package/src/post-time-to-read/index.php +62 -0
  549. package/src/post-title/edit.js +2 -0
  550. package/src/preformatted/test/__snapshots__/edit.native.js.snap +10 -10
  551. package/src/preformatted/test/__snapshots__/transforms.native.js.snap +31 -0
  552. package/src/preformatted/test/transforms.native.js +42 -0
  553. package/src/pullquote/deprecated.js +2 -6
  554. package/src/pullquote/test/__snapshots__/transforms.native.js.snap +47 -0
  555. package/src/pullquote/test/transforms.native.js +46 -0
  556. package/src/query/edit/inspector-controls/index.js +1 -0
  557. package/src/query/edit/query-placeholder.js +10 -5
  558. package/src/query/editor.scss +1 -0
  559. package/src/query/test/utils.js +33 -1
  560. package/src/query/utils.js +19 -6
  561. package/src/query-title/edit.js +2 -0
  562. package/src/quote/test/__snapshots__/transforms.native.js.snap +39 -0
  563. package/src/quote/test/transforms.native.js +67 -0
  564. package/src/read-more/edit.js +1 -0
  565. package/src/rss/edit.js +3 -0
  566. package/src/search/test/__snapshots__/edit.native.js.snap +71 -61
  567. package/src/search/test/__snapshots__/transforms.native.js.snap +15 -0
  568. package/src/search/test/transforms.native.js +40 -0
  569. package/src/separator/test/__snapshots__/edit.native.js.snap +1 -1
  570. package/src/separator/test/__snapshots__/transforms.native.js.snap +19 -0
  571. package/src/separator/test/transforms.native.js +42 -0
  572. package/src/shortcode/test/__snapshots__/transforms.native.js.snap +19 -0
  573. package/src/shortcode/test/transforms.native.js +42 -0
  574. package/src/site-logo/edit.js +3 -0
  575. package/src/site-logo/editor.scss +3 -3
  576. package/src/site-logo/index.php +7 -2
  577. package/src/site-tagline/block.json +1 -0
  578. package/src/site-title/edit/index.js +2 -0
  579. package/src/social-link/index.php +6 -6
  580. package/src/social-links/edit.js +3 -0
  581. package/src/social-links/test/__snapshots__/edit.native.js.snap +16 -16
  582. package/src/social-links/test/__snapshots__/transforms.native.js.snap +31 -0
  583. package/src/social-links/test/transforms.native.js +53 -0
  584. package/src/spacer/controls.native.js +13 -5
  585. package/src/spacer/edit.native.js +45 -6
  586. package/src/spacer/save.native.js +18 -0
  587. package/src/spacer/test/__snapshots__/index.native.js.snap +21 -9
  588. package/src/spacer/test/__snapshots__/transforms.native.js.snap +19 -0
  589. package/src/spacer/test/index.native.js +81 -0
  590. package/src/spacer/test/transforms.native.js +42 -0
  591. package/src/table/edit.js +3 -0
  592. package/src/table/state.js +8 -17
  593. package/src/table-of-contents/edit.js +1 -0
  594. package/src/tag-cloud/edit.js +1 -0
  595. package/src/template-part/edit/import-controls.js +26 -34
  596. package/src/template-part/edit/utils/transformers.js +96 -19
  597. package/src/template-part/index.php +7 -6
  598. package/src/text-columns/edit.js +1 -6
  599. package/src/text-columns/save.js +1 -6
  600. package/src/verse/test/__snapshots__/edit.native.js.snap +2 -2
  601. package/src/verse/test/__snapshots__/transforms.native.js.snap +25 -0
  602. package/src/verse/test/transforms.native.js +42 -0
  603. package/src/video/edit-common-settings.js +5 -0
  604. package/src/video/test/__snapshots__/transforms.native.js.snap +41 -0
  605. package/src/video/test/transforms.native.js +48 -0
  606. package/tsconfig.json +2 -1
  607. package/tsconfig.tsbuildinfo +1 -1
@@ -9,18 +9,17 @@
9
9
  * Build an array with CSS classes and inline styles defining the colors
10
10
  * which will be applied to the navigation markup in the front-end.
11
11
  *
12
- * @param array $context Navigation block context.
13
- * @param array $attributes Block attributes.
12
+ * @param array $context Navigation block context.
13
+ * @param array $attributes Block attributes.
14
+ * @param bool $is_sub_menu Whether the block is a sub-menu.
14
15
  * @return array Colors CSS classes and inline styles.
15
16
  */
16
- function block_core_navigation_submenu_build_css_colors( $context, $attributes ) {
17
+ function block_core_navigation_submenu_build_css_colors( $context, $attributes, $is_sub_menu = false ) {
17
18
  $colors = array(
18
19
  'css_classes' => array(),
19
20
  'inline_styles' => '',
20
21
  );
21
22
 
22
- $is_sub_menu = isset( $attributes['isTopLevelItem'] ) ? ( ! $attributes['isTopLevelItem'] ) : false;
23
-
24
23
  // Text color.
25
24
  $named_text_color = null;
26
25
  $custom_text_color = null;
@@ -250,6 +249,15 @@ function render_block_core_navigation_submenu( $attributes, $content, $block ) {
250
249
  }
251
250
 
252
251
  if ( $has_submenu ) {
252
+ $colors = block_core_navigation_submenu_build_css_colors( $block->context, $attributes, $has_submenu );
253
+ $classes = array_merge(
254
+ array( 'wp-block-navigation__submenu-container' ),
255
+ $colors['css_classes']
256
+ );
257
+ $css_classes = trim( implode( ' ', $classes ) );
258
+
259
+ $style_attribute = $colors['inline_styles'];
260
+
253
261
  $inner_blocks_html = '';
254
262
  foreach ( $block->inner_blocks as $inner_block ) {
255
263
  $inner_blocks_html .= $inner_block->render();
@@ -263,10 +271,19 @@ function render_block_core_navigation_submenu( $attributes, $content, $block ) {
263
271
  $html = $tag_processor->get_updated_html();
264
272
  }
265
273
 
274
+ $wrapper_attributes = get_block_wrapper_attributes(
275
+ array(
276
+ 'class' => $css_classes,
277
+ 'style' => $style_attribute,
278
+ )
279
+ );
280
+
266
281
  $html .= sprintf(
267
- '<ul class="wp-block-navigation__submenu-container">%s</ul>',
282
+ '<ul %s>%s</ul>',
283
+ $wrapper_attributes,
268
284
  $inner_blocks_html
269
285
  );
286
+
270
287
  }
271
288
 
272
289
  $html .= '</li>';
@@ -0,0 +1,19 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Page Break block transforms to Columns block 1`] = `
4
+ "<!-- wp:columns -->
5
+ <div class="wp-block-columns"><!-- wp:column {"width":"100%"} -->
6
+ <div class="wp-block-column" style="flex-basis:100%"><!-- wp:nextpage -->
7
+ <!--nextpage-->
8
+ <!-- /wp:nextpage --></div>
9
+ <!-- /wp:column --></div>
10
+ <!-- /wp:columns -->"
11
+ `;
12
+
13
+ exports[`Page Break block transforms to Group block 1`] = `
14
+ "<!-- wp:group {"layout":{"type":"constrained"}} -->
15
+ <div class="wp-block-group"><!-- wp:nextpage -->
16
+ <!--nextpage-->
17
+ <!-- /wp:nextpage --></div>
18
+ <!-- /wp:group -->"
19
+ `;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import {
5
+ getEditorHtml,
6
+ initializeEditor,
7
+ setupCoreBlocks,
8
+ transformBlock,
9
+ getBlockTransformOptions,
10
+ } from 'test/helpers';
11
+
12
+ const block = 'Page Break';
13
+ const initialHtml = `
14
+ <!-- wp:nextpage -->
15
+ <!--nextpage-->
16
+ <!-- /wp:nextpage -->`;
17
+
18
+ const transformsWithInnerBlocks = [ 'Columns', 'Group' ];
19
+ const blockTransforms = [ ...transformsWithInnerBlocks ];
20
+
21
+ setupCoreBlocks();
22
+
23
+ describe( `${ block } block transforms`, () => {
24
+ test.each( blockTransforms )( 'to %s block', async ( blockTransform ) => {
25
+ const screen = await initializeEditor( { initialHtml } );
26
+ const newBlock = await transformBlock( screen, block, blockTransform, {
27
+ hasInnerBlocks:
28
+ transformsWithInnerBlocks.includes( blockTransform ),
29
+ } );
30
+ expect( newBlock ).toBeVisible();
31
+ expect( getEditorHtml() ).toMatchSnapshot();
32
+ } );
33
+
34
+ it( 'matches expected transformation options', async () => {
35
+ const screen = await initializeEditor( { initialHtml } );
36
+ const transformOptions = await getBlockTransformOptions(
37
+ screen,
38
+ block
39
+ );
40
+ expect( transformOptions ).toHaveLength( blockTransforms.length );
41
+ } );
42
+ } );
@@ -0,0 +1,38 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { Button, Modal } from '@wordpress/components';
5
+ import { __ } from '@wordpress/i18n';
6
+
7
+ export const convertDescription = __(
8
+ 'This menu is automatically kept in sync with pages on your site. You can manage the menu yourself by clicking "Edit" below.'
9
+ );
10
+
11
+ export function ConvertToLinksModal( { onClick, onClose, disabled } ) {
12
+ return (
13
+ <Modal
14
+ onRequestClose={ onClose }
15
+ title={ __( 'Edit this menu' ) }
16
+ className={ 'wp-block-page-list-modal' }
17
+ aria={ {
18
+ describedby: 'wp-block-page-list-modal__description',
19
+ } }
20
+ >
21
+ <p id={ 'wp-block-page-list-modal__description' }>
22
+ { convertDescription }
23
+ </p>
24
+ <div className="wp-block-page-list-modal-buttons">
25
+ <Button variant="tertiary" onClick={ onClose }>
26
+ { __( 'Cancel' ) }
27
+ </Button>
28
+ <Button
29
+ variant="primary"
30
+ disabled={ disabled }
31
+ onClick={ onClick }
32
+ >
33
+ { __( 'Edit' ) }
34
+ </Button>
35
+ </div>
36
+ </Modal>
37
+ );
38
+ }
@@ -23,27 +23,25 @@ import {
23
23
  Notice,
24
24
  ComboboxControl,
25
25
  Button,
26
- Modal,
27
26
  } from '@wordpress/components';
28
27
  import { __, sprintf } from '@wordpress/i18n';
29
- import { useMemo, useState, useEffect } from '@wordpress/element';
28
+ import { useMemo, useState, useEffect, useCallback } from '@wordpress/element';
30
29
  import { useEntityRecords } from '@wordpress/core-data';
31
- import { useSelect } from '@wordpress/data';
30
+ import { useSelect, useDispatch } from '@wordpress/data';
32
31
 
33
32
  /**
34
33
  * Internal dependencies
35
34
  */
36
35
  import { useConvertToNavigationLinks } from './use-convert-to-navigation-links';
36
+ import {
37
+ convertDescription,
38
+ ConvertToLinksModal,
39
+ } from './convert-to-links-modal';
37
40
 
38
41
  // We only show the edit option when page count is <= MAX_PAGE_COUNT
39
42
  // Performance of Navigation Links is not good past this value.
40
43
  const MAX_PAGE_COUNT = 100;
41
44
  const NOOP = () => {};
42
-
43
- const convertDescription = __(
44
- 'This menu is automatically kept in sync with pages on your site. You can manage the menu yourself by clicking "Edit" below.'
45
- );
46
-
47
45
  function BlockContent( {
48
46
  blockProps,
49
47
  innerBlocksProps,
@@ -55,7 +53,9 @@ function BlockContent( {
55
53
  if ( ! hasResolvedPages ) {
56
54
  return (
57
55
  <div { ...blockProps }>
58
- <Spinner />
56
+ <div className="wp-block-page-list__loading-indicator-container">
57
+ <Spinner className="wp-block-page-list__loading-indicator" />
58
+ </div>
59
59
  </div>
60
60
  );
61
61
  }
@@ -113,48 +113,6 @@ function BlockContent( {
113
113
  }
114
114
  }
115
115
 
116
- function ConvertToLinksModal( { onClick, disabled } ) {
117
- const [ isOpen, setOpen ] = useState( false );
118
- const openModal = () => setOpen( true );
119
- const closeModal = () => setOpen( false );
120
-
121
- return (
122
- <>
123
- <BlockControls group="other">
124
- <ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>
125
- { __( 'Edit' ) }
126
- </ToolbarButton>
127
- </BlockControls>
128
- { isOpen && (
129
- <Modal
130
- onRequestClose={ closeModal }
131
- title={ __( 'Edit this menu' ) }
132
- className={ 'wp-block-page-list-modal' }
133
- aria={ {
134
- describedby: 'wp-block-page-list-modal__description',
135
- } }
136
- >
137
- <p id={ 'wp-block-page-list-modal__description' }>
138
- { convertDescription }
139
- </p>
140
- <div className="wp-block-page-list-modal-buttons">
141
- <Button variant="tertiary" onClick={ closeModal }>
142
- { __( 'Cancel' ) }
143
- </Button>
144
- <Button
145
- variant="primary"
146
- disabled={ disabled }
147
- onClick={ onClick }
148
- >
149
- { __( 'Edit' ) }
150
- </Button>
151
- </div>
152
- </Modal>
153
- ) }
154
- </>
155
- );
156
- }
157
-
158
116
  export default function PageListEdit( {
159
117
  context,
160
118
  clientId,
@@ -162,6 +120,9 @@ export default function PageListEdit( {
162
120
  setAttributes,
163
121
  } ) {
164
122
  const { parentPageID } = attributes;
123
+ const [ isOpen, setOpen ] = useState( false );
124
+ const openModal = useCallback( () => setOpen( true ), [] );
125
+ const closeModal = () => setOpen( false );
165
126
 
166
127
  const { records: pages, hasResolved: hasResolvedPages } = useEntityRecords(
167
128
  'postType',
@@ -239,7 +200,11 @@ export default function PageListEdit( {
239
200
  const hasChildren = pagesByParentId.has( page.id );
240
201
  const pageProps = {
241
202
  id: page.id,
242
- label: page.title?.rendered,
203
+ label:
204
+ // translators: displayed when a page has an empty title.
205
+ page.title?.rendered?.trim() !== ''
206
+ ? page.title?.rendered
207
+ : __( '(no title)' ),
243
208
  title: page.title?.rendered,
244
209
  link: page.url,
245
210
  hasChildren,
@@ -282,34 +247,69 @@ export default function PageListEdit( {
282
247
  parentPageID,
283
248
  ] );
284
249
 
285
- const innerBlocksProps = useInnerBlocksProps( blockProps, {
286
- allowedBlocks: [ 'core/page-list-item' ],
287
- renderAppender: false,
288
- __unstableDisableDropZone: true,
289
- templateLock: 'all',
290
- onInput: NOOP,
291
- onChange: NOOP,
292
- value: blockList,
293
- } );
294
-
295
- const { isNested } = useSelect(
250
+ const {
251
+ isNested,
252
+ hasSelectedChild,
253
+ parentBlock,
254
+ hasDraggedChild,
255
+ isChildOfNavigation,
256
+ } = useSelect(
296
257
  ( select ) => {
297
- const { getBlockParentsByBlockName } = select( blockEditorStore );
258
+ const {
259
+ getBlockParentsByBlockName,
260
+ hasSelectedInnerBlock,
261
+ getBlockRootClientId,
262
+ hasDraggedInnerBlock,
263
+ } = select( blockEditorStore );
298
264
  const blockParents = getBlockParentsByBlockName(
299
265
  clientId,
300
266
  'core/navigation-submenu',
301
267
  true
302
268
  );
269
+ const navigationBlockParents = getBlockParentsByBlockName(
270
+ clientId,
271
+ 'core/navigation',
272
+ true
273
+ );
303
274
  return {
304
275
  isNested: blockParents.length > 0,
276
+ isChildOfNavigation: navigationBlockParents.length > 0,
277
+ hasSelectedChild: hasSelectedInnerBlock( clientId, true ),
278
+ hasDraggedChild: hasDraggedInnerBlock( clientId, true ),
279
+ parentBlock: getBlockRootClientId( clientId ),
305
280
  };
306
281
  },
307
282
  [ clientId ]
308
283
  );
309
284
 
285
+ const innerBlocksProps = useInnerBlocksProps( blockProps, {
286
+ allowedBlocks: [ 'core/page-list-item' ],
287
+ renderAppender: false,
288
+ __unstableDisableDropZone: true,
289
+ templateLock: isChildOfNavigation ? false : 'all',
290
+ onInput: NOOP,
291
+ onChange: NOOP,
292
+ value: blockList,
293
+ } );
294
+
295
+ const { selectBlock } = useDispatch( blockEditorStore );
296
+
297
+ useEffect( () => {
298
+ if ( hasSelectedChild || hasDraggedChild ) {
299
+ openModal();
300
+ selectBlock( parentBlock );
301
+ }
302
+ }, [
303
+ hasSelectedChild,
304
+ hasDraggedChild,
305
+ parentBlock,
306
+ selectBlock,
307
+ openModal,
308
+ ] );
309
+
310
310
  useEffect( () => {
311
311
  setAttributes( { isNested } );
312
- }, [ isNested ] );
312
+ }, [ isNested, setAttributes ] );
313
313
 
314
314
  return (
315
315
  <>
@@ -344,10 +344,23 @@ export default function PageListEdit( {
344
344
  ) }
345
345
  </InspectorControls>
346
346
  { allowConvertToLinks && (
347
- <ConvertToLinksModal
348
- disabled={ ! hasResolvedPages }
349
- onClick={ convertToNavigationLinks }
350
- />
347
+ <>
348
+ <BlockControls group="other">
349
+ <ToolbarButton
350
+ title={ __( 'Edit' ) }
351
+ onClick={ openModal }
352
+ >
353
+ { __( 'Edit' ) }
354
+ </ToolbarButton>
355
+ </BlockControls>
356
+ { isOpen && (
357
+ <ConvertToLinksModal
358
+ onClick={ convertToNavigationLinks }
359
+ onClose={ closeModal }
360
+ disabled={ ! hasResolvedPages }
361
+ />
362
+ ) }
363
+ </>
351
364
  ) }
352
365
  <BlockContent
353
366
  blockProps={ blockProps }
@@ -61,3 +61,9 @@
61
61
  .wp-block-page-list .components-notice {
62
62
  margin-left: 0;
63
63
  }
64
+
65
+ // Space spinner to give it breathing
66
+ // room when block is selected and has focus outline.
67
+ .wp-block-page-list__loading-indicator-container {
68
+ padding: $grid-unit-10 $grid-unit-15;
69
+ }
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import classnames from 'classnames';
5
-
6
5
  /**
7
6
  * WordPress dependencies
8
7
  */
@@ -36,7 +35,7 @@ function useFrontPageId() {
36
35
  }
37
36
 
38
37
  export default function PageListItemEdit( { context, attributes } ) {
39
- const { id, label, link, hasChildren } = attributes;
38
+ const { id, label, link, hasChildren, title } = attributes;
40
39
  const isNavigationChild = 'showSubmenuIcon' in context;
41
40
  const frontPageId = useFrontPageId();
42
41
 
@@ -81,7 +80,7 @@ export default function PageListItemEdit( { context, attributes } ) {
81
80
  } ) }
82
81
  href={ link }
83
82
  >
84
- { decodeEntities( label ) }
83
+ { decodeEntities( title ) }
85
84
  </a>
86
85
  ) }
87
86
  { hasChildren && (
@@ -110,6 +110,7 @@ function ParagraphBlock( {
110
110
  panelId={ clientId }
111
111
  >
112
112
  <ToggleControl
113
+ __nextHasNoMarginBottom
113
114
  label={ __( 'Drop cap' ) }
114
115
  checked={ !! dropCap }
115
116
  onChange={ () =>
@@ -0,0 +1,59 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Paragraph block transforms to Columns block 1`] = `
4
+ "<!-- wp:columns -->
5
+ <div class="wp-block-columns"><!-- wp:column {"width":"100%"} -->
6
+ <div class="wp-block-column" style="flex-basis:100%"><!-- wp:paragraph -->
7
+ <p>Example text</p>
8
+ <!-- /wp:paragraph --></div>
9
+ <!-- /wp:column --></div>
10
+ <!-- /wp:columns -->"
11
+ `;
12
+
13
+ exports[`Paragraph block transforms to Group block 1`] = `
14
+ "<!-- wp:group {"layout":{"type":"constrained"}} -->
15
+ <div class="wp-block-group"><!-- wp:paragraph -->
16
+ <p>Example text</p>
17
+ <!-- /wp:paragraph --></div>
18
+ <!-- /wp:group -->"
19
+ `;
20
+
21
+ exports[`Paragraph block transforms to Heading block 1`] = `
22
+ "<!-- wp:heading -->
23
+ <h2 class="wp-block-heading">Example text</h2>
24
+ <!-- /wp:heading -->"
25
+ `;
26
+
27
+ exports[`Paragraph block transforms to List block 1`] = `
28
+ "<!-- wp:list -->
29
+ <ul><!-- wp:list-item -->
30
+ <li>Example text</li>
31
+ <!-- /wp:list-item --></ul>
32
+ <!-- /wp:list -->"
33
+ `;
34
+
35
+ exports[`Paragraph block transforms to Preformatted block 1`] = `
36
+ "<!-- wp:preformatted -->
37
+ <pre class="wp-block-preformatted">Example text</pre>
38
+ <!-- /wp:preformatted -->"
39
+ `;
40
+
41
+ exports[`Paragraph block transforms to Pullquote block 1`] = `
42
+ "<!-- wp:pullquote -->
43
+ <figure class="wp-block-pullquote"><blockquote><p>Example text</p></blockquote></figure>
44
+ <!-- /wp:pullquote -->"
45
+ `;
46
+
47
+ exports[`Paragraph block transforms to Quote block 1`] = `
48
+ "<!-- wp:quote -->
49
+ <blockquote class="wp-block-quote"><!-- wp:paragraph -->
50
+ <p>Example text</p>
51
+ <!-- /wp:paragraph --></blockquote>
52
+ <!-- /wp:quote -->"
53
+ `;
54
+
55
+ exports[`Paragraph block transforms to Verse block 1`] = `
56
+ "<!-- wp:verse -->
57
+ <pre class="wp-block-verse">Example text</pre>
58
+ <!-- /wp:verse -->"
59
+ `;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import {
5
+ getEditorHtml,
6
+ initializeEditor,
7
+ setupCoreBlocks,
8
+ transformBlock,
9
+ getBlockTransformOptions,
10
+ } from 'test/helpers';
11
+
12
+ const block = 'Paragraph';
13
+ const initialHtml = `
14
+ <!-- wp:paragraph -->
15
+ <p>Example text</p>
16
+ <!-- /wp:paragraph -->`;
17
+
18
+ // NOTE: Paragraph block can be transformed to Buttons block in web,
19
+ // however this transform is not supported in the native version.
20
+ const transformsWithInnerBlocks = [ 'List', 'Quote', 'Columns', 'Group' ];
21
+ const blockTransforms = [
22
+ 'Heading',
23
+ 'Preformatted',
24
+ 'Pullquote',
25
+ 'Verse',
26
+ ...transformsWithInnerBlocks,
27
+ ];
28
+
29
+ setupCoreBlocks();
30
+
31
+ describe( `${ block } block transforms`, () => {
32
+ test.each( blockTransforms )( 'to %s block', async ( blockTransform ) => {
33
+ const screen = await initializeEditor( { initialHtml } );
34
+ const newBlock = await transformBlock( screen, block, blockTransform, {
35
+ hasInnerBlocks:
36
+ transformsWithInnerBlocks.includes( blockTransform ),
37
+ } );
38
+ expect( newBlock ).toBeVisible();
39
+ expect( getEditorHtml() ).toMatchSnapshot();
40
+ } );
41
+
42
+ it( 'matches expected transformation options', async () => {
43
+ const screen = await initializeEditor( { initialHtml } );
44
+ const transformOptions = await getBlockTransformOptions(
45
+ screen,
46
+ block
47
+ );
48
+ expect( transformOptions ).toHaveLength( blockTransforms.length );
49
+ } );
50
+ } );
@@ -120,6 +120,7 @@ function PostAuthorEdit( {
120
120
  />
121
121
  ) ) }
122
122
  <ToggleControl
123
+ __nextHasNoMarginBottom
123
124
  label={ __( 'Show avatar' ) }
124
125
  checked={ showAvatar }
125
126
  onChange={ () =>
@@ -140,6 +141,7 @@ function PostAuthorEdit( {
140
141
  />
141
142
  ) }
142
143
  <ToggleControl
144
+ __nextHasNoMarginBottom
143
145
  label={ __( 'Show bio' ) }
144
146
  checked={ showBio }
145
147
  onChange={ () =>
@@ -147,12 +149,14 @@ function PostAuthorEdit( {
147
149
  }
148
150
  />
149
151
  <ToggleControl
152
+ __nextHasNoMarginBottom
150
153
  label={ __( 'Link author name to author page' ) }
151
154
  checked={ isLink }
152
155
  onChange={ () => setAttributes( { isLink: ! isLink } ) }
153
156
  />
154
157
  { isLink && (
155
158
  <ToggleControl
159
+ __nextHasNoMarginBottom
156
160
  label={ __( 'Open in new tab' ) }
157
161
  onChange={ ( value ) =>
158
162
  setAttributes( {
@@ -71,12 +71,14 @@ function PostAuthorNameEdit( {
71
71
  <InspectorControls>
72
72
  <PanelBody title={ __( 'Link settings' ) }>
73
73
  <ToggleControl
74
+ __nextHasNoMarginBottom
74
75
  label={ __( 'Link to author archive' ) }
75
76
  onChange={ () => setAttributes( { isLink: ! isLink } ) }
76
77
  checked={ isLink }
77
78
  />
78
79
  { isLink && (
79
80
  <ToggleControl
81
+ __nextHasNoMarginBottom
80
82
  label={ __( 'Open in new tab' ) }
81
83
  onChange={ ( value ) =>
82
84
  setAttributes( {
@@ -58,8 +58,12 @@ function EditableContent( { context = {} } ) {
58
58
 
59
59
  function Content( props ) {
60
60
  const { context: { queryId, postType, postId } = {} } = props;
61
- const isDescendentOfQueryLoop = Number.isFinite( queryId );
62
61
  const userCanEdit = useCanEditEntity( 'postType', postType, postId );
62
+ if ( userCanEdit === undefined ) {
63
+ return null;
64
+ }
65
+
66
+ const isDescendentOfQueryLoop = Number.isFinite( queryId );
63
67
  const isEditable = userCanEdit && ! isDescendentOfQueryLoop;
64
68
 
65
69
  return isEditable ? (
@@ -150,6 +150,7 @@ export default function PostDateEdit( {
150
150
  }
151
151
  />
152
152
  <ToggleControl
153
+ __nextHasNoMarginBottom
153
154
  label={
154
155
  postType?.labels.singular_name
155
156
  ? sprintf(
@@ -163,6 +164,7 @@ export default function PostDateEdit( {
163
164
  checked={ isLink }
164
165
  />
165
166
  <ToggleControl
167
+ __nextHasNoMarginBottom
166
168
  label={ __( 'Display last modified date' ) }
167
169
  onChange={ ( value ) =>
168
170
  setAttributes( {
@@ -194,6 +194,7 @@ export default function PostExcerptEditor( {
194
194
  <InspectorControls>
195
195
  <PanelBody title={ __( 'Settings' ) }>
196
196
  <ToggleControl
197
+ __nextHasNoMarginBottom
197
198
  label={ __( 'Show link on new line' ) }
198
199
  checked={ showMoreOnNewLine }
199
200
  onChange={ ( newShowMoreOnNewLine ) =>
@@ -1,5 +1,5 @@
1
1
  .wp-block-post-excerpt {
2
2
  .wp-block-post-excerpt__excerpt.is-inline {
3
- display: inline-block;
3
+ display: inline;
4
4
  }
5
5
  }
@@ -84,8 +84,7 @@ add_action( 'init', 'register_block_core_post_excerpt' );
84
84
  * Returns 100 because 100 is the max length in the setting.
85
85
  */
86
86
  if ( is_admin() ||
87
- defined( 'REST_REQUEST' ) ||
88
- 'REST_REQUEST' ) {
87
+ defined( 'REST_REQUEST' ) && REST_REQUEST ) {
89
88
  add_filter(
90
89
  'excerpt_length',
91
90
  function() {
@@ -96,10 +96,6 @@ const DimensionControls = ( {
96
96
  label: __( 'Square' ),
97
97
  value: '1',
98
98
  },
99
- {
100
- label: __( '16:10' ),
101
- value: '16/10',
102
- },
103
99
  {
104
100
  label: __( '16:9' ),
105
101
  value: '16/9',
@@ -112,10 +108,6 @@ const DimensionControls = ( {
112
108
  label: __( '3:2' ),
113
109
  value: '3/2',
114
110
  },
115
- {
116
- label: __( '10:16' ),
117
- value: '10/16',
118
- },
119
111
  {
120
112
  label: __( '9:16' ),
121
113
  value: '9/16',