@wordpress/block-library 10.5.2-next.v.202608281122.0 → 11.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 (588) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/build/audio/edit.cjs +5 -5
  3. package/build/audio/edit.cjs.map +2 -2
  4. package/build/audio/index.cjs +0 -37
  5. package/build/audio/index.cjs.map +3 -3
  6. package/build/button/index.cjs +0 -34
  7. package/build/button/index.cjs.map +3 -3
  8. package/build/code/index.cjs +0 -17
  9. package/build/code/index.cjs.map +3 -3
  10. package/build/comment-template/edit.cjs.map +1 -1
  11. package/build/cover/index.cjs +0 -38
  12. package/build/cover/index.cjs.map +3 -3
  13. package/build/details/index.cjs +0 -17
  14. package/build/details/index.cjs.map +3 -3
  15. package/build/file/index.cjs +0 -43
  16. package/build/file/index.cjs.map +3 -3
  17. package/build/footnotes/format.cjs +1 -1
  18. package/build/footnotes/format.cjs.map +2 -2
  19. package/build/gallery/dynamic-gallery.cjs +22 -12
  20. package/build/gallery/dynamic-gallery.cjs.map +2 -2
  21. package/build/heading/index.cjs +0 -16
  22. package/build/heading/index.cjs.map +3 -3
  23. package/build/image/image.cjs +7 -5
  24. package/build/image/image.cjs.map +2 -2
  25. package/build/image/index.cjs +0 -81
  26. package/build/image/index.cjs.map +3 -3
  27. package/build/image/use-open-image-media-editor-modal.cjs +81 -14
  28. package/build/image/use-open-image-media-editor-modal.cjs.map +2 -2
  29. package/build/index.cjs +0 -10
  30. package/build/index.cjs.map +2 -2
  31. package/build/latest-posts/edit.cjs.map +1 -1
  32. package/build/list-item/edit.cjs +14 -11
  33. package/build/list-item/edit.cjs.map +2 -2
  34. package/build/list-item/hooks/index.cjs +6 -9
  35. package/build/list-item/hooks/index.cjs.map +2 -2
  36. package/build/list-item/hooks/use-enter.cjs +62 -67
  37. package/build/list-item/hooks/use-enter.cjs.map +3 -3
  38. package/build/list-item/hooks/use-merge.cjs +26 -44
  39. package/build/list-item/hooks/use-merge.cjs.map +3 -3
  40. package/build/list-item/hooks/use-multi-select-tab.cjs +80 -0
  41. package/build/list-item/hooks/use-multi-select-tab.cjs.map +7 -0
  42. package/build/list-item/hooks/use-tab.cjs +65 -0
  43. package/build/list-item/hooks/use-tab.cjs.map +7 -0
  44. package/build/list-item/index.cjs +0 -17
  45. package/build/list-item/index.cjs.map +3 -3
  46. package/build/list-item/utils.cjs +169 -0
  47. package/build/list-item/utils.cjs.map +7 -0
  48. package/build/math/block.json +3 -0
  49. package/build/media-text/index.cjs +0 -50
  50. package/build/media-text/index.cjs.map +3 -3
  51. package/build/media-text/media-container.cjs +16 -11
  52. package/build/media-text/media-container.cjs.map +2 -2
  53. package/build/more/index.cjs +0 -18
  54. package/build/more/index.cjs.map +3 -3
  55. package/build/navigation/constants.cjs +1 -1
  56. package/build/navigation/constants.cjs.map +1 -1
  57. package/build/navigation-link/block.json +1 -1
  58. package/build/navigation-link/deprecated.cjs +69 -0
  59. package/build/navigation-link/deprecated.cjs.map +7 -0
  60. package/build/navigation-link/index.cjs +6 -74
  61. package/build/navigation-link/index.cjs.map +4 -4
  62. package/build/{form-submit-button/init.cjs → navigation-link/variations.cjs} +23 -8
  63. package/build/navigation-link/variations.cjs.map +7 -0
  64. package/build/navigation-submenu/index.cjs +0 -32
  65. package/build/navigation-submenu/index.cjs.map +3 -3
  66. package/build/paragraph/index.cjs +0 -17
  67. package/build/paragraph/index.cjs.map +3 -3
  68. package/build/paragraph/use-enter.cjs +8 -4
  69. package/build/paragraph/use-enter.cjs.map +2 -2
  70. package/build/post-template/edit.cjs +3 -1
  71. package/build/post-template/edit.cjs.map +2 -2
  72. package/build/preformatted/index.cjs +0 -17
  73. package/build/preformatted/index.cjs.map +3 -3
  74. package/build/pullquote/index.cjs +0 -24
  75. package/build/pullquote/index.cjs.map +3 -3
  76. package/build/query/edit/inspector-controls/enhanced-pagination-control.cjs +13 -5
  77. package/build/query/edit/inspector-controls/enhanced-pagination-control.cjs.map +2 -2
  78. package/build/query/edit/inspector-controls/index.cjs +9 -4
  79. package/build/query/edit/inspector-controls/index.cjs.map +2 -2
  80. package/build/query/edit/query-content.cjs +30 -9
  81. package/build/query/edit/query-content.cjs.map +3 -3
  82. package/build/query/utils.cjs +11 -4
  83. package/build/query/utils.cjs.map +2 -2
  84. package/build/search/edit.cjs +3 -1
  85. package/build/search/edit.cjs.map +2 -2
  86. package/build/search/index.cjs +0 -31
  87. package/build/search/index.cjs.map +3 -3
  88. package/build/site-tagline/edit.cjs +11 -17
  89. package/build/site-tagline/edit.cjs.map +2 -2
  90. package/build/site-title/edit.cjs +12 -18
  91. package/build/site-title/edit.cjs.map +2 -2
  92. package/build/social-link/index.cjs +0 -31
  93. package/build/social-link/index.cjs.map +3 -3
  94. package/build/verse/index.cjs +0 -17
  95. package/build/verse/index.cjs.map +3 -3
  96. package/build/video/index.cjs +0 -40
  97. package/build/video/index.cjs.map +3 -3
  98. package/build/video/tracks-editor.cjs +2 -3
  99. package/build/video/tracks-editor.cjs.map +3 -3
  100. package/build-module/audio/edit.mjs +5 -5
  101. package/build-module/audio/edit.mjs.map +2 -2
  102. package/build-module/audio/index.mjs +0 -37
  103. package/build-module/audio/index.mjs.map +2 -2
  104. package/build-module/button/index.mjs +0 -34
  105. package/build-module/button/index.mjs.map +2 -2
  106. package/build-module/code/index.mjs +0 -17
  107. package/build-module/code/index.mjs.map +2 -2
  108. package/build-module/comment-template/edit.mjs.map +1 -1
  109. package/build-module/cover/index.mjs +0 -38
  110. package/build-module/cover/index.mjs.map +2 -2
  111. package/build-module/details/index.mjs +0 -17
  112. package/build-module/details/index.mjs.map +2 -2
  113. package/build-module/file/index.mjs +1 -44
  114. package/build-module/file/index.mjs.map +2 -2
  115. package/build-module/footnotes/format.mjs +1 -1
  116. package/build-module/footnotes/format.mjs.map +2 -2
  117. package/build-module/gallery/dynamic-gallery.mjs +23 -13
  118. package/build-module/gallery/dynamic-gallery.mjs.map +2 -2
  119. package/build-module/heading/index.mjs +1 -21
  120. package/build-module/heading/index.mjs.map +2 -2
  121. package/build-module/image/image.mjs +7 -5
  122. package/build-module/image/image.mjs.map +2 -2
  123. package/build-module/image/index.mjs +0 -81
  124. package/build-module/image/index.mjs.map +2 -2
  125. package/build-module/image/use-open-image-media-editor-modal.mjs +84 -14
  126. package/build-module/image/use-open-image-media-editor-modal.mjs.map +2 -2
  127. package/build-module/index.mjs +0 -10
  128. package/build-module/index.mjs.map +2 -2
  129. package/build-module/latest-posts/edit.mjs.map +1 -1
  130. package/build-module/list-item/edit.mjs +20 -18
  131. package/build-module/list-item/edit.mjs.map +2 -2
  132. package/build-module/list-item/hooks/index.mjs +8 -10
  133. package/build-module/list-item/hooks/index.mjs.map +2 -2
  134. package/build-module/list-item/hooks/use-enter.mjs +63 -58
  135. package/build-module/list-item/hooks/use-enter.mjs.map +2 -2
  136. package/build-module/list-item/hooks/use-merge.mjs +27 -35
  137. package/build-module/list-item/hooks/use-merge.mjs.map +2 -2
  138. package/build-module/list-item/hooks/use-multi-select-tab.mjs +59 -0
  139. package/build-module/list-item/hooks/use-multi-select-tab.mjs.map +7 -0
  140. package/build-module/list-item/hooks/use-tab.mjs +44 -0
  141. package/build-module/list-item/hooks/use-tab.mjs.map +7 -0
  142. package/build-module/list-item/index.mjs +0 -17
  143. package/build-module/list-item/index.mjs.map +2 -2
  144. package/build-module/list-item/utils.mjs +140 -0
  145. package/build-module/list-item/utils.mjs.map +7 -0
  146. package/build-module/math/block.json +3 -0
  147. package/build-module/media-text/index.mjs +0 -50
  148. package/build-module/media-text/index.mjs.map +2 -2
  149. package/build-module/media-text/media-container.mjs +17 -12
  150. package/build-module/media-text/media-container.mjs.map +2 -2
  151. package/build-module/more/index.mjs +0 -18
  152. package/build-module/more/index.mjs.map +2 -2
  153. package/build-module/navigation/constants.mjs +1 -1
  154. package/build-module/navigation/constants.mjs.map +1 -1
  155. package/build-module/navigation-link/block.json +1 -1
  156. package/build-module/navigation-link/deprecated.mjs +48 -0
  157. package/build-module/navigation-link/deprecated.mjs.map +7 -0
  158. package/build-module/navigation-link/index.mjs +7 -75
  159. package/build-module/navigation-link/index.mjs.map +3 -3
  160. package/build-module/navigation-link/variations.mjs +22 -0
  161. package/build-module/navigation-link/variations.mjs.map +7 -0
  162. package/build-module/navigation-submenu/index.mjs +1 -33
  163. package/build-module/navigation-submenu/index.mjs.map +2 -2
  164. package/build-module/paragraph/index.mjs +0 -17
  165. package/build-module/paragraph/index.mjs.map +2 -2
  166. package/build-module/paragraph/use-enter.mjs +8 -4
  167. package/build-module/paragraph/use-enter.mjs.map +2 -2
  168. package/build-module/post-template/edit.mjs +3 -1
  169. package/build-module/post-template/edit.mjs.map +2 -2
  170. package/build-module/preformatted/index.mjs +0 -17
  171. package/build-module/preformatted/index.mjs.map +2 -2
  172. package/build-module/pullquote/index.mjs +0 -24
  173. package/build-module/pullquote/index.mjs.map +2 -2
  174. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.mjs +14 -6
  175. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.mjs.map +2 -2
  176. package/build-module/query/edit/inspector-controls/index.mjs +9 -4
  177. package/build-module/query/edit/inspector-controls/index.mjs.map +2 -2
  178. package/build-module/query/edit/query-content.mjs +32 -11
  179. package/build-module/query/edit/query-content.mjs.map +2 -2
  180. package/build-module/query/utils.mjs +10 -7
  181. package/build-module/query/utils.mjs.map +2 -2
  182. package/build-module/search/edit.mjs +4 -2
  183. package/build-module/search/edit.mjs.map +2 -2
  184. package/build-module/search/index.mjs +0 -31
  185. package/build-module/search/index.mjs.map +2 -2
  186. package/build-module/site-tagline/edit.mjs +13 -19
  187. package/build-module/site-tagline/edit.mjs.map +2 -2
  188. package/build-module/site-title/edit.mjs +14 -20
  189. package/build-module/site-title/edit.mjs.map +2 -2
  190. package/build-module/social-link/index.mjs +0 -31
  191. package/build-module/social-link/index.mjs.map +2 -2
  192. package/build-module/verse/index.mjs +0 -17
  193. package/build-module/verse/index.mjs.map +2 -2
  194. package/build-module/video/index.mjs +0 -40
  195. package/build-module/video/index.mjs.map +2 -2
  196. package/build-module/video/tracks-editor.mjs +3 -5
  197. package/build-module/video/tracks-editor.mjs.map +2 -2
  198. package/build-style/columns/style-rtl.css +1 -1
  199. package/build-style/columns/style.css +1 -1
  200. package/build-style/comment-template/style-rtl.css +0 -1
  201. package/build-style/comment-template/style.css +0 -1
  202. package/build-style/cover/style-rtl.css +1 -2
  203. package/build-style/cover/style.css +1 -2
  204. package/build-style/editor-rtl.css +20 -81
  205. package/build-style/editor.css +20 -81
  206. package/build-style/gallery/style-rtl.css +2 -4
  207. package/build-style/gallery/style.css +2 -4
  208. package/build-style/group/theme-rtl.css +1 -1
  209. package/build-style/group/theme.css +1 -1
  210. package/build-style/heading/style-rtl.css +1 -1
  211. package/build-style/heading/style.css +1 -1
  212. package/build-style/icon/style-rtl.css +3 -0
  213. package/build-style/icon/style.css +3 -0
  214. package/build-style/image/editor-rtl.css +0 -1
  215. package/build-style/image/editor.css +0 -1
  216. package/build-style/list/style-rtl.css +1 -1
  217. package/build-style/list/style.css +1 -1
  218. package/build-style/media-text/style-rtl.css +2 -3
  219. package/build-style/media-text/style.css +2 -3
  220. package/build-style/navigation/editor-rtl.css +8 -0
  221. package/build-style/navigation/editor.css +8 -0
  222. package/build-style/paragraph/style-rtl.css +1 -1
  223. package/build-style/paragraph/style.css +1 -1
  224. package/build-style/playlist/style-rtl.css +1 -2
  225. package/build-style/playlist/style.css +1 -2
  226. package/build-style/playlist-track/style-rtl.css +1 -2
  227. package/build-style/playlist-track/style.css +1 -2
  228. package/build-style/preformatted/style-rtl.css +1 -1
  229. package/build-style/preformatted/style.css +1 -1
  230. package/build-style/query/editor-rtl.css +5 -15
  231. package/build-style/query/editor.css +5 -15
  232. package/build-style/read-more/style-rtl.css +0 -1
  233. package/build-style/read-more/style.css +0 -1
  234. package/build-style/reset-rtl.css +1 -3
  235. package/build-style/reset.css +1 -3
  236. package/build-style/search/style-rtl.css +1 -3
  237. package/build-style/search/style.css +1 -3
  238. package/build-style/site-logo/editor-rtl.css +1 -2
  239. package/build-style/site-logo/editor.css +1 -2
  240. package/build-style/style-rtl.css +18 -77
  241. package/build-style/style.css +18 -77
  242. package/build-style/tab-list/style-rtl.css +1 -3
  243. package/build-style/tab-list/style.css +1 -3
  244. package/build-style/template-part/editor-rtl.css +4 -8
  245. package/build-style/template-part/editor.css +4 -8
  246. package/build-style/template-part/theme-rtl.css +1 -1
  247. package/build-style/template-part/theme.css +1 -1
  248. package/build-style/theme-rtl.css +2 -2
  249. package/build-style/theme.css +2 -2
  250. package/build-style/video/style-rtl.css +1 -2
  251. package/build-style/video/style.css +1 -2
  252. package/build-types/navigation-link/deprecated.d.ts +48 -0
  253. package/build-types/navigation-link/deprecated.d.ts.map +1 -0
  254. package/package.json +43 -43
  255. package/src/accordion/index.php +2 -2
  256. package/src/accordion-item/index.php +1 -1
  257. package/src/audio/edit.jsx +6 -7
  258. package/src/audio/index.js +0 -37
  259. package/src/breadcrumbs/index.php +4 -4
  260. package/src/button/index.js +0 -34
  261. package/src/button/style.scss +16 -15
  262. package/src/button/test/{get-experimental-label.js → get-experimental-label.jsdom.test.js} +1 -0
  263. package/src/button/test/get-updated-link-attributes.js +1 -0
  264. package/src/button/test/utils.js +1 -0
  265. package/src/categories/index.php +4 -0
  266. package/src/code/index.js +0 -18
  267. package/src/code/test/utils.js +1 -0
  268. package/src/columns/style.scss +2 -1
  269. package/src/columns/test/{transforms.js → transforms.jsdom.test.js} +1 -0
  270. package/src/columns/test/utils.js +1 -0
  271. package/src/comment-template/edit.jsx +1 -1
  272. package/src/comment-template/index.php +2 -2
  273. package/src/comment-template/test/index.js +1 -0
  274. package/src/common.scss +51 -50
  275. package/src/cover/README.md +37 -0
  276. package/src/cover/index.js +0 -39
  277. package/src/cover/style.scss +3 -3
  278. package/src/cover/test/{edit.js → edit.jsdom.test.js} +18 -17
  279. package/src/cover/test/{transforms.js → transforms.jsdom.test.js} +1 -0
  280. package/src/details/index.js +0 -18
  281. package/src/editor.scss +0 -2
  282. package/src/embed/editor.scss +1 -0
  283. package/src/embed/test/{index.js → index.jsdom.test.js} +5 -1
  284. package/src/file/index.js +1 -43
  285. package/src/footnotes/format.jsx +5 -1
  286. package/src/gallery/dynamic-gallery.jsx +31 -4
  287. package/src/gallery/test/dynamic-source.js +1 -0
  288. package/src/gallery/test/{edit.js → edit.jsdom.test.js} +4 -0
  289. package/src/gallery/test/responsive-styles.js +1 -0
  290. package/src/gallery/test/shared.js +1 -0
  291. package/src/gallery/test/{transforms.js → transforms.jsdom.test.js} +1 -0
  292. package/src/gallery/test/{use-get-new-images.jsx → use-get-new-images.jsdom.test.jsx} +1 -0
  293. package/src/gallery/test/variations.js +1 -0
  294. package/src/group/test/{placeholder.jsx → placeholder.jsdom.test.jsx} +1 -0
  295. package/src/group/theme.scss +1 -1
  296. package/src/heading/index.js +1 -22
  297. package/src/heading/index.php +1 -1
  298. package/src/heading/style.scss +1 -1
  299. package/src/heading/test/shared.js +1 -0
  300. package/src/home-link/index.php +2 -2
  301. package/src/html/test/{index.js → index.jsdom.test.js} +9 -0
  302. package/src/html/test/{utils.js → utils.jsdom.test.js} +1 -0
  303. package/src/icon/index.php +18 -6
  304. package/src/icon/style.scss +7 -0
  305. package/src/image/image.jsx +18 -11
  306. package/src/image/index.js +0 -80
  307. package/src/image/test/{transforms.js → transforms.jsdom.test.js} +1 -0
  308. package/src/image/test/{use-open-image-media-editor-modal.js → use-open-image-media-editor-modal.jsdom.test.js} +343 -28
  309. package/src/image/use-open-image-media-editor-modal.js +184 -21
  310. package/src/index.jsx +0 -11
  311. package/src/latest-posts/edit.jsx +1 -1
  312. package/src/latest-posts/test/{deprecated.js → deprecated.jsdom.test.js} +1 -0
  313. package/src/list/index.php +1 -1
  314. package/src/list/style.scss +1 -1
  315. package/src/list-item/edit.jsx +20 -20
  316. package/src/list-item/hooks/index.js +2 -3
  317. package/src/list-item/hooks/use-enter.js +82 -70
  318. package/src/list-item/hooks/use-merge.js +28 -36
  319. package/src/list-item/hooks/use-multi-select-tab.js +83 -0
  320. package/src/list-item/hooks/use-tab.js +62 -0
  321. package/src/list-item/index.js +0 -18
  322. package/src/list-item/utils.js +236 -0
  323. package/src/math/README.md +2 -0
  324. package/src/math/block.json +3 -0
  325. package/src/media-text/index.js +0 -50
  326. package/src/media-text/media-container.jsx +22 -12
  327. package/src/media-text/style.scss +2 -1
  328. package/src/media-text/test/image-fill.js +1 -0
  329. package/src/more/index.js +0 -19
  330. package/src/navigation/constants.js +1 -1
  331. package/src/navigation/edit/test/are-blocks-dirty.js +1 -0
  332. package/src/navigation/edit/test/{layout-custom-properties.js → layout-custom-properties.jsdom.test.js} +8 -7
  333. package/src/navigation/edit/test/{navigation-menu-selector.jsx → navigation-menu-selector.jsdom.test.jsx} +23 -14
  334. package/src/navigation/edit/test/{overlay-template-part-selector.jsx → overlay-template-part-selector.jsdom.test.jsx} +22 -20
  335. package/src/navigation/edit/test/{responsive-wrapper.jsx → responsive-wrapper.jsdom.test.jsx} +14 -13
  336. package/src/navigation/edit/test/{use-create-overlay.js → use-create-overlay.jsdom.test.js} +19 -24
  337. package/src/navigation/edit/test/utils.js +1 -0
  338. package/src/navigation/editor.scss +13 -0
  339. package/src/navigation/index.php +14 -14
  340. package/src/navigation/test/{menu-items-to-blocks.js → menu-items-to-blocks.jsdom.test.js} +3 -2
  341. package/src/navigation/test/{use-navigation-menu.js → use-navigation-menu.jsdom.test.js} +7 -4
  342. package/src/navigation/test/{view.js → view.jsdom.test.js} +4 -2
  343. package/src/navigation-link/block.json +1 -1
  344. package/src/navigation-link/deprecated.tsx +58 -0
  345. package/src/navigation-link/{index.jsx → index.js} +5 -77
  346. package/src/navigation-link/index.php +5 -5
  347. package/src/navigation-link/shared/test/{controls.jsx → controls.jsdom.test.jsx} +18 -18
  348. package/src/navigation-link/shared/test/update-attributes.test.js +52 -51
  349. package/src/navigation-link/shared/test/{use-enable-link-status-validation.test.js → use-enable-link-status-validation.jsdom.test.js} +8 -6
  350. package/src/navigation-link/shared/test/{use-entity-binding.js → use-entity-binding.jsdom.test.js} +12 -11
  351. package/src/navigation-link/shared/test/{use-handle-link-change.test.js → use-handle-link-change.jsdom.test.js} +23 -20
  352. package/src/navigation-link/shared/test/{use-link-preview.test.js → use-link-preview.jsdom.test.js} +17 -14
  353. package/src/navigation-link/test/__snapshots__/{hooks.js.snap → hooks.jsdom.test.js.snap} +23 -6
  354. package/src/navigation-link/test/block-labelling.js +1 -0
  355. package/src/navigation-link/test/{hooks.js → hooks.jsdom.test.js} +1 -0
  356. package/src/navigation-link/variations.js +19 -0
  357. package/src/navigation-submenu/index.js +1 -33
  358. package/src/page-list/index.php +10 -10
  359. package/src/page-list/test/{convert-to-navigation-links.js → convert-to-navigation-links.jsdom.test.js} +3 -2
  360. package/src/paragraph/index.js +0 -18
  361. package/src/paragraph/style.scss +1 -1
  362. package/src/paragraph/use-enter.js +13 -6
  363. package/src/pattern/test/index.js +1 -0
  364. package/src/playlist/test/{edit-component.jsx → edit-component.jsdom.test.jsx} +31 -30
  365. package/src/playlist/test/{edit.js → edit.jsdom.test.js} +1 -0
  366. package/src/playlist/test/{transforms.js → transforms.jsdom.test.js} +1 -0
  367. package/src/playlist-track/test/{edit.jsx → edit.jsdom.test.jsx} +20 -19
  368. package/src/post-author/index.php +3 -3
  369. package/src/post-author-biography/index.php +3 -3
  370. package/src/post-author-name/index.php +3 -3
  371. package/src/post-comments-link/index.php +4 -4
  372. package/src/post-date/test/{edit.js → edit.jsdom.test.js} +1 -0
  373. package/src/post-template/edit.jsx +3 -1
  374. package/src/post-time-to-read/index.php +3 -3
  375. package/src/post-title/style.scss +1 -0
  376. package/src/preformatted/index.js +0 -18
  377. package/src/preformatted/style.scss +1 -1
  378. package/src/pullquote/index.js +0 -24
  379. package/src/query/edit/inspector-controls/enhanced-pagination-control.jsx +13 -6
  380. package/src/query/edit/inspector-controls/index.jsx +9 -4
  381. package/src/query/edit/query-content.jsx +31 -8
  382. package/src/query/editor.scss +1 -7
  383. package/src/query/index.php +2 -2
  384. package/src/query/test/{utils.js → utils.jsdom.test.js} +1 -0
  385. package/src/query/utils.js +15 -11
  386. package/src/quote/test/{migrate.js → migrate.jsdom.test.js} +1 -0
  387. package/src/read-more/index.php +1 -1
  388. package/src/search/edit.jsx +12 -2
  389. package/src/search/index.js +0 -30
  390. package/src/search/index.php +1 -1
  391. package/src/separator/test/{edit.jsx → edit.jsdom.test.jsx} +5 -4
  392. package/src/site-logo/index.php +1 -1
  393. package/src/site-tagline/edit.jsx +18 -27
  394. package/src/site-title/edit.jsx +20 -27
  395. package/src/social-link/index.js +0 -32
  396. package/src/social-link/index.php +0 -1
  397. package/src/style.scss +0 -1
  398. package/src/table/editor.scss +1 -0
  399. package/src/table/style.scss +2 -0
  400. package/src/table/test/state.js +1 -0
  401. package/src/table/test/utils.js +1 -0
  402. package/src/table-of-contents/index.php +3 -3
  403. package/src/template-part/theme.scss +1 -1
  404. package/src/utils/test/search-patterns.js +1 -0
  405. package/src/utils/test/{style-state.js → style-state.jsdom.test.js} +1 -0
  406. package/src/utils/test/{waveform-player-dependency.js → waveform-player-dependency.jsdom.test.js} +15 -21
  407. package/src/verse/index.js +0 -18
  408. package/src/verse/style.scss +1 -0
  409. package/src/video/index.js +0 -40
  410. package/src/video/test/variations.js +1 -0
  411. package/src/video/tracks-editor.jsx +4 -5
  412. package/build/form/block.json +0 -65
  413. package/build/form/deprecated.cjs +0 -111
  414. package/build/form/deprecated.cjs.map +0 -7
  415. package/build/form/edit.cjs +0 -180
  416. package/build/form/edit.cjs.map +0 -7
  417. package/build/form/icons.cjs +0 -33
  418. package/build/form/icons.cjs.map +0 -7
  419. package/build/form/index.cjs +0 -118
  420. package/build/form/index.cjs.map +0 -7
  421. package/build/form/init.cjs +0 -28
  422. package/build/form/init.cjs.map +0 -7
  423. package/build/form/save.cjs +0 -40
  424. package/build/form/save.cjs.map +0 -7
  425. package/build/form/utils.cjs +0 -61
  426. package/build/form/utils.cjs.map +0 -7
  427. package/build/form/variations.cjs +0 -152
  428. package/build/form/variations.cjs.map +0 -7
  429. package/build/form/view.cjs +0 -48
  430. package/build/form/view.cjs.map +0 -7
  431. package/build/form-input/block.json +0 -72
  432. package/build/form-input/deprecated.cjs +0 -252
  433. package/build/form-input/deprecated.cjs.map +0 -7
  434. package/build/form-input/edit.cjs +0 -206
  435. package/build/form-input/edit.cjs.map +0 -7
  436. package/build/form-input/icons.cjs +0 -33
  437. package/build/form-input/icons.cjs.map +0 -7
  438. package/build/form-input/index.cjs +0 -63
  439. package/build/form-input/index.cjs.map +0 -7
  440. package/build/form-input/init.cjs +0 -28
  441. package/build/form-input/init.cjs.map +0 -7
  442. package/build/form-input/save.cjs +0 -88
  443. package/build/form-input/save.cjs.map +0 -7
  444. package/build/form-input/variations.cjs +0 -105
  445. package/build/form-input/variations.cjs.map +0 -7
  446. package/build/form-submission-notification/block.json +0 -19
  447. package/build/form-submission-notification/edit.cjs +0 -71
  448. package/build/form-submission-notification/edit.cjs.map +0 -7
  449. package/build/form-submission-notification/index.cjs +0 -73
  450. package/build/form-submission-notification/index.cjs.map +0 -7
  451. package/build/form-submission-notification/init.cjs +0 -28
  452. package/build/form-submission-notification/init.cjs.map +0 -7
  453. package/build/form-submission-notification/save.cjs +0 -54
  454. package/build/form-submission-notification/save.cjs.map +0 -7
  455. package/build/form-submission-notification/variations.cjs +0 -78
  456. package/build/form-submission-notification/variations.cjs.map +0 -7
  457. package/build/form-submit-button/block.json +0 -15
  458. package/build/form-submit-button/edit.cjs +0 -36
  459. package/build/form-submit-button/edit.cjs.map +0 -7
  460. package/build/form-submit-button/index.cjs +0 -75
  461. package/build/form-submit-button/index.cjs.map +0 -7
  462. package/build/form-submit-button/init.cjs.map +0 -7
  463. package/build/form-submit-button/save.cjs +0 -32
  464. package/build/form-submit-button/save.cjs.map +0 -7
  465. package/build/list-item/hooks/use-indent-list-item.cjs +0 -79
  466. package/build/list-item/hooks/use-indent-list-item.cjs.map +0 -7
  467. package/build/list-item/hooks/use-outdent-list-item.cjs +0 -106
  468. package/build/list-item/hooks/use-outdent-list-item.cjs.map +0 -7
  469. package/build/list-item/hooks/use-space.cjs +0 -83
  470. package/build/list-item/hooks/use-space.cjs.map +0 -7
  471. package/build/query/edit/enhanced-pagination-modal.cjs +0 -89
  472. package/build/query/edit/enhanced-pagination-modal.cjs.map +0 -7
  473. package/build-module/form/block.json +0 -65
  474. package/build-module/form/deprecated.mjs +0 -96
  475. package/build-module/form/deprecated.mjs.map +0 -7
  476. package/build-module/form/edit.mjs +0 -170
  477. package/build-module/form/edit.mjs.map +0 -7
  478. package/build-module/form/icons.mjs +0 -8
  479. package/build-module/form/icons.mjs.map +0 -7
  480. package/build-module/form/index.mjs +0 -83
  481. package/build-module/form/index.mjs.map +0 -7
  482. package/build-module/form/init.mjs +0 -7
  483. package/build-module/form/init.mjs.map +0 -7
  484. package/build-module/form/save.mjs +0 -19
  485. package/build-module/form/save.mjs.map +0 -7
  486. package/build-module/form/utils.mjs +0 -35
  487. package/build-module/form/utils.mjs.map +0 -7
  488. package/build-module/form/variations.mjs +0 -134
  489. package/build-module/form/variations.mjs.map +0 -7
  490. package/build-module/form/view.mjs +0 -46
  491. package/build-module/form/view.mjs.map +0 -7
  492. package/build-module/form-input/block.json +0 -72
  493. package/build-module/form-input/deprecated.mjs +0 -226
  494. package/build-module/form-input/deprecated.mjs.map +0 -7
  495. package/build-module/form-input/edit.mjs +0 -186
  496. package/build-module/form-input/edit.mjs.map +0 -7
  497. package/build-module/form-input/icons.mjs +0 -8
  498. package/build-module/form-input/icons.mjs.map +0 -7
  499. package/build-module/form-input/index.mjs +0 -25
  500. package/build-module/form-input/index.mjs.map +0 -7
  501. package/build-module/form-input/init.mjs +0 -7
  502. package/build-module/form-input/init.mjs.map +0 -7
  503. package/build-module/form-input/save.mjs +0 -62
  504. package/build-module/form-input/save.mjs.map +0 -7
  505. package/build-module/form-input/variations.mjs +0 -84
  506. package/build-module/form-input/variations.mjs.map +0 -7
  507. package/build-module/form-submission-notification/block.json +0 -19
  508. package/build-module/form-submission-notification/edit.mjs +0 -45
  509. package/build-module/form-submission-notification/edit.mjs.map +0 -7
  510. package/build-module/form-submission-notification/index.mjs +0 -35
  511. package/build-module/form-submission-notification/index.mjs.map +0 -7
  512. package/build-module/form-submission-notification/init.mjs +0 -7
  513. package/build-module/form-submission-notification/init.mjs.map +0 -7
  514. package/build-module/form-submission-notification/save.mjs +0 -23
  515. package/build-module/form-submission-notification/save.mjs.map +0 -7
  516. package/build-module/form-submission-notification/variations.mjs +0 -57
  517. package/build-module/form-submission-notification/variations.mjs.map +0 -7
  518. package/build-module/form-submit-button/block.json +0 -15
  519. package/build-module/form-submit-button/edit.mjs +0 -15
  520. package/build-module/form-submit-button/edit.mjs.map +0 -7
  521. package/build-module/form-submit-button/index.mjs +0 -37
  522. package/build-module/form-submit-button/index.mjs.map +0 -7
  523. package/build-module/form-submit-button/init.mjs +0 -7
  524. package/build-module/form-submit-button/init.mjs.map +0 -7
  525. package/build-module/form-submit-button/save.mjs +0 -11
  526. package/build-module/form-submit-button/save.mjs.map +0 -7
  527. package/build-module/list-item/hooks/use-indent-list-item.mjs +0 -58
  528. package/build-module/list-item/hooks/use-indent-list-item.mjs.map +0 -7
  529. package/build-module/list-item/hooks/use-outdent-list-item.mjs +0 -85
  530. package/build-module/list-item/hooks/use-outdent-list-item.mjs.map +0 -7
  531. package/build-module/list-item/hooks/use-space.mjs +0 -52
  532. package/build-module/list-item/hooks/use-space.mjs.map +0 -7
  533. package/build-module/query/edit/enhanced-pagination-modal.mjs +0 -72
  534. package/build-module/query/edit/enhanced-pagination-modal.mjs.map +0 -7
  535. package/build-style/form-input/editor-rtl.css +0 -19
  536. package/build-style/form-input/editor.css +0 -19
  537. package/build-style/form-input/style-rtl.css +0 -48
  538. package/build-style/form-input/style.css +0 -48
  539. package/build-style/form-submission-notification/editor-rtl.css +0 -30
  540. package/build-style/form-submission-notification/editor.css +0 -30
  541. package/build-style/form-submit-button/style-rtl.css +0 -3
  542. package/build-style/form-submit-button/style.css +0 -3
  543. package/src/form/README.md +0 -90
  544. package/src/form/block.json +0 -65
  545. package/src/form/deprecated.jsx +0 -93
  546. package/src/form/edit.jsx +0 -169
  547. package/src/form/icons.jsx +0 -7
  548. package/src/form/index.js +0 -91
  549. package/src/form/index.php +0 -197
  550. package/src/form/init.js +0 -3
  551. package/src/form/save.jsx +0 -15
  552. package/src/form/utils.js +0 -36
  553. package/src/form/variations.js +0 -133
  554. package/src/form/view.js +0 -54
  555. package/src/form-input/README.md +0 -74
  556. package/src/form-input/block.json +0 -72
  557. package/src/form-input/deprecated.jsx +0 -248
  558. package/src/form-input/edit.jsx +0 -187
  559. package/src/form-input/editor.scss +0 -24
  560. package/src/form-input/icons.jsx +0 -7
  561. package/src/form-input/index.js +0 -22
  562. package/src/form-input/index.php +0 -47
  563. package/src/form-input/init.js +0 -3
  564. package/src/form-input/save.jsx +0 -89
  565. package/src/form-input/style.scss +0 -64
  566. package/src/form-input/variations.js +0 -82
  567. package/src/form-submission-notification/README.md +0 -50
  568. package/src/form-submission-notification/block.json +0 -19
  569. package/src/form-submission-notification/edit.jsx +0 -44
  570. package/src/form-submission-notification/editor.scss +0 -45
  571. package/src/form-submission-notification/index.js +0 -33
  572. package/src/form-submission-notification/index.php +0 -48
  573. package/src/form-submission-notification/init.js +0 -3
  574. package/src/form-submission-notification/save.jsx +0 -18
  575. package/src/form-submission-notification/variations.js +0 -56
  576. package/src/form-submit-button/README.md +0 -54
  577. package/src/form-submit-button/block.json +0 -15
  578. package/src/form-submit-button/edit.jsx +0 -12
  579. package/src/form-submit-button/index.js +0 -35
  580. package/src/form-submit-button/init.js +0 -3
  581. package/src/form-submit-button/save.jsx +0 -10
  582. package/src/form-submit-button/style.scss +0 -3
  583. package/src/list-item/hooks/use-indent-list-item.js +0 -73
  584. package/src/list-item/hooks/use-outdent-list-item.js +0 -100
  585. package/src/list-item/hooks/use-space.js +0 -66
  586. package/src/query/edit/enhanced-pagination-modal.jsx +0 -77
  587. /package/src/utils/test/{waveform-player.jsx → waveform-player.jsdom.test.jsx} +0 -0
  588. /package/src/utils/test/{waveform-utils.js → waveform-utils.jsdom.test.js} +0 -0
@@ -12,8 +12,8 @@
12
12
  *
13
13
  * @global int $comment_depth
14
14
  *
15
- * @param WP_Comment[] $comments The array of comments.
16
- * @param WP_Block $block Block instance.
15
+ * @param WP_Comment[] $comments The array of comments.
16
+ * @param WP_Block $block Block instance.
17
17
  * @return string
18
18
  */
19
19
  function block_core_comment_template_render_comments( $comments, $block ) {
@@ -1,3 +1,4 @@
1
+ import { describe, expect, it } from 'vitest';
1
2
  import { convertToTree } from '../util';
2
3
 
3
4
  describe( 'Convert to tree', () => {
package/src/common.scss CHANGED
@@ -91,6 +91,7 @@
91
91
  padding: 0;
92
92
  position: absolute;
93
93
  width: 1px;
94
+ // stylelint-disable-next-line property-no-deprecated -- Pending review of overflow-wrap alternative.
94
95
  word-wrap: normal !important;
95
96
  word-break: normal !important;
96
97
  }
@@ -129,87 +130,87 @@ html :where(.has-border-color) {
129
130
  // don't accidentally match. Only real declarations at the start of
130
131
  // the style string or after a semicolon should trigger these rules.
131
132
  html
132
- :where(
133
- [style^="border-color"],
134
- [style*=";border-color"],
135
- [style*="; border-color"]
136
- ) {
133
+ :where(
134
+ [style^="border-color"],
135
+ [style*=";border-color"],
136
+ [style*="; border-color"]
137
+ ) {
137
138
  border-style: solid;
138
139
  }
139
140
  html
140
- :where(
141
- [style^="border-top-color"],
142
- [style*=";border-top-color"],
143
- [style*="; border-top-color"]
144
- ) {
141
+ :where(
142
+ [style^="border-top-color"],
143
+ [style*=";border-top-color"],
144
+ [style*="; border-top-color"]
145
+ ) {
145
146
  border-top-style: solid;
146
147
  }
147
148
  html
148
- :where(
149
- [style^="border-right-color"],
150
- [style*=";border-right-color"],
151
- [style*="; border-right-color"]
152
- ) {
149
+ :where(
150
+ [style^="border-right-color"],
151
+ [style*=";border-right-color"],
152
+ [style*="; border-right-color"]
153
+ ) {
153
154
  /*rtl:ignore*/
154
155
  border-right-style: solid;
155
156
  }
156
157
  html
157
- :where(
158
- [style^="border-bottom-color"],
159
- [style*=";border-bottom-color"],
160
- [style*="; border-bottom-color"]
161
- ) {
158
+ :where(
159
+ [style^="border-bottom-color"],
160
+ [style*=";border-bottom-color"],
161
+ [style*="; border-bottom-color"]
162
+ ) {
162
163
  border-bottom-style: solid;
163
164
  }
164
165
  html
165
- :where(
166
- [style^="border-left-color"],
167
- [style*=";border-left-color"],
168
- [style*="; border-left-color"]
169
- ) {
166
+ :where(
167
+ [style^="border-left-color"],
168
+ [style*=";border-left-color"],
169
+ [style*="; border-left-color"]
170
+ ) {
170
171
  /*rtl:ignore*/
171
172
  border-left-style: solid;
172
173
  }
173
174
 
174
175
  html
175
- :where(
176
- [style^="border-width"],
177
- [style*=";border-width"],
178
- [style*="; border-width"]
179
- ) {
176
+ :where(
177
+ [style^="border-width"],
178
+ [style*=";border-width"],
179
+ [style*="; border-width"]
180
+ ) {
180
181
  border-style: solid;
181
182
  }
182
183
  html
183
- :where(
184
- [style^="border-top-width"],
185
- [style*=";border-top-width"],
186
- [style*="; border-top-width"]
187
- ) {
184
+ :where(
185
+ [style^="border-top-width"],
186
+ [style*=";border-top-width"],
187
+ [style*="; border-top-width"]
188
+ ) {
188
189
  border-top-style: solid;
189
190
  }
190
191
  html
191
- :where(
192
- [style^="border-right-width"],
193
- [style*=";border-right-width"],
194
- [style*="; border-right-width"]
195
- ) {
192
+ :where(
193
+ [style^="border-right-width"],
194
+ [style*=";border-right-width"],
195
+ [style*="; border-right-width"]
196
+ ) {
196
197
  /*rtl:ignore*/
197
198
  border-right-style: solid;
198
199
  }
199
200
  html
200
- :where(
201
- [style^="border-bottom-width"],
202
- [style*=";border-bottom-width"],
203
- [style*="; border-bottom-width"]
204
- ) {
201
+ :where(
202
+ [style^="border-bottom-width"],
203
+ [style*=";border-bottom-width"],
204
+ [style*="; border-bottom-width"]
205
+ ) {
205
206
  border-bottom-style: solid;
206
207
  }
207
208
  html
208
- :where(
209
- [style^="border-left-width"],
210
- [style*=";border-left-width"],
211
- [style*="; border-left-width"]
212
- ) {
209
+ :where(
210
+ [style^="border-left-width"],
211
+ [style*=";border-left-width"],
212
+ [style*="; border-left-width"]
213
+ ) {
213
214
  /*rtl:ignore*/
214
215
  border-left-style: solid;
215
216
  }
@@ -59,6 +59,43 @@ function example_disable_cover_video_embeds( $args, $block_type ) {
59
59
  add_filter( 'register_block_type_args', 'example_disable_cover_video_embeds', 10, 2 );
60
60
  ```
61
61
 
62
+ ## Overlay color and opacity
63
+
64
+ The Cover block's overlay controls are part of its color settings. The opacity slider sets how transparent the overlay color is, so it appears next to that color rather than on its own.
65
+
66
+ Both controls only appear if the block has at least one color or gradient to pick from. A `theme.json` that leaves the block with none, like the one below, hides them:
67
+
68
+ ```json
69
+ {
70
+ "version": 3,
71
+ "settings": {
72
+ "color": {
73
+ "defaultPalette": false,
74
+ "defaultGradients": false,
75
+ "palette": [],
76
+ "gradients": []
77
+ }
78
+ }
79
+ }
80
+ ```
81
+
82
+ Turning on `color.custom` or `color.customGradient` will not bring them back. Those settings add the custom color picker, they do not give the block anything to pick from. To show the overlay controls again, give the block a color or gradient, either for every block or just the Cover block:
83
+
84
+ ```json
85
+ {
86
+ "version": 3,
87
+ "settings": {
88
+ "blocks": {
89
+ "core/cover": {
90
+ "color": {
91
+ "defaultGradients": true
92
+ }
93
+ }
94
+ }
95
+ }
96
+ }
97
+ ```
98
+
62
99
  <!-- START TOKEN(Autogenerated block API docs) -->
63
100
  Add an image or video with a text overlay.
64
101
 
@@ -1,6 +1,5 @@
1
1
  import { __ } from '@wordpress/i18n';
2
2
  import { cover as icon } from '@wordpress/icons';
3
- import { privateApis as blocksPrivateApis } from '@wordpress/blocks';
4
3
  import initBlock from '../utils/init-block';
5
4
  import deprecated from './deprecated';
6
5
  import edit from './edit';
@@ -8,9 +7,6 @@ import metadata from './block.json';
8
7
  import save from './save';
9
8
  import transforms from './transforms';
10
9
  import variations from './variations';
11
- import { unlock } from '../lock-unlock';
12
-
13
- const { fieldsKey, formKey } = unlock( blocksPrivateApis );
14
10
 
15
11
  const { name } = metadata;
16
12
 
@@ -53,39 +49,4 @@ export const settings = {
53
49
  variations,
54
50
  };
55
51
 
56
- if ( window.__experimentalContentOnlyInspectorFields ) {
57
- settings[ fieldsKey ] = [
58
- {
59
- id: 'background',
60
- label: __( 'Background' ),
61
- type: 'media',
62
- Edit: {
63
- control: 'media', // TODO: replace with custom component
64
- // TODO - How to support custom gradient?
65
- // Build it into Media, or use a custom control?
66
- allowedTypes: [ 'image', 'video' ],
67
- multiple: false,
68
- useFeaturedImage: true,
69
- },
70
- getValue: ( { item } ) => ( {
71
- id: item.id,
72
- url: item.url,
73
- alt: item.alt,
74
- mediaType: item.backgroundType,
75
- featuredImage: item.useFeaturedImage,
76
- } ),
77
- setValue: ( { value } ) => ( {
78
- id: value.id,
79
- url: value.url,
80
- alt: value.alt,
81
- mediaType: value.backgroundType,
82
- useFeaturedImage: value.featuredImage,
83
- } ),
84
- },
85
- ];
86
- settings[ formKey ] = {
87
- fields: [ 'background' ],
88
- };
89
- }
90
-
91
52
  export const init = () => initBlock( { name, metadata, settings } );
@@ -342,9 +342,9 @@ section.wp-block-cover-image > h2,
342
342
  // the deprecated version). In the color background or gradient option we don't
343
343
  // need the z-index because the elements are in the expected order.
344
344
  body:not(.editor-styles-wrapper) .wp-block-cover:not(
345
- .wp-block-cover:has(
346
- .wp-block-cover__background + .wp-block-cover__inner-container
347
- )
345
+ .wp-block-cover:has(
346
+ .wp-block-cover__background + .wp-block-cover__inner-container
347
+ )
348
348
  ) {
349
349
  .wp-block-cover__video-background {
350
350
  // Background media sits at the base of the stack.
@@ -1,9 +1,15 @@
1
+ /* eslint-disable jest-dom/prefer-to-have-style -- This suite moves to Browser Mode in the next stacked PR. */
2
+ import { describe, expect, test } from 'vitest';
1
3
  import { screen, fireEvent, act, within } from '@testing-library/react';
2
4
  import userEvent from '@testing-library/user-event';
3
5
  import {
4
6
  initializeEditor,
5
7
  selectBlock,
6
8
  } from '@wordpress/integration-tests/helpers/integration-test-editor';
9
+ globalThis.wpVitest.mockMatchMedia();
10
+ globalThis.wpVitest.mockCSSSupports();
11
+ globalThis.wpVitest.mockResizeObserver();
12
+ globalThis.wpVitest.mockVisibleElements();
7
13
 
8
14
  const defaultSettings = {
9
15
  __experimentalFeatures: {
@@ -130,9 +136,7 @@ describe( 'Cover block', () => {
130
136
  const overlay = container.getElementsByClassName(
131
137
  'wp-block-cover__background'
132
138
  );
133
- expect( overlay[ 0 ] ).toHaveStyle(
134
- `background-color: ${ color }`
135
- );
139
+ expect( overlay[ 0 ].style.backgroundColor ).toBe( color );
136
140
  } );
137
141
 
138
142
  test( 'can have the title edited', async () => {
@@ -158,15 +162,12 @@ describe( 'Cover block', () => {
158
162
  await setup();
159
163
  await createAndSelectBlock();
160
164
 
161
- expect( screen.getByLabelText( 'Block: Cover' ) ).not.toHaveStyle(
162
- 'min-height: 100vh;'
163
- );
165
+ const cover = screen.getByLabelText( 'Block: Cover' );
166
+ expect( cover.style.minHeight ).not.toBe( '100vh' );
164
167
 
165
168
  await userEvent.click( screen.getByLabelText( 'Full height' ) );
166
169
 
167
- expect( screen.getByLabelText( 'Block: Cover' ) ).toHaveStyle(
168
- 'min-height: 100vh;'
169
- );
170
+ expect( cover.style.minHeight ).toBe( '100vh' );
170
171
  } );
171
172
 
172
173
  test( 'content position button sets content position', async () => {
@@ -309,11 +310,10 @@ describe( 'Cover block', () => {
309
310
  await userEvent.clear( await screen.findByLabelText( 'Left' ) );
310
311
  await userEvent.type( screen.getByLabelText( 'Left' ), '100' );
311
312
 
312
- expect(
313
- within( screen.getByLabelText( 'Block: Cover' ) ).getByRole(
314
- 'presentation'
315
- )
316
- ).toHaveStyle( 'object-position: 100% 50%;' );
313
+ const image = within(
314
+ screen.getByLabelText( 'Block: Cover' )
315
+ ).getByRole( 'presentation' );
316
+ expect( image.style.objectPosition ).toBe( '100% 50%' );
317
317
  } );
318
318
 
319
319
  test( 'sets alt attribute if text entered in alt text box', async () => {
@@ -426,9 +426,9 @@ describe( 'Cover block', () => {
426
426
  '300'
427
427
  );
428
428
 
429
- expect( screen.getByLabelText( 'Block: Cover' ) ).toHaveStyle(
430
- 'min-height: 300px;'
431
- );
429
+ expect(
430
+ screen.getByLabelText( 'Block: Cover' ).style.minHeight
431
+ ).toBe( '300px' );
432
432
  } );
433
433
  } );
434
434
  } );
@@ -475,3 +475,4 @@ describe( 'Cover block', () => {
475
475
  } );
476
476
  } );
477
477
  } );
478
+ /* eslint-enable jest-dom/prefer-to-have-style */
@@ -1,3 +1,4 @@
1
+ import { afterAll, beforeAll, describe, expect, it } from 'vitest';
1
2
  import {
2
3
  createBlock,
3
4
  getBlockTypes,
@@ -1,14 +1,10 @@
1
1
  import { details as icon } from '@wordpress/icons';
2
2
  import { __, sprintf } from '@wordpress/i18n';
3
- import { privateApis as blocksPrivateApis } from '@wordpress/blocks';
4
3
  import initBlock from '../utils/init-block';
5
4
  import metadata from './block.json';
6
5
  import edit from './edit';
7
6
  import save from './save';
8
7
  import transforms from './transforms';
9
- import { unlock } from '../lock-unlock';
10
-
11
- const { fieldsKey, formKey } = unlock( blocksPrivateApis );
12
8
 
13
9
  const { name } = metadata;
14
10
  export { metadata, name };
@@ -72,18 +68,4 @@ export const settings = {
72
68
  transforms,
73
69
  };
74
70
 
75
- if ( window.__experimentalContentOnlyInspectorFields ) {
76
- settings[ fieldsKey ] = [
77
- {
78
- id: 'summary',
79
- label: __( 'Summary' ),
80
- type: 'text',
81
- Edit: 'rich-text', // TODO: replace with custom component
82
- },
83
- ];
84
- settings[ formKey ] = {
85
- fields: [ 'summary' ],
86
- };
87
- }
88
-
89
71
  export const init = () => initBlock( { name, metadata, settings } );
package/src/editor.scss CHANGED
@@ -16,8 +16,6 @@
16
16
  @use "./details/editor.scss" as *;
17
17
  @use "./embed/editor.scss" as *;
18
18
  @use "./file/editor.scss" as *;
19
- @use "./form-input/editor.scss" as *;
20
- @use "./form-submission-notification/editor.scss" as *;
21
19
  @use "./freeform/editor.scss" as *;
22
20
  @use "./gallery/editor.scss" as *;
23
21
  @use "./group/editor.scss" as *;
@@ -20,6 +20,7 @@
20
20
 
21
21
  // Stops long URLs from breaking out of the no preview available screen
22
22
  .components-placeholder__error {
23
+ // stylelint-disable-next-line declaration-property-value-keyword-no-deprecated -- Pending review of overflow-wrap alternative.
23
24
  word-break: break-word;
24
25
  }
25
26
  }
@@ -1,3 +1,4 @@
1
+ import { afterAll, beforeAll, describe, expect, it, test, vi } from 'vitest';
1
2
  import {
2
3
  registerBlockType,
3
4
  unregisterBlockType,
@@ -19,7 +20,10 @@ import metadata from '../block.json';
19
20
 
20
21
  const { name: DEFAULT_EMBED_BLOCK, attributes } = metadata;
21
22
 
22
- jest.mock( '@wordpress/data/src/components/use-select', () => () => ( {} ) );
23
+ vi.mock( import( '@wordpress/data' ), async ( importOriginal ) => ( {
24
+ ...( await importOriginal() ),
25
+ useSelect: () => ( {} ),
26
+ } ) );
23
27
 
24
28
  describe( 'utils', () => {
25
29
  beforeAll( () => {
package/src/file/index.js CHANGED
@@ -1,6 +1,5 @@
1
- import { _x, __ } from '@wordpress/i18n';
1
+ import { _x } from '@wordpress/i18n';
2
2
  import { file as icon } from '@wordpress/icons';
3
- import { privateApis as blocksPrivateApis } from '@wordpress/blocks';
4
3
  import initBlock from '../utils/init-block';
5
4
  import deprecated from './deprecated';
6
5
  import edit from './edit';
@@ -8,9 +7,6 @@ import metadata from './block.json';
8
7
  import save from './save';
9
8
  import transforms from './transforms';
10
9
  import variations from './variations';
11
- import { unlock } from '../lock-unlock';
12
-
13
- const { fieldsKey, formKey } = unlock( blocksPrivateApis );
14
10
 
15
11
  const { name } = metadata;
16
12
 
@@ -31,42 +27,4 @@ export const settings = {
31
27
  variations,
32
28
  };
33
29
 
34
- if ( window.__experimentalContentOnlyInspectorFields ) {
35
- settings[ fieldsKey ] = [
36
- {
37
- id: 'file',
38
- label: __( 'File' ),
39
- type: 'media',
40
- Edit: {
41
- control: 'media', // TODO: replace with custom component
42
- allowedTypes: [],
43
- multiple: false,
44
- },
45
- getValue: ( { item } ) => ( {
46
- id: item.id,
47
- url: item.href,
48
- } ),
49
- setValue: ( { value } ) => ( {
50
- id: value.id,
51
- href: value.url,
52
- } ),
53
- },
54
- {
55
- id: 'fileName',
56
- label: __( 'Filename' ),
57
- type: 'text',
58
- Edit: 'rich-text', // TODO: replace with custom component
59
- },
60
- {
61
- id: 'downloadButtonText',
62
- label: __( 'Button Text' ),
63
- type: 'text',
64
- Edit: 'rich-text', // TODO: replace with custom component
65
- },
66
- ];
67
- settings[ formKey ] = {
68
- fields: [ 'file', 'fileName', 'downloadButtonText' ],
69
- };
70
- }
71
-
72
30
  export const init = () => initBlock( { name, metadata, settings } );
@@ -114,7 +114,11 @@ export const format = {
114
114
  const object = value.replacements[ value.start ];
115
115
  id = object?.attributes?.[ 'data-fn' ];
116
116
  } else {
117
- id = createId();
117
+ // The ID doubles as the anchor target of the footnote link.
118
+ // A CSS identifier cannot start with a digit, so a bare UUID
119
+ // (which often does) breaks `querySelector( '#' + id )` and
120
+ // `#id` style rules on the front end. Prefix it with a letter.
121
+ id = `fn-${ createId() }`;
118
122
  const newValue = insertObject(
119
123
  value,
120
124
  {
@@ -1,5 +1,5 @@
1
1
  import { __, sprintf } from '@wordpress/i18n';
2
- import { useState } from '@wordpress/element';
2
+ import { useMemo, useState } from '@wordpress/element';
3
3
  import {
4
4
  Button,
5
5
  Notice,
@@ -19,6 +19,7 @@ import {
19
19
  __experimentalUseBlockPreview as useBlockPreview,
20
20
  } from '@wordpress/block-editor';
21
21
  import { sharedIcon } from './shared-icon';
22
+ import { isGalleryFlexLayout } from './shared';
22
23
  import { Caption } from '../utils/caption';
23
24
  import { DEFAULT_ORDERBY, DEFAULT_ORDER, MAX_IMAGES } from './dynamic-source';
24
25
 
@@ -237,14 +238,17 @@ export function GallerySourcePanel( {
237
238
  * its confirm dialog below) is temporary. Once more sources
238
239
  * exist it becomes a "Choose source" select whose options read
239
240
  * from each source descriptor's `title`, with help text
240
- * carrying the per-source explanation this string does today.
241
+ * carrying the per-source explanation these strings do today.
241
242
  */ }
243
+ <p className="wp-block-gallery__source-description">
244
+ { __( 'Images added to the gallery.' ) }
245
+ </p>
242
246
  <Button
243
247
  __next40pxDefaultSize
244
248
  variant="secondary"
245
249
  onClick={ requestEnableDynamicMode }
246
250
  >
247
- { __( 'Use images attached to the post' ) }
251
+ { __( 'Use attached images' ) }
248
252
  </Button>
249
253
  </div>
250
254
  </PanelBody>
@@ -282,12 +286,21 @@ export function GallerySourcePanel( {
282
286
  * stays editable. This relies on the gallery's image styles using descendant
283
287
  * (not direct-child) selectors, which the box-less wrapper leaves intact.
284
288
  *
289
+ * The gallery's layout is passed through so the previewed images see the same
290
+ * parent layout that real inner blocks would (`useBlockPreview` provides it to
291
+ * their layout context). Without it they resolve to the default flow layout and
292
+ * behave as if they weren't in a gallery — most visibly, an image inside a
293
+ * cropped gallery would keep its baseline `height: auto` and defeat the
294
+ * gallery's cropping CSS.
295
+ *
285
296
  * @param {Object} props
286
297
  * @param {Object[]} props.imageBlocks Non-persisted `core/image` blocks to preview.
298
+ * @param {Object} props.layout The gallery's layout, for the preview's layout context.
287
299
  */
288
- function GalleryImagesPreview( { imageBlocks } ) {
300
+ function GalleryImagesPreview( { imageBlocks, layout } ) {
289
301
  const { children, ref, className } = useBlockPreview( {
290
302
  blocks: imageBlocks,
303
+ layout,
291
304
  } );
292
305
  return (
293
306
  <div
@@ -353,6 +366,19 @@ export function GalleryDynamicView( {
353
366
 
354
367
  const [ isConfirmingDetach, setIsConfirmingDetach ] = useState( false );
355
368
 
369
+ // The layout the previewed images sit in. Normalized the same way the
370
+ // gallery's own classes are (`isGalleryFlexLayout`), so a layout that the
371
+ // wrapper treats as flex — including a missing or typeless one — is reported
372
+ // as flex to the images rather than resolving to the default flow layout.
373
+ // Memoized because it becomes the preview's layout context value.
374
+ const previewLayout = useMemo(
375
+ () =>
376
+ isGalleryFlexLayout( attributes.layout )
377
+ ? { ...attributes.layout, type: 'flex' }
378
+ : attributes.layout,
379
+ [ attributes.layout ]
380
+ );
381
+
356
382
  // Empty-state copy for the preview. Framed as forward-looking ("… will appear
357
383
  // here") rather than as an error, since the same empty result covers both a
358
384
  // post with no matching images and a template with no post in context yet —
@@ -396,6 +422,7 @@ export function GalleryDynamicView( {
396
422
  <BlockContextProvider value={ galleryContext }>
397
423
  <GalleryImagesPreview
398
424
  imageBlocks={ dynamicImageBlocks }
425
+ layout={ previewLayout }
399
426
  />
400
427
  </BlockContextProvider>
401
428
  ) : (
@@ -1,3 +1,4 @@
1
+ import { describe, expect, it } from 'vitest';
1
2
  import { getSourceQuery } from '../dynamic-source';
2
3
 
3
4
  describe( 'getSourceQuery', () => {
@@ -1,3 +1,4 @@
1
+ import { beforeEach, describe, expect, test } from 'vitest';
1
2
  import { screen } from '@testing-library/react';
2
3
  import userEvent from '@testing-library/user-event';
3
4
  import { createBlock, registerBlockType } from '@wordpress/blocks';
@@ -14,6 +15,9 @@ import {
14
15
  import { registerCoreBlocks } from '@wordpress/block-library';
15
16
  import { unlock } from '../../lock-unlock';
16
17
 
18
+ globalThis.wpVitest.mockMatchMedia();
19
+ globalThis.wpVitest.mockResizeObserver();
20
+
17
21
  const IMAGE_ATTRIBUTES = {
18
22
  id: 1,
19
23
  url: 'https://example.com/image.jpg',
@@ -1,3 +1,4 @@
1
+ import { describe, expect, it } from 'vitest';
1
2
  import {
2
3
  getGalleryResponsiveFlexCSS,
3
4
  getUpdatedGalleryStyle,
@@ -1,3 +1,4 @@
1
+ import { describe, expect, it } from 'vitest';
1
2
  import { isGalleryFlexLayout } from '../shared';
2
3
 
3
4
  describe( 'isGalleryFlexLayout', () => {
@@ -1,3 +1,4 @@
1
+ import { afterAll, beforeAll, describe, expect, it } from 'vitest';
1
2
  import {
2
3
  createBlock,
3
4
  getBlockTypes,
@@ -1,3 +1,4 @@
1
+ import { describe, expect, it } from 'vitest';
1
2
  import { render, screen } from '@testing-library/react';
2
3
  import useGetNewImages from '../use-get-new-images';
3
4
 
@@ -1,3 +1,4 @@
1
+ import { describe, expect, it } from 'vitest';
1
2
  import variations from '../variations';
2
3
 
3
4
  const getVariation = ( name ) =>
@@ -1,3 +1,4 @@
1
+ import { describe, expect, test } from 'vitest';
1
2
  import { render } from '@testing-library/react';
2
3
  import { useShouldShowPlaceHolder } from '../placeholder';
3
4
 
@@ -3,5 +3,5 @@
3
3
  // Add low specificity default padding to groups with backgrounds.
4
4
  :where(.wp-block-group.has-background) {
5
5
  // Matches paragraph block padding.
6
- padding: $block-bg-padding--v $block-bg-padding--h;
6
+ padding: $block-bg-padding;
7
7
  }