@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
@@ -1,11 +1,13 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
1
2
  import { renderHook } from '@testing-library/react';
3
+ import { useSelect } from '@wordpress/data';
2
4
  import { useEnableLinkStatusValidation } from '../use-enable-link-status-validation';
5
+
3
6
  // Mock useSelect directly at the implementation level to avoid loading complex dependencies
4
- jest.mock( '@wordpress/data/src/components/use-select', () => {
5
- const mock = jest.fn();
6
- return mock;
7
- } );
8
- const { useSelect } = require( '@wordpress/data' );
7
+ vi.mock( import( '@wordpress/data' ), async ( importOriginal ) => ( {
8
+ ...( await importOriginal() ),
9
+ useSelect: vi.fn(),
10
+ } ) );
9
11
 
10
12
  describe( 'useEnableLinkStatusValidation', () => {
11
13
  const mockClientId = 'test-client-id';
@@ -13,7 +15,7 @@ describe( 'useEnableLinkStatusValidation', () => {
13
15
  const mockSelectedBlockId = 'selected-block-id';
14
16
 
15
17
  beforeEach( () => {
16
- jest.clearAllMocks();
18
+ vi.clearAllMocks();
17
19
  } );
18
20
 
19
21
  it( 'should return true when root navigation block is selected', () => {
@@ -1,3 +1,4 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
1
2
  import { renderHook, act } from '@testing-library/react';
2
3
  import {
3
4
  useBlockBindingsUtils,
@@ -10,22 +11,22 @@ import {
10
11
  } from '../use-entity-binding';
11
12
 
12
13
  // Mock the entire @wordpress/block-editor module
13
- jest.mock( '@wordpress/block-editor', () => ( {
14
- useBlockBindingsUtils: jest.fn(),
15
- useBlockEditingMode: jest.fn(),
14
+ vi.mock( import( '@wordpress/block-editor' ), () => ( {
15
+ useBlockBindingsUtils: vi.fn(),
16
+ useBlockEditingMode: vi.fn(),
16
17
  } ) );
17
18
 
18
19
  // Mock useSelect specifically to avoid needing to set up full data store
19
- jest.mock( '@wordpress/data/src/components/use-select', () => {
20
- const mock = jest.fn();
21
- return mock;
22
- } );
20
+ vi.mock( import( '@wordpress/data' ), async ( importOriginal ) => ( {
21
+ ...( await importOriginal() ),
22
+ useSelect: vi.fn(),
23
+ } ) );
23
24
 
24
25
  describe( 'useEntityBinding', () => {
25
- const mockUpdateBlockBindings = jest.fn();
26
+ const mockUpdateBlockBindings = vi.fn();
26
27
 
27
28
  beforeEach( () => {
28
- jest.clearAllMocks();
29
+ vi.clearAllMocks();
29
30
  useBlockBindingsUtils.mockReturnValue( {
30
31
  updateBlockBindings: mockUpdateBlockBindings,
31
32
  } );
@@ -325,9 +326,9 @@ describe( 'useEntityBinding', () => {
325
326
  } );
326
327
 
327
328
  it( 'handles invalid kind gracefully in createBinding', () => {
328
- const consoleSpy = jest
329
+ const consoleSpy = vi
329
330
  .spyOn( console, 'warn' )
330
- .mockImplementation();
331
+ .mockImplementation( () => {} );
331
332
 
332
333
  const attributes = {
333
334
  metadata: {},
@@ -1,35 +1,38 @@
1
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
1
2
  import { renderHook } from '@testing-library/react';
3
+ import { useDispatch } from '@wordpress/data';
4
+ import { useHandleLinkChange } from '../use-handle-link-change';
5
+ import { updateAttributes } from '../update-attributes';
6
+ import { useEntityBinding } from '../use-entity-binding';
2
7
  // Mock the entire @wordpress/block-editor module
3
- jest.mock( '@wordpress/block-editor', () => ( {
8
+ vi.mock( import( '@wordpress/block-editor' ), () => ( {
4
9
  store: {},
5
10
  } ) );
11
+
6
12
  // Mock the entire @wordpress/core-data module
7
- jest.mock( '@wordpress/core-data', () => ( {
13
+ vi.mock( import( '@wordpress/core-data' ), () => ( {
8
14
  store: {},
9
15
  } ) );
16
+
10
17
  // Mock useDispatch specifically to avoid needing to set up full data store
11
- jest.mock( '@wordpress/data', () => ( {
12
- useDispatch: jest.fn(),
13
- createSelector: jest.fn( ( fn ) => fn ),
14
- createRegistrySelector: jest.fn( ( fn ) => fn ),
15
- createReduxStore: jest.fn( () => ( {} ) ),
16
- combineReducers: jest.fn( ( reducers ) => ( state = {}, action ) => {
18
+ vi.mock( import( '@wordpress/data' ), () => ( {
19
+ useDispatch: 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 ) => {
17
24
  const newState = {};
18
25
  Object.keys( reducers ).forEach( ( key ) => {
19
26
  newState[ key ] = reducers[ key ]( state[ key ], action );
20
27
  } );
21
28
  return newState;
22
29
  } ),
23
- register: jest.fn(),
30
+ register: vi.fn(),
24
31
  } ) );
25
- import { useDispatch } from '@wordpress/data';
26
- import { useHandleLinkChange } from '../use-handle-link-change';
27
- import { updateAttributes } from '../update-attributes';
28
- import { useEntityBinding } from '../use-entity-binding';
29
32
 
30
33
  // Mock internal dependencies
31
- jest.mock( '../update-attributes' );
32
- jest.mock( '../use-entity-binding' );
34
+ vi.mock( import( '../update-attributes' ) );
35
+ vi.mock( import( '../use-entity-binding' ) );
33
36
 
34
37
  describe( 'useHandleLinkChange', () => {
35
38
  let mockSetAttributes;
@@ -41,10 +44,10 @@ describe( 'useHandleLinkChange', () => {
41
44
 
42
45
  beforeEach( () => {
43
46
  // Reset mocks
44
- mockSetAttributes = jest.fn();
45
- mockUpdateBlockAttributes = jest.fn();
46
- mockCreateBinding = jest.fn();
47
- mockClearBinding = jest.fn();
47
+ mockSetAttributes = vi.fn();
48
+ mockUpdateBlockAttributes = vi.fn();
49
+ mockCreateBinding = vi.fn();
50
+ mockClearBinding = vi.fn();
48
51
 
49
52
  // Mock useDispatch
50
53
  useDispatch.mockReturnValue( {
@@ -70,7 +73,7 @@ describe( 'useHandleLinkChange', () => {
70
73
  } );
71
74
 
72
75
  afterEach( () => {
73
- jest.clearAllMocks();
76
+ vi.clearAllMocks();
74
77
  } );
75
78
 
76
79
  describe( 'creating new entity links', () => {
@@ -1,34 +1,37 @@
1
+ import { beforeEach, describe, expect, it, test, vi } from 'vitest';
1
2
  import { renderHook } from '@testing-library/react';
2
3
  import { useSelect } from '@wordpress/data';
4
+ import {
5
+ computeDisplayUrl,
6
+ computeBadges,
7
+ isHomepage,
8
+ useLinkPreview,
9
+ } from '../use-link-preview';
3
10
  // Mock useRemoteUrlData from block-editor
4
- const mockUseRemoteUrlData = jest.fn();
5
- jest.mock( '@wordpress/block-editor', () => ( {
11
+ const mockUseRemoteUrlData = vi.fn();
12
+
13
+ vi.mock( import( '@wordpress/block-editor' ), () => ( {
6
14
  privateApis: {},
7
15
  store: {},
8
16
  } ) );
17
+
9
18
  // Mock the unlock function to return useRemoteUrlData, isHashLink, and isRelativePath
10
- jest.mock( '../../../lock-unlock', () => ( {
11
- unlock: jest.fn( () => ( {
19
+ vi.mock( import( '../../../lock-unlock' ), () => ( {
20
+ unlock: vi.fn( () => ( {
12
21
  useRemoteUrlData: ( ...args ) => mockUseRemoteUrlData( ...args ),
13
22
  isHashLink: ( url ) => url?.startsWith( '#' ),
14
23
  isRelativePath: ( url ) =>
15
24
  url?.startsWith( '/' ) && ! url?.startsWith( '//' ),
16
25
  } ) ),
17
26
  } ) );
18
- import {
19
- computeDisplayUrl,
20
- computeBadges,
21
- isHomepage,
22
- useLinkPreview,
23
- } from '../use-link-preview';
24
27
 
25
28
  // Mock @wordpress/data
26
- jest.mock( '@wordpress/data', () => ( {
27
- useSelect: jest.fn(),
29
+ vi.mock( import( '@wordpress/data' ), () => ( {
30
+ useSelect: vi.fn(),
28
31
  } ) );
29
32
 
30
33
  // Mock @wordpress/core-data
31
- jest.mock( '@wordpress/core-data', () => ( {
34
+ vi.mock( import( '@wordpress/core-data' ), () => ( {
32
35
  store: {},
33
36
  } ) );
34
37
 
@@ -448,7 +451,7 @@ it( 'should show "Page" badge for internal custom links', () => {
448
451
 
449
452
  describe( 'useLinkPreview', () => {
450
453
  beforeEach( () => {
451
- jest.clearAllMocks();
454
+ vi.clearAllMocks();
452
455
  mockUseRemoteUrlData.mockReturnValue( { richData: null } );
453
456
  useSelect.mockReturnValue( null );
454
457
  } );
@@ -1,6 +1,6 @@
1
- // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
2
 
3
- exports[`hooks enhanceNavigationLinkVariations enhances variations with icon and isActive functions 1`] = `
3
+ exports[`hooks > enhanceNavigationLinkVariations > enhances variations with icon and isActive functions 1`] = `
4
4
  {
5
5
  "extraProp": "extraProp",
6
6
  "name": "core/navigation-link",
@@ -66,14 +66,31 @@ exports[`hooks enhanceNavigationLinkVariations enhances variations with icon and
66
66
  },
67
67
  "description": "A link to a category.",
68
68
  "icon": <SVG
69
- fill="currentColor"
69
+ stroke="currentColor"
70
+ strokeWidth="1.5"
71
+ style={
72
+ {
73
+ "fill": "none",
74
+ }
75
+ }
70
76
  viewBox="0 0 24 24"
71
77
  xmlns="http://www.w3.org/2000/svg"
72
78
  >
73
79
  <Path
74
- clipRule="evenodd"
75
- d="M6 5.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM4 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2V6zm11-.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM13 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2h-3a2 2 0 01-2-2V6zm5 8.5h-3a.5.5 0 00-.5.5v3a.5.5 0 00.5.5h3a.5.5 0 00.5-.5v-3a.5.5 0 00-.5-.5zM15 13a2 2 0 00-2 2v3a2 2 0 002 2h3a2 2 0 002-2v-3a2 2 0 00-2-2h-3zm-9 1.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5v-3a.5.5 0 01.5-.5zM4 15a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2v-3z"
76
- fillRule="evenodd"
80
+ d="M4.75 6C4.75 5.30964 5.30964 4.75 6 4.75H9C9.69036 4.75 10.25 5.30964 10.25 6V9C10.25 9.69036 9.69036 10.25 9 10.25H6C5.30964 10.25 4.75 9.69036 4.75 9V6Z"
81
+ vectorEffect="non-scaling-stroke"
82
+ />
83
+ <Path
84
+ d="M4.75 15C4.75 14.3096 5.30964 13.75 6 13.75H9C9.69036 13.75 10.25 14.3096 10.25 15V18C10.25 18.6904 9.69036 19.25 9 19.25H6C5.30964 19.25 4.75 18.6904 4.75 18V15Z"
85
+ vectorEffect="non-scaling-stroke"
86
+ />
87
+ <Path
88
+ d="M13.75 6C13.75 5.30964 14.3096 4.75 15 4.75H18C18.6904 4.75 19.25 5.30964 19.25 6V9C19.25 9.69036 18.6904 10.25 18 10.25H15C14.3096 10.25 13.75 9.69036 13.75 9V6Z"
89
+ vectorEffect="non-scaling-stroke"
90
+ />
91
+ <Path
92
+ d="M13.75 15C13.75 14.3096 14.3096 13.75 15 13.75H18C18.6904 13.75 19.25 14.3096 19.25 15V18C19.25 18.6904 18.6904 19.25 18 19.25H15C14.3096 19.25 13.75 18.6904 13.75 18V15Z"
93
+ vectorEffect="non-scaling-stroke"
77
94
  />
78
95
  </SVG>,
79
96
  "isActive": [Function],
@@ -1,3 +1,4 @@
1
+ import { describe, expect, it } from 'vitest';
1
2
  import { _x, sprintf } from '@wordpress/i18n';
2
3
 
3
4
  /**
@@ -1,3 +1,4 @@
1
+ import { describe, expect, it } from 'vitest';
1
2
  import { __ } from '@wordpress/i18n';
2
3
  import { enhanceNavigationLinkVariations } from '../hooks';
3
4
 
@@ -0,0 +1,19 @@
1
+ import { __ } from '@wordpress/i18n';
2
+ import { customLink as linkIcon } from '@wordpress/icons';
3
+
4
+ const variations = [
5
+ {
6
+ name: 'custom-link',
7
+ title: __( 'Custom Link' ),
8
+ description: __( 'Add a custom link to your navigation.' ),
9
+ icon: linkIcon,
10
+ attributes: {
11
+ kind: 'custom',
12
+ },
13
+ isActive: ( blockAttributes ) => blockAttributes.kind === 'custom',
14
+ isDefault: true,
15
+ scope: [ 'inserter' ],
16
+ },
17
+ ];
18
+
19
+ export default variations;
@@ -1,14 +1,10 @@
1
1
  import { page, addSubmenu } from '@wordpress/icons';
2
- import { _x, __ } from '@wordpress/i18n';
3
- import { privateApis as blocksPrivateApis } from '@wordpress/blocks';
2
+ import { _x } from '@wordpress/i18n';
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
 
@@ -48,32 +44,4 @@ export const settings = {
48
44
  transforms,
49
45
  };
50
46
 
51
- if ( window.__experimentalContentOnlyInspectorFields ) {
52
- settings[ fieldsKey ] = [
53
- {
54
- id: 'label',
55
- label: __( 'Label' ),
56
- type: 'text',
57
- Edit: 'rich-text', //TODO: replace with custom component
58
- },
59
- {
60
- id: 'link',
61
- label: __( 'Link' ),
62
- type: 'url',
63
- Edit: 'link', // TODO: replace with custom component
64
- getValue: ( { item } ) => ( {
65
- url: item.url,
66
- rel: item.rel,
67
- } ),
68
- setValue: ( { value } ) => ( {
69
- url: value.url,
70
- rel: value.rel,
71
- } ),
72
- },
73
- ];
74
- settings[ formKey ] = {
75
- fields: [ 'label', 'link' ],
76
- };
77
- }
78
-
79
47
  export const init = () => initBlock( { name, metadata, settings } );
@@ -36,8 +36,8 @@ function block_core_page_list_get_submenu_visibility( $context ) {
36
36
  *
37
37
  * @since 5.8.0
38
38
  *
39
- * @param array $attributes Block attributes.
40
- * @param array $context Navigation block context.
39
+ * @param array $attributes Block attributes.
40
+ * @param array $context Navigation block context.
41
41
  * @return array Colors CSS classes and inline styles.
42
42
  */
43
43
  function block_core_page_list_build_css_colors( $attributes, $context ) {
@@ -128,14 +128,14 @@ function block_core_page_list_build_css_colors( $attributes, $context ) {
128
128
  *
129
129
  * @since 5.8.0
130
130
  *
131
- * @param string $submenu_visibility The submenu visibility mode: 'hover', 'click', or 'always'.
132
- * @param boolean $show_submenu_icons Whether to show submenu indicator icons.
133
- * @param boolean $is_navigation_child If block is a child of Navigation block.
134
- * @param array $nested_pages The array of nested pages.
135
- * @param boolean $is_nested Whether the submenu is nested or not.
131
+ * @param string $submenu_visibility The submenu visibility mode: 'hover', 'click', or 'always'.
132
+ * @param boolean $show_submenu_icons Whether to show submenu indicator icons.
133
+ * @param boolean $is_navigation_child If block is a child of Navigation block.
134
+ * @param array $nested_pages The array of nested pages.
135
+ * @param boolean $is_nested Whether the submenu is nested or not.
136
136
  * @param array $active_page_ancestor_ids An array of ancestor ids for active page.
137
- * @param array $colors Color information for overlay styles.
138
- * @param integer $depth The nesting depth.
137
+ * @param array $colors Color information for overlay styles.
138
+ * @param integer $depth The nesting depth.
139
139
  *
140
140
  * @return string List markup.
141
141
  */
@@ -227,7 +227,7 @@ function block_core_page_list_render_nested_page_list( $submenu_visibility, $sho
227
227
  * @since 5.8.0
228
228
  *
229
229
  * @param array $current_level The level being iterated through.
230
- * @param array $children The children grouped by parent post ID.
230
+ * @param array $children The children grouped by parent post ID.
231
231
  *
232
232
  * @return array The nested array of pages.
233
233
  */
@@ -1,3 +1,4 @@
1
+ import { describe, expect, it, vi } from 'vitest';
1
2
  import { convertToNavigationLinks } from '../use-convert-to-navigation-links';
2
3
 
3
4
  // Expected entity binding structure for navigation links
@@ -12,8 +13,8 @@ const EXPECTED_ENTITY_BINDING = {
12
13
 
13
14
  // Mock createBlock to avoid creating the blocks in test environment
14
15
  // as convertToNavigationLinks calls this method internally.
15
- jest.mock( '@wordpress/blocks', () => {
16
- const blocks = jest.requireActual( '@wordpress/blocks' );
16
+ vi.mock( import( '@wordpress/blocks' ), async ( importOriginal ) => {
17
+ const blocks = await importOriginal();
17
18
 
18
19
  return {
19
20
  ...blocks,
@@ -1,15 +1,11 @@
1
1
  import { __ } from '@wordpress/i18n';
2
2
  import { paragraph 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';
7
6
  import metadata from './block.json';
8
7
  import save from './save';
9
8
  import transforms from './transforms';
10
- import { unlock } from '../lock-unlock';
11
-
12
- const { fieldsKey, formKey } = unlock( blocksPrivateApis );
13
9
 
14
10
  const { name } = metadata;
15
11
 
@@ -56,18 +52,4 @@ export const settings = {
56
52
  save,
57
53
  };
58
54
 
59
- if ( window.__experimentalContentOnlyInspectorFields ) {
60
- settings[ fieldsKey ] = [
61
- {
62
- id: 'content',
63
- label: __( 'Content' ),
64
- type: 'text',
65
- Edit: 'rich-text', // TODO: replace with custom component
66
- },
67
- ];
68
- settings[ formKey ] = {
69
- fields: [ 'content' ],
70
- };
71
- }
72
-
73
55
  export const init = () => initBlock( { name, metadata, settings } );
@@ -42,7 +42,7 @@ p.has-drop-cap.has-background {
42
42
 
43
43
  // Specificity is reduced to 0-1-0 so global styles can override this.
44
44
  :root :where(p.has-background) {
45
- padding: $block-bg-padding--v $block-bg-padding--h;
45
+ padding: $block-bg-padding;
46
46
  }
47
47
 
48
48
  // Use :where to contain the specificity of this rule
@@ -1,7 +1,6 @@
1
1
  import { useRef } from '@wordpress/element';
2
2
  import { useRefEffect } from '@wordpress/compose';
3
3
  import { privateApis as richTextPrivateApis } from '@wordpress/rich-text';
4
- import { ENTER } from '@wordpress/keycodes';
5
4
  import { useSelect, useDispatch, useRegistry } from '@wordpress/data';
6
5
  import { store as blockEditorStore } from '@wordpress/block-editor';
7
6
  import {
@@ -29,12 +28,12 @@ export function useOnEnter( props ) {
29
28
  const propsRef = useRef( props );
30
29
  propsRef.current = props;
31
30
  return useRefEffect( ( element ) => {
32
- function onKeyDown( event ) {
31
+ function onBeforeInput( event ) {
33
32
  if ( event.defaultPrevented ) {
34
33
  return;
35
34
  }
36
35
 
37
- if ( event.keyCode !== ENTER ) {
36
+ if ( event.inputType !== 'insertParagraph' ) {
38
37
  return;
39
38
  }
40
39
 
@@ -120,8 +119,16 @@ export function useOnEnter( props ) {
120
119
  } );
121
120
  }
122
121
 
123
- // Capture phase so we run before writing-flow's ancestor-bubble
124
- // keydown handlers that gate on `event.defaultPrevented`.
125
- return subscribeOwnedListener( element, 'keydown', onKeyDown, true );
122
+ // Enter is handled on beforeinput: moving focus while the keydown
123
+ // is still being handled leaves the iOS keyboard's
124
+ // auto-capitalization stale. Capture phase so we run before
125
+ // writing-flow's ancestor-bubble handler that gates on
126
+ // `event.defaultPrevented`.
127
+ return subscribeOwnedListener(
128
+ element,
129
+ 'beforeinput',
130
+ onBeforeInput,
131
+ true
132
+ );
126
133
  }, [] );
127
134
  }
@@ -1,3 +1,4 @@
1
+ import { beforeEach, describe, expect, it } from 'vitest';
1
2
  import {
2
3
  parsePatternDependencies,
3
4
  registerDependency,
@@ -1,3 +1,4 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
1
2
  import { fireEvent, render, screen } from '@testing-library/react';
2
3
  import { useDispatch, useSelect } from '@wordpress/data';
3
4
  import PlaylistEdit from '../edit';
@@ -8,7 +9,7 @@ let mediaReplaceFlowProps;
8
9
  // test can look at what ended up in the tracklist.
9
10
  let mockTracks = [];
10
11
 
11
- jest.mock( '@wordpress/block-editor', () => ( {
12
+ vi.mock( '@wordpress/block-editor', () => ( {
12
13
  store: {},
13
14
  BlockControls: ( { children } ) => <div>{ children }</div>,
14
15
  BlockIcon: () => <span />,
@@ -51,19 +52,19 @@ jest.mock( '@wordpress/block-editor', () => ( {
51
52
  } ),
52
53
  } ) );
53
54
 
54
- jest.mock( '@wordpress/blocks', () => ( {
55
- createBlock: jest.fn( ( name, attributes ) => ( {
55
+ vi.mock( '@wordpress/blocks', () => ( {
56
+ createBlock: vi.fn( ( name, attributes ) => ( {
56
57
  name,
57
58
  attributes,
58
59
  clientId: 'new-track',
59
60
  } ) ),
60
61
  } ) );
61
62
 
62
- jest.mock( '@wordpress/blob', () => ( {
63
- createBlobURL: jest.fn( () => 'blob:track' ),
63
+ vi.mock( '@wordpress/blob', () => ( {
64
+ createBlobURL: vi.fn( () => 'blob:track' ),
64
65
  } ) );
65
66
 
66
- jest.mock( '@wordpress/components', () => ( {
67
+ vi.mock( '@wordpress/components', () => ( {
67
68
  Disabled: ( { children } ) => <div>{ children }</div>,
68
69
  SelectControl: () => <div />,
69
70
  ToggleControl: () => <div />,
@@ -71,33 +72,33 @@ jest.mock( '@wordpress/components', () => ( {
71
72
  __experimentalToolsPanelItem: ( { children } ) => <div>{ children }</div>,
72
73
  } ) );
73
74
 
74
- jest.mock( '@wordpress/data', () => ( {
75
- useDispatch: jest.fn(),
76
- useSelect: jest.fn(),
75
+ vi.mock( '@wordpress/data', () => ( {
76
+ useDispatch: vi.fn(),
77
+ useSelect: vi.fn(),
77
78
  } ) );
78
79
 
79
- jest.mock( '@wordpress/i18n', () => ( {
80
+ vi.mock( '@wordpress/i18n', () => ( {
80
81
  __: ( text ) => text,
81
82
  _x: ( text ) => text,
82
83
  } ) );
83
84
 
84
- jest.mock( '@wordpress/icons', () => ( {
85
+ vi.mock( '@wordpress/icons', () => ( {
85
86
  playlist: 'playlist',
86
87
  } ) );
87
88
 
88
- jest.mock( '@wordpress/notices', () => ( {
89
+ vi.mock( '@wordpress/notices', () => ( {
89
90
  store: {},
90
91
  } ) );
91
92
 
92
- jest.mock( '../../utils/caption', () => ( {
93
+ vi.mock( '../../utils/caption', () => ( {
93
94
  Caption: () => <figcaption />,
94
95
  } ) );
95
96
 
96
- jest.mock( '../../utils/hooks', () => ( {
97
+ vi.mock( '../../utils/hooks', () => ( {
97
98
  useToolsPanelDropdownMenuProps: () => ( {} ),
98
99
  } ) );
99
100
 
100
- jest.mock( '../../utils/waveform-player', () => ( {
101
+ vi.mock( '../../utils/waveform-player', () => ( {
101
102
  WaveformPlayer: () => <div />,
102
103
  } ) );
103
104
 
@@ -141,15 +142,15 @@ describe( 'PlaylistEdit', () => {
141
142
  beforeEach( () => {
142
143
  mediaPlaceholderProps = undefined;
143
144
  mediaReplaceFlowProps = undefined;
144
- replaceInnerBlocks = jest.fn();
145
- insertBlocks = jest.fn();
146
- selectBlock = jest.fn();
145
+ replaceInnerBlocks = vi.fn();
146
+ insertBlocks = vi.fn();
147
+ selectBlock = vi.fn();
147
148
  useDispatch.mockReturnValue( {
148
- createErrorNotice: jest.fn(),
149
+ createErrorNotice: vi.fn(),
149
150
  replaceInnerBlocks,
150
151
  insertBlocks,
151
152
  selectBlock,
152
- __unstableMarkNextChangeAsNotPersistent: jest.fn(),
153
+ __unstableMarkNextChangeAsNotPersistent: vi.fn(),
153
154
  } );
154
155
  trackStore( [
155
156
  {
@@ -170,9 +171,9 @@ describe( 'PlaylistEdit', () => {
170
171
  <PlaylistEdit
171
172
  attributes={ defaultAttributes }
172
173
  clientId="playlist-1"
173
- insertBlocksAfter={ jest.fn() }
174
+ insertBlocksAfter={ vi.fn() }
174
175
  isSelected={ false }
175
- setAttributes={ jest.fn() }
176
+ setAttributes={ vi.fn() }
176
177
  />
177
178
  );
178
179
 
@@ -184,9 +185,9 @@ describe( 'PlaylistEdit', () => {
184
185
  <PlaylistEdit
185
186
  attributes={ defaultAttributes }
186
187
  clientId="playlist-1"
187
- insertBlocksAfter={ jest.fn() }
188
+ insertBlocksAfter={ vi.fn() }
188
189
  isSelected={ false }
189
- setAttributes={ jest.fn() }
190
+ setAttributes={ vi.fn() }
190
191
  />
191
192
  );
192
193
 
@@ -201,9 +202,9 @@ describe( 'PlaylistEdit', () => {
201
202
  showTracklist: false,
202
203
  } }
203
204
  clientId="playlist-1"
204
- insertBlocksAfter={ jest.fn() }
205
+ insertBlocksAfter={ vi.fn() }
205
206
  isSelected={ false }
206
- setAttributes={ jest.fn() }
207
+ setAttributes={ vi.fn() }
207
208
  />
208
209
  );
209
210
 
@@ -233,9 +234,9 @@ describe( 'PlaylistEdit', () => {
233
234
  <PlaylistEdit
234
235
  attributes={ defaultAttributes }
235
236
  clientId="playlist-1"
236
- insertBlocksAfter={ jest.fn() }
237
+ insertBlocksAfter={ vi.fn() }
237
238
  isSelected={ false }
238
- setAttributes={ jest.fn() }
239
+ setAttributes={ vi.fn() }
239
240
  />
240
241
  );
241
242
 
@@ -253,9 +254,9 @@ describe( 'PlaylistEdit', () => {
253
254
  <PlaylistEdit
254
255
  attributes={ defaultAttributes }
255
256
  clientId="playlist-1"
256
- insertBlocksAfter={ jest.fn() }
257
+ insertBlocksAfter={ vi.fn() }
257
258
  isSelected={ false }
258
- setAttributes={ jest.fn() }
259
+ setAttributes={ vi.fn() }
259
260
  />
260
261
  );
261
262
 
@@ -1,3 +1,4 @@
1
+ import { describe, expect, it } from 'vitest';
1
2
  import { getTrackAttributes } from '../utils';
2
3
 
3
4
  describe( 'Playlist block edit utilities', () => {