@wordpress/block-library 8.13.0 → 8.14.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 (366) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/archives/index.js +5 -1
  3. package/build/archives/index.js.map +1 -1
  4. package/build/audio/index.js +5 -1
  5. package/build/audio/index.js.map +1 -1
  6. package/build/avatar/index.js +1 -1
  7. package/build/block/edit.js +1 -1
  8. package/build/block/edit.js.map +1 -1
  9. package/build/block/edit.native.js +6 -9
  10. package/build/block/edit.native.js.map +1 -1
  11. package/build/buttons/edit.js +5 -1
  12. package/build/buttons/edit.js.map +1 -1
  13. package/build/categories/index.js +5 -1
  14. package/build/categories/index.js.map +1 -1
  15. package/build/code/index.js +5 -1
  16. package/build/code/index.js.map +1 -1
  17. package/build/column/index.js +1 -0
  18. package/build/column/index.js.map +1 -1
  19. package/build/comments/index.js +1 -0
  20. package/build/comments/index.js.map +1 -1
  21. package/build/cover/edit/inspector-controls.js +2 -1
  22. package/build/cover/edit/inspector-controls.js.map +1 -1
  23. package/build/cover/index.js +1 -0
  24. package/build/cover/index.js.map +1 -1
  25. package/build/details/index.js +5 -1
  26. package/build/details/index.js.map +1 -1
  27. package/build/embed/util.js +9 -8
  28. package/build/embed/util.js.map +1 -1
  29. package/build/file/index.js +2 -1
  30. package/build/file/index.js.map +1 -1
  31. package/build/file/view.js +15 -1
  32. package/build/file/view.js.map +1 -1
  33. package/build/gallery/index.js +3 -1
  34. package/build/gallery/index.js.map +1 -1
  35. package/build/group/index.js +1 -0
  36. package/build/group/index.js.map +1 -1
  37. package/build/heading/index.js +5 -1
  38. package/build/heading/index.js.map +1 -1
  39. package/build/heading/transforms.js +5 -1
  40. package/build/heading/transforms.js.map +1 -1
  41. package/build/image/deprecated.js +453 -175
  42. package/build/image/deprecated.js.map +1 -1
  43. package/build/image/edit.js +0 -4
  44. package/build/image/edit.js.map +1 -1
  45. package/build/image/image.js +96 -43
  46. package/build/image/image.js.map +1 -1
  47. package/build/image/index.js +6 -0
  48. package/build/image/index.js.map +1 -1
  49. package/build/image/save.js +8 -1
  50. package/build/image/save.js.map +1 -1
  51. package/build/image/utils.js +18 -0
  52. package/build/image/utils.js.map +1 -1
  53. package/build/image/{interactivity.js → view-interactivity.js} +86 -44
  54. package/build/image/view-interactivity.js.map +1 -0
  55. package/build/index.js +12 -3
  56. package/build/index.js.map +1 -1
  57. package/build/list/index.js +5 -1
  58. package/build/list/index.js.map +1 -1
  59. package/build/list-item/utils.js +6 -1
  60. package/build/list-item/utils.js.map +1 -1
  61. package/build/media-text/index.js +1 -0
  62. package/build/media-text/index.js.map +1 -1
  63. package/build/missing/edit.js +22 -8
  64. package/build/missing/edit.js.map +1 -1
  65. package/build/navigation/edit/index.js +1 -1
  66. package/build/navigation/edit/index.js.map +1 -1
  67. package/build/navigation/edit/menu-inspector-controls.js +0 -1
  68. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  69. package/build/navigation/index.js +3 -2
  70. package/build/navigation/index.js.map +1 -1
  71. package/build/navigation/view.js +174 -50
  72. package/build/navigation/view.js.map +1 -1
  73. package/build/navigation-link/edit.js +0 -11
  74. package/build/navigation-link/edit.js.map +1 -1
  75. package/build/navigation-link/link-ui.js +12 -2
  76. package/build/navigation-link/link-ui.js.map +1 -1
  77. package/build/page-list/convert-to-links-modal.js +3 -3
  78. package/build/page-list/convert-to-links-modal.js.map +1 -1
  79. package/build/page-list/edit.js +34 -39
  80. package/build/page-list/edit.js.map +1 -1
  81. package/build/page-list/use-convert-to-navigation-links.js +2 -15
  82. package/build/page-list/use-convert-to-navigation-links.js.map +1 -1
  83. package/build/paragraph/index.js +1 -0
  84. package/build/paragraph/index.js.map +1 -1
  85. package/build/paragraph/transforms.js +1 -0
  86. package/build/paragraph/transforms.js.map +1 -1
  87. package/build/post-comments-form/index.js +1 -0
  88. package/build/post-comments-form/index.js.map +1 -1
  89. package/build/post-navigation-link/index.js +1 -0
  90. package/build/post-navigation-link/index.js.map +1 -1
  91. package/build/post-time-to-read/index.js +5 -1
  92. package/build/post-time-to-read/index.js.map +1 -1
  93. package/build/query-pagination-numbers/index.js +1 -1
  94. package/build/quote/index.js +1 -0
  95. package/build/quote/index.js.map +1 -1
  96. package/build/site-logo/index.js +5 -1
  97. package/build/site-logo/index.js.map +1 -1
  98. package/build/site-tagline/icon.js +1 -1
  99. package/build/site-tagline/icon.js.map +1 -1
  100. package/build/site-tagline/index.js +5 -1
  101. package/build/site-tagline/index.js.map +1 -1
  102. package/build/site-title/index.js +5 -1
  103. package/build/site-title/index.js.map +1 -1
  104. package/build/social-links/index.js +3 -1
  105. package/build/social-links/index.js.map +1 -1
  106. package/build/table/index.js +5 -1
  107. package/build/table/index.js.map +1 -1
  108. package/build/term-description/index.js +1 -0
  109. package/build/term-description/index.js.map +1 -1
  110. package/build/verse/index.js +5 -1
  111. package/build/verse/index.js.map +1 -1
  112. package/build/video/deprecated.js +5 -1
  113. package/build/video/deprecated.js.map +1 -1
  114. package/build/video/index.js +5 -1
  115. package/build/video/index.js.map +1 -1
  116. package/build-module/archives/index.js +5 -1
  117. package/build-module/archives/index.js.map +1 -1
  118. package/build-module/audio/index.js +5 -1
  119. package/build-module/audio/index.js.map +1 -1
  120. package/build-module/avatar/index.js +1 -1
  121. package/build-module/block/edit.js +1 -1
  122. package/build-module/block/edit.js.map +1 -1
  123. package/build-module/block/edit.native.js +7 -9
  124. package/build-module/block/edit.native.js.map +1 -1
  125. package/build-module/buttons/edit.js +5 -1
  126. package/build-module/buttons/edit.js.map +1 -1
  127. package/build-module/categories/index.js +5 -1
  128. package/build-module/categories/index.js.map +1 -1
  129. package/build-module/code/index.js +5 -1
  130. package/build-module/code/index.js.map +1 -1
  131. package/build-module/column/index.js +1 -0
  132. package/build-module/column/index.js.map +1 -1
  133. package/build-module/comments/index.js +1 -0
  134. package/build-module/comments/index.js.map +1 -1
  135. package/build-module/cover/edit/inspector-controls.js +2 -1
  136. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  137. package/build-module/cover/index.js +1 -0
  138. package/build-module/cover/index.js.map +1 -1
  139. package/build-module/details/index.js +5 -1
  140. package/build-module/details/index.js.map +1 -1
  141. package/build-module/embed/util.js +6 -6
  142. package/build-module/embed/util.js.map +1 -1
  143. package/build-module/file/index.js +2 -1
  144. package/build-module/file/index.js.map +1 -1
  145. package/build-module/file/view.js +15 -2
  146. package/build-module/file/view.js.map +1 -1
  147. package/build-module/gallery/index.js +3 -1
  148. package/build-module/gallery/index.js.map +1 -1
  149. package/build-module/group/index.js +1 -0
  150. package/build-module/group/index.js.map +1 -1
  151. package/build-module/heading/index.js +5 -1
  152. package/build-module/heading/index.js.map +1 -1
  153. package/build-module/heading/transforms.js +5 -1
  154. package/build-module/heading/transforms.js.map +1 -1
  155. package/build-module/image/deprecated.js +454 -176
  156. package/build-module/image/deprecated.js.map +1 -1
  157. package/build-module/image/edit.js +0 -4
  158. package/build-module/image/edit.js.map +1 -1
  159. package/build-module/image/image.js +96 -46
  160. package/build-module/image/image.js.map +1 -1
  161. package/build-module/image/index.js +6 -0
  162. package/build-module/image/index.js.map +1 -1
  163. package/build-module/image/save.js +8 -1
  164. package/build-module/image/save.js.map +1 -1
  165. package/build-module/image/utils.js +16 -0
  166. package/build-module/image/utils.js.map +1 -1
  167. package/build-module/image/{interactivity.js → view-interactivity.js} +86 -44
  168. package/build-module/image/view-interactivity.js.map +1 -0
  169. package/build-module/index.js +12 -3
  170. package/build-module/index.js.map +1 -1
  171. package/build-module/list/index.js +5 -1
  172. package/build-module/list/index.js.map +1 -1
  173. package/build-module/list-item/utils.js +6 -1
  174. package/build-module/list-item/utils.js.map +1 -1
  175. package/build-module/media-text/index.js +1 -0
  176. package/build-module/media-text/index.js.map +1 -1
  177. package/build-module/missing/edit.js +22 -8
  178. package/build-module/missing/edit.js.map +1 -1
  179. package/build-module/navigation/edit/index.js +1 -1
  180. package/build-module/navigation/edit/index.js.map +1 -1
  181. package/build-module/navigation/edit/menu-inspector-controls.js +0 -1
  182. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  183. package/build-module/navigation/index.js +3 -2
  184. package/build-module/navigation/index.js.map +1 -1
  185. package/build-module/navigation/view.js +173 -50
  186. package/build-module/navigation/view.js.map +1 -1
  187. package/build-module/navigation-link/edit.js +1 -12
  188. package/build-module/navigation-link/edit.js.map +1 -1
  189. package/build-module/navigation-link/link-ui.js +13 -3
  190. package/build-module/navigation-link/link-ui.js.map +1 -1
  191. package/build-module/page-list/convert-to-links-modal.js +3 -3
  192. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  193. package/build-module/page-list/edit.js +34 -39
  194. package/build-module/page-list/edit.js.map +1 -1
  195. package/build-module/page-list/use-convert-to-navigation-links.js +3 -16
  196. package/build-module/page-list/use-convert-to-navigation-links.js.map +1 -1
  197. package/build-module/paragraph/index.js +1 -0
  198. package/build-module/paragraph/index.js.map +1 -1
  199. package/build-module/paragraph/transforms.js +1 -0
  200. package/build-module/paragraph/transforms.js.map +1 -1
  201. package/build-module/post-comments-form/index.js +1 -0
  202. package/build-module/post-comments-form/index.js.map +1 -1
  203. package/build-module/post-navigation-link/index.js +1 -0
  204. package/build-module/post-navigation-link/index.js.map +1 -1
  205. package/build-module/post-time-to-read/index.js +5 -1
  206. package/build-module/post-time-to-read/index.js.map +1 -1
  207. package/build-module/query-pagination-numbers/index.js +1 -1
  208. package/build-module/quote/index.js +1 -0
  209. package/build-module/quote/index.js.map +1 -1
  210. package/build-module/site-logo/index.js +5 -1
  211. package/build-module/site-logo/index.js.map +1 -1
  212. package/build-module/site-tagline/icon.js +1 -1
  213. package/build-module/site-tagline/icon.js.map +1 -1
  214. package/build-module/site-tagline/index.js +5 -1
  215. package/build-module/site-tagline/index.js.map +1 -1
  216. package/build-module/site-title/index.js +5 -1
  217. package/build-module/site-title/index.js.map +1 -1
  218. package/build-module/social-links/index.js +3 -1
  219. package/build-module/social-links/index.js.map +1 -1
  220. package/build-module/table/index.js +5 -1
  221. package/build-module/table/index.js.map +1 -1
  222. package/build-module/term-description/index.js +1 -0
  223. package/build-module/term-description/index.js.map +1 -1
  224. package/build-module/verse/index.js +5 -1
  225. package/build-module/verse/index.js.map +1 -1
  226. package/build-module/video/deprecated.js +5 -1
  227. package/build-module/video/deprecated.js.map +1 -1
  228. package/build-module/video/index.js +5 -1
  229. package/build-module/video/index.js.map +1 -1
  230. package/build-style/footnotes/style-rtl.css +2 -2
  231. package/build-style/footnotes/style.css +2 -2
  232. package/build-style/image/style-rtl.css +16 -2
  233. package/build-style/image/style.css +16 -2
  234. package/build-style/style-rtl.css +18 -4
  235. package/build-style/style.css +18 -4
  236. package/package.json +33 -38
  237. package/src/archives/block.json +5 -1
  238. package/src/audio/block.json +5 -1
  239. package/src/avatar/block.json +1 -1
  240. package/src/block/edit.js +2 -2
  241. package/src/block/edit.native.js +8 -12
  242. package/src/block/test/edit.native.js +4 -4
  243. package/src/buttons/edit.js +2 -2
  244. package/src/categories/block.json +5 -1
  245. package/src/code/block.json +5 -1
  246. package/src/column/block.json +1 -0
  247. package/src/comments/block.json +1 -0
  248. package/src/cover/block.json +1 -0
  249. package/src/cover/edit/inspector-controls.js +1 -0
  250. package/src/details/block.json +5 -1
  251. package/src/embed/util.js +4 -6
  252. package/src/file/block.json +2 -1
  253. package/src/file/index.php +0 -17
  254. package/src/file/view.js +14 -5
  255. package/src/footnotes/index.php +11 -9
  256. package/src/footnotes/style.scss +2 -2
  257. package/src/gallery/block.json +3 -1
  258. package/src/group/block.json +1 -0
  259. package/src/heading/block.json +5 -1
  260. package/src/heading/test/index.native.js +18 -0
  261. package/src/image/block.json +6 -0
  262. package/src/image/deprecated.js +597 -320
  263. package/src/image/edit.js +0 -4
  264. package/src/image/image.js +131 -62
  265. package/src/image/save.js +9 -1
  266. package/src/image/style.scss +15 -2
  267. package/src/image/utils.js +16 -0
  268. package/src/image/{interactivity.js → view-interactivity.js} +99 -50
  269. package/src/index.js +18 -1
  270. package/src/latest-posts/index.php +1 -1
  271. package/src/list/block.json +5 -1
  272. package/src/media-text/block.json +1 -0
  273. package/src/missing/edit.js +31 -11
  274. package/src/navigation/block.json +3 -2
  275. package/src/navigation/edit/index.js +1 -2
  276. package/src/navigation/edit/menu-inspector-controls.js +0 -1
  277. package/src/navigation/index.php +39 -30
  278. package/src/navigation/view.js +189 -67
  279. package/src/navigation-link/edit.js +1 -15
  280. package/src/navigation-link/link-ui.js +14 -2
  281. package/src/navigation-submenu/index.php +2 -12
  282. package/src/page-list/convert-to-links-modal.js +3 -3
  283. package/src/page-list/edit.js +65 -62
  284. package/src/page-list/use-convert-to-navigation-links.js +3 -20
  285. package/src/paragraph/block.json +1 -0
  286. package/src/post-comments-form/block.json +1 -0
  287. package/src/post-navigation-link/block.json +1 -0
  288. package/src/post-time-to-read/block.json +5 -1
  289. package/src/query-pagination-numbers/block.json +1 -1
  290. package/src/quote/block.json +1 -0
  291. package/src/site-logo/block.json +5 -1
  292. package/src/site-tagline/block.json +5 -1
  293. package/src/site-tagline/icon.js +1 -1
  294. package/src/site-title/block.json +5 -1
  295. package/src/social-links/block.json +3 -1
  296. package/src/table/block.json +5 -1
  297. package/src/term-description/block.json +1 -0
  298. package/src/verse/block.json +5 -1
  299. package/src/video/block.json +5 -1
  300. package/build/file/interactivity.js +0 -19
  301. package/build/file/interactivity.js.map +0 -1
  302. package/build/heading/heading-level-icon.js +0 -61
  303. package/build/heading/heading-level-icon.js.map +0 -1
  304. package/build/image/interactivity.js.map +0 -1
  305. package/build/navigation/interactivity.js +0 -167
  306. package/build/navigation/interactivity.js.map +0 -1
  307. package/build/navigation/view-modal.js +0 -64
  308. package/build/navigation/view-modal.js.map +0 -1
  309. package/build/utils/interactivity/constants.js +0 -9
  310. package/build/utils/interactivity/constants.js.map +0 -1
  311. package/build/utils/interactivity/directives.js +0 -222
  312. package/build/utils/interactivity/directives.js.map +0 -1
  313. package/build/utils/interactivity/hooks.js +0 -159
  314. package/build/utils/interactivity/hooks.js.map +0 -1
  315. package/build/utils/interactivity/hydration.js +0 -34
  316. package/build/utils/interactivity/hydration.js.map +0 -1
  317. package/build/utils/interactivity/index.js +0 -32
  318. package/build/utils/interactivity/index.js.map +0 -1
  319. package/build/utils/interactivity/portals.js +0 -108
  320. package/build/utils/interactivity/portals.js.map +0 -1
  321. package/build/utils/interactivity/store.js +0 -66
  322. package/build/utils/interactivity/store.js.map +0 -1
  323. package/build/utils/interactivity/utils.js +0 -87
  324. package/build/utils/interactivity/utils.js.map +0 -1
  325. package/build/utils/interactivity/vdom.js +0 -119
  326. package/build/utils/interactivity/vdom.js.map +0 -1
  327. package/build-module/file/interactivity.js +0 -15
  328. package/build-module/file/interactivity.js.map +0 -1
  329. package/build-module/heading/heading-level-icon.js +0 -53
  330. package/build-module/heading/heading-level-icon.js.map +0 -1
  331. package/build-module/image/interactivity.js.map +0 -1
  332. package/build-module/navigation/interactivity.js +0 -164
  333. package/build-module/navigation/interactivity.js.map +0 -1
  334. package/build-module/navigation/view-modal.js +0 -58
  335. package/build-module/navigation/view-modal.js.map +0 -1
  336. package/build-module/utils/interactivity/constants.js +0 -2
  337. package/build-module/utils/interactivity/constants.js.map +0 -1
  338. package/build-module/utils/interactivity/directives.js +0 -209
  339. package/build-module/utils/interactivity/directives.js.map +0 -1
  340. package/build-module/utils/interactivity/hooks.js +0 -145
  341. package/build-module/utils/interactivity/hooks.js.map +0 -1
  342. package/build-module/utils/interactivity/hydration.js +0 -21
  343. package/build-module/utils/interactivity/hydration.js.map +0 -1
  344. package/build-module/utils/interactivity/index.js +0 -15
  345. package/build-module/utils/interactivity/index.js.map +0 -1
  346. package/build-module/utils/interactivity/portals.js +0 -100
  347. package/build-module/utils/interactivity/portals.js.map +0 -1
  348. package/build-module/utils/interactivity/store.js +0 -55
  349. package/build-module/utils/interactivity/store.js.map +0 -1
  350. package/build-module/utils/interactivity/utils.js +0 -75
  351. package/build-module/utils/interactivity/utils.js.map +0 -1
  352. package/build-module/utils/interactivity/vdom.js +0 -107
  353. package/build-module/utils/interactivity/vdom.js.map +0 -1
  354. package/src/file/interactivity.js +0 -15
  355. package/src/heading/heading-level-icon.js +0 -48
  356. package/src/navigation/interactivity.js +0 -169
  357. package/src/navigation/view-modal.js +0 -78
  358. package/src/utils/interactivity/constants.js +0 -1
  359. package/src/utils/interactivity/directives.js +0 -200
  360. package/src/utils/interactivity/hooks.js +0 -145
  361. package/src/utils/interactivity/hydration.js +0 -22
  362. package/src/utils/interactivity/index.js +0 -15
  363. package/src/utils/interactivity/portals.js +0 -98
  364. package/src/utils/interactivity/store.js +0 -45
  365. package/src/utils/interactivity/utils.js +0 -66
  366. package/src/utils/interactivity/vdom.js +0 -111
@@ -8,100 +8,226 @@ import classnames from 'classnames';
8
8
  * WordPress dependencies
9
9
  */
10
10
 
11
- import { RichText, useBlockProps } from '@wordpress/block-editor';
12
- const blockAttributes = {
13
- align: {
14
- type: 'string'
15
- },
16
- url: {
17
- type: 'string',
18
- source: 'attribute',
19
- selector: 'img',
20
- attribute: 'src'
21
- },
22
- alt: {
23
- type: 'string',
24
- source: 'attribute',
25
- selector: 'img',
26
- attribute: 'alt',
27
- default: ''
28
- },
29
- caption: {
30
- type: 'string',
31
- source: 'html',
32
- selector: 'figcaption'
33
- },
34
- title: {
35
- type: 'string',
36
- source: 'attribute',
37
- selector: 'img',
38
- attribute: 'title'
39
- },
40
- href: {
41
- type: 'string',
42
- source: 'attribute',
43
- selector: 'figure > a',
44
- attribute: 'href'
45
- },
46
- rel: {
47
- type: 'string',
48
- source: 'attribute',
49
- selector: 'figure > a',
50
- attribute: 'rel'
51
- },
52
- linkClass: {
53
- type: 'string',
54
- source: 'attribute',
55
- selector: 'figure > a',
56
- attribute: 'class'
57
- },
58
- id: {
59
- type: 'number'
60
- },
61
- width: {
62
- type: 'number'
63
- },
64
- height: {
65
- type: 'number'
66
- },
67
- sizeSlug: {
68
- type: 'string'
69
- },
70
- linkDestination: {
71
- type: 'string'
11
+ import { RichText, useBlockProps, __experimentalGetElementClassName as getBorderClassesAndStyles } from '@wordpress/block-editor';
12
+ /**
13
+ * Deprecation for adding the `wp-image-${id}` class to the image block for
14
+ * responsive images.
15
+ *
16
+ * @see https://github.com/WordPress/gutenberg/pull/4898
17
+ */
18
+
19
+ const v1 = {
20
+ attributes: {
21
+ url: {
22
+ type: 'string',
23
+ source: 'attribute',
24
+ selector: 'img',
25
+ attribute: 'src'
26
+ },
27
+ alt: {
28
+ type: 'string',
29
+ source: 'attribute',
30
+ selector: 'img',
31
+ attribute: 'alt',
32
+ default: ''
33
+ },
34
+ caption: {
35
+ type: 'array',
36
+ source: 'children',
37
+ selector: 'figcaption'
38
+ },
39
+ href: {
40
+ type: 'string',
41
+ source: 'attribute',
42
+ selector: 'a',
43
+ attribute: 'href'
44
+ },
45
+ id: {
46
+ type: 'number'
47
+ },
48
+ align: {
49
+ type: 'string'
50
+ },
51
+ width: {
52
+ type: 'number'
53
+ },
54
+ height: {
55
+ type: 'number'
56
+ }
72
57
  },
73
- linkTarget: {
74
- type: 'string',
75
- source: 'attribute',
76
- selector: 'figure > a',
77
- attribute: 'target'
58
+
59
+ save({
60
+ attributes
61
+ }) {
62
+ const {
63
+ url,
64
+ alt,
65
+ caption,
66
+ align,
67
+ href,
68
+ width,
69
+ height
70
+ } = attributes;
71
+ const extraImageProps = width || height ? {
72
+ width,
73
+ height
74
+ } : {};
75
+ const image = createElement("img", {
76
+ src: url,
77
+ alt: alt,
78
+ ...extraImageProps
79
+ });
80
+ let figureStyle = {};
81
+
82
+ if (width) {
83
+ figureStyle = {
84
+ width
85
+ };
86
+ } else if (align === 'left' || align === 'right') {
87
+ figureStyle = {
88
+ maxWidth: '50%'
89
+ };
90
+ }
91
+
92
+ return createElement("figure", {
93
+ className: align ? `align${align}` : null,
94
+ style: figureStyle
95
+ }, href ? createElement("a", {
96
+ href: href
97
+ }, image) : image, !RichText.isEmpty(caption) && createElement(RichText.Content, {
98
+ tagName: "figcaption",
99
+ value: caption
100
+ }));
78
101
  }
102
+
79
103
  };
80
- const blockSupports = {
81
- anchor: true,
82
- color: {
83
- __experimentalDuotone: 'img',
84
- text: false,
85
- background: false
86
- },
87
- __experimentalBorder: {
88
- radius: true,
89
- __experimentalDefaultControls: {
90
- radius: true
104
+ /**
105
+ * Deprecation for adding the `is-resized` class to the image block to fix
106
+ * captions on resized images.
107
+ *
108
+ * @see https://github.com/WordPress/gutenberg/pull/6496
109
+ */
110
+
111
+ const v2 = {
112
+ attributes: {
113
+ url: {
114
+ type: 'string',
115
+ source: 'attribute',
116
+ selector: 'img',
117
+ attribute: 'src'
118
+ },
119
+ alt: {
120
+ type: 'string',
121
+ source: 'attribute',
122
+ selector: 'img',
123
+ attribute: 'alt',
124
+ default: ''
125
+ },
126
+ caption: {
127
+ type: 'array',
128
+ source: 'children',
129
+ selector: 'figcaption'
130
+ },
131
+ href: {
132
+ type: 'string',
133
+ source: 'attribute',
134
+ selector: 'a',
135
+ attribute: 'href'
136
+ },
137
+ id: {
138
+ type: 'number'
139
+ },
140
+ align: {
141
+ type: 'string'
142
+ },
143
+ width: {
144
+ type: 'number'
145
+ },
146
+ height: {
147
+ type: 'number'
91
148
  }
149
+ },
150
+
151
+ save({
152
+ attributes
153
+ }) {
154
+ const {
155
+ url,
156
+ alt,
157
+ caption,
158
+ align,
159
+ href,
160
+ width,
161
+ height,
162
+ id
163
+ } = attributes;
164
+ const image = createElement("img", {
165
+ src: url,
166
+ alt: alt,
167
+ className: id ? `wp-image-${id}` : null,
168
+ width: width,
169
+ height: height
170
+ });
171
+ return createElement("figure", {
172
+ className: align ? `align${align}` : null
173
+ }, href ? createElement("a", {
174
+ href: href
175
+ }, image) : image, !RichText.isEmpty(caption) && createElement(RichText.Content, {
176
+ tagName: "figcaption",
177
+ value: caption
178
+ }));
92
179
  }
180
+
93
181
  };
94
- const deprecated = [// The following deprecation moves existing border radius styles onto the
95
- // inner img element where new border block support styles must be applied.
96
- // It will also add a new `.has-custom-border` class for existing blocks
97
- // with border radii set. This class is required to improve caption position
98
- // and styling when an image within a gallery has a custom border or
99
- // rounded corners.
100
- //
101
- // See: https://github.com/WordPress/gutenberg/pull/31366/
102
- {
103
- attributes: blockAttributes,
104
- supports: blockSupports,
182
+ /**
183
+ * Deprecation for image floats including a wrapping div.
184
+ *
185
+ * @see https://github.com/WordPress/gutenberg/pull/7721
186
+ */
187
+
188
+ const v3 = {
189
+ attributes: {
190
+ url: {
191
+ type: 'string',
192
+ source: 'attribute',
193
+ selector: 'img',
194
+ attribute: 'src'
195
+ },
196
+ alt: {
197
+ type: 'string',
198
+ source: 'attribute',
199
+ selector: 'img',
200
+ attribute: 'alt',
201
+ default: ''
202
+ },
203
+ caption: {
204
+ type: 'array',
205
+ source: 'children',
206
+ selector: 'figcaption'
207
+ },
208
+ href: {
209
+ type: 'string',
210
+ source: 'attribute',
211
+ selector: 'figure > a',
212
+ attribute: 'href'
213
+ },
214
+ id: {
215
+ type: 'number'
216
+ },
217
+ align: {
218
+ type: 'string'
219
+ },
220
+ width: {
221
+ type: 'number'
222
+ },
223
+ height: {
224
+ type: 'number'
225
+ },
226
+ linkDestination: {
227
+ type: 'string',
228
+ default: 'none'
229
+ }
230
+ },
105
231
 
106
232
  save({
107
233
  attributes
@@ -112,19 +238,12 @@ const deprecated = [// The following deprecation moves existing border radius st
112
238
  caption,
113
239
  align,
114
240
  href,
115
- rel,
116
- linkClass,
117
241
  width,
118
242
  height,
119
- id,
120
- linkTarget,
121
- sizeSlug,
122
- title
243
+ id
123
244
  } = attributes;
124
- const newRel = !rel ? undefined : rel;
125
245
  const classes = classnames({
126
246
  [`align${align}`]: align,
127
- [`size-${sizeSlug}`]: sizeSlug,
128
247
  'is-resized': width || height
129
248
  });
130
249
  const image = createElement("img", {
@@ -132,37 +251,97 @@ const deprecated = [// The following deprecation moves existing border radius st
132
251
  alt: alt,
133
252
  className: id ? `wp-image-${id}` : null,
134
253
  width: width,
135
- height: height,
136
- title: title
254
+ height: height
137
255
  });
138
- const figure = createElement(Fragment, null, href ? createElement("a", {
139
- className: linkClass,
140
- href: href,
141
- target: linkTarget,
142
- rel: newRel
256
+ return createElement("figure", {
257
+ className: classes
258
+ }, href ? createElement("a", {
259
+ href: href
143
260
  }, image) : image, !RichText.isEmpty(caption) && createElement(RichText.Content, {
144
261
  tagName: "figcaption",
145
262
  value: caption
146
263
  }));
147
- return createElement("figure", { ...useBlockProps.save({
148
- className: classes
149
- })
150
- }, figure);
151
264
  }
152
265
 
153
- }, {
154
- attributes: { ...blockAttributes,
266
+ };
267
+ /**
268
+ * Deprecation for removing the outer div wrapper around aligned images.
269
+ *
270
+ * @see https://github.com/WordPress/gutenberg/pull/38657
271
+ */
272
+
273
+ const v4 = {
274
+ attributes: {
275
+ align: {
276
+ type: 'string'
277
+ },
278
+ url: {
279
+ type: 'string',
280
+ source: 'attribute',
281
+ selector: 'img',
282
+ attribute: 'src'
283
+ },
284
+ alt: {
285
+ type: 'string',
286
+ source: 'attribute',
287
+ selector: 'img',
288
+ attribute: 'alt',
289
+ default: ''
290
+ },
291
+ caption: {
292
+ type: 'string',
293
+ source: 'html',
294
+ selector: 'figcaption'
295
+ },
155
296
  title: {
156
297
  type: 'string',
157
298
  source: 'attribute',
158
299
  selector: 'img',
159
300
  attribute: 'title'
160
301
  },
302
+ href: {
303
+ type: 'string',
304
+ source: 'attribute',
305
+ selector: 'figure > a',
306
+ attribute: 'href'
307
+ },
308
+ rel: {
309
+ type: 'string',
310
+ source: 'attribute',
311
+ selector: 'figure > a',
312
+ attribute: 'rel'
313
+ },
314
+ linkClass: {
315
+ type: 'string',
316
+ source: 'attribute',
317
+ selector: 'figure > a',
318
+ attribute: 'class'
319
+ },
320
+ id: {
321
+ type: 'number'
322
+ },
323
+ width: {
324
+ type: 'number'
325
+ },
326
+ height: {
327
+ type: 'number'
328
+ },
161
329
  sizeSlug: {
162
330
  type: 'string'
331
+ },
332
+ linkDestination: {
333
+ type: 'string'
334
+ },
335
+ linkTarget: {
336
+ type: 'string',
337
+ source: 'attribute',
338
+ selector: 'figure > a',
339
+ attribute: 'target'
163
340
  }
164
341
  },
165
- supports: blockSupports,
342
+ supports: {
343
+ anchor: true
344
+ },
166
345
 
167
346
  save({
168
347
  attributes
@@ -219,8 +398,106 @@ const deprecated = [// The following deprecation moves existing border radius st
219
398
  }, figure);
220
399
  }
221
400
 
222
- }, {
223
- attributes: blockAttributes,
401
+ };
402
+ /**
403
+ * Deprecation for moving existing border radius styles onto the inner img
404
+ * element where new border block support styles must be applied.
405
+ * It will also add a new `.has-custom-border` class for existing blocks
406
+ * with border radii set. This class is required to improve caption position
407
+ * and styling when an image within a gallery has a custom border or
408
+ * rounded corners.
409
+ *
410
+ * @see https://github.com/WordPress/gutenberg/pull/31366
411
+ */
412
+
413
+ const v5 = {
414
+ attributes: {
415
+ align: {
416
+ type: 'string'
417
+ },
418
+ url: {
419
+ type: 'string',
420
+ source: 'attribute',
421
+ selector: 'img',
422
+ attribute: 'src'
423
+ },
424
+ alt: {
425
+ type: 'string',
426
+ source: 'attribute',
427
+ selector: 'img',
428
+ attribute: 'alt',
429
+ default: ''
430
+ },
431
+ caption: {
432
+ type: 'string',
433
+ source: 'html',
434
+ selector: 'figcaption'
435
+ },
436
+ title: {
437
+ type: 'string',
438
+ source: 'attribute',
439
+ selector: 'img',
440
+ attribute: 'title'
441
+ },
442
+ href: {
443
+ type: 'string',
444
+ source: 'attribute',
445
+ selector: 'figure > a',
446
+ attribute: 'href'
447
+ },
448
+ rel: {
449
+ type: 'string',
450
+ source: 'attribute',
451
+ selector: 'figure > a',
452
+ attribute: 'rel'
453
+ },
454
+ linkClass: {
455
+ type: 'string',
456
+ source: 'attribute',
457
+ selector: 'figure > a',
458
+ attribute: 'class'
459
+ },
460
+ id: {
461
+ type: 'number'
462
+ },
463
+ width: {
464
+ type: 'number'
465
+ },
466
+ height: {
467
+ type: 'number'
468
+ },
469
+ sizeSlug: {
470
+ type: 'string'
471
+ },
472
+ linkDestination: {
473
+ type: 'string'
474
+ },
475
+ linkTarget: {
476
+ type: 'string',
477
+ source: 'attribute',
478
+ selector: 'figure > a',
479
+ attribute: 'target'
480
+ }
481
+ },
482
+ supports: {
483
+ anchor: true,
484
+ color: {
485
+ __experimentalDuotone: 'img',
486
+ text: false,
487
+ background: false
488
+ },
489
+ __experimentalBorder: {
490
+ radius: true,
491
+ __experimentalDefaultControls: {
492
+ radius: true
493
+ }
494
+ },
495
+ __experimentalStyle: {
496
+ spacing: {
497
+ margin: '0 0 1em 0'
498
+ }
499
+ }
500
+ },
224
501
 
225
502
  save({
226
503
  attributes
@@ -231,12 +508,19 @@ const deprecated = [// The following deprecation moves existing border radius st
231
508
  caption,
232
509
  align,
233
510
  href,
511
+ rel,
512
+ linkClass,
234
513
  width,
235
514
  height,
236
- id
515
+ id,
516
+ linkTarget,
517
+ sizeSlug,
518
+ title
237
519
  } = attributes;
520
+ const newRel = !rel ? undefined : rel;
238
521
  const classes = classnames({
239
522
  [`align${align}`]: align,
523
+ [`size-${sizeSlug}`]: sizeSlug,
240
524
  'is-resized': width || height
241
525
  });
242
526
  const image = createElement("img", {
@@ -244,21 +528,33 @@ const deprecated = [// The following deprecation moves existing border radius st
244
528
  alt: alt,
245
529
  className: id ? `wp-image-${id}` : null,
246
530
  width: width,
247
- height: height
531
+ height: height,
532
+ title: title
248
533
  });
249
- return createElement("figure", {
250
- className: classes
251
- }, href ? createElement("a", {
252
- href: href
534
+ const figure = createElement(Fragment, null, href ? createElement("a", {
535
+ className: linkClass,
536
+ href: href,
537
+ target: linkTarget,
538
+ rel: newRel
253
539
  }, image) : image, !RichText.isEmpty(caption) && createElement(RichText.Content, {
254
540
  tagName: "figcaption",
255
541
  value: caption
256
542
  }));
543
+ return createElement("figure", { ...useBlockProps.save({
544
+ className: classes
545
+ })
546
+ }, figure);
257
547
  }
258
548
 
259
- }, {
260
- attributes: blockAttributes,
549
+ };
550
+ /**
551
+ * Deprecation for adding width and height as style rules on the inner img.
552
+ * It also updates the widht and height attributes to be strings instead of numbers.
553
+ *
554
+ * @see https://github.com/WordPress/gutenberg/pull/31366
555
+ */
261
556
 
557
+ const v6 = {
262
558
  save({
263
559
  attributes
264
560
  }) {
@@ -268,74 +564,56 @@ const deprecated = [// The following deprecation moves existing border radius st
268
564
  caption,
269
565
  align,
270
566
  href,
567
+ rel,
568
+ linkClass,
271
569
  width,
272
570
  height,
273
- id
571
+ aspectRatio,
572
+ scale,
573
+ id,
574
+ linkTarget,
575
+ sizeSlug,
576
+ title
274
577
  } = attributes;
275
- const image = createElement("img", {
276
- src: url,
277
- alt: alt,
278
- className: id ? `wp-image-${id}` : null,
279
- width: width,
280
- height: height
578
+ const newRel = !rel ? undefined : rel;
579
+ const borderProps = getBorderClassesAndStyles(attributes);
580
+ const classes = classnames({
581
+ [`align${align}`]: align,
582
+ [`size-${sizeSlug}`]: sizeSlug,
583
+ 'is-resized': width || height,
584
+ 'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
585
+ });
586
+ const imageClasses = classnames(borderProps.className, {
587
+ [`wp-image-${id}`]: !!id
281
588
  });
282
- return createElement("figure", {
283
- className: align ? `align${align}` : null
284
- }, href ? createElement("a", {
285
- href: href
286
- }, image) : image, !RichText.isEmpty(caption) && createElement(RichText.Content, {
287
- tagName: "figcaption",
288
- value: caption
289
- }));
290
- }
291
-
292
- }, {
293
- attributes: blockAttributes,
294
-
295
- save({
296
- attributes
297
- }) {
298
- const {
299
- url,
300
- alt,
301
- caption,
302
- align,
303
- href,
304
- width,
305
- height
306
- } = attributes;
307
- const extraImageProps = width || height ? {
308
- width,
309
- height
310
- } : {};
311
589
  const image = createElement("img", {
312
590
  src: url,
313
591
  alt: alt,
314
- ...extraImageProps
592
+ className: imageClasses || undefined,
593
+ style: { ...borderProps.style,
594
+ aspectRatio,
595
+ objectFit: scale
596
+ },
597
+ width: width,
598
+ height: height,
599
+ title: title
315
600
  });
316
- let figureStyle = {};
317
-
318
- if (width) {
319
- figureStyle = {
320
- width
321
- };
322
- } else if (align === 'left' || align === 'right') {
323
- figureStyle = {
324
- maxWidth: '50%'
325
- };
326
- }
327
-
328
- return createElement("figure", {
329
- className: align ? `align${align}` : null,
330
- style: figureStyle
331
- }, href ? createElement("a", {
332
- href: href
601
+ const figure = createElement(Fragment, null, href ? createElement("a", {
602
+ className: linkClass,
603
+ href: href,
604
+ target: linkTarget,
605
+ rel: newRel
333
606
  }, image) : image, !RichText.isEmpty(caption) && createElement(RichText.Content, {
607
+ className: getBorderClassesAndStyles('caption'),
334
608
  tagName: "figcaption",
335
609
  value: caption
336
610
  }));
611
+ return createElement("figure", { ...useBlockProps.save({
612
+ className: classes
613
+ })
614
+ }, figure);
337
615
  }
338
616
 
339
- }];
340
- export default deprecated;
617
+ };
618
+ export default [v6, v5, v4, v3, v2, v1];
341
619
  //# sourceMappingURL=deprecated.js.map