@wordpress/block-library 9.1.0 → 9.3.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 (387) hide show
  1. package/CHANGELOG.md +21 -17
  2. package/build/audio/edit.js +20 -8
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/audio/index.js +4 -0
  5. package/build/audio/index.js.map +1 -1
  6. package/build/audio/transforms.js +1 -1
  7. package/build/audio/transforms.js.map +1 -1
  8. package/build/block/edit.js +0 -1
  9. package/build/block/edit.js.map +1 -1
  10. package/build/block/index.js +5 -1
  11. package/build/block/index.js.map +1 -1
  12. package/build/button/index.js +1 -0
  13. package/build/button/index.js.map +1 -1
  14. package/build/embed/embed-preview.js +4 -4
  15. package/build/embed/embed-preview.js.map +1 -1
  16. package/build/file/edit.js +14 -6
  17. package/build/file/edit.js.map +1 -1
  18. package/build/file/index.js +4 -0
  19. package/build/file/index.js.map +1 -1
  20. package/build/file/transforms.js +2 -3
  21. package/build/file/transforms.js.map +1 -1
  22. package/build/gallery/deprecated.js +6 -54
  23. package/build/gallery/deprecated.js.map +1 -1
  24. package/build/gallery/edit.js +9 -8
  25. package/build/gallery/edit.js.map +1 -1
  26. package/build/gallery/index.js +2 -2
  27. package/build/gallery/index.js.map +1 -1
  28. package/build/gallery/save.js +0 -11
  29. package/build/gallery/save.js.map +1 -1
  30. package/build/gallery/shared.js +0 -27
  31. package/build/gallery/shared.js.map +1 -1
  32. package/build/gallery/transforms.js +29 -80
  33. package/build/gallery/transforms.js.map +1 -1
  34. package/build/group/index.js +1 -0
  35. package/build/group/index.js.map +1 -1
  36. package/build/group/placeholder.js +5 -0
  37. package/build/group/placeholder.js.map +1 -1
  38. package/build/image/edit.js +13 -21
  39. package/build/image/edit.js.map +1 -1
  40. package/build/image/image.js +33 -19
  41. package/build/image/image.js.map +1 -1
  42. package/build/image/index.js +4 -0
  43. package/build/image/index.js.map +1 -1
  44. package/build/image/transforms.js +1 -1
  45. package/build/image/transforms.js.map +1 -1
  46. package/build/list-item/edit.js +1 -1
  47. package/build/list-item/edit.js.map +1 -1
  48. package/build/list-item/hooks/use-merge.js +8 -1
  49. package/build/list-item/hooks/use-merge.js.map +1 -1
  50. package/build/list-item/index.js +11 -1
  51. package/build/list-item/index.js.map +1 -1
  52. package/build/lock-unlock.js +1 -1
  53. package/build/lock-unlock.js.map +1 -1
  54. package/build/loginout/index.js +3 -0
  55. package/build/loginout/index.js.map +1 -1
  56. package/build/media-text/edit.js +3 -2
  57. package/build/media-text/edit.js.map +1 -1
  58. package/build/navigation-submenu/edit.js +1 -1
  59. package/build/navigation-submenu/edit.js.map +1 -1
  60. package/build/page-list/convert-to-links-modal.js +1 -1
  61. package/build/page-list/convert-to-links-modal.js.map +1 -1
  62. package/build/page-list/edit.js +1 -1
  63. package/build/page-list/edit.js.map +1 -1
  64. package/build/post-content/index.js +3 -0
  65. package/build/post-content/index.js.map +1 -1
  66. package/build/post-date/edit.js +3 -1
  67. package/build/post-date/edit.js.map +1 -1
  68. package/build/post-excerpt/index.js +3 -0
  69. package/build/post-excerpt/index.js.map +1 -1
  70. package/build/post-title/index.js +3 -0
  71. package/build/post-title/index.js.map +1 -1
  72. package/build/query/edit/inspector-controls/index.js +3 -2
  73. package/build/query/edit/inspector-controls/index.js.map +1 -1
  74. package/build/query/edit/query-toolbar.js +54 -61
  75. package/build/query/edit/query-toolbar.js.map +1 -1
  76. package/build/query/index.js +34 -0
  77. package/build/query/index.js.map +1 -1
  78. package/build/quote/edit.js +1 -0
  79. package/build/quote/edit.js.map +1 -1
  80. package/build/site-tagline/index.js +1 -0
  81. package/build/site-tagline/index.js.map +1 -1
  82. package/build/site-title/index.js +1 -0
  83. package/build/site-title/index.js.map +1 -1
  84. package/build/social-link/edit.js +9 -3
  85. package/build/social-link/edit.js.map +1 -1
  86. package/build/table/edit.js +8 -17
  87. package/build/table/edit.js.map +1 -1
  88. package/build/table-of-contents/index.js +1 -1
  89. package/build/template-part/edit/title-modal.js +1 -1
  90. package/build/template-part/edit/title-modal.js.map +1 -1
  91. package/build/utils/caption.js +2 -1
  92. package/build/utils/caption.js.map +1 -1
  93. package/build/utils/hooks.js +12 -0
  94. package/build/utils/hooks.js.map +1 -1
  95. package/build/verse/index.js +1 -0
  96. package/build/verse/index.js.map +1 -1
  97. package/build/video/deprecated.js +4 -0
  98. package/build/video/deprecated.js.map +1 -1
  99. package/build/video/edit.js +17 -7
  100. package/build/video/edit.js.map +1 -1
  101. package/build/video/index.js +4 -0
  102. package/build/video/index.js.map +1 -1
  103. package/build/video/transforms.js +1 -1
  104. package/build/video/transforms.js.map +1 -1
  105. package/build-module/audio/edit.js +20 -8
  106. package/build-module/audio/edit.js.map +1 -1
  107. package/build-module/audio/index.js +4 -0
  108. package/build-module/audio/index.js.map +1 -1
  109. package/build-module/audio/transforms.js +1 -1
  110. package/build-module/audio/transforms.js.map +1 -1
  111. package/build-module/block/edit.js +0 -1
  112. package/build-module/block/edit.js.map +1 -1
  113. package/build-module/block/index.js +5 -1
  114. package/build-module/block/index.js.map +1 -1
  115. package/build-module/button/index.js +1 -0
  116. package/build-module/button/index.js.map +1 -1
  117. package/build-module/embed/embed-preview.js +4 -4
  118. package/build-module/embed/embed-preview.js.map +1 -1
  119. package/build-module/file/edit.js +15 -7
  120. package/build-module/file/edit.js.map +1 -1
  121. package/build-module/file/index.js +4 -0
  122. package/build-module/file/index.js.map +1 -1
  123. package/build-module/file/transforms.js +2 -3
  124. package/build-module/file/transforms.js.map +1 -1
  125. package/build-module/gallery/deprecated.js +6 -54
  126. package/build-module/gallery/deprecated.js.map +1 -1
  127. package/build-module/gallery/edit.js +10 -9
  128. package/build-module/gallery/edit.js.map +1 -1
  129. package/build-module/gallery/index.js +1 -1
  130. package/build-module/gallery/index.js.map +1 -1
  131. package/build-module/gallery/save.js +0 -11
  132. package/build-module/gallery/save.js.map +1 -1
  133. package/build-module/gallery/shared.js +0 -25
  134. package/build-module/gallery/shared.js.map +1 -1
  135. package/build-module/gallery/transforms.js +29 -80
  136. package/build-module/gallery/transforms.js.map +1 -1
  137. package/build-module/group/index.js +1 -0
  138. package/build-module/group/index.js.map +1 -1
  139. package/build-module/group/placeholder.js +5 -0
  140. package/build-module/group/placeholder.js.map +1 -1
  141. package/build-module/image/edit.js +12 -20
  142. package/build-module/image/edit.js.map +1 -1
  143. package/build-module/image/image.js +28 -14
  144. package/build-module/image/image.js.map +1 -1
  145. package/build-module/image/index.js +4 -0
  146. package/build-module/image/index.js.map +1 -1
  147. package/build-module/image/transforms.js +1 -1
  148. package/build-module/image/transforms.js.map +1 -1
  149. package/build-module/list-item/edit.js +1 -1
  150. package/build-module/list-item/edit.js.map +1 -1
  151. package/build-module/list-item/hooks/use-merge.js +8 -1
  152. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  153. package/build-module/list-item/index.js +11 -1
  154. package/build-module/list-item/index.js.map +1 -1
  155. package/build-module/lock-unlock.js +1 -1
  156. package/build-module/lock-unlock.js.map +1 -1
  157. package/build-module/loginout/index.js +3 -0
  158. package/build-module/loginout/index.js.map +1 -1
  159. package/build-module/media-text/edit.js +3 -2
  160. package/build-module/media-text/edit.js.map +1 -1
  161. package/build-module/navigation-submenu/edit.js +1 -1
  162. package/build-module/navigation-submenu/edit.js.map +1 -1
  163. package/build-module/page-list/convert-to-links-modal.js +1 -1
  164. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  165. package/build-module/page-list/edit.js +1 -1
  166. package/build-module/page-list/edit.js.map +1 -1
  167. package/build-module/post-content/index.js +3 -0
  168. package/build-module/post-content/index.js.map +1 -1
  169. package/build-module/post-date/edit.js +4 -2
  170. package/build-module/post-date/edit.js.map +1 -1
  171. package/build-module/post-excerpt/index.js +3 -0
  172. package/build-module/post-excerpt/index.js.map +1 -1
  173. package/build-module/post-title/index.js +3 -0
  174. package/build-module/post-title/index.js.map +1 -1
  175. package/build-module/query/edit/inspector-controls/index.js +3 -2
  176. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  177. package/build-module/query/edit/query-toolbar.js +55 -62
  178. package/build-module/query/edit/query-toolbar.js.map +1 -1
  179. package/build-module/query/index.js +34 -0
  180. package/build-module/query/index.js.map +1 -1
  181. package/build-module/quote/edit.js +1 -0
  182. package/build-module/quote/edit.js.map +1 -1
  183. package/build-module/site-tagline/index.js +1 -0
  184. package/build-module/site-tagline/index.js.map +1 -1
  185. package/build-module/site-title/index.js +1 -0
  186. package/build-module/site-title/index.js.map +1 -1
  187. package/build-module/social-link/edit.js +9 -3
  188. package/build-module/social-link/edit.js.map +1 -1
  189. package/build-module/table/edit.js +9 -18
  190. package/build-module/table/edit.js.map +1 -1
  191. package/build-module/table-of-contents/index.js +1 -1
  192. package/build-module/template-part/edit/title-modal.js +1 -1
  193. package/build-module/template-part/edit/title-modal.js.map +1 -1
  194. package/build-module/utils/caption.js +2 -1
  195. package/build-module/utils/caption.js.map +1 -1
  196. package/build-module/utils/hooks.js +11 -0
  197. package/build-module/utils/hooks.js.map +1 -1
  198. package/build-module/verse/index.js +1 -0
  199. package/build-module/verse/index.js.map +1 -1
  200. package/build-module/video/deprecated.js +4 -0
  201. package/build-module/video/deprecated.js.map +1 -1
  202. package/build-module/video/edit.js +18 -8
  203. package/build-module/video/edit.js.map +1 -1
  204. package/build-module/video/index.js +4 -0
  205. package/build-module/video/index.js.map +1 -1
  206. package/build-module/video/transforms.js +1 -1
  207. package/build-module/video/transforms.js.map +1 -1
  208. package/build-style/audio/style-rtl.css +1 -1
  209. package/build-style/audio/style.css +1 -1
  210. package/build-style/audio/theme-rtl.css +2 -2
  211. package/build-style/audio/theme.css +2 -2
  212. package/build-style/common-rtl.css +1 -3
  213. package/build-style/common.css +1 -3
  214. package/build-style/editor-rtl.css +3 -12
  215. package/build-style/editor.css +3 -12
  216. package/build-style/embed/style-rtl.css +1 -1
  217. package/build-style/embed/style.css +1 -1
  218. package/build-style/embed/theme-rtl.css +2 -2
  219. package/build-style/embed/theme.css +2 -2
  220. package/build-style/image/editor-rtl.css +0 -12
  221. package/build-style/image/editor.css +0 -12
  222. package/build-style/image/style-rtl.css +7 -1
  223. package/build-style/image/style.css +7 -1
  224. package/build-style/media-text/style-rtl.css +4 -0
  225. package/build-style/media-text/style.css +4 -0
  226. package/build-style/navigation/style-rtl.css +1 -0
  227. package/build-style/navigation/style.css +1 -0
  228. package/build-style/post-comments-form/style-rtl.css +11 -10
  229. package/build-style/post-comments-form/style.css +11 -10
  230. package/build-style/query/editor-rtl.css +3 -0
  231. package/build-style/query/editor.css +3 -0
  232. package/build-style/reset-rtl.css +1 -5
  233. package/build-style/reset.css +1 -5
  234. package/build-style/search/style-rtl.css +1 -2
  235. package/build-style/search/style.css +1 -2
  236. package/build-style/social-links/style-rtl.css +91 -91
  237. package/build-style/social-links/style.css +91 -91
  238. package/build-style/style-rtl.css +119 -110
  239. package/build-style/style.css +119 -110
  240. package/build-style/table/theme-rtl.css +2 -2
  241. package/build-style/table/theme.css +2 -2
  242. package/build-style/theme-rtl.css +8 -8
  243. package/build-style/theme.css +8 -8
  244. package/build-style/video/style-rtl.css +1 -1
  245. package/build-style/video/style.css +1 -1
  246. package/build-style/video/theme-rtl.css +2 -2
  247. package/build-style/video/theme.css +2 -2
  248. package/package.json +35 -35
  249. package/src/audio/block.json +4 -0
  250. package/src/audio/edit.js +19 -7
  251. package/src/audio/style.scss +1 -1
  252. package/src/audio/theme.scss +1 -1
  253. package/src/audio/transforms.js +1 -1
  254. package/src/block/block.json +5 -1
  255. package/src/block/edit.js +0 -1
  256. package/src/button/block.json +1 -0
  257. package/src/button/index.php +14 -1
  258. package/src/embed/embed-preview.js +4 -6
  259. package/src/embed/style.scss +1 -1
  260. package/src/embed/theme.scss +1 -1
  261. package/src/file/block.json +4 -0
  262. package/src/file/edit.js +19 -6
  263. package/src/file/transforms.js +1 -2
  264. package/src/gallery/deprecated.js +6 -55
  265. package/src/gallery/edit.js +13 -10
  266. package/src/gallery/gallery-styles.native.scss +0 -2
  267. package/src/gallery/index.js +1 -1
  268. package/src/gallery/save.js +0 -10
  269. package/src/gallery/shared.js +0 -28
  270. package/src/gallery/transforms.js +56 -99
  271. package/src/group/block.json +1 -0
  272. package/src/group/placeholder.js +7 -0
  273. package/src/image/block.json +4 -0
  274. package/src/image/edit.js +10 -19
  275. package/src/image/editor.scss +0 -13
  276. package/src/image/image.js +45 -16
  277. package/src/image/index.php +26 -5
  278. package/src/image/style.scss +11 -1
  279. package/src/image/transforms.js +1 -1
  280. package/src/list-item/block.json +11 -1
  281. package/src/list-item/edit.js +1 -1
  282. package/src/list-item/hooks/use-merge.js +19 -5
  283. package/src/lock-unlock.js +1 -1
  284. package/src/loginout/block.json +3 -0
  285. package/src/media-text/edit.js +3 -2
  286. package/src/media-text/index.php +68 -18
  287. package/src/media-text/style.scss +4 -0
  288. package/src/navigation/index.php +5 -3
  289. package/src/navigation/style.scss +1 -0
  290. package/src/navigation-submenu/edit.js +1 -1
  291. package/src/page-list/convert-to-links-modal.js +1 -1
  292. package/src/page-list/edit.js +1 -1
  293. package/src/paragraph/test/__snapshots__/edit.native.js.snap +30 -0
  294. package/src/paragraph/test/edit.native.js +99 -0
  295. package/src/post-comments-form/style.scss +15 -12
  296. package/src/post-content/block.json +3 -0
  297. package/src/post-date/edit.js +5 -1
  298. package/src/post-date/index.php +9 -3
  299. package/src/post-excerpt/block.json +3 -0
  300. package/src/post-title/block.json +3 -0
  301. package/src/query/edit/inspector-controls/index.js +3 -2
  302. package/src/query/edit/query-toolbar.js +60 -72
  303. package/src/query/editor.scss +4 -0
  304. package/src/query/index.js +40 -0
  305. package/src/quote/edit.js +1 -0
  306. package/src/reset.scss +11 -12
  307. package/src/site-tagline/block.json +1 -0
  308. package/src/site-title/block.json +1 -0
  309. package/src/social-link/edit.js +9 -3
  310. package/src/social-links/style.scss +2 -2
  311. package/src/table/edit.js +11 -24
  312. package/src/table/theme.scss +1 -1
  313. package/src/table-of-contents/block.json +1 -1
  314. package/src/template-part/edit/title-modal.js +1 -1
  315. package/src/template-part/index.php +1 -1
  316. package/src/utils/caption.js +5 -1
  317. package/src/utils/hooks.js +14 -1
  318. package/src/verse/block.json +1 -0
  319. package/src/video/block.json +4 -0
  320. package/src/video/edit.js +23 -8
  321. package/src/video/style.scss +1 -1
  322. package/src/video/theme.scss +1 -1
  323. package/src/video/transforms.js +1 -1
  324. package/tsconfig.tsbuildinfo +1 -1
  325. package/build/gallery/edit-wrapper.js +0 -37
  326. package/build/gallery/edit-wrapper.js.map +0 -1
  327. package/build/gallery/v1/constants.js +0 -10
  328. package/build/gallery/v1/constants.js.map +0 -1
  329. package/build/gallery/v1/edit.js +0 -399
  330. package/build/gallery/v1/edit.js.map +0 -1
  331. package/build/gallery/v1/gallery-button.native.js +0 -55
  332. package/build/gallery/v1/gallery-button.native.js.map +0 -1
  333. package/build/gallery/v1/gallery-image.js +0 -285
  334. package/build/gallery/v1/gallery-image.js.map +0 -1
  335. package/build/gallery/v1/gallery-image.native.js +0 -297
  336. package/build/gallery/v1/gallery-image.native.js.map +0 -1
  337. package/build/gallery/v1/gallery.js +0 -112
  338. package/build/gallery/v1/gallery.js.map +0 -1
  339. package/build/gallery/v1/gallery.native.js +0 -139
  340. package/build/gallery/v1/gallery.native.js.map +0 -1
  341. package/build/gallery/v1/save.js +0 -81
  342. package/build/gallery/v1/save.js.map +0 -1
  343. package/build/gallery/v1/shared.js +0 -17
  344. package/build/gallery/v1/shared.js.map +0 -1
  345. package/build/gallery/v1/tiles.native.js +0 -83
  346. package/build/gallery/v1/tiles.native.js.map +0 -1
  347. package/build/utils/constants.js +0 -15
  348. package/build/utils/constants.js.map +0 -1
  349. package/build-module/gallery/edit-wrapper.js +0 -31
  350. package/build-module/gallery/edit-wrapper.js.map +0 -1
  351. package/build-module/gallery/v1/constants.js +0 -4
  352. package/build-module/gallery/v1/constants.js.map +0 -1
  353. package/build-module/gallery/v1/edit.js +0 -393
  354. package/build-module/gallery/v1/edit.js.map +0 -1
  355. package/build-module/gallery/v1/gallery-button.native.js +0 -46
  356. package/build-module/gallery/v1/gallery-button.native.js.map +0 -1
  357. package/build-module/gallery/v1/gallery-image.js +0 -279
  358. package/build-module/gallery/v1/gallery-image.js.map +0 -1
  359. package/build-module/gallery/v1/gallery-image.native.js +0 -291
  360. package/build-module/gallery/v1/gallery-image.native.js.map +0 -1
  361. package/build-module/gallery/v1/gallery.js +0 -104
  362. package/build-module/gallery/v1/gallery.js.map +0 -1
  363. package/build-module/gallery/v1/gallery.native.js +0 -131
  364. package/build-module/gallery/v1/gallery.native.js.map +0 -1
  365. package/build-module/gallery/v1/save.js +0 -74
  366. package/build-module/gallery/v1/save.js.map +0 -1
  367. package/build-module/gallery/v1/shared.js +0 -10
  368. package/build-module/gallery/v1/shared.js.map +0 -1
  369. package/build-module/gallery/v1/tiles.native.js +0 -75
  370. package/build-module/gallery/v1/tiles.native.js.map +0 -1
  371. package/build-module/utils/constants.js +0 -9
  372. package/build-module/utils/constants.js.map +0 -1
  373. package/src/gallery/edit-wrapper.js +0 -27
  374. package/src/gallery/v1/constants.js +0 -3
  375. package/src/gallery/v1/edit.js +0 -450
  376. package/src/gallery/v1/gallery-button.native.js +0 -47
  377. package/src/gallery/v1/gallery-image-style.native.scss +0 -109
  378. package/src/gallery/v1/gallery-image.js +0 -293
  379. package/src/gallery/v1/gallery-image.native.js +0 -348
  380. package/src/gallery/v1/gallery-styles.native.scss +0 -8
  381. package/src/gallery/v1/gallery.js +0 -125
  382. package/src/gallery/v1/gallery.native.js +0 -162
  383. package/src/gallery/v1/save.js +0 -98
  384. package/src/gallery/v1/shared.js +0 -19
  385. package/src/gallery/v1/tiles-styles.native.scss +0 -11
  386. package/src/gallery/v1/tiles.native.js +0 -79
  387. package/src/utils/constants.js +0 -8
@@ -86,12 +86,12 @@
86
86
  /**
87
87
  * Reset the WP Admin page styles for Gutenberg-like pages.
88
88
  */
89
- .wp-block-audio figcaption {
89
+ .wp-block-audio :where(figcaption) {
90
90
  color: #555;
91
91
  font-size: 13px;
92
92
  text-align: center;
93
93
  }
94
- .is-dark-theme .wp-block-audio figcaption {
94
+ .is-dark-theme .wp-block-audio :where(figcaption) {
95
95
  color: rgba(255, 255, 255, 0.65);
96
96
  }
97
97
 
@@ -106,12 +106,12 @@
106
106
  padding: 0.8em 1em;
107
107
  }
108
108
 
109
- .wp-block-embed figcaption {
109
+ .wp-block-embed :where(figcaption) {
110
110
  color: #555;
111
111
  font-size: 13px;
112
112
  text-align: center;
113
113
  }
114
- .is-dark-theme .wp-block-embed figcaption {
114
+ .is-dark-theme .wp-block-embed :where(figcaption) {
115
115
  color: rgba(255, 255, 255, 0.65);
116
116
  }
117
117
 
@@ -225,21 +225,21 @@
225
225
  .wp-block-table th {
226
226
  word-break: normal;
227
227
  }
228
- .wp-block-table figcaption {
228
+ .wp-block-table :where(figcaption) {
229
229
  color: #555;
230
230
  font-size: 13px;
231
231
  text-align: center;
232
232
  }
233
- .is-dark-theme .wp-block-table figcaption {
233
+ .is-dark-theme .wp-block-table :where(figcaption) {
234
234
  color: rgba(255, 255, 255, 0.65);
235
235
  }
236
236
 
237
- .wp-block-video figcaption {
237
+ .wp-block-video :where(figcaption) {
238
238
  color: #555;
239
239
  font-size: 13px;
240
240
  text-align: center;
241
241
  }
242
- .is-dark-theme .wp-block-video figcaption {
242
+ .is-dark-theme .wp-block-video :where(figcaption) {
243
243
  color: rgba(255, 255, 255, 0.65);
244
244
  }
245
245
 
@@ -101,7 +101,7 @@
101
101
  .wp-block-video.aligncenter {
102
102
  text-align: center;
103
103
  }
104
- .wp-block-video figcaption {
104
+ .wp-block-video :where(figcaption) {
105
105
  margin-top: 0.5em;
106
106
  margin-bottom: 1em;
107
107
  }
@@ -101,7 +101,7 @@
101
101
  .wp-block-video.aligncenter {
102
102
  text-align: center;
103
103
  }
104
- .wp-block-video figcaption {
104
+ .wp-block-video :where(figcaption) {
105
105
  margin-top: 0.5em;
106
106
  margin-bottom: 1em;
107
107
  }
@@ -86,12 +86,12 @@
86
86
  /**
87
87
  * Reset the WP Admin page styles for Gutenberg-like pages.
88
88
  */
89
- .wp-block-video figcaption {
89
+ .wp-block-video :where(figcaption) {
90
90
  color: #555;
91
91
  font-size: 13px;
92
92
  text-align: center;
93
93
  }
94
- .is-dark-theme .wp-block-video figcaption {
94
+ .is-dark-theme .wp-block-video :where(figcaption) {
95
95
  color: rgba(255, 255, 255, 0.65);
96
96
  }
97
97
 
@@ -86,12 +86,12 @@
86
86
  /**
87
87
  * Reset the WP Admin page styles for Gutenberg-like pages.
88
88
  */
89
- .wp-block-video figcaption {
89
+ .wp-block-video :where(figcaption) {
90
90
  color: #555;
91
91
  font-size: 13px;
92
92
  text-align: center;
93
93
  }
94
- .is-dark-theme .wp-block-video figcaption {
94
+ .is-dark-theme .wp-block-video :where(figcaption) {
95
95
  color: rgba(255, 255, 255, 0.65);
96
96
  }
97
97
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-library",
3
- "version": "9.1.0",
3
+ "version": "9.3.0",
4
4
  "description": "Block library for the WordPress editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -32,39 +32,39 @@
32
32
  ],
33
33
  "dependencies": {
34
34
  "@babel/runtime": "^7.16.0",
35
- "@wordpress/a11y": "^4.1.0",
36
- "@wordpress/api-fetch": "^7.1.0",
37
- "@wordpress/autop": "^4.1.0",
38
- "@wordpress/blob": "^4.1.0",
39
- "@wordpress/block-editor": "^13.1.0",
40
- "@wordpress/blocks": "^13.1.0",
41
- "@wordpress/components": "^28.1.0",
42
- "@wordpress/compose": "^7.1.0",
43
- "@wordpress/core-data": "^7.1.0",
44
- "@wordpress/data": "^10.1.0",
45
- "@wordpress/date": "^5.1.0",
46
- "@wordpress/deprecated": "^4.1.0",
47
- "@wordpress/dom": "^4.1.0",
48
- "@wordpress/element": "^6.1.0",
49
- "@wordpress/escape-html": "^3.1.0",
50
- "@wordpress/hooks": "^4.1.0",
51
- "@wordpress/html-entities": "^4.1.0",
52
- "@wordpress/i18n": "^5.1.0",
53
- "@wordpress/icons": "^10.1.0",
54
- "@wordpress/interactivity": "^6.1.0",
55
- "@wordpress/interactivity-router": "^2.1.0",
56
- "@wordpress/keyboard-shortcuts": "^5.1.0",
57
- "@wordpress/keycodes": "^4.1.0",
58
- "@wordpress/notices": "^5.1.0",
59
- "@wordpress/patterns": "^2.1.0",
60
- "@wordpress/primitives": "^4.1.0",
61
- "@wordpress/private-apis": "^1.1.0",
62
- "@wordpress/reusable-blocks": "^5.1.0",
63
- "@wordpress/rich-text": "^7.1.0",
64
- "@wordpress/server-side-render": "^5.1.0",
65
- "@wordpress/url": "^4.1.0",
66
- "@wordpress/viewport": "^6.1.0",
67
- "@wordpress/wordcount": "^4.1.0",
35
+ "@wordpress/a11y": "^4.3.0",
36
+ "@wordpress/api-fetch": "^7.3.0",
37
+ "@wordpress/autop": "^4.3.0",
38
+ "@wordpress/blob": "^4.3.0",
39
+ "@wordpress/block-editor": "^13.3.0",
40
+ "@wordpress/blocks": "^13.3.0",
41
+ "@wordpress/components": "^28.3.0",
42
+ "@wordpress/compose": "^7.3.0",
43
+ "@wordpress/core-data": "^7.3.0",
44
+ "@wordpress/data": "^10.3.0",
45
+ "@wordpress/date": "^5.3.0",
46
+ "@wordpress/deprecated": "^4.3.0",
47
+ "@wordpress/dom": "^4.3.0",
48
+ "@wordpress/element": "^6.3.0",
49
+ "@wordpress/escape-html": "^3.3.0",
50
+ "@wordpress/hooks": "^4.3.0",
51
+ "@wordpress/html-entities": "^4.3.0",
52
+ "@wordpress/i18n": "^5.3.0",
53
+ "@wordpress/icons": "^10.3.0",
54
+ "@wordpress/interactivity": "^6.3.0",
55
+ "@wordpress/interactivity-router": "^2.3.0",
56
+ "@wordpress/keyboard-shortcuts": "^5.3.0",
57
+ "@wordpress/keycodes": "^4.3.0",
58
+ "@wordpress/notices": "^5.3.0",
59
+ "@wordpress/patterns": "^2.3.0",
60
+ "@wordpress/primitives": "^4.3.0",
61
+ "@wordpress/private-apis": "^1.3.0",
62
+ "@wordpress/reusable-blocks": "^5.3.0",
63
+ "@wordpress/rich-text": "^7.3.0",
64
+ "@wordpress/server-side-render": "^5.3.0",
65
+ "@wordpress/url": "^4.3.0",
66
+ "@wordpress/viewport": "^6.3.0",
67
+ "@wordpress/wordcount": "^4.3.0",
68
68
  "change-case": "^4.1.2",
69
69
  "clsx": "^2.1.1",
70
70
  "colord": "^2.7.0",
@@ -82,5 +82,5 @@
82
82
  "publishConfig": {
83
83
  "access": "public"
84
84
  },
85
- "gitHead": "66d3bf12e67d16deddc4b4a9ec42e1d0bed3479a"
85
+ "gitHead": "122867d355ca4edc63d3a3bbd9411d3a2e1458df"
86
86
  }
@@ -8,6 +8,10 @@
8
8
  "keywords": [ "music", "sound", "podcast", "recording" ],
9
9
  "textdomain": "default",
10
10
  "attributes": {
11
+ "blob": {
12
+ "type": "string",
13
+ "__experimentalRole": "local"
14
+ },
11
15
  "src": {
12
16
  "type": "string",
13
17
  "source": "attribute",
package/src/audio/edit.js CHANGED
@@ -26,6 +26,7 @@ import { __, _x } from '@wordpress/i18n';
26
26
  import { useDispatch } from '@wordpress/data';
27
27
  import { audio as icon } from '@wordpress/icons';
28
28
  import { store as noticesStore } from '@wordpress/notices';
29
+ import { useState } from '@wordpress/element';
29
30
 
30
31
  /**
31
32
  * Internal dependencies
@@ -45,10 +46,10 @@ function AudioEdit( {
45
46
  insertBlocksAfter,
46
47
  } ) {
47
48
  const { id, autoplay, loop, preload, src } = attributes;
48
- const isTemporaryAudio = ! id && isBlobURL( src );
49
+ const [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );
49
50
 
50
51
  useUploadMediaFromBlobURL( {
51
- url: src,
52
+ url: temporaryURL,
52
53
  allowedTypes: ALLOWED_MEDIA_TYPES,
53
54
  onChange: onSelectAudio,
54
55
  onError: onUploadError,
@@ -72,7 +73,8 @@ function AudioEdit( {
72
73
  onReplace( embedBlock );
73
74
  return;
74
75
  }
75
- setAttributes( { src: newSrc, id: undefined } );
76
+ setAttributes( { src: newSrc, id: undefined, blob: undefined } );
77
+ setTemporaryURL();
76
78
  }
77
79
  }
78
80
 
@@ -95,27 +97,37 @@ function AudioEdit( {
95
97
  src: undefined,
96
98
  id: undefined,
97
99
  caption: undefined,
100
+ blob: undefined,
98
101
  } );
102
+ setTemporaryURL();
99
103
  return;
100
104
  }
105
+
106
+ if ( isBlobURL( media.url ) ) {
107
+ setTemporaryURL( media.url );
108
+ return;
109
+ }
110
+
101
111
  // Sets the block's attribute and updates the edit component from the
102
112
  // selected media, then switches off the editing UI.
103
113
  setAttributes( {
114
+ blob: undefined,
104
115
  src: media.url,
105
116
  id: media.id,
106
117
  caption: media.caption,
107
118
  } );
119
+ setTemporaryURL();
108
120
  }
109
121
 
110
122
  const classes = clsx( className, {
111
- 'is-transient': isTemporaryAudio,
123
+ 'is-transient': !! temporaryURL,
112
124
  } );
113
125
 
114
126
  const blockProps = useBlockProps( {
115
127
  className: classes,
116
128
  } );
117
129
 
118
- if ( ! src ) {
130
+ if ( ! src && ! temporaryURL ) {
119
131
  return (
120
132
  <div { ...blockProps }>
121
133
  <MediaPlaceholder
@@ -190,9 +202,9 @@ function AudioEdit( {
190
202
  file or change the position slider when the controls are enabled.
191
203
  */ }
192
204
  <Disabled isDisabled={ ! isSingleSelected }>
193
- <audio controls="controls" src={ src } />
205
+ <audio controls="controls" src={ src ?? temporaryURL } />
194
206
  </Disabled>
195
- { isTemporaryAudio && <Spinner /> }
207
+ { !! temporaryURL && <Spinner /> }
196
208
  <Caption
197
209
  attributes={ attributes }
198
210
  setAttributes={ setAttributes }
@@ -4,7 +4,7 @@
4
4
  // Supply caption styles to audio blocks, even if the theme hasn't opted in.
5
5
  // Reason being: the new markup, <figcaptions>, are not likely to be styled in the majority of existing themes,
6
6
  // so we supply the styles so as to not appear broken or unstyled in those themes.
7
- figcaption {
7
+ :where(figcaption) {
8
8
  @include caption-style();
9
9
  }
10
10
 
@@ -1,4 +1,4 @@
1
- .wp-block-audio figcaption {
1
+ .wp-block-audio :where(figcaption) {
2
2
  @include caption-style-theme();
3
3
  }
4
4
 
@@ -20,7 +20,7 @@ const transforms = {
20
20
  // It's already done as part of the `componentDidMount`
21
21
  // in the audio block.
22
22
  const block = createBlock( 'core/audio', {
23
- src: createBlobURL( file ),
23
+ blob: createBlobURL( file ),
24
24
  } );
25
25
 
26
26
  return block;
@@ -12,9 +12,13 @@
12
12
  "type": "number"
13
13
  },
14
14
  "content": {
15
- "type": "object"
15
+ "type": "object",
16
+ "default": {}
16
17
  }
17
18
  },
19
+ "providesContext": {
20
+ "pattern/overrides": "content"
21
+ },
18
22
  "supports": {
19
23
  "customClassName": false,
20
24
  "html": false,
package/src/block/edit.js CHANGED
@@ -268,7 +268,6 @@ function ReusableBlockEdit( {
268
268
  <ToolbarButton
269
269
  onClick={ resetContent }
270
270
  disabled={ ! content }
271
- __experimentalIsFocusable
272
271
  >
273
272
  { __( 'Reset' ) }
274
273
  </ToolbarButton>
@@ -93,6 +93,7 @@
93
93
  "__experimentalTextTransform": true,
94
94
  "__experimentalTextDecoration": true,
95
95
  "__experimentalLetterSpacing": true,
96
+ "__experimentalWritingMode": true,
96
97
  "__experimentalDefaultControls": {
97
98
  "fontSize": true
98
99
  }
@@ -17,7 +17,20 @@
17
17
  * @return string The block content.
18
18
  */
19
19
  function render_block_core_button( $attributes, $content ) {
20
- $p = new WP_HTML_Tag_Processor( $content );
20
+ /*
21
+ * The current Gutenberg plugin supports WordPress 6.4, but the next_token()
22
+ * method does not exist in WordPress 6.4. Therefore, if Gutenberg is used
23
+ * as a plugin, use the Gutenberg class that has the `next_token()` method.
24
+ *
25
+ * TODO: After the Gutenberg plugin drops support for WordPress 6.4, this
26
+ * conditional statement will be removed and the core class `WP_HTML_Tag_Processor`
27
+ * should be used.
28
+ */
29
+ if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN && class_exists( 'Gutenberg_HTML_Tag_Processor_6_5' ) ) {
30
+ $p = new Gutenberg_HTML_Tag_Processor_6_5( $content );
31
+ } else {
32
+ $p = new WP_HTML_Tag_Processor( $content );
33
+ }
21
34
 
22
35
  /*
23
36
  * The button block can render an `<a>` or `<button>` and also has a
@@ -20,6 +20,7 @@ import {
20
20
  } from '@wordpress/block-editor';
21
21
  import { Component } from '@wordpress/element';
22
22
  import { createBlock, getDefaultBlockName } from '@wordpress/blocks';
23
+ import { getAuthority } from '@wordpress/url';
23
24
 
24
25
  /**
25
26
  * Internal dependencies
@@ -73,14 +74,11 @@ class EmbedPreview extends Component {
73
74
  const { interactive } = this.state;
74
75
 
75
76
  const html = 'photo' === type ? getPhotoHtml( preview ) : preview.html;
76
- const parsedHost = new URL( url ).host.split( '.' );
77
- const parsedHostBaseUrl = parsedHost
78
- .splice( parsedHost.length - 2, parsedHost.length - 1 )
79
- .join( '.' );
77
+ const embedSourceUrl = getAuthority( url );
80
78
  const iframeTitle = sprintf(
81
79
  // translators: %s: host providing embed content e.g: www.youtube.com
82
80
  __( 'Embedded content from %s' ),
83
- parsedHostBaseUrl
81
+ embedSourceUrl
84
82
  );
85
83
  const sandboxClassnames = clsx(
86
84
  type,
@@ -136,7 +134,7 @@ class EmbedPreview extends Component {
136
134
  __(
137
135
  "Embedded content from %s can't be previewed in the editor."
138
136
  ),
139
- parsedHostBaseUrl
137
+ embedSourceUrl
140
138
  ) }
141
139
  </p>
142
140
  </Placeholder>
@@ -25,7 +25,7 @@
25
25
  // Supply caption styles to embeds, even if the theme hasn't opted in.
26
26
  // Reason being: the new markup, figcaptions, are not likely to be styled in the majority of existing themes,
27
27
  // so we supply the styles so as to not appear broken or unstyled in those.
28
- figcaption {
28
+ :where(figcaption) {
29
29
  @include caption-style();
30
30
  }
31
31
 
@@ -1,4 +1,4 @@
1
- .wp-block-embed figcaption {
1
+ .wp-block-embed :where(figcaption) {
2
2
  @include caption-style-theme();
3
3
  }
4
4
 
@@ -11,6 +11,10 @@
11
11
  "id": {
12
12
  "type": "number"
13
13
  },
14
+ "blob": {
15
+ "type": "string",
16
+ "__experimentalRole": "local"
17
+ },
14
18
  "href": {
15
19
  "type": "string"
16
20
  },
package/src/file/edit.js CHANGED
@@ -23,7 +23,7 @@ import {
23
23
  store as blockEditorStore,
24
24
  __experimentalGetElementClassName,
25
25
  } from '@wordpress/block-editor';
26
- import { useEffect } from '@wordpress/element';
26
+ import { useEffect, useState } from '@wordpress/element';
27
27
  import { useCopyToClipboard } from '@wordpress/compose';
28
28
  import { __, _x } from '@wordpress/i18n';
29
29
  import { file as icon } from '@wordpress/icons';
@@ -73,6 +73,7 @@ function FileEdit( { attributes, isSelected, setAttributes, clientId } ) {
73
73
  displayPreview,
74
74
  previewHeight,
75
75
  } = attributes;
76
+ const [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );
76
77
  const { media } = useSelect(
77
78
  ( select ) => ( {
78
79
  media:
@@ -88,7 +89,7 @@ function FileEdit( { attributes, isSelected, setAttributes, clientId } ) {
88
89
  useDispatch( blockEditorStore );
89
90
 
90
91
  useUploadMediaFromBlobURL( {
91
- url: href,
92
+ url: temporaryURL,
92
93
  onChange: onSelectFile,
93
94
  onError: onUploadError,
94
95
  } );
@@ -108,6 +109,12 @@ function FileEdit( { attributes, isSelected, setAttributes, clientId } ) {
108
109
 
109
110
  function onSelectFile( newMedia ) {
110
111
  if ( ! newMedia || ! newMedia.url ) {
112
+ setTemporaryURL();
113
+ return;
114
+ }
115
+
116
+ if ( isBlobURL( newMedia.url ) ) {
117
+ setTemporaryURL( newMedia.url );
111
118
  return;
112
119
  }
113
120
 
@@ -120,7 +127,9 @@ function FileEdit( { attributes, isSelected, setAttributes, clientId } ) {
120
127
  displayPreview: isPdf ? true : undefined,
121
128
  previewHeight: isPdf ? 600 : undefined,
122
129
  fileId: `wp-block-file--media-${ clientId }`,
130
+ blob: undefined,
123
131
  } );
132
+ setTemporaryURL();
124
133
  }
125
134
 
126
135
  function onUploadError( message ) {
@@ -166,16 +175,16 @@ function FileEdit( { attributes, isSelected, setAttributes, clientId } ) {
166
175
 
167
176
  const blockProps = useBlockProps( {
168
177
  className: clsx(
169
- isBlobURL( href ) && getAnimateClassName( { type: 'loading' } ),
178
+ !! temporaryURL && getAnimateClassName( { type: 'loading' } ),
170
179
  {
171
- 'is-transient': isBlobURL( href ),
180
+ 'is-transient': !! temporaryURL,
172
181
  }
173
182
  ),
174
183
  } );
175
184
 
176
185
  const displayPreviewInEditor = browserSupportsPdfs() && displayPreview;
177
186
 
178
- if ( ! href ) {
187
+ if ( ! href && ! temporaryURL ) {
179
188
  return (
180
189
  <div { ...blockProps }>
181
190
  <MediaPlaceholder
@@ -197,7 +206,11 @@ function FileEdit( { attributes, isSelected, setAttributes, clientId } ) {
197
206
  return (
198
207
  <>
199
208
  <FileBlockInspector
200
- hrefs={ { href, textLinkHref, attachmentPage } }
209
+ hrefs={ {
210
+ href: href || temporaryURL,
211
+ textLinkHref,
212
+ attachmentPage,
213
+ } }
201
214
  { ...{
202
215
  openInNewWindow: !! textLinkTarget,
203
216
  showDownloadButton,
@@ -26,9 +26,8 @@ const transforms = {
26
26
  // File will be uploaded in componentDidMount()
27
27
  blocks.push(
28
28
  createBlock( 'core/file', {
29
- href: blobURL,
29
+ blob: blobURL,
30
30
  fileName: file.name,
31
- textLinkHref: blobURL,
32
31
  } )
33
32
  );
34
33
  } );
@@ -22,7 +22,6 @@ import {
22
22
  LINK_DESTINATION_MEDIA,
23
23
  LINK_DESTINATION_NONE,
24
24
  } from './constants';
25
- import { isGalleryV2Enabled } from './shared';
26
25
 
27
26
  const DEPRECATED_LINK_DESTINATION_MEDIA = 'file';
28
27
  const DEPRECATED_LINK_DESTINATION_ATTACHMENT = 'post';
@@ -408,11 +407,7 @@ const v6 = {
408
407
  );
409
408
  },
410
409
  migrate( attributes ) {
411
- if ( isGalleryV2Enabled() ) {
412
- return runV2Migration( attributes );
413
- }
414
-
415
- return attributes;
410
+ return runV2Migration( attributes );
416
411
  },
417
412
  };
418
413
  const v5 = {
@@ -498,23 +493,7 @@ const v5 = {
498
493
  return ! linkTo || linkTo === 'attachment' || linkTo === 'media';
499
494
  },
500
495
  migrate( attributes ) {
501
- if ( isGalleryV2Enabled() ) {
502
- return runV2Migration( attributes );
503
- }
504
-
505
- let linkTo = attributes.linkTo;
506
-
507
- if ( ! attributes.linkTo ) {
508
- linkTo = 'none';
509
- } else if ( attributes.linkTo === 'attachment' ) {
510
- linkTo = 'post';
511
- } else if ( attributes.linkTo === 'media' ) {
512
- linkTo = 'file';
513
- }
514
- return {
515
- ...attributes,
516
- linkTo,
517
- };
496
+ return runV2Migration( attributes );
518
497
  },
519
498
  save( { attributes } ) {
520
499
  const {
@@ -661,17 +640,7 @@ const v4 = {
661
640
  return ids && ids.some( ( id ) => typeof id === 'string' );
662
641
  },
663
642
  migrate( attributes ) {
664
- if ( isGalleryV2Enabled() ) {
665
- return runV2Migration( attributes );
666
- }
667
-
668
- return {
669
- ...attributes,
670
- ids: ( attributes.ids ?? [] ).map( ( id ) => {
671
- const parsedId = parseInt( id, 10 );
672
- return Number.isInteger( parsedId ) ? parsedId : null;
673
- } ),
674
- };
643
+ return runV2Migration( attributes );
675
644
  },
676
645
  save( { attributes } ) {
677
646
  const {
@@ -867,10 +836,7 @@ const v3 = {
867
836
  );
868
837
  },
869
838
  migrate( attributes ) {
870
- if ( isGalleryV2Enabled() ) {
871
- return runV2Migration( attributes );
872
- }
873
- return attributes;
839
+ return runV2Migration( attributes );
874
840
  },
875
841
  };
876
842
  const v2 = {
@@ -936,18 +902,7 @@ const v2 = {
936
902
  );
937
903
  },
938
904
  migrate( attributes ) {
939
- if ( isGalleryV2Enabled() ) {
940
- return runV2Migration( attributes );
941
- }
942
- return {
943
- ...attributes,
944
- ids: ( attributes.images ?? [] ).map( ( { id } ) => {
945
- if ( ! id ) {
946
- return null;
947
- }
948
- return parseInt( id, 10 );
949
- } ),
950
- };
905
+ return runV2Migration( attributes );
951
906
  },
952
907
  supports: {
953
908
  align: true,
@@ -1100,11 +1055,7 @@ const v1 = {
1100
1055
  );
1101
1056
  },
1102
1057
  migrate( attributes ) {
1103
- if ( isGalleryV2Enabled() ) {
1104
- return runV2Migration( attributes );
1105
- }
1106
-
1107
- return attributes;
1058
+ return runV2Migration( attributes );
1108
1059
  },
1109
1060
  };
1110
1061