@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
package/src/more/index.js CHANGED
@@ -1,14 +1,9 @@
1
1
  import { more as icon } from '@wordpress/icons';
2
- import { __ } from '@wordpress/i18n';
3
- import { privateApis as blocksPrivateApis } from '@wordpress/blocks';
4
2
  import initBlock from '../utils/init-block';
5
3
  import edit from './edit';
6
4
  import metadata from './block.json';
7
5
  import save from './save';
8
6
  import transforms from './transforms';
9
- import { unlock } from '../lock-unlock';
10
-
11
- const { fieldsKey, formKey } = unlock( blocksPrivateApis );
12
7
 
13
8
  const { name } = metadata;
14
9
 
@@ -36,18 +31,4 @@ export const settings = {
36
31
  save,
37
32
  };
38
33
 
39
- if ( window.__experimentalContentOnlyInspectorFields ) {
40
- settings[ fieldsKey ] = [
41
- {
42
- id: 'customText',
43
- label: __( 'Content' ),
44
- type: 'text',
45
- Edit: 'rich-text', // TODO: replace with custom component
46
- },
47
- ];
48
- settings[ formKey ] = {
49
- fields: [ 'customText' ],
50
- };
51
- }
52
-
53
34
  export const init = () => initBlock( { name, metadata, settings } );
@@ -8,7 +8,7 @@ export const DEFAULT_BLOCK = {
8
8
 
9
9
  export const PRIORITIZED_INSERTER_BLOCKS = [
10
10
  'core/navigation-link/page',
11
- 'core/navigation-link',
11
+ 'core/navigation-link/custom-link',
12
12
  ];
13
13
 
14
14
  // These parameters must be kept aligned with those in
@@ -1,3 +1,4 @@
1
+ import { describe, expect, it } from 'vitest';
1
2
  import { areBlocksDirty } from '../are-blocks-dirty';
2
3
 
3
4
  describe( 'areBlocksDirty', () => {
@@ -1,19 +1,20 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
1
2
  import { renderHook } from '@testing-library/react';
2
3
  import { useSettings, useStyleOverride } from '@wordpress/block-editor';
3
4
  import useLayoutCustomProperties from '../use-layout-custom-properties';
4
5
 
5
- const mockGetResponsiveMediaQueries = jest.fn();
6
+ const mockGetResponsiveMediaQueries = vi.fn();
6
7
 
7
- jest.mock( '@wordpress/block-editor', () => ( {
8
- useSettings: jest.fn(),
9
- useStyleOverride: jest.fn(),
8
+ vi.mock( import( '@wordpress/block-editor' ), () => ( {
9
+ useSettings: vi.fn(),
10
+ useStyleOverride: vi.fn(),
10
11
  } ) );
11
12
 
12
- jest.mock( '@wordpress/global-styles-engine', () => ( {
13
+ vi.mock( import( '@wordpress/global-styles-engine' ), () => ( {
13
14
  privateApis: {},
14
15
  } ) );
15
16
 
16
- jest.mock( '../../../lock-unlock', () => ( {
17
+ vi.mock( import( '../../../lock-unlock' ), () => ( {
17
18
  unlock: () => ( {
18
19
  getResponsiveMediaQueries: ( ...args ) =>
19
20
  mockGetResponsiveMediaQueries( ...args ),
@@ -22,7 +23,7 @@ jest.mock( '../../../lock-unlock', () => ( {
22
23
 
23
24
  describe( 'Navigation layout custom properties', () => {
24
25
  beforeEach( () => {
25
- jest.clearAllMocks();
26
+ vi.clearAllMocks();
26
27
  useSettings.mockReturnValue( [ { mobile: 480, tablet: 782 } ] );
27
28
  mockGetResponsiveMediaQueries.mockReturnValue( {
28
29
  '@tablet': '@media (480px < width <= 782px)',
@@ -1,24 +1,21 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
1
2
  import { render, screen } from '@testing-library/react';
2
3
  import userEvent from '@testing-library/user-event';
3
4
  import { useEntityRecords } from '@wordpress/core-data';
4
5
  import NavigationMenuSelector from '../navigation-menu-selector';
5
6
  import useNavigationMenu from '../../use-navigation-menu';
6
7
 
7
- jest.mock( '../../use-navigation-menu', () => {
8
+ vi.mock( import( '../../use-navigation-menu' ), () => {
8
9
  // This allows us to tweak the returned value on each test.
9
- const mock = jest.fn();
10
- return mock;
10
+ const mock = vi.fn();
11
+ return { default: mock };
11
12
  } );
12
13
 
13
- jest.mock( '@wordpress/core-data', () => ( {
14
- ...jest.requireActual( '@wordpress/core-data' ),
15
- useEntityRecords: jest.fn(),
14
+ vi.mock( import( '@wordpress/core-data' ), async ( importOriginal ) => ( {
15
+ ...( await importOriginal() ),
16
+ useEntityRecords: vi.fn(),
16
17
  } ) );
17
18
 
18
- useEntityRecords.mockReturnValue( {
19
- records: [],
20
- } );
21
-
22
19
  const navigationMenu1 = {
23
20
  id: 1,
24
21
  title: {
@@ -63,6 +60,18 @@ const classicMenusFixture = [
63
60
  ];
64
61
 
65
62
  describe( 'NavigationMenuSelector', () => {
63
+ beforeEach( () => {
64
+ useNavigationMenu.mockReturnValue( {
65
+ navigationMenus: [],
66
+ hasResolvedNavigationMenus: true,
67
+ canUserCreateNavigationMenus: true,
68
+ canSwitchNavigationMenu: true,
69
+ } );
70
+ useEntityRecords.mockReturnValue( {
71
+ records: [],
72
+ } );
73
+ } );
74
+
66
75
  describe( 'Toggle', () => {
67
76
  it( 'should show dropdown toggle with loading message when menus have not resolved', async () => {
68
77
  useNavigationMenu.mockReturnValue( {
@@ -213,7 +222,7 @@ describe( 'NavigationMenuSelector', () => {
213
222
 
214
223
  it( 'should call handler callback and close popover when create menu button is clicked', async () => {
215
224
  const user = userEvent.setup();
216
- const handler = jest.fn();
225
+ const handler = vi.fn();
217
226
 
218
227
  useNavigationMenu.mockReturnValue( {
219
228
  navigationMenus: [],
@@ -240,7 +249,7 @@ describe( 'NavigationMenuSelector', () => {
240
249
 
241
250
  it( 'should handle disabled state of the create menu button during the creation process', async () => {
242
251
  const user = userEvent.setup();
243
- const handler = jest.fn();
252
+ const handler = vi.fn();
244
253
 
245
254
  // at the start we have the menus and we're not waiting on network
246
255
  useNavigationMenu.mockReturnValue( {
@@ -440,7 +449,7 @@ describe( 'NavigationMenuSelector', () => {
440
449
  it( 'should call the handler when the Navigation Menu is selected', async () => {
441
450
  const user = userEvent.setup();
442
451
 
443
- const handler = jest.fn();
452
+ const handler = vi.fn();
444
453
 
445
454
  useNavigationMenu.mockReturnValue( {
446
455
  navigationMenus: navigationMenusFixture,
@@ -547,7 +556,7 @@ describe( 'NavigationMenuSelector', () => {
547
556
 
548
557
  it( 'should call the handler when the classic menu item is selected and disable all options during the import/creation process', async () => {
549
558
  const user = userEvent.setup();
550
- const handler = jest.fn( async () => {} );
559
+ const handler = vi.fn( async () => {} );
551
560
 
552
561
  // initially we have the menus, and we're not waiting on network
553
562
  useNavigationMenu.mockReturnValue( {
@@ -1,42 +1,45 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
1
2
  import { render, screen } from '@testing-library/react';
2
3
  import userEvent from '@testing-library/user-event';
3
4
  import { useEntityRecords } from '@wordpress/core-data';
4
- import { useDispatch } from '@wordpress/data';
5
+ import { useDispatch, useSelect } from '@wordpress/data';
5
6
  import OverlayTemplatePartSelector from '../overlay-template-part-selector';
6
7
  import useCreateOverlayTemplatePart from '../use-create-overlay';
7
8
 
9
+ globalThis.wpVitest.mockMatchMedia();
10
+
8
11
  // Mock useEntityRecords
9
- jest.mock( '@wordpress/core-data', () => ( {
10
- useEntityRecords: jest.fn(),
12
+ vi.mock( import( '@wordpress/core-data' ), () => ( {
13
+ useEntityRecords: vi.fn(),
11
14
  store: {},
12
15
  } ) );
13
16
 
14
17
  // Mock useCreateOverlayTemplatePart hook
15
- jest.mock( '../use-create-overlay', () => ( {
18
+ vi.mock( import( '../use-create-overlay' ), () => ( {
16
19
  __esModule: true,
17
- default: jest.fn(),
20
+ default: vi.fn(),
18
21
  } ) );
19
22
 
20
23
  // Mock useDispatch and useSelect specifically to avoid needing to set up full data store
21
- jest.mock( '@wordpress/data', () => ( {
22
- useDispatch: jest.fn(),
23
- useSelect: jest.fn(),
24
- createSelector: jest.fn( ( fn ) => fn ),
25
- createRegistrySelector: jest.fn( ( fn ) => fn ),
26
- createReduxStore: jest.fn( () => ( {} ) ),
27
- combineReducers: jest.fn( ( reducers ) => ( state = {}, action ) => {
24
+ vi.mock( import( '@wordpress/data' ), () => ( {
25
+ useDispatch: vi.fn(),
26
+ useSelect: vi.fn(),
27
+ createSelector: vi.fn( ( fn ) => fn ),
28
+ createRegistrySelector: vi.fn( ( fn ) => fn ),
29
+ createReduxStore: vi.fn( () => ( {} ) ),
30
+ combineReducers: vi.fn( ( reducers ) => ( state = {}, action ) => {
28
31
  const newState = {};
29
32
  Object.keys( reducers ).forEach( ( key ) => {
30
33
  newState[ key ] = reducers[ key ]( state[ key ], action );
31
34
  } );
32
35
  return newState;
33
36
  } ),
34
- register: jest.fn(),
35
- keyedReducer: jest.fn( () => ( reducer ) => reducer ),
37
+ register: vi.fn(),
38
+ keyedReducer: vi.fn( () => ( reducer ) => reducer ),
36
39
  } ) );
37
40
 
38
- const mockSetAttributes = jest.fn();
39
- const mockOnNavigateToEntityRecord = jest.fn();
41
+ const mockSetAttributes = vi.fn();
42
+ const mockOnNavigateToEntityRecord = vi.fn();
40
43
 
41
44
  const defaultProps = {
42
45
  overlay: undefined,
@@ -75,12 +78,11 @@ const templatePartOtherArea = {
75
78
  };
76
79
 
77
80
  describe( 'OverlayTemplatePartSelector', () => {
78
- const mockCreateOverlayTemplatePart = jest.fn();
79
- const mockCreateErrorNotice = jest.fn();
80
- const { useSelect } = require( '@wordpress/data' );
81
+ const mockCreateOverlayTemplatePart = vi.fn();
82
+ const mockCreateErrorNotice = vi.fn();
81
83
 
82
84
  beforeEach( () => {
83
- jest.clearAllMocks();
85
+ vi.clearAllMocks();
84
86
  useEntityRecords.mockReturnValue( {
85
87
  records: [],
86
88
  isResolving: false,
@@ -1,37 +1,38 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
1
2
  import { render, screen } from '@testing-library/react';
2
3
  import userEvent from '@testing-library/user-event';
3
4
  import { useSelect } from '@wordpress/data';
4
5
  import ResponsiveWrapper from '../responsive-wrapper';
5
6
 
6
7
  // Mock block-editor to avoid private API issues
7
- jest.mock( '@wordpress/block-editor', () => ( {
8
- getColorClassName: jest.fn( () => '' ),
8
+ vi.mock( import( '@wordpress/block-editor' ), () => ( {
9
+ getColorClassName: vi.fn( () => '' ),
9
10
  } ) );
10
11
 
11
12
  // Mock core-data store
12
- jest.mock( '@wordpress/core-data', () => ( {
13
+ vi.mock( import( '@wordpress/core-data' ), () => ( {
13
14
  store: {},
14
15
  } ) );
15
16
 
16
17
  // Mock useSelect
17
- jest.mock( '@wordpress/data', () => ( {
18
- useSelect: jest.fn(),
19
- createSelector: jest.fn( ( fn ) => fn ),
20
- createRegistrySelector: jest.fn( ( fn ) => fn ),
21
- createReduxStore: jest.fn( () => ( {} ) ),
22
- combineReducers: jest.fn( ( reducers ) => ( state = {}, action ) => {
18
+ vi.mock( import( '@wordpress/data' ), () => ( {
19
+ useSelect: vi.fn(),
20
+ createSelector: vi.fn( ( fn ) => fn ),
21
+ createRegistrySelector: vi.fn( ( fn ) => fn ),
22
+ createReduxStore: vi.fn( () => ( {} ) ),
23
+ combineReducers: vi.fn( ( reducers ) => ( state = {}, action ) => {
23
24
  const newState = {};
24
25
  Object.keys( reducers ).forEach( ( key ) => {
25
26
  newState[ key ] = reducers[ key ]( state[ key ], action );
26
27
  } );
27
28
  return newState;
28
29
  } ),
29
- register: jest.fn(),
30
+ register: vi.fn(),
30
31
  } ) );
31
32
 
32
33
  describe( 'ResponsiveWrapper', () => {
33
- const mockOnToggle = jest.fn();
34
- const mockOnNavigateToEntityRecord = jest.fn();
34
+ const mockOnToggle = vi.fn();
35
+ const mockOnNavigateToEntityRecord = vi.fn();
35
36
 
36
37
  const defaultProps = {
37
38
  id: 'test-navigation',
@@ -49,7 +50,7 @@ describe( 'ResponsiveWrapper', () => {
49
50
  };
50
51
 
51
52
  beforeEach( () => {
52
- jest.clearAllMocks();
53
+ vi.clearAllMocks();
53
54
  // Mock useSelect - component calls: select( coreStore ).getCurrentTheme()?.stylesheet
54
55
  useSelect.mockImplementation( ( selector ) => {
55
56
  if ( typeof selector === 'function' ) {
@@ -1,27 +1,30 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
1
2
  import { renderHook, act } from '@testing-library/react';
2
3
  import { useDispatch, useSelect } from '@wordpress/data';
4
+ import { store as blockEditorStore } from '@wordpress/block-editor';
5
+ import { createBlock, parse, serialize } from '@wordpress/blocks';
3
6
  import useCreateOverlayTemplatePart from '../use-create-overlay';
4
7
 
5
8
  // Mock useDispatch and useSelect
6
- jest.mock( '@wordpress/data', () => ( {
7
- useDispatch: jest.fn(),
8
- useSelect: jest.fn(),
9
+ vi.mock( import( '@wordpress/data' ), () => ( {
10
+ useDispatch: vi.fn(),
11
+ useSelect: vi.fn(),
9
12
  } ) );
10
13
 
11
14
  // Mock coreStore
12
- jest.mock( '@wordpress/core-data', () => ( {
15
+ vi.mock( import( '@wordpress/core-data' ), () => ( {
13
16
  store: {},
14
17
  } ) );
15
18
 
16
19
  // Mock blockEditorStore
17
- jest.mock( '@wordpress/block-editor', () => ( {
20
+ vi.mock( import( '@wordpress/block-editor' ), () => ( {
18
21
  store: {},
19
22
  } ) );
20
23
 
21
24
  // Mock @wordpress/blocks
22
- jest.mock( '@wordpress/blocks', () => ( {
23
- serialize: jest.fn( ( blocks ) => JSON.stringify( blocks ) ),
24
- parse: jest.fn( ( content ) => {
25
+ vi.mock( import( '@wordpress/blocks' ), () => ( {
26
+ serialize: vi.fn( ( blocks ) => JSON.stringify( blocks ) ),
27
+ parse: vi.fn( ( content ) => {
25
28
  // Return mock blocks when parsing pattern content
26
29
  if ( content && typeof content === 'string' ) {
27
30
  return [
@@ -34,7 +37,7 @@ jest.mock( '@wordpress/blocks', () => ( {
34
37
  }
35
38
  return [];
36
39
  } ),
37
- createBlock: jest.fn( ( name ) => ( {
40
+ createBlock: vi.fn( ( name ) => ( {
38
41
  name,
39
42
  attributes: {},
40
43
  innerBlocks: [],
@@ -42,17 +45,17 @@ jest.mock( '@wordpress/blocks', () => ( {
42
45
  } ) );
43
46
 
44
47
  // Mock lock-unlock
45
- const mockUnlock = jest.fn();
46
- jest.mock( '../../../lock-unlock', () => ( {
48
+ const mockUnlock = vi.fn();
49
+ vi.mock( import( '../../../lock-unlock' ), () => ( {
47
50
  unlock: ( select ) => mockUnlock( select ),
48
51
  } ) );
49
52
 
50
53
  describe( 'useCreateOverlayTemplatePart', () => {
51
- const mockSaveEntityRecord = jest.fn();
52
- const mockGetPatternBySlug = jest.fn();
54
+ const mockSaveEntityRecord = vi.fn();
55
+ const mockGetPatternBySlug = vi.fn();
53
56
 
54
57
  beforeEach( () => {
55
- jest.clearAllMocks();
58
+ vi.clearAllMocks();
56
59
  useDispatch.mockReturnValue( {
57
60
  saveEntityRecord: mockSaveEntityRecord,
58
61
  } );
@@ -62,8 +65,8 @@ describe( 'useCreateOverlayTemplatePart', () => {
62
65
  } );
63
66
 
64
67
  useSelect.mockImplementation( ( selector ) => {
65
- const mockSelect = jest.fn( ( store ) => {
66
- if ( store === require( '@wordpress/block-editor' ).store ) {
68
+ const mockSelect = vi.fn( ( store ) => {
69
+ if ( store === blockEditorStore ) {
67
70
  return {}; // Return mock block editor store
68
71
  }
69
72
  return {};
@@ -175,10 +178,6 @@ describe( 'useCreateOverlayTemplatePart', () => {
175
178
 
176
179
  mockSaveEntityRecord.mockResolvedValue( createdOverlay );
177
180
 
178
- // Import mocked functions
179
- const blocksModule = require( '@wordpress/blocks' );
180
- const { parse, serialize } = blocksModule;
181
-
182
181
  const { result: createOverlayTemplatePart } = renderHook( () =>
183
182
  useCreateOverlayTemplatePart( overlayTemplateParts )
184
183
  );
@@ -213,10 +212,6 @@ describe( 'useCreateOverlayTemplatePart', () => {
213
212
  mockSaveEntityRecord.mockResolvedValue( createdOverlay );
214
213
  mockGetPatternBySlug.mockReturnValue( null );
215
214
 
216
- // Import mocked functions
217
- const blocksModule = require( '@wordpress/blocks' );
218
- const { createBlock, serialize } = blocksModule;
219
-
220
215
  const { result: createOverlayTemplatePart } = renderHook( () =>
221
216
  useCreateOverlayTemplatePart( overlayTemplateParts )
222
217
  );
@@ -1,3 +1,4 @@
1
+ import { describe, expect, it } from 'vitest';
1
2
  import { getUniqueTemplatePartTitle, getCleanTemplatePartSlug } from '../utils';
2
3
 
3
4
  describe( 'getUniqueTemplatePartTitle', () => {
@@ -76,6 +76,15 @@
76
76
  }
77
77
  }
78
78
 
79
+ // The AccessibleMenuDescription component renders a visually-hidden element as
80
+ // a DOM sibling of the navigation container. This breaks the :only-child selector
81
+ // in style.scss that grants flex-grow: 1, causing space-between layout to have
82
+ // no room to distribute items in the editor. Restore flex-grow via the
83
+ // editor-only class that InnerBlocks adds to the container.
84
+ .wp-block-navigation__container.block-editor-block-list__layout {
85
+ flex-grow: 1;
86
+ }
87
+
79
88
  // IE fix for submenu visibility on parent focus.
80
89
  .is-editing > .wp-block-navigation__container {
81
90
  visibility: visible;
@@ -720,3 +729,7 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
720
729
  .wp-block-navigation__overlay-help-text-wrapper {
721
730
  margin-top: $grid-unit-10;
722
731
  }
732
+
733
+ .wp-block-audio__autoplay-help-text {
734
+ grid-column: 1/-1;
735
+ }
@@ -417,7 +417,7 @@ class WP_Navigation_Block_Renderer {
417
417
  * @since 6.5.0
418
418
  *
419
419
  * @param string $overlay_template_part_id The overlay template part ID in format "theme//slug".
420
- * @param array $attributes The block attributes.
420
+ * @param array $attributes The block attributes.
421
421
  * @return WP_Block_List Returns the inner blocks for the overlay template part.
422
422
  */
423
423
  private static function get_overlay_blocks_from_template_part( $overlay_template_part_id, $attributes ) {
@@ -518,7 +518,7 @@ class WP_Navigation_Block_Renderer {
518
518
  * @since 6.5.0
519
519
  *
520
520
  * @param array $attributes The block attributes.
521
- * @param WP_Block $block The parsed block.
521
+ * @param WP_Block $block The parsed block.
522
522
  * @return WP_Block_List Returns the inner blocks for the navigation block.
523
523
  */
524
524
  private static function get_inner_blocks( $attributes, $block ) {
@@ -740,8 +740,8 @@ class WP_Navigation_Block_Renderer {
740
740
  *
741
741
  * @since 6.5.0
742
742
  *
743
- * @param array $attributes The block attributes.
744
- * @param WP_Block_List $inner_blocks The list of inner blocks.
743
+ * @param array $attributes The block attributes.
744
+ * @param WP_Block_List $inner_blocks The list of inner blocks.
745
745
  * @param string $inner_blocks_html The markup for the inner blocks.
746
746
  * @return string Returns the container markup.
747
747
  */
@@ -892,8 +892,8 @@ class WP_Navigation_Block_Renderer {
892
892
  *
893
893
  * @since 6.5.0
894
894
  *
895
- * @param array $attributes The block attributes.
896
- * @param WP_Block_List $inner_blocks A list of inner blocks.
895
+ * @param array $attributes The block attributes.
896
+ * @param WP_Block_List $inner_blocks A list of inner blocks.
897
897
  * @return string Returns the navigation block markup.
898
898
  */
899
899
  private static function get_nav_attributes( $attributes, $inner_blocks ) {
@@ -979,7 +979,7 @@ class WP_Navigation_Block_Renderer {
979
979
  *
980
980
  * @since 6.5.0
981
981
  *
982
- * @param array $attributes The block attributes.
982
+ * @param array $attributes The block attributes.
983
983
  * @param WP_Block_List $inner_blocks The list of inner blocks.
984
984
  * @return string Returns the navigation wrapper markup.
985
985
  */
@@ -1786,12 +1786,12 @@ add_filter( 'render_block_data', 'block_core_navigation_typographic_presets_back
1786
1786
  *
1787
1787
  * @deprecated 6.3.0 Use WP_Navigation_Fallback::parse_blocks_from_menu_items() instead.
1788
1788
  *
1789
- * @param array $menu_items An array of menu items that represent
1790
- * an individual level of a menu.
1791
- * @param array $menu_items_by_parent_id An array keyed by the id of the
1792
- * parent menu where each element is an
1793
- * array of menu items that belong to
1794
- * that parent.
1789
+ * @param array $menu_items An array of menu items that represent
1790
+ * an individual level of a menu.
1791
+ * @param array $menu_items_by_parent_id An array keyed by the id of the
1792
+ * parent menu where each element is an
1793
+ * array of menu items that belong to
1794
+ * that parent.
1795
1795
  * @return array An array of parsed block data.
1796
1796
  */
1797
1797
  function block_core_navigation_parse_blocks_from_menu_items( $menu_items, $menu_items_by_parent_id ) {
@@ -1891,7 +1891,7 @@ function block_core_navigation_get_classic_menu_fallback() {
1891
1891
  *
1892
1892
  * @deprecated 6.3.0 Use WP_Navigation_Fallback::get_classic_menu_fallback_blocks() instead.
1893
1893
  *
1894
- * @param object $classic_nav_menu WP_Term The classic navigation object to convert.
1894
+ * @param object $classic_nav_menu WP_Term The classic navigation object to convert.
1895
1895
  * @return array the normalized parsed blocks.
1896
1896
  */
1897
1897
  function block_core_navigation_get_classic_menu_fallback_blocks( $classic_nav_menu ) {
@@ -1,8 +1,9 @@
1
+ import { describe, expect, it, vi } from 'vitest';
1
2
  import menuItemsToBlocks from '../menu-items-to-blocks';
2
3
 
3
4
  // Mock createBlock to avoid creating the blocks in test environment.
4
- jest.mock( '@wordpress/blocks', () => {
5
- const blocks = jest.requireActual( '@wordpress/blocks' );
5
+ vi.mock( import( '@wordpress/blocks' ), async ( importOriginal ) => {
6
+ const blocks = await importOriginal();
6
7
 
7
8
  return {
8
9
  ...blocks,
@@ -1,7 +1,10 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
1
2
  import { createRegistry, useSelect } from '@wordpress/data';
2
3
  import { store as coreStore } from '@wordpress/core-data';
3
4
  import useNavigationMenu from '../use-navigation-menu';
4
5
 
6
+ vi.mock( '@wordpress/api-fetch' );
7
+
5
8
  const BASE_ENTITY = {
6
9
  kind: 'postType',
7
10
  name: 'wp_navigation',
@@ -24,11 +27,11 @@ function createRegistryWithStores() {
24
27
  return registry;
25
28
  }
26
29
 
27
- jest.mock( '@wordpress/data/src/components/use-select', () => {
30
+ vi.mock( import( '@wordpress/data' ), async ( importOriginal ) => ( {
31
+ ...( await importOriginal() ),
28
32
  // This allows us to tweak the returned value on each test.
29
- const mock = jest.fn();
30
- return mock;
31
- } );
33
+ useSelect: vi.fn(),
34
+ } ) );
32
35
 
33
36
  function resolveRecords( registry, menus ) {
34
37
  const dispatch = registry.dispatch( coreStore );
@@ -1,7 +1,9 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
2
+
1
3
  let mockRegisteredStore;
2
4
  let mockCurrentContext;
3
5
 
4
- jest.mock( '@wordpress/interactivity', () => ( {
6
+ vi.mock( import( '@wordpress/interactivity' ), () => ( {
5
7
  store: ( name, config ) => {
6
8
  mockRegisteredStore = config;
7
9
  return config;
@@ -13,7 +15,7 @@ jest.mock( '@wordpress/interactivity', () => ( {
13
15
 
14
16
  describe( 'Navigation view script', () => {
15
17
  beforeEach( async () => {
16
- jest.resetModules();
18
+ vi.resetModules();
17
19
  mockRegisteredStore = null;
18
20
  mockCurrentContext = null;
19
21
  // Import the view.js script to register the store
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://schemas.wp.org/trunk/block.json",
3
3
  "apiVersion": 3,
4
4
  "name": "core/navigation-link",
5
- "title": "Custom Link",
5
+ "title": "Navigation Link",
6
6
  "category": "design",
7
7
  "parent": [ "core/navigation" ],
8
8
  "allowedBlocks": [
@@ -0,0 +1,58 @@
1
+ // @ts-expect-error `@wordpress/block-editor` does not expose type declarations for its entry point.
2
+ import { InnerBlocks } from '@wordpress/block-editor';
3
+
4
+ type NavigationLinkDeprecatedAttributes = {
5
+ label?: string;
6
+ type?: string;
7
+ nofollow?: boolean;
8
+ description?: string;
9
+ id?: number;
10
+ opensInNewTab?: boolean;
11
+ url?: string;
12
+ };
13
+
14
+ const deprecated = [
15
+ {
16
+ isEligible( attributes: NavigationLinkDeprecatedAttributes ) {
17
+ return attributes.nofollow;
18
+ },
19
+
20
+ attributes: {
21
+ label: {
22
+ type: 'string',
23
+ },
24
+ type: {
25
+ type: 'string',
26
+ },
27
+ nofollow: {
28
+ type: 'boolean',
29
+ },
30
+ description: {
31
+ type: 'string',
32
+ },
33
+ id: {
34
+ type: 'number',
35
+ },
36
+ opensInNewTab: {
37
+ type: 'boolean',
38
+ default: false,
39
+ },
40
+ url: {
41
+ type: 'string',
42
+ },
43
+ },
44
+
45
+ migrate( { nofollow, ...rest }: NavigationLinkDeprecatedAttributes ) {
46
+ return {
47
+ rel: nofollow ? 'nofollow' : '',
48
+ ...rest,
49
+ };
50
+ },
51
+
52
+ save() {
53
+ return <InnerBlocks.Content />;
54
+ },
55
+ },
56
+ ];
57
+
58
+ export default deprecated;