@wordpress/block-library 8.29.0 → 8.31.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 (527) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/audio/edit.js +7 -17
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/audio/edit.native.js.map +1 -1
  5. package/build/avatar/edit.js.map +1 -1
  6. package/build/block/deprecated.js +71 -11
  7. package/build/block/deprecated.js.map +1 -1
  8. package/build/block/edit.js +65 -31
  9. package/build/block/edit.js.map +1 -1
  10. package/build/button/edit.js +2 -2
  11. package/build/button/edit.js.map +1 -1
  12. package/build/buttons/edit.native.js.map +1 -1
  13. package/build/buttons/transforms.js +16 -2
  14. package/build/buttons/transforms.js.map +1 -1
  15. package/build/code/save.js +3 -1
  16. package/build/code/save.js.map +1 -1
  17. package/build/code/transforms.js +17 -6
  18. package/build/code/transforms.js.map +1 -1
  19. package/build/columns/edit.js +3 -2
  20. package/build/columns/edit.js.map +1 -1
  21. package/build/comment-author-avatar/edit.js +1 -1
  22. package/build/comment-author-avatar/edit.js.map +1 -1
  23. package/build/cover/edit/block-controls.js +14 -3
  24. package/build/cover/edit/block-controls.js.map +1 -1
  25. package/build/cover/edit/index.js +2 -1
  26. package/build/cover/edit/index.js.map +1 -1
  27. package/build/cover/edit/inspector-controls.js.map +1 -1
  28. package/build/cover/edit/resizable-cover-popover.js +0 -6
  29. package/build/cover/edit/resizable-cover-popover.js.map +1 -1
  30. package/build/cover/edit.native.js.map +1 -1
  31. package/build/details/edit.js +1 -0
  32. package/build/details/edit.js.map +1 -1
  33. package/build/file/deprecated.js.map +1 -1
  34. package/build/file/edit.js +8 -13
  35. package/build/file/edit.js.map +1 -1
  36. package/build/file/edit.native.js.map +1 -1
  37. package/build/file/save.js.map +1 -1
  38. package/build/form-input/edit.js +1 -1
  39. package/build/form-input/edit.js.map +1 -1
  40. package/build/gallery/edit.js.map +1 -1
  41. package/build/gallery/gallery.native.js.map +1 -1
  42. package/build/gallery/v1/edit.js.map +1 -1
  43. package/build/gallery/v1/gallery.native.js.map +1 -1
  44. package/build/heading/index.js +4 -3
  45. package/build/heading/index.js.map +1 -1
  46. package/build/heading/transforms.js +17 -4
  47. package/build/heading/transforms.js.map +1 -1
  48. package/build/image/edit.js +8 -4
  49. package/build/image/edit.js.map +1 -1
  50. package/build/image/edit.native.js.map +1 -1
  51. package/build/image/image.js +22 -8
  52. package/build/image/image.js.map +1 -1
  53. package/build/latest-posts/edit.native.js.map +1 -1
  54. package/build/list/ordered-list-settings.js +1 -1
  55. package/build/list/ordered-list-settings.js.map +1 -1
  56. package/build/list-item/edit.js +1 -3
  57. package/build/list-item/edit.js.map +1 -1
  58. package/build/list-item/edit.native.js.map +1 -1
  59. package/build/list-item/hooks/index.js +0 -7
  60. package/build/list-item/hooks/index.js.map +1 -1
  61. package/build/list-item/hooks/use-indent-list-item.js +1 -0
  62. package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
  63. package/build/list-item/hooks/use-outdent-list-item.js +1 -0
  64. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  65. package/build/list-item/hooks/use-space.js +16 -7
  66. package/build/list-item/hooks/use-space.js.map +1 -1
  67. package/build/list-item/index.js +4 -1
  68. package/build/list-item/index.js.map +1 -1
  69. package/build/media-text/edit.js +33 -9
  70. package/build/media-text/edit.js.map +1 -1
  71. package/build/media-text/index.js +5 -0
  72. package/build/media-text/index.js.map +1 -1
  73. package/build/media-text/media-container.js +30 -11
  74. package/build/media-text/media-container.js.map +1 -1
  75. package/build/media-text/media-container.native.js +1 -1
  76. package/build/media-text/media-container.native.js.map +1 -1
  77. package/build/media-text/save.js +2 -2
  78. package/build/media-text/save.js.map +1 -1
  79. package/build/navigation/edit/index.js +23 -29
  80. package/build/navigation/edit/index.js.map +1 -1
  81. package/build/navigation/edit/navigation-menu-delete-control.js +12 -20
  82. package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  83. package/build/navigation/edit/navigation-menu-selector.js +24 -23
  84. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  85. package/build/navigation/edit/placeholder/index.js +4 -4
  86. package/build/navigation/edit/placeholder/index.js.map +1 -1
  87. package/build/navigation/use-navigation-menu.js +15 -12
  88. package/build/navigation/use-navigation-menu.js.map +1 -1
  89. package/build/navigation-link/edit.js +12 -10
  90. package/build/navigation-link/edit.js.map +1 -1
  91. package/build/navigation-link/link-ui.js.map +1 -1
  92. package/build/navigation-submenu/edit.js +4 -0
  93. package/build/navigation-submenu/edit.js.map +1 -1
  94. package/build/paragraph/edit.native.js.map +1 -1
  95. package/build/pattern/edit.js +11 -0
  96. package/build/pattern/edit.js.map +1 -1
  97. package/build/post-author/edit.js +1 -0
  98. package/build/post-author/edit.js.map +1 -1
  99. package/build/post-excerpt/edit.js +1 -0
  100. package/build/post-excerpt/edit.js.map +1 -1
  101. package/build/post-featured-image/dimension-controls.js.map +1 -1
  102. package/build/post-featured-image/edit.js +12 -12
  103. package/build/post-featured-image/edit.js.map +1 -1
  104. package/build/post-featured-image/index.js +6 -0
  105. package/build/post-featured-image/index.js.map +1 -1
  106. package/build/post-navigation-link/edit.js +1 -0
  107. package/build/post-navigation-link/edit.js.map +1 -1
  108. package/build/post-terms/edit.js +2 -0
  109. package/build/post-terms/edit.js.map +1 -1
  110. package/build/post-title/edit.js +2 -2
  111. package/build/post-title/edit.js.map +1 -1
  112. package/build/query/edit/pattern-selection-modal.js.map +1 -1
  113. package/build/query/utils.js +7 -5
  114. package/build/query/utils.js.map +1 -1
  115. package/build/query-pagination-next/edit.js.map +1 -1
  116. package/build/query-pagination-previous/edit.js.map +1 -1
  117. package/build/quote/deprecated.js +111 -12
  118. package/build/quote/deprecated.js.map +1 -1
  119. package/build/quote/edit.js +7 -7
  120. package/build/quote/edit.js.map +1 -1
  121. package/build/quote/index.js +1 -1
  122. package/build/quote/index.js.map +1 -1
  123. package/build/quote/save.js +2 -2
  124. package/build/quote/save.js.map +1 -1
  125. package/build/read-more/edit.js +1 -0
  126. package/build/read-more/edit.js.map +1 -1
  127. package/build/search/edit.js +3 -1
  128. package/build/search/edit.js.map +1 -1
  129. package/build/search/edit.native.js +2 -2
  130. package/build/search/edit.native.js.map +1 -1
  131. package/build/site-logo/edit.js +7 -2
  132. package/build/site-logo/edit.js.map +1 -1
  133. package/build/site-title/{edit/index.js → edit.js} +1 -1
  134. package/build/site-title/edit.js.map +1 -0
  135. package/build/social-link/edit.js +1 -1
  136. package/build/social-link/edit.js.map +1 -1
  137. package/build/social-link/icons/medium.js +1 -1
  138. package/build/social-link/icons/medium.js.map +1 -1
  139. package/build/social-link/icons/reddit.js +1 -1
  140. package/build/social-link/icons/reddit.js.map +1 -1
  141. package/build/social-links/edit.native.js.map +1 -1
  142. package/build/spacer/edit.js.map +1 -1
  143. package/build/table/deprecated.js +285 -175
  144. package/build/table/deprecated.js.map +1 -1
  145. package/build/table/index.js +1 -1
  146. package/build/table-of-contents/edit.js.map +1 -1
  147. package/build/template-part/edit/index.js +53 -1
  148. package/build/template-part/edit/index.js.map +1 -1
  149. package/build/template-part/edit/selection-modal.js +2 -8
  150. package/build/template-part/edit/selection-modal.js.map +1 -1
  151. package/build/template-part/edit/utils/map-template-part-to-block-pattern.js +30 -0
  152. package/build/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
  153. package/build/utils/caption.js +15 -5
  154. package/build/utils/caption.js.map +1 -1
  155. package/build/utils/get-transformed-metadata.js +57 -0
  156. package/build/utils/get-transformed-metadata.js.map +1 -0
  157. package/build/utils/hooks.js +55 -4
  158. package/build/utils/hooks.js.map +1 -1
  159. package/build/video/edit-common-settings.js.map +1 -1
  160. package/build/video/edit.js +7 -16
  161. package/build/video/edit.js.map +1 -1
  162. package/build/video/edit.native.js +3 -8
  163. package/build/video/edit.native.js.map +1 -1
  164. package/build-module/audio/edit.js +10 -20
  165. package/build-module/audio/edit.js.map +1 -1
  166. package/build-module/audio/edit.native.js.map +1 -1
  167. package/build-module/avatar/edit.js.map +1 -1
  168. package/build-module/block/deprecated.js +71 -11
  169. package/build-module/block/deprecated.js.map +1 -1
  170. package/build-module/block/edit.js +66 -32
  171. package/build-module/block/edit.js.map +1 -1
  172. package/build-module/button/edit.js +3 -3
  173. package/build-module/button/edit.js.map +1 -1
  174. package/build-module/buttons/edit.native.js.map +1 -1
  175. package/build-module/buttons/transforms.js +16 -2
  176. package/build-module/buttons/transforms.js.map +1 -1
  177. package/build-module/code/save.js +3 -1
  178. package/build-module/code/save.js.map +1 -1
  179. package/build-module/code/transforms.js +17 -6
  180. package/build-module/code/transforms.js.map +1 -1
  181. package/build-module/columns/edit.js +3 -2
  182. package/build-module/columns/edit.js.map +1 -1
  183. package/build-module/comment-author-avatar/edit.js +1 -1
  184. package/build-module/comment-author-avatar/edit.js.map +1 -1
  185. package/build-module/cover/edit/block-controls.js +15 -4
  186. package/build-module/cover/edit/block-controls.js.map +1 -1
  187. package/build-module/cover/edit/index.js +2 -1
  188. package/build-module/cover/edit/index.js.map +1 -1
  189. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  190. package/build-module/cover/edit/resizable-cover-popover.js +1 -7
  191. package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
  192. package/build-module/cover/edit.native.js.map +1 -1
  193. package/build-module/details/edit.js +1 -0
  194. package/build-module/details/edit.js.map +1 -1
  195. package/build-module/file/deprecated.js.map +1 -1
  196. package/build-module/file/edit.js +9 -14
  197. package/build-module/file/edit.js.map +1 -1
  198. package/build-module/file/edit.native.js.map +1 -1
  199. package/build-module/file/save.js.map +1 -1
  200. package/build-module/form-input/edit.js +1 -1
  201. package/build-module/form-input/edit.js.map +1 -1
  202. package/build-module/gallery/edit.js.map +1 -1
  203. package/build-module/gallery/gallery.native.js.map +1 -1
  204. package/build-module/gallery/v1/edit.js.map +1 -1
  205. package/build-module/gallery/v1/gallery.native.js.map +1 -1
  206. package/build-module/heading/index.js +4 -3
  207. package/build-module/heading/index.js.map +1 -1
  208. package/build-module/heading/transforms.js +17 -4
  209. package/build-module/heading/transforms.js.map +1 -1
  210. package/build-module/image/edit.js +9 -5
  211. package/build-module/image/edit.js.map +1 -1
  212. package/build-module/image/edit.native.js.map +1 -1
  213. package/build-module/image/image.js +23 -9
  214. package/build-module/image/image.js.map +1 -1
  215. package/build-module/latest-posts/edit.native.js.map +1 -1
  216. package/build-module/list/ordered-list-settings.js +1 -1
  217. package/build-module/list/ordered-list-settings.js.map +1 -1
  218. package/build-module/list-item/edit.js +2 -4
  219. package/build-module/list-item/edit.js.map +1 -1
  220. package/build-module/list-item/edit.native.js.map +1 -1
  221. package/build-module/list-item/hooks/index.js +0 -1
  222. package/build-module/list-item/hooks/index.js.map +1 -1
  223. package/build-module/list-item/hooks/use-indent-list-item.js +1 -0
  224. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
  225. package/build-module/list-item/hooks/use-outdent-list-item.js +1 -0
  226. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  227. package/build-module/list-item/hooks/use-space.js +17 -8
  228. package/build-module/list-item/hooks/use-space.js.map +1 -1
  229. package/build-module/list-item/index.js +4 -1
  230. package/build-module/list-item/index.js.map +1 -1
  231. package/build-module/media-text/edit.js +34 -10
  232. package/build-module/media-text/edit.js.map +1 -1
  233. package/build-module/media-text/index.js +5 -0
  234. package/build-module/media-text/index.js.map +1 -1
  235. package/build-module/media-text/media-container.js +31 -12
  236. package/build-module/media-text/media-container.js.map +1 -1
  237. package/build-module/media-text/media-container.native.js +1 -1
  238. package/build-module/media-text/media-container.native.js.map +1 -1
  239. package/build-module/media-text/save.js +2 -2
  240. package/build-module/media-text/save.js.map +1 -1
  241. package/build-module/navigation/edit/index.js +24 -30
  242. package/build-module/navigation/edit/index.js.map +1 -1
  243. package/build-module/navigation/edit/navigation-menu-delete-control.js +15 -23
  244. package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  245. package/build-module/navigation/edit/navigation-menu-selector.js +24 -23
  246. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  247. package/build-module/navigation/edit/placeholder/index.js +4 -4
  248. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  249. package/build-module/navigation/use-navigation-menu.js +15 -12
  250. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  251. package/build-module/navigation-link/edit.js +13 -11
  252. package/build-module/navigation-link/edit.js.map +1 -1
  253. package/build-module/navigation-link/link-ui.js.map +1 -1
  254. package/build-module/navigation-submenu/edit.js +4 -0
  255. package/build-module/navigation-submenu/edit.js.map +1 -1
  256. package/build-module/paragraph/edit.native.js.map +1 -1
  257. package/build-module/pattern/edit.js +11 -0
  258. package/build-module/pattern/edit.js.map +1 -1
  259. package/build-module/post-author/edit.js +1 -0
  260. package/build-module/post-author/edit.js.map +1 -1
  261. package/build-module/post-excerpt/edit.js +1 -0
  262. package/build-module/post-excerpt/edit.js.map +1 -1
  263. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  264. package/build-module/post-featured-image/edit.js +13 -13
  265. package/build-module/post-featured-image/edit.js.map +1 -1
  266. package/build-module/post-featured-image/index.js +6 -0
  267. package/build-module/post-featured-image/index.js.map +1 -1
  268. package/build-module/post-navigation-link/edit.js +1 -0
  269. package/build-module/post-navigation-link/edit.js.map +1 -1
  270. package/build-module/post-terms/edit.js +2 -0
  271. package/build-module/post-terms/edit.js.map +1 -1
  272. package/build-module/post-title/edit.js +2 -2
  273. package/build-module/post-title/edit.js.map +1 -1
  274. package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
  275. package/build-module/query/utils.js +7 -5
  276. package/build-module/query/utils.js.map +1 -1
  277. package/build-module/query-pagination-next/edit.js.map +1 -1
  278. package/build-module/query-pagination-previous/edit.js.map +1 -1
  279. package/build-module/quote/deprecated.js +112 -13
  280. package/build-module/quote/deprecated.js.map +1 -1
  281. package/build-module/quote/edit.js +7 -7
  282. package/build-module/quote/edit.js.map +1 -1
  283. package/build-module/quote/index.js +1 -1
  284. package/build-module/quote/index.js.map +1 -1
  285. package/build-module/quote/save.js +2 -2
  286. package/build-module/quote/save.js.map +1 -1
  287. package/build-module/read-more/edit.js +1 -0
  288. package/build-module/read-more/edit.js.map +1 -1
  289. package/build-module/search/edit.js +3 -1
  290. package/build-module/search/edit.js.map +1 -1
  291. package/build-module/search/edit.native.js +2 -2
  292. package/build-module/search/edit.native.js.map +1 -1
  293. package/build-module/site-logo/edit.js +7 -2
  294. package/build-module/site-logo/edit.js.map +1 -1
  295. package/build-module/site-title/{edit/index.js → edit.js} +1 -1
  296. package/build-module/site-title/edit.js.map +1 -0
  297. package/build-module/social-link/edit.js +1 -1
  298. package/build-module/social-link/edit.js.map +1 -1
  299. package/build-module/social-link/icons/medium.js +1 -1
  300. package/build-module/social-link/icons/medium.js.map +1 -1
  301. package/build-module/social-link/icons/reddit.js +1 -1
  302. package/build-module/social-link/icons/reddit.js.map +1 -1
  303. package/build-module/social-links/edit.native.js.map +1 -1
  304. package/build-module/spacer/edit.js.map +1 -1
  305. package/build-module/table/deprecated.js +286 -176
  306. package/build-module/table/deprecated.js.map +1 -1
  307. package/build-module/table/index.js +1 -1
  308. package/build-module/table-of-contents/edit.js.map +1 -1
  309. package/build-module/template-part/edit/index.js +57 -5
  310. package/build-module/template-part/edit/index.js.map +1 -1
  311. package/build-module/template-part/edit/selection-modal.js +2 -8
  312. package/build-module/template-part/edit/selection-modal.js.map +1 -1
  313. package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js +24 -0
  314. package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
  315. package/build-module/utils/caption.js +13 -3
  316. package/build-module/utils/caption.js.map +1 -1
  317. package/build-module/utils/get-transformed-metadata.js +51 -0
  318. package/build-module/utils/get-transformed-metadata.js.map +1 -0
  319. package/build-module/utils/hooks.js +54 -3
  320. package/build-module/utils/hooks.js.map +1 -1
  321. package/build-module/video/edit-common-settings.js.map +1 -1
  322. package/build-module/video/edit.js +10 -19
  323. package/build-module/video/edit.js.map +1 -1
  324. package/build-module/video/edit.native.js +3 -8
  325. package/build-module/video/edit.native.js.map +1 -1
  326. package/build-style/common-rtl.css +1 -0
  327. package/build-style/common.css +1 -0
  328. package/build-style/cover/style-rtl.css +2 -1
  329. package/build-style/cover/style.css +2 -1
  330. package/build-style/editor-rtl.css +11 -2
  331. package/build-style/editor.css +11 -2
  332. package/build-style/file/editor-rtl.css +3 -0
  333. package/build-style/file/editor.css +3 -0
  334. package/build-style/group/editor-rtl.css +1 -1
  335. package/build-style/group/editor.css +1 -1
  336. package/build-style/media-text/editor-rtl.css +7 -1
  337. package/build-style/media-text/editor.css +7 -1
  338. package/build-style/search/style-rtl.css +2 -0
  339. package/build-style/search/style.css +2 -0
  340. package/build-style/social-links/style-rtl.css +2 -2
  341. package/build-style/social-links/style.css +2 -2
  342. package/build-style/style-rtl.css +6 -3
  343. package/build-style/style.css +6 -3
  344. package/package.json +34 -34
  345. package/src/archives/index.php +4 -0
  346. package/src/audio/edit.js +9 -19
  347. package/src/audio/edit.native.js +3 -3
  348. package/src/avatar/edit.js +1 -1
  349. package/src/avatar/index.php +6 -0
  350. package/src/block/deprecated.js +76 -11
  351. package/src/block/edit.js +100 -32
  352. package/src/block/index.php +27 -12
  353. package/src/block/test/edit.native.js +67 -0
  354. package/src/button/edit.js +4 -3
  355. package/src/buttons/edit.native.js +1 -1
  356. package/src/buttons/transforms.js +14 -4
  357. package/src/calendar/index.php +17 -0
  358. package/src/categories/index.php +6 -0
  359. package/src/code/save.js +7 -1
  360. package/src/code/transforms.js +20 -5
  361. package/src/columns/edit.js +3 -2
  362. package/src/comment-author-avatar/edit.js +1 -1
  363. package/src/comment-author-name/index.php +4 -0
  364. package/src/comment-content/index.php +4 -0
  365. package/src/comment-date/index.php +4 -0
  366. package/src/comment-edit-link/index.php +4 -0
  367. package/src/comment-reply-link/index.php +4 -0
  368. package/src/comment-template/index.php +4 -0
  369. package/src/comments/index.php +12 -0
  370. package/src/comments-pagination/index.php +4 -0
  371. package/src/comments-pagination-next/index.php +4 -0
  372. package/src/comments-pagination-numbers/index.php +4 -0
  373. package/src/comments-pagination-previous/index.php +4 -0
  374. package/src/comments-title/index.php +4 -0
  375. package/src/cover/edit/block-controls.js +16 -2
  376. package/src/cover/edit/index.js +6 -3
  377. package/src/cover/edit/inspector-controls.js +1 -1
  378. package/src/cover/edit/resizable-cover-popover.js +1 -6
  379. package/src/cover/edit.native.js +1 -1
  380. package/src/cover/index.php +4 -0
  381. package/src/cover/style.scss +3 -2
  382. package/src/details/edit.js +1 -0
  383. package/src/file/deprecated.js +3 -3
  384. package/src/file/edit.js +10 -15
  385. package/src/file/edit.native.js +4 -4
  386. package/src/file/editor.scss +3 -0
  387. package/src/file/index.php +4 -0
  388. package/src/file/save.js +1 -1
  389. package/src/footnotes/index.php +1 -1
  390. package/src/form-input/edit.js +1 -1
  391. package/src/gallery/edit.js +3 -3
  392. package/src/gallery/gallery.native.js +1 -1
  393. package/src/gallery/index.php +6 -0
  394. package/src/gallery/test/index.native.js +1 -1
  395. package/src/gallery/v1/edit.js +2 -2
  396. package/src/gallery/v1/gallery.native.js +1 -1
  397. package/src/group/editor.scss +1 -1
  398. package/src/heading/index.js +4 -3
  399. package/src/heading/index.php +4 -0
  400. package/src/heading/transforms.js +27 -8
  401. package/src/home-link/index.php +10 -0
  402. package/src/image/edit.js +13 -5
  403. package/src/image/edit.native.js +1 -1
  404. package/src/image/editor.scss +1 -0
  405. package/src/image/image.js +34 -22
  406. package/src/image/index.php +12 -1
  407. package/src/latest-comments/index.php +4 -0
  408. package/src/latest-posts/edit.native.js +1 -1
  409. package/src/latest-posts/index.php +8 -0
  410. package/src/list/ordered-list-settings.js +1 -1
  411. package/src/list-item/edit.js +1 -2
  412. package/src/list-item/edit.native.js +1 -1
  413. package/src/list-item/hooks/index.js +0 -1
  414. package/src/list-item/hooks/use-indent-list-item.js +2 -0
  415. package/src/list-item/hooks/use-outdent-list-item.js +2 -0
  416. package/src/list-item/hooks/use-space.js +16 -9
  417. package/src/list-item/index.js +3 -0
  418. package/src/loginout/index.php +4 -0
  419. package/src/media-text/block.json +5 -0
  420. package/src/media-text/edit.js +70 -19
  421. package/src/media-text/editor.scss +7 -1
  422. package/src/media-text/index.php +70 -0
  423. package/src/media-text/media-container.js +49 -9
  424. package/src/media-text/media-container.native.js +5 -3
  425. package/src/media-text/save.js +2 -2
  426. package/src/media-text/test/edit.native.js +58 -0
  427. package/src/missing/test/edit-integration.native.js +2 -1
  428. package/src/navigation/edit/index.js +68 -72
  429. package/src/navigation/edit/navigation-menu-delete-control.js +22 -49
  430. package/src/navigation/edit/navigation-menu-selector.js +39 -21
  431. package/src/navigation/edit/placeholder/index.js +4 -4
  432. package/src/navigation/edit/test/navigation-menu-selector.js +77 -55
  433. package/src/navigation/index.php +118 -34
  434. package/src/navigation/test/use-navigation-menu.js +21 -21
  435. package/src/navigation/use-navigation-menu.js +23 -9
  436. package/src/navigation-link/edit.js +12 -13
  437. package/src/navigation-link/index.php +14 -0
  438. package/src/navigation-link/link-ui.js +2 -2
  439. package/src/navigation-submenu/edit.js +4 -0
  440. package/src/navigation-submenu/index.php +8 -0
  441. package/src/page-list/index.php +12 -0
  442. package/src/page-list-item/index.php +2 -0
  443. package/src/paragraph/edit.native.js +1 -1
  444. package/src/paragraph/test/edit.native.js +36 -0
  445. package/src/pattern/edit.js +14 -0
  446. package/src/pattern/index.php +2 -0
  447. package/src/post-author/edit.js +1 -0
  448. package/src/post-author/index.php +4 -0
  449. package/src/post-author-biography/index.php +4 -0
  450. package/src/post-author-name/index.php +4 -0
  451. package/src/post-comments-form/index.php +6 -0
  452. package/src/post-content/index.php +4 -0
  453. package/src/post-date/index.php +4 -0
  454. package/src/post-excerpt/edit.js +2 -1
  455. package/src/post-excerpt/index.php +4 -0
  456. package/src/post-featured-image/block.json +6 -0
  457. package/src/post-featured-image/dimension-controls.js +4 -4
  458. package/src/post-featured-image/edit.js +14 -12
  459. package/src/post-featured-image/index.php +15 -0
  460. package/src/post-navigation-link/edit.js +2 -1
  461. package/src/post-navigation-link/index.php +4 -0
  462. package/src/post-template/index.php +6 -0
  463. package/src/post-terms/edit.js +2 -0
  464. package/src/post-terms/index.php +6 -0
  465. package/src/post-title/edit.js +49 -43
  466. package/src/post-title/index.php +2 -0
  467. package/src/query/edit/pattern-selection-modal.js +1 -1
  468. package/src/query/index.php +2 -0
  469. package/src/query/utils.js +6 -4
  470. package/src/query-no-results/index.php +4 -0
  471. package/src/query-pagination/index.php +4 -0
  472. package/src/query-pagination-next/edit.js +1 -1
  473. package/src/query-pagination-next/index.php +4 -0
  474. package/src/query-pagination-numbers/index.php +4 -0
  475. package/src/query-pagination-previous/edit.js +1 -1
  476. package/src/query-pagination-previous/index.php +4 -0
  477. package/src/query-title/index.php +4 -0
  478. package/src/quote/block.json +1 -1
  479. package/src/quote/deprecated.js +110 -15
  480. package/src/quote/edit.js +16 -10
  481. package/src/quote/save.js +2 -2
  482. package/src/quote/test/__snapshots__/transforms.native.js.snap +2 -2
  483. package/src/read-more/edit.js +2 -1
  484. package/src/read-more/index.php +4 -0
  485. package/src/rss/index.php +4 -0
  486. package/src/search/edit.js +3 -1
  487. package/src/search/edit.native.js +6 -6
  488. package/src/search/index.php +20 -2
  489. package/src/search/style.scss +2 -0
  490. package/src/shortcode/index.php +4 -0
  491. package/src/site-logo/edit.js +11 -6
  492. package/src/site-logo/index.php +20 -0
  493. package/src/site-tagline/index.php +4 -0
  494. package/src/site-title/index.php +4 -0
  495. package/src/social-link/edit.js +2 -2
  496. package/src/social-link/icons/medium.js +1 -1
  497. package/src/social-link/icons/reddit.js +1 -1
  498. package/src/social-link/index.php +22 -9
  499. package/src/social-link/socials-with-bg.scss +1 -1
  500. package/src/social-link/socials-without-bg.scss +1 -1
  501. package/src/social-links/edit.native.js +1 -1
  502. package/src/spacer/edit.js +1 -1
  503. package/src/table/block.json +1 -1
  504. package/src/table/deprecated.js +308 -175
  505. package/src/table-of-contents/edit.js +1 -1
  506. package/src/tag-cloud/index.php +4 -0
  507. package/src/template-part/edit/index.js +91 -4
  508. package/src/template-part/edit/selection-modal.js +4 -8
  509. package/src/template-part/edit/utils/map-template-part-to-block-pattern.js +23 -0
  510. package/src/template-part/index.php +10 -0
  511. package/src/term-description/index.php +4 -0
  512. package/src/utils/caption.js +10 -1
  513. package/src/utils/get-transformed-metadata.js +65 -0
  514. package/src/utils/hooks.js +53 -3
  515. package/src/video/edit-common-settings.js +1 -1
  516. package/src/video/edit.js +10 -18
  517. package/src/video/edit.native.js +7 -8
  518. package/src/video/test/edit.native.js +0 -14
  519. package/tsconfig.json +1 -0
  520. package/build/list-item/hooks/use-copy.js +0 -39
  521. package/build/list-item/hooks/use-copy.js.map +0 -1
  522. package/build/site-title/edit/index.js.map +0 -1
  523. package/build-module/list-item/hooks/use-copy.js +0 -32
  524. package/build-module/list-item/hooks/use-copy.js.map +0 -1
  525. package/build-module/site-title/edit/index.js.map +0 -1
  526. package/src/list-item/hooks/use-copy.js +0 -38
  527. /package/src/site-title/{edit/index.js → edit.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_data","_blockEditor","_blocks","useIndentListItem","clientId","replaceBlocks","selectionChange","multiSelect","useDispatch","blockEditorStore","getBlock","getPreviousBlockClientId","getSelectionStart","getSelectionEnd","hasMultiSelection","getMultiSelectedBlockClientIds","useSelect","useCallback","_hasMultiSelection","clientIds","clonedBlocks","map","_clientId","cloneBlock","previousSiblingId","newListItem","innerBlocks","length","createBlock","push","selectionStart","selectionEnd","attributeKey","offset"],"sources":["@wordpress/block-library/src/list-item/hooks/use-indent-list-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { createBlock, cloneBlock } from '@wordpress/blocks';\n\nexport default function useIndentListItem( clientId ) {\n\tconst { replaceBlocks, selectionChange, multiSelect } =\n\t\tuseDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlock,\n\t\tgetPreviousBlockClientId,\n\t\tgetSelectionStart,\n\t\tgetSelectionEnd,\n\t\thasMultiSelection,\n\t\tgetMultiSelectedBlockClientIds,\n\t} = useSelect( blockEditorStore );\n\treturn useCallback( () => {\n\t\tconst _hasMultiSelection = hasMultiSelection();\n\t\tconst clientIds = _hasMultiSelection\n\t\t\t? getMultiSelectedBlockClientIds()\n\t\t\t: [ clientId ];\n\t\tconst clonedBlocks = clientIds.map( ( _clientId ) =>\n\t\t\tcloneBlock( getBlock( _clientId ) )\n\t\t);\n\t\tconst previousSiblingId = getPreviousBlockClientId( clientId );\n\t\tconst newListItem = cloneBlock( getBlock( previousSiblingId ) );\n\t\t// If the sibling has no innerBlocks, create a new `list` block.\n\t\tif ( ! newListItem.innerBlocks?.length ) {\n\t\t\tnewListItem.innerBlocks = [ createBlock( 'core/list' ) ];\n\t\t}\n\t\t// A list item usually has one `list`, but it's possible to have\n\t\t// more. So we need to preserve the previous `list` blocks and\n\t\t// merge the new blocks to the last `list`.\n\t\tnewListItem.innerBlocks[\n\t\t\tnewListItem.innerBlocks.length - 1\n\t\t].innerBlocks.push( ...clonedBlocks );\n\n\t\t// We get the selection start/end here, because when\n\t\t// we replace blocks, the selection is updated too.\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\t\t// Replace the previous sibling of the block being indented and the indented blocks,\n\t\t// with a new block whose attributes are equal to the ones of the previous sibling and\n\t\t// whose descendants are the children of the previous sibling, followed by the indented blocks.\n\t\treplaceBlocks( [ previousSiblingId, ...clientIds ], [ newListItem ] );\n\t\tif ( ! _hasMultiSelection ) {\n\t\t\tselectionChange(\n\t\t\t\tclonedBlocks[ 0 ].clientId,\n\t\t\t\tselectionEnd.attributeKey,\n\t\t\t\tselectionEnd.clientId === selectionStart.clientId\n\t\t\t\t\t? selectionStart.offset\n\t\t\t\t\t: selectionEnd.offset,\n\t\t\t\tselectionEnd.offset\n\t\t\t);\n\t\t} else {\n\t\t\tmultiSelect(\n\t\t\t\tclonedBlocks[ 0 ].clientId,\n\t\t\t\tclonedBlocks[ clonedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}, [ clientId ] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AANA;AACA;AACA;;AAMe,SAASI,iBAAiBA,CAAEC,QAAQ,EAAG;EACrD,MAAM;IAAEC,aAAa;IAAEC,eAAe;IAAEC;EAAY,CAAC,GACpD,IAAAC,iBAAW,EAAEC,kBAAiB,CAAC;EAChC,MAAM;IACLC,QAAQ;IACRC,wBAAwB;IACxBC,iBAAiB;IACjBC,eAAe;IACfC,iBAAiB;IACjBC;EACD,CAAC,GAAG,IAAAC,eAAS,EAAEP,kBAAiB,CAAC;EACjC,OAAO,IAAAQ,oBAAW,EAAE,MAAM;IACzB,MAAMC,kBAAkB,GAAGJ,iBAAiB,CAAC,CAAC;IAC9C,MAAMK,SAAS,GAAGD,kBAAkB,GACjCH,8BAA8B,CAAC,CAAC,GAChC,CAAEX,QAAQ,CAAE;IACf,MAAMgB,YAAY,GAAGD,SAAS,CAACE,GAAG,CAAIC,SAAS,IAC9C,IAAAC,kBAAU,EAAEb,QAAQ,CAAEY,SAAU,CAAE,CACnC,CAAC;IACD,MAAME,iBAAiB,GAAGb,wBAAwB,CAAEP,QAAS,CAAC;IAC9D,MAAMqB,WAAW,GAAG,IAAAF,kBAAU,EAAEb,QAAQ,CAAEc,iBAAkB,CAAE,CAAC;IAC/D;IACA,IAAK,CAAEC,WAAW,CAACC,WAAW,EAAEC,MAAM,EAAG;MACxCF,WAAW,CAACC,WAAW,GAAG,CAAE,IAAAE,mBAAW,EAAE,WAAY,CAAC,CAAE;IACzD;IACA;IACA;IACA;IACAH,WAAW,CAACC,WAAW,CACtBD,WAAW,CAACC,WAAW,CAACC,MAAM,GAAG,CAAC,CAClC,CAACD,WAAW,CAACG,IAAI,CAAE,GAAGT,YAAa,CAAC;;IAErC;IACA;IACA,MAAMU,cAAc,GAAGlB,iBAAiB,CAAC,CAAC;IAC1C,MAAMmB,YAAY,GAAGlB,eAAe,CAAC,CAAC;IACtC;IACA;IACA;IACAR,aAAa,CAAE,CAAEmB,iBAAiB,EAAE,GAAGL,SAAS,CAAE,EAAE,CAAEM,WAAW,CAAG,CAAC;IACrE,IAAK,CAAEP,kBAAkB,EAAG;MAC3BZ,eAAe,CACdc,YAAY,CAAE,CAAC,CAAE,CAAChB,QAAQ,EAC1B2B,YAAY,CAACC,YAAY,EACzBD,YAAY,CAAC3B,QAAQ,KAAK0B,cAAc,CAAC1B,QAAQ,GAC9C0B,cAAc,CAACG,MAAM,GACrBF,YAAY,CAACE,MAAM,EACtBF,YAAY,CAACE,MACd,CAAC;IACF,CAAC,MAAM;MACN1B,WAAW,CACVa,YAAY,CAAE,CAAC,CAAE,CAAChB,QAAQ,EAC1BgB,YAAY,CAAEA,YAAY,CAACO,MAAM,GAAG,CAAC,CAAE,CAACvB,QACzC,CAAC;IACF;EACD,CAAC,EAAE,CAAEA,QAAQ,CAAG,CAAC;AAClB"}
1
+ {"version":3,"names":["_element","require","_data","_blockEditor","_blocks","useIndentListItem","clientId","replaceBlocks","selectionChange","multiSelect","useDispatch","blockEditorStore","getBlock","getPreviousBlockClientId","getSelectionStart","getSelectionEnd","hasMultiSelection","getMultiSelectedBlockClientIds","useSelect","useCallback","_hasMultiSelection","clientIds","clonedBlocks","map","_clientId","cloneBlock","previousSiblingId","newListItem","innerBlocks","length","createBlock","push","selectionStart","selectionEnd","attributeKey","offset"],"sources":["@wordpress/block-library/src/list-item/hooks/use-indent-list-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { createBlock, cloneBlock } from '@wordpress/blocks';\n\nexport default function useIndentListItem( clientId ) {\n\tconst { replaceBlocks, selectionChange, multiSelect } =\n\t\tuseDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlock,\n\t\tgetPreviousBlockClientId,\n\t\tgetSelectionStart,\n\t\tgetSelectionEnd,\n\t\thasMultiSelection,\n\t\tgetMultiSelectedBlockClientIds,\n\t} = useSelect( blockEditorStore );\n\treturn useCallback( () => {\n\t\tconst _hasMultiSelection = hasMultiSelection();\n\t\tconst clientIds = _hasMultiSelection\n\t\t\t? getMultiSelectedBlockClientIds()\n\t\t\t: [ clientId ];\n\t\tconst clonedBlocks = clientIds.map( ( _clientId ) =>\n\t\t\tcloneBlock( getBlock( _clientId ) )\n\t\t);\n\t\tconst previousSiblingId = getPreviousBlockClientId( clientId );\n\t\tconst newListItem = cloneBlock( getBlock( previousSiblingId ) );\n\t\t// If the sibling has no innerBlocks, create a new `list` block.\n\t\tif ( ! newListItem.innerBlocks?.length ) {\n\t\t\tnewListItem.innerBlocks = [ createBlock( 'core/list' ) ];\n\t\t}\n\t\t// A list item usually has one `list`, but it's possible to have\n\t\t// more. So we need to preserve the previous `list` blocks and\n\t\t// merge the new blocks to the last `list`.\n\t\tnewListItem.innerBlocks[\n\t\t\tnewListItem.innerBlocks.length - 1\n\t\t].innerBlocks.push( ...clonedBlocks );\n\n\t\t// We get the selection start/end here, because when\n\t\t// we replace blocks, the selection is updated too.\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\t\t// Replace the previous sibling of the block being indented and the indented blocks,\n\t\t// with a new block whose attributes are equal to the ones of the previous sibling and\n\t\t// whose descendants are the children of the previous sibling, followed by the indented blocks.\n\t\treplaceBlocks( [ previousSiblingId, ...clientIds ], [ newListItem ] );\n\t\tif ( ! _hasMultiSelection ) {\n\t\t\tselectionChange(\n\t\t\t\tclonedBlocks[ 0 ].clientId,\n\t\t\t\tselectionEnd.attributeKey,\n\t\t\t\tselectionEnd.clientId === selectionStart.clientId\n\t\t\t\t\t? selectionStart.offset\n\t\t\t\t\t: selectionEnd.offset,\n\t\t\t\tselectionEnd.offset\n\t\t\t);\n\t\t} else {\n\t\t\tmultiSelect(\n\t\t\t\tclonedBlocks[ 0 ].clientId,\n\t\t\t\tclonedBlocks[ clonedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\n\t\treturn true;\n\t}, [ clientId ] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AANA;AACA;AACA;;AAMe,SAASI,iBAAiBA,CAAEC,QAAQ,EAAG;EACrD,MAAM;IAAEC,aAAa;IAAEC,eAAe;IAAEC;EAAY,CAAC,GACpD,IAAAC,iBAAW,EAAEC,kBAAiB,CAAC;EAChC,MAAM;IACLC,QAAQ;IACRC,wBAAwB;IACxBC,iBAAiB;IACjBC,eAAe;IACfC,iBAAiB;IACjBC;EACD,CAAC,GAAG,IAAAC,eAAS,EAAEP,kBAAiB,CAAC;EACjC,OAAO,IAAAQ,oBAAW,EAAE,MAAM;IACzB,MAAMC,kBAAkB,GAAGJ,iBAAiB,CAAC,CAAC;IAC9C,MAAMK,SAAS,GAAGD,kBAAkB,GACjCH,8BAA8B,CAAC,CAAC,GAChC,CAAEX,QAAQ,CAAE;IACf,MAAMgB,YAAY,GAAGD,SAAS,CAACE,GAAG,CAAIC,SAAS,IAC9C,IAAAC,kBAAU,EAAEb,QAAQ,CAAEY,SAAU,CAAE,CACnC,CAAC;IACD,MAAME,iBAAiB,GAAGb,wBAAwB,CAAEP,QAAS,CAAC;IAC9D,MAAMqB,WAAW,GAAG,IAAAF,kBAAU,EAAEb,QAAQ,CAAEc,iBAAkB,CAAE,CAAC;IAC/D;IACA,IAAK,CAAEC,WAAW,CAACC,WAAW,EAAEC,MAAM,EAAG;MACxCF,WAAW,CAACC,WAAW,GAAG,CAAE,IAAAE,mBAAW,EAAE,WAAY,CAAC,CAAE;IACzD;IACA;IACA;IACA;IACAH,WAAW,CAACC,WAAW,CACtBD,WAAW,CAACC,WAAW,CAACC,MAAM,GAAG,CAAC,CAClC,CAACD,WAAW,CAACG,IAAI,CAAE,GAAGT,YAAa,CAAC;;IAErC;IACA;IACA,MAAMU,cAAc,GAAGlB,iBAAiB,CAAC,CAAC;IAC1C,MAAMmB,YAAY,GAAGlB,eAAe,CAAC,CAAC;IACtC;IACA;IACA;IACAR,aAAa,CAAE,CAAEmB,iBAAiB,EAAE,GAAGL,SAAS,CAAE,EAAE,CAAEM,WAAW,CAAG,CAAC;IACrE,IAAK,CAAEP,kBAAkB,EAAG;MAC3BZ,eAAe,CACdc,YAAY,CAAE,CAAC,CAAE,CAAChB,QAAQ,EAC1B2B,YAAY,CAACC,YAAY,EACzBD,YAAY,CAAC3B,QAAQ,KAAK0B,cAAc,CAAC1B,QAAQ,GAC9C0B,cAAc,CAACG,MAAM,GACrBF,YAAY,CAACE,MAAM,EACtBF,YAAY,CAACE,MACd,CAAC;IACF,CAAC,MAAM;MACN1B,WAAW,CACVa,YAAY,CAAE,CAAC,CAAE,CAAChB,QAAQ,EAC1BgB,YAAY,CAAEA,YAAY,CAACO,MAAM,GAAG,CAAC,CAAE,CAACvB,QACzC,CAAC;IACF;IAEA,OAAO,IAAI;EACZ,CAAC,EAAE,CAAEA,QAAQ,CAAG,CAAC;AAClB"}
@@ -72,6 +72,7 @@ function useOutdentListItem() {
72
72
  removeBlock(parentListId, shouldSelectParent);
73
73
  }
74
74
  });
75
+ return true;
75
76
  }, []);
76
77
  }
77
78
  //# sourceMappingURL=use-outdent-list-item.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_data","_blockEditor","_blocks","useOutdentListItem","registry","useRegistry","moveBlocksToPosition","removeBlock","insertBlock","updateBlockListSettings","useDispatch","blockEditorStore","getBlockRootClientId","getBlockName","getBlockOrder","getBlockIndex","getSelectedBlockClientIds","getBlock","getBlockListSettings","useSelect","getParentListItemId","id","listId","parentListItemId","useCallback","clientIds","Array","isArray","length","firstClientId","parentListId","lastClientId","order","followingListItems","slice","batch","nestedListId","nestedListBlock","cloneBlock","clientId","shouldSelectParent"],"sources":["@wordpress/block-library/src/list-item/hooks/use-outdent-list-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { cloneBlock } from '@wordpress/blocks';\n\nexport default function useOutdentListItem() {\n\tconst registry = useRegistry();\n\tconst {\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t\tinsertBlock,\n\t\tupdateBlockListSettings,\n\t} = useDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t\tgetBlockOrder,\n\t\tgetBlockIndex,\n\t\tgetSelectedBlockClientIds,\n\t\tgetBlock,\n\t\tgetBlockListSettings,\n\t} = useSelect( blockEditorStore );\n\n\tfunction getParentListItemId( id ) {\n\t\tconst listId = getBlockRootClientId( id );\n\t\tconst parentListItemId = getBlockRootClientId( listId );\n\t\tif ( ! parentListItemId ) return;\n\t\tif ( getBlockName( parentListItemId ) !== 'core/list-item' ) return;\n\t\treturn parentListItemId;\n\t}\n\n\treturn useCallback( ( clientIds = getSelectedBlockClientIds() ) => {\n\t\tif ( ! Array.isArray( clientIds ) ) {\n\t\t\tclientIds = [ clientIds ];\n\t\t}\n\n\t\tif ( ! clientIds.length ) return;\n\n\t\tconst firstClientId = clientIds[ 0 ];\n\n\t\t// Can't outdent if it's not a list item.\n\t\tif ( getBlockName( firstClientId ) !== 'core/list-item' ) return;\n\n\t\tconst parentListItemId = getParentListItemId( firstClientId );\n\n\t\t// Can't outdent if it's at the top level.\n\t\tif ( ! parentListItemId ) return;\n\n\t\tconst parentListId = getBlockRootClientId( firstClientId );\n\t\tconst lastClientId = clientIds[ clientIds.length - 1 ];\n\t\tconst order = getBlockOrder( parentListId );\n\t\tconst followingListItems = order.slice(\n\t\t\tgetBlockIndex( lastClientId ) + 1\n\t\t);\n\n\t\tregistry.batch( () => {\n\t\t\tif ( followingListItems.length ) {\n\t\t\t\tlet nestedListId = getBlockOrder( firstClientId )[ 0 ];\n\n\t\t\t\tif ( ! nestedListId ) {\n\t\t\t\t\tconst nestedListBlock = cloneBlock(\n\t\t\t\t\t\tgetBlock( parentListId ),\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t[]\n\t\t\t\t\t);\n\t\t\t\t\tnestedListId = nestedListBlock.clientId;\n\t\t\t\t\tinsertBlock( nestedListBlock, 0, firstClientId, false );\n\t\t\t\t\t// Immediately update the block list settings, otherwise\n\t\t\t\t\t// blocks can't be moved here due to canInsert checks.\n\t\t\t\t\tupdateBlockListSettings(\n\t\t\t\t\t\tnestedListId,\n\t\t\t\t\t\tgetBlockListSettings( parentListId )\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\tfollowingListItems,\n\t\t\t\t\tparentListId,\n\t\t\t\t\tnestedListId\n\t\t\t\t);\n\t\t\t}\n\t\t\tmoveBlocksToPosition(\n\t\t\t\tclientIds,\n\t\t\t\tparentListId,\n\t\t\t\tgetBlockRootClientId( parentListItemId ),\n\t\t\t\tgetBlockIndex( parentListItemId ) + 1\n\t\t\t);\n\t\t\tif ( ! getBlockOrder( parentListId ).length ) {\n\t\t\t\tconst shouldSelectParent = false;\n\t\t\t\tremoveBlock( parentListId, shouldSelectParent );\n\t\t\t}\n\t\t} );\n\t}, [] );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_data","_blockEditor","_blocks","useOutdentListItem","registry","useRegistry","moveBlocksToPosition","removeBlock","insertBlock","updateBlockListSettings","useDispatch","blockEditorStore","getBlockRootClientId","getBlockName","getBlockOrder","getBlockIndex","getSelectedBlockClientIds","getBlock","getBlockListSettings","useSelect","getParentListItemId","id","listId","parentListItemId","useCallback","clientIds","Array","isArray","length","firstClientId","parentListId","lastClientId","order","followingListItems","slice","batch","nestedListId","nestedListBlock","cloneBlock","clientId","shouldSelectParent"],"sources":["@wordpress/block-library/src/list-item/hooks/use-outdent-list-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { cloneBlock } from '@wordpress/blocks';\n\nexport default function useOutdentListItem() {\n\tconst registry = useRegistry();\n\tconst {\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t\tinsertBlock,\n\t\tupdateBlockListSettings,\n\t} = useDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t\tgetBlockOrder,\n\t\tgetBlockIndex,\n\t\tgetSelectedBlockClientIds,\n\t\tgetBlock,\n\t\tgetBlockListSettings,\n\t} = useSelect( blockEditorStore );\n\n\tfunction getParentListItemId( id ) {\n\t\tconst listId = getBlockRootClientId( id );\n\t\tconst parentListItemId = getBlockRootClientId( listId );\n\t\tif ( ! parentListItemId ) return;\n\t\tif ( getBlockName( parentListItemId ) !== 'core/list-item' ) return;\n\t\treturn parentListItemId;\n\t}\n\n\treturn useCallback( ( clientIds = getSelectedBlockClientIds() ) => {\n\t\tif ( ! Array.isArray( clientIds ) ) {\n\t\t\tclientIds = [ clientIds ];\n\t\t}\n\n\t\tif ( ! clientIds.length ) return;\n\n\t\tconst firstClientId = clientIds[ 0 ];\n\n\t\t// Can't outdent if it's not a list item.\n\t\tif ( getBlockName( firstClientId ) !== 'core/list-item' ) return;\n\n\t\tconst parentListItemId = getParentListItemId( firstClientId );\n\n\t\t// Can't outdent if it's at the top level.\n\t\tif ( ! parentListItemId ) return;\n\n\t\tconst parentListId = getBlockRootClientId( firstClientId );\n\t\tconst lastClientId = clientIds[ clientIds.length - 1 ];\n\t\tconst order = getBlockOrder( parentListId );\n\t\tconst followingListItems = order.slice(\n\t\t\tgetBlockIndex( lastClientId ) + 1\n\t\t);\n\n\t\tregistry.batch( () => {\n\t\t\tif ( followingListItems.length ) {\n\t\t\t\tlet nestedListId = getBlockOrder( firstClientId )[ 0 ];\n\n\t\t\t\tif ( ! nestedListId ) {\n\t\t\t\t\tconst nestedListBlock = cloneBlock(\n\t\t\t\t\t\tgetBlock( parentListId ),\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t[]\n\t\t\t\t\t);\n\t\t\t\t\tnestedListId = nestedListBlock.clientId;\n\t\t\t\t\tinsertBlock( nestedListBlock, 0, firstClientId, false );\n\t\t\t\t\t// Immediately update the block list settings, otherwise\n\t\t\t\t\t// blocks can't be moved here due to canInsert checks.\n\t\t\t\t\tupdateBlockListSettings(\n\t\t\t\t\t\tnestedListId,\n\t\t\t\t\t\tgetBlockListSettings( parentListId )\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\tfollowingListItems,\n\t\t\t\t\tparentListId,\n\t\t\t\t\tnestedListId\n\t\t\t\t);\n\t\t\t}\n\t\t\tmoveBlocksToPosition(\n\t\t\t\tclientIds,\n\t\t\t\tparentListId,\n\t\t\t\tgetBlockRootClientId( parentListItemId ),\n\t\t\t\tgetBlockIndex( parentListItemId ) + 1\n\t\t\t);\n\t\t\tif ( ! getBlockOrder( parentListId ).length ) {\n\t\t\t\tconst shouldSelectParent = false;\n\t\t\t\tremoveBlock( parentListId, shouldSelectParent );\n\t\t\t}\n\t\t} );\n\n\t\treturn true;\n\t}, [] );\n}\n"],"mappings":"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"}
@@ -10,6 +10,7 @@ var _keycodes = require("@wordpress/keycodes");
10
10
  var _blockEditor = require("@wordpress/block-editor");
11
11
  var _data = require("@wordpress/data");
12
12
  var _useIndentListItem = _interopRequireDefault(require("./use-indent-list-item"));
13
+ var _useOutdentListItem = _interopRequireDefault(require("./use-outdent-list-item"));
13
14
  /**
14
15
  * WordPress dependencies
15
16
  */
@@ -25,6 +26,7 @@ function useSpace(clientId) {
25
26
  getBlockIndex
26
27
  } = (0, _data.useSelect)(_blockEditor.store);
27
28
  const indentListItem = (0, _useIndentListItem.default)(clientId);
29
+ const outdentListItem = (0, _useOutdentListItem.default)();
28
30
  return (0, _compose.useRefEffect)(element => {
29
31
  function onKeyDown(event) {
30
32
  const {
@@ -34,19 +36,26 @@ function useSpace(clientId) {
34
36
  metaKey,
35
37
  ctrlKey
36
38
  } = event;
37
- if (event.defaultPrevented || keyCode !== _keycodes.SPACE ||
39
+ if (event.defaultPrevented || keyCode !== _keycodes.SPACE && keyCode !== _keycodes.TAB ||
38
40
  // Only override when no modifiers are pressed.
39
- shiftKey || altKey || metaKey || ctrlKey) {
40
- return;
41
- }
42
- if (getBlockIndex(clientId) === 0) {
41
+ altKey || metaKey || ctrlKey) {
43
42
  return;
44
43
  }
45
44
  const selectionStart = getSelectionStart();
46
45
  const selectionEnd = getSelectionEnd();
47
46
  if (selectionStart.offset === 0 && selectionEnd.offset === 0) {
48
- event.preventDefault();
49
- indentListItem();
47
+ if (shiftKey) {
48
+ // Note that backspace behaviour in defined in onMerge.
49
+ if (keyCode === _keycodes.TAB) {
50
+ if (outdentListItem()) {
51
+ event.preventDefault();
52
+ }
53
+ }
54
+ } else if (getBlockIndex(clientId) !== 0) {
55
+ if (indentListItem()) {
56
+ event.preventDefault();
57
+ }
58
+ }
50
59
  }
51
60
  }
52
61
  element.addEventListener('keydown', onKeyDown);
@@ -1 +1 @@
1
- {"version":3,"names":["_compose","require","_keycodes","_blockEditor","_data","_useIndentListItem","_interopRequireDefault","useSpace","clientId","getSelectionStart","getSelectionEnd","getBlockIndex","useSelect","blockEditorStore","indentListItem","useIndentListItem","useRefEffect","element","onKeyDown","event","keyCode","shiftKey","altKey","metaKey","ctrlKey","defaultPrevented","SPACE","selectionStart","selectionEnd","offset","preventDefault","addEventListener","removeEventListener"],"sources":["@wordpress/block-library/src/list-item/hooks/use-space.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { SPACE } from '@wordpress/keycodes';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport useIndentListItem from './use-indent-list-item';\n\nexport default function useSpace( clientId ) {\n\tconst { getSelectionStart, getSelectionEnd, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst indentListItem = useIndentListItem( clientId );\n\n\treturn useRefEffect(\n\t\t( element ) => {\n\t\t\tfunction onKeyDown( event ) {\n\t\t\t\tconst { keyCode, shiftKey, altKey, metaKey, ctrlKey } = event;\n\n\t\t\t\tif (\n\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\tkeyCode !== SPACE ||\n\t\t\t\t\t// Only override when no modifiers are pressed.\n\t\t\t\t\tshiftKey ||\n\t\t\t\t\taltKey ||\n\t\t\t\t\tmetaKey ||\n\t\t\t\t\tctrlKey\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockIndex( clientId ) === 0 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst selectionStart = getSelectionStart();\n\t\t\t\tconst selectionEnd = getSelectionEnd();\n\t\t\t\tif (\n\t\t\t\t\tselectionStart.offset === 0 &&\n\t\t\t\t\tselectionEnd.offset === 0\n\t\t\t\t) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tindentListItem();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\t\treturn () => {\n\t\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t\t};\n\t\t},\n\t\t[ clientId, indentListItem ]\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAKA,IAAAI,kBAAA,GAAAC,sBAAA,CAAAL,OAAA;AAXA;AACA;AACA;;AAMA;AACA;AACA;;AAGe,SAASM,QAAQA,CAAEC,QAAQ,EAAG;EAC5C,MAAM;IAAEC,iBAAiB;IAAEC,eAAe;IAAEC;EAAc,CAAC,GAC1D,IAAAC,eAAS,EAAEC,kBAAiB,CAAC;EAC9B,MAAMC,cAAc,GAAG,IAAAC,0BAAiB,EAAEP,QAAS,CAAC;EAEpD,OAAO,IAAAQ,qBAAY,EAChBC,OAAO,IAAM;IACd,SAASC,SAASA,CAAEC,KAAK,EAAG;MAC3B,MAAM;QAAEC,OAAO;QAAEC,QAAQ;QAAEC,MAAM;QAAEC,OAAO;QAAEC;MAAQ,CAAC,GAAGL,KAAK;MAE7D,IACCA,KAAK,CAACM,gBAAgB,IACtBL,OAAO,KAAKM,eAAK;MACjB;MACAL,QAAQ,IACRC,MAAM,IACNC,OAAO,IACPC,OAAO,EACN;QACD;MACD;MAEA,IAAKb,aAAa,CAAEH,QAAS,CAAC,KAAK,CAAC,EAAG;QACtC;MACD;MAEA,MAAMmB,cAAc,GAAGlB,iBAAiB,CAAC,CAAC;MAC1C,MAAMmB,YAAY,GAAGlB,eAAe,CAAC,CAAC;MACtC,IACCiB,cAAc,CAACE,MAAM,KAAK,CAAC,IAC3BD,YAAY,CAACC,MAAM,KAAK,CAAC,EACxB;QACDV,KAAK,CAACW,cAAc,CAAC,CAAC;QACtBhB,cAAc,CAAC,CAAC;MACjB;IACD;IAEAG,OAAO,CAACc,gBAAgB,CAAE,SAAS,EAAEb,SAAU,CAAC;IAChD,OAAO,MAAM;MACZD,OAAO,CAACe,mBAAmB,CAAE,SAAS,EAAEd,SAAU,CAAC;IACpD,CAAC;EACF,CAAC,EACD,CAAEV,QAAQ,EAAEM,cAAc,CAC3B,CAAC;AACF"}
1
+ {"version":3,"names":["_compose","require","_keycodes","_blockEditor","_data","_useIndentListItem","_interopRequireDefault","_useOutdentListItem","useSpace","clientId","getSelectionStart","getSelectionEnd","getBlockIndex","useSelect","blockEditorStore","indentListItem","useIndentListItem","outdentListItem","useOutdentListItem","useRefEffect","element","onKeyDown","event","keyCode","shiftKey","altKey","metaKey","ctrlKey","defaultPrevented","SPACE","TAB","selectionStart","selectionEnd","offset","preventDefault","addEventListener","removeEventListener"],"sources":["@wordpress/block-library/src/list-item/hooks/use-space.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { SPACE, TAB } from '@wordpress/keycodes';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport useIndentListItem from './use-indent-list-item';\nimport useOutdentListItem from './use-outdent-list-item';\n\nexport default function useSpace( clientId ) {\n\tconst { getSelectionStart, getSelectionEnd, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst indentListItem = useIndentListItem( clientId );\n\tconst outdentListItem = useOutdentListItem();\n\n\treturn useRefEffect(\n\t\t( element ) => {\n\t\t\tfunction onKeyDown( event ) {\n\t\t\t\tconst { keyCode, shiftKey, altKey, metaKey, ctrlKey } = event;\n\n\t\t\t\tif (\n\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\t( keyCode !== SPACE && keyCode !== TAB ) ||\n\t\t\t\t\t// Only override when no modifiers are pressed.\n\t\t\t\t\taltKey ||\n\t\t\t\t\tmetaKey ||\n\t\t\t\t\tctrlKey\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst selectionStart = getSelectionStart();\n\t\t\t\tconst selectionEnd = getSelectionEnd();\n\t\t\t\tif (\n\t\t\t\t\tselectionStart.offset === 0 &&\n\t\t\t\t\tselectionEnd.offset === 0\n\t\t\t\t) {\n\t\t\t\t\tif ( shiftKey ) {\n\t\t\t\t\t\t// Note that backspace behaviour in defined in onMerge.\n\t\t\t\t\t\tif ( keyCode === TAB ) {\n\t\t\t\t\t\t\tif ( outdentListItem() ) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if ( getBlockIndex( clientId ) !== 0 ) {\n\t\t\t\t\t\tif ( indentListItem() ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\t\treturn () => {\n\t\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t\t};\n\t\t},\n\t\t[ clientId, indentListItem ]\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAKA,IAAAI,kBAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,mBAAA,GAAAD,sBAAA,CAAAL,OAAA;AAZA;AACA;AACA;;AAMA;AACA;AACA;;AAIe,SAASO,QAAQA,CAAEC,QAAQ,EAAG;EAC5C,MAAM;IAAEC,iBAAiB;IAAEC,eAAe;IAAEC;EAAc,CAAC,GAC1D,IAAAC,eAAS,EAAEC,kBAAiB,CAAC;EAC9B,MAAMC,cAAc,GAAG,IAAAC,0BAAiB,EAAEP,QAAS,CAAC;EACpD,MAAMQ,eAAe,GAAG,IAAAC,2BAAkB,EAAC,CAAC;EAE5C,OAAO,IAAAC,qBAAY,EAChBC,OAAO,IAAM;IACd,SAASC,SAASA,CAAEC,KAAK,EAAG;MAC3B,MAAM;QAAEC,OAAO;QAAEC,QAAQ;QAAEC,MAAM;QAAEC,OAAO;QAAEC;MAAQ,CAAC,GAAGL,KAAK;MAE7D,IACCA,KAAK,CAACM,gBAAgB,IACpBL,OAAO,KAAKM,eAAK,IAAIN,OAAO,KAAKO,aAAK;MACxC;MACAL,MAAM,IACNC,OAAO,IACPC,OAAO,EACN;QACD;MACD;MAEA,MAAMI,cAAc,GAAGrB,iBAAiB,CAAC,CAAC;MAC1C,MAAMsB,YAAY,GAAGrB,eAAe,CAAC,CAAC;MACtC,IACCoB,cAAc,CAACE,MAAM,KAAK,CAAC,IAC3BD,YAAY,CAACC,MAAM,KAAK,CAAC,EACxB;QACD,IAAKT,QAAQ,EAAG;UACf;UACA,IAAKD,OAAO,KAAKO,aAAG,EAAG;YACtB,IAAKb,eAAe,CAAC,CAAC,EAAG;cACxBK,KAAK,CAACY,cAAc,CAAC,CAAC;YACvB;UACD;QACD,CAAC,MAAM,IAAKtB,aAAa,CAAEH,QAAS,CAAC,KAAK,CAAC,EAAG;UAC7C,IAAKM,cAAc,CAAC,CAAC,EAAG;YACvBO,KAAK,CAACY,cAAc,CAAC,CAAC;UACvB;QACD;MACD;IACD;IAEAd,OAAO,CAACe,gBAAgB,CAAE,SAAS,EAAEd,SAAU,CAAC;IAChD,OAAO,MAAM;MACZD,OAAO,CAACgB,mBAAmB,CAAE,SAAS,EAAEf,SAAU,CAAC;IACpD,CAAC;EACF,CAAC,EACD,CAAEZ,QAAQ,EAAEM,cAAc,CAC3B,CAAC;AACF"}
@@ -6,10 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.settings = exports.name = exports.metadata = exports.init = void 0;
8
8
  var _icons = require("@wordpress/icons");
9
+ var _blockEditor = require("@wordpress/block-editor");
9
10
  var _initBlock = _interopRequireDefault(require("../utils/init-block"));
10
11
  var _edit = _interopRequireDefault(require("./edit"));
11
12
  var _save = _interopRequireDefault(require("./save"));
12
13
  var _transforms = _interopRequireDefault(require("./transforms"));
14
+ var _lockUnlock = require("../lock-unlock");
13
15
  /**
14
16
  * WordPress dependencies
15
17
  */
@@ -80,7 +82,8 @@ const settings = exports.settings = {
80
82
  content: attributes.content + attributesToMerge.content
81
83
  };
82
84
  },
83
- transforms: _transforms.default
85
+ transforms: _transforms.default,
86
+ [(0, _lockUnlock.unlock)(_blockEditor.privateApis).requiresWrapperOnCopy]: true
84
87
  };
85
88
  const init = () => (0, _initBlock.default)({
86
89
  name,
@@ -1 +1 @@
1
- {"version":3,"names":["_icons","require","_initBlock","_interopRequireDefault","_edit","_save","_transforms","metadata","exports","$schema","apiVersion","name","title","category","parent","allowedBlocks","description","textdomain","attributes","placeholder","type","content","source","selector","__experimentalRole","supports","className","__experimentalSelector","spacing","margin","padding","__experimentalDefaultControls","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","interactivity","clientNavigation","settings","icon","edit","save","merge","attributesToMerge","transforms","init","initBlock"],"sources":["@wordpress/block-library/src/list-item/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { listItem as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\t...attributes,\n\t\t\tcontent: attributes.content + attributesToMerge.content,\n\t\t};\n\t},\n\ttransforms,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,KAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,WAAA,GAAAH,sBAAA,CAAAF,OAAA;AAZA;AACA;AACA;AAGA;AACA;AACA;AAFA,MAAAM,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,MAAA;EAAAC,aAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,WAAA;MAAAC,IAAA;IAAA;IAAAC,OAAA;MAAAD,IAAA;MAAAE,MAAA;MAAAC,QAAA;MAAAC,kBAAA;IAAA;EAAA;EAAAC,QAAA;IAAAC,SAAA;IAAAC,sBAAA;IAAAC,OAAA;MAAAC,MAAA;MAAAC,OAAA;MAAAC,6BAAA;QAAAF,MAAA;QAAAC,OAAA;MAAA;IAAA;IAAAE,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAT,6BAAA;QAAAE,QAAA;MAAA;IAAA;IAAAQ,aAAA;MAAAC,gBAAA;IAAA;EAAA;AAAA;AASA,MAAM;EAAE/B;AAAK,CAAC,GAAGJ,QAAQ;AAACC,OAAA,CAAAG,IAAA,GAAAA,IAAA;AAInB,MAAMgC,QAAQ,GAAAnC,OAAA,CAAAmC,QAAA,GAAG;EACvBC,IAAI,EAAJA,eAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,KAAKA,CAAE7B,UAAU,EAAE8B,iBAAiB,EAAG;IACtC,OAAO;MACN,GAAG9B,UAAU;MACbG,OAAO,EAAEH,UAAU,CAACG,OAAO,GAAG2B,iBAAiB,CAAC3B;IACjD,CAAC;EACF,CAAC;EACD4B,UAAU,EAAVA;AACD,CAAC;AAEM,MAAMC,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAExC,IAAI;EAAEJ,QAAQ;EAAEoC;AAAS,CAAE,CAAC;AAACnC,OAAA,CAAA0C,IAAA,GAAAA,IAAA"}
1
+ {"version":3,"names":["_icons","require","_blockEditor","_initBlock","_interopRequireDefault","_edit","_save","_transforms","_lockUnlock","metadata","exports","$schema","apiVersion","name","title","category","parent","allowedBlocks","description","textdomain","attributes","placeholder","type","content","source","selector","__experimentalRole","supports","className","__experimentalSelector","spacing","margin","padding","__experimentalDefaultControls","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","interactivity","clientNavigation","settings","icon","edit","save","merge","attributesToMerge","transforms","unlock","privateApis","requiresWrapperOnCopy","init","initBlock"],"sources":["@wordpress/block-library/src/list-item/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { listItem as icon } from '@wordpress/icons';\nimport { privateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\t...attributes,\n\t\t\tcontent: attributes.content + attributesToMerge.content,\n\t\t};\n\t},\n\ttransforms,\n\t[ unlock( privateApis ).requiresWrapperOnCopy ]: true,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAKA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,KAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,KAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,WAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AAdA;AACA;AACA;AAIA;AACA;AACA;AAFA,MAAAQ,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,MAAA;EAAAC,aAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,WAAA;MAAAC,IAAA;IAAA;IAAAC,OAAA;MAAAD,IAAA;MAAAE,MAAA;MAAAC,QAAA;MAAAC,kBAAA;IAAA;EAAA;EAAAC,QAAA;IAAAC,SAAA;IAAAC,sBAAA;IAAAC,OAAA;MAAAC,MAAA;MAAAC,OAAA;MAAAC,6BAAA;QAAAF,MAAA;QAAAC,OAAA;MAAA;IAAA;IAAAE,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAT,6BAAA;QAAAE,QAAA;MAAA;IAAA;IAAAQ,aAAA;MAAAC,gBAAA;IAAA;EAAA;AAAA;AAUA,MAAM;EAAE/B;AAAK,CAAC,GAAGJ,QAAQ;AAACC,OAAA,CAAAG,IAAA,GAAAA,IAAA;AAInB,MAAMgC,QAAQ,GAAAnC,OAAA,CAAAmC,QAAA,GAAG;EACvBC,IAAI,EAAJA,eAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,KAAKA,CAAE7B,UAAU,EAAE8B,iBAAiB,EAAG;IACtC,OAAO;MACN,GAAG9B,UAAU;MACbG,OAAO,EAAEH,UAAU,CAACG,OAAO,GAAG2B,iBAAiB,CAAC3B;IACjD,CAAC;EACF,CAAC;EACD4B,UAAU,EAAVA,mBAAU;EACV,CAAE,IAAAC,kBAAM,EAAEC,wBAAY,CAAC,CAACC,qBAAqB,GAAI;AAClD,CAAC;AAEM,MAAMC,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAE3C,IAAI;EAAEJ,QAAQ;EAAEoC;AAAS,CAAE,CAAC;AAACnC,OAAA,CAAA6C,IAAA,GAAAA,IAAA"}
@@ -104,7 +104,11 @@ function attributesFromMedia({
104
104
  function MediaTextEdit({
105
105
  attributes,
106
106
  isSelected,
107
- setAttributes
107
+ setAttributes,
108
+ context: {
109
+ postId,
110
+ postType
111
+ }
108
112
  }) {
109
113
  const {
110
114
  focalPoint,
@@ -122,9 +126,26 @@ function MediaTextEdit({
122
126
  mediaWidth,
123
127
  rel,
124
128
  verticalAlignment,
125
- allowedBlocks
129
+ allowedBlocks,
130
+ useFeaturedImage
126
131
  } = attributes;
127
132
  const mediaSizeSlug = attributes.mediaSizeSlug || _constants.DEFAULT_MEDIA_SIZE_SLUG;
133
+ const [featuredImage] = (0, _coreData.useEntityProp)('postType', postType, 'featured_media', postId);
134
+ const featuredImageMedia = (0, _data.useSelect)(select => featuredImage && select(_coreData.store).getMedia(featuredImage, {
135
+ context: 'view'
136
+ }), [featuredImage]);
137
+ const featuredImageURL = useFeaturedImage ? featuredImageMedia?.source_url : '';
138
+ const featuredImageAlt = useFeaturedImage ? featuredImageMedia?.alt_text : '';
139
+ const toggleUseFeaturedImage = () => {
140
+ setAttributes({
141
+ imageFill: false,
142
+ mediaType: 'image',
143
+ mediaId: undefined,
144
+ mediaUrl: undefined,
145
+ mediaAlt: undefined,
146
+ useFeaturedImage: !useFeaturedImage
147
+ });
148
+ };
128
149
  const {
129
150
  imageSizes,
130
151
  image
@@ -233,21 +254,20 @@ function MediaTextEdit({
233
254
  onChange: () => setAttributes({
234
255
  imageFill: !imageFill
235
256
  })
236
- }), imageFill && mediaUrl && mediaType === 'image' && (0, _react.createElement)(_components.FocalPointPicker, {
257
+ }), imageFill && (mediaUrl || featuredImageURL) && mediaType === 'image' && (0, _react.createElement)(_components.FocalPointPicker, {
237
258
  __nextHasNoMarginBottom: true,
238
- __next40pxDefaultSize: true,
239
259
  label: (0, _i18n.__)('Focal point'),
240
- url: mediaUrl,
260
+ url: useFeaturedImage && featuredImageURL ? featuredImageURL : mediaUrl,
241
261
  value: focalPoint,
242
262
  onChange: value => setAttributes({
243
263
  focalPoint: value
244
264
  }),
245
265
  onDragStart: imperativeFocalPointPreview,
246
266
  onDrag: imperativeFocalPointPreview
247
- }), mediaType === 'image' && (0, _react.createElement)(_components.TextareaControl, {
267
+ }), mediaType === 'image' && (mediaUrl || featuredImageURL) && (0, _react.createElement)(_components.TextareaControl, {
248
268
  __nextHasNoMarginBottom: true,
249
269
  label: (0, _i18n.__)('Alternative text'),
250
- value: mediaAlt,
270
+ value: mediaAlt || featuredImageAlt,
251
271
  onChange: onMediaAltChange,
252
272
  help: (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.ExternalLink, {
253
273
  href: "https://www.w3.org/WAI/tutorials/images/decision-tree"
@@ -294,7 +314,7 @@ function MediaTextEdit({
294
314
  onChangeUrl: onSetHref,
295
315
  linkDestination: linkDestination,
296
316
  mediaType: mediaType,
297
- mediaUrl: image && image.source_url,
317
+ mediaUrl: useFeaturedImage && featuredImageURL ? featuredImageURL : image && image.source_url,
298
318
  mediaLink: image && image.link,
299
319
  linkTarget: linkTarget,
300
320
  linkClass: linkClass,
@@ -310,6 +330,7 @@ function MediaTextEdit({
310
330
  commitWidthChange: commitWidthChange,
311
331
  ref: refMediaContainer,
312
332
  enableResize: blockEditingMode === 'default',
333
+ toggleUseFeaturedImage: toggleUseFeaturedImage,
313
334
  focalPoint,
314
335
  imageFill,
315
336
  isSelected,
@@ -319,7 +340,10 @@ function MediaTextEdit({
319
340
  mediaPosition,
320
341
  mediaType,
321
342
  mediaUrl,
322
- mediaWidth
343
+ mediaWidth,
344
+ useFeaturedImage,
345
+ featuredImageURL,
346
+ featuredImageAlt
323
347
  }), mediaPosition !== 'right' && (0, _react.createElement)("div", {
324
348
  ...innerBlocksProps
325
349
  })));
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_data","_element","_blockEditor","_components","_blob","_icons","_coreData","_mediaContainer","_constants","applyWidthConstraints","width","Math","max","WIDTH_CONSTRAINT_PERCENTAGE","min","getImageSourceUrlBySizeSlug","image","slug","media_details","sizes","source_url","attributesFromMedia","attributes","linkDestination","href","setAttributes","media","url","mediaAlt","undefined","mediaId","mediaType","mediaUrl","mediaLink","focalPoint","isBlobURL","type","getBlobTypeByURL","src","media_type","large","newHref","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","link","alt","id","MediaTextEdit","isSelected","imageFill","isStackedOnMobile","linkClass","linkTarget","mediaPosition","mediaWidth","rel","verticalAlignment","allowedBlocks","mediaSizeSlug","DEFAULT_MEDIA_SIZE_SLUG","imageSizes","useSelect","select","getSettings","blockEditorStore","coreStore","getMedia","context","refMediaContainer","useRef","imperativeFocalPointPreview","value","style","current","resizable","x","y","backgroundPosition","temporaryMediaWidth","setTemporaryMediaWidth","useState","onSelectMedia","onSetHref","props","onWidthChange","commitWidthChange","classNames","classnames","widthString","gridTemplateColumns","msGridColumns","onMediaAltChange","newMediaAlt","onVerticalAlignmentChange","alignment","imageSizeOptions","filter","map","name","label","updateImage","newMediaSizeSlug","newUrl","mediaTextGeneralSettings","_react","createElement","PanelBody","title","__","RangeControl","__nextHasNoMarginBottom","__next40pxDefaultSize","onChange","ToggleControl","checked","FocalPointPicker","onDragStart","onDrag","TextareaControl","help","Fragment","ExternalLink","__experimentalImageSizeControl","onChangeImage","isResizable","imageSizeHelp","blockProps","useBlockProps","className","innerBlocksProps","useInnerBlocksProps","template","TEMPLATE","blockEditingMode","useBlockEditingMode","InspectorControls","BlockControls","group","BlockVerticalAlignmentControl","ToolbarButton","icon","pullLeft","isActive","onClick","pullRight","__experimentalImageURLInputUI","onChangeUrl","default","ref","enableResize","_default","exports"],"sources":["@wordpress/block-library/src/media-text/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tBlockVerticalAlignmentControl,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tTextareaControl,\n\tToggleControl,\n\tToolbarButton,\n\tExternalLink,\n\tFocalPointPicker,\n} from '@wordpress/components';\nimport { isBlobURL, getBlobTypeByURL } from '@wordpress/blob';\nimport { pullLeft, pullRight } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport MediaContainer from './media-container';\nimport {\n\tDEFAULT_MEDIA_SIZE_SLUG,\n\tWIDTH_CONSTRAINT_PERCENTAGE,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_ATTACHMENT,\n\tTEMPLATE,\n} from './constants';\n\n// this limits the resize to a safe zone to avoid making broken layouts\nconst applyWidthConstraints = ( width ) =>\n\tMath.max(\n\t\tWIDTH_CONSTRAINT_PERCENTAGE,\n\t\tMath.min( width, 100 - WIDTH_CONSTRAINT_PERCENTAGE )\n\t);\n\nfunction getImageSourceUrlBySizeSlug( image, slug ) {\n\t// eslint-disable-next-line camelcase\n\treturn image?.media_details?.sizes?.[ slug ]?.source_url;\n}\n\nfunction attributesFromMedia( {\n\tattributes: { linkDestination, href },\n\tsetAttributes,\n} ) {\n\treturn ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tmediaAlt: undefined,\n\t\t\t\tmediaId: undefined,\n\t\t\t\tmediaType: undefined,\n\t\t\t\tmediaUrl: undefined,\n\t\t\t\tmediaLink: undefined,\n\t\t\t\thref: undefined,\n\t\t\t\tfocalPoint: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tmedia.type = getBlobTypeByURL( media.url );\n\t\t}\n\n\t\tlet mediaType;\n\t\tlet src;\n\t\t// For media selections originated from a file upload.\n\t\tif ( media.media_type ) {\n\t\t\tif ( media.media_type === 'image' ) {\n\t\t\t\tmediaType = 'image';\n\t\t\t} else {\n\t\t\t\t// only images and videos are accepted so if the media_type is not an image we can assume it is a video.\n\t\t\t\t// video contain the media type of 'file' in the object returned from the rest api.\n\t\t\t\tmediaType = 'video';\n\t\t\t}\n\t\t} else {\n\t\t\t// For media selections originated from existing files in the media library.\n\t\t\tmediaType = media.type;\n\t\t}\n\n\t\tif ( mediaType === 'image' ) {\n\t\t\t// Try the \"large\" size URL, falling back to the \"full\" size URL below.\n\t\t\tsrc =\n\t\t\t\tmedia.sizes?.large?.url ||\n\t\t\t\t// eslint-disable-next-line camelcase\n\t\t\t\tmedia.media_details?.sizes?.large?.source_url;\n\t\t}\n\n\t\tlet newHref = href;\n\t\tif ( linkDestination === LINK_DESTINATION_MEDIA ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.url;\n\t\t}\n\n\t\t// Check if the image is linked to the attachment page.\n\t\tif ( linkDestination === LINK_DESTINATION_ATTACHMENT ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.link;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaAlt: media.alt,\n\t\t\tmediaId: media.id,\n\t\t\tmediaType,\n\t\t\tmediaUrl: src || media.url,\n\t\t\tmediaLink: media.link || undefined,\n\t\t\thref: newHref,\n\t\t\tfocalPoint: undefined,\n\t\t} );\n\t};\n}\n\nfunction MediaTextEdit( { attributes, isSelected, setAttributes } ) {\n\tconst {\n\t\tfocalPoint,\n\t\thref,\n\t\timageFill,\n\t\tisStackedOnMobile,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\tlinkTarget,\n\t\tmediaAlt,\n\t\tmediaId,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\trel,\n\t\tverticalAlignment,\n\t\tallowedBlocks,\n\t} = attributes;\n\tconst mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\n\tconst { imageSizes, image } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\timage:\n\t\t\t\t\tmediaId && isSelected\n\t\t\t\t\t\t? select( coreStore ).getMedia( mediaId, {\n\t\t\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: null,\n\t\t\t\timageSizes: getSettings()?.imageSizes,\n\t\t\t};\n\t\t},\n\t\t[ isSelected, mediaId ]\n\t);\n\n\tconst refMediaContainer = useRef();\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst { style } = refMediaContainer.current.resizable;\n\t\tconst { x, y } = value;\n\t\tstyle.backgroundPosition = `${ x * 100 }% ${ y * 100 }%`;\n\t};\n\n\tconst [ temporaryMediaWidth, setTemporaryMediaWidth ] = useState( null );\n\n\tconst onSelectMedia = attributesFromMedia( { attributes, setAttributes } );\n\n\tconst onSetHref = ( props ) => {\n\t\tsetAttributes( props );\n\t};\n\n\tconst onWidthChange = ( width ) => {\n\t\tsetTemporaryMediaWidth( applyWidthConstraints( width ) );\n\t};\n\tconst commitWidthChange = ( width ) => {\n\t\tsetAttributes( {\n\t\t\tmediaWidth: applyWidthConstraints( width ),\n\t\t} );\n\t\tsetTemporaryMediaWidth( null );\n\t};\n\n\tconst classNames = classnames( {\n\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t'is-selected': isSelected,\n\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t'is-image-fill': imageFill,\n\t} );\n\tconst widthString = `${ temporaryMediaWidth || mediaWidth }%`;\n\tconst gridTemplateColumns =\n\t\t'right' === mediaPosition\n\t\t\t? `1fr ${ widthString }`\n\t\t\t: `${ widthString } 1fr`;\n\tconst style = {\n\t\tgridTemplateColumns,\n\t\tmsGridColumns: gridTemplateColumns,\n\t};\n\tconst onMediaAltChange = ( newMediaAlt ) => {\n\t\tsetAttributes( { mediaAlt: newMediaAlt } );\n\t};\n\tconst onVerticalAlignmentChange = ( alignment ) => {\n\t\tsetAttributes( { verticalAlignment: alignment } );\n\t};\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => getImageSourceUrlBySizeSlug( image, slug ) )\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\tconst updateImage = ( newMediaSizeSlug ) => {\n\t\tconst newUrl = getImageSourceUrlBySizeSlug( image, newMediaSizeSlug );\n\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaUrl: newUrl,\n\t\t\tmediaSizeSlug: newMediaSizeSlug,\n\t\t} );\n\t};\n\n\tconst mediaTextGeneralSettings = (\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<RangeControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Media width' ) }\n\t\t\t\tvalue={ temporaryMediaWidth || mediaWidth }\n\t\t\t\tonChange={ commitWidthChange }\n\t\t\t\tmin={ WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t\tmax={ 100 - WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\tonChange={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Crop image to fill' ) }\n\t\t\t\t\tchecked={ !! imageFill }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\timageFill: ! imageFill,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ imageFill && mediaUrl && mediaType === 'image' && (\n\t\t\t\t<FocalPointPicker\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\t\turl={ mediaUrl }\n\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { focalPoint: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<TextareaControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\tvalue={ mediaAlt }\n\t\t\t\t\tonChange={ onMediaAltChange }\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t{ __( 'Describe the purpose of the image.' ) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ImageSizeControl\n\t\t\t\t\tonChangeImage={ updateImage }\n\t\t\t\t\tslug={ mediaSizeSlug }\n\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\tisResizable={ false }\n\t\t\t\t\timageSizeHelp={ __(\n\t\t\t\t\t\t'Select the size of the source image.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</PanelBody>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classNames,\n\t\tstyle,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: 'wp-block-media-text__content' },\n\t\t{ template: TEMPLATE, allowedBlocks }\n\t);\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>{ mediaTextGeneralSettings }</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockVerticalAlignmentControl\n\t\t\t\t\t\t\tonChange={ onVerticalAlignmentChange }\n\t\t\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullLeft }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on left' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'left' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'left' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullRight }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on right' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'right' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'right' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t{ mediaType === 'image' && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaType={ mediaType }\n\t\t\t\t\t\tmediaUrl={ image && image.source_url }\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ mediaPosition === 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t\t<MediaContainer\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tonWidthChange={ onWidthChange }\n\t\t\t\t\tcommitWidthChange={ commitWidthChange }\n\t\t\t\t\tref={ refMediaContainer }\n\t\t\t\t\tenableResize={ blockEditingMode === 'default' }\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tfocalPoint,\n\t\t\t\t\t\timageFill,\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tisStackedOnMobile,\n\t\t\t\t\t\tmediaAlt,\n\t\t\t\t\t\tmediaId,\n\t\t\t\t\t\tmediaPosition,\n\t\t\t\t\t\tmediaType,\n\t\t\t\t\t\tmediaUrl,\n\t\t\t\t\t\tmediaWidth,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ mediaPosition !== 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default MediaTextEdit;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_data","_element","_blockEditor","_components","_blob","_icons","_coreData","_mediaContainer","_constants","applyWidthConstraints","width","Math","max","WIDTH_CONSTRAINT_PERCENTAGE","min","getImageSourceUrlBySizeSlug","image","slug","media_details","sizes","source_url","attributesFromMedia","attributes","linkDestination","href","setAttributes","media","url","mediaAlt","undefined","mediaId","mediaType","mediaUrl","mediaLink","focalPoint","isBlobURL","type","getBlobTypeByURL","src","media_type","large","newHref","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","link","alt","id","MediaTextEdit","isSelected","context","postId","postType","imageFill","isStackedOnMobile","linkClass","linkTarget","mediaPosition","mediaWidth","rel","verticalAlignment","allowedBlocks","useFeaturedImage","mediaSizeSlug","DEFAULT_MEDIA_SIZE_SLUG","featuredImage","useEntityProp","featuredImageMedia","useSelect","select","coreStore","getMedia","featuredImageURL","featuredImageAlt","alt_text","toggleUseFeaturedImage","imageSizes","getSettings","blockEditorStore","refMediaContainer","useRef","imperativeFocalPointPreview","value","style","current","resizable","x","y","backgroundPosition","temporaryMediaWidth","setTemporaryMediaWidth","useState","onSelectMedia","onSetHref","props","onWidthChange","commitWidthChange","classNames","classnames","widthString","gridTemplateColumns","msGridColumns","onMediaAltChange","newMediaAlt","onVerticalAlignmentChange","alignment","imageSizeOptions","filter","map","name","label","updateImage","newMediaSizeSlug","newUrl","mediaTextGeneralSettings","_react","createElement","PanelBody","title","__","RangeControl","__nextHasNoMarginBottom","__next40pxDefaultSize","onChange","ToggleControl","checked","FocalPointPicker","onDragStart","onDrag","TextareaControl","help","Fragment","ExternalLink","__experimentalImageSizeControl","onChangeImage","isResizable","imageSizeHelp","blockProps","useBlockProps","className","innerBlocksProps","useInnerBlocksProps","template","TEMPLATE","blockEditingMode","useBlockEditingMode","InspectorControls","BlockControls","group","BlockVerticalAlignmentControl","ToolbarButton","icon","pullLeft","isActive","onClick","pullRight","__experimentalImageURLInputUI","onChangeUrl","default","ref","enableResize","_default","exports"],"sources":["@wordpress/block-library/src/media-text/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tBlockVerticalAlignmentControl,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tTextareaControl,\n\tToggleControl,\n\tToolbarButton,\n\tExternalLink,\n\tFocalPointPicker,\n} from '@wordpress/components';\nimport { isBlobURL, getBlobTypeByURL } from '@wordpress/blob';\nimport { pullLeft, pullRight } from '@wordpress/icons';\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport MediaContainer from './media-container';\nimport {\n\tDEFAULT_MEDIA_SIZE_SLUG,\n\tWIDTH_CONSTRAINT_PERCENTAGE,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_ATTACHMENT,\n\tTEMPLATE,\n} from './constants';\n\n// this limits the resize to a safe zone to avoid making broken layouts\nconst applyWidthConstraints = ( width ) =>\n\tMath.max(\n\t\tWIDTH_CONSTRAINT_PERCENTAGE,\n\t\tMath.min( width, 100 - WIDTH_CONSTRAINT_PERCENTAGE )\n\t);\n\nfunction getImageSourceUrlBySizeSlug( image, slug ) {\n\t// eslint-disable-next-line camelcase\n\treturn image?.media_details?.sizes?.[ slug ]?.source_url;\n}\n\nfunction attributesFromMedia( {\n\tattributes: { linkDestination, href },\n\tsetAttributes,\n} ) {\n\treturn ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tmediaAlt: undefined,\n\t\t\t\tmediaId: undefined,\n\t\t\t\tmediaType: undefined,\n\t\t\t\tmediaUrl: undefined,\n\t\t\t\tmediaLink: undefined,\n\t\t\t\thref: undefined,\n\t\t\t\tfocalPoint: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tmedia.type = getBlobTypeByURL( media.url );\n\t\t}\n\n\t\tlet mediaType;\n\t\tlet src;\n\t\t// For media selections originated from a file upload.\n\t\tif ( media.media_type ) {\n\t\t\tif ( media.media_type === 'image' ) {\n\t\t\t\tmediaType = 'image';\n\t\t\t} else {\n\t\t\t\t// only images and videos are accepted so if the media_type is not an image we can assume it is a video.\n\t\t\t\t// video contain the media type of 'file' in the object returned from the rest api.\n\t\t\t\tmediaType = 'video';\n\t\t\t}\n\t\t} else {\n\t\t\t// For media selections originated from existing files in the media library.\n\t\t\tmediaType = media.type;\n\t\t}\n\n\t\tif ( mediaType === 'image' ) {\n\t\t\t// Try the \"large\" size URL, falling back to the \"full\" size URL below.\n\t\t\tsrc =\n\t\t\t\tmedia.sizes?.large?.url ||\n\t\t\t\t// eslint-disable-next-line camelcase\n\t\t\t\tmedia.media_details?.sizes?.large?.source_url;\n\t\t}\n\n\t\tlet newHref = href;\n\t\tif ( linkDestination === LINK_DESTINATION_MEDIA ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.url;\n\t\t}\n\n\t\t// Check if the image is linked to the attachment page.\n\t\tif ( linkDestination === LINK_DESTINATION_ATTACHMENT ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.link;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaAlt: media.alt,\n\t\t\tmediaId: media.id,\n\t\t\tmediaType,\n\t\t\tmediaUrl: src || media.url,\n\t\t\tmediaLink: media.link || undefined,\n\t\t\thref: newHref,\n\t\t\tfocalPoint: undefined,\n\t\t} );\n\t};\n}\n\nfunction MediaTextEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tcontext: { postId, postType },\n} ) {\n\tconst {\n\t\tfocalPoint,\n\t\thref,\n\t\timageFill,\n\t\tisStackedOnMobile,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\tlinkTarget,\n\t\tmediaAlt,\n\t\tmediaId,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\trel,\n\t\tverticalAlignment,\n\t\tallowedBlocks,\n\t\tuseFeaturedImage,\n\t} = attributes;\n\tconst mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\n\tconst [ featuredImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\tconst featuredImageMedia = useSelect(\n\t\t( select ) =>\n\t\t\tfeaturedImage &&\n\t\t\tselect( coreStore ).getMedia( featuredImage, { context: 'view' } ),\n\t\t[ featuredImage ]\n\t);\n\n\tconst featuredImageURL = useFeaturedImage\n\t\t? featuredImageMedia?.source_url\n\t\t: '';\n\tconst featuredImageAlt = useFeaturedImage\n\t\t? featuredImageMedia?.alt_text\n\t\t: '';\n\n\tconst toggleUseFeaturedImage = () => {\n\t\tsetAttributes( {\n\t\t\timageFill: false,\n\t\t\tmediaType: 'image',\n\t\t\tmediaId: undefined,\n\t\t\tmediaUrl: undefined,\n\t\t\tmediaAlt: undefined,\n\t\t\tuseFeaturedImage: ! useFeaturedImage,\n\t\t} );\n\t};\n\n\tconst { imageSizes, image } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\timage:\n\t\t\t\t\tmediaId && isSelected\n\t\t\t\t\t\t? select( coreStore ).getMedia( mediaId, {\n\t\t\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: null,\n\t\t\t\timageSizes: getSettings()?.imageSizes,\n\t\t\t};\n\t\t},\n\t\t[ isSelected, mediaId ]\n\t);\n\n\tconst refMediaContainer = useRef();\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst { style } = refMediaContainer.current.resizable;\n\t\tconst { x, y } = value;\n\t\tstyle.backgroundPosition = `${ x * 100 }% ${ y * 100 }%`;\n\t};\n\n\tconst [ temporaryMediaWidth, setTemporaryMediaWidth ] = useState( null );\n\n\tconst onSelectMedia = attributesFromMedia( { attributes, setAttributes } );\n\n\tconst onSetHref = ( props ) => {\n\t\tsetAttributes( props );\n\t};\n\n\tconst onWidthChange = ( width ) => {\n\t\tsetTemporaryMediaWidth( applyWidthConstraints( width ) );\n\t};\n\tconst commitWidthChange = ( width ) => {\n\t\tsetAttributes( {\n\t\t\tmediaWidth: applyWidthConstraints( width ),\n\t\t} );\n\t\tsetTemporaryMediaWidth( null );\n\t};\n\n\tconst classNames = classnames( {\n\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t'is-selected': isSelected,\n\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t'is-image-fill': imageFill,\n\t} );\n\tconst widthString = `${ temporaryMediaWidth || mediaWidth }%`;\n\tconst gridTemplateColumns =\n\t\t'right' === mediaPosition\n\t\t\t? `1fr ${ widthString }`\n\t\t\t: `${ widthString } 1fr`;\n\tconst style = {\n\t\tgridTemplateColumns,\n\t\tmsGridColumns: gridTemplateColumns,\n\t};\n\tconst onMediaAltChange = ( newMediaAlt ) => {\n\t\tsetAttributes( { mediaAlt: newMediaAlt } );\n\t};\n\tconst onVerticalAlignmentChange = ( alignment ) => {\n\t\tsetAttributes( { verticalAlignment: alignment } );\n\t};\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => getImageSourceUrlBySizeSlug( image, slug ) )\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\tconst updateImage = ( newMediaSizeSlug ) => {\n\t\tconst newUrl = getImageSourceUrlBySizeSlug( image, newMediaSizeSlug );\n\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaUrl: newUrl,\n\t\t\tmediaSizeSlug: newMediaSizeSlug,\n\t\t} );\n\t};\n\n\tconst mediaTextGeneralSettings = (\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<RangeControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Media width' ) }\n\t\t\t\tvalue={ temporaryMediaWidth || mediaWidth }\n\t\t\t\tonChange={ commitWidthChange }\n\t\t\t\tmin={ WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t\tmax={ 100 - WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\tonChange={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Crop image to fill' ) }\n\t\t\t\t\tchecked={ !! imageFill }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\timageFill: ! imageFill,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ imageFill &&\n\t\t\t\t( mediaUrl || featuredImageURL ) &&\n\t\t\t\tmediaType === 'image' && (\n\t\t\t\t\t<FocalPointPicker\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\t\t\turl={\n\t\t\t\t\t\t\tuseFeaturedImage && featuredImageURL\n\t\t\t\t\t\t\t\t? featuredImageURL\n\t\t\t\t\t\t\t\t: mediaUrl\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { focalPoint: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t{ mediaType === 'image' && ( mediaUrl || featuredImageURL ) && (\n\t\t\t\t<TextareaControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\tvalue={ mediaAlt || featuredImageAlt }\n\t\t\t\t\tonChange={ onMediaAltChange }\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t{ __( 'Describe the purpose of the image.' ) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ImageSizeControl\n\t\t\t\t\tonChangeImage={ updateImage }\n\t\t\t\t\tslug={ mediaSizeSlug }\n\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\tisResizable={ false }\n\t\t\t\t\timageSizeHelp={ __(\n\t\t\t\t\t\t'Select the size of the source image.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</PanelBody>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classNames,\n\t\tstyle,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: 'wp-block-media-text__content' },\n\t\t{ template: TEMPLATE, allowedBlocks }\n\t);\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>{ mediaTextGeneralSettings }</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockVerticalAlignmentControl\n\t\t\t\t\t\t\tonChange={ onVerticalAlignmentChange }\n\t\t\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullLeft }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on left' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'left' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'left' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullRight }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on right' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'right' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'right' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t{ mediaType === 'image' && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaType={ mediaType }\n\t\t\t\t\t\tmediaUrl={\n\t\t\t\t\t\t\tuseFeaturedImage && featuredImageURL\n\t\t\t\t\t\t\t\t? featuredImageURL\n\t\t\t\t\t\t\t\t: image && image.source_url\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ mediaPosition === 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t\t<MediaContainer\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tonWidthChange={ onWidthChange }\n\t\t\t\t\tcommitWidthChange={ commitWidthChange }\n\t\t\t\t\tref={ refMediaContainer }\n\t\t\t\t\tenableResize={ blockEditingMode === 'default' }\n\t\t\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tfocalPoint,\n\t\t\t\t\t\timageFill,\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tisStackedOnMobile,\n\t\t\t\t\t\tmediaAlt,\n\t\t\t\t\t\tmediaId,\n\t\t\t\t\t\tmediaPosition,\n\t\t\t\t\t\tmediaType,\n\t\t\t\t\t\tmediaUrl,\n\t\t\t\t\t\tmediaWidth,\n\t\t\t\t\t\tuseFeaturedImage,\n\t\t\t\t\t\tfeaturedImageURL,\n\t\t\t\t\t\tfeaturedImageAlt,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ mediaPosition !== 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default MediaTextEdit;\n"],"mappings":"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"}
@@ -112,8 +112,13 @@ const metadata = exports.metadata = {
112
112
  },
113
113
  allowedBlocks: {
114
114
  type: "array"
115
+ },
116
+ useFeaturedImage: {
117
+ type: "boolean",
118
+ "default": false
115
119
  }
116
120
  },
121
+ usesContext: ["postId", "postType"],
117
122
  supports: {
118
123
  anchor: true,
119
124
  align: ["wide", "full"],
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_icons","_initBlock","_interopRequireDefault","_deprecated","_edit","_save","_transforms","metadata","exports","$schema","apiVersion","name","title","category","description","keywords","textdomain","attributes","align","type","mediaAlt","source","selector","attribute","__experimentalRole","mediaPosition","mediaId","mediaUrl","mediaLink","linkDestination","linkTarget","href","rel","linkClass","mediaType","mediaWidth","mediaSizeSlug","isStackedOnMobile","verticalAlignment","imageFill","focalPoint","allowedBlocks","supports","anchor","html","color","gradients","heading","link","__experimentalDefaultControls","background","text","spacing","margin","padding","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","interactivity","clientNavigation","editorStyle","style","settings","icon","example","viewportWidth","innerBlocks","content","__","transforms","edit","save","deprecated","init","initBlock"],"sources":["@wordpress/block-library/src/media-text/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { mediaAndText as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tviewportWidth: 601, // Columns collapse \"@media (max-width: 600px)\".\n\t\tattributes: {\n\t\t\tmediaType: 'image',\n\t\t\tmediaUrl:\n\t\t\t\t'https://s.w.org/images/core/5.3/Biologia_Centrali-Americana_-_Cantorchilus_semibadius_1902.jpg',\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t'The wren<br>Earns his living<br>Noiselessly.'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcontent: __( '— Kobayashi Issa (一茶)' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_icons","_initBlock","_interopRequireDefault","_deprecated","_edit","_save","_transforms","metadata","exports","$schema","apiVersion","name","title","category","description","keywords","textdomain","attributes","align","type","mediaAlt","source","selector","attribute","__experimentalRole","mediaPosition","mediaId","mediaUrl","mediaLink","linkDestination","linkTarget","href","rel","linkClass","mediaType","mediaWidth","mediaSizeSlug","isStackedOnMobile","verticalAlignment","imageFill","focalPoint","allowedBlocks","useFeaturedImage","usesContext","supports","anchor","html","color","gradients","heading","link","__experimentalDefaultControls","background","text","spacing","margin","padding","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","interactivity","clientNavigation","editorStyle","style","settings","icon","example","viewportWidth","innerBlocks","content","__","transforms","edit","save","deprecated","init","initBlock"],"sources":["@wordpress/block-library/src/media-text/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { mediaAndText as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tviewportWidth: 601, // Columns collapse \"@media (max-width: 600px)\".\n\t\tattributes: {\n\t\t\tmediaType: 'image',\n\t\t\tmediaUrl:\n\t\t\t\t'https://s.w.org/images/core/5.3/Biologia_Centrali-Americana_-_Cantorchilus_semibadius_1902.jpg',\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t'The wren<br>Earns his living<br>Noiselessly.'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcontent: __( '— Kobayashi Issa (一茶)' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"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"}
@@ -51,22 +51,28 @@ const ResizableBoxContainer = (0, _element.forwardRef)(({
51
51
  function ToolbarEditButton({
52
52
  mediaId,
53
53
  mediaUrl,
54
- onSelectMedia
54
+ onSelectMedia,
55
+ toggleUseFeaturedImage,
56
+ useFeaturedImage,
57
+ featuredImageURL
55
58
  }) {
56
59
  return (0, _react.createElement)(_blockEditor.BlockControls, {
57
60
  group: "other"
58
61
  }, (0, _react.createElement)(_blockEditor.MediaReplaceFlow, {
59
62
  mediaId: mediaId,
60
- mediaURL: mediaUrl,
63
+ mediaUrl: useFeaturedImage && featuredImageURL ? featuredImageURL : mediaUrl,
61
64
  allowedTypes: ALLOWED_MEDIA_TYPES,
62
65
  accept: "image/*,video/*",
63
- onSelect: onSelectMedia
66
+ onSelect: onSelectMedia,
67
+ onToggleFeaturedImage: toggleUseFeaturedImage,
68
+ useFeaturedImage: useFeaturedImage
64
69
  }));
65
70
  }
66
71
  function PlaceholderContainer({
67
72
  className,
68
73
  mediaUrl,
69
- onSelectMedia
74
+ onSelectMedia,
75
+ toggleUseFeaturedImage
70
76
  }) {
71
77
  const {
72
78
  createErrorNotice
@@ -86,6 +92,7 @@ function PlaceholderContainer({
86
92
  className: className,
87
93
  onSelect: onSelectMedia,
88
94
  accept: "image/*,video/*",
95
+ onToggleFeaturedImage: toggleUseFeaturedImage,
89
96
  allowedTypes: ALLOWED_MEDIA_TYPES,
90
97
  onError: onUploadError,
91
98
  disableMediaButtons: mediaUrl
@@ -107,13 +114,17 @@ function MediaContainer(props, ref) {
107
114
  mediaWidth,
108
115
  onSelectMedia,
109
116
  onWidthChange,
110
- enableResize
117
+ enableResize,
118
+ toggleUseFeaturedImage,
119
+ useFeaturedImage,
120
+ featuredImageURL,
121
+ featuredImageAlt
111
122
  } = props;
112
123
  const isTemporaryMedia = !mediaId && (0, _blob.isBlobURL)(mediaUrl);
113
124
  const {
114
125
  toggleSelection
115
126
  } = (0, _data.useDispatch)(_blockEditor.store);
116
- if (mediaUrl) {
127
+ if (mediaUrl || featuredImageURL || useFeaturedImage) {
117
128
  const onResizeStart = () => {
118
129
  toggleSelection(false);
119
130
  };
@@ -128,9 +139,12 @@ function MediaContainer(props, ref) {
128
139
  right: enableResize && mediaPosition === 'left',
129
140
  left: enableResize && mediaPosition === 'right'
130
141
  };
131
- const backgroundStyles = mediaType === 'image' && imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};
142
+ const backgroundStyles = mediaType === 'image' && imageFill ? imageFillStyles(mediaUrl || featuredImageURL, focalPoint) : {};
132
143
  const mediaTypeRenderers = {
133
- image: () => (0, _react.createElement)("img", {
144
+ image: () => useFeaturedImage && featuredImageURL ? (0, _react.createElement)("img", {
145
+ src: featuredImageURL,
146
+ alt: featuredImageAlt
147
+ }) : mediaUrl && (0, _react.createElement)("img", {
134
148
  src: mediaUrl,
135
149
  alt: mediaAlt
136
150
  }),
@@ -160,10 +174,15 @@ function MediaContainer(props, ref) {
160
174
  ref: ref
161
175
  }, (0, _react.createElement)(ToolbarEditButton, {
162
176
  onSelectMedia: onSelectMedia,
163
- mediaUrl: mediaUrl,
164
- mediaId: mediaId
165
- }), (mediaTypeRenderers[mediaType] || noop)(), isTemporaryMedia && (0, _react.createElement)(_components.Spinner, null), (0, _react.createElement)(PlaceholderContainer, {
177
+ mediaUrl: useFeaturedImage && featuredImageURL ? featuredImageURL : mediaUrl,
178
+ mediaId: mediaId,
179
+ toggleUseFeaturedImage: toggleUseFeaturedImage,
180
+ useFeaturedImage: useFeaturedImage
181
+ }), (mediaTypeRenderers[mediaType] || noop)(), isTemporaryMedia && (0, _react.createElement)(_components.Spinner, null), !useFeaturedImage && (0, _react.createElement)(PlaceholderContainer, {
166
182
  ...props
183
+ }), !featuredImageURL && useFeaturedImage && (0, _react.createElement)(_components.Placeholder, {
184
+ className: "wp-block-media-text--placeholder-image",
185
+ withIllustration: true
167
186
  }));
168
187
  }
169
188
  return (0, _react.createElement)(PlaceholderContainer, {
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_components","_blockEditor","_i18n","_compose","_data","_element","_blob","_notices","_icons","ALLOWED_MEDIA_TYPES","noop","imageFillStyles","url","focalPoint","backgroundImage","backgroundPosition","Math","round","x","y","ResizableBoxContainer","forwardRef","isSelected","isStackedOnMobile","props","ref","isMobile","useViewportMatch","_react","createElement","ResizableBox","showHandle","ToolbarEditButton","mediaId","mediaUrl","onSelectMedia","BlockControls","group","MediaReplaceFlow","mediaURL","allowedTypes","accept","onSelect","PlaceholderContainer","className","createErrorNotice","useDispatch","noticesStore","onUploadError","message","type","MediaPlaceholder","icon","BlockIcon","labels","title","__","onError","disableMediaButtons","MediaContainer","commitWidthChange","imageFill","mediaAlt","mediaPosition","mediaType","mediaWidth","onWidthChange","enableResize","isTemporaryMedia","isBlobURL","toggleSelection","blockEditorStore","onResizeStart","onResize","event","direction","elt","parseInt","style","width","onResizeStop","enablePositions","right","left","backgroundStyles","mediaTypeRenderers","image","src","alt","video","controls","as","classnames","size","minWidth","maxWidth","enable","axis","Spinner","_default","exports","default"],"sources":["@wordpress/block-library/src/media-text/media-container.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { ResizableBox, Spinner } from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { media as icon } from '@wordpress/icons';\n\n/**\n * Constants\n */\nconst ALLOWED_MEDIA_TYPES = [ 'image', 'video' ];\nconst noop = () => {};\n\nexport function imageFillStyles( url, focalPoint ) {\n\treturn url\n\t\t? {\n\t\t\t\tbackgroundImage: `url(${ url })`,\n\t\t\t\tbackgroundPosition: focalPoint\n\t\t\t\t\t? `${ Math.round( focalPoint.x * 100 ) }% ${ Math.round(\n\t\t\t\t\t\t\tfocalPoint.y * 100\n\t\t\t\t\t ) }%`\n\t\t\t\t\t: `50% 50%`,\n\t\t }\n\t\t: {};\n}\n\nconst ResizableBoxContainer = forwardRef(\n\t( { isSelected, isStackedOnMobile, ...props }, ref ) => {\n\t\tconst isMobile = useViewportMatch( 'small', '<' );\n\t\treturn (\n\t\t\t<ResizableBox\n\t\t\t\tref={ ref }\n\t\t\t\tshowHandle={\n\t\t\t\t\tisSelected && ( ! isMobile || ! isStackedOnMobile )\n\t\t\t\t}\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t);\n\t}\n);\n\nfunction ToolbarEditButton( { mediaId, mediaUrl, onSelectMedia } ) {\n\treturn (\n\t\t<BlockControls group=\"other\">\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaId={ mediaId }\n\t\t\t\tmediaURL={ mediaUrl }\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\taccept=\"image/*,video/*\"\n\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t/>\n\t\t</BlockControls>\n\t);\n}\n\nfunction PlaceholderContainer( { className, mediaUrl, onSelectMedia } ) {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\treturn (\n\t\t<MediaPlaceholder\n\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Media area' ),\n\t\t\t} }\n\t\t\tclassName={ className }\n\t\t\tonSelect={ onSelectMedia }\n\t\t\taccept=\"image/*,video/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tonError={ onUploadError }\n\t\t\tdisableMediaButtons={ mediaUrl }\n\t\t/>\n\t);\n}\n\nfunction MediaContainer( props, ref ) {\n\tconst {\n\t\tclassName,\n\t\tcommitWidthChange,\n\t\tfocalPoint,\n\t\timageFill,\n\t\tisSelected,\n\t\tisStackedOnMobile,\n\t\tmediaAlt,\n\t\tmediaId,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\tonSelectMedia,\n\t\tonWidthChange,\n\t\tenableResize,\n\t} = props;\n\n\tconst isTemporaryMedia = ! mediaId && isBlobURL( mediaUrl );\n\n\tconst { toggleSelection } = useDispatch( blockEditorStore );\n\n\tif ( mediaUrl ) {\n\t\tconst onResizeStart = () => {\n\t\t\ttoggleSelection( false );\n\t\t};\n\t\tconst onResize = ( event, direction, elt ) => {\n\t\t\tonWidthChange( parseInt( elt.style.width ) );\n\t\t};\n\t\tconst onResizeStop = ( event, direction, elt ) => {\n\t\t\ttoggleSelection( true );\n\t\t\tcommitWidthChange( parseInt( elt.style.width ) );\n\t\t};\n\t\tconst enablePositions = {\n\t\t\tright: enableResize && mediaPosition === 'left',\n\t\t\tleft: enableResize && mediaPosition === 'right',\n\t\t};\n\n\t\tconst backgroundStyles =\n\t\t\tmediaType === 'image' && imageFill\n\t\t\t\t? imageFillStyles( mediaUrl, focalPoint )\n\t\t\t\t: {};\n\n\t\tconst mediaTypeRenderers = {\n\t\t\timage: () => <img src={ mediaUrl } alt={ mediaAlt } />,\n\t\t\tvideo: () => <video controls src={ mediaUrl } />,\n\t\t};\n\n\t\treturn (\n\t\t\t<ResizableBoxContainer\n\t\t\t\tas=\"figure\"\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\tclassName,\n\t\t\t\t\t'editor-media-container__resizer',\n\t\t\t\t\t{ 'is-transient': isTemporaryMedia }\n\t\t\t\t) }\n\t\t\t\tstyle={ backgroundStyles }\n\t\t\t\tsize={ { width: mediaWidth + '%' } }\n\t\t\t\tminWidth=\"10%\"\n\t\t\t\tmaxWidth=\"100%\"\n\t\t\t\tenable={ enablePositions }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResize={ onResize }\n\t\t\t\tonResizeStop={ onResizeStop }\n\t\t\t\taxis=\"x\"\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tisStackedOnMobile={ isStackedOnMobile }\n\t\t\t\tref={ ref }\n\t\t\t>\n\t\t\t\t<ToolbarEditButton\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tmediaUrl={ mediaUrl }\n\t\t\t\t\tmediaId={ mediaId }\n\t\t\t\t/>\n\t\t\t\t{ ( mediaTypeRenderers[ mediaType ] || noop )() }\n\t\t\t\t{ isTemporaryMedia && <Spinner /> }\n\t\t\t\t<PlaceholderContainer { ...props } />\n\t\t\t</ResizableBoxContainer>\n\t\t);\n\t}\n\n\treturn <PlaceholderContainer { ...props } />;\n}\n\nexport default forwardRef( MediaContainer );\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_components","_blockEditor","_i18n","_compose","_data","_element","_blob","_notices","_icons","ALLOWED_MEDIA_TYPES","noop","imageFillStyles","url","focalPoint","backgroundImage","backgroundPosition","Math","round","x","y","ResizableBoxContainer","forwardRef","isSelected","isStackedOnMobile","props","ref","isMobile","useViewportMatch","_react","createElement","ResizableBox","showHandle","ToolbarEditButton","mediaId","mediaUrl","onSelectMedia","toggleUseFeaturedImage","useFeaturedImage","featuredImageURL","BlockControls","group","MediaReplaceFlow","allowedTypes","accept","onSelect","onToggleFeaturedImage","PlaceholderContainer","className","createErrorNotice","useDispatch","noticesStore","onUploadError","message","type","MediaPlaceholder","icon","BlockIcon","labels","title","__","onError","disableMediaButtons","MediaContainer","commitWidthChange","imageFill","mediaAlt","mediaPosition","mediaType","mediaWidth","onWidthChange","enableResize","featuredImageAlt","isTemporaryMedia","isBlobURL","toggleSelection","blockEditorStore","onResizeStart","onResize","event","direction","elt","parseInt","style","width","onResizeStop","enablePositions","right","left","backgroundStyles","mediaTypeRenderers","image","src","alt","video","controls","as","classnames","size","minWidth","maxWidth","enable","axis","Spinner","Placeholder","withIllustration","_default","exports","default"],"sources":["@wordpress/block-library/src/media-text/media-container.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { ResizableBox, Spinner, Placeholder } from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { media as icon } from '@wordpress/icons';\n\n/**\n * Constants\n */\nconst ALLOWED_MEDIA_TYPES = [ 'image', 'video' ];\nconst noop = () => {};\n\nexport function imageFillStyles( url, focalPoint ) {\n\treturn url\n\t\t? {\n\t\t\t\tbackgroundImage: `url(${ url })`,\n\t\t\t\tbackgroundPosition: focalPoint\n\t\t\t\t\t? `${ Math.round( focalPoint.x * 100 ) }% ${ Math.round(\n\t\t\t\t\t\t\tfocalPoint.y * 100\n\t\t\t\t\t ) }%`\n\t\t\t\t\t: `50% 50%`,\n\t\t }\n\t\t: {};\n}\n\nconst ResizableBoxContainer = forwardRef(\n\t( { isSelected, isStackedOnMobile, ...props }, ref ) => {\n\t\tconst isMobile = useViewportMatch( 'small', '<' );\n\t\treturn (\n\t\t\t<ResizableBox\n\t\t\t\tref={ ref }\n\t\t\t\tshowHandle={\n\t\t\t\t\tisSelected && ( ! isMobile || ! isStackedOnMobile )\n\t\t\t\t}\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t);\n\t}\n);\n\nfunction ToolbarEditButton( {\n\tmediaId,\n\tmediaUrl,\n\tonSelectMedia,\n\ttoggleUseFeaturedImage,\n\tuseFeaturedImage,\n\tfeaturedImageURL,\n} ) {\n\treturn (\n\t\t<BlockControls group=\"other\">\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaId={ mediaId }\n\t\t\t\tmediaUrl={\n\t\t\t\t\tuseFeaturedImage && featuredImageURL\n\t\t\t\t\t\t? featuredImageURL\n\t\t\t\t\t\t: mediaUrl\n\t\t\t\t}\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\taccept=\"image/*,video/*\"\n\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\tonToggleFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\tuseFeaturedImage={ useFeaturedImage }\n\t\t\t/>\n\t\t</BlockControls>\n\t);\n}\n\nfunction PlaceholderContainer( {\n\tclassName,\n\tmediaUrl,\n\tonSelectMedia,\n\ttoggleUseFeaturedImage,\n} ) {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\treturn (\n\t\t<MediaPlaceholder\n\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Media area' ),\n\t\t\t} }\n\t\t\tclassName={ className }\n\t\t\tonSelect={ onSelectMedia }\n\t\t\taccept=\"image/*,video/*\"\n\t\t\tonToggleFeaturedImage={ toggleUseFeaturedImage }\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tonError={ onUploadError }\n\t\t\tdisableMediaButtons={ mediaUrl }\n\t\t/>\n\t);\n}\n\nfunction MediaContainer( props, ref ) {\n\tconst {\n\t\tclassName,\n\t\tcommitWidthChange,\n\t\tfocalPoint,\n\t\timageFill,\n\t\tisSelected,\n\t\tisStackedOnMobile,\n\t\tmediaAlt,\n\t\tmediaId,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\tonSelectMedia,\n\t\tonWidthChange,\n\t\tenableResize,\n\t\ttoggleUseFeaturedImage,\n\t\tuseFeaturedImage,\n\t\tfeaturedImageURL,\n\t\tfeaturedImageAlt,\n\t} = props;\n\n\tconst isTemporaryMedia = ! mediaId && isBlobURL( mediaUrl );\n\n\tconst { toggleSelection } = useDispatch( blockEditorStore );\n\n\tif ( mediaUrl || featuredImageURL || useFeaturedImage ) {\n\t\tconst onResizeStart = () => {\n\t\t\ttoggleSelection( false );\n\t\t};\n\t\tconst onResize = ( event, direction, elt ) => {\n\t\t\tonWidthChange( parseInt( elt.style.width ) );\n\t\t};\n\t\tconst onResizeStop = ( event, direction, elt ) => {\n\t\t\ttoggleSelection( true );\n\t\t\tcommitWidthChange( parseInt( elt.style.width ) );\n\t\t};\n\t\tconst enablePositions = {\n\t\t\tright: enableResize && mediaPosition === 'left',\n\t\t\tleft: enableResize && mediaPosition === 'right',\n\t\t};\n\n\t\tconst backgroundStyles =\n\t\t\tmediaType === 'image' && imageFill\n\t\t\t\t? imageFillStyles( mediaUrl || featuredImageURL, focalPoint )\n\t\t\t\t: {};\n\n\t\tconst mediaTypeRenderers = {\n\t\t\timage: () =>\n\t\t\t\tuseFeaturedImage && featuredImageURL ? (\n\t\t\t\t\t<img src={ featuredImageURL } alt={ featuredImageAlt } />\n\t\t\t\t) : (\n\t\t\t\t\tmediaUrl && <img src={ mediaUrl } alt={ mediaAlt } />\n\t\t\t\t),\n\t\t\tvideo: () => <video controls src={ mediaUrl } />,\n\t\t};\n\n\t\treturn (\n\t\t\t<ResizableBoxContainer\n\t\t\t\tas=\"figure\"\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\tclassName,\n\t\t\t\t\t'editor-media-container__resizer',\n\t\t\t\t\t{ 'is-transient': isTemporaryMedia }\n\t\t\t\t) }\n\t\t\t\tstyle={ backgroundStyles }\n\t\t\t\tsize={ { width: mediaWidth + '%' } }\n\t\t\t\tminWidth=\"10%\"\n\t\t\t\tmaxWidth=\"100%\"\n\t\t\t\tenable={ enablePositions }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResize={ onResize }\n\t\t\t\tonResizeStop={ onResizeStop }\n\t\t\t\taxis=\"x\"\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tisStackedOnMobile={ isStackedOnMobile }\n\t\t\t\tref={ ref }\n\t\t\t>\n\t\t\t\t<ToolbarEditButton\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tmediaUrl={\n\t\t\t\t\t\tuseFeaturedImage && featuredImageURL\n\t\t\t\t\t\t\t? featuredImageURL\n\t\t\t\t\t\t\t: mediaUrl\n\t\t\t\t\t}\n\t\t\t\t\tmediaId={ mediaId }\n\t\t\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\t\tuseFeaturedImage={ useFeaturedImage }\n\t\t\t\t/>\n\t\t\t\t{ ( mediaTypeRenderers[ mediaType ] || noop )() }\n\t\t\t\t{ isTemporaryMedia && <Spinner /> }\n\t\t\t\t{ ! useFeaturedImage && <PlaceholderContainer { ...props } /> }\n\t\t\t\t{ ! featuredImageURL && useFeaturedImage && (\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\tclassName=\"wp-block-media-text--placeholder-image\"\n\t\t\t\t\t\twithIllustration\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</ResizableBoxContainer>\n\t\t);\n\t}\n\n\treturn <PlaceholderContainer { ...props } />;\n}\n\nexport default forwardRef( MediaContainer );\n"],"mappings":"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"}
@@ -302,7 +302,7 @@ class MediaContainer extends _element.Component {
302
302
  }) => {
303
303
  onSetOpenPickerRef(open);
304
304
  return (0, _react.createElement)(_react.Fragment, null, getMediaOptions(), (0, _react.createElement)(_blockEditor.MediaUploadProgress, {
305
- enablePausedUploads: true,
305
+ enablePausedUploads: mediaType === _blockEditor.MEDIA_TYPE_IMAGE,
306
306
  coverUrl: coverUrl,
307
307
  mediaId: mediaId,
308
308
  onUpdateMediaProgress: this.updateMediaProgress,