@wordpress/block-library 5.0.1 → 6.0.1

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 (895) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/build/audio/edit.js +2 -2
  4. package/build/audio/edit.js.map +1 -1
  5. package/build/audio/edit.native.js +2 -2
  6. package/build/audio/edit.native.js.map +1 -1
  7. package/build/button/edit.js +97 -87
  8. package/build/button/edit.js.map +1 -1
  9. package/build/button/edit.native.js +1 -1
  10. package/build/button/edit.native.js.map +1 -1
  11. package/build/button/index.js +4 -1
  12. package/build/button/index.js.map +1 -1
  13. package/build/buttons/edit.js +2 -1
  14. package/build/buttons/edit.js.map +1 -1
  15. package/build/buttons/index.js +2 -1
  16. package/build/buttons/index.js.map +1 -1
  17. package/build/buttons/transforms.js +2 -1
  18. package/build/buttons/transforms.js.map +1 -1
  19. package/build/column/index.js +4 -1
  20. package/build/column/index.js.map +1 -1
  21. package/build/column/save.js +9 -1
  22. package/build/column/save.js.map +1 -1
  23. package/build/columns/edit.native.js +5 -2
  24. package/build/columns/edit.native.js.map +1 -1
  25. package/build/columns/index.js +10 -1
  26. package/build/columns/index.js.map +1 -1
  27. package/build/cover/deprecated.js +0 -27
  28. package/build/cover/deprecated.js.map +1 -1
  29. package/build/cover/edit.js +57 -27
  30. package/build/cover/edit.js.map +1 -1
  31. package/build/cover/index.js +11 -1
  32. package/build/cover/index.js.map +1 -1
  33. package/build/cover/save.js +2 -1
  34. package/build/cover/save.js.map +1 -1
  35. package/build/cover/shared.js +1 -0
  36. package/build/cover/shared.js.map +1 -1
  37. package/build/cover/transforms.js +4 -0
  38. package/build/cover/transforms.js.map +1 -1
  39. package/build/embed/edit.js +1 -5
  40. package/build/embed/edit.js.map +1 -1
  41. package/build/embed/edit.native.js +85 -22
  42. package/build/embed/edit.native.js.map +1 -1
  43. package/build/embed/embed-bottom-sheet.native.js +17 -16
  44. package/build/embed/embed-bottom-sheet.native.js.map +1 -1
  45. package/build/embed/embed-controls.js +4 -1
  46. package/build/embed/embed-controls.js.map +1 -1
  47. package/build/embed/embed-no-preview.native.js +22 -9
  48. package/build/embed/embed-no-preview.native.js.map +1 -1
  49. package/build/embed/embed-placeholder.native.js +51 -7
  50. package/build/embed/embed-placeholder.native.js.map +1 -1
  51. package/build/embed/embed-preview.native.js +28 -10
  52. package/build/embed/embed-preview.native.js.map +1 -1
  53. package/build/embed/variations.js +0 -10
  54. package/build/embed/variations.js.map +1 -1
  55. package/build/embed/wp-embed-preview.js +44 -56
  56. package/build/embed/wp-embed-preview.js.map +1 -1
  57. package/build/embed/wp-embed-preview.native.js +95 -0
  58. package/build/embed/wp-embed-preview.native.js.map +1 -0
  59. package/build/file/deprecated.js +108 -0
  60. package/build/file/deprecated.js.map +1 -0
  61. package/build/file/edit.js +8 -1
  62. package/build/file/edit.js.map +1 -1
  63. package/build/file/index.js +9 -0
  64. package/build/file/index.js.map +1 -1
  65. package/build/file/inspector.js +1 -1
  66. package/build/file/inspector.js.map +1 -1
  67. package/build/file/save.js +4 -1
  68. package/build/file/save.js.map +1 -1
  69. package/build/file/transforms.js +3 -1
  70. package/build/file/transforms.js.map +1 -1
  71. package/build/gallery/constants.js +2 -2
  72. package/build/gallery/constants.js.map +1 -1
  73. package/build/gallery/deprecated.js +17 -8
  74. package/build/gallery/deprecated.js.map +1 -1
  75. package/build/gallery/edit-wrapper.js +63 -0
  76. package/build/gallery/edit-wrapper.js.map +1 -0
  77. package/build/gallery/edit.js +225 -231
  78. package/build/gallery/edit.js.map +1 -1
  79. package/build/gallery/gallery.js +67 -49
  80. package/build/gallery/gallery.js.map +1 -1
  81. package/build/gallery/gallery.native.js +42 -79
  82. package/build/gallery/gallery.native.js.map +1 -1
  83. package/build/gallery/index.js +31 -7
  84. package/build/gallery/index.js.map +1 -1
  85. package/build/gallery/save.js +26 -43
  86. package/build/gallery/save.js.map +1 -1
  87. package/build/gallery/shared.js +9 -2
  88. package/build/gallery/shared.js.map +1 -1
  89. package/build/gallery/transforms.js +211 -12
  90. package/build/gallery/transforms.js.map +1 -1
  91. package/build/gallery/use-get-media.js +58 -0
  92. package/build/gallery/use-get-media.js.map +1 -0
  93. package/build/gallery/use-get-new-images.js +58 -0
  94. package/build/gallery/use-get-new-images.js.map +1 -0
  95. package/build/gallery/use-image-sizes.js +73 -0
  96. package/build/gallery/use-image-sizes.js.map +1 -0
  97. package/build/gallery/use-short-code-transform.js +63 -0
  98. package/build/gallery/use-short-code-transform.js.map +1 -0
  99. package/build/gallery/utils.js +51 -0
  100. package/build/gallery/utils.js.map +1 -0
  101. package/build/gallery/v1/constants.js +13 -0
  102. package/build/gallery/v1/constants.js.map +1 -0
  103. package/build/gallery/v1/edit.js +459 -0
  104. package/build/gallery/v1/edit.js.map +1 -0
  105. package/build/gallery/{gallery-button.native.js → v1/gallery-button.native.js} +0 -0
  106. package/build/gallery/v1/gallery-button.native.js.map +1 -0
  107. package/build/gallery/{gallery-image.js → v1/gallery-image.js} +0 -0
  108. package/build/gallery/v1/gallery-image.js.map +1 -0
  109. package/build/gallery/{gallery-image.native.js → v1/gallery-image.native.js} +0 -0
  110. package/build/gallery/v1/gallery-image.native.js.map +1 -0
  111. package/build/gallery/v1/gallery.js +122 -0
  112. package/build/gallery/v1/gallery.js.map +1 -0
  113. package/build/gallery/v1/gallery.native.js +159 -0
  114. package/build/gallery/v1/gallery.native.js.map +1 -0
  115. package/build/gallery/v1/save.js +75 -0
  116. package/build/gallery/v1/save.js.map +1 -0
  117. package/build/gallery/v1/shared.js +26 -0
  118. package/build/gallery/v1/shared.js.map +1 -0
  119. package/build/gallery/{tiles.native.js → v1/tiles.native.js} +2 -1
  120. package/build/gallery/v1/tiles.native.js.map +1 -0
  121. package/build/gallery/v1/update-gallery-modal.js +110 -0
  122. package/build/gallery/v1/update-gallery-modal.js.map +1 -0
  123. package/build/group/edit.js +21 -5
  124. package/build/group/edit.js.map +1 -1
  125. package/build/group/index.js +8 -2
  126. package/build/group/index.js.map +1 -1
  127. package/build/group/variations.js +31 -0
  128. package/build/group/variations.js.map +1 -0
  129. package/build/heading/heading-level-dropdown.js +11 -37
  130. package/build/heading/heading-level-dropdown.js.map +1 -1
  131. package/build/home-link/edit.js +2 -2
  132. package/build/home-link/edit.js.map +1 -1
  133. package/build/image/edit.js +8 -6
  134. package/build/image/edit.js.map +1 -1
  135. package/build/image/edit.native.js +46 -17
  136. package/build/image/edit.native.js.map +1 -1
  137. package/build/image/image.js +11 -17
  138. package/build/image/image.js.map +1 -1
  139. package/build/image/index.js +1 -0
  140. package/build/image/index.js.map +1 -1
  141. package/build/image/transforms.js +30 -7
  142. package/build/image/transforms.js.map +1 -1
  143. package/build/image/utils.js +23 -0
  144. package/build/image/utils.js.map +1 -1
  145. package/build/index.js +3 -1
  146. package/build/index.js.map +1 -1
  147. package/build/latest-comments/edit.js +7 -1
  148. package/build/latest-comments/edit.js.map +1 -1
  149. package/build/latest-posts/edit.native.js +12 -6
  150. package/build/latest-posts/edit.native.js.map +1 -1
  151. package/build/media-text/edit.js +1 -1
  152. package/build/media-text/edit.js.map +1 -1
  153. package/build/media-text/index.js +2 -0
  154. package/build/media-text/index.js.map +1 -1
  155. package/build/navigation/block-navigation-list.js +14 -3
  156. package/build/navigation/block-navigation-list.js.map +1 -1
  157. package/build/navigation/edit.js +44 -14
  158. package/build/navigation/edit.js.map +1 -1
  159. package/build/navigation/index.js +7 -1
  160. package/build/navigation/index.js.map +1 -1
  161. package/build/navigation/menu-items-to-blocks.js +6 -5
  162. package/build/navigation/menu-items-to-blocks.js.map +1 -1
  163. package/build/navigation/placeholder-preview.js +3 -3
  164. package/build/navigation/placeholder-preview.js.map +1 -1
  165. package/build/navigation/placeholder.js +1 -1
  166. package/build/navigation/placeholder.js.map +1 -1
  167. package/build/navigation/use-block-navigator.js +2 -1
  168. package/build/navigation/use-block-navigator.js.map +1 -1
  169. package/build/navigation/variations.js +2 -3
  170. package/build/navigation/variations.js.map +1 -1
  171. package/build/navigation/view.js +53 -1
  172. package/build/navigation/view.js.map +1 -1
  173. package/build/navigation-link/edit.js +56 -72
  174. package/build/navigation-link/edit.js.map +1 -1
  175. package/build/navigation-link/index.js +6 -2
  176. package/build/navigation-link/index.js.map +1 -1
  177. package/build/navigation-link/transforms.js +83 -0
  178. package/build/navigation-link/transforms.js.map +1 -0
  179. package/build/navigation-submenu/edit.js +651 -0
  180. package/build/navigation-submenu/edit.js.map +1 -0
  181. package/build/navigation-submenu/icons.js +27 -0
  182. package/build/navigation-submenu/icons.js.map +1 -0
  183. package/build/navigation-submenu/index.js +89 -0
  184. package/build/navigation-submenu/index.js.map +1 -0
  185. package/build/navigation-submenu/save.js +18 -0
  186. package/build/navigation-submenu/save.js.map +1 -0
  187. package/build/navigation-submenu/transforms.js +82 -0
  188. package/build/navigation-submenu/transforms.js.map +1 -0
  189. package/build/navigation-submenu/view.js +51 -0
  190. package/build/navigation-submenu/view.js.map +1 -0
  191. package/build/page-list/convert-to-links-modal.js +19 -1
  192. package/build/page-list/convert-to-links-modal.js.map +1 -1
  193. package/build/page-list/edit.js +16 -5
  194. package/build/page-list/edit.js.map +1 -1
  195. package/build/page-list/index.js +10 -1
  196. package/build/page-list/index.js.map +1 -1
  197. package/build/post-author/index.js +2 -1
  198. package/build/post-author/index.js.map +1 -1
  199. package/build/post-comment/edit.js +7 -4
  200. package/build/post-comment/edit.js.map +1 -1
  201. package/build/post-comment-author/edit.js +1 -1
  202. package/build/post-comment-author/edit.js.map +1 -1
  203. package/build/post-comment-content/edit.js +16 -12
  204. package/build/post-comment-content/edit.js.map +1 -1
  205. package/build/post-content/edit.js +1 -3
  206. package/build/post-content/edit.js.map +1 -1
  207. package/build/post-date/edit.js +35 -14
  208. package/build/post-date/edit.js.map +1 -1
  209. package/build/post-date/index.js +2 -1
  210. package/build/post-date/index.js.map +1 -1
  211. package/build/post-excerpt/edit.js +2 -1
  212. package/build/post-excerpt/edit.js.map +1 -1
  213. package/build/post-featured-image/dimension-controls.js +24 -10
  214. package/build/post-featured-image/dimension-controls.js.map +1 -1
  215. package/build/post-featured-image/index.js +5 -0
  216. package/build/post-featured-image/index.js.map +1 -1
  217. package/build/post-navigation-link/edit.js +19 -3
  218. package/build/post-navigation-link/edit.js.map +1 -1
  219. package/build/post-navigation-link/index.js +9 -1
  220. package/build/post-navigation-link/index.js.map +1 -1
  221. package/build/post-template/index.js +5 -2
  222. package/build/post-template/index.js.map +1 -1
  223. package/build/post-terms/edit.js +4 -2
  224. package/build/post-terms/edit.js.map +1 -1
  225. package/build/post-terms/index.js +2 -1
  226. package/build/post-terms/index.js.map +1 -1
  227. package/build/post-title/edit.js +3 -3
  228. package/build/post-title/edit.js.map +1 -1
  229. package/build/post-title/index.js +4 -1
  230. package/build/post-title/index.js.map +1 -1
  231. package/build/query/edit/index.js +3 -1
  232. package/build/query/edit/index.js.map +1 -1
  233. package/build/query/variations.js +4 -4
  234. package/build/query/variations.js.map +1 -1
  235. package/build/query-pagination/deprecated.js +24 -0
  236. package/build/query-pagination/deprecated.js.map +1 -0
  237. package/build/query-pagination/edit.js +54 -3
  238. package/build/query-pagination/edit.js.map +1 -1
  239. package/build/query-pagination/index.js +20 -1
  240. package/build/query-pagination/index.js.map +1 -1
  241. package/build/query-pagination/query-pagination-arrow-controls.js +38 -0
  242. package/build/query-pagination/query-pagination-arrow-controls.js.map +1 -0
  243. package/build/query-pagination/save.js +1 -1
  244. package/build/query-pagination/save.js.map +1 -1
  245. package/build/query-pagination-next/edit.js +19 -4
  246. package/build/query-pagination-next/edit.js.map +1 -1
  247. package/build/query-pagination-next/index.js +1 -1
  248. package/build/query-pagination-previous/edit.js +19 -4
  249. package/build/query-pagination-previous/edit.js.map +1 -1
  250. package/build/query-pagination-previous/index.js +1 -1
  251. package/build/site-logo/edit.js +75 -30
  252. package/build/site-logo/edit.js.map +1 -1
  253. package/build/site-logo/index.js +7 -2
  254. package/build/site-logo/index.js.map +1 -1
  255. package/build/site-tagline/index.js +1 -0
  256. package/build/site-tagline/index.js.map +1 -1
  257. package/build/site-title/edit/index.js +25 -6
  258. package/build/site-title/edit/index.js.map +1 -1
  259. package/build/site-title/index.js +9 -2
  260. package/build/site-title/index.js.map +1 -1
  261. package/build/social-links/deprecated.js +106 -2
  262. package/build/social-links/deprecated.js.map +1 -1
  263. package/build/social-links/edit.js +15 -19
  264. package/build/social-links/edit.js.map +1 -1
  265. package/build/social-links/index.js +16 -1
  266. package/build/social-links/index.js.map +1 -1
  267. package/build/social-links/save.js +1 -3
  268. package/build/social-links/save.js.map +1 -1
  269. package/build/table/index.js +1 -1
  270. package/build/template-part/edit/advanced-controls.js +3 -1
  271. package/build/template-part/edit/advanced-controls.js.map +1 -1
  272. package/build/template-part/edit/index.js +1 -4
  273. package/build/template-part/edit/index.js.map +1 -1
  274. package/build/video/edit-common-settings.js +1 -1
  275. package/build/video/edit-common-settings.js.map +1 -1
  276. package/build/video/edit.js +10 -5
  277. package/build/video/edit.js.map +1 -1
  278. package/build/video/tracks-editor.js +3 -1
  279. package/build/video/tracks-editor.js.map +1 -1
  280. package/build-module/audio/edit.js +3 -3
  281. package/build-module/audio/edit.js.map +1 -1
  282. package/build-module/audio/edit.native.js +3 -3
  283. package/build-module/audio/edit.native.js.map +1 -1
  284. package/build-module/button/edit.js +101 -91
  285. package/build-module/button/edit.js.map +1 -1
  286. package/build-module/button/edit.native.js +2 -2
  287. package/build-module/button/edit.native.js.map +1 -1
  288. package/build-module/button/index.js +4 -1
  289. package/build-module/button/index.js.map +1 -1
  290. package/build-module/buttons/edit.js +2 -1
  291. package/build-module/buttons/edit.js.map +1 -1
  292. package/build-module/buttons/index.js +2 -1
  293. package/build-module/buttons/index.js.map +1 -1
  294. package/build-module/buttons/transforms.js +2 -1
  295. package/build-module/buttons/transforms.js.map +1 -1
  296. package/build-module/column/index.js +4 -1
  297. package/build-module/column/index.js.map +1 -1
  298. package/build-module/column/save.js +9 -1
  299. package/build-module/column/save.js.map +1 -1
  300. package/build-module/columns/edit.native.js +6 -3
  301. package/build-module/columns/edit.native.js.map +1 -1
  302. package/build-module/columns/index.js +10 -1
  303. package/build-module/columns/index.js.map +1 -1
  304. package/build-module/cover/deprecated.js +0 -27
  305. package/build-module/cover/deprecated.js.map +1 -1
  306. package/build-module/cover/edit.js +57 -28
  307. package/build-module/cover/edit.js.map +1 -1
  308. package/build-module/cover/index.js +11 -1
  309. package/build-module/cover/index.js.map +1 -1
  310. package/build-module/cover/save.js +2 -1
  311. package/build-module/cover/save.js.map +1 -1
  312. package/build-module/cover/shared.js +1 -0
  313. package/build-module/cover/shared.js.map +1 -1
  314. package/build-module/cover/transforms.js +4 -0
  315. package/build-module/cover/transforms.js.map +1 -1
  316. package/build-module/embed/edit.js +1 -5
  317. package/build-module/embed/edit.js.map +1 -1
  318. package/build-module/embed/edit.native.js +87 -25
  319. package/build-module/embed/edit.native.js.map +1 -1
  320. package/build-module/embed/embed-bottom-sheet.native.js +18 -16
  321. package/build-module/embed/embed-bottom-sheet.native.js.map +1 -1
  322. package/build-module/embed/embed-controls.js +4 -1
  323. package/build-module/embed/embed-controls.js.map +1 -1
  324. package/build-module/embed/embed-no-preview.native.js +22 -10
  325. package/build-module/embed/embed-no-preview.native.js.map +1 -1
  326. package/build-module/embed/embed-placeholder.native.js +51 -8
  327. package/build-module/embed/embed-placeholder.native.js.map +1 -1
  328. package/build-module/embed/embed-preview.native.js +26 -11
  329. package/build-module/embed/embed-preview.native.js.map +1 -1
  330. package/build-module/embed/variations.js +0 -10
  331. package/build-module/embed/variations.js.map +1 -1
  332. package/build-module/embed/wp-embed-preview.js +39 -56
  333. package/build-module/embed/wp-embed-preview.js.map +1 -1
  334. package/build-module/embed/wp-embed-preview.native.js +83 -0
  335. package/build-module/embed/wp-embed-preview.native.js.map +1 -0
  336. package/build-module/file/deprecated.js +98 -0
  337. package/build-module/file/deprecated.js.map +1 -0
  338. package/build-module/file/edit.js +8 -1
  339. package/build-module/file/edit.js.map +1 -1
  340. package/build-module/file/index.js +8 -0
  341. package/build-module/file/index.js.map +1 -1
  342. package/build-module/file/inspector.js +1 -1
  343. package/build-module/file/inspector.js.map +1 -1
  344. package/build-module/file/save.js +4 -1
  345. package/build-module/file/save.js.map +1 -1
  346. package/build-module/file/transforms.js +2 -1
  347. package/build-module/file/transforms.js.map +1 -1
  348. package/build-module/gallery/constants.js +2 -2
  349. package/build-module/gallery/constants.js.map +1 -1
  350. package/build-module/gallery/deprecated.js +15 -7
  351. package/build-module/gallery/deprecated.js.map +1 -1
  352. package/build-module/gallery/edit-wrapper.js +50 -0
  353. package/build-module/gallery/edit-wrapper.js.map +1 -0
  354. package/build-module/gallery/edit.js +222 -234
  355. package/build-module/gallery/edit.js.map +1 -1
  356. package/build-module/gallery/gallery.js +70 -51
  357. package/build-module/gallery/gallery.js.map +1 -1
  358. package/build-module/gallery/gallery.native.js +43 -78
  359. package/build-module/gallery/gallery.native.js.map +1 -1
  360. package/build-module/gallery/index.js +30 -6
  361. package/build-module/gallery/index.js.map +1 -1
  362. package/build-module/gallery/save.js +24 -43
  363. package/build-module/gallery/save.js.map +1 -1
  364. package/build-module/gallery/shared.js +8 -2
  365. package/build-module/gallery/shared.js.map +1 -1
  366. package/build-module/gallery/transforms.js +207 -12
  367. package/build-module/gallery/transforms.js.map +1 -1
  368. package/build-module/gallery/use-get-media.js +48 -0
  369. package/build-module/gallery/use-get-media.js.map +1 -0
  370. package/build-module/gallery/use-get-new-images.js +50 -0
  371. package/build-module/gallery/use-get-new-images.js.map +1 -0
  372. package/build-module/gallery/use-image-sizes.js +64 -0
  373. package/build-module/gallery/use-image-sizes.js.map +1 -0
  374. package/build-module/gallery/use-short-code-transform.js +53 -0
  375. package/build-module/gallery/use-short-code-transform.js.map +1 -0
  376. package/build-module/gallery/utils.js +42 -0
  377. package/build-module/gallery/utils.js.map +1 -0
  378. package/build-module/gallery/v1/constants.js +4 -0
  379. package/build-module/gallery/v1/constants.js.map +1 -0
  380. package/build-module/gallery/v1/edit.js +430 -0
  381. package/build-module/gallery/v1/edit.js.map +1 -0
  382. package/build-module/gallery/{gallery-button.native.js → v1/gallery-button.native.js} +0 -0
  383. package/build-module/gallery/v1/gallery-button.native.js.map +1 -0
  384. package/build-module/gallery/{gallery-image.js → v1/gallery-image.js} +0 -0
  385. package/build-module/gallery/v1/gallery-image.js.map +1 -0
  386. package/build-module/gallery/{gallery-image.native.js → v1/gallery-image.native.js} +0 -0
  387. package/build-module/gallery/v1/gallery-image.native.js.map +1 -0
  388. package/build-module/gallery/v1/gallery.js +102 -0
  389. package/build-module/gallery/v1/gallery.js.map +1 -0
  390. package/build-module/gallery/v1/gallery.native.js +136 -0
  391. package/build-module/gallery/v1/gallery.native.js.map +1 -0
  392. package/build-module/gallery/v1/save.js +65 -0
  393. package/build-module/gallery/v1/save.js.map +1 -0
  394. package/build-module/gallery/v1/shared.js +16 -0
  395. package/build-module/gallery/v1/shared.js.map +1 -0
  396. package/build-module/gallery/{tiles.native.js → v1/tiles.native.js} +2 -1
  397. package/build-module/gallery/v1/tiles.native.js.map +1 -0
  398. package/build-module/gallery/v1/update-gallery-modal.js +93 -0
  399. package/build-module/gallery/v1/update-gallery-modal.js.map +1 -0
  400. package/build-module/group/edit.js +21 -6
  401. package/build-module/group/edit.js.map +1 -1
  402. package/build-module/group/index.js +7 -2
  403. package/build-module/group/index.js.map +1 -1
  404. package/build-module/group/variations.js +22 -0
  405. package/build-module/group/variations.js.map +1 -0
  406. package/build-module/heading/heading-level-dropdown.js +12 -37
  407. package/build-module/heading/heading-level-dropdown.js.map +1 -1
  408. package/build-module/home-link/edit.js +2 -2
  409. package/build-module/home-link/edit.js.map +1 -1
  410. package/build-module/image/edit.js +8 -6
  411. package/build-module/image/edit.js.map +1 -1
  412. package/build-module/image/edit.native.js +48 -19
  413. package/build-module/image/edit.native.js.map +1 -1
  414. package/build-module/image/image.js +11 -15
  415. package/build-module/image/image.js.map +1 -1
  416. package/build-module/image/index.js +1 -0
  417. package/build-module/image/index.js.map +1 -1
  418. package/build-module/image/transforms.js +26 -7
  419. package/build-module/image/transforms.js.map +1 -1
  420. package/build-module/image/utils.js +22 -1
  421. package/build-module/image/utils.js.map +1 -1
  422. package/build-module/index.js +2 -1
  423. package/build-module/index.js.map +1 -1
  424. package/build-module/latest-comments/edit.js +7 -1
  425. package/build-module/latest-comments/edit.js.map +1 -1
  426. package/build-module/latest-posts/edit.native.js +12 -6
  427. package/build-module/latest-posts/edit.native.js.map +1 -1
  428. package/build-module/media-text/edit.js +1 -1
  429. package/build-module/media-text/edit.js.map +1 -1
  430. package/build-module/media-text/index.js +2 -0
  431. package/build-module/media-text/index.js.map +1 -1
  432. package/build-module/navigation/block-navigation-list.js +15 -3
  433. package/build-module/navigation/block-navigation-list.js.map +1 -1
  434. package/build-module/navigation/edit.js +45 -15
  435. package/build-module/navigation/edit.js.map +1 -1
  436. package/build-module/navigation/index.js +7 -1
  437. package/build-module/navigation/index.js.map +1 -1
  438. package/build-module/navigation/menu-items-to-blocks.js +6 -5
  439. package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
  440. package/build-module/navigation/placeholder-preview.js +3 -3
  441. package/build-module/navigation/placeholder-preview.js.map +1 -1
  442. package/build-module/navigation/placeholder.js +1 -1
  443. package/build-module/navigation/placeholder.js.map +1 -1
  444. package/build-module/navigation/use-block-navigator.js +2 -1
  445. package/build-module/navigation/use-block-navigator.js.map +1 -1
  446. package/build-module/navigation/variations.js +2 -3
  447. package/build-module/navigation/variations.js.map +1 -1
  448. package/build-module/navigation/view.js +53 -2
  449. package/build-module/navigation/view.js.map +1 -1
  450. package/build-module/navigation-link/edit.js +59 -74
  451. package/build-module/navigation-link/edit.js.map +1 -1
  452. package/build-module/navigation-link/index.js +5 -2
  453. package/build-module/navigation-link/index.js.map +1 -1
  454. package/build-module/navigation-link/transforms.js +74 -0
  455. package/build-module/navigation-link/transforms.js.map +1 -0
  456. package/build-module/navigation-submenu/edit.js +628 -0
  457. package/build-module/navigation-submenu/edit.js.map +1 -0
  458. package/build-module/navigation-submenu/icons.js +17 -0
  459. package/build-module/navigation-submenu/icons.js.map +1 -0
  460. package/build-module/navigation-submenu/index.js +74 -0
  461. package/build-module/navigation-submenu/index.js.map +1 -0
  462. package/build-module/navigation-submenu/save.js +10 -0
  463. package/build-module/navigation-submenu/save.js.map +1 -0
  464. package/build-module/navigation-submenu/transforms.js +73 -0
  465. package/build-module/navigation-submenu/transforms.js.map +1 -0
  466. package/build-module/navigation-submenu/view.js +49 -0
  467. package/build-module/navigation-submenu/view.js.map +1 -0
  468. package/build-module/page-list/convert-to-links-modal.js +19 -1
  469. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  470. package/build-module/page-list/edit.js +16 -5
  471. package/build-module/page-list/edit.js.map +1 -1
  472. package/build-module/page-list/index.js +10 -1
  473. package/build-module/page-list/index.js.map +1 -1
  474. package/build-module/post-author/index.js +2 -1
  475. package/build-module/post-author/index.js.map +1 -1
  476. package/build-module/post-comment/edit.js +8 -6
  477. package/build-module/post-comment/edit.js.map +1 -1
  478. package/build-module/post-comment-author/edit.js +1 -1
  479. package/build-module/post-comment-author/edit.js.map +1 -1
  480. package/build-module/post-comment-content/edit.js +16 -13
  481. package/build-module/post-comment-content/edit.js.map +1 -1
  482. package/build-module/post-content/edit.js +1 -3
  483. package/build-module/post-content/edit.js.map +1 -1
  484. package/build-module/post-date/edit.js +36 -16
  485. package/build-module/post-date/edit.js.map +1 -1
  486. package/build-module/post-date/index.js +2 -1
  487. package/build-module/post-date/index.js.map +1 -1
  488. package/build-module/post-excerpt/edit.js +2 -1
  489. package/build-module/post-excerpt/edit.js.map +1 -1
  490. package/build-module/post-featured-image/dimension-controls.js +22 -11
  491. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  492. package/build-module/post-featured-image/index.js +5 -0
  493. package/build-module/post-featured-image/index.js.map +1 -1
  494. package/build-module/post-navigation-link/edit.js +19 -3
  495. package/build-module/post-navigation-link/edit.js.map +1 -1
  496. package/build-module/post-navigation-link/index.js +9 -1
  497. package/build-module/post-navigation-link/index.js.map +1 -1
  498. package/build-module/post-template/index.js +6 -3
  499. package/build-module/post-template/index.js.map +1 -1
  500. package/build-module/post-terms/edit.js +5 -3
  501. package/build-module/post-terms/edit.js.map +1 -1
  502. package/build-module/post-terms/index.js +2 -1
  503. package/build-module/post-terms/index.js.map +1 -1
  504. package/build-module/post-title/edit.js +3 -3
  505. package/build-module/post-title/edit.js.map +1 -1
  506. package/build-module/post-title/index.js +4 -1
  507. package/build-module/post-title/index.js.map +1 -1
  508. package/build-module/query/edit/index.js +4 -2
  509. package/build-module/query/edit/index.js.map +1 -1
  510. package/build-module/query/variations.js +4 -4
  511. package/build-module/query/variations.js.map +1 -1
  512. package/build-module/query-pagination/deprecated.js +15 -0
  513. package/build-module/query-pagination/deprecated.js.map +1 -0
  514. package/build-module/query-pagination/edit.js +52 -5
  515. package/build-module/query-pagination/edit.js.map +1 -1
  516. package/build-module/query-pagination/index.js +19 -1
  517. package/build-module/query-pagination/index.js.map +1 -1
  518. package/build-module/query-pagination/query-pagination-arrow-controls.js +29 -0
  519. package/build-module/query-pagination/query-pagination-arrow-controls.js.map +1 -0
  520. package/build-module/query-pagination/save.js +2 -2
  521. package/build-module/query-pagination/save.js.map +1 -1
  522. package/build-module/query-pagination-next/edit.js +18 -4
  523. package/build-module/query-pagination-next/edit.js.map +1 -1
  524. package/build-module/query-pagination-next/index.js +1 -1
  525. package/build-module/query-pagination-previous/edit.js +18 -4
  526. package/build-module/query-pagination-previous/edit.js.map +1 -1
  527. package/build-module/query-pagination-previous/index.js +1 -1
  528. package/build-module/site-logo/edit.js +79 -34
  529. package/build-module/site-logo/edit.js.map +1 -1
  530. package/build-module/site-logo/index.js +7 -2
  531. package/build-module/site-logo/index.js.map +1 -1
  532. package/build-module/site-tagline/index.js +1 -0
  533. package/build-module/site-tagline/index.js.map +1 -1
  534. package/build-module/site-title/edit/index.js +25 -7
  535. package/build-module/site-title/edit/index.js.map +1 -1
  536. package/build-module/site-title/index.js +9 -2
  537. package/build-module/site-title/index.js.map +1 -1
  538. package/build-module/social-links/deprecated.js +106 -2
  539. package/build-module/social-links/deprecated.js.map +1 -1
  540. package/build-module/social-links/edit.js +16 -20
  541. package/build-module/social-links/edit.js.map +1 -1
  542. package/build-module/social-links/index.js +16 -1
  543. package/build-module/social-links/index.js.map +1 -1
  544. package/build-module/social-links/save.js +1 -3
  545. package/build-module/social-links/save.js.map +1 -1
  546. package/build-module/table/index.js +1 -1
  547. package/build-module/template-part/edit/advanced-controls.js +4 -2
  548. package/build-module/template-part/edit/advanced-controls.js.map +1 -1
  549. package/build-module/template-part/edit/index.js +1 -4
  550. package/build-module/template-part/edit/index.js.map +1 -1
  551. package/build-module/video/edit-common-settings.js +2 -2
  552. package/build-module/video/edit-common-settings.js.map +1 -1
  553. package/build-module/video/edit.js +10 -5
  554. package/build-module/video/edit.js.map +1 -1
  555. package/build-module/video/tracks-editor.js +2 -1
  556. package/build-module/video/tracks-editor.js.map +1 -1
  557. package/build-style/button/style-rtl.css +1 -1
  558. package/build-style/button/style.css +1 -1
  559. package/build-style/columns/editor-rtl.css +2 -2
  560. package/build-style/columns/editor.css +2 -2
  561. package/build-style/columns/style-rtl.css +4 -4
  562. package/build-style/columns/style.css +4 -4
  563. package/build-style/common-rtl.css +4 -105
  564. package/build-style/common.css +4 -105
  565. package/build-style/editor-rtl.css +188 -205
  566. package/build-style/editor.css +188 -205
  567. package/build-style/embed/style-rtl.css +1 -0
  568. package/build-style/embed/style.css +1 -0
  569. package/build-style/gallery/editor-rtl.css +89 -21
  570. package/build-style/gallery/editor.css +89 -21
  571. package/build-style/gallery/style-rtl.css +202 -39
  572. package/build-style/gallery/style.css +202 -39
  573. package/build-style/group/theme-rtl.css +1 -3
  574. package/build-style/group/theme.css +1 -3
  575. package/build-style/heading/style-rtl.css +8 -0
  576. package/build-style/heading/style.css +8 -0
  577. package/build-style/html/editor-rtl.css +12 -11
  578. package/build-style/html/editor.css +12 -11
  579. package/build-style/list/style-rtl.css +4 -0
  580. package/build-style/list/style.css +4 -0
  581. package/build-style/navigation/editor-rtl.css +12 -7
  582. package/build-style/navigation/editor.css +12 -7
  583. package/build-style/navigation/style-rtl.css +140 -134
  584. package/build-style/navigation/style.css +140 -134
  585. package/build-style/navigation-link/editor-rtl.css +22 -13
  586. package/build-style/navigation-link/editor.css +22 -13
  587. package/build-style/{post-content → navigation-submenu}/editor-rtl.css +29 -8
  588. package/build-style/{post-content → navigation-submenu}/editor.css +29 -8
  589. package/build-style/{heading/editor.css → navigation-submenu/style-rtl.css} +13 -7
  590. package/build-style/{heading/editor-rtl.css → navigation-submenu/style.css} +13 -7
  591. package/build-style/page-list/editor-rtl.css +8 -0
  592. package/build-style/page-list/editor.css +8 -0
  593. package/build-style/page-list/style-rtl.css +2 -8
  594. package/build-style/page-list/style.css +2 -8
  595. package/build-style/paragraph/style-rtl.css +5 -1
  596. package/build-style/paragraph/style.css +5 -1
  597. package/build-style/post-featured-image/editor-rtl.css +4 -8
  598. package/build-style/post-featured-image/editor.css +4 -8
  599. package/build-style/post-featured-image/style-rtl.css +1 -0
  600. package/build-style/post-featured-image/style.css +1 -0
  601. package/build-style/post-template/style-rtl.css +2 -0
  602. package/build-style/post-template/style.css +2 -0
  603. package/build-style/pullquote/style-rtl.css +1 -0
  604. package/build-style/pullquote/style.css +1 -0
  605. package/build-style/query-pagination/editor-rtl.css +2 -5
  606. package/build-style/query-pagination/editor.css +2 -5
  607. package/build-style/query-pagination/style-rtl.css +17 -6
  608. package/build-style/query-pagination/style.css +17 -6
  609. package/build-style/quote/style-rtl.css +3 -0
  610. package/build-style/quote/style.css +3 -0
  611. package/build-style/reset-rtl.css +2 -1
  612. package/build-style/reset.css +2 -1
  613. package/build-style/social-links/style-rtl.css +0 -5
  614. package/build-style/social-links/style.css +0 -5
  615. package/build-style/style-rtl.css +415 -307
  616. package/build-style/style.css +415 -307
  617. package/build-style/theme-rtl.css +1 -11
  618. package/build-style/theme.css +1 -11
  619. package/package.json +30 -31
  620. package/src/audio/edit.js +6 -3
  621. package/src/audio/edit.native.js +9 -3
  622. package/src/button/block.json +4 -1
  623. package/src/button/edit.js +107 -115
  624. package/src/button/edit.native.js +5 -2
  625. package/src/button/style.scss +1 -1
  626. package/src/buttons/block.json +2 -1
  627. package/src/buttons/edit.js +1 -1
  628. package/src/column/block.json +4 -1
  629. package/src/column/save.js +11 -1
  630. package/src/columns/block.json +8 -1
  631. package/src/columns/edit.native.js +8 -3
  632. package/src/columns/editor.scss +2 -2
  633. package/src/columns/index.js +1 -0
  634. package/src/columns/style.scss +4 -4
  635. package/src/common.scss +3 -9
  636. package/src/cover/block.json +11 -1
  637. package/src/cover/deprecated.js +0 -27
  638. package/src/cover/edit.js +82 -32
  639. package/src/cover/save.js +2 -1
  640. package/src/cover/shared.js +1 -0
  641. package/src/cover/transforms.js +4 -2
  642. package/src/editor.scss +4 -20
  643. package/src/embed/edit.js +1 -11
  644. package/src/embed/edit.native.js +120 -32
  645. package/src/embed/embed-bottom-sheet.native.js +26 -20
  646. package/src/embed/embed-controls.js +10 -1
  647. package/src/embed/embed-no-preview.native.js +53 -14
  648. package/src/embed/embed-placeholder.native.js +58 -9
  649. package/src/embed/embed-preview.native.js +58 -41
  650. package/src/embed/style.scss +1 -0
  651. package/src/embed/styles.native.scss +18 -8
  652. package/src/embed/variations.js +0 -8
  653. package/src/embed/wp-embed-preview.js +41 -62
  654. package/src/embed/wp-embed-preview.native.js +80 -0
  655. package/src/file/block.json +6 -0
  656. package/src/file/deprecated.js +123 -0
  657. package/src/file/edit.js +6 -0
  658. package/src/file/index.js +2 -0
  659. package/src/file/inspector.js +12 -10
  660. package/src/file/save.js +3 -0
  661. package/src/file/test/__snapshots__/edit.native.js.snap +4 -0
  662. package/src/file/transforms.js +3 -1
  663. package/src/gallery/block.json +18 -0
  664. package/src/gallery/constants.js +2 -2
  665. package/src/gallery/deprecated.js +15 -7
  666. package/src/gallery/deprecated.scss +132 -0
  667. package/src/gallery/edit-wrapper.js +47 -0
  668. package/src/gallery/edit.js +317 -276
  669. package/src/gallery/editor.scss +106 -22
  670. package/src/gallery/gallery-styles.native.scss +4 -2
  671. package/src/gallery/gallery.js +82 -71
  672. package/src/gallery/gallery.native.js +49 -85
  673. package/src/gallery/index.js +12 -6
  674. package/src/gallery/save.js +20 -60
  675. package/src/gallery/shared.js +9 -2
  676. package/src/gallery/style.scss +113 -75
  677. package/src/gallery/transforms.js +212 -11
  678. package/src/gallery/use-get-media.js +59 -0
  679. package/src/gallery/use-get-new-images.js +68 -0
  680. package/src/gallery/use-image-sizes.js +66 -0
  681. package/src/gallery/use-short-code-transform.js +52 -0
  682. package/src/gallery/utils.js +46 -0
  683. package/src/gallery/v1/constants.js +3 -0
  684. package/src/gallery/v1/edit.js +509 -0
  685. package/src/gallery/{gallery-button.native.js → v1/gallery-button.native.js} +0 -0
  686. package/src/gallery/{gallery-image-style.native.scss → v1/gallery-image-style.native.scss} +0 -0
  687. package/src/gallery/{gallery-image.js → v1/gallery-image.js} +0 -0
  688. package/src/gallery/{gallery-image.native.js → v1/gallery-image.native.js} +0 -0
  689. package/src/gallery/v1/gallery-styles.native.scss +8 -0
  690. package/src/gallery/v1/gallery.js +119 -0
  691. package/src/gallery/v1/gallery.native.js +162 -0
  692. package/src/gallery/v1/save.js +81 -0
  693. package/src/gallery/v1/shared.js +19 -0
  694. package/src/gallery/{tiles-styles.native.scss → v1/tiles-styles.native.scss} +0 -0
  695. package/src/gallery/{tiles.native.js → v1/tiles.native.js} +2 -1
  696. package/src/gallery/v1/update-gallery-modal.js +97 -0
  697. package/src/group/block.json +4 -1
  698. package/src/group/edit.js +31 -7
  699. package/src/group/index.js +2 -0
  700. package/src/group/theme.scss +1 -3
  701. package/src/group/variations.js +18 -0
  702. package/src/heading/heading-level-dropdown.js +26 -58
  703. package/src/heading/style.scss +3 -0
  704. package/src/home-link/edit.js +2 -2
  705. package/src/home-link/index.php +2 -2
  706. package/src/html/editor.scss +16 -10
  707. package/src/image/block.json +1 -0
  708. package/src/image/edit.js +9 -7
  709. package/src/image/edit.native.js +75 -35
  710. package/src/image/image.js +10 -14
  711. package/src/image/styles.native.scss +5 -0
  712. package/src/image/transforms.js +32 -9
  713. package/src/image/utils.js +17 -1
  714. package/src/index.js +2 -0
  715. package/src/latest-comments/edit.js +4 -0
  716. package/src/latest-comments/index.php +2 -1
  717. package/src/latest-posts/edit.native.js +10 -8
  718. package/src/list/style.scss +8 -3
  719. package/src/media-text/edit.js +1 -1
  720. package/src/media-text/index.js +1 -0
  721. package/src/navigation/block-navigation-list.js +16 -7
  722. package/src/navigation/block.json +7 -1
  723. package/src/navigation/edit.js +60 -17
  724. package/src/navigation/editor.scss +38 -19
  725. package/src/navigation/index.php +12 -4
  726. package/src/navigation/menu-items-to-blocks.js +8 -7
  727. package/src/navigation/placeholder-preview.js +3 -3
  728. package/src/navigation/placeholder.js +1 -1
  729. package/src/navigation/style.scss +191 -145
  730. package/src/navigation/test/menu-items-to-blocks.js +6 -6
  731. package/src/navigation/use-block-navigator.js +1 -0
  732. package/src/navigation/variations.js +2 -3
  733. package/src/navigation/view.js +74 -4
  734. package/src/navigation-link/block.json +2 -1
  735. package/src/navigation-link/edit.js +63 -90
  736. package/src/navigation-link/editor.scss +30 -15
  737. package/src/navigation-link/index.js +2 -0
  738. package/src/navigation-link/index.php +8 -8
  739. package/src/navigation-link/transforms.js +93 -0
  740. package/src/navigation-submenu/block.json +65 -0
  741. package/src/navigation-submenu/edit.js +662 -0
  742. package/src/navigation-submenu/editor.scss +42 -0
  743. package/src/navigation-submenu/icons.js +16 -0
  744. package/src/navigation-submenu/index.js +29 -0
  745. package/src/navigation-submenu/index.php +299 -0
  746. package/src/navigation-submenu/save.js +8 -0
  747. package/src/navigation-submenu/style.scss +20 -0
  748. package/src/navigation-submenu/transforms.js +58 -0
  749. package/src/navigation-submenu/view.js +62 -0
  750. package/src/page-list/block.json +11 -1
  751. package/src/page-list/convert-to-links-modal.js +20 -0
  752. package/src/page-list/edit.js +18 -4
  753. package/src/page-list/editor.scss +14 -0
  754. package/src/page-list/index.php +48 -12
  755. package/src/page-list/style.scss +2 -14
  756. package/src/page-list/test/convert-to-links-modal.js +6 -6
  757. package/src/paragraph/style.scss +10 -1
  758. package/src/post-author/block.json +2 -1
  759. package/src/post-comment/edit.js +14 -7
  760. package/src/post-comment-author/edit.js +13 -10
  761. package/src/post-comment-content/edit.js +17 -9
  762. package/src/post-comment-content/index.php +6 -3
  763. package/src/post-content/edit.js +1 -3
  764. package/src/post-date/block.json +2 -1
  765. package/src/post-date/edit.js +36 -22
  766. package/src/post-excerpt/edit.js +1 -0
  767. package/src/post-featured-image/block.json +5 -0
  768. package/src/post-featured-image/dimension-controls.js +43 -35
  769. package/src/post-featured-image/editor.scss +4 -9
  770. package/src/post-featured-image/style.scss +1 -0
  771. package/src/post-navigation-link/block.json +9 -1
  772. package/src/post-navigation-link/edit.js +29 -2
  773. package/src/post-navigation-link/index.php +28 -3
  774. package/src/post-template/block.json +4 -1
  775. package/src/post-template/index.js +2 -2
  776. package/src/post-template/index.php +11 -0
  777. package/src/post-template/style.scss +2 -0
  778. package/src/post-terms/block.json +2 -1
  779. package/src/post-terms/edit.js +4 -5
  780. package/src/post-title/block.json +4 -1
  781. package/src/post-title/edit.js +4 -6
  782. package/src/post-title/index.php +1 -1
  783. package/src/pullquote/style.scss +1 -0
  784. package/src/query/edit/index.js +3 -3
  785. package/src/query/variations.js +4 -0
  786. package/src/query-pagination/block.json +16 -0
  787. package/src/query-pagination/deprecated.js +19 -0
  788. package/src/query-pagination/edit.js +58 -3
  789. package/src/query-pagination/editor.scss +3 -6
  790. package/src/query-pagination/index.js +2 -0
  791. package/src/query-pagination/index.php +24 -1
  792. package/src/query-pagination/query-pagination-arrow-controls.js +44 -0
  793. package/src/query-pagination/save.js +2 -6
  794. package/src/query-pagination/style.scss +22 -5
  795. package/src/query-pagination-next/block.json +1 -1
  796. package/src/query-pagination-next/edit.js +30 -8
  797. package/src/query-pagination-next/index.php +5 -1
  798. package/src/query-pagination-previous/block.json +1 -1
  799. package/src/query-pagination-previous/edit.js +30 -8
  800. package/src/query-pagination-previous/index.php +5 -1
  801. package/src/quote/style.scss +2 -0
  802. package/src/reset.scss +2 -1
  803. package/src/search/index.php +12 -15
  804. package/src/search/test/__snapshots__/edit.native.js.snap +7 -0
  805. package/src/site-logo/block.json +7 -2
  806. package/src/site-logo/edit.js +98 -30
  807. package/src/site-logo/index.php +31 -2
  808. package/src/site-tagline/block.json +1 -0
  809. package/src/site-title/block.json +9 -2
  810. package/src/site-title/edit/index.js +36 -9
  811. package/src/site-title/index.php +12 -2
  812. package/src/social-links/block.json +22 -1
  813. package/src/social-links/deprecated.js +99 -0
  814. package/src/social-links/edit.js +13 -24
  815. package/src/social-links/save.js +1 -7
  816. package/src/social-links/style.scss +0 -8
  817. package/src/style.scss +1 -5
  818. package/src/table/block.json +1 -1
  819. package/src/template-part/edit/advanced-controls.js +3 -3
  820. package/src/template-part/edit/index.js +0 -3
  821. package/src/template-part/index.php +1 -1
  822. package/src/theme.scss +0 -10
  823. package/src/video/edit-common-settings.js +2 -2
  824. package/src/video/edit.js +15 -5
  825. package/src/video/tracks-editor.js +2 -3
  826. package/build/embed/embed-controls.native.js +0 -32
  827. package/build/embed/embed-controls.native.js.map +0 -1
  828. package/build/embed/variations.native.js +0 -10
  829. package/build/embed/variations.native.js.map +0 -1
  830. package/build/gallery/gallery-button.native.js.map +0 -1
  831. package/build/gallery/gallery-image.js.map +0 -1
  832. package/build/gallery/gallery-image.native.js.map +0 -1
  833. package/build/gallery/tiles.native.js.map +0 -1
  834. package/build/image/image-editing/aspect-ratio-dropdown.js +0 -126
  835. package/build/image/image-editing/aspect-ratio-dropdown.js.map +0 -1
  836. package/build/image/image-editing/constants.js +0 -16
  837. package/build/image/image-editing/constants.js.map +0 -1
  838. package/build/image/image-editing/context.js +0 -59
  839. package/build/image/image-editing/context.js.map +0 -1
  840. package/build/image/image-editing/cropper.js +0 -83
  841. package/build/image/image-editing/cropper.js.map +0 -1
  842. package/build/image/image-editing/form-controls.js +0 -36
  843. package/build/image/image-editing/form-controls.js.map +0 -1
  844. package/build/image/image-editing/index.js +0 -60
  845. package/build/image/image-editing/index.js.map +0 -1
  846. package/build/image/image-editing/rotation-button.js +0 -37
  847. package/build/image/image-editing/rotation-button.js.map +0 -1
  848. package/build/image/image-editing/use-save-image.js +0 -84
  849. package/build/image/image-editing/use-save-image.js.map +0 -1
  850. package/build/image/image-editing/use-transform-image.js +0 -135
  851. package/build/image/image-editing/use-transform-image.js.map +0 -1
  852. package/build/image/image-editing/zoom-dropdown.js +0 -55
  853. package/build/image/image-editing/zoom-dropdown.js.map +0 -1
  854. package/build-module/embed/embed-controls.native.js +0 -21
  855. package/build-module/embed/embed-controls.native.js.map +0 -1
  856. package/build-module/embed/variations.native.js +0 -3
  857. package/build-module/embed/variations.native.js.map +0 -1
  858. package/build-module/gallery/gallery-button.native.js.map +0 -1
  859. package/build-module/gallery/gallery-image.js.map +0 -1
  860. package/build-module/gallery/gallery-image.native.js.map +0 -1
  861. package/build-module/gallery/tiles.native.js.map +0 -1
  862. package/build-module/image/image-editing/aspect-ratio-dropdown.js +0 -115
  863. package/build-module/image/image-editing/aspect-ratio-dropdown.js.map +0 -1
  864. package/build-module/image/image-editing/constants.js +0 -7
  865. package/build-module/image/image-editing/constants.js.map +0 -1
  866. package/build-module/image/image-editing/context.js +0 -44
  867. package/build-module/image/image-editing/context.js.map +0 -1
  868. package/build-module/image/image-editing/cropper.js +0 -69
  869. package/build-module/image/image-editing/cropper.js.map +0 -1
  870. package/build-module/image/image-editing/form-controls.js +0 -26
  871. package/build-module/image/image-editing/form-controls.js.map +0 -1
  872. package/build-module/image/image-editing/index.js +0 -37
  873. package/build-module/image/image-editing/index.js.map +0 -1
  874. package/build-module/image/image-editing/rotation-button.js +0 -26
  875. package/build-module/image/image-editing/rotation-button.js.map +0 -1
  876. package/build-module/image/image-editing/use-save-image.js +0 -70
  877. package/build-module/image/image-editing/use-save-image.js.map +0 -1
  878. package/build-module/image/image-editing/use-transform-image.js +0 -127
  879. package/build-module/image/image-editing/use-transform-image.js.map +0 -1
  880. package/build-module/image/image-editing/zoom-dropdown.js +0 -43
  881. package/build-module/image/image-editing/zoom-dropdown.js.map +0 -1
  882. package/src/embed/embed-controls.native.js +0 -23
  883. package/src/embed/variations.native.js +0 -3
  884. package/src/heading/editor.scss +0 -20
  885. package/src/image/image-editing/aspect-ratio-dropdown.js +0 -129
  886. package/src/image/image-editing/constants.js +0 -6
  887. package/src/image/image-editing/context.js +0 -56
  888. package/src/image/image-editing/cropper.js +0 -74
  889. package/src/image/image-editing/form-controls.js +0 -22
  890. package/src/image/image-editing/index.js +0 -52
  891. package/src/image/image-editing/rotation-button.js +0 -24
  892. package/src/image/image-editing/use-save-image.js +0 -97
  893. package/src/image/image-editing/use-transform-image.js +0 -162
  894. package/src/image/image-editing/zoom-dropdown.js +0 -40
  895. package/src/post-content/editor.scss +0 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["every","filter","find","forEach","get","isEmpty","map","reduce","some","toString","compose","PanelBody","SelectControl","ToggleControl","withNotices","RangeControl","MediaPlaceholder","InspectorControls","useBlockProps","store","blockEditorStore","Platform","useEffect","useState","useMemo","__","getBlobByURL","isBlobURL","revokeBlobURL","useDispatch","useSelect","withViewportMatch","View","coreStore","sharedIcon","defaultColumnsNumber","pickRelevantMediaFiles","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","select","web","native","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","attributes","clientId","isSelected","noticeUI","noticeOperations","onFocus","columns","imageCrop","images","linkTo","sizeSlug","selectedImage","setSelectedImage","attachmentCaptions","setAttachmentCaptions","__unstableMarkNextChangeAsNotPersistent","imageSizes","mediaUpload","getMedia","wasBlockJustInserted","settings","getSettings","resizedImages","ids","currentResizedImages","id","image","sizes","currentSizes","size","defaultUrl","slug","mediaDetailsUrl","parseInt","onFocusGalleryCaption","setAttributes","newAttrs","Error","onSelectImage","index","onDeselectImage","onMove","oldIndex","newIndex","newImages","splice","onMoveForward","length","onMoveBackward","onRemoveImage","img","i","Math","min","selectCaption","newImage","newImageId","currentImage","currentImageCaption","caption","attachment","onSelectImages","onUploadError","message","removeAllNotices","createErrorNotice","setLinkTo","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","setImageAttributes","newAttributes","slice","getImagesSizeOptions","name","updateImagesSize","newSizeSlug","updatedImages","url","OS","filesList","onFileChange","allowedTypes","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","mediaPlaceholder","title","instructions","undefined","blockProps","imageSizeOptions","shouldShowSizeOptions","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tevery,\n\tfilter,\n\tfind,\n\tforEach,\n\tget,\n\tisEmpty,\n\tmap,\n\treduce,\n\tsome,\n\ttoString,\n} from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n} from '@wordpress/components';\nimport {\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useState, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{ value: LINK_DESTINATION_NONE, label: __( 'None' ) },\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.select( {\n\tweb: __(\n\t\t'Drag images, upload new ones or select files from your library.'\n\t),\n\tnative: __( 'ADD MEDIA' ),\n} );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.select( {\n\tweb: {},\n\tnative: { type: 'stepper' },\n} );\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tclientId,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tnoticeOperations,\n\t\tonFocus,\n\t} = props;\n\tconst {\n\t\tcolumns = defaultColumnsNumber( attributes ),\n\t\timageCrop,\n\t\timages,\n\t\tlinkTo,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ selectedImage, setSelectedImage ] = useState();\n\tconst [ attachmentCaptions, setAttachmentCaptions ] = useState();\n\tconst { __unstableMarkNextChangeAsNotPersistent } = useDispatch(\n\t\tblockEditorStore\n\t);\n\n\tconst {\n\t\timageSizes,\n\t\tmediaUpload,\n\t\tgetMedia,\n\t\twasBlockJustInserted,\n\t} = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\n\t\treturn {\n\t\t\timageSizes: settings.imageSizes,\n\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\tgetMedia: select( coreStore ).getMedia,\n\t\t\twasBlockJustInserted: select(\n\t\t\t\tblockEditorStore\n\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t};\n\t} );\n\n\tconst resizedImages = useMemo( () => {\n\t\tif ( isSelected ) {\n\t\t\treturn reduce(\n\t\t\t\tattributes.ids,\n\t\t\t\t( currentResizedImages, id ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn currentResizedImages;\n\t\t\t\t\t}\n\t\t\t\t\tconst image = getMedia( id );\n\t\t\t\t\tconst sizes = reduce(\n\t\t\t\t\t\timageSizes,\n\t\t\t\t\t\t( currentSizes, size ) => {\n\t\t\t\t\t\t\tconst defaultUrl = get( image, [\n\t\t\t\t\t\t\t\t'sizes',\n\t\t\t\t\t\t\t\tsize.slug,\n\t\t\t\t\t\t\t\t'url',\n\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\tconst mediaDetailsUrl = get( image, [\n\t\t\t\t\t\t\t\t'media_details',\n\t\t\t\t\t\t\t\t'sizes',\n\t\t\t\t\t\t\t\tsize.slug,\n\t\t\t\t\t\t\t\t'source_url',\n\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...currentSizes,\n\t\t\t\t\t\t\t\t[ size.slug ]: defaultUrl || mediaDetailsUrl,\n\t\t\t\t\t\t\t};\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\treturn {\n\t\t\t\t\t\t...currentResizedImages,\n\t\t\t\t\t\t[ parseInt( id, 10 ) ]: sizes,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t}\n\t\treturn {};\n\t}, [ isSelected, attributes.ids, imageSizes ] );\n\n\tfunction onFocusGalleryCaption() {\n\t\tsetSelectedImage();\n\t}\n\n\tfunction setAttributes( newAttrs ) {\n\t\tif ( newAttrs.ids ) {\n\t\t\tthrow new Error(\n\t\t\t\t'The \"ids\" attribute should not be changed directly. It is managed automatically when \"images\" attribute changes'\n\t\t\t);\n\t\t}\n\n\t\tif ( newAttrs.images ) {\n\t\t\tnewAttrs = {\n\t\t\t\t...newAttrs,\n\t\t\t\t// Unlike images[ n ].id which is a string, always ensure the\n\t\t\t\t// ids array contains numbers as per its attribute type.\n\t\t\t\tids: map( newAttrs.images, ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t};\n\t\t}\n\n\t\tprops.setAttributes( newAttrs );\n\t}\n\n\tfunction onSelectImage( index ) {\n\t\treturn () => {\n\t\t\tsetSelectedImage( index );\n\t\t};\n\t}\n\n\tfunction onDeselectImage() {\n\t\treturn () => {\n\t\t\tsetSelectedImage();\n\t\t};\n\t}\n\n\tfunction onMove( oldIndex, newIndex ) {\n\t\tconst newImages = [ ...images ];\n\t\tnewImages.splice( newIndex, 1, images[ oldIndex ] );\n\t\tnewImages.splice( oldIndex, 1, images[ newIndex ] );\n\t\tsetSelectedImage( newIndex );\n\t\tsetAttributes( { images: newImages } );\n\t}\n\n\tfunction onMoveForward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === images.length - 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex + 1 );\n\t\t};\n\t}\n\n\tfunction onMoveBackward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex - 1 );\n\t\t};\n\t}\n\n\tfunction onRemoveImage( index ) {\n\t\treturn () => {\n\t\t\tconst newImages = filter( images, ( img, i ) => index !== i );\n\t\t\tsetSelectedImage();\n\t\t\tsetAttributes( {\n\t\t\t\timages: newImages,\n\t\t\t\tcolumns: attributes.columns\n\t\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t\t: attributes.columns,\n\t\t\t} );\n\t\t};\n\t}\n\n\tfunction selectCaption( newImage ) {\n\t\t// The image id in both the images and attachmentCaptions arrays is a\n\t\t// string, so ensure comparison works correctly by converting the\n\t\t// newImage.id to a string.\n\t\tconst newImageId = toString( newImage.id );\n\t\tconst currentImage = find( images, { id: newImageId } );\n\t\tconst currentImageCaption = currentImage\n\t\t\t? currentImage.caption\n\t\t\t: newImage.caption;\n\n\t\tif ( ! attachmentCaptions ) {\n\t\t\treturn currentImageCaption;\n\t\t}\n\n\t\tconst attachment = find( attachmentCaptions, {\n\t\t\tid: newImageId,\n\t\t} );\n\n\t\t// if the attachment caption is updated\n\t\tif ( attachment && attachment.caption !== newImage.caption ) {\n\t\t\treturn newImage.caption;\n\t\t}\n\n\t\treturn currentImageCaption;\n\t}\n\n\tfunction onSelectImages( newImages ) {\n\t\tsetAttachmentCaptions(\n\t\t\tnewImages.map( ( newImage ) => ( {\n\t\t\t\t// Store the attachmentCaption id as a string for consistency\n\t\t\t\t// with the type of the id in the images attribute.\n\t\t\t\tid: toString( newImage.id ),\n\t\t\t\tcaption: newImage.caption,\n\t\t\t} ) )\n\t\t);\n\t\tsetAttributes( {\n\t\t\timages: newImages.map( ( newImage ) => ( {\n\t\t\t\t...pickRelevantMediaFiles( newImage, sizeSlug ),\n\t\t\t\tcaption: selectCaption( newImage, images, attachmentCaptions ),\n\t\t\t\t// The id value is stored in a data attribute, so when the\n\t\t\t\t// block is parsed it's converted to a string. Converting\n\t\t\t\t// to a string here ensures it's type is consistent.\n\t\t\t\tid: toString( newImage.id ),\n\t\t\t} ) ),\n\t\t\tcolumns: attributes.columns\n\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t: attributes.columns,\n\t\t} );\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction setImageAttributes( index, newAttributes ) {\n\t\tif ( ! images[ index ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\timages: [\n\t\t\t\t...images.slice( 0, index ),\n\t\t\t\t{\n\t\t\t\t\t...images[ index ],\n\t\t\t\t\t...newAttributes,\n\t\t\t\t},\n\t\t\t\t...images.slice( index + 1 ),\n\t\t\t],\n\t\t} );\n\t}\n\n\tfunction getImagesSizeOptions() {\n\t\treturn map(\n\t\t\tfilter( imageSizes, ( { slug } ) =>\n\t\t\t\tsome( resizedImages, ( sizes ) => sizes[ slug ] )\n\t\t\t),\n\t\t\t( { name, slug } ) => ( { value: slug, label: name } )\n\t\t);\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tconst updatedImages = map( images, ( image ) => {\n\t\t\tif ( ! image.id ) {\n\t\t\t\treturn image;\n\t\t\t}\n\t\t\tconst url = get( resizedImages, [\n\t\t\t\tparseInt( image.id, 10 ),\n\t\t\t\tnewSizeSlug,\n\t\t\t] );\n\t\t\treturn {\n\t\t\t\t...image,\n\t\t\t\t...( url && { url } ),\n\t\t\t};\n\t\t} );\n\n\t\tsetAttributes( { images: updatedImages, sizeSlug: newSizeSlug } );\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tPlatform.OS === 'web' &&\n\t\t\timages &&\n\t\t\timages.length > 0 &&\n\t\t\tevery( images, ( { url } ) => isBlobURL( url ) )\n\t\t) {\n\t\t\tconst filesList = map( images, ( { url } ) => getBlobByURL( url ) );\n\t\t\tforEach( images, ( { url } ) => revokeBlobURL( url ) );\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList,\n\t\t\t\tonFileChange: onSelectImages,\n\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Deselect images when deselecting the block\n\t\tif ( ! isSelected ) {\n\t\t\tsetSelectedImage();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing\n\t\t// image_default_link_type in options.php\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={ hasImages && ! isSelected }\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ onSelectImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t\tonFocus={ onFocus }\n\t\t\tautoOpenMediaUpload={\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted\n\t\t\t}\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps();\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst imageSizeOptions = getImagesSizeOptions();\n\tconst shouldShowSizeOptions = hasImages && ! isEmpty( imageSizeOptions );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Gallery settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ shouldShowSizeOptions && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tselectedImage={ selectedImage }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tonMoveBackward={ onMoveBackward }\n\t\t\t\tonMoveForward={ onMoveForward }\n\t\t\t\tonRemoveImage={ onRemoveImage }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonDeselectImage={ onDeselectImage }\n\t\t\t\tonSetImageAttributes={ setImageAttributes }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\t// This prop is used by gallery.native.js.\n\t\t\t\tonFocusGalleryCaption={ onFocusGalleryCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["classnames","concat","find","compose","BaseControl","PanelBody","SelectControl","ToggleControl","withNotices","RangeControl","Spinner","store","blockEditorStore","MediaPlaceholder","InspectorControls","useBlockProps","Platform","useEffect","useMemo","__","_x","sprintf","useSelect","useDispatch","withViewportMatch","View","createBlock","createBlobURL","noticesStore","sharedIcon","defaultColumnsNumber","pickRelevantMediaFiles","getHrefAndDestination","getUpdatedLinkTargetSettings","getImageSizeAttributes","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","useImageSizes","useShortCodeTransform","useGetNewImages","useGetMedia","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","noticeOperations","isSelected","noticeUI","insertBlocksAfter","columns","imageCrop","linkTarget","linkTo","shortCodeTransforms","sizeSlug","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","createSuccessNotice","getBlock","getSettings","preferredStyle","select","settings","preferredStyleVariations","__experimentalPreferredStyleVariations","innerBlockImages","innerBlocks","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","shortCodeImages","updateImages","imageSizeOptions","existingBlock","image","newClassName","isValidFileType","file","some","mediaType","indexOf","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","every","removeAllNotices","createErrorNotice","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","caption","alt","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleOpenInNewTab","openInNewTab","newLinkTarget","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","defaultProps","link","hasImages","length","hasImageIds","imagesUploading","mediaPlaceholder","title","instructions","blockProps","hasLinkTo","Math","min","isWeb","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { concat, find } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useShortCodeTransform from './use-short-code-transform';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'ADD MEDIA' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tnoticeOperations,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tinsertBlocksAfter,\n\t} = props;\n\n\tconst {\n\t\tcolumns,\n\t\timageCrop,\n\t\tlinkTarget,\n\t\tlinkTo,\n\t\tshortCodeTransforms,\n\t\tsizeSlug,\n\t} = attributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst { getBlock, getSettings, preferredStyle } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst preferredStyleVariations =\n\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\treturn {\n\t\t\tgetBlock: select( blockEditorStore ).getBlock,\n\t\t\tgetSettings: select( blockEditorStore ).getSettings,\n\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ 'core/image' ],\n\t\t};\n\t}, [] );\n\n\tconst innerBlockImages = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlock( clientId )?.innerBlocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( false, newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t}, [ newImages ] );\n\n\tconst shortCodeImages = useShortCodeTransform( shortCodeTransforms );\n\n\tuseEffect( () => {\n\t\tif ( ! shortCodeTransforms || ! shortCodeImages ) {\n\t\t\treturn;\n\t\t}\n\t\tupdateImages( shortCodeImages );\n\t\tsetAttributes( { shortCodeTransforms: undefined } );\n\t}, [ shortCodeTransforms, shortCodeImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} existingBlock Existing Image block that still exists after gallery update.\n\t * @param {Object} image Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( existingBlock, image ) {\n\t\tif ( existingBlock ) {\n\t\t\treturn existingBlock.attributes;\n\t\t}\n\n\t\tlet newClassName;\n\t\tif ( image.className && image.className !== '' ) {\n\t\t\tnewClassName = image.className;\n\t\t} else {\n\t\t\tnewClassName = preferredStyle\n\t\t\t\t? `is-style-${ preferredStyle }`\n\t\t\t\t: undefined;\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination( image, linkTo ),\n\t\t\t...getUpdatedLinkTargetSettings( linkTarget, attributes ),\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => file.type?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tnoticeOperations.removeAllNotices();\n\t\t\tnoticeOperations.createErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\tconcat( existingImageBlocks, newBlocks ).sort(\n\t\t\t\t( a, b ) =>\n\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t)\n\t\t);\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? find( imageData, { id: block.attributes.id } )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? find( imageData, { id: block.attributes.id } )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some(\n\t\t( img ) => ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t);\n\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\thandleUpload={ false }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading\n\t\t\t}\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Gallery settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image size' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
@@ -9,73 +9,73 @@ import classnames from 'classnames';
9
9
  * WordPress dependencies
10
10
  */
11
11
 
12
- import { RichText } from '@wordpress/block-editor';
12
+ import { RichText, __experimentalUseInnerBlocksProps as useInnerBlocksProps } from '@wordpress/block-editor';
13
13
  import { VisuallyHidden } from '@wordpress/components';
14
- import { __, sprintf } from '@wordpress/i18n';
14
+ import { useState, useEffect } from '@wordpress/element';
15
+ import { __ } from '@wordpress/i18n';
15
16
  import { createBlock } from '@wordpress/blocks';
16
- /**
17
- * Internal dependencies
18
- */
19
-
20
- import GalleryImage from './gallery-image';
21
- import { defaultColumnsNumber } from './shared';
17
+ import { View } from '@wordpress/primitives';
18
+ const allowedBlocks = ['core/image'];
22
19
  export const Gallery = props => {
23
20
  const {
24
21
  attributes,
25
22
  isSelected,
26
23
  setAttributes,
27
- selectedImage,
28
24
  mediaPlaceholder,
29
- onMoveBackward,
30
- onMoveForward,
31
- onRemoveImage,
32
- onSelectImage,
33
- onDeselectImage,
34
- onSetImageAttributes,
35
25
  insertBlocksAfter,
36
26
  blockProps
37
27
  } = props;
38
28
  const {
39
29
  align,
40
- columns = defaultColumnsNumber(attributes),
30
+ columns,
41
31
  caption,
42
- imageCrop,
43
- images
32
+ imageCrop
44
33
  } = attributes;
45
- return createElement("figure", _extends({}, blockProps, {
46
- className: classnames(blockProps.className, {
34
+ const {
35
+ children,
36
+ ...innerBlocksProps
37
+ } = useInnerBlocksProps(blockProps, {
38
+ allowedBlocks,
39
+ orientation: 'horizontal',
40
+ renderAppender: false,
41
+ __experimentalLayout: {
42
+ type: 'default',
43
+ alignments: []
44
+ }
45
+ });
46
+ const [captionFocused, setCaptionFocused] = useState(false);
47
+
48
+ function onFocusCaption() {
49
+ if (!captionFocused) {
50
+ setCaptionFocused(true);
51
+ }
52
+ }
53
+
54
+ function removeCaptionFocus() {
55
+ if (captionFocused) {
56
+ setCaptionFocused(false);
57
+ }
58
+ }
59
+
60
+ useEffect(() => {
61
+ if (!isSelected) {
62
+ setCaptionFocused(false);
63
+ }
64
+ }, [isSelected]);
65
+ return createElement("figure", _extends({}, innerBlocksProps, {
66
+ className: classnames(blockProps.className, 'blocks-gallery-grid', {
47
67
  [`align${align}`]: align,
48
- [`columns-${columns}`]: columns,
68
+ [`columns-${columns}`]: columns !== undefined,
69
+ [`columns-default`]: columns === undefined,
49
70
  'is-cropped': imageCrop
50
71
  })
51
- }), createElement("ul", {
52
- className: "blocks-gallery-grid"
53
- }, images.map((img, index) => {
54
- const ariaLabel = sprintf(
55
- /* translators: 1: the order number of the image. 2: the total number of images. */
56
- __('image %1$d of %2$d in gallery'), index + 1, images.length);
57
- return createElement("li", {
58
- className: "blocks-gallery-item",
59
- key: img.id ? `${img.id}-${index}` : img.url
60
- }, createElement(GalleryImage, {
61
- url: img.url,
62
- alt: img.alt,
63
- id: img.id,
64
- isFirstItem: index === 0,
65
- isLastItem: index + 1 === images.length,
66
- isSelected: isSelected && selectedImage === index,
67
- onMoveBackward: onMoveBackward(index),
68
- onMoveForward: onMoveForward(index),
69
- onRemove: onRemoveImage(index),
70
- onSelect: onSelectImage(index),
71
- onDeselect: onDeselectImage(index),
72
- setAttributes: attrs => onSetImageAttributes(index, attrs),
73
- caption: img.caption,
74
- "aria-label": ariaLabel,
75
- sizeSlug: attributes.sizeSlug
76
- }));
77
- })), mediaPlaceholder, createElement(RichTextVisibilityHelper, {
72
+ }), children, createElement(View, {
73
+ className: "blocks-gallery-media-placeholder-wrapper",
74
+ onClick: removeCaptionFocus
75
+ }, mediaPlaceholder), createElement(RichTextVisibilityHelper, {
78
76
  isHidden: !isSelected && RichText.isEmpty(caption),
77
+ captionFocused: captionFocused,
78
+ onFocusCaption: onFocusCaption,
79
79
  tagName: "figcaption",
80
80
  className: "blocks-gallery-caption",
81
81
  "aria-label": __('Gallery caption text'),
@@ -91,11 +91,30 @@ export const Gallery = props => {
91
91
 
92
92
  function RichTextVisibilityHelper({
93
93
  isHidden,
94
+ captionFocused,
95
+ onFocusCaption,
96
+ className,
97
+ value,
98
+ placeholder,
99
+ tagName,
100
+ captionRef,
94
101
  ...richTextProps
95
102
  }) {
96
- return isHidden ? createElement(VisuallyHidden, _extends({
97
- as: RichText
98
- }, richTextProps)) : createElement(RichText, richTextProps);
103
+ if (isHidden) {
104
+ return createElement(VisuallyHidden, _extends({
105
+ as: RichText
106
+ }, richTextProps));
107
+ }
108
+
109
+ return createElement(RichText, _extends({
110
+ ref: captionRef,
111
+ value: value,
112
+ placeholder: placeholder,
113
+ className: className,
114
+ tagName: tagName,
115
+ isSelected: captionFocused,
116
+ onClick: onFocusCaption
117
+ }, richTextProps));
99
118
  }
100
119
 
101
120
  export default Gallery;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/gallery.js"],"names":["classnames","RichText","VisuallyHidden","__","sprintf","createBlock","GalleryImage","defaultColumnsNumber","Gallery","props","attributes","isSelected","setAttributes","selectedImage","mediaPlaceholder","onMoveBackward","onMoveForward","onRemoveImage","onSelectImage","onDeselectImage","onSetImageAttributes","insertBlocksAfter","blockProps","align","columns","caption","imageCrop","images","className","map","img","index","ariaLabel","length","id","url","alt","attrs","sizeSlug","isEmpty","value","RichTextVisibilityHelper","isHidden","richTextProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { RichText } from '@wordpress/block-editor';\nimport { VisuallyHidden } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport GalleryImage from './gallery-image';\nimport { defaultColumnsNumber } from './shared';\n\nexport const Gallery = ( props ) => {\n\tconst {\n\t\tattributes,\n\t\tisSelected,\n\t\tsetAttributes,\n\t\tselectedImage,\n\t\tmediaPlaceholder,\n\t\tonMoveBackward,\n\t\tonMoveForward,\n\t\tonRemoveImage,\n\t\tonSelectImage,\n\t\tonDeselectImage,\n\t\tonSetImageAttributes,\n\t\tinsertBlocksAfter,\n\t\tblockProps,\n\t} = props;\n\n\tconst {\n\t\talign,\n\t\tcolumns = defaultColumnsNumber( attributes ),\n\t\tcaption,\n\t\timageCrop,\n\t\timages,\n\t} = attributes;\n\n\treturn (\n\t\t<figure\n\t\t\t{ ...blockProps }\n\t\t\tclassName={ classnames( blockProps.className, {\n\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t[ `columns-${ columns }` ]: columns,\n\t\t\t\t'is-cropped': imageCrop,\n\t\t\t} ) }\n\t\t>\n\t\t\t<ul className=\"blocks-gallery-grid\">\n\t\t\t\t{ images.map( ( img, index ) => {\n\t\t\t\t\tconst ariaLabel = sprintf(\n\t\t\t\t\t\t/* translators: 1: the order number of the image. 2: the total number of images. */\n\t\t\t\t\t\t__( 'image %1$d of %2$d in gallery' ),\n\t\t\t\t\t\tindex + 1,\n\t\t\t\t\t\timages.length\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li\n\t\t\t\t\t\t\tclassName=\"blocks-gallery-item\"\n\t\t\t\t\t\t\tkey={ img.id ? `${ img.id }-${ index }` : img.url }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<GalleryImage\n\t\t\t\t\t\t\t\turl={ img.url }\n\t\t\t\t\t\t\t\talt={ img.alt }\n\t\t\t\t\t\t\t\tid={ img.id }\n\t\t\t\t\t\t\t\tisFirstItem={ index === 0 }\n\t\t\t\t\t\t\t\tisLastItem={ index + 1 === images.length }\n\t\t\t\t\t\t\t\tisSelected={\n\t\t\t\t\t\t\t\t\tisSelected && selectedImage === index\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonMoveBackward={ onMoveBackward( index ) }\n\t\t\t\t\t\t\t\tonMoveForward={ onMoveForward( index ) }\n\t\t\t\t\t\t\t\tonRemove={ onRemoveImage( index ) }\n\t\t\t\t\t\t\t\tonSelect={ onSelectImage( index ) }\n\t\t\t\t\t\t\t\tonDeselect={ onDeselectImage( index ) }\n\t\t\t\t\t\t\t\tsetAttributes={ ( attrs ) =>\n\t\t\t\t\t\t\t\t\tonSetImageAttributes( index, attrs )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcaption={ img.caption }\n\t\t\t\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t\t\t\t\tsizeSlug={ attributes.sizeSlug }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t\t{ mediaPlaceholder }\n\t\t\t<RichTextVisibilityHelper\n\t\t\t\tisHidden={ ! isSelected && RichText.isEmpty( caption ) }\n\t\t\t\ttagName=\"figcaption\"\n\t\t\t\tclassName=\"blocks-gallery-caption\"\n\t\t\t\taria-label={ __( 'Gallery caption text' ) }\n\t\t\t\tplaceholder={ __( 'Write gallery caption…' ) }\n\t\t\t\tvalue={ caption }\n\t\t\t\tonChange={ ( value ) => setAttributes( { caption: value } ) }\n\t\t\t\tinlineToolbar\n\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\tinsertBlocksAfter( createBlock( 'core/paragraph' ) )\n\t\t\t\t}\n\t\t\t/>\n\t\t</figure>\n\t);\n};\n\nfunction RichTextVisibilityHelper( { isHidden, ...richTextProps } ) {\n\treturn isHidden ? (\n\t\t<VisuallyHidden as={ RichText } { ...richTextProps } />\n\t) : (\n\t\t<RichText { ...richTextProps } />\n\t);\n}\n\nexport default Gallery;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/gallery.js"],"names":["classnames","RichText","__experimentalUseInnerBlocksProps","useInnerBlocksProps","VisuallyHidden","useState","useEffect","__","createBlock","View","allowedBlocks","Gallery","props","attributes","isSelected","setAttributes","mediaPlaceholder","insertBlocksAfter","blockProps","align","columns","caption","imageCrop","children","innerBlocksProps","orientation","renderAppender","__experimentalLayout","type","alignments","captionFocused","setCaptionFocused","onFocusCaption","removeCaptionFocus","className","undefined","isEmpty","value","RichTextVisibilityHelper","isHidden","placeholder","tagName","captionRef","richTextProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\t__experimentalUseInnerBlocksProps as useInnerBlocksProps,\n} from '@wordpress/block-editor';\nimport { VisuallyHidden } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport { View } from '@wordpress/primitives';\n\nconst allowedBlocks = [ 'core/image' ];\n\nexport const Gallery = ( props ) => {\n\tconst {\n\t\tattributes,\n\t\tisSelected,\n\t\tsetAttributes,\n\t\tmediaPlaceholder,\n\t\tinsertBlocksAfter,\n\t\tblockProps,\n\t} = props;\n\n\tconst { align, columns, caption, imageCrop } = attributes;\n\n\tconst { children, ...innerBlocksProps } = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t__experimentalLayout: { type: 'default', alignments: [] },\n\t} );\n\n\tconst [ captionFocused, setCaptionFocused ] = useState( false );\n\n\tfunction onFocusCaption() {\n\t\tif ( ! captionFocused ) {\n\t\t\tsetCaptionFocused( true );\n\t\t}\n\t}\n\n\tfunction removeCaptionFocus() {\n\t\tif ( captionFocused ) {\n\t\t\tsetCaptionFocused( false );\n\t\t}\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetCaptionFocused( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\treturn (\n\t\t<figure\n\t\t\t{ ...innerBlocksProps }\n\t\t\tclassName={ classnames(\n\t\t\t\tblockProps.className,\n\t\t\t\t'blocks-gallery-grid',\n\t\t\t\t{\n\t\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t\t[ `columns-${ columns }` ]: columns !== undefined,\n\t\t\t\t\t[ `columns-default` ]: columns === undefined,\n\t\t\t\t\t'is-cropped': imageCrop,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t{ children }\n\n\t\t\t<View\n\t\t\t\tclassName=\"blocks-gallery-media-placeholder-wrapper\"\n\t\t\t\tonClick={ removeCaptionFocus }\n\t\t\t>\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t\t<RichTextVisibilityHelper\n\t\t\t\tisHidden={ ! isSelected && RichText.isEmpty( caption ) }\n\t\t\t\tcaptionFocused={ captionFocused }\n\t\t\t\tonFocusCaption={ onFocusCaption }\n\t\t\t\ttagName=\"figcaption\"\n\t\t\t\tclassName=\"blocks-gallery-caption\"\n\t\t\t\taria-label={ __( 'Gallery caption text' ) }\n\t\t\t\tplaceholder={ __( 'Write gallery caption…' ) }\n\t\t\t\tvalue={ caption }\n\t\t\t\tonChange={ ( value ) => setAttributes( { caption: value } ) }\n\t\t\t\tinlineToolbar\n\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\tinsertBlocksAfter( createBlock( 'core/paragraph' ) )\n\t\t\t\t}\n\t\t\t/>\n\t\t</figure>\n\t);\n};\n\nfunction RichTextVisibilityHelper( {\n\tisHidden,\n\tcaptionFocused,\n\tonFocusCaption,\n\tclassName,\n\tvalue,\n\tplaceholder,\n\ttagName,\n\tcaptionRef,\n\t...richTextProps\n} ) {\n\tif ( isHidden ) {\n\t\treturn <VisuallyHidden as={ RichText } { ...richTextProps } />;\n\t}\n\n\treturn (\n\t\t<RichText\n\t\t\tref={ captionRef }\n\t\t\tvalue={ value }\n\t\t\tplaceholder={ placeholder }\n\t\t\tclassName={ className }\n\t\t\ttagName={ tagName }\n\t\t\tisSelected={ captionFocused }\n\t\t\tonClick={ onFocusCaption }\n\t\t\t{ ...richTextProps }\n\t\t/>\n\t);\n}\n\nexport default Gallery;\n"]}
@@ -9,114 +9,79 @@ import { isEmpty } from 'lodash';
9
9
  * Internal dependencies
10
10
  */
11
11
 
12
- import GalleryImage from './gallery-image';
13
12
  import { defaultColumnsNumber } from './shared';
14
13
  import styles from './gallery-styles.scss';
15
- import Tiles from './tiles';
16
14
  /**
17
15
  * WordPress dependencies
18
16
  */
19
17
 
20
18
  import { __, sprintf } from '@wordpress/i18n';
21
- import { BlockCaption, store as blockEditorStore } from '@wordpress/block-editor';
19
+ import { BlockCaption, __experimentalUseInnerBlocksProps as useInnerBlocksProps } from '@wordpress/block-editor';
22
20
  import { useState, useEffect } from '@wordpress/element';
23
21
  import { mediaUploadSync } from '@wordpress/react-native-bridge';
24
- import { useSelect } from '@wordpress/data';
25
- import { alignmentHelpers } from '@wordpress/components';
26
- const TILE_SPACING = 15; // we must limit displayed columns since readable content max-width is 580px
22
+ import { WIDE_ALIGNMENTS } from '@wordpress/components';
23
+ import { useResizeObserver } from '@wordpress/compose';
24
+ const TILE_SPACING = 8; // we must limit displayed columns since readable content max-width is 580px
27
25
 
28
26
  const MAX_DISPLAYED_COLUMNS = 4;
29
27
  const MAX_DISPLAYED_COLUMNS_NARROW = 2;
30
- const {
31
- isFullWidth
32
- } = alignmentHelpers;
33
28
  export const Gallery = props => {
34
29
  const [isCaptionSelected, setIsCaptionSelected] = useState(false);
30
+ const [resizeObserver, sizes] = useResizeObserver();
31
+ const [maxWidth, setMaxWidth] = useState(0);
35
32
  useEffect(mediaUploadSync, []);
36
- const isRTL = useSelect(select => {
37
- return !!select(blockEditorStore).getSettings().isRTL;
38
- }, []);
39
33
  const {
40
- clientId,
41
- selectedImage,
42
34
  mediaPlaceholder,
43
- onBlur,
44
- onMoveBackward,
45
- onMoveForward,
46
- onRemoveImage,
47
- onSelectImage,
48
- onSetImageAttributes,
49
- onFocusGalleryCaption,
50
35
  attributes,
51
- isSelected,
52
36
  isNarrow,
53
- onFocus,
54
- insertBlocksAfter
37
+ onBlur,
38
+ insertBlocksAfter,
39
+ clientId
55
40
  } = props;
41
+ useEffect(() => {
42
+ const {
43
+ width
44
+ } = sizes || {};
45
+
46
+ if (width) {
47
+ setMaxWidth(width);
48
+ }
49
+ }, [sizes]);
56
50
  const {
51
+ images,
57
52
  align,
58
- columns = defaultColumnsNumber(attributes),
59
- imageCrop,
60
- images
61
- } = attributes; // limit displayed columns when isNarrow is true (i.e. when viewport width is
62
- // less than "small", where small = 600)
63
-
64
- const displayedColumns = isNarrow ? Math.min(columns, MAX_DISPLAYED_COLUMNS_NARROW) : Math.min(columns, MAX_DISPLAYED_COLUMNS);
65
-
66
- const selectImage = index => {
67
- return () => {
68
- if (isCaptionSelected) {
69
- setIsCaptionSelected(false);
70
- } // we need to fully invoke the curried function here
71
-
72
-
73
- onSelectImage(index)();
74
- };
75
- };
53
+ columns = defaultColumnsNumber(images.length)
54
+ } = attributes;
55
+ const displayedColumns = Math.min(columns, isNarrow ? MAX_DISPLAYED_COLUMNS_NARROW : MAX_DISPLAYED_COLUMNS);
56
+ const innerBlocksProps = useInnerBlocksProps({}, {
57
+ contentResizeMode: 'stretch',
58
+ allowedBlocks: ['core/image'],
59
+ orientation: 'horizontal',
60
+ renderAppender: false,
61
+ numColumns: displayedColumns,
62
+ marginHorizontal: TILE_SPACING,
63
+ marginVertical: TILE_SPACING,
64
+ __experimentalLayout: {
65
+ type: 'default',
66
+ alignments: []
67
+ },
68
+ gridProperties: {
69
+ numColumns: displayedColumns
70
+ },
71
+ parentWidth: maxWidth + 2 * TILE_SPACING
72
+ });
76
73
 
77
74
  const focusGalleryCaption = () => {
78
75
  if (!isCaptionSelected) {
79
76
  setIsCaptionSelected(true);
80
77
  }
81
-
82
- onFocusGalleryCaption();
83
78
  };
84
79
 
80
+ const isFullWidth = align === WIDE_ALIGNMENTS.alignments.full;
85
81
  return createElement(View, {
86
- style: {
87
- flex: 1
88
- }
89
- }, createElement(Tiles, {
90
- columns: displayedColumns,
91
- spacing: TILE_SPACING,
92
- style: isSelected ? styles.galleryTilesContainerSelected : undefined
93
- }, images.map((img, index) => {
94
- const ariaLabel = sprintf(
95
- /* translators: 1: the order number of the image. 2: the total number of images. */
96
- __('image %1$d of %2$d in gallery'), index + 1, images.length);
97
- return createElement(GalleryImage, {
98
- key: img.id ? `${img.id}-${index}` : img.url,
99
- url: img.url,
100
- alt: img.alt,
101
- id: parseInt(img.id, 10) // make id an integer explicitly
102
- ,
103
- isCropped: imageCrop,
104
- isFirstItem: index === 0,
105
- isLastItem: index + 1 === images.length,
106
- isSelected: isSelected && selectedImage === index,
107
- isBlockSelected: isSelected,
108
- onMoveBackward: onMoveBackward(index),
109
- onMoveForward: onMoveForward(index),
110
- onRemove: onRemoveImage(index),
111
- onSelect: selectImage(index),
112
- onSelectBlock: onFocus,
113
- setAttributes: attrs => onSetImageAttributes(index, attrs),
114
- caption: img.caption,
115
- "aria-label": ariaLabel,
116
- isRTL: isRTL
117
- });
118
- })), createElement(View, {
119
- style: isFullWidth(align) && styles.fullWidth
82
+ style: isFullWidth && styles.fullWidth
83
+ }, resizeObserver, createElement(View, innerBlocksProps), createElement(View, {
84
+ style: [isFullWidth && styles.fullWidth, styles.galleryAppender]
120
85
  }, mediaPlaceholder), createElement(BlockCaption, {
121
86
  clientId: clientId,
122
87
  isSelected: isCaptionSelected,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/gallery.native.js"],"names":["View","isEmpty","GalleryImage","defaultColumnsNumber","styles","Tiles","__","sprintf","BlockCaption","store","blockEditorStore","useState","useEffect","mediaUploadSync","useSelect","alignmentHelpers","TILE_SPACING","MAX_DISPLAYED_COLUMNS","MAX_DISPLAYED_COLUMNS_NARROW","isFullWidth","Gallery","props","isCaptionSelected","setIsCaptionSelected","isRTL","select","getSettings","clientId","selectedImage","mediaPlaceholder","onBlur","onMoveBackward","onMoveForward","onRemoveImage","onSelectImage","onSetImageAttributes","onFocusGalleryCaption","attributes","isSelected","isNarrow","onFocus","insertBlocksAfter","align","columns","imageCrop","images","displayedColumns","Math","min","selectImage","index","focusGalleryCaption","flex","galleryTilesContainerSelected","undefined","map","img","ariaLabel","length","id","url","alt","parseInt","attrs","caption","fullWidth"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\nimport { isEmpty } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport GalleryImage from './gallery-image';\nimport { defaultColumnsNumber } from './shared';\nimport styles from './gallery-styles.scss';\nimport Tiles from './tiles';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockCaption,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useState, useEffect } from '@wordpress/element';\nimport { mediaUploadSync } from '@wordpress/react-native-bridge';\nimport { useSelect } from '@wordpress/data';\nimport { alignmentHelpers } from '@wordpress/components';\n\nconst TILE_SPACING = 15;\n\n// we must limit displayed columns since readable content max-width is 580px\nconst MAX_DISPLAYED_COLUMNS = 4;\nconst MAX_DISPLAYED_COLUMNS_NARROW = 2;\n\nconst { isFullWidth } = alignmentHelpers;\n\nexport const Gallery = ( props ) => {\n\tconst [ isCaptionSelected, setIsCaptionSelected ] = useState( false );\n\tuseEffect( mediaUploadSync, [] );\n\n\tconst isRTL = useSelect( ( select ) => {\n\t\treturn !! select( blockEditorStore ).getSettings().isRTL;\n\t}, [] );\n\n\tconst {\n\t\tclientId,\n\t\tselectedImage,\n\t\tmediaPlaceholder,\n\t\tonBlur,\n\t\tonMoveBackward,\n\t\tonMoveForward,\n\t\tonRemoveImage,\n\t\tonSelectImage,\n\t\tonSetImageAttributes,\n\t\tonFocusGalleryCaption,\n\t\tattributes,\n\t\tisSelected,\n\t\tisNarrow,\n\t\tonFocus,\n\t\tinsertBlocksAfter,\n\t} = props;\n\n\tconst {\n\t\talign,\n\t\tcolumns = defaultColumnsNumber( attributes ),\n\t\timageCrop,\n\t\timages,\n\t} = attributes;\n\n\t// limit displayed columns when isNarrow is true (i.e. when viewport width is\n\t// less than \"small\", where small = 600)\n\tconst displayedColumns = isNarrow\n\t\t? Math.min( columns, MAX_DISPLAYED_COLUMNS_NARROW )\n\t\t: Math.min( columns, MAX_DISPLAYED_COLUMNS );\n\n\tconst selectImage = ( index ) => {\n\t\treturn () => {\n\t\t\tif ( isCaptionSelected ) {\n\t\t\t\tsetIsCaptionSelected( false );\n\t\t\t}\n\t\t\t// we need to fully invoke the curried function here\n\t\t\tonSelectImage( index )();\n\t\t};\n\t};\n\n\tconst focusGalleryCaption = () => {\n\t\tif ( ! isCaptionSelected ) {\n\t\t\tsetIsCaptionSelected( true );\n\t\t}\n\t\tonFocusGalleryCaption();\n\t};\n\n\treturn (\n\t\t<View style={ { flex: 1 } }>\n\t\t\t<Tiles\n\t\t\t\tcolumns={ displayedColumns }\n\t\t\t\tspacing={ TILE_SPACING }\n\t\t\t\tstyle={\n\t\t\t\t\tisSelected\n\t\t\t\t\t\t? styles.galleryTilesContainerSelected\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ images.map( ( img, index ) => {\n\t\t\t\t\tconst ariaLabel = sprintf(\n\t\t\t\t\t\t/* translators: 1: the order number of the image. 2: the total number of images. */\n\t\t\t\t\t\t__( 'image %1$d of %2$d in gallery' ),\n\t\t\t\t\t\tindex + 1,\n\t\t\t\t\t\timages.length\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<GalleryImage\n\t\t\t\t\t\t\tkey={ img.id ? `${ img.id }-${ index }` : img.url }\n\t\t\t\t\t\t\turl={ img.url }\n\t\t\t\t\t\t\talt={ img.alt }\n\t\t\t\t\t\t\tid={ parseInt( img.id, 10 ) } // make id an integer explicitly\n\t\t\t\t\t\t\tisCropped={ imageCrop }\n\t\t\t\t\t\t\tisFirstItem={ index === 0 }\n\t\t\t\t\t\t\tisLastItem={ index + 1 === images.length }\n\t\t\t\t\t\t\tisSelected={ isSelected && selectedImage === index }\n\t\t\t\t\t\t\tisBlockSelected={ isSelected }\n\t\t\t\t\t\t\tonMoveBackward={ onMoveBackward( index ) }\n\t\t\t\t\t\t\tonMoveForward={ onMoveForward( index ) }\n\t\t\t\t\t\t\tonRemove={ onRemoveImage( index ) }\n\t\t\t\t\t\t\tonSelect={ selectImage( index ) }\n\t\t\t\t\t\t\tonSelectBlock={ onFocus }\n\t\t\t\t\t\t\tsetAttributes={ ( attrs ) =>\n\t\t\t\t\t\t\t\tonSetImageAttributes( index, attrs )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcaption={ img.caption }\n\t\t\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t\t\t\tisRTL={ isRTL }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Tiles>\n\t\t\t<View style={ isFullWidth( align ) && styles.fullWidth }>\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t\t<BlockCaption\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisSelected={ isCaptionSelected }\n\t\t\t\taccessible={ true }\n\t\t\t\taccessibilityLabelCreator={ ( caption ) =>\n\t\t\t\t\tisEmpty( caption )\n\t\t\t\t\t\t? /* translators: accessibility text. Empty gallery caption. */\n\t\t\t\t\t\t 'Gallery caption. Empty'\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t/* translators: accessibility text. %s: gallery caption. */\n\t\t\t\t\t\t\t\t__( 'Gallery caption. %s' ),\n\t\t\t\t\t\t\t\tcaption\n\t\t\t\t\t\t )\n\t\t\t\t}\n\t\t\t\tonFocus={ focusGalleryCaption }\n\t\t\t\tonBlur={ onBlur } // always assign onBlur as props\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</View>\n\t);\n};\n\nexport default Gallery;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/gallery.native.js"],"names":["View","isEmpty","defaultColumnsNumber","styles","__","sprintf","BlockCaption","__experimentalUseInnerBlocksProps","useInnerBlocksProps","useState","useEffect","mediaUploadSync","WIDE_ALIGNMENTS","useResizeObserver","TILE_SPACING","MAX_DISPLAYED_COLUMNS","MAX_DISPLAYED_COLUMNS_NARROW","Gallery","props","isCaptionSelected","setIsCaptionSelected","resizeObserver","sizes","maxWidth","setMaxWidth","mediaPlaceholder","attributes","isNarrow","onBlur","insertBlocksAfter","clientId","width","images","align","columns","length","displayedColumns","Math","min","innerBlocksProps","contentResizeMode","allowedBlocks","orientation","renderAppender","numColumns","marginHorizontal","marginVertical","__experimentalLayout","type","alignments","gridProperties","parentWidth","focusGalleryCaption","isFullWidth","full","fullWidth","galleryAppender","caption"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\nimport { isEmpty } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport { defaultColumnsNumber } from './shared';\nimport styles from './gallery-styles.scss';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockCaption,\n\t__experimentalUseInnerBlocksProps as useInnerBlocksProps,\n} from '@wordpress/block-editor';\nimport { useState, useEffect } from '@wordpress/element';\nimport { mediaUploadSync } from '@wordpress/react-native-bridge';\nimport { WIDE_ALIGNMENTS } from '@wordpress/components';\nimport { useResizeObserver } from '@wordpress/compose';\n\nconst TILE_SPACING = 8;\n\n// we must limit displayed columns since readable content max-width is 580px\nconst MAX_DISPLAYED_COLUMNS = 4;\nconst MAX_DISPLAYED_COLUMNS_NARROW = 2;\n\nexport const Gallery = ( props ) => {\n\tconst [ isCaptionSelected, setIsCaptionSelected ] = useState( false );\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ maxWidth, setMaxWidth ] = useState( 0 );\n\tuseEffect( mediaUploadSync, [] );\n\n\tconst {\n\t\tmediaPlaceholder,\n\t\tattributes,\n\t\tisNarrow,\n\t\tonBlur,\n\t\tinsertBlocksAfter,\n\t\tclientId,\n\t} = props;\n\n\tuseEffect( () => {\n\t\tconst { width } = sizes || {};\n\t\tif ( width ) {\n\t\t\tsetMaxWidth( width );\n\t\t}\n\t}, [ sizes ] );\n\n\tconst {\n\t\timages,\n\t\talign,\n\t\tcolumns = defaultColumnsNumber( images.length ),\n\t} = attributes;\n\n\tconst displayedColumns = Math.min(\n\t\tcolumns,\n\t\tisNarrow ? MAX_DISPLAYED_COLUMNS_NARROW : MAX_DISPLAYED_COLUMNS\n\t);\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{},\n\t\t{\n\t\t\tcontentResizeMode: 'stretch',\n\t\t\tallowedBlocks: [ 'core/image' ],\n\t\t\torientation: 'horizontal',\n\t\t\trenderAppender: false,\n\t\t\tnumColumns: displayedColumns,\n\t\t\tmarginHorizontal: TILE_SPACING,\n\t\t\tmarginVertical: TILE_SPACING,\n\t\t\t__experimentalLayout: { type: 'default', alignments: [] },\n\t\t\tgridProperties: {\n\t\t\t\tnumColumns: displayedColumns,\n\t\t\t},\n\t\t\tparentWidth: maxWidth + 2 * TILE_SPACING,\n\t\t}\n\t);\n\n\tconst focusGalleryCaption = () => {\n\t\tif ( ! isCaptionSelected ) {\n\t\t\tsetIsCaptionSelected( true );\n\t\t}\n\t};\n\n\tconst isFullWidth = align === WIDE_ALIGNMENTS.alignments.full;\n\n\treturn (\n\t\t<View style={ isFullWidth && styles.fullWidth }>\n\t\t\t{ resizeObserver }\n\t\t\t<View { ...innerBlocksProps } />\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tisFullWidth && styles.fullWidth,\n\t\t\t\t\tstyles.galleryAppender,\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t\t<BlockCaption\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisSelected={ isCaptionSelected }\n\t\t\t\taccessible={ true }\n\t\t\t\taccessibilityLabelCreator={ ( caption ) =>\n\t\t\t\t\tisEmpty( caption )\n\t\t\t\t\t\t? /* translators: accessibility text. Empty gallery caption. */\n\n\t\t\t\t\t\t 'Gallery caption. Empty'\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t/* translators: accessibility text. %s: gallery caption. */\n\t\t\t\t\t\t\t\t__( 'Gallery caption. %s' ),\n\t\t\t\t\t\t\t\tcaption\n\t\t\t\t\t\t )\n\t\t\t\t}\n\t\t\t\tonFocus={ focusGalleryCaption }\n\t\t\t\tonBlur={ onBlur } // always assign onBlur as props\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</View>\n\t);\n};\n\nexport default Gallery;\n"]}